[Model Review] YOLOv5 + Roboflow Annotation

2023. 3. 14. 11:55ยท๐Ÿฌ ML & Data/๐Ÿ“˜ ๋…ผ๋ฌธ & ๋ชจ๋ธ ๋ฆฌ๋ทฐ
728x90

! ์ฃผ์˜ ! ์ด ๊ธ€์—๋Š” ์ ์€ yolo v5์— ๋Œ€ํ•œ ์š”์•ฝ๊ณผ ์งง์€ ์‚ฌ์šฉ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  roboflow annotation์— ๋Œ€ํ•œ ๊ฐœ์ธ์ ์ธ ๊ฒฌํ•ด๊ฐ€ ์“ฐ์—ฌ์žˆ์Šต๋‹ˆ๋‹ค.

1. YOLOv5

Summary

  • You Only Look Once - one stage detection ๋ชจ๋ธ
    • R-CNN์ด๋‚˜ Faster R-CNN๊ณผ ๋‹ฌ๋ฆฌ ์ด๋ฏธ์ง€ ๋ถ„ํ•  ์—†์ด ์ด๋ฏธ์ง€๋ฅผ ํ•œ ๋ฒˆ๋งŒ ๋ณด๋Š” ํŠน์ง•
    • ์ „์ฒ˜๋ฆฌ๋ชจ๋ธ๊ณผ ์ธ๊ณต์‹ ๊ฒฝ๋ง ํ†ตํ•ฉ
    • ์‹ค์‹œ๊ฐ„ ๊ฐ์ฒดํƒ์ง€
  • Backbone : input image → feature map
    • CSP-Darknet
    • https://keyog.tistory.com/30
  • Head : predict classes / bounding boxes
    • Dense Prediction : One stage detector(predict classes + bounding boxes)
      • R-CNN
    • Sparse Prediction : Two stage detector(predict classes , bounding boxes ๋ถ„๋ฆฌ)
      • SSD, YOLO

=> ๊ตฌ์กฐ๋ฅผ ์‚ดํŽด๋ณธ ๊ฒฐ๊ณผ SSD์™€ ์ƒ๋‹น๋ถ€๋ถ„ ์œ ์‚ฌํ•˜๋‹ค๊ณ  ๋А๊ปด์กŒ๋‹ค.

Repository

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

Data format

  • dataset.yaml
    • train
    • val
    • test
    • class name
    train : # training data ์ƒ์œ„ ํด๋” ex. ./datasets/train
    val:    # validation data ''
    test:	# test data ''
    
    names:
        0: person
        1: bicycle
    ...
  • labels
    • ์ขŒ์ธก ์ƒ๋‹จ๋ถ€ํ„ฐ 0, 0(computer vision coordinates system ์ฐธ๊ณ )
    • ํ•œ ์ด๋ฏธ์ง€๋‹น 1๊ฐœ์˜ annotation ์ •๋ณด๋ฅผ ๋‹ด์€ ํ•œ ๊ฐœ์˜ txt ํŒŒ์ผ ํ•„์š”
    • # Class x_center y_center width height 0 0.48 0.63 0.69 0.71 # normalized
    • background image์ธ ๊ฒฝ์šฐ ํ•„์š” ์—†์Œ
    • normalized xywh(0 - 1)
      • ์ „์ฒ˜๋ฆฌ ๋”ฐ๋กœ ํ•ด์ค˜์•ผํ•จ
      • resize → x center, width / image width , y center, height / image height
      • zero indexed

Train

  • detect
    • !python detect.py --weights yolov5s.pt --img 640 --conf 0.25 --source data/images --device "cuda:0" display.Image(filename='yolov5\\\\data\\\\images\\\\zidane.jpg', width=600)
  • validate
    • !python val.py --weights yolov5s.pt --data coco.yaml --img 640 --half
  • train
    • !python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights yolov5s.pt --cache

Augmentation 

  • Mirroring (๋Œ€์นญ)
  • Random Cropping
  • Rotation
  • Shearing
  • Image HSV-Hue 
  • trainslation
  • scaling
  • flip up-down, left-right
  • mosaic
  • mixup
  • copy-paste(segmentation option)

์œ„ ๋ชฉ๋ก์˜ augmentation์„ ์ง€์›ํ•œ๋‹ค. ์ž์„ธํ•œ ๊ฒƒ์€ hyp.scratch-low.yaml  ํŒŒ์ผ ์ฐธ์กฐ.

YOLOv5 ์ฝ”๋“œ ๋ถ„์„

๊น”๋”ํ•˜๊ณ  ์ž์„ธํ•œ ์ฝ”๋“œ๋ถ„์„ ๊ธ€์ด ์žˆ์–ด์„œ ์ฒจ๋ถ€ํ•œ๋‹ค.

[pytorch] yolov5 ์ฝ”๋“œ ๋ถ„์„

 

[pytorch] yolov5 ์ฝ”๋“œ ๋ถ„์„

https://github.com/ultralytics/yolov5 (์ฝ”๋“œ ๊ณ„์† ์—…๋ฐ์ดํŠธ ์ค‘) % ์ฃผ์˜ : ๋‚ด์šฉ์ด ๋„ˆ๋ฌด ๋งŽ๊ณ  ๊นŠ์Šต๋‹ˆ๋‹ค. ํ•œ...

blog.naver.com

 


2. Roboflow Annotation

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

์žฅ์ ๋ถ€ํ„ฐ ํ•œ ๋ฒˆ ์„œ์ˆ ํ•ด๋ณด๊ฒ ๋‹ค.

1. ๋ฐ์ดํ„ฐ์…‹ ์ƒ์„ฑ์ด ๊ฐ„ํŽธํ•˜๋‹ค.

  • YOLO ๊ณต์‹ ๊นƒํ—ˆ๋ธŒ์—์„œ ํ™๋ณดํ•˜๋Š” ์˜จ๋ผ์ธ annotation ํˆด๋กœ, ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๊ณ  ๋‹ค๊ฐํ˜• / ๋ฐ”์šด๋”ฉ ๋ฐ•์Šค / ๋‹จ์ˆœ classification ๋“ฑ์œผ๋กœ ๋ถ„๋ฅ˜ ๋ชจ๋ธ์˜ ์ข…๋ฅ˜์— ๋”ฐ๋ผ annotation์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ์…‹์„ ๋งŒ๋“ค๊ณ  ๋‚œ ๋’ค์—๋Š” ๋ช‡๋ช‡ ๋ชจ๋ธ์— ๋งž๋Š” ํ˜•์‹์œผ๋กœ export๋„ ํ•ด์ค€๋‹ค.

2. ๊ณต๋™์ž‘์—…์— ํšจ๊ณผ์ ์ด๋‹ค.

  • ์—ฌ๋Ÿฌ ์ž‘์—…์ž๊ฐ€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ ์ด๋ฏธ์ง€๋ฅผ ๋ชจ๋‘ ๋‚˜๋ˆ ์„œ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผํ•  ํ•„์š”์—†์ด, ์˜จ๋ผ์ธ์œผ๋กœ ์—…๋กœ๋“œํ•œ ์ด๋ฏธ์ง€๋ฅผ ๊ฐœ๊ฐœ์ธ์—๊ฒŒ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ข‹์€ ์ ์ด ์žˆ๋‹ค.

  • 3. ๋ฒ„์ „์— ๋”ฐ๋ผ ์—…๋ฐ์ดํŠธ๋œ ๋ฐ์ดํ„ฐ์™€ ์—…๋ฐ์ดํŠธ ๋˜๊ธฐ ์ „์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋”ฐ๋กœ ๋ณด๊ด€ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์—…๋กœ๋“œ๋œ ๋ฐ์ดํ„ฐ์…‹์˜ ๋ ˆ์ด๋ธ”๋ง์„ ๋งˆ์น˜๊ณ  ๋‚˜๋ฉด export๋ฅผ ์œ„ํ•ด ๋ฒ„์ „์„ ๋งŒ๋“œ๋Š”๋ฐ, ์—ฌ๋Ÿฌ ๋ฒ„์ „์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

4. ๋ ˆ์ด๋ธ”๋ง ์‹œ ๊ฐ€์‹œ์„ฑ์ด ์ข‹๋‹ค.

  • annotation์„ ํ•  ๋•Œ ๋ฐ”๋กœ๋ฐ”๋กœ ๋ฐ”์šด๋”ฉ๋ฐ•์Šค์™€ ์ด๋ฏธ์ง€๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ํŽธํ•˜๋‹ค. ํ•œ๋‘ ๋ฒˆ ๋” ๊ฒ€์‚ฌํ•˜๊ณ  ์‹ถ๊ฑฐ๋‚˜ ์ด์ƒํ•˜๊ฒŒ ๋ ˆ์ด๋ธ”๋ง๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๊ธฐ๊ฐ€ ์‰ฝ๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜ ๊ฐœ์ธ์ ์œผ๋กœ๋Š” ํŒŒ์ด์ฌ ์ฝ”๋“œ ๋ช‡ ์ค„ ๋” ์งœ์„œ format์„ ์ง์ ‘ ๋งž์ถ”๋”๋ผ๋„, ์ง€๊ธˆ ๋‹น์žฅ roboflow๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์˜คํžˆ๋ ค ๋ถˆํŽธํ•  ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

์‚ฌ์šฉํ•˜๋ฉด์„œ ๋А๋‚€ ๋ช‡๊ฐ€์ง€ ๋ถˆํŽธํ•œ ์ ์„ ์„œ์ˆ ํ•ด๋ณด๊ฒ ๋‹ค.

 

1. ์žฆ๊ณ  ์ž์ž˜ํ•œ ์˜ค๋ฅ˜

  • ์ด๋ฏธ์ง€ ์–ด๋…ธํ…Œ์ด์…˜ ํ›„ ๋‹ค์Œ ์ด๋ฏธ์ง€๋กœ ๋„˜์–ด๊ฐ€๋Š”๋ฐ 3๋ถ„ ๋„˜๊ฒŒ ๊ฑธ๋ฆฌ๋Š” ๊ฒฝ์šฐ. 
  • ๋ฐ”์šด๋”ฉ ๋ฐ•์Šค๋ฅผ ์„ ํƒํ•œ ํ›„ ๋“ฑ๋ก์ด ๋˜์ง€ ์•Š๋Š” ์˜ค๋ฅ˜.

2. ๋ฐ์ดํ„ฐ์…‹ ๋“ฑ๋ก์˜ ๋ถˆํŽธํ•จ

  • ์ด๋ฏธ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ ์—…๋กœ๋“œ๋ฅผ ๋งˆ์ณค๋Š”๋ฐ ์ด๋ฏธ์ง€์˜ annotation์ด ์ž˜๋ชป๋œ ๊ฒƒ์€ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๋‚˜, ํ•™์Šต๋ฐ์ดํ„ฐ์— ํฌํ•จํ•˜๋ฉด ์•ˆ๋˜๋Š” ์ด๋ฏธ์ง€๊ฐ€ ๋ฐ์ดํ„ฐ์…‹์— ์—…๋กœ๋“œ ๋œ ๊ฒฝ์šฐ ๋‹ค์‹œ unannotated ํƒญ์œผ๋กœ ๋Œ๋ ค๋ณด๋‚ผ ์ˆ˜ ์—†๋‹ค. ์•„์˜ˆ ํ”„๋กœ์ ํŠธ ์ž์ฒด์—์„œ ์ด๋ฏธ์ง€๋ฅผ ์ง€์šฐ๊ณ , ์žฌ์—…๋กœ๋“œํ•ด์„œ ๋‹ค์‹œ ํ•ด์•ผํ•œ๋‹ค๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์žˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ์…‹์— ์ด๋ฏธ์ง€๋ฅผ ํ•œ ์žฅ๋งŒ ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ํ•ด๋„ ์ƒˆ๋กœ ๋ฒ„์ „์„ ์ƒ์„ฑํ•ด์•ผํ•œ๋‹ค. 

 

๋Œ€๋ถ€๋ถ„ ๊ฐœ์„ ํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฌธ์ œ๋“ค์ด ์•„๋‹ˆ๋‹ˆ ์ง€์†์ ์ธ ์—…๋ฐ์ดํŠธ๋กœ ์œ„ ์˜ค๋ฅ˜์™€ ๋ถˆํŽธํ•œ ์ ์ด ํ•ด๊ฒฐ๋œ๋‹ค๋ฉด ์ด๋ฏธ์ง€ annotation ํ•  ๋•Œ, ํŠนํžˆ ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๊ณผ ๋‚˜๋ˆ ์„œ annotation์„ ํ•˜๋Š” ์ƒํ™ฉ์—์„œ๋Š” ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค. 

728x90
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿฌ ML & Data > ๐Ÿ“˜ ๋…ผ๋ฌธ & ๋ชจ๋ธ ๋ฆฌ๋ทฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Paper Review] Mamba - Linear Time Sequence Modeling with Selective State Spaces 2  (1) 2024.12.11
[Paper Review] Mamba - Linear Time Sequence Modeling with Selective State Spaces 1  (1) 2024.12.11
[Paper Review] Transforming Cooling Optimization for Green Data Center via Deep Reinforcement Learning  (0) 2023.08.07
[Model Review] TadGAN(Time series Anomaly Detection GAN)  (0) 2023.05.17
[Model Review] MobileNet SSD ๋…ผ๋ฌธ ํ€ต ๋ฆฌ๋ทฐ  (1) 2022.12.13
'๐Ÿฌ ML & Data/๐Ÿ“˜ ๋…ผ๋ฌธ & ๋ชจ๋ธ ๋ฆฌ๋ทฐ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Paper Review] Mamba - Linear Time Sequence Modeling with Selective State Spaces 1
  • [Paper Review] Transforming Cooling Optimization for Green Data Center via Deep Reinforcement Learning
  • [Model Review] TadGAN(Time series Anomaly Detection GAN)
  • [Model Review] MobileNet SSD ๋…ผ๋ฌธ ํ€ต ๋ฆฌ๋ทฐ
darly213
darly213
ํ˜ธ๋ฝํ˜ธ๋ฝํ•˜์ง€ ์•Š์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜์–ด๋ณด์ž
  • darly213
    ERROR DENY
    darly213
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (97)
      • ๐Ÿฌ ML & Data (50)
        • ๐ŸŒŠ Computer Vision (2)
        • ๐Ÿ“ฎ Reinforcement Learning (12)
        • ๐Ÿ“˜ ๋…ผ๋ฌธ & ๋ชจ๋ธ ๋ฆฌ๋ทฐ (8)
        • ๐Ÿฆ„ ๋ผ์ดํŠธ ๋”ฅ๋Ÿฌ๋‹ (3)
        • โ” Q & etc. (5)
        • ๐ŸŽซ ๋ผ์ดํŠธ ๋จธ์‹ ๋Ÿฌ๋‹ (20)
      • ๐Ÿฅ Web (21)
        • โšก Back-end | FastAPI (2)
        • โ›… Back-end | Spring (5)
        • โ” Back-end | etc. (9)
        • ๐ŸŽจ Front-end (4)
      • ๐ŸŽผ Project (8)
        • ๐ŸงŠ Monitoring System (8)
      • ๐Ÿˆ Algorithm (0)
      • ๐Ÿ”ฎ CS (2)
      • ๐Ÿณ Docker & Kubernetes (3)
      • ๐ŸŒˆ DEEEEEBUG (2)
      • ๐ŸŒ  etc. (8)
      • ๐Ÿ˜ผ ์‚ฌ๋‹ด (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ๋ฐฉ๋ช…๋ก
    • GitHub
    • Notion
    • LinkedIn
  • ๋งํฌ

    • Github
    • Notion
  • ๊ณต์ง€์‚ฌํ•ญ

    • Contact ME!
  • 250x250
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
darly213
[Model Review] YOLOv5 + Roboflow Annotation
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”