首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基于OpenCV实现口罩识别

并且在网上搜索也没有找到相关的内容,几乎没有网友使用OpenCV来运行这个模型,基本都是使用深度学习的框架来运行。...说搞就搞,由于本人对深度学习的涉及面并不深入,所以我的思路是:使用OpenCV的dnn模块来进行人脸检测及定位,然后将检测出的人脸利用OpenCV的ml模块进行识别是否佩戴口罩。...在训练过程中,我们不是把图像完全展开进行训练,而是通过特征提取,得到每个样本图像的HOG特征,再计算每个HOG特征的特征描述子,通过特征描述子来训练SVM分类器。...那么到这一步,就实现了检测是否佩戴口罩的SVM分类器的训练工作,训练得到的模型文件如下: 接下来,我们就要加载这个xml文件并且对输入的图像进行检测啦。...,那么就用绿色框框出人脸,并且标记 “ Face Mask ” : 从效果上来看,所采用的测试图像都不在训练集之内,对单个人脸的照片识别成功率还是可以的,但是肯定没有开源项目里神经网络模型的识别正确率高

84410

你可能没有实现一个正确的atoi函数

atoi函数看起来似乎很容易实现,你甚至可以很快写出一个版本,但是是否符合要求呢? 简易版本 最简单的考虑,就是遍历字符串,每遇到一个数字就加上原来的值乘以10。...,输入数值时也似乎能得到正确结果。...实现atoi函数需要注意什么 你可能已经注意到了,实现atoi需要考虑下面这些场景: 输入正负号 开头有空格 转换后的数值超出int的表示范围 出错时返回0与正确转换0的区别 输入非数字 空字符串 现在来看...INT_MIN:INT_MAX; } str++; } /*根据正负号返回正确的结果*/ return negative?...但这些都不是重点,重点是我们在考虑实现atoi函数的时候,需要考虑多种异常场景,这在平常实现其他功能接口的时候也是一样的。 思考 前面的代码有什么不足?你忽略了哪些场景?

2.4K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    基于支持向量机的手写数字识别详解(MATLAB GUI代码,提供手写板)

    摘要:本文详细介绍如何利用MATLAB实现手写数字的识别,其中特征提取过程采用方向梯度直方图(HOG)特征,分类过程采用性能优异的支持向量机(SVM)算法,训练测试数据集为学术及工程上常用的MNIST手写数字数据集...博主想说的是其实SVM也可以很好地解决这一问题,本文介绍的代码就可以实现99%的测试准确率,所以想借此为大家提供一个学习的Demo共同交流。...所以这里重要的一点是正确提取出HOG特征,extractHOGFeatures是MATLAB自带的HOG特征提取函数,该函数不仅可以有效提取特征,还可以返回特征的可视化结果以方便展示。...8三种尺寸的HOG特征,其运行的可视化结果如下: 从以上结果可以看出2×2的细胞尺寸会编码更多的形状信息,这会显著增加HOG特征向量的维数,相反8×8的细胞尺寸得到的特征量最少。...这其实是一个需要调试的参数,一方面应该对足够的空间信息进行编码,另一方面需要减少HOG特征向量的维数,为此可以选择4×4的细胞大小。

    1.1K50

    C++ OpenCV SVM实战Kindle检测(一)----训练数据

    SVM简介 SVM较其他传统机器学习算法的优点: 1、小样本,SVM算法要求的样本数是相对比较少的。SVM解决问题的时候,和样本的维数是无关。 2、结构风险最小。...3、非线性,是指SVM擅长应付样本数据线性不可分的情况,主要通过松弛变量(也有人叫惩罚变量)和核函数技术来实现,这一部分是SVM的精髓。...OpenCV SVM的核函数: 线性核函数:SVM::LINEAR,线性内核,没有高维空间映射,速度快; 多项式核函数:SVM::POLY,gamma>0,coef(),degree; 径向基核函数:...gamma,coef(); 样本训练代码实现 核心函数 hog_deal void hog_deal(cv::Mat& src, std::vector& dst) { //定义Hog,...我们利用hog + svm检测行人,最终的检测方法是最基本的线性判别函 数,wx + b = 0, 刚才所求的3780维向量其实就是w,而加了一维的b就形成了opencv默认的3781维检测算子, 而检测分为

    1.9K40

    特征提取方法(一):HOG原理及OpenCV实现

    方向梯度直方图(Histogram of Oriented Gradient, HOG)于2005年提出,是一种常用的特征提取方法,HOG+SVM在行人检测中有着优异的效果。...HOG如何确定特征向量维数: 之前提到过,cell的中方向范围的个数由bins来决定,还是以9为例:所以,一个cell中的向量为9个,以上面的例子166*80图像中,描述子的威数就应该为:9*4*49...HOG的OpenCV实现: OpenCV中,HOG被封装在了HOGDescriptor 类中,而且OpenCV提供了直接利用HOG+SVM进行多尺度行人检测的函数detectMultiScale()...,在这里我们不介绍它,只说明如何利用HOG提取出可以输入到SVM中的特征矩阵。...这也就是为啥初始化要放在循环里面了,因为没有提取特征呢,谁知道描述子维数是多少呢?(这样就不用手算了) 最后,我往文件夹里随便放了两张图片,测试了一下代码,图片太大了,导致维度有些高: ?

    6.6K50

    Dog Face Recognition

    2.评价该方法的性能 3.计算每个品种的正确识别率 4.进行开集测试(见题目要求3) (2)Fisher狗脸识别 采用线性判别准则的方法进行实验。...每一种图像特征又结合下面四种算法:(1)PCA; (2)Fisher; (3)SVM; (4)HOSVD 来进行分类,并且采用了开集测试和10折交叉验证的方式分析算法的正确率。...很明显,不同情况下的结果差别很大,例如,对于HOG特征,在线性SVM中得到的结果最好,接近90%,但是对于多项式和径向基核函数只能得到10%的准确率,这也说明了线性SVM虽然是最简单的SVM,但是在特定情况下没准是性能最好的...SVM算法还多,但是性能并没有进一步提升,所以并不是该类问题的很好解决方案。...)方面感觉没有方向性,不能按照一定的思路朝着更好的结果进行。

    72020

    HOG原理与OpenCV实现

    HOG的OpenCV实现 注意事项 在HOG的原理部分,其实我们已经提到了一些注意的事项,那就是块尺寸,块步长,单元尺寸,窗口步长的选择问题。...此外,上面这些参数是没有窗口步长的,这是因为窗口步长定义在hog.compute()函数中,该函数对滑动窗是有自动补齐功能的。...代码实现 OpenCV中,HOG被封装在了HOGDescriptor 类中,而且OpenCV提供了直接利用HOG+SVM进行多尺度行人检测的函数detectMultiScale(),在这里我们不介绍它,...只说明如何利用HOG提取出可以输入到SVM中的特征矩阵。...这也就是为啥初始化要放在循环里面了,因为没有提取特征呢,谁知道描述子维数是多少呢?(这样就不用手算了)

    1.8K50

    Python实现校园卡目标检测与文字识别系统

    引言:本项目主要从两方面出发,一是搭建目标检测系统,利用hog+svm的方法,从网络摄像头读取数据,目标检测找出校园卡的位置;二是在找到校园卡位置后,保存下单独校园卡图片,然后进行图像处理,找到关键文字位置...这些都是HOGDescriptor的成员变量,括号里的数值是它们的默认值,它们反应了HOG描述子的参数。...其中winSize指的是窗口大小 ,blockSize指的是块大小 ,cellSize指的是胞元大小 ,nbins指的是梯度方向数,nBins表示在一个胞元(cell)中统计梯度的方向数目,例如nBins...图7 执行膨胀操作图片效果 (7)找到轮廓并初始化数字分组位置列表。...图8 识别提取效果图 总结与讨论 此次校园卡目标检测和图像处理信息提取的功能设计,使用的是传统的模式识别方法进行图像识别,其中涉及到的知识主要是hog特征+SVM分类,以及图片处理的一些常规操作和百度API

    1.2K10

    Histogram of Oriented Gridients(HOG) 方向梯度直方图

    HOG简介 2. 数字图像梯度定义 3. HOG基本步骤 4. OpenCV实现HOG 5. 用KNN与HOG实现一个手写数字输入识别 1....OpenCV实现HOG OpenCV中,HOG被封装在了HOGDescriptor 类中,而且OpenCV提供了直接利用HOG+SVM进行多尺度行人检测的函数detectMultiScale(),在这里我们不介绍它...OpenCV实现HOG OpenCV中,HOG被封装在了HOGDescriptor 类中,而且OpenCV提供了直接利用HOG+SVM进行多尺度行人检测的函数detectMultiScale(),在这里我们不介绍它...用KNN与HOG实现一个手写数字输入识别 在上面的部分,我们用数字0举例生成了一张图像的HOG特征,特征维数为8100,在OpenCV3的安装文件路径/opencv/sources/samples/data...testdata,k,0,0,&nearests,0); if (response==i) { truenum++; } } } cout<<"测试总数"<<testnum<<endl; cout正确分类数

    1.4K50

    Histograms of Oriented Gradients for Human Detection

    我们以“行人检测”为例,详细研究了各种实现选择对检测器性能的影响,“行人检测”是指检测大多数可见或多或少直立姿态的人。为了简单和快速,我们在整个研究中使用线性SVM作为基线分类器。...5、结果概览在给出详细的实现和性能分析之前,我们将最后的HOG检测器的总体性能与其他一些现有方法进行比较。...使用基本条检测器(定向二阶导数- ' R2-HOG ')对R-HOG进行增强,使特征维数增加了一倍,但进一步提高了性能(在10 - 4 FPPW时提高了2%)。...6、实现和性能研究现在我们给出了HOG实现的细节,并系统地研究了各种选择对检测器性能的影响。...C-HOG布局有四个参数:角仓数和径向仓数;中心bin的半径(以像素为单位);以及后续半径的膨胀系数。为了获得良好的性能,至少需要两个径向箱(一个中心和一个环绕)和四个角向箱(四分之一)。

    2.3K40

    Android+jacoco实现代码覆盖率最正确的实现方式,没有之一!

    +,gradle依赖还是4.4左右,所以导致一个问题,也是浪费了我很多时间的问题:网上的资料已经跟不上时代了,然而没有一篇最新的、最正确的jacoco+Android集成实践的博文,来给有这方面有诉求的同学指引方向...,在我费尽千辛万苦终于找到突破口并实现了之后,决定记录这个问题,为日后有需求的同学点一盏明灯!...,文末会附上完整版实现代码。...class文件,但是在我使用的开发环境基础上,app/build/intermediates/classes根本就没有内容,这个问题阻拦了我很长一段时间,一度让我郁闷,以为是哪里配置出了问题,导致我的工程无法正确的生成...,当这个Activity执行onDestroy方法的时候通知Instrumentation生成ec文件,所以你不想根据这种思路来走完全没有问题,实现一个工具类,在你想要执行生成ec文件的时候调用即可,道理一样

    3.4K20

    综述三 | 最全的目标检测大综述(附下载链接)

    核SVM等非线性分类器的检测精度较高,但同时也带来较高的计算开销。作为一种标准的非参数方法,传统的核函数法没有固定的计算复杂度。当我们有一个非常大的训练集时,检测速度会变得非常慢。...研究人员长期以来一直在探索网络的正确配置,以便在有限的时间成本下获得准确性。...积分HOG映射已被应用于行人检测中,并在不损失任何精度的前提下实现了数十倍的加速度。 2009年晚些时候,P....例如,使用VQ,可以将HOG直方图分组并量化为一组原型直方图向量。然后在检测阶段,通过查表操作实现特征向量与检测权值之间的内积。...由于该过程中没有浮点乘法和除法,因此DPM和例化SVM检测器(exemplar SVM detector)的速度可以提高一个数量级。

    57420

    SVM算法在项目实践中的应用!

    然后使用SVM分类器进行目标和非目标的二分类(检测)。 HOG+SVM的工作流程如下: ? 首先对输入的图片进行预处理,然后计算像素点的梯度特性,包括梯度幅值和梯度方向。...然后投票统计形成梯度直方图,然后对blocks进行normalize,最后收集到检测窗口的HOG feature(一行多维的vector)放入SVM里进行监督学习,实现行人的检测。...HOG算法具有以下缺点: 特征描述子获取过程复杂,维数较高,导致实时性差; 很难处理遮挡问题,人体姿势动作幅度过大或物体方向改变也不易检测(这个问题后来在DPM中采用可变形部件模型的方法得到了改善);...跟SIFT相比,HOG没有选取主方向,也没有旋转梯度方向直方图,因而本身不具有旋转不变性(较大的方向变化),其旋转不变性是通过采用不同旋转方向的训练样本来实现的; 跟SIFT相比,HOG本身不具有尺度不变性...对于多维的HOG特征,SVM就可以排上用场了。

    1.2K10

    DIY自动分类“错题集”:一种基于视觉词汇的文本分类法

    下面将展示整个训练过程,训练的样本来自《2016 B版 5年高考3年模拟:高考理数》,并手工标注了14个分类,每个分类下约50个样本,每个样本为一个题目, 图像为手机拍摄。...这样我就可以从我所了解的、少得可怜的图像工具库里找到一个工具了:直线拟合。即通过拟合的直线(线段)长度与图像宽度的比例,调整图像的大小。...得益于上面的方案,词汇信息也被保留了下来,所以第二个问题也就解决了,同时增加了算法的鲁棒性。 下面将介绍具体实现。 2.1....选择特征描述子 选择合适的特征描述子通常需要直觉+运气+不停的尝试(好吧我承认这里没有什么经验可分享),经过几次尝试,最终选中了HOG(方向梯度直方图)描述子。...下面展示了此过程的主要代码: ? 执行结果如下: ? 测试集上正确率81%,召回率 78%。

    2K50

    Color exploitation in HOG-based traffic sign detection

    另一方面,通用对象模型从训练数据中自动学习,几乎没有人工交互。然而,该模型不使用先验信息,只从训练数据中提取知识。因此,良好的训练数据质量和完整性是关键要求。...在特征生成阶段之后,使用支持向量机(SVM)对高维特征进行分类。在最近的行人检测评估中,HOG算法给出了具有竞争力的性能[5]。...我们使用与Dalal和Triggs相同的实现。与Dalal和Triggs的建议不同,SVM分类器是在迭代过程中训练的。在第一次迭代中,对所有正图像进行处理,随机选取一组背景区域作为负样本。...如前所述,我们通过在hog描述符中包含颜色信息来扩展标准算法。这是通过连接所使用颜色空间的每个颜色通道的HOG描述符来完成的。注意,结果特征的维数和检测的计算复杂度随着颜色通道的数量线性增加。...在我们的实验中,我们为我们的HOG检测器使用了以下设置:单元大小为4 × 4像素,9个方向箱和4个块归一化(b = 2)。对于每个颜色通道,特征向量的维数为2,304。

    10910

    20年的目标检测大综述(章节3)

    核SVM等非线性分类器的检测精度较高,但同时也带来较高的计算开销。作为一种标准的非参数方法,传统的核函数法没有固定的计算复杂度。当我们有一个非常大的训练集时,检测速度会变得非常慢。...研究人员长期以来一直在探索网络的正确配置,以便在有限的时间成本下获得准确性。...积分HOG映射已被应用于行人检测中,并在不损失任何精度的前提下实现了数十倍的加速度。 ? 2009年晚些时候,P....例如,使用VQ,可以将HOG直方图分组并量化为一组原型直方图向量。然后在检测阶段,通过查表操作实现特征向量与检测权值之间的内积。...由于该过程中没有浮点乘法和除法,因此DPM和例化SVM检测器(exemplar SVM detector)的速度可以提高一个数量级。

    48410

    A Discriminatively Trained, Multiscale, Deformable Part Model

    在HOG金字塔模型中,有大量的(指数)位置。我们使用动态规划和距离变换技术计算模型各部分的最佳位置作为根位置的函数。这需要O(nk)时间,其中n为模型中的部件数,k为HOG金字塔中的细胞数。...3.4、实现细节这里讨论的许多想法只是在我们当前的系统中大致实现。...根滤波器初始化:根过滤器初始化:对于每个类别,我们通过查看训练数据中包围框的统计信息,自动选择根过滤器的维度。我们使用一个没有潜在变量的SVM训练一个初始根滤波器F0。...根滤波器更新:给定如上所训练的初始根过滤器,对于训练集中的每个边界框,我们找到与边界框明显重叠的过滤器的最佳得分位置。我们使用原始的,未缩放的图像。...数据集为几个目标类指定了ground-truth边界框,当与ground-truth边界框重叠超过50%时,检测就被认为是正确的。

    3K40

    opencv︱opencv中实现行人检测:HOG+SVM(二)

    源码分析(一)和HOG:从理论到OpenCV实践 HOG+SVM是传统计算机视觉中的经典组合模型。...新提高检测率的科研方式: 2016年张姗姗等人从分析的角度对各个工作进行总结和归纳。通过分析错误案例来找到错误来源,并提出相应的解决方案以进一步提高检测率。...这里只是用到了HOG的识别模块,OpenCV把HOG包的内容比较多,既有HOG的特征提取,也有结合SVM的识别,这里的识别只有检测部分,OpenCV提供默认模型,如果使用新的模型,需要重新训练。...首先可以通过腿部识别,再在腿部的对应上区域对肩膀至头部位识别,从而降低误识率。 腿部由于走动原因姿态会有变化,所以很难用比较直观的特征去识别,可以用HOG+SVM识别腿部,如图2所示。...由于测试集的标注信息没有公开,需要提交给Pitor Dollar。

    6.6K30

    快乐学AI系列——计算机视觉(5)图像分类和识别

    相关要求:学员需要掌握Python编程基础,另外还需要有一定的线性代数、概率论基础传统图像分类算法的两种方法:SIFT特征+KNN分类器和HOG特征+SVM分类器。...它的基本思想是将待分类样本的特征向量与训练集中的所有特征向量进行比较,找到与待分类样本最相似的K个样本,然后根据这K个样本的分类情况来判断待分类样本的类别。...HOG特征+SVM分类器HOG(Histogram of Oriented Gradients)特征是一种常用的图像特征提取方法,它能够有效地捕获图像中的纹理、形状等信息。...在使用HOG特征和SVM分类器进行图像分类时,我们需要先提取出每张图像的HOG特征,然后使用这些特征来训练SVM分类器。接着,我们就可以使用训练好的SVM分类器来对新的图像进行分类了。...其中一种方法是使用特征匹配,即找到两张图片中相似的特征点并将它们匹配起来。

    69420
    领券