深度学习之多目标检测与跟踪

支持用自己的数据训练模型。

TensorFlow实现,包含了以下部分:

  • YOLOv3架构
  • 权重转换器 (Weight Converter)
  • 基础版Demo
  • GPU和CPU上都支持非极大抑制 (Non-Maximum Suppression)
  • 训练pipeline
  • COCO mAP计算

快速开始:

四个步骤,速速上车。

1.复制这个文件:

$ git clone https://github.com/YunYang1994/tensorflow-yolov3.git

2.在使用代码前,先安装一些依赖项:

$ cd tensorflow-yolov3
$ pip install -r ./docs/requirements.txt

3.把加载好的COCO权重导出为TF checkpoint (yolov3.ckpt) 和 frozen graph (yolov3_gpu_nms.pb) 。

如果你没有yolov3.weights的话,去下载,然后放到./checkpoint目录下。下载地址是:
https://github.com/YunYang1994/tensorflow-yolov3/releases/download/v1.0/yolov3.weights

$ python convert_weight.py --convert --freeze

4.然后,./checkpoint目录下就会出现一些.pb文件。现在可以跑Demo脚本了:

$ python nms_demo.py
$ python video_demo.py # if use camera, set video_path = 0

拿自己的数据集训练:

快速训练

这个Demo就是给大家一个粗略的感受,感受YOLOv3的训练过程到底是怎样的。

python core/convert_tfrecord.py把你的图集转成TFRecords

$ python core/convert_tfrecord.py --dataset /data/train_data/quick_train_data/quick_train_data.txt  --tfrecord_path_prefix /data/train_data/quick_train_data/tfrecords/quick_train_data
$ python quick_train.py  # start training

训练COCO数据集

如果还没下载COCO2017数据集,请前往: http://cocodataset.org/

再把数据集放到./data/train_data/COCO里面。

$ cd data/train_data/COCO
$ wget http://images.cocodataset.org/zips/train2017.zip
$ unzip train2017.zip
$ wget http://images.cocodataset.org/annotations/annotations_trainval2017.zip
$ unzip annotations_trainval2017.zip

然后,就要从数据集里提取一些有用的信息了,比如边界框,拿这些信息生成你自己的.txt文件。

$ python core/extract_coco.py --dataset_info_path ./data/train_data/COCO/train2017.txt

上面这步得到的文件是./data/train_data/COCO/train2017.txt。拿一张图举栗,应该长这样:

As a result, you will get ./data/train_data/COCO/train2017.txt. Here is an example row for one image:

/home/yang/test/tensorflow-yolov3/data/train_data/train2017/000000458533.jpg 20 18.19 6.32 424.13 421.83 20 323.86 2.65 640.0 421.94
/home/yang/test/tensorflow-yolov3/data/train_data/train2017/000000514915.jpg 16 55.38 132.63 519.84 380.4
# image_path, category_id, x_min, y_min, x_max, y_max, category_id, x_min, y_min, ...

接下来,要把图像数据集转成.tfrecord,就是用二进制来保存数据。最后,可以训练啦。

$ python core/convert_tfrecord.py --dataset ./data/train_data/COCO/train2017.txt  --tfrecord_path_prefix ./data/train_data/COCO/tfrecords/coco --num_tfrecords 100
$ python train.py

COCO评估
如果要看一下模型在COCO上的表现,就这样做:

$ cd data/train_data/COCO
$ wget http://images.cocodataset.org/zips/test2017.zip
$ wget http://images.cocodataset.org/annotations/image_info_test2017.zip 
$ unzip test2017.zip
$ unzip image_info_test2017.zip

YOLOv3 TensorFlow实现传送门:
https://github.com/YunYang1994/tensorflow-yolov3

(早就出了的) YOLO v3 PyTorch教程传送门:
https://github.com/ayooshkathuria/YOLO_v3_tutorial_from_scratch

以上来源于: YOLOv3目标检测有了TensorFlow实现,可用自己的数据来训练

方法:
1、实时性,每帧视频10ms
2、方法,首先深度学习检测到目标,然后再写跟踪算法

http://news.eeworld.com.cn/mp/QbitAI/a59568.jspx
官网:https://pjreddie.com/darknet/yolo/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章