목록전체 글 (55)
Logical Scribbles
이번에는 이 AlexNet의 구조에 대해 빠르게 복습한 후 구현을 해보도록 하자. 구현하는데 있어서 두가지 정도의 어려움이 있었는데, 이후 설명하도록 하겠다. AlexNet에는 5개의 Convolutional layer와 3개의 Fully-connected layer가 존재한다. AlexNet에 입력 되는 이미지의 사이즈는 227 x 227 x 3 이다. 위의 그림에는 224로 되어 있는데 잘못된 것이다. (저자가 이후에 227이 맞다고 정정하였다고 한다.) 이미지의 전처리 과정을 살펴보면 데이터셋의 이미지의 사이즈를 먼저 256*256 사이즈로 crop 한 뒤, 227*227사이즈로 random crop 한다. 이후 horizontal reflection을 적용해야하고, PCA를 적용해야 한다. 이 과..
Subgradient method의 convergence theorem과 convergence rate의 증명에서 사용되는 basic inequality를 증명해 보았다. 끝!
이번 포스팅은 AlexNet에 대한 논문이다. 논문 제목은 'ImageNet Classification with Deep Convolutional Neural Networks ' 이고, AlexNet은 VGG를 소개한 포스팅에서 말했듯 세상에 딥러닝의 시대가 도래했음을 알린 모델이기도 하다. 또한 2012년 ILSVRC (ImageNet Large Scale Visual Recognition Challenge)의 우승자이다. AlexNet은 LeNet-5 등장 이후 약 10년 뒤에 나온 모델이며, 해당 연도 이미지넷 대회에서 경쟁팀 대비 정확도가 약 10% 정도 앞서있는 모델이었다. 이 모델이 AlexNet이라고 이름 붙여진 이유는 Alex Krizhevsky 라는 이름을 가진 딥러닝 대가 제프리 힌튼 ..
이번에는 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한테 물어보았다. 대충 감이 잡힌다. 처음에는 이미지의 픽셀에 대해 그래디언트를 계산한 후 셀 내에서 이의 방향과 크기..
이번 포스팅은 VGG 논문 구현이다. 만약 VGG 논문 혹은 논문 리뷰를 읽지 않았다면 읽고 보는 것을 추천한다. https://stydy-sturdy.tistory.com/7 [논문 리뷰] Very Deep Convolutional Networks For Large-Scale Image Recognition (VGG) - 구조, Training 그리고 Test 오늘은 ICLR 2015에 개제된 논문 'Very Deep Convolutional Networks For Large-Scale Image Recognition' 에 대해 알아보자. 많이들 'VGG' 라고 부르는 모델을 소개하고 있는 논문이다. https://arxiv.org/pdf/1409.1556v6.pdf 2010년 stydy-sturdy...
이번 포스팅에서는 파이토치의 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. ..