스마트폰으로 찍은 사진 한 장만으로 인공지능이 "이 사람은 85% 확률로 강아지상입니다"라고 판단할 수 있는 비결은 무엇일까요? 본 아티클에서는 구글의 TensorFlow.js와 합성곱 신경망(Convolutional Neural Network, CNN) 모델이 이미지를 해석하는 공학적 원리를 알기 쉽게 설명해 드립니다.
1. 디지털 이미지를 숫자의 행렬(Matrix)로 변환하기
컴퓨터는 사람처럼 눈으로 사진을 '바라보는' 것이 아니라, 픽셀(Pixel)의 밝기와 색상(RGB) 값을 2차원 수치 행렬(Matrix)로 읽어들입니다. 예를 들어 224x224 크기의 이미지는 224 x 224 x 3(Red, Green, Blue 채널) = 약 15만 개의 숫자 데이터로 변환됩니다.
2. 합성곱 층(Convolutional Layer)의 필터링과 특징점 추출
CNN 신경망의 핵심은 **'필터(Filter 또는 Kernel)'**라 불리는 작은 수학적 격자를 이미지 전체에 슬라이딩하면서 엣지(윤곽선), 질감, 곡률 등의 특징(Feature)을 추출하는 것입니다.
- 초기 층(Low-level Features): 눈꼬리의 직선/곡선 윤곽, 턱선의 경계선 등 단순한 선과 모서리를 감지합니다.
- 중간 층(Mid-level Features): 추출된 선들이 모여 눈의 모양(타원형인지, 가로로 긴지), 콧날의 각도, 입술의 굴곡 등 국소적 형태를 인식합니다.
- 심층 층(High-level Features): 얼굴 전체의 이목구비 비율과 골격 배치 등 복합적인 얼굴 랜드마크 패턴을 완성합니다.
3. 완전 연결 층(Fully Connected Layer)과 소프트맥스(Softmax) 확률 계산
추출된 얼굴 특징 벡터는 최종적으로 **소프트맥스 함수(Softmax Function)**를 통과하여 각 클래스(강아지상 vs 고양이상)에 속할 확률의 합이 1(100%)이 되도록 정규화됩니다. 이를 통해 직관적인 백분율 수치가 산출되는 것입니다.
4. 브라우저 내 WebGL 가속과 개인정보 보호
본 사이트에서 사용하는 @teachablemachine/image 라이브러리는 웹 브라우저의 그래픽 하드웨어 가속(WebGL)을 활용합니다. 따라서 고용량의 사진을 외부 서버로 업로드할 필요 없이, 사용자의 기기 내부 GPU에서 밀리초(ms) 단위로 초고속 추론이 완료되어 완벽한 프라이버시를 보장합니다.
💬 커뮤니티 의견 나누기
나의 테스트 결과나 의견을 자유롭게 댓글로 남겨보세요!