HumanDetectionUsingDepth

基于深度图的人体检测
授权协议 MIT
开发语言 C/C++
所属分类 神经网络/人工智能、 计算机视觉库/人脸识别
软件类型 开源软件
地区 国产
投 递 者 楚俊逸
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

该项目是一系列用深度图进行人体检测的一些机器学习方法的实现,主要方法是通过传统特征算子提取特征,然后训练SVM分类器,通过多尺度滑窗的方式处理整幅图像。可用于基于机器学习进行深度图人体检测方法的学习或项目。

包括的论文

HDD:
Wu S, Yu S, Chen W. An attempt to pedestrian detection in depth images[C]//Intelligent Visual Surveillance (IVS), 2011 Third Chinese Conference on. IEEE, 2011: 97-100.
SLTP:
Yu S, Wu S, Wang L. Sltp: A fast descriptor for people detection in depth images[C]//Advanced Video and Signal-Based Surveillance (AVSS), 2012 IEEE Ninth International Conference on. IEEE, 2012: 43-47.
ELDP:
Zhong F, Zhang J. Face recognition with enhanced local directional patterns[J]. Neurocomputing, 2013, 119: 375-384.
LDP: Jabid T, Kabir M H, Chae O. Facial expression recognition using local directional pattern (LDP)[C]//2010 IEEE International Conference on Image Processing. IEEE, 2010: 1605-1608.
LTDP:
Shen Y, Hao Z, Wang P, et al. A novel human detection approach based on depth map via Kinect[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition Workshops. 2013: 535-541.

编译安装

项目依赖OpenCV3, 假设OpenCV位于D://opencv, 则将CMakeLists.txt中OpenCV_DIR设置为此路径,以方便找到OpenCV.
项目目前支持Windows,但只是一些目录操作使用了windows API, 去除这部分后即可用于其他平台。

mkdir build && cd build
cmake .. -G "Visual Studio 14 2015 Win64"
 

训练

数据准备

准备正负样本图片,其中正样本目录数据为人体图片,训练时会resize为64x128,负样本为背景图片随机抠图。 在训练时,可将负样本原图(即不包含人体)也输入,在训练过程中可进行误检困难样本的挖掘。

训练

在trainer.cpp中设置样本路径,模型存放路径以及困难样本的保存路径,设置要训练的特征算子方法,即可开始训练。 在一轮训练后,将在负样本原图上执行算法,并将误检的图片加入训练,再进行一次训练。

测试&使用

参考detector.cpp, 输入原图,即可得到预测的检测框。如图:


 相关资料
  • 立体图像的深度图 作者|OpenCV-Python Tutorials 编译|Vincent 来源|OpenCV-Python Tutorials 目标 在本节中, 我们将学习根据立体图像创建深度图。 基础 在上一节中,我们看到了对极约束和其他相关术语等基本概念。我们还看到,如果我们有两个场景相同的图像,则可以通过直观的方式从中获取深度信息。下面是一张图片和一些简单的数学公式证明了这种想法。 上图

  • 目标 在这个章中,我们将学习从立体图像创建深度图。 基本 在上一章中,我们看到了极线约束等相关术语的基本概念。我们也看到,如果我们有两个相同的场景图像,我们可以直观地从中获取深度信息。 上图包含全等三角形。写出它们的等价方程将得到以下结果: $$ disparity = x - x' = \frac{Bf}{Z} $$ $x$ 和 $x'$ 是对应于场景点 3D 的图像平面中的点与其相机中心之间的

  • Keras 是一个高层神经网络 API,Keras 由纯 Python 编写而成并基 Tensorflow、Theano 以及 CNTK 后端。Keras 为支持快速实验而生,能够把你的idea迅速转换为结果,如果你有如下需求,请选择 Keras: 简易和快速的原型设计(keras具有高度模块化,极简,和可扩充特性) 支持 CNN 和 RNN,或二者的结合 无缝 CPU 和 GPU 切换 Kera

  • 停止更新通知 Hi all,十分感谢大家对keras-cn的支持,本文档从我读书的时候开始维护,到现在已经快两年了。这个过程中我通过翻译文档,为同学们debug和答疑学到了很多东西,也很开心能帮到一些同学。 从2017年我工作以后,由于工作比较繁忙,更新频率有所下降。到今年早期的时候这种情况更加严重,加之我了解到,keras官方已经出了中文文档,更觉本份文档似乎应该已经基本完成了其历史使命,该到了

  • Keras 是一个用 Python 编写的高级神经网络 API,它能够以 TensorFlow, CNTK 或者 Theano 作为后端运行。Keras 的开发重点是支持快速的实验。能够以最小的时延把你的想法转换为实验结果,是做好研究的关键。

  • 代码接收图像,将其转换为灰度。然后使用精明的边缘检测来检测图像中所有物体的边缘。边缘检测图像从底部开始填充白色,直到检测到边缘。这个过程一直持续到整个图像被覆盖。结果是一个二进制图像,对于没有障碍物的区域,白色为白色,对于障碍物,黑色为黑色。然后使用opencv函数侵蚀来去除不必要的噪声。 如果我能得到关于如何改进或使用其他技术的建议,我将不胜感激。