|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- # Flask REST API
- [REST](https://en.wikipedia.org/wiki/Representational_state_transfer) [API](https://en.wikipedia.org/wiki/API)s are commonly used to expose Machine Learning (ML) models to other services. This folder contains an example REST API created using Flask to expose the YOLOv5s model from [PyTorch Hub](https://pytorch.org/hub/ultralytics_yolov5/).
-
- ## Requirements
-
- [Flask](https://palletsprojects.com/p/flask/) is required. Install with:
- ```shell
- $ pip install Flask
- ```
-
- ## Run
-
- After Flask installation run:
-
- ```shell
- $ python3 restapi.py --port 5000
- ```
-
- Then use [curl](https://curl.se/) to perform a request:
-
- ```shell
- $ curl -X POST -F image=@zidane.jpg 'http://localhost:5000/v1/object-detection/yolov5s'`
- ```
-
- The model inference results are returned as a JSON response:
-
- ```json
- [
- {
- "class": 0,
- "confidence": 0.8900438547,
- "height": 0.9318675399,
- "name": "person",
- "width": 0.3264600933,
- "xcenter": 0.7438579798,
- "ycenter": 0.5207948685
- },
- {
- "class": 0,
- "confidence": 0.8440024257,
- "height": 0.7155083418,
- "name": "person",
- "width": 0.6546785235,
- "xcenter": 0.427829951,
- "ycenter": 0.6334488392
- },
- {
- "class": 27,
- "confidence": 0.3771208823,
- "height": 0.3902671337,
- "name": "tie",
- "width": 0.0696444362,
- "xcenter": 0.3675483763,
- "ycenter": 0.7991207838
- },
- {
- "class": 27,
- "confidence": 0.3527112305,
- "height": 0.1540903747,
- "name": "tie",
- "width": 0.0336618312,
- "xcenter": 0.7814827561,
- "ycenter": 0.5065554976
- }
- ]
- ```
-
- An example python script to perform inference using [requests](https://docs.python-requests.org/en/master/) is given in `example_request.py`
|