
我们未来的计算机视觉系统的技术和模型是在公司的各种项目(邮件,云和搜索)中逐步创建和改进的。 像优质奶酪或干邑一样成熟。 一旦我们意识到我们的神经网络显示出出色的识别结果,并决定将它们整合到一个b2b产品中,即Vision,我们现在就可以自己使用它并提供给您使用。
今天,我们在Mail.Ru云解决方案平台上的计算机视觉技术已成功运行,并解决了非常复杂的实际问题。 它基于许多在我们的数据集上受过训练的神经网络,专门解决应用问题。 所有服务都在我们的服务器容量上旋转。 您可以将公共Vision API集成到您的应用程序中,通过该API可以使用服务的所有功能。 API快速-借助服务器GPU,我们网络内的平均响应时间为100毫秒。
切入下面,有一个详细的故事和许多Vision实例。
作为我们自己使用上述面部识别技术的服务的示例,我们可以引用
Events 。 它的组件之一是视觉照相台,我们在各种会议上都安装了该照相台。 如果您走到这样的照相台,用内置相机拍照并输入您的邮件,系统将立即在常规会议摄影师已捕获您的照片阵列中查找,如果需要,可通过邮件将找到的照片发送给您。 这与上演的人像拍摄无关-Vision即使在观众人群中也能识别您。 当然,它们本身并不会被照片架识别,它们只是漂亮的杯垫中的平板电脑,它们只是在内置相机上拍摄客人的照片,然后将信息传输到服务器,所有识别的魔力都在这里发生。 而且我们已经反复观察到,即使是图像识别专家,该技术的有效性也令人惊讶。 下面我们将讨论一些示例。
1.我们的人脸识别模型
1.1。 神经网络与处理速度
为了进行识别,我们使用了ResNet 101神经网络模型的一种修改方法,将最后的平均池替换为完全连接的层,类似于在ArcFace中所做的。 但是,矢量表示的大小是128,而不是512。我们的训练集包含273,593人的大约1000万张照片。
该模型的运行非常快,这要归功于精心选择的服务器配置架构和GPU计算。 从内部网络中的API获得响应需要100毫秒-这包括面部检测(照片中的面部检测),识别并在API响应中返回PersonID。 由于大量的传入数据(照片和视频),将需要更多的时间将数据传输到服务并接收响应。
1.2。 评估模型的有效性
但是,确定神经网络的效率是一项非常复杂的任务。 他们的工作质量取决于训练模型的数据集以及是否针对特定数据进行了优化。
我们开始使用流行的LFW验证测试来评估模型的准确性,但是它太小且太简单。 达到99.8%的准确性后,它就不再有用。 评价识别模型有一个很好的竞争-Megaface在我们上逐渐升至82%的排名1。Megaface测试包含一百万张照片-干扰物-该模型应该能够从Facescrub数据集中区分干扰物的几千张名人照片。 但是,清除了Megaface的错误测试后,我们发现,在经过清理的版本中,我们达到1级的98%的准确性(名人照片通常是非常具体的)。 因此,他们创建了一个单独的身份验证测试,类似于Megaface,但带有“普通”人的照片。 进一步提高了其数据集的识别准确性,并取得了很大的进步。 另外,我们使用聚类质量测试,该测试由数千张照片组成; 它模拟用户云中人脸的标记。 在这种情况下,聚类是一组相似的个体,每个可识别的个体都是一组。 我们检查了真实小组的工作质量(正确)。
当然,任何模型都有识别错误。 但是,通常可以通过微调特定条件的阈值来解决这种情况(对于所有会议,我们都使用相同的阈值,例如,对于ACS,我们必须大幅提高阈值,以减少误报率)。 Vision照相台可正确识别绝大多数与会者。 有时有人看着裁剪的预览说:“您的系统有问题,不是我。” 然后,我们打开了整个照片,结果发现该访客确实在照片中,只是他们没有照相,而其他人,只是一个人不小心出现在背景虚化区域中。 而且,即使面部的一部分不可见,或者一个人正站着,甚至是半张脸,神经网络也经常能正确识别。 即使使用广角镜头拍摄时,即使该人掉入了光学畸变领域,该系统也可以识别该人。
1.3。 在困难情况下测试示例
以下是神经网络操作的示例。 在入口处,提交了照片,她必须使用PersonID(该人的唯一标识符)对其进行标记。 如果两个或更多图像具有相同的标识符,则根据模型,这些照片只能显示一个人。
立即,我们注意到在测试过程中,我们可以访问各种参数和模型阈值,可以对其进行配置以获得特定结果。 公共API已针对常见情况进行了优化,以实现最大的准确性。
让我们以最简单的方式开始,即面部识别。

好吧,那太容易了。 我们使任务复杂化,增加了胡须和数年的时间。

有人会说这并不太困难,因为在两种情况下,脸部都是完整可见的,该算法具有很多有关脸部的信息。 好的,将个人资料设为Tom Hardy。 这项任务要复杂得多,我们在成功解决方案上付出了很多努力,同时保持了较低的错误率:我们选择了一个训练样本,对神经网络的架构进行了思考,完善了损失函数并改善了照片的初步处理。

让我们戴上帽子:

顺便说一句,这是一个特别困难的情况的例子,因为这里的脸很遮盖,并且在下面的图片中也有一个遮住眼睛的深色阴影。 在现实生活中,人们经常借助墨镜改变其外观。 对汤姆做同样的事情。

好吧,让我们尝试上传不同年龄的照片,这一次我们将把经验带给另一位演员。 让我们举一个更为复杂的例子,当与年龄相关的变化特别明显时。 这种情况并非易事,当您需要将护照中的照片与持票人的脸相比较时,这种情况就一直存在。 毕竟,当拥有者20岁时,第一张照片被卡在护照上,并且45人可以改变很多:

您是否认为不可能完成的任务的主要特色并没有随着年龄的增长而改变太多? 我认为,即使是少数人也可以将上下两张照片结合在一起,多年来男孩已经发生了很大的变化。

神经网络面临外观变化的频率更高。 例如,有时候女性可以借助化妆品极大地改变自己的形象:

现在,让我们使任务更加复杂:用不同的照片遮盖脸部的不同部分。 在这种情况下,该算法无法比较整个样本。 但是,Vision可以很好地处理这种情况。

顺便说一下,照片中有很多人脸,例如,一张大厅的一张普通照片可以容纳100多人。 对于神经网络来说,这是一个困难的情况,因为许多面孔可能会被敏锐区域之外的人以不同的方式照亮。 但是,如果以足够的分辨率和质量(每平方米至少75像素覆盖面部)拍摄了照片,Vision将能够识别并识别它。

从监视摄像机报告照片和图像的奇特之处在于,人们通常会因为他们不在锐利领域或正在移动而变得模糊不清:

同样,图像之间的照明强度可能会有很大差异。 这也常常成为绊脚石,许多算法很难正确处理过暗和过亮的图像,更不用说进行精确比较了。 让我提醒您,为了获得这样的结果,您需要以某种方式设置阈值,这种可能性尚未公开。 对于所有客户,我们使用相同的神经网络,它具有适合大多数实际任务的阈值。

最近,我们推出了该模型的新版本,该模型可以高精度识别亚洲面孔。 以前,这是一个大问题,甚至被称为“机器学习种族主义”(或“神经网络”)。 欧美的神经网络认识到类欧洲人的面孔很好,而蒙古人种和黑人类人的情况则更糟。 可能在同一中国,情况恰恰相反。 培训数据集全部反映出特定国家/地区的主要人群。 但是,情况正在发生变化,今天这个问题远非如此尖锐。 视觉对于不同种族的代表没有任何困难。

人脸识别只是我们技术的众多应用之一,可以教会视觉识别任何东西。 例如,车号,包括在算法困难的条件下:尖角,肮脏且难以读取的号码。

2.实际用例
2.1。 物理访问控制:当两个同时通过时
借助Vision,可以为员工的到来和离职实施会计系统。 基于电子通行证的传统系统有明显的缺点,例如,您可以同时浏览两个徽章。 如果门禁系统(ACS)补充了Vision,它将如实记录谁来来去去。
2.2。 时间追踪
Vision的此用例与上一个案例密切相关。 如果我们通过人脸识别服务对门禁系统进行补充,它将不仅能够发现违反门禁控制的情况,而且还能记录员工在建筑物或设施中的实际停留时间。 换句话说,即使他的同事们在上司面前掩盖了他,Vision也将帮助他们诚实地考虑谁来工作以及与她一起工作的费用,以及谁留下来。
2.3。 视频分析:人员跟踪和安全性
通过使用Vision跟踪人员,您可以准确评估购物区,火车站,十字路口,街道和许多其他公共场所的实际通畅程度。 我们的跟踪在控制对仓库或其他重要办公场所的访问方面也可以有很大帮助。 当然,跟踪人和脸有助于解决安全问题。 抓到有人从您的商店偷东西? 将其放入视频分析软件的黑名单中的“ PersonID”(返回Vision)中,如果该类型再次出现,则系统下次将立即警告安全性。
2.4。 贸易中
零售和各种服务企业对队列识别感兴趣。 使用视觉,您可以识别出这不是一群随机的人,而是一个队列,并确定其长度。 然后,系统将有关队列的信息通知负责人员,以便了解情况:这是访客的涌入,需要打电话给其他员工,还是有人在分担其工作职责。
另一个有趣的任务是将大厅中的公司员工与访客分开。 通常,系统学习将对象分解为某些衣服(着装要求)或具有某些独特功能(签名围巾,胸口上的徽章等)的对象。 这有助于更准确地评估出勤情况(这样,仅员工就不会“结束”会场人员的统计信息)。
使用面部识别,您可以评估您的受众:访问者的忠诚度是多少,即有多少人返回您的机构并以什么频率返回。 计算一个月内有多少不重复访客。 为了优化吸引和留住的成本,您可以根据一周中的某天,甚至一天中的不同时间来查找和更改出勤率。
特许人和网络公司可以根据照片订购各种零售店的品牌质量评估:徽标,标志,海报,横幅等的存在。
2.5。 运输中
通过视频分析实现安全性的另一个示例是识别留在机场或火车站大厅的物品。 可以对视觉进行训练以识别数百个类别的物体:家具,箱包,手提箱,雨伞,各种类型的衣服,瓶子等。 如果您的视频分析系统检测到无主对象并使用Vision识别出该对象,它将向安全服务发送信号。 类似的任务与自动检测公共场所的非标准情况有关:有人生病,在错误的地方吸烟,或者人摔倒在铁轨上等等,等等-视频分析系统的所有这些模式都可以通过API Vision进行识别。
2.6。 工作流程
我们当前正在开发的Vision的另一个有趣的未来应用是对文档的识别并将其自动解析为数据库。 您可以扫描文档并通过安全通道通过API自动发送文件,而不必手动输入(甚至更糟地输入)无休止的序列,编号,签发日期,帐号,银行详细信息,日期和出生地点以及许多其他形式化数据。在系统运行中的云中,这些文档将被识别,解析并返回带有所需格式的数据的响应,以自动输入数据库。 如今,Vision已经知道如何对文件(包括PDF)进行分类-它可以区分护照,SNILS,TIN,出生证,结婚证等。
当然,在所有这些情况下,神经网络都无法开箱即用。 在每种情况下,都会为特定客户建立一个新模型,考虑许多因素,细微差别和要求,选择数据集,并迭代训练测试设置。
3. API工作方案
Vision对用户的“入口门”是REST API。 在入口处,他可以从网络摄像机(RTSP流)拍摄照片,视频文件和广播。
要使用Vision,您需要在Mail.ru Cloud Solutions中
注册并获取访问令牌(client_id + client_secret)。 使用OAuth协议执行用户身份验证。 POST请求正文中的源数据被发送到API。 作为响应,客户端从JSON接收来自API的识别结果,并且响应是结构化的:它包含有关找到的对象及其坐标的信息。

回应范例{ "status":200, "body":{ "objects":[ { "status":0, "name":"file_0" }, { "status":0, "name":"file_2", "persons":[ { "tag":"person9" "coord":[149,60,234,181], "confidence":0.9999, "awesomeness":0.45 }, { "tag":"person10" "coord":[159,70,224,171], "confidence":0.9998, "awesomeness":0.32 } ] } { "status":0, "name":"file_3", "persons":[ { "tag":"person11", "coord":[157,60,232,111], "aliases":["person12", "person13"] "confidence":0.9998, "awesomeness":0.32 } ] }, { "status":0, "name":"file_4", "persons":[ { "tag":"undefined" "coord":[147,50,222,121], "confidence":0.9997, "awesomeness":0.26 } ] } ], "aliases_changed":false }, "htmlencoded":false, "last_modified":0 }
答案中有一个有趣的参数-相片中的脸有条件的“凉爽”,因此我们从序列中选择了最佳的脸部拍摄。 我们训练了神经网络来预测图片在社交网络上出现的可能性。 图像越好,脸部越光滑,威力越大。
视觉API使用诸如空间之类的概念。 这是用于创建不同面集的工具。 空格示例包括黑白名单,访客列表,员工,客户等。对于Vision中的每个令牌,您最多可以创建10个空格,每个空格中最多可以有5万个PersonID,即一个令牌最多可以有50万个。 此外,每个帐户的令牌数量不受限制。
如今,API支持以下检测和识别方法:
- 识别/设置-面孔的定义和识别。 自动将PersonID分配给每个唯一的面孔,返回PersonID和找到的面孔的坐标。
- 删除-从人员数据库中删除特定的人员ID。
- 截断-从PersonID清除整个空间,如果它用作测试并且需要重置生产基础,则很有用。
- 检测-定义对象,场景,车牌,景点,队列等。返回找到的对象的类及其坐标
- 检测文件-检测俄罗斯联邦的特定文件类型(区分护照,身份证,旅馆等)。
另外,我们将很快完成有关OCR的方法,确定性别,年龄和情绪以及解决销售任务(即自动控制商店中的商品展示)的工作。 您可以在此处找到完整的API文档:
https :
//mcs.mail.ru/help/vision-api4.结论
现在,通过公共API,您可以访问照片和视频中的人脸识别,它支持定义各种对象,汽车编号,景点,文档和整个场景。 应用场景-海。 快来测试我们的服务,并为其设置最棘手的任务。 前5,000个交易是免费的。 它可能是您项目的“缺失要素”。
注册并连接到
Vision时,可以立即获得对API的访问。 所有Habra用户-额外交易的促销代码。 输入注册该帐户的个人电子邮件地址!