프로젝트 방향 설정
1. 목표 구체화
- 프로젝트의 큰 주제는 주차 공간탐색 프로그램을 개발하는 것
- 우리 팀의 결과물은 주차공간 탐색 및 분류 + 객체 인식 하는 프로그램
- 영상으로부터 주차공간(영역)과 여러 장애물(객체)을 인식하고 분류
- 주차공간 : 상태에 따라 4가지로 분류 (Empty, Caution, Reserved, Blocked) 및 갯수 표시
- 장애물 : 학습된 Class에 따라 이름을 붙이고 갯수 표시
2. 데이터셋 선정
- 마트 30.4% / 병원 22.9% / 사무실 23.2% / 기타 23.6% 로 구성된 실내외 주차장의 이미지 데이터
- 29개 Class의 Segmentation Labeled Data

AIHUB 실내 자율주차용 데이터셋
3. 학습 프레임
- 실시간성 + 정확도를 고려하여 가장 범용성이 높은 YOLOv8-seg 모델 선정
a ) YOLOv8-seg란?
- YOLOv8-seg는 Ultralytics에서 공개한 YOLOv8 모델의 instance segmentation 버전
- 기존 YOLO 시리즈가 bounding box 중심의 객체 검출에 초점을 맞췄다면,
YOLOv8-seg는 객체의 정확한 외곽(mask)까지 예측할 수 있는 기능이 추가됨.
YOLO + segmentation 기능이 결합된 버전
b ) YOLOv8-seg의 구조
c ) 출력 형식
- class: 예측된 객체의 클래스
- box: 객체의 bounding box 좌표
- mask: 객체의 pixel-level mask (binary 형태)
즉, YOLOv8-seg는 이미지 속 각 객체의 정확한 영역까지 예측할 수 있어서
보다 정밀한 분석이 필요한 분야(예: 의료 영상, 자율주행, 주차공간 탐색 등)에도 적용 가능
< YOLOv8-seg_Dataset >
├── images/
│ ├── train/
│ │ ├── xxx.jpg
│ └── val/
│ └── yyy.jpg
├── labels/
│ ├── train/
│ │ ├── xxx.txt
│ └── val/
│ └── yyy.txt
└── data.yaml
< Label.txt >
<class_id> <x_center> <y_center> <width> <height> <x1> <y1> <x2> <y2> ... <xn> <yn>
< data.yaml >
path: YOLOv8-seg_Dataset/
train: images/train/
val: images/val/
nc: 29
names:
0: Undefined Stuff
1: Wall
2: Driving Area
3: Non Driving Area
4: Parking Line
5: Parking Area
6: No Parking Area
7: Big Notice
8: Pillar
9: Parking Area Number
10: Disabled Icon
11: Women Icon
12: Compact Car Icon
13: Speed Bump
14: Parking Block
15: Billboard
16: Toll Bar
17: Sign
18: No Parking Sign
19: Traffic Cone
20: Fire Extinguisher
21: Undefined Object
22: Two-wheeled Vehicle
23: Vehicle
24: Wheelchair
25: Stroller
26: Shopping Cart
27: Animal
28: Human
4. 데이터 전처리 계획
- Camera / Lidar 중 Camera만 Image Data로 사용
- Image는 있지만 Label은 없는 (혹은 반대인) 데이터 제거
- 팀원 4명이서 각 카테고리( 병원, 마트, 사무실, 기타 ) 데이터의 Annotation.json 파일로부터
YOLOv8-seg 학습 포맷의 Label.txt 변환 후 병합
- 학습 Class : 29개 -> 13개 로 축소 ( 중요도에 따라 선별 )
- 용량 이슈로 인해 validation 제외, train 데이터만 다운받아 9:1로 분할하여 train/val 데이터로 사용
- 이미지 데이터를 4프레임 당 1개로 선별 : 0.5초 간격으로 촬영한 이미지이기 때문에 프레임간 큰 차이가 없어 프레임 제한을 두기로 함 -> 2초에 한번 촬영한 이미지