| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 시스템관리
- pytorch
- 머신러닝
- Windows
- C++ 기초
- tensorRT
- 딥러닝
- github
- git
- onnx
- 앱테크
- 파이썬
- 인공지능
- 프로그래밍
- Vision AI
- AI
- Python
- 생성형AI
- YOLO
- 딥러닝 추론 최적화
- stable diffusion
- 파이썬 클래스
- 오픈소스
- comfyui
- 생성형 AI
- 스마트팩토리
- 산업적용
- yolo11
- 비전AI
- 리눅스
Archives
- Today
- Total
너도 할 수 있는, 너도밤나무 코딩
[YOLO] Python과 OpenCV를 활용한 실시간 객체 탐지 프로젝트 본문
인공지능(AI, Artificial Intelligence)/비전 AI(Vision AI)
[YOLO] Python과 OpenCV를 활용한 실시간 객체 탐지 프로젝트
곡마일장 2025. 9. 5. 12:26반응형
최근 AI와 컴퓨터 비전 기술이 발전하면서, **실시간 객체 탐지(Real-Time Object Detection)**는 자율주행, CCTV, 드론, 로봇 등 다양한 분야에서 필수 기술이 되었습니다.
이번 포스팅에서는 Python과 OpenCV를 활용해 웹캠 영상에서 YOLO 기반 객체 탐지를 실시간으로 구현하는 방법을 단계별로 소개합니다.
1. 프로젝트 개요
이번 프로젝트의 목표는 다음과 같습니다:
- Python + OpenCV로 웹캠 영상 처리
- YOLOv8 모델을 활용한 객체 탐지
- 실시간으로 객체 위치와 클래스 표시
사용 기술 스택:
| 기술 | 용도 |
| Python | 프로그래밍 언어 |
| OpenCV | 영상 캡처 및 처리 |
| YOLOv8 | 객체 탐지 모델 |
| PyTorch | YOLO 학습/추론 백엔드 |
SEO 키워드: Python 객체 탐지, OpenCV 실시간 영상 처리, YOLO 웹캠 실시간 객체 탐지
2. 환경 설정
Python 패키지 설치
pip install opencv-python torch ultralytics

- opencv-python: 영상 처리 및 웹캠 연동
- torch: YOLO 추론을 위한 딥러닝 백엔드
- ultralytics: YOLOv8 모델 사용
3. YOLO 모델 준비
YOLOv8의 pretrained 모델을 사용하면 바로 객체 탐지가 가능합니다.
from ultralytics import YOLO
# YOLOv8 모델 로드 (pretrained)
model = YOLO('yolov8n.pt')
# 'yolov8n.pt'는 가장 작은 YOLOv8 모델
- yolov8n.pt 외에도 yolov8s.pt, yolov8m.pt 등 다양한 모델 선택 가능
- 작은 모델일수록 실시간 처리 속도↑, 정확도는 약간↓
SEO 키워드: YOLOv8 실시간 객체 탐지, Python YOLO 웹캠
4. OpenCV로 웹캠 영상 가져오기
import cv2
# 웹캠 연결
cap = cv2.VideoCapture(0)
# 0번 카메라 선택
while True: ret, frame = cap.read()
if not ret: break
# 영상 출력
cv2.imshow('Webcam', frame)
# q 키를 누르면 종료
if cv2.waitKey(1) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
- cap.read()로 프레임 단위로 웹캠 영상 읽기
- cv2.imshow()로 실시간 영상 출력
5. 실시간 객체 탐지 통합
while True:
ret, frame = cap.read()
if not ret:
break
# YOLO 추론
results = model(frame)
# 결과 시각화
annotated_frame = results[0].plot()
# bbox와 클래스 표시
# 화면 출력
cv2.imshow('YOLO Object Detection', annotated_frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break cap.release()
cv2.destroyAllWindows()
- results[0].plot()로 탐지된 객체를 영상에 표시
- YOLOv8 모델이 실시간으로 객체 위치, 클래스, confidence score를 그려줌
SEO 키워드: 실시간 YOLO 객체 탐지, Python OpenCV YOLOv8, 웹캠 객체 탐지 예제
6. 성능 개선 팁
- 작은 모델 사용: yolov8n.pt 또는 yolov8s.pt
- 영상 크기 축소: 프레임 크기 줄이면 FPS↑
- GPU 사용: CUDA 지원 환경에서 속도 대폭 향상
model = YOLO('yolov8n.pt', device='cuda:0') # GPU 사용
7. 프로젝트 확장 아이디어
- 객체 추적: YOLO + OpenCV tracker 연동
- 알람 시스템: 특정 객체 감지 시 알림 전송
- 저장 기능: 탐지된 프레임을 이미지/영상으로 저장
- 멀티 카메라: 여러 웹캠 연동, 멀티 스트림 실시간 탐지
8. 결론
이번 프로젝트에서는 Python과 OpenCV로 YOLOv8 객체 탐지를 웹캠 영상에 실시간 구현하는 방법을 다뤘습니다.
- YOLO pretrained 모델을 활용하면 즉시 실시간 객체 탐지 가능
- OpenCV를 통해 웹캠 영상 처리 및 시각화
- GPU 활용과 작은 모델 사용으로 FPS 향상 가능
이 코드를 기반으로 실시간 모니터링, CCTV, 드론 영상 분석, 로봇 비전 등 다양한 프로젝트로 확장할 수 있습니다.
반응형
'인공지능(AI, Artificial Intelligence) > 비전 AI(Vision AI)' 카테고리의 다른 글
| [딥러닝] 딥러닝 모델 경량화의 핵심 기술: 양자화(Quantization)란? (1) | 2025.09.12 |
|---|---|
| 구글 이미지 생성 AI - 나노 바나나(nano-banana)란? (1) | 2025.09.10 |
| YOLO 인공지능 버전별 진화 정리 (3) | 2025.08.30 |
| ONNX Runtime Quantization 가이드: FP16, INT8 최적화로 추론 속도 끌어올리기 (5) | 2025.08.26 |
| ONNX Runtime GPU 성능 비교: CPU vs CUDA vs TensorRT, 무엇을 선택해야 할까? (3) | 2025.08.26 |