展开

关键词

如何用AI实现视频防抖?还是无需裁剪画面的那种 | 谷歌&台湾大学

鱼羊 发自 凹寺 量子位 报道 | 公众号 QbitAI 右边的画面,是不是比左边的画面看上去稳定许多? ? 这样的效果,大家可能并不陌生。 方法原理 该方法的核心思想,是融合视频中多个相邻的信息,来呈现无需裁剪的完整稳定视频。 具体而言,对于输入视频,首先对每一图像特征进行编码,并在目标时间戳处将相邻翘曲至虚拟相机空间。 这里面主要用到了目标到关键的翘曲场,以及关键到相邻的估计光流两个信息,这样,就可以通过链接流向量,计算目标到相邻的翘曲场。 然后,融合这些特征。 ? 传统的全景图像拼接算法通常是在图像级别进行融合。这样做的缺点在于,如果估计光流不可靠,就会产生伪影。 于是,研究人员提出结合两种策略的优点:首先将图像编码为CNN特征,然后多个中融合翘曲特征。 对于每个源,研究人员将融合特征图和各个翘曲特征一起,解码成输出和相关的置信度图。

33320

论文翻译 | 多鱼眼相机的全景SLAM

1 摘要 提出了一种基于特征的全景图像序列同时定位和建图系统,该系统是在宽基线移动建图系统中多鱼眼相机平台获得的.首先,所开发的鱼眼镜头校准方法结合了等距投影模型和三角多项式,以实现从鱼眼镜头到等效理想相机的高精度校准 ,这保证了鱼眼镜头图像到相应全景图像的精确转换.其次我们开发了全景相机模型、具有特定反向传播误差函数的相应束调整以及线性姿态初始化算法.第三,实现的基于特征的SLAM由初始化、特征匹配、跟踪和闭环等几个特定的策略和算法组成 ,以克服跟踪宽基线全景图像序列的困难.我们在超过15公里轨迹的大规模彩信数据集和14000幅全景图像以及小规模公共视频数据集上进行了实验. BA的可靠姿态初始化,用于基于多摄像机平台的全景摄像机,该摄像机能够在复杂的室外环境中实现高度鲁棒的性能 提出了一种新颖的鱼眼镜头标定方法,实现了亚像素精度,保证了BA的平滑跟踪和高精度 在大规模宽基线全景图像序列数据集和多鱼眼相机平台捕获的开源小规模视频数据集上 当应用于三个鱼眼相机获得的小规模视频序列时,只有第4节中描述的几个参数(例如,公式(14)中的误差阈值和球体半径)必须重置, 这些参数是专门为我们的PAN_SLAM中的宽基线全景图像序列设计的.

56620
  • 广告
    关闭

    直播应用9.9元起 即刻拥有

    9.9元享100GB流量,1年有效,结合移动直播SDK、美颜特效SDK及小程序直播插件等,构建云+端一体化直播平台,支持电商带货,在线教育,游戏直播,社交直播等多场景

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    透过镜头看杯酒人生

    我们知道,视频是由图像序列编码而成,全景视频也不例外——由全景图像序列编码生成。标准的全景视频宽高比为2:1,这是因为VR通用播放器使用的是等距圆柱投影模型。 简言之:标准的全景视频之所以将宽高比设置为2:1,目的是能够将该视频“贴”在一个球面上。 但这样算会带来一个问题:并不能保证全景图像和鱼眼图像是一一对应关系,且图5可看出,全景图像的点会比鱼眼图像点要多(白色部位),这就会导致生成的全景图像存在很多"漏洞"。 为了解决这个问题,我们可以将这个初中数学题反过来,已知全景图像点P'(x,y),宽高w、h,和鱼眼图像360度圆半径R以及鱼眼图像中心点O(cx,cy),求鱼眼图像中对应的点P(x',y')。 image.png 通过以上步骤即可算出全景图图像。

    31420

    Three.js 实现 360 度全景浏览的最简单方式

    这就是 Three.js 的 3D 场景的创建和渲染成 2D 的流程。 简单回顾了下基础,那全景图改怎么浏览呢? 那这么说做全景图浏览需要先创建个立方体或者球体喽? 相机位置设置在了 z 轴 100 的位置,这样看 z 为 0 的位置就是正面去看的,可以感受下这个看的方向。 有了 3D 的 Scene,设置好了相机,就可以用 Renderer 把它渲染出来了。 我们来做下小结: 全景图浏览不用创建立方体或者球体,直接给场景(Scene)设置立方体纹理(CubeTexture)的背景就可以了,贴上 6 张图。 还要设置下相机,加上轨道控制器,通过渲染器一的渲染出来,这样就实现了全景图浏览的功能。 至于那六张贴图,通过 PTGui 或者类似的工具就可以裁切出来。

    78730

    透过镜头看杯酒人生

    我们知道,视频是由图像序列编码而成,全景视频也不例外——由全景图像序列编码生成。标准的全景视频宽高比为2:1,这是因为VR通用播放器使用的是等距圆柱投影模型。 简言之:标准的全景视频之所以将宽高比设置为2:1,目的是能够将该视频“贴”在一个球面上。 ? 但这样算会带来一个问题:并不能保证全景图像和鱼眼图像是一一对应关系,且图5可看出,全景图像的点会比鱼眼图像点要多(白色部位),这就会导致生成的全景图像存在很多"漏洞"。 为了解决这个问题,我们可以将这个初中数学题反过来,已知全景图像点P'(x,y),宽高w、h,和鱼眼图像360度圆半径R以及鱼眼图像中心点O(cx,cy),求鱼眼图像中对应的点P(x',y')。 ? 通过以上步骤即可算出全景图图像。 ? 经过以上转的视频观看会发现有毛毛躁躁的感觉,这也是直接使用上文的公式转换带来的问题,使用一些常见的插值算法能够在一定程度上降低毛躁的效果。

    24120

    KAIST 研究人员提出 DIGAN:一种基于隐式神经表示 (INR) 的生成对抗网络 (GAN),用于使用机器学习生成视频

    视频信号的复杂性,在时空方向上连续耦合,导致了视频创建的难度。具体来说,大多数先前的工作都将视频建模为 RGB 值的 3D 网格,即连续的 2D 图像,使用离散解码器(如卷积或自回归网络)。 然而,由于立方复杂性,这种离散建模限制了创建电影的可扩展性,并错过了内在的连续时间动态。 同时,出现了一种编码连续信号的新范式:隐式大脑表征。 韩国科学技术高等研究院的研究人员最近发表了一项研究,旨在通过将视频作为连续信号读取来创建基于 INR(或隐含)的视频制作模型。 因为视频的 INR 可以在不可预测的时间段内自回归地合成强相关的,所以这种有效的判别方法是可行的。 主要思想是使用隐式神经表示将电影直接建模为连续信号。 为了使运动更具动态性,研究人员对 UCF-101、Sky 和Kinetics-food 使用连续的 16 ,但太极使用步幅 4(即在所选之后跳过三)。

    17030

    两种方式将视频信息注入BERT

    最主要的难点都是如何将文本信息融入到BERT的框架中。本文只涉及video-linguistic BERT。 视频可以理解为一组快速播放的图片,其中每一幅图片定义为(frame)。 一般处理视频数据首先需要按每秒钟x(fps)的频率去对视频做抽取,然后将n个连续的frame组成一个片段(clip),这样视频就被切割成了很多不重叠的片段。 视频中抽取出来的特征向量自然是连续实值向量(属于整个实数空间),和离散的文本有很大的不同。 1 方法 1.1 视频文本数据处理(video and language processing) 针对video的处理,首先从input video每秒中抽取20画面(20 fps),每30组成一个片段 1.3 跨模态CBT模型 前面介绍了单一模态下的模块,针对既有视频video中提取的visual features记为y=y1:T)和文本(video中利用ASR提取出的文本token,记为x=x1

    50010

    《 NEXT 技术快报》:图形篇 (下)

    【应用落地】 他们组的一些论文,不限于这篇,可以用于使用手机等设备快速获取物体的BRDF信息,从而在游戏中创建出更加真实的基于物理的渲染效果。 v=keIirXrRb1k 【摘要】 作者使用常见的深度摄像头,采用层级结构进行SLAM构建,做到了环境模型的实时重建和修正,以及摄像机姿态的准确恢复和实时的闭环修正,基本思想是在连续的11内做跟踪 【解决方法】 作者使用常见的深度摄像头,采用层级结构进行SLAM构建:1)连续的11组成一个块,在这个块上,作者使用SIFT特征点来做摄像机姿态跟踪,并辅助以特征点的分布、缩略图中的点位置信息,完成该 11时间范围内的姿态修正,并将新的深度信息及时更新到三维重建的模型中,将连续稳定的特征点整合在一起;2)在chunk之间(不是每都执行),再对一些关键进行全局优化,同时考虑稳定特征点、voxel的位置信息和法线信息在不同摄像机姿态下的对比 【解决方法】 使用了类似openvdb的思路,对三维信息进行压缩,仅存储空的voxel信息。

    70011

    FFmpeg简易播放器的实现-视频播放

    通过解码,压缩编码的视频数据输出成为压缩的颜色数据,例如YUV420P,RGB等等;压缩编码的音频数据输出成为压缩的音频抽样数据,例如PCM数据。 通过av_read_frame()媒体文件中获取得到的一个packet可能包含多个(整数个)音频或单个 视频,或者其他类型的流数据。 在SDL1.x版本中,只可以创建一个窗口。在SDL2.0版本中,可以创建多个窗口。 调用av_read_frame()输入文件中读取视频数据包 // A8. 视频文件中读取一个packet // packet可能是视频、音频或其他数据,解码器只会解码视频或音频视频数据并不会被 // 扔掉、从而能向解码器提供尽可能多的信息 //

    1.8K40

    利用WebRTC给自己拍照

    编码 播放音频文件的时候,播放的其实是一幅幅图像数据,在播放器播放某个音频文件的时候,会按照一定的时间间隔视频文件中读取解码后的视频,这样视频就动了起来。 播放摄像头中获取的视频也是如此,只不过从摄像头中获取到的本来就是非编码,无需解码。 - 播放的视频之间的间隔时间是非常小的,如果按照20的帧率计算,每的间隔是50ms; - 播放器播放的是非编码(解码之后的),而这些编码其实就是一幅幅独立的图像; 摄像头中采集到的编码 编码器在进行编码的时候,会比较前后两个视频的变化率,要是变化率达到了一定程度(比如前后两幅24位真彩图中有70%的数据发生了改变),那么就会后一开始重新划分一个GOP。 播放器播放的视频是非编码,我们拍照的过程其实就是连续播放的一幅幅编码中抽取一张正在播放的

    26620

    FFmpeg简易播放器的实现-最简版

    例如,FLV格式的数据,经过解封装操作后,输出H.264编码的视频码流和AAC编码的音频码流。 解码 将视频/音频压缩编码数据,解码成为压缩的视频/音频原始数据。 通过解码,压缩编码的视频数据输出成为压缩的颜色数据,例如YUV420P,RGB等等;压缩编码的音频数据输出成为压缩的音频抽样数据,例如PCM数据。 视频文件中读取一个packet // packet可能是视频、音频或其他数据,解码器只会解码视频或音频视频数据并不会被 // 扔掉、从而能向解码器提供尽可能多的信息 通过av_read_frame()媒体文件中获取得到的一个packet可能包含多个(整数个)音频或单个 视频,或者其他类型的流数据。 2.3.2 读取视频数据 调用av_read_frame()输入文件中读取视频数据包。

    54430

    DriveSeg:动态驾驶场景分割数据集

    【导读】麻省理工学院和丰田发布DriveSeg数据集以加速自动驾驶研究,DriveSeg包含许多常见道路对象的精确像素级表示,并通过连续视频驾驶场景的镜头。 ? 相比之下,DriveSeg包含许多相同的常见道路对象的更精确的像素级表示,但是是通过连续视频驾驶场景的镜头。 DriveSeg(manual)是在马萨诸塞州剑桥市繁忙的街道上白天捕获的2分47秒的高分辨率视频。该视频的5,000使用12类道路对象的每像素人工标签进行密集注释。 DriveSeg(semi-auto)是MIT高级车辆技术(AVT)联盟数据中提取的20,100个视频(67个10秒的视频剪辑)。 创建该数据集的目的是评估注释各种现实驾驶场景的可行性,并评估在通过基于AI的标记系统创建的像素标记上训练车辆感知系统的潜力。

    23710

    腾讯视频云剪辑技术实现

    2 云剪辑 视频点播业务常规上线转码流程简述: (1)、采集卫星信号TS流 (2)、离线编软件剪辑广告、加字幕 (3)、转码各种清晰度视频 (4)、上线各种清晰度视频 以上整个流程在后期处理花费大量时间 为什么要保证时码严格连续唯一单调递增呢? 假如播放某个网络流,每一都有一个PTS,如果中间时码复位和跳变,播放就会异常或乱序。 seek操作也是同样的原理,如果用户显示时间轴上某个位置的,只有在连续唯一单调递增的时码里查找,才能够找到正确的精确的关键所在是为每一设置一个严格连续单调递增的唯一时码。 时间线精确切除某广告位置方法如下: (1)、用户先通过模糊seek定位广告所在分片n. (2)、通过左移右移一寻找广告开始结束位置。 3 云剪辑未来方向 随着短视频流行,视频行业互联网公司都推出了视频剪辑软件,比如搜狐云剪辑,360快剪辑,爱奇艺在线编等,腾讯视频云剪辑主要用于剪辑直播节目,点播节目还无法剪辑。

    6.2K11

    基于Open WebRTC Toolkit(OWT)的8K全景视频低延时直播系统

    360 Video ingredients 内容采集来讲,首先是360全景摄像头以及360全景图像拼接技术,这方面目前已经有很多成功的公司。 如果对全景图像进行8K的网络传输和视频解码,会造成了极大的网络资源和计算资源的浪费。并且目前主流的VR设备还不具备8K视频解码能力,甚至4K也只是一些高端设备才能支持。 在服务端,全景图像的每一个区域的视频流,都需要严格的级别时间戳同步;同样,客户端接收到多路视频流解码之后,也需要进行严格的同步渲染。 内预测只在当前Tile进行,禁止tile间预测编码; 同样,间预测也约束在同样空间位置,不同时间序列的Tile中。 用户会体验到一个短暂的图像模糊到清晰的过渡,避免了黑屏的体验。

    2.7K128

    OpenGL ES实践教程(四)VR全景视频播放

    ; CoreVideo——配置纹理; OpenGL ES——渲染视频; 3D数学——球体以及3维变换; 核心思路 通过AVFoundation加载视频源,读取到每一的CMSampleBuffer之后, 加载轨道信息; createAssetReader创建Reader,并设置读取的格式与轨道目标; processAsset开始Reader,并启动CADisplayLink开始读取视频; 通过mReaderVideoTrackOutput 的copyNextSampleBuffer可以获取到下一视频信息; 通过CMSampleBufferGetImageBuffer可以获取到CMSampleBuffer里面的像素缓存pixelBuffer 思考 思考0:视频的纹理创建、销毁非常频繁,并且纹理普遍较大,CV对纹理的创建和缓存有针对的优化,故而在处理视频的时候推荐通过CV来处理纹理(图像不行)。 总结 demo的起因是群里和徐杰聊天的时候说到最近看到一个全景视频直播,想起以前自己曾想过做一个全景图像,结果因为不懂CV和AVFoundation、没有球体的顶点数据而放弃。

    1.3K40

    视频处理

    ret,frame=cap.read()#循环获取视频中每图像 gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)#原图像转换为灰度图像 cv2. cv2.waitKey(1) & 0xFF == ord('q'): #按<q>键退出程序 break cap.release() cv2.destroyAllWindows() 算法:视频是由连续的多图像构成 但是,时间维度在视频中包含了许多有用的信息。为了获取视频,首先创建一个VideoCapature对象。 其参数可以是设备的索引号,也可以是一个视频文件,设备索引号一般笔记本自带的摄像头是0,如果捕获摄像头的视频,0改为视频文件路径。 cv2.waiKey()设置适当的持续时间(间频率),如果设置的太低,视频会播放的很快,太大又会播的太慢,一般设为25ms即可。

    8130

    Facebook Surround360 学习笔记--(2)算法原理

    Surround360开源项目包含了相机阵列的硬件设计到图像拼接的软件算法,它在一个系统里实现了端到端的3D360°视频拍摄到视频处理的过程。 前篇介绍里讨论过硬件设计在降低连续视频处理时间的重要性。 立体360视频渲染的挑战 立体360视频渲染是一个非常困难的问题,主要存在如下因素: 涉及的数据量非常巨大。 其中一种方法是用一个相机绕固定的轴旋转一周拍摄一系列连续的图片,这种方法和基本的拼接方法相比,可以产生合适的朝向以及具有一致深度的全景图。但是无法用于有运动物体的场景。 光流用于视角插值,因此可以虚拟相机中得到我们所需要的光线。 至此,我们已经描述了如何渲染侧面的立体全景图。融入顶部和底部相机的图片可以得到更具有沉浸感的360°x 180°的全景。

    90470

    LiTr:适用于Android的轻量级视频音频转码器

    Android设备发布视频时,成员可以使用其设备摄像头应用程序录制视频,也可以图库中选择已经拍摄好的视频。上传后,视频将被转换为消费格式,并作为更新显示在Feed中。 创建编解码器实例后,必须为其配置一组参数,例如分辨率,比特率,速率等。如果不支持所需的参数(例如,如果我们尝试解码4K视频,则配置可能会失败)在不支持4K分辨率的硬件上)。 创建并配置MediaCodec实例后,就可以启动它并将其用于处理。 当客户端连续在MediaCodec上向缓冲区加载数据并接收回缓冲区时,使用缓冲区队列与MediaCodec实例进行交互: 客户端MediaCodec中使输入缓冲区出队,并在可用时接收。 所有所有视频音频都使用直通轨道转码器“按原样”写出。 在进行代码转换时,LiTr会连续迭代所有轨道代码转换器,直到每个轨道代码转换器报告其已完成工作。

    1.3K20

    相关产品

    • 智能识别

      智能识别

      腾讯云视频智能识别基于腾讯各实验室(优图实验室、微信智聆等)最新研究成果,为您提供视频内容理解的全面服务,支持识别视频内的人物、语音(ASR)、文字(OCR)、物体以及帧画面标签。对视频进行多维度结构化分析,方便媒资管理,为存档媒资再利用赋能。

    相关资讯

    热门标签

    扫码关注腾讯云开发者

    领取腾讯云代金券