Skip to content

jmau2002/yolov5-flask

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Yolov5 object detection model deployment using flask

This repo contains example apps for exposing the yolo5 object detection model from pytorch hub via a flask api/app.

Web app

Simple app consisting of a form where you can upload an image, and see the inference result of the model in the browser. Run:

$ python3 webapp.py --port 5000

then visit http://localhost:5000/ in your browser:

Processed images are saved in the static directory with a datetime for the filename.

Rest API

Simple rest API exposing the model for consumption by another service. Run:

$ python3 restapi.py --port 5000 --model yolov5s

Then use curl to perform a request:

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

The model inference results are returned:

[{'class': 0,
  'confidence': 0.8197850585,
  'name': 'person',
  'xmax': 1159.1403808594,
  'xmin': 750.912902832,
  'ymax': 711.2583007812,
  'ymin': 44.0350036621},
 {'class': 0,
  'confidence': 0.5667674541,
  'name': 'person',
  'xmax': 1065.5523681641,
  'xmin': 116.0448303223,
  'ymax': 713.8904418945,
  'ymin': 198.4603881836},
 {'class': 27,
  'confidence': 0.5661227107,
  'name': 'tie',
  'xmax': 516.7975463867,
  'xmin': 416.6880187988,
  'ymax': 717.0524902344,
  'ymin': 429.2020568848}]

Run & Develop locally

Run locally for dev, requirements mostly originate from yolov5:

  • python3 -m venv venv
  • source venv/bin/activate
  • (venv) $ pip install -r requirements.txt
  • (venv) $ python3 restapi.py --port 5000

An example python script to perform inference using requests is given in tests/test_request.py

Docker

The example dockerfile shows how to expose the rest API:

# Build
docker build -t yolov5-flask .
# Run
docker run -p 5000:5000 yolov5-flask:latest

reference

Releases

No releases published

Packages

No packages published

Languages

  • Python 51.9%
  • HTML 38.0%
  • CSS 6.7%
  • Dockerfile 3.4%