热搜词

从0到1:朋侪圈爆款背后的盘算机视觉技术与应用 | 百万人学AI

叮咚~你被福利砸中了!现在起,「2020 AI开发者万人大会」299门票免费送!进入报名页面【2020 AI 开发者万人大会(线上直播门票)-IT培训直播-CSDN学院】,点击“立刻报名”,结算时使用优惠码“AIP1410”,价钱就会变为“0"元!


分享人 | 叶聪(腾讯云 AI 和大数据中心高级研发工程师)

整 理 | Leo

出 品 | 人工智能头条(民众号ID:AI_Thinker)


刚刚已往的五四青年节,你的朋侪圈是否被这样的民国风照片刷屏?用户只需要在 H5 页面上提交自己的头像照片,就可以自动生成诸如此类气势派头的人脸比对照片,简练操作的背后离不开盘算机视觉技术和腾讯云技术的支持。

那么这个爆款应用的背后用到了哪些盘算机视觉技术?掌握这些技术需要通过哪些学习路径?

5 月 17 日,人工智能头条邀请到腾讯云 AI 和大数据中心高级研发工程师叶聪,他以直播公然课的形式为大家解答了这些问题,

人工智能头条将主要内容整理如下:

▌一、朋侪圈爆款运动先容

大家经常在朋侪圈看到一些很有趣的跟图像相关的小游戏,包罗以前的戎衣照以及今年五四青年节的运动。这个运动很是有意思,大家可以选择一张自己以为拍的最美的照片,然后上传到 H5 的应用内里,我们就会帮你匹配一张近现代比力优秀的青年照片。那张照片是老照片,而大家上传的是新照片,这就发生了一些比力有意思的对比,这个运动今年也是获得了强烈的回声,大家很是喜欢。


所有的这些算法构建完以后,我们把它上传到了腾讯云的 AI 大平台上去。因为我们参照了去年戎衣照的流量,所以这次运动我们预估了 5 万 QPS,这其实是很高的一个要求。该运动 5 月 4 日上线,停止 5 月 5 日下线,在短短两天内,在线 H5 页面的 PV 到达了 252.6 万,UV 111.3 万,服务挪用量 420 万,还是比力惊人的。


▌二、盘算机视觉基础知识

首先盘算机视觉是什么?盘算机视觉研究如何让盘算机从图像和视频中获取高级和抽象信息。从工程角度来讲,盘算机视觉可以使模拟视觉任务自动化。


一般来说盘算机视觉包罗以下分支:


物体识别工具检测语义支解运动和跟踪三维重建视觉问答行动识别


这边分外提一下语义支解,为什么要提这个呢?因为语义支解这个词也会在包罗 NLP、语音等领域里泛起,可是实际上在图像内里支解的意思跟在语音和 NLP 内里都很纷歧样,它其实是对图像中间的差别的元素举行像素级此外支解。好比最右下角这张图片,我们可以看到行人、车辆、路,另有后面的树,他们都用差别的颜色标注,其实每一种颜色就代表了一种语义。左边和中间的两幅图,可能我不用先容,大家也应该能猜到了,一个是人脸识别,一个是无人驾驶,都是现在使用很是广泛和热门的应用。


如何让机械可以像人一样读懂图片?人在处置惩罚图像的时候,我们是根据生物学的角度,从图像到视网膜然后再存储到大脑。但机械没有这套机制,那机械如何把图片装载到内存内里?这个就牵扯到一个叫 RGB-alpha 的花样。


顾名思义,就是红绿蓝三色,然后,alpha 是什么?如果大家在早期的时候玩过一些电脑硬件,你可能会发现,最早期的显卡是 24 位彩色,厥后泛起一个叫 32 位真彩色,都是彩色的,有什么差别吗?因为在盘算机领域,我们用 8 位的二进制去表现一种颜色,红绿蓝加在一起就是 24 位,基本上我们把所有颜色都表现出来了。


为什么还泛起 alpha?alpha 是用来表现一个像素点是不是透明的,但并不是说 alpha 是 1 的时候它就是透明,是 0 的时候就不透明。只是说阿尔法通道相当于也是一个矩阵,这个矩阵会跟 RGB 的其他的矩阵举行一种运算,如果 alpha 的这个点上是 1,它就不会影响 RGB 矩阵上谁人点的数值,它就是以前原来的颜色,如果是 0,这个点就酿成透明的。这也是我们怎么用 RGB 加 alpha 通道去形貌世界上所有的图片的原理。


好比右上角,这张图片是黑白图,中间是彩色图,下面一张是有些透明效果,右下角基本上没有像素点,这就是一个很好的例子,去明白 RGB 是怎么一回事。


除了 RGB-alpha 这种表达方式,我们另有许多差别的颜色表达方式。包罗如果我们搞印刷的话,大家可能接触到另外一种色系,叫 CMYK,这个也是一种颜色的表现方式。这边还会有一些其他类型的图片,包罗红外线图片,X 光拍摄的图片,红外热成像图,另有显微镜拍摄的细胞图,这些加在一起都是我们盘算机可以处置惩罚的图像的规模,不仅仅是我们之前看到,用手机、摄像机拍摄的图片。



我们在盘算机视觉中经常会提到 stages,为什么叫 stages?


这边我们看到,有 Low level,Mid level,High level,这里澄清一下,并不是说 Low Level 这些应用就比力低级,High level 就比力高端,这个形貌的维度其实是从我们看问题的视野上来说的,Low level 代表我们离这个问题很是近,High level 代表比力远。


举一个简朴例子,好比 Low Level 上面我们可以做图像的降噪、优化、压缩、包罗边缘检测,不管是哪一条,我们都是可以想象一下,我们是离这个图片很是近的去看这个细节。High level 是什么?包罗情景明白、人脸识别、自动驾驶,它基本上是从一个比力远的角度来看这个大局。


所以其实大家可以这么想,在解决问题的时候,我们要离图片的视觉或许保持多远的距离,High 代表比力远,Low 代表比力近,并不是说 High 比 Low 要难,或者说要高端。


Mid level 介于 High 跟 Low 之间的,包罗分类、支解、工具检测,后面另有情景支解,这边的情境支解跟支解还不太一样,应该说是更深度的支解问题,后面我会详细解释。



这边有一些例子是帮大家去明白 Low level Processing。好比左上那张是我们拍 X 光会看到的图,上面那张图是原始的 X 光的图片,大家可以看到,很是的不清晰,很难去明白到内里的骨骼,血管在什么位置。但通过 Low Level Processing 的降噪和优化,就能很是清晰的看到这个病人的所有的骨骼及内脏的位置。


中间这个是一个 PCB 板,一些工业领域为了检测 PCB 板就会拍摄照片,做图像处置惩罚,并用这种方式去找到板上的一些问题,然后去修复它。有的时候也为了质量品控,看到中间这张的 PCB 板原始的图片上面充满了噪音,经由优化、降噪以后就获得一张很清晰的照片。



这个是 Mid level Processing,现在这块的技术比力成熟。这块的应用包罗分类、支解、目的检测,也包罗情景检测、情景支解,甚至另有意图检测,就是通过看图片内里的一些物体和他们现在在做的一些行为来判断他们的意图。


底下有几张小猫咪和小狗的图,从左到右是一个进阶的偏向。首先最容易想到的一个应用,就是怎么能用机械学习的方法读懂一张图片内里的内容,那这个方法如何去实现它呢?其实就是用了一个分类,因为左边那张图片如果给了机械,分类算法会告诉你内里有一只猫,可是仅此而已。


那如果我们想知道,这内里有只猫,但这只猫在那里呢?这个问题,我们就需要在这个基础上加上定位,也就是第二张图片,那我们就可以定位到,原来这里是猫咪所在的规模,只是在这个方框规模内,并没有准确到像素级别。


再进一步,如果这张图片内里不仅仅有猫,可能会有许多其他的工具,我希望把所有的工具都标识出来,应该怎么办?这个任务叫做叫工具检测,就是把图片内里所有的这些工具全部标注检测出来。


再进一步,我不光想把内里的工具全部标注出来,我还要准确的知道,它们在图像的什么位置,这种情况下我可能想把它们剥离出来,把配景去掉。一般情况下,这种被我们框出来的工具叫做前景,其他的这些部门叫做后景。我们如果想把前景弄出来,那我们就需要这种工具支解的技术,从左到右,我们就完成了分类、定位、检测、工具支解的全部流程,重新到尾也是一个逐步提升的历程。因为定位是需要分类的基础的,工具检测是需要有分类基础的,情景支解也需要有检测的基础,它是一个由浅入深的一个历程。


最右边就是一个情景支解的例子,之前我也简朴先容过,现在的技术已经可以准确的把我们这张图片上的险些所有的元素很准确的给分出来,包罗什么是人、车、路、景致、植物、大楼等全部都能分出来,我们的技术现在在 Mid level Processing 这块已经很成熟了。



接下来简朴先容一下 High level Processing,也是现在很是热门和有前景,可是应该说远远还未到达成熟的技术。可能现在,大家做最好的 High level Processing 就是人脸检测。


左下角那张是无人驾驶,也可以叫做高智能的辅助驾驶,差别的车厂,差别的界说,基本上就是工具检测的一个庞大应用,包罗检测到路上的所有情况,包罗差别的地上标识,周围的修建,另有在你前面的所有车辆,甚至行人,种种信息,还包罗跟他们的距离,它是一个相对来说多维度的,是个庞大的工具检测的应用。


中间的是两个小朋侪在打网球,这张图片也是两小我私家物,跟之前Mid level Processing有什么区别吗?其实从右边谁人工具树上,我们就能判断,它是对这个图片明白的深度有了很是本质的区别。前一个谁人例子,我们知道图片上有猫有狗,仅此而已。而这张图片上,我们除了判断到,图片上有两个孩子以外,还对他们的种种穿着,都举行了准确的支解和界说,包罗他们手上的这些持有的球拍,我们都有个很是详细的形貌,所以High level图像的明白并不是简朴的说有哪些工具,而是他们之间的联系、细节。High level自己不仅能识别我们的图上有什么工具,它还能识别,应该做什么,他们的关系是什么。


右边那张图片是一个医学的应用,一个心血管的虚拟图。它是英国皇家医学院跟某个大学互助的一个项目,我们通过盘算机视觉去模拟一个病人的心血管,资助医生做判断,是否要做手术,应该怎么去做手术方案,这个应该是盘算机视觉在医学上的很好的一个应用的例子。



这里有一些比力常见的盘算机视觉的应用,平时我们也会用到,包罗多重的人脸识别,现在有些比力盛行的照片应用,不知道大家平时会不会用到,包罗好比像 Google photos,基本上传一张照片上去,它就会对同样的照片同样的人物举行归类,这个也是现在很是常见的一个应用。


中间谁人叫 OCR,就是对文本举行扫描和识别,这个技术现在已经比力成熟了。照片上这张是比力老的技术,其时我记得有公司做这个应用,有个扫描笔,扫描一下就酿成文字,现在的话,基本上已经不需要这么近的去扫描了,大家只要拍一张照片,如果这张照片是比力清晰的,经由一两秒钟,一般我们现在算法就可以直接把它转换成文字,而且准确率相当高,所以图片上的这种 OCR 是一个过时的技术。


右下角是车牌检测,开车的时候不小心压到线了,闯红灯了,收到一张罚单,这个怎么做到呢?也是盘算机视觉的劳绩,它们可以很容易的就去识别这个照片里的车牌,甚至车牌有一定的污损,经由盘算机视觉的增强都是可以把它给可以优化回来的,所以这个技术也是比力实用的。



下面聊几个比力有挑战性的盘算机视觉的任务。首先是目的跟踪,目的跟踪就是我们在一连的图片或者视频流内里,想要去追踪某一个指定的工具,这个听起来对人来说是一个很是容易的任务,大家只要目不转睛盯着一个工具,没有人能逃脱我们的视野。


实际上对机械来说,这是一个很有挑战性的任务,为什么呢?因为机械在追踪工具的时候,大部门会使用最原始的一些方法,接纳一些对目的图片举行形变的匹配,就是比力早期的盘算机识此外方法,而这个方法在实际应用中间是很是难以实现的,为什么?因为需要跟踪的工具,它由于角度、光照、遮挡的原因包罗运动的时候,它会变得模糊,另有相似配景的滋扰,所以我们很难使用模板匹配这种方法去追踪这个工具。一小我私家他面临你、背对你、侧对你,可能情形完全纷歧样,这种情况下,同样一个模板是无法匹配的,所以说,很有潜力但也很有挑战性,因为现在工具追踪的算法完全没有到达人脸识此外准确率,另有许多的人在不停的努力去寻找新的方法去提升。


右边也是一个例子,就是简朴的一个对我们头部的追踪,也是很是有挑战性的,因为我们头可以旋转,尺度也可能发生变化,用手去遮挡,这都给匹配造成很大的难度。



后面另有一些比力有挑战性的盘算机视觉任务,我们归类把它们叫做多模态问题,其中包罗 VQA,这是什么意思?这个就是说给定一张图片,我们可以任意的去问它一些问题,一般是比力直接的一些问题,Who、Where、How,类似这些问题,或者这个多模态的模型,要能够凭据图片的真实信息去回覆我们的问题。


举个例子,好比底下图片中间有两张是小朋侪的,盘算机视觉看到这张图片的时候它要把其中所有的工具全部门割出来,要相识每个工具是什么,知道它们其中的联系。好比左边的小朋侪在喝奶,如果把他的奶瓶分出来以后,它必须要知道这个小朋侪在喝奶,这个关系也是很重要的。


屏幕上的问题是“Where is the child sitting?”,这个问题的庞大度就比单纯的只是剖析图像要庞大的多。他需要把内里所有信息的全部剖析出来,而且能准确的去关联他们的关系,同时这个模型还要能够明白我们问这个问题到底是什么个用意,他要知道问的是位置,而且这个工具是这个小孩,所以这个是包罗着盘算机视觉加上自然语言识别,两种这种技术的相联合,所以才叫多模态问题,模态指的是像语音,文字,图像,语音,这种几种模态放在一起就叫多模态问题。


右边一个例子是 Caption Generation,现在很是盛行的研究的领域,给定一张图片,然后对图片内里的工具举行形貌,这个另有一些更有趣的应用,待会我会详细先容一下。


▌三、曾经的图像处置惩罚——传统方法


接下来我们聊一聊,已往了许多年,大家积累的传统的盘算机视觉的图像处置惩罚的方法。


首先提到几个滤波器,包罗空间滤波器,傅里叶、小波滤波器等等,这些都是我们经常对图像举行初期的处置惩罚使用的滤波器。一般情况下,经由滤波以后,我们会对图像举行 Feature Design,就是我们要从图片中提取一些我们以为比力重要的,可以用来做进一步的处置惩罚的一些参照的一个信息,然后使用信息举行分类,或者支解等等,这些应用,其中一些比力经典的一些方法,包罗 SIFT、Symmetry、HOG,另有一些就是我们分类会经常用到的一个算法,包罗 SVM,AdaBoost,另有 Bayesian 等等。


进一步的支解另有工具检测另有一些经典算法,包罗 Water-shed、Level-set、Active shape 等。



首先我们做 Feature Design,提取一个图片中间工具的特点,最简朴能想到的方法,就是把这个工具的边缘给分散出来,Edge Detection 也确实是很早期的图像信息提取方法。


举个例子,硬币包罗上面的图案,都市经由简朴的 Edge Detection 全部提取出来,但实际上Edge Detection 在一些比力庞大的情况上面,包罗配景庞大的情况下,它是会损失许多信息的,许多情况下我们看不到边缘。



这样情况下大家还想出另外一个方法叫 Local Symmetry,这种方法是看工具重心点,使用重心点去代表着这个图像的一些特征。



这个叫 Haar Feature,相当于联合了前面边缘特征,另有一些其他的一些特征的信息。Haar Feature 一般分为三类


边缘特征线性特征中心对角线特征


通过处置惩罚,把图片中所有的边缘信息提取出来以后,就会对图片整理获得一个特征模板,这个特征模板由白色和玄色两种矩形组成,一般情况下界说模板的特征值为白色的矩形像素和减去玄色像素矩形像素和。Haar Feature 其实是反映了图像的一个灰度变化的情况,所以脸部的一些特征,就可以用矩形的模板来举行表述,好比眼睛要比面颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色深等等。我们使用这些矩形就对图像的一些细节举行了提取。



SIFT 尺度稳定特征变换,当工具有角度、特征位置的变化时,我们如何去连续的能够知道它们是同样的一个工具,这个就要使用到 SIFT。SIFT 是一种局部检测的特征算法,这个算法是通过求图片中的一些特征点,对图像举行匹配,这是很是老的一个算法,或许在 2000 年时候就提出来了,现在已经是一个常用的非深度学习的一个图像的一种匹配的算法。



另外一个比力盛行的方法叫 HOG 偏向梯度直方图,好比像这张图片上显示,在图像中间,局部目的的表象和形状能够对灰度的梯度、另有边缘偏向的密度有很好的表现。好比像这张图像,人身上的梯度就是向着上下偏向。而对于配景,由于配景光的原因,如果我们做灰度的分析,会发现它的梯度是偏水平偏向的,使用这种方式我们就很容易的可以把配景跟前景举行支解。另外如果许多小框里的梯度偏向险些一致的话,我们就可以认为它是一个工具,这个方法是很好的可以塑造一个支解的效果。实际上很早期的目的检测就是 Feature Design,所以说检测是基于分类的,也是这个意思。现在深度学习引入以后,许多理论也发生了一些变化,待会详细先容一下。



这个也是一个很是经典的支解方法,叫分水岭算法,就是把这个图像想象成一个地理上的地形图,然后我们对其中的各个山谷很是无差异的统一往内里放水,总会有一些山谷先被填满漫出来,那我们为了阻隔他们水流的流动就要建一些这种堤坝,这也是分水岭算法的名字的由来。使用这种方式,我们建坝的地方就是很好的一个图像的支解的这种界线,大家可以想象一下,把左边这张图和右边的界限联系起来,就会明白到这个算法是个很是巧妙的事。


通例的分水岭算法还是有些缺点的,好比由于图像上的一个噪音,经常会造成局部的一些过分支解,也会有一些图像中的部门元素因为颜色相近不会被支解出来,所以经常会泛起一些误判,这也是分水岭算法的一些局限性。



ASM,中文名叫可变模板匹配,或者叫主观形状模型。这个翻译听起来都怪怪的,其实很好明白,它是对人脸上的一些特征举行提取,接纳的方式是在人脸上寻找一些边角的地方举行绘点,一般绘制或许 68 个关键特征点。然后使用这些特征点,我们去抽取一个原始的模型出来。


原始的模型抽出来之后,是不是能直接用呢?没有那么简朴,因为人脸有可能会由于角度变化会发生一些形变,如果只是单纯的对比这 68 个点,是不是在新的图片上面另有同样的位置,大部门情况都是 No。这时我们要对这些特征点举行一些向量的构建,我们把那 68 个点提取出来,把它向量化,同时我们对我们需要比对的点,比对的谁人脸部也举行同样的事情,也把它向量化。然后我们对原始图片上的这种向量点和新图片上的点举行简朴化匹配,可以通过旋转缩放水平位移,另有垂直位移这种方式,寻找到一个等式,让它们只管的相等,最后优化的不能再优化的时候,就去比力阈值的巨细,如果它小于某个阈值,这样人脸就能匹配上,这个想法还是比力有意思的。


另外,在这里由于 68 个点可能比力多,良久以前我们的这种盘算机的性能可能没有那么好,也没有 GPU,我们如果写的时候为了提高匹配的速度,就要想个措施去降低需要比对特征点的量,这个时候引出一个比力著名的算法叫主身分分析,使用这个 PC,我们会做降维,好比一些没有太大意义的点可以去掉,淘汰数据量,淘汰运算量,提高效果,固然这并不是必须的,它只是一个提升 ASM 实际效能的加分措施。


▌四、图像处置惩罚的发作——深度学习方法


然后接下来我们就聊一聊现在很是热门,未来也会越发热门的图形学的深度学习方法。下面有两个深度学习的网络,所谓的深度学习实际就是深度神经网络,叫深度神经网络大家更容易明白。左边谁人是一个两层的神经网络,这里要解释一下,我们一般说神经网络的层数是不算输入层的,两层就是包罗一个输入层,一个隐层,和一个输出层。所以有的时候,如果我们提到了一个单层网络,其实就是只有输入层和输出层,大家知道这种情况下面的浅度神经网络是什么?它就是我们传统的机械学习里很是经典的逻辑回归和支持向量机。


这时候你会发现,深度学习并没有那么遥不行及,它其实跟我们传统的一些方法是有联系的。它只是多重的一种包装,或者组合强化,然后重复使用,最后打包成了一个新的机械学习的方法。


图上有两个神经网络,其中有些配合点,首先他们都有一个输入层,一个输出层。这个就是所有的神经网络必须的,中间的隐层才是真正的差别的地方,差别的网络为相识决差别的问题,它就会有差别的隐层。



这个是对多重人脸识别设计的一个深度神经网络,我们可以看到输入层中间会做一些预处置惩罚,包罗把图片转换成一些对比度图。第一个隐层是 Face Features,从人脸上提取关键的特征值。第二个隐层就是开始做特征值匹配,最后的输出层就是对效果举行输出,一般就是分类。



除了适才我们看到的典型神经网络,还会有其他林林总总的网络?有三角形,也有矩形的,矩形中间另有菱形的。神经网络泛起了以后,改变了大家的一些事情方式。之前,大部门机械学习的科学家是去选择模型,然后选择模型优化的方式。到了深度学习领域,大家思量的是我们使用什么网络来实现我们的目的,实际上还是区别比力大的。



CNN,也就是卷积神经网络,它是现在应用最广泛的图像识别网络,相识 CNN 会对相识其他网络有很大的资助,所以把这个作为例子。


这个例子中我们做了一个手写识别,这里包罗输入层、输出层,另有卷积层、池化层。一般情况下,不仅仅做一次卷积,我们还会多次的做卷积,池化然后再卷积,使用这种方式去多次的降维,池化层其实在这个卷积神经网络中起一个作用,就是降低我们数据的维度。


最后会有一个叫全毗连层,它是个历史遗留物,现在大家其实逐步的也在淘汰使用全毗连层,全毗连层一般情况下,它的作用就是对前面的种种池化卷积最后的效果举行一个归类。而实际上现在深度学习比力讲求端对端学习,又讲求效率比力高,这种情况下面,有的时候全毗连层的意义就不是那么大,因为这个分类有可能在卷积的时候就把它做了,其实这个内里还是有许多的可以提升的地方。



再举一个例子,现在比力盛行的做图像支解的另有许多基于 CNN 的新网络。好比在 CNN 基础上大家又加入了一个叫 Region Proposal Network 的工具,使用它们可以去优化传统 CNN 中间的一些数据的走向。Faster-RCNN 不是一蹴而就的,它是从RCNN中借鉴了 SPPNET 的一些特性,然后发现了 Fast-RCNN,又在 Fast-RCNN 的基础上进一步的优化酿成了 Faster-RCNN。


大家能看到,神经网络也不是一成稳定的,它也是不停在进化的,而我们最开始想到用神经网络去解决图像问题的时候,是由于什么原因?是由于其时我们在实验去用 CNN 去做图像检测的时候发现了很大的难题,效果欠好,这时就有很是厉害的科学家想了,我们可不行以把一个很是典型的检测问题变为分类问题,因为 CNN 用来解决分类问题是很是有效的,所以就会泛起许多的这样的转换应用。我上面写的每一个网络都是一篇很是伟大的论文,所以大家如果有兴趣,我课后可以分享一下。


现在除了 Faster-RCNN,另有一个应用效果很是好的一个网络结构,叫 YOLO,它也是在 Faster-RCNN 上面,已经不仅仅是举行了优化,而是改变了它的思维模式。最开始,我们以为检测如果转化身分类会效果更好,厥后发现 Faster-RCNN 的这个科学家以为,有的时候可能还是用回归的方式去解决目的检测的问题效果会更好,他最后就搬出了 YOLO 这种新的神经网络框架,从而重新返回到了用回归的方式去解决目的检测问题的方式上来。


有的时候也并不是说解决同样一个问题是有差别方法,也并不是说在一条路上一直走到黑是最好,换个思维方式,在硬件和软件条件到达一个新的条理的时候,有些已经用不了的技术现在就能用了,深度学习就是这么来的。



我们再聊一聊深度学习图像应用的案例,好比说我们提到的这个五四青年节运动,它是怎么样去设计的。首先呢,我们会有一些图片的训练数据,然后在进入模型之前,我们会对数据举行向量化,通过数据向量化,我们就可以获得一个模型,然后获得一个分类,和一个 score,这边的 score 只是模型对这种效果一个相对的分析,一般我们会选择 score 最高的一个分类,然后前端会从这个分类中间选择图片,生成H5的这个效果,大家就可以看到跟哪位历史上的有名的青年相似了。



第二个也是多模态的例子,凭据一张图片去讲一个浪漫的故事,其时我们有这个想法的原因是,我们知道现在已经有看图出文字形貌的技术,那我们能不能进一步的,让图片可以讲故事。这样的话,这个应用就可以资助家里有小宝宝的人群。除了图像识别以外,我们还举行了一些意图的分析。



在另一方面,我们会使用一个浪漫小说的数据库,对另外一个模型举行训练。最后,我们凭据这个图片内里这些关健词和它的意图去匹配浪漫小说中间的文段,把有关的文段全部拿出来,拿出来这些文段有的是不成文章的,所以要举行下一轮的匹配,把这些文段中间的关键词再去进一步的在小说库内里去匹配,成段的文字,这就实现了一个 storyteller。


这个项目除了最先我们对图像内里的工具识别历程使用的是监视学习,其他的都是非监视学习。这个系统是可以自然的去套用到许多差别的地方,只要换个差别的文章数据库,它就可以讲差别的故事。一些例子就是凭据差别的图片,好比左上角这张是我以为分数最高的:有一个女性在沙滩上面走路,经由我们的模型就输出了一个很是浪漫的故事,基本上切合这个情景。


▌五、剖析云端AI能力支撑


我们聊了许多盘算机视觉图像处置惩罚的一些算法,我们是不是下一步还要思量怎么样把这个算法落地,酿成一个有趣的产物或者运动呢?如果是这样,我们需要一些什么样的能力呢?


我们需要一个这样的架构,好比像这次戎衣照运动,我们会有很是高的会见量,同时呢,它会有遍布全国的用户,整体上来说,我们首先要保证这个系统能稳定和弹性伸缩,然而由于所有的机械都是有成本的,这里我们就要思量到一个平衡,如何很好的高效承载服务的同时,又要保证这个系统能够足够的稳定?


在这个运动背后,我们使用了许多的腾讯云的一些服务,包罗静态加速、负载平衡、云服务器、工具存储,另有一些 GPU 盘算。厥后发现 CPU 的性能是能够满足我们的需求的,所以之后我们 GPU 就没有上,因为 CPU 的承载还是比力高的,但实际上这一套流程是完全都是可以这么运行的。一般情况下,我们会先用 SCD,内里的 CDM 去做一个静态的缓存,到离用户最近的节点,这样大家在会见 H5 页面的时候就不会等着图片逐步加载,因为它会在离你家最近的某一个数据中心里一次性的把它给得手机的客户端上。


然后就到负载平衡器,就是把流量负载到背后海量的虚拟机上面。在差别的区域,好比北京会有,成都市有多个 ELB……这个 ELB 会挂载着许多个差别的 CVM,就是虚拟机,所有这些大家上传的照片,匹配运算都是在每个 CVM 上面去发生效果的,然后有些历程的信息,我们也会存在 COS 上,这个 COS 存储是没有巨细限制的,这样多种需求都可以获得满足。


这套机制现在证明是很是有效的,我们未来的许多的运动会继续在架构上面做一些优化。如果你有一个很好的想法或模型要去实现,也是可以实验使用一下云服务,这样是最经济和高效的。


腾讯云人工智能产物方案矩阵


▌六、技术进阶建议


最后我们聊一聊技术进阶的一些建议,如果我们在 AI 这个偏向上想有所进步的话,我们应该怎么做?右边有个金字塔,它表现我们要完成一个 AI 的产物,我们需要的人力的数量,AI 算法这块可能是很焦点的,但它需要的人数相对来说比力少一点。配合实现是中间的,你需要多一些的底层开发。由于同样一个算法模型,你可能会海量的应用,产物开发应用这个需要的人力的数量是最大的。


算法研究方面我们要做什么?首先是要打好比力强的数学基础。因为机械学习中间大量的用到了比大学高等数学更庞大的数学知识,这些知识需要大家早做研究打好基础,这就需要读许多论文。同时还要磨炼自己对新的学术结果的明白和吸收能力,像适才提到了一个神经网络图像的分类问题,实际上,短短的十年时间实现了那么多差别网络的进化,每一个新的网络提出了,甚至还没有揭晓,只是在预揭晓库内里,大家就要很快的去吸收明白它,想把它转化成可以运行的模型,这个是要重复磨炼的。


第二块是工程实现方面,如果想从事这方面首先要增强自己逻辑算法封装的能力,只管磨炼自己对模型的训练和优化能力,这块会需要大家把一个设计好的算法给落实到代码上,不停的去调整优化实现最好的效果,这个历程也是需要重复磨炼的。


最后一个偏向是产物应用,这个首先大家要有一定的开发能力,不管是移动开发还是 Web 开发,同时要提升自己 AI 产物场景的明白和应用。实际上许多AI产物跟传统的产物是有很大的明白上的区别,大家可能要更新自己的这种想法,多去看一些 AI 产物现在是怎么做的,有没有好的点子,多去试用体会。同时如果我们想把一个 AI 的模型酿成百万级、千万级用户使用的盛行产物,我们还需要有系统构建能力和优化能力。


盘算机视觉学习资源

声明: 该文观点仅代表专栏作者本人,电商运营网仅提供信息存储空间服务!
赞 | 0