전체 글(83)
-
Object Detection 논문 리뷰. You Only Look Once:Unified, Real-Time Object Detection
앞서 정리한 Object Detection의 기법이 상당히 반영되어 있는 YOLOv1의 논문을 리뷰해보고 성능을 더 끌어올린 기법이 무엇인지를 알아보자. 또, 다음에 이어 그대로 구현도 해볼 예정이다. 참조 https://arxiv.org/abs/1506.02640 Abstract (초록) Object Detection을 바운딩 박스와 그 클래스 확률을 공간적으로 분리하여 푸는 회귀 문제로 짰다. 하나의 신경망으로 이미지에서 바운딩 박스와 클래스 예측을 한번에 수행한다. YOLO는 Localization Error가 더 많지만, 배경을 오브젝트로 예측하는 False Positive는 적습니다. YOLO는 오브젝트의 General Representation을 잘 학습합니다. (오브젝트에 대한 일반화 성능이..
2022.12.25 -
Object Detection 정리 4. Classification을 Localization에 추가
AI 딥러닝을 통한 Object Detection에 대해서 간단하게 정리해보자. 지난 정리 3에서는 Grid 방식을 적용하여 오브젝트가 다수인 경우에 대응할 수 있도록 했다. 문제. 그래서 찾은 오브젝트가 무엇인가? 우리 모델의 예측은 아직 위치 정보만 포함하고 있다.(Localization Only) 즉, 찾아낸 오브젝트가 무엇인지 분류하지 않는다. 이번 포스트에서는 우리 모델이 위치 정보와 함께 분류 정보도 리턴하도록 수정한다.(Detection = Localization + Classification) 해결. 모델 Output Dimension에 Classification Dimension을 추가하자. 분류 모델은 클래스 개수만큼의 Output Dimension을 가진다. 클래스가 [남자, 여자, ..
2022.12.23 -
Object Detection 정리 3. Grid for Muliple Objects 및 Non-Maximum Suppresion (NMS)
AI 딥러닝을 통한 Object Detection에 대해서 간단하게 정리해보자. 지난 정리 2에서는 Localization 모델에 Confidence Score를 추가하여 오브젝트가 없는 경우에 대응할 수 있도록 했다. 문제. 오브젝트가 여러개라면? 예제와 같이 오브젝트가 2개인 이미지를 우리 모델은 제대로 예측해낼 수 없다. 오직 BBOX 하나에 대한 위치정보만 return하기 때문이다. 해서 아마도 우리 모델은 두 오브젝트의 중간값 혹은 평균값을 return할 것이다. 해결. 그리드 방식으로 접근하자. 그리드 방식은 이미지를 그리드로 나눠 각 그리드에서 각각 위치 정보를 return한다. 상기 예제 이미지처럼 4x4그리드로 나눠서 위치 정보를 return하기 위해서 모델의 Head 구조를 수정해야하며..
2022.12.22 -
tf.where
tf.where Returns the indices of non-zero elements, or multiplexes x and y. 0이 아닌 요소의 인덱스를 반환하거나 x와 y를 multiplex합니다. (여기서 multiplex는 x와 y를 하나의 텐서로 합친다는 뜻인데, 그냥 합(sum)치는 게 아니라 같은 인덱스에 위치한 값 중 조건(condition)을 거쳐 참(True)이면 x의 값을, 거짓(False)이면 y의 값을 선택해 배치한다는 것이다. 아래 예제 참조.) import tensorflow as tf new_tensor = tf.where( condition, x = None, y = None, name = None ) Tensorflow를 이용해서 파이썬의 if문을 포함한 Loss F..
2022.12.21 -
tf.squeeze
tf.squeeze Removes dimension of size 1 from the shape of a tensor. 텐서의 shape에서 사이즈가 1인 차원을 제거합니다. import tensorflow as tf new_tensor = tf.squeeze( input, axis = None, name = None ) 스퀴즈하면 사실 쥐어짜는 이미지부터 떠올라서 함수(function)에 대한 이해가 바로 되지는 않았다. '쥐어짜다'라는 의미보다 '압착하다'라는 의미로 이해하면 되겠다. 즉, 의미없이 차원(dimension)을 차지하고 있는 사이즈가 1인 축(axis)를 압착하여 없애는 것이다. 연습 예제 import cv2 import tensorflow as tf import matplotlib.p..
2022.12.14 -
셀프 돌잔치 후기
1. 일정 잡기 아기의 생일이 10월 5일 수요일이라 가까운 토요일 및 공휴일로 일정을 잡아야 했다. 돌잔치는 또 아기의 생일을 넘겨서 하는 게 아니라고 한다. 10월 2일 일요일로 일정을 정했다. 주일(일요일)에 돌잔치를 하는 것을 독실한 크리스천인 처가에서 난색을 표해 10월 3일 월요일 (개천절)로 일정을 최종 확정했다. 2. 장소 정하기 6월 중순에 이미 한 카페 대관을 예약했다. 해당 카페에서 돌잔치 일주일 전 개인 사정을 이유로 일방적 취소 통보를 했다. 급하게 팔공산 디어밸리의 별관을 대관할 수 있었다. 본래 돌잔치를 진행하는 전문 팀이있는데, 우리 가족의 경우 모든 준비를 다 해놓고 일방적으로 취소당한 상태였기 때문에 장소 대관만 할 수 있도록 디어밸리 사장님이 배려해주셨다. 3. 준비물 ..
2022.12.13