컴퓨터 비전
Computer Vision
컴퓨터가 이미지/영상을 이해하는 AI 분야. 객체 인식, 세그멘테이션, 자율주행에 활용.
Computer Vision
컴퓨터가 이미지/영상을 이해하는 AI 분야. 객체 인식, 세그멘테이션, 자율주행에 활용.
컴퓨터 비전(Computer Vision)은 컴퓨터가 디지털 이미지나 비디오를 분석하고 이해하여 의미 있는 정보를 추출하는 인공지능 분야입니다. 인간의 시각 시스템을 모방하여 물체 인식, 장면 이해, 패턴 감지 등의 작업을 자동화합니다. 2024-2025년 현재 Vision Transformer(ViT), CLIP, SAM(Segment Anything Model) 등의 기반 모델이 컴퓨터 비전의 패러다임을 혁신하고 있습니다.
컴퓨터 비전의 역사는 1960년대 MIT의 Summer Vision Project에서 시작되었으며, 2012년 AlexNet의 ImageNet 대회 우승으로 딥러닝 기반 접근법이 주류가 되었습니다. 이후 ResNet, EfficientNet 등 CNN 아키텍처가 발전하다가, 2020년 이후 Transformer 아키텍처가 도입되면서 멀티모달 학습과 제로샷 인식이 가능해졌습니다. 특히 2023년 Meta의 SAM 발표 이후 세그멘테이션 작업의 일반화 능력이 크게 향상되었습니다.
핵심 작업으로는 이미지 분류(Classification), 객체 탐지(Object Detection), 시맨틱 세그멘테이션(Semantic Segmentation), 인스턴스 세그멘테이션(Instance Segmentation), 포즈 추정(Pose Estimation), 깊이 추정(Depth Estimation) 등이 있습니다. YOLOv8, DINO, Grounding DINO 같은 최신 모델들은 실시간 처리와 오픈 보캐뷸러리(open-vocabulary) 인식을 지원하여 다양한 도메인에 즉시 적용 가능합니다.
실무에서 컴퓨터 비전은 자율주행 차량, 의료 영상 진단, 제조업 품질 검사, 보안 감시, AR/VR, 농업 드론 등 거의 모든 산업에서 활용됩니다. 2025년 기준 Edge AI 칩셋(NVIDIA Jetson Orin, Apple Neural Engine)과 결합하여 디바이스 온-디바이스 추론이 일반화되고 있으며, 5G/6G 네트워크와 연동한 실시간 비전 애플리케이션이 확산되고 있습니다.
YOLOv8을 사용한 객체 탐지와 OpenCV를 활용한 이미지 처리 예제입니다.
# YOLOv8을 사용한 객체 탐지 예제
# pip install ultralytics opencv-python
from ultralytics import YOLO
import cv2
# YOLOv8 모델 로드 (nano, small, medium, large, xlarge 선택 가능)
model = YOLO('yolov8n.pt') # 가장 빠른 nano 모델
# 이미지 파일로 객체 탐지
image_path = 'sample.jpg'
results = model(image_path)
# 결과 시각화 및 저장
for result in results:
# 바운딩 박스 정보
boxes = result.boxes
for box in boxes:
cls = int(box.cls[0]) # 클래스 인덱스
conf = float(box.conf[0]) # 신뢰도
label = model.names[cls] # 클래스 이름
print(f"탐지: {label} (신뢰도: {conf:.2f})")
# 결과 이미지 저장
result.save(filename='result.jpg')
# 실시간 웹캠 객체 탐지
cap = cv2.VideoCapture(0)
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
# 추론 수행
results = model(frame, verbose=False)
annotated_frame = results[0].plot() # 결과 시각화
cv2.imshow('YOLOv8 Detection', annotated_frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
Transformers 라이브러리를 활용한 이미지 분류 예제입니다.
# Vision Transformer를 사용한 이미지 분류
# pip install transformers torch pillow
from transformers import ViTImageProcessor, ViTForImageClassification
from PIL import Image
import torch
# ViT 모델과 프로세서 로드
processor = ViTImageProcessor.from_pretrained('google/vit-base-patch16-224')
model = ViTForImageClassification.from_pretrained('google/vit-base-patch16-224')
# 이미지 로드 및 전처리
image = Image.open('cat.jpg')
inputs = processor(images=image, return_tensors="pt")
# 추론 수행
with torch.no_grad():
outputs = model(**inputs)
logits = outputs.logits
# Top-5 예측 결과
probs = torch.softmax(logits, dim=-1)
top5_probs, top5_indices = torch.topk(probs, 5)
print("Top-5 예측 결과:")
for prob, idx in zip(top5_probs[0], top5_indices[0]):
label = model.config.id2label[idx.item()]
print(f" {label}: {prob.item():.4f}")
2025년 1월 기준 주요 컴퓨터 비전 모델 비교입니다.
| 모델 | COCO mAP | 속도 (FPS) | 파라미터 | 용도 |
|---|---|---|---|---|
| YOLOv8-nano | 37.3% | ~600 FPS | 3.2M | Edge/모바일 |
| YOLOv8-large | 52.9% | ~100 FPS | 43.7M | 서버 추론 |
| DINO (ViT-L) | 63.0% | ~15 FPS | 304M | 고정밀 분석 |
| SAM (ViT-H) | - | ~10 FPS | 641M | 세그멘테이션 |
클라우드 비전 API 가격 비교 (2025년 1월 기준):
| 서비스 | 1,000건 가격 | 무료 티어 | 주요 기능 |
|---|---|---|---|
| Google Cloud Vision | $1.50 | 1,000건/월 | OCR, 라벨링, 얼굴 |
| AWS Rekognition | $1.00 | 5,000건/월 (12개월) | 객체, 텍스트, 얼굴 |
| Azure Computer Vision | $1.00 | 5,000건/월 | 분석, OCR, 썸네일 |
COCO나 ImageNet으로 학습된 모델을 산업 현장에 바로 적용하면 성능이 크게 저하됩니다. 조명, 각도, 배경이 다른 실제 환경 데이터로 파인튜닝이 필수입니다.
서버용 대형 모델을 Edge 디바이스에 배포하려다 실패하는 경우가 많습니다. 타겟 하드웨어의 메모리, 연산 능력을 먼저 확인하고 적절한 모델 크기를 선택하세요.
프로젝트 초기에 타겟 환경에서 벤치마크를 수행하고, 정확도와 속도의 트레이드오프를 명확히 정의하세요. ONNX, TensorRT, CoreML 등 추론 최적화 도구를 활용하여 배포 환경에 맞게 모델을 변환하세요.