开卖了

我们和客户合作研发的安防类多目全景网络摄像机今年上半年已经完成产品化,开卖了。

目前的产品包括4目180度,5目半球,8目半球等,目前最高分辨率为2400W像素,30fps,很快将会支持到4000W像素。

产品支持多种全景类型(沉浸式半球/各种投影类型的条带展开),浏览时多码流实时切换,对PC端硬件要求低,最低支持到OpenGL 2.1.

欲知更多细节,欢迎来电。

升维成功,有3D全景了

最近出门,在深圳的旅馆里埋头干了两天,算法终于可以支持3D全景了,昨晚十一点多用CardBoard看到自己第一个3D全景视频,很幸福。

得益于初期花费大量精力建立起来的良好架构,加入3D全景的过程还算轻松,另外由于近景标定技术的支持,我们可以对大半径的3D全景相机做高精度标定,达到理论最优效果。早期投入的时间和精力还算没有白费。

3D全景技术目前大致有两类,一类基于传统的拼接,双目各自拼一个全景球;一类基于双目的三维重建。我们目前是第一类技术。

第一类技术门槛较低,是目前市面上能见到的主要方式。这类技术的缺陷主要是拼缝难以克服,另外理论上无法实现真正的3D全景,在抬头低头时没有深度感。具体的体验能达到怎么样的程度,也是我们接下来要重点测试的。

采用第二类技术的典型是google jump, 目前据说jump仍然要消耗巨量的计算力来完成这种重建,直播更是不可能。它的好处在于可以实现真正的3D效果,而且无缝。更快的算法应该并非不可能,而且很可能已经有公司在致力于这件事情。

话说最近VR Porn很火,谁看谁知道。

演示视频之一 5路高清全景

近来发现过去发在youku上的几个demo视频误导了很多人,认为这就是我们现在的拼接技术。实际上这几个全景视频是很久前做的,跟我们目前的拼接质量和性能完全不在一个量级。但受制于手上缺乏全景设备,我们始终在demo更新上很不给力。今天我们先更新出一个,这是用一台有硬件缺陷的设备完成的,但拼接效果除掉少量瑕疵外还可以接受。

5路2048*1536半球形拼接,在12年的i5本上可以跑到100fps, 去除解码开销后cpu占用低于百分之十。实时拼接算法目前可以移植到移动平台上。

拼接效果背后是由优秀的全景相机标定算法支撑的。我们目前的量产标定算法可以在室内环境下以固定流程短时间内产生出理论最优的拼接参数,这是整个全景拼接技术的核心。

*****************************************************************

我们是一个自由团队,主要感兴趣的是计算机视觉方面新算法、技术的研发。目前全景这一块的技术已经成熟,但由于兴趣所限,我们更希望把接下来的时间用在新的挑战上,而将全景技术的产品化和推广应用托付给一个有想象力、有能力的团队,如果你/你们是这样的人,请联系我们。

QQ: 397692433

手机: 15165701250

全景摄像机量产标定算法

全景视频近期逐渐普遍化。Nokia发布了其天价的OZO全景摄像机;tencent、youku、sina这些网站也慢慢有了全景视频的身影;安防方面,巨鳄海康已经在深圳安防展展出了其研发中的全景安防摄像机,前端后端拼接全部都有,且传闻业内其他大佬也有动作。这给了我们不小的压力。

我们近来几个月闭关做全景技术的产品化,目前已经基本收官。这段时间就可以陆续看到由我们的全景算法支持的产品出现在市场上。

量产和之前作坊式的手动标定全景相机要求有着不小的差距,我们特意设计了新的标定算法来解决短时间高质量且对场地要求小的标定算法。传统的标定算法具有相当大缺陷以至于难以用到量产上,主要体现在要求使用远景,输出结果质量不稳定且难以达到理论最优结果,要求相机具有足够大的重合视野等问题,这些问题在量产标定算法中都不存在,它可以在室内场景下以固定的流程产生出理论最优的拼接效果。标定算法的量产要求应该是一些致力于全景技术团队的折戟之地,但阻碍不了我们:-P

由于精力有限,我们目前阶段只和有优秀硬件技术团队的厂商合作做全景摄像机产品。所谓优秀,是指年轻有想象力,且有让想象力落地的实力。敢而且能。当然,全景摄像机算不得新颖也算不上高门槛,在全景相机之后,我们会做一些有趣些的东西。

如果你是这样的人或团队,请联系我们。

QQ: 397692433

手机: 15165701250

高清全景视频拼接技术 简介

目前为止我们的全景技术有三种:

  1. 高质量融合全景。基于普通摄像机,用CUDA显卡进行实时拼接和高质量融合的拼接技术。基于该种技术,可以用相对较差的摄像机输出非常好的全景视频,对相机的相对摆位要求最为宽松。但这一技术对计算机性能有一定要求,需要有CUDA显卡(Nvidia近几年的显卡都支持CUDA技术)的支持。该技术详情可见《多路视频实时全景拼接算法》一文的介绍。
  2. 高效融合全景。这种技术采用了相对简单的融合算法,可以在极低的开销下产生出高分辨率全景输出,在各种硬件平台(中低端台式机、笔记本,甚至移动平台)上都能低开销流畅运行。由于融合算法简单,因此要产生高质量全景输出,全景摄像机就需要做到曝光、增益等参数的同步。
  3. 鱼眼全景。这类技术最简单,基于鱼眼镜头,将鱼眼画面矫正为更易浏览的平面展开,或投影到全景球面上做沉浸式浏览。

第一种技术之前已经有文章着重介绍,接下来我们将会发布关于后两种技术的一系列Demo视频以及性能数据。

基于高效融合技术的8路960p视频实时全景浏览

不是意外的意外,全景视频技术在最近几个月爆发式的进入公众视野。抛掉概念炒作的浮云不说,这项技术至少在安防领域将会有不小的市场。作为还算是稀有动物的全景视频核心技术提供商之一,我们不应该沉默下去了。

我们今后原则上不再销售SDK,而主要以技术合作为主。欢迎有具备硬件研发能力,对做高质量、高水准产品有兴趣的同道来电洽谈合作。

QQ: 397692433
Phone: 15165701250
Email: planckscale1729@163.com

新字号

出来混,招牌得擦亮点。在和skye姐苦苦探讨了半年之后,我们确定是起不出一个才气灵气霸气兼容并蓄的公司名字了。但时不我待,前些天终于鼓起勇气,大笔一挥糊了两个名字提交审核了。

我们最终的名字是

奇点视觉

奇点是指引力奇点。没啥含义,纪念下曾经的物理生涯。

注册公司目前只是为了方便眼前的一些事情。但如果将来不幸(或者有幸?),我要把这条路走到底,那我希望这是一家Wolfram Research那样的公司。赚钱养家只是人生中需要解决的问题之一,而非目的。我们首先解决这一问题,然后做一些有意思的事。这句话,我特别希望那些不慎掉入生活的泥淖的,折翼的物理(数学)男(女)们听到。

特此昭告天下。

Google Jump

虚拟现实拼完设备要拼内容了,GoPro也是够忙的,先是宣布了研发中的六目全景设备,现又参与到Google的新Jump项目。Jump项目意在方便人们制作360度全景视频,上传至YouTube,而后用 虚拟现实设备观看体验。S$4Z7WF)3O(EEWXE(`B2PBG

Jump camera:对于视频的获取,Google和GoPro联手打造了Jump camera装置,16个相机围成的圆形阵列。装置大小与相机的排布针对Jump assembler做了优化。GoPro的 Jump-ready 360 camera array 使得16如1,即16路相机可共享设置达到帧同步效果。

Jump assembler:Jump camera装置的计算核心,将来自16路相机的视频通过三维重建技术生成立体VR视频。

Jump结合YouTube,不久,沉浸式体验的全景视频将随手可得,虚拟现实设备才更有用武之地。

虚拟现实消息两则

第一条消息来自GoPro. 多数为虚拟现实、增强现实制作全景内容的公司,都是采用GoPro相机,加上全景图像/视频拼接算法制作而成。而GoPro在这方面一直没大动静,今年四月份,其宣布收购Kolor,一家拥有全景图像/视频拼接技术的虚拟现实公司。就在今天又宣布了他们已着手研发六目全景设备,类似360Hero家的产品。此设备将支持Oculus, HoloLens, Google Cardboard 和 YouTube 360度视频。其进军虚拟现实、增强现实的号角算是吹响了。

img_3465spherical

 

第二条消息对我们来说更具震撼力:Oculus收购Surreal Vision,你或许没有听说过这个名字,但它炫目的团队名单绝对让你过目难忘。Richard A. Newcombe, Andrew J. Davison这些名字简直要亮瞎我眼,Newcombe是我很欣赏的一位研究者,除了KinectFusion之外,他还是DTAM的作者,SLAM和实时三维重建这一块儿的中流砥柱。

这个团队的被收购,意味着在全景拼接之后,三维重建也不清净了。

还让不让人愉快的玩耍了。

若为自由故

两年前,加班到晚上十点的我打的回到嘉定南城空寂的两居室里,无意间从床底的灰尘里翻出一本书,Peskin的量子场论,书里的笔记仍如昨日,但封皮已经蒙尘。那时的床头经常青山乱叠,从场论到黑洞物理,却从来无暇读书。每天从公司回来倒头就睡,夜里书掉到地上,咕咚一声惊醒,沉淀了种种琐事的心头此刻无比清晰,我是谁,我本应该去做点什么。但终于有一天,它掉下去了,我没有醒来。

三年前我是一个理论物理方向的小研究生,生活在文献和据说叫做学术讨论的一种活动里。我想了解更多的事情,AdS/CFT,引力理论中的量子纠缠…后来我决定出逃,当你无法做自己想要做的事情,没必要去找一个虚假的安慰。

刚毕业那会儿兵荒马乱,最后找到了魔都的一家公司去做磁共振。创业公司的种种艰辛不需多说,每天深夜打电话叫的,不需报地址人家就知道你是哪家公司的。终归不是做自己喜欢的事,一年后智力和健康水平急剧下滑,离职。

我从小就曾思考自己将来的职业。成为物理学家?那是一个理想,如果走不通呢?互联网刚在大陆兴起时流行一个词儿,SOHO,自由职业,像所有理论物理方向的自由主义分子一样,这让我很向往。

2014年4月10日,我开始了解图像处理和计算机视觉。6月,把妹子从公司里拐出来,从广东迁徙回我们的第二故乡,一个北方的滨海小城。8月,我们有了第一个多路视频实时拼接产品。

这条路,我还算喜欢。

计算机这个年轻的学科算不上一个有深度的领域,但是它的确好玩。借助于前所未有的计算能力,有太多未知的可能等待人们去探索,而且这种探索,会几乎是实时的变成代码,以最廉价的方式给你试验结果。这种成就感是挺美的。

另一方面,它能够把数学、建模和逻辑能力很好地转换成物质收益,在这样一个社会,仰望星空的人应该首先有养活自己的能力。数千年来这个国家只靠沉思就可以生存的基本上只有和尚。我没事的时候仍然可以读点数学和物理,满足自己的好奇心,喜欢物理并非一定要到planck能区的荒原上冲锋陷阵。

这世界上充满了追逐基础科学(甚至是数学)而失意的理科人,据我所知,计算机和金融成为这类人最多的第二选择。我相信,每一个这样的同道,心中都有深藏的火焰,我们有好奇心,爱玩,喜欢创造出一个系统看它如愿运转起来所体验到的控制力与成就感,我们不甘于忍受旧世界的寡淡,不甘于日复一日毫无悬念的生活,不甘于自由被束缚。

基础科学或数学背景的人通常具有更高的眼光和高度的问题解决能力、学习能力,我相信这样的人最大的危险是被世界之大所稀释,所隔离。所以我想建立一个某种形式的社区,召集同道,或许可以互助,或许可以做些有趣的事情。

这项工作才刚刚开始,如果你是这样一个人,请加入我们的qq群

397499642

玩玩三维重建

版权声明:本文系本站作者自己翻译整理,欢迎转载,但转载请以超链接形式注明文章来源(planckscale.info)、作者信息和本声明,否则将追究法律责任。

我们在实时三维重建方面的工作今年已经密集展开。或许不久后某一天,你会在本站看到带有SLAM(即时定位与地图构建)功能的四轴飞行器,或者让你在书桌上打一场现代战争的增强现实应用。在敲锣打鼓欢天喜地亮出我们自己的三维重建实现前,先拿别人的东西给大家打打牙祭。

中科大刘利刚教授的3D建模软件与处理软件简介介绍了N多实用的3D相关软件。而基于照片的快速建模软件并不多,之前玩过123D Catch,很赞。围着你要建模的物体拍摄一圈,用123D Catch加载拍摄的图像,经过其强大的处理能力,生成具有纹理的3D模型。下图是我重建的我的蒙奇奇。你要做的只是拍照、上传、等待而已,相当简单。

蒙奇奇

但是123D Catch也存在一些局限,完全的黑盒子,对重建过程没有任何操控力。

要想了解从照片如何一步步重建出三维模型,并能操控某些过程,可用的免费开源软件也不少,较常用的是VisualSFM和Meshlab:

第一步:VisualSFM

VisualSFM软件允许我们上传一系列图像,它从这些图像中找到每一个图像的特定特征,利用这些特征信息重建出3D模型的稀疏点云,而后还可进行稠密点云重建。

输入:围着要重建对象拍摄的一系列照片;

输出:一个 .out文件,存储着每个相机的位置及重建出的稀疏点云;

一个.ply文件,存储着由稀疏点云重建出的稠密点云。

第二步:Meshlab

可用Meshlab对3D网格/点云做各种操作。输入VisualSFM的生成文件,Meshlab通过一系列操作可创建出包含纹理的、干净的、高分辨率的网格,并自动计算UV映射及创建纹理图像。

输入:VisualSFM的生成文件,.out文件和list.txt文件(存储照片序列); 以及.ply文件;

输出:一个.obj文件,3D模型的网格;

一个.png文件,任意大小的纹理图;

完整的流程见下图:

liucheng

 

第一步:运行VisualSFM

1

1. 输入一系列图片

拍照注意事项:切忌不要站在原地,仅转动身体去拍:相机共中心能拼接全景,但是给不出三维重建的深度信息。要以待重建的对象为中心,围着它每转10-20度拍一张,这样转一圈,有不同高度信息更好。VisualSFM没有照片数量限制,照片越多,重建出的细节越丰富,但重建过程花费时间越长。QQ图片20150314232349  

2.  特征检测及匹配

因照片可能存在旋转、缩放或亮度变化,此过程利用SIFT算法提取、描述特征,用 RANSAC算法过滤掉误匹配。此过程亦可利用GPU加速。工作状态实时显示在侧边的log窗口。

QQ图片20150314232955QQ图片20150314233141

3. 利用SFM进行稀疏3D重建

利用 SFM 方法,通过迭代求解出相机参数和三维点坐标。即重建出3D模型的稀疏点云。若有“bad”相机(位置错误或朝向错误),结合工具栏上的“3+”按钮和手型按钮即可删除之,使结果更准确。

QQ图片20150314233508

4. 利用  CMVS/PMVS 进行稠密3D重建

CMVS/PMVS需自己下载,编译,也可直接下载exe文件。而后把pmvs2.exe/cmvs.exe/genOption.exe文件放到VisualSFM.exe的同目录下。

通过 CMVS 对照片进行聚类,以减少稠密重建数据量,而后利用PMVS从3D模型的稀疏点云开始,在局部光度一致性和全局可见性约束下,经过匹配、扩散、过滤 生成带真实颜色的稠密点云。(下图为用Meshlab查看效果图)

6

 

至此,VisualSFM的工作告一段落,结果都已存盘。若因图片匹配失败或图片较少导致某区域重建失败或重建出的某区域细节不足,可以返回添加一些这个区域的照片,重新来过(本人较懒,未作补充,谅解)。但因特征检测和匹配的结果已存盘( 每张图像对应的.sift 和 .mat文件),所以已经匹配好的图像不必再次匹配,会更快完成。

第二步:运行Meshlab

11

1. 打开bundle.rd.out 文件

a. 按钮1,打开由 VisualSFM生成的存储在xx.nvm.cmvs文件夹下的 bundle.rd.out 文件。随后会询问是否选择照片列表文件,选择同文件夹下的 “list.txt”即可。这一步会把相机及对应的照片导入进来,对后续的纹理处理至关重要。

3

b. 按钮2,打开显示层目录,检测相机载入是否正确, Render –> Show Camera,因可视化相机的尺寸比网格尺寸大得多,所以需调整相机的缩放因子,scale factor可以从0.001开始调小,直到相机位置清晰可见。

45

 2. 稠密点云代替稀疏点云

a.  按钮3,隐藏可视的稀疏点云;

b. File –> Import Mesh加载稠密点云(xx/00/models/option-0000.ply);VisualSFM生成多个.ply文件时,需合并成一个mesh。在载入的任何一个.ply上右键选“Flatter Visible Layers”。

6

3. 清除杂点

按钮4选中杂点区,按钮5删除之。大致清了桌前的一些杂点。

QQ图片20150314234454

4. 网格化

Filter –> Point Set–> Surface Reconstruction: Poisson.

利用Poisson Surface Reconstruction算法由稠密点云生成多边形网格表面。

参数可调, Octree Depth:控制着网格的细节,此值越大细节越丰富但占内存越大运行起来慢,一般设10,可慢慢调大。

7

Poisson表面重建算法会生成一个“不漏水”气泡,把所有场景对象包裹在其中。即模型是封闭的。可以移除多余的面Filters –> Selection –> Select faces with edges longer than,而后删除。

QQ图片20150314223022 QQ图片20150314223134

保存(整个project和mesh)。

5. 修复流形边缘

后续的纹理处理要求网格化的模型必须是流形(MANIFOLD)的,因此需删除非流形边(简单讲就是任何由多面共享的边)。Filters –> Selection –> Select Non-Manifold edges,而后删除之。

QQ图片20150314234928

6. 参数化(Parameterization)

Filter –> Texture –> Parameterization from registered rasters。

根据相机投影关系创建UV映射。

QQ图片20150314235004

保存 (整个project和mesh)。

7.  投影纹理

Filter –> Texture –> Project active rasters color to current mesh, filling the texture。

可设置任意分辨率(512的2的二次方倍:512 / 1024 / 2048 / 4096 / 8192…)的纹理图。

QQ图片20150314235126

6和7可以合为一步: Filter –> Texturing –> Parameterization + texturing from registered rasters.

 QQ图片20150314235200

8. 完成、导出

当你调整满意了之后,File –> Save mesh as… a .obj文件。即可便有了一个包含你选定分辨率纹理的obj文件。

QQ图片20150314225720 QQ图片20150314225733

收官啦。而后关乎应用,就是拼想象的时候了!

更多细节参见:We Did Stuff