而底层AI能力,则是驱动移动计算发展的另一大因素,能保证移动设备在有限算力和电源的条件下,具备足够的数据处理能力,以应对多元化的场景,比如游戏、娱乐、拍照等与我们生活息息相关的功能。在智能化、数字化的当下,AI无疑成为了各大平台厂商、芯片供应商争相竞逐的对象。
于是,移动计算随着5G和AI的自然拓展和迁移,并催生了具有更新、更好体验的全新平台,也就变得顺理成章了。而如果将5G当做一种基础能力,以AI能力为划分,移动计算的发展方向大致还可以分成两类:一类是升维,一类是融合。先说升维,以基于XR设备的移动计算平台为典型。人类几千年传播信息的媒介,无外乎都是二维、平面的介质;而元宇宙的XR设备,直接将二维升成了三维。我们存在的整个空间都变成虚拟化和可计算。这对底层的算法、算力提出了更高的要求。拿我们最能感知到的视觉算法来说,手机主要聚焦于二维拍照的场景,包括人脸检测、超分降噪、画质增强、超清人像等。以高通这一底层玩家为例,骁龙平台的高通AI引擎屡屡在这方面进阶:目前的第七代高通AI引擎已经将面部特征识别点增加到了300个,人脸检测速度相比上一代提升300%,还有像多帧降噪、局部运动补偿等功能。而来到XR设备端,一戴上即开始全场景实时计算,包括位置跟踪、3D对象跟踪、平面检测、空间映射和网格化、场景理解等;不仅算法从二维升阶到三维,还对真实性、低时延提出了更高的要求。另一类则是融合,这一趋势又以基于PC的移动计算为典型。随着移动办公、远程办公的需求兴起,PC端市场在这几年中正在迎来前所未有的增长。去年一年,全球PC市场创下了近十年来最大出货量,达到3.41亿台。值得注意的是,且不说一些芯片玩家开始ARM for PC,就是更多手机厂商、互联网厂商也纷纷在布局平板、笔记本产品,软件开发者们也开始在打破移动与PC之间的边界。
各种原因,其实不难理解,就是融合生态的优势。移动手机的发展如火如荼,PC价值又无法替代。不如两者打通、无缝切换,实现全场景的覆盖。这一点已成为业界共识。比如为了更好的“融合”,一些厂商原本在手机端的一些算法,比如视频会议时的面部识别、语音识别以及端侧AI加速等逐渐迁移到了PC端,还有像多屏协同、通用控制等新兴功能,正在成为生产力必备。
综上不难看出,以AI为驱动的移动计算的发展演变,正从基于手机这种单一形态,走向基于手机、XR、新型移动PC等终端或平台的多融合、多场景,而且速度迅猛。以XR设备为例,根据Counterpoint今年1月的数据,预计2025年,XR头显出货量将达到1.05亿台,相较2021年的1100万台增长10倍。但如何走怎么走,以及一些尚待解决的技术问题,比如算力、算法以及架构兼容等,都是企业不小的难题,也将影响着未来移动计算的发展迭代。
另一方面,海量算法加持让手机性能一再突破极限。比如摄像方面,降噪、自动对焦、使用滤镜、8K HDR等功能都可在算法的加持下实现,这些成为了手机拍摄大片的关键。游戏方面,利用深度学习超级采样技术(DLSS),手机上也能提取渲染场景的多维特征,并智能的组合多帧画面细节来构造高质量图像,实现超越传统渲染的性能,比如云渲染了解一下,这就对5G和AI有着更高维的技术要求。还有信号稳定传输、电池续航等问题,也能通过AI来智能优化。这些方法思路同样可以用在XR设备、移动PC上来提升性能。实际上,以AI作为共通的底层能力,为智能手机、XR设备、移动PC提供技术驱动,是行业内已经认可的技术路线。比如,基于“统一的技术路线图”,高通的AI能力已经逐步渗透到XR、PC等几乎所有类型的终端。
XR领域,Meta Oculus、微软Hololens、字节Pico、创维VR等几乎所有主流XR厂商的头显设备,都采用了骁龙XR系列平台。其中骁龙XR2是当前的代表方案之一,高通称这是首款将5G和AI结合的XR芯片。它引入了七路摄像头支持和定制化计算机视觉处理器,实现了实时追踪用户头部、嘴唇和眼球,26点手部骨骼追踪等功能。场景理解和3D重建能够将虚拟信息与物理世界更好融合,带来更为沉浸的交互体验。但与此同时,设备还会感知用户所在的外部环境,可以通过AI识别出门铃、孩子哭声等声音,来提醒人们处理紧急事件。语音助手也会实时待命,并能在嘈杂环境中识别命令,基于5G信号的能力及时将消息发送至用户终端(移动计算平台)上。
近日高通还发布了最新的第一代骁龙XR2+平台,在带来续航和散热表现的大幅提升之外,还引入了全新图像处理管线,支持并行感知技术,包括头部、手势和手柄追踪、3D重建以及低时延视频透视;该平台的高像素密度能够支持PC级虚拟景观,并能够同时支持多个传感器和摄像头,为更逼真的虚拟人物赋予细致入微的面部表情。Meta已经发布了基于该平台的首款产品Meta Quest Pro,与同样搭载骁龙平台的手柄结合,可通过多个嵌入式定位摄像头进行自追踪,并与头显之间实现超低时延;结合面部和眼球追踪时,能够在VR中为用户打造更加自然的虚拟形象。这同样不失为是一种以升维为核心的融合。移动PC领域,高通也在尝试用5G和AI来提升移动办公的生产效率、保护终端隐私。比如召开远程会议时,设备可以准确感知到主体的面部,即便是在人口嘈杂的街边咖啡店也可以实现精准聚焦,周围的路人也就不会出现在会议上。
在第三代骁龙8cx计算平台上,高通AI引擎可以提供29+ TOPS的加速能力,最高性能提升达3倍。云端部署、本地运行的方式,还能让轻薄本挑战高性能任务,并不占用过多资源。除了自身应用落地外,高通还将这些底层AI能力集成到一个统一AI软件栈,实现移动计算底层“大一统”。最上游还是统一的AI框架和AI引擎Direct。随后通过不同的开发者服务、系统软件、操作系统,分发给不同的移动计算平台,比如,智能手机、XR、ACPC(Always Connected PC,即始终连接的PC)等都在其中。其中高通还为开发者准备了一系列工具包,包括AI模型增效工具包、神经网络架构搜索、模型分析器等。
这样一来,它就能实现不同终端之间的应用开发互联互通,如手机到XR设备,以实现不同终端之间的能力打通。以手机为始,拓展出XR和PC等新形态,最后再将其集成给开发者,构建多元的开放生态,是有点“一生二,二生三,三生万物”的感觉了。而如果观察高通在5G和AI前沿技术上的探索,会发现他们对移动计算的想象还远不止于此。高通的通信领导力自然不必多说。今年3月,高通发布了第五代5G基带及射频解决方案——“骁龙X70”。它不但是全球唯一支持从600MHz到41GHz全部5G商用频段的厂商,还全球首个集成了5G AI处理器,它可以利用AI优化Sub-6GHz、毫米波频段的5G链路,提升速度、网络覆盖、移动性、链路稳健性、能效,并降低时延。而在AI的探索中,今年4月高通发表了一篇论文,介绍了一种用于全景分割的新型神经网络架构,基于对实例、语义关系的学习,它能像素级标记图像,有效识别事物特征并进行预测,同时还能自动关注重要的事物,并在所有基准测试中都达到了SOTA。
该研究可应用于自动驾驶、AR等场景下,目前已被CVPR 2022收录。想象一下这项成果走向应用,那不就是Free Guy(科幻电影《失控玩家》)走进现实了吗?
类classAprivatedeffooputs:fooendpublicdefbarputs:barendprivatedefzimputs:zimendprotecteddefdibputs:dibendendA的实例a=A.new测试a.foorescueputs:faila.barrescueputs:faila.zimrescueputs:faila.dibrescueputs:faila.gazrescueputs:fail测试输出failbarfailfailfail.发送测试[:foo,:bar,:zim,:dib,:gaz].each{|m|a.send(m)resc
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我正在使用的第三方API的文档状态:"[O]urAPIonlyacceptspaddedBase64encodedstrings."什么是“填充的Base64编码字符串”以及如何在Ruby中生成它们。下面的代码是我第一次尝试创建转换为Base64的JSON格式数据。xa=Base64.encode64(a.to_json) 最佳答案 他们说的padding其实就是Base64本身的一部分。它是末尾的“=”和“==”。Base64将3个字节的数据包编码为4个编码字符。所以如果你的输入数据有长度n和n%3=1=>"=="末尾用于填充n%
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我的代码目前看起来像这样numbers=[1,2,3,4,5]defpop_threepop=[]3.times{pop有没有办法在一行中完成pop_three方法中的内容?我基本上想做类似numbers.slice(0,3)的事情,但要删除切片中的数组项。嗯...嗯,我想我刚刚意识到我可以试试slice! 最佳答案 是numbers.pop(3)或者numbers.shift(3)如果你想要另一边。 关于ruby-多次弹出/移动ruby数组,我们在StackOverflow上找到一
为什么4.1%2返回0.0999999999999996?但是4.2%2==0.2。 最佳答案 参见此处:WhatEveryProgrammerShouldKnowAboutFloating-PointArithmetic实数是无限的。计算机使用的位数有限(今天是32位、64位)。因此计算机进行的浮点运算不能代表所有的实数。0.1是这些数字之一。请注意,这不是与Ruby相关的问题,而是与所有编程语言相关的问题,因为它来自计算机表示实数的方式。 关于ruby-为什么4.1%2使用Ruby返
这里是Ruby新手。完成一些练习后碰壁了。练习:计算一系列成绩的字母等级创建一个方法get_grade来接受测试分数数组。数组中的每个分数应介于0和100之间,其中100是最大分数。计算平均分并将字母等级作为字符串返回,即“A”、“B”、“C”、“D”、“E”或“F”。我一直返回错误:avg.rb:1:syntaxerror,unexpectedtLBRACK,expecting')'defget_grade([100,90,80])^avg.rb:1:syntaxerror,unexpected')',expecting$end这是我目前所拥有的。我想坚持使用下面的方法或.join,
它不等于主线程的binding,这个toplevel作用域是什么?此作用域与主线程中的binding有何不同?>ruby-e'putsTOPLEVEL_BINDING===binding'false 最佳答案 事实是,TOPLEVEL_BINDING始终引用Binding的预定义全局实例,而Kernel#binding创建的新实例>Binding每次封装当前执行上下文。在顶层,它们都包含相同的绑定(bind),但它们不是同一个对象,您无法使用==或===测试它们的绑定(bind)相等性。putsTOPLEVEL_BINDINGput
我可以得到Infinity和NaNn=9.0/0#=>Infinityn.class#=>Floatm=0/0.0#=>NaNm.class#=>Float但是当我想直接访问Infinity或NaN时:Infinity#=>uninitializedconstantInfinity(NameError)NaN#=>uninitializedconstantNaN(NameError)什么是Infinity和NaN?它们是对象、关键字还是其他东西? 最佳答案 您看到打印为Infinity和NaN的只是Float类的两个特殊实例的字符串
如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象