Melatih model deteksi objek kecil dengan AutoML
BERLAKU UNTUK:Ekstensi ml Azure CLI v2 (saat ini)Python SDK azure-ai-ml v2 (saat ini)
Dalam artikel ini, Anda mempelajari cara melatih model deteksi objek untuk mendeteksi objek kecil dalam gambar resolusi tinggi dengan ML otomatis di Azure Pembelajaran Mesin.
Biasanya, model visi komputer untuk deteksi objek bekerja dengan baik untuk himpunan data dengan objek yang relatif besar. Namun, karena keterbatasan memori dan komputasi, model ini cenderung memiliki performa buruk saat ditugaskan untuk mendeteksi objek kecil dalam gambar resolusi tinggi. Karena gambar beresolusi tinggi biasanya besar, gambar diubah ukurannya sebelum dimasukkan ke dalam model, yang membatasi kemampuannya untuk mendeteksi objek yang lebih kecil--relatif terhadap ukuran gambar awal.
Untuk membantu masalah ini, ML otomatis mendukung ubin sebagai bagian dari kemampuan visi komputer. Kemampuan pemetakan dalam ML otomatis didasarkan pada konsep dalam The Power of Tiling for Small Object Detection.
Saat pemetakan, setiap gambar dibagi menjadi kisi petak. Petak yang berdekatan tumpang tindih satu sama lain dalam dimensi lebar dan tinggi. Petak dipotong dari aslinya seperti yang ditunjukkan pada gambar berikut.
Prasyarat
Ruang kerja Azure Machine Learning. Untuk membuat ruang kerja, lihat Membuat sumber daya ruang kerja.
Artikel ini mengasumsikan beberapa pemahaman tentang cara mengonfigurasi eksperimen pembelajaran mesin otomatis untuk tugas visi komputer.
Model yang didukung
Deteksi objek kecil menggunakan ubin didukung untuk semua model yang didukung oleh ML Otomatis untuk gambar untuk tugas deteksi objek.
Mengaktifkan pemetakan selama pelatihan
Untuk mengaktifkan ubin, Anda dapat mengatur tile_grid_size
parameter ke nilai seperti '3x2'; di mana 3 adalah jumlah petak peta di sepanjang dimensi lebar dan 2 adalah jumlah petak peta di sepanjang dimensi tinggi. Ketika parameter ini diatur ke '3x2'; setiap gambar dibagi menjadi kisi 3 x 2 petak peta. Setiap petak tumpang tindih dengan petak yang berdekatan, sehingga setiap benda yang terletak di perbatasan petak disertakan sepenuhnya dalam salah satu petak. Tumpang tindih ini dikendalikan oleh tile_overlap_ratio
parameter, yang defaultnya menjadi 25%.
Saat pemetakan diaktifkan, seluruh gambar dan petak yang dibuat dilewatkan melalui model. Gambar dan petak ini diubah ukurannya sesuai dengan parameter min_size
dan max_size
sebelum memberi umpan ke model. Waktu komputasi meningkat secara proporsional karena pemrosesan data tambahan ini.
Misalnya, ketika tile_grid_size
parameter adalah '3x2' waktu komputasi akan sekitar tujuh kali lebih tinggi daripada tanpa ubin.
Anda dapat menentukan nilai untuk tile_grid_size
dalam parameter pelatihan Anda sebagai string.
BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)
training_parameters:
tile_grid_size: '3x2'
Nilai untuk parameter tile_grid_size
tergantung pada dimensi gambar dan ukuran objek dalam gambar. Misalnya, jumlah petak yang lebih besar akan membantu saat ada objek yang lebih kecil dalam gambar.
Untuk memilih nilai optimal untuk parameter ini untuk himpunan data Anda, Anda dapat menggunakan pencarian hiperparameter. Untuk melakukannya, Anda dapat menentukan pilihan nilai untuk parameter ini di ruang hiperparameter Anda.
BERLAKU UNTUK: Ekstensi ml Azure CLI v2 (saat ini)
search_space:
- model_name:
type: choice
values: ['fasterrcnn_resnet50_fpn']
tile_grid_size:
type: choice
values: ['2x1', '3x2', '5x3']
Pemetakan selama inferensi
Saat model yang dilatih dengan pemetakan disebarkan, pemetakan juga terjadi selama inferensi. ML otomatis menggunakan nilai tile_grid_size
dari pelatihan untuk membuat petak selama inferensi. Seluruh gambar dan petak yang sesuai dilewatkan melalui model, dan proposal objek dari gambar dan petak digabungkan untuk membuat prediksi akhir, seperti pada gambar berikut.
Catatan
Ada kemungkinan bahwa objek yang sama terdeteksi dari beberapa petak, deteksi duplikasi dilakukan untuk menghapus duplikat tersebut.
Deteksi duplikat dilakukan dengan menjalankan NMS pada proposal dari petak dan gambar. Saat beberapa proposal tumpang tindih, salah satu proposal dengan skor tertinggi dipilih dan yang lainnya dibuang sebagai duplikat. Dua proposal dianggap tumpang tindih saat persimpangan atas penyatuan (iou) di antaranya lebih besar dari parameter tile_predictions_nms_thresh
.
Anda juga memiliki pilihan untuk mengaktifkan pemetakan hanya selama inferensi tanpa mengaktifkannya dalam pelatihan. Untuk melakukannya, atur parameter tile_grid_size
hanya selama inferensi, bukan untuk pelatihan.
Melakukannya, dapat meningkatkan performa untuk beberapa himpunan data, dan tidak akan dikenakan biaya tambahan yang disertakan dengan ubin pada waktu pelatihan.
Hiperparameter pemetakan
Berikut ini adalah parameter yang dapat Anda gunakan untuk mengontrol fitur pemetakan.
Nama Parameter | Deskripsi | Default |
---|---|---|
tile_grid_size |
Ukuran kisi yang digunakan untuk pemetakan setiap gambar. Tersedia untuk digunakan selama pelatihan, validasi, dan inferensi. Harus diteruskan sebagai string dalam '3x2' format.Catatan: Pengaturan parameter ini meningkatkan waktu komputasi secara proporsional, karena semua petak dan gambar diproses oleh model. |
tidak ada nilai default |
tile_overlap_ratio |
Mengontrol rasio tumpang tindih antara petak yang berdekatan di setiap dimensi. Saat objek yang berada pada batas petak terlalu besar untuk muat sepenuhnya di salah satu petak, tingkatkan nilai parameter ini sehingga objek sesuai dengan setidaknya satu petak sepenuhnya. Harus berupa float di [0, 1). |
0.25 |
tile_predictions_nms_thresh |
Persimpangan di atas ambang penyatuan yang digunakan untuk melakukan penekanan non-maksimum (nms) sambil menggabungkan prediksi dari petak peta dan gambar. Tersedia selama validasi dan inferensi. Ubah parameter ini jika ada beberapa kotak yang terdeteksi per objek pada prediksi akhir. Harus berupa float di [0, 1]. |
0.25 |
Contoh buku catatan
Lihat buku catatan sampel deteksi objek untuk contoh kode mendetail untuk menyiapkan dan melatih model deteksi objek.
Catatan
Semua gambar dalam artikel ini tersedia sesuai dengan bagian penggunaan yang diizinkan dari perjanjian lisensi MIT. Hak cipta © 2020 Roboflow, Inc.
Langkah berikutnya
- Pelajari selengkapnya tentang cara dan tempat menerapkan model.
- Untuk definisi dan contoh diagram dan metrik kinerja yang disediakan untuk setiap pekerjaan, lihat Mengevaluasi hasil eksperimen pembelajaran mesin otomatis.
- Tutorial: Melatih model deteksi objek dengan AutoML dan Python.
- Lihat hyperparameter apa yang tersedia untuk tugas visi komputer.
- Membuat prediksi dengan ONNX pada model visi komputer dari AutoML