๊ด€๋ฆฌ ๋ฉ”๋‰ด

Tech Log ๐Ÿ› ๏ธ

[flask] yolov5 ์™€ flask rest api ์„œ๋ฒ„ ์—ฐ๋™ํ•˜๊ธฐ ๋ณธ๋ฌธ

ํ”Œ๋ผ์Šคํฌ

[flask] yolov5 ์™€ flask rest api ์„œ๋ฒ„ ์—ฐ๋™ํ•˜๊ธฐ

sehaan 2023. 2. 22. 14:32

์กธ์—…์ž‘ํ’ˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ yolov5 ๋ฅผ ์ด์šฉํ•œ ๊ฐ์ฒด ํƒ์ง€ ๊ฒฐ๊ณผ๋ฅผ ๋„์›Œ์ฃผ๋Š” ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•ด์„œ flask ๋ฅผ ์ด์šฉํ•ด ๊ตฌํ˜„ํ•ด๋ณด์•˜๋‹ค.

 

์„œ๋ฒ„๋ฅผ ๋„์šฐ๊ธฐ ์ „์— ์—ฌ๋Ÿฌ๊ฐ€์ง€๋ฅผ ์„ค์น˜ํ•ด์•ผํ•œ๋‹ค.

 

https://github.com/robmarkcole/yolov5-flask/blob/master/requirements.txt

 

GitHub - robmarkcole/yolov5-flask: Official implementation at https://github.com/ultralytics/yolov5/tree/master/utils/flask_rest

Official implementation at https://github.com/ultralytics/yolov5/tree/master/utils/flask_rest_api - GitHub - robmarkcole/yolov5-flask: Official implementation at https://github.com/ultralytics/yolo...

github.com

 

์œ„์˜ ๊นƒํ—ˆ๋ธŒ ๋งํฌ์—์„œ requirments.txt๋ฅผ ๋‹ค์šด ๋ฐ›์•„์„œ  ์„ค์น˜ํ•ด์ฃผ์—ˆ๋‹ค.

 

์„ค์น˜๊ฐ€ ๋๋‚ฌ์œผ๋ฉด, yolov5 ํด๋”์— ๋“ค์–ด์žˆ๋Š” ๋ฉ”๋‰ด์–ผ ํŒŒ์ผ์„ ์ˆ˜์ •ํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.

 

์—ฌ๊ธฐ์„œ ํ•˜๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”๋ฐ ์‹œ๊ฐ„์„ ๊ฝค๋‚˜ ์žก์•„๋จน์—ˆ๋‹ค.

๊ทผ๋ฐ ๊ต‰์žฅํžˆ ํ•ด๊ฒฐํ•˜๊ธฐ ์‰ฌ์šด ์˜ค๋ฅ˜์˜€๋‹ค ...

์•ž์œผ๋ก  ์„ค์น˜ํ•  ๋•Œ ๊ฒฝ๊ณ ๋ฌธ๋„ ๊ผผ๊ผผํžˆ ๋ด์•ผ๊ฒ ๋‹ค.

 

https://cb036133.tistory.com/69

 

[flask] The script flask is installed in 'PATH' which is not on PATH. ๊ฒฝ๊ณ ๊ฐ€ ๋œฐ ๋•Œ

ํ”Œ๋ผ์Šคํฌ๋ฅผ ์„ค์น˜ํ•˜๋‹ค๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ฒฝ๊ณ ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์ด ๊ฒฝ๊ณ ๋ฅผ ๋ฌด์‹œํ•˜๊ณ  flask ๋ฅผ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•˜์˜€์ง€๋งŒ ์ œ๋Œ€๋กœ ์‹คํ–‰๋˜์ง€ ์•Š์•˜๋‹ค. ๊ตฌ๊ธ€๋ง ๊ฒฐ๊ณผ ๊ฒฝ๊ณ ๋ฌธ์— ๋‚˜์˜ค๋Š” PATH๋ฅผ ๋“ฑ๋กํ•ด์ค˜์•ผํ•œ

cb036133.tistory.com

 

โ€‹๊ธฐ์กด ์ฝ”๋“œ๋Š” ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•ด๋„ ๋˜๋Š”๋ฐ ์•„๋ž˜์˜ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.

๋ชจ๋ธ์€ custom๋ชจ๋ธ์„ ์“ฐ๊ณ  ๋ชจ๋ธ์ด ๋“ค์–ด์žˆ๋Š” ๊ฒฝ๋กœ๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์—ˆ๋‹ค.

 

์„ค์ •์ด ๋๋‚ฌ์œผ๋ฉด ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•ด์ค€๋‹ค.

 

๋‹ค๋ฅธ ํ„ฐ๋ฏธ๋„๋กœ ์ ‘์†ํ•ด ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

curl -X POST -F image=@pic1001.jpg 'http://localhost:5000/v1/object-detection/yolov5'

์šฐ๋ฆฌ ํŒ€์˜ ๋ชจ๋ธ ์ด๋ฆ„์€ yolov5์ด๋ฏ€๋กœ ๋งˆ์ง€๋ง‰์— yolov5๋ฅผ ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค.

โ€‹์ด๋ ‡๊ฒŒ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์‹คํ–‰ํ•˜๋ฉด .. !

์ข€ ์ •์‹ ์—†๊ธด ํ•˜์ง€๋งŒ jsonํ˜•์‹์œผ๋กœ xmin , ymin , xmax, ymax, confidence , class, name ๊ฐ™์€ ์ •๋ณด๋“ค์ด ์ž˜ ์ถœ๋ ฅ๋˜์—ˆ๋‹ค.

 

์ด์ œ ์ด๊ฒƒ๋“ค์„ ์ด์šฉํ•ด์„œ ๋ฉ”๋‰ด์–ผ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋‹Œ ํ”„๋กœ์ ํŠธ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๋Š” ๋ฒ•์„ ์—ฐ๊ตฌํ•ด๋ด์•ผ๋  ๊ฒƒ ๊ฐ™๋‹ค