我,開(kāi)發(fā)者,在元宇宙里有一行自己的代碼!
新智元報(bào)道
【新智元導(dǎo)讀】隨著元宇宙熱潮興起,擴(kuò)展現(xiàn)實(shí)領(lǐng)域也蓬勃發(fā)展。但對(duì)研究者而言,想要上手研究擴(kuò)展現(xiàn)實(shí)領(lǐng)域,還需要耗費(fèi)不少時(shí)間、精力去解決繁瑣的環(huán)境配置、不同代碼庫(kù)的底層規(guī)范以及代碼庫(kù)之間串接的問(wèn)題。
圖源:Arplanet
從0到1
為更好地解決上述問(wèn)題,推動(dòng)擴(kuò)展現(xiàn)實(shí)領(lǐng)域算法更高效地研發(fā)、迭代和集成,上海人工智能實(shí)驗(yàn)室聯(lián)合浙江大學(xué)、商湯科技共同于2022年9月1日在世界人工智能大會(huì)上,正式發(fā)布了OpenXRLab擴(kuò)展現(xiàn)實(shí)開(kāi)源平臺(tái)。
平臺(tái)官網(wǎng):https://openxrlab.org.cn/
1+3平臺(tái)架構(gòu)
OpenXRlab開(kāi)源平臺(tái)可以進(jìn)一步拆分為以下四個(gè)子平臺(tái),即1個(gè)基礎(chǔ)平臺(tái)和3個(gè)應(yīng)用算法平臺(tái)。
-
XR空間計(jì)算平臺(tái)使得我們對(duì)世界感知從平面更加走向空間; -
XR多模態(tài)人機(jī)交互平臺(tái)可以成為我們和機(jī)器交互的工具; -
XR渲染生成平臺(tái)使我們從感知和交互走向創(chuàng)作。
7個(gè)代碼庫(kù)
項(xiàng)目地址:https://github.com/openxrlab/xrprimer
XRPrimer是為XR算法提供統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)處理接口的庫(kù)。XRPrimer的取名是為了致敬計(jì)算機(jī)同學(xué)們耳熟能詳?shù)慕?jīng)典基礎(chǔ)書(shū)籍《C++ Primer》。
作為基礎(chǔ)庫(kù),它外層提供統(tǒng)一的數(shù)據(jù)結(jié)構(gòu)和算法接口,同時(shí)支持C/C++和 Python 的調(diào)用,內(nèi)部提供通用的算法和高效的計(jì)算,提供擴(kuò)展,方便外部貢獻(xiàn)。
同時(shí),底層的庫(kù)安裝是否方便決定了用戶的上手難易度,團(tuán)隊(duì)也謹(jǐn)慎選擇了XRPrimer的第三方依賴(lài),支持不同平臺(tái)源碼編譯,也搭建了配套基礎(chǔ)設(shè)置提供部分平臺(tái)預(yù)編譯庫(kù),使得安裝更加簡(jiǎn)單。
XRSLAM
項(xiàng)目地址:https://github.com/openxrlab/xrslam
XRSLAM是一個(gè)基于多傳感器融合的SLAM開(kāi)源項(xiàng)目,是OpenXRLab空間計(jì)算平臺(tái)的核心技術(shù)模塊之一。
XRSLAM目前提供了一個(gè)基于優(yōu)化的魯棒實(shí)時(shí)的輕量級(jí)視覺(jué)慣性里程計(jì),同時(shí)支持桌面平臺(tái)和移動(dòng)平臺(tái)。
和其他SOTA系統(tǒng)相比,XRSLAM在精度和效率方面都具備很強(qiáng)的競(jìng)爭(zhēng)力,且非常容易上手使用。作為AR領(lǐng)域的基礎(chǔ)設(shè)施,團(tuán)隊(duì)提供了在iPhone端可實(shí)時(shí)交互的移動(dòng)端應(yīng)用。
基于XRSfM預(yù)先構(gòu)建好的三維幾何地圖,XRSLAM可以結(jié)合XRLocalization實(shí)現(xiàn)云-端結(jié)合的實(shí)時(shí)AR定位導(dǎo)航效果。
未來(lái)XRSLAM還會(huì)持續(xù)迭代更新,將會(huì)加上全局地圖和后端優(yōu)化形成一個(gè)完整的視覺(jué)慣性SLAM系統(tǒng),并且考慮支持雙/多目相機(jī)和RGB-D相機(jī)等更多類(lèi)型的傳感器。
XRSfM
項(xiàng)目地址:https://github.com/openxrlab/xrsfm
XRSfM是一個(gè)開(kāi)源的Structure-from-Motion(運(yùn)動(dòng)恢復(fù)結(jié)構(gòu))的代碼倉(cāng)庫(kù),屬于OpenXRLab空間計(jì)算平臺(tái)。
XRSfM能夠從影像數(shù)據(jù)中恢復(fù)場(chǎng)景的稀疏點(diǎn)云結(jié)構(gòu)和圖像的相機(jī)位姿,重建結(jié)果可以支持后續(xù)的場(chǎng)景定位和稠密重建。
XRSfM實(shí)現(xiàn)了基于共視的高效匹配方法[1]和基于關(guān)鍵幀的高效集束調(diào)整,相較于其他開(kāi)源SOTA系統(tǒng),其重建速度具有數(shù)量級(jí)優(yōu)勢(shì),并且提供了基于人工標(biāo)志物的尺度估計(jì)功能,能夠恢復(fù)出場(chǎng)景的真實(shí)尺度。
XRLocalization
項(xiàng)目地址:https://github.com/openxrlab/xrlocalization
XRLocalization是一個(gè)基于高精地圖的視覺(jué)定位工具箱,屬于OpenXRLab空間計(jì)算平臺(tái)。
XRLocalization采用模塊化的設(shè)計(jì),并提供了一套層次化視覺(jué)定位算法,使其能夠在大尺度場(chǎng)景下實(shí)現(xiàn)高效、精準(zhǔn)且魯棒的定位。
該框架支持使用不同的特征檢測(cè)、特征匹配和圖像檢索方法,以及離線和在線兩種定位模式。
其中,局部特征目前支持SuperPoint[2]和D2Net[3], 圖像檢索目前支持NetVLAD[4],特征匹配目前支持最近鄰搜索和GAM[5, 6]算法。
該項(xiàng)目將提供更多的基礎(chǔ)模塊算法以及更多的視覺(jué)定位pipeline,為學(xué)術(shù)研究和工業(yè)應(yīng)用提供靈活的代碼工具。
XRMoCap
項(xiàng)目地址:https://github.com/openxrlab/xrmocap
XRMoCap是一個(gè)多視角的動(dòng)作捕捉工具箱,屬于OpenXRLab多模態(tài)人機(jī)交互平臺(tái)。
XRMoCap目前有3大特點(diǎn):
第一,它同時(shí)支持了單人和多人的多目動(dòng)作捕捉,可以支持大于2個(gè)視角的任意數(shù)量的標(biāo)定后相機(jī)作為輸入,并且提供了一系列高效選擇相機(jī)和關(guān)鍵點(diǎn)的策略,其中單人工具箱由HuMMan[7]原作者添加。
第二,它同時(shí)支持輸出3D關(guān)鍵點(diǎn)和人體參數(shù)化模型,3D關(guān)鍵點(diǎn)和人體參數(shù)化模型是當(dāng)前人體的2種主流表示形式,也提供了它們互相轉(zhuǎn)換和優(yōu)化的算法。
第三,它將基于優(yōu)化和基于學(xué)習(xí)的算法融入在統(tǒng)一的框架中,支持了MvPose[8], MvPose Tracking[9], MvP[10], 4D Association[11]等多個(gè)經(jīng)典算法。用戶可以通過(guò)修改配置文件,快速構(gòu)建和測(cè)試一個(gè)多視角動(dòng)作捕捉的算法原型。
XRMoGen
項(xiàng)目地址:https://github.com/openxrlab/xrmogen
XRMoGen是一個(gè)多模態(tài)人體動(dòng)作生成的工具箱,屬于OpenXRLab多模態(tài)人機(jī)交互平臺(tái)。目前,該框架以音樂(lè)生成舞蹈為切入點(diǎn),構(gòu)建人體動(dòng)作生成代碼庫(kù)。
XRMoGen的亮點(diǎn)有3個(gè):
第一個(gè)是代碼結(jié)構(gòu)清晰,易讀性高,提供了較為詳細(xì)的使用文檔。
第二個(gè)是框架容易上手。由于動(dòng)作生成代碼庫(kù)相對(duì)比較繁雜,XRMoGen試圖將不同算法的代碼風(fēng)格統(tǒng)一到一個(gè)框架下,實(shí)現(xiàn)對(duì)算法的抽象,達(dá)到用戶易上手易擴(kuò)展的目的。
第三個(gè)是復(fù)現(xiàn)了該領(lǐng)域的2個(gè)經(jīng)典算法:DanceRevolution[12]和Bailando[13]。其中Bailando[13]由原作者添加,不僅效果與SOTA相當(dāng),代碼結(jié)構(gòu)也更加清晰易拓展。
XRNeRF
項(xiàng)目地址:https://github.com/openxrlab/xrnerf
XRNeRF是基于PyTorch的通用型模塊化神經(jīng)渲染框架,屬于OpenXRLab渲染生成平臺(tái)。
XRNeRF集成了4個(gè)面向場(chǎng)景和3個(gè)面向人體的NeRF前沿算法,其中場(chǎng)景算法包括NeRF[14], Mip-NeRF[15], KiloNeRF[16]和Instance-NGP[17],人體算法包括NeuralBody[18], AnimNeRF[19]和GNR[20],人體算法均為原作者支持開(kāi)發(fā)。
針對(duì)當(dāng)前開(kāi)源NeRF代碼庫(kù)線性流程、模塊化程度低、二次開(kāi)發(fā)難度大的問(wèn)題,XRNeRF具有如下特點(diǎn):模塊化程度高、標(biāo)準(zhǔn)的數(shù)據(jù)處理管線、模塊化的網(wǎng)絡(luò)構(gòu)建方法。
僅需要修改配置文件,就可以完成對(duì)數(shù)據(jù)處理管線和網(wǎng)絡(luò)構(gòu)建的修改,支持高便捷性地實(shí)現(xiàn)新算法搭建。
除了易于使用和拓展的模塊化設(shè)計(jì),XRNeRF在所有復(fù)現(xiàn)算法上,平均指標(biāo)與官方代碼庫(kù)對(duì)齊,可視化效果也與源代碼庫(kù)對(duì)齊。
從1到N
XR的各種硬件正在高速發(fā)展,新算法也層出不窮。對(duì)算法的研究者和開(kāi)發(fā)者來(lái)說(shuō),保持高度熱度的同時(shí),未來(lái)還有大量的工作需要完成。
OpenXRLab的開(kāi)源只是邁出了一小步,這個(gè)領(lǐng)域的發(fā)展道阻且長(zhǎng)。非常歡迎更多有熱情的社區(qū)小伙伴加入進(jìn)來(lái),一同成為這個(gè)方向的貢獻(xiàn)者!
團(tuán)隊(duì)表示,歡迎任何形式的貢獻(xiàn),可以在wishlist中添加想要復(fù)現(xiàn)的算法,可以在issue中報(bào)告問(wèn)題,也可以PR提交修改,甚至還可以加入他們。
代碼庫(kù)地址:https://github.com/openxrlab
參考文獻(xiàn):
[1] Ye, Z., Zhang, G., & Bao, H. (2020, May). Efficient covisibility-based image matching for large-scale SfM. In 2020 IEEE International Conference on Robotics and Automation (ICRA) (pp. 8616-8622). IEEE.
[2] DeTone, D., Malisiewicz, T., & Rabinovich, A. (2018). Superpoint: Self-supervised interest point detection and description. In Proceedings of the IEEE conference on computer vision and pattern recognition workshops (pp. 224-236).
[3] Dusmanu, M., Rocco, I., Pajdla, T., Pollefeys, M., Sivic, J., Torii, A., & Sattler, T. (2019). D2-net: A trainable CNN for joint detection and description of local features. arXiv preprint arXiv:1905.03561.
[4] Arandjelovic, R., Gronat, P., Torii, A., Pajdla, T., & Sivic, J. (2016). NetVLAD: CNN architecture for weakly supervised place recognition. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 5297-5307).
[5] Yu, H., Ye, W., Feng, Y., Bao, H., & Zhang, G. (2020, November). Learning bipartite graph matching for robust visual localization. In 2020 IEEE International Symposium on Mixed and Augmented Reality (ISMAR) (pp. 146-155). IEEE.
[6] Yu, H., Feng, Y., Ye, W., Jiang, M., Bao, H., & Zhang, G (2022). Improving feature-based visual localization by geometry-aided matching. ArXiv preprint arXiv:2211.08712.
[7] Cai, Z., Ren, D., Zeng, A., Lin, Z., Yu, T., Wang, W., ... & Liu, Z. (2022). HuMMan: multi-modal 4D human dataset for versatile sensing and modeling. In European Conference on Computer Vision. Springer, Cham.
[8] Dong, J., Jiang, W., Huang, Q., Bao, H., & Zhou, X. (2019). Fast and robust multi-person 3D pose estimation from multiple views. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 7792-7801).
[9] Dong, J., Fang, Q., Jiang, W., Yang, Y., Huang, Q., Bao, H., & Zhou, X. (2021). Fast and robust multi-person 3d pose estimation and tracking from multiple views. IEEE Transactions on Pattern Analysis and Machine Intelligence.
[10] Zhang, J., Cai, Y., Yan, S., & Feng, J. (2021). Direct multi-view multi-person 3d pose estimation. Advances in Neural Information Processing Systems, 34, 13153-13164.
[11] Zhang, Y., An, L., Yu, T., Li, X., Li, K., & Liu, Y. (2020). 4D association graph for realtime multi-person motion capture using multiple video cameras. In Proceedings of the IEEE/CVF conference on computer vision and pattern recognition (pp. 1324-1333).
[12] Huang, R., Hu, H., Wu, W., Sawada, K., Zhang, M., & Jiang, D. (2020). Dance revolution: Long-term dance generation with music via curriculum learning. arXiv preprint arXiv:2006.06119.
[13] Siyao, L., Yu, W., Gu, T., Lin, C., Wang, Q., Qian, C., ... & Liu, Z. (2022). Bailando: 3D dance generation by actor-critic GPT with choreographic memory. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 11050-11059).
[14] Mildenhall, B., Srinivasan, P. P., Tancik, M., Barron, J. T., Ramamoorthi, R., & Ng, R. (2021). NeRF: Representing scenes as neural radiance fields for view synthesis. Communications of the ACM, 65(1), 99-106.
[15] Barron, J. T., Mildenhall, B., Tancik, M., Hedman, P., Martin-Brualla, R., & Srinivasan, P. P. (2021). Mip-NeRF: A multiscale representation for anti-aliasing neural radiance fields. In Proceedings of the IEEE/CVF International Conference on Computer Vision (pp. 5855-5864).
[16] Reiser, C., Peng, S., Liao, Y., & Geiger, A. (2021). Kilonerf: Speeding up neural radiance fields with thousands of tiny mlps. In Proceedings of the IEEE/CVF International Conference on Computer Vision (pp. 14335-14345).
[17] Müller, T., Evans, A., Schied, C., & Keller, A. (2022). Instant neural graphics primitives with a multiresolution hash encoding. arXiv preprint arXiv:2201.05989.
[18] Peng, S., Zhang, Y., Xu, Y., Wang, Q., Shuai, Q., Bao, H., & Zhou, X. (2021). Neural body: Implicit neural representations with structured latent codes for novel view synthesis of dynamic humans. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 9054-9063).
[19] Peng, S., Dong, J., Wang, Q., Zhang, S., Shuai, Q., Zhou, X., & Bao, H. (2021). Animatable neural radiance fields for modeling dynamic human bodies. In Proceedings of the IEEE/CVF International Conference on Computer Vision (pp. 14314-14323).
[20] Cheng, W., Xu, S., Piao, J., Qian, C., Wu, W., Lin, K. Y., & Li, H. (2022). Generalizable Neural Performer: Learning Robust Radiance Fields for Human Novel View Synthesis. arXiv preprint arXiv:2204.11798.
本文來(lái)自微信公眾號(hào)“新智元”(ID:AI_era),作者:新智元,36氪經(jīng)授權(quán)發(fā)布。
