jjimini98 / CapstoneProject2

Capstone_Project2
0 stars 2 forks source link

모델 및 알고리즘 조사 (유지민) #3

Closed jjimini98 closed 3 years ago

jjimini98 commented 3 years ago

YOLO 알고리즘

  1. YOLO는 You Only Look Once로 객체 인식모델 중 가장 빠르며 성능도 가장 좋다.

    기존의 객체 인식은 classification 문제를 2단계로 나눠 검출해 정확도는 높았지만 속도는 아주 느렸다. 하지만 YOLO는 one stage 검출기를 이용해 조금 정확도는 떨어지더라도 엄청 빠른 검출기를 만들어 낸 것이다.

  2. YOLO의 객체 인식 방법

    1. 이미지를 동일한 크기의 그리드로 나눈다.
    2. 각 그리디에 대해 그리드 중앙점을 중심으로 미리 정의 된 경계 박스의 개수를 예측하고 이를 기반을 신뢰도를 측정. 이미지에 객체가 포함이 되어있는지 아니면 배경만 단독으로 있는지 여부가 포함됨.
    3. 이 중 높은 객체 신뢰도를 가진 게 결과로 도출 관련동영상
  3. YOLO 선택 이유

    우리가 해야하는 작업과 굉장히 동일함. 위 동영상에서는 이미지가 아니고 움직이는 영상일 때 객체를 인식할 수 있는지 확인한 건데, 동영상에서도 되면 아마 이미지도 가능하지 않을까 싶다.

YOLO알고리즘 정리

jjimini98 commented 3 years ago

abstract

최근의 객체탐지 기법들은 region proposal algorithm에 의존하고 있다.

발전된 SPPnet,(Spatial Pyramid Pooling Network), Fast R-CNN은 region proposal 을 계산하는데 걸리는 시간을 줄여준다. 본 연구에서 전체 이미지 컨볼루션 기능을 감지 네트워크와 공유하여 거의 비용이 들지 않는 지역 제안을 가능하게 하는 지역 제안 네트워크(Regional Prposal Network , RPN)를 소개한다.

RPN 은 객체의 경계(바운더리)와 객체성의 점수를 동시에 예측하는 fully convolutional network임

RPN은 고품질 지역 제안을 생성하기 위해 종단(end-to-end) 간 훈련되며, Fast R-CNN이 이를 검출에 사용한다.

우리는 또한 RPN과 Fast R-CNN을 컨볼루션 기능을 공유함으로써 하나의 신경망으로 병합한다. 최근 널리 사용되는 신경 네트워크의 용어를 "attention" 메커니즘으로 사용하여, RPN 구성 요소는 통합 네트워크에 어디를 찾아야 하는지 알려준다. 우리의 탐지 시스템은 GPU에서 프레임률이 5fps(모든 단계 포함)인 동시에 이미지당 300개의 제안만으로 PASCAL VOC 2007, 2012 및 MS COCO 데이터 세트에서 최첨단 객체 감지 정확도를 달성한다. → 엄청 빠른 속도임.

메인 아이디어

Faster RCNN은 Fast RCNN을 모태로 가져간다. Fast RCNN과의 차이점은 Selective Research 부분이 없다는 것

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/9d69da39-114f-42ac-899b-6b05e6867242/Untitled.png

Fast RCNN

동작과정

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/0b09fe7e-d28f-4216-a4ac-fca2a4671777/Untitled.png

더 빠른 R-CNN이라고 불리는 우리의 물체 감지 시스템은 두 개의 모듈로 구성되어 있다. 첫 번째 모듈은 지역을 제안하는 deep fully convolutional network이고, 두 번째 모듈은 제안된 영역을 사용하는 Fast R-CNN 검출기이다. 전체 시스템은 객체 감지를 위한 single unified network 이다. 'attention' 메커니즘이 있는 신경 네트워크의 최근 인기 있는 용어를 사용하여 RPN 모듈은 Fast R-CNN 모듈에 어디를 찾아야 하는지 알려준다. 섹션 3.1에서는, Region Proposal을 위한 네트워크의 설계와 속성을 소개한다. 섹션 3.2에서는 기능을 공유하는 두 모듈을 훈련하기 위한 알고리즘을 개발한다.

위 그림에 대한 설명

  1. 이미지에 convolution 곱을 해서 feature map을 추출
  2. 이를 RPN에 전달해서 RoI (Region of Interest : 관심부분 ) 그다음 classification으로 object detection 을 진행

훈련 과정

  1. ImageNet pretrained 모델을 불러온 다음, RPN을 학습시킨다.

  2. 1 단계에서 학습시킨 RPN에서 기본 CNN을 제외한 Region Proposal 레이어만 가져온다. 이를 활용하여 Fast RCNN을 학습시킨다. 이 때 ,  처음 피쳐맵을 추출하는 CNN까지 fine tune 시킨다.

  3. 앞서 학습시킨 Fast RCNN과 RPN을 불러온 다음, 다른 웨이트들은 고정하고 RPN에 해당하는 레이어들만 fine tune 시킨다. 여기서부터 RPN과 Fast RCNN이 컨볼루션 웨이트를 공유하게 된다.

  4. 마지막으로 공유하는 CNN과 RPN은 고정시킨 채, Fast R-CNN에 해당하는 레이어만 fine tune 시킨다.

Region Proposal Network

영역 제안 네트워크(RPN)는 이미지(모든 크기의)를 입력으로 가져가고 각각 객체성 점수를 가진 직사각형 객체 제안 세트를 출력 우리는 이 섹션에서 설명하는 완전한 컨볼루션 네트워크를 사용하여 이 프로세스를 모델링한다. 우리의 최종 목표는 Fast R-CNN 객체 감지 네트워크와 계산을 공유하는 것이기 때문에, 우리는 두 개의 네트워크가 공통의 컨볼루션 레이어 세트를 공유한다고 가정한다. 우리의 실험에서, 우리는 공유 가능한 컨볼루션 레이어가 5개인 자일러와 퍼거스 모델(ZF)과 공유 가능한 컨볼루션 레이어가 13개인 시모냐와 지서만 모델(VGG-16)을 조사한다.

지역 제안을 생성하기 위해 마지막 공유 컨볼루션 계층별 컨볼루션 피쳐 맵 출력 위로 작은 네트워크를 슬라이딩한다. 이 작은 네트워크는 입력 컨볼루션 피처 맵의 입력 및 xn 공간 창으로 사용된다. 각 슬라이딩 윈도우는 저차원 기능(ZF의 경우 256-d, VGG의 경우 512-d, ReLU의 경우)에 매핑됩니다. 이 기능은 완전히 연결된 두 개의 형제 계층, 즉 상자 회귀 계층(reg)과 상자 분류 계층(cls)으로 공급된다. 본 논문에서는 입력 이미지의 효과적인 수용 필드가 크다는 점에 주목하여 n = 3을 사용합니다(ZF 및 VGG의 경우 각각 228픽셀). 이 미니 네트워크는 그림 3(왼쪽)의 단일 위치에 설명되어 있습니다. 미니 네트워크는 슬라이딩 윈도우 방식으로 작동하기 때문에 완전히 연결된 레이어는 모든 공간 위치에서 공유된다는 점에 유의한다. 이 아키텍처는 n×n 컨볼루션 레이어에 이어 두 개의 형제 1×1 컨볼루션 레이어(각각 reg와 cls)로 자연스럽게 구현된다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/31ca17fb-ec7f-45ed-a316-8e59361ba015/Untitled.png

앵커박스 : 채널의 개수만큼 각각의 좌표를 앵커로 삼아 k개의 앵커박스가 나오는데 여기에 object 인지 아닌지에 대한 예측값이 담겨있다. 이 값들을 softmax를 적용해 해당 앵커가 object일 확률 값을 얻어낸다.

loss function

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/58a48619-03e0-4ef7-9cac-62da437a05f1/Untitled.png

jjimini98 commented 3 years ago

https://www.youtube.com/watch?v=XS2UWYuh5u0&t=451s&ab_channel=TEDxTalks

욜로 만든사람이래용