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.

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 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.

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.

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