基于opencv的行人检测系统的设计与开发

收藏和点赞,您的关注是我创作的动力

概要

   随着我国社会经济的高速进步,道路建设规模和速度发展的越来越快,随之也就暴露了很多问题,人与汽车的矛盾正在不断地加大,在一些特定的地方和时间段,行人出现有可能给汽车带来一些严重的后果,例如在高速公路上或者机场的跑道上的一些地带是不允许行人的出现的,行人检测技术就尤为重要。另外几种应用场景有车辆辅助系统,利用行人检测系统检测出行人,及时通知车主有危险并作出下一步反应。可以有效地避免一些交通事故的发生鉴于以上原因,行人检测系统的广泛应用必不可少。

  为了实现更好地人机交互性,本系统选择在Qt Creator开发平台上配置OpenCV环境来实现行人检测系统的开发与设计。事先训练好SVM分类器,提取行人的梯度直方图,使用SVM分类器对行人特征进行分类,从而创建一种基于行人梯度直方图特征[1]的行人检测系统。本系统实现了行人检测,并符合相关要求,通过打开图片或者打开摄像头读取图像序列,能够有效地检测出行人,并将结果显示出来。
关键词:行人检测;Qt5;OpenCV ;SVM+HOG;

一、研究背景与意义

   随着我国社会经济的高速进步,道路建设规模和速度也在同时加速,随之也就暴露了很多问题,人与汽车的矛盾正在不断地加大,在一些特定的地方和时间段,行人出现有可能给汽车带来一些严重的后果,例如在高速公路上或者机场的跑道这些地带是不允许行人的出现的,行人检测技术就尤为重要。另外几种应用场景有车辆辅助系统,利用行人检测系统检测出行人,及时通知车主有危险并作出下一步反应。可以有效地避免一些交通事故的发生。行人检测系统的应用,可以降低各种资源的投入,也可以增加监测的精确性,提高效率,在遇到紧急情况的时候能及时的发出预警。由此可见 ,行人检测方法规避交通事故应经成为社会迫切关注的课题。
   对于行人检测的现状,我们可以大致将它大概的分为两种类型,一种类型是利用背景建模的方法,提取目标,在目标范围内来进行特征提取,最后利用分类器对特征向量进行分类,判断目标范围内是否存在行人。另外一种是利用许多的样本来建立行人检测的分类器。提取的特征主要有目标的灰度、边缘、纹理、颜色、梯度直方图等信息,分类器主要包括神经网络、SVM、adaboost以及现在被计算机视觉视为宠儿的深度学习[2]。
  由于行人的特性是同时具有刚性和柔性。外貌还容易受衣着、标准、姿势和视角等方面的影响,所以行人检测是一个非常具有研究意义和挑战性的课题[3]。

课题研究主要内容

本课题主要研究基于OpenCV的行人检测系统的设计开发,主要采用开源的跨平台计算机视觉库OpenCV在Qt5进行开发。
  在本系统中,将拥有三个区域:功能区主要输入图片、行人检测、检测结果展示、打开摄像头、拍照和关闭摄像头。显示区主要显示本系统检测的最终结果,菜单区用于展示本系统的相关算法和使用过程中的一些基本步骤。功能分为图片检测模块和视频检测模块。
1 图片检测模块
  通过点击按钮读取图片,将读取到的图片显示在Label中,对读取的图片做归一化处理,在与训练出来的数据作对比,将检测出来的行人用矩形框框出来,保存检测结果,并且显示在Label中,将行人检测后的图片保存在文件夹中。
2 视频检测模块
   用户通过点击按钮,打开摄像头,获取当前图像序列,摄像头的帧率设置为 10 帧每秒,将获取的每一帧图片读取,做一些预处理工作,设置参数, 对读取的每一帧图片进行检测,看是否存在行人,若存在,则用矩形框框起来,操作完毕后,关闭摄像头,释放资源。

二、基于OpenCV的行人检测系统的分析与设计

3.1 业务流程分析

在这里插入图片描述

图3.1行人检测系统业务流程图

3.2 需求分析

3.2.1 功能需求分析

本系统的主要功能大致分为两类:图片检测和视频检测。参考常用行人检测,对于不同的功能,应设置以下两图所示的功能用例。
  在这里插入图片描述

图3.2图片检测用例图
在这里插入图片描述

图3.3视频检测用例图

3.2.2 用户需求分析

在程序设计之前,用户需求分析是必不可少的一步,在程序设计之前,我们要对用户做需求调查与分析,这是系统的设计、完善系统和后期对系统进行维护的依据。
根据市面上的行人检测系统为例,再结合目前对行人检测系统的需求分析,现在对用户的需求总结如下:
1.人机友好交互。
2.从本地文件夹读取图像文件。
3.图像中检测到的人用矩形框框出来。
4.将检测结果保存到本地文件中。
5.可以打开摄像头进行实时检测,如果检测到行人,则用矩形框框出来,显示出来。
6.可以实现拍照功能。
7.显示菜单栏,介绍系统功能及使用方法。
8.能够有效监测到行人。
6
  根据上面用户的需求,本文将会在后面进行系统功能的介绍、图片检测实现过程、视频检测实现过程以及具体说明行人检测系统的设计方法和相关算法。出于系统总体的考虑,本系统选择Qt5与OpenCV3作为开发工具。C++语言编写的计算机视觉库OpenCV,非常的实用方便。

系统功能设计

  图片检测模块主要有输入图片、行人检测、展示检测结果、保存检测结果等功能 。视频检测模块有打开摄像头获取图像序列、采集当前抓取的图像、关闭摄像头等功能。
行人检测系统功能结构图如下图3.4所示。
在这里插入图片描述
在这里插入图片描述

图3.4行人检测系统功能结构图
     行人检测系统实现了针对这两个模块一些不同的功能,但都实现了行人检测这一功能,以下分别展示图片检测和视频检测的具体流程,如图3.5、3.6所示。
在这里插入图片描述

图3.5图片检测功能结构图

三、系统实现

ui界面的设计

  在本系统中,界面设置是使用ui界面来实现的,具体设计如图5.6所示。

在这里插入图片描述
图5.6 ui界面的设计

5.1 图片检测

   点击按钮打开本地文件夹,选择需要检测的图片文件,输入图像,图片进行处理,包括图像预处理和图形分割,读取图像中的行人HOG特征,调用SVM分类器建立的模型进行行人检测,最后将检测结果输出。
在这里插入图片描述

5.1 视频检测

   首先打开摄像头,读取图像序列,设置图像读取的帧率,本系统使用20ms获取一帧,对获取到的每一帧图像使用分类器,首先,将图片转换为灰度图,使用直方图对图像进行均衡化,对图片做一些预处理,然后设置检测窗口,创建分类器,读取特征向量的维数,进而开始检测,将检测到的行人用橘色的矩形框表示出来,然后开始下一帧的检测,实时显示检测结果。
   在这里插入图片描述

四、总结

   本论文主要是对行人检测的研究,对已有的行人检测算法的进行分析和研究,了解国内外针对于此的研究现状,最终选择合适的算法。根据用户的需求分析确定系统的总体设计。最后通过基于OpenCV的行人检测系统成功的检测到行人,并将结果显示。针对系统提出后期的可拓展方向。

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值