컴퓨터비전(Computer Vision) 13

GAP(Global Average Pooling)

Global Average Pooling 이란 Global Average Pooling은 feature map 의 가로 x 세로 의 특정 영역을 sub sampling 하지 않고, 채널 단위로 평균 값을 추출하는 방법이다. 3차원 Feature map 을 1차원 Dense Classification layer에 연결 시, 많은 연결 노드와 파라미터가 필요하다. 예를 들어 (8 , 8, 512 ) 의 Feature map을 Flatten으로 1차원 형태로 바꾸면 8 x 8 x 512 = 32,768의 파라미터가 생기고, 여기서 100개의 뉴런으로 구성된 Layer에 연결하면 32,768,000개의 파라미터가 생긴다. 하지만 Global Average Pooling을 사용하게 되면 효과적으로 노드와 파라미터..

합성곱 신경망 정리 (Convolutional Nueral Network , CNN)

1. 합성곱층의 필요성 합성곱 신경망은 이미지나 영상을 처리하는데 유용하다. 예를 들어서 다음과 같이 3x3 흑백 이미지가 있다고 가정할때, 이미지 분석은 3x3 배열을 펼쳐서(flattening) 각 픽셀에 가중치를 곱하여 은닉층으로 전달하게 된다. 하지만 이렇게 분석하면 데이터의 공간적 구조를 무시하게 되는데, 이것을 방지하려고 도입된 것이 합성층이다. 2. 합성곱 신경망 구조 합성곱 신경망(Convolutional Neural Network , CNN) 은 음성인식이나 이미지/영상 인식에서 주로 사용되는 신경망이다. 다차원 배열 데이터를 처리하도록 구성되어 컬러 이미지와 같은 다차원 배열 처리에 특화되어 있으며 , 다음과 같은 계층으로 구성된다. 입력층 합성곱층 풀링층 완전연결층 출력층 합성곱 신경..

객체탐지 - SSD(Single Shot MultiBox Detector)

SSD가 등장하게 된 배경 R-CNN 계열의 2-stage detector은 region propsal와 같은 다양한 view를 모델에 제공하여 높은 정확도를 보여준다. 하지만 region proposal를 추출하고 처리하는 과정에서 오랜 시간이 걸려 detection 속도가 느리다는 단점이 존재한다. 반면 YOLO v1은 원본 이미지 전체를 통합된 네트워크로 처리하기에 detection 속도가 빠르다. 하지만 grid cell 별로 2개의 bounding box만 선택하여 상대적으로 적은 view를 모델에 제공하여 정확도가 떨어진다. 이처럼 일반적으로 정확도와 detection 속도는 trade-off 관계에 있다. SSD는 다양한 view를 활용하면서 통합된 network 구조를 가진 1-stage ..

파이토치(Pytorch)[4] - 선형 회귀(Linear Regression)

훈련 데이터셋과 테스트 데이터 셋 Hours(x) Points(y) 1 2 2 4 3 6 4 ? 어떤 학생이 1 , 2 , 3 시간 공부했을 때 각각 2 , 4 , 6 점을 받았다. 그렇다면 4시간을 공부한다면 몇점을 받을 수 있을까? 점수를 예측하기 위해서는 앞서 나온 정보를 이용해야 한다. 여기서 예측을 위해 사용하는 데이터를 훈련 데이터셋 , 학습이 끝난 후 모델이 얼마나 잘 작동하는지 판별하는 데이터 셋을 테스트 데이터셋이라고 한다. 모델을 학습시키기 위해서 데이터는 파이토치의 텐서의 형태를 가지고 있어야 한다. x_train = torch.FloatTensor([[1],[2],[3]]) y_train = torch.FloatTensor([[2],[4],[6]]) 가설 수립 선형회귀의 가설(직선의..

파이토치(Pytorch)[2] - 경사하강법

경사하강법 경사하강법은 미분가능한 복잡한 함수가있을 때 해당 함수의 최소점을 찾기 위한 방법이다. 기본 개념은 함수의 기울기(경사)를 구하고 경사의 반대 방향으로 계속 이동시켜 극값에 이를 때 까지 반복시키는 것이다. 이러한 방법은 다음과 같이 많이 비유되기도 한다 앞이 보이지 않는 안개가 낀 산을 내려올 때는 모든 방향으로 산을 더듬어 가며 산의 높이가 가장 낮아니는 방향으로 한 발씩 내딛어 갈 수 있 🤔 경사하강법을 왜 사용할까? 일반적으로 인공지능은 손실함수를 통해 자신의 파라미터를 검증한다. 손실함수는 인공지능의 파라미터를 통해 나온 예측값과 실제 값의 차이라고 볼 수 있으며, 손실 함수 값을 가장 낮게 나오게 하는 파라미터들이 바로 최적의 파라미터이다. 그렇다면 손실함수를 미분하여 최소,최대값을..

데이터 부족 문제 완화 [2] - Transfer Learning (전이학습)

들어가며 만일 새로운 task에 대해서 동작하는 인공지능 모델을 개발하는 업무를 담당하게 되었다고 생각해보자. 새로운 task이기 때문에 먼저 레이블링된 데이터를 확보해야하는데, 이 data annotation 과정은 시간과 금전적으로 부담되는 작업일 뿐더러, annotation 품질에 대한 이슈도 있어 매우 어려운 작업이다. 이러한 어려움을 극복할 수 있는 방안으로는 Transfer Learning을 활용할 수 있다. Transfer Learning (전이학습) Transfer Learning은 데이터셋에서 학습하며 배웠던 지식을 다른 데이터 셋에서 활용하는 기술이다. 즉, 특정분야에서 학습된 신경망의 일부능력을 유사하거나 새로운 분야에서 사용되는 신경망의 학습에 이용하는 방법이라는 것이다. 전이학습은..

데이터 부족 완화[1] - Data Augmentation

들어가며 CNN과 같은 딥러닝 모델을 학습시키기 위해서는 굉장히 많은 양의 데이터가 필요하다. 하지만 실무에서 대용량의 레이블링된(labeled) 데이터 셋을 확보하는 것은 결코 쉬운일이 아니다. 이번 포스팅은 computer vision 분야에서 이러한 데이터 부족 문제를 어떻게 완화하고 있는지에 대한 표준 방법들에 대해 공부할 것이다. Learning Representations of Dataset 모델은 데이터를 기반으로 학습하기 때문에 데이터의 퀄리티에 따라 성능이 좌우된다. 가령 인터넷 상에 존재하는 수많은 이미지 데이터를 활용한다고 할 때, 사람이 촬영한 이미지는 대부분 사람이 보기 좋은 구도로 촬영되었기 때문에 bias가 존재한다고 볼 수 있다. 또한 이 세상의 모든 데이터를 확보하는 것은 ..

컴퓨터 비전의 시작

💡학습목표 컴퓨터 비전과 인공지능의 관계 이해 및 컴퓨터 비전 개념 인공지능과 컴퓨터 비전 AI란 ? 인간의 "지능"을 컴퓨터 시스템으로 구현하는 것, 이때 "지능"은 인지, 지각, 기억, 이해, 사고 능력을 포함한다고 볼수 있다. 이러한 지능은 어떻게 컴퓨터 시스템으로 구현할까? 인공지능의 reference ⇒ 사람 사람이 세상을 배우는 과정을 생각했을 때, 오감을 활용한 지각 능력의 구현이 선행되어야 함을 알 수 있다. 특히 사람은 시각에 압도적으로 많이 의존하며 살아간다는 점을 고려하면, 인공지능에서도 시각 지각 능력의 구현이 매우 중요하다. 컴퓨터 비전 컴퓨터 비전 : 처리된 영상을 통해서 의미있는 (고수준의) 자료를 만들어 내는 것을 의미 (이미지 → 개념) 컴퓨터 그래픽스 : 우리가 입력한 자..

Object Detecion [3] - FAST R-CNN

지난글 https://zzoming00.tistory.com/32 Object Detecion [2] - SPPNET 지난글 https://zzoming00.tistory.com/31 Object Detecion [1] - R-CNN 💡 오늘 알아갈 목표 2 Stage Object Detector R-CNN R-CNN Object Detection 모델은 객체의 위치를 찾고 , Class를 분류하는 작업을 진행한다. R-CNN 모델은 zzoming00.tistory.com 들어가며 이전에 봤던 SPP-NET은 multi-stage pipelines으로 모델을 한번에 학습시키지 못한다는 한계점이 있었다. Fast R-CNN은 다음 두 가지를 통해 위의 한계점들을 극복했다 1) RoI Pooling 2) C..

Object Detecion [2] - SPPNET

지난글 https://zzoming00.tistory.com/31 Object Detecion [1] - R-CNN 💡 오늘 알아갈 목표 2 Stage Object Detector R-CNN R-CNN Object Detection 모델은 객체의 위치를 찾고 , Class를 분류하는 작업을 진행한다. R-CNN 모델은 이를 순차적으로 진행하는 대표적은 2 stage detector로, 딥 zzoming00.tistory.com 🤔 앞서 공부했던 R-CNN모델은 입력 이미지가 고정된 크기의 입력이 요구 되었다. 이는 모델의 성능에 악영향을 미친다. 사실 Convolution filter들은 입력이미지가 고정될 필요는 없다. 이미지 크기의 고정이 필요한 이유는 Fully Connected layer가 고정된..