若该文为原创文章,未经允许不得转载
原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/106144767
各位读者,知识无穷而人力有穷,要么改需求,要么找专业人士,要么自己研究
红胖子(红模仿)的博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中...(点击传送门)
OpenCV开发专栏(点击传送门)
上一篇:《OpenCV开发笔记(五十四):红胖子8分钟带你深入了解Haar级联分类器进行人脸检测(图文并茂+浅显易懂+程序源码)
下一篇:持续补充中…

前言

  红胖子来也!!!
  上一篇使用了Haar级联分类器进行人脸识别,本篇章就了解Haar、LBP特征以及理解分类器的识别过程。

Haar(哈尔特征)

概述

  哈尔特征(Haar-like features)是用于物体识别的一种数字图像特征。它们因为与哈尔小波转换极为相似而得名,是第一种即时的人脸检测运算。
  哈尔特征使用检测窗口中指定位置的相邻矩形,计算每一个矩形的像素和并取其差值。然后用这些差值来对图像的子区域进行分类。 例如,当前有一个人脸图像集合。通过观察可以发现,眼睛的颜色要比两颊的深。因此,用于人脸检测的哈尔特征是分别放置在眼睛和脸颊的两个相邻矩形。这些矩形的位置则通过类似于人脸图像的外接矩形的检测窗口进行定义。
  哈尔特征最主要的优势是它的计算非常快速。使用一个称为积分图的结构,任意尺寸的哈尔特征可以在常数时间内进行计算。
  Haar特征分为四类:边缘特征、线性特征、中心特征和对角线特征,组合成特征模板。

原理

  Harr特征也成Haar-like特征,是一种简单且高效的图像特征,其基于矩形区域相似的强度差异性Haar小波。
  最原始的Haar-like特征在2002年的《A general framework for object detection》提出,它定义了四个基本特征结构,如下图:
   
  在持续的发展中,又增加12种特征,扩招到16种特征:
  
  可以将上图每一个特征理解成为一个窗口,这个窗口将在图像中做步长为1的滑动,最终遍历整个图像。
  在详细讲解级联匹配之前,先附上一张图片的转换后的阈值灰度分布图:
  
  如下图:
  
  可以进一步增加特征提取,增加强分类器如下图:
  

级联分类器、强分类器和弱分类器

  • 级联分类器:级联分类器由n个强分类器(n >= 1,姑且把1算进去)
  • 强分类器:强分类器由n个弱分类器(n >= 1,姑且把1算进去)
  • 弱分类器:使用基本的一个特征进行分类的

识别过程

  见图:

LBP特征

概述

  原始的LBP算子定义为在3∗3的窗口内,以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于等于中心像素值,则该像素点的位置被标记为1,否则为0。这样,3∗3邻域内的8个点经比较可产生8位二进制数(通常转换为十进制数即LBP码,共256种),即得到该窗口中心像素点的LBP值,并用这个值来反映该区域的纹理信息。需要注意的是,LBP值是按照顺时针方向组成的二进制数。

LPB原理

  LPB特征匹配跟Haar相似,但又不同,如下:
  
  可以采样多个点(不限于8个),采样的半径可以扩大,这个根据开发者设自身去调整优化,找到合适目标场景的。

原博主博客地址:https://blog.csdn.net/qq21497936
原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062
本文章博客地址:https://blog.csdn.net/qq21497936/article/details/106144767

最新文章

  1. .NET (五)委托第五讲:内置委托Predicate
  2. JavaScript Patterns 4.4 Self-Defining Functions
  3. LAMP环境搭建教程(原创)
  4. android动画小析
  5. 字符串做异或使用union
  6. Java多线程同步——生产者消费者问题
  7. 动态代理写connection连接池Demo
  8. IE与FF脚本兼容性问题
  9. JS邮箱验证-正则验证
  10. Idea中最最常见的快捷键
  11. 洛谷 P1414 又是毕业季II
  12. 《python语言程序设计》_第6章_函数
  13. 内建函数之:reduce()使用
  14. 解读Secondary NameNode的功能
  15. 生信软件的好帮手-bioconda--转载
  16. 关于raid5的一系列问题
  17. 从数据库表中随机获取N条记录的SQL语句
  18. 转载: 国内的go get无法连接问题的解决
  19. Java跨平台的实现原理
  20. (ubuntu) pip install scandir 时出现错误 fatal error: Python.h: No such file or directory

热门文章

  1. pytorch GPU训练好的模型使用CPU加载
  2. 关于MySQL数据库存储过程的感想
  3. 随笔之——伪类选择器:nth-child(n) 与 nth-of-type(n)的区别!!!
  4. C语言字符数组超细讲解
  5. java传参问题
  6. nignx location index的用法
  7. influxdb 安装
  8. Python 基础教程(第二版)笔记 (2) 字典
  9. 浅析Java三大特性封装、继承、多态,及作业分析
  10. SQL Server 字段和对应的说明操作(SQL Server 2005 +)