Skip to content

This is the unofficial implementation of the "CenterNet:Objects as Points".Just a simple try with self-modified shufflenetv2 and yolov3.If you want better results, you need more experiments.

License

xggIoU/centernet_tensorflow_wilderface_voc

Repository files navigation

centernet_tensorflow_wilderface_voc

1. Introduction

2. My experimental environment

  • anaconda3、pycharm-community、python3.6、numpy1.14
  • tensorflow1.13、slim
  • cuda10.0、cudnn7.6
  • opencv-python4.1
  • gtx1080ti*1

3. datasets

  • For single-target detection, trained on wilderface dataset with 12876 training images.
  • For multi-target detection, trained on pascal-voc2012 dataset with 17125 training images.

4. Experimental

4.1 Modified the heat map generation method to solve the problem that the loss cannot be optimized

pic1 src_bbox_gt

pic2 heatmap_original and heatmap_modified

pic3 heatmap_original_box and heatmap_modified_box

4.2 Face detection(wilder face)

input_size:512x512
downsample_ratio:4.0
batch_size:14
global_steps:14800
epochs≈16

pic4 shufflenetv2_face_result

4.3 Multi-target detection(voc)

yolov3_centernet:
input_size:512x512
downsample_ratio:8.0
batch_size:8
global_steps:40000
epochs≈18

shufflenetv2_centernet:
input_size:512x512
downsample_ratio:4.0
batch_size:16
global_steps:40000
epochs≈37

shufflenetv2_seb_centernet:
input_size:512x512
downsample_ratio:4.0
batch_size:16
global_steps:40000
epochs≈37
4.3.1 Network

pic5 yolov3_centernet_voc

pic6 shufflenetv2_centernet_voc

pic7 shufflenetv2_centernet_seb_voc

4.3.2 result(on training set,not very good on the test set)

pic8 shufflenetv2_centernet_voc_result

4.4 tensorboard loss curve

pic9 yolov3_centernet_voc_total_loss

pic10 shufflenetv2_centernet_voc_total_loss

4.5 inference time

environment:python3.6 gtx1080ti*1 intel-i7-8700k
model_name   			avg_time(ms)    input_size	 model_size(.pb)	
shufflenetv2_face_v1	        21.37	        512x512		 20.5MB
shufflenetv2_voc_v2		17.4		512x512		 24.9MB
yolo3_voc_v2		        25.53		512x512	         227.7MB

5. Run test demo(still need more work to get good results)

download ckpt filehttps://pan.baidu.com/s/1OVtOyHdc6qgcvTn56s5m2wcode:qd35,and put them to ./shufflenetv2_face_V1/, ./shufflenetv2_seb_voc/, ./shufflenetv2_voc/,and ./yolo3_voc/,then run test_voc_on_images.py or test_face_on_images.py

6.Create tfrecords to train

  • The function about how to create and parse tfrecords is under folder img2tfrecords_detection.
  • You only need to modify the following variables:img_path, txt_path, tfrecords.
  • Then run img2tfrecords_pad.py to create tfrecords and parse it by parse-tfrecords.py.
  • For detailed implementation, please see the relevant code under folder img2tfrecords_detection.

About

This is the unofficial implementation of the "CenterNet:Objects as Points".Just a simple try with self-modified shufflenetv2 and yolov3.If you want better results, you need more experiments.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages