更详细的代码解读Tensorflow实现SSD.
欢迎关注我的知乎.
Python3 + Tensorflow1.5 + OpenCV-python3.3.1 + Numpy1.13
windows和ubuntu环境都可以
请在SSD检测模型下载模型,并放到SSD_model文件夹下
·ssd_layers.py:SSD中各种网络层的定义
·ssd_anchors.py:SSD的先验框anchor设置,与Caffe源码保持一致
(1)预处理图片:白化、resize300x300、增加batchsize这一维度
(2)处理/筛选边界框:
·将边界框超出图片范围(0,0)-(300,300)的部分cut掉;
·按类别置信度scores降序,对边界框进行排序并仅保留top_k=400;
·计算IOU->采用NMS;
·还原相对原图片的边界框真实位置和大小.
(1)搭建网络,解码网络输出并设置阈值去除得分低于阈值的边界框,得到边界框的类别、得分、位置大小
(2)导入训练好的SSD模型
(3)预处理图片-->处理/筛选边界框
(4)可视化最后的检测结果
包含待检测输入图片car.jpg、检测后的输出图片detection.jpg、ssd_300_vgg网络各个层的名称var_name.txt