1. 학습할 데이터 만들기
동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.
Sign in to Roboflow
Even if you're not a machine learning expert, you can use Roboflow train a custom, state-of-the-art computer vision model on your own data.
app.roboflow.com
2. 데이터 학습시키기
동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.
(1) 환경 설정
최신 객체 탐지 알고리즘인 YOLO를 사용하기 위한 도구들을 내 컴퓨터에 설치하는 과정
git clone https://github.com/ultralytics/yolov5.git
GitHub - ultralytics/yolov5: YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite. Contribute to ultralytics/yolov5 development by creating an account on GitHub.
github.com
(2) 필요한 도구 설치
pip install -r requirements.txt
- 역할: 텍스트 파일(requirements.txt) 안에 적혀 있는 모든 의존성 라이브러리를 한 번에 설치
- 상황: 사용자가 GitHub에서 프로젝트(예: yolov5)를 통째로 내려받았을 때(git clone), 그 프로젝트가 제대로 돌아가기 위해 필요한 최소한의 외부 도구들을 설치하는 과정
- 내용물 예시:
- numpy (수치 계산용)
- opencv-python (이미지 처리용)
- torch (딥러닝 엔진)
- PyYAML (설정 파일 읽기용)
pip install ultralytics
주요 기능:
- YOLO 엔진 제공: YOLOv8, YOLOv9, YOLOv11 등 최신 모델을 즉시 불러올 수 있게 함
- CLI 명령 지원: 터미널에서 yolo predict ... 같은 명령어를 쓸 수 있게 함
- 통합 관리: 데이터 전처리, 모델 학습, 결과 시각화, 모델 내보내기(Export) 기능을 하나로 통합하여 제공
(3) 학습시키기
yolo detect train data=../datasets/data.yaml model=yolov8n.pt epochs=50 imgsz=640 name=debris_yolo8
- model.predict: 인공지능이 현재 화면에서 배운 물체가 있는지 찾습니다. conf=0.01은 "1%만 확신이 들어도 다 찾아내라"는 아주 민감한 설정
- results[0].plot(): 인공지능이 찾은 물체 위에 네모 박스(Bounding Box)와 이름표를 그려주는 친절한 기능
- cv2.imshow: 분석된 화면을 우리 눈에 보이게 모니터에 띄워줌
yolo export model=runs/detect/debris_yolo8/weights/best.pt format=onnx
-> 최적화, 속도향상, 호환성 등등
- yolo export: "모델을 내보내겠다!"는 명령
- model=.../best.pt: 학습 결과물 중 가장 성적이 좋았던(best) 두뇌 파일의 경로를 알려줌
- format=onnx: "가장 범용성이 좋은 ONNX 형식으로 변환해줘"라는 요청
다각형 Segement로 훈련해보자!!
# 세그멘테이션 학습
yolo segment train data=../datasets/data.yaml model=yolov8n-seg.pt epochs=100 imgsz=640 name=debris_yolo8_seg
# 세그멘테이션 모델 export
yolo export model=runs/segment/debris_yolo8_seg/weights/best.pt format=onnx
# 파이썬 코드
from ultralytics import YOLO
import cv2
#모델과 자료불러오기
model_path=r"C:\MBCAI5\datasets\runs\segment\debris_yolo8_seg\weights\best.pt"
data_path=r"C:\data/man_test.mp4"
model=YOLO(model_path)
#웹캠 열기
cap=cv2.VideoCapture(data_path)
while True:
ret,frame=cap.read()
if not ret:
print("프레임을 읽을수 없다")
break
#YOLO 모델로 예측
results=model.predict(source=frame,show=False,conf=0.013, task="segment") #추가
#예측 결과를 이미지에 표시
annotated_frame=results[0].plot(masks=True, boxes=False) #박스 끄는 기능
#결과 이미지
cv2.imshow("Debris_Test",annotated_frame)
#q을 누르면 중지
if cv2.waitKey(1) & 0xFF ==ord('q'):
break;
cap.release()
cv2.destroyAllWindows()
'AI딥러닝' 카테고리의 다른 글
| 오렌지랑 사과를 판별할 수 있을까요...? (0) | 2026.02.23 |
|---|---|
| 딥러닝 모델을 재사용하되 스프링부트에서 스트리밍할것 (0) | 2026.02.12 |
| 로보플로우로 함께하는 Car_DeepLearning 욜로~ (0) | 2026.02.09 |
| Mnist 숫자 인식하기 (0) | 2026.02.09 |
| 아리리스(붓꽃) 자바스프링부트와 연동가능한 파이썬 코드 (0) | 2026.02.03 |