Skip to content

Example app/api for exposing yolov5 model via flask

License

Notifications You must be signed in to change notification settings

nhtlongcs/yolov5-flask

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 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 app.py --port 5000

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

Rest API

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

$ python3 restapi.py --port 5000

Then use curl to perform a request:

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

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}]

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

Run & Develop locally

Run locally and dev:

  • python3 -m venv venv
  • source venv/bin/activate
  • (venv) $ pip install -r https://raw.githubusercontent.com/ultralytics/yolov5/master/requirements.txt
  • (venv) $ pip install -r requirements.txt
  • (venv) $ python3 app.py --port 5000

docker - WIP

work in progress

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

reference

About

Example app/api for exposing yolov5 model via flask

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • CSS 48.7%
  • Python 27.5%
  • JavaScript 14.7%
  • HTML 9.1%