专栏首页汇智网教程行人检测系统原理与实现(一)【计算机视觉】

行人检测系统原理与实现(一)【计算机视觉】

过去的一年我都在忙着实现我的本科毕业设计课题项目:行人检测系统。我们团队的目标是实时检测现场CCTV摄像机视频流中出现的行人。本文是对此项目的简要总结,同时对我们在开发这个行人检测系统中用到的一些开源项目和库进行简单的评价。

行人检测是目标检测的一个分支。目标检测的任务是从图像中识别出预定义类型目标的存在。目标检测任务包括识别目标并给出每个目标的矩形包围框。一个用来检测行人的目标检测系统,就称为行人检测系统。

要快速掌握机器学习应用的开发,推荐汇智网的 机器学习系列教程

我将从行人检测的早期实现方法开始介绍。这些方法源于21世纪早期,虽然称为早期,但实际上这些方法还在行业内使用。在下一篇文章中,我将介绍基于深度学习的技术。

1、测试基准

本文中提到的结果都是由附带的代码在笔记本上运行获得的,笔记本的规格如下:

  • CPU:Intel Core i7 7700 HQ (up-to 3.8 GHz)
  • 内存:16 GB
  • GPU:nVidia Geforce GTX 1060 6GB VGA
  • 软件栈:Ubuntu 16.04 and Open CV 3.4.

虽然有GPU,但是测试中没有记录其使用情况,因为整个算法基本都是靠CPU在跑。

所有的测试都是基于牛津大学提供的TownCenter视频,该视频取自项目:Coarse Gaze Estimation in Visual Surveillance Project

2、行人检测的早期实现思路

2.1 基于Haar特征的级联分类器

基于Haar特征的目标检测算法是Paul Viola 和Michael Jones在2001年发表的论文 “Rapid Object Detection using a Boosted Cascade of Simple Features” 中提出的。这个方法在人脸检测中得到了广泛的应用。

OpenCV包含了内置的Haar级联检测器实现,同时也提供了用于全人体检测、上半身检测和下半身检测的预训练模型,可以在这里下载。这个Python代码使用Open CV 3.4的Haar级联检测器进行行人检测。在我的测试中处理一帧的用时大约是90~100毫秒。

2.2 基于方向梯度直方图特征(HOG)的检测

HOG行人检测算法是N. Dalal和B. Triggs在2005年的论文“Histograms of oriented gradients for human detection”中提出的。

OpenCv也包含了的基于HOG特征的检测功能,以及一个用于人体检测的预训练模型。这个Python代码使用OpenCV 3.4的HOG行人检测器处理视频,在我的测试中处理一帧大约需要150~170ms。

3、早期行人检测实现思路的缺点

下面列出的都是我在使用harr级联检测器和HOG检测器时发现的一些常见问题。这些 现象都是基于Open CV提供的预训练模型。

3.1 漏检

这两种方法都不是很擅长检测多姿态的行人,除非同时使用处理不同姿态的多个模型。 Open CV可用的预训练模型用来识别行人的站立姿态,因此当从正面和背面检测时效果 很好,但是从侧面检测的效果就比较差了。

3.2 误报与重复检测

这些早期的方法还存在将非人体目标识别为人的问题。可以通过调节阈值参数来 折中处理漏检和误报的情况。

有些误报可以通过定义最小检测盒尺寸来避免:

也可能会发生下图右方的重复检测。非极大值抑制算法(Non Max Suppression)可以用来 处理这种情况。

3.3 包围框定位不准

Haar级联检测器和HOG检测器得到的检测边界框都不能紧密地贴合被检测到的人体,事实上 包围框的边界在不同的检测中并不是固定的。这就给提取人体的位置(例如脚的位置)造成了困难。

3.4 检测闪烁

常常会观察到的一个现象是,在前一帧里检测到的行人,在下一帧里又没了,或者反之。这就造成了检测结果闪烁的问题:

4、早期检测方法的优势

虽然存在上面提到的这些问题,早期的检测方法依然还在业界使用。因为这些算法 需要的算力要少于现代的深度学习方法,不需要GPU就可以实时处理视频。在OpenCV之类 的计算机视觉开发库中也包含了这些算法的实现,因此成为实现行人检测的有吸引力 的首选。

早期行人检测算法碰到的大部分问题,在新的基于深度学习的方法中都被解决掉了。我 将在下一篇文章中分析现代的方法是如何解决这些问题的。


原文链接:行人检测原理及代码之一 —— 汇智网

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 2019语音技术报告:语音经济规模将超移动应用

    在过去多年的键盘输入和点击手机屏幕之后,我们正在回归到最初的“用户界面”:语音。虽然我们尚未感受到语音技术带来的全部影响,但这种技术正在改变我们与数字世界互动的...

    新智元
  • 【研究院】浅析小米与它的AI生态

    前几次带领大家一起看了微软亚洲研究院、百度、华为和字节跳动,今天带领大家走进一个“年轻”的AI研究院——小米AI研究院。

    用户1508658
  • DeepMind把GAN玩出新花样!基于BigGAN,生成高保真视频

    也许你听说过FaceApp,这是一款利用AI来改变自拍的移动应用程序,你可能也听说过“这些人物都不存在”网站,它可以显示计算机生成的虚构人物照片。但是生成完完全...

    新智元
  • 【有三说深度学习】从数据集到卷积神经网络

    很多实际的项目,我们都难以有充足的数据来完成任务,要保证完美的完成任务,有两件事情需要做好。

    用户1508658
  • PHPer友好|可能是最简单易懂的机器学习入门资料

    前段时间笔者推送了一条 google 官方机器学习速成课程的链接(https://developers.google.com/machine-learn...

    猿哥
  • 锻造最强机脑!微软向马斯克创立的OpenAI投资10亿美元研发AGI

    左:OpenAI CEO Sam Altman,右:微软CEO Satya Nadella

    新智元
  • 想要入坑机器学习?这是MIT在读博士的AI心得

    我的一个朋友最近正要开始人工智能的研究,他问及我在 AI 领域近两年的研究中有哪些经验教训。本文就将介绍这两年来我所学到的经验。其内容涵盖日常生活到 AI 领域...

    猿哥
  • 论文记录 - A General Framework for Object Detection

    这是一篇挺老的论文了,98 年诞生的。主要是利用图片的 Haar wavelets (小波)特征 + SVM 来进行目标检测,这在当时是很 novel 的一个方...

    caoqi95
  • 【追一科技】视觉算法一面凉经

    8.相机标定精度优化。开放问题:现有标定和去畸变流程的精度估计以及如何优化标定流程减少精度损失。

    牛客网
  • 腾讯云GPU云服务器_高性能服务器_高速计算 - 腾讯云优惠

    GPU 云服务器(GPU Cloud Computing,GPU)是基于 GPU 应用的计算服务,具有实时高速的并行计算和浮点计算能力,适应用于 3D 图形应用...

    用户5892957

扫码关注云+社区

领取腾讯云代金券