“第一印象很重要。”

虽然上述说法适用于生活的很多方面真实的,它适用于电子商务平台,以及。

无论是口音椅子设计在曼哈顿,纽约或风格面临欧扎克,阿肯色州的一个传统农舍的郁郁葱葱的绿色后院天井的双悬挂吊床的新现代主义建筑的公寓 - 直接从产品的概念到其造型其制造和最终其销售 - 的一个问题,在整个过程中仍然常见的几乎所有类型的产品 -它会属于?

我们在Wayfair帮助消费者有信心的项目将融入自己的家园努力。我们的做法有一部分涉及不断创新我们的选择对我们产品的最佳表征的过程,这个过程被称为铅图像选择因为我们希望我们的观众他们想要购买的产品的最好表达对象,这样做的一个非常简单的方法是预测每幅图像,如果它是作为“值得”铅图像。通过缔结同胞数据科学家不是显示图像进行该从正面角度拍摄的产品的图像产生更高的点击率(CTR)的研究背部该产品。如果能够大规模识别拍摄角度,跨越数以百万计在我们的目录的项目,因此对于识别候选铅的图像非常重要的。

铅图像选择是很常见的电子商务的平台,这些天从产品的三维模型,而不是实际的产品照片创建使用的图片供应商。这些3D模型是从种子图像这是在设计过程中由艺术家创作依次创建。所以,了解拍摄角度也有助于我们确定我们是否能够建立更好的3D模型的产品,这也有助于我们的客户得到产品的一个更好的感觉,让他们觉得他们的购买信心。具有能够产生很大的3D模型的一个重要组分是具有不够的角度,以使得整个SKU覆盖种子的图片。检查是否正在通过覆盖一组样本图像的足够角度的过程是冗长的苦心和手册。与商业逻辑层(如下所示)沿着镜头角度预测具有用于视觉审批过程自动化程度的提高。

什么是拍摄角度?

简单地说,拍摄角度是产品的表面和(虚拟)相机拍摄该图像之间的角度。换句话说,它是一个产品图像中的面的角度。

对于拍摄角度预测建模方法

虽然有相对同质的数据集可用于角度估计几个简单的计算机视觉方法 - 像姿态估计对于人类来说,预测角度为多元化数据集等家具是相当棘手,需要深度学习与计算机视觉一起。

镜头角是浮动值

然而,虽然深学习模式擅长的分类,即从讲狗猫或橙色的苹果,角度是连续QUAntity。

此外,从背面一个讲沙发的正视图是比较困难不是告诉,因为特征的相似性,从狗猫。我们还必须留意的是将进入质量的努力保证,这将是非常乏味的有一个人在最回路设置为QA的回归模型,因为它需要一个人的注释,以标记粒状值角度。我们目前的优势与下方的纯回归与分类方法的优缺点比较如下。

建模方法的比较:回归VS分类

评价标准 回归:连续角度值

“信息化”

分类:离散正区角度值

“实际的”

评分理由
QA努力 人类可以相当容易地解释离散角区

例如,标记的图像作为“前”更容易比用40标记的图像识别°

建模工作 分类需要较少的数据点
性能 据观察,预测具有较低的绝对误差训练比回归时的分类
兼容性 角⇔区 没有反向映射

区⇏角

从更多移动到较少的颗粒结构的信息丢失
总体 分类是与整体更容易的工作

但是,回归提供了在性能和兼容性方面具有非常明显的优势

下面的混合方法:分类+回归

鉴于两件纯分类和纯粹的回归方法的局限性,我们决定方法的混合方法结合起来。

在我们进入讨论如何创建一个混合网络,如何创建一个过程,保证了模型的质量最优它要解决的重要。为了这一天,深度学习模型是对人类注释的数据依赖。看似不同的人工注释中的认知水平,我们如何创建一个包含角度的标签,其是令人愉快的数据集如果不是全部的话,至少大部分的注释吗?

生成标签QA - 人类感知和旋转的物体的研究

由于QA是更容易标签,我们的目标是360°连续的角度划分成区,以形成“角度类”。要做到这一点,我们进行了初步调查显示,认为有8个角区:到处顺时针时尚圈,我们得到前,前右,右,后,右,后,后左,左,正投剩下。但是,我们如何映射角度的区域?换句话说,我们如何绘制各种角度区域之间的界限?在什么角度不“右”成为“前 - 右”?

确定角缩放之间的边界这是公平的假设,不同的人会有关于“前” -ness或“后退”的图像-ness不同的意见。例如,下面提供的图像,什么人1可以告诉“前”可能是“前 - 右”的人2.所以生成标签为我们的训练数据中,我们合成产生100个或参考图像用于使用3DSMAX所确定的8个区域。在此之后,我们提供10,000张,以人工注释,并要求他们选择什么角度区最适合的图像。为了避免偏见,注释者没有提供确切的程度值。每个图像是由3个注释标记。如果某个值获得2张或更多的选票,我们被分配了标签该值。如果某个图像囊括未达成一致,我们忽视了它,因为只有形成的数据集的6.3%,这样的异常值。

投票并采取最佳的平均3

在此之后,我们收集了所有的标签和他们相比于与图像相关的角度的实际数值。生成角区标签的热图对角的实际数值后,角区之间的边界出现了。例如,虽然从0°要顺时针360°,大约15°的“前”开始显示为“前 - 右”。

获得使用热图拍摄角度的界限

人类感知的研究导致了以下拍摄角度区域图。

镜头角区图表

区映射的详细信息代表性的图像沿角区所示,展示与感知旋转如何变化。

占不同的几何形状

不同的几何形状

射击角度标签是不是一个放之四海而皆准的所有方法。有各种产品的几何形状的巨大差异。有些产品在本质上看似不对称的,像椅子和床,意思是,他们有一定的正面。其他的,像墙艺术或面积地毯,具有平面形状,还有一些,如表,是对称的,即正面和背面的外观几乎相同。

因此,我们根据他们的几何形状分为以下类别分组的各种产品类别:

  • 3D不对称:具有一定的“前”,例如,椅子,沙发,床对象等
  • 3D对称:看起来从“前”和“返回”类似,例如,桌子,台子等对象
  • 2D:Objects的在结构平面的,例如,艺术墙,地毯,窗帘,相框等

Note: We can’t define a shot angle zone chart for Round/Tripod/Triangular objects or objects that are symmetrical in 2 or more dimensions such that they look similar from all or many directions—in other words, objects for which one cannot define a “Front” or “Back” or “Left” or “Right” cannot have a zone chart.

创建“混合”深度学习模式

自2012年以来,一些深学习模式已经被引入到数据科学社区。我们开始尝试VGG16,因为它是最容易理解和修改以适合我们的目的。

桥接分类和回归

我们实施的混合方法分为两步:

  • 前处理(输入)- 我们分配一个数字(或浮点)值,即规范角度,每一个区。典型角度是简单地通过一个区所覆盖的范围的中点。例如,“前 - 右”区覆盖从15°至75°角。所以,对于这个区域中的正则角为45°。对于所有区域规范的角度列在上面的“区域映射”表。For each training image, we simply replace the zone tags – i.e. F, FR, R, BR, B, BL, L, FL – by the canonical angles corresponding to the zones – i.e. 0°, 45°, 90°, 135°, 180°, 225°, 270°, 315°.
  • 后期处理(输出)- 一旦该模型预测的角度(浮点值),那么,我们根据输出落入范围指派一个区域的标签。这样,我们的回归模型的结果转换的东西,可以用于QA(例如,如果模型输出52°,我们区“前 - 右”分配给它,因为它处于范围15° -75°)。

习惯损失函数 -计算“通知”损失

每一个成功的深度学习模式的背后,还有一个同样简单的损失函数。什么损失函数是一个深度学习模型是喜欢什么老师是学生。我们的模型需要学习圆的概念,这意味着,它需要学习两个0°和360°是相同的。

从理论上讲,在本领域中可用的几个版本圆形的损失。我们定义使用均方误差(MSE)或差异平方的自定义损失函数如下:

损耗= MSE(COS标签)+ MSE(罪标签)=(COSθ- 预测COS)2+(罪过θ- 预测罪)2

我们使用MSE,因为它是一个去到的概念定义为基于回归模型损失函数。换句话说,MSE处理我们的混合模型的回归部分。该θ以上在本质上是离散的,如在上述前处理步骤进行说明。这使得该模型的“分类”的性质。

评估培训期间模型性能

当涉及到判断我们的模型中的表现,我们计算区级准确性。

在这里,我们检查模型兑创造了人类标注的数据使用性能最佳的3分析前面提到的。我们的模型预测的数值(浮点)的图像的角度的值。我们认为预测的角度(用θ”表示)是正确的,只有当它在于在注释过程中确定正确的区域。

为了计算精度,我们需要预测的角度。在任何时间点上,我们可以检索预测的角度(θ”)由下列关系式:
θ” = arctan2(预测罪,预测余弦)

一旦我们有我们的θ”,我们简单地检查哪些区域该θ”属于与人类标志着实际区域比较这预测区。我们重复我们的验证数据集这一步对所有图像,并计算平均区域精度(%)通过这个简单的关系:

平均。区精度=(正确预测/数合计预测数)* 100

对于数学书呆子

这里需要注意的一个有趣的数学的事情是,当模特开始在其训练阶段,即作出正确的预测时的预测开始越来越接近实际值,或角θ”实际角度θ,则我们的自定义损失函数退化为:

损失= 4 *罪2((θ-θ”)/ 2

应用小角度近似,我们得到

损失=(θ-θ”)2≈MSE(θ”

这可能会提高的,为什么不训练与MSE定义的损失函数模型中的问题(θ”)本身来代替MSE(COS的标签)+ MSE(罪标签)。我们没有严格的比较性能,但最初的实验中,当我们使用MSE训练中透露了一个非常慢的收敛(θ”)作为损失函数。也许这个问题可以通过让更多的实验来回答。但对于时间,我们坚持用三角比定义的损失函数。

模型体系结构

模型架构

我们创建了一个准VGG网络预测,需要3所输入的角度的数值:图像带有拍摄角的正弦和余弦值一起。

培训模式与合成数据

理想情况下,这将是伟大的我们的角度预测模型,了解产品的所有可能的意见。这被重复的所有定义的区域来教育我们的模型中的“前”区能看怎么样给它足够的样本和相同的过程。同样,在理想情况下,上述情况,我们正在寻找有许多产品标记为水平旋转的每一度的图像数据集的逻辑如下。然而,在现实世界中,很少有数据集将提供家具等产品的粒度视图。

因此,我们把合成数据。后面有使用合成数据的三个重要原因:

  • 我们自主研发的合成数据生成过程产生的图像是相当接近我们从供应商处获得。因此,服用性能的下降是由于机会域差距较低的模型将从类似于它会推断和生产过程中的工作学习图像
  • 它可以让我们训练用的图像模型颗粒状角度信息,而不是教育的培养模式,只有8数字角度值,我们现在可以训练有完整的360°覆盖模型。
  • 它在现实世界的图像(即,最图像属于额叶区)解决数据不平衡:与不平衡数据训练的模型削弱的表现。与具有广大的“前”图像数据集训练的模型会导致像,“后退”或“左”的其他区域的表现不佳。我们需要一个模型,从各个可能的角度进行均匀良好的图像。尽管数据增强可用于寻求平衡,它不会提供足够的差异。

创建三维模型合成数据

我们利用三维模型从Wayfair的3D模型库和3DSMAX的椅子和沙发打造训练图像的数据集。对于每个3D模型,我们产生100次,即100个图像,与粒状角度信息。以下是该数据集的快照:

生成合成数据 生成合成数据

创建环境图像

该过程如上所述生成的轮廓图片或产品与白色背景图片。对于一个典型的家庭环境创造的产品图像或环境图片,我们删除轮廓图像的白色背景和使用环境进行更换。

简单的说,环境图像=剪影图像 - 白色背景+随机环境

生成合成环境结果

我们对现实世界的轮廓图像2套产品类别进行推理

  1. 椅子和沙发(520000个图像):我们测试了模型34个不同类别的椅子和沙发
  2. 床(97000个图像):我们测试的模型与12个不同类别的床

这里是我们的发现:

  • 我们衡量一个区级精度 - 我们认为该模型是正确的预测只有当预测的角度在于在最佳的3人注释过程确定正确的区域
  • 对于综合精度椅子和沙发被认为是75%,并且根据本刊物由报道这是相当类似,几乎按面值与国家的最先进的精度这里
  • 我们认为66%的精度较低数据集。

上述结果均符合,因为我们创造了射门的角度区域图和定义使用仅从椅子和沙发的图片我们的预期。应用对性能不佳的床铺结果相同的定义。这无疑提供了信用的某种程度我们前面提出的产品具有不同的几何形状不同的看法的理论。例如,它可能发生,而15°-75之间的“前 - 右”区椅子谎言°,床位同样可能是一个有点不同。

此外,桥接域间隙是棘手的。虽然我们合成图像创建过程中遵循的过程中帮助我们创建一个训练数据集,非常酷似被厂商使用的图像,从而产生了强烈的基准模型,它不是万无一失。此外,寻址域间隙是与收益递减的过程。

混淆矩阵(A)的椅子和沙发 混淆矩阵(B)床

未来的工作

我们从来没有做过。以下是确定的领域,我们可以测试我们的模型和工作努力,使一个更全面的算法:

  • 环境图片:更多图片环境训练模型
  • 开展更多的人类感知的研究:找到适合每一类产品的区域定义射门角度区域图和设定。虽然这看起来起初,这个过程有前途的,但是可以通过法律收益递减,尤其是对的,取指较小的收入或比别人更少的产品类别的影响。只有更多的实验将完成整个画面。因此,一个更好的方法可能是小组尽可能多的同类产品寻找尽可能并创建相应的拍摄角度的区域定义。
  • 域缺口管理:使用预处理像合成图像的直方图匹配方法,使他们更接近真实世界的图像,我们从供应商
  • 创建数据集,培训和检查模型对属于其他几何形状,如3D对称和2D产品图片上面定义的性能。

参考

ShapeNet

https://www.shapenet.org/

设计深度卷积神经网络的连续面向对象估计

https://arxiv.org/pdf/1702.01499.pdf

儿童骨龄评估使用Deep卷积神经网络:https://www.researchgate.net/publication/321823302_Pediatric_Bone_Age_Assessment_Using_Deep_Convolutional_Neural_Networks三维姿态回归使用卷积神经网络(马亨德兰等人,2017)

https://arxiv.org/abs/1708.05628

相机姿态回归凭借深厚的学习几何损失函数(Kendall等人,2017年CVPR)

https://www.youtube.com/watch?v=Rp2Znu1ZJVA

https://arxiv.org/abs/1704.00390

快速单镜头检测和姿态估计

https://ieeexplore.ieee.org/document/7785144

使用CAD模型的大的数据集示例性基于部分的2D-3D配向(奥布里等人,2014)

https://www.di.ens.fr/willow/research/seeing3Dchairs/supplementary_material/false_positives_2012/index.html

除了PASCAL - 在野外进行立体物检测基准

http://cvgl.stanford.edu/projects/pascal3d.html

3D模型+学习:解析对象IKEA - 精细姿势估计(JJ林,2013)

http://people.csail.mit.edu/lim/paper/lpt_iccv2013.pdf

三维姿态估计和三维模型检索在野外对象(CVPR 2018)

http://openaccess.thecvf.com/content_cvpr_2018/html/Grabner_3D_Pose_Estimation_CVPR_2018_paper.html

合成视点预测

https://ieeexplore.ieee.org/document/7801548

几何深学习的姿态估计

https://ieeexplore.ieee.org/document/5995327