1. Object Detection
- 사물을 인식 하는 방법
- 이미지 영역을 가로/세로로 분할 한 후 분할된 영역들을 CNN을 통해 분석 작업을 한다. 각 영역에 특정 물체가 속해
있는지를 판별하여 물체를 인식한다
- yolo 프레임워크에서 활용, (실시간으로 인식 가능)
2. Semantic Segmentation
- 사진 (영상) 에서 각기 다른 물체를 인식하는 것을 말한다. 같은 물체의 경우 같은 물체로 인식한다 (예 : 사람들)
- 모든 픽셀을 하나 하나 분류하여 동작한다.
- 최근에는 단 한번의 연산으로 모든 픽셀을 분류하는 알고리즘이 있다. (FCN)
- 간단히 설명하자면, 1차적으로 Object Detection 으로 물체를 인식하고, 인식된 영역의 픽셀을 분류하여 정확히
Detect 한다
2.1 FCN (Fully Convolutional Networks)
- 1개의 CNN을 활용하여 모든 픽셀에 대한 계산을 Full 로 수행하여 Semantic Segmentation 을 수행한다.
- CNN의 각 층의 계산값을 다음층의 인풋으로 입력하고, 점점 이미지를 압축해 나간다. 이후 ConvTranspose를 통해
원본 이미지 크기로 바꾼 후 결과를 출력 한다.
2.2. Segnet
- 자율주행 자동차에서 사용할 정도로 실시간으로 분석.
- Conv Encoder를 통해 이미지를 한번에 압축하여 색상등 모든 정보를 날리고, 물체 인식 정보만 취득 -> Decoder
를 통해 테두리, 색상등을 재 설정 하여 원본 이미지 크기로 결과를 출력
2.3. Unet
- 위에 FCN 에 설명에 적어놓은 방식.
- 이미지를 conv, maxpooling 을 통해 압축을 계속 수행 (이전 레이어 결과값을 다음 레이어 인풋으로 이용) ->
ConvTranspose를 통해 출력하는 과정을 거치며, U 자 형태를 띈다고 하여 Unet 이라 함
- Segnet 보다는 Unet을 많이 사용함.
- conv2d(16..) -> maxpooling -> 해당 결과물을, conv2d(32...) -> maxpooling -> 해당 결과물을 conv2d(64,....) -> ...
.... -> conv2dTranspose(64...) -> concatenate().... -> conv2dTranspose(32)...
- 이런식으로 이미지를 압축, 복원(?) 하여 결과물을 얻는다.
'딥러닝(텐서플로우)' 카테고리의 다른 글
DeConv (DCNN), ConvTranspose (0) | 2023.04.05 |
---|---|
이미지 생성, GAN (0) | 2023.04.05 |
keras.layers.concatenate (0) | 2023.04.04 |
Fit 의 인자값 X, Y (0) | 2023.04.03 |
Predict (0) | 2023.03.31 |