Deteksi Objek Kenali dan aturankan. Bagian 2


Dalam posting sebelumnya, saya mulai memahami model Deteksi Objek dua tahap dan berbicara tentang yang paling mendasar dan, karenanya, yang pertama dari mereka - R-CNN . Hari ini kita melihat model-model lain dari keluarga ini: Fast R-CNN dan Faster R-CNN . Pergilah!

Cepat r-cnn


Karena R-CNN adalah jaringan yang lambat dan tidak terlalu efisien, dengan cepat penulis yang sama mengusulkan peningkatan dalam bentuk jaringan R-CNN yang Cepat .

Proses pemrosesan gambar telah berubah dan terlihat seperti ini:

  1. Mengekstrak peta atribut gambar (tidak untuk setiap hipotesis secara terpisah, tetapi untuk seluruh gambar);
  2. Pencarian hipotesis (mirip dengan R-CNN berdasarkan Pencarian Selektif);
  3. – .. ( );
  4. ( , SVM-).

RoI layer


Dalam konsep R-CNN asli, setiap hipotesis yang diajukan diproses secara individual menggunakan CNN - pendekatan ini telah menjadi semacam hambatan. Untuk mengatasi masalah ini, lapisan Region of Interest (RoI) dikembangkan . Lapisan ini memungkinkan Anda untuk sekali proses seluruh gambar menggunakan jaringan saraf, menerima pada output peta fitur, yang kemudian digunakan untuk memproses setiap hipotesis.

Tugas utama layer RoI adalah membandingkan koordinat hipotesis (koordinat kotak pembatas) dengan koordinat yang sesuai dari peta fitur. Membuat "irisan" dari peta fitur, lapisan RoI memasukkannya ke dalam input dari lapisan yang terhubung penuh untuk penentuan kelas berikutnya dan koreksi ke koordinat (lihat bagian berikut).

Sebuah pertanyaan logis muncul - bagaimana menerapkan hipotesis dengan berbagai ukuran dan rasio aspek pada input dari lapisan yang terhubung sepenuhnya? Untuk ini, lapisan RoI diperlukan, yang mengubah gambar dengan dimensiIh×Iw dalam ukuran Oh×Ow. Untuk melakukan ini, Anda perlu membagi gambar asli ke dalam kisi ukuranOh×Ow (ukuran sel kira-kira IhOh×IwOw) dan dari setiap sel pilih jumlah maksimum.

Misalkan ada peta fitur 5 × 5 dan hipotesis yang diinginkan pada peta ini memiliki koordinat (1,1,4,5) (dua koordinat pertama adalah sudut kiri atas, dua terakhir adalah kanan bawah). Lapisan yang terhubung sepenuhnya berikutnya mengharapkan dimensi 4 × 1 (mis., Matriks 2 × 2 memanjang). Kemudian kita membagi hipotesis menjadi blok yang tidak sama dari dimensi yang berbeda (tahap Pooling) dan mengambil jumlah maksimum di masing-masing dimensi (tahap Pooling dan, sebagai hasilnya, tahap Output).


Dengan demikian, menjadi mungkin untuk memproses seluruh gambar, dan kemudian bekerja dengan setiap hipotesis berdasarkan peta fitur.

Total:

  • Input: koordinat hipotesis dan peta fitur gambar asli;
  • Output: representasi vektor dari hipotesis.

Sepenuhnya terhubung lapisan dan hasilnya


Dalam versi R-CNN sebelumnya, pengklasifikasi SVM terpisah digunakan, dalam implementasi yang sama mereka diganti dengan satu keluaran dimensi SoftMax Nc+1. Perlu dicatat bahwa kehilangan akurasi kurang dari 1%.

Output dari regressor diproses menggunakan NMS (Non-Maximum Suppression).

Total:

  • Input: representasi vektor dari hipotesis;
  • Output: probabilitas hipotesis yang dimiliki kelas dan koreksi pada koordinat kotak pembatas.

Kehilangan banyak tugas


Dalam pelatihan simultan jaringan, fungsi kerugian khusus digunakan untuk tugas-tugas kemunduran kotak pembatas dan klasifikasi:

L(P,u,tu,v)=Lcls(P,u)+λ[u1]Lloc(tu,v)


Sini:

  • λdiperlukan untuk mengatur keseimbangan antara dua fungsi (penulis digunakan λ= 1);
  • u- kelas yang benar;
  • Lclsmewakili fungsi kesalahan untuk klasifikasi Lcls(P,u)=logPu;
  • Llocadalah fungsi SmoothL1 dan mengukur perbedaan di antaranya v=(vx,vy,vw,vh)dan tu=(txu,tyu,twu,thu)nilai:

    SmoothL1={12x2,if|x|<1|x|12,otherwise


    Sini, xmenunjukkan perbedaan antara nilai target dan prediksi tiuvi. Fungsi semacam itu menggabungkan keunggulan fungsi L1 dan L2, karena stabil pada nilai yang besarx dan tidak banyak denda untuk nilai-nilai kecil.


Latihan


Untuk konvergensi yang lebih baik, penulis menggunakan pendekatan berikut untuk pembentukan batch:

  1. Jumlah hipotesis dalam kumpulan dipilih R.
  2. Dipilih secara acak Ngambar-gambar.
  3. Untuk masing-masing Ngambar yang diambil RNhipotesis (mis. merata di setiap gambar).

Pada saat yang sama, hipotesis positif (25% dari keseluruhan) dan negatif (75% dari seluruh) dimasukkan dalam R. Hipotesis yang tumpang tindih dengan lokasi objek yang benar lebih dari 0,5 (IoU) dianggap positif. Negatif diambil sesuai dengan aturan Penambangan Keras Negatif - contoh yang paling keliru (yang memiliki IoU dalam kisaran [0,1,0,5).

Apalagi penulis berpendapat bahwa dengan parameternyaN=2 dan R=128jaringan belajar beberapa kali lebih cepat daripada dengan N=128dan R=128(mis. satu hipotesis dari setiap gambar).

Lebih cepat r-cnn


Peningkatan logis lebih lanjut adalah cara untuk menghilangkan ketergantungan pada algoritma Pencarian Selektif. Untuk melakukan ini, kami akan mewakili seluruh sistem sebagai komposisi dua modul - definisi hipotesis dan pemrosesan mereka. Modul pertama akan diimplementasikan menggunakan Jaringan Proposal Wilayah (RPN) , dan yang kedua mirip dengan Fast R-CNN (dimulai dengan lapisan RoI).

Karenanya, saat ini proses bekerja dengan gambar telah berubah dan sekarang terjadi seperti ini:

  1. Menghapus peta fitur gambar menggunakan jaringan saraf;
  2. Generasi berdasarkan pada peta tanda-tanda hipotesis yang diperoleh - penentuan perkiraan koordinat dan keberadaan objek dari kelas apa pun;
  3. Perbandingan koordinat hipotesis menggunakan RoI dengan fitur peta yang diperoleh pada langkah pertama;
  4. Klasifikasi hipotesis (sudah untuk definisi kelas tertentu) dan penyempurnaan tambahan koordinat (pada kenyataannya, itu mungkin tidak berlaku).

Perbaikan utama terjadi tepat di tempat di mana hipotesis dihasilkan - sekarang untuk ini ada jaringan saraf kecil yang terpisah, yang disebut Jaringan Proposal Wilayah .


Jaringan Proposal Wilayah


Tujuan akhir dari modul ini adalah untuk sepenuhnya menggantikan algoritma Pencarian Selektif. Untuk operasi yang lebih cepat, bobot umum diperlukan dengan jaringan yang mengekstraksi atribut yang diperlukan. Oleh karena itu, input RPN adalah peta fitur yang diperoleh setelah jaringan ini. Penulis artikel asli menggunakan jaringan VGG16 untuk mengekstraksi fitur, yang hasilnya dianggap sebagai lapisan konvolusional terakhir - conv5_3. Jaringan seperti itu memiliki karakteristik bidang reseptif sebagai berikut :

  • Kompresi efektif (langkah efektif, S0): enam belas
  • Ukuran bidang reseptif r0): 196

Ini berarti bahwa peta fitur akan 16 kali lebih kecil dari ukuran gambar asli (jumlah saluran adalah 512), dan setiap nilai dalam sel-selnya dipengaruhi oleh piksel gambar asli yang terletak di persegi panjang 196 × 196. Jadi, ternyata jika Anda menggunakan input standar VGG16 224 × 224, maka hampir seluruh gambar akan memengaruhi pembentukan nilai sel pusat dari peta fitur (14.14)! Berdasarkan peta fitur yang diterima, RPN untuk setiap sel menghasilkank hipotesis (dalam implementasi asli k=9) berbagai ukuran dan rasio aspek. Jadi, untuk ukuran standar, ini adalah 14 × 14 × 9 = 1764 hipotesis!

Berdasarkan gambar di bawah ini, kami mempertimbangkan algoritma modul RPN secara lebih rinci (gambar yang dapat diklik):


  1. c×H16×W16.
  2. 3×3 ( – ). , (P0=106, r0=228).

  • (i,j) c( 512).

  1. 1×1 c^( cc^):
    1. (cls) c^=2k– - ( 2 ).
    2. (reg) c^=4k– .

    Perhatikan bahwa vektor yang diperoleh dapat diubah menjadi matriks k×2dan k×4. Jadi, kami mendapatkan matriks, di manai garis sesuai dengan nilai-nilai untuk hipotesis tertentu.

Sebuah pertanyaan logis muncul: bagaimana koordinat absolut dari hipotesis dapat ditentukan dari vektor yang memasuki lapisan reg? Jawabannya sederhana - tidak mungkin. Untuk penentuan koordinat yang benar, perlu menggunakan apa yang disebut jangkar dan koreksi pada koordinatnya.

Jangkar adalah segi empat dengan rasio aspek yang berbeda (1: 1, 2: 1, 1: 2) dan ukuran (128 × 128, 256 × 256, 512 × 512). Pusat jangkar adalah pusat sel (i,j) tanda-tanda kartu. Jadi, misalnya, mari kita ambil sel (7,7), yang pusatnya adalah nilai-nilai (7,5,7,5), yang sesuai dengan koordinat (120,120) dari gambar asli (16 × 7,5). Bandingkan dengan koordinat ini, segi empat dari tiga aspek rasio dan tiga ukuran (total 3 × 3 = 9). Di masa depan, lapisan reg akan menghasilkan pengeditan yang sesuai dengan koordinat ini, sehingga menyesuaikan lokasi dan bentuk kotak pembatas.

Total:

  • Input: peta fitur gambar asli;
  • Output: hipotesis yang mengandung objek.

Fungsi kerugian


Untuk pelatihan RPN, notasi kelas berikut digunakan:

  • Positif adalah semua jangkar memiliki persimpangan (IoU) lebih dari 0,7 atau memiliki persimpangan terbesar di antara semua jangkar (berlaku jika tidak ada persimpangan lebih dari 0,7).
  • Negatif adalah semua jangkar memiliki persimpangan kurang dari 0,3.
  • Semua jangkar lainnya tidak berpartisipasi dalam pelatihan (pada kenyataannya, mereka netral).

Jadi kelasnya pijangkar diberikan sesuai dengan aturan berikut:

pi={1ifIoU>0.70ifIoU<0.3nothingotherwise


Dengan notasi tersebut, fungsi berikut ini diminimalkan:

L({pi},{ti})=1NclsiLcls(pi,pi)+λ1NlocipiLreg(ti,ti)


Sini:

  • i- nomor jangkar;
  • pi- probabilitas menemukan objek di ijangkar;
  • pi- nomor kelas yang benar (ditunjukkan di atas);
  • ti- 4 prediksi koreksi terhadap koordinat;
  • ti- koreksi yang diharapkan (kebenaran dasar) untuk koordinat;
  • Lcls(pi,pi)- hilangnya log biner;
  • Lreg(ti,ti)- Kehilangan SmoothL1. Hanya diaktifkan jikapi=1, yaitu jika hipotesis mengandung setidaknya beberapa objek;
  • {pi}dan {ti}- output dari model klasifikasi dan regresi, masing-masing;
  • λ- Koefisien untuk menyesuaikan keseimbangan antara klasifikasi dan regresi.

Kedua bagian dari kerugian gabungan menjadi normal Nclsdan Nlocmasing-masing. Penulis yang digunakanNcls sama dengan ukuran mini-batch (256), dan Nlocsama dengan jumlah jangkar.

Untuk mundur koreksi ke kotak pembatas, nilai diinisialisasi dan dihitung sebagai berikut:

tx=(xxa)wa,tx=(xxa)wty=(yya)ha,ty=(yya)hatw=logwwa,tw=logwwath=loghha,th=loghha


Sini x, y, wdan hmenunjukkan pusat, lebar, dan tinggi kotak pembatas. Variabelx, xdan xamenunjukkan prediksi, kebenaran dasar dan arti jangkar (untuk y, wdan hdemikian pula).

Pelatihan tentang daftar lengkap jangkar akan memiliki bias terhadap kelas negatif (ada banyak lagi hipotesis dengan kelas ini). Dalam hal ini, mini-batch dibentuk dalam rasio 1: 1 dari anchor positif ke negatif. Jika tidak mungkin untuk menemukan jumlah jangkar positif yang sesuai, mini-batch dilengkapi dengan bantuan kelas negatif.

Pelatihan jaringan umum


Tujuan utama adalah penggunaan bersama skala antara dua modul - ini akan meningkatkan kecepatan kerja. Karena tidak mungkin (atau agak sulit) untuk melatih dua modul independen sekaligus, penulis artikel menggunakan pendekatan berulang:

  1. Pelatihan jaringan RPN. Lapisan konvolusional diinisialisasi dengan bobot yang sebelumnya diperoleh selama pelatihan di ImageNet. Kami akan melatih kembali tugas mendefinisikan daerah dengan kelas apa pun (spesifikasi kelas adalah bagian dari Fast R-CNN).
  2. Pelatihan Fast R-CNN Network. Seperti pada langkah 1, kami menginisialisasi Fast R-CNN dengan bobot yang sebelumnya diperoleh selama pelatihan di ImageNet. Kami melatih ulang menggunakan hipotesis tentang objek menggunakan jaringan RPN yang dilatih pada item 1. Kali ini, tugas pelatihan adalah untuk mengklarifikasi koordinat dan menentukan kelas objek tertentu.
  3. Dengan menggunakan bobot dari hal. 2, kami hanya melatih bagian RPN (lapisan yang menuju ke jaringan RPN yang dimiliki oleh fitur extractor dibekukan dan tidak berubah sama sekali).
  4. Menggunakan bobot dari hal. 3 (yaitu, RPN yang sudah disetel dengan halus), kami melatih layer untuk Fast R-CNN (bobot yang tersisa - yang berjalan lebih awal atau terkait dengan RPN - dibekukan).

Dengan bantuan pelatihan berulang seperti itu, ternyata seluruh jaringan dibangun pada skala yang sama. Anda dapat terus melatih jaringan pada prinsip ini, tetapi penulis mencatat bahwa tidak ada perubahan besar dalam metrik.

Proses prediksi


Saat menggunakan jaringan saraf untuk prediksi, propagasi gambar terlihat seperti ini:

  1. Gambar memasuki input jaringan saraf, menghasilkan peta fitur.
  2. Setiap sel dari peta fitur diproses menggunakan RPN, memberikan hasil dari koreksi ke posisi jangkar dan probabilitas kehadiran objek dari kelas apa pun.
  3. Frame yang diprediksi terkait selanjutnya didasarkan pada peta fitur dan lapisan RoI untuk pemrosesan lebih lanjut dari bagian Fast R-CNN.
  4. Pada output, kita mendapatkan kelas objek tertentu dan posisi yang tepat dalam gambar.

Perbedaan ringkasan


Berikut adalah ringkasan singkat dari model di antara mereka sendiri (ide-ide dasar diwarisi dari yang lebih muda ke yang lebih tua):

R-CNN:

  • Menggunakan Pencarian Selektif sebagai penghasil hipotesis.
  • Menggunakan SVM + Ridge untuk klasifikasi dan regresi hipotesis (apalagi, operasi paralelnya tidak memungkinkan).
  • Menjalankan jaringan saraf untuk memproses setiap hipotesis secara individual.
  • Kecepatan rendah.

Cepat R-CNN:

  • Jaringan saraf diluncurkan hanya sekali per gambar - semua hipotesis diuji berdasarkan peta fitur tunggal.
  • Pemrosesan cerdas berbagai ukuran hipotesis karena lapisan RoI.
  • Mengganti SVN dengan lapisan SoftMax.
  • Kemungkinan klasifikasi dan regresi kerja paralel.

Lebih cepat R-CNN:

  • Pembuatan hipotesis menggunakan modul khusus yang dapat dibedakan secara terpisah.
  • Perubahan dalam pemrosesan gambar yang terkait dengan munculnya modul RPN.
  • Yang tercepat dari ketiga model ini.
  • Ini adalah salah satu yang paling akurat hingga hari ini.

Kesimpulan


Sebagai kesimpulan, kita dapat mengatakan bahwa pengembangan R-CNN bergerak dari algoritma yang berbeda yang menyelesaikan satu masalah ke solusi end-to-end tunggal. Kombinasi ini memungkinkan Anda untuk membuat hampir semua pendekatan lebih akurat dan paling produktif, Deteksi Objek tidak terkecuali.

Bibliografi


  1. R. Girshick, J. Donahue, T. Darrell, and J. Malik. «Rich feature hierarchies for accurate object detection and semantic segmentation.» In CVPR, 2014. arXiv:1311.2524
  2. R. Girshick, J. Donahue, T. Darrell, and J. Malik. «Region-based convolutional networks for accurate object detection and segmentation.» TPAMI, 2015
  3. R. Girshick, «Fast R-CNN,» in IEEE International Conference on Computer Vision (ICCV), 2015.
  4. S. Ren, K. He, R. Girshick, and J. Sun, «Faster R-CNN: Towards real-time object detection with region proposal networks,» in Neural Information Processing Systems (NIPS), 2015.

All Articles