首页 > 编程知识 正文

基于OpenCV Haar实战级联分类器的使用

时间:2023-05-05 04:46:15 阅读:151476 作者:1890

单击上面的3358www.Sina.com/,然后选择勤劳的豌豆学视觉或3358www.Sina.com/

重磅晾衣架,第一时间近几年来,对象检测受到广泛关注。 从智能手机到交通监控,目标检测遍布各个领域。 时间和准确性是目标检测中的重要约束。 目标检测算法的成功依赖于其特征表达技术和学习算法,后者只关注图像的重要部分。 本文将考虑在OpenCV级联分类器中使用以考虑使用级联分类器功能的技术“使用简单特征的扩展级联执行快速对象检测”。

星标

图像由像素构成,像素的操作成本高。 因此,需要更好的图像显示。

置顶甲二矩形特征计算两个矩形区域内的像素的总和之差。 这些区域具有相同的尺寸和形状,在水平或垂直方向上相邻。 上图中的a和b是例子。

图像表示技术甲三角矩形的特征是从一个中心的矩形中减去距离总和2米的矩形内的总和。 上图中的c是三角形的特征类型。

1.两个矩形特征:计算两个四边形的特征对角长方形的差异。 上图中的d是示例。

位置x、y的积分图像包含x、y以上和左侧像素的和。

ii(x,y )是积分图像,I ) x,y )是原始图像。

使用以下重复对:

s(x,y )是累积行的总和。 s(x,-1)=0且ii(-1,y )=0。 使用积分图像,可以用较少的参照得到任意的矩形和。 这是一个例子:

只能使用四个数组引用计算矩形d中的像素总数。 位置1处的积分图像的值是矩形a中的像素的总和。 位置2的值为A B,位置3的值为A C,位置4的值为A B C D。 D内的合计可以计算为4 1-(2 3 )。

同样,可以通过六个数组引用计算两个矩形特征。 对于3个矩形特征可以计算8个,对于4个矩形特征可以计算9个。 这些矩形图像表明为有效学习提供了充分的对象信息。

2.三个矩形特征:

每个图像子窗口有180,000多个矩形元素,其数量远远大于像素数。 虽然可以非常高效地计算每个功能,但计算完整集合是昂贵的。 弱学习算法用于选择最能区分正例和负例的单一矩形特征。 对于每个特征,弱学习者确定最优阈值分类函数,使得最小数量的样本被误分类。

在输入图像上移动窗口,并计算图像的每个子部分的Haar特性。 从分类函数中学习到的阈值将对象与非对象分开。 没有可以执行错误率较低的分类任务的功能。 描述一个对象需要很多特征。 通过对弱学习者的决策进行加权平均,可以得到准确的分类器。

3.四个矩形特征:

的级联分类器用于从根本上减少计算时间,同时提高检测性能。

图像的所有部分对物体的检测都没有帮助。 因此,删除这些负样本可以缩短计算时间。 如上图所示,级联分类器有很多阶段。 每个阶段都包含基于前一节所述的扩展算法训练的分类器。

窗口在初始阶段分类为正或负的图像区域上滑动。 如果此区域标记为负,则窗口将滑动到下一个区域。 如果为正,则分类器进入下一个阶段。 如果标签在最后阶段为正,则通过找到对象并删除负样本来缩短计算时间。

AdaBoost用于分类器学习

import c v2 face _ classifier=cv2.cascade classifier (' Haar cascade _ frontal face _ alt _ tree.XML ' )加载图像并填充卡

img=cv2.imread(WP4419229.jpg ) ) faces=face _ classifier.detect multiscale (img,1.001,4 )当前使用面对象

iffacesis (: print (nofacesfound ) ) for ) x,y,w,h ) infaces:cv2.rectangle ) resized,) x,x,2 ) pw )

第一个参数是图像,第二个参数

是缩放因子,第三个参数是最小邻居数。Haar级联分类器在滑动窗口协议上运行,并使用缩放因子。目标窗口以最小大小开始,并且在测试了该大小的所有窗口之后,使用缩放因子将窗口放大,直到达到最大大小。

使用上述协议,我们将获得许多对单个面孔的响应。邻居的最小数量是较低的阈值,即,如果响应高于阈值,则该区域为有效对象,最小和最大大小都可以作为参数传递。

使用级联分类器以提高准确性

使用级联分类器,我们可以提高深度神经网络分类器(二进制或多类)的准确性。我们可以使用级联分类器来裁剪仅包含对象的图像,并将其单独传递给分类器。由于消除了图像的不必要部分,因此提高了准确性。

下载1:OpenCV-Contrib扩展模块中文版教程

在「勤劳的豌豆学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲

在「勤劳的豌豆学视觉」公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲

在「勤劳的豌豆学视觉」公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”听话的衬衫 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。