前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >人工智能「 建筑师 」之 由手绘生成3D模型

人工智能「 建筑师 」之 由手绘生成3D模型

作者头像
mixlab
发布于 2018-04-17 07:42:33
发布于 2018-04-17 07:42:33
1.6K00
代码可运行
举报
运行总次数:0
代码可运行

这是论文《 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 模型的描述:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!— 某个Building mass的3D模型 —>
    
<param building_height=20/>
<rule name=“Start”>
   <extrude height=“building_height” />
   <comp>
        <top name=“TopFace” />
        <!- -roof  - - >
        <side name=“Facade” /> 
        <!- - facade - - >
        <bottom name=“Base” />
   </comp>
</rule>
    
    
<!— 某个Roof的3D模型—>

<param roof_slope=50/>
<rule name=“TopFace”>
    <roofGable slope=“roof_slope” />
</rule>

Snippet Grammar 非常像 HTML 标签语言,也类似于 RDF/RDFS ,资源描述框架( RDF )是用于描述网络资源的 W3C 标准,比如网页的标题、作者、修改日期、内容以及版权信息。

我们可以把设计的规则转化为 Snippet Grammar,然后再转化为图片与 Gi 作为 CNNs 的输入数据。

*

实现思路:

1 分类标签

图为分类标签示例

按照建筑物的构成划分为 Building mass、Roof、Window、Ledge 等几类组件集;

2 3D 模型参数化

每一个建筑物组件 3D 模型使用 Snippet Grammar 描述;

3 生成训练数据

每一类组件集参数随机变化形成许多的 3D 模型;把生成的每一个 3D 模型对应的图片(草图),及 Snippet Grammar 保存下来。

4 训练数据处理

共2组训练数据,分别为:

(草图,分类标签),用于判断草图属于哪一个标签(分类问题);

(草图, Snippet Grammar ) ,定义为 Gi = { α, τ, η, ρ } ,用于估计草图的参数组合;

5 CNNs训练标签分类模型:

使用(草图,分类标签) 作为输入,基于 CNNs 训练分类模型,建立(草图,分类标签)之间的映射关系。相当于告诉机器哪张图属于建筑物的哪个组件(属于 window 还是 roof 等)。

6 CNNs训练各个标签下的参数分类模型:

图为building mass的示例

使用(草图,Gi )作为输入,建立某一标签下草图对应的参数之间的映射关系。相当于,告诉机器,在 building mass 标签(或其他标签)下,这张草图属于那一组参数。

7 应用:

当用户输入新的草图图片时,模型判断属于哪个分类标签,并返回最可能的 Gi 集合给用户,最后再根据用户选择的Gi 对应的 Snippet Grammar ,生成 3D 模型。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-01-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 科技Mix设计Lab 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
几个神奇的Web Api,你(可能)不知道~
作为前端er,我们的工作与web是分不开的,随着HTML5的日益壮大,浏览器自带的webapi也随着增多。本篇文章主要选取了几个有趣且有用的webapi进行介绍,分别介绍其用法、用处以及浏览器支持度,同时我也分别为这几个api都做了一个简单的demo(https://github.com/1921622004/webapi) (真的很简单,样式等于没有~)这几个api分别是:
苏南
2020/12/16
5850
几个神奇的Web Api,你(可能)不知道~
未来网站开发必备:14个让你惊艳的JavaScript Web API!
快来免费体验ChatGpt plus版本的,我们出的钱 体验地址:https://chat.waixingyun.cn 可以加入网站底部技术群,一起找bug,另外新版作图神器已上线 https://cube.waixingyun.cn/home
前端小智@大迁世界
2023/07/09
6220
未来网站开发必备:14个让你惊艳的JavaScript Web API!
11 个 CSS 知识搭配 11 个 JS 特性 (实用合集)
这篇文章我会介绍 11 在开发过程中经常遇到的 CSS 相关知识点,以及 11 个有趣亦实用的 JavaScript 特性。
用户1462769
2019/10/16
9180
关于HTML面试题汇总之visibility
一、页面可见性(visibility) 主要提供两个属性,一个事件(都在document对象上): 1. 属性:    1.1.  hidden:获取或设置当前页面的可见性,boolean值;    1.2. visibilityState: 获取当前页面可见性状态,值为hidden、visibility其中一个 2. 事件:visibilityChange:页面可见性发生改变时触发的事件 3. 由于各类浏览器的支持情况不一致,都需要加上私有属性的前缀,如 webkit、moz、ms、o等。在ie9-不支持
sam dragon
2018/01/17
8760
【前端词典】分享 8 个有趣且实用的 API
这些 API 的示例代码我已放在 github 上了,地址:https://github.com/wanqihua/The-dictionary-of-front-end-test
小生方勤
2019/05/31
7930
# 学会这些 Web API 使你的开发效率翻倍
随着浏览器的日益壮大,浏览器自带的功能也随着增多,在 Web 开发过程中,我们经常会使用一些 Web API 增加我们的开发效率。
九旬
2023/10/19
5000
这些不常用的Web API真的有用吗? 别问,问就是有用🈶
本文列举了一些列比较不常见的Web API,内容较多,所以有关兼容性的内容在本文不会出现,大家可以自己去查阅。 以下案例能配动图的我尽量去配了,以免内容枯草乏味,但是如果内容有误,也请大家亲喷或者纠正👌 方法列表 querySelector(元素向下查询,返回一个) querySelectorAll(元素向下查询,返回多个) closest(元素向上查询) dataset(获取元素以"data-"为前缀的属性集合) URLSearchParams(查询参数) hidden(隐藏元素) contentedit
聪明的汤姆
2019/08/23
9340
这些不常用的Web API真的有用吗? 别问,问就是有用🈶
Page Visibility API 教程
但是,这些事件在手机上可能不会触发,页面就直接关闭了。因为手机系统可以将一个进程直接转入后台,然后杀死。
ruanyf
2018/11/22
6680
10个你可能没用过,但很强大的Web API
在本文中,我将介绍 10 个不那么流行的 Web API。不那么流行并不意味着它们没有用处。你可以在项目的各种用例中使用它们。
@超人
2021/05/24
6890
10个你可能没用过,但很强大的Web API
这些Web API真的有用吗?别问,问就是有用
本文列举了一些列比较不常见的Web API,内容较多,所以有关兼容性的内容在本文不会出现,大家可以自己去查阅。以下案例能配动图的我尽量去配了,以免内容枯草乏味,但是如果内容有误,也请大家亲喷或者纠正?
用户1462769
2019/08/26
1.2K0
这些Web API真的有用吗?别问,问就是有用
10个不那么知名但很实用的Web API
在本文中,我将介绍 10 个不那么流行的 Web API。不那么流行并不意味着它们没有用处。你可以在项目的各种用例中使用它们。
深度学习与Python
2020/09/23
6290
10个不那么知名但很实用的Web API
网页全屏模式轻松掌握[局部元素全屏展示]
我第一次对网页全屏模式有概念,是那种网页播放视频的全屏播 放的那种。感觉很强,前几个星期有个需求也是关于全屏模式的,接触之后才知道全屏模式并不神秘,是个很容易掌握的技能…
OBKoro1
2020/10/27
3K0
网页全屏模式轻松掌握[局部元素全屏展示]
掌握这个API,让你的网页展示效果提升10倍
第一反应是用 CSS 设置 position: fixed 加上宽高 100%,但这样并不是真正的全屏,因为浏览器的工具栏还在。
沉浸式趣谈
2025/02/26
1382
掌握这个API,让你的网页展示效果提升10倍
HTML5点击全屏的方法
这个按钮是?我移了好几遍,没有title提示。图形也不具有代表性,一个圈圈意思是?——圈人??是不是啊??不敢点,点了不知道会发生什么,浏览器会不会关掉!!我思想斗争做了很久,终于弱弱地点了一下~~
javascript.shop
2019/09/04
4.8K0
HTML5点击全屏的方法
前端学习(4)~html5详解(二)
在HTML5的规范中,我们可以通过为元素增加 draggable="true" 来设置此元素是否可以进行拖拽操作,其中图片、链接默认是开启拖拽的。
Vincent-yuan
2020/02/23
7430
脑洞大开之采用HTML5+SignalR2.0(.Net)实现原生Web视频
本文介绍了一种基于HTML5和SignalR技术的视频聊天室程序,该程序利用了HTML5的WebRTC技术实现视频的实时传输,利用SignalR技术实现服务端与客户端的通信。同时,文章还列举了一些优化点,如使用压缩算法来减小数据传输量,以及使用分块传输编码来提高传输效率等。
GuZhenYin
2018/01/04
1.1K0
脑洞大开之采用HTML5+SignalR2.0(.Net)实现原生Web视频
【JS】1705- 重学 JavaScript API - Fullscreen API
本文中,我们将探索 Fullscreen API 的概念、使用方法、实际应用、兼容性和优缺点,并提供一些建议和注意事项。让我们一起深入了解吧!
pingan8787
2023/09/01
4600
【JS】1705- 重学 JavaScript API - Fullscreen API
掌握这个API,让你的网页展示效果提升10倍
第一反应是用 CSS 设置 position: fixed 加上宽高 100%,但这样并不是真正的全屏,因为浏览器的工具栏还在。
沉浸式趣谈
2025/02/24
1430
掌握这个API,让你的网页展示效果提升10倍
离开和进入html页面时改变title
离开和进入页面时改变网页标题,最近也才刚刚开始js学习,下面这段代码简单就是说访客如果离开你的网站之后,站点标题会发生变化。原理是使用了HTML5的Page Visibility API 目前页面可见性API有两个属性,一个事件:
qiangzai
2021/12/21
2.1K0
离开和进入html页面时改变title
JS控制全屏,监听退出全屏事件
实现方案 //进入全屏 function requestFullScreen(de) { if(de.requestFullscreen){ //W3C de.requestFullscreen(); }else if (de.mozRequestFullScreen){ //FIREFOX de.mozRequestFullScreen(); }else if (de.webkitRequestFullScreen){
Yiiven
2022/12/15
12K0
推荐阅读
相关推荐
几个神奇的Web Api,你(可能)不知道~
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验