小模型学习(1)-人脸识别
【写作背景】因为最近一直在研究大模型,在与客户进行交流时,如果要将大模型的变革性能力讲清楚,就一定要能将AI小模型的一些原理和效果讲清楚,进而形成对比。当然这不是一件简单的事情,一方面大模型分析问题的的本质原理业界依然无法清楚解释,另外一方面理解AI小模型原理本身也有一定门槛,但是我认为必须得试图去理解这些问题。这个背景下,我找出了多年前买的一本《刷脸背后》的书籍重新学习,试图从人脸识别这个场景去理解AI小模型处理问题的思路,进而找出大模型更好的解释之道。
人脸识别包括三个基本步骤:
第一步:从图像中检索人脸边框,所用的是人脸检测技术。而人脸检测技术有多种,可以基于肤色的,也可以基于人脸特征点(如眼睛)的方法,等等。
人脸检测算法主要有DPM、LAEO、Viola&Jones算法,这些算法基本也是通过有标注的图像训练而来;也有基于深度学习的人脸检测算法,如CNN Facial Point Detection人脸检测算法,DDFD人脸检测算法,以及多种算法的混合应用。(类似与当前大模型的MOE,混合专家模型)
【意外发现,DDFD人脸检测算法是基于基于Alexnet进行微调改造而来的神经网络模型,而Alexnet作为一种深度卷积神经网络模型,其创始人居然是Alex Krizhevsky , Ilya Sutskever and Geoffrey Hinton。Ilya Sutskever 是谁?就是当前火爆的 OpenAI 的联合创始人兼首席科学家,最近联合董事会开除了OPEN AI CEO Sam Altman; Geoffrey Hinton就更厉害了,扫地僧,Ilya Sutskever 的博导)
第二步:是人脸区域的特征提取。根据算法原理和关注点的不同,人脸特征可以有很多种。深度学习特征是一种特征;还有Gabor,SIFT、HOG等多种特征提取方法。通过PCA、LDA等特征降维的方法得到特征,也可以作为人脸的特征;人脸面部的特征点信息,可以选取5个特征点(双眼中心、鼻子、两个嘴角),或2个特征点(包括眉梢、鼻端、下巴、双眼中心、鼻子、两个嘴角等信息),或30个乃至更多的特征点,每个特征点的位置和像素都可以用于表征人脸的特征。学术界已经有人脸特征点自动定位算法。 人脸特征提取方法,以及最后所使用的特征,对人脸识别的准确度具有关键作用。
第三步:是训练识别人脸特征与人的标签对应关系的分类模型。经过第二步,训练图像集中每个图像都可以用一个特征向量来表示(如一个4096维的特征向量),最后加上该图像的标签(表示是那个人的人脸)。一个图像对应一行类似与上面所属的记录,如果有m个训练图像,就得到m行这样的记录矩阵。然后,在该矩阵上,使用SVM,KNN,SOFTMAX regression,Logistic regression等方法训练分类模型。利用最后得到的模型,预测测试图像中每个图像对应的人的标签。
思考:上面人脸识别的三个步骤,可以简单理解为先通过少量特征点找到人脸,然后通过算法提取每个人脸的特征,并用一组特征向量表示,且每个特征向量后面增加一个该人的姓名。比如
【A1,A2,A3,A4,A5,小明】,
如果有m个测试集,就会有一个行的矩阵,就类似构建了数据库,接下来就是使用该数据库。如何使用?把人脸输入,通过特征提取算法提取该人脸的特征向量,然后通过计算与之前构建数据库(就是那个m行的大矩阵)的欧式距离或者余弦相似度,从而找到输入的人脸是谁。
可以发现,人脸识别的认证,首先必须构建一个全量的人脸特征向量数据库,然后进行识别,那么这类应用其实之中识别已知的对象,对于不在特征库里面的人脸,就没法检出,当然,在人脸识别认证这个场景不存在未知人脸,比如公安部门构建的人脸库,不可能存在漏录(每个人都用身份证)。
关于Alexnet:
经常问的问题
Q1. AlexNet有什么用?
答:AlexNet 是一种开创性的卷积神经网络 (CNN),主要用于图像识别和分类任务。它在2012年赢得了ImageNet大规模视觉识别挑战赛,标志着深度学习的突破。AlexNet 的架构凭借其对卷积层和修正线性单元 (ReLU) 的创新使用,为现代深度学习模型奠定了基础,推动了计算机视觉和模式识别应用的发展。
Q2。为什么 AlexNet 比 CNN 更好?
A. AlexNet是CNN的一种特定类型,是一种特别擅长理解图像的神经网络。当 AlexNet 被引入时,它在识别图片中的物体方面表现出了令人印象深刻的结果。它变得流行是因为它更深(有更多层)并使用一些聪明的技巧来提高准确性。所以,AlexNet并不比CNN更好;它是一种 CNN,对使 CNN 在图像相关任务中流行起来具有重要影响。
尾注
快速总结我们在本文中看到的架构。
- 它有 8 层,具有可学习的参数。
- 模型的输入是 RGB 图像。
- 它有 5 个卷积层和最大池化层的组合。
- 然后它有 3 个全连接层。
- 所有层使用的激活函数是Relu。
- 它使用了两个 Dropout 层。
- 输出层使用的激活函数是Softmax。
- 该架构中的参数总数为 6230 万个。
参考:
1、《刷脸背后》张重生。
2、【人工智能】回顾人工智能十年发展历程 | 2013-2023 | AlexNet | GAN | Transformer | Resnet | GNN | GPT | Stable Diffusion
3、Introduction to The Architecture of Alexnet
相关文章:

小模型学习(1)-人脸识别
【写作背景】因为最近一直在研究大模型,在与客户进行交流时,如果要将大模型的变革性能力讲清楚,就一定要能将AI小模型的一些原理和效果讲清楚,进而形成对比。当然这不是一件简单的事情,一方面大模型分析问题的的本质原…...

sublime Text使用
1、增加install 命令面板 工具(tool)->控制面板(command palette) -> 输入install ->安装第一个install package controller,以下安装过了,所以没展示 2、安装json格式化工具 点击install package,等几秒会进入控制面板࿰…...

基于深度学习的yolov7植物病虫害识别及防治系统
欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介简介YOLOv7 系统特性工作流程 二、功能三、系统四. 总结 一项目简介 # YOLOv7植物病虫害识别及防治系统介绍 简介 该系统基于深度学习技术,采…...
Leetcode 2963. Count the Number of Good Partitions
Leetcode 2963. Count the Number of Good Partitions 1. 解题思路2. 代码实现 题目链接:2963. Count the Number of Good Partitions 1. 解题思路 这一题根据题意,显然我们可以将其先分为 n n n个原子partition,确保任意两个partition之间…...

C语言动态内存经典笔试题分析
C语言动态内存经典笔试题分析 文章目录 C语言动态内存经典笔试题分析1. 题目一2. 题目二3. 题目三4. 题目四 1. 题目一 void GetMemory(char *p){p (char *)malloc(100);} void Test(void){char *str NULL;GetMemory(str);strcpy(str, "hello world");printf(str)…...
截断正态分布stats.truncnorm()X.rvs(10000)
就是在均值和方差之外,再指定正态分布随机数群的上下限,如 [ μ − 3 σ , μ 3 σ ] [\mu-3\sigma,\mu3\sigma] [μ−3σ,μ3σ] stats.truncnorm()参数 X stats.truncnorm(-2, 2, locmu, scalesigma) -2 2是截断的正态分布…...
第59天:django学习(八)
事务 事务是MySQL数据库中得一个重要概念,事务的目的:为了保证多个SQL语句执行成功,执行失败,前后保持一致,保证数据安全。 开启事务的三个关键字 start transaction commit rollback 开启事务 from django.db import transaction…...
举例说明自然语言处理(NLP)技术。
本文章由AI生成! 以下是自然语言处理(NLP)技术的一些例子: 机器翻译:将一种语言翻译成另一种语言的自动化过程。常见的机器翻译系统包括谷歌翻译,百度翻译等。 语音识别:将口头语言转换成文本…...

echarts地图marker自定义图标并添加点击事件
symbol如果引用https图片链接会报403,直接引用本地 series: [{type: scatter, // 使用散点图系列 coordinateSystem: geo, // 设置坐标系为地理坐标系 zlevel: 100,data: [{name: 上海,value: [121.48, 31.22], // 上海的经纬度坐标 symbol: image:// require(/…...
C盘瘦身,C盘清理
以下只是我的C盘清理经验~ 一.【用软件简单清理C盘】 使用一些垃圾清理软件,简单的初步把C盘先清理一遍。(这种软件太多我就不推荐了……) 二.【WPS清理大师】 因为我电脑装了WPS,发现右键单击C盘有个选项【释放C盘空间】…...

STM32F103
提示:来源正点原子,参考STM32F103 战舰开发指南V1.3PDF资料 文章目录 前言一、pandas是什么?二、使用步骤 1.引入库2.读入数据总结 前言 提示:这里可以添加本文要记录的大概内容: 开发环境硬件普中科技,接…...

Unity使用打成图集的Sprite作为模型贴图使用的问题
大家好,我是阿赵。 有时候用Unity引擎做项目的时候,会遇到这样的需求,美术做了一些模型或者特效,然后策划想在游戏运行的时候,读取一些游戏图标放在特效或者模型上面当做贴图使用。 这个需求实现起来很简单&am…...
el-select赋值对象是对象时,出现赋值与展示不一致问题
代码逻辑类似:module 是个object { "appId": "", "id": 65, "name": "" } <el-form :model"form"><el-form-item label"申请模块" ><el-select v-model"…...

在 Node-RED 中引入 ECharts 实现数据可视化
Node-RED 提供了强大的可视化工具,而通过引入 ECharts 图表库,您可以更直观地呈现和分析数据。在这篇博客中,我们将介绍两种在 Node-RED 中实现数据可视化的方法:一种是引入本地 ECharts 库,另一种是直接使用 CDN&…...

docker资源限制
目录 系统压力测试工具stress 1. cpu资源限制 1.1 限制CPU Share 1.2 限制CPU 核数 1.3 CPU 绑定 2. mem资源限制 3. 限制IO 二、端口转发 三、容器卷 四、部署centos7容器应用 五、docker数据存储位置 六、docker网络 容器网络分类 在使用 docker 运行容器时&…...

探索HarmonyOS_开发软件安装
随着华为推出HarmonyOS NEXT 宣布将要全面启用鸿蒙原声应用,不在兼容安卓应用, 现在开始探索鸿蒙原生应用的开发。 HarmonyOS应用开发官网 - 华为HarmonyOS打造全场景新服务 鸿蒙官网 开发软件肯定要从这里下载 第一个为微软系统(windows),第…...
CSS中控制元素水平布局的七个属性
元素的水平方向的布局 元素在其父元素中水平方向的位置由一下几个属性共同决定 margin-left border-left padding-left width padding-right border-right margin-right 一个元素在其父元素中,水平布局必须要满足以下…...

YOLOv8改进 | 2023检测头篇 | 利用AFPN改进检测头适配YOLOv8版(全网独家创新)
一、本文介绍 本文给大家带来的改进机制是利用今年新推出的AFPN(渐近特征金字塔网络)来优化检测头,AFPN的核心思想是通过引入一种渐近的特征融合策略,将底层、高层和顶层的特征逐渐整合到目标检测过程中。这种渐近融合方式有助于…...
测试经理的职责是什么?
测试经理的职责是什么? 从项目启动到项目结束的管理 测试计划 获得客户对交付产品的认可 批准中间可交付内容并向客户发布补丁 记录工作内容以便绩效考评或其他计费 问题管理 团队管理 向测试协调员或SQA提交每周状态报告 参加每周回顾会议 每周发布所有测试项目的…...

LinuxBasicsForHackers笔记 -- BASH 脚本
你的第一个脚本:“你好,黑客崛起!” 首先,您需要告诉操作系统您要为脚本使用哪个解释器。 为此,请输入 shebang,它是井号和感叹号的组合,如下所示:#! 然后,在 shebang …...

8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
linux 下常用变更-8
1、删除普通用户 查询用户初始UID和GIDls -l /home/ ###家目录中查看UID cat /etc/group ###此文件查看GID删除用户1.编辑文件 /etc/passwd 找到对应的行,YW343:x:0:0::/home/YW343:/bin/bash 2.将标红的位置修改为用户对应初始UID和GID: YW3…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...

IT供电系统绝缘监测及故障定位解决方案
随着新能源的快速发展,光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域,IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选,但在长期运行中,例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

Java面试专项一-准备篇
一、企业简历筛选规则 一般企业的简历筛选流程:首先由HR先筛选一部分简历后,在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如:Boss直聘(招聘方平台) 直接按照条件进行筛选 例如:…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
PostgreSQL——环境搭建
一、Linux # 安装 PostgreSQL 15 仓库 sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装之前先确认是否已经存在PostgreSQL rpm -qa | grep postgres# 如果存在࿰…...