Normalisasi bbox/gambar RCNN lebih cepat

Saya bermain dengan py-faster-rcnn pada kumpulan data khusus (sekitar 3000 gambar, 7 kelas berbeda, termasuk latar belakang), dan mengikuti tutorial berikut:

https://github.com/zeyuanxy/fast-rcnn/blob/master/help/train/README.md (Tutorial Fast-RCNN) https://github.com/deboc/py-faster-rcnn/tree/master/help (Tutorial RCNN lebih cepat)

Saya menggunakan solusi end2end dengan jaringan VGG16. Semuanya berfungsi dengan baik, harapkan hasilnya, jadi saya punya beberapa pertanyaan:

  • Normalisasi seperti apa yang diperlukan pada gambar dan anotasi bbox?
  • Hal ini mirip dengan pertanyaan sebelumnya: Ada dua pilihan konfigurasi: BBOX_NORMALIZE_TARGETS dan BBOX_NORMALIZE_TARGETS_PRECOMPUTED. Haruskah saya menghitung mean dan std sebelum pelatihan dan menggunakan opsi ini untuk normalisasi bbox?
  • Saya memodifikasi num_output di lapisan cls_score dan bbox_pred (menurut thread ini: https://github.com/rbgirshick/py-faster-rcnn/issues/1), tetapi dalam solusi end2end ada juga lapisan rpn_cls_score dan rpn_bbox_pred. Haruskah saya mengubah num_outputs ini juga? Jika saya harus melakukannya, bagaimana saya bisa menghitung jumlah output untuk 7 kelas?

person Norbert    schedule 27.12.2016    source sumber


Jawaban (1)


Tidak, Anda tidak perlu menghitung apa pun terlebih dahulu. Di lib/roi_data_layer/roidb.py, ini menghitung mean dan deviasi standar untuk kumpulan data Anda jika Anda menyetel BBOX_NORMALIZE_TARGETS_PRECOMPUTED ke False, jika tidak, ia akan menggunakan nilai default yang ditentukan di lib/fast_rcnn/config.py. RPN agnostik terhadap jumlah kelas. Ini hanya memperlakukan wilayah yang berisi objek apa pun sebagai positif dan yang lainnya sebagai negatif.

person Bharat    schedule 30.12.2016
comment
Terima kasih atas bantuan Anda! Saya mencoba menyetel BBOX_NORMALIZE_TARGETS_PRECOMPUTED ke false tetapi menyebabkan kesalahan pernyataan: File /home/spirit/py-faster-rcnn/tools/../lib/fast_rcnn/train.py, baris 35, di init menegaskan cfg.TRAIN.BBOX_NORMALIZE_TARGETS_PRECOMPUTED AssertionError - person Norbert; 02.01.2017
comment
Saya melihat ke dalam kode, di mana pernyataan terjadi dan ada komentar: # RPN hanya dapat menggunakan normalisasi yang telah dihitung sebelumnya karena tidak ada # statistik tetap untuk menghitung apriori - person Norbert; 02.01.2017
comment
Saya rasa Anda menyetel BBOX_NORMALIZE_TARGETS ke False, yang mana seharusnya benar. Bagaimanapun, hal-hal ini tidak diperlukan untuk RPN (ini hanya diperlukan ketika Anda memiliki proposal wilayah dari beberapa algoritma lain, seperti pencarian selektif). Ini akan berfungsi bahkan jika Anda mengomentari semua kode normalisasi. Semua normalisasi untuk rcnn lebih cepat dilakukan di dalam generate_anchors, jangkar_target_layer untuk melatih RPN dan proposal_target_layer dan proposal_layer untuk melatih detektor. File-file ini ada di folder RPN. - person Bharat; 02.01.2017
comment
Saya kira stds dan sarana untuk RPN menentukan statistik sebelumnya dari kotak yang diusulkan? Maka tidak masuk akal untuk menginisialisasi nilai-nilai ini berdasarkan kumpulan data tertentu. - person Shaohua Li; 30.08.2017
comment
Saya menemukan bagian ini (BBOX_NORMALIZE_STDS dan BBOX_NORMALIZE_MEANS) tidak disebutkan dalam makalah aslinya. Mengapa ini bermanfaat? - person huangbiubiu; 17.12.2018