SlideShare a Scribd company logo
1 of 25
Deep Learningで
似た画像を見つける技術
Open Hyper Scale勉強会#5
半谷
Contents
1.導入 – 「似ている」について
2.理論 – Deep Learningで類似性を扱うに
は
3.実践 – Chainerによる実装
1. 導入
「似ている」について
Introduction
• 私たち人間は、画像を見てどれとどれが似ているかを自然と判断できる。
• では機械に似ている、似ていないを判断させるにはどうすれば良いか?
利用例(1) 画像の検索
• 気になるランプの詳細情報を、画像から検索。類似商品もチェック
• 商品(椅子)が実際に使われているイメージをみてみる
• Pinterestで画像から類似画像を検索する
http://www.news.cornell.edu/stories/2016/08/where-
can-i-buy-chair-app-will-tell-you
https://engineering.pinterest.com/blog/introducing-new-
way-visually-search-pinterest
利用例(2) 人物の同定
• 複数の映像中から同じ人を見つける
• 顔画像から同じ人かどうか/似ているかどうかを判定
Market-1501 dataset:
www.liangzheng.org/Project/project_reid.html
https://arxiv.org/abs/1503.03832
数字は画像間の類似度を表したもので、
小さいほど似ている。
「似ている」という情報は
様々な利用用途がある!
2. 理論
Deep Learningで類似性を扱うに
は
計算機で類似性を扱う枠組み
• 入力画像を固定長のベクトル表現に変換する
• このベクトル同士の距離が類似性を表すように、モデルをつくる
入力画像
何らかの
モデル
0.5
-0.3
0.8
固定長のベクトル 距離が近い=似ている!
① 全ての画像を
固定長のベクトルに
変換して保存しておく
② 検索用の画像が
入力されたらそれも
ベクトルに変換する
③ 距離を計算して
近いもの順に
もとの画像を返す
• 検索の仕組み:
http://host.robots.ox.ac.uk/pascal/VOC/voc2012/segexamples/images/21.jpg
より効率のよいやり方
• 入力画像を0 or 1の2値の固定長ベクトルに変換する
• ストレージにも優しい&距離計算も高速
NOTE:
Deep Hashingのキーワードで調べるといろいろ見つかります
入力画像
何らかの
モデル
0
1
1
固定長のベクトル 距離が近い=似ている!
http://host.robots.ox.ac.uk/pascal/VOC/voc2012/segexamples/images/21.jpg
Deep Learningで類似性を扱う
• Deep Learningで類似性を保持した固定長ベクトルを計算する方法
入力画像
何らかの
モデル
0.5
-0.3
0.8
固定長のベクトル
これ(↑)
どうやって
つくるの?
• 論文を漁ると、だいたい次の2パターンが主流(と思われる(あんまり自信ない
A. CNNの隠れ層の情報を使う方法
B. 類似ペア/三つ揃いの距離を使う方法
http://host.robots.ox.ac.uk/pascal/VOC/voc2012/segexamples/images/21.jpg
CNNの隠れ層の情報を使う方法
• 通常の分類問題としてトレーニングする
• CNNの浅い層の出力は低レベルな視覚的な特徴(e.g. 輪郭)をもつ
• CNNの深い層の出力は抽象化された、意味的な情報を含んでいる
⇨ この情報を類似性の計算に利用する!
入力画像
convolution fully connected
人
車
オートバイ
…
猫
0.5
-0.3
0.8
そのまま使う
or
何らかの変換
http://host.robots.ox.ac.uk/pascal/VOC/voc2012/segexamples/images/21.jpg
類似ペア/三つ揃いの距離を使う方法
• 入力画像から固定長のベクトルを出力するモデルを使う
• 類似ペアは距離が小さくなるように、似ていないペアは距離が大きくなるよ
うに損失を設定
Query : CNN
0.5
-0.3
0.8
Similar: CNN
0.5
-0.1
0.7
Dissimilar : CNN
-0.2
-0.5
0.1
距離が
小さく
なるように
距離が
大きく
なるように
http://host.robots.ox.ac.uk/pascal/VOC/voc2012/segexamples/images/21.jpg
http://host.robots.ox.ac.uk/pascal/VOC/voc2012/segexamples/images/02.jpg
http://host.robots.ox.ac.uk/pascal/VOC/voc2012/segexamples/images/06.jpg
3. 実践
Chainerによる実装
Chainerによる類似度モデルの実装
• ChainerでSSDHモデル(以下の論文)を実装しました。
• Supervised Learning of Semantics-Preserving Hashing via
Deep Neural Networks for Large-Scale Image Search
(https://arxiv.org/abs/1507.00101)
• CIFAR-10のトレーニングセットで
モデルを訓練し、テストセットで
類似画像検索をやってみました。
https://www.cs.toronto.edu/~kriz/cifar.html
SSDHモデル
• Supervised Semantics-preserving Deep Hashing (SSDH) model
• 通常の分類問題としてトレーニングする
• 分類は隠れた特徴の組み合わせ(ON/OFF)で行えるものと考える
⇒ 隠れ層の出力を類似性の評価に使用する
• 隠れ層の出力が0 or 1の2値となるように工夫をしている
https://arxiv.org/abs/1507.00101 0
1
1
0
1
2値化の工夫
①シグモイド関数を使用
② 0か1のどちらかに
近づける
③ 0と1 の
バランスをとる
0.9
0.1
…
0.4
K
latent layerの出力H
出力を0~1の範囲に制限
推論時
1
0
…
0
h > 0.5?
Chainerによる実験(1/3)
Conv1 / ReLU
LRN
Max pool
Conv2 / ReLU
LRN
Max pool
Conv3 / ReLU
Conv4 / ReLU
Conv5 / ReLU
Max Pool
FC6 / ReLU
FC7 / ReLU
FC (latent) / Sigmoid
FC (class)
特徴抽出部分はAlexNet (conv1 - fc7)を使用。
ImageNetの1000クラス分類問題でトレーニング済みの
パラメータを初期値に利用。
Classification Loss Banarization Loss Barancing Loss
隠れ層と分類用の全結合層を追加。
隠れ層は2値ベクトルの出力に使うため、
活性化関数はSigmoid関数を使用。
通常の分類タスクの損失に加え、
2値化のための損失2項を追加
Chainerによる実験(2/3)
項目 値 備考
最適化アルゴリズム
Momentum SGD
(lr = 0.001, momentum=0.9)
16epoch終了後
lr *= 0.1
隠れ層のノード数 K
(=ビット長)
12
バッチサイズ 32
重み正則化 0.0005
エポック数 32 50000 iterations
データセット
CIFAR-10 training set
(10 classes - 50,000 images)
• 基本的に論文と同じ値を設定
• 隠れ層のノード数は論文中最も小さい12を採用
Chainerによる実験(3/3)
• CIFAR-10テストセット(10クラス、10000枚)を、トレーニングしたモデルで
2値コードに変換
• 1つをクエリ画像として、距離を計算。距離の小さいものトップ10の画像を表
示
011001110010SSDH
011001110010
011001101010
010001011011
110111001010
⇔ 残り9999枚
・・・ ・・・
結果
クエリ画像 検索結果(Top10)
まとめ
まとめ
• 画像の類似性はいろいろなアプリケーションに応用できる。
• 類似性をシステムで扱う場合には、固定サイズのベクトルに変換するのが通例。
• ベクトル間の距離が小さいほど似ていると考える。
• Deep Learningで類似性を扱う枠組みを調査した。
• CNNの隠れ層の情報を使う方法
• 類似ペアの出力の距離が近くなるように訓練する方法
(似ていないものは遠くなるように。)
• ChainerでSSDHを実装した。
• 類似画像検索を動作させることができた。
• 分類用のデータセットで学習させることができるので、色々試してみたい。
⇒ Githubにアップしました:https://github.com/t-hanya/chainer-SSDH
ご清聴ありがとうございました
付録
t-SNEで可視化
CIFAR-10のテストセット
画像(10000枚)の2値化コードを
t-SNEで2次元空間に可視化

More Related Content

What's hot

What's hot (20)

Deep Learningによる超解像の進歩
Deep Learningによる超解像の進歩Deep Learningによる超解像の進歩
Deep Learningによる超解像の進歩
 
三次元表現まとめ(深層学習を中心に)
三次元表現まとめ(深層学習を中心に)三次元表現まとめ(深層学習を中心に)
三次元表現まとめ(深層学習を中心に)
 
backbone としての timm 入門
backbone としての timm 入門backbone としての timm 入門
backbone としての timm 入門
 
Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)Domain Adaptation 発展と動向まとめ(サーベイ資料)
Domain Adaptation 発展と動向まとめ(サーベイ資料)
 
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
Swin Transformer (ICCV'21 Best Paper) を完璧に理解する資料
 
[DL輪読会]Vision Transformer with Deformable Attention (Deformable Attention Tra...
[DL輪読会]Vision Transformer with Deformable Attention (Deformable Attention Tra...[DL輪読会]Vision Transformer with Deformable Attention (Deformable Attention Tra...
[DL輪読会]Vision Transformer with Deformable Attention (Deformable Attention Tra...
 
【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習【メタサーベイ】数式ドリブン教師あり学習
【メタサーベイ】数式ドリブン教師あり学習
 
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
Visual SLAM: Why Bundle Adjust?の解説(第4回3D勉強会@関東)
 
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
SSII2022 [SS2] 少ないデータやラベルを効率的に活用する機械学習技術 〜 足りない情報をどのように補うか?〜
 
【DL輪読会】Flamingo: a Visual Language Model for Few-Shot Learning 画像×言語の大規模基盤モ...
【DL輪読会】Flamingo: a Visual Language Model for Few-Shot Learning   画像×言語の大規模基盤モ...【DL輪読会】Flamingo: a Visual Language Model for Few-Shot Learning   画像×言語の大規模基盤モ...
【DL輪読会】Flamingo: a Visual Language Model for Few-Shot Learning 画像×言語の大規模基盤モ...
 
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
SSII2020 [OS2-02] 教師あり事前学習を凌駕する「弱」教師あり事前学習
 
画像生成・生成モデル メタサーベイ
画像生成・生成モデル メタサーベイ画像生成・生成モデル メタサーベイ
画像生成・生成モデル メタサーベイ
 
Cvpr 2021 manydepth
Cvpr 2021 manydepthCvpr 2021 manydepth
Cvpr 2021 manydepth
 
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
[DL輪読会]GLIDE: Guided Language to Image Diffusion  for Generation and Editing[DL輪読会]GLIDE: Guided Language to Image Diffusion  for Generation and Editing
[DL輪読会]GLIDE: Guided Language to Image Diffusion for Generation and Editing
 
論文紹介 Pixel Recurrent Neural Networks
論文紹介 Pixel Recurrent Neural Networks論文紹介 Pixel Recurrent Neural Networks
論文紹介 Pixel Recurrent Neural Networks
 
動画認識サーベイv1(メタサーベイ )
動画認識サーベイv1(メタサーベイ )動画認識サーベイv1(メタサーベイ )
動画認識サーベイv1(メタサーベイ )
 
画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ画像認識モデルを作るための鉄板レシピ
画像認識モデルを作るための鉄板レシピ
 
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...
[DL輪読会]“SimPLe”,“Improved Dynamics Model”,“PlaNet” 近年のVAEベース系列モデルの進展とそのモデルベース...
 
ドメイン適応の原理と応用
ドメイン適応の原理と応用ドメイン適応の原理と応用
ドメイン適応の原理と応用
 
Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)Curriculum Learning (関東CV勉強会)
Curriculum Learning (関東CV勉強会)
 

Similar to Deep Learningで似た画像を見つける技術 | OHS勉強会#5

松下研究室紹介_関西大学高槻キャンパスオープンキャンパス
松下研究室紹介_関西大学高槻キャンパスオープンキャンパス松下研究室紹介_関西大学高槻キャンパスオープンキャンパス
松下研究室紹介_関西大学高槻キャンパスオープンキャンパス
Matsushita Laboratory
 
闇のニコニコ学会β - 闇と欲望とコンピュータビジョン
闇のニコニコ学会β - 闇と欲望とコンピュータビジョン闇のニコニコ学会β - 闇と欲望とコンピュータビジョン
闇のニコニコ学会β - 闇と欲望とコンピュータビジョン
ぱろすけ
 
深層学習を用いたコンピュータビジョン技術とスマートショップの実現
深層学習を用いたコンピュータビジョン技術とスマートショップの実現深層学習を用いたコンピュータビジョン技術とスマートショップの実現
深層学習を用いたコンピュータビジョン技術とスマートショップの実現
DeNA
 
エンジニアのためのアイコン作成勉強会
エンジニアのためのアイコン作成勉強会エンジニアのためのアイコン作成勉強会
エンジニアのためのアイコン作成勉強会
Kazuaki KURIU
 
XP祭り2010「ユーザ行動モデリング」
XP祭り2010「ユーザ行動モデリング」XP祭り2010「ユーザ行動モデリング」
XP祭り2010「ユーザ行動モデリング」
Tarumoto Tetsuya
 

Similar to Deep Learningで似た画像を見つける技術 | OHS勉強会#5 (12)

20200131 deeplearning
20200131 deeplearning20200131 deeplearning
20200131 deeplearning
 
画像認識について
画像認識について画像認識について
画像認識について
 
Recommend system
Recommend systemRecommend system
Recommend system
 
松下研究室紹介_関西大学高槻キャンパスオープンキャンパス
松下研究室紹介_関西大学高槻キャンパスオープンキャンパス松下研究室紹介_関西大学高槻キャンパスオープンキャンパス
松下研究室紹介_関西大学高槻キャンパスオープンキャンパス
 
闇のニコニコ学会β - 闇と欲望とコンピュータビジョン
闇のニコニコ学会β - 闇と欲望とコンピュータビジョン闇のニコニコ学会β - 闇と欲望とコンピュータビジョン
闇のニコニコ学会β - 闇と欲望とコンピュータビジョン
 
深層学習を用いたコンピュータビジョン技術とスマートショップの実現
深層学習を用いたコンピュータビジョン技術とスマートショップの実現深層学習を用いたコンピュータビジョン技術とスマートショップの実現
深層学習を用いたコンピュータビジョン技術とスマートショップの実現
 
エンジニアのためのアイコン作成勉強会
エンジニアのためのアイコン作成勉強会エンジニアのためのアイコン作成勉強会
エンジニアのためのアイコン作成勉強会
 
転移学習やってみた!
転移学習やってみた!転移学習やってみた!
転移学習やってみた!
 
XP祭り2010「ユーザ行動モデリング」
XP祭り2010「ユーザ行動モデリング」XP祭り2010「ユーザ行動モデリング」
XP祭り2010「ユーザ行動モデリング」
 
DeepLearningとWord2Vecを用いた画像レコメンドの考察
DeepLearningとWord2Vecを用いた画像レコメンドの考察DeepLearningとWord2Vecを用いた画像レコメンドの考察
DeepLearningとWord2Vecを用いた画像レコメンドの考察
 
Caffeでお手軽本格ディープラーニングアプリ @potatotips
Caffeでお手軽本格ディープラーニングアプリ @potatotipsCaffeでお手軽本格ディープラーニングアプリ @potatotips
Caffeでお手軽本格ディープラーニングアプリ @potatotips
 
研究装置ラボ
研究装置ラボ研究装置ラボ
研究装置ラボ
 

Recently uploaded

Recently uploaded (11)

業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 

Deep Learningで似た画像を見つける技術 | OHS勉強会#5