AI딥러닝

AI딥러닝로보플로우로 함께하는 Trash_tree 욜로 2탄(설명추가)!!

Ystory96 2026. 2. 9. 19:26

 

1. 학습할 데이터 만들기

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.

 

 

https://app.roboflow.com/

 

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()