Mask R-CNN
Mask R-CNN menambahkan cabang mask per region ke Faster R-CNN, dengan memprediksi mask segmentasi bersama setiap box yang dideteksi. LibreYOLO menyediakan port implementasi torchvision untuk deteksi dan segmentasi instance.
- Task
- detection, instance segmentation
- Ukuran
- r50 at 800 px
- Instalasi
pip install libreyolo- Tier dukungan
- Hanya inferensi, sejak v. Hanya prediksi, validasi, dan ekspor. Fitur pelatihan tidak berlaku.
- Lisensi
- Kode BSD-3-Clause, bobot BSD-3-Clause. Penggunaan komersial
Instalasi
Mask R-CNN tidak memerlukan extra opsional. Semua yang diimpornya tersedia dalam instalasi dasar.
pip install libreyoloPrediksi
Bobot diunduh dari Hugging Face saat pertama kali digunakan dan disimpan dalam cache lokal.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreMaskRCNNr50.pt")result = model(SAMPLE_IMAGE, save=True) print(result.masks.data.shape)for box in result.boxes: print(box.cls, box.conf, box.xyxy)libreyolo predict model=LibreMaskRCNNr50.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # task="detect" melewati head mask dan mengembalikan box dari checkpoint yang sama,# tanpa mask dalam hasil.model = LibreYOLO("LibreMaskRCNNr50.pt", task="detect")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Objek Results yang dikembalikan sama seperti yang dikembalikan setiap family,
sehingga mengganti detector hanya memerlukan perubahan satu baris. Memuat
checkpoint tanpa argumen task mengembalikan mask instance karena segmentasi
adalah task default family ini. result.masks kemudian memuat mask tersebut
bersama box. Meneruskan task="detect" memuat bobot yang sama tanpa head mask
dan hanya mengembalikan box. conf dan iou menetapkan ambang batas confidence
dan NMS. Mask R-CNN mempertahankan langkah NMS upstream, tidak seperti detector
berbasis query. Lihat prediksi untuk sumber, streaming, dan
penanganan hasil.
Varian
Ada satu backbone, ResNet-50 dengan feature pyramid, yang memakai builder Mask R-CNN v2 dari torchvision. Checkpoint yang dipublikasikan berlisensi BSD-3-Clause dan melayani kedua task dalam family ini, sehingga tidak ada ukuran yang perlu dipilih.
Validasi
val() mengembalikan dictionary berisi key metrics/. Untuk task segmentasi
default checkpoint ini, key polos metrics/mAP50-95 memuat skor mask, sedangkan
run yang sama melaporkan box dengan akhiran (B) sehingga keduanya tersedia
dalam satu pass.
from libreyolo import LibreYOLO model = LibreYOLO("LibreMaskRCNNr50.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"]) # maskprint(metrics["metrics/mAP50-95(B)"]) # boxlibreyolo val model=LibreMaskRCNNr50.pt data=my-dataset.yamlEkspor
| Task | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Detection | Detection to ONNX: didukung | Detection to TorchScript: tidak didukung | Detection to ExecuTorch: tidak didukung | Detection to TensorRT: tidak didukung | Detection to OpenVINO: tidak didukung | Detection to Paddle: tidak didukung | Detection to MNN: tidak didukung | Detection to RKNN: tidak didukung | Detection to ncnn: tidak didukung | Detection to TFLite: tidak didukung | Detection to CoreML: tidak didukung | Detection to Core AI: tidak didukung |
| Instance segmentation | Instance segmentation to ONNX: didukung | Instance segmentation to TorchScript: tidak didukung | Instance segmentation to ExecuTorch: tidak didukung | Instance segmentation to TensorRT: tidak didukung | Instance segmentation to OpenVINO: tidak didukung | Instance segmentation to Paddle: tidak didukung | Instance segmentation to MNN: tidak didukung | Instance segmentation to RKNN: tidak didukung | Instance segmentation to ncnn: tidak didukung | Instance segmentation to TFLite: tidak didukung | Instance segmentation to CoreML: tidak didukung | Instance segmentation to Core AI: tidak didukung |
Mask R-CNN hanya dapat diekspor ke ONNX dengan ukuran batch 1. Graph hasil
ekspor mempertahankan langkah resize dan penempelan mask upstream di dalamnya,
sehingga LibreYOLO memaksa dynamic=True apa pun nilai yang diteruskan agar
graph tetap valid untuk sumber yang tidak berbentuk persegi. Berkas .onnx
hasil ekspor dapat dimuat kembali melalui LibreYOLO() berdasarkan akhiran
berkasnya dan mengembalikan Results yang sama.
from libreyolo import LibreYOLO model = LibreYOLO("LibreMaskRCNNr50.pt")model.export(format="onnx", imgsz=800)libreyolo export model=LibreMaskRCNNr50.pt format=onnx imgsz=800from libreyolo import LibreYOLO, SAMPLE_IMAGE # Factory merutekan berdasarkan akhiran berkas, sehingga artefak hasil ekspor dimuat# seperti checkpoint lain dan mengembalikan objek Results yang sama.model = LibreYOLO("LibreMaskRCNNr50.onnx")result = model(SAMPLE_IMAGE) print(result.masks.data.shape)Checkpoint
Semua berkas bobot yang dipublikasikan untuk family ini. Satu checkpoint di
bawah tercantum pada deteksi, tetapi berkas yang sama juga dimuat untuk
segmentasi. Jangan teruskan argumen task agar mask dikembalikan secara default.
| Berkas | Input (piksel) | Lisensi bobot |
|---|---|---|
| Detection | ||
| LibreMaskRCNNr50.pt | 800 | bsd-3-clause |
Setiap berkas di atas saat ini tersedia di organisasi LibreYOLO dan diunduh saat pertama kali digunakan.
Lisensi
Periksa lisensi di repositori Hugging Face untuk bobot tertentu yang diunduh. Setiap checkpoint di organisasi LibreYOLO memiliki lisensi, dan lisensinya tidak selalu sama dalam satu family. Repositori tersebut adalah sumber resmi. Ringkasan di bawah menjelaskan ketentuan yang berlaku saat halaman ini terakhir diverifikasi.
Ini adalah deskripsi lisensi yang terlibat, bukan nasihat hukum. Jika jawabannya penting secara komersial, baca sendiri lisensinya dan mintalah nasihat dari penasihat hukum Anda.
- Karya asli
- Mask R-CNN, PyTorch
- Lisensi upstream
- BSD-3-Clause
- Sumber upstream
- github.com/pytorch/vision
- Kode LibreYOLO
- MIT
- Bobot
- BSD-3-Clause, dipublikasikan ulang di huggingface.co/LibreYOLO
- Interpretasi
- BSD-3-Clause is a permissive license, so this code can be used in commercial and closed-source products with no obligation on your own application code. It asks only that you keep the copyright notice and disclaimer with any copy you redistribute, and it carries no patent grant. The published checkpoint used for parity testing is not distributed in the LibreYOLO source tree: torchvision's own documentation notes that a pretrained model's terms may depend on its training data, so the Hugging Face mirror ships the BSD text on that implied basis and repeats the caveat rather than issuing an explicit checkpoint-specific grant.
Mask R-CNN dibangun sebagai subclass wrapper Faster R-CNN milik LibreYOLO. Model ini memakai sumber torchvision dan lisensi BSD-3-Clause yang sama, serta menambahkan predictor mask dan head RoI mask dari commit yang di-port yang sama.