# SSD-Tensorflow **Repository Path**: sakura674834119/SSD-Tensorflow ## Basic Information - **Project Name**: SSD-Tensorflow - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-05-12 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SSD-Tensorflow
## 声明:
更详细的代码解读[Tensorflow实现SSD](https://zhuanlan.zhihu.com/p/37635878).
欢迎关注[我的知乎](https://www.zhihu.com/people/chensicheng/posts).

## 运行环境:
Python3 + Tensorflow1.5 + OpenCV-python3.3.1 + Numpy1.13
windows和ubuntu环境都可以

## 准备工作:
请在[SSD检测模型](https://pan.baidu.com/s/1snhuTsT)下载模型,并放到SSD_model文件夹下

## 文件说明:
### 1、ssd300_vgg.py:搭建ssd300网络模型,并解码网络输出
·ssd_layers.py:SSD中各种网络层的定义
·ssd_anchors.py:SSD的先验框anchor设置,与Caffe源码保持一致
### 2、utils.py:功能函数:
(1)预处理图片:白化、resize300x300、增加batchsize这一维度
(2)处理/筛选边界框:
·将边界框超出图片范围(0,0)-(300,300)的部分cut掉;
·按类别置信度scores降序,对边界框进行排序并仅保留top_k=400;
·计算IOU->采用NMS;
·还原相对原图片的边界框真实位置和大小.
### 3、drawbox.py:可视化最后的检测结果
### 4、Main.py:SSD主函数:
(1)搭建网络,解码网络输出并设置阈值去除得分低于阈值的边界框,得到边界框的类别、得分、位置大小
(2)导入训练好的SSD模型
(3)预处理图片-->处理/筛选边界框
(4)可视化最后的检测结果
### 5、SSD_data文件夹:
包含待检测输入图片car.jpg、检测后的输出图片detection.jpg、ssd_300_vgg网络各个层的名称var_name.txt

## 运行Main.py即可得到效果图:
1、car.jpg:输入的待检测图片

![image](https://github.com/KOD-Chen/SSD-Tensorflow/blob/master/SSD_data/car.jpg)

2、detection.jpg:检测结果可视化

![image](https://github.com/KOD-Chen/SSD-Tensorflow/blob/master/SSD_data/detection.jpg)