การทำให้เป็นมาตรฐาน bbox / รูปภาพของ RCNN ที่เร็วขึ้น

ฉันกำลังเล่นกับ py-faster-rcnn บนชุดข้อมูลที่กำหนดเอง (ประมาณ 3,000 รูปภาพ, 7 คลาสที่แตกต่างกัน รวมถึงพื้นหลัง) และทำตามบทช่วยสอนเหล่านี้:

https://github.com/zeyuanxy/fast-rcnn/blob/master/help/train/README.md (บทช่วยสอน Fast-RCNN) https://github.com/deboc/py-faster-rcnn/tree/master/help (บทช่วยสอนที่เร็วกว่า RCNN)

ฉันกำลังใช้โซลูชัน end2end กับเครือข่าย VGG16 ทุกอย่างทำงานได้ดี คาดหวังผลลัพธ์ของฉัน ดังนั้นฉันจึงมีคำถาม:

  • จำเป็นต้องมีการปรับมาตรฐานแบบใดบนรูปภาพและคำอธิบายประกอบ bbox
  • คล้ายกับคำถามก่อนหน้า: มีสองตัวเลือกการกำหนดค่า: BBOX_NORMALIZE_TARGETS และ BBOX_NORMALIZE_TARGETS_PRECOMPUTED ฉันควรคำนวณค่าเฉลี่ยและมาตรฐานก่อนการฝึกอบรมและใช้ตัวเลือกเหล่านี้สำหรับการปรับมาตรฐาน bbox หรือไม่
  • ฉันแก้ไข num_output ที่เลเยอร์ cls_score และ bbox_pred (ตามหัวข้อนี้: https://github.com/rbgirshick/py-faster-rcnn/issues/1) แต่ในโซลูชัน end2end มีเลเยอร์ rpn_cls_score และ rpn_bbox_pred เช่นกัน ฉันควรแก้ไข num_outputs ของสิ่งเหล่านี้ด้วยหรือไม่ หากฉันควรฉันจะคำนวณจำนวนเอาต์พุตสำหรับ 7 คลาสได้อย่างไร

person Norbert    schedule 27.12.2016    source แหล่งที่มา


คำตอบ (1)


ไม่ คุณไม่จำเป็นต้องคำนวณอะไรล่วงหน้า ใน lib/roi_data_layer/roidb.py ระบบจะคำนวณค่าเฉลี่ยและค่าเบี่ยงเบนมาตรฐานสำหรับชุดข้อมูลของคุณหากคุณตั้งค่า BBOX_NORMALIZE_TARGETS_PRECOMPUTED เป็น False ไม่เช่นนั้นจะใช้ค่าเริ่มต้นซึ่งระบุไว้ใน lib/fast_rcnn/config.py RPN ไม่เชื่อเรื่องจำนวนคลาส โดยจะถือว่าพื้นที่ที่มีออบเจ็กต์ใดๆ เป็นค่าบวกเท่านั้น และถือว่าส่วนอื่นๆ เป็นค่าลบ

person Bharat    schedule 30.12.2016
comment
ขอบคุณสำหรับความช่วยเหลือของคุณ! ฉันพยายามตั้งค่า BBOX_NORMALIZE_TARGETS_PRECOMPUTED เป็นเท็จ แต่ทำให้เกิดข้อผิดพลาดในการยืนยัน: ไฟล์ /home/spirit/py-faster-rcnn/tools/../lib/fast_rcnn/train.py, line 35, in init ยืนยัน cfg.TRAIN.BBOX_NORMALIZE_TARGETS_PRECOMPUTED AssertionError - person Norbert; 02.01.2017
comment
ฉันดูโค้ดที่การยืนยันเกิดขึ้นและมีความคิดเห็น: # RPN สามารถใช้การทำให้เป็นมาตรฐานที่คำนวณล่วงหน้าเท่านั้นเนื่องจากไม่มี # สถิติคงที่ในการคำนวณนิรนัย - person Norbert; 02.01.2017
comment
ฉันคิดว่าคุณตั้งค่า BBOX_NORMALIZE_TARGETS เป็น False ซึ่งควรจะเป็นจริง อย่างไรก็ตาม สิ่งเหล่านี้ไม่จำเป็นสำหรับ RPN (จำเป็นเฉพาะเมื่อคุณมีข้อเสนอภูมิภาคจากอัลกอริทึมอื่น เช่น การค้นหาแบบเลือก) มันจะใช้งานได้แม้ว่าคุณจะใส่ความคิดเห็นโค้ดการทำให้เป็นมาตรฐานทั้งหมดก็ตาม การทำให้เป็นมาตรฐานทั้งหมดสำหรับ rcnn ที่เร็วขึ้นนั้นเสร็จสิ้นภายใน Generate_anchors, Anchor_target_layer สำหรับการฝึก RPN และ Proposal_target_layer และ Proposal_layer สำหรับการฝึกตัวตรวจจับ ไฟล์เหล่านี้อยู่ในโฟลเดอร์ RPN - person Bharat; 02.01.2017
comment
ฉันเดาว่ามาตรฐานและวิธีการสำหรับ RPN ระบุสถิติก่อนหน้าของกล่องที่เสนอหรือไม่ ถ้าอย่างนั้น การเริ่มต้นค่าเหล่านี้ตามชุดข้อมูลบางชุดก็ไม่สมเหตุสมผล - person Shaohua Li; 30.08.2017
comment
ฉันพบว่าส่วนนี้ (BBOX_NORMALIZE_STDS และ BBOX_NORMALIZE_MEANS) ไม่ได้ถูกกล่าวถึงในรายงานต้นฉบับ เหตุใดจึงมีประโยชน์? - person huangbiubiu; 17.12.2018