【人脸识别】基于直方梯度图 HDGG 的人脸识别算法研究附matlab代码

news2024/11/15 21:24:37

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步进步,matlab项目目标合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信息:格物致知。

更多Matlab仿真内容点击👇

智能优化算法神经网络预测雷达通信无线传感器  

信号处理图像处理路径规划元胞机器人无人机电力系统

⛄ 内容介绍

脸识别成为广大学者普遍关注的研究,它,直观,非,非,安全,安全,快捷,快捷。的。人在中受到种的的,:复杂如影响影响影响影响结构结构结构结构,表情人结构,表情表情的的的的的千变万化千变万化千变万化千变万化千变万化千变万化以及以及以及以及以及以及以及人人人人脸采集采集等等等等课题。针对脸,角度等影响大现状现状,对的现状现状现状算法算法算法算法算法进行改进改进改进改进改进改进改进改进改进改进改进改进改进改进改进改进改进改进改进改进改进改进改进改进算法算法算法,该算法具有更好的识别效果。

⛄ 部分代码

%________________________________________________________________________%

% 人脸识别 (FR) 源代码版本 1.0 %

% %

提出两个新描述符的百分比:%

% 1. HDG(方向梯度直方图)和 %

% 2. HDGG(方向梯度广义直方图) % %

% %

% %

% 在 MATLAB R2016a 中开发 %

% %

% 作者和程序员:Farid AYECHE %

% %

% 电子邮件:ayeche_farid@yahoo.fr %

% farid.ayeche@univ-setif.dz %

% ayeche.farid@gmail.com %

% %

% %

%   Main paper: Ayeche, Farid & Adel, Alti. (2021). HDG and HDGG:   %

%                an extensible feature extraction descriptor for    %

%                effective face and facial expressions recognition. %

%                Pattern Analysis and Applications.                 %

%                 24. 10.1007/s10044-021-00972-2.                   %

%                                                                   %

%___________________________________________________________________%

clc

clear all 

close all

% fix the data

data = 'PIE';  % choose the datast :  'ORL', 'Yale'  or  'PIE'

switch data

    case 'ORL' ; 

        load('ORL_112x92.mat')

        m = 112;

        n = 92;

        nm_image_by_class = 10;         

    case 'Yale';

        load('Yale_64x64.mat')

        m = 64;

        n = 64;

        nm_image_by_class = 11; 

    case 'PIE';

        load('PIE_32x32.mat')

        m = 32;

        n = 32;

        nm_image_by_class = 170;

end    

[nb_images, taille_image] = size(fea);

% Feauters Extraction

descriptor = 'HDG'; % Choose the descriptor :  'HDG', 'HDGG', 'HOG' or 'LBP'

feauters = [];

for i = 1 : nb_images

     Im       =  fea(i, :);

     Im       =  reshape(Im, m, n);

     % Using the descriptor 

     switch descriptor         

         case 'HDG'

             H = HDG(Im);

         case 'HDGG'

             H = HDGG(Im);

         case 'HOG'

             H = HOG(Im);

         case 'LBP'

             H = LBP(Im, 1);

     end         

     % rassembler the feauters vectors

     feauters =  [feauters; H'];

     fprintf('\n Features Extraction :  %d / %d',i, nb_images);

end

% Machine Learning Preperation

fprintf('\n \n \n Machine Learning : Preperation.................');

classifier   = 'msvm'; % choose the classifier : 'knn', 'nb', 'dt', 'msvm', 'da', 'nn' or 'rf'

v            = fea; 

ri           = round(nb_images*rand(1,1)); 

Test         = feauters(ri, :);                          

Training     = feauters([1:ri-1 ri+1:end], : ); 

label(ri, :) = [];

v(ri, :)     = [];

% Recognition with Machine Leraning

fprintf('\n Machine Learning : Training & Test phases.................');

switch classifier ; 

    case 'knn'; 

        results = KNNClassifier( Training, Test, label);

    case 'nb'; 

        results = NBClassifier(  Training, Test, label);

    case 'dt'; 

        results = TREEClassifier(Training, Test, label);

    case 'msvm'; 

        results = MSVMClassifier(Training, Test, label);   

    case 'da';

        results = DAClassifier(  Training, Test, label);

    case 'nn'; 

        results = NNClassifier(  Training, Test, label);

    case 'rf'; 

        results = RFClassifier(  Training, Test, label); 

end 

       

% Display the results 

fprintf('\n \n \n ************************** Results ************************');

fprintf('\n Dataset               : %s '   ,  data);

fprintf('\n Discriptor            : %s '   ,  descriptor);

fprintf('\n Machine Learning      : %s '   ,  results.CL_name);

fprintf('\n Time                  : %f (s)',  results.time);

fprintf('\n Classe                : %d '   ,  results.Classe);

switch descriptor         

         case 'HDG'

             fprintf('\n length vector Feature : 8 x 8 x 8 = 512');

         case 'HDGG'

             fprintf('\n length vector Feature : 8 x 8 x 9 = 576');

         case 'HOG'

             fprintf('\n length vector Feature : 8 x 8 x 8 = 576');

         case 'LBP'

             fprintf('\n length vector Feature : 8 x 8 x 256 = 16384');

     end    

 fprintf('\n\n');

 

% Displya the face image

Classe  = results.Classe;

subplot(121); 

imshow(reshape(fea(ri, :), m, n), []);title('Looking for ...','FontWeight','bold','Fontsize',16,'color','red');

subplot(122);

for i = 1 : Classe     

     imshow(reshape(fea((i - 1) * nm_image_by_class + 1, :),m,n), [])

     drawnow;

end

subplot(122);

imshow(reshape(v((Classe - 1) * nm_image_by_class + 1, :), m, n), []);title('Found!','FontWeight','bold','Fontsize',16,'color','red');

% Disply image face feautre

figure,

subplot(121)

imshow(reshape(fea(ri, :), m, n), []);title('Looking for!','FontWeight','bold','Fontsize',16,'color','red');

subplot(122)

bar(feauters(ri, :)); title('Feature Histogram','FontWeight','bold','Fontsize',16,'color','red');

⛄ 运行结果

⛄ 参考文献

[1]王国栋. 基于MATLAB的人脸识别算法的研究[D]. 内蒙古大学, 2014.

[2周天荟. 基于HOG特征的人脸识别方法的研究与实现[D]. 北京建筑大学, 2014.

⛄ Matlab代码关注

❤️部分理论引用网络文献,若有侵权联系博主删除

❤️ 关注我领取海量matlab电子书和数学建模资料

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/73594.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

入门系列 - Git的管理修改与撤销修改

本篇文章,是基于我自用Linux系统中的自定义文件夹“test_rep”,当做示例演示 具体Git仓库的目录在:/usr/local/git/test_rep Git的管理修改与撤销修改 在讲这个之前,还是有必要再阐述一下“工作区和暂存区”。Git 和其它版本控制…

计算机毕业论文java毕业设计选题源代码S2SH校园BBS论坛系统

💖💖更多项目资源,最下方联系我们✨✨✨✨✨✨ 目录 Java项目介绍 资料获取 Java项目介绍 计算机毕业设计java毕设之S2SH校园论坛_哔哩哔哩_bilibili计算机毕业设计java毕设之S2SH校园论坛共计2条视频,包括:计算机…

机器学习与数据挖掘——分类与预测模型

如果有兴趣了解更多相关内容,欢迎来我的个人网站看看:瞳孔空间 一:分类与预测 分类(Classification):分类是找出描述并区分数据类或概念的分类函数或分类模型(也常常称作分类器),该模型能把数据库中的数据项映射到给…

设计行业文档管理怎么做?天翎群晖全新解决方案来了!

编者按:解决设计行业文档管理难题,天翎群晖全新解决方案来帮忙!本文分析了设计行也中的文档管理难点,并从五个方面介绍了天翎群晖是如何解决这些难题的。 关键词:免安装,免维护,私有化部署&…

ant design select 搜索同时支持输入和下拉选中

这个需求看着简单,但是实现起来走了不少弯路。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/74008ea8204c47e5b33ada2e82c56e26.png 1. 需求 当输入关键词时,远程搜索内容,有返回则下拉展示,无返回也要展示当前输入的关键…

学了C语言基本的语法,感觉转化代码的能力还是不强,编程能力到底该怎样提升?

刚开始学习编程的时候, 想写段不报错的代码吧,需要耗时十几分钟到一个小时。刷一道 Leetcode 上面的算法题呀,需要一个到几个小时。实现一个稍微复杂点的功能需求,跑通时间无比长。。。 当时,想一夜之前变成写代码的高…

ThreadLocal分析

每个线程都会有属于自己的本地内存,在堆中的变量在被线程使用的时候会被复制一个副本线程的本地内存中,当线程修改了共享变量之后就会通过JMM管理控制写会到主内存中。 很明显,在多线程的场景下,当有多个线程对共享变量进行修改的…

瑞格尔侯爵葡萄酒之城大师班

11月28日,美夏国际酒业携手西班牙瑞格尔侯爵酒庄(Marqus de Riscal)在上海的“苏河江宴”举办了一系列瑞格尔侯爵明星产品的大师班品鉴会。 开场前,一杯清爽的瑞格尔侯爵酒园白葡萄酒(Marqus de Riscal Rueda Verdejo …

大一学生HTML个人网页作业作品——火影忍者动漫7页面带特效带轮播(HTML+CSS+JavaScript)

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 ⚽精彩专栏推荐&#x1…

深度学习: BatchNormlization论文详细解读

《Batch Normlization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》 论文详细解读&#x1f4a1;目录<center>《Batch Normlization: Accelerating Deep Network Training by Reducing Internal Covariate Shift》 论文详细解读基础知识面…

机器学习11支持向量机SVM(处理线性数据)

文章目录一、什么是支撑向量机&#xff1f;二、Hard Margin SVM思想逻辑推理点到直线的距离&#xff1a;推论&#xff1a;再推&#xff1a;换符号替代&#xff1a;最大化距离&#xff1a;三、Soft Margin SVM和SVM正则化Hard Margin SVM缺点&#xff1a;所以我们必须思考一个机…

YOLO v1

参考 YOLO v1 - 云社区 - 腾讯云 摘要 我们提出了一种新的目标检测方法YOLO。 先前的目标检测工作重新利用分类器来执行检测。 相反&#xff0c;我们将对象检测作为空间分离的边界框和相关类概率的回归问题。 在一次评估中&#xff0c;一个单一的神经网络直接从完整的图像预…

内核态的文件操作函数:filp_open、filp_close、vfs_read、vfs_write、set_fs、get_fs

关于用户态的文件操作函数我们知道有open、read、write这些。但是这些的实现都是依赖于库的实现&#xff0c;但是在内核态是没有库函数可用的。最近做测试&#xff0c;在内核态中&#xff0c;需要学习一下在内核态里面的文件操作函数。分为三对出现。 感谢前辈的优秀文章&…

企业网站怎么建立?【企业网站的建设】

不少的实体企业都会考虑建立一个自己的企业网站&#xff0c;那么在企业网站的建设之前需要做好功课。那么企业网站怎么建立&#xff1f;下面给大家说说大概的流程。 1、申请域名 企业可以申请一个和自己企业名称相关的域名&#xff0c;而且域名尽量不要太长&#xff0c;否则难…

Java学习之多态数组

目录 一、定义 二、举例说明 要求1 父类-Person 子类-Student 子类-Teacher main类 运行结果 要求2 思路分析 main类中的代码 运行结果 一、定义 数组的定义类型为父类类型&#xff0c; 里面保存的实际元素类型为子类类型&#xff08;也可以有父类&#xff09; 二、…

Cat.1无线数据传输终端/Cat.1 DTU/LTE Cat.1 DTU/Cat 1模组功能

LTE Cat.1无线数传终端F2C16将借助成熟的LTE网络以更好的覆盖、更快的速度、更低的延时&#xff0c;完美取代传统2G/3G网络&#xff0c;为中低速率物联网行业提供优质的无线连接服务。 工业级芯片设计&#xff0c;设备稳定联网 ●全工业级芯片设计&#xff0c;宽温宽压&#xf…

「虚拟社交」爆火,资深玩家「当道」

⬆️“政企数智办公行业研究报告及融云新品发布会”明天直播&#xff01; 一切应用都将社交化。关注【融云全球互联网通信云】回复【融云】抽取高颜值大容量高端可乐保温杯哦~ 中国政企数智办公平台行业研究报告 融入社交能力&#xff0c;创造增长奇迹。激活用户在不同场景的社…

6个改善【客户体验】的自动电子邮件营销回复示例

关键词&#xff1a;客户体验、电子邮件营销 电子邮件自动回复器是将跨境电商的客户体验 (CX) 提升到一个新水平的一种方式。为了帮助跨境电商决定应该设置哪种自动电子邮件&#xff0c;我们汇总了对客户体验影响最大的 六个电子邮件自动回复示例。 这里有一些统计数据可以正确看…

国内各行业领域是否能通过与元宇宙和虚拟数字人的结合振兴数藏经济?

在过去几年&#xff0c; NFT和数字藏品已被广泛用于数字经济。 根据中国数字藏品行业协会早在2021年发布的市场发展报告中就指出了当年中国数字藏品市场规模达到2166亿元。 今年&#xff0c;国内元宇宙概念被炒得火热&#xff0c;从故宫博物院联合腾讯、网易等推出「故宫系列」…

关于C++11

文章目录&#x1f60d;C11优势&#x1f60e; 列表初始化&#x1f601;变量类型推导&#x1f44c;为什么需要类型推导&#x1f44d;decltype类型推导&#xff08;了解&#xff09;&#x1f61c;final 与 overridefinal&#x1f91e;override❤️默认成员函数控制&#x1f929;显…