CN116389793B - 一种视频帧率提升的实现方法和装置 - Google Patents
一种视频帧率提升的实现方法和装置 Download PDFInfo
- Publication number
- CN116389793B CN116389793B CN202310143094.7A CN202310143094A CN116389793B CN 116389793 B CN116389793 B CN 116389793B CN 202310143094 A CN202310143094 A CN 202310143094A CN 116389793 B CN116389793 B CN 116389793B
- Authority
- CN
- China
- Prior art keywords
- frame
- video
- cpu
- feature point
- motion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000006872 improvement Effects 0.000 title claims abstract description 16
- 238000012545 processing Methods 0.000 claims abstract description 21
- 238000013459 approach Methods 0.000 claims abstract description 12
- 230000002194 synthesizing effect Effects 0.000 claims abstract description 11
- 230000001133 acceleration Effects 0.000 claims abstract description 7
- 230000000694 effects Effects 0.000 claims description 30
- 239000013598 vector Substances 0.000 claims description 16
- 230000008569 process Effects 0.000 claims description 12
- 230000006870 function Effects 0.000 claims description 8
- 230000015654 memory Effects 0.000 claims description 7
- 230000002776 aggregation Effects 0.000 claims description 6
- 238000004220 aggregation Methods 0.000 claims description 6
- 238000003860 storage Methods 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 5
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 claims description 4
- 230000009466 transformation Effects 0.000 claims description 4
- 241001270131 Agaricus moelleri Species 0.000 claims 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 12
- 230000000007 visual effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000012512 characterization method Methods 0.000 description 4
- 230000037023 motor activity Effects 0.000 description 4
- 238000001914 filtration Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000009434 installation Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
- H04N21/234381—Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements by altering the temporal resolution, e.g. decreasing the frame rate by frame skipping
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440281—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本发明涉及视频帧率提升技术领域,特别是指一种视频帧率提升的实现方法和装置,所述方法包括:S1、获取N帧待处理的视频;S2、通过GPU使用加速鲁棒特征点SURF算法为所述视频的前后帧生成特征点和描述子,再通过CPU进行快速最近邻逼近搜索FLANN算法匹配相应特征点,得到初步匹配点集;S3、通过CPU基于运动和内容的趋近限制准则的标记算法,从所述初步匹配点集中精选特征点,得到精选特征点集;S4、通过CPU根据所述精选特征点集,构建三角形网格DTM;S5、通过CPU在构建好的DTM基础上得到稠密运动场,进而根据前后帧合成出中间帧,最后得到2N帧处理后的视频,实现视频帧率提升。采用本发明,可以更好地实现视频帧率提升。
Description
技术领域
本发明涉及视频帧率提升技术领域,特别是指一种视频帧率提升的实现方法和装置。
背景技术
上世纪末到本世纪初,电视进入了数字时代,电视和视频产业对数字视频质量后处理提出了许多新要求,例如清晰度增强、编码失真消除、分辨率提升、去噪、去隔行扫描及视频帧率提升(frame rate up-conversion , FRUC)等。其中FRUC普遍应用于视频会议、分布式编码、数字电视及液晶显示的运动去模糊现象。
在FRUC领域,传统的是块基(block-based)方法。此方法主要有两个步骤:运动估计(Motion Estimation,ME)和运动补偿中间帧内插(Motion Compensated FrameInterpolation,MCFI)。出于算法简单性考虑,ME过程首先将目标帧划分成N×N的不重叠的窗口,并假定窗口内所有像素具有相同的运动矢量。在这一假定下的算法称之为BMA算法,最常用的穷举搜索可保证寻找到最佳,但时间复杂度高,约为O(n2)。为减小搜索时间复杂度,现有技术提出过一些快速搜索算法,但这些搜索方法都是面向视频编码方案、并且以减小预测编码残差为目标的,导致各个块的运动矢量不一定反映真实的物体运动,因此这些方法对于视频帧率提升效果并不好。
发明内容
本发明提供了一种视频帧率提升的实现方法和装置,用以实现视频帧率提升。所述技术方案如下:
一方面,提供了一种视频帧率提升的实现方法,所述方法包括:
S1、获取N帧待处理的视频;
S2、通过GPU使用加速鲁棒特征点SURF算法为所述视频的前后帧生成特征点和描述子,再通过CPU进行快速最近邻逼近搜索FLANN算法匹配相应特征点,得到初步匹配点集;
S3、通过CPU基于运动和内容的趋近限制准则的标记算法,从所述初步匹配点集中精选特征点,得到精选特征点集;
S4、通过CPU根据所述精选特征点集,构建三角形网格DTM;
S5、通过CPU在构建好的DTM基础上得到稠密运动场,进而根据前后帧合成出中间帧,最后得到2N帧处理后的视频,实现视频帧率提升。
可选地,在S2之前,所述方法还包括构建OpenCV-cuda动态链接库,使用所述OpenCV-cuda动态链接库调用GPU,通过GPU使用所述SURF算法为所述视频的前后帧生成特征点和描述子。
可选地,所述S2的再通过CPU进行快速最近邻逼近搜索FLANN算法匹配相应特征点,得到初步匹配点集,具体包括:
在所述FLANN算法计算过程中增加一个判别过程,计算匹配点的运动矢量幅值,如果大于预设阈值,则去除这一对匹配点,获得最初匹配点集good_match_set,并按匹配度进行索引得到所述初步匹配点集good_match_set_sorted。
可选地,所述S3的通过CPU基于运动和内容的趋近限制准则的标记算法,从所述初步匹配点集中精选特征点,得到精选特征点集,具体包括:
S31、定义一个空的三角形网格节点集 ;
S32、 创建一个辅助帧,大小与所述视频的前后帧相同,所有像素标记为“unmarked”;
S33、计算相邻帧差 作为运动活动强度表征,/> 等于相邻帧在点处的灰度的差值;
S34、 计算当前帧的梯度信息作为内容活度表征:
(1)
为图像在/> 点处的灰度,/> 为卷积运算,并且
(2)
为高斯卷积核, 为卷积核半径;
S35、构造综合活度代价函数为
(3)
并计算平均活度
(4)
式中H和W分别为视频帧的高度和宽度;
S36、 定义节点为中心的方形大小为,特征点代价聚集阈值为
(5)
S37、在所述初步匹配点集中遍历每个特征点,判断其位置是否在辅助帧“unmarked”位置上,如是则将其加入至节点集,并标记所述位置为“marked”,如果这个特征点靠近视频图像的四条边但不在这四条边上,取消其节点资格,但在辅助帧上标识所述位置为“marked”;
S38、从内到外增长节点为中心的方形,直到
(6)
并且方形的半径超过预先设定的节点之间的最小距离,标记方形内所有像素为“marked”,这一最小距离定义为网格的粒度;
S39、如果节点数目小于指定的数目且仍有“unmarked”像素,转到S37;否则结束,最终得到运动和内容自适应的节点集,所述节点集/>就是所述精选特征点集。
可选地,所述S5的通过CPU在构建好的DTM基础上得到稠密运动场,进而根据前后帧合成出中间帧,具体包括:
特征点匹配过程得到了DTM各个三角形顶点的运动矢量,由六参数仿射变换可得到每个对应三角形片内的稠密运动矢量场;
使用运动补偿帧内插MVFI 内插合成出所述中间帧。
另一方面,提供了一种视频帧率提升的实现装置,所述装置包括:
获取模块,用于获取N帧待处理的视频;
第一处理模块,用于通过GPU使用加速鲁棒特征点SURF算法为所述视频的前后帧生成特征点和描述子,再通过CPU进行快速最近邻逼近搜索FLANN算法匹配相应特征点,得到初步匹配点集;
精选模块,用于通过CPU基于运动和内容的趋近限制准则的标记算法,从所述初步匹配点集中精选特征点,得到精选特征点集;
构建模块,用于通过CPU根据所述精选特征点集,构建三角形网格DTM;
第二处理模块,用于通过CPU在构建好的DTM基础上得到稠密运动场,进而根据前后帧合成出中间帧,最后得到2N帧处理后的视频,实现视频帧率提升。
可选地,所述装置还包括:构建模块,用于构建OpenCV-cuda动态链接库,使用所述OpenCV-cuda动态链接库调用GPU,通过GPU使用所述SURF算法为所述视频的前后帧生成特征点和描述子。
可选地,所述精选模块,具体用于:
S31、定义一个空的三角形网格节点集;
S32、 创建一个辅助帧,大小与所述视频的前后帧相同,所有像素标记为“unmarked”;
S33、计算相邻帧差作为运动活动强度表征,/>等于相邻帧在 点处的灰度的差值;
S34、 计算当前帧的梯度信息作为内容活度表征:
(1)
为图像在/>点处的灰度,/>为卷积运算,并且
(2)
为高斯卷积核,为卷积核半径;
S35、构造综合活度代价函数为
(3)
并计算平均活度
(4)
式中H和W分别为视频帧的高度和宽度;
S36、 定义节点为中心的方形大小为,特征点代价聚集阈值为
(5)
S37、在所述初步匹配点集中遍历每个特征点,判断其位置是否在辅助帧“unmarked”位置上,如是则将其加入至节点集,并标记所述位置为“marked”,如果这个特征点靠近视频图像的四条边但不在这四条边上,取消其节点资格,但在辅助帧上标识所述位置为“marked”;
S38、从内到外增长节点为中心的方形,直到
(6)
并且方形的半径超过预先设定的节点之间的最小距离,标记方形内所有像素为“marked”,这一最小距离定义为网格的粒度;
S39、如果节点数目小于指定的数目且仍有“unmarked”像素,转到S37;否则结束,最终得到运动和内容自适应的节点集,所述节点集/>就是所述精选特征点集。
另一方面,提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现上述视频帧率提升的实现方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现上述视频帧率提升的实现方法。
本发明提供的技术方案带来的有益效果至少包括:
本发明将大量的重复的特征点生成和匹配放到了GPU上实现加速运行,并且优化了算法,大大减少了运算量,以上两点使得视频帧率提升FRUC的运算速度提高了4-8倍。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种视频帧率提升的实现方法流程图;
图2是本发明实施例提供的基于运动和内容的趋近限制准则的标记算法示意图;
图3中a是现有技术的“football”视频中第1帧和第3帧对应的DTM示意图;
图3中b是本发明实施例提供的“football”视频中第1帧和第3帧对应的DTM示意图;
图4是本发明实施例提供的合成出的中间帧示意图;
图5是本发明实施例提供的一种视频帧率提升的实现装置框图;
图6是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
如图1所示,本发明实施例提供了一种视频帧率提升的实现方法,所述方法包括:
S1、获取N帧待处理的视频;
S2、通过GPU使用加速鲁棒特征点SURF算法为所述视频的前后帧生成特征点和描述子,再通过CPU进行快速最近邻逼近搜索FLANN算法匹配相应特征点,得到初步匹配点集;
S3、通过CPU基于运动和内容的趋近限制准则的标记算法,从所述初步匹配点集中精选特征点,得到精选特征点集;
S4、通过CPU根据所述精选特征点集,构建三角形网格DTM;
S5、通过CPU在构建好的DTM基础上得到稠密运动场,进而根据前后帧合成出中间帧,最后得到2N帧处理后的视频,实现视频帧率提升。
下面结合图2-图4,详细说明本发明实施例的一种视频帧率提升的实现方法,所述方法包括:
S1、获取N帧待处理的视频;
S2、通过GPU使用加速鲁棒特征点SURF算法为所述视频的前后帧生成特征点和描述子,再通过CPU进行快速最近邻逼近搜索FLANN算法匹配相应特征点,得到初步匹配点集;
可选地,在S2之前,所述方法还包括构建OpenCV-cuda动态链接库,使用所述OpenCV-cuda动态链接库调用GPU,通过GPU使用所述SURF算法为所述视频的前后帧生成特征点和描述子。
为了加速算法运行,首先生成基于Nvidia GPU显卡的OpenCV-cuda动态链接库。因为可用于OpenCV 的预构建Windows库不包括CUDA模块,也不支持英特尔的数学内核库(MKL)或英特尔线程构建块(TBB)性能库,因此OpenCV-cuda动态链接库必须在本地构建。下面列出了构建说明,其中包括如下主要步骤:
1.1预构建清单:
1)计算机已经安装Visual Studio Community 2017(15.9.4)或者Visual Studio2019。
2)确保这些机器已经安装了CUDA工具包:
一个支持Nvidia的GPU,驱动程序版本为418.96或更高;
CUDA的dll (cublas64_10.dll, nppc64_10.dll等)放在系统或用户路径的某个地方,或在与可执行文件相同的目录中。 它们可以位于以下目录中:
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin
3)最新版本的英特尔TBB使用共享库,因此如果使用英特尔TBB构建,需要添加:
C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\redist\intel64_win\tbb\vc_mt到本机的路径变量,并确保本机与任何应用程序重新分发该dll。
可以从下载页面下载本指南中描述的所有预构建的二进制文件。根据硬件的不同,构建时间可能超过3个小时。
1.2先决条件:
安装Visual Studio 2019;
下载OpenCV和OpenCV contrib源文件。可在GitHub上克隆git repos OpenCV和OpenCV Contrib,并确保4.1.0标签,也可下载这些存档OpenCV 4.1.0和OpenCV Contrib4.1.0包含所有源文件;
安装CMake - 3.13.2版本在指南中使用;
安装CUDA 10.1 Toolkit。
1.3使用CMake生成OpenCV构建文件
在构建OpenCV之前,必须先用CMake生成构建文件。有两种方法可以做到这一点,从命令提示符或使用CMake GUI,但是到目前为止,最快和最简单的方法是使用命令提示符生成基本配置。然后,如果想添加任何额外的配置选项,可以在CMake GUI中打开构建目录,如下所述:
1.启动CMake GUI
2.确保选中了分组复选框,单击浏览构建按钮
并导航到PATH_TO_OPENCV_SOURCE/build目录。
现在,只要展开任何分组项并勾选或取消勾选显示的值,就可以进行任何额外的配置更改。一旦满意了,就按下配置。
如果底部窗口显示配置成功,请按Generate。
现在可以打开Visual Studio解决方案文件并像以前一样继续。
1.4 使用CUDA和Intel MKL + TBB构建OpenCV 4,从命令提示符(cmd)使用VisualStudio解决方案文件
接下来的五个步骤将使用NVIDIA的推荐设置构建opencv_world共享库,以实现未来的硬件兼容性。
1.打开命令提示符(windows键+ r,然后键入cmd并按回车键)
2.如果不是使用Intel MKL + TBB构建,请忽略此步骤。输入以下临时设置用于定位TBB安装的环境变量:
"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\tbb\bin\tbbvars.bat" intel64
3.通过输入如下所示的文本,设置源文件和构建目录的位置,首先将PATH_TO_OPENCV_SOURCE设置为下载或克隆的OpenCV文件的根目录(包含3rdparty、apps、build等的目录),将PATH_TO_OPENCV_CONTRIB_MODULES设置为contrib repo内的modules目录(包含cudararithm、cudabgsegm等的目录)。
set "openCvSource=PATH_TO_OPENCV_SOURCE"
set "openCVExtraModules=PATH_TO_OPENCV_CONTRIB_MODULES"
set "openCvBuild=%openCvSource%\build"
set "buildType=Release"
set "generator=Visual Studio 17 2019 Win64"
4.然后从下面选择配置并复制到命令提示符:
带CUDA的OpenCV:
"C:\Program Files\CMake\bin\cmake.exe" -B"%openCvBuild%/" -H"%openCvSource%/" -G"%generator%" -DCMAKE_BUILD_TYPE=%buildType% -DBUILD_opencv_world=ON -DBUILD_opencv_gapi=OFF -DWITH_CUDA=ON -DCUDA_TOOLKIT_ROOT_DIR="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.1" -DCUDA_FAST_MATH=ON -DWITH_CUBLAS=ON -DINSTALL_TESTS=ON -DINSTALL_C_EXAMPLES=ON -DBUILD_EXAMPLES=ON -DWITH_OPENGL=ON -DOPENCV_EXTRA_MODULES_PATH="%openCVExtraModules%" -DOPENCV_ENABLE_NONFREE=ON -DCUDA_ARCH_PTX=7.5 -DWITH_NVCUVID=ON -DWITH_MFX=ON
带CUDA及MKL multi-threaded with TBB的OpenCV
"C:\Program Files\CMake\bin\cmake.exe" -B"%openCvBuild%/" -H"%openCvSource%/" -G"%generator%" -DCMAKE_BUILD_TYPE=%buildType% -DBUILD_opencv_world=ON -DBUILD_opencv_gapi=OFF -DWITH_CUDA=ON -DCUDA_TOOLKIT_ROOT_DIR="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.1" -DCUDA_FAST_MATH=ON -DWITH_CUBLAS=ON -DWITH_MKL=ON -DMKL_USE_MULTITHREAD=ON -DMKL_WITH_TBB=ON -DINSTALL_TESTS=ON -DINSTALL_C_EXAMPLES=ON -DBUILD_EXAMPLES=ON -DWITH_OPENGL=ON -DOPENCV_EXTRA_MODULES_PATH="%openCVExtraModules%/" -DOPENCV_ENABLE_NONFREE=ON -DCUDA_ARCH_PTX=7.5 -DWITH_NVCUVID=ON -DWITH_MFX=ON
5.如果想在构建之前进行任何配置更改,那么可以通过CMake GUI进行更改。
6.OpenCV.sln解决方案文件现在应该在PATH_TO_OPENCV_SOURCE/build目录中。要构建OpenCV,根据偏好,可以有两个选项:
直接从命令行进行构建,只需输入以下命令(将Release替换为Debug以构建一个发布版本):
set "buildType=Debug"
通过在Visual Studio GUI中打开OpenCV.sln。在Visual Studio中,选择的配置,单击解决方案资源管理器,展开CMakeTargets,右键单击INSTALL,然后单击Build。
这两种方法都将构建出OpenCV-cuda动态链接库opencv_world400.dll,并将必要的可重分发部分复制到安装目录PATH_TO_OPENCV_SOURCE/build/install中。现在要运行针对这些库编译的任何程序,只需要将包含opencv_world400.dll(如果使用Intel TBB构建,则添加TBB .dll)的目录添加到路径环境变量。
本发明实施例的方法也可以在Intel官方提供的OpenCV 动态链接库上得以实现,只是速度会有所降低。
可选地,所述S2的再通过CPU进行快速最近邻逼近搜索FLANN算法匹配相应特征点,得到初步匹配点集,具体包括:
在所述FLANN算法计算过程中增加一个判别过程,计算匹配点的运动矢量幅值,如果大于预设阈值,则去除这一对匹配点,获得最初匹配点集good_match_set,并按匹配度进行索引得到所述初步匹配点集good_match_set_sorted。
使用基于GPU(cuda)的SURF特征点检测器可以快速准确地定位出特征点的位置和描述子的尺度和范围,而匹配过程选择在CPU上运行FLANN匹配去除误匹配,这种CPU和GPU(cuda)混合的异构计算的方案兼顾了特征点分布的均匀性和速度要求以及较好的匹配准确性。
S3、通过CPU基于运动和内容的趋近限制准则的标记算法,从所述初步匹配点集中精选特征点,得到精选特征点集;
可选地,如图2所示,所述S3的通过CPU基于运动和内容的趋近限制准则的标记算法,从所述初步匹配点集中精选特征点,得到精选特征点集,具体包括:
S31、定义一个空的三角形网格节点集;
S32、 创建一个辅助帧,大小与所述视频的前后帧相同,所有像素标记为“unmarked”;
S33、计算相邻帧差作为运动活动强度表征,/>等于相邻帧在点处的灰度的差值;
S34、 计算当前帧的梯度信息作为内容活度表征:
(1)
为图像在/>点处的灰度,/>为卷积运算,并且
(2)
为高斯卷积核,为卷积核半径;
梯度grad计算可用简单的Sobel算子或其他方法计算,本发明实施例不加以限制,都在本发明实施例的保护范围内。
S35、构造综合活度代价函数为
(3)
并计算平均活度
(4)
式中H和W分别为视频帧的高度和宽度;
这里即考虑了空域活度(内容),又考虑了时域活度(运动)。第二项为内容活动项,并给予了更高的权重,同时也兼顾运动活度。
S36、 定义节点为中心的方形大小为,特征点代价聚集阈值为
(5)
S37、在所述初步匹配点集中遍历每个特征点,判断其位置是否在辅助帧“unmarked”位置上,如是则将其加入至节点集,并标记所述位置为“marked”,如果这个特征点靠近视频图像的四条边但不在这四条边上,取消其节点资格,但在辅助帧上标识所述位置为“marked”;
S38、从内到外增长节点为中心的方形,直到
(6)
并且要使方形的半径超过预先设定的节点之间的最小距离,标记方形内所有像素为“marked”,这一最小距离在本发明实施例中定义为网格的粒度,这里设定为8个像素,粒度对网格的结构有较强的影响。而如图2所示,特征点比较接近的话(节点的接近性小),则说明这些特征点属于运动和内容活度都比较高,则在下一步骤中生成的三角形网格密集,从而更细致地描述对应的图像区域;反之,则表示运动和内容活度都比较低,在下一步骤中生成的三角形网格稀疏,对图像的描述就相应地粗糙,从而实现了三角形网格自适应随图像内容和运动而变化。
S39、如果节点数目小于指定的数目且仍有“unmarked”像素,转到S37;否则结束,最终得到运动和内容自适应的节点集,所述节点集/>就是所述精选特征点集。
S4、通过CPU根据所述精选特征点集,构建三角形网格DTM;
可选地,在节点集的基础上,本发明实施例借助计算几何工具DT(DelaunayTriangulation)方法构建三角形网格(Delaunay Triangular Mesh,DTM)]。
S5、通过CPU在构建好的DTM基础上得到稠密运动场,进而根据前后帧合成出中间帧,最后得到2N帧处理后的视频,实现视频帧率提升。
可选地,所述S5的通过CPU在构建好的DTM基础上得到稠密运动场,进而根据前后帧合成出中间帧,具体包括:
特征点匹配过程得到了DTM各个三角形顶点的运动矢量,由六参数仿射变换可得到每个对应三角形片内的稠密运动矢量场;
使用运动补偿帧内插 (Motion Compensated Frame Interpolation,MVFI) 内插合成出所述中间帧。
内插方法有两种,一种是线性运动补偿高阶滤波法(MC linear higher-orderfiltering),定义为:
(7)
式中x为图像任意一点坐标,D为运动矢量,为两帧之间内插的位置,例如对于中间帧,/> 。
另一种是非线性运动补偿图像内插法(non-linear MC pictureinterpolation),定义为:
(8)
式中med表示中值滤波,并且
(9)
最终根据前后帧由以上步骤通过内插合成出中间帧,实现帧率提升。
由于特征点分布的随机性,为防止有些特征点过于紧密,本发明实施例以当前帧的梯度信息为内容活度度量,把内容活度按比例引入到综合活度代价函数,从而使特征点分布疏密有致,构成了基于运动和内容自适应的图像DTM网格节点集,构建DTM后借助仿射变换得到三角形片内的稠密运动矢量场,最终实现FRUC。如图3是“football”视频中第1帧和第3帧对应的DTM,节点集共有308个节点,对比新旧算法(图3中a是现有技术,图3中b是本发明实施例)产生的DTM,可以看出本发明实施例的算法有更多的节点落在了足球运动员身上,而且长三角形减少了很多,得到密度合理的特征点集,从而更好地描述和划分图像内容和序列的运动。这种提升得益于特征点匹配的优化和提出的综合活度代价函数,同时速度上也有明显的提升,本发明实施例的算法中特征点匹配和网格生成过程均只需要一次即可,而现有技术还需要特征点的二次检测和网格的重新设计,运算量减少了一半,最终合成的中间帧如图4所示。
本发明实施例的方法在运动剧烈、产生较多的遮挡、滚动字幕以及大片水流等场景的视频的FRUC上具有明显优势,在速度上有4-8倍的提升,在客观质量(PSNR)上有1-2dB提升。
如图5所示,本发明实施例还提供一种视频帧率提升的实现装置,所述装置包括:
获取模块510,用于获取N帧待处理的视频;
第一处理模块520,用于通过GPU使用加速鲁棒特征点SURF算法为所述视频的前后帧生成特征点和描述子,再通过CPU进行快速最近邻逼近搜索FLANN算法匹配相应特征点,得到初步匹配点集;
精选模块530,用于通过CPU基于运动和内容的趋近限制准则的标记算法,从所述初步匹配点集中精选特征点,得到精选特征点集;
构建模块540,用于通过CPU根据所述精选特征点集,构建三角形网格DTM;
第二处理模块550,用于通过CPU在构建好的DTM基础上得到稠密运动场,进而根据前后帧合成出中间帧,最后得到2N帧处理后的视频,实现视频帧率提升。
可选地,所述装置还包括:构建模块,用于构建OpenCV-cuda动态链接库,使用所述OpenCV-cuda动态链接库调用GPU,通过GPU使用所述SURF算法为所述视频的前后帧生成特征点和描述子。
可选地,所述精选模块,具体用于:
S31、定义一个空的三角形网格节点集;
S32、 创建一个辅助帧,大小与所述视频的前后帧相同,所有像素标记为“unmarked”;
S33、计算相邻帧差作为运动活动强度表征,/>等于相邻帧在点处的灰度的差值;
S34、 计算当前帧的梯度信息作为内容活度表征:
(1)
为图像在/>点处的灰度,/>为卷积运算,并且
(2)
为高斯卷积核,为卷积核半径;
S35、构造综合活度代价函数为
(3)
并计算平均活度
(4)
式中H和W分别为视频帧的高度和宽度;
S36、 定义节点为中心的方形大小为,特征点代价聚集阈值为
(5)
S37、在所述初步匹配点集中遍历每个特征点,判断其位置是否在辅助帧“unmarked”位置上,如是则将其加入至节点集,并标记所述位置为“marked”,如果这个特征点靠近视频图像的四条边但不在这四条边上,取消其节点资格,但在辅助帧上标识所述位置为“marked”;
S38、从内到外增长节点为中心的方形,直到
(6)
并且方形的半径超过预先设定的节点之间的最小距离,标记方形内所有像素为“marked”,这一最小距离定义为网格的粒度;
S39、如果节点数目小于指定的数目且仍有“unmarked”像素,转到S37;否则结束,最终得到运动和内容自适应的节点集,所述节点集/>就是所述精选特征点集。
本发明实施例提供的一种视频帧率提升的实现装置,其功能结构与本发明实施例提供的一种视频帧率提升的实现方法相对应,在此不再赘述。
图6是本发明实施例提供的一种电子设备600的结构示意图,该电子设备600可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessing units,CPU)601和一个或一个以上的存储器602,其中,所述存储器602中存储有至少一条指令,所述至少一条指令由所述处理器601加载并执行以实现上述视频帧率提升的实现方法的步骤。
在示例性实施例中,还提供了一种计算机可读存储介质,例如包括指令的存储器,上述指令可由终端中的处理器执行以完成上述视频帧率提升的实现方法。例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种视频帧率提升的实现方法,其特征在于,所述方法包括:
S1、获取N帧待处理的视频;
S2、通过GPU使用加速鲁棒特征点SURF算法为所述视频的前后帧生成特征点和描述子,再通过CPU进行快速最近邻逼近搜索FLANN算法匹配相应特征点,得到初步匹配点集;
S3、通过CPU基于运动和内容的趋近限制准则的标记算法,从所述初步匹配点集中精选特征点,得到精选特征点集;
S4、通过CPU根据所述精选特征点集,构建三角形网格DTM;
S5、通过CPU在构建好的DTM基础上得到稠密运动场,进而根据前后帧合成出中间帧,最后得到2N帧处理后的视频,实现视频帧率提升;
所述S3的通过CPU基于运动和内容的趋近限制准则的标记算法,从所述初步匹配点集中精选特征点,得到精选特征点集,具体包括:
S31、定义一个空的三角形网格节点集
S32、创建一个辅助帧,大小与所述视频的前后帧相同,所有像素标记为“unmarked”;
S33、计算相邻帧差FD(x,y)作为运动活动强度表征,FD(x,y)等于相邻帧在坐标(x,y)点处的灰度的差值;
S34、计算当前帧的梯度信息作为内容活度表征:
式中f(x,y)为图像在坐标(x,y)点处的灰度,为卷积运算,并且
为高斯卷积核,σ为卷积核半径;
S35、构造综合活度代价函数为
并计算平均活度
式中H和W分别为视频帧的高度和宽度;
S36、定义节点为中心的方形大小为M,特征点代价聚集阈值为
S37、在所述初步匹配点集中遍历每个特征点,判断其位置是否在辅助帧“unmarked”位置上,如是则将其加入至节点集并标记所述位置为“marked”,如果这个特征点靠近视频图像的四条边但不在这四条边上,取消其节点资格,但在辅助帧上标识所述位置为“marked”;
S38、从内到外增长节点为中心的方形,直到
并且方形的半径超过预先设定的节点之间的最小距离,标记方形内所有像素为“marked”,这一最小距离定义为网格的粒度;
S39、如果节点数目小于指定的数目且仍有“unmarked”像素,转到S37;否则结束,最终得到运动和内容自适应的节点集所述节点集/>就是所述精选特征点集。
2.根据权利要求1所述的方法,其特征在于,在S2之前,所述方法还包括构建OpenCV-cuda动态链接库,使用所述OpenCV-cuda动态链接库调用GPU,通过GPU使用所述SURF算法为所述视频的前后帧生成特征点和描述子。
3.根据权利要求1所述的方法,其特征在于,所述S2的再通过CPU进行快速最近邻逼近搜索FLANN算法匹配相应特征点,得到初步匹配点集,具体包括:
在所述FLANN算法计算过程中增加一个判别过程,计算匹配点的运动矢量幅值,如果大于预设阈值,则去除这一对匹配点,获得最初匹配点集good_match_set,并按匹配度进行索引得到所述初步匹配点集good_match_set_sorted。
4.根据权利要求1所述的方法,其特征在于,所述S5的通过CPU在构建好的DTM基础上得到稠密运动场,进而根据前后帧合成出中间帧,具体包括:
特征点匹配过程得到了DTM各个三角形顶点的运动矢量,由六参数仿射变换可得到每个对应三角形片内的稠密运动矢量场;
使用运动补偿帧内插MVFI内插合成出所述中间帧。
5.一种视频帧率提升的实现装置,其特征在于,所述装置包括:
获取模块,用于获取N帧待处理的视频;
第一处理模块,用于通过GPU使用加速鲁棒特征点SURF算法为所述视频的前后帧生成特征点和描述子,再通过CPU进行快速最近邻逼近搜索FLANN算法匹配相应特征点,得到初步匹配点集;
精选模块,用于通过CPU基于运动和内容的趋近限制准则的标记算法,从所述初步匹配点集中精选特征点,得到精选特征点集;
构建模块,用于通过CPU根据所述精选特征点集,构建三角形网格DTM;
第二处理模块,用于通过CPU在构建好的DTM基础上得到稠密运动场,进而根据前后帧合成出中间帧,最后得到2N帧处理后的视频,实现视频帧率提升;
所述精选模块,具体用于:
S31、定义一个空的三角形网格节点集
S32、创建一个辅助帧,大小与所述视频的前后帧相同,所有像素标记为“unmarked”;
S33、计算相邻帧差FD(x,y)作为运动活动强度表征,FD(x,y)等于相邻帧在坐标(x,y)点处的灰度的差值;
S34、计算当前帧的梯度信息作为内容活度表征:
式中f(x,y)为图像在坐标(x,y)点处的灰度,为卷积运算,并且
为高斯卷积核,σ为卷积核半径;
S35、构造综合活度代价函数为
并计算平均活度
式中H和W分别为视频帧的高度和宽度;
S36、定义节点为中心的方形大小为M,特征点代价聚集阈值为
S37、在所述初步匹配点集中遍历每个特征点,判断其位置是否在辅助帧“unmarked”位置上,如是则将其加入至节点集并标记所述位置为“marked”,如果这个特征点靠近视频图像的四条边但不在这四条边上,取消其节点资格,但在辅助帧上标识所述位置为“marked”;
S38、从内到外增长节点为中心的方形,直到
并且方形的半径超过预先设定的节点之间的最小距离,标记方形内所有像素为“marked”,这一最小距离定义为网格的粒度;
S39、如果节点数目小于指定的数目且仍有“unmarked”像素,转到S37;否则结束,最终得到运动和内容自适应的节点集所述节点集/>就是所述精选特征点集。
6.根据权利要求5所述的装置,其特征在于,所述装置还包括:构建模块,用于构建OpenCV-cuda动态链接库,使用所述OpenCV-cuda动态链接库调用GPU,通过GPU使用所述SURF算法为所述视频的前后帧生成特征点和描述子。
7.一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令,其特征在于,所述至少一条指令由所述处理器加载并执行以实现如权利要求1-4任一项所述视频帧率提升的实现方法。
8.一种计算机可读存储介质,所述存储介质中存储有至少一条指令,其特征在于,所述至少一条指令由处理器加载并执行以实现如权利要求1-4任一项所述视频帧率提升的实现方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310143094.7A CN116389793B (zh) | 2023-02-21 | 2023-02-21 | 一种视频帧率提升的实现方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310143094.7A CN116389793B (zh) | 2023-02-21 | 2023-02-21 | 一种视频帧率提升的实现方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116389793A CN116389793A (zh) | 2023-07-04 |
CN116389793B true CN116389793B (zh) | 2024-01-26 |
Family
ID=86966315
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310143094.7A Active CN116389793B (zh) | 2023-02-21 | 2023-02-21 | 一种视频帧率提升的实现方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116389793B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017001638A (ja) * | 2015-06-16 | 2017-01-05 | 西日本旅客鉄道株式会社 | 画像処理を利用した列車位置検出システムならびに画像処理を利用した列車位置および環境変化検出システム |
CN106534616A (zh) * | 2016-10-17 | 2017-03-22 | 北京理工大学珠海学院 | 一种基于特征匹配与运动补偿的视频稳像方法及系统 |
CN109509211A (zh) * | 2018-09-28 | 2019-03-22 | 北京大学 | 同时定位与建图技术中的特征点提取与匹配方法及系统 |
CN110334762A (zh) * | 2019-07-04 | 2019-10-15 | 华南师范大学 | 一种基于四叉树结合orb和sift的特征匹配方法 |
CN110536142A (zh) * | 2019-08-30 | 2019-12-03 | 天津大学 | 一种针对非刚性图像序列的帧间插值方法 |
CN113034383A (zh) * | 2021-02-24 | 2021-06-25 | 大连海事大学 | 一种基于改进网格运动统计获取视频图像的方法 |
CN113542588A (zh) * | 2021-05-28 | 2021-10-22 | 上海第二工业大学 | 一种基于视觉显著性的抗干扰电子稳像方法 |
CN115002379A (zh) * | 2022-04-25 | 2022-09-02 | 武汉大学 | 视频插帧方法、训练方法、装置、电子设备和存储介质 |
-
2023
- 2023-02-21 CN CN202310143094.7A patent/CN116389793B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017001638A (ja) * | 2015-06-16 | 2017-01-05 | 西日本旅客鉄道株式会社 | 画像処理を利用した列車位置検出システムならびに画像処理を利用した列車位置および環境変化検出システム |
CN106534616A (zh) * | 2016-10-17 | 2017-03-22 | 北京理工大学珠海学院 | 一种基于特征匹配与运动补偿的视频稳像方法及系统 |
CN109509211A (zh) * | 2018-09-28 | 2019-03-22 | 北京大学 | 同时定位与建图技术中的特征点提取与匹配方法及系统 |
CN110334762A (zh) * | 2019-07-04 | 2019-10-15 | 华南师范大学 | 一种基于四叉树结合orb和sift的特征匹配方法 |
CN110536142A (zh) * | 2019-08-30 | 2019-12-03 | 天津大学 | 一种针对非刚性图像序列的帧间插值方法 |
CN113034383A (zh) * | 2021-02-24 | 2021-06-25 | 大连海事大学 | 一种基于改进网格运动统计获取视频图像的方法 |
CN113542588A (zh) * | 2021-05-28 | 2021-10-22 | 上海第二工业大学 | 一种基于视觉显著性的抗干扰电子稳像方法 |
CN115002379A (zh) * | 2022-04-25 | 2022-09-02 | 武汉大学 | 视频插帧方法、训练方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116389793A (zh) | 2023-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2740104B1 (en) | Apparatus and method for digital microscopy imaging | |
US9824431B2 (en) | Image synthesis apparatus, image synthesis method, and recording medium | |
US10818018B2 (en) | Image processing apparatus, image processing method, and non-transitory computer-readable storage medium | |
CN111028191B (zh) | 视频图像的防抖方法、装置、电子设备和存储介质 | |
JP2007000205A (ja) | 画像処理装置及び画像処理方法並びに画像処理プログラム | |
EP2887306B1 (en) | Image processing method and apparatus | |
JP6015670B2 (ja) | 画像処理装置及び画像処理方法 | |
Jeon et al. | Texture map generation for 3D reconstructed scenes | |
JP2012022654A (ja) | 画像処理装置、画像処理方法、およびプログラム | |
US20130016239A1 (en) | Method and apparatus for removing non-uniform motion blur using multi-frame | |
EP4068220A1 (en) | Image processing device, image processing method, moving device, and storage medium | |
JP5751254B2 (ja) | 画像処理システム、画像処理方法および画像処理プログラム | |
CN111476814A (zh) | 目标跟踪方法、装置、设备及存储介质 | |
CN116389793B (zh) | 一种视频帧率提升的实现方法和装置 | |
JP5743501B2 (ja) | 物体追尾装置、物体追尾方法、及び物体追尾プログラム | |
US20150310626A1 (en) | Motion vector detector, distance detector, motion vector detection method and computer program product | |
US9317903B1 (en) | Self-similarity based single frame super-resolution | |
CN112184609A (zh) | 图像融合方法及装置、存储介质、终端 | |
CN111435589B (zh) | 一种目标显示的方法、装置及目标显示系统 | |
CN111784811A (zh) | 一种图像处理方法、装置,电子设备及存储介质 | |
JP2014052855A (ja) | 画像処理装置、その制御方法、および制御プログラム | |
CN115526782A (zh) | 视频图像滤波约束方法和装置 | |
TWI417810B (zh) | 影像增強方法、影像增強裝置及影像處理電路 | |
CN101473350A (zh) | 全局运动估计 | |
Xu et al. | Sharp image estimation from a depth-involved motion-blurred image |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |