인공지능/공부

물체의 위치까지 구분하는 인공지능 -segmentation, odject detection

이게될까 2023. 12. 15. 13:36
728x90
728x90

여태까지 CNN으로 물체가 있다, 없다 정도만 알았다면 이번에 해볼 것은 어디 위치에 물체가 있는지 알려주는 segmentation이다.

무엇이 강아지인지, 고양이인지 분류하는 모습이다.

classification은 전체 input에 대해 오직 한개의 결과만 나오고, 한가지 class만 찾을 수 있다.

segmentation은 픽셀 단위로 그 위치에 무엇이 있는지 알려준다. 그러므로 학습시킬 때 정답도 픽셀단위로 무엇이다 라벨링해야해서 손이 많이 간다. 

여기선 DENSE layer를 사용하지 않고, convolution을 통한 down sampling, up sampling을 사용한다. 그리고 결과는 클래스 개수 만큼 채널이 나오고 원 핫 인코딩 된다.

여기선 위치 정보가 손실된다.

이렇게 진행하면 어디에 무엇이 있는지 위치정보가 손실되게 된다. 그 위치 정보를 주기 위해 연결을 한다.

convolution layer끼리 연결하여 위치 정보를 전달해준다,

이렇게 하면 위치정보는 제대로 전달되지만 latent space의 정보력은 약해지게 된다.

여기서 사용한 방식이 skip connection이다.

skip connection

skip connection은 down sampling 후 upsampling 하면서 소실된 위치정보를 가지고 올 수 있다. 그리하여 gradient 손실 또한 막을 수 있고, 더 빠른 학습 효과를 가지고 올 수 있다.

여기선 FCNs가 나오는데 이전의 FCN = Fully conection networks 가 아니라 FCNs = Fully convolutional networks이다.

down sampling 과정에선 의미, 맥락적인 정보를 찾아 이것이 무엇인지 파악하는데 도움을 준다.

up sampling 과정에선 공간적 정보를 복구(skip connection)하고, 네트워크 이미지의 어디(where)에 대한 정보를 파악할 수 있다.

기본적인 FCNs의 구조이다.

이에 대한 파이썬 코드는 아래와 같다.

여기서 fcn으로 표현하는 것에 대해 이전의 FCN과 혼동하면 안된다. 여기 fcn은 convolution을 뜻한다.

이렇게 하여 분류할 수 있게 된다.

728x90

object detection

여기서 부턴 segmentation과 다르게 물체를 박스와 같은 형식으로 잡게 된다. 자율주행과 같이 물체를 탐지하는 알고리즘에서 신호등, 꼬깔, 자동차 등 물체들이 박스쳐진 것을 볼 수 있다. 그러한 알고리즘이다.

object detection의 기본적인 구조

object detection은 기본적인 classfication의 구조에서 박스를 치는 네트워크가 추가된 것이라고 보면 편하다.
x = 사진 상에서 박스 중앙의 x위치
y = 사진 상에서 박스 중앙의 y위치
h = 박스의 높이
w= 박스의 너비

object detection의 결과

input은 똑같이 사진이고 label은 박스의 w,y,w,h와 class를 주면 된다.

object detection의 코드는 아래와 같다.

이제 여기서 loss_weights의 값은 고민해봐야 된다. mse는 제곱을 했기 때문에 숫자가 엄청 커지는 반면 crossentropy는 숫자가 작아서 한쪽만 학습이 크게 들어가는 경우가 생긴다. 여기서부터 여러 시도를 통한 경험으로 선정해야 한다.

마지막 이 학습을 통한 결과이다.

2023.12.15 - [소프트웨어] - 생성형 인공지능 GAN 개념 - autoencoder의 업그레이드 버전

 

생성형 인공지능 GAN 개념 - autoencoder의 업그레이드 버전

GAN = Generative Adversarial Networks GAN은 이미 실습을 한번 했었다. 아래 포스팅을 통해 한번 확인할 수 있다. 2023.12.07 - [인공지능/공부] - TensorFlow - 생성형 인공지능 GAN TensorFlow - 생성형 인공지능 GAN 여

yoonschallenge.tistory.com

 

728x90