- toc {:toc}
Overview of R-CNN structure
Faster R-CNN
Fast RCNN μμ CNN μ°μ°μ 곡μ νκ³ RoI Pooling μ μ μ©ν¨μΌλ‘μ¨ λΉμ©λ κ°μμν€κ³ κΉμ λ€νΈμν¬μμμ νμ΅λ κ°λ₯νλλ‘ λ§λ€μλ€. Faster RCNN μ Fast RCNN μ ꡬ쑰μμ μ€μκ° κ°μ²΄ νμ§λ₯Ό μν μλ κ°μ μ μ΄μ μ λ§μΆ° ꡬ쑰λ₯Ό κ°μ νλ€.
[
](https://paperswithcode.com/method/faster-r-cnn)
Faster R-CNN μ ꡬ쑰λ₯Ό κ°λ¨νκ² μμΆν΄λ³΄λ©΄ RPN(Regional Proposals Networks) + Fast R-CNN κ³Ό κ°κ³ , μ 체μ μΈ λμ μμλ μλμ κ°λ€.
- μ 체 μ΄λ―Έμ§λ₯Ό CNN μ μ λ ₯νμ¬ νΉμ§λ§΅μ μΆμΆνλ€.
- νΉμ§λ§΅μ RPN μ μ λ ₯ν΄ Regional Proposals λ₯Ό μΆμΆνλ€.
- νΉμ§λ§΅μ RPN μ ν΅ν΄ λ½μλΈ Regional Proposals μ λ°λΌ νΉμ§λ§΅μ RoI Pooling νκ³ κ³ μ λ ν¬κΈ°μ νΉμ§λ§΅μ μΆμΆνλ€.
- κ³ μ λ ν¬κΈ°μ νΉμ§λ§΅μ ν΅ν΄ λΆλ₯, κ°μ²΄ νμ§λ₯Ό νλ€.
- CNN μ ν΅ν νΉμ§λ§΅μ΄ RPN, Classifier μ ν¨κ» μ¬μ©λλ©΄μ νΉμ§λ§΅μ 곡μ νλ ννλ₯Ό κ°λλ€.
Problems of Fast R-CNN
- Fast R-CNN μ μ 체 μ΄λ―Έμ§λ₯Ό μ λ ₯ λ°κ³ , RoI Pooling, Softmax λ₯Ό ν΅ν End-to-End νμ΅μ ν μ μλ ꡬ쑰λ₯Ό λ§λ€μ΄λ΄λ©° λ κ°μ λ ꡬ쑰λ₯Ό 보μλ€.
- νμ§λ§, Fast R-CNN μμ Regional Proposals λ₯Ό μΆμΆν λ μ¬μ©νλ Selective Search μκ³ λ¦¬μ¦μ Regional Proposals λ₯Ό μΆμΆνλ μκ°μ΄ λ§μ΄ κ±Έλ¦°λ€λ λ¨μ μ κ°λλ€.
- μ κ·Έλ¦Όμ Regional Proposals λ₯Ό μΆμΆνλ μκ³ λ¦¬μ¦λ§λ€ μκ°, κ²°κ³Όμ λν΄ μΈ‘μ ν λνμ΄λ€.
- μ£Όλ‘ μ¬μ©λλ SS μ κ²½μ° λ€λ₯Έ λ°©μμ λΉν΄ νμ€ν λ§μ μκ°μ΄ 걸리λ κ²μ νμΈν μ μλ€.
- SS λ³΄λ€ λ λΉ λ₯Έ EdgeBoxes λ°©μμ΄ κ³ μλμμΌλ, κ·ΈλΌμλ Regional Proposal λΆλΆμ μκ° μλͺ¨κ° λ§λ€.
- Fast R-CNN μμ μ¬μ©ν κΈ°μ‘΄μ Regional Proposals λ°©μμ CPU λ₯Ό κΈ°λ°μΌλ‘ ꡬνλμκ³ λ₯λ¬λ λ€νΈμν¬λ GPU λ₯Ό μ¬μ©νλ€. λλ¬Έμ Faster R-CNN μμλ Regional Proposals λ°©μμμ λ³λͺ© νμμ΄ λ°μνλ€λ μ μ μ£Όλͺ©νλ€.
λ³λͺ© νμμ ν΄κ²°νκΈ° μν΄ CNN μ μ¬μ©ν΄ Region Proposals λ₯Ό μΆμΆνλ RPN κ³Ό Anchor Box κ³ μνλ€. RPN κ³Ό Anchor Box λ λ€μμ μ₯μ μ κ°λλ€.
- νμ΅ν κ°μ€μΉλ₯Ό Proposals μ μΆμΆν λ 곡μ ν΄ μ¬μ©ν μ μκΈ° λλ¬Έμ μΆλ‘ λ¨κ³μμ Proposal μ κ³μ°νλ λΉμ©μ΄ λ§€μ° μλ€. (μ΄λ―Έμ§ λΉ 10ms)
- Regional Proposals λ₯Ό μΆμΆνλ λ°©μκΉμ§ End-to-End λ‘ νμ΅ν΄ λ μ’μ κ°μ²΄λ₯Ό κ°μ§ν μ μλ€.
- CNN λ RPN μ ν΅ν΄μ attention 맀컀λμ¦κ³Ό μ μ¬νκ² νΉμ λΆλΆμ λ μ§μ€ν΄μ λ³Ό μ μλλ‘ νμ΅νλ€.
Network Structure
Faster R-CNN μ μ 체μ μΈ λ€νΈμν¬ κ΅¬μ‘°λ λ€μκ³Ό κ°λ€. herbwoodλ μ λ€νΈμν¬ κ·Έλ¦Όμ μ°Έκ³ νλ€. Faster R-CNN μ λ€μκ³Ό κ°μ΄ RPN, Fast R-CNN μ λ κ΅¬μ‘°λ‘ λλμ΄μ§κ³ , VGG λ₯Ό ν΅κ³Όν κ°μ νΉμ§λ§΅μ΄ RPN, Fast R-CNN μΌλ‘ λλμ΄μ Έ 곡μ λλ€.
RPN
RPN(Regional Proposal Networks) λ FCN(Fully Convolutional Networks) λ‘ μ΄λ£¨μ΄μ Έ μμ΄, μμ λ€νΈμν¬ κ·Έλ¦Όκ³Ό κ°μ΄ 3x3 conv, 1x1 conv λ₯Ό μ μ©νλ€.
μλ RPN μ ꡬ쑰μ΄λ€. RPN μ μλ λ°©μμ λ€μκ³Ό κ°λ€.
- μ λ€νΈμν¬μ ꡬ쑰μ κ°μ΄ VGG λ₯Ό ν΅κ³Όν νΉμ§λ§΅μ 3x3 conv λ₯Ό μ μ©μν¨λ€. (ν¨λ©μ μ μ©ν΄ νΉμ§λ§΅μ ν¬κΈ°λ λ³νμ§ μκ³ λμΌνλ€.)
- Sliding Window λ°©μμ μ¬μ©νμ¬ νΉμ§λ§΅μ cell κ°κ°μ λν΄ k κ°μ anchor box λ€μ μ¬μ©νμ¬ κ°μ²΄λ₯Ό νμ§νλ€.
- 1x1 conv λ₯Ό μ¬μ©ν΄ κ° anchor box μ λν cls layer, reg layer μ κ°μ μ°μΆνλ€.
- Anchor box λ§λ€ cls, reg layer λ₯Ό ν΅ν΄ κ°μ²΄ ν¬ν¨ μ 무 μ μλ₯Ό κ°μ§κ³ μ‘°μ λ bbox κ°μ κ°λλ€.
- Non-Maximum Suppression μ μ¬μ©νμ¬ κ°μ₯ κ°μ²΄ ν¬ν¨ μ μκ° λμ bbox λ₯Ό μ°μΆνλ€.
μ 체 λ€νΈμν¬ κ΅¬μ‘° κ·Έλ¦Όμμ RPN ꡬ쑰λ₯Ό 보면 1x1 conv κ° 2 κ°μ§λ‘ λλμ΄μ§λ κ²μ λ³Ό μ μλλ°, μ κ·Έλ¦Όμμ λ³Ό μ μλ€μνΌ Classifier, Bbox regressor λ‘ λλμ΄μ§λ€.
- Classifier : κ° Anchor box μ λν΄ κ°μ²΄ ν¬ν¨ μ 무μ λν μ μλ₯Ό λ§€κΈ΄λ€. (Object, Not Object μ μλ₯Ό μ§λ μΌ νκΈ° λλ¬Έμ h x w x 2*9 νΉμ§λ§΅μ μΆμΆνλ€.)
- Bounding box regressor : Anchor box μ μμΉλ₯Ό μ‘°μ νλ bbox μ‘°μ μ’νλ₯Ό μ€μ νλ€. (4 κ°μ μ’νκ°μ κ°μ ΈμΌ νκΈ° λλ¬Έμ h x w x 4*9 νΉμ§λ§΅μ μΆμΆνλ€.)
Anchor Box
κ°μ²΄λ₯Ό νμ§ν λ μ°λ¦¬λ Selective Search μ κ°μ λ°©μμ μ¬μ©νλ€. μ΄ λ°©μμ segmentation μ μ μ©ν΄ λΆλ₯ν κ°μ²΄μ λν΄ bbox λ₯Ό μ μ©ν΄ μμμ μΆμΆνλ λ°©μμ΄μλ€. νμ§λ§ λ°λ‘ κ°μ²΄λ₯Ό λΆλ₯νλ κ² μμ΄ μμμ μΆμΆν΄μΌ νκΈ° λλ¬Έμ Anchor λ₯Ό ν΅ν΄ μΆμΆνλ λ°©λ²μ μ¬μ©νλ€.
Conv λ₯Ό ν΅ν΄ μ΄λ―Έμ§λ λ€μκ³Ό κ°μ΄ μΌμ ν¬κΈ°μ grid λ§νΌ μ°κ²°λκ³ , grid cell μ κ°κ° μΌμ ν¬κΈ°μ μ΄λ―Έμ§λ₯Ό ν¨μΆνκ³ μλ€. μ¦, μλ³Έ μ΄λ―Έμ§κ° 800x800 μ΄κ³ νΉμ§λ§΅μ΄ 8x8 μΌ λ cell νλλ 100x100 λ§νΌμ μ΄λ―Έμ§ μ 보λ₯Ό ν¨μΆνκ³ μλ€λ μλ―Έμ΄λ€. Anchor Box λ°©μμ μ΄λ° μ±μ§μ μ΄μ©ν΄ νΉμ§λ§΅μ anchor box λ₯Ό μ μ©μν¨λ€.
Anchor λ μ κ·Έλ¦Όκ³Ό κ°μ΄ μΌμ ν¬κΈ°μ μΌμ λΉμ¨λ‘ μ¬μ μ€μ ν k κ°μ bbox λ₯Ό μλ―Ένλ€. μ΄ anchor λ₯Ό νΉμ§λ§΅μ κ° cell μ λͺ¨λ μ μ©νμ¬ λ€μν ν¬κΈ°μ κ°μ²΄λ₯Ό μΈμν μ μλλ‘ νλ€.
- ex) μ κ³ μμ΄ μ΄λ―Έμ§μ κ²½μ° (μλ³Έ μ΄λ―Έμ§ : 800x800, νΉμ§λ§΅ : 8x8)
- 8x8 μ cell μ 9 κ°μ anchor λ₯Ό μ μ©ν΄ 8x8x9 κ°μ anchor κ° νμ±λλ€.
Anchor Box λ λ€μκ³Ό κ°μ μμ ν΅ν΄ μ μνλ€.
- s : scale, μ μ¬κ°νμΌ λμ κΈΈμ΄
- w : width
- h : height
- μ μμμ width:height = 1:2 μΈ κ²½μ°λ₯Ό μλ―Ένλ€.
μ κ·Έλ¦Όμ κ²½μ° Anchor Box λ₯Ό μ¬μ©νμ λ μλ³Έ μ΄λ―Έμ§ ν¬κΈ°μμ ν¬ν¨ν μ μλ ν¬κΈ°λ₯Ό 보μ¬μ€λ€. μλ³Έ μ΄λ―Έμ§μ λλΆλΆμ ν¬ν¨νλ κ²μ νμΈν μ μλ€.
- μλ³Έ μ΄λ―Έμ§ ν¬κΈ° : 800x600
- νΉμ§λ§΅ ν¬κΈ° : 50x38 (16 λ°° sub-sampling)
- μ΄ anchor κ°μ : 50x38x9 = 1900
RPN Loss
: mini-batch μ anchor μ index : i λ²μ§Έ anchor μ κ°μ²΄κ° ν¬ν¨λμ΄ μμ νλ₯ : anchor κ° positive μΈ κ²½μ° 1, negative μΈ κ²½μ° 0 - negative μΈ κ²½μ°
μ μ©νμ§ μλλ€.
- negative μΈ κ²½μ°
: μμΈ‘ bbox μ μ‘°μ λ μ’ν : μ λ΅ bbox μ μ’ν : κ°μ²΄μΈμ§ μλμ§μ λν log loss : Smooth L1 loss : mini-batch μ ν¬κΈ° (i.e., =256) : anchor μ μμΉμ κ°μ (i.e., ~2,400) : balancing parameter (Default = 10) - 10 μΌλ‘
μ κ° μ μ¬νκ² λ§μΆ°μ μ€ννλ€.
- 10 μΌλ‘
- Faster R-CNN μ μ 체 μμ€ ν¨μμ RPN μμ€ ν¨μ 2 κ°κ° ν¨κ» μ¬μ©λλ€.
RPN μ End-to-End λ‘ μ€μ°¨μμ ν, SGD λ₯Ό ν΅ν΄μ νμ΅λλ€.
Sharing Features (need to complement)
λ Όλ¬Έμμλ Faster R-CNN μ νμ΅μν€κΈ° μν΄ RPN κ³Ό Fast R-CNN μ λ²κ°μ νμ΅νλ Alternating Training λ°©μμ μ¬μ©νλ€.
- RPN μμ anchor box μ ground truth box λ₯Ό ν΅ν΄ positive/negative λ°μ΄ν°μ μ ꡬμ±ν΄ RPN μ νμ΅μν¨λ€. μ΄ λ RPN μ μ¬μ©λλ backbone λ€νΈμν¬λ λ―ΈμΈ μ‘°μ λλ€.
- RPN μ νμ΅ν ν RPN μμ Regional Proposals λ₯Ό μμ±ν΄ Fast R-CNN μ νμ΅μν¨λ€.
- Fast R-CNN μ΄ νμ΅λλ©΄ κ³ μ μν€κ³ RPN μ λ€μ λ―ΈμΈ μ‘°μ νλ€.
- μ΄ν RPN μ κ³ μ νκ³ Fast R-CNN μ νμ΅νλ€.
- Backbone λ€νΈμν¬λ₯Ό ν΅ν΄ μμ±ν νΉμ§λ§΅μ 곡μ ν¨μΌλ‘μ¨ μλ‘μ νΉμ§μ 곡μ νλ λ°©μμ μλ―Ένλ€.
Results
- Sharing Features
νΉμ§ 곡μ μΈ‘λ©΄μμ νΉμ§μ 곡μ ν λͺ¨λΈμ΄ 곡μ νμ§ μμ λͺ¨λΈλ³΄λ€ λ λμ μ±λ₯μ 보μΈλ€λ λ©΄μμ Regional Proposals μΆμΆκ³Ό νμ§κΈ°μ νΉμ§μ 곡μ νλ κ²μ΄ λ λμ μ±λ₯μ 보μΈλ€λ κ²μ μ μ μλ€. λν RPN μ cls μ reg κ° μμ λλ₯Ό κ°κ° νμΈν΄λ΄€μ λ reg κ° μλ κ²½μ° μ±λ₯μ΄ λΉκ΅μ λ§μ΄ νλ½νλ κ²μ 보μ regressor λ₯Ό ν΅ν΄ bbox λ₯Ό μ‘°μ νμ λ κ³ νμ§μ Regional Proposals μ΄ μΆμΆλ¨μ μ μ μλ€.
- Inference time
μΆλ‘ μ±λ₯μ νμΈν΄λ΄€μ λ Fast R-CNN μ 0.5 fps μΈ λ°λ©΄ Faster R-CNN μ 5 fps, λ μμ λ€νΈμν¬μΈ ZF λ₯Ό μ¬μ©νμ λλ 17 fps λ₯Ό 보μ΄λ©° μΆλ‘ μλλ λ§μ΄ μ€μμμ νμΈν μ μλ€.
- Comparing Fast R-CNN with Faster R-CNN
Faster R-CNN μ΄ μ΄μ Fast R-CNN λ³΄λ€ λ λμ μ±λ₯μ 보μΈλ€λ κ²μ νμΈν μ μλ€.