close_btn
로그인, 회원가입후 더 많은 혜택을 누리세요 로그인 회원가입 닫기

Abstract

  • 출력 아웃풋을 feature map 당 특정 비율과 크기를 갖는 default box들로 나누고 그것에 대한 인식을 수행한다
    • 각 default box는
      • 각 오브젝트들의 스코어를 반환
      • 각 바운딩 박스의 조정된 값 반환
  • 또한 여러 스케일의 feature map에서 default box를 만들고 이 결과들을 합쳐서 성능을 높인다
  • Region proposal 방법론들(R-CNN 계열들)의 친척으로 생각할 수 있다
    • Region proposal generation 부분을 제거 함 (YOLO도 마찬가지)
    • 모든 걸 single network에서 해결
  • 결과는 ?
    • PASCAL, COCO, ILSVRC 데이터 셋에 대하여 region proposal 방법들과 비슷한 인식 성능 그러나 더 빠른 처리속도를 보임
      • 또한 단일 네트워크를 제시함 (training 과 inference가 같음)
    • 비슷한 Single stage method와 비교했을때 (YOLO) 입력 사이즈가 더 작음에도 더 좋은 인식성능을 보임

Introduction 

  • 관련연구들 
  • Region Proposal base 방법론들은 정확한 반면 계산량이 많아 임베디드화 하기 어려움
    • 또한 실시간이라고 볼 수 없는 처리속도를 보임
    • 실시간성을 획득할 경우 처리속도가 줄어듦
  • 제안하는 방법이 빠른 이유 :
    • Region proposal network가 없음
      • YOLO랑 Overfeat도 없음
    • Region proposal network가 없는 구조 중에서도 제안하는 방법은 다음과 같은 향상이 있다
      • aspect ratio를 고려한 작은 convolutional filter 사용
      • 이 것을 여러개의 feature map에 사용 : scale 고려
  • 4D126A22-5C27-480F-8D95-3EE222EE97F0.png

  • Contribution
    • YOLO랑 비슷한 single shot detection 접근방식을 취하지만 더 빠르고 정확하다
      • 느린 Region proposal 방식과는 비슷한 속도
    • 고정된 default bounding box에서 작은 컨보루션 커널을 이용하여 바운딩 박스와 카테고리를 분류하는게 핵심
    • 정확도를 높이기위해 다른 크기의 feature map에서 다른 비율의 default box를 사용하여 인식을 수행함
      • 3b965cf5-1827-4171-81e4-736200cb30c8.png

    • End-to-End 로 training 가능하며, Accuracy vs. Speed 트레이드 오프를 문제를 많인 향상 시킴

  • 2.1 Model
    • 핵심은 이미지 한장에 대하여 1) 고정된 양과 크기의 bounding box 후보들을 만들고 이 얘들의 실제 바운딩박스와 클래스 스코어를 얻는 것, 2) 이 결과들을 종합하는 것 (ex. non-maximum suppression)
    • 네트워크는  base network와 그 뒷 단으로 나뉜다
      • base network : Classification에서 높은 성능을 보인 VGG나 ResNet이 사용될 수 있다
        • 0F6BB5BD-6EC1-4F0E-A65B-007F18EEE8F3.png

        • 뒷 단 (Extra Feature Layer)는 다음과 같은 특징을 갖는다
          • 1) Multi-scale feature maps for detection : 
            • 네트워크가 진행하면 서 크기를 줄여나감 -> 스케일에 강한 디텍션
              • 각 feature map 에 적용되는 classifier는 다른 convolution model 사용
                • Overfeat과 YOLO는 단 하나의 feature map에서만 prediction을 수행
            • D8913073-947B-4078-8575-B9912DA47F89.png

          • 2) Convolutional predictors for detection : 
            • feature map 크기가 m x n x p(channel) 이라면 얘는 하나의 score 와 좌표를 뽑아내기 위해서 3x3xp의 커널을 사용하는 것임
              • 그리고 결과로 아래 그림의 Classifier : ~~ 뒷 부분 괄호 부분의 갯수를 뽑아내게 됨
            • 5AAA8EA0-98B2-4A5D-8BE7-8BF077630B23.png

          • 3) Default boxes and aspect ratios:
            • 아래 그림의 Bounding box정보는 default box의 offset값을 저장한다
            • 각 default box가 저장하는 정보는 아래 그림의 빨간색 부분과 같다
            • 4개의 default box의 예를 들고 있다
              • 즉 , 하나의 위치에서 k개의 default box를 사용하고 class 수가 c개라면 (c+4)k개 필터가 생성되어야 한다
              • feature map 크기가 m x n 이라면 아웃풋 갯수는 (c+4)kmn이 된다
            • 0494cbde-c3cf-4cb4-9bfa-7bf1f32484cb.png

            • 이 default box의 개념은 Faster R-CNN의 anchor box와 비슷하다. 그러나 SSD에서는 여러 스케일의 feature map에 적용한 차이가 있다

  • 2.2 Training 
    • 트레이닝할때 Region proposal 방식들과 SSD의 핵심적 차이는 ground truth가 특정 여러 feature map 아웃풋에 적용되어야 한다는 점이다. 자세히 알아보자.
    • 1) Matching strategy
      • Ground truth 와 default box와의 correspondence 계산을 먼저 만들어줘야 함
        • Ground truth에 맞는 default box들을 미리 결정해 놓음
        • 이를 계산하기 위한 방법으로 Jaccard overlap 사용 (Intersection Of Union)과 같음. Multi Box논문에서 사용하는 방법
          • Multibox
            • Erhan, D., Szegedy, C., Toshev, A., Anguelov, D.: Scalable object detection using deep neural networks. In: CVPR. (2014)
            • Szegedy, C., Reed, S., Erhan, D., Anguelov, D.: Scalable, high-quality object detection. arXiv preprint arXiv:1412.1441 v3 (2015)
        • Multibox에서는 ground truth와 매칭되는 단 하나의 default box를 찾지만, SSD에서는 Jacquard overlap이 0.5보다 크면 매치된걸로 함
        • 여러 스케일에서 여러 매칭을 허용하게 하기 위함
    • 2) Training objective
      • DE7802C9-5F73-4CC9-8BE3-13F256755628.png

    • 3) Choosing scales and aspect ratios for default boxes
      • Overfeat과 SPPnet은 scale에 강하게 만들기 위해 피라미드식 접근 사용
      • 제안하는 방법은 하나의 네트워크에서 이 효과를 흉내냄
      • 3D94B13C-D87C-4F04-8B10-FB691B89EAA2.png

      • 위 그림에서 맨 마지막 빨간줄 부분의 실험을 수행한 논문이 있다 (KITTI dataset에 대해서)
        • 제목 : Shallow Networks for High-Accuracy Road Object-Detection
    • 4) Hard negative mining
      • 위와 같은 매칭 단계를 거치면 대부분의 데이터는 negative sample일 것이다.
      • 전체 negative box를 이용하지 않는다. 즉 각 default box에 댛,여 confidence 높은 순으로 정렬하고 negative vs. positive를 3 vs. 1 로 정렬하여 트레이닝한다
    • 5) Data augmentation
      • 다음과 같이 구성한다
        • 1) 전체 원본 이미지 그대로 사용
        • 2) 최소 jaccard 비율이 0.1, 0.3, 0.5, 0.7 or 0.9인 patch를 random으로 선택하여 추출
        • 3) 그냥 random으로 샘플링함
      • 샘플 패치의 크기는 원본 사이즈의 [0.1, 1] 비율로 결정됨, aspect ratio는 1/2과 2 사이에서 결정됨. 
      • 이렇게 추출된 패치들은 고정 크기 (300x300 or 500x500)으로 변환되고 0.5확률로 horizontal flip됨

3. Experimental Results

  • Base network
    • VGG16 ImageNet으로 Pretraining 된 것을 사용함
    • 아래와 같은 변형을 함 : 참고 논문 - Semantic image segmentation with deep convolutional nets and fully connected crfs
      • fc6와 fc7을 fully convolutional로 바꾸고
      • fc6와 fc7 파라미터를 subsample했고
      • pool 5가 2x2- stride 2인데 이를 3x3-stride1로 바꿈
      • 구멍을 채우기 위해  atrous 알고리즘 적용
      • drop out 제거, fc8 제거
      • Fine-tuning
        • SGD with initial learning rate 10−3, 0.9 momentum, 0.0005 weight decay, and batch size 32
        • The learning rate decay policy is slightly different for each dataset, and we will describe details later. The full training and testing code is built on Caffe and is open source at https://github.com/weiliu89/caffe/tree/ssd
  • 3.1 PASCAL VOC2007
    • 74eb0aab-3285-4e58-8c37-1fbb49e69e5e.png

    • 위 그림의 모델을 그대로 사용
      • Conv4_3은 사이즈가 38x38이라서 3개의 default box만 사용(scale 0.1 ratio 1/2, 2)
      • 그리고 conv4_3은 feature scale이 달라서 L2 normalization을 적용한다고 하는데, 이는 아래의 논문을 참조하면 나온다고 함
        • ParseNet : Looking wider to see better
      • ddbf50d3-0e67-4843-983f-946badd191c8.png

      • 264d2a81-f871-4d4b-ae02-08efba890b94.png

 

  • 3.2 Model analysis
    • Data augmentation is crucial
      • 05B3817A-A00E-4095-BE60-0869604D3E5B.png

    • More feature map is better
      • 05B3817A-A00E-4095-BE60-0869604D3E5B.png

    • More default box shapes is better
      • 05B3817A-A00E-4095-BE60-0869604D3E5B.png

    • Atrous is better and faster
      • 그냥 VGG16을 사용하고 pool5를 그냥 2x2-s2로 놔두고 fc6와 fc7으로 부터 subsampling을 안하고 conv5_3을 prediction map에 추가했을때 결과는 0.7% 안좋아졌고, 스피드는 50% 느려짐
      • 05B3817A-A00E-4095-BE60-0869604D3E5B.png

      • 이 부분에 대해 참조할 논문 : Semantic image segmentation with deep convolutional nets and fully connected crfs

 

  • 3.3 PASCAL VOC2012
    • b9ecff0a-1997-47a2-a178-8c01200cf208.png

 

  • 3.4 MS COCO
    • COCO는 작은 바운딩박스들이 많아서 default bounding box 크기를 더 작게함
      • Scale이 0.2였는데 0.1로 바꿈
      • conv4_3의 scale을 0.07로 함  (300x300에서 21픽셀에 해당한다고 함 21/200=0.07 )
      • 6802d4a5-14e9-4011-a37d-9f18e5b5601b.png

    • ION[21] : Inside Out Network :  R-CNN먄든얘가 1저자 임
      • Faster RCNN의 multiscale 버젼인데 recurrent network로 context정보를 추가함

 

  • Interence Time
    • 749beb1d-5d47-4eab-b0b8-4b76de8c65ee.png

    • e675434c-53b8-41e7-9a79-0d70fd3355d4.png


- 감사합니다 -

번호 제목 글쓴이 날짜 조회 수
공지 게시판 자료 복구의 건 음파선생 2017.09.11 51
24 [실습반] 영상인식 - 성별팀 MSAPI 사용 예제 [1] 모두의연구소 2017.07.11 7
23 [논문반/논문세미나] Deep speech 2 [1] 모두의연구소 2017.07.11 22
22 [자율주행장난감] You only look once 모두의연구소 2017.07.11 33
21 [실습반/자율주행장난감] Q-Learning 모두의연구소 2017.07.11 18
20 [논문반/논문세미나] Neural Turing Machine 모두의연구소 2017.07.11 26
19 [논문반/논문세미나] TensorFlow: A system for large-scale machine learning 모두의연구소 2017.07.11 15
18 [논문반/논문세미나] TensorFlow: A system for large-scale machine learning file 모두의연구소 2017.07.11 27
17 [논문반/논문세미나] TensorFlow: A system for large-scale machine learning 모두의연구소 2017.07.11 12
16 [자율주행장난감]_160817_RL_DQN 모두의연구소 2017.07.11 13
15 [논문반/논문세미나] Inside-Outside Net : Detecting Objct in Context with Skip Pooling and Recurrent Neural Networks 모두의연구소 2017.07.11 13
14 [논문반/논문세미나] Inception trilogy 2, 3 [1] file 모두의연구소 2017.07.11 35
13 [논문반/논문세미나] FaceNet_A Unified Embedding for Face Recognition and Clustering 모두의연구소 2017.07.11 53
12 [중급반/논문세미나] Learning to Respond with Deep Neural Networks for Retrieval-Based Human-Computer Conversation System file 모두의연구소 2017.07.11 30
11 [자율주행 장난감] 자율주행 차량이나 ADAS 관련 Database 링크 모음 모두의연구소 2017.07.11 37
» [중급반/논문세미나] SSD : Single Shot MultiBox Detector [2] 모두의연구소 2017.07.11 1015
9 CNN practical - MATLAB으로 자세히 설명하는 CNN 모두의연구소 2017.07.11 72
8 [중급반/논문세미나]Deep Learning을 이용한 Emotion Recognition 기법들 소개 모두의연구소 2017.07.11 75
7 [중급반] Deep Network with Stochastic Depth [1] 모두의연구소 2017.07.11 136
6 [중급반] Towards Good Practices for Very Deep Two-Stream ConvNets 모두의연구소 2017.07.11 2
5 [Edu2] First Contact With Tensorflow Chp 3~4 자료 공유 모두의연구소 2017.07.11 8