TVN视频架构 | 单CPU处理1s视频仅需37ms、GPU仅需10ms

为了解视频领域的问题,Google机器人团队提出:用进化算法自动设计出以原来计算成本的一部分提供相当性能的网络。 具体来说,谷歌研究者提出了一种为视频理解任务设计微神经网络(tiny neural network)族的通用方法。 背 景 Google机器人团队利用进化算法,获得低计算成本、高性能的视频网络架构 TVN,该网络运行高效,速度可达之前视频模型的 100 倍。 今天我们要说的主要是理论知识,有兴趣的同学可以持续关注,我们继续开始,一起学习! 上图:TVN与之前流行的方法性能相当,但在CPU上处理一个视频仅37ms,在GPU上时间为10ms。TVN的速度是当前视频模型的100倍,如 (2+1)D ResNet-101。 这些微神经网络可实现相当高的准确率,而且运行速度高效,可以实时乃至于以更快速度去运行。它们在一块CPU上处理约1秒的视频片段需要37到100ms左右,在一块GPU上仅仅需要10ms,速度是当前模型的100倍之多(见上图图)。 研究者将这些网络称为Tiny Video Networks (TVN),因为此类网络仅需要极小的运行时,这在视频模型中尚属首例。 上图:TVN和主流(2+1)D视频理解模型在Moments-in-Time (MiT)数据集上的运行时和模型准确率对比情况。 速度慢的原因 视频理解现在这个领域也值得越来越多的研究者关注,目前也是一个非常活跃的研究领域,至今也有大量成功的框架算法。 其中,架构搜索是新兴的一个领域,近期也出现很多种类的方法,其中大部分面向图像和语言理解的领域。这些之前的方法中没有一个可为视频理解领域构建高效架构。其主要原因在于:视频内容量非常大,需更多的处理;而架构搜索是时间密集过程,因此将架构搜索应用于视频领域需要费很大功夫,且在很多情况下计算成本高昂。 最大优点及贡献 […]

视频架构搜索

Video 机器人技术研究人员Michael S. Ryoo和学生研究员AJ Piergiovanni发布。了解视频是一个具有挑战性的问题。由于视频包含时空数据,因此需要使用其特征表示来抽象外观和运动信息。这不仅对于自动理解视频的语义内容(例如网络视频分类或体育活动识别)必不可少,而且对于机器人的感知和学习也至关重要。就像人类一样,来自机器人摄像机的输入很少是世界的静态快照,而是采用连续视频的形式。 当今的深度学习模型的能力在很大程度上取决于其神经体系结构。卷积神经网络视频(CNN)通常是通过将已知的2D架构(例如Inception和ResNet)手动扩展到3D来构建的,或者是通过精心设计将外观和运动信息融合在一起的两流CNN架构来构建的。然而,设计最佳视频架构以最佳利用视频中的时空信息仍然是一个未解决的问题。尽管已经广泛探索了神经体系结构搜索(例如Zoph等人,Real等人)以发现良好的体系结构以获取图像,尚未开发针对视频的机器优化神经体系结构。视频CNN通常需要大量的计算和内存,因此设计一种在捕获其独特属性的同时进行有效搜索的方法非常困难。 为了应对这些挑战,对自动搜索进行了一系列研究,以寻求更理想的网络架构来进行视频理解。展示了三种不同的神经体系结构演化算法:学习层及其模块配置(EvaNet);学习多流连接(AssembleNet);并构建计算效率高且紧凑的网络(TinyVideoNet)。开发的视频架构在多个公共数据集上的性能明显优于现有的手工制作模型,并证明网络运行时间可提高10倍至100倍。 EvaNet:第一个演进的视频体系结构 EvaNet是在ICCV 2019的 “ 视频时空神经结构的演进 ”中引入的,它是设计神经结构搜索视频体系结构的首次尝试。EvaNet是模块级别的体系结构搜索,着重于查找时空卷积层的类型以及它们的最佳顺序或并行配置。一种进化算法带有变异运算符的变量用于搜索,迭代更新一系列体系结构。这允许并行且更有效地探索搜索空间,这对于视频体系结构搜索必须考虑各种时空层及其组合。EvaNet演化了多个模块(在网络中的不同位置)以生成不同的体系结构。 https://arxiv.org/abs/1811.10636 实验结果证实了通过演化异构模块而获得的此类视频CNN架构的好处。该方法通常会发现,由多个并行层组成的非平凡模块效率最高,因为它们比手工设计的模块更快并且表现出更好的性能。另一个有趣的方面是,由于不断发展,获得了许多性能相似但性能各异的体系结构,而无需进行额外的计算。与它们形成合奏可进一步提高性能。由于它们的并行性质,即使是整体模型也比其他标准视频网络(例如(2 + 1)D ResNet )在计算上更加高效。已经开源了代码。 https://arxiv.org/abs/1711.11248 https://github.com/google-research/google-research/tree/master/evanet 各种EvaNet架构的示例。每个彩色框(大或小)代表一个图层,框的颜色指示其类型:3D转换。(蓝色),(2 + 1)D转换。(橙色),iTGM(绿色),最大合并(灰色),平均(紫色)和1×1转换。(粉)。通常将图层分组以形成模块(大盒子)。每个框中的数字表示过滤器的尺寸。 AssembleNet:构建更强大,更好的(多流)模型 […]

视频录制与编辑架构设计

视频录制模块 视频录制由视频预览、伴奏播放、视频录制/暂停、倍速/半速录制四部分组成。 (1)视频预览 在Android&IOS平台我们可以使用自己的Camera+OpenGL ES进行视频的预览,这里的预览过程一般就是从相机获取纹理ID并进行诸如美颜、贴纸等特效的处理,之后再绘制到相应的View上。 (2)伴奏播放 伴奏播放是指将一个伴奏文件以m4a或mp3形式下载到本地,随后对文件进行解码。最常见的解码方案是FFmpeg。由于经过解码获取的PCM或WAV文件可被直接读取,伴奏播放的同时我们可将解码后的伴奏PCM文件写入磁盘中以方便后续编辑阶段更高效率的使用。 (3)视频录制暂停 开始录制之后系统将预览的视频帧编码并写入文件中,这相当于为录制开辟一条旁路。当得到一张图像后系统会将其送入编码器,此时这里的纹理ID保持不变并可再让其绘制到我们的View上。如果用户点击暂停则停止编码,当用户继续则将视频帧进行再次编码。暂停时也可以当作一段视频的录制结束,后期再做拼接处理。 (4)倍速/半速录制 对短视频APP来说这一步骤十分重要,常用的方法是抽帧或者插帧操作。例如用户录制一段打篮球的视频并希望在扣篮或上篮时放慢动作,首先需要以正常速度录制而后再拉长视频以实现慢放效果。倍速与半速录制的关键是背景声处理,这里需要对背景声进行变速不变调处理。在FFmpeg的AVfilter模块中的Audiofilter里面有一个被称为Tempo的滤波器,而在SOX中也有tempo.c可实现类似功能,当然SoundTouch也可以实现。 视频录制器分为三部分:输入、处理和输出。 输入就是通过摄像头和麦克风这类采集设备去做音频和画面的采集。处理则是针对采集到的画面和声音进行处理,比如大家熟知的美颜、混响等等。最终输出其实会分为几部分,首先是预览,比如用手机录制视频的时候,在手机屏幕上会有预览画面;第二部分是编码,在安卓平台是采用硬件编码+软件编码的处理,而iOS平台的兼容性较好,所以只采用硬件编码就可以达到要求;最后是将音视频数据封装成一个容器——FLV或MP4,再进行IO输出, IO输出有可能是磁盘——录播场景,也有可能向流媒体服务器推流——直播场景。 音频架构设计: 对于安卓平台,要有一个MP3的Decoder,它可以通过MAD、Lame或者FFmpeg等开源库来实现,最终通过AudioTrack 的API或者OpenSL ES的API来播放,同时我们把播放PCM数据放到PCM队列中。而在采集过程,我们一般使用Audio Recoder或OpenSL ES来采集人声,采集到的人声也会放在一个PCM队列中。在一般架构设计中,队列一般承担生产者和消费者中间解耦的角色,因此可以看到Input和Output就是上面两个队列的生产者,而Consumer线程中的Encoder就是消费者——从队列中取出PCM数据进行编码。 对于iOS平台同样,我们使用的AUGraph,它底层使用的是AudioUnit,其中RemoteIO类型的AudioUnit可以采集人声,AudioFilePlayer类型的AudioUnit可以播放伴奏。然后通过Mixer类型的AudioUnit将人声和伴奏混合之后入队,后面Consumer线程中的Encoder从队列中取出PCM数据进行编码。 视频架构设计: 安卓平台通过Camera采集视频,在Output中首先是通过EGL Display来回显预览界面,其次编码则是采用MediaCodec硬件编码和Libx264软件编码相结合的实现方式(由于安卓平台硬件编码有可能出现兼容性问题)。而在iOS平台,直接使用Camera采集,然后通过GLImageView来进行渲染,GLImageView的实现方式是继承自UIView,然后在LayerClass中返回CAEAGLLayer,然后构造出OpenGL环境用来渲染纹理,最终再用VideoToolbox进行编码输出。编码后的数据会放到H.264队列中,那么这里的生产者就编码器,消费者实际上是Consumer模块,它把H.264队列中数据Mux后再进行IO操作(输出到磁盘成为mp4文件或者输出到流媒体服务器)。 视频编辑模块 […]

视频网站可以分为两类核心业务:视频上传和视频播放。

视频上传 从上传到发布视频的时间可能会比较长,尤其是遇到大视频,转换服务器的压力会比较大,内部传输的带宽消耗比较多,这个给用户的体验会比较差。 在产品,技术和服务上要多考虑怎么满足用户的“快”感。这是一个系统工程,不仅仅是产品技术的问题,还有很重要的内容监管。 上传视频量太大,内容审核人员忙不过来,出现延迟。需要做策略上的调整,例如:先发布后审核,特殊账号免审核。但有个政策风险需要考虑,万一内容监管出了纰漏,会吃官司,甚至公司被迫关门。 视频播放 Web服务器的压力不是最大的,资源最紧张的地方还是“流媒体服务器”。几乎所有的视频分享网站的播放器都是flash技术,不适合看大的视频,非常耗带宽。所以电影电视剧还是使用P2P技术的好,既快又省钱。 提高视频缓冲速度的几个策略:足够的带宽(优酷土豆的带宽在上百G),就近访问原则(CDN服务,有钱的购买第三方;没钱的只好自己开发,功能够用就好),大视频分割成小文件。 分发策略很重要,不是分发越多就越好,需要有个资源平衡,关键是把热点视频源分发出去。 视频内容管理。经常需要删除某些低俗、违规视频,除了在播放页不能看以外,还需要对内容源进行管理,不管存在几份,分发到哪里去了,最好都要可控   润竹开发公司,十年开发经验,顶尖团队研发,对市场动态拥有敏锐的洞察力,欢迎咨询QQ:3273801084

短视频APP开发架构思考

提到短视频就必须提到抖音,没办法谁让人家抖音是真的火。说实在的,抖音并不只是依靠各种噱头来获取大众的关注,人家只是在默默的更新和优化,颇有“闷声做大事”的势头。对于短视频app开发者来说,短视频拍摄完成后,上传速率、播放流畅度、带宽成本等问题都令大家十分头疼。而对于一般的初创人员来说,自身又没有太多的资源与成本购买大量的服务器用于做视频的压缩、分发处理。这个就不可避免的用到诸如腾讯云、七牛云等第三方是视频存储分发服务。 图片发自简书App 然而当前的短视频APP架构又趋于雷同;短视频观看、留言、点赞、分享;即时通讯;会员等级体制;拍摄上传。有的仅仅是更改一些逻辑或者UI样式就匆匆上线了。有的是针对行业细分。如旅游类的短视频、亲子类的短视频。 短视频APP开发架构思考 爱炎科技短视频APP开发 短视频类APP的开发中首先不可避免产生的问题就是短视频的发布速度,不同的应用场景下,短视频的发布速度也不同。比如:聊天场景下的短视频发布,可以直接在云端进行转码,将原视频直接访问然后最大限度的提升发布速度。实时性要求不高的场景在上传时通常会上传码率相对较高的视频,可以运用低复杂度转码加快转码速度,从而保证短视频的发布速度得到一定的提升。 图片发自简书App 其次就视频的转码与压缩;不知道大家是不是跟我一样,刷抖音的时候经常会刷到那种视频点赞小爱心上万甚至百万的短视频,看完之后不禁感叹一句“又一个在抖音爆火的幸运儿”。然后这些点赞量极高的短视频就会变成热门视频,当然,这时候会带来相当大的带宽成本。所以就需要对这些热门视频重新转码,提升转码的复杂度,将视频文件缩小从而达到降低带宽成本的目的。 短视频APP开发架构思考 短视频APP开发 最后是怎样提升用户的播放体验,现在市面上手机用户的终端和网络情况都不一样,所以在进行转码的时候需要选择多清晰度转码,提升短视频的播放速度和流畅度。这样一来,用户体验就会大大提升,用户黏性自然而然的也就提上去了。 作者:奇艺芒果 链接:https://www.jianshu.com/p/8b0de2220875 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 关于短视频播放端需要关注的内容,播放端大概是最能直接影响用户产品体验,而打开短视频的速度快慢决定了用户对短视频app的第一印象。实不相瞒就我个人来讲,那种下载第一次就出现什么问题的app我是果断不会再下载第二次的,因为第一印象实在是太重要了。为了实现快速播放短视频,需要进行协议优化、解码渲染优化等方案。短视频通常都是比较“短小精悍”的,很多平台通常都会采用循环播放的模式吸引用户进行重复观看,避免用户流失。所以要想实现无缝循环播放,边播放边缓存就十分重要了,可以有效的节省流量。 作者:奇艺芒果 链接:https://www.jianshu.com/p/8b0de2220875 来源:简书 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。  润竹开发公司,十年开发经验,顶尖团队研发,对市场动态拥有敏锐的洞察力,欢迎咨询QQ:3273801084

谁是最好用的短视频APP?

这年头,谁没刷短视频上瘾过?说道短视频,大多数人能叫得上名字的,就是抖音和快手两家了(微视:我……)。 虽然内容相似度很高,但是抖音和快手在主要交互上差异很大:抖音上滑切换无限式体验vs快手瀑布列表。 一线城市的年轻人也许普遍感觉抖音更火,甚至觉得与快手根本不在一个LEVEL,怎么说也是横扫全球各大应用商城的霸榜APP,然而数据显示二者其实差别不大。 虽然抖音更加国际化,个性算法一流,内容也相对更潮;然而快手深耕下沉市场,在三四线至农村地区的地位坚不可摧,粉丝粘着性与变现能力也不容小觑。 方法 那么在用户体验上,抖音和快手谁更厉害?我们来做一次体验评测。评测方法用的是国际上通用的可用性测试,是我的产品设计体系中提到过的重要环节之一。 该方法的科学性毋庸置疑,主要的缺憾可能是参与者都是互联网领域的设计师,平均水平过高且对快手相对没有抖音那么熟悉。不过,结果还是很有参考价值的。 本次评测主要针对这两款短视频都具备的常规功能,包括:浏览、收藏、评论、歌曲、关注、录制、直播。 两组用户分别用这两款APP完成相同的任务后,成功率分别如下。从任务成功率上,抖音暂时领先。 问题一、分段录制视频 ★ ★ ★ ★ ☆ 抖音的进度条距离拍摄按钮过远,很多人录制时感受不到进度条的存在。40%的抖音测试用户一开始没有理解什么是分段录制。 抖音的删除按钮没有文字描述(×容易让人想到关闭),且二次提示时没有明确示意出即将删除的视频片段是哪一段,让人容易有不安全的感觉。100%的抖音测试用户一开始不知如何删除视频片段。 快手的进度条在拍摄按钮外圈,拍摄时一眼可见进度条的移动位置,而且还有秒数提醒。60%的快手测试用户一开始没有理解什么是分段录制。 快手的删除按钮有明确的文字描述,且二次提示时即将删除的视频进度条会闪烁,让人确定即将删除的是哪一部分。60%的快手测试用户一开始不知如何删除视频片段。 相比之下,快手的设计更好,这一回合快手获胜。 问题二、直播入口 ★ ★ ★ ★ […]

红中麻将定制开发

游戏简介 一款游戏APP,以湖南红中麻将为大众熟悉。游戏中红中可当赖子,只能自摸但容易胡牌! 红中麻将不仅将中国风的独特魅力与国粹麻将完美融合,更是添加了房卡模式,让玩家体验更加畅快。进入游戏首先往往是印入眼帘的水墨般中国风。 作为湖南、四川地区的热门app麻将游戏,鹏派针对当地打牌规则习惯而一一设计,游戏为积分制,含各种道具和特色活动,一般分为两种模式。 一种模式是:可邀请好友一起玩,或者在万人大厅随机加入游戏; 另一种模式:只能邀请微信好友或加入指定房间才能开始游戏。 红中麻将成品出售 安卓端的jni开发,各种sdk的接入,iOS端第四方支付接入,微信相关开发等工作 作为一款热门的麻将类游戏,也是借助微信等各种接口,微信登录,游戏截图分享,邀请好友,语音及时聊天等迅速扩张市场 红中麻将定制开发 软件环境:Windows,Android/IOS 硬件环境:台式机,移动设备 开发工具:unity,Visual Studio2015 定制开发内容 1.使用NGUI对麻将界面进行搭建。 2.执行发牌动画,选取和打出麻将操作。 3.系统设置,语音进入,帮助,自动托管等功能的实现。 润竹棋牌游戏开发公司,十年开发经验,顶尖团队研发,对市场动态拥有敏锐的洞察力,欢迎咨询QQ:3273801084 案例链接:http://www.joyq.cn  {转}CPS中安网