2-2-2. AI는 사진을 완벽하게 이해할 수 있을까? - Semantic Segmentation
●Semantic Segmentation
Semantic Segmentation은 앞서 배운 것의 한발 더 나아간 것.
이미지 속의 모든 픽셀을 완벽히 분석하여, 각각의 픽셀이 어디에 속하는지 분류하는 과제.
결과적으로 모양이 불규칙적이거나 작은 물체도 경계선을 따라 분리해 낼 수 있으며, 한 장의 사진 속에 포함된 여러 가지 물체를 동시에 분류.
●데이터 살펴보기
사진 데이터는 0 ~ 1 사이의 값을 가진 (128, 128, 3) 사이즈 데이터로 변환.
annotation의 경우 배경은 0, 하얀 영역은 1로 노멀라이즈된 (128, 128, 1)사이즈 데이터로 변환하여 사용.
●어떤 인공지능 사용?
U-Net이라 부르는 특수한 구조의 인공지능을 제작.
U-Net은 의료 영상의 세그멘테이션(분할)을 위해 고안된 딥러닝 알고리즘.
대체로 의료영상은 모든 종류의 영상 중에서 가장 복잡하고 어려운 편.
이런 어려운 문제를 척척 해결해내는 인공지능이니, 세그멘테이션이 필요한 거의 모든 분야에서 U-Net을 가져다 사용.
복잡한 네트워크 구조를 그림으로 표현하면 U자와 비슷한 형태가 나와서 U-Net이라고 부름.
●딥러닝 코딩
- U-net 인공신경망 불러오기
- 인공신경망 컴파일
옵티마이저(optimizer) - Adam
메트릭(metrics) - accuracy
로스(loss) - BinaryCrossentropy
from_logits = True : logit은 활성화 함수를 씌우지 않은 분류 모델의 출력층 값을 의미.
from_logits를 둘 경우 케라스는 신경망의 출력층에 활성화 함수를 적용하지 않는 것으로 인식하고 크로스 엔트로피를 계산.
●인공지능 학습
- 인공신경망 학습
- 학습 결과 출력
그래프로 출력
●인공지능 학습 결과 확인
- 인공지능 성능 확인하기
저자의 경우 22 에포크에서 학습이 중단.
인공지능의 최종 성능은 89.92%. 세그멘테이션 결과는 정확도만 갖고 판단하기에 부족한 부분이 있음. 영상을 직접 확인해 보는 것이 좋음.
- 학습 기록 확인하기
빨간 선이 train, 파란 선이 test
저자의 경우 Loss와 Accuracy 모두 오버피팅의 양상이 보임.
10 에포크 이후로 트레이닝 성능은 계속 증가하는데 테스트 성능을 향상하지 않고 있음.
- 학습 결과 확인하기
실제 사진 화면을 보면서 확인
※
-Semantic Segmentation(시맨틱 세그멘테이션)
시맨틱 세그멘테이션을 활용하면 배경으로부터 물체만 뽑아낼 수 있음.
덕분에 암의 진단, 혈과 부피 진단, 수술 보조, 현미경 사진의 분석 등 의료분야에서 굉장히 널리 활용.
인공위성 영상을 분석하여 숲이나 사막, 녹지를 분할하는 데에도 사용할 수 있으며 자율주행에도 일부 활용.
한때 옵티컬 플로우를 활용한 세그멘테이션 기법도 많이 활용.
물론 딥러닝의 급부상과 함께 많이 쓰지 않고 있음.
-콜백의 응용
현재 콜백은 10 에포크로 지정되어 있음. 당장 성능 향상이 멈추더라도 10 에포크가량 지켜보겠다는 이야기.
덕분에 오버피팅이 진행되는 중에도 10 에포크가량 불필요한 학습을 더 진행함.
콜백의 patience를 수정하여 오버피팅을 줄이자.
'@@@ 인공지능 > 수학·통계를 몰라도 이해할 수 있는 쉬운 딥러닝' 카테고리의 다른 글
2 - 3. CNN 활용하기(2) (0) | 2021.08.28 |
---|---|
2 - 3. CNN 활용하기(1) (0) | 2021.07.28 |
2 - 2. 이미지 학습 기법 활용하기(3) (0) | 2021.07.26 |
2 - 2. 이미지 학습 기법 활용하기(2) (0) | 2021.07.19 |
2 - 2. 이미지 학습 기법 활용하기(1) (0) | 2021.07.17 |