4-8 고양이 시각피질의 edge detection 실험과 CNN(Convolutional Neural Network)

in #kr6 years ago (edited)

위 그림은noname01.png

고양이에게 안경을 맞춰주는 사진이 아니에요!
시각 이미지 인식을 위한 CNN(Convolutionary Neural Network) 방식 머신 러닝의 기원을 찾아가 보자. 1981년도 노벨 의학상을 수상하게 되었던 후벨의 1959년도 고양이 시각피질(visual cortex) 반응에 대한 연구를 살펴보기로 한다. 고양이 뇌의 시각피질에 전극을 꽂은 상태에서 흑백 TV 화면에 기울어진 흰색 바(bar)를 생성하여 움직이면서 고양이 시각피질에 자극(stimuli)을 주어 전극에서 나오는 신호를 증폭해서 오디오로 듣는 실험이다.

고양이를 비롯한 포유류의 시각피질은 여러 부위로 구성되는 바 후벨의 실험은 시각피질의 V1(primary visual cortex: 기본 시각 피질) 부분의 기본적인 성능으로서 특히 머신 러닝에서도 이미지의 특징 추출에 필요한 주로 edge detection 능력에 관한 것들이다.

다음에 해설하는 실험의 내용을 먼저 읽어 보고 난 후 이 실험 동영상(url 주소 첨부하였음)을 시청하여 시각피질 뉴론의 특성 이해에 접근하기 바라며 이어서 그 결과가 CNN 방식의 머신 러닝에 어떻게 적용되는지는 앞으로 살펴보기로 하자.

다음과 같은 위치에서 흰색 사선을 켰다 껐다 해보면 뜨뜨뜨∼하는 노이즈가 들린다.

noname02.png

뉴론에서 threshold 조건을 만족하여 firing 반응이 일어나는 부위 근처에 전극이 있으면 뜨뜨뜨∼하는 잡음이 들리며 반응이 없으면 조용하다. 이 동영상에서 흰색 바를 현재 위치까지 끌어 오면 뜨뜨뜨∼하는 노이즈가 들리는 위치이며 여기에 x 표시를 한다.

다음 사진에서처럼 흰색 사선을 조금 이동 시킨 후 흰색 사선을 켰다 껐다를 반복해도 아무런 노이즈를 들을 수 없다.

noname03.png

다음 사진은 흰색 바가 사선 방향으로 움직일 때에 즉 x 표시한 사선을 통과할 때에 뜨뜨뜨∼하는 잡음이 들리며 통과 후는 잡음 소리가 사라진다.

noname04.png

이 간단한 실험을 통해서 고양이 시각피질에는 사선을 인식하는 기능이 있음을 알 수 있다.
사선하면 일단 방향(orientation) 속성이 있으며 흰색 바가 x 표시 사선을 통과한다는 듯은 기울어져 방향이 있는 일정 길이의 사선 즉 길이, 폭, 배경색과 현격한 밝기 차이가 있는 에지(edge)의 움직임을 인식한다는 뜻이다.

다음과 같이 사선의 폭을 늘려 긴 직사각형으로 변형시킨 후 x 표시 가까이에 위치시키고 노이즈가 없는 상태에서 세모 표시를 해둔다. 이 긴 직사각형을 그림과 같이 이동 시키면 직사각형의 흰색 모서리와 x 표시한 직사각형의 변이 만날 때 노이즈가 발생한다.

noname05.png

반면에 다음과 같이 방향이 맞지 않는 경우에 흰색 바를 움직여도 아무런 반응이 없다.

noname06.png

다음의 첫 번째 사진처럼 아예 화면에 흰색의 큰 정 사각형을 씌워서 껐다 켰다를 반복하거나 약간 아래 위로 움직여도 아무런 아무런 반응이 없다. 하지만 두 번째와 세 번째 사진에서처럼 움직여서 흰색 정사각형의 변이 x 표시에 가까워지면 노이즈가 발생하며 이 상태에서 정지하여 껐다 켰다를 반복하면 역시 노이즈가 발생한다.

noname07.png

반대로 배경색을 흰색으로 바꾼 후 검은색 펜으로 x표시를 가린 후 껏다 켰다를 반복해도 비슷한 결과를 준다. 동영상에서 검은 색 펜을 움직일 경우에 대한 실험은 없는데 아마도 검은 펜이 x 표시를 지나갈 때 노이즈가 발생할 것으로 예상된다.

noname08.png

이 실험에 의하면 고양이의 시각 피질은 흑백 이미지에서 밝기가 변하는 사선이나 배경색과 대조되는 움직이는 사선 즉 사선형 edge를 detect 할 수 있다는 결론이다. 더 나아가서 후벨의 실험에 의하면 시각피질은 이미지에서 edge의 크기 또는 기울어진 각도와 edge의 움직이는 방향을 detect할 수 있도록 다음과 같이 세 종류의 뉴론 들로 구성되어 있다는 점을 밝혔다.

noname09.png

결국 이미지를 구성하는 기울어진 크고 작은 edge 요소들의 합성 과정을 통해서 전체 이미지를 구성해 볼 수 있다는 것이다. 그밖에 인간에게는 색깔을 인식할 수 있는 시각세포도 있는 반면 많은 동물들의 경우는 흑백만을 구별할 수 있는 시각 세포를 가진 경우도 있다.

이와 같은 시각 특성은 특히 컴퓨터 비전분야에서 소프트웨어적으로 구현되어 폭 넓게 활용되고 있다. 다음 사례는 OpenCV에서 Gaussian Blur 기법을 적용해서 얻을 수 있는 이미지 처리 결과의 단적인 사례이다. 이 Gaussian Blur 라는 기법도 이미지에 포함된 오브젝트들을 식별해 내기 위한 CNN(Convolutional Neural Network) 기법을 구성하는 일부임을 지적해 두자.

⓵번 이미지를 Gaussian blur 처리하여 윤곽이 희미한 ⓶번 이미지를 얻을 수 있다.
⓵번 이미지에 대해서 흑백으로 변환 후 Canny Edge 기법을 적용하면 ⓷번 이미지를 얻을 수 있다.
⓸번 이미지는 ⓷번 이미지에 대하여 Gaussian blur 기법을 적용한 결과이다.

noname10.png

상기의 이미지 프로세싱 기법은 필자의 다음 블로그 주소의 사례를 참조하기 바란다.
https://steemit.com/kr/@codingart/6-14-opencv-gaussianblur

더 나아가서 시각피질의 다양한 이미지 처리 결과를 종합하여 이미지에 포함된 오브젝트들이 과연 무엇인지 머신 러닝에 의해서 알아낼 필요가 있다. 다시 말하면 이미지에 포함된 오브젝트들이 고양이인지, 개인지, 자동차인지 사람인지를 정확하게 구별해내야 할 필요가 있는 것이다.

바로 이러한 목적을 달성하기 위해서 CNN(Convolutional Neural Network)에 의한 이미지 처리 기법이 1990년대 이후 지속 개발되었으며 최근 그 인식률이 거의 99% 수준까지 도달했다.

다음 유튜브 주소에서 고양이 시각 피질의 기울어진 edge detection 기능 실험 동영상을 시청해 보자.(warning:재미는 별로 없음)
Visual Cortex Cell Recording

Coin Marketplace

STEEM 0.29
TRX 0.12
JST 0.034
BTC 63423.51
ETH 3252.70
USDT 1.00
SBD 3.91