# YOLO V3
物体检测，包括手部检测、人脸检测、人检测、安全帽检测，交通工具检测，因为数据集的独立所以分别为5个独立模型。  

## 项目介绍    
### 1、手部检测  
手部检测示例如下 ：    
* 图片示例：  
![image](https://codechina.csdn.net/EricLee/yolo_v3/-/raw/master/samples/sample.png)    
* 视频示例：  
![video](https://codechina.csdn.net/EricLee/yolo_v3/-/raw/master/samples/sample.gif)    

### 2、脸部检测  
脸部检测示例如下 ：     
* 视频示例：    
![videoface](https://codechina.csdn.net/EricLee/yolo_v3/-/raw/master/samples/face.gif)    

### 3、人检测  
人检测示例如下 ：      
* 视频示例：     
![videoPerson](https://codechina.csdn.net/EricLee/yolo_v3/-/raw/master/samples/person.gif)      

### 4、安全帽检测    
安全帽检测示例如下 ：      
* 视频示例：   
![videoHat](https://codechina.csdn.net/EricLee/yolo_v3/-/raw/master/samples/hat.gif)      

### 5、交通工具检测
包括：bicycle，car，motorcycle，airplane，bus，train，truck，boat     
安全帽检测示例如下 ：      
* 视频示例：  
![auto](https://codechina.csdn.net/EricLee/yolo_v3/-/raw/master/samples/auto.gif)    

## 项目配置  
* 作者开发环境：  
* Python 3.7  
* PyTorch >= 1.5.1  

## 数据集   
### 1、手部检测数据集   
该项目数据集采用 TV-Hand 和 COCO-Hand (COCO-Hand-Big 部分) 进行制作。  
TV-Hand 和 COCO-Hand数据集官网地址 http://vision.cs.stonybrook.edu/~supreeth/      
感谢数据集贡献者。    
Paper：  
Contextual Attention for Hand Detection in the Wild. S. Narasimhaswamy, Z. Wei, Y. Wang, J. Zhang, and M. Hoai, IEEE International Conference on Computer Vision, ICCV 2019.   

* [该项目制作的训练集的数据集下载地址(百度网盘 Password: c680 )](https://pan.baidu.com/s/1H0YH8jMEXeIcubLEv0W_yw)   

### 2、脸部检测数据集   
该项目采用的是开源数据集 WIDERFACE，其地址为 http://shuoyang1213.me/WIDERFACE/  
```  
@inproceedings{yang2016wider,
Author = {Yang, Shuo and Luo, Ping and Loy, Chen Change and Tang, Xiaoou},
Booktitle = {IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
Title = {WIDER FACE: A Face Detection Benchmark},
Year = {2016}}
```  
* [该项目制作的训练集的数据集下载地址(百度网盘 Password: r77x )](https://pan.baidu.com/s/1Jsm1qPPzAW46LRW5nUClzQ)   

### 3、人检测数据集     
该项目采用的是开源数据集 COCO ，其地址为 https://cocodataset.org/   
* [该项目制作的训练集的数据集下载地址(百度网盘 Password: ilv9 )](https://pan.baidu.com/s/1Y1LA8Coc902zrDgmVqAU3A)      

### 4、安全帽检测数据集     
该项目采用的是数据集 VOC2028 ，其地址为 https://github.com/njvisionpower/Safety-Helmet-Wearing-Dataset     
* [该项目制作的训练集的数据集下载地址(百度网盘 Password: y694 )](https://pan.baidu.com/s/1m1ysN5r0wYlIUY6FW1XkHg)      

### 5、交通工具数据集  
该项目采用的是开源数据集 COCO ，其地址为 https://cocodataset.org/   
* [该项目制作的训练集的数据集下载地址(百度网盘 Password: pz64 )](https://pan.baidu.com/s/1rDFmWgeUiBaU_1DT917DwA)    
  该项目制作数据集类型及对应的实例数量如下所示：  
```
  bicycle : 4955
  car : 30785
  motorcycle : 6021
  airplane : 3833
  bus : 4327
  train : 3159
  truck : 7050
  boat : 7590
```

### 数据格式  
size是全图分辨率， (x，y) 是目标物体中心对于全图的归一化坐标，w,h是目标物体边界框对于全图的归一化宽、高。   

```  
dw = 1./(size[0])  
dh = 1./(size[1])  
x = (box[0] + box[1])/2.0 - 1  
y = (box[2] + box[3])/2.0 - 1  
w = box[1] - box[0]  
h = box[3] - box[2]  
x = x*dw  
w = w*dw  
y = y*dh  
h = h*dh  
```  

为了更好了解标注数据格式，可以通过运行 show_yolo_anno.py 脚本进行制作数据集的格式。注意配置脚本里的path和path_voc_names，path为标注数据集的相关文件路径，path_voc_names为数据集配置文件。


## 预训练模型   
### 1、手部检测预训练模型    
* 包括yolo预训练模型图像输入尺寸416，yolo-tiny预训练模型图像输入尺寸为512。  
* [预训练模型下载地址(百度网盘 Password: 7mk0 )](https://pan.baidu.com/s/1hqzvz0MeFX0EdpWXUV6aFg)     

### 2、脸部检测预训练模型    
* [预训练模型下载地址(百度网盘 Password: l2a3 )](https://pan.baidu.com/s/1xVtZUMD94DiT9FQQ66xG1A)     

### 3、人检测预训练模型    
* [预训练模型下载地址(百度网盘 Password: ise9 )](https://pan.baidu.com/s/1mxiI-tOpE3sU-9TVPJmPWw)     

### 4、安全帽检测预训练模型    
* [预训练模型下载地址(百度网盘 Password: inu8 )](https://pan.baidu.com/s/1rWUEsPnOTdmfJW4xM8m3Eg)    

### 5、交通工具预训练模型
* [预训练模型下载地址(百度网盘 Password: 9qlx )](https://pan.baidu.com/s/1IwTnQYulFetY-AS1woMMaQ)    

## 项目使用方法     

### 数据集可视化    
* 根目录下运行命令： show_yolo_anno.py   (注意脚本内相关参数配置 )   

### 模型训练     
* 根目录下运行命令： python train.py     (注意脚本内相关参数配置 )   

### 模型推理    
* 根目录下运行命令： python predict.py   (注意脚本内相关参数配置  )  
