「動画のフレームレートを簡単かつ無料で高くしたい」
「AIによるフレーム補間をPythonで試したい」
このような場合には、RIFEがオススメです。
この記事では、最新フレーム補間技術であるRIFEについて解説しています。
本記事の内容
- RIFEとは?
- RIFEのシステム要件
- RIFEのインストール
- RIFEの動作確認
それでは、上記に沿って解説していきます。
RIFEとは?
RIFEは、フレーム補間のための技術のことを言います。
Real-Time Intermediate Flow Estimationから、RIFEという用語は来ていると思われます。
RIFEを利用すると、2倍・4倍・8倍までフレームレート(fps)を高くできます。
その際に違和感なくフレーム補完できるので、RIFEは人気があります。
その証拠に、RIFEを用いたソフトウェアが様々な形で公開されています。
- Flowframes
- Waifu2x-Extension-GUI
- Autodesk Flame
- RIFE-App(有料)
- Steam-VFI(有料)
RIFE-Appは、Windows専用のソフトのようです。
Steam-VFIは、Steamから購入できるようになっています。
RIFEを発表したプロジェクトは、これらのソフトウェアとの関係を否定しています。
本家となるプロジェクトは、以下のページになります。
GitHub – megvii-research/ECCV2022-RIFE
https://github.com/megvii-research/ECCV2022-RIFE
RIFEについては、GitHub上でも複数のページが確認できます。
しかし、本家は上記ページのプロジェクトだということです。
よって、この記事におけるRIFEとは本家プロジェクトを指します。
このRIFEの効果は、RIFE-Appのページで確認できます。
RIFE-App公式
https://grisk.itch.io/rife-app
さすがに有料だけあって、アピールが本家よりはスゴイです。
以上、RIFEについて説明しました。
次は、RIFEのシステム要件を説明します。
RIFEのシステム要件
RIFEのシステム要件は、以下がポイントになります。
- OS
- Pythonバージョン
- PyTorch
- FFmpeg
それぞれを下記で説明します。
OS
サポートOSに関しては、以下を含むクロスプラットフォーム対応と思われます。
明示されてはいませんが、ソースを見る限りOSは問わないはずです。
- Windows
- macOS
- Linux
Pythonバージョン
サポート対象となるPythonのバージョンについても記載はありません。
ただ、システム要件であるPyTorchがPython 3を必須にしています。
そのため、必然的にPython 3以降がシステム要件になります。
あと、以下のPython公式開発サイクルも意識しましょう。
バージョン | リリース日 | サポート期限 |
3.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年10月4日 | 2026年10月 |
Python公式開発サイクルを意識すると、Python 3.7以降が推奨となりますね。
PyTorch
RIFEは、CPUでも動くことは動くようです。
ただ、動画が関係する以上はGPUは必須でしょう。
GPU版PyTorchをインストールしておきましょう。
FFmpeg
動画編集の実作業を行うのが、FFmpegです。
そのため、FFmpegもインストール必須と言えます。
FFmpegのインストールには、以下の記事が参考になります。
以上、RIFEのシステム要件を説明しました。
次は、RIFEのインストールを説明します。
RIFEのインストール
RIFEのインストールには、Python仮想環境を利用しましょう。
検証は、次のバージョンのPythonで行います。
> python -V Python 3.10.4
PyTorchがインストール済みであることを前提に作業を進めます。
まずは、gitコマンドでプロジェクトを取得します。
``` git clone https://github.com/megvii-research/ECCV2022-RIFE.git ```
Windowsの場合であれば、gitコマンドが使えないかもしれません。
その場合は、Git for Windowsをインストールしましょう。
プロジェクトをダウンロードできたら、リポジトリルートに移動します。
cd ECCV2022-RIFE
リポジトリルートには、requirements.txtが存在しているはずです。
requirements.txt
numpy>=1.16 tqdm>=4.35.0 sk-video>=1.1.10 torch==1.6.0 opencv-python>=4.1.2 moviepy>=1.0.3 torchvision==0.7.0
このファイルを次のように変更します。
numpy>=1.16 tqdm>=4.35.0 sk-video>=1.1.10 opencv-python>=4.1.2 moviepy>=1.0.3
念のため、PyTorch部分を削除しておきます。
それよりも、事前にGPU版PyTorchをインストールしましょうという意味があります。
ファイルを変更できたら、次のコマンドを実行します。
pip install -r requirements.txt
以上、RIFEのインストールを説明しました。
次は、RIFEの動作確認を説明します。
RIFEの動作確認
RIFEの動作確認は、次の手順で行います。
- 学習済みモデルの用意
- 動画の用意
- 動作確認
それぞれを以下で説明します。
学習済みモデルの用意
動作確認を行うためには、学習済みモデルのダウンロードが必要です。
モデル配布先URL
https://drive.google.com/file/d/1APIzVeI-4ZZCEuIRE1m6WYfSCaOsi_7_/view?usp=sharing
上記URLにアクセスして、ZIPファイルをダウンロードします。
赤い下線のダウンロードリンクをクリックするだけです。
ダウンロードには、しばらく時間がかかります。
ダウンロードが完了したら、ZIPファイルを解凍します。
展開されたディレクトリには、「train_log」を確認できます。
この「train_log」をそのままリポジトリルートに移動します。
これで、学習済みモデルの用意ができました。
動画の用意
フレームレートを高くしたい動画を用意します。
動画は、以下のモノがサンプルとして公開されています。
demo video
https://drive.google.com/file/d/1i3xlKb7ax7Y70khcTcuePi6E7crO_dFc/view?usp=sharing
この動画をモデルと同じようにダウンロードします。
ダウンロードできたら、リポジトリルートにこの動画ファイルを移動しましょう。
動作確認
準備は、すべて整いました。
リポジトリルートにおいて、次のコマンドを実行します。
python inference_video.py --exp=1 --video=demo.mp4
実行すると、次のように処理が開始されます。
> python inference_video.py --exp=1 --video=demo.mp4 Loaded v3.x HD model. demo.mp4, 1342.0 frames in total, 25.0FPS to 50.0FPS The audio will be merged after interpolation process 28%|██████████████████████████▏ | 382/1342.0 [00:37<01:09, 13.79it/s]
demo.mp4が25FPSであることがわかります。
そして、そのフレームレートを2倍の50FPSに変更しようとしています。
処理時間は、1分ちょっとぐらいです。
処理が完了すると、次の名前のファイルを確認できます。
demo_2X_50fps.mp4
demo.mp4のFPSを2倍の50FPSにしたことが、ファイル名からわかります。
なお、expと倍率の関係は以下となります。
exp | 倍率 |
1 | 2倍 |
2 | 4倍 |
3 | 8倍 |
さて、出来上がった動画を確認してみてください。
元の動画と比べてみて、フレームレートが高くなっているのがわかるでしょうか?
違いがわかるような、わからないような感じではないでしょうか?
この辺は、普段からFPSの違いに敏感かどうかによって違ってくる部分です。
とにかく、これでRIFEの動作確認は終わりとします。
以上、RIFEの動作確認を説明しました。