眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

「唯一真正的探索之旅,不是去拜访陌生的土地,而是透过别人的眼睛来观察宇宙。」——马塞尔·普鲁斯特

通过别人的眼睛来看世界,这个又科幻又诗意(又恐怖)的想法,已经成真了!

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

《黑镜》第一季《你的全部历史》

现在,我们只需利用眼睛的反光,就能三维重建这个人正在观察的物体。

是的,这很黑镜。

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

最近,来自马里兰大学的团队,提出一种全新的方法——通过利用包含眼睛反光的人像,来对摄像机没有拍到的场景进行三维重建。

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

论文地址:https://arxiv.org/abs/2306.09348

项目地址:https://world-from-eyes.github.io/

阿里翻译 阿里翻译

阿里巴巴提供的多语种在线实时翻译网站,支持文档、图片、视频、语音等多模态翻译

阿里翻译 170 查看详情 阿里翻译

经典科幻中的场景都成真了?

用眼睛反射产生辐射场重建?这个想法看似疯狂,实则有足够的理论依据。

作者介绍说,因为人眼具有高度的反射性,所以从捕捉头部移动的一系列帧中,完全可以做到仅使用眼睛的反射,就能重建和渲染人们正在观察的3D场景。

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

鉴于这个概念非常「黑镜」,而且这篇论文一发布没几个小时,《黑镜》新一季就宣布上线了,这种巧合简直让人怀疑《黑镜》的导演是不是也注意到了这篇论文。(狗头)

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

黑镜第六季今日上线

这项研究一出,网友们直接炸了。

所以,我们已经快进到这一步了?

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

这不就是2000年代《攻壳机动队》中的场景吗?这些虚构全都变成现实了!

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

100%的《银翼杀手》,现在就给我一份拷贝吧。

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

儒勒·凡尔纳的《基普兄弟》成真了!

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

当然,也有人对此表示毛骨悚然:这个技术可千万别被用于调查取证之类的事情。

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

而在今天,我们已经有了Varjo眼动追踪相机,还有苹果的VisionPro以及其他头显,这些设备都可以捕捉大量镜头素材,结合进这项新技术,无数崭新的科幻场景,恐怕马上都要成真了……

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

通过利用光线在人眼上的微小反射,研究团队开发了一种方法,可以使用在固定相机位置拍摄的单目图像序列来重建人所观察到的(非直视)场景。

不过,仅仅在观察到的反射上训练辐射场是不够的,原因有几个:1)角膜定位中的固有噪声,2)虹膜纹理的复杂性,3)每张图像中捕获的低分辨率反射。

为了解决这些挑战,团队在训练过程中引入了角膜姿态优化和虹膜纹理分解,并借助基于人眼虹膜的径向纹理正则化损失。

与传统的需要移动相机的神经场训练方法不同,他们使用的方法将相机放置在固定的视点上,完全依赖于用户的移动。

利用人眼反光,实现场景重建

由于准确估计眼睛的姿态十分困难,再加上虹膜和场景反射之间的纹理相互交织,因此这项任务颇具挑战性。

为了解决这一问题,作者针对眼睛姿态、描述场景的辐射场以及观察者的眼睛虹膜纹理,进行了联合优化。

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

具体来说,主要的贡献有三点:

1. 新的三维重建

提出了一种从眼睛图像中重建观察者世界的3D场景的新方法,可以将先前的基础工作与神经渲染的最新进展相结合。

2. 虹膜的径向先验

引入了虹膜纹理分解的径向先验,显著提高了重建的辐射场的质量。

3. 角膜姿态的优化

开发了一种角膜姿态优化的过程,以减轻眼睛姿态估计的噪声,克服了从人眼中提取特征的独特挑战。

结果显示,利用这个全新的方法,我们可以通过移动画面,从眼睛的反射中获得场景的多个视角,最终实现完整的场景重建。

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

更厉害的是,团队还尝试利用Miley Cyrus和Lady Gaga的MV,来重建她们眼睛里的景象。

作者表示,他们成功地重建了出现在Miley的眼中的物体,并且从Lady Gaga的眼中似乎看到了一个人的上半身。

然而,由于这些视频的质量不够高,因此还不能断定重建结果的准确性。

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

Lady Gaga

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

Miley Cyrus

如何做到的?

众所周知,健康成年人的角膜几何形状几乎相同。

因此,只需在图像中计算一个人的角膜的像素大小,就可以准确计算出他们的眼睛位置。

接下来,作者通过从相机拍摄光线,并将它们反射出近似的眼睛几何形状,来训练眼睛反射的辐射场。

为了避免人眼的虹膜在重建中出现,作者同时训练了一个学习虹膜纹理的二维纹理映射,来进行纹理分解。

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

实验评估

合成数据评估

首先,作者通过在Blender场景中放置人眼模型,进行了合成数据上的评估。

下图展示了仅利用眼睛反射重建的场景。

由于在现实生活中无法完美估计眼角膜,作者和评估了角膜姿态优化对估计角膜半径噪音的鲁棒性。

为了模拟真实数据中可能遇到的深度估计误差,作者通过使用不同噪音水平对每个图像中观察到的角膜半径进行缩放,来破坏观察到的角膜半径r_img。

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

下图展示了在不同噪音水平下的性能变化。

值得注意的是,随着噪音的增加,与无姿态优化的重建相比,作者提出的姿态优化重建在重建的几何形状和颜色方面更为鲁棒。

这证明姿态优化对于现实场景至关重要,因为图像中从投影的角膜到初始椭圆拟合并不完美。

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

此外,在有无纹理分解的情况下的定量比较显示,作者的方法在SSIM和LPIPS方面在纹理分解的情况下表现更好。

值得注意的是,作者没有计算PSNR,因为在设置中,反射和场景本身之间的照明差异非常大。

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

真实世界评估

为了保证视野的真实,作者选择了索尼RX IV相机进行拍摄,并使用Adobe Lightroom对图像进行后处理,以减少角膜反射中的噪声。同时,作者在人物的两侧加入了光源来照亮目标物体。

过程中,被拍的人需要在相机的视野范围内移动,以便团队在每个场景中拍摄5-15帧图像。

由于场景照明具有较大的动态范围,作者在所有实验中使用16位图像,以避免丢失观察到的反射中的信息。

平均而言,每个图像中角膜只覆盖约0.1%的区域,而目标物体大约会占到20×20像素,并与虹膜纹理交错。

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

数据处理

作者首先通过对图像进行角膜中心和半径的估计,来获得角膜的初始位置估计。

然后,使用平均深度和相机的焦距直接近似来计算角膜的三维位置,并计算其表面法线。

为了自动化这个过程,作者使用Grounding Dino定位眼睛的边界框,并使用ELLSeg对虹膜进行椭圆拟合。

尽管角膜通常被遮挡,但我们只需要未遮挡的区域,因此可以使用Segment Anything来获得虹膜的分割掩码。

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

真实结果

从下图展示的效果中可以看出,作者的方法能够从真实世界的人像图片中重建3D场景,尽管存在角膜位置和几何估计的不准确性。

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

由于角膜边界的模糊性,想要在图像中实现精确的定位十分困难。

此外,对于某些眼睛颜色,如绿色和蓝色,3D重建也会更加困难,因为虹膜纹理较亮。

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

此外,在没有明确建模纹理时,重建后的画面中还会出现更多的「漂浮物」。

为了解决这些问题,可以通过增加径向正则化的程度,来改善重建的质量。

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

不过,这个方法依然存在两个主要的限制。

首先,目前的真实世界结果是基于「实验室设置」,例如对人脸进行放大拍摄、使用额外的光源照亮场景等。而在更自由的环境中,就需要面对传感器分辨率较低、动态范围较小且存在运动模糊等更大的挑战。

其次,目前对虹膜纹理的假设(例如恒定纹理、径向恒定颜色)可能过于简化,因此该方法在眼睛大幅度旋转时可能会失效。

作者介绍

共同一作Kevin Zhang,目前是马里兰大学的博士生。

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

Brandon Y. Feng在马里兰大学获得计算机科学博士学位,研究兴趣集中在计算成像、中层视觉和计算摄影领域。曾开发了用于图像和3D数据处理的机器学习算法,应用范围涵盖混合现实到自然科学等领域。

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

Jia-Bin Huang是马里兰大学副教授,此前在UIUC获得了博士学位。研究兴趣集中在计算机视觉、计算机图形学和机器学习的交叉领域。

眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷

以上就是眼球反射解锁3D世界,黑镜成真!马里兰华人新作炸翻科幻迷的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/519308.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
如何利用Layui开发一个具有分页功能的数据展示页面
上一篇 2025年11月9日 04:42:57
不是Mate 80!华为Mate神秘直板旗舰来袭
下一篇 2025年11月9日 04:43:01

相关推荐

  • Go程序使用gRPC流式调用卡死怎么调试

    Go程序使用gRPC流式调用卡死怎么调试Go程序使用gRPC流式调用卡死怎么调试Go程序使用gRPC流式调用卡死怎么调试Go程序使用gRPC流式调用卡死怎么调试

    grpc流式调用卡死问题通常源于客户端或服务端的阻塞,解决方法包括:1. 确认正确处理流关闭和错误;2. 检查网络稳定性;3. 使用pprof进行性能分析;4. 添加详细日志记录;5. 设置send和recv操作的超时机制;6. 采用并发控制避免goroutine泄漏;7. 实现流量控制防止过载;8…

    2026年5月10日 用户投稿
    000
  • 在PHP中如何通过注释提高调试效率

    合理使用注释可提升PHP调试效率。1. 用// TODO、// FIXME等标记快速定位问题代码;2. 临时注释代码块进行逻辑对比测试;3. 添加上下文说明避免非常规操作被误删;4. 注释记录变量预期状态辅助排查异常。关键在于在核心位置提供有效信息,让注释成为调试的“便签条”。 在PHP开发过程中,…

    2026年5月10日
    000
  • Go语言扩展标准库类型:以bufio.Reader为例

    本文将介绍如何在不修改标准库源码的情况下,扩展Go语言标准库类型的功能,以bufio.Reader为例,演示如何通过类型嵌入和方法重写或新增方法,实现自定义的读取字节功能,从而满足特定的需求。 在Go语言中,我们经常需要使用标准库提供的类型和方法。但有时,标准库提供的功能可能无法完全满足我们的特定需…

    2026年5月10日
    000
  • Go Web开发:静态文件服务404问题解析与StripPrefix解决方案

    本文详细解析了Go语言net/http包在处理静态文件服务时常见的404错误原因,特别是当http.FileServer与http.Handle结合使用时路径匹配的陷阱。通过引入http.StripPrefix函数,文章提供了简洁有效的解决方案,确保静态资源能够被正确访问,避免了路径重复导致的文件查…

    2026年5月10日
    000
  • 什么是 Kubernetes 的 Pod 开销概念?

    Pod开销指Kubernetes中除容器外Pod运行所需额外资源,由RuntimeClass定义并加入总资源请求,调度时一并计算,需v1.18+且启用PodOverhead特性门控。 Kubernetes 中的 Pod 开销(Pod Overhead)是指在运行 Pod 时,除了容器本身请求的资源外…

    2026年5月10日
    000
  • 如何在Golang中实现购物车功能

    答案:通过定义用户、商品和购物项结构体,使用map管理购物车条目,实现添加、删除、计算总价功能,并结合HTTP接口与读写锁支持并发操作,适合扩展优惠券与库存校验。 在Golang中实现购物车功能,关键在于管理用户、商品和购物项之间的关系。通常使用结构体来表示数据模型,结合内存存储或数据库完成增删改查…

    2026年5月10日
    100
  • c++如何实现观察者设计模式_c++设计模式之观察者模式实现方法

    观察者模式通过抽象基类定义更新接口,被观察者维护观察者列表并通知其状态变化。使用指针管理依赖关系时需注意生命周期,避免悬空指针,推荐结合智能指针提升安全性。 观察者模式是一种行为设计模式,用于在对象之间定义一对多的依赖关系,当一个对象的状态发生改变时,所有依赖它的对象都会自动收到通知。在C++中,可…

    2026年5月10日
    000
  • 如何使用Go语言将字符串分割后作为函数参数传递

    本文详细介绍了在Go语言中如何将一个由空格分隔的字符串(如命令行指令)解析成多个独立的参数,并传递给接受可变参数的函数,例如`exec.Command`。核心方法是利用`strings.Fields`函数进行字符串分割,并结合Go语言的可变参数(variadic arguments)语法,通过`&#…

    2026年5月10日
    000
  • 如何精确控制CSS文本元素底边框的起始与长度

    本教程旨在详细阐述如何在CSS中精确控制文本元素(如` `)的底边框起始位置和长度,避免其默认的延伸行为。文章将介绍两种主要方法:通过调整内边距和移除固定宽度使边框适应内容,以及利用CSS伪元素(`::after`)实现像素级的精细定位和宽度控制,从而满足多样化的设计需求。 在网页设计中,为标题或文…

    2026年5月10日
    000
  • 如何为Golang配置实时热加载开发环境 使用Air或CompileDaemon工具

    如何为Golang配置实时热加载开发环境 使用Air或CompileDaemon工具如何为Golang配置实时热加载开发环境 使用Air或CompileDaemon工具如何为Golang配置实时热加载开发环境 使用Air或CompileDaemon工具如何为Golang配置实时热加载开发环境 使用Air或CompileDaemon工具

    air的优势在于配置灵活,支持自定义监听目录、排除文件、构建命令等高级功能,适合结构复杂或需精细控制的项目;劣势是配置较复杂,需.air.toml文件。compiledaemon优势在于简单易用,无需配置文件,适合结构简单的项目;劣势是功能较少,无法精细配置。选择air适用于多包结构和静态资源管理的…

    2026年5月10日 用户投稿
    000
  • Go反射:使用binary.Read安全地将字节解组到结构体

    本教程深入探讨了在Go语言中使用反射将字节数组解组(Unmarshal)到结构体时的常见陷阱与解决方案。重点介绍了reflect.New创建指针类型reflect.Value后,如何通过Elem()方法获取其指向的实际可寻址结构体值,从而避免f.Addr()调用时遇到的“不可寻址”错误,并提供了一个…

    2026年5月10日
    100
  • CSS中块级元素水平居中布局指南

    本文详细介绍了在CSS中实现块级元素水平居中的核心方法,重点讲解了如何通过设置margin-left: auto;和margin-right: auto;来使具有固定宽度的块级元素在其父容器中居中显示。文章通过具体代码示例,阐明了这一常用技巧的原理与应用,并提供了相关注意事项,帮助开发者有效解决布局…

    2026年5月10日
    100
  • 如何测试C++异常处理逻辑 单元测试中模拟异常抛出

    如何测试C++异常处理逻辑 单元测试中模拟异常抛出如何测试C++异常处理逻辑 单元测试中模拟异常抛出如何测试C++异常处理逻辑 单元测试中模拟异常抛出如何测试C++异常处理逻辑 单元测试中模拟异常抛出

    在c++++单元测试中,可通过多种方式验证异常处理逻辑。1. 使用google test的断言宏如assert_throw和expect_throw检查函数是否抛出预期异常;2. 模拟不同异常场景,包括正常路径无异常、标准库异常及自定义异常;3. 利用mock框架控制依赖对象抛出异常以测试上层逻辑;…

    2026年5月10日 用户投稿
    000
  • 结构体与类的区别在哪里 C++中struct和class关键对比分析

    结构体与类的区别在哪里 C++中struct和class关键对比分析结构体与类的区别在哪里 C++中struct和class关键对比分析结构体与类的区别在哪里 C++中struct和class关键对比分析结构体与类的区别在哪里 C++中struct和class关键对比分析

    c++++中struct和class的核心区别在于默认的成员访问权限和继承方式。1. struct默认成员为public,class默认成员为private;2. struct默认继承方式为public,class默认继承方式为private。除此之外,两者在功能上完全等价,均可支持构造函数、析构函…

    2026年5月10日 用户投稿
    000
  • Golang测试用例结构与命名规范技巧

    Go语言测试强调简洁与可维护性,测试文件需与被测代码同包且以_test.go结尾,如calculator_test.go;测试函数以Test开头,后接驼峰式名称,格式为func TestXxx(t *testing.T);推荐使用t.Run创建子测试以隔离场景;对于多输入情况,采用表驱动测试,将用例…

    2026年5月10日
    000
  • HTMLrev 上的免费 HTML 网站模板

    HTMLrev 是唯一的人工策划的库专门专注于免费 HTML 模板,适用于由来自世界各地慷慨的模板创建者制作的网站、登陆页面、投资组合、博客、电子商务和管理仪表板世界。 这个人就是我自己 Devluc,我已经工作了 1 年多来构建、改进和更新这个很棒的免费资源。我自己就是一名模板制作者,所以我知道如…

    2026年5月10日
    300
  • c++怎么自定义一个模板类_c++模板编程与泛型设计基础

    答案:C++模板类通过template定义泛型类,如MyVector,支持类型无关的通用设计,成员函数需在头文件中实现,实例化时指定具体类型,并注意操作合法性与多参数、特化等特性。 在C++中,模板类是泛型编程的核心工具之一。它允许你编写与数据类型无关的通用类,从而提升代码复用性和灵活性。下面介绍如…

    2026年5月10日
    000
  • 在 FastAPI 中实现三层架构处理复杂 Endpoint:服务拆分策略

    在 FastAPI 中实现三层架构时,处理需要多个服务支持的复杂 Endpoint 的最佳实践。针对诸如“get_transaction”这类需要聚合用户、产品和销售数据的情况,分析了在应用层直接调用多个服务,还是创建一个专门的聚合服务两种方案的优劣,并提出了基于服务身份和存储的拆分策略建议,以提升…

    2026年5月10日
    000
  • Golang性能优化的基本原则是什么 解析高效Go代码的核心准则

    go程序中常见的内存优化策略包括预分配切片容量、使用strings.builder或bytes.buffer进行字符串拼接、利用sync.pool复用对象以减少gc压力、避免大对象的值传递而改用指针传递、复用缓冲区以减少临时对象分配,以及警惕切片或字符串切片操作导致的底层数组隐式引用内存泄漏,这些策…

    2026年5月10日
    000
  • Golang包文档生成与注释规范

    Go语言通过源码注释生成文档,推荐在package语句前添加包级别注释说明功能,如“// Package calculator 提供基础数学运算功能”;导出函数需用动词开头的注释描述行为、参数、返回值,如“// Add 计算两个数的和”;导出类型和结构体字段也应注释用途;使用go doc命令或访问p…

    2026年5月10日
    000

发表回复

登录后才能评论
关注微信