Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/YunYang1994/tensorflow-yolov3
🔥 TensorFlow Code for technical report: "YOLOv3: An Incremental Improvement"
https://github.com/YunYang1994/tensorflow-yolov3
deep-learning object-detection tensorflow yolov3
Last synced: 3 months ago
JSON representation
🔥 TensorFlow Code for technical report: "YOLOv3: An Incremental Improvement"
- Host: GitHub
- URL: https://github.com/YunYang1994/tensorflow-yolov3
- Owner: YunYang1994
- License: mit
- Created: 2018-11-23T06:26:37.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-07-04T21:40:34.000Z (7 months ago)
- Last Synced: 2024-10-21T12:45:49.605Z (4 months ago)
- Topics: deep-learning, object-detection, tensorflow, yolov3
- Language: Python
- Homepage: https://yunyang1994.gitee.io/2018/12/28/YOLOv3-算法的一点理解/
- Size: 61.4 MB
- Stars: 3,631
- Watchers: 88
- Forks: 1,355
- Open Issues: 489
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-yolo-object-detection - YunYang1994/tensorflow-yolov3 - yolov3?style=social"/> : 🔥 TensorFlow Code for technical report: "YOLOv3: An Incremental Improvement". (Other Versions of YOLO)
- awesome-yolo-object-detection - YunYang1994/tensorflow-yolov3 - yolov3?style=social"/> : 🔥 TensorFlow Code for technical report: "YOLOv3: An Incremental Improvement". (Other Versions of YOLO)
README
## 🆕 Are you looking for a new YOLOv3 implemented by TF2.0 ?
>If you hate the fucking tensorflow1.x very much, no worries! I have implemented **a new YOLOv3 repo with TF2.0**, and also made a chinese blog on how to implement YOLOv3 object detector from scratch.
[code](https://github.com/YunYang1994/TensorFlow2.0-Examples/tree/master/4-Object_Detection/YOLOV3) | [blog](https://yunyang1994.gitee.io/2018/12/28/YOLOv3-算法的一点理解/) | [issue](https://github.com/YunYang1994/tensorflow-yolov3/issues/39)## part 1. Quick start
1. Clone this file
```bashrc
$ git clone https://github.com/YunYang1994/tensorflow-yolov3.git
```
2. You are supposed to install some dependencies before getting out hands with these codes.
```bashrc
$ cd tensorflow-yolov3
$ pip install -r ./docs/requirements.txt
```
3. Exporting loaded COCO weights as TF checkpoint(`yolov3_coco.ckpt`)【[BaiduCloud](https://pan.baidu.com/s/11mwiUy8KotjUVQXqkGGPFQ&shfl=sharepset)】
```bashrc
$ cd checkpoint
$ wget https://github.com/YunYang1994/tensorflow-yolov3/releases/download/v1.0/yolov3_coco.tar.gz
$ tar -xvf yolov3_coco.tar.gz
$ cd ..
$ python convert_weight.py
$ python freeze_graph.py
```
4. Then you will get some `.pb` files in the root path., and run the demo script
```bashrc
$ python image_demo.py
$ python video_demo.py # if use camera, set video_path = 0
```
![]()
## part 2. Train your own dataset
Two files are required as follows:- [`dataset.txt`](https://raw.githubusercontent.com/YunYang1994/tensorflow-yolov3/master/data/dataset/voc_train.txt):
```
xxx/xxx.jpg 18.19,6.32,424.13,421.83,20 323.86,2.65,640.0,421.94,20
xxx/xxx.jpg 48,240,195,371,11 8,12,352,498,14
# image_path x_min, y_min, x_max, y_max, class_id x_min, y_min ,..., class_id
# make sure that x_max < width and y_max < height
```- [`class.names`](https://github.com/YunYang1994/tensorflow-yolov3/blob/master/data/classes/coco.names):
```
person
bicycle
car
...
toothbrush
```### 2.1 Train on VOC dataset
Download VOC PASCAL trainval and test data
```bashrc
$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
```
Extract all of these tars into one directory and rename them, which should have the following basic structure.```bashrc
VOC # path: /home/yang/dataset/VOC
├── test
| └──VOCdevkit
| └──VOC2007 (from VOCtest_06-Nov-2007.tar)
└── train
└──VOCdevkit
└──VOC2007 (from VOCtrainval_06-Nov-2007.tar)
└──VOC2012 (from VOCtrainval_11-May-2012.tar)
$ python scripts/voc_annotation.py --data_path /home/yang/test/VOC
```
Then edit your `./core/config.py` to make some necessary configurations```bashrc
__C.YOLO.CLASSES = "./data/classes/voc.names"
__C.TRAIN.ANNOT_PATH = "./data/dataset/voc_train.txt"
__C.TEST.ANNOT_PATH = "./data/dataset/voc_test.txt"
```
Here are two kinds of training method:##### (1) train from scratch:
```bashrc
$ python train.py
$ tensorboard --logdir ./data
```
##### (2) train from COCO weights(recommend):```bashrc
$ cd checkpoint
$ wget https://github.com/YunYang1994/tensorflow-yolov3/releases/download/v1.0/yolov3_coco.tar.gz
$ tar -xvf yolov3_coco.tar.gz
$ cd ..
$ python convert_weight.py --train_from_coco
$ python train.py
```
### 2.2 Evaluate on VOC dataset```
$ python evaluate.py
$ cd mAP
$ python main.py -na
```the mAP on the VOC2012 dataset:
![]()
## part 3. Other Implementations
[-**`YOLOv3目标检测有了TensorFlow实现,可用自己的数据来训练`**](https://mp.weixin.qq.com/s/cq7g1-4oFTftLbmKcpi_aQ)
[-**`Stronger-yolo`**](https://github.com/Stinky-Tofu/Stronger-yolo)
[- **`Implementing YOLO v3 in Tensorflow (TF-Slim)`**](https://itnext.io/implementing-yolo-v3-in-tensorflow-tf-slim-c3c55ff59dbe)
[- **`YOLOv3_TensorFlow`**](https://github.com/wizyoung/YOLOv3_TensorFlow)
[- **`Object Detection using YOLOv2 on Pascal VOC2012`**](https://fairyonice.github.io/Part_1_Object_Detection_with_Yolo_for_VOC_2014_data_anchor_box_clustering.html)
[-**`Understanding YOLO`**](https://hackernoon.com/understanding-yolo-f5a74bbc7967)