티스토리 뷰
Pytroch 에서 Yolo 모델을 사용하여 객체 탐지하는 모델을 만드는 과정입니다.
만들면서 과정을 기록해놔서, 기록 해놓는겸 yolov5 공부하시는 분들에게 도움이 되고자 정리해서 올립니다.
개인적으로 Yolo 모델이 제일 사용하기 쉬운 것 같더라구요.. Detectron2 모델도 사용해봤는데 Yolo가 사용하기 제일 쉬웠습니다.
일단 저는 Yolov5 모델을 사용하여 최대한 간단하게(성능이 쫌 떨어집니다..) 소주병을 segementation 할 수 있도록 학습 시켰습니다.
Yolov5 공식 홈페이지 입니다.
https://github.com/ultralytics/yolov5
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
개발 환경
- OS: Windows 10
- Pycharm
- anaconda 사용
- Torch : 1.19
- Cuda : 11.1
- Python : 3.8
데이터 셋
라벨링 된 소주병 이미지 4500장
종류 : 참이슬, 처음처럼, 진로, 청하
학습 결과


추론 결과


개발 순서 (위에서 명시한 환경에서 진행했습니다.)
- Anaconda 가상 환경 만들기
conda create -n mec_yolo5_v1 python=3.8
- Pycharm 기준 Conda 설정 하기
- Setting - python interpreter - Base interpreter 설정 - anaconda install path - envs - 위에서 만든 가상 환경의 python.exe 선택
- pytorch 설치
- PYTORCH 1.9 설치 명령어 (CUDA 11.1 기반)
pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
- CUDA Version이 다를 경우 참고 링크
https://pytorch.org/get-started/previous-versions/
PyTorch
An open source machine learning framework that accelerates the path from research prototyping to production deployment.
pytorch.org
- yolov5 설치
git clone https://github.com/ultralytics/yolov5 # clone
cd yolov5
pip install -r requirements.txt # install
- dataset 생성 및 Soju.yaml 파일 생성
#E:\yolov5\soju_dataset
path: /yolov5/soju_dataset
train: train/images
val: valid/images
test: test/images #optinal
# Classes
nc: 4 # number of classes
names: ["cheoeumcheoreom", "chamiseul", "jinro", "chungha"] # 진로, 참이슬, 처음처럼,청하
- traing.py 실행
- 제가 사용한 실행 옵션입니다.
- python train.py --imgsz 768 --batch 32 --epochs 200 --optimizer Adam --data "data/Soju.yaml" --device 0 --weights yolov5x.pt --workers 7 --cache ram
- python train.py --imgsz 320 --batch 32 --epochs 200 --optimizer Adam --data "data/Soju.yaml" --device 0 --weights yolov5s.pt --workers 4 --cache ram
- GPU 설정이 잘 안 되시는 분들은 CPU를 통해 진행하시면 됩니다.(
엄청 오래걸려요)
- python train.py --imgsz 320 --batch 64 --epochs 10 --optimizer Adam --data "data/Soju.yaml" --device cpu --weights yolov5s.pt
- Total
- Today
- Yesterday
- mysql date between # mysql date between 대소 비교 연산자
- mysql date type
- mysql date between performance
- react #react-spinners #modal loading #overlay #로딩창 #react 로딩창 만들기
- docker mysql
- FormData #FormData 파일전송 #FormData append json # React FormData File #React FormData append Json
- see ec2 instance connect prerequisites at https://docs.aws.amazon.com/awsec2/latest/userguide #인스턴스 연결 안됨
- node.js #node.js pdf만들기 #node.js pdfkit
- docker # docker build # m1 docker build
- AWS #인바운드 #SSH #인스턴스 연결
- reack-cookies #아이디 저장하기 #react 아이디 저장 #react cookie #리엑트 아이디 저장하기
- excel 파일 만들기 #node.js #express excel 파일 만들기 #데이터 입력해서 excel 파일 만들기
- Swal #sweetalert2 #alert #알림창 띄우기 #react swal
- supported: linux/amd64
- Mac docker.for.mac.host.internal
- BOJ #JS
- mysql date
- node.js 파일 저장
- PoolCluster : Error: connect ECONNREFUSED 127.0.0.1:3306)
- ERROR: failed to solve: no support for running processes with linux/amd64/v3 platform
- react #img 전송
- JavaScript #Programmers #lvl2 #프로그래머스 오픈채팅방 # 오픈채팅방 문제
- Express multer #Express File 저장 #node.js
- Procedure #mysql #mysql Procedure #mysql 반복문 #Procedure 반복문 #mysql insert 반복문
- React filter #js Includes #React Filter includes
- 이미지 전송 # 이미지 업로드 #이미지 여러장 #이미지 여러장 업로드 #react 이미지 업로드 #react 이미지 여러장 업로드
- linux/amd64/v2
- PDF #pdfkit
- Pytorch #Yolov5 #Segementation
- ec2 instance connect is unable to connect to your instance. ensure your instance network settings are configured correctly for ec2 instance connect. for more information
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |