
비전 모델은 지식을 어디에 저장하는가? 개발자가 바라본 컴퓨터 비전의 역사
요약
컴퓨터 비전 기술의 발전 과정을 통해 시각적 지식이 저장되는 방식의 변화를 탐구합니다. 엔지니어의 수동 설계에서 CNN의 학습된 필터, 그리고 최신 파운데이션 모델의 프롬프트 기반 표현으로의 진화를 다룹니다.
핵심 포인트
- 고전적 방식: 엔지니어가 에지, 코너 등 특징을 직접 설계
- CNN 시대: 레이블된 데이터를 통해 합성곱 필터가 지식을 학습
- 현대 파운데이션 모델: 픽셀을 언어 및 프롬프트와 연결하여 지식 저장
- 기술 진화에도 불구하고 데이터 품질과 평가 문제는 여전히 핵심 과제
2001년, Paul Viola와 Michael Jones는 700 MHz Pentium III를 사용하여 384×288 이미지에서 초당 15프레임으로 작동하는 얼굴 검출기(face detector)를 설명했습니다 (Viola & Jones, CVPR 2001). 약 4분의 1세기 후, Meta의 2025 SAM 3는 "노란색 스쿨버스(yellow school bus)"라는 문구를 입력받아 이미지나 비디오 전체에서 해당 개념과 일치하는 객체 인스턴스(object instances)에 대한 마스크(masks)를 반환합니다 (Carion et al., SAM 3, 2025).
만약 당신이 무언가를 만든다면, 이 두 시스템 사이의 흥미로운 격차는 더 빠른 칩이 아닙니다. 그것은 시각적 지식(visual knowledge)이 어디에 저장되는지, 그리고 누가 또는 무엇이 그것을 그곳에 두었는지에 대한 것입니다. 이 단 하나의 질문 — 모델은 자신이 아는 것을 어디에 저장하는가? — 은 전체 역사를 머릿속에 담아둘 수 있는 제가 아는 가장 깔끔한 방법입니다.
오랫동안 지능은 특징(features)을 설계한 엔지니어의 머릿속에 존재했습니다. 그 후에는 레이블이 지정된 예시(labeled examples)로부터 학습된 합성곱 필터(convolutional filters)로 이동했습니다. 그다음에는 더 깊은 아키텍처(architectures)와 스케일링 규칙(scaling rules), 트랜스포머 어텐션(transformer attention)으로, 그리고 마지막에는 픽셀을 영역, 언어, 프롬프트(prompts), 비디오와 연결하는 거대 사전 학습 모델(large pretrained models)로 이동했습니다. 각 단계의 변화는 작업의 어려운 부분을 바꾸어 놓았습니다. 하지만 그 어떤 것도 데이터 품질, 기하학(geometry), 평가(evaluation), 그리고 시스템이 언제 틀릴지 아는 것과 같은 오래된 문제들을 해결하지는 못했습니다.
시대 1: 엔지니어가 특징을 직접 손으로 작성하던 시절
많은 고전적인 파이프라인(pipelines)은 매칭(matching)이나 분류(classification)가 일어나기 전에 픽셀을 인간이 설계한 신호 — 에지(edges), 코너(corners), 그래디언트(gradients), 대비 패턴(contrast patterns), 지역 기술자(local descriptors) — 로 변환했습니다. 대부분의 설계 작업은 최종 결정 규칙(decision rule)이 아닌 특징 추출(feature extraction) 단계에 머물러 있었습니다.
그 뿌리는 딥러닝 (deep-learning)의 연대기가 통상적으로 인정하는 것보다 더 거슬러 올라갑니다. 1980년에 Marr와 Hildreth는 Laplacian-of-Gaussian 필터링 이후의 제로 크로싱 (zero-crossings)으로 에지 (edges)를 모델링했습니다 (Marr & Hildreth, 1980); 1986년에 Canny는 에지 검출 (edge detection)을 공식화했습니다 (Canny, 1986); 1988년에 Harris와 Stephens는 코너 검출기 (corner detector)를 선보였습니다 (Harris & Stephens, 1988). 그리고 컨볼루션 (convolution) 스타일의 계층 구조는 2012년보다 수십 년 앞서 존재했습니다. Fukushima의 1980년 네오코그니트론 (neocognitron)은 교차하는 이동 내성 (shift-tolerant) S-세포 및 C-세포 단계를 사용했습니다 (Fukushima, 1980). 이는 현대적인 역전파 (backprop) 학습 네트워크는 아니었지만, CNN의 핵심적인 아이디어들을 예견했습니다.
이 시대에는 여전히 적용 가능한 디버깅 (debugging) 교훈이 숨겨져 있습니다. 수작업으로 설계된 특징 추출기 (feature extractor)가 작업에 필요한 정보를 버렸을 때, 오직 그 표현 (representation)만을 사용하는 다운스트림 분류기 (downstream classifier)는 그 정보를 다시 되찾을 수 없었습니다. 따라서 엔지니어들은 스케일 (scale), 회전 (rotation), 조명 (lighting), 폐쇄 (occlusion)와 같은 불변성 (invariance)에 대해 사전에 추론해야 했습니다. 왜냐하면 다운스트림의 어떤 단계도 프론트엔드 (front end)가 버린 것을 다시 찾아낼 수 없었기 때문입니다.
2001년에서 2006년 사이, 네 가지 방법론이 그러한 철학을 실용적인 시스템으로 전환했습니다:
- **Viola–Jones (2001)**는 통합 이미지(integral image), AdaBoost 특징 선택(feature selection) 및 거부 캐스케이드(rejection cascade)를 결합하여, 대부분의 이미지가 초기에 저렴한 테스트에 실패하도록 했습니다(paper). 15 fps라는 수치는 현대적인 벤치마크가 아닌, 과거 하드웨어에서의 역사적 결과입니다.
- **SIFT (2004)**는 스케일 및 회전 불변성(scale and rotation invariance)과 시점, 노이즈, 조명, 복잡한 배경(clutter), 부분적인 가려짐에 대한 강건성(robustness)을 갖도록 설계된 키포인트(keypoints)를 구축했습니다(Lowe, IJCV 2004). 논문은 완벽한 불변성이 아닌, '강건하고' '부분적인' 불변성을 주장합니다. SIFT는 원래 1999년 ICCV 논문으로 처음 등장했으며, 2004년 저널 기사는 성숙한 4단계 버전입니다.
- **HOG (2005)**는 밀집되고 국소적으로 정규화된 기울기 방향 히스토그램(gradient-orientation histograms)을 사용하여 지역적 모양(local shape)을 설명했으며, 보행자 탐지(pedestrian detection)에 대해 평가되었습니다(Dalal & Triggs, CVPR 2005).
- **SURF (2006)**는 속도를 명시적인 목표로 삼아 SIFT의 불변성 목표를 추구했습니다(Bay et al., ECCV 2006). 이는 SIFT보다 보편적으로 우월한 것은 아니며, 두 방법은 작업 부하(workload) 측면에서 상충 관계를 가집니다.
이들을
CNNs는 이미 2012년 훨씬 이전부터 작동하고 있었습니다. LeCun과 동료들은 1998년에 문서 인식을 위한 합성곱 특징 (convolutional features) 기반의 경사 하강법 학습 (gradient-based learning)을 기술했습니다 (LeCun et al., 1998). 그리고 ImageNet의 세 가지 이정표는 서로 끊임없이 혼용되기 때문에 별도로 구분하여 이해하는 것이 도움이 됩니다. 첫째, 데이터셋 (dataset) 논문 (5,247개의 synsets, 320만 개의 이미지)은 2009년에 발표되었습니다 (Deng et al., CVPR 2009). 둘째, 연례 ILSVRC _챌린지 (challenge)_는 2010년에 시작되었습니다 (Russakovsky et al.). 마지막으로, 세상을 놀라게 한 _결과 (result)_는 2012년에 등장했습니다.
그 결과는 바로 AlexNet이었습니다: 2위 모델의 26.2% 대비 15.3%의 top-5 테스트 오차 (test error)를 기록했습니다 (Krizhevsky, Sutskever & Hinton, NeurIPS 2012). 이 수치에는 두 가지 주의사항이 따릅니다. 이는 하나의 벤치마크 (benchmark) 상에서의 경진 대회 시스템 결과이며, 이후 다른 작업이나 프로토콜의 점수와 직접 비교할 수 있는 값은 아닙니다. 또한 이 승리는 합성곱 (convolution)의 발명이 아니라, 대용량 CNN, GPU 구현, ReLU, 드롭아웃 (dropout), 그리고 120만 개의 라벨링된 이미지라는 요소들이 결합된 수렴 (convergence)의 결과였습니다.
지속적인 결과는 직무 기술서(job description)의 변화였습니다. 특징 계층 (feature hierarchy)을 직접 설계하는 대신, 실무자들은 점점 더 데이터, 목적 함수 (objectives), 아키텍처 (architecture), 그리고 최적화 (optimization)를 지정하고, 훈련 (training)을 통해 계층이 나타나도록 유도하게 되었습니다. 표현 설계 (Representation design)가 사라진 것은 아닙니다. 다만 이동했을 뿐입니다.
네트워크가 풍부한 특징 (features)을 생성하게 되자, 사람들은 그 특징들로 또 무엇을 할 수 있는지 질문하기 시작했습니다. "이 사진에는 무엇이 있는가?"가 그중 하나의 질문입니다. 다음은 그 뒤를 이은 작업들에 대한 간략한 분류 체계이며, 각 작업은 해당 출력 유형을 만들어낸 주요 출처를 포함합니다:
- **분류 (Classification)**는 이미지 수준의 카테고리를 할당합니다 (AlexNet).
- **탐지 (Detection)**는 위치와 함께 객체 카테고리를 예측합니다 (YOLO).
- **의미론적 분할 (Semantic segmentation)**은 픽셀 수준에서 클래스를 할당합니다 (U-Net).
- **인스턴스 분할 (Instance segmentation)**은 개별 객체 인스턴스에 대한 마스크를 분리합니다 (Mask R-CNN).
탐지 (Detection) 계보는 중복된 작업을 제거하는 과정에 대한 명확한 사례 연구입니다. R-CNN은 CNN 특징 (features)을 위치 선정 (localization)으로 전달했지만, 중첩된 영역에 대해 네트워크를 여러 번 실행했습니다 (Girshick et al., 2014). Fast R-CNN은 하나의 이미지 수준 특징 맵 (feature map)을 계산하고 그로부터 영역을 풀링 (pooling)했습니다 (Fast R-CNN, 2015) — 비록 그 주요 추론 시간에는 외부 제안 (proposal) 생성 시간이 제외되었지만 말입니다. Faster R-CNN은 공유된 특징 (features) 위에서 제안 (proposals)을 학습했습니다 (Ren et al., 2015). 세 편의 논문, 하나의 방향: 동일한 것을 다시 계산하는 것을 멈추는 것입니다. YOLO는 다른 경로를 택하여, 단 한 번의 패스 (pass)로 전체 이미지에서 박스 (boxes)와 클래스 확률로 직접 회귀 (regressing)했으며, 속도를 위해 작거나 밀집된 객체에 대한 일부 위치 선정 (localization) 정밀도를 희생했습니다 (Redmon et al., 2015/2016). 그것이 오리지널 YOLO였습니다. 이후 버전들은 상당히 변했으므로, 첫 번째 논문의 수치를 이후에 출시된 제품을 설명하는 것으로 읽지 마십시오.
시대 3: 깊이가 무너졌고, 그 후 다시 회복되다
만약 몇 개의 합성곱 계층 (conv layers)이 효과적이었다면, 더 많은 계층이 더 나을 것이라는 생각이 들 것입니다. 현실은 달랐습니다.
VGG는 규율 있는 깊이 (depth from discipline)를 주장했습니다. 즉, 표현력이 잘 전이되는 작은 3×3 합성곱 (convolutions)의 적층입니다 (Simonyan & Zisserman, 2015). Inception은 병렬 멀티 스케일 분기 (parallel multi-scale branches)와 1×1 투영 (projections)을 사용하여 계산 예산 (compute budget) 내에서 폭을 넓혔습니다 (Szegedy et al., 2015). Inception의 유명한 6.67% top-5 성능은 하나의 모델이 하나의 크롭 (crop)을 처리한 결과가 아니라, 이미지당 144개의 크롭을 사용하는 7개 모델의 앙상블 (ensemble)에서 나온 것입니다.
그 후 ResNet이 진짜 문제를 지목했습니다. 실험 결과, 더 깊은 일반 (plain) 네트워크가 더 얕은 네트워크보다 더 높은 훈련 (training) 오차를 보였습니다. 이는 저자들이 과적합 (overfitting)과 명시적으로 구분하여 설명한 성능 저하 문제 (degradation problem)였습니다. 잔차 학습 (Residual learning)은 각 블록이 입력에 대한 잔차 (residual)를 학습하고, 항등 지름길 (identity shortcut)이 입력을 앞으로 전달하게 함으로써 이 문제를 해결했습니다 (He et al., 2016). 이 부분을 정확히 이해하는 것이 중요한데, 약식 표현이 오해를 불러일으킬 수 있기 때문입니다. 해당 논문은 "스킵 연결 (skip connections)이 기울기 소실 (vanishing gradients) 문제를 해결했다"라고 주장하지 않습니다. 대신 정규화 (normalization)와 초기화 (initialization)가 이미 수렴 (convergence)에 도움을 주었다고 언급하며, 이 논문의 기여를 매우 깊은 네트워크 (최대 152개 계층)를 최적화 (optimizable) 가능하게 만든 것으로 정의합니다. 이후 EfficientNet은 정확도와 효율성을 공동의 문제로 다루며, 하나의 복합 계수 (compound coefficient)로 깊이 (depth), 폭 (width), 해상도 (resolution)의 균형을 맞추었습니다 (Tan & Le, ICML 2019). 여기서 핵심은 균형을 맞추는 아이디어이며, 보고된 수치는 현재의 리더보드(leaderboard)가 아닌 저자들의 특정 설정에 종속된 것입니다.
시대 4: 트랜스포머 (transformers), 언어, 그리고 프롬프트 가능한 세그멘테이션 (promptable segmentation)
DETR은 탐지(detection)를 직접적인 집합 예측(set prediction)으로 재정의했습니다. 이는 학습된 객체 쿼리(object queries)와 집합 매칭 손실(set-matching loss)을 갖춘 트랜스포머 인코더-디코더(transformer encoder-decoder) 구조로, 앵커(anchors)나 비최대 억제(non-maximum suppression, NMS)와 같은 여러 수동 설계된 구성 요소들을 제거했습니다 (Carion et al., 2020). DETR은 컨볼루션 백본(convolutional backbone)을 유지했으며 느린 수렴 속도와 작은 객체 탐지의 한계가 있었으나, 그 핵심 기여는 공식화(formulation)에 있었습니다. 이후 ViT는 가공되지 않은 이미지 패치(image patches)를 토큰(tokens)으로서 표준에 가까운 트랜스포머(Dosovitskiy et al., 2021)에 입력했습니다. ViT의 가장 강력한 결과물들은 대규모 사전 학습(large-scale pretraining)에 크게 의존했습니다 — 논문에서도 이를 명확히 밝히고 있습니다. ViT는 어텐션(attention)이 본질적으로 컨볼루션(convolution)보다 더 똑똑하다는 것을 증명한 것도 아니며, CNN을 퇴출시킨 것도 아닙니다. 대신 ViT는 서로 다른 사전 확률(priors)과, 그 경로가 적합한 곳에서 성과를 내는 다른 스케일링 경로(scaling path)를 제시했습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기

