Gyroflowを試してみる
きっかけ
- ロードバイクに乗っていたら、動画が撮りたくなり XTU S2PRO という アクションカムを買ってましたが、カメラの搭載方法が面倒で放置してました。私本人の首から下げる方法ではブレが酷くて画面酔いしたのもあります。
- 最近、サイコンを取り付ける方法を変更した結果、ハンドルの上(いわゆるコクピット)が整理されてカメラを取り付ける余地が出来ました。
- 2025/05/05 に撮影したものを Youtubeにアップしましたが、gyroflow対応設定していたことを思い出しました。
Gyroflowの紹介
Gyroflowは、アクションカメラで撮影した映像の手ブレを安定化させるためのオープンソースソフトウェアです。従来のデジタルスタビライゼーション技術とは異なり、カメラのジャイロスコープデータを利用して高精度な手ブレ補正を行います。
具体的には、gcsvというジャイロスコープデータログと動画メディアを比較して、方向変化などの画像の位置関係の補正ができるというものです。
Gyroflowの主な特徴:
- 高精度な安定化: カメラ内蔵のジャイロスコープデータを活用して精密な動きの追跡と補正を実現
- オープンソース: GitHubで公開されており、誰でも利用・改良可能
- クロスプラットフォーム: Windows、macOS、Linuxで動作
- レンズ補正: 魚眼レンズなどの歪みを自動的に補正
- 豊富なレンズプロファイル: 多数のアクションカメラやレンズに対応
- 高度なカスタマイズ: 補正の強度や方法を詳細に設定可能
Gyroflowは特にGoPro、DJI、Insta360などの人気アクションカメラと相性が良く、これらのカメラで撮影した映像の質を大幅に向上させることができます。最新のバージョンでは、BlackmagicやSonyなどのカメラにも対応しています。
レンズプロファイルとは?
レンズプロファイルは、特定のカメラとレンズの組み合わせに対する光学的な特性(歪みなど)を数学的にモデル化したデータです。Gyroflowでは、このレンズプロファイルを使用して:
- レンズの歪みを正確に補正
- 画角の変化を適切に処理
- 映像の安定化をより精密に行う
Gyroflowでは12,000以上のレンズプロファイルが用意されており、ほとんどの一般的なアクションカメラとレンズの組み合わせに対応しています。もし特定のカメラに対するプロファイルが存在しない場合は、独自のプロファイルを作成することも可能です。
レンズプロファイルは GitHub リポジトリ で管理・公開されており、コミュニティによって継続的に更新・追加されています。
早速インストールをためします・・・
コンパイル(失敗)
Ubuntu 25.04 の素の環境では、様々な問題があるようです。時間の制約もあり、原因の追究は行いませんでした。
Compiling cpp_macros v0.5.10
Compiling wide v0.7.32
Compiling enum_primitive v0.1.1
Compiling digest v0.10.7
Compiling hashbrown v0.13.2
error: failed to run custom build command for `qttypes v0.2.12 (https://github.com/AdrianEddy/qmetaobject-rs.git?rev=ff1e23d#ff1e23dc)`
Caused by:
process didn't exit successfully: `~/workdir/bike/gyroflow/target/debug/build/qttypes-1aef0c6ac8ed5be6/build-script-build` (exit status: 101)
--- stdout
cargo:rustc-check-cfg=cfg(no_qt)
cargo:rustc-check-cfg=cfg(qt_5_11,qt_5_12,qt_5_15,qreal_is_float)
cargo:rerun-if-env-changed=QT_INCLUDE_PATH
cargo:rerun-if-env-changed=QT_LIBRARY_PATH
cargo:rerun-if-env-changed=QMAKE
--- stderr
thread 'main' panicked at /home/hiko/.cargo/git/checkouts/qmetaobject-rs-c9abeff168a5d265/ff1e23d/qttypes/build.rs:29:9:
Failed to execute qmake. Make sure 'qmake' is in your path!
entity not found
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
主な問題はQtの依存関係のようです。特にqmake
がパスに含まれていないことが原因のひとつです。
バイナリをインストールする
コンパイルに失敗したため、代わりにGyroflowのバイナリをインストールする方法を試しました。
公式インストールガイドに従い、ダウンロードページからLinux用のAppImageを入手しました。
AppImageの実行方法:
% cd workdir/AppImages
% mv ~/ダウンロード/Gyroflow-linux64.AppImage .
% chmod +x Gyroflow-linux64.AppImage
% ./Gyroflow-linux64.AppImage
インストール後、Gyroflowが正常に起動しました。ログからわかるように、バージョン1.6.1が正常に動作し、12,343個のレンズプロファイルがロードされました。
使い方
基本的な使用手順は以下の通りです:
- メディアファイルの読み込み: 安定化したい動画ファイルを開きます
- レンズプロファイルの設定: 使用しているカメラとレンズの組み合わせに対応するプロファイルを選択します(縦横比やビットレートなどの設定が異なると警告が表示されますが、設定しない場合よりも良い結果が得られます)
- ジャイロデータの読み込み: メディアファイルと対応するGCSVファイル(ジャイロスコープデータ)を指定します
- 映像とジャイロデータの同期: 自動同期がうまくいかない場合は、チェックを外して手動で同期点を探します(同期が適切でないと補正の質に大きく影響します)
- レンダリング(エクスポート): 処理には時間がかかります。マシンの性能に依存しますが、私の環境ではほぼ実時間(1倍速)での処理速度でした
コンバートされた映像を見た感想
- そもそも映像とジャイロデータが正確に同期できていない疑いがあります
- 元の映像ではサイコン(サイクルコンピュータ)が画面に映っており、そこが固定点となっていました。補正後は遠景の揺れは軽減されましたが、サイコンが激しく揺れてしまい、かえって見づらくなってしまいました
- レンズ歪みの補正を行うと画角が狭くなることがあり、これも気になる点です
- 路面凹凸からの衝撃による垂直移動を補正はあまり効かない感じがあります。
まとめ
- GoPro等のカメラでは映像にGPS情報が付加されており、より正確な同期が可能です
- ジャイロデータを活用した映像安定化は効果的ですが、適切な設定と同期が重要です
- カメラの取り付け位置や固定方法によって、補正の効果が大きく変わる場合があります
- 使用するカメラとGyroflowの相性、特にジャイロデータの取得方法が重要です
Gyroflowは強力なツールですが、最適な結果を得るには適切な設定と経験が必要です。特にカメラの選択とマウント方法がクオリティに大きく影響します。
Discussion