# 手順構造を考慮した手順書からの作業画像検索

迫田航次郎
京都大学大学院情報学研究科
sakoda.kojiro.48z@st.kyoto-u.ac.jp
西村太一
京都大学大学院情報学研究科
nishimura.taichi.43x@st.kyoto-u.ac.jp
森信介
京都大学学術情報メディアセンター
forest@i.kyoto-u.ac.jp

## 1 はじめに

ある手順書に基づいて作業を行う場合，手順書に 記されている文章だけでなく，その手順における物体の状態を写した画像を共に参照することで作業者 は手順を再現しやすくなる。本研究では手順書を入力として，各手順に対応する画像を検索することを 目的とする (図 1).

手順書から作業画像を検索するためには，モデル は単に対応する手順の内容だけでなく, 過去の手順 で使用した材料や動作との因果関係も考慮する必要がある，我々は，この因果関係を木構造をはじめ とするグラフ構造で表現することができる $[1,2,3]$.本研究ではこうした構造を手順構造と呼び，図 1 に その一例を示す.この例では，手順書の (1) で材料 リストにあるアスパラガスとじゃがいもを茹で，(2) でそれらを皿に並べている。(4)では (2) の結果と (3) で刻んだチーズを合わせてオーブンで加熱して いる。手順構造はこれらの手順間の因果関係を表現 しており，各材料が手順構造の葉に，各手順が節点 に対応している. 本研究では，手順書と，材料リス ト，そして手順構造を入力として与え，手順構造を 効率よく学習しつつ作業画像を検索する手法を提案 する。

実験では，手順構造を考慮しない従来の画像検索 モデルと比較して画像検索性能が向上したことが分 かった. また，実際に検索した結果をもとに，手順構造を考慮することの有用性を示した。

## 2 関連研究

手順書とその実施映像を対象とした研究は近年活発に行われている。中でも，料理ドメインは Web 上でデータを集めやすく，材料や動作の種類が豊富

図 1 本研究の課題概要. 手順書，材料リスト，手順構造 を入力として，手順書の各手順に対応する作業画像を検索する。

であるため注目を集めている。本研究で利用する Cookpad Image Dataset [4] は約 170 万のレシピ，画像列，材料リストを含む世界最大規模のマルチモーダ ルデータセットである.

こうした大規模なデータセットを活用して，レシ ピとその実施映像との間で共通の表現を学習する研究も行われている. Salvador ら [5] は，テキスト側 の入力として手順と材料を，画像の入力としてレシ ピの完成画像をそれぞれエンコードし，共有潜在空間を学習することで，レシピから完成画像を検索す る手法を提案した。

しかし，材料と動作の因果関係を考慮しつつ検索 を行うような研究は未だ十分に取り組まれてはい ない. レシピの内容をコンピュータが理解するため に，こうした関係を手順構造で表現する取り組みも 行われている $[1,2]$. さらに，近年では，手順構造を 画像付きで理解する試みも行われており，そのため のマルチモーダルデータセットとして，VSIMMR [3] というデータセットも提案されている. 本研究で は，VSIMMR データセットを用いて，材料と動作の 因果関係を考慮しつつ，手順書の各手順に対応する

図 2 従来の画像検索モデル (ベースラインモデル).画像を検索する手法を提案する。

## 3 作業画像の検索モデル

図 2 に従来の画像検索モデル (ベースラインモデ ル)の, 図 3 に提案手法モデルの概要を示す. また，以下の節でそれぞれのモデルについて説明する。

## 3.1 ベースラインモデル

ベースラインモデルは 3 つの処理に分けること ができる. (i) で手順列を入力に，LSTMを用いて手順書の時系列情報を考慮した特徵べクトルを得る。 (ii) で画像列を入力に，全結合層を用いることで画像の特徴べクトルを得る. 最後に, (iii) で (i) と (ii) で得られた手順と画像の特徴べクトルを 3 層の全結合層により共有潜在空間上に埋め込む.

(i) 手順列の入力 : 手順列の入力部は 1 層の LSTM と 2 層の全結合層からなる. まず，各手順を構成す る単語を word2vec を用いて分散表現に変換し，そ の平均を手順べクトル列 $T=\left(t_{1}, t_{2}, \ldots, t_{k}, \ldots, t_{K}\right)$ と して得る. 次に，手順ベクトル列をLSTM に入力 し, 手順書の時系列情報を考慮した手順ベクトル列 $H=\left(h_{1}, h_{2}, \ldots, h_{k}, \ldots, h_{K}\right)$ を以下のように計算して 得る.

$
\begin{aligned}
\boldsymbol{i}_{\boldsymbol{k}} & =\sigma\left(\boldsymbol{W}^{(i)} \boldsymbol{t}_{\boldsymbol{k}}+\boldsymbol{U}^{(i)} \boldsymbol{h}_{\boldsymbol{k}-1}+\boldsymbol{b}^{(i)}\right) \\
\boldsymbol{f}_{\boldsymbol{k}} & =\sigma\left(\boldsymbol{W}^{(f)} \boldsymbol{t}_{\boldsymbol{k}}+\boldsymbol{U}^{(f)} \boldsymbol{h}_{\boldsymbol{k - 1}}+\boldsymbol{b}^{(f)}\right) \\
\boldsymbol{o}_{\boldsymbol{k}} & =\sigma\left(\boldsymbol{W}^{(o)} \boldsymbol{t}_{\boldsymbol{k}}+\boldsymbol{U}^{(o)} \boldsymbol{h}_{\boldsymbol{k}-\mathbf{1}}+\boldsymbol{b}^{(o)}\right) \\
\boldsymbol{u}_{\boldsymbol{k}} & =\tanh \left(\boldsymbol{W}^{(u)} \boldsymbol{t}_{\boldsymbol{k}}+\boldsymbol{U}^{(u)} \boldsymbol{h}_{\boldsymbol{k}-\mathbf{1}}+\boldsymbol{b}^{(u)}\right) \\
\boldsymbol{c}_{\boldsymbol{k}} & =\boldsymbol{i}_{\boldsymbol{k}} \odot \boldsymbol{u}_{\boldsymbol{k}}+\boldsymbol{f}_{\boldsymbol{k}} \odot \boldsymbol{c}_{\boldsymbol{k - 1}} \\
\boldsymbol{h}_{\boldsymbol{k}} & =\boldsymbol{o}_{\boldsymbol{k}} \odot \tanh \left(\boldsymbol{c}_{\boldsymbol{k}}\right)
\end{aligned}
$

次に, LSTM の出力を 2 層の全結合層に入力し, 共有潜在空間上の手順べクトル列 $S=$ $\left(s_{1}, s_{2}, \ldots, s_{k}, \ldots, s_{K}\right)$ を得る.

図 3 提案手法モデル.

(ii) 画像列の入力 : 画像列の入力部は ResNet50 [6] と 3 層の全結合層からなる. まず，画像列の各画像 を ImageNet [7] で学習済の ResNet50を用いて分散表現 $\boldsymbol{I}=\left(\boldsymbol{i}_{1}, \boldsymbol{i}_{2}, \ldots, \boldsymbol{i}_{k}, \ldots, \boldsymbol{i}_{\boldsymbol{K}}\right)$ に変換し，全結合層に入力することで，共有潜在空間上の画像列ベクトル $V=\left(v_{1}, v_{2}, \ldots, v_{k}, \ldots, v_{K}\right)$ を得る.

(iii) 共有潜在空間の学習: Triplet margin loss [8] を 用いて, 手順と画像の共有潜在空間を学習する. Triplet margin loss は基準となるべクトル $\boldsymbol{a}$ ，正例べ クトル $\boldsymbol{p}$ ，負例べクトル $\boldsymbol{n}$ を用いて以下のように書 ける.

$
L=\max (0, d(\boldsymbol{a}, \boldsymbol{p})-d(\boldsymbol{a}, \boldsymbol{n})+\epsilon)
$

なお， $d(\cdot)$ は 2 つのべクトルのユークリッド距離を 表し， $\epsilon$ はハイパーパラメータである.

本研究では，手順を基準として得られる 3 つ 組 $\left(\boldsymbol{s}^{\mathrm{a}}, \boldsymbol{v}^{\mathrm{p}}, \boldsymbol{v}^{\mathrm{n}}\right)$ ，画像を基準として得られる 3 つ 組 $\left(\boldsymbol{v}^{\mathrm{a}}, \boldsymbol{s}^{\mathrm{p}}, \boldsymbol{s}^{\mathrm{n}}\right)$ を用いて，それぞれの基準での損失 $L_{s 2 v}, L_{v 2 s}$ を計算する. そして, 2 つの損失の和 $L_{\text {triplet }}$ を最小化するようにモデルを学習する.

## 3.2 提案手法

提案手法のモデルもベースラインモデルと同様の 3 つの処理からなる. ベースラインモデルからの拡張点は，手順構造を考慮するために，(i) において LSTM を Tree-LSTM [9] に変更したことである. (ii) と (iii) に関してはベースラインモデルと同様である ため，以下で (i) の処理に焦点を当てて説明をする。

(i) の拡張箇所は 1 層の Tree-LSTM と 2 層の全結合層からなる。まず，手順構造の節点となる手順書 の各手順ベクトルをベースラインモデルと同様に 計算する. また，手順構造の葉となる材料べクトル $G=\left(g_{1}, g_{2}, \ldots, g_{n}, \ldots, g_{N}\right)$ も同様の処理で計算する. こうして得られる手順，材料べクトルおよび手順構
表 1 Cookpad Image Dataset の統計情報.

造を Tree-LSTM へ入力する。 $k$ 番目の手順ベクトル $\boldsymbol{t}_{\boldsymbol{k}}$ と $k$ 番目の節に接続している子の集合 $C(k)$ を用 いて，以下のように $k$ 番目の隠れ層 $\boldsymbol{h}_{\boldsymbol{k}}$ とメモリセ ル $c_{k}$ を更新する。

$
\begin{aligned}
\hat{\boldsymbol{h}}_{\boldsymbol{k}} & =\sum_{j \in C(k)} \boldsymbol{h}_{\boldsymbol{j}}^{\boldsymbol{k}} \\
\boldsymbol{i}_{\boldsymbol{k}} & =\sigma\left(\boldsymbol{W}^{(i)} \boldsymbol{t}_{\boldsymbol{k}}+\boldsymbol{U}^{(i)} \hat{\boldsymbol{h}}_{\boldsymbol{k}}+\boldsymbol{b}^{(i)}\right) \\
\boldsymbol{f}_{\boldsymbol{k} \boldsymbol{j}} & =\sigma\left(\boldsymbol{W}^{(f)} \boldsymbol{t}_{\boldsymbol{k}}+\boldsymbol{U}^{(f)} \hat{\boldsymbol{h}}_{\boldsymbol{k}}+\boldsymbol{b}^{(f)}\right) \\
\boldsymbol{o}_{\boldsymbol{k}} & =\sigma\left(\boldsymbol{W}^{(o)} \boldsymbol{t}_{\boldsymbol{k}}+\boldsymbol{U}^{(o)} \hat{\boldsymbol{h}}_{\boldsymbol{k}}+\boldsymbol{b}^{(o)}\right) \\
\boldsymbol{u}_{\boldsymbol{k}} & =\tanh \left(\boldsymbol{W}^{(u)} \boldsymbol{t}_{\boldsymbol{k}}+\boldsymbol{U}^{(u)} \hat{\boldsymbol{h}}_{\boldsymbol{k}}+\boldsymbol{b}^{(u)}\right) \\
\boldsymbol{c}_{\boldsymbol{k}} & =\boldsymbol{i}_{\boldsymbol{k}} \odot \boldsymbol{u}_{\boldsymbol{k}}+\sum_{j \in C(k)} \boldsymbol{f}_{\boldsymbol{k} \boldsymbol{j}} \odot \boldsymbol{c}_{\boldsymbol{j}} \\
\boldsymbol{h}_{\boldsymbol{k}} & =\boldsymbol{o}_{\boldsymbol{k}} \odot \tanh \left(\boldsymbol{c}_{\boldsymbol{k}}\right)
\end{aligned}
$

## 4 実験

まず，ベースラインモデル，提案手法を用いて画像検索の性能を定量的に評価した. 次に, 手順構造 を考慮することの有用性を示すために，実際の検索結果を用いて定性的評価を行なった。

## 4.1 データセット

本研究では, Cookpad Image Dataset, vSIMMR の 2 つのデータセットを用いて実験を行なった. Cookpad Image Dataset は，レシピ，材料のリスト，レ シピの各手順に対応する画像からなるデータセット である. Cookpad Image Dataset のレシピの中には，全ての手順に写真が付与されていないものも存在す る. 本研究では，そうしたレシピを除き，全ての手順に写真が付与しているレシピのみを用いた. 表 1 に Cookpad Image Dataset の統計情報を示す.

vSIMMR は，Cookpad Image Dataset の一部に手順構造を人手でアノテーションしたデータセットであ る.このデータセットは, Cookpad Image Dataset の レシピから，全ての手順に写真がついており，かつ 材料数と手順数が 3 以上のものを取り出し，その一表 2 vSIMMR の統計情報.

部に木構造のアノテーションが行われたものであ る. 表 2 にvSIMMR の統計情報を示す.

## 4.2 実験設定

本研究では, word2vec モデルは Cookpad Image Dataset と vSIMMR の訓練データの全レシピを用い て学習した。なお, word $2 \mathrm{vec}$ の出力の次元数は 300 である。画像ベクトルは学習済みの ResNet50 の最終層を取り除いたモデルから得られ, 出力の次元数 は 2,048 である. 共有潜在空間の次元数は 512 に設定した。また，バッチサイズは 128 とし，最適化手法には Adam [10]を用いた.

また，比較手法としてべースラインモデルの材料 リストを用いない場合 (材料なし) に加え，提案手法 との公平な比較のために，材料リストも用いた場合 (材料あり)も考えた。(材料なし)では，手順側の入力として手順列のみを用いて学習しており，(材料あ り)では，手順側の入力として手順書の各手順べク トルに材料べクトルの平均を連結し学習している.

## 4.3 定量的評価

## 4.3.1 評価尺度

画像検索の性能を評価するために，1,000 の手順 に対する Recall@K (R@K) と Median rank (medR)を 計算した. $\mathrm{R} @ \mathrm{~K}$ は手順を入力し，得られた画像集合を $\cos$ 類似度で降順にソートした時に手順に対応 する画像が上位 $\mathrm{K}$ 番以内に現れる割合， medR は各手順に対応する画像の順位の中央値を示す.

## 4.3.2 結果

結果を表 3 に示す. ベースラインモデルの (材料 あり) は用いられる材料を考慮することで検索精度 の上昇を期待したが，(2)と (3)，(4)と (5)を比較し た結果，手順ベクトルに材料ベクトルを単に連結す るだけでは検索精度が必ずしも良くなるわけではな いことが分かった. ベースラインモデルの (5) と提案手法の (6) を比較すると (6) の結果の方が medR の
表 3 画像検索の評価結果.

図 4 画像検索結果の一例.

値が低く， $\mathrm{R} @ \mathrm{~K}$ の值が高かったことから，手順構造を考慮することで検索精度が良くなることが示さ れ，提案手法の有用性を確認できた。一方で、大量 のデータセットで学習されたベースラインモデル (2)，(3) と提案手法の (6) の結果を比較すると学習に 用いたデータセットが多ければ手順構造を考慮しな くとも検索精度が良くなるなることが分かった。

## 4.4 定性的評価

レシピを入力して作業画像を検索した結果を図 4 に示す。このレシピでは 2 番目の手順で示されてい る溶き卵と 3 番目の手順で炒められたちくわが 4 番目の手順で混ぜ合わされるような構造となってい る. 提案手法ではこの混ぜ合わされた結果の画像を 正確に検索することができており，手順構造を考慮
することが有効であると確認できた。

## 5 おわりに

本研究では，手順書から作業画像を検索する課題 に取り組んだ。手順に対応する画像を正しく検索す るためには過去の手順で使用した材料や動作との因果関係をモデルが捉える必要がある．本研究ではこ うした関係を表現している手順構造を考慮し，画像検索を行う手法を提案した．実験では，定性的，定量的に評価を行い，ベースラインモデルに比べて提案手法が有用であることを確認した。

今後の課題として，手順構造がアノテーションさ れていない場合でも，手順構造を予測し，それを考慮しながら画像検索を行える手法へと拡張すること を検討する。

## 参考文献

[1]Shinsuke Mori, Hirokuni Maeta, Yoko Yamakata, and Tetsuro Sasada. Flow graph corpus from recipe texts. In $L R E C$, 2014.

[2]Jermsak Jermsurawong and Nizar Habash. Predicting the structure of cooking recipes. In EMNLP, 2015.

[3]Taichi Nishimura, Atsushi Hashimoto, Yoshitaka Ushiku, Hirotaka Kameko, Yoko Yamakata, and Shinsuke Mori. Structure-aware procedural text generation from an image sequence. IEEE Access, 2020.

[4]Jun Harashima, Yuichiro Someya, and Yohei Kikuta. Cookpad image dataset: An image collection as infrastructure for food research. In SIGIR, 2017.

[5]Amaia Salvador, Nicholas Hynes, Yusuf Aytar, Javier Marin, Ferda Ofli, Ingmar Weber, and Antonio Torralba. Learning cross-modal embeddings for cooking recipes and food images. In CVPR, 2017.

[6]Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep residual learning for image recognition. In CVPR, 2016.

[7]Jia Deng, Wei Dong, Richard Socher, Li-Jia Li, Kai Li, and Li Fei-Fei. ImageNet: A large-scale hierarchical image database. In CVPR, 2009.

[8]Jiang Wang, Yang Song, Thomas Leung, Chuck Rosenberg, Jingbin Wang, James Philbin, Bo Chen, and Ying Wu. Learning fine-grained image similarity with deep ranking. In CVPR, 2014

[9]Kai Sheng Tai, Richard Socher, and Christopher D. Manning. Improved semantic representations from tree-structured long short-term memory networks. In ACL, 2015.

[10]Diederik Kingma and Jimmy Ba. Adam: A method for stochastic optimization. In ICLR, 2015.
 迫田航次郎 京都大学大学院情報学研究科 sakoda.kojiro.48z@st.kyoto-u.ac.jp 西村太一 京都大学大学院情報学研究科 nishimura.taichi.43x@st.kyoto-u.ac.jp 森信介 京都大学学術情報メディアセンター forest@i.kyoto-u.ac.jp  