最后
由于文案过于长,在此就不一一介绍了,这份Java后端架构进阶笔记内容包括:Java集合,JVM、Java并发、微服务、SpringNetty与 RPC 、网络、日志 、Zookeeper 、Kafka 、RabbitMQ 、Hbase 、MongoDB、Cassandra 、Java基础、负载均衡、数据库、一致性算法、Java算法、数据结构、分布式缓存等等知识详解。
本知识体系适合于所有Java程序员学习,关于以上目录中的知识点都有详细的讲解及介绍,掌握该知识点的所有内容对你会有一个质的提升,其中也总结了很多面试过程中遇到的题目以及有对应的视频解析总结。
沙发拔地而起感受一下?
当然,目前要是想把家里重新设计装修一番,劳心劳力是免不了的。
如果想只动动手指,恐怕还得到数字世界里才能实现。
幻影移形!在数字世界中「白嫖」设计
而这个故事还得从小编前段时间给自己的小窝设计装修说起。
虽然看起来距离日常生活有点远,但搞起家装来,是真的头疼。
颜色、大小、风格,各种组合全凭想象力。
不想燃烧脑细胞也可以,只需发动「钞」能力,全屋定制直接拉满。
不过现在XR这么火,那是不是可以在里面用AR、VR啥的来搞设计?
等等,AR、家具、设计,这不就是宜家推出的「IKEA Place」么!
没错,早在2017年,随着苹果IOS 11的推出,宜家就利用当时最新的ARKit技术让用户可以实时地在家里看到超过2000种家具产品。
基本上解决了在简单的环境中看一看「这个家具能不能放得下」的问题。
然而,当环境稍稍变得复杂,或者说仅仅是同时放置两个家具,宜家就搞不明白这其中的位置逻辑了。
当然,这个可以通过反复地手动调整解决。But,你有没有想过,或许这个产品本身就是一个「伪需求」?
比如说你想设计一下自己新买的房子,这时候能参考的基本只有一张户型图。
这简直太难了,不如去实地考察一下。
嗯,空无一物,不如借助AR摆放一波家具看看?
恐怕除了要把自己的手累断了之外,想看清楚最终的效果,得「穿模」到墙里面去才行。
那要这AR又有何用?
不必担心,这时候就要把思路打开。
既然家具可以建模,那家是不是也可以建个模,然后把家具的模型统统放进家的模型里去呢?
这时候就要祭出一个神秘工具:「Object Drawer」。
这个Object Drawer除了建模物品,还能建模房间,堪称是一站式解决方案。
在输入户型图之后,Object Drawer会对结构、符号、文字进行识别并计算房间的尺寸,然后对整体进行向量化,最后就可以生成整个房间的3D模型啦。
而且这波操作完全不需要自己动手,淘宝已经准备好了200万套真实的户型供你选择。
有了自己家的模型,就可以把淘宝里那些地板、壁纸、桌子、椅子等商品的3D模型们放进去了。
不满意随便改,动动手指就能搞定家装设计,而且最重要的是:免费。
如果不想自己操刀,或者想看看设计师怎么说,淘宝也准备了800万套全屋设计可以参考。
而对于商家来说,Object Drawer也早就已经用在商品的主图上了。
是不是看着还挺新鲜?
正巧,在12月26-28日举办的第十一届国际图象图形学学术会议上,阿里巴巴大淘宝技术部正式发布了Object Drawer。它将NeRF的推理速度提升了10000倍,训练速度提升10倍以上。
为此,阿里巴巴资深算法专家、大淘宝技术XR Team算法负责人赵斌强(乐田)受邀在大会发表题为「From Physical World to Digital World: 3D Techniques in Digital Industry Transformation」的主旨演讲。
当然,最重要的一点是,Object Drawer会面向学术界和普通用户开放,供广大开发者及科研人员交流体验。
被装修折磨得死去活来的小编决定趁机提前试用一波。
▐ 首先是数据的准备
Object Drawer建模所用的视频需要采用绕物体360度的环绕方式进行拍摄,同时标注3张地面的分割mask。
视频拍摄
标注地面
为了方便对地面进行标注,Object Drawer在Github上提供了相应的标注工具。
项目地址:https://github.com/3D-FRONT-FUTURE/ObjectDrawer-ToolBox
▐ 接下来是视频的提交
当完成了视频、标注数据的准备后,需要登录Object Drawer网站提交视频进行建模。
点击网站右上角login进行登录,然后点击右上角的图像,在弹出的tab页面中选择Video Upload,等待跳转到视频提交页面后填写视频名称,并上传视频、标注,同意Object Drawer使用上传视频的服务协议,最后点击提交按钮;至此就已完成视频提交操作,需要等待一段时间,系统将会自动完成视频建模过程。
试用接口:https://objectdrawer.alibaba.com/index.html(注意仔细阅读拍摄要求哦)
▐ 最后,就可以得到渲染好模型啦
你可能又会问了,Object Drawer这个应用也太窄了吧。
思路要打开!
「俗话」说得好,万物皆可虚拟。
既然都是虚拟的,那不都得建个模先?
比如说你想在数字世界卖现实中的商品,结果最后就整了几个马赛克方块,真当是卖NFT呢?
然而,对于成千上万的商品,全靠人工建模不得干到猴年马月去了。
但如果连模型都没有,又何来的数字世界呢?
瞧一瞧看一看!新的SOTA出炉了
说到建模,时间得先回到2020年,三维重建领域来了一个后起之秀——NeRF神经渲染技术。
而图形学和计算机视觉核心之一是重建并渲染真实世界的人和物。
传统三维重建如Photogrammetry工具大致流程为:稀疏点云重建->稠密点云重建->网格重建->纹理贴图->材质贴图。经验表明,以Photogrammetry为基础的建模工具强依赖于拍摄环境;对弱纹理和平滑区域的表面还原较差;通常依赖人工修复模型网格与纹理并赋予材质。
NeRF提出用神经辐射场来表达场景,跳过显式三维重建,直接通过神经渲染实现场景的free view synthesis。
NeRF网络作为一个函数,输入为5D坐标包括空间中点坐标x=(x,y,z)以及相机视角方向d=(θ,φ),输出为c=(r,g,b)颜色以及密度σ,写作:,物体的体素密度只和空间坐标x有关,输出颜色与空间坐标及视角方向相关。
由于NeRF技术的渲染过程完全可微,可以端到端进行训练,这使得NeRF可以准确还原场景各个视角的渲染效果。
从三维重建而非纯视角生成的角度来看,NeRF有几个较为明显的不足:
-
训练及推理速度较慢,1张1080P图推理时间超过50s,一个物体的建模时间通常需要2天以上;
-
渲染图片清晰度不足,且无法恢复细节纹理;
-
需要大量多视角图片才能实现较好的view interpolation;
-
隐式表达无法直接导入图形学工具,不支持显式使用,例如CAD场景搭配设计;
-
只能还原拍摄场景的光照,无法支持环境光照变化的场景应用。
这些问题制约了规模化产业应用,如下一代VR/AR,3D设计,3D浏览等。
2021年,阿里巴巴大淘宝技术部,发布了Object Drawer,将NeRF的推理速度提升了10000倍,训练速度提升10倍以上。
同时,Object Drawer添加了更多的高频纹理信息将建模还原度进一步提升,并
提出光照迁移辅助方案,使得NeRF重建的模型可以显式地应用于日常场景搭配设计,从而使得神经渲染技术达到实用标准。
推理速度和训练速度
要输出1920*1080分辨率的图像,NeRF的推理速度为50s/帧,而实用的要求要达30帧/s以上,差距为1500倍。
Object Drawer从场景表示方法、有效像素、有效体素等多个角度进行冗余计算的优化,在1920*1080分辨率下,推理速度可以达到240FPS(V100 GPU)以上,相比NeRF实现了10000倍的推理速度提升。
Object Drawer在手机上也可达到30FPS,实现了实时的高清交互。
与此同时,模型的训练时间也压缩至4小时,模型package平均小于20M。
视角外插
神经渲染技术在应用时,视角外插是不可忽视的问题。
由于拍摄的图片无法覆盖所有视角,当输出视角发生变化或是拍摄视角有一定差异时,需要神经渲染有很好的泛化能力,支持新视角图片的生成。
Object Drawer利用随机视角增强与平均视角embedding技术,改进了视角外插效果。
NeRF (左)与Object Drawer (右)在Novel View Extrapolation下的表现
实验表明,随着视角差异的增大,NeRF等模型的PSNR都出现了大幅的下降,而Object Drawer的PSNR基本保持不变。
三维模型表示
三维模型,需要能够支持各种三维应用,包括三维布局、渲染出图、三维互动等等。NeRF只能支持渲染功能,使得其应用受到很大的限制。
Object Drawer给物体的隐式表达配对一个粗糙的显式网格模型。显式网格模型可直接提取于NeRF或其他高效网格重建算法。如图, 一方面,三维粗模可直接导入图形学工具,用于三维场景设计等现实应用。
另一方面,神经渲染可以生成物体在任意视角下的高清渲染图。当然,这种物理和神经渲染结合的思路暂时不支持重建物体的物理仿真变化,如网格编辑变形等。
光照迁移
为了渲染出反射,阴影等物理现象作用于三维粗模的光照效果,Object Drawer提出了光照迁移技术, 可以在神经渲染生成的物体视角图上呈现出逼真光照效果。
建模场景图、建模结果图和三维场景光照迁移结果图
在实验数据的结果表明,该技术能够适应各种复杂光源条件,完成对细节阴影效果的迁移,视觉效果之惊艳,在3D-FRONT测试数据集平均PSNR达到30.17。
纹理细节还原
对于商品三维模型来说,纹理细节的还原度非常重要。
目前的NeRF系列研究虽然可以以较高的精度还原物体的外观,但是无法恢复纹理细节,如布料线条。
Object Drawer优化了模型表达能力,在大幅度加速模型训练的同时,第一次做到了高清精细纹理的还原,具体的效果如下图所示。
最后
为什么我不完全主张自学?
①平台上的大牛基本上都有很多年的工作经验了,你有没有想过之前行业的门槛是什么样的,现在行业门槛是什么样的?以前企业对于程序员能力要求没有这么高,甚至十多年前你只要会写个“Hello World”,你都可以入门这个行业,所以以前要入门是完全可以入门的。
②现在也有一些优秀的年轻大牛,他们或许也是自学成才,但是他们一定是具备优秀的学习能力,优秀的自我管理能力(时间管理,静心坚持等方面)以及善于发现问题并总结问题。
如果说你认为你的目标十分明确,能做到第②点所说的几个点,以目前的市场来看,你才真正的适合去自学。
除此之外,对于绝大部分人来说,报班一定是最好的一种快速成长的方式。但是有个问题,现在市场上的培训机构质量参差不齐,如果你没有找准一个好的培训班,完全是浪费精力,时间以及金钱,这个需要自己去甄别选择。
我个人建议线上比线下的性价比更高,线下培训价格基本上没2W是下不来的,线上教育现在比较成熟了,此次疫情期间,学生基本上都感受过线上的学习模式。相比线下而言,线上的优势以我的了解主要是以下几个方面:
①价格:线上的价格基本上是线下的一半;
②老师:相对而言线上教育的师资力量比线下更强大也更加丰富,资源更好协调;
③时间:学习时间相对而言更自由,不用裸辞学习,适合边学边工作,降低生活压力;
④课程:从课程内容来说,确实要比线下讲的更加深入。
应该学哪些技术才能达到企业的要求?(下图总结)
受过线上的学习模式。相比线下而言,线上的优势以我的了解主要是以下几个方面:
①价格:线上的价格基本上是线下的一半;
②老师:相对而言线上教育的师资力量比线下更强大也更加丰富,资源更好协调;
③时间:学习时间相对而言更自由,不用裸辞学习,适合边学边工作,降低生活压力;
④课程:从课程内容来说,确实要比线下讲的更加深入。
应该学哪些技术才能达到企业的要求?(下图总结)
[外链图片转存中…(img-I8s3T9jU-1715530441470)]
[外链图片转存中…(img-4pWBMTjM-1715530441470)]