はじめに
Google Colab は非常に便利なサービスです
GPU インスタンスを、限られた時間とはいえ、無償で利用できます
例えば、様々なAIモデルの比較検証を行なっているとき、すぐに GPU で高速に動かせるのは大変ありがたい(ローカルに GPU マシンを用意した方がいいのは間違いないが)
一枚の静止画で試すのであれば CPU でもどうにかなりますが、動画で試そうと思えば GPU がないのは辛いです
なぜか動画が出力されない
多くの AI モデルのリポジトリーには、とりあえず動かしてみるためのコードが大体ついています
demo.py
や inference.py
などの名前で
また、 README.md にも大抵実行方法や実行例を親切に書いてくれています
しかも、多くの場合、動画でもちゃんとデモが動かせるのです
CenterNet2 のモデルをとりあえず動かしてみようとしたとき、静止画ではちゃんと動くのに、なぜか動画が出力できませんでした
なぜでしょうか
単純な答え
答えは単純で、実はコードの中にコメントでも記載されていました
要するに、動画コーデックが、 Google Colab 上で使えないものだったのです
OpenCV では、動画を出力するときに Writer を以下のようにインスタンス化します
cv2.VideoWriter_fourcc(*"x264")
ここで指定している *"x264"
の部分がコーデックです
Colab 環境では、 *"x264"
が使えないのです
コードの編集
左側メニューからフォルダアインコンをクリックすると、ファイルがツリー構造で表示されます
編集したいファイルをダブルクリックすると、ウィンドウ内の右側にファイルが開きます
*"x264"
を *"mp4v"
に書き換えます
macOS の場合は ⌘+S 、 Windows の場合は Ctrl+S で保存します(一定時間経過でも保存されます)
これで改めて実行すれば動画が出力されます
まとめ
動画が出力されないときはコーデックを確認しましょう
Colab なら *"mp4v"
で MP4形式の動画が出力できます
また、リポジトリーによっては Colab で動かすノートブックを置いてくれていたりもしますので、 README をよく読みましょう