内容简介:雷锋网从静态图像中识别目标一直是计算机视觉比较热门和有挑战性的课题,目前最受欢迎的方法非深度学习莫属,但是其检测速度和大数据量的需求也一直存在着很大的问题。其实,传统的机器学习在某些目标检测方面不但有着不逊于深度学习的准确度,而且检测速度和数据量的需求比深度学习要好一些。今天,我们就来聊一下在传统机器学习方面,基于dlib库的“比心”动作的识别。对于动作的识别可以采取目标检测的方法,主要是先收集动作样本,接着对训练样本提取特征,然后基于这些特征进行SVM训练得到模型,最后基于这个模型对图像中的动作进行检测
雷锋网 (公众号:雷锋网) 按:极链科技Video++ 整理 | 包包
从静态图像中识别目标一直是计算机视觉比较热门和有挑战性的课题,目前最受欢迎的方法非深度学习莫属,但是其检测速度和大数据量的需求也一直存在着很大的问题。其实,传统的机器学习在某些目标检测方面不但有着不逊于深度学习的准确度,而且检测速度和数据量的需求比深度学习要好一些。今天,我们就来聊一下在传统机器学习方面,基于dlib库的“比心”动作的识别。
对于动作的识别可以采取目标检测的方法,主要是先收集动作样本,接着对训练样本提取特征,然后基于这些特征进行SVM训练得到模型,最后基于这个模型对图像中的动作进行检测。其训练的流程图如下:
1.收集样本,标注并处理样本。对收集到的包含比心动作的样本进行标注,主要是用长方形把这个动作框起来,并把这个长方形的左上角坐标以及长宽和此文件的名字写入一个xml文件,训练的时候只需要读入xml文件即可。处理样本主要是对样本进行一些图像处理操作,比如镜像处理、加噪声,其作用是为了增强数据集。
2.金字塔下采样,提取fhog特征。金字塔下采样基于给定的一个采样因子,对图像进行下采样,也就是给定一个因数对图像不断进行缩小,构成多级金字塔,以适应不同尺寸的动作。不断缩小的终止条件就是图像大小小于扫描窗口的大小,这个扫描窗口就是一个n*n的大小的矩阵在图像上不停的滑动,然后根据模型判断此窗口的特征是否符合“比心”动作的特征。而提取的特征使用fhog特征来表示的,fhog是hog特征的变形,hog特征是方向梯度直方图,最简单的方向梯度的计算方式如下:
3.SVM训练。对提取到的fhog特征基于SVM也就是支持向量机进行训练,SVM对特征进行训练分类一般来说分为线性问题和非线性问题。而线性分类中可分为线性可分和线性不可分,线性可分可以简单理解为如下图:
也就是找到一个超平面将不同类别的样本点区分开,也就是图中的斜线将黄色矩形框和绿色原点区分开,其中最靠近斜线的两边样本点再平面之间的距离越大,那么这个分类的确信度就越高,那么得到的这个超平面称之为最优超平面。对于线性不可分的情况就是在此基础上加入某个惩罚因子进行调节,使得误分类的点尽可能少,两平面的距离尽可能的大。而对于非线性的问题主要是通过空间变换将低维空间映射到高维空间后进行线性可分,如下图所示:
左图中的椭圆平面就是右图中的直线。
4. 通过SVM训练分类得到“比心”动作识别的模型。而检测过程就是先输入图像,然后缩放图像,通过滑动窗口扫描整个图像,对滑动窗口中的图像提取特征,调用模型判断该特征是否属于“比心”动作的特征,最后将符合的特征图像聚合成一个图像,用矩形框画出来,检测效果如下图所示:
不管是深度学习还是传统机器学习,只要是有监督的学习,基本上都是分为训练和检测两部分,训练部分主要是收集样本、提取特征和训练分类。一般来说,在同等条件下,传统机器学习速度上要快于深度学习,但是准确率可能会稍逊深度学习。而“比心”动作的特征比较明显,所以,在传统机器学习的算法下,其准确率还是不错的。
雷锋网特约稿件,未经授权禁止转载。详情见 转载须知 。
以上所述就是小编给大家介绍的《如何从静态图像中识别“比心”动作》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 静态库遇到静态库
- 全局变量,静态全局变量,局部变量,静态局部变量
- Android NDK秘籍--编译静态库、调用静态库
- static特别用法【静态导包】——Java包的静态导入
- c# – 为什么委托在静态方法中使用时不能引用非静态方法?
- nodejs处理静态资源
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
算法与数据结构(第二版)
傅清祥、王晓东 / 电子工业出版社 / 2001-8-1 / 34.00
本书是《计算机学科教学计划1993》的配套教材之一。它覆盖了《计算机学科教学计划1993》中开列的关于算法与数据结构主科目的所有知识单元。其主要内容有:算法与数据结构的概念、抽象数据类型(ADT)、基于序列的ADT(如表,栈,队列和串等)。反映层次关系的ADT(如树,堆和各种平衡树等)、关于集合的ADT(如字典,优先队列和共查集等)、算法设计的策略与技巧、排序与选择算法、图的算法、问题的计算复杂性一起来看看 《算法与数据结构(第二版)》 这本书的介绍吧!