MTTRで、動画のインスタンス・セグメンテーションを何に対して行うかテキストで指定する

1.はじめに

 今回ご紹介するのは、動画のインスタンス・セグメンテーションを何に対して行うかテキストで指定するMTTRという技術です。

*この論文は、2021.11に提出されました。

2.MTTRとは?

 下記がMTTR(Multimodal Tracking Transformer)のフローで、大きく分けて3つのブロックで構成されています。

 1つ目が、画像と言葉の拡張(Visual & Linguistic Feature Extention)で、フレームテキストが入力されるとそれぞれエンコーダを通してベクトルに変換し結合します。

 2つ目が、マルチモーダル・トランスフォーマ(Multimodal Transformer)で、フレームとテキストの特徴の関係をエンコードし、一連の予測にデコードして対応するマスクを生成します。

 3つ目が、一連のインスタンスセグメンテーションと基準予測(Instance Sequence Segmentation & Reference Prediction)で、画像の特徴をデコードして得たセグメンテーションと予測したマスク情報をまとめ、結果を出力します。

3.コード

 コードはGoogle Colabで動かす形にしてGithubに上げてありますので、それに沿って説明して行きます。自分で動かしてみたい方は、この「リンク」をクリックし表示されたノートブックの先頭にある「Colab on Web」ボタンをクリックすると動かせます。

 まず、セットアップをおこないます。

 

 このコードはYoutubeからダウンロードした最大10秒の動画と最大2つのテキストを組み合わせて動かすようになっています。

 動画とテキストの指定の仕方は、video_url, (start_pt, end_pt), text_queries = f’https://www.youtube.com/watch?v=???????’ ,(start_pnt, end_pnt), [‘text query 1’, ‘text query 2’] で行います。ここで、???????Youtubeの共有コードstart_pnt 変換開始ポイント(秒)end_pnt変換終了ポイント(秒)‘text query 1’ ‘text query 2’テキストです。

 あらかじめ、12個のYoutube動画とテキストが用意されていますので、選択する行の先頭だけコメントアウト(#)を外せばOKです。とりあえず、8行目がコメントアウトされていますので、このまま実行しましょう。

 

 それでは、今指定した内容でYoutubeから動画をダウンロードし、編集して再生してみましょう。

 次に、この動画とテキストを元にインスタンスマスクを生成します。

 そして、動画にインスタンスマスクとテキストを適用させます。

 

 もう1つやってみましょう。サンプルは全てコメントアウト(#)し、17行目を video_url, (start_pt, end_pt), text_queries = f’https://www.youtube.com/watch?v=btMGKIXtyLo‘ ,(131, 135), [‘person in riding a bike‘, ‘a bike‘] に書き換えてやってみましょう。

 いかがだったでしょうか?テキストで指定した物体だけ、インスタンス・セグメンテーションできるのは面白いですよね。

 では、また。

(オリジナルgithub : https://github.com/mttr2021/MTTR

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

ABOUTこの記事をかいた人

アバター

ディープラーニング・エンジニアを趣味でやってます。E資格ホルダー。 好きなものは、膨大な凡ショットから生まれる奇跡の1枚、右肩上がりのワクワク感、暑い国の新たな価値観、何もしない南の島、コード通りに動くチップ、完璧なハーモニー、仲間とのバンド演奏、数えきれない流れ星。