我在做无人驾驶,基于DNN的车辆行人检测,简单说说方法:
1、Detection和Classification在一个网络里做,是全卷积网络,一路卷积到底,没有全连接层(Pooling还是有的)。需要检测几类物体,就有几个输出。训练目标是图片里对应位置的某物体的coverage(0或1),以及如果coverage为1,就有一个box的坐标用来做regression(如果coverage为0就是don't care)。做inference的时候,要对网络输出结果做clustering,得到最终的bounding box list。类似的结构可以参考
XXXXXXXXXXXXXXXXXXXXXXXXXXX/parallelforall/detectnet-deep-neural-network-object-detection-digits/2、识别出物体之后要做跟踪,可以同时结合feature tracker和box tracker。feature tracker就是建立卷积金字塔之后找特征点,很传统的算法,box tracker就是对前后帧的bounding box做卡尔曼滤波之类的。
3、Foveal在汽车上很好用,因为主要关注视场中间的物体,至于视场旁边的物体,本来距离就近,down sample之后检测精度也很高。用在无人机检测就比较麻烦,搞不好只能在第一次检测的时候降低一下阈值,抠下来再过一次网络。如果多台无人机满天飞就比较难处理了,多搞几个摄像头吧。