Vision AI 제품 개발 과정 - (1) Task 정의, 데이터 수집, 데이터 정제
최근 LLM 기술의 발전과 함께
Ultralytics, Roboflow, Hugging Face, SAM, ChatGPT 등
AI 생태계를 구성하는 다양한 도구와 프레임워크가 널리 보급되며
AI 모델 구축의 진입 장벽은 현저히 낮아졌습니다.
이제 누구나 코드 몇 줄과 공개 데이터셋만으로
AI 모델을 실험하고 테스트할 수 있는 환경이 마련되었지만,
실무에서 실제로 작동하는 제품을 개발하려면
기능 구현을 넘어 설계, 연동, 운영까지 고려한 입체적인 접근이 필요합니다.
AI 제품 개발의 핵심은
성능 좋은 모델을 만드는 데 그치지 않고,
현장의 제약 조건과 비즈니스 목적을 동시에 충족하는 솔루션을 구축하는 것입니다.
Vision AI가 산업 안전 분야에서 제품으로 구현되는 과정을
실제 화학공장 폐쇄망 환경에 적용된 보호구 탐지 시스템 구축 사례를 토대로
단계별로 정리해보려 합니다.
이 글은 Vision AI 제품 개발 과정의 첫 번째 편으로,
전체 내용은 다음과 같은 흐름으로 구성되어 있습니다:
- (1) Task 정의, 데이터 수집, 데이터 정제
- (2) 데이터 가공, 학습데이터셋 구축, 모델 학습 및 검증
- (3) 모델 최적화 및 경량화, 분석엔진 개발, 시스템 배포 및 운영
각 편에서는 해당 사례를 중심으로,
Vision AI 기술이 실제 환경에서 안정적으로 작동하기까지의 구현 과정을 설명합니다.
1. Task 정의
Task 정의란, AI가 “무엇을 해결할 것인가”를 기술적으로 구조화하는 첫 단계입니다.
이는 “무엇을 인식할까?”를 정하는 수준을 넘어,
고객의 요구를 기술 언어로 해석하고,
현장 환경과 제약 조건을 반영하여 데이터와 모델로 실현 가능한 형태로 전환하는 과정입니다.
고객 요청을 기술적으로 해석하기
예를 들어 고객이 “작업자 보호구 착용 여부를 인식하고 싶다”고 말했을 때,
다음과 같은 요소들을 함께 고려해야 합니다:
| 고려 요소 | 세부 내용 |
|---|---|
| 촬영 환경 | 실내/실외, 조도, 카메라 위치 등 |
| 장비 사양 | CCTV 기종, 채널 수, 해상도 |
| 보호구 종류 | 안전모, 보호복, 마스크 등 조합 |
| 판별 조건 | 모든 보호구 착용 vs 일부 착용 |
| 실시간성 | 요구와 허용 가능한 지연 범위 |
| 대응 방안 | 인식 실패 시 알람, 저장, 무시 등 |
장비가 아직 설치되지 않은 경우,
CCTV 위치, 높이, 각도 등에 대한 설치 가이드라인 수립도 선행되어야 합니다.
(해당 내용은 후속 편에서 별도로 다룰 예정입니다.)
보호구 객체와 환경 조건
화학 공장의 경우,
실내와 실외 작업 구역에 따라 요구되는 보호구 종류가 달라집니다.
예를 들어,
특정 실외 구역에서는 방독 마스크 착용이 필수인 반면,
실내에서는 보다 간단한 보호장비만 요구되기도 합니다.
이처럼 Task 정의에서는 인식할 대상을 나열하는 것을 넘어,
작업 환경과 업무 특성, 그리고 현행 법규 및 사내 안전 기준까지 반영하여
클래스 구성과 판단 기준을 체계적으로 설계해야 합니다.
작은 객체에 대한 관측 한계
보안경이나 보안 마스크와 같은 상대적으로 작은 객체는
CCTV 영상에서 정면 시야가 확보되지 않으면 수집 자체가 어려운 경우가 많습니다.
이로 인해 사람, 보호복, 안전모 등에 비해
데이터 수량이 적어질 수밖에 없는 구조적인 한계가 존재합니다.
따라서, 이러한 관측 제약 조건을 사전에 인지하고,
데이터 수집 및 모델 학습 단계에서의 대응까지 고려한 설계가 필요합니다.
장비 선택이 Task 정의에 미치는 영향
현업의 산업 안전 프로젝트에서는
대부분 한화비전(Hanwha Vision) CCTV가 사용됩니다.
이는 시장 점유율 문제를 넘어,
- RTSP 기반 영상 연동이 안정적이고
- 카메라 설정 방식이 표준화되어 있으며
- 시운전 및 실시간 분석 시스템과의 연동이 수월하기 때문입니다.
또한 많은 기업이 이미 보유하고 있는 장비라
추가 설치 없이 곧바로 연동 가능한 환경이라는 점도 강점입니다.
CCTV 화각(FOV)의 영향
CCTV의 화각(광각 여부) 역시 Task 정의에서 중요한 변수 중 하나입니다.
광각 카메라는 넓은 범위를 한 번에 담으므로 카메라 설치 수를 줄일 수 있는 장점이 있지만,
- 화면 가장자리 왜곡(distortion)
- 객체 크기 축소로 인한 인식률 저하
와 같은 문제가 동반될 수 있습니다.
따라서 Task 정의 단계에서는
- 어떤 유형의 CCTV가 사용되는지
- 카메라의 설치 위치, 각도, 화각
- 객체가 화면 내에서 차지하는 비율
등을 함께 고려해야 하며,
이 조건에 맞춰 라벨링 방식, 해상도, 입력 크기, 모델 구조 등을 설정해야 합니다.
Task 정의와 함께 산정해야 할 공수
Task 정의와 동시에 전체 프로젝트의 규모와 일정을 예측해야 합니다.
예를 들어, 다음과 같은 기준을 토대로 프로젝트 계획을 세울 수 있습니다:
| 항목 | 수량 |
|---|---|
| 전체 시나리오 수 | 10개 |
| 목표 데이터 수 | 24,000 프레임 |
| 라벨러 인원 | 평균 3명 |
| 라벨링 가능량 | 1인당 하루 약 300장 |
이러한 정보는 후속 단계인 데이터 정제 및 라벨링 일정 산정의 기준으로 활용됩니다.
특히 본 프로젝트에서는
데이터가 가공되는 즉시 모델 학습에 순차적으로 투입되는 구조였기 때문에,
고정된 일정을 기준으로 산정하기보다는,
라벨링 속도와 학습 주기를 유기적으로 연동하여 유동적으로 관리하는 전략이 사용되었습니다.
정리
Task 정의는 “무엇을 인식할 것인가”를 넘어서,
“무엇을 인식할 수 있는가”까지 설계하는 기술 중심의 구조화 작업입니다.
- 작업 환경, 장비 조건, 객체 특성, 관측 제약 분석
- CCTV 화각, 해상도, 시야각 등 입력 조건 반영
- 클래스 구성 및 판단 기준을 기술 요건에 맞게 설계
- 전체 데이터 규모와 라벨링 공수를 예측하여 후속 단계까지 체계화
Task 정의는 수집–정제–학습 전체 과정의 기준점이며,
AI 모델이 실현 가능한 목표를 갖도록 전환하는 출발점입니다.
2. 데이터 수집
Task 정의가 완료되면, 이제 모델 학습에 필요한 실제 데이터를 수집하는 단계로 넘어갑니다.
하지만 Vision AI 프로젝트에서의 데이터 수집은 단순한 영상 촬영이 아닙니다.
정의된 Task를 충실히 반영하며, AI가 학습 가능한 구조로 데이터를 준비하는 핵심 과정입니다.
수집 계획 수립
Task 정의에서 도출된 요소를 기준으로 다음과 같은 항목을 사전에 설계합니다:
- 어떤 환경(실내/실외)에서
- 어떤 보호구 조합을
- 어떤 카메라(화각, 해상도 등)로 촬영할지
예를 들어,
- 실내: 안전모 + 보호복 + 일반 마스크
- 실외: 안전모 + 보호복 + 방독 마스크
와 같은 보호구 착용 시나리오를 기준으로 데이터 수집을 진행합니다.
이때 현장에서 자주 발생하는 미착용 조합 시나리오도 함께 수집하여
정상/비정상 사례가 균형 있게 포함되도록 구성합니다.
필요한 경우, AI Engineer가 직접 보호구를 착용해 수집에 참여하기도 합니다.
수집에 대한 대표적인 오해
실제 프로젝트를 진행하다 보면, 고객이
“이미 영상 데이터가 있으니, 그냥 학습만 해주세요.”
라고 말하는 경우가 많습니다.
하지만 대부분의 경우, 기존 데이터는 다음과 같은 문제로 학습에 적합하지 않습니다:
- 인식 대상이 작거나 모호하게 촬영됨
- 해상도가 낮아 객체 식별이 어려움
- 측면 위주로만 촬영되어 정면 시야 부족
- 필요한 보호구가 영상에 등장하지 않음
이러한 한계로 인해, 실무에서는 대부분 처음부터 데이터셋을 새로 구축하게 됩니다.
수집 방식의 종류
| 수집 방식 | 설명 |
|---|---|
| 고객사 현장 수집 | 가장 일반적이고 권장되는 방식. Task에 최적화된 시나리오 설계 가능 |
| 오픈 데이터셋 활용 | 보조 수단. 보호구 종류나 배경 다양성을 보완할 때 유용 |
| 웹 크롤링 이미지 | 제한적으로 사용. 저작권 및 품질 이슈 존재 |
| 스마트폰/일반카메라 | 학습데이터 구축사업에서 사용. 도메인 차이로 성능 격차 발생 우려 |
| 합성 데이터 | 3D 시뮬레이션, GAN 등으로 생성. 실무에서는 제한적 활용 |
특히 CCTV 기반 실시간 분석이 목적이라면,
수집도 같은 환경(CCTV 설치 구역)에서 직접 진행해야
도메인 일치 측면에서 효과적입니다.
실시간성과 장비 호환
한화비전 CCTV처럼 RTSP 연동이 쉬운 경우 실시간으로 수집 및 저장이 가능하며,
필요 시 자동 캡처 방식도 활용할 수 있습니다.
(본 프로젝트는 수동 저장 및 수동 분할 방식 사용)
수집 단계에서 다음 항목을 반드시 점검해야 합니다:
| 체크 항목 | 세부 내용 |
|---|---|
| 채널 수 | 동시 처리 가능한 카메라 수 |
| 영상 저장 주기 및 포맷 | 프레임 레이트, 압축 방식 등 |
| 해상도 | FHD(1920x1080), 4K(3840x2160) 등 |
| 영상 회전 문제 | EXIF orientation 포함 여부 확인 |
참고: EXIF 회전 정보
- 일부 장비는 영상 파일에 회전 정보를 픽셀에 적용하지 않고,
EXIF 메타데이터에만 회전 방향을 기록하는 경우가 있습니다. - 이러한 경우, 라벨링 시 박스 오차(bbox misalignment),
학습 시 방향 오류 등 문제가 발생할 수 있습니다. - 따라서 수집 단계에서는 EXIF 회전 정보의 존재 여부만 확인하고,
실제 회전 정규화는 정제 단계에서 수행하는 것이 일반적인 처리 흐름입니다.
수집 단계: EXIF 존재 여부 확인
정제 단계: 회전 정규화 또는 메타데이터 제거
이러한 점검은 후속 라벨링, 정제, 학습 단계에서의 오류를 사전에 예방하는 핵심 절차입니다.
정리
데이터 수집은 모델 학습에 최적화된 고품질의 데이터를 확보하는 전략적 과정입니다.
- Task 정의 기반 시나리오 수립 및 수집 진행
- 기존 데이터의 한계 인식 및 신규 구축 필요성 파악
- CCTV 장비 사양, 해상도, 저장 포맷 등 환경 요소 고려
- AI Engineer의 직접 수집 참여 등 현장 중심의 실무 대응
실제 프로젝트에서는 수집 계획 수립부터 AI Engineer가 주도하며,
데이터 품질과 구조가 모델 성능에 미치는 영향을 깊이 이해하고 있어야 합니다.
3. 데이터 정제
수집된 원본 데이터를 그대로 학습에 사용하는 경우는 거의 없습니다.
해상도, 형식, 메타데이터, 프레임 구조 등 다양한 요소가 불규칙하거나 일관되지 않기 때문에,
모델 학습에 적합한 구조로 전처리(Preprocessing)하는 ‘정제’ 과정이 필수입니다.
대표적인 정제 항목
프레임 분할
CCTV 영상은 일반적으로 연속된 동영상으로 수집되므로,
이를 일정 간격의 정적인 이미지로 분할해야 학습이 가능합니다.
| 분할 방식 | 설명 |
|---|---|
| 1초당 1프레임 추출 | 시간 기준 균등 분할 |
| 특정 FPS 기준 분할 | 프레임 레이트 기반 분할 |
| 시나리오별 프레임 수 조절 | 라벨링 공수에 맞춰 데이터 양 조절 |
| 중복 장면 삭제 | 수동 검수와 선별 필요, 자동화 어려움 |
해상도 정규화 및 리사이징
프로젝트에 따라 카메라 해상도는 FHD(1920×1080), 4K(3840×2160) 등 다양하지만,
대부분의 모델은 정해진 입력 크기(imgsz)에 맞춰 리사이징이 필요합니다.
예: YOLO 기반 모델의 경우 imgsz=640, imgsz=1280 등 사용
자주 혼동되는 개념 정리: 해상도, 이미지 사이즈, 모델 입력 크기의 차이
| 용어 | 의미 | 예시 |
|---|---|---|
| 해상도 (Resolution) | 원본 이미지의 픽셀 크기 | 1920x1080, 3840x2160 |
| 이미지 사이즈 | 저장된 이미지의 실제 크기 | .jpg 파일 기준 |
| 모델 입력 크기 | 학습 시 모델에 입력되는 크기 | 640, 1280 등 |
실제 프로젝트에서 학습은 FHD로 진행하고 테스트셋은 4K를 사용한 경우,
입력 크기는 같아도 객체가 상대적으로 작게 나와 인식률이 급감하는 문제가 발생했습니다.
핵심은 해상도가 아니라 객체가 이미지 내에서 차지하는 상대적 비율입니다.
파일명 정리 및 정렬
파일명이 정리되지 않으면 라벨링 툴에서 순서가 꼬이거나,
train/val/test 분할 시 오류가 발생할 수 있습니다.
아래의 예시처럼 명명 규칙을 통일해야 합니다:
- 예:
zone01_scenarioA_0001.jpg - 구역별, 시나리오별 정렬 기준 함께 유지
메타데이터 정제 (EXIF – Auto Orientation)
메타데이터는 이미지 파일에 포함된 추가 정보로,
촬영 시점, 카메라 설정, GPS 위치, 회전 방향 등의 정보가 담겨 있습니다.
그중 Auto Orientation(EXIF 회전 정보)는
스마트폰이나 일부 카메라에서 자주 발생하며,
이미지는 회전되어 보이지만 픽셀은 회전되지 않고,
회전 정보만 메타데이터에 저장된 상태인 경우가 많습니다.
이러한 EXIF 회전 정보는 정제 과정에서 반드시 처리해야 합니다.
그렇지 않으면 다음과 같은 문제가 발생할 수 있습니다:
- 이미지만 회전되고 라벨은 고정되어 위치가 어긋나는 문제 발생
- 학습 시 객체 위치가 왜곡되어 모델 정확도 하락 초래
실제 사례
AI Hub의 일부 오픈 데이터셋에서는
EXIF 회전 정보가 제거되지 않은 상태로 업로드되어 있었으며,
이로 인해 이미지와 라벨의 방향이 불일치하는 문제가 발생했습니다.
결과적으로 모델 학습이 비정상적으로 진행되어
성능이 크게 저하되는 사례가 다수 보고되었습니다.
| 처리 방법 | 설명 |
|---|---|
| EXIF 정보 제거 후 저장 | 메타데이터를 완전히 삭제하여 회전 정보 무효화 |
| 이미지와 라벨 회전 | EXIF 기준으로 둘 다 동일하게 회전 적용 |
두 방법 중 하나는 반드시 적용되어야 하며,
정제 단계에서 누락될 경우 전체 데이터 품질에 치명적인 영향을 줄 수 있습니다.
정제 과정에 대한 오해
실제 현장에서는 종종 다음과 같은 오해가 존재합니다:
“데이터 수집만 끝나면 곧바로 학습 가능하겠죠?”
하지만 정제가 되지 않으면 라벨링조차 시작할 수 없습니다.
정제는 전체 Vision AI 파이프라인의 입구 필터입니다.
이 단계가 제대로 이뤄지지 않으면
학습, 검증, 테스트에서 발생하는 문제의 원인이 됩니다.
정리
데이터 정제는 학습 이전의 ‘준비 작업’이 아니라,
학습의 성공 여부를 좌우하는 필수 기반 작업입니다.
- CCTV 영상 → 이미지 프레임 분할
- 해상도 및 입력 크기 정규화
- 파일명 정렬 및 시나리오 구분
- EXIF 회전 정보 정리
이러한 정제 작업이 완료되어야
라벨링 → 학습 → 검증으로 이어지는 전체 흐름이 안정적으로 작동합니다.