본문 바로가기
C.W.K.
Stream
Lesson 03 of 06 · published

객체 탐지 — YOLOv8

~8 min · keras-cv

Level 0Keras 도제
0 XP0/97 lessons0/20 achievements
0/120 XP to next level120 XP to go0% complete

객체 탐지는 레이블과 위치를 함께 찾아

분류는 이미지에 무엇이 있는지 답하고, 객체 탐지는 무엇이 어디에 있는지 답해. 발견한 객체마다 경계 상자와 클래스를 반환하며 한 프레임에 수십 개가 나올 수도 있어. 예전에는 TensorFlow Object Detection API나 별도 YOLO 저장소를 직접 엮어야 했지만, KerasCV는 이 과정을 익숙한 from_preset 방식으로 묶어 줘.

대표 모델인 YOLOV8은 단일 단계 실시간 탐지기로 운영 환경에서 널리 쓰여. model = YOLOV8Detector.from_preset('yolo_v8_xs_pascalvoc') 한 줄로 사전 학습 가중치를 불러오고 predict()를 호출하면 경계 상자, 클래스 ID, 신뢰도를 담은 딕셔너리를 반환해. 같은 객체의 겹친 상자를 합치는 비최대 억제도 자동으로 처리해.

실행 환경에 맞는 크기 고르기

YOLOV8에는 xs, s, m, l, xl의 5가지 크기가 있어. xs가 가장 빠르고 xl이 가장 정확하며 백본과 마찬가지로 지연 시간과 정확도를 조절하는 선택지야. 제한된 하드웨어의 실시간 영상에는 xs나 s, 오프라인 일괄 처리에서 정확도가 중요하면 l이나 xl을 고려해. 사용자 클래스에 미세 조정할 때는 백본을 고정하고 탐지 출력 헤드부터 학습해.

Code

YOLOV8 불러오기와 객체 탐지 추론·python
# Load YOLOV8 with COCO pretrained weights
detector = keras_cv.models.YOLOV8Detector.from_preset(
    "yolo_v8_m_coco",  # xs, s, m, l, xl sizes
)

# Run inference
predictions = detector.predict(images)
# predictions["boxes"] → bounding box coordinates
# predictions["classes"] → class IDs
# predictions["confidence"] → confidence scores

External links

Exercise

PASCAL VOC로 사전 학습된 YOLOv8s를 불러와 시험 이미지 5개를 predict()하고, 클래스와 신뢰도를 포함한 상자를 matplotlib 또는 keras_cv.visualization.plot_bounding_box_gallery로 그려. 신뢰도 문턱을 일부러 낮춰 거짓 양성이 늘어나는 모습을 확인하고, 거짓 양성 1개와 놓친 탐지 1개의 원인을 가림·특이한 크기·VOC의 20개 클래스 밖 객체 관점에서 추론해.
Hint
VOC에는 클래스가 20개뿐이라 놓친 것처럼 보이는 객체가 레이블 집합 밖에 있을 수 있어. 신뢰도 문턱은 정밀도와 재현율의 가장 큰 조절 수단이므로 다른 설정 전에 먼저 훑어봐.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.