7  컴퓨터 비전과 이미지 데이터

학습 목표
  • 컴퓨터 비전(Computer Vision)이 무엇이며, 어떤 분야에 활용되는지 설명할 수 있다
  • 컴퓨터가 이미지를 숫자 행렬(픽셀)로 표현하는 원리를 이해한다
  • 흑백 이미지와 컬러(RGB) 이미지의 데이터 구조 차이를 설명할 수 있다
  • 완전연결 신경망(FC NN)으로 이미지를 처리할 때의 한계를 이해한다
  • 이미지 인식에서 특성 추출(Feature Extraction)이 왜 핵심인지 설명할 수 있다

7.1 컴퓨터 비전이란?

7.1.1 이미지에서 정보를 읽다

앞 장들에서 우리는 수치 데이터를 입력으로 받는 신경망을 배웠다. 그런데 현실 세계의 데이터는 숫자만 있는 것이 아니다 — 사진, 영상, 의료 이미지 등 시각 정보가 넘쳐난다.

정의: 컴퓨터 비전 (Computer Vision)

이미지로부터 유용한 정보를 추출하여 의사결정 및 예측에 사용하는 분야. 사람이 눈으로 수행하던 시각적 판단 작업을 컴퓨터가 자동으로 대체할 수 있게 한다.

7.1.2 컴퓨터 비전의 응용

컴퓨터 비전은 이미 우리 생활 곳곳에서 활용되고 있다.

분야 설명 예시
안면 인식 얼굴의 특징점을 추출하여 신원 확인 보안 시스템, 스마트폰 잠금 해제
질병 진단 X-ray, CT 등 의료 이미지 분석 유방암 검출, 피부암 분류, COVID-19 진단
자율 주행 실시간 영상에서 차량·보행자·차선 인식 테슬라 오토파일럿
품질 검사 제조 공정에서 불량품 자동 검출 부품 표면 결함 탐지

이 모든 응용의 공통점은 “이미지를 입력으로 받아 판단을 출력한다”는 것이다. 그렇다면 컴퓨터는 이미지를 어떻게 “이해”할까?


7.2 컴퓨터가 보는 이미지

7.2.1 픽셀: 이미지의 기본 단위

사람의 눈에 이미지는 연속적인 색과 형태로 보이지만, 컴퓨터에게 이미지는 밝기가 다른 격자(grid)의 모음이다.

정의: 픽셀 (Pixel)

이미지를 구성하는 최소 단위. 각 픽셀은 하나의 밝기 값(숫자)을 가진다.

  • 흑백(Grayscale): 0(검은색) ~ 255(흰색) 사이의 정수
  • 이미지 전체는 픽셀값으로 이루어진 2차원 행렬로 표현된다

예를 들어, \(18 \times 12\) 크기의 흑백 이미지는 \(18 \times 12 = 216\)개의 숫자로 표현된다. 아래는 감을 잡기 위한 \(8 \times 8\) 축소 예시다 — 64개의 숫자가 모여 “어두운 원” 무늬 하나를 이룬다.

인터랙티브 — 픽셀 위에 마우스를 올려 밝기값을 확인해 보세요

각 셀의 색은 픽셀값(0~255)에 대응합니다. 0에 가까울수록 어둡고, 255에 가까울수록 밝습니다.

핵심: 컴퓨터에게 이미지란 숫자로 가득 찬 행렬이다. 이 숫자 행렬을 입력 데이터(\(\mathbf{X}\))로 사용하면, 회귀나 분류 모형을 만들 수 있다.

7.2.2 컬러 이미지: RGB 3채널

흑백 이미지가 2차원 행렬이라면, 컬러 이미지는 어떻게 표현할까?

모든 색깔은 빨강(R), 초록(G), 파랑(B) 세 가지 빛의 조합으로 만들 수 있다. 따라서 컬러 이미지는 3개의 2차원 행렬을 쌓은 3차원 텐서로 표현된다.

\[\text{컬러 이미지} \in \mathbb{R}^{H \times W \times 3}\]

  • \(H\): 세로 픽셀 수 (높이)
  • \(W\): 가로 픽셀 수 (너비)
  • \(3\): R, G, B 채널
인터랙티브 — 채널을 선택하여 R, G, B 분해를 확인하세요

컬러 이미지는 3개의 독립적인 밝기 행렬이 겹쳐진 것입니다.

이미지 유형 데이터 형태 예시 (28×28)
흑백 \(H \times W\) \(28 \times 28 = 784\)개 숫자
컬러 \(H \times W \times 3\) \(28 \times 28 \times 3 = 2{,}352\)개 숫자

7.3 완전연결 신경망의 한계

7.3.1 이미지를 FC 신경망에 넣으려면?

Ch02~Ch03에서 배운 완전연결(Fully Connected) 신경망에 이미지를 입력하려면, 2차원 행렬을 1차원 벡터로 펼쳐야(flatten) 한다.

18 × 12 행렬 2D 이미지 flatten 216개 노드 1D 벡터 입력층 은닉층 출력층 FC 신경망

\(18 \times 12\) 흑백 이미지의 경우 입력 노드가 216개이므로 관리할 만하다. 하지만 실제 이미지는 어떨까?

7.3.2 파라미터 폭발 문제

인터랙티브 — 이미지 크기에 따른 FC 파라미터 수를 확인해 보세요

이미지 크기와 은닉 뉴런 수를 조절하면 첫 번째 FC 층의 가중치 수가 어떻게 변하는지 확인할 수 있습니다.

224×224 컬러 이미지만 해도 첫 번째 층의 가중치가 수천만 개에 달한다. 이는 단 하나의 층에 대한 수치이므로, 전체 네트워크의 파라미터는 훨씬 더 많아진다.

7.3.3 FC 접근법의 두 가지 문제

완전연결 신경망으로 이미지를 처리하면 다음 두 가지 근본적인 문제가 발생한다.

문제 설명
공간 정보 손실 2D 행렬을 1D 벡터로 펼치면(flatten), 인접한 픽셀 간의 위치 관계가 사라진다
파라미터 폭발 입력 노드 수가 픽셀 수와 같으므로, 가중치가 픽셀 수에 비례해(이미지 한 변 길이의 제곱으로) 증가한다

224×224×3 이미지를 256개 은닉 뉴런에 연결하면, 첫 번째 층에서만 약 3,800만 개의 가중치가 필요하다. 학습이 불가능한 것은 아니다 — 하지만 Ch04에서 배운 그대로다: 파라미터가 많을수록 암기할 용량이 커지고, 과적합을 막으려면 그만큼 많은 데이터가 필요하다. 이미지 하나를 처리하기 위해 이런 낭비를 감수할 이유가 없다.

7.3.4 공간 정보 손실을 직접 확인하기

두 문제 중 파라미터 폭발은 위의 계산기에서 확인했다. 그렇다면 “공간 정보 손실”은 정확히 무엇이 문제인가?

인터랙티브 — 같은 패턴, 다른 위치

슬라이더로 2×2 밝은 패턴을 좌우로 옮겨 보세요. 이미지에서는 “같은 무늬가 옆으로 이동”했을 뿐인데, 펼쳐진 벡터에서는 전혀 다른 입력 노드가 값을 받습니다.

패턴을 한 칸만 옮겨도 활성 노드 번호가 통째로 바뀐다. FC 신경망에서 각 입력 노드는 자기만의 가중치를 가지므로, 왼쪽 위치에서 “이 무늬는 고양이 귀”라고 학습한 가중치를 오른쪽 위치에 재사용할 수 없다 — 같은 무늬를 위치마다 처음부터 다시 배워야 한다. “위치가 달라도 같은 패턴은 같은 방법으로 찾는다”는 연산이 필요하며, 그것이 다음 장의 콘볼루션이다.


7.4 인간의 시각과 특성 추출

7.4.1 사람은 이미지를 어떻게 인식하는가?

사람은 이미지를 볼 때 모든 픽셀을 하나하나 분석하지 않는다. 대신 핵심 특성(Feature)을 찾아 비교하는 방식으로 인식한다.

사전 지식 “고양이는 귀가 뾰족하다” 특성 정의 눈, 코, 귀, 수염 … 분류를 위한 특성 비교 사람의 이미지 인식 과정: 사전 지식 → 특성 정의 → 비교·판단

예를 들어 “사람 얼굴”을 인식할 때, 우리는 무의식적으로 눈, 코, 입이라는 특성을 찾는다. “자동차”라면 바퀴, 헤드램프, 번호판 같은 특성으로 판별한다.

7.4.2 컴퓨터 비전의 핵심 질문

사람의 개입 없이, 자동으로 이미지의 핵심 특성을 추출할 수 있을까?

이것이 바로 컴퓨터 비전이 해결해야 할 근본적인 질문이다. 실제로 딥러닝(특히 CNN)은 이 특성 추출 과정을 자동으로 학습하는데, 추출되는 특성은 계층적 구조를 가진다.

수준 추출되는 특성 예시
Low-level 기본적인 시각 패턴 에지(edge), 밝기 변화, 점
Mid-level 부분적인 구조 눈, 귀, 코 등 부위
High-level 전체적인 형태 얼굴 전체 구조, 자세

이 계층적 특성 추출이 어떻게 가능한지는 다음 장에서 콘볼루션(Convolution) 연산을 통해 알아본다.

7.4.3 특성 추출이 어려운 이유

같은 대상이라도 촬영 조건에 따라 전혀 다른 이미지가 될 수 있다. 컴퓨터가 자동으로 특성을 파악하기 어렵게 만드는 요인들은 다음과 같다.

요인 설명
시점 변화 (Viewpoint) 같은 물체를 다른 각도에서 촬영하면 전혀 다른 모양
크기 변화 (Scale) 물체의 크기가 작거나 크면 픽셀 분포가 달라짐
변형 (Deformation) 고양이가 웅크리거나 뛰는 등 같은 대상의 형태 변화
가려짐 (Occlusion) 물체의 일부가 다른 물체에 가려진 경우
조명 (Illumination) 명암과 그림자에 따라 같은 물체도 다르게 보임
배경 혼잡 (Background) 물체와 배경의 색·질감이 유사하면 구분 곤란
클래스 내 변이 (Intra-class) “의자”라 해도 소파, 안락의자, 접이식 등 생김새가 다양
이 표는 팀 프로젝트의 촬영 체크리스트다

여러분이 프로젝트에서 직접 데이터를 수집할 때, 위 요인들은 남의 이야기가 아니라 여러분 모델의 성패가 된다. 같은 사물을 다양한 시점·거리·조명·배경에서 찍을수록 모델은 이 난관들에 강해진다. 반대로 같은 자리에서 같은 각도로만 찍은 200장은, 사실상 20장짜리 데이터다.

이러한 난관을 극복하기 위해, 단순히 픽셀값을 나열하는 FC 방식이 아닌 이미지의 공간적 구조를 활용하는 새로운 연산이 필요하다.


7.5 정리

이 장에서는 컴퓨터 비전의 기본 개념과 이미지 데이터의 구조를 살펴보았다.

핵심 내용 요약
이미지 = 숫자 행렬 흑백은 \(H \times W\), 컬러는 \(H \times W \times 3\)의 텐서
FC의 한계 공간 정보 손실 + 파라미터 폭발로 이미지 처리에 부적합
특성 추출이 핵심 사람처럼 핵심 특성을 자동으로 추출하는 방법이 필요
다양한 난관 시점, 크기, 변형, 가려짐 등으로 자동 특성 추출이 어려움

다음 장 예고: 이미지의 공간적 구조를 보존하면서, 적은 파라미터로 효과적인 특성을 추출하는 연산 — 콘볼루션(Convolution)을 배운다.