https://github.com/chayanforyou/shape_detection
Shape detection with tensorflow lite
https://github.com/chayanforyou/shape_detection
detection models shape tensorflow tflite
Last synced: about 2 months ago
JSON representation
Shape detection with tensorflow lite
- Host: GitHub
- URL: https://github.com/chayanforyou/shape_detection
- Owner: chayanforyou
- Created: 2019-09-29T09:11:33.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2019-09-29T09:12:14.000Z (almost 7 years ago)
- Last Synced: 2025-01-14T08:11:31.476Z (over 1 year ago)
- Topics: detection, models, shape, tensorflow, tflite
- Language: Python
- Homepage:
- Size: 598 KB
- Stars: 2
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# [How to train an object detection model
## How to Run
Easy way: run [this Colab Notebook](https://colab.research.google.com/github/Tony607/object_detection_demo/blob/master/tensorflow_object_detection_training_colab.ipynb).
Alternatively, if you want to use your images instead of ones comes with this repo.
Require [Python 3.5+](https://www.python.org/ftp/python/3.6.4/python-3.6.4.exe) installed.
### Fork and clone this repository to your local machine.
```
https://github.com/Tony607/object_detection_demo
```
### Install required libraries
`pip3 install -r requirements.txt`
### Step 1: Annotate some images
- Save some photos with your custom object(s), ideally with `jpg` extension to `./data/raw` directory. (If your objects are simple like ones come with this repo, 20 images can be enough.)
- Resize those photo to uniformed size. e.g. `(800, 600)` with
```
python resize_images.py --raw-dir ./data/raw --save-dir ./data/images --ext jpg --target-size "(800, 600)"
```
Resized images locate in `./data/images/`
- Train/test split those files into two directories, `./data/images/train` and `./data/images/test`
- Annotate resized images with [labelImg](https://tzutalin.github.io/labelImg/), generate `xml` files inside `./data/images/train` and `./data/images/test` folders.
*Tips: use shortcuts (`w`: draw box, `d`: next file, `a`: previous file, etc.) to accelerate the annotation.*
- Commit and push your annotated images and xml files (`./data/images/train` and `./data/images/test`) to your forked repository.
### Step 2: Open [Colab notebook](https://colab.research.google.com/github/Tony607/object_detection_demo/blob/master/tensorflow_object_detection_training_colab.ipynb)
- Replace the repository's url to yours and run it.
## How to run inference on frozen TensorFlow graph
Requirements:
- `frozen_inference_graph.pb` Frozen TensorFlow object detection model downloaded from Colab after training.
- `label_map.pbtxt` File used to map correct name for predicted class index downloaded from Colab after training.
## How to deploy the trained custom object detection model with OpenVINO
Requirements:
- Frozen TensorFlow object detection model. i.e. `frozen_inference_graph.pb` downloaded from Colab after training.
- The modified pipeline config file used for training. Also downloaded from Colab after training.
Run the following Jupyter notebook locally and follow the instructions in side.
```
deploy/openvino_convert_tf_object_detection.ipynb
```
## Run the benchmark
Examples
Benchmark SSD mobileNet V2 on GPU with FP16 quantized weights.
```
cd ./deploy
python openvino_inference_benchmark.py\
--model-dir ./models/ssd_mobilenet_v2_custom_trained/FP16\
--device GPU\
--data-type FP16\
--img ../test/15.jpg
```
TensorFlow benchmark on cpu
```
python local_inference_test.py\
--model ./models/frozen_inference_graph.pb\
--img ./test/15.jpg\
--cpu
```