목록딥러닝 (21)
Logical Scribbles
이번에는 OpenCV 라이브러리를 통해 HOG를 이용한 간단한 객체 인식을 해보도록 하자. OpenCV는 처음 써본다. 코드가 매우 간단하다. (OpenCV에서 많은 것을 지원해주는 듯 하다.) 1. 구현 import cv2 from google.colab import drive drive.mount('HOG') cv2 모듈을 불러오고, 구글 드라이브에 마운트 해준다. from google.colab.patches import cv2_imshow 나는 구글 코랩으로 진행했는데, 코랩에서는 cv2.imshow()를 지원하지 않는다고 한다. 따라서 추가적으로 google.colab.patches에서 cv2_imshow를 불러와야 한다. (처음에 cv2.imshow()로 이미지 출력을 도전하였으나 실패했다.)..
이번 포스팅에서는 'Histogram of Oriented Gradient for human detecting' 라고도 불리는 HOG에 대해 알아보자. 내가 HOG를 공부하게 된 계기는 R-CNN 논문을 읽다가 제일 처음 막혔던 부분이었기 때문이다. R-CNN 논문에서 그 때 당시의 문제점으로 HOG 방식이 정체되고 있다는 말이 나오는데, HOG 방식이 대체 뭔가하고 알아보았다. 우선 Histogram of Oriented Gradient for human detecting을 직역해보자. '인간 탐지를 위한 기울기 기반의 히스토그램' 아직은 무슨말인지 잘 이해가 되지 않는다. 먼저 GPT한테 물어보았다. 대충 감이 잡힌다. 처음에는 이미지의 픽셀에 대해 그래디언트를 계산한 후 셀 내에서 이의 방향과 크기..
이번 포스팅에서는 파이토치의 torchvision.transforms를 갖고 놀아보는 시간을 가져보자. torchvision.transforms에서는 다양한 변형을 제공한다. 이는 데이터의 전처리 등에 사용되며 데이터가 효과적으로 학습되기 위해 필수적이다. 오늘은 그 변형들 중 Resizing, Random Horizontal Flip, Nomalize, Compose, Center Crop, Five Crop, Gray Scale 그리고 Random Invert를 한 이미지에 적용하고 어떠한 변화가 있나 살펴볼 것이다. 1. 모듈 가져오기 import torch from torchvision import transforms import matplotlib.pyplot as plt 모듈로는 torch, ..
Object Detection 관련 논문을 읽으면 거의 무조건 나오는 IoU와 mAP에 대해 알아보도록 하자. 물론 나도 mAP에 대한 개념이 정확하지 않아서 공부하는겸 작성하는 글이므로, 오류가 있으면 지적 바란다. 1. IoU 머신러닝을 공부해 본적 있다면 IoU는 한번쯤 들어보았을 것이다. 간단히 말해서 IoU란, 정답 영역과 예측 영역이 얼만큼 겹쳐져 있는지를 평가하는 지표이다. 당연히 IoU가 크면 모델이 object detection을 잘한다는 해석을 할 수 있을 것이다. 수식으로 표현하면 다음과 같다. 분모는 각 영역의 넓이를 더한 후 겹치는 영역의 넓이를 1번 빼준 것이고 (왜냐하면 두 영역의 넓이를 더하면 겹치는 영역이 2번 더해지는 꼴이기 때문), 분자는 겹치는 영역의 넓이이다. 2. ..
공부를 하며 Batch-Nomalization에 대한 정리를 해보았다. 다음과 같은 NN이 있다고 하자. 우리는 mini-batch를 이용하여 NN을 학습시킬 것이다. 하지만! 빨간 점(노드)에 들어오는 input의 distribution은 batch마다 변화할 수 있다. (직관적으로 내가 이해한 바로는 어떤 batch를 잡았을때 그 batch만의 특징이 있을 수 있으며 그 batch마다 고유의 distribution이 있을 것이다. 결론은 이게 NN의 학습에 안좋다고 한다.) 따라서 output의 distribution도 batch마다 변화할 수 있을 것이다. 가령 Update 마다 이러한 분포를 가진 input이 들어온다고 할 때, 이러한 batch의 고유한 distribution은 학습 과정에 방해..