目标检测和跟踪:Darknet YOLO model to a Keras model等问题

借助北邮的一个研究生—起点开源的deep_sort_yolov3项目,最近想学习一下跟踪 :


(1)检测器是Keras,对预训练的yolov3没有进行特定数据集的训练而是直接的进行了if条件判断,不知道这样的检测器对系统速度会不会有影响?
(2)首先涉及到不同框架的模型转换,见下;
(3)有人根据起点的接口,直接使用了darknet的python接口,鉴于以前做人车检测的时候用过,所以想进行一下移植;
(4)issue
“demo.py的line58开始“boxs = yolo.detect_image(image)”,Qidian213写的代码很清楚,在这里替换成你的检测器就行了,注意作者的boxs是x,y,w,h形式的,darknet的输出是xc,yc,w,h(像faster rcnn和FPN,ssd一般都是xmin,ymin,xmax,ymax),你需要匹配成xywh的输出再给到tracker里”
“其他版本的yolov3,别的检测器也行,只要bbox格式转换好给tracker就行了”
“yolo.py的100行if predicted_class != ‘person’ : 除了判别人再加上car, bus,truck的判别就行了,当然了不同的类别最好存到对应的box里,方便后面处理”
(5)特征提取器:mars-small128.pb 跟踪的前提是有一个好的检测器,deep sort除了特征匹配还有卡尔曼滤波,如果cos阈值调高,相当于只有卡尔曼滤波。(自己训练一个特征检测器pb文件)


根据 convert.py整理代码,实现将darknet格式的yolov3的yolov3.cfg和yolov3.weights转换成keras(tensorflow)的h5格式:
借助机器环境:
(1)python3
(2)keras
(3)tensorflow


模型转换
1、下载slh_darknet_to_keras.py文件
链接:https://pan.baidu.com/s/1nZUmNbSd54zp9pK6YDkZ8A 提取码:g8ex
2、切换到对应目录下:

python slh_darknet_to_keras.py -cfg_path yolov3.cfg -weights_path yolov3.weights -output_path yolov3c_d2k.h5

在这里插入图片描述
目标检测和跟踪:Darknet YOLO model to a Keras model等问题_第1张图片目标检测和跟踪:Darknet YOLO model to a Keras model等问题_第2张图片

3、同理,将tensorflow的kearsh5格式转换成darknet格式的yolov3.weights

链接:https://pan.baidu.com/s/1ZJp2O-9twIU0LLINFttLKA 提取码:sz0j

 python slh_keras_to_darknet.py -cfg_path yolov3.cfg -h5_path yolov3c_d2k.h5 -output_path yolov3c_d2k_k2d.weights

目标检测和跟踪:Darknet YOLO model to a Keras model等问题_第3张图片
目标检测和跟踪:Darknet YOLO model to a Keras model等问题_第4张图片

来回转换文件占用空间不变
在这里插入图片描述

目标检测和跟踪:Darknet YOLO model to a Keras model等问题_第5张图片


DeepSort论文学习
论文题目:SIMPLE ONLINE AND REALTIME TRACKING WITH A DEEP ASSOCIATION METRIC

https://blog.csdn.net/cdknight_happy/article/details/79731981


mars-small128.pb文件,这个是表观特征,跟踪时做特征匹配用的
https://github.com/nwojke/deep_sort


你可能感兴趣的:(YOLOv3)