Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
【スライドのURL】 https://bit.ly/3hUxgW8 【工学部電子情報工学科】 高校数学で理解する画像検索 講師 松井勇佑 東京大学 工学部電子情報工学科 / 大学院情報理工学系研究科電子情報学専攻 http://yusukematsui.me 2020/9/22, 東大オープンキャンパス2020 1
Slide 2
Slide 2 text
【スライドのURL】 https://bit.ly/3hUxgW8 松井勇佑 東京大学 講師 ➢ 学部:工学部 電子情報工学科 ➢ 大学院:情報理工学系研究科 電子情報学専攻 研究:情報系。特に画像処理 matsui@hal.t.u-tokyo.ac.jp http://yusukematsui.me @utokyo_bunny 1 , … , argmin ∈ 1,2,…, − 2 2 画像検索の理論(今日の話題) 漫画画像処理 2
Slide 3
Slide 3 text
【スライドのURL】 https://bit.ly/3hUxgW8 電気系 / eeic “東京大学工学部 電子情報工学科・電気電子 工学科は、現代技術の中枢を担う情報・電 気・電子の技術を体系的に学び、最先端の応 用へと展開していく力を養うことをめざして いきます。” ➢ 電子情報工学科 ✓ 主に情報系の科学と技術に 重点をおいて学び始めます。 ➢ 電気電子工学科 ✓ 主に物理系の科学と技術に 重点をおいて学び始めます。 3 パンフレットはダウンロードできます http://www.ee.t.u-tokyo.ac.jp/j/education/pdf/guidance_book.pdf
Slide 4
Slide 4 text
【スライドのURL】 https://bit.ly/3hUxgW8 4
Slide 5
Slide 5 text
【スライドのURL】 https://bit.ly/3hUxgW8 5 https://www.google.co.jp/imghp?hl=ja
Slide 6
Slide 6 text
【スライドのURL】 https://bit.ly/3hUxgW8 6 https://www.google.co.jp/imghp?hl=ja
Slide 7
Slide 7 text
【スライドのURL】 https://bit.ly/3hUxgW8 7 https://www.google.co.jp/imghp?hl=ja
Slide 8
Slide 8 text
【スライドのURL】 https://bit.ly/3hUxgW8 8 https://www.google.co.jp/imghp?hl=ja 画像 検索
Slide 9
Slide 9 text
【スライドのURL】 https://bit.ly/3hUxgW8 9 https://about.mercari.com/press/news/articles/20190318_image_search/
Slide 10
Slide 10 text
【スライドのURL】 https://bit.ly/3hUxgW8 似てるもの 発見! 高校数学で理解する画像検索 10
Slide 11
Slide 11 text
【スライドのURL】 https://bit.ly/3hUxgW8 どうやって? https://emojipedia.org/thinking-face/ 似てるもの 発見! 高校数学で理解する画像検索 今日の話題: ➢高校数学の知識を用いて、画像検索の仕組みを理解する ➢高校で習う数学が、現実の問題につながっていることを学ぶ 11
Slide 12
Slide 12 text
【スライドのURL】 https://bit.ly/3hUxgW8 似てるもの 発見! 高校数学で理解する画像検索 12 1. 数学の準備 2. 画像の表現 3. 真面目に探索(低速・高精度) 4. ちょっとさぼって探索(高速・低精度)
Slide 13
Slide 13 text
【スライドのURL】 https://bit.ly/3hUxgW8 似てるもの 発見! 高校数学で理解する画像検索 13 1. 数学の準備 2. 画像の表現 3. 真面目に探索(低速・高精度) 4. ちょっとさぼって探索(高速・低精度)
Slide 14
Slide 14 text
【スライドのURL】 https://bit.ly/3hUxgW8 14 数学の準備 Ԧ 4 3 ➢ 高校ではベクトル(空間中の点)をこう書きます Ԧ = (4, 3) ➢ その図形的な意味は右図です ➢ 大学以降の工学系では次のようにすることが多いです ✓ ベクトルを太字に ✓ カッコは角括弧に ✓ 横ではなく縦ベクトルを用いる = 4 3 ➢ これは表記の違いなので、高校のベクトルと 同じだと思ってください
Slide 15
Slide 15 text
【スライドのURL】 https://bit.ly/3hUxgW8 15 数学の準備 = 9 7 三軸目 軸目 = 3 21 12 = 73 2 16 ⋮ 8 二次元空間の点 (高校で習うもの) 三次元空間の点 (高校で習うもの) 全く同様に、 次元空間の点
Slide 16
Slide 16 text
【スライドのURL】 https://bit.ly/3hUxgW8 16 数学の準備 = 9 7 二次元空間の点 (高校で習うもの) = 6 5 ➢ 二次元の場合、点 と点 の距離は、 三平方の定理から求まる ➢ これを次のように表記する: − = 9 − 6 2 + 7 − 5 2 = 13 ➢ 意味: − 記号の定義: ベクトル = ベクトルの長さ なので、 − = − の長さ
Slide 17
Slide 17 text
【スライドのURL】 https://bit.ly/3hUxgW8 17 数学の準備 = 9 10 8 ➢ 三次元の場合も、同様に、 点と点の距離が求まる: − = 3 − 9 2 + 21 − 10 2 + 12 − 8 2 = 173 三軸目 三次元空間の点 (高校で習うもの) = 3 21 12
Slide 18
Slide 18 text
【スライドのURL】 https://bit.ly/3hUxgW8 18 数学の準備 ➢ 次元の場合も、同様に、 点と点の距離が求まる: − = 73 − 60 2 + 2 − 41 2 + ⋯ + 8 − 13 2 = 102 7 軸目 全く同様に、 次元空間の点 = 73 2 ⋮ 8 = 60 41 ⋮ 13 ➢ 多次元ベクトルは、2次元や3次元の ベクトルと同様に扱える ➢ 距離も、同様に計算できる
Slide 19
Slide 19 text
【スライドのURL】 https://bit.ly/3hUxgW8 似てるもの 発見! 高校数学で理解する画像検索 19 1. 数学の準備 2. 画像の表現 3. 真面目に探索(低速・高精度) 4. ちょっとさぼって探索(高速・低精度)
Slide 20
Slide 20 text
【スライドのURL】 https://bit.ly/3hUxgW8 20 画像の表現 ? ➢ 画像をコンピュータが処理できるようにしたい ➢ 画像をなんらかの数値(ベクトル)として表現したい ➢ 似ている画像は、似ているベクトルになってほしい ➢ 紹介:色ヒストグラム、深層特徴量
Slide 21
Slide 21 text
【スライドのURL】 https://bit.ly/3hUxgW8 66 221 32 123 78 11 46 32 52 32 99 93 37 142 43 11 68 13 11 23 54 3 23 22 124 56 33 27 213 33 232 28 4 32 111 45 54 77 18 123 7 43 46 32 52 32 99 98 37 142 43 11 68 23 11 23 54 3 23 11 124 56 33 27 213 35 232 28 4 32 111 11 132 43 11 54 24 23 46 32 52 32 99 13 37 142 43 11 68 2 11 23 54 3 23 131 124 56 33 27 213 43 232 28 4 32 111 22 21 画像の表現:色ヒストグラム 出現回数 画素の値 100 200 出現回数 画素の値 100 200 出現回数 画素の値 100 200 色に着目 ➢ 画像の各画素は、赤・青・緑の3つの数値 ➢ コンピュータ上では、単なる整数で表現 ヒストグラム化 ➢ 画素値の出現回数
Slide 22
Slide 22 text
【スライドのURL】 https://bit.ly/3hUxgW8 22 画像の表現:色ヒストグラム 出現回数 画素の値 100 200 出現回数 画素の値 100 200 出現回数 画素の値 100 200 ➢ 合体させると、この場合12個の数値に ➢ 12次元のベクトルだと解釈 ➢ 画像を表現する特徴ベクトルが出来た
Slide 23
Slide 23 text
【スライドのURL】 https://bit.ly/3hUxgW8 23 画像の表現:色ヒストグラム = 15 17 9 ⋮ 14 画像: 12次元の 特徴ベクトル: 特徴 抽出 12軸目 ➢ 画像をから抽出した特徴ベクトルをとする ➢ は、の本質的な性質を表すと期待する ➢ はベクトルなので、様々な計算が可能
Slide 24
Slide 24 text
【スライドのURL】 https://bit.ly/3hUxgW8 24 画像の表現:色ヒストグラム ①データベース中の画像から 特徴ベクトルを抽出し、保存しておく
Slide 25
Slide 25 text
【スライドのURL】 https://bit.ly/3hUxgW8 25 画像の表現:色ヒストグラム ②クエリ画像からも 特徴量を抽出する ①データベース中の画像から 特徴ベクトルを抽出し、保存しておく
Slide 26
Slide 26 text
【スライドのURL】 https://bit.ly/3hUxgW8 26 画像の表現:色ヒストグラム ②クエリ画像からも 特徴量を抽出する ③各ベクトルとの距離を求める ①データベース中の画像から 特徴ベクトルを抽出し、保存しておく
Slide 27
Slide 27 text
【スライドのURL】 https://bit.ly/3hUxgW8 27 画像の表現:色ヒストグラム ②クエリ画像からも 特徴量を抽出する ③各ベクトルとの距離を求める ④一番近いものが、一番色が似ている画像 色ヒストグラムによる画像検索の実現 https://emojipedia.org/grinning-face-with-smiling-eyes/ ①データベース中の画像から 特徴ベクトルを抽出し、保存しておく
Slide 28
Slide 28 text
【スライドのURL】 https://bit.ly/3hUxgW8 28 画像の表現:色ヒストグラム しかし、色だけだと、うまくいかないかも 猫ではないが、色が似てる 猫だが、色は似ていない
Slide 29
Slide 29 text
【スライドのURL】 https://bit.ly/3hUxgW8 29 画像の表現:深層特徴量 = 61 12 39 ⋮ 14 画像: 例:128次元の 深層特徴量 128軸目 ➢ 実際は、機械学習という技術を用いる ➢ 猫画像同士が近くなってくれるような、 深層特徴量をデザインする 機械 学習
Slide 30
Slide 30 text
【スライドのURL】 https://bit.ly/3hUxgW8 30 画像の表現:深層特徴量 ➢ 猫なら近く ➢ 猫以外は遠く
Slide 31
Slide 31 text
【スライドのURL】 https://bit.ly/3hUxgW8 31 画像の表現 ➢ 画像をコンピュータが処理できるようにしたい ➢ 画像をなんらかの数値(ベクトル)として表現 ➢ 似ている画像は、似ているベクトルに ➢ 例:色ヒストグラム、深層特徴量 = 61 12 39 ⋮ 14
Slide 32
Slide 32 text
【スライドのURL】 https://bit.ly/3hUxgW8 似てるもの 発見! 高校数学で理解する画像検索 32 1. 数学の準備 2. 画像の表現 3. 真面目に探索(低速・高精度) 4. ちょっとさぼって探索(高速・低精度)
Slide 33
Slide 33 text
【スライドのURL】 https://bit.ly/3hUxgW8 33 真面目に探索(低速・高精度)
Slide 34
Slide 34 text
【スライドのURL】 https://bit.ly/3hUxgW8 34 真面目に探索(低速・高精度) 8 13 25
Slide 35
Slide 35 text
【スライドのURL】 https://bit.ly/3hUxgW8 35 真面目に探索(低速・高精度) 8 13 25 探索: クエリベクトルと、 データベースベクトル1 , 2 , … を比べる
Slide 36
Slide 36 text
【スライドのURL】 https://bit.ly/3hUxgW8 36 真面目に探索(低速・高精度) 探索問題の定義 = 61 39 ⋮ 14 1 = 3 26 ⋮ 7 2 = 11 32 ⋮ 99 = 5 4 ⋮ 72 … 比べる ➢ 次元のクエリベクトル、および本のデータベースベクトル1 , … , がある ➢ と各 を比べ、一番近いものを選ぶ ➢ 現実の探索問題を考える上で重要な点はなんだろう? ➢ 速度と精度 ➢ まずは厳密に探索する方法を紹介(高精度だが低速) ➢ 計算の速度とは何だろう? ➡計算の量で見積もる
Slide 37
Slide 37 text
【スライドのURL】 https://bit.ly/3hUxgW8 37 真面目に探索(低速・高精度) 探索問題の定義 = 61 39 ⋮ 14 1 = 3 26 ⋮ 7 2 = 11 32 ⋮ 99 = 5 4 ⋮ 72 … 比べる ➢ 次元のクエリベクトル、および本のデータベースベクトル1 , … , がある ➢ と各 を比べ、一番近いものを選ぶ と1 の距離の二乗 = − 1 2 = 61 − 3 2 + 39 − 26 2 + ⋯ + 14 − 7 2 値の大小だけが重要なので、二乗して考える。 すると、ルートをとらなくていい
Slide 38
Slide 38 text
【スライドのURL】 https://bit.ly/3hUxgW8 38 真面目に探索(低速・高精度) と1 の距離の二乗 = − 1 2 = 61 − 3 2 + 39 − 26 2 + ⋯ + 14 − 7 2 値の大小だけが重要なので、二乗して考える。 すると、ルートをとらなくていい 引き算一回 掛け算一回 足し算一回 回の引き算 + 回の掛け算 + − 1 回の足し算 = 3 − 1回の計算 ≃ 3回の計算 四則演算は同程度の速度と 仮定し、「計算」とまとめる たとえば計算は1ナノ秒 は十分に大きいとし、1は無視 探索問題の定義 = 61 39 ⋮ 14 1 = 3 26 ⋮ 7 2 = 11 32 ⋮ 99 = 5 4 ⋮ 72 … 比べる ➢ 次元のクエリベクトル、および本のデータベースベクトル1 , … , がある ➢ と各 を比べ、一番近いものを選ぶ
Slide 39
Slide 39 text
【スライドのURL】 https://bit.ly/3hUxgW8 39 真面目に探索(低速・高精度) − 1 2を求める ➡ 3回の計算 ➢ これを1 , … , に対し回行う ➡ 合計で3回の計算 ➢ 「一番近いものを選ぶ」は、個の「距離の値」を 一つ一つ眺めていけばいい。これも「回の計算」とする ➢ 合計で3 + = 3 + 1 ≃ 3回の計算 は十分に大きいとし、 1は無視 探索問題の定義 = 61 39 ⋮ 14 1 = 3 26 ⋮ 7 2 = 11 32 ⋮ 99 = 5 4 ⋮ 72 … 比べる ➢ 次元のクエリベクトル、および本のデータベースベクトル1 , … , がある ➢ と各 を比べ、一番近いものを選ぶ
Slide 40
Slide 40 text
【スライドのURL】 https://bit.ly/3hUxgW8 40 真面目に探索(低速・高精度) 探索問題の計算コスト ➡ 3回の計算 ➢ 3も2もと大して変わらないとして、 定数倍は無視するという大胆な近似を行う ➢ 最終的に、次元本のベクトルたちに対する探索の計算のコスト ➡ 回の計算 探索問題の定義 = 61 39 ⋮ 14 1 = 3 26 ⋮ 7 2 = 11 32 ⋮ 99 = 5 4 ⋮ 72 … 比べる ➢ 次元のクエリベクトル、および本のデータベースベクトル1 , … , がある ➢ と各 を比べ、一番近いものを選ぶ
Slide 41
Slide 41 text
【スライドのURL】 https://bit.ly/3hUxgW8 41 真面目に探索(低速・高精度) 真面目に探索のまとめ: ➢ 精度:厳密 ➢ 速度:回の計算 例: ➢ 計算に1ナノ秒(10−9秒)かかるなら、 ざっくりナノ秒(10−9秒) ➢ = 1000, = 104の場合、10ミリ秒 探索問題の定義 = 61 39 ⋮ 14 1 = 3 26 ⋮ 7 2 = 11 32 ⋮ 99 = 5 4 ⋮ 72 … 比べる ➢ 次元のクエリベクトル、および本のデータベースベクトル1 , … , がある ➢ と各 を比べ、一番近いものを選ぶ 速いの?遅いの? ➢ が10倍になると、速度も10倍 ➢ あまりうれしくない
Slide 42
Slide 42 text
【スライドのURL】 https://bit.ly/3hUxgW8 似てるもの 発見! 高校数学で理解する画像検索 42 1. 数学の準備 2. 画像の表現 3. 真面目に探索(低速・高精度) 4. ちょっとさぼって探索(高速・低精度)
Slide 43
Slide 43 text
【スライドのURL】 https://bit.ly/3hUxgW8 43 ちょっとさぼって探索(高速・低精度)
Slide 44
Slide 44 text
【スライドのURL】 https://bit.ly/3hUxgW8 44 ちょっとさぼって探索(高速・低精度) 本全てのベクトルと比べると大変 ➢ そもそも遠いベクトルは外れ ➢ これらとの距離計算は無駄 ➢ 計算をサボれないか?
Slide 45
Slide 45 text
【スライドのURL】 https://bit.ly/3hUxgW8 45 ちょっとさぼって探索(高速・低精度)
Slide 46
Slide 46 text
【スライドのURL】 https://bit.ly/3hUxgW8 46 ちょっとさぼって探索(高速・低精度) 代表 代表 代表 ①ベクトルを事前に個のグループに分けておく ここでは = 3
Slide 47
Slide 47 text
【スライドのURL】 https://bit.ly/3hUxgW8 47 ちょっとさぼって探索(高速・低精度) 代表 代表 代表 ②クエリと本の代表ベクトルを比較し、 一番近いグループを選ぶ ①ベクトルを事前に個のグループに分けておく ここでは = 3
Slide 48
Slide 48 text
【スライドのURL】 https://bit.ly/3hUxgW8 48 ちょっとさぼって探索(高速・低精度) 代表 代表 代表 ①ベクトルを事前に個のグループに分けておく ②クエリと本の代表ベクトルを比較し、 一番近いグループを選ぶ ③選ばれたグループ内 のみ探索する ここでは = 3
Slide 49
Slide 49 text
【スライドのURL】 https://bit.ly/3hUxgW8 49 ちょっとさぼって探索(高速・低精度) 代表 代表 代表 ①ベクトルを事前に個のグループに分けておく ➢ 事前処理なので、気にしない ③選ばれたグループ内 のみ探索する ②クエリと本の代表ベクトルを比較し、 一番近いグループを選ぶ ここでは = 3
Slide 50
Slide 50 text
【スライドのURL】 https://bit.ly/3hUxgW8 50 ちょっとさぼって探索(高速・低精度) 代表 代表 代表 ①ベクトルを事前に個のグループに分けておく ➢ 事前処理なので、気にしない ②クエリと本の代表ベクトルを比較し、一番近いグループを選ぶ ➢ 本のベクトルとの探索のコストは「回の計算」だった ➢ ←とすることで、「回の計算」だと算出できる ③選ばれたグループ内 のみ探索する ここでは = 3
Slide 51
Slide 51 text
【スライドのURL】 https://bit.ly/3hUxgW8 51 ちょっとさぼって探索(高速・低精度) 代表 代表 代表 ①ベクトルを事前に個のグループに分けておく ➢ 事前処理なので、気にしない ②クエリと本の代表ベクトルを比較し、一番近いグループを選ぶ ➢ 本のベクトルとの探索のコストは「回の計算」だった ➢ ←とすることで、「回の計算」だと算出できる ③選ばれたグループ内のみ探索する ➢ 一つのグループ内の ベクトル本数の平均は/ ➢ ←/とすることで 「 / 回の計算」だと算出できる ここでは = 3
Slide 52
Slide 52 text
【スライドのURL】 https://bit.ly/3hUxgW8 52 ちょっとさぼって探索(高速・低精度) 代表 代表 代表 ①ベクトルを事前に個のグループに分けておく ➢ 事前処理なので、気にしない ②クエリと本の代表ベクトルを比較し、一番近いグループを選ぶ ➢ 本のベクトルとの探索のコストは「回の計算」だった ➢ ←とすることで、「回の計算」だと算出できる ③選ばれたグループ内のみ探索する ➢ 一つのグループ内の ベクトル本数の平均は/ ➢ ←/とすることで 「 / 回の計算」だと算出できる 結論: + 回の計算 ここでは = 3
Slide 53
Slide 53 text
【スライドのURL】 https://bit.ly/3hUxgW8 53 ちょっとさぼって探索(高速・低精度) + 回の計算 + = 2 回の計算 回の計算 は自由に決められるパラメータ = としてみると 「定数倍は無視」ルール なぜ = ? ➢ = + とすると、 を 最小にするなので ➢ すなわち、 = 0を解くと、 =
Slide 54
Slide 54 text
【スライドのURL】 https://bit.ly/3hUxgW8 54 ちょっとさぼって探索(高速・低精度) 代表 代表 代表 失敗する場合もある 別のグループの ベクトルのほうが近い
Slide 55
Slide 55 text
【スライドのURL】 https://bit.ly/3hUxgW8 55 探索のまとめ コストの実例 ( = 128) 探索方式 精度 計算コスト = 100 = 10000 = 1000000 まじめに探索 高い 回 12800 1280000 128000000 さぼって探索 低い 回 1280 12800 128000 ➢ 回は回よりだいぶ少ない 例: lim →∞ = 0 ➢ つまり、だいぶ速い ➢ 探索問題は数学を使ってモデリング出来る。高校数学はその基礎になっている ➢ 実際の画像検索システムでは、上のように、各方式のメリットデメリットを 考慮にいれて、方式を選択する
Slide 56
Slide 56 text
【スライドのURL】 https://bit.ly/3hUxgW8 似てるもの 発見! 高校数学で理解する画像検索 56 1. 数学の準備 2. 画像の表現 3. 真面目に探索(低速・高精度) 4. ちょっとさぼって探索(高速・低精度)
Slide 57
Slide 57 text
【スライドのURL】 https://bit.ly/3hUxgW8 57 話さなかった重要トピック ➢ 精度が高い、低い、とはどういうことか? ✓ Recall@kといった指標で数値的に計測する ➢ メモリ消費量 ✓ 探索は、本当は、「精度・速度・メモリ消費量」のトレードオフ ✓ 「精度100%かつ爆速。ただしメモリを無限に使う」という手法が作れてしまう ➢ 深層特徴量って結局何? ✓ 「ネコ1.jpgとネコ2.jpg」は似てます、といった情報をコンピュータにたくさん与えると、 コンピュータが自動で学習。「距離学習」という機械学習理論 ✓ 参考:内田祐介、「モダンな深層距離学習 (deep metric learning) 手法: SphereFace, CosFace, ArcFace」、Qiita、2019 https://qiita.com/yu4u/items/078054dfb5592cbb80cc ➢ グループ分けってどうするの? ✓ よく使われるのはk-meansクラスタリングという古典的な手法 ✓ 高校数学で理解できる ✓ 調べてみよう!
Slide 58
Slide 58 text
【スライドのURL】 https://bit.ly/3hUxgW8 58 大学で学ぶ学問との接続 半加算器 ➢ 計算量理論 「回の計算」といった考察は、計算量の理論として学ぶ アルゴリズムの性能を数式で記述・比較 ➢ データ構造 ✓ 実際の問題では、ハッシュテーブルやツリーといった高度なデータ構造を扱う ✓ 今日の「さぼって探索」は、実は転置インデクスというデータ構造 ➢ アーキテクチャ ✓ 「足し算」と「引き算」は大体同じ時間がかかる、 とあったが、そもそも「足し算」とは? ✓ 突き詰めると、コンピュータ上の足し算は回路で実現 https://ja.wikipedia.org/wiki/データ構造 https://ja.wikipedia.org/wiki/加算器 バイナリツリー 工学部電子情報・電気電子では、このような 様々なレイヤーを幅広く学びます!
Slide 59
Slide 59 text
【スライドのURL】 https://bit.ly/3hUxgW8 59 参考資料 ➢ 画像処理に興味を持ったら ✓ 次の教科書が参考になります「ディジタル画像処理[改訂第二版]」、画像情報教育振興協会、2020 https://www.amazon.co.jp/dp/490347464X/ ➢ 今日発表した手法のコード (c++/python) ✓ Faissライブラリ中の転置インデックスフラットというアルゴリズム https://github.com/facebookresearch/faiss/wiki/Faster-search ➢ 企業における画像検索システムの紹介 ✓ 山際康貴、「ひとりで作る画像検索システム」 、PyCon JP 2020: https://docs.google.com/presentation/d/1M4O9lQrrYpuA_daT3uUzoUBnJLg4wcJuaIeq-XhgSSk/ ✓ shikajiro、「近似最近傍探索Indexを作るワークフロー」、ZOZO Tech Blog 2020: https://techblog.zozo.com/entry/ann-workflow ✓ shibui.yusuke、「メルカリ写真検索 1年の歩み」、ML@Loft #11, 2020: https://www.slideshare.net/yusukeshibui/mercari-image-search-1st-anniversary