cs230_lec6_C4W3

Updated:

Object localization

  • Image classification은 이미지가 어떠한 종류인지 구분
  • Classification with localization : 종류인지 구분+ 위치
  • Detection : 감지하는 물체가 1개 이상임

    Classification with localization

  • 대부분 softmax층으로 (물체1, 물체2, 배경) 등으로 물체를 확인함
  • Localization은 추가로 층을 만들어서 결과를 출력하게 한다.
    • bx,by,bw,bh에 관한 정보(b : bounding box)
  • 출력 y 정의
    • y의 첫번째 구성요소인 $p_c$는 물체가 있는지 확인(0, 1)
    • y의 다음 구성요소는 bx,by,bh,bw
    • y의 그 다음으로는 c1, c2, c3 ~ (각 클래스 분류)
  • $p_c=0$이면 뒤에는 고려할 필요가 없음
  • loss function은
    • if : 각각의 차이 손실값의 제곱을 더한 것과 같다
    • if : $y_1$의 차이 손실의 제곱을 더한 것과 같다

Landmark Detection

  • 이미지에서 중요한 점을 찾는 것
  • 왼쪽 눈고리를 찾는 문제면 $l_{1x},l_{1y}$
  • 여러 점을 찾는 문제면 $l_{1x},l_{1y},l_{2x},l_{2y}, \cdots$
  • 해당 정보를 포함하는 신경망을 만들면 이를 찾을 수 있음

Object detection

  • 레이블된 데이터가 있어야 함 (자동차 부분만 잘라내기)
  • 슬라이딩 윈도우 방식
    • 그림의 처음부터 끝까지 박스 위치를 약간씩 바꿔가면서 해당 위치에 원하는 object가 있는지 확인하는 것
    • 윈도우 박스의 크기를 갈수록 크게 하면서 검증
    • 단점으로는 각 윈도우에 대해서 합성곱 계산을 해야 하기 때문에 단일 객체 인식 시 계산 비용이 엄청 크게 발생한다
    • 신경망 전에는 선형 분류기 같은것을 사용해서 슬라이딩 윈도우 방식을 써도 그렇게 계산비용이 많이 들지 않았다.

Convolution implementation of sliding windows(논문명)

  • FC 레이어 대신 이미지의 크기에 맞는 합성곱 신경망 사용

  • 합성곱을 통해 각 슬라이딩 윈도우를 동시에 처리할 수 있다.
  • 맨위의 작업을 픽셀이 확장되어도 다음과 같이 계산 가능
  • 보다 효율적인 계산 가능
  • 큰 합성곱을 사용해서 한번에 사용 가능

  • 문제점 : 경계 상자의 위치가 정확하지 않을 수 있다
  • 실제로 경계 상자도 네모나지 않을 수 있다

YOLO Algorithm (논문- 읽기 어려움)

  • 위의 문제점을 해결하기 위한 알고리즘
  • 그리드를 그려서 이미지를 나누고 각각의 그리드에 대해서 Classification with localization 알고리즘 실행
  • 합성곱을 통해서 적용가능하다. 그리드가 9개라고 해서 9번 실행하는 것이 아니라 한번의 신경망에서 진행된다.
  • 위에는 3X3 예시를 들었지만 더 fine하게 19X19하게 해도 된다.
  • bx,by,bw,bh정의
    • bx,by는 0에서 1사이에 있음
    • bw,bh는 1을 넘을 수 있음(이미지가 박스보다 클수 있으므로)
    • 다른 parameterization 방식이 있지만 해당 방식도 잘 작동한다

Intersection over union(IOU)

  • 물체 감지 알고리즘의 작동 성능 평가
  • 감지 박스와 실제 경계 박스의 교집합의 크기를 계산하는 것
  • IOU 값이 높을 수록 잘 작동한다고 본다(보통 0.5이상)

Non-max suppression(비-최대값 억제)

  • 알고리즘이 각 물체를 한번씩만 인식하도록 하는 것
  • 정리하자면 감지된 값들을 정리하는 것
    • 1) 가장 Pc가 높게 나온 상자를 표시
    • 2) 해당 박스와 IOU가 높은 다른 박스 삭제
    • 3) 그다음에 가장 높은 Pc가 나온 상자 표시
    • 4) 해당 박스와 IOU가 높은 다른 박스 삭제
    • 5) 반복 (클래스가 많으면 전체 과정을 클래스의 수만큼 거쳐야 함)

Anchor box(앵커 박스)

  • 격자 셀이 여러 물체를 관찰하고 싶을 때 사용
  • 앵커 박스의 개수를 정의함
  • 비용 레이블을 감지할 물체의 개수만큼 추가하여 정의
    • 기존 방식과 비교하면 다음과 같다
    • 3가지 박스가 있는 경우는 위 알고리즘이 다룰 수 없음. 그리드가 많을수록 위의 경우는 거의 없어지나 학습 알고리즘이 더 전문화되는 계기를 줌
    • 두 물체가 격자 셀에 연관되고 같은 앵커 박스를 같는 경우도 다룰 수 없음
    • 자동으로 앵커 박스를 고르는 방식도 있음(심화)

Leave a comment