Person And Car Detection

项目名称:行人和车辆检测
编程语言:Keras/Python

电脑配置:
name: GeForce GTX 1060 major: 6 minor: 1 memoryClockRate(GHz): 1.6705
pciBusID: 0000:01:00.0
totalMemory: 5.94GiB freeMemory: 5.86GiB


Introduction:

        该项目是本人申请的研究生创新项目中的一部分,主要原理就是在交通路口通过摄像头拍摄某些时刻的照片,然后把这些拍摄的照片通过深度模型进行检测,查找出拍摄照片中的所有行人和车辆,供后续的人脸检测和车牌识别系统使用。


Model:

注:下面图片是Darknet-53的网络结构,本文使用的是Res-101的结构,原理一样,只是Block的数量不一样而已。

Darknet-53

Res-101:

Res 101
模型训练

Train:

这里数据用的是PASCAL VOC2012数据集,由于该项目只需要检测行人和车辆,所以这里数据还需要筛选,只保留下面标签数据
1. person
2. bicycle
3. car
4. motorbike
5. bus
6. truck
具体训练不做太多介绍,参考代码


Test:

原始图片
检测结果

上述bounding box的得分情况如下:

1. person: 98.00898432731628%
2. person: 89.7001564502716%
3. person: 99.30801391601562%
4. person: 97.35298156738281%
5. person: 99.17157888412476%
6. person: 99.18015003204346%
7. motorbike: 81.28312230110168%
8. motorbike: 82.47367143630981%
9. person: 99.39936399459839%
10. car: 71.61051034927368%
11. car: 81.30868077278137%
12. car: 80.75195550918579%
13. person: 71.83517813682556%
14. car: 97.70704507827759%

部分切割图:


Question:

这里很多问题非常的奇葩,大多数情况都是环境配置引起的,如果在使用中出现问题,最好根据问题去重新配置环境。本人亲测在python 2.7台式机上没有一点问题就可以运行,而在python 3.5的笔记本上就遇到了下面的奇葩问题。

1. Exception ignored in: <bound method BaseSession.__del__ of <tensorflow.python.client.session.Session object at 0x7fecee6109b0>>
Traceback (most recent call last):
File “/usr/local/lib/python3.5/dist-packages/tensorflow/python/client/session.py”, line 686, in __del__
TypeError: ‘NoneType’ object is not callable
解决办法:这个问题不是大问题,就算不解决也可以使用,在代码中加入如下语句。 2. TypeError: slice indices must be integers or None or have an __index__ method
解决办法: 这个问题一般都是数组在进行切片时,下标不是int型类型导致的,根据错误位置,修改下标为int型即可。

参考链接:

1. Yolo v3
2. 官方网站
3. Yolo v1
4. Yolo v2
5. Yolo v1-v2 Codes
6. Yolo v3 Codes
7. Pascal VOC    提取码:iz2d
8. Yolo weights    提取码:ahs4
9. Yolo v1-v3总结
10. 标注工具

本文总结于网络文章,加入了个人理解,仅用于个人学习研究,不得用于其他用途,如涉及版权问题,请联系邮箱513403849@qq.com

Leave a Reply

Your email address will not be published. Required fields are marked *