こちらのサイトに手振れ補正する理屈とOpenCVで書いたサンプルが載ってる。
Simple video stabilization using OpenCV
- オプティカルフローを用いて、前後フレーム間のトランスフォームを求める。
トランスフォームは3つのパラメータ:dx, dy, da(角度)で構成され、基本的に剛体の剛性のユークリッド変換とし、スケーリングや共有は考慮しない。
- ブレの軌跡を得るために、各フレームのx, y, 角度のトランスフォームを保存する。
- 移動平均窓を使用して軌跡を滑らかにする。
ユーザが平滑化に使用するフレーム数となる半径を指定する。
- 以下のように新しいトランスフォームを求める。
新しいトランスフォーム = 元のトランスフォーム + (平滑化した軌跡 – 元の軌跡)
- 動画に新しいトランスフォームを適用する。
サンプルコードもある。
補正結果比較動画。
2020年10月 追記:このC++実装をもとに有志がPythonで実装したPython Video StabilizationがGitHubで公開されている↓
https://github.com/AdamSpannbauer/python_video_stab
2019年1月 追記:Learn OpenCVでも手振れ補正のチュートリアルが公開されたぞ↓
https://www.learnopencv.com/video-stabilization-using-point-feature-matching-in-opencv/
関連記事
続・ディープラーニングの資料
iOSで使えるJetpac社の物体認識SDK『DeepBel...
Google XML Sitemap Generatorプラ...
viser:Pythonで使える3D可視化ライブラリ
C++の抽象クラス
オープンソースの物理ベースGIレンダラ『appleseed』
hloc:SuperGlueで精度を向上させたSfM・Vis...
PyDataTokyo主催のDeep Learning勉強会
SONYの自律型エンタテインメントロボット『aibo』
TensorSpace.js:ニューラルネットワークの構造を...
Point Cloud Utils:Pythonで3D点群・...
写真から3Dメッシュの生成・編集ができる無料ツール『Auto...
HD画質の無駄遣い
BGSLibrary:OpenCVベースの背景差分ライブラリ
Mayaのシェーディングノードの区分
3D Gaussian Splatting:リアルタイム描画...
uvでWindows11のPython環境を管理する
Regard3D:オープンソースのStructure fro...
OpenMVS:Multi-View Stereoによる3次...
Google App EngineでWordPress
ニューラルネットワークと深層学習
OpenCVでカメラ画像から自己位置認識 (Visual O...
Autodesk Mementoでゴジラを3次元復元する
Python2とPython3
書籍『ROSプログラミング』
FCN (Fully Convolutional Netwo...
WordPress on Windows Azure
Photogrammetry (写真測量法)
CGのためのディープラーニング
ブログの復旧が難航してた話
OpenGVの用語
Point Cloud Consortiumのセミナー「3D...
まだ続くブログの不調
Amazon Web ServicesでWordPress
iOSデバイスと接続して連携するガジェットの開発方法
定数
ブログが1日ダウンしてました
ブログをGoogle App EngineからAmazon ...
MLDemos:機械学習について理解するための可視化ツール
PeopleSansPeople:機械学習用の人物データをU...
openMVG:複数視点画像から3次元形状を復元するライブラ...
Python for Unity:UnityEditorでP...


コメント