[AI知识-2]AI相关基础技术
2021-04-25 10:56:00 1 举报
AI智能生成
语音识别、计算机视觉及自然语言处理,是目前AI技术落地的成熟领域,虽然绝大多数人可能无法“深度”参与其中,但这并不妨碍我们去理解和学习。会开车的人很多,但又能有多少人参与汽车的设计和生产呢?AI亦是同理。
作者其他创作
大纲/内容
语音识别技术
定义
将人类声音转化成文字的过程。属于感知智能。
识别范围分类
封闭域识别
在预先指定的字/词集合内进行识别。如此可将声学模型和语音模型进行剪裁,识别引擎的计算量也变低。可以将引擎封装于嵌入式芯片或本地化SDK,脱离云端,且不会影响识别率
产品类型
命令词、语音唤醒、语法识别
引擎部署
云端
公有云
私有云
本地
软硬一体:芯片
纯软件:本地化SDK
应用场景
简单指令控制的智能家居,电视盒子等
开放域识别
在整个语言大集合中识别。引擎计算量大,直接封装到嵌入式芯片或本地SDK中,耗能高且识别效果差,所以一般都只以云端形式提供。
产品类型
流式上传-同步获取
应用场景:输入法、实时字幕上屏,具备更自然交互形态的智能音响
算法:根据时长的限制,用不同的模型
音频时长:长短都有,根据语音云厂商的产品规划而定
已录制音频文件上传-异步获取
应用场景:字幕配置、客服质检、UGC语音内容审查
算法:长短期记忆网络模型LSTM
音频时长:较长,<3/5小时
已录制音频文件上传-同步获取
应用场景:作为前两者的补充,场景与上述类似
算法:根据语音厂商的产品规划
音频时长:<1min
引擎部署
云端
公有云
私有云
本地
带服务器的嵌入式系统
计算机视觉技术
定义
计算机对生物视觉的模拟。通过采集图片、视频进行处理,以获取相应场景的三维信息
拆分步骤
成像
原理:模拟相机
需要解决的关键问题
光照影响
解决方案
引导用户行为
提高硬件设施性能
算法优化
模糊
噪声
分辨率
早期视觉
图像分割
将特定影像分割成“区域内部属性一致”而“区域间不一致”的技术
边缘求取
找到图像中的亮度变化剧烈的像素点构成的集合,即找出轮廓
运动及深度估计
识别理解
把一张图片对应到一个文字或标签。即根据机器找到的映射关系得出输出
技术流程
人脸识别
人脸采集--人脸检测--图像预处理--特征提取--人脸匹配与识别
人脸采集时需注意事项
图像大小
人脸图像过小会影响识别效果,过大会影响识别速度。非专业人脸识别摄像头常见规定的最小识别人脸像素为60*60或100*100以上。在规定的图像大小内,算法更容易提升准确率和召回率。图像大小反映在实际应用场景就是人脸离摄像头的距离。
图像分辨率
越低的图像分辨率越难识别。图像大小综合图像分辨率,直接影响摄像头识别距离。现4K摄像头看清人脸的最远距离是10米,7K摄像头是20米。
光照环境
过曝或过暗的光照环境都会影响人脸识别效果。可以从摄像头自带的功能补光或滤光平衡光照影响,也可以利用算法模型优化图像光线。
模糊程度
实际场景主要着力解决运动模糊,人脸相对于摄像头的移动经常会产生运动模糊。部分摄像头有抗模糊的功能,而在成本有限的情况下,考虑通过算法模型优化此问题。
遮挡程度
五官无遮挡、脸部边缘清晰的图像为最佳。而在实际场景中,很多人脸都会被帽子、眼镜、口罩等遮挡物遮挡,这部分数据需要根据算法要求决定是否留用训练
采集角度
人脸相对于摄像头角度为正脸最佳。但实际场景中往往很难抓拍正脸。因此算法模型需训练包含左右侧人脸、上下侧人脸的数据。工业施工上摄像头安置的角度,需满足人脸与摄像头构成的角度在算法识别范围内的要求。
人脸检测注意事项
人脸位置检测:目的是在图像中准确标定人脸的位置和大小
人脸关键点检测:目的是估计人脸图片上脸部特征点的坐标
使用框架、模型
一般可以使用Openface中的Dlib模型实现人脸检测,利用OpenCV库对数据进行处理。最近人脸检测算法模型的流派包括三类及其之间的组合:viola-jones框架(性能一般速度尚可,适合移动端、嵌入式上使用),dpm(速度较慢),cnn(性能不错)。
指标
检测率:识别正确的人脸/图中所有的人脸。检测率越高,代表检测模型效果越好。
误检率:识别错误的人脸/识别出来的人脸。误检率越低,代表检测模型效果越好。
漏检率:未识别出来的人脸/图中所有的人脸。漏检率越低,代表检测模型效果越好。
速度:从采集图像完成到人脸检测完成的时间。时间约短,检测模型效果越好。
图像预处理注意事项
图像预处理的目的是消除图像中无关信息,尽可能去除或者减少光照、成像系统、外部环境等对图像的干扰,使它具有的特征能够在图像中明显地表现出来。主要过程包括人脸图像的光线补偿、灰度变换、直方图均衡化、归一化、几何校正、滤波以及锐化等。
灰度化
将彩色图像转化为灰色图像的过程
直方图均衡化
直方图描述了一副图像的灰度级内容。直方图均衡化主要目的是为了提高对比度和灰度色调的变化,使图像更加清晰。
归一化
通过一系列变换,将待处理的原始图像转换成相应的唯一标准形式(该标准形式图像对平移、旋转、缩放等仿射变换具有不变特性),使得图像可以抵抗几何变化的攻击。例如用放大缩小图像、减少图片由于光照不均匀造成的干扰等。
中值滤波
将图片进行平滑操作以消除噪声
特征提取注意事项
传统的人脸识别模型一般都是在SVM等分类器分类后,通过CNN提取特征。
但随着深度学习的发展,人脸识别有更多端到端的框架选择。这里简单介绍一下三种近两年基于深度学习人脸识别的方法:Deep face、Deep ID、FaceNet
deep face
Deep face 与其他方法最大的不同在于,DeepFace在训练神经网络前,使用了基于3D模型人脸对齐的方法。然后利用深度神经网络学习特征
deep ID
有两种方式对人脸进行多种尺度的遮挡,第一种是从下往上进行遮挡,从10%-70%。第二种是不同大小的黑块随机放,黑块的大小从10×10到70×70
facenet
直接将人脸图像映射到欧几里得空间,空间的距离代表了人脸图像的相似性。该方法基于深度卷积神经网络。FaceNet得到人脸最终表示后不用像DeepID那样需要再训练模型进行分类,直接计算距离,效率很高。
人脸匹配与识别注意事项
将提取的人脸特征数据与数据库中储存的特征模板进行搜索匹配,设定一个最佳的相似度阈值,当相似度超过该阈值,则输出匹配后的结果。最佳相似度阈值的决定需要考虑到输出结果的正确率和数量。
精确率(precision):识别为正确的样本数/识别出来的样本数
召回率(recall):识别为正确的样本数/所有样本中正确的数
多目标跟踪
图像采集--图像预处理--基于深度学习的多目标检测识别--多目标跟踪--输出结果
图像采集注意事项,同“人脸采集注意事项”
图像预处理注意事项
直方图均衡
直方图描述了一副图像的灰度级内容,而直方图均衡化的主要目的,是为了提高对比度和灰度色调的变化,使图像更加清晰。
滤波
图像滤波的主要目的是,在保持图像特征的情况下进行噪声消除,具体可以分为线性滤波和非线性滤波。非线性滤波相比线性滤波来说,更能保护图像细节。
基于深度学习的多目标检测识别
目标检测的实质是多目标的定位,即要在图片中定位多个目标物体。
多目标跟踪注意事项
遮挡、目标消失后再出现,会有丢失目标的现象
相似目标容易被当作同一目标
由于以上原因,在实际场景里多目标跟踪可能会发生人员重复检测、漏检、同一目标多条轨迹等情况。
主要任务:找到图像序列中运动的物体,并将不同帧的运动物体一一对应,最后给出不同物体的运动轨迹。
术语解释
检测
定位目标在图像中的位置。检测方法很多,例如帧间差分法、背景减除法、光流法等等;另外,检测常与识别结合。
跟踪
在连续图像序列中完成对目标的检测,并把物理意义下同一目标相关联。
轨迹
一条轨迹对于这一目标在一段时间内的位置序列;是多目标跟踪系统的输出量。
数据关联
用于解决目标间的匹配问题;是多目标跟踪的核心问题。
跟踪置信度
跟踪算法反应每一次跟踪的可靠程度。
光学符号识别
图像采集--图像预处理--特征提取--文字定位--光学识别
图像采集注意事项
摄像头选取需要考虑到两个指标:像素分辨率和摄像头焦距。像素分辨率:可以通过所检测物体的最小特征决定像素分辨率。公式为:(检测物体最大长度/物体最小特征值)*2。假设字符最大长度为300mm,最小特征值为1mm,则最小所需分辨率为600。镜头焦距:焦距(F)的选择由CCD传感器的尺寸(Ss)、工作距离(摄像机镜头到被测物体的距离Wd)和摄像机的视场范围(Os)--3个参数来决定。
图像常见格式有BMP、GIF、JPG等,其中BMP格式最不容易出问题。
图像预处理注意事项
图像预处理主要包括二值化、图像增强、噪声处理、图像滤波等。
特征提取
考虑通过聚类、分割、去噪、池化等步骤获取图像中文字特征。
聚类是根据图像特点自适应地进行多值化的过程。推荐“极大值极小值分割”聚类方式:有多少个极大值点,就聚为多少类,并且以极小值作为类别之间的边界。通过聚类可将图片分成不同图层。
分层识别:
每一层图像由若干联通区域组成,在此时需要文字具有一定抗腐蚀能力。联通区域边界线越短,抗腐蚀能力越强;联通区域边界线越长,抗腐蚀能力越差。
联通区域的抗腐蚀能力=该区域被腐蚀后的总面积/该区域被腐蚀前的总面积。
池化操作:对特征层进行整合
后期处理:a.高低密度区排除:b.孤立区排除
文字定位注意事项
邻近搜索,目的是圈出单行文字。
由于部分汉字是由很简单的其他汉字组成,比如“胆”就是由“月”和“旦”组成,我们需要经过邻近搜索算法,整合可能成字的区域。
文本切割,目的是将单行文本切割为单字。利用切割方法(比如均匀切割),将单行文本切割成一个一个的单字。
光学识别注意事项
模型选择:选择卷积神经网络模型
训练数据:除可直接获取到的数据外,还可利用程序自动生成一批训练数据,需要考虑到以下因素:
a.字库的字体数目;
b.同字不同字体;
c.同字不同颜色;
d.同字不同大小;
e.同字不同清晰程度;
f.中英文数字等等语言种类;
g.噪音影响。
输出结果:
a.有形近字的情况,优先考虑高频字:例如”天“和”夭“,“天”出现的频率更高,优先考虑“天”;
b.通过模型精确率评估模型效果;
d.对数据进行随机增加噪音,测试模型的效果;
e.后期处理校正:利用人工或者上下文关系,对识别结果进行校正;
f.若需按照原文排版识别,还需用版面恢复算法将输出结果输出到word或者pdf。
自然语言处理
定义
自然语言处理(NLP)是指机器理解并解释人类写作、说话方式的能力。
NLP 包含两部分
自然语言理解(NLU)
NLU 是要理解给定文本的含义。本内每个单词的特性与结构需要被理解。
注意理解几个歧义性
词法歧义性:单词有多重含义
句法歧义性:语句有多重解析树
语义歧义性:句子有多重含义
回指歧义性(Anaphoric Ambiguity):之前提到的短语或单词在后面句子中有不同的含义。
自然语言生成(NLG)
NLG 是从结构化数据中以可读地方式自动生成文本的过程。
自然语言生成分3个阶段
文本规划:完成结构化数据中基础内容的规划。
语句规划:从结构化数据中组合语句,来表达信息流。
实现:产生语法通顺的语句来表达文本。
关键词解释
分词
把一句话切成多个词组
比如:“我是产品经理”,分词后变成“我-是-产品-经理”
“关键词”
找到句子中携带核心信息的词
“关键词”是提供重要信息、最多信息的词,在“我是产品经理”句子被分词后,机器会选择“产品”、“经理”为该句子“关键词”。
badcase
如果中文分词和关键词有一方标注出错,那出来的结果也会是错误的,这就是我们所说的badcase。
badcase的类型
①中文分词错误
②关键词错误
③中文分词和关键词均错
badcase的修改
像第一种和第二种,拿过来直接改就好。第三种会比较麻烦,需要同时看中文分词的文件和关键词的文件来处理。而分词本身就很容易出问题,如多音字造成的badcase
文本相似度
即两个文本直接的相似程度。文本相似度是自然语言处理(NLP)中必不可少的重要环节,几乎所有NLP的领域都会涉及到
与之相对应的,还有一个概念——文本距离——指的是两个文本之间的距离。文本距离和文本相似度是负相关的——距离小,“离得近”,相似度高;距离大,“离得远”,相似度低。
各类算法
欧氏距离
公式
计算“产品助理”和“产品经理招聘会么”之间的欧氏距离,过程如下:
文本向量A=(产,品,助,理),即x1=产,x2=品,x3=经,x4=理,x5、x6、x7均为空;
文本向量B=(产,品,经,理,招,聘,会),即y1=产,y2=业,y3=经,y4=理,y5=是,y6=什,y7=么。
这里规定,若xi=yi,则xi-yi=0;
若xi≠yi,|xi-yi|=1。
所以,欧氏距离是2
不适用场景
文本相似度,意味着要能区分相似/差异的程度,而欧氏距离更多的只能区分出是否完全一样。而且,欧氏距离对位置、顺序非常敏感,比如“我是老狼”和“老狼是我”,在人看来,相似度非常高,但是用欧氏距离计算,两个文本向量每个位置的值都不同,即完全不匹配。
曼哈顿距离
和欧氏距离非常相似(把平方换成了绝对值,拿掉了根号)
也叫编辑距离(Levenshtein距离、莱文斯坦距离)
顾名思义,编辑距离指的是将文本A编辑成文本B需要的最少变动次数(每次只能增加、删除或修改一个字)。
例、计算“菠萝”和“菠萝包”之间的编辑距离。
因为将“菠萝”转化成“菠萝包”,至少需要且只需要1次改动,所以它们的编辑距离是1。(如图1)
因此,编辑距离是对称的,即将A转化成B的最小变动次数和将B转化成A的最小变动次数是相等的。
同时,编辑距离与文本的顺序有关。
比如,“菠萝”和“萝菠”,虽然都是由“菠”“萝”组成,但因为顺序变了,编辑距离是2,而不是0。(如图2)
适用场景
编辑距离算出来很小,文本相似度肯定很高。如果用算法语言来说的话,就是精确率很高(即虽然会漏掉一些好的case,但可以确保选出来的case一定非常好)。
不适用场景
反过来说,虽然精确率很高,但召回率不高(准确率、精确率、召回率的定义见文章底部外链)。在某些业务场景中,漏掉的case会引起严重后果,比如“恭喜发财”和“发财恭喜”,人的理解应该非常相似,可编辑距离却是4,相当于完全不匹配,这显然不符合预期。
图1
图2
公式
分支主题
Jaccard相似度
杰卡德相似度,指的是文本A与文本B中交集的字数除以并集的字数
例、计算“极品飞车”和“侠盗飞车”的杰卡德相似度。
因为它们交集是{飞,车},并集是{极,品,飞,车,侠,盗},所以它们的杰卡德相似度=2/6=1/3。
杰卡德相似度与文本的位置、顺序均无关,比如“绝地求生”和“求生绝地”的相似度是100%。无论“绝地求生”这4个字怎么排列,最终相似度都是100%。
在某些情况下,会先将文本分词,再以词为单位计算相似度。比如将“绝地求生”切分成“绝地/求生”,将“求生绝地”切分成“求生/绝地”,那么交集就是{绝地,求生},并集也是{绝地,求生},相似度恰好仍是100%。
适用场景
1)对字/词的顺序不敏感的文本,比如前述的“零售批发”和“批发零售”,可以很好地兼容。
2)长文本,比如一篇论文,甚至一本书。如果两篇论文相似度较高,说明交集比较大,很多用词是重复的,存在抄袭嫌疑。
不适用场景
1)重复字符较多的文本,比如“说说说说说你爱我”和“说你爱爱爱爱爱我”,这两个文本有很多字不一样,计算出来的相似度是100%(交集=并集),但我们觉得这个答案跟认知不符,认知上这两个文本不一样。
2)对文字顺序很敏感的场景,比如“一九九七”和“一七九七”,杰卡德相似度是100%,意思却完全不同。
公式
分支主题
其他
参考
分支主题
关键词解释
正确率 = 提取出的正确信息条数 / 提取出的信息条数
召回率 = 提取出的正确信息条数 / 样本中的信息条数
0 条评论
下一页