Bagikan melalui


Melatih model deteksi objek kecil dengan AutoML (pratinjau) (v1)

BERLAKU UNTUK: Python SDK azureml v1

Penting

Beberapa perintah CLI Azure dalam artikel ini menggunakan ekstensi azure-cli-ml, atau v1, untuk Azure Machine Learning. Dukungan untuk ekstensi v1 akan berakhir pada 30 September 2025. Anda dapat memasang dan menggunakan ekstensi v1 hingga tanggal tersebut.

Kami menyarankan agar Anda beralih ke ekstensi ml, atau v2 sebelum 30 September 2025. Untuk informasi selengkapnya mengenai ekstensi v2, lihat Ekstensi Azure ML CLI dan Python SDK v2.

Penting

Fitur ini masih dalam pratinjau umum. Versi pratinjau ini disediakan tanpa perjanjian tingkat layanan. Fitur tertentu mungkin tidak didukung atau mungkin memiliki kemampuan terbatas. Untuk mengetahui informasi selengkapnya, lihat Ketentuan Penggunaan Tambahan untuk Pratinjau Microsoft Azure.

Di artikel ini, Anda akan mempelajari cara melatih model deteksi objek untuk mendeteksi objek kecil dalam gambar resolusi tinggi dengan ML otomatis di Azure Machine Learning.

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 resolusi tinggi biasanya berukuran besar, gambar tersebut diubah ukurannya sebelum dimasukkan ke dalam model, yang membatasi kemampuan mereka untuk mendeteksi objek yang lebih kecil--relatif terhadap ukuran gambar awal.

Untuk membantu terkait masalah ini, ML otomatis mendukung pemetakan sebagai bagian dari kemampuan visi komputer pratinjau publik. 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.

Diagram yang memperlihatkan gambar dibagi menjadi kisi petak peta yang tumpang tindih.

Prasyarat

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 pemetakan, Anda dapat mengatur parameter tile_grid_size ke nilai seperti (3, 2); yang mana 3 adalah jumlah ubin di sepanjang dimensi lebar dan 2 adalah jumlah petak di sepanjang dimensi tinggi. Saat parameter ini diatur ke (3, 2), setiap gambar dibagi menjadi kisi 3 x 2 petak. 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 dapat dikontrol oleh parameter tile_overlap_ratio, yang default hingga 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 (3, 2), waktu komputasi akan sekitar tujuh kali lebih tinggi daripada tanpa ubin.

Anda dapat menentukan nilai untuk tile_grid_size dalam ruang hiperparameter Anda sebagai string.

parameter_space = {
    'model_name': choice('fasterrcnn_resnet50_fpn'),
    'tile_grid_size': choice('(3, 2)'),
    ...
}

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.

parameter_space = {
    'model_name': choice('fasterrcnn_resnet50_fpn'),
    'tile_grid_size': choice('(2, 1)', '(3, 2)', '(5, 3)'),
    ...
}

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.

Diagram yang memperlihatkan proposal objek dari gambar dan petak yang digabungkan untuk membentuk prediksi akhir.

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.

Dengan melakukan hal tersebut dapat meningkatkan performa untuk beberapa himpunan data, dan tidak akan dikenakan biaya tambahan yang datang dengan pemetakan 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.

Tuple dari dua bilangan bulat yang dilewatkan sebagai string, misalnya '(3, 2)'

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