Rumah > Peranti teknologi > AI > Penalaan Sam 2 pada dataset tersuai: tutorial

Penalaan Sam 2 pada dataset tersuai: tutorial

Jennifer Aniston
Lepaskan: 2025-03-04 09:26:13
asal
881 orang telah melayarinya

Segmen Meta Apa -apa Model 2 (SAM 2) adalah inovasi terkini dalam teknologi segmentasi. Ia adalah model bersatu pertama Meta yang boleh segmen objek dalam kedua -dua imej dan video dalam masa nyata.

tetapi mengapa sam-sam sam 2 jika sudah boleh segmen?

Walaupun Sam 2 adalah kotak keluar yang kuat, prestasinya pada tugas-tugas khusus atau domain khusus mungkin tidak selalu memenuhi jangkaan. Penalaan halus membolehkan anda menyesuaikan SAM2 dengan keperluan khusus anda, meningkatkan ketepatan dan kecekapannya untuk kes penggunaan khusus anda.

Dalam artikel ini, saya akan membimbing anda langkah demi langkah melalui proses penalaan sam 2.

Apa itu SAM2?

SAM2 adalah model asas yang dibangunkan oleh META untuk segmentasi visual yang pantas dalam imej dan video. Tidak seperti pendahulunya, Sam, yang terutama memberi tumpuan kepada imej statik, SAM2 direka untuk mengendalikan kerumitan segmentasi video juga.

Penalaan Sam 2 pada dataset tersuai: tutorial

SAM2 - Tugas, Model, dan Data (Sumber: Ravi et al., 2024)

Ia menggunakan seni bina pengubah dengan memori streaming, membolehkan pemprosesan video masa nyata. Latihan Sam 2 melibatkan dataset yang luas dan bervariasi yang memaparkan dataset SA-V novel, yang merangkumi lebih daripada 600,000 anotasi topeng yang merangkumi 51,000 video.

enjin datanya, yang membolehkan pengumpulan data interaktif dan peningkatan model, memberikan model keupayaan untuk segmen apa -apa yang mungkin. Enjin ini membolehkan Sam 2 terus belajar dan menyesuaikan diri, menjadikannya lebih cekap dalam mengendalikan data baru dan mencabar. Walau bagaimanapun, untuk tugas khusus domain atau objek yang jarang berlaku, penalaan halus adalah penting untuk mencapai prestasi yang optimum.

kenapa sam2 sam2?

Dalam konteks SAM 2, penalaan halus adalah proses latihan selanjutnya model SAM 2 yang terlatih pada dataset tertentu untuk meningkatkan prestasinya untuk tugas atau domain tertentu. Walaupun Sam 2 adalah alat yang kuat yang dilatih dalam dataset yang luas dan pelbagai, sifat tujuan umumnya mungkin tidak selalu menghasilkan hasil yang optimum untuk tugas khusus atau jarang. Sebagai contoh, jika anda sedang menjalankan projek pengimejan perubatan yang memerlukan pengenalpastian jenis tumor tertentu, prestasi model mungkin tidak singkat kerana latihannya yang umum.

Proses penalaan halus

Fine-Tuning Sam 2 menangani batasan ini dengan membolehkan anda menyesuaikan model ke dataset khusus anda. Proses ini meningkatkan ketepatan model dan menjadikannya lebih berkesan untuk kes penggunaan unik anda. Penalaan Sam 2 pada dataset tersuai: tutorial

Berikut adalah manfaat utama penalaan halus Sam 2:

  1. Ketepatan yang lebih baik: Dengan menyalakan model pada dataset khusus anda, anda dapat meningkatkan ketepatannya dengan ketara, memastikan prestasi yang lebih baik dalam aplikasi sasaran anda.
  2. Segmentasi Khusus: Penalaan halus membolehkan model menjadi mahir dalam menyegarkan jenis objek tertentu, gaya visual, atau persekitaran yang berkaitan dengan projek anda, memberikan hasil yang disesuaikan bahawa model tujuan umum tidak dapat dicapai.
  3. Kecekapan: Penalaan halus sering lebih cekap daripada melatih model dari awal. Ia biasanya memerlukan kurang data dan masa, menjadikannya penyelesaian praktikal untuk menyesuaikan model dengan cepat ke tugas baru atau khusus.
  4. Bermula dengan penalaan halus Sam 2: Prasyarat

Untuk memulakan dengan penalaan Sam 2, anda perlu mempunyai prasyarat berikut:

Akses kepada model SAM 2 dan kod kod: Mempunyai akses kepada model SAM 2 dan asasnya. Anda boleh memuat turun model SAM 2 yang terlatih dari repositori GitHub Meta.
  1. Dataset yang sesuai: Anda memerlukan dataset yang merangkumi topeng segmentasi kebenaran tanah. Untuk tutorial ini, kami akan menggunakan dataset segmentasi CT Chest, yang boleh anda muat turun dan bersedia untuk latihan.
  2. Sumber Komputasi: Penalaan Fine Sam 2 memerlukan perkakasan dengan kuasa pengiraan yang mencukupi. GPU sangat disyorkan untuk memastikan proses itu cekap dan boleh diurus, terutamanya apabila bekerja dengan dataset besar atau model kompleks. Dalam contoh ini, GPU A100 di Google Colab digunakan.
  3. perisian dan keperluan lain:

python 3.11 atau lebih tinggi
  • pytorch
  • OpenCV: Pasangnya menggunakan! Pip Pasang OpenCV-Python
  • Menyediakan dataset untuk penalaan sam 2

Kualiti dataset anda adalah penting untuk penalaan model SAM 2. Imej atau video beranotasi berkualiti tinggi dengan topeng segmentasi yang tepat adalah penting untuk mencapai prestasi yang optimum. Anotasi yang tepat membolehkan model untuk mempelajari ciri-ciri yang betul, yang membawa kepada ketepatan segmentasi yang lebih baik dan ketahanan dalam aplikasi dunia nyata.

1. Pengambilalihan data

Langkah pertama melibatkan memperoleh dataset, yang membentuk tulang belakang proses latihan. Kami memperoleh data kami dari Kaggle, platform yang boleh dipercayai yang menyediakan pelbagai dataset. Menggunakan API Kaggle, kami memuat turun data dalam format yang diperlukan, memastikan bahawa imej dan topeng segmentasi yang sesuai tersedia untuk pemprosesan selanjutnya.

2. Pengekstrakan dan Pembersihan Data

Setelah memuat turun dataset, kami melakukan langkah -langkah berikut:

  • Unzipping and Cleaning: Ekstrak data dari fail zip yang dimuat turun dan padamkan fail yang tidak perlu untuk menyimpan ruang cakera.
  • Pengekstrakan ID: Pengenal pasti unik (ID) untuk imej dan topeng diekstrak untuk memastikan pemetaan yang betul di antara mereka semasa latihan.
  • Mengeluarkan fail yang tidak perlu: Keluarkan sebarang fail yang bising atau tidak relevan, seperti imej tertentu dengan isu -isu yang diketahui, untuk mengekalkan integriti dataset.

3. Penukaran kepada format yang boleh digunakan

Oleh kerana model SAM2 memerlukan input dalam format tertentu, kami menukar data seperti berikut:

  • dicom ke numpy: Imej DICOM dibaca dan disimpan sebagai array numpy, yang kemudiannya diubahsuai kepada dimensi standard 512x512 piksel.
  • nrrd ke numpy untuk topeng: Begitu juga, fail nrrd yang mengandungi topeng untuk paru -paru, jantung, dan trakea diproses dan disimpan sebagai array numpy. Topeng ini kemudiannya semula untuk dipadankan dengan imej yang sepadan.
  • Penukaran kepada JPG/PNG: Untuk visualisasi dan keserasian yang lebih baik, tatasusunan Numpy telah ditukar kepada format JPG/PNG. Langkah ini termasuk menormalkan nilai intensiti imej dan memastikan topeng berorientasikan dengan betul.

4. Menyimpan dan Mengatur Data

Imej dan topeng yang diproses kemudiannya dianjurkan ke dalam folder masing-masing untuk akses mudah semasa proses penalaan halus. Di samping itu, laluan ke imej dan topeng ini ditulis ke dalam fail CSV (train.csv) untuk memudahkan pemuatan data semasa latihan.

5. Visualisasi dan Pengesahan

Langkah terakhir melibatkan mengesahkan dataset untuk memastikan ketepatannya:

    Visualisasi: Kami memvisualisasikan pasangan imej-topeng dengan mengatasi topeng pada imej. Ini membantu kami memeriksa penjajaran dan ketepatan topeng.
  • Pemeriksaan: Dengan memeriksa beberapa sampel, kami dapat mengesahkan bahawa dataset telah disediakan dengan betul dan bersedia untuk digunakan dalam penalaan halus.
Berikut adalah buku nota cepat untuk membawa anda melalui kod untuk penciptaan dataset. Anda boleh melalui laluan penciptaan data ini atau menggunakan mana-mana dataset yang tersedia dalam talian dalam format yang sama seperti yang disebutkan dalam prasyarat.

penalaan sam2

Segmen Apa-apa Model 2 mengandungi beberapa komponen, tetapi tangkapan di sini untuk penalaan halus lebih cepat adalah untuk melatih hanya komponen ringan, seperti penyahkod topeng dan pengekod prompt, dan bukannya keseluruhan model. Langkah-langkah untuk penalaan halus model ini adalah seperti berikut:

Langkah 1: Pasang SAM-2

Untuk memulakan proses penalaan halus, kita perlu memasang perpustakaan SAM-2, yang penting untuk model apa-apa segmen (SAM2). Model ini direka untuk mengendalikan pelbagai tugas segmentasi dengan berkesan. Pemasangan melibatkan pengklonan repositori SAM-2 dari GitHub dan memasang kebergantungan yang diperlukan.

!git clone https://github.com/facebookresearch/segment-anything-2
%cd /content/segment-anything-2
!pip install -q -e .
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Coretan kod ini memastikan perpustakaan SAM2 dipasang dengan betul dan siap untuk digunakan dalam aliran kerja penalaan kami.

Langkah 2: Muat turun dataset

Setelah perpustakaan SAM-2 dipasang, langkah seterusnya adalah untuk memperoleh dataset yang akan kami gunakan untuk penalaan halus. Kami menggunakan dataset yang terdapat di Kaggle, khususnya dataset segmentasi CT dada yang mengandungi imej dan topeng paru -paru, jantung, dan trakea.

dataset mengandungi:

  • images.zip: imej dalam format RGB
  • Masks.zip: Topeng segmentasi dalam format RGB
  • kereta api.csv: fail CSV dengan nama imej

Penalaan Sam 2 pada dataset tersuai: tutorial

imej dari dataset imbasan CT

Dalam blog ini, kami hanya akan menggunakan imej dan topeng paru -paru untuk segmentasi. API Kaggle membolehkan kami memuat turun dataset terus ke persekitaran kami. Kami mulakan dengan memuat naik fail kaggle.json dari kaggle untuk mengakses mana -mana dataset dengan mudah. ​​

Untuk mendapatkan kaggle.json, pergi ke tab Tetapan di bawah profil pengguna anda dan pilih Buat Token Baru. Ini akan mencetuskan muat turun kaggle. JSON, fail yang mengandungi kelayakan API anda.

!git clone https://github.com/facebookresearch/segment-anything-2
%cd /content/segment-anything-2
!pip install -q -e .
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
unzip data:

# get dataset from Kaggle
from google.colab import files
files.upload()  # This will prompt you to upload the kaggle.json file

!mkdir -p ~/.kaggle
!mv kaggle.json ~/.kaggle/
!chmod 600 ~/.kaggle/kaggle.json
!kaggle datasets download -d polomarco/chest-ct-segmentation
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Dengan dataset siap, mari kita mulakan proses penalaan halus. Seperti yang saya katakan sebelum ini, kunci di sini adalah untuk menyempurnakan hanya komponen ringan SAM2, seperti penyahkod topeng dan pengekod prompt, dan bukannya keseluruhan model. Pendekatan ini lebih cekap dan memerlukan sumber yang lebih sedikit.

Langkah 3: Muat turun SAM-2 Checkpoints

Untuk proses penalaan halus, kita perlu bermula dengan berat model SAM2 yang terlatih. Berat ini, yang dipanggil "pusat pemeriksaan," adalah titik permulaan untuk latihan selanjutnya. Titik pemeriksaan telah dilatih pada pelbagai imej, dan dengan menyempurnakannya pada dataset khusus kami, kami dapat mencapai prestasi yang lebih baik pada tugas sasaran kami.

!unzip chest-ct-segmentation.zip -d chest-ct-segmentation
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Dalam langkah ini, kami memuat turun pelbagai pusat pemeriksaan SAM-2 yang sesuai dengan saiz model yang berbeza (mis., Tiny, kecil, base_plus, besar). Pilihan pusat pemeriksaan boleh diselaraskan berdasarkan sumber pengiraan yang tersedia dan tugas khusus di tangan.

Langkah 4: Penyediaan Data

Dengan dataset yang dimuat turun, langkah seterusnya adalah untuk menyediakannya untuk latihan. Ini melibatkan pemisahan dataset ke dalam set latihan dan ujian dan mewujudkan struktur data yang boleh dimasukkan ke dalam model SAM 2 semasa penalaan halus.

!wget -O sam2_hiera_tiny.pt "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_tiny.pt"
!wget -O sam2_hiera_small.pt "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_small.pt"
!wget -O sam2_hiera_base_plus.pt "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_base_plus.pt"
!wget -O sam2_hiera_large.pt "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_large.pt"
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Kami membahagikan dataset ke dalam set latihan (80%) dan satu set ujian (20%) untuk memastikan kami dapat menilai prestasi model selepas latihan. Data latihan akan digunakan untuk menyesuaikan model SAM 2, sementara data ujian akan digunakan untuk kesimpulan dan penilaian.

Selepas memisahkan dataset anda ke dalam latihan dan ujian, langkah seterusnya melibatkan membuat topeng binari, memilih mata utama dalam topeng ini, dan menggambarkan unsur -unsur ini untuk memastikan data diproses dengan betul. 

1. Membaca dan Mengubah Imej: Proses bermula dengan secara rawak memilih imej dan topeng yang sepadan dari dataset. Imej ditukar dari format BGR ke RGB, yang merupakan format warna standard untuk model pembelajaran yang paling mendalam. Anotasi yang sama (topeng) dibaca dalam mod kelabu. Kemudian, kedua -dua imej dan topeng anotasi diubahsuai kepada dimensi maksimum 1024 piksel, mengekalkan nisbah aspek untuk memastikan data sesuai dalam keperluan input model dan mengurangkan beban pengiraan.

!git clone https://github.com/facebookresearch/segment-anything-2
%cd /content/segment-anything-2
!pip install -q -e .
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

2. Binarization topeng segmentasi: topeng anotasi pelbagai kelas (yang mungkin mempunyai pelbagai kelas objek yang dilabelkan dengan nilai piksel yang berbeza) ditukar menjadi topeng binari. Topeng ini menyoroti semua kawasan yang menarik dalam imej, memudahkan tugas segmentasi kepada masalah klasifikasi binari: objek vs latar belakang. Topeng binari kemudian terhakis menggunakan kernel 5x5.

Hakisan sedikit mengurangkan saiz topeng, yang membantu mengelakkan kesan sempadan apabila memilih mata. Ini memastikan titik -titik yang dipilih berada di dalam kawasan objek dan bukannya berhampiran tepi, yang mungkin bising atau samar -samar.

Titik utama dipilih dari dalam topeng terkikis. Titik-titik ini bertindak sebagai petunjuk semasa proses penalaan halus, membimbing model di mana untuk menumpukan perhatiannya. Titik dipilih secara rawak dari bahagian dalam objek untuk memastikan mereka mewakili dan tidak dipengaruhi oleh sempadan yang bising.

# get dataset from Kaggle
from google.colab import files
files.upload()  # This will prompt you to upload the kaggle.json file

!mkdir -p ~/.kaggle
!mv kaggle.json ~/.kaggle/
!chmod 600 ~/.kaggle/kaggle.json
!kaggle datasets download -d polomarco/chest-ct-segmentation
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

3. Visualisasi: Langkah ini penting untuk mengesahkan bahawa langkah -langkah pra -proses data telah dilaksanakan dengan betul. Dengan secara visual memeriksa mata pada topeng binari, anda dapat memastikan model itu akan menerima input yang sesuai semasa latihan. Akhirnya, topeng binari direkodkan dan diformatkan dengan betul (dengan dimensi yang sesuai untuk input model), dan titik -titiknya juga direkodkan untuk kegunaan selanjutnya dalam proses latihan. Fungsi ini mengembalikan imej yang diproses, topeng binari, titik terpilih, dan bilangan topeng yang dijumpai.

!unzip chest-ct-segmentation.zip -d chest-ct-segmentation
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Kod di atas mengembalikan angka berikut yang mengandungi imej asal dari dataset bersama -sama dengan topeng binari dan topeng binarized dengan mata. 

Penalaan Sam 2 pada dataset tersuai: tutorial

imej asal, topeng binari, dan topeng binarized dengan mata untuk dataset.

Langkah 5: Penalaan halus model SAM2

Penalaan Fine Model SAM2 melibatkan beberapa langkah, termasuk memuatkan model, menubuhkan pengoptimal dan penjadual, dan mengemas kini berat model berdasarkan data latihan.

Muatkan titik pemeriksaan model:

!wget -O sam2_hiera_tiny.pt "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_tiny.pt"
!wget -O sam2_hiera_small.pt "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_small.pt"
!wget -O sam2_hiera_base_plus.pt "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_base_plus.pt"
!wget -O sam2_hiera_large.pt "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_large.pt"
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
kita mulakan dengan membina model SAM2 menggunakan pusat pemeriksaan pra-terlatih. Model ini kemudian dibungkus dalam kelas prediktor, yang memudahkan proses menetapkan imej, pengekodan arahan, dan topeng penyahkodan.

Konfigurasi HyperParameters

Kami mengkonfigurasi beberapa hyperparameters untuk memastikan model belajar dengan berkesan, seperti kadar pembelajaran, kerosakan berat badan, dan langkah -langkah pengumpulan kecerunan. Hiperparameter ini mengawal proses pembelajaran, termasuk seberapa cepat model mengemas kini beratnya dan bagaimana ia mengelakkan overfitting. Jangan ragu untuk bermain -main dengan ini.

!git clone https://github.com/facebookresearch/segment-anything-2
%cd /content/segment-anything-2
!pip install -q -e .
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Pengoptimal bertanggungjawab untuk mengemas kini berat model, sementara penjadual menyesuaikan kadar pembelajaran semasa latihan untuk meningkatkan penumpuan. Dengan menyempurnakan parameter ini, kita dapat mencapai ketepatan segmentasi yang lebih baik.

Mula latihan

Proses penalaan halus sebenar adalah berulang, di mana dalam setiap langkah, kumpulan imej dan topeng untuk paru-paru hanya diluluskan melalui model, dan kerugian dikira dan digunakan untuk mengemas kini berat model.

# get dataset from Kaggle
from google.colab import files
files.upload()  # This will prompt you to upload the kaggle.json file

!mkdir -p ~/.kaggle
!mv kaggle.json ~/.kaggle/
!chmod 600 ~/.kaggle/kaggle.json
!kaggle datasets download -d polomarco/chest-ct-segmentation
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Semasa setiap lelaran, model memproses satu kumpulan imej, mengira topeng segmentasi, dan membandingkannya dengan kebenaran tanah untuk mengira kerugian. Kerugian ini kemudiannya digunakan untuk menyesuaikan berat model, secara beransur -ansur meningkatkan prestasi model. Selepas latihan untuk kira -kira 3000 zaman, kami mendapat ketepatan (IOU - persimpangan ke atas kesatuan) kira -kira 72%.

Langkah 6: Kesimpulan dengan Model Fine-Tuned

Model ini kemudiannya boleh digunakan untuk kesimpulan, di mana ia meramalkan topeng segmentasi pada imej yang baru dan tidak kelihatan. Mulakan dengan fungsi pembantu read_images dan get_points untuk mendapatkan imej kesimpulan dan topengnya bersama -sama dengan mata utama.

!unzip chest-ct-segmentation.zip -d chest-ct-segmentation
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

kemudian muatkan gambar sampel yang anda mahukan untuk kesimpulan, bersama-sama dengan berat yang baru disempurnakan, dan lakukan penetapan kesimpulan obor.no_grad ().

!wget -O sam2_hiera_tiny.pt "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_tiny.pt"
!wget -O sam2_hiera_small.pt "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_small.pt"
!wget -O sam2_hiera_base_plus.pt "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_base_plus.pt"
!wget -O sam2_hiera_large.pt "https://dl.fbaipublicfiles.com/segment_anything_2/072824/sam2_hiera_large.pt"
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Dalam langkah ini, kami menggunakan model halus untuk menghasilkan topeng segmentasi untuk imej ujian. Topeng yang diramalkan kemudian divisualisasikan bersama imej asal dan topeng kebenaran tanah untuk menilai prestasi model.

Penalaan Sam 2 pada dataset tersuai: tutorial

imej segmentasi akhir pada data ujian

Kesimpulan

Fine-penala SAM2 menawarkan cara praktikal untuk meningkatkan keupayaannya untuk tugas-tugas tertentu. Sama ada anda sedang bekerja pada pengimejan perubatan, kenderaan autonomi, atau penyuntingan video, penalaan halus membolehkan anda menggunakan SAM2 untuk keperluan unik anda. Dengan mengikuti panduan ini, anda boleh menyesuaikan SAM2 untuk projek anda dan mencapai hasil segmentasi terkini.

Untuk kes penggunaan yang lebih maju, pertimbangkan komponen tambahan SAM2, seperti pengekod imej. Walaupun ini memerlukan lebih banyak sumber, ia menawarkan fleksibiliti dan penambahbaikan prestasi yang lebih besar.

Atas ialah kandungan terperinci Penalaan Sam 2 pada dataset tersuai: tutorial. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan