"YOLOv3: An Incremental Improvement" paper can be accessed from here.
YOLO is used for multiple object detection in a colored image. Version-3 supports detection of 80 different objects. The original model was trained on COCO dataset (for more details refer the paper). Authors have provided the pre-trained weights and the network architecture information. Here, YOLO_V3 model is generated using the architecture information provided in the "yolov3.cfg" config file. Complete end-to-end network architecture flowchart is provided in the "Model.png" file. For easy understanding of the config file, block numbers have been added and the custom config file is provided in the "cfg" directory of this repository. Note- Block numbers are not to be confused with the layer numbers. Any reference to a layer number is "0" based index number, like in "route" or "shortcut" blocks in the config file.
- python 3.5.2
- OpenCV 4.1.2
- numpy 1.18.1
- tensorflow 2.2.0
Download the pre-trained weights of the YOLO_V3 provided by the authors of the original paper from here and save it in the 'data/' sub-directory. Now run the below command to convert the weights to tensorflow compatible format.
git clone https://github.com/varunasthana92/YOLO_v3_implementation_Tensorflow2.git
<download the pre-trained weight file in the "data" sub-directory>
mkdir weights
python3 convert_weights.py
Above commands are to be executed only once. The converted weights can then be used with the tensorflow implementation using the below command.
python3 detect.py --img_path=data/images/street.jpg
Implementation Notes:
- Anchor box sizes (provided in the cfg file) are to be normalized with the model size (input layer image size).
Name: Varun Asthana
Email id: varunasthana92@gmail.com