Image Classification
CNN부터 실제 AI 활용 사례까지 이미지 분류의 기본 개념을 살펴봅니다. Ultralytics YOLO26을 사용하여 최첨단 분류기를 학습하고 배포하는 방법을 알아봅니다.
이미지 분류는 컴퓨터 비전 (CV)의 기본적인 작업으로, 머신 러닝 모델이 이미지 전체를 분석하고 사전에 정의된 카테고리 집합에서 하나의 레이블을 할당합니다. 본질적으로 "이 사진의 주요 대상은 무엇인가?"라는 질문에 답하는 작업입니다. 인공지능 (AI)의 핵심 구성 요소인 이 프로세스를 통해 자동화된 시스템은 대규모로 시각 데이터를 정리하고, 분류하며, 해석할 수 있습니다. 사람의 눈에는 간단해 보일 수 있지만, 컴퓨터가 패턴을 인식하도록 하려면 원시 픽셀과 의미 있는 개념 사이의 간극을 메우는 정교한 머신 러닝 (ML) 알고리즘이 필요합니다.
분류의 작동 원리#
현대의 이미지 분류는 딥 러닝 (DL) 아키텍처인 컨볼루션 신경망 (CNNs)에 크게 의존합니다. 이러한 네트워크는 생물학적 시각 피질이 정보를 처리하는 방식을 모방하도록 설계되었습니다. 특징 추출이라는 프로세스를 통해 모델은 초기 레이어에서 가장자리와 텍스처 같은 저수준 속성을 식별하는 방법을 학습하고, 이후 더 깊은 레이어에서 이를 결합하여 복잡한 형태와 객체를 인식합니다.
분류기를 구축하기 위해 개발자는 지도 학습을 사용하며, 레이블이 지정된 예제가 포함된 방대한 양의 학습 데이터를 모델에 입력합니다. ImageNet과 같은 대규모 공개 데이터세트는 이러한 시스템의 정확도 향상에 중요한 역할을 해왔습니다. 추론 단계에서 모델은 각 카테고리에 대한 확률 점수를 출력하며, 가장 가능성이 높은 클래스를 결정하기 위해 소프트맥스 함수를 사용하는 경우가 많습니다.
분류와 다른 비전 작업의 비교#
기법의 선택은 구체적인 문제에 따라 달라지므로 이미지 분류와 관련 컴퓨터 비전 기능을 구분하는 것이 중요합니다.
- 분류와 객체 탐지의 비교: 분류는 이미지 전체에 하나의 레이블을 할당합니다. 반면 객체 탐지는 각 객체 주위에 바운딩 박스를 그려 장면 내 여러 객체의 위치를 식별합니다.
- 분류와 이미지 세그멘테이션의 비교: 분류가 전역적인 맥락을 살펴보는 반면, 세그멘테이션은 픽셀 수준의 정밀도를 제공합니다. 시맨틱 세그멘테이션은 모든 개별 픽셀을 분류하여 객체와 배경 사이의 경계를 정확하게 구분할 수 있도록 합니다.
실제 적용 사례#
이미지 분류는 다양한 산업 분야에서 광범위한 실제 AI 애플리케이션을 구동합니다.
의료 진단#
의료 분야에서 분류 모델은 진단 스캔을 분석하여 영상의학 전문의를 지원합니다. 의료 이미지 분석 도구는 X선 또는 MRI를 "정상" 또는 "비정상"으로 신속하게 분류하거나 종양 탐지와 같은 특정 질환을 식별하여 환자 분류와 진단을 앞당길 수 있습니다.
제조 분야의 품질 관리#
공장에서는 제품 표준을 유지하기 위해 자동화된 육안 검사를 활용합니다. 조립 라인의 카메라는 부품 이미지를 촬영하고, 분류 모델은 눈에 보이는 결함을 기준으로 이를 즉시 "통과" 또는 "실패"로 레이블 지정합니다. 이러한 자동화된 품질 관리를 통해 결함이 없는 제품만 포장 단계에 도달하도록 보장합니다.
스마트 농업#
농업 종사자는 작물의 상태를 모니터링하기 위해 농업 분야의 AI를 활용합니다. 드론이나 스마트폰으로 촬영한 이미지를 분류하면 시스템이 질병, 영양 결핍 또는 해충 감염의 징후를 식별하여 정밀한 정밀 농업 개입을 가능하게 합니다.
Ultralytics YOLO26을 활용한 분류 구현#
Ultralytics YOLO26 프레임워크는 탐지로 유명하지만 이미지 분류 작업에서도 최첨단 성능을 제공합니다. 이 아키텍처는 속도와 정확도에 최적화되어 실시간 애플리케이션에 적합합니다.
다음은 사전 학습된 모델을 로드하고 ultralytics Python 패키지를 사용하여 이미지를 분류하는 간결한 예제입니다.
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Run inference on an image source
results = model("https://ultralytics.com/images/bus.jpg")
# Print the top predicted class name
print(f"Prediction: {results[0].names[results[0].probs.top1]}")워크플로를 간소화하려는 팀을 위해 Ultralytics Platform은 전체 파이프라인을 간소화합니다. 사용자는 분류 데이터세트를 관리하고, 클라우드 기반 학습을 수행하며, 광범위한 코딩 인프라 없이 ONNX 또는 TensorRT와 같은 다양한 형식으로 모델을 배포할 수 있습니다.









