搜索 Unity

用计算机视觉开启智能家居

2021年9月21日 类别 技术 | 12 分 阅读
images illustrating machine learning and computer vision
images illustrating machine learning and computer vision

要训练计算机视觉识别住宅内部装修是一项复杂的任务。训练数据若想具备一定的多样性和准确性,必然需要耗费大量的成本、时间,有时甚至还涉及隐私问题。本文将介绍Unity的合成数据生成工具和服务怎样训练出更为强大的计算机视觉应用、解决开发障碍与难题。

在开发高性能计算机视觉(Computer Vision,简称CV)模型时,最难的难点往往是获取足够多样、标注准确的数据集。而最近兴起的合成数据可以最小化数据获取、注释所需的时间与成本,成为了数据收集问题一种较为可行的解决方案。 

Unity一直在合成数据的推广中起领头作用。我们各行业客户经常求助于Unity专业的合成数据技术,其中一个重要行业便是家装。合成的家装数据可用于智能家居、防火防盗、生活辅助、医疗保健、宠物与婴儿监控、室内设计等各种应用。 

在开发家居应用时,获取真实的标注数据常常会因为隐私问题而受到阻碍。除此之外,数据集在材料、颜色、光照和家具等组成要素上要求有一定的多样性,让问题进一步复杂化。

为了解决这些难题,满足客户需求,我们已在开发用于生成逼真家居环境的工具和3D内容库。我们借助程序化方法在数据集中摆放家具,在诸如镜头位置、家具材料、光照、一天时间、天空和室外环境等组成上添加随机元素,还添加了自定义对象的支持。下图展示了其中四种元素的随机化。

Examples for four of the randomizations included in our synthetic home interiors, while keeping other parameters constant
其他参数不变,四种场景组成的随机化

Home Interiors数据集是我们用工具生成的一个数据样本。这个数据集包含以用途与实例划分的图像(分别标注为家具、装饰、墙壁、天花板和地板),家具皆以2D或3D边框框选。相较于参考数据稀少的训练数据,带有更多标签类型的数据可以拓宽CV的应用范围。

接下来我们来了解几个家居应用案例。Unity在这些案例中帮助客户克服了获取真实数据集的难题。

The four types of ground truth included in the Home Interiors dataset. Top left: 2D bounding boxes, Bottom left: 3D bounding boxes, Top right: semantic segmentation, Bottom right: instance segmentation
Home Interiors数据集所包括的四种参考数据。左上:2D选框,左下:3D选框,右上:用途划分,右下:实例划分

家居自动化

在自动化家居和生活辅助等设备上,计算机视觉有着极大的吸引力。在应用领域,传统的传感器阵列也正转向CV驱动的摄像机,以此让任务的执行更加高效。

一个很好的例子是扫地机器人。扫地机器人自发明以来已近30年,而传统型号的主要缺点之一是无法分辨垃圾和其他物体,并且很难穿梭于障碍物过多的空间里。借助Unity的力量,我们得以针对这些缺点制定解决方案。例如,Unity的物理引擎可以逼真地模拟出带有随机褶皱和折痕的织物,用于训练扫地机器人识别并避开衣物。

Simulating the point of view of a smart vacuum cleaner. Left: 2D bounding boxes, Right: semantic segmentation
智能扫地机器人的视角模拟。左图:2D选框,右图:用途划分

利用合成数据改善CV模型的另一个用例是智能摄像机。智能摄像机的作用是检测房间里是否有人,以便控制和调整照明、气温等因素。这里,Unity的工具同样发挥了重要作用。一个例子是训练模型识别宠物。要想识别宠物,我们需要在居家环境下获取大量不同姿势、动作、毛色等的宠物图像。作为一个游戏引擎,Unity完全可以借助包括骨骼动画、动态模糊等效果生成高度逼真的输出图像。

并且,Unity也可以合成不同位置与视角、透视投影、长宽比、镜头扭曲和其他图像属性(对比度、饱和度等)等符合真实摄像机特征的数据。例如在一个合成环境里,引擎可以轻松模拟夜视摄像机及普通RGB摄像机。此外,合成数据快速迭代的特点也能让两种摄像机间的切换非常轻松。  

Simulating a night vision camera with a fisheye lens. Left: 2D bounding boxes, Right: semantic segmentation
模拟一台带有鱼眼镜头的夜视摄像机。左图:2D选框,右图:用途划分

安全与防盗

CV另一个占据主导地位的领域在于以医疗保健和生活辅助技术改善家庭安全与生活质量。 

比如,为了帮助视力障碍者安全地在屋内行走,CV模型需要全面地了解房屋的布局及物品摆放。模型需要通过检测家具、墙壁、楼梯和门等元素来识别出安全路线,并且需要测量出墙壁及其他障碍物的距离,在用户靠得太近时发出警告。为了解决这个问题,我们采用了多种单层和多层住宅布局,随机化了家具的类型和摆放、门窗的开放程度。除了数据集的多样性之外,这种复杂程度需要多种类型的基础事实来训练,包括分割、边界框和深度图,这使得编制高度多样化和准确标记的真实数据集更加困难。

同样的家居场景也可用于训练CV模型检测人类,我们可在模拟中加入3D人体模型,并随机化其姿势、身高、身材、头发、皮肤等。这些CV模型可用于监测人的体态,并检测异常的步态和灵巧度等。如果住户在特殊位置或卧榻以外的地方跌倒或长时间不动,则系统也可以向应急服务机构发出警报。同样地,CV模型还能学习服药的肢体和手臂动作,在住户忘记服药是发出提醒。

AI recognizing 2 people and objects in a room
居家环境内的3D人体模型。左图:2D选框,右图:监测对象

室内设计

近来,机器学习技术赋予了计算机一定的艺术创作能力,室内设计便是这样一个例子。一些在线家具经销商已经在利用智能手机摄像头于消费者家中展示产品。经过训练的CV模型可以识别和测量室内表面(包括地板、桌子、墙壁)的范围和面积,以在空间内准确地展示产品模型。借助CV强化AR的例子还有很多。

比如,我们曾使用用户上传的图片来训练CV模型检测室内的装修材料和设计风格。此类模型可用于在线推荐系统,帮助用户快速找到契合自家装修的产品。Unity模拟真实物理的渲染引擎允许我们渲染出多种逼真的装修材料(如各种木材和胶合板)。并且,前边提到的随机化工具还能在每张生成的图像中轻松修改材料的各种参数。 

CV模型还可以检测室内家具的总体形状和尺寸,据此来推荐家具,或更准确地展示类似尺寸的家具。类似地,我们也能制作一个配色工具,为家具配置各种颜色,如果消费者决定要为装修风格重新定调,可借助工具来挑选想要的颜色。

家具、一天时间和天空盒的随机化

前景广阔

本文中讨论的CV应用只是沧海一粟,合成数据完全可以在更广的领域内进一步释放CV模型的潜力。除了文中的例子外,其它一些例子还包括老建筑翻新(绘制精确的内部结构图)、位置识别及合成环境的程序化生成。合成数据集具有极大的定制自由,其应用范围只有你想不到。本文的主题是家居装修,但程序化的合成数据工具完全可以生成大量带有随机化要素的环境。 

如果你想为自己的室内CV应用定制一套合成数据集,请联系我们的专家团队洽谈。如果你的应用不局限于室内,我们有一系列的定制选项可以满足特殊的环境和标注需求。请在此处下载Home Interiors数据集,在实例中了解合成数据集。

2021年9月21日 类别 技术 | 12 分 阅读