본문 바로가기

그냥, 코딩

[개발자를 위한 머신러닝&딥러닝] 고급 컴퓨터 비전: 이미지에서 특징 감지하기

반응형

지난 포스팅

https://jamjamzo.tistory.com/115

 

[개발자를 위한 머신러닝&딥러닝] 컴퓨터 비전 소개

지난 포스팅 https://jamjamzo.tistory.com/114 [개발자를 위한 머신러닝&딥러닝] 텐서플로(Tensorflow) 사용하기 지난 포스팅 https://jamjamzo.tistory.com/112 [개발자를 위한 머신러닝&딥러닝] 텐서플로(Tenso..

jamjamzo.tistory.com

 

Part1. 모델구축

3장 고급 컴퓨터 비전: 이미지에서 특징 감지하기 

 모델을 한 단계 더 발전시키려면 이미지에 있는 특징을 감지해야 한다. 특징을 감지하는 방법은 우리에게 익숙한 사진과 이미지 처리 방법에서 찾을 수 있다. 포토샵이나 김프같은 도구를 사용해 이미지를 선명하게 만들어봤다면 수학적 필터를 이미 픽셀에 적용한 것이다. 이런 필터를 합성곱(convolution)이라고 한다. 신경망에 합성곱 신경망(CNN, Convolutional Neural Network)를 만들어 본다. 

이미지 증식(풍부한 특징 추출) → 전이 학습(다른 사람이 만든 기존의 특징 사용) → 드롭아웃(모델 최적화)

3.1 합성곱(convolution)

출처: 개발자를 위한 머신러닝&딥러닝, 3.1 합성곱 그림 3-1 앵클부츠 합성곱

  • 중앙의 픽셀값이 192
  • 필터: 3x3 파란색 그리드
  • 필터의 동일한 위치에 있는 값과 곱한 뒤 모두 더하면 현재 픽셀에 대한 새로운 값이 나온다. 
  • 이 과정을 모든 픽셀에 반복한다.
    • new_val = (-1 * 0)  + (0 * 64)  + (-2 * 128)  + (0.5 * 48)  + (4.5 * 192)  + (-1.5 * 144)  + (1.5 * 142)  + (2 * 226)  + (-3 * 168)  =577
  • 이미지의 많은 정보가 축소되기 때문에 이미지를 특성으로 압축하는 필터를 학습할 수 있다. 
  • 이런 특성을 레이블에 매핑할 수 있다. 

 

3.2 풀링(pooling)

 이미지 안에 있는 콘텐츠의 의미를 보존하면서 이미지의 픽셀을 줄이는 과정이다. 

출처: 개발자를 위한 머신러닝&딥러닝, 3.4 풀링 그림 3-4 최대 풀링

  • 흑백 이미지 왼쪽 위에 있는 주황색 상자 : 2 x 2 
  • 풀링(pooling) : 위의 16개의 픽셀을 2 x 2 배열로 작게 나눈다. 
  • 최대 풀링(max pooling): 각 그룹에서 최댓값을 선택하고 이를 새로운 이미지로 재조립한다. 즉, 픽셀이 16 → 4로 75% 줄어든다. 
  • 이 외에도 풀링 단계에서 가장 작은 값을 선택하는 최소 풀링(min pooling), 평균값을 선택하는 평균 풀링(average pooling)이 있다. 

 

3.3  합성곱 신경망 만들기

 이미지 안에 있는 콘텐츠의 의미를 보존하면서 이미지의 픽셀을 줄이는 과정이다. 

https://colab.research.google.com/drive/1xv5-aVRDVvCpibPmcH9lXkZJGXaXr0k9?usp=sharing 

 

개발자를 위한 머신러닝&딥러닝_3.3.합성곱 신경망 만들기

Colaboratory notebook

colab.research.google.com

 

 

반응형