핵심 요약
컴퓨터 비전 프로젝트에서 가장 시간이 많이 소요되는 수동 레이블링 작업을 Vision-Language Model(VLM)로 자동화하는 방법론을 다룬다. Microsoft의 Florence-2 모델을 Roboflow Workflows에 통합하여 텍스트 프롬프트만으로 객체를 탐지하고 레이블을 생성하는 제로샷 워크플로우를 구축한다. 생성된 대규모 메타데이터를 Python 스크립트를 통해 COCO 형식으로 변환하고, 이를 활용해 실시간 추론에 최적화된 RF-DETR 모델을 학습시키는 과정을 단계별로 설명한다. 결과적으로 느리고 무거운 파운데이션 모델의 지식을 빠르고 가벼운 프로덕션 모델로 전이하는 효율적인 파이프라인을 완성한다.
배경
Python 프로그래밍 기초, Docker 및 NVIDIA Container Toolkit 설치 환경, 객체 탐지(Object Detection) 기본 개념, Roboflow 계정 및 기본 사용법
대상 독자
컴퓨터 비전 데이터셋 구축 비용을 절감하고 모델 배포 속도를 높이려는 ML 엔지니어 및 개발자
의미 / 영향
이 워크플로우는 데이터 레이블링의 병목 현상을 제거하여 소규모 팀도 대규모 고품질 데이터셋을 빠르게 확보할 수 있게 한다. 특히 특정 도메인에 특화된 경량 모델을 학습시키기 위해 거대 모델의 지식을 활용하는 '모델 증류' 관점의 실무적 접근법을 제시한다.
섹션별 상세


def convert_to_coco(input_folder, output_folder, filename="annotations.coco.json"):
# ... (중략)
for file_path in Path(input_folder).glob("*.json"):
with open(file_path, 'r') as f:
data = json.load(f)
image_filename = file_path.stem + ".jpg"
width = data["output_6"]["image"]["width"]
height = data["output_6"]["image"]["height"]
bbox_data = json.loads(data["output_9"])
bboxes = bbox_data.get("bboxes", [])
labels = bbox_data.get("bboxes_labels", [])
for bbox, label in zip(bboxes, labels):
if label == "humans":
x1, y1, x2, y2 = bbox
w = x2 - x1
h = y2 - y1
coco_output["annotations"].append({
"id": annotation_id,
"image_id": image_id,
"category_id": 0,
"bbox": [float(x1), float(y1), float(w), float(h)],
"area": float(w * h),
"iscrowd": 0
})
annotation_id += 1
image_id += 1Florence-2의 원시 JSON 출력을 표준 COCO 형식으로 변환하는 핵심 로직
실무 Takeaway
- Florence-2와 같은 VLM을 오토 레이블러로 활용하면 수동 레이블링에 소요되는 시간을 며칠에서 몇 분 단위로 단축하여 프로젝트 속도를 획기적으로 높일 수 있다.
- VLM의 추론 결과를 COCO 형식으로 변환하는 파이프라인을 구축함으로써 파운데이션 모델의 지식을 경량화된 RF-DETR 모델로 효과적으로 전이할 수 있다.
- Roboflow의 로컬 인프런스 서버와 배치 프로세싱 기능을 결합하면 대규모 데이터셋에 대한 자동 레이블링 작업을 인프라 관리 부담 없이 수행 가능하다.
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.