Taste of Tech Topics

Acroquest Technology株式会社のエンジニアが書く技術ブログ

ECCV2022参戦記〜Text/ImageでCLIPが活躍〜

皆さんこんにちは
当社のデータサイエンスチームYAMALEXのチームリーダの@tereka114です。
最近までリフレッシュ休暇制度を使って箱根を満喫しながら、ECCV2022に参加していました。その学会の感想を記載します。

ECCVとは

ECCV(European Conference on Computer Vision)はコンピュータビジョンのトップカンファレンスの一つで、CVPR、ICCVと並んでよく紹介される学会です。
今年はイスラエルで開催されており、Virtual/現地のハイブリッド開催となりました。(私はVirtual参加)
Vitualのみと異なり、ビデオの途中で現地の会場が見えるだけでも、ライブ感が少し増しており、良かったです。

ECCV2022のスケジュールは次のとおりです。

10月23日、24日:Turtorial/Workshop
10月25日〜27日:本会議

学会は日本時間15時〜休みありで24時ぐらいまでです。

今年のカンファレンス

25日の夜にOpeningが開催されました。Openingでは、学会参加者、論文の傾向が話されます。
まずは、参加者の国籍です。アメリカ中国はこれまでの他の学会と変わらず多いです。また、私の予想とは異なりますが、Virtual参加よりも現地参加の方が人数が多いことに驚きました。

論文数の紹介です。こちらも数が多く、Acceptが1488件でした。
非常に多くの論文が採択されており、相変わらず、人一人で見れる量を遥かに超えていました。


面白かった論文の紹介

面白かった論文の概要を紹介していきます。これらの論文は全てOralでの採択のものです。
興味が出てきたものはぜひ、論文も読んでみてください。このあとの各論文タイトルがリンクになっています。

Revisiting a kNN-based Image Classification System with High-capacity Storage

画像の分類を特徴量を抽出して、kNN(K近傍法)で実施するシステムの提案です。
推定させたいクラスの画像から事前にモデルの途中の出力である特徴量を抽出しておき、ストレージに入れます。
新しい画像も同様に特徴量を抽出し、ストレージに含まれる画像の特徴量と比較し、クラスを推定するものです。(図参照)

通常の分類では、学習して、推論して、どのクラスが最も良かったのかを直接推論するため、一般的にはkNNより精度が高くなります。
しかし、画像の特徴量を用いてkNNで推論するのも異なった良さがあり、論文中で述べられています。

  1. 特徴量さえ取り出せれば良いので、新規クラスが追加された際に、新規学習が必要ない。
  2. kNN手法は再学習不要のため、再学習した際に過去学んだことを忘れる破壊的忘却(Catastrophe Forgetting)を回避できる。
  3. 解析が簡単。例えば、推論時に近しい画像がどれかがわかるので、ラベルミスなど、なぜ、判定を失敗したのかがわかりやすくなる。

論文を読んだ感触として、特にクラス分類の対象が動的に変化するようなシステムだと、kNNによるクラス分類のほうが安定して運用ができそうです。

The Challenges of Continuous Self-Supervised Learning

自己教師あり学習を継続的な学習(概ねストリーム学習)で実現する試みを論文にまとめたものです。
通常の学習だとデータが既に決まっており、そのデータを繰り返し学習して精度をあげます。
今回の問題はストリーム的なデータの流れ方をするものを対象としており、同じデータは一度しか流れてこないといったものが制約になります。
この問題を論文中で、学習効率(Trainining Efficiency)、データ間に関連があるもの(Non-IID)、長期間に渡る運用(Lifelong)の3つの項目で議論されています。

それぞれの課題でBufferと呼ばれる流れてくるデータを一時的に蓄積する仕組みを利用して従来のものよりも精度を向上させています。

  1. データをBufferに蓄積する。このBufferからデータを取り出し、繰り返し学習させることでデータを有効に使い、精度を向上させた。(論文中でBuffered Replayと呼ばれている)
  2. Minimum Redundancy Bufferと呼ばれる最も類似度が小さいデータを省き、新規にデータをBufferに蓄積する方法の提案により
    Non-IID(データ間に関連のあるもの)Data/Lifelongでの精度を向上させた。

これらの考え方は、自己教師あり学習のみならず、データの傾向が日々変わるようなもの(ECサイトなど)の機械学習の運用で利用できる考え方だと思います。

Text2LIVE: Text-Driven Layered Image and Video Editing

画像/動画をテキストの内容を用いて変換させるといった問題を解きます。
従来手法では、関係のないオブジェクトがテキストにより変換されたり、変換が必要な部分にマスクをかけないといけないといった問題がありました。
本手法では、マスク不要での入力画像の変換を高精度で成功しており、かつ、ビデオへの拡張も行っています。

Generatorで編集する画像をRGBAで生成し、それをオリジナルの入力画像で重ね合わせることにより生成します。
Generatorの学習は主に次の誤差が利用されます。画像/テキストの表現学習であるCLIPの事前学習済のモデルが多く活用されているのが個人的に面白いポイントです。

  • 最終的な出力結果の誤差、CLIPのText/ImageのEncoderを用いて、生成画像とテキストの特徴量を抽出し、コサイン距離を計算する。
  • 編集用の編集画像の誤差、描画する画像を緑色の背景と合成した画像とテキスト(over a green screenを記載する)の特徴量を抽出したもののコサイン距離を計算する。
  • 構造誤差、CLIPのViTを推論されて得られる出力結果(複数のToken)の距離を用いて、入力と出力で構造上類似しているかの制約をかける。
    入力と出力で似たような傾向の意味的構造であれば誤差が低くなる。

動画においてはAtlasと呼ばれる方法で動画を2Dで表現する方式があり、このAtlas上の画像をText2LIVEで加工し、逆変換して動画を推定するといった方式を行います。
従来手法では動画の時間軸方向での変換の一貫性が不足していました。しかし、この手法では動画間のフレームの変換の一貫性を改善できたとのことです。


EclipSE: Efficient Long-range Video Retrieval using Sight and Sound


動画の解析には動画から取得できるフレームだけではなく、音声も重要です。そのため動画(フレーム+音声)とテキストを用いた表現学習を提案しました。
特に動画のEncoding部分に特徴があり、図中に「ECLIPSE」と記載されているモジュールが提案されているニューラルネットワークの構造になります。
Image/textのEncoderの初期値には、CLIPの事前学習済モデルが使われます。「ECLIPSE」モジュールはテキストと動画の特徴を用いたContrastive Lossに基づいて重みを更新します。
この学習によりActivityNet Captionsと呼ばれる動画のキャプション生成にてSoTAを達成しました。

特にCLIPの実験結果を見ていると物量が非常に重要な要素の一つだったので、EclipSEもデータを増やせばさらなる精度向上が期待できるかもしれません。

Registration Based Few-Shot Anomaly Detection


従来の異常検知の手法(図中a,b)は一つのカテゴリ(製品)ごとに一つのモデルが必要となります。
本提案手法(図中c)では、一つのモデルで全てのカテゴリの異常検知を実現します。
まずは、最初の図中のFeature Registration Aggregated Trainingを実施します。次の図はFeature Registration Aggregated Trainingで学習されるモデルの概略図です。

2つの画像を入力するSiamese Networkを入力し、途中の特徴量の出力結果を幾何的に変換させるSTNのモジュールをはさみます。これにより特徴量のロバスト性を確保します。
その結果に、特徴量変換のEncoderを適用し、Prediction Headを片方の特徴量のみに適用します。
Prediction Headを片方の特徴量のみ適用するのは、Negative Pairがない状態で学習するとモデルが同じような特徴を出力する事象が発生するようで、それを回避するためとのことです。
最後に2つの特徴をコサイン類似度を符号反転させたものを誤差として、パラメータを更新します。

次にNormal Distribution Estimationです。推定したいデータのカテゴリと同じものであるSupport Setを用いて、新しいカテゴリのパラメータの平均と分散をニューラルネットワークの出力の高さと幅ごとに求めます。
最後に、前段で求めた平均、分散のパラメータを利用してマハラノビス距離を用いて異常であるかどうかを判定します。
これにより新しいカテゴリが登場しても、再学習させず、Support Setを利用すれば1つのモデルで様々な異常検知ができることになります。

最後に

ECCVに参加してCLIPを1日1回は聞いたように思えました。
CLIPは途中にも簡単に述べましたが、テキスト/画像の表現学習で、膨大なデータを利用することで、非常に良い表現を獲得しています。
私自身もKaggleのGoogle Universal Image Embeddingで利用しましたがImageNetの学習済ではCLIPを超えられませんでした。
CLIPは特にテキスト/画像の2つのドメインを利用する際には必須の技術になってきてました。

テキスト/画像は発展が著しいので今後も楽しみです。

Acroquest Technologyでは、キャリア採用を行っています。


  • ディープラーニング等を使った自然言語/画像/音声/動画解析の研究開発
  • Elasticsearch等を使ったデータ収集/分析/可視化
  • マイクロサービス、DevOps、最新のOSSを利用する開発プロジェクト
  • 書籍・雑誌等の執筆や、社内外での技術の発信・共有によるエンジニアとしての成長
 
少しでも上記に興味を持たれた方は、是非以下のページをご覧ください。


www.wantedly.com