A. 几种人体运动检测算法的比较分析
引言人体运动分析是目前一个研究热点,在智能安全监控系统、体育运动分析、医疗诊断等领域具有广泛的应用前景。它主要涉及计算机视觉、模式识别、图像处理以及人工智能等领域,是跨学科的研究课题。其研究核心是从视频中检测和跟踪人体,获取人体运动数据,以此为基础重建人体的三维运动,进而描述和理解人体运动。其中人体运动目标检测的检测效果直接影响后期的目标识别、跟踪及行为理解等工作,因此运动人体检测技术是计算机视频图像处理中最基础、最关键的技术,对运动检测算法进一步研究具有深远意义。人体运动检测是指在输入视频图像中确定运动人体的位置、尺度大小和姿态的过程[1]。目前采用比较多、比较经典的人体运动检测方法有时间差分法、背景减除法、光流法等。笔者扼要阐述OGHMs法的理论依据,在现有算法的基础上,引入图形学的腐蚀运算,应用于最后获得的检测结果,实验证明腐蚀运算的引入使最终的运动检测效果更好。同时对其他几种常用的方法进行介绍和实际应用,根据得到的实验结果,对这几种方法以及OGHMs法进行分析和比较,并指出其优点和不足。所有的实验都是
B. 无人驾驶(二)行人检测算法
姓名:王梦妮
学号:20021210873
学院:电子工程学院
【嵌牛导读】本文主要介绍了无人驾驶中所需的行人检测算法
【嵌牛鼻子】无人驾驶 环境感知 计算机视觉 SVM Adaboost算法 R.CNN
【嵌牛提问】无人驾驶中所用到的行人检测算法有哪些
【嵌牛正文】
在同样的交通路况下,无人车通过对自身运动状态及行驶环境信息进行分析,决策出最佳行驶策略和行驶方案代替驾驶员完成一系列驾驶行为,从而降低道路交通事故的发生率。而在无人驾驶中最为重要的技术便是环境感知,而在城市道路上有大量的行人出行,只有准确快速地检测出行人与对其进行跟踪,才能避免车撞人。
计算机视觉是研究赋予机器“人眼”功能的科学,通过多个传感器来获取一定范围内的色彩数据,用算法分析得到的数据从而理解周围环境,这个过程模拟了人眼以及大脑的处理过程,从而赋予机器视觉感知能力。现有的行人检测技术大多都是检测照片中的行人目标,这种照片的拍摄大多是拍摄的静止目标,图像的分辨率和像素点包含的语义信息都及其丰富,对应的算法在这样的图片上往往能取得理想的效果,但是用于无人车的“眼睛”,算法的鲁棒性就表现的非常差。这是因为在实际的道路环境中,摄像头需要搭载的车身上,在行进过程中跟随车以一定的速度移动,并且在实际道路中,行人目标往往是在运动的,由此提取出拍摄视频中的一帧就会出现背景虚化,造成像素点包含的语义信息大量减少,增加了行人检测的难度。
行人检测是计算机视觉领域的一个重要研究课题。在实际生活中,行人大多处于人口密集、背景复杂的城市环境中,并且行人的姿态各不相同,如何将行人从色彩丰富、形状相似的环境中快速准确地提取出来,是行人检测算法的难点。
行人检测算法分为两大类,一类是基于传统图像处理,另一类是基于深度学习的方法。近年来随着计算机计算速度的大幅提升,基于深度学习的方法有着越来越高的检测速度与检测精度,在行人检测领域应用越加广泛。
(一)基于传统图像处理的行人检测算法
使用传统的图像处理方法来做行人检测一般都是由两个步骤组成,第一就是需要手工设计一个合理的特征,第二就是需要设计一个合理的分类器。手工设计特征就是找到一种方法对图像内容进行数学描述,用于后续计算机能够区分该图像区域是什么物体,分类器即是通过提取的特征判断该图像区域属于行人目标还是属于背景。在传统的图像处理领域,手工特征有许多种,比如颜色特征、边缘特征(canny算子和sobel算子)以及基于特征点的描述子(方向梯度直方图)等。 学者们一致认为方向梯度直方图是最适合行人检测的人工特征,其主要原理是对图像的梯度方向直方图进行统计来表征图像。该特征是由Dalal于2005提出的,并与SVM分类器相结合,在行人检测领域取得了前所未有的成功。
传统的行人检测方法首先需要通过提取手工设计特征,再使用提取好的特征来训练分类器,得到一个鲁棒性良好的模型。在行人检测中应用最广泛的分类器就是SVM和Adaboost。SVM分类器就是要找到一个超平面用来分割正负样本,这个超平面的满足条件就是超平面两侧的样本到超平面的距离要最大,即最大化正负样本边界。下图即为线性SVM的示意图。
Adaboost分类算法的主要原理不难理解,就是采用不同的方法训练得到一系列的弱分类器,通过级联所有的弱分类器来组成一个具有更高分类精度的强分类器,属于一种迭代算法。原理简单易于理解且有着良好的分类效果,唯一不足就是练多个弱分类器非常耗时。下图为面对一个二分类问题,Adaboost算法实现的细节。
(二)基于深度学习的行人检测算法
近年来,随着硬件计算能力的不断增强,基于卷积神经网络的深度学习飞速发展,在目标检测领域取得了更好的成绩。卷积神经网络不再需要去手动设计特征,只需要将图片输入进网络中,通过多个卷积层的卷积操作,提取出图像的深层语义特征。要想通过深度学习的方法得到一个性能良好的模型,需要大量的样本数据,如果样本过少,就很难学习到泛化能力好的特征,同时在训练时,由于涉及到大量的卷积操作,需要进行大量计算,要求硬件设备具有极高的算力,同时训练起来也很耗时。随着深度学习的飞速发展,越来越多基于深度学习的模型和方法不断被提出,深度学习在目标检测领域会有更加宽广的发展空间。
Ross Girshick团队提出了R.CNN系列行人检测算法,其中Faster R—CNN 算法通过一个区域提议网络来生成行人候选框,在最后的特征图上滑动来确定候选框。Faster RCNN是首个实现端到端训练的网络,通过一个网络实现了特征提取、候选框生成、边界框回归和分类,这样的框架大大提高了整个网络的检测速度。 He Kaiming等人在2017年提出Mask R—CNN算法,该算法改进了Faster·R—CNN, 在原有的网络结构上增加了一个分支进行语义分割,并用ROI Align替代了ROI Pooling,取得了COCO数据集比赛的冠军。
C. 人脸识别的算法
1、人体面貌识别技术的内容
人体面貌识别技术包含三个部分:
(1) 人体面貌检测
面貌检测是指在动态的场景与复杂的背景中判断是否存在面像,并分离出这种面像。一般有下列几种方法:
①参考模板法
首先设计一个或数个标准人脸的模板,然后计算测试采集的样品与标准模板之间的匹配程度,并通过阈值来判断是否存在人脸;
②人脸规则法
由于人脸具有一定的结构分布特征,所谓人脸规则的方法即提取这些特征生成相应的规则以判断测试样品是否包含人脸;
③样品学习法
这种方法即采用模式识别中人工神经网络的方法,即通过对面像样品集和非面像样品集的学习产生分类器;
④肤色模型法
这种方法是依据面貌肤色在色彩空间中分布相对集中的规律来进行检测。
⑤特征子脸法
这种方法是将所有面像集合视为一个面像子空间,并基于检测样品与其在子孔间的投影之间的距离判断是否存在面像。
值得提出的是,上述5种方法在实际检测系统中也可综合采用。
(2)人体面貌跟踪
面貌跟踪是指对被检测到的面貌进行动态目标跟踪。具体采用基于模型的方法或基于运动与模型相结合的方法。
此外,利用肤色模型跟踪也不失为一种简单而有效的手段。
(3)人体面貌比对
面貌比对是对被检测到的面貌像进行身份确认或在面像库中进行目标搜索。这实际上就是说,将采样到的面像与库存的面像依次进行比对,并找出最佳的匹配对象。所以,面像的描述决定了面像识别的具体方法与性能。目前主要采用特征向量与面纹模板两种描述方法:
①特征向量法
该方法是先确定眼虹膜、鼻翼、嘴角等面像五官轮廓的大小、位置、距离等属性,然后再计算出它们的几何特征量,而这些特征量形成一描述该面像的特征向量。
②面纹模板法
该方法是在库中存贮若干标准面像模板或面像器官模板,在进行比对时,将采样面像所有象素与库中所有模板采用归一化相关量度量进行匹配。
此外,还有采用模式识别的自相关网络或特征与模板相结合的方法。
人体面貌识别技术的核心实际为“局部人体特征分析”和“图形/神经识别算法。”这种算法是利用人体面部各器官及特征部位的方法。如对应几何关系多数据形成识别参数与数据库中所有的原始参数进行比较、判断与确认。一般要求判断时间低于1秒。
2、人体面貌的识别过程
一般分三步:
(1)首先建立人体面貌的面像档案。即用摄像机采集单位人员的人体面貌的面像文件或取他们的照片形成面像文件,并将这些面像文件生成面纹(Faceprint)编码贮存起来。
(2)获取当前的人体面像
即用摄像机捕捉的当前出入人员的面像,或取照片输入,并将当前的面像文件生成面纹编码。
(3)用当前的面纹编码与档案库存的比对
即将当前的面像的面纹编码与档案库存中的面纹编码进行检索比对。上述的“面纹编码”方式是根据人体面貌脸部的本质特征和开头来工作的。这种面纹编码可以抵抗光线、皮肤色调、面部毛发、发型、眼镜、表情和姿态的变化,具有强大的可靠性,从而使它可以从百万人中精确地辩认出某个人。
人体面貌的识别过程,利用普通的图像处理设备就能自动、连续、实时地完成。