【無料】AI動画高画質化ツールCodeFormer

【無料】AI動画高画質化ツールCodeFormer 機械学習

「動画の高画質化を無料で行いたい」
「動画に出てくる人間の顔画像を自動的に取得したい」

このような場合には、この記事の内容が参考になります。
この記事では、AI動画高画質化ツールでもあるCodeFormerについて解説しています。

本記事の内容

  • CodeFormerによる動画高画質化
  • CodeFormerによる動画内の顔認識・顔検出

それでは、上記に沿って解説していきます。

CodeFormerによる動画高画質化

CodeFormerとは、画像高画質化ツールとして公開されました。
主に、人間の顔を復元するということがその特徴でした。

その後、CodeFormerにReal-ESRGANが統合されました。

このことにより、人間の顔以外も復元することが可能になりました。
Real-ESRGANについては、次の記事で説明しています。

そして、2022年10月5日には動画の高画質化にも対応しました。

動画は画像を合わせたモノだと考えれば、この対応に驚きはありません。
気になるのは、その効果ですよね。

「どの程度まで、動画を高画質化できるのか?」
このことを確認するために、次の動画を利用しました。

[Street scenes, city in Japan, late 1940s]
https://archive.org/details/CLN-36-C-5_CAN_1?start=56

白黒の古い動画です。
1940年代の東京で撮影した動画になります。

この動画をCodeFormerで高画質化してみました。
処理前と処理後の比較動画は、以下となります。

CodeFormerによる動画高画質化の効果を比較する動画

結果は、驚愕の結果というほどではありません。
これは、白黒動画というのが関係している可能性があります。

ということで、カラーの動画を高画質化してみました。
そして、比較したのが以下の動画です。

CodeFormerによる動画高画質化の効果を比較する動画(カラー)

白黒の場合より、カラーの場合の方が高画質化の効果を確認できます。
ただ、高画質化により元の動画より再生時間が伸びています。
原因は、フレームレートの違いかもしれません。

まだ、CodeFormerの動画高画質化は公開されたばかりの新機能です。
今後の機能改善により、再生時間が伸びる問題が解決されることを期待しましょう。
(※元動画のフレームレート自動算出などで対応できそうな感じはします)

あと、動画を高画質化する時間が結構長いです。
白黒動画は2時間程かかりました。
GPUにRTX 3090(24GB)を用いての結果となります。

したがって、マシンスペックにはある程度のレベルが求められます。
なんと言っても、動画編集と機械学習を同時に行うわけですからね。

以上、CodeFormerによる動画高画質化を説明しました。
次は、CodeFormerによる動画内の顔認識・顔検出を説明します。

CodeFormerによる動画内の顔認識・顔検出

ここで言う顔認識・顔検出は、リアルタイムの話ではありません。
動画内の顔を画像として切り出すことを指しています。

この顔画像を切り出すとういうことについて、説明します。
まず、動画を処理する場合には次のようなコマンドを利用します。

python inference_codeformer.py --bg_upsampler realesrgan --face_upsample --w 0.7 --test_path 動画パス --save_video_fps 24

上記を実行すると、「results」ディレクトリ以下に次のディレクトリ・ファイルが作成されます。

これは、白黒の古い動画を処理した場合の構成です。
mp4が高画質化された動画になります。

各ディレクトリには、次のような画像が保存されています。

cropped_faces動画の静止画から切り出した顔画像
final_results動画の静止画を高画質化した画像
restored_faces切り出した顔画像を高画質化した顔画像

「cropped_faces」の画像

「restored_faces」の画像

「cropped_faces」と「restored_faces」には、同じ枚数の画像があります。
そして、「final_results」には高画質化した全体となる画像が保存されています。

000000.png

「cropped_faces」と「restored_faces」にある顔画像のファイル名は、全体画像のファイル名と関連があるようです。
「000000.png」には、「000000_00.png」の顔を持つ人物が存在しています。

全体画像に複数の顔を認識できれば、次のように下2桁が連番となるようです。

これらの顔が検出できた全体画像は、以下となります。

001004.png

確かに、3つの顔が確認できます。

以上、CodeFormerによる動画内の顔認識・顔検出を説明しました。

タイトルとURLをコピーしました