SlideShare a Scribd company logo
1 of 19
Download to read offline
ミクミンP
@ksasao
第38回 コンピュータビジョン勉強会@関東
2017/2/11
 火星や月から宇宙人の顔を見つけた
 Nasa の画像をクラウドで処理
https://en.wikipedia.org/wiki
/Face_on_Moon_South_Pole
(Română தமிழ் 中文)
http://target.lroc.asu.edu/qm3d/
o2w_3d_617653310_153_220_20
5_44_0/
 飯テロ判定bot (Twitter @no_meshitero)
 食事を判定する bot だが、それ以外の画像も判定
 複数の画像認識クラウドサービスの結果を統合
▪ Google, IBM, Microsoft, docomo
“一蘭の飯テロ画像です”
 艦娘認識
http://bit.ly/1VEaO2H
アニメ「ご注文はうさぎですか?/??」の画像から元の動画の
再生位置を高速検索するツール
 タイムラインに流れてくるアニメ画像の
元のシーンを知りたい
TVアニメ「ご注文はうさぎですか??」公式Twitter
https://twitter.com/usagi_anime
 ご注文はうさぎですか?のスクショから
何羽・何分何秒かを高速検索(数十ms程度)
 Windows/Mac/Linux 対応
 1期・2期 合計24話 全フレーム の画像
約100万枚のインデックスを約3MBに
圧縮して保持
 画像サイズの違い、大きな劣化、ブロックノ
イズ、コントラスト、色合いの違い、一部改
変などがあっても検索できる
 実際、改変されて投稿されていることが多い
 キャプチャ職人の好みなどが反映
 縦横比は保持される
 一部切り出した画像た対象としない
 似たような画像が近いベクトルとなる
ようなハッシュ値を計算 (dHash)
http://www.hackerfactor.com/blog/?/archives/529-Kind-of-Like-That.html
 aHash (average hash, mean hash) と
同程度に高速
 pHash (perceptive hash/DCTを利用)に
近い精度
dHash. Absolutely amazing... Very few false positives. For
example, the image with two known matches ended up matching
6 pictures total (4 false positives). The scores were: 10, 0, 8, 10, 0,
and 10. The two zeros were the correct matches; all of the false-
positive matches had higher scores. As speed goes, dHash is as
fast as aHash. Well, technically it is faster since it doesn't need to
compute the mean color value. The dHash algorithm has all the
speed of aHash with very few false-positives.
① 元画像 ② 9x8ピクセルに縮小
③ グレースケール化 ④ 隣接画素の輝度差の符号をビット化
 比較したい64bitベクトル同士のハミング距離
を計算し、特定の値以下のものを全検索する
 8bit の場合
00010101
11000101
11010000  ハミング距離 3
64bit 中 ハミング距離4以下でほとんどの画像が
検索可能
ハミング距離10くらいになると関係のない画像も
ヒットし始める
XOR (排他的論理和)をとる
 ハミング距離がある値以下のものを全列挙
 ハミング距離3以下の場合は 二分探索
▪ ハッシュ値でソート済みのものを対象
▪ n ビット反転させたものを二分探索で発見
 ハミング距離4以上の場合は popcnt で
ハミング距離を計算して全データを比較
▪ 100万件程度であれば十分に高速
▪ popcnt の詳細は下記
▪ 明日使えないすごいビット演算 (@_primenumber さま)
http://www.slideshare.net/KMC_JP/slide-www
 画像ハッシュ値、シリーズ番号、話数番号、先頭からの
フレーム番号を1レコードとして、画像ハッシュ値で
ソートしたものを gzip圧縮
 メモリ上に展開しても 15MB 程度
https://github.com/ksasao/Gochiusearch/blob/
master/src/ImageSearchEngine/ImageInfo.cs
 アニメ1クール(四半期)はおおよそ50万
枚程度のデータセットになる
 dHash は単純なアルゴリズムだが高速で
実装が容易で正確
 データベース作成ツールなども公開して
いますのでお試しください
 https://github.com/ksasao/Gochiusearch
 Mac版
 @ailen0ada さま
 https://itunes.apple.com/jp/app/gochiusachi/id1110637036?mt=12
 Java版
 @MoeMoePig さま
 http://moemoepig.webcrow.jp/Gochiusearch/
 アイコンデザイン
 @ticktackmobile さま

More Related Content

What's hot

What's hot (20)

マルチコアを用いた画像処理
マルチコアを用いた画像処理マルチコアを用いた画像処理
マルチコアを用いた画像処理
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
object detection with lidar-camera fusion: survey (updated)
object detection with lidar-camera fusion: survey (updated)object detection with lidar-camera fusion: survey (updated)
object detection with lidar-camera fusion: survey (updated)
 
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~ CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
 
[第2回3D勉強会 研究紹介] Neural 3D Mesh Renderer (CVPR 2018)
[第2回3D勉強会 研究紹介] Neural 3D Mesh Renderer (CVPR 2018)[第2回3D勉強会 研究紹介] Neural 3D Mesh Renderer (CVPR 2018)
[第2回3D勉強会 研究紹介] Neural 3D Mesh Renderer (CVPR 2018)
 
実践イカパケット解析
実践イカパケット解析実践イカパケット解析
実践イカパケット解析
 
tf,tf2完全理解
tf,tf2完全理解tf,tf2完全理解
tf,tf2完全理解
 
オープンソース SLAM の分類
オープンソース SLAM の分類オープンソース SLAM の分類
オープンソース SLAM の分類
 
ORB-SLAMの手法解説
ORB-SLAMの手法解説ORB-SLAMの手法解説
ORB-SLAMの手法解説
 
アジャイルな見積りと計画づくり勉強会
アジャイルな見積りと計画づくり勉強会アジャイルな見積りと計画づくり勉強会
アジャイルな見積りと計画づくり勉強会
 
よわよわPCによる姿勢推定 -PoseNet-
よわよわPCによる姿勢推定 -PoseNet-よわよわPCによる姿勢推定 -PoseNet-
よわよわPCによる姿勢推定 -PoseNet-
 
HashMapとは?
HashMapとは?HashMapとは?
HashMapとは?
 
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpテストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
 
研究分野をサーベイする
研究分野をサーベイする研究分野をサーベイする
研究分野をサーベイする
 
外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話外部キー制約に伴うロックの小話
外部キー制約に伴うロックの小話
 
できる!並列・並行プログラミング
できる!並列・並行プログラミングできる!並列・並行プログラミング
できる!並列・並行プログラミング
 
SpectreとMeltdown:最近のCPUの深い話
SpectreとMeltdown:最近のCPUの深い話SpectreとMeltdown:最近のCPUの深い話
SpectreとMeltdown:最近のCPUの深い話
 
Rustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったかRustに触れて私のPythonはどう変わったか
Rustに触れて私のPythonはどう変わったか
 
空撮画像技術と3次元リアルタイムデータの可視化について
空撮画像技術と3次元リアルタイムデータの可視化について空撮画像技術と3次元リアルタイムデータの可視化について
空撮画像技術と3次元リアルタイムデータの可視化について
 
WayOfNoTrouble.pptx
WayOfNoTrouble.pptxWayOfNoTrouble.pptx
WayOfNoTrouble.pptx
 

More from Kazuhiro Sasao

NASA のデータセットで遊ぶ
NASA のデータセットで遊ぶNASA のデータセットで遊ぶ
NASA のデータセットで遊ぶ
Kazuhiro Sasao
 

More from Kazuhiro Sasao (12)

3000円のエッジデバイス内で画像の学習と推論を行うBrownie(ぶらうにー)の話
3000円のエッジデバイス内で画像の学習と推論を行うBrownie(ぶらうにー)の話3000円のエッジデバイス内で画像の学習と推論を行うBrownie(ぶらうにー)の話
3000円のエッジデバイス内で画像の学習と推論を行うBrownie(ぶらうにー)の話
 
詫びデータセット
詫びデータセット詫びデータセット
詫びデータセット
 
たのしいアノテーション
たのしいアノテーションたのしいアノテーション
たのしいアノテーション
 
Marstodon - Marsface Project
Marstodon - Marsface ProjectMarstodon - Marsface Project
Marstodon - Marsface Project
 
冴えないデータセットの育て方
冴えないデータセットの育て方冴えないデータセットの育て方
冴えないデータセットの育て方
 
おうちセンサでキャラクターと暮らしてみた
おうちセンサでキャラクターと暮らしてみたおうちセンサでキャラクターと暮らしてみた
おうちセンサでキャラクターと暮らしてみた
 
飯テロ判定bot @no_meshitero
飯テロ判定bot @no_meshitero飯テロ判定bot @no_meshitero
飯テロ判定bot @no_meshitero
 
M100でアプリを作ってみた
M100でアプリを作ってみたM100でアプリを作ってみた
M100でアプリを作ってみた
 
数千台のPepperがウェーブをする
数千台のPepperがウェーブをする数千台のPepperがウェーブをする
数千台のPepperがウェーブをする
 
超低消費電力無線センサでミクさんと生活してみた
超低消費電力無線センサでミクさんと生活してみた超低消費電力無線センサでミクさんと生活してみた
超低消費電力無線センサでミクさんと生活してみた
 
Moverio BT-200 チュートリアル
Moverio BT-200 チュートリアルMoverio BT-200 チュートリアル
Moverio BT-200 チュートリアル
 
NASA のデータセットで遊ぶ
NASA のデータセットで遊ぶNASA のデータセットで遊ぶ
NASA のデータセットで遊ぶ
 

ごちうサーチ