[딥러닝] 이미지 처리를 위한 딥러닝 모델 - CNN (Convolution Neural Network)
2022. 1. 5. 20:12
1. 이미지 처리
- 컴퓨터는 이미지를 각 픽셀 값을 가진 숫자 배열로 인식하므로 같은 크기로 통일 필요
- 가로 세로 픽셀 사이즈를 표현하는 해상도 통일
- 색을 표현하는 방식 통일 (RGB, HSV, Gray-scale, Binary 등)
이미지 처리 순서
1) Convolution Layer로 특징 찾기
2) Pooling Layer는 처리할 맵(이미지) 크기 줄이기
3) 위의 과정을 반복할 때마다 줄어든 영역에서 특징을 찾고 빠른 학습 가능
2. CNN (Convolution Neural Network)
- 기존 다중 퍼셉트론 기반 신경망의 이미지 처리 방식으로는 극도로 많은 수의 파라미터가 필요하며, 이미지 회전, 반전 등의 변화시 성능 저하
- CNN(합성곱 신경망) : 이미지의 패턴이 아닌 특징을 중점으로 인식. 작은 필터를 순환시키는 방식.
- CNN 기반 이미지 처리 기술에는 Object detection & segmentation, Super resolution (SR) 등이 있음
2.1 CNN의 구조
- 입력 이미지의 특징을 추출, 분류하는 과정으로 동작
3. 이미지의 특징 추출 단계
3.1 Filter & Feature map
- filter : 특징이 존재하는지 검출하기 위한 함수
- feature map : filter를 적용하여 얻어낸 결과로 (input data)*(filter)의 합
- filter가 이미지를 이동하며 새로운 이미지(feature map) 생성
- filter를 일정 간격으로 이동시키면서 input data에 연산을 적용하는 방식이 convolution이며, CNN은 이를 부분적으로 적용하는 방식
- feature map 값이 0에 가까울 경우 특징이 존재하지 않고, 크게 나올 경우 특징 존재
3.2 Feature map 크기 변형 - padding, striding
1) padding
: 원본 이미지의 가장자리에 설정한 만큼 픽셀을 추가
- filter를 적용한 결과는 원본 이미지보다 크기가 작아짐
- padding을 통해 입력 이미지와 출력 이미지의 크기 차이를 줄임
- edge 또는 모서리 부분의 픽셀 정보도 활용 가능할 수 있게 함
2) Striding
: filter를 이동시키는 거리(stride) 설정
3.3 노이즈 축소 - Pooling (Sub-sampling)
: 이미지의 왜곡의 영향(노이즈)를 축소하는 과정
- 이미지의 크기를 줄이고 불필요한 데이터를 정리하여 특정 feature를 강조
- Max Pooling : 주로 쓰이는 방식으로 최대값을 대표값으로 축소
- Average Pooling : 평균값을 대표값으로 축소
5. 이미지 분류 단계
- Fully connected Layer : 추출한 특징을 사용하여 이미지 분류
- Softmax : 마지막 계층에 Softmax 활성화 함수를 사용하여 가장 확률이 높은 class를 output으로 분류
'Python > 머신러닝' 카테고리의 다른 글
[머신러닝] 머신러닝 모델을 이용한 데이터 분석과 예측 (0) | 2022.01.14 |
---|---|
[딥러닝] 자연어 처리를 위한 모델 - RNN (Recurrent Neural Network) (0) | 2022.01.06 |
[머신러닝] 딥러닝 구현 - 텐서플로우 (0) | 2022.01.04 |
[머신러닝] 분류 알고리즘 - 의사결정나무 (Decision Tree) & 혼동 행렬 (Confusion Matrix) (0) | 2022.01.02 |
[머신러닝] 단순 선형 회귀, 다중 선형 회귀 (0) | 2022.01.02 |