这是论文《Interactive Sketching of Urban Procedural Models》的解读,主要以解读实现思路为主。
*
使用流程:
根据用户勾画的草图,系统自动生成3D的建筑模型。
a)用户简单勾画建筑物某个组件的轮廓
b)基于深度学习,系统找到匹配预定义的组件集(论文称为Snippet Grammar)
c)用户从匹配到的组件集中挑选合适的组件 (系统转化为Snippet Grammar的形式)
d)系统合成用户的选项(组装Snippet Grammar),生成建筑3D模型
*
基于参数的描述性语言:
论文提出的Snippet Grammar,是基于参数的描述性语言,非常容易转化为机器学习训练所需要的数据形式。按照建筑物的构成划分为Building mass 、Roof 、Window 、Ledge等几类组件集,Snippet Grammar则描述了3D模型所属的组件集及其参数集合。
例如,建筑物3D模型的描述:
Snippet Grammar非常像HTML标签语言,也类似于RDF/RDFS ,资源描述框架(RDF)是用于描述网络资源的W3C标准,比如网页的标题、作者、修改日期、内容以及版权信息。
我们可以把设计的规则转化为Snippet Grammar,然后再转化为图片与Gi作为CNNs的输入数据。
*
实现思路:
1 分类标签
图为分类标签示例
按照建筑物的构成划分为Building mass、Roof、Window、Ledge等几类组件集;
23D模型参数化
每一个建筑物组件3D模型使用Snippet Grammar描述;
3 生成训练数据
每一类组件集参数随机变化形成许多的3D模型;把生成的每一个3D模型对应的图片(草图),及Snippet Grammar保存下来。
4 训练数据处理
共2组训练数据,分别为:
(草图,分类标签),用于判断草图属于哪一个标签(分类问题);
(草图,Snippet Grammar),定义为Gi = { α, τ, η, ρ },用于估计草图的参数组合;
5CNNs训练标签分类模型:
使用(草图,分类标签)作为输入,基于CNNs训练分类模型,建立(草图,分类标签)之间的映射关系。相当于告诉机器哪张图属于建筑物的哪个组件(属于window还是roof等)。
6CNNs训练各个标签下的参数分类模型:
图为building mass的示例
使用(草图,Gi)作为输入,建立某一标签下草图对应的参数之间的映射关系。相当于,告诉机器,在building mass标签(或其他标签)下,这张草图属于那一组参数。
7 应用:
当用户输入新的草图图片时,模型判断属于哪个分类标签,并返回最可能的Gi集合给用户,最后再根据用户选择的Gi对应的Snippet Grammar,生成3D模型。
领取专属 10元无门槛券
私享最新 技术干货