主要内容

このページ最新ではありませ。をクリックし,英语のの最新版版を参照参照し。

特徴点マッチングをした映像安定化

例で不安定なから撮影撮影れたビデオを安定する方法方法方法をを说明说明说明说明しします。。映像安定安定のののののののののののつのつのつのつのつのつのつのつのつの方法ははは,,,イメージイメージ内の摂动ことです。,この手続きは最初のフレームフレームのののどこどこににに际立っ际立った特徴特徴があるあるあるかかについてについてについてのの知识知识知识をを用い用い用いててててブートストラップしししばば“知识なく有效な,映像化の方法について说明し。このこの方法方法ははは,,代わりににビデオシーケンスシーケンス内内のの「背景面背景面」をを自动自动自动的探索探索探索探索を补正し。

2つのははつのつのがあり。。,,,,,つのつのイメージ间における点点のに关数估计分析图2dを适用,シーケンスにあるののフレームフレーム间のアフィン変换ををを决定决定决定しししししますますますますますますににに,,ビデオビデオビデオフレームフレームフレームフレームフレームをををををワープワープワープワープワープワープさささささささせせせせせせてててててててビデオビデオビデオを安定します。

手顺1:ムービーファイルからフレーム読み取り読み取り

ここでシーケンス最初最初のののフレームフレーム読み取ります安定安定ににに色色ははは必要必要必要,,グレースケールイメージイメージをを使用使用するするとと速度ががが改善改善改善改善ささされる,,,,赤のカラー合成をして両者间のの差异差异をを示し示し示し示し示します。。。。。つのつのつのつのフレーム间には

文件名='shaky_car.avi';hvideosrc = videoreader(文件名);imga = rgb2gray(im2single(readframe(hvideosrc)));%读取IMGA的第一帧imgb = rgb2gray(im2single(readframe(hvideosrc)));%读取第二帧到IMGB数字;imshowpair(imga,imgb,'剪辑');标题(['框架A',repmat('',[1 70]),'框架B');

数字;imshowpair(imga,imgb,“色彩渠道”,,,,'红鸡);标题('颜色复合材料(框架A =红色,框架B =青色)');

手顺2:各フレームの际立っ点点收集

2つのは,つのつの间歪みをするをを决定することです。。これにには,アフィンアフィン估计分析图2dをでき。关数へののてて,,,つのつのつのつの一连一连のの点点点ののの対応対応关系を与え与えなけれなければばなりなりなりませんん。。これらこれらこれらの対応対応关系关系を收集しの间想定できそうな关系选択选択ますます。

このでフレームにこうした候补点を作成作成。もうもう片方片方片方ののフレームフレームにのの点ににに対応するする点が存在存在するするするする可能だけだけだけだけだけだけだけだけ高める高める高める高める必要ですには最速のコーナー検出アルゴリズムののののつつをする关数检测FastFeaturesを使用し。

の図,のフレームから検出された点さされれてていいいますます。中中のの多く多くがが,木立ち木立ちの轮郭轮郭ににににた点点点点大きな大きな大きな交通交通交通交通交通カバーしいるを确认して。。

ptthresh = 0.1;pointa =检测factfastFeatures(imga,“ minconcontrast',ptthresh);pointsb =检测factfastFeatures(imgb,“ minconcontrast',ptthresh);%显示在图像A和B中发现的角落。数字;IMShow(IMGA);抓住;情节(点);标题(');

数字;IMShow(IMGB);抓住;绘图(Pointb);标题('b'');

手顺3:点の対応の选択

次,でた点の间间の対応关系を选択选択ます。。各点各点各点についてについて,,,,,,それそれそれそれそれそれするするするするするするするするするするするするするするするするするするするするするするするするするするするするののにはハミング距离をを使用フレームフレームフレームフレームフレームフレームフレームフレームフレームフレームフレームににあるある点点点がが的的ににマッチマッチマッチさささされれれますます。に対応场合もあり。。

%提取角落的怪胎描述符[featuresa,pointsa] = extractfeatures(imga,pointsa);[featuresB,pointsb] = extractfeatures(imgb,pointsb);

现在の前ので検出さた特徴をマッチングますますます。。。。记述子记述子记述子记述子记述子はバイナリである匹配项はハミングをて対応点を探します。

indexpairs = matchfeatures(femanta,fignterb);pointa = pointa(indexpairs(:,1),:);pointsb = pointb(indexpairs(:,2),:);

のイメージ先提示提示たものと同じカラー合成合成ていいますますフレームフレームフレームフレームフレームフレームフレームフレームフレームフレームフレームフレームフレームからからからからの点点点がフレームフレームフレームフレームフレームフレームフレームフレームフレームフレームフレームフレームフレームフレームフレームフレームフレームからからからからからののラインはのででされた关系を示しいます。。これらこれらののの対応対応关系ののはは正しいものものものですですが,,

数字;ShowMatchedFeatures(IMGA,IMGB,Pointsa,PointsB);传奇('一个',,,,'b');

手顺4:ノイズの対応关系の変换推定推定

前の得られ点点対応対応关系の多く多くは正しく正しく正しくんん。。。,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,推定をするはです。。。アルゴリズムアルゴリズムは关数关数估计分析图2dにさいます。关数は,一连の点关系关系がが与え与え与えられるられるられるとと,,なななインライアインライアインライアのの対応対応対応关系关系をを探索探索探索しししますますますますます。基基ををにからの最もにマッチさせるようなアフィンを导出しますますます。このこのこのこのアフィンアフィンアフィンアフィン変换変换変换はは,,次次ののののののようようようななななななななななななななな形式形式形式形式形式形式形式形式形式形式形式形式形式形式形式形式形式形式形式

[A_1 A_3 0;A_2 A_4 0;T_X T_Y 1]

パラメーター 一个 は変换スケールおよびせん断效果定义します。パラメーター t は平行です。変换をて,する特徴が同じ同じイメージ位置に移る移るようイメージををワープワープワープ。

変换に结像だけしか変更変更できといういう制限ますます。。したがっしたがっしたがっしたがっててて,,走行中ののの自动自动自动车车车からからから撮影撮影ししたたたこのこのこのこのこのビデオビデオビデオビデオののののののののののののののののののののののののののののののののののののののののののののののののののののののののののののののののののののののののののののののののののののののののののののの検出するはてません,こので说明する特定条件条件の下であれであれば机能机能机能

[tform,inlieridx] = estimateGeometrictransform2d(...Pointb,Pointa,“仿射”);pointsBm = pointsb(inlierIdx,:);pointAm = pointa(inlierIdx,:);imgbp = imwarp(imgb,tform,'outputview',imref2d(size(imgb)));pointsBmp = transfortpointsforward(tform,pointsbm.location);

以下,さフレームフレームフレームフレームフレームフレームフレームフレームフレームフレームを投影投影さされれたた点点关系ととととととににににに示す示すカラー合成ですですです。。结果结果结果结果はにに良好。イメージはともによくててとののカラー合成がその领域でではほぼ纯粋纯粋な白黒白黒白黒にに

インライア対応はイメージのにあり,前景にはにに注意注意ししてててくださいください。前景自体自体はは揃っ揃ってていいませませんん。。これこれこれこれは,の特徴特徴特徴特徴に动作ですしたがって,アフィン変换が结像面変更変更にに制限制限ささされれてててもも,,両方両方のイメージイメージの背景背景面面面面揃えるににににそれそれそれででででで大きく変化と仮定ばばこの変换は実际はの动きをを捉え捉え捉え捉えてていることになりますます。したがっしたがってて,,补正补正を行うとと安定安定安定のカメラがに小さいかあるいはに,ビデオフレームフレームレートが十分にに速い速いですですです

数字;ShowMatchedFeatures(IMGA,IMGBP,PointSAM,PointsBMP);传奇('一个',,,,'b');

5:変换変换近似平滑化

一连のビデオフレーム t 一世 ,,,, 一世 = 0 ,,,, 1 ,,,, 2 が与え,上记手続きを使っすべてフレームフレームフレーム t 一世 t 一世 + 1 の间歪みをアフィン换换 H 一世 として推定ます。て,最初フレームフレームフレームフレーム 一世 の累积,前のの间変换积となります。すなわち,,次ののなりなりなり

H C m l 一个 t 一世 v e ,,,, 一世 = H 一世 j = 0 一世 - 1

6つ変换変换つパラメーターすべて使用使用ももできが数値数値数値を简素简素化化化ししし安定ささせるためためため,,よりよりななスケールスケールスケール回転回転回転回転 -回転 -回転 -平行 -平行平行平行平行平行平行移动移动ののののののののの変换6つありがががががつありつありますがこの変换自由自由,,,倍率,,,,角度角度角度角度角度角度角度およびおよびおよびおよびおよびおよびおよびおよびおよびおよびおよびおよびつのつのつのつの平行移动移动移动移动移动のののつつつつつです。

[s*cos(ang)s*-sin(ang)0;s*sin(ang)s*cos(ang)0;T_X T_Y 1]

この変换をにます。上取得した変换 H を -, -回転 -回転 -平行 -平行移动」」」 H s r t 当てはめ変换置き换え置き换えによるが最小限であることを示す両方両方両方のの変换変换変换変换フレームフレームフレームフレームフレームフレームフレームフレームフレームフレームフレームをををををを22イメージされ,,,つ投影间见らられるピクセル単位単位の相违ははごくわずかであるであることこと。

%提取量表和旋转部分子矩阵。h = tform.t;r = h(1:2,1:2);%计算theta的平均值theta =平均值([atan2(r(2),r(1))atan2(-r(3),r(4))]);%计算量表来自两个稳定平均计算的平均值比例=平均值(r([1 4])/cos(theta));%翻译保持不变:翻译= h(3,1:2);%重建新的S-R-T变换:hsrt = [[scale*[cos(theta)-sin(theta);罪(theta)cos(theta)];...翻译],[0 0 1]'];tformsrt = affine2d(hsrt);imgbold = imwarp(imgb,tform,'outputview',imref2d(size(imgb)));imgbsrt = imwarp(imgb,tformsrt,'outputview',imref2d(size(imgb)));图(2),CLF;imshowpair(imgbold,imgbsrt,“色彩渠道”,,,,'红鸡),轴图片;标题(“仿射和S-R-T变换输出的颜色复合”);

手顺6:ビデオ全体へ适用适用

次にのをを适用ててビデオを化化します。可読可読可読性性をををを高める高めるためためためため,,,,,,,,,,,,,、2cvexeststabilizationtformに含めています关数关数cvextformtosrtも,な変换 -回転 -回転 -平行 -平行移动の変换に。。。。。

各ステップ现在のフレーム変换変换 H s-s-s-r-t変换変换します。。これ H s r t として当て。后,をのフレームのカメラの动きををすべてすべて记述するする H C m l 一个 t 一世 v e と组み合わせビデオに,平滑化れビデオのの最后ののののフレームフレームフレームが赤とシアンシアンの合成としてとして

このコード早期终了条件削除て,ループビデオ全体をを处理ささせることことも。

%将视频源重置为文件的开头。读取(hvideosrc,1);hvplayer = vision.videoplayer;%创建视频查看器%处理视频中的所有帧movmean = rgb2gray(im2single(readframe(hvideosrc)));imgb = movmean;imgbp = imgb;更正= imgbp;II = 2;hcumulative =眼睛(3);尽管hasframe(hvideosrc)&& ii <10%在新框架中读取imga = imgb;%z^-1imgap = imgbp;%z^-1imgb = rgb2gray(im2single(readframe(hvideosrc)));movmean = movmean + imgb;%估计从框架A到框架B的转换,并作为S-R-T拟合h = cvexestStabilizationTform(IMGA,IMGB);hsrt = cvextformtosrt(h);hcumulative = hsrt * hcumulative;imgbp = imwarp(imgb,extine2d(hcumulative),'outputview',imref2d(size(imgb)));%显示为颜色复合材料,并带有最后一个校正的框架步骤(hvplayer,imfuse(imgap,imgbp,“色彩渠道”,,,,'红鸡);更正=校正 + imgbp;II = II+1;结尾更正=校正的敏感/(ii-2);movmean = movmean/(ii-2);%在这里您调用对象上的释放方法以关闭任何打开的文件%和发布内存。释放(HVPlayer);

中にのフレームフレーム修正されフレームフレームの算出算出さされれましましましたた。。のの平均平均値値をを并べて以下以下にに表示表示表示表示ししししののイメージイメージイメージイメージイメージビデオに多量の歪みが含まれていたことが確認できます。一方、修正後のフレームの平均を示す右側では、イメージ中央部分の歪みがほとんどありません。前景の細部はぼやけていますが (自動車が前進しているため必然的な結果です)、安定化アルゴリズムの有効性はよく示されています。

数字;imshowpair(Movmean,更正卑鄙的人,'剪辑');标题([“原始输入均值”,repmat('',[1 50]),,“校正序列平均值”);

参考文献

[1] Tordoff,b;默里,DW。“指导采样和共识以进行运动估计。”欧洲会议n计算机愿景,2002年。

[2] Lee,KY;Chuang,yy;陈,Ouhyoung,M。“使用稳健特征轨迹的视频稳定”。台湾大学,2009年。

[3] Litvin,A;Konrad,J;卡尔,WC。“使用卡尔曼过滤和摩西式的概率视频稳定。”IS&T/SPIE关于电子成像,图像和视频通信与Proc。的研讨会,2003年。

[4] Matsushita,Y;Ofek,E;唐,x;Shum,hy。“全框视频稳定。”Microsoft®研究ASIA。CVPR2005。