移动互联网的发展给人们的社交和娱乐方式带来了很大的改变,以vlog、短视频等为代表的新兴文化样态正受到越来越多人的青睐。同时,随着AI智能、美颜修图等功能在图像视频编辑App中的应用,促使视频编辑效率和视频效果得到了很大的提升,也让视频应用场景更加丰富。
当前剪辑产品功能多样、素材丰富,但是开发周期较长、门槛较高。为了让剪辑软件更加智能、简单易用,提升开发者的效率,HMS Core 6为开发者提供视频编辑服务(Video Editor Kit),提供视频导入、编辑、渲染、导出、媒资管理等一站式视频处理能力。除了支持完整的传统视频编辑功能,视频编辑服务还提供了诸如专属滤镜、人物追踪、一键染发等丰富的AI处理能力辅助视频创作,为用户带来更加畅快的创作灵感,打造更加智能的剪辑体验。

图1. 基于AI能力的专属滤镜、人物追踪、一键染发效果展示
多样化的智能视频处理能力是由一个个神经网络模型实现的,由于训练好的模型文件较大(单个模型大小一般为十几甚至几十兆),而手机等设备ROM和RAM空间大小有限,如何以更少的终端设备空间占用为开发者提供更丰富的智能化视频处理能力,成为移动应用视频编辑面临的一大挑战。
为解决以上挑战,HMS Core视频编辑服务选择使用华为自研AI框架MindSpore Lite进行神经网络模型推理。MindSpore Lite是一款全场景AI推理引擎,通过统一API接口支持在端、边、云的不同环境快速部署,支持HarmonyOS、Android、iOS、Windows等多种操作系统,支持Ascend、GPU、CPU(x86、arm……)等多种硬件执行。除支持MindSpore训练出的模型格式,MindSpore Lite还支持TensorFlow,TensorFlow Lite、Caffe、ONNX等第三方模型格式的转换及推理。

图2. MindSpore Lite架构图
MindSpore Lite为AI模型推理提供高性能和超轻量的解决方案:通过高效的内核算法和汇编级优化,以及CPU、GPU、NPU的异构调度,可以充分发挥硬件算力,实现最小化推理时延和功耗;提供模型量化压缩技术,采用训练后量化(Post-Training Quantization, PTQ),无需数据集即可直接将权重数据从浮点型映射到低比特的定点数据,有效降低模型大小,助力AI模型在资源受限环境下的部署执行。

图3. 量化技术原理介绍
针对权重数据的量化支持固定比特量化和混合比特量化两种形式。固定比特量化采用Bit-Packing的方式,支持1-16任意比特的权重量化,满足用户在不同压缩场景下的要求,同时针对模型量化后的数据分布情况,自动选择合适的编码策略进行压缩编码,从而达到最优的压缩效果。

图4. 固定比特量化压缩
混合比特量化根据神经网络不同层对量化损失的敏感度不同的特点,采用均方误差作为优化目标,自动搜索出最适合当前层的比特位,在保证精度的同时实现更大的压缩率。同时针对量化后的模型,采用有限状态熵(Finite State Entropy, FSE)对量化后的权重数据进行熵编码进一步压缩,实现对模型的高效压缩,提升模型传输速率和减少模型存储空间。

图5. 混合比特量化压缩
除此之外,量化时还会采用Bias Correction的方式,最小化其量化误差。Bias Correction会根据权重数据固有的统计学特性,反量化时对其进行校准,使权重值量化前后具有相同的期望和方差,能够大幅度提高模型精度。
视频编辑服务中的AI模型采用MindSpore Lite提供的混合比特量化方式,最终在保证精度的同时达到了平均5x+的模型压缩效果,例如一键染发的模型从原来的20.86M压缩到3.76M,有效解决了模型过多、文件过大导致的部署困难问题。

图6. 视频编辑模型量化效果(来源于MindSpore Lite实测数据)
通过对AI模型的量化压缩,在ROM空间占用不变的前提下,保障剪辑产品可以部署更多的AI模型,充分发挥AI能力来提供更多的特效应用场景,使得剪辑功能更加强大、更加智能。华为官方剪辑软件花瓣剪辑在接入视频编辑服务能力后,用户可通过使用专属滤镜、人物追踪等AI视频剪辑功能(部分特性随花瓣剪辑App升级陆续开放),让视频剪辑更便捷和更富有趣味性。
MindSpore Lite致力于打造高性能、超轻量级的全场景 AI引擎,除高性能内核算法及硬件异构调度、量化压缩之外,还提供端云协同的一站式训练和推理能力。HMS Core视频编辑服务基于MindSpore Lite,助力开发者打造更加易用且智能的剪辑工具。
欲了解更多信息,欢迎访问官网
我想在一个没有Sass引擎的类中使用Sass颜色函数。我已经在项目中使用了sassgem,所以我认为搭载会像以下一样简单:classRectangleincludeSass::Script::FunctionsdefcolorSass::Script::Color.new([0x82,0x39,0x06])enddefrender#hamlengineexecutedwithcontextofself#sothatwithintemlateicouldcall#%stop{offset:'0%',stop:{color:lighten(color)}}endend更新:参见上面的#re
我想为我的Rails网络应用程序提供推荐功能。特别是,我想向新注册的用户推荐他可能想要关注的其他用户。Rails中是否有用于此目的的引擎/gem?如果没有,我应该从哪里开始构建它?谢谢。 最佳答案 有Coletivogemhttps://github.com/diogenes/coletivo我试了一下。在MySQL上运行。Neo4jhttp://neo4j.org真的很容易实现一个“跟随谁”。事实上,大多数展示其能力的样本都涉及“跟随谁”。快速提示-只有在JRuby上运行时,Neo4j.rb才会很酷。如果不是-使用Neograph
无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD
导读:随着叮咚买菜业务的发展,不同的业务场景对数据分析提出了不同的需求,他们希望引入一款实时OLAP数据库,构建一个灵活的多维实时查询和分析的平台,统一数据的接入和查询方案,解决各业务线对数据高效实时查询和精细化运营的需求。经过调研选型,最终引入ApacheDoris作为最终的OLAP分析引擎,Doris作为核心的OLAP引擎支持复杂地分析操作、提供多维的数据视图,在叮咚买菜数十个业务场景中广泛应用。作者|叮咚买菜资深数据工程师韩青叮咚买菜创立于2017年5月,是一家专注美好食物的创业公司。叮咚买菜专注吃的事业,为满足更多人“想吃什么”而努力,通过美好食材的供应、美好滋味的开发以及美食品牌的孵
一、引擎主循环UE版本:4.27一、引擎主循环的位置:Launch.cpp:GuardedMain函数二、、GuardedMain函数执行逻辑:1、EnginePreInit:加载大多数模块int32ErrorLevel=EnginePreInit(CmdLine);PreInit模块加载顺序:模块加载过程:(1)注册模块中定义的UObject,同时为每个类构造一个类默认对象(CDO,记录类的默认状态,作为模板用于子类实例创建)(2)调用模块的StartUpModule方法2、FEngineLoop::Init()1、检查Engine的配置文件找出使用了哪一个GameEngine类(UGame
随着ruby被引入为新的编程救世主,我想知道是否有人基于易用性、运行所需的资源、可用性和易定制性而有偏好。两者有更好的吗? 最佳答案 好吧,任何基于Rails的社交网络应用程序的比较都应该包括insoshi(http://portal.insoshi.com/)。话虽这么说,这三个都非常相似,区别在于实现细节。Lovd和Insoshi都是完整的Rails应用程序;它旨在供您将它们用作入门工具包,并使用您自己的自定义功能对其进行扩展。另一方面,CommunityEngine是一个Rails插件。这意味着您可以更轻松地向现有Rail
一般来说,我是Middleman和ruby的新手。我已经安装了Ruby我已经安装了Middleman和gem以使其运行。我需要使用slim而不是默认的模板系统。所以我安装了Slimgem。Slim的网站只说我需要'slim'才能让它工作。中间人网站说我只需要在config.rb文件中添加模板引擎,但是没有给出例子...对于没有ruby背景的人来说,这没有帮助。我在git上找了几个config.rb,它们都有:require'slim'和#Setslim-langoutputstyleSlim::Engine.set_default_options:pretty=>true#Se
关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,describetheproblem以及迄今为止为解决该问题所做的工作。关闭9年前。Improvethisquestion是否有适用于这些的3d游戏引擎?
西安华为OD面试体验开始投简历技术面试进展工作进展开始投简历去年一整年一直在考研和工作之间纠结,感觉自己的状态好像当时的疫情一样差劲。之前刚毕业的时候投了个大厂的简历,结果一面写算法的时候太拉跨了,虽然知道时dfs但是代码熟练度不够,放在平时给足时间自己可以调试通过,但是熟练度不够那面试当时就写不出来被刷了。说真的算法学到后期我感觉最重要的是熟练度和背板子(对于我这种普通玩家来说),面试题如果一上来短时间内想不出思路就完蛋了。然后由于当时找的工作不是很理想就又想考研了。但是考研是有风险的,我自我感觉自己可能冲不上那个学校,而找工作一个没成可以继续找嘛。本着抱着试试看的态度在boss上投了简历,
我有一个Rails3引擎。在初始化程序中,它需要来自某个文件夹的一堆文件。在这个文件中,我引擎的用户定义了代码、业务逻辑、配置引擎等。所有这些数据都静态存储在我的引擎主模块中(在应用程序属性中)moduleMyEngineclass我希望在开发模式下根据每个请求重新加载这些文件。(这样用户就不必重新加载服务器来查看他刚刚所做的更改)当然我可以做这样的事情而不是初始化config.to_preparedoMyEngine.application.clear!load('some/file')end但是这样我会遇到问题(因为这个文件中定义的常量不会真正被重新加载)。理想的解决方案是让我的整