智能识别系统设计---图像特征提取(代码片段)

NP_hard NP_hard     2023-01-10     316

关键词:

特征提取的简介


特征提取:通过统计或学习等方法从图像中提取出能够有效表示原始图像内容的特征向量的集合

LBP特征提取

这位大哥讲的很不错

介绍

局部二值模式(Local Binary Patter,LBP)是一种用来描述图像局部纹理特征的算子
由于计算简单,可用于基于纹理分类的实时应用场景,例如目标检测,人脸识别(LBP+AdaBoost)

LBP特征只考虑纹理信息,不包含颜色信息,因此彩色图需转换为灰度图

原理

LBP特征提取操作可以去除光照对图片的影响

对于一张单通道灰度图,我们对每一个像素进行如下操作:

首先,我们可以取这个像素点X以及其周围一圈8个像素点,组成3x3像素矩阵(每个像素的灰度值的范围 0-255

对于这个3x3的矩阵,对其进行LBP操作,将其二值化

公式:
L B P ( x c , y c ) = ∑ p = 0 p − 1 2 p s ( i p − i c ) LBP(x_c,y_c)=\\sum^p-1_p=02^ps(i_p-i_c) LBP(xc,yc)=p=0p12ps(ipic) s ( x ) = 1 i f   x ≥ 0 0 e l s e s(x)= \\begincases 1& if \\ x \\geq 0\\\\ 0& else \\endcases s(x)=10if x0else
二值化后的矩阵

然后将像素点X外的一圈01值重组为一个长度为9的二进制数,这个二进制数对应的十进制数即为像素点X的新值

代码实现

导入算法所需的包

import cv2  as cv
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm

读入所需处理的单通道灰度图

filepath='anime2.PNG'
img=cv.imread(filepath,0)
plt.imshow(img,cmap='gray')
print("img shape:",img.shape)

img shape: (654, 843)


这是自己实现的LBP函数

def LBP(img):
    dst=np.zeros(img.shape,dtype=img.dtype)
    for i in range(1,img.shape[0]-1):
        for j in range(1,img.shape[1]-1):
            center=img[i][j]
            code=0
            code |= (img[i-1][j-1]>=center)<<7
            code |= (img[i-1][j  ]>=center)<<6
            code |= (img[i-1][j+1]>=center)<<5
            code |= (img[i  ][j+1]>=center)<<4
            code |= (img[i+1][j+1]>=center)<<3
            code |= (img[i+1][j  ]>=center)<<2
            code |= (img[i+1][j-1]>=center)<<1
            code |= (img[i  ][j-1]>=center)<<0

            dst[i][j]=code
    return dst

进行LBP处理

plt.imshow(LBP(img),cmap='gray')


再测试一下,是否对阳光干扰有作用

img_=cv.imread('beam_face.jpg',0)

plt.figure(figsize=[8,8])
plt.subplot(2,2,1)
plt.imshow(cv.cvtColor(img_,cv.COLOR_BGR2RGB))
plt.title('src image')

plt.subplot(2,2,2)
plt.imshow(cv.cvtColor(LBP(img_),cv.COLOR_BGR2RGB))
plt.title('LBP image')

貌似有用?

Gabor特征提取

介绍

Gabor滤波器介绍

实在看不懂,转载一位大哥的博客内容

在图像处理中,Gabor函数是一个用于边缘提取线性滤波器,Gabor函数十分适合纹理表达和分离。

空间域中,一个二维Gabor滤波器是一个由正弦平面波调制高斯核函数

Gabor滤波器的脉冲响应,可以定义为一个正弦波(对于二维Gabor滤波器是正弦平面波)乘以高斯函数。由于乘法的卷积性质,Gabor滤波器的脉冲响应的傅立叶变换是其调和函数的傅立叶变换高斯函数傅立叶变换的卷积。该滤波器由实部和虚部组成,二者相互正交。

一组不同频率不同方向的Gabor函数对于图像特征提取非常有用。

Gabor特征介绍

Gabor函数可以在频域上不同尺度,不同方向上提取相关的特征(采用不同参数的Gabor函数),由于Gabor函数与人眼的作用相仿,所以常用在纹理识别上。

Gabor特征提取主要包含取模特征降维特征归一化特征选取等操作。

  • 取模
    就是使用图像变换后的实部和虚部的模(二范数)作为图像特征.
    m o d ( c o m b i n e ) = r e a l 2 + i m a g 2 mod(combine)=\\sqrtreal^2+imag^2 mod(combine)=real2+imag2
  • 特征降维
    图像识别领域一般使用8个方向和5个尺度的Gabor滤波器,会得到40幅变换图像,这些变换图像的特征串联起来即为图像的特征(40维的特征),由于特征维度较高,故需要降维。最简单的方法就是对每个模图像进行下采样

下图为图像的一个变换图像(即使用了一个Gabor滤波器对原图像滤波后得到的图像)

  • 特征归一化
    一般使用Z-score标准化方法
    x = x − μ σ x=\\fracx-\\mu\\sigma x=σxμ
    • 本方法要求原始数据的分布为高斯分布,不然归一化的效果很糟糕。
    • 在分类,聚类算法中,需要使用距离来度量相似性的时候,或者使用PCA技术进行降维的时候,Z-score 标准化方法表现更好
  • 特征选取
    在经过以上三步之后,图像特征(各模图像串联得到)可能存在大量冗余,最好在进行一次特征选择操作,可以使用PCAFisher线性子空间分析方法

原理

通过Gabor函数生成Gabor滤波器(size x size的矩阵),再利用Gabor滤波器对图像进行卷积(滤波)操作,得到包含Gabor特征的图像

Gabor函数: g ϕ ( x , y ) = g ( x , y , σ x , σ y , f x , f y , θ ) g^\\phi(x,y)=g(x,y,σ_x,σ_y,f_x,f_y,\\theta) gϕ(x,y)=g(x,y,σx,σy,fx,fy,θ) = e x p ( − ( ( X ( x , y , θ ) σ x ) + ( Y ( x , y , θ ) σ y ) ) ) e x p ( i ( f x x + f y y ) ) =exp(-((\\fracX(x,y,\\theta)σ_x)+(\\fracY(x,y,\\theta)σ_y)))exp(i(f_xx+f_yy)) =exp(((σxX(x,y,θ))+(σyY(x,y,θ))))exp(i(fxx+fyy))
其中: X ( x , y , θ ) = x c o s ( θ ) + y s i n ( θ ) X(x,y,\\theta)=xcos(\\theta)+ysin(\\theta) X(x,y,θ)=xcos(θ)+ysin(θ) Y ( x , y , θ ) = − x s i n ( θ ) + y c o s ( θ ) Y(x,y,\\theta)=-xsin(\\theta)+ycos(\\theta) Y(x,y,θ)=xsin(θ)+ycos(θ)

  • x和y为坐标,θ是Gabor的方向
  • σ x \\sigma_x σx σ y \\sigma_y σy分别是x和y方向的带宽,是一个标量参数
  • f x f_x fx f y f_y fy分别是x和y方向的中心调频,是一个标量参数

实部:
g e ϕ ( x , y ) = e x p ( − ( ( X σ x ) 2 + ( Y σ y ) 2 ) ) c o s ( f x x + f y y ) g_e^\\phi(x,y)=exp(-((\\fracXσ_x)^2+(\\fracYσ_y)^2))cos(f_xx+f_yy) geϕ(x,y)=exp(((σxX)人脸识别系统技术方案

1.简介在人工智能技术的快速发展进程下,现在很多小区或办公楼已经用上了人脸识别智能门禁系统。如今很多地方出入写字楼不用刷卡识别,直接刷脸就可以进入大楼。新型的生物识别代替了传统的识别方式人脸识别任... 查看详情

基于nsct变换的人脸图像特征提取matlab仿真(代码片段)

...B核心程序三、MATLAB仿真测试结果一、理论基础    人脸识别算法在人脸识别和匹配领域中一个非常重要的技术。为了获得一个较好的识别效果,人脸特征的提取十分关键。 但是大多数算法在实际工作中无法获得较好的识... 查看详情

智能门锁人脸识别技术的原理是怎样的?

...门本回答被提问者和网友采纳 参考技术B人脸识别是人工智能的一个应用,人脸识别是通过图像拍摄人脸,识别他是谁,它是人工智能技术的一种应用。人工智能是一个很大的主题,它包括很多网络的技术和很多网络的应用,人... 查看详情

人脸识别基于garbor特征提取和svm的人脸识别matlab仿真(代码片段)

1.软件版本matlab2013b2.系统概述步骤一:图片特征提取    这里,关于图片特征的提取,利用garbor变换进行特征提取的。以二维形式存在的人脸图像所包含的数据信息是非常多的,而且,这些数据中还包含了很... 查看详情

目标识别算法设计指引

简述简述目标识别算法中常用的图像算法,便于以后算法的设计应用内容目标检测(Objectrecognition)是在一幅图像中精确地找到各种目标所在的位置,标注出每个目标的类别,在此基础上识别目标。目标识别任务归结为两个问题:... 查看详情

毕设题目:matlab指纹识别

1案例背景本文设计一个基于图像处理的指纹识别系统,并详细介绍了指纹特征提取和指纹匹配的方法。该系统主要分为4个部分:指纹图像采集、图像预处理、指纹特征提取与指纹匹配。该系统基于MATLAB/GUI平台实现,导入两幅指纹图... 查看详情

医学ct图像特征提取--肺结节ct影像特征提取系统软件设计

...T影像特征提取算法。本文重点介绍肺结节CT影像特征提取系统的功能介绍及使用,利用肺结节CT影像特征提取系统对一些数据进行特征提取,检验特征提取算法的有效性。一、肺结节特征提取算法流程          ... 查看详情

毕设题目:matlab车牌识别

...成示意图2车牌图像预处理车牌图像预处理是对车牌进行智能识别的基础,处理结果直接影响后续车牌识别的精度。车牌图像预处理过程主要包括车牌定位和字符分割,作用是将车牌从复杂的背景中分割出来 查看详情

基于svm支持向量机的车牌分割识别算法matlab仿真(代码片段)

...带,无线图传,编解码2.机器视觉,图像处理,三维重建3.人工智能,深度学习4.智能控制,智能优化5.其他一、理论基础    车牌识别系统集合了先进的光电、计算机视觉、信号处理、图像处理、模式识别、人工智能、远程数据访问等... 查看详情

数据特征提取(代码片段)

...征效果要好,即数据表达(datarepresentation)特征提取:如图像识别,数据表达显得十分重要,因为图像是有成千上万个像素组成的,每个像素又有不同的的RGB色彩值,所以我们要使用特征提取这种数据处理方法,特征提取是指使用计算机提取... 查看详情

数字图像处理-基于matlab水果识别系统(图片识别)(代码片段)

...f1a;该源码均通过亲自测试可正常运行简要概述:图像识别主要是研究用计算机代替人去处理大量的物理信息,从而帮助人们建华劳动。机械分类耗时段的特点很符合水果的时间特性。本设计针对多种常见水果混合的图像&... 查看详情

opencvakaze局部特征匹配算法(代码片段)

...配级联分类器使用等比例缩放图片给图片加logo鱼眼校正智能答卷识别opencv滤镜效果灰度图像增强方式基础知识点AKAZE特征提取算法是局部特征描述子算法,是SIFT算法的改进、采用非线性扩散滤波迭代来提取与构建尺度空间、... 查看详情

人工智能的图像识别过程阐述

识别过程一般分三步:(1)首先建立人脸的面像档案。即用摄像机采集单位人员的人脸的面像文件或取他们的照片形成面像文件,并将这些面像文件生成面纹(Faceprint)编码贮存起来。(2)获取当前的人体面像。即用摄像机捕捉的当前... 查看详情

yolo车牌识别车辆识别行人识别车距识别源码(包含单目双目)(代码片段)

视频效果车牌识别视频车辆识别视频yolov5车辆识别视频yolov5yoloR对比行人车辆识别视频yolo车距1完整源码http://www.hedaoapp.com/goods/goodsDetails?pid=4132系统设计车牌自动识别是以计算机视觉处理、数字图像处理、模式识别等技术为基... 查看详情

mmaction2-视频理解行为识别(学习笔记-附代码实操)(代码片段)

一、MMAction2——视频理解与行为识别行为识别,时序检测,时空检测三种任务的联系对于视频的理解视频=空间+时间:图像为二维空间,视频是三维,视频相对于图像多出来的维度就是时间维度。视频理... 查看详情

人工智能我见及特征提取mfcc算法理解

一、人工智能  从LeNex手写数字识别,AlexNet图像识别,到无人驾驶汽车,再到AlphaGo、AlphaGoZero的横空出世,人工智能无疑已经成为了当下科技的大热。那么什么是人工智能呢?直白点,人工智能就是让机器拥有人的智能。科学... 查看详情

行人属性识别

...人检测2)行人特点标签3)附属物定位等... 基于图像智能分析、识别行人的过程:首先需要对图像进行分割,对图像中行人的特征信息进行提取,并送入已训练好的分类器中,进行分类识别,以此来识别行人基于数据统计和... 查看详情

交通标志识别基于matlabhog特征机器学习交通标识识别含matlab源码2200期(代码片段)

一、SVM路标检测识别简介1路标识别完整的路标识别系统包括:图像的获取与预处理,图像分割(路标定位),特征提取,模式分类(路标识别)等部分。其中模式分类是系统的关键技术。较常用的... 查看详情