본문 바로가기

인공지능

YOLOv5 설치/기본제공모델/커스텀모델학습

728x90
반응형
 
$ git clone https://github.com/ultralytics/yolov5  
$ cd yolov5
$ pip install -r requirements.txt  #의존성 설치

설치 시 아래와 같이 설치가 됩니다.

데이터셋을 다운로드 받습니다.

https://public.roboflow.com/object-detection

YOLOv5 는 txt 포맷의 레이블링 데이터를 사용한다 합니다. 이 파일은 이미지에서 검출된 object에 대한 클래스와 bounding box 정보를 포함하고 있고. 검출 객체정보 배치는 [class, x_center, y_center, width, height] 형태로 되어있습니다.

다운받은 데이터셋을 yolo 모델 폴더 안에 넣어줍니다.

데이터셋 내 yaml 파일은 data 파일안에 넣어줍니다.

yaml 파일엔

train 경로 및 val 경로를 지정해줍니다. nc는 클래스의 갯수이며, names는 클래스명입니다.

추후 직접 라벨링 처리를 하게되면 작업했던 값과 매칭이 항상 되어있어야 합니다.

$ python train.py --data "data/data.yaml" --epochs 100 #epoch 100회

이제 학습을 시켜줍니다.

 

학습이 완료되면 다음과 같이

폴더와 파일들이 생성됩니다.

이미지파일을 열어보면 얼추 ML의 현장이 보여집니다.

이제 모델학습을 진행했으니 실행을 해보도록합니다.

best.pt 파일을 이용해서 판독을 실행해보도록하겠습니다.

$ python detect.py --weights .\runs\train\exp\weights\best.pt --source ".\test\images\" 
#테스트 폴더의 모든 이미지를 판독하겠다.

 

뭔가 결과가 뱉어졌는데 확인을 해보도록합니다.

runs > detect 폴더 내에 exp 제일 최근것에서 확인이 가능합니다.

이렇게 출력이 된다면 정상적으로 학습이 되었음을 확인 할 수 있습니다.

비고 : detect.py 파일을 확인해보면 이런 소스를 확인할 수 있습니다.

$ python detect.py --weights yolov5s.pt --source 0                               # webcam
                                                     img.jpg                         # image
                                                     vid.mp4                         # video
                                                     screen                          # screenshot
                                                     path/                           # directory
                                                     list.txt                        # list of images
                                                     list.streams                    # list of streams
                                                     'path/*.jpg'                    # glob
                                                     'https://youtu.be/LNwODJXcvt4'  # YouTube
                                                     'rtsp://example.com/media.mp4'  # RTSP, RTMP, HTTP stream

yolov5s.pt 을 이용해서 (기본으로 제공하는 모델) --source ~ 이부분에 본인만의 동영상을 실행시켜보면 재밌습니다.

한번 꼭 해보세요

결혼식 동영상 돌려보니 재밌습니다.

728x90
반응형