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.
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.
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?
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.
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.
python 3.11 atau lebih tinggi
1. Pengambilalihan data
2. Pengekstrakan dan Pembersihan Data
Oleh kerana model SAM2 memerlukan input dalam format tertentu, kami menukar data seperti berikut:
5. Visualisasi dan Pengesahan
penalaan sam2
Langkah 1: Pasang SAM-2
!git clone https://github.com/facebookresearch/segment-anything-2 %cd /content/segment-anything-2 !pip install -q -e .
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:
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 .
# 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
Langkah 3: Muat turun SAM-2 Checkpoints
!unzip chest-ct-segmentation.zip -d chest-ct-segmentation
Langkah 4: Penyediaan Data
!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"
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 .
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
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
Kod di atas mengembalikan angka berikut yang mengandungi imej asal dari dataset bersama -sama dengan topeng binari dan topeng binarized dengan mata.
Langkah 5: Penalaan halus model SAM2
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"
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 .
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.
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
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%.
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
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"
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.
Kesimpulan
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!