Open2

Vid2Seqを動かすまで

ピン留めされたアイテム
まぐまぐ

動画からその内容の説明を生成するDense Video Captioningという研究領域がある。

Dense Video Captioningのタスクにおいて、Googleのチームが発表しているVid2Seqというモデルがある。このスクラップはこれを動かすまでの試行のメモである。
https://github.com/google-research/scenic/tree/main/scenic/projects/vid2seq

現在ではVid2Seqよりも新しいStreaming Dense Video Captioningという論文が出ており、こちらの方がベンチマークのスコアなども優れているが、データセットの作成の過程においてVid2Seqの資産に一部依存しているため、Vid2Seqをまず動作させることを目標とする。

まぐまぐ

Vid2Seqを動作させる上で、環境構築が困難である。

例としてVid2Seqの動作にはT5XというGoogleがリリース・メンテナンスしているフレームワークが必要になるのだが、こういったGoogleが社内向けに開発したであろうライブラリのうち、一部はPyPIなどに公開されているわけではないので自分でビルドする必要がある。ここで、かなり罠がある。

https://github.com/google-research/t5x/blob/main/setup.py

まず、setup.pyを見れば分かるが依存ライブラリのバージョンが指定されていないものが多く、容易に壊れる。(特にflaxなどのGoogle製のライブラリでは後方互換性を破壊するような変更がされることが多い)

ただ単純に最新バージョンのT5Xを利用したいだけの場合、NVIDIAが公式に提供しているDockerイメージを使ったコンテナを作成することを推奨する。以下のドキュメントのContainerの節を参照いただきたい。

https://github.com/NVIDIA/JAX-Toolbox/tree/main/rosetta/rosetta/projects/t5x