_won_
wonprogrammer
_won_
전체 방문자
오늘
어제
  • 분류 전체보기
    • woncoding
      • TIL
      • WIL
    • source Code
      • Python
      • Programmers
      • BAEKJOON

블로그 메뉴

  • 방명록

티스토리

Github · Wonprogrammer
hELLO · Designed By 정상우.
_won_

wonprogrammer

woncoding/TIL

TIL | 10.19.수 [머신러닝 / Django]

2022. 10. 20. 21:09

(B2 | 3_team_project)

- 실전 머신러닝 적용

 

[과일종류인식 머신러닝 학습]

  • YOLOv5 모델을 사용해서 10가지 과일을 학습 사용
    • Fruits 360 데이터 셋을 사용
    • 10가지 과일을 선별해서 라벨링
    • blueberry, grape, kiwi, lemon, mango, melon, peach, pear, pineapple, strawberry

 

  1. Yolov5s 모델로 학습시키기
    • yolov5s 같은 경우 추가적인 다운과정 없이 ultralytics github 페이지를 clone하면 된다.
git clone git@github.com:ultralytics/yolov5.git

 

2. 클론하게 되면 data 폴더와 yolov5폴더가 같이 디렉토리 안에 존재하고 있는데, 우선 yolov5폴더에 dataset.yml을 추가해줘야 한다.

# Train/val/test sets as 
# 1) dir: path/to/imgs, 
# 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]

path: ../data  # dataset root dir
train: images  # train images (relative to 'path') 128 images
val: images    # val images (relative to 'path') 128 images

# Classes
nc: class 몇개? # number of classes
names: [ '',
'',
'',
,
,
 
class 갯수만큼 class 이름을 순차적으로 적어줌
]  # class names

👉 참고사항

  • 우선 path 설정. dataset.yml 파일은 yolov5 안에 존재하기 때문에 이전 폴더로 넘어가 data에 접근하기 때문에 ../data를 path로 넣어준다.
  • 그리고 train data는 지정한 path의 images 폴더 안에 있기 때문에 imagse를 폴더이름으로 넣어준다.
  • val data는 학습한 데이터를 평가할 때 쓰이는데, 가볍게 학습시킬 것이기 때문에 따로 val data를 분리하지 않는다. train data와 동일한 폴더를 넣는다.

 

 

3. 학습시키기 

yolov5폴더 안의 train.py를 실행시키면 된다.

python train.py --img 320 --batch 16 --epochs 500 --data dataset.yml --weights yolov5s.pt --workers 2

 

 

 

 

4. .pt

학습된 .pt 파일은 yolov5 안에 runs/train/exp/weights 폴더 안에 best.pt와 last.pt파일을 사용하면 된다.

 

 

 

 

- Django 

 

5. 학습 후 vscode Django 와 연동

기존 개발하고 있는 django폴더가 아닌 새로운 directory를 만들어 yolo관련 폴더를 만들어 준다. 

 

[디렉토리 안]

  • 학습된 best.pt 또는 last.pt파일 + detect.py를 가져오거나 만들어서 장고와 연결 해 준다.
    • import 필요한 패키지 / 경로 등 설정해준다
    • 기존 장고앱과 yolo가 연동될 수 있게 models.py , views.py 에 맞게 선언해 사용해 준다.
    • detect.py 에선 yolo의 로직이 어떻게 진행되고 무엇이 저장되는지 등 정의해줘서 장고에서 이용할 수 있게 만들어준다.

 

저작자표시 비영리 변경금지 (새창열림)

'woncoding > TIL' 카테고리의 다른 글

TIL | 10.21.금 [머신러닝 / Django]  (0) 2022.10.24
TIL | 10.20.목 [머신러닝 / Django]  (0) 2022.10.20
TIL | 10.18.화 [Django]  (0) 2022.10.19
TIL | 10.17.월 [머신러닝]  (0) 2022.10.17
TIL | 10.14.금 [Django🐢]  (0) 2022.10.14
    'woncoding/TIL' 카테고리의 다른 글
    • TIL | 10.21.금 [머신러닝 / Django]
    • TIL | 10.20.목 [머신러닝 / Django]
    • TIL | 10.18.화 [Django]
    • TIL | 10.17.월 [머신러닝]
    _won_
    _won_
    Coding Practice blog

    티스토리툴바