You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+13-13Lines changed: 13 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,8 +4,8 @@ This repository contains codes of the reimplementation of [SSD: Single Shot Mult
4
4
5
5
There are already some TensorFlow based SSD reimplementation codes on GitHub, the main special features of this repo inlcude:
6
6
7
-
- state of the art performance(77.4%mAP) when training from VGG-16 pre-trained model (SSD300-VGG16).
8
-
- the model is trained using TensorFlow high level API [tf.estimator](https://www.tensorflow.org/api_docs/python/tf/estimator/Estimator). Although TensorFlow provides many APIs, the Estimator API is highly recommended to yield scalable, high-performance models.
7
+
- state of the art performance(77.9%mAP) when training from VGG-16 pre-trained model (SSD300-VGG16).
8
+
- the model is trained using TensorFlow high level API [tf.estimator](https://www.tensorflow.org/api_docs/python/tf/estimator/Estimator). Although TensorFlow provides many APIs, the Estimator API is highly recommended to yield scalable, high-performance models.
9
9
- all codes were writen by pure TensorFlow ops (no numpy operation) to ensure the performance and portability.
10
10
- using ssd augmentation pipeline discribed in the original paper.
11
11
- PyTorch-like model definition using high-level [tf.layers](https://www.tensorflow.org/api_docs/python/tf/layers) API for better readability ^-^.
@@ -23,7 +23,7 @@ There are already some TensorFlow based SSD reimplementation codes on GitHub, th
23
23
| |->...
24
24
|->VOC2012/
25
25
| |->Annotations/
26
-
| |->ImageSets/
26
+
| |->ImageSets/
27
27
| |->...
28
28
|->VOC2007TEST/
29
29
| |->Annotations/
@@ -38,13 +38,13 @@ There are already some TensorFlow based SSD reimplementation codes on GitHub, th
38
38
- Run the following script to start training:
39
39
40
40
```sh
41
-
python train_ssd.py
41
+
python train_ssd.py
42
42
```
43
43
- Run the following script for evaluation and get mAP:
44
44
45
45
```sh
46
-
python eval_ssd.py
47
-
python voc_eval.py
46
+
python eval_ssd.py
47
+
python voc_eval.py
48
48
```
49
49
Note: you need first modify some directory in voc_eval.py.
50
50
- Run the following script for visualization:
@@ -65,13 +65,13 @@ All the codes was tested under TensorFlow 1.6, Python 3.5, Ubuntu 16.04 with CUD
65
65
66
66
## Results (VOC07 Metric)
67
67
68
-
This implementation(SSD300-VGG16) yield **mAP 77.4%** on PASCAL VOC 2007 test dataset(the original performance described in the paper is 77.2%mAP), the details are as follows:
68
+
This implementation(SSD300-VGG16) yield **mAP 77.9%** on PASCAL VOC 2007 test dataset(the original performance described in the paper is 77.2%mAP), the details are as follows:
You can download the trained model(VOC07+12 Train) from [GoogleDrive](https://drive.google.com/open?id=1sr3khWzrXZtcS5mmkQDL00y07Rj7erW5) for further research.
77
77
@@ -98,22 +98,22 @@ Here is the training logs and some detection results:
98
98
- Why: There maybe some inconsistent between different TensorFlow version.
99
99
- How: If you got this error, try change the default value of checkpoint_path to './model/vgg16.ckpt' in [train_ssd.py](https://github.com/HiKapok/SSD.TensorFlow/blob/86e3fa600d8d07122e9366ae664dea8c3c87c622/train_ssd.py#L107). For more information [issue6](https://github.com/HiKapok/SSD.TensorFlow/issues/6) and [issue9](https://github.com/HiKapok/SSD.TensorFlow/issues/9).
100
100
- Nan loss during training
101
-
- Why: This is caused by the default learning rate which is a little higher for some TensorFlow version.
101
+
- Why: This is caused by the default learning rate which is a little higher for some TensorFlow version.
102
102
- How: I don't know the details about the different behavior between different versions. There are two workarounds:
103
103
- Adding warm-up: change some codes [here](https://github.com/HiKapok/SSD.TensorFlow/blob/d9cf250df81c8af29985c03d76636b2b8b19f089/train_ssd.py#L99) to the following snippet:
104
104
105
105
```python
106
106
tf.app.flags.DEFINE_string(
107
-
'decay_boundaries', '2000, 80000, 100000',
107
+
'decay_boundaries', '1000, 80000, 100000',
108
108
'Learning rate decay boundaries by global_step (comma-separated list).')
109
109
tf.app.flags.DEFINE_string(
110
110
'lr_decay_factors', '0.1, 1, 0.1, 0.01',
111
111
'The values of learning_rate decay factor for each segment between boundaries (comma-separated list).')
112
112
```
113
-
- Lower the learning rate and run more steps until convergency.
113
+
- Lower the learning rate and run more steps until convergency.
114
114
- Why this re-implementation perform better than the reported performance
0 commit comments