用深度学习实现人脸肤色的识别搜索

——构建更具包容性的搜索方式


每天有数千万人在Pinterest上搜索想法,无论是晚上做晚餐还是周末尝试新发型。 根据Pinterest的研究,70%的人使用Pinterest来发现并保存他们想要尝试的日常外观和风格。 在保存了超过80亿美容美发的创意之后,我们一直在测试一项新功能,以帮助Pinners更轻松地在搜索中找到相关的美容理念。 今天开始推出的测试版,可以让您通过肤色范围预测美容效果。 在本文中,我们将介绍我们如何构建和实施更具包容性的搜索体验。

每月有超过2亿人使用Pinterest。 我们的产品反映了全球各地人们的兴趣和品味,有超过1000亿个想法(ideas)可供探索。 但是,找到最相关的结果并不容易。 Pinterest上的大部分查询都少于三个字,这是一个有趣的服务挑战。 此外,我们目前的排名算法很大程度上受到大多数人随着时间的推移而产生的影响。 这意味着一些Pinners必须更加努力地找到他们想要的东西。

任何搜索工程师都知道如何让体验无缝且易于使用,让用户尽可能少地重新查询。 我们从Pinners那里听说,在寻找发型和美容想法时,他们不可能总是找到他们想要的东西,所以我们想要从肤色范围开始解决这个问题。 肤色范围实验可让您通过肤色范围自定义您的搜索结果。 我们从四个调色板开始,每个代表一系列肤色。 随着我们的技术不断改进,我们从Pinners收集更多反馈,我们计划将范围扩大至更多肤色。

深度学习

检测图像中的肤色是一个具有挑战性的问题,因为它很大程度上取决于照明,阴影,脸部有多突出,模糊以及其他因素。 根据科学肤色调色板,在Pin图像中检测肤色的最准确方法是在每个Pin图像上贴上人的标签。 但拥有数十亿独特的图像,每天都创造出更多,这是一种昂贵的方法,难以扩展。

相反,我们使用规模化工作的方法 - 机器学习。 这并不总是完美的,但Pinners的反馈迄今为止一直令人鼓舞。

为了快速解决这个问题,我们使用了ModiFace的一个第三方面部AI(Face AI)库,该公司专门从事美容应用的增强现实和机器学习。 在深度神经网络的帮助下,ModiFace为肤色检测产生了连续的算法。 为了改进这种算法,我们经历了几次迭代,尤其是对于光线不足和突出阴影的图像。 例如,在初始模型中,下面的图像被检测为深色肤色,因为图像中的光照和阴影对于机器学习算法难以获取。

来源: https://www.pinterest.com/pin/56083957844390660/

我们尝试生成更多训练数据以纠正机器学习算法的一种方法是获取结果并通过我们的人体评估平台Sofia。

还有一些其他因素需要考虑。 例如,并非每个Pin都包含一张脸,所以我们会根据Pin的类别进行一些初步过滤。 我们通过在多个工作节点上运行Spark job来分发回填过程,同时小心不要一次向Amazon S3发送过多的流量。 为了确保回填运行速度相对较快,我们使用较小的图像大小来加速肤色检测算法,即使算法本身通常与大小无关。 速度和准确性之间有明确的折衷,我们将继续改进。

随着新Pins添加到系统中,我们逐渐在这些新Pins上运行肤色检测算法,因此我们将继续增加对肤色数据的覆盖范围并改进结果。

当我们在每个图像上运行肤色检测算法时,我们将RGB颜色输出转换为Lab色彩空间 (Lab color space)。 该色彩空间具有用于“亮度”的轴线L和用于色彩分量绿色 - 红色,蓝色 - 黄色的两个轴线a和b。 肤色通常落入ab颜色平面的特定子空间,我们使用L坐标来选择不同的肤色,从较浅的肤色(high L)到较暗的肤色(lower L)。 由于Pinterest上的许多图像都是具有良好照明的高质量照片,因此我们使用具有2度可视角度和D65光源(日光)的CIE-L * ab空间。

一个简便的Pin 解释Lab色彩空间!

提供肤色范围

我们用之前为配方过滤器(recipe filters)所做的工作来利用我们的大部分服务和日志记录逻辑实现肤色范围,从而让Pinners搜索符合其口味偏好的方案。

肤色的初始版本根据肤色暗度或亮度使用四个范围过滤内容,每个范围都有一定量的重叠。 在前端,将肤色范围对用户显示为象限,以便清楚每个调色板实际上包含一系列肤色。 为了确保Pinners的良好体验,目前仅针对常见头发和美容查询的预定列表显示肤色范围。

查询重写

Pinterest不仅仅是寻找鼓舞人心的图像(一般是运动型头发和美容创意的人的图像)。 Pinners希望找到可操作的内容,比如美容产品和教程(我们对镜头结果 Lens results采取类似的方法)。 为了使我们的结果更具可操作性,我们使用查询重写和理解框架将不同类型的Pins与适当的肤色混合到结果中。

我们还会重写查询以确保每个特定肤色范围都有更具吸引力的结果。 如果用户搜索“化妆”并选择较暗的肤色范围,那告诉我们他们正在寻找深肤色的化妆想法,并且使我们能够改进我们的搜索排名逻辑以更好地满足他们的期望。

隐私问题

Pinners知道我们尊重他们的隐私是很重要的。 这就是为什么如果你点击肤色范围,我们不会存储这些信息或者用它来为你建立一个配置文件。 这意味着您每次搜索时都需要点击肤色范围。 我们也不会使用这些信息来定位广告。 我们不试图预测用户的个人信息,例如种族。

未来的工作

一旦这个beta测试推广到所有Pinners,我们未来的工作通常将重点放在提高结果的准确性并将体验带入更多平台。 我们将尝试新的查询重写和混合可操作内容的方法,并希望改进我们的搜索排名模型,以便更好地考虑所选肤色。 为了使新的肤色检测算法更容易实验,我们必须做一些后端改进,以便我们能够给多个检测到的肤色建立索引并更轻松地运行A / B实验。

最后,肤色只是构建更具包容性的搜索的开始。 我们希望通过提供更多缩小搜索范围的方法来帮助Pinners找到更多个性化的结果。

我们一直致力于改进我们的系统,为Pinners提供更加个性化的搜索体验。 如果您喜欢这样的搜索问题,请加入我们的团队!


作者:Laksh Bhasin
本文为个人学习及研究之目的自行翻译发布,如发现侵犯版权,请与我联系处理。

你可能感兴趣的:(用深度学习实现人脸肤色的识别搜索)