CNN기반 컴퓨터비전처리
컴퓨터 비전,
즉 컴퓨터가 이미지를 인식하고 이해하는 과정은 여러 가지 어려움이 있다.
- 밝기 변화
사진을 찍는 환경에 따라 이미지의 밝기가 달라질 수 있다.
예를 들어, 같은 물체라도 낮에 찍은 사진과 밤에 찍은 사진은 매우 다르게 보일 수 있다. - 변형
물체는 다양한 각도와 거리에서 찍힐 수 있습니다. 예를 들어, 고양이는 옆모습, 정면, 또는 뒤에서 찍힐 수 있으며, 이는 이미지 인식의 어려움을 가중시킨다. - 배경 장애
물체와 배경이 복잡하게 섞여 있는 경우, 배경의 복잡함이 물체 인식을 방해할 수 있다. - 가림
물체의 일부가 다른 물체에 의해 가려질 수 있다.
예를 들어, 나무 뒤에 숨어 있는 고양이를 인식하는 것은 일부만 보이기 때문에 어려울 수 있다. - 인트라클래스 바리에이션
같은 종류의 물체라도 형태가 다를 수 있습니다. 예를 들어, 모든 고양이는 고양이지만, 색상, 크기, 무늬 등이 다양합니다.
CNN의 핵심 아이디어: 자동 특징 학습
Convolutional Neural Networks (CNNs)는 컴퓨터 비전에서 주로 사용되는 딥러닝 모델이다.
CNN의 핵심 아이디어는 **Raw Image(원본 이미지)**로부터 **Features(특징)**를 자동으로 학습하는 것,
이는 기존의 방법과 크게 다르다.
Handcrafted Feature vs. End-to-End Learning
기존에는 사람이 직접 이미지를 분석하여 특징을 추출했다.
이를 Handcrafted Feature라고 한다.
예를 들어, 고양이를 인식하기 위해 줄무늬가 많은 필터를 만들어 줄무늬가 있는 경우 고양이로 분류했다.
가끔알바공고 사이트에 뜨는 AI마스킹작업을 말할 수 있다.
하지만 그러한 방식은 한계가 있다.
Handcrafted Feature의 한계
사람이 직접 만든 특징은 모든 경우를 고려할 수 헚다.
예를 들어, 줄무늬가 없는 고양이는 이런 필터에서 잘못 인식될 수 있다.
이러한 예외를 코너 케이스라고 한다.
End-to-End Learning의 도입
최근에는 데이터의 시작과 끝만 사람이 넣어주고, 중간 과정을 전부 딥러닝 모델에 맡기는 End-to-End Learning이 사용된다.
딥러닝 모델은 많은 데이터를 학습하여 스스로 특징을 추출한다.
예를 들어, 다양한 고양이의 이미지를 많이 학습시켜 모델이 스스로 줄무늬 유무, 고양이의 형태 등을 학습하게 한다.
Feature Extraction의 자동화
CNN은 Feature Extraction(특징 추출)을 자동으로 수행하는 End-to-End Learning의 대표적인 예이다.
CNN은 여러 층의 뉴런으로 구성되며, 각 층은 이미지를 필터링하여 특징을 추출한다.
예를 들어, 첫 번째 층은 가장 기본적인 특징(예: 가장자리)을 추출하고,
다음 층은 더 복잡한 특징(예: 모서리, 패턴)을 추출한다.
이 과정을 통해 CNN은 다음과 같은 장점을 가진다.
- 자동 특징 학습
사람이 직접 특징을 설계하지 않아도 된다. - 높은 정확도
다양한 데이터를 학습하여 코너 케이스를 포함한 다양한 상황에 대응할 수 있다. - 적응성
새로운 데이터에도 빠르게 적응할 수 있다.