実行方法:image.jpgを作業ディレクトリ直下に置き、全セルを実行。Google Colabのデフォルト環境でパッケージのインストールを含め約6分で実行できる。
プログラムの目的:マイナーな料理の画像を見て、その料理名を選択肢の中から正しく選択すること。
手法:まず、CLIPを用いて画像と料理名リストの各要素との類似度を計算し、その中で最も確率が高い料理名を予測結果とした。この方法でも多くの料理に関しては正しく予測できるのだが、以下のコードで示すように、インドネシア料理「Mie ayam」について間違った予測結果を生んでしまった。これは、「Mie ayam」に関する情報が学習データにおいてあまり重視されていなかったためであると考えられる。そこで、料理名のwikipedia記事をスクレイピングすることでその料理に関する説明を得て、料理名のリストの代わりに料理の説明文のリストをCLIPに渡すことで正しく予測できるのではないかと考えた。ただしCLIPの入力テキストには長さの制限があるため、スクレイピング結果をBERTを用いて要約してからCLIPに渡すことにした。その手法によって、大幅に予測精度を改善することができた。
外部ファイル:image.jpg(インドネシア料理Mie ayamのフリー画像。https://www.photo-ac.com より取得した。)