이번 주에는 물체 탐지에 대해서 배울건데, 컴퓨터비전의 한 분야로 최근 크게 급성장함.
물체 탐지 object detection를 구현하기에 앞서 물체 위치 추정 object localization을 먼저 해야함.
이것들이 무엇인지 알아보자
이미지 분류는 이미지가 주어지면, 라벨을 구하는게 분류
이미지 분류와 위치 추정의 경우 이미지가 주어질때, 라벨과 해당 물체가 이미지의 어디에 존재있는지 알려줌
물체 탐지의 경우, 이미지 상에 존재하는 여러 물체들을 찾아내고 위치와 라벨을 알려줌.
이미지 분류, 이미지분류 + 위치 추정 => 이미지 상의 한 물체만 찾음
물체 탐지 => 여러 물체들을 찾아낸다.
위치 추정을 배우면 물체 탐지를 공부하는데 도움 되겠다.
이미지를 합성곱신경망에다가 넣으면 특징 벡터를 구할거고, 소프트맥스 함수를 적용해서 이 이미지가 무엇인지 찾아내겠다.
일반적인 분류 파이프라인이 됨.
그러면 이미지에 있는 차량의 위치를 어떻게 추정해낼수 있을까?
신경망이 바운딩 박스를 출력하도록 고치면 되겠다.
바운딩 박스는 4개의 수 bx, by, bh, bw로 구성됨.
bx, by는 바운딩 박스의 중심점, bh, bw는 바운딩 박스의 높이와 폭
훈련셋은 라벨 뿐만이 아니라 바운딩 박스에 대한 정보도 가지고 있어야 지도 학습에 사용할수 있겠다.
이 예시의 경우 bx = 0.5, by = 0.7, bh = 0.3, bw = 0.4
* bh는 바운딩 박스의 높이가 이미지 높이의 30%정도 되기때문
좌측의 클래스들과 우측의 바운딩 박스와 관련된 4개의 수를 출력함.
그러면 타겟 라벨 y를 정의해보자.
가장 먼저 pc는 물체일 확률로 해당 바운딩 박스가 배경인 경우 0이 된다.
다음으로 bx, by, bh, bw로 바운딩 박스에 대한 것이 있고
마지막으로 c1, c2, c3으로 이 이미지의 클래스들이 들어가겠다.
한번 예시를 보면
위 좌측 이미지가 x로 들어가면
위 이미지의 바운딩 박스에 차가 있으므로
y = [1, bx, by, bh, bw, 0, 1, 0] 이 되겠다.
위 우측 이미지가 x로 들어가는 경우
y = [0, ? ? . .. .]로 물체가 존재하지 않음.
훈련셋의 라벨은 위와 같은 형태로 정의되어야 한다.
마지막으로 비용함수를 정리하자면
L(hat_y, y)은 어떻게될까?
y_1 = 1 인 경우(pc = 1, 해당 바운딩 박스에 물체가 존재할때)에 제곱합.
y_1 = 0인 경우 (hat_y_1 - y_1)^2이 되겠다.
*y_1 = 0일때 나머지 원소들은 상관없기 때문.
여기서는 간단하게 설명하고자 제곱 오차를 사용했으나
실제로는 로그 가능도 비용을 c1, c2, c3 계산에 써도 되고,
바운딩 박스 좌표계들을 계산하는데 제곱오차를
pc의 경우 로지스틱 회귀 비용을 사용해서 구할수도 있겠다.
지금까지 어떻게 물체를 분류하고, 위치 추정을 하는지 다룸.
신경망이 실제 물체 위치를 출력하도록 고쳐 유용함을 알 수 있었음.
다음 영상에서는 어떻게 신경망이 회귀로 실제 수들을 출력하는지 알아보자.
'컴퓨터과학 > 딥러닝 AI Andrew Ng' 카테고리의 다른 글
C4W1L05, C4W1L06 Strided Convolutions, Convolutions Over Volumes (0) | 2021.04.19 |
---|---|
C4W1L01 ~ C4W1L04 Computer Vision, Edge Detection Examples, More Edge Detection, Padding (0) | 2021.04.19 |
딥러닝개론 - C1W1L3. 신경망을 이용한 지도학습 (0) | 2021.04.14 |
딥러닝개론 - C1W1L2. 신경망이란 무엇인가? (0) | 2021.04.14 |
딥러닝개론 - C1W1L1. 개요 (0) | 2021.04.14 |