Submit Search
20130727 cv machine_learning@tokyo webmining
•
28 likes
•
15,147 views
Masahiro Imai
Follow
コンピュータビジョン&機械学習の入門的な内容について ※事例のランダムサンプリングを追加:修正 ※再現率、適合率の名称逆だったので入れ替え:修正
Read less
Read more
1 of 47
Download now
Downloaded 95 times
More Related Content
20130727 cv machine_learning@tokyo webmining
1.
コンピュータビジョンと機械学習 徹底入門 現実的な画像検索のためにやってきたこと 第28回#TokyoWebmining
2.
自己紹介 • 教育×IT の社内ベンチャー(メンバーは全員プロジェクトのために集まっ た。)世界No.1の新しい教育サービスを実現したい。 担当 •
画像の認識 • 動画のトランスコード • 認識の精度、サービスの精度を高めるための機械学習 2 でも、まだ始めてから半年強くらい。まだまだ未開の道が続く。 個人的には、半年前まで割と変わったことをしてました…
3.
バックグラウンド • 大学は数学専攻ですが… • 前職は主にヴォイストレーナー。歌や楽器演奏。TVも少し。 ←「○っとけないよ」のもといろいろ仕事 3
4.
画像認識(特定物体認識) 4 正解を抽出 ユーザに 役立つ情報を 送信
5.
どんなことに使えるの? • バーコードの代わりに画像が使える • ポスターを写真に取るだけで、スマホに情報が届く •
食べ物を撮影して、カロリー情報を知る 5
6.
実現手法 1.画像認識の流れとアルゴリズム 2.認識のための機械学習 3.精度測定 6
7.
実現手法 1.画像認識の流れとアルゴリズム 2.認識のための機械学習 3.精度測定 7
8.
画像認識の流れ 前処理 • 画像から特徴を取得しやすくするための加工 特徴抽出 • 画像から特徴を抽出する 認識 •
特徴量比較による認識 8
9.
画像認識のアルゴリズム1 • 解像度に注意。目的の物体を認識するのに、適した解像度は実験して 決める。 • 目的の物体
や 特徴抽出で使用するアルゴリズムによって、前処理を変え る。 9 前処理 • 画像から特徴を取得しやすくするための加工
10.
画像認識のアルゴリズム1 例 • グレースケール(輝度のみで表現)→
軽くする • Gaussian(平滑化) → ぼかす(悪いことではない) 10
11.
画像認識のアルゴリズム2 • 色や全体の位置関係が画像によって変化するなら、ロバストな局所特徴量を使 う • 有名なSIFT、SURF •
最近だとORB、FREAK(速い) • これからやるんだったら、特許の問題もあるので、ORB とか FREAK が簡単 11 特徴抽出 • 画像から特徴を抽出する
12.
画像認識のアルゴリズム2 ORB 12 小さい範囲からたくさんとる = 局所特徴量
13.
画像認識のアルゴリズム2 ORB 13 マッチした 特徴点同士を線 結んだ表現 がよく使われる
14.
違う本だと 14 当然、マッチする点 は少なくなる。 そのため、 分類できる。
15.
画像認識のアルゴリズム3 • 抽出した特徴量を比較する処理 • まずはブルートフォース(総当り)でやってみる •
そのあと、大規模な検索だったら、近似最近傍探索をやる 15 認識 • 特徴量比較による認識
16.
ブルートフォースでやることの難しさ 16 DBには、32byteのベクトルが数十万個 入る。これと画像を毎回比較したら とても時間がかかるので、近似最近傍探索やりましょう。
17.
近似最近傍探索 17 ここは個人的にまだあまり うまくいってません。 FLANN - Fast
Library for Approximate Nearest Neighbors(k-近傍探索) で実施していますが、 データがそこそこないと精度が出ない…。 もっと改善したら発表したい…。
18.
実現手法 1.画像認識の流れとアルゴリズム 2.認識のための機械学習 3.精度測定 18
19.
認識のための機械学習 正解 の抽出 N 1 … 19 学習したフィルター 学習済み フィルターを 使用して、 ただ
1 つの正解 を抽出する まずはAda-Boostで行った。 理由は割りと少ない事例 で動く。 どんなものかというと…
20.
Ada-Boost 20 • 2 クラスの分類アルゴリズム。 •
教師有り学習。 • デジカメなどの 顔認識 への利用が有名。
21.
Ada-Boostの学習 弱識別器 3 弱識 別器2 弱識 別器1 21 強識別器 今回は幾何学情報を学習した
22.
Ada-Boostの分類サンプル 22 一様に分布した点 のうち、青い点を 正事例サンプル として学習
23.
Ada-Boostの分類サンプル 23 特徴量にxとy それぞれの 大小関係のみ使って、 50個の弱識別器を作成 新しいサンプル事例を分類すると
24.
Ada-Boostの分類サンプル 24 結構きれいに 分類出来る (XOR難しい)
25.
Ada-Boostでフィルターをつくる 25 クエリ画像 抽出した正解画像 3000個の事例作成 ・ ・ ・ 正事例 正事例 負事例 正事例
26.
Ada-Boost 注意した点 • 過学習は起こりづらいはずだが、事例を説明しきってしまっていないか注意 する。 •
特徴の次元を増やしすぎない • そのために、実験手法を正しくする • これらを守っても、弱点はある。 26
27.
Ada-Boostの弱点 • ノイズの影響を受けやすい • 複雑な分類はできない •
サンプルのように急に傾向が異なる結果があると分類を間違う(A ∧ B) 別の手法を使う • Random-forest でやってみた 27 A B
28.
Random-Forest • ランダムにサンプリングしたデータから、2分木をたくさん作って投票するアル ゴリズム。多クラス問題に対応できる 28 末端ノードに分類結果を持つ たくさん木をつくる
29.
Random-Forest の 投票 29 投票箱
30.
Random-Forest 注意した点 • ランダムに取得した分岐条件で、うまく分離できなければ 枝の成長をとめてよい。ランダムシードを実装しておくと良い。 •
過学習に注意し、事例の数を少なくとも数万レベルで用意する 30 うまく出来ると、とても精度良いです
31.
Random-Forest 分類サンプル 31 Ada-Boostと 同じ教師で、 どのくらい分類 できるのか? ※サンプル数は増やした
32.
Random-Forest 分類サンプル 32 特徴量にxとy それぞれの 大小関係のみ使って、 50個の木を作成 新しいサンプル事例を分類すると
33.
Random-Forest 分類サンプル 33 きわどいところまで分 類できている。 (XOR大丈夫) Random-Forest フィルター、良い感じ。
34.
34 近似探索でざっくり分類した後 識の誤りを救う目的で、機械学習を 使っています。 本当に救えているのか? 精度をちゃんと測定しましょう。
35.
実現手法 1.画像認識の流れとアルゴリズム 2.認識のための機械学習 3.精度測定 35
36.
性能評価(精度測定) • 導入には精度が必須 • そのための基礎的な概念 36 正事例 True
positive (正しく正解を抽出) True Negative (正しく不正解に抽出) 負事例 False Positive (間違って正解を抽出) False Negative (間違って不正解を抽出)
37.
性能評価 2 37 • データセット(クエリと正解
もしくは 不正解)を準備する。 • データセットを使って、精度が測定できるモジュールを作る。 負荷テストの出力を使うと効率が良かった。
38.
性能評価 3 38 正解を増やす再現率 間違いを減らす適合率 再現率と適合率の傾向を表すF値 再現率(recall) =
true positive / ( true positive + false negative ) 適合率(precision) = true positive / (true positive + true negative) F値(F measure) = 2 / ( 1 / Recall + 1 / Precision )
39.
性能評価 実例 ・1 つのクエリに対する正解が
1 つ。間違った答えは極力返さない。 ・1つのクエリに対するして、たくさんの候補をユーザに提供する。 重視したいことに合わせて、F 値 を算出する関数を変えて、F 値を見てもよ い。 39
40.
F値の使い方が良くない例 40 しっかり値を見ないと、 分類がうまくいかないことも。 極端だが、再現率を適合率の 100倍重視した例。 誤分類だらけ。
41.
実現手法 1.画像認識の流れとアルゴリズム 2.認識のための機械学習 3.精度測定 おまけ. 機械学習を勉強するにあたってお世話に なったデータ 41
42.
実験用画像セット • 以下に充実しています。 MIT が提供する画像データを使ってみます。 これはデータセットをどんな風に用意するのかを勉強することも出来ます。 http://cbcl.mit.edu/software-datasets/ 他には以下のようなデータセットもあります。 http://vasc.ri.cmu.edu/idb/html/car/index.html http://www.vision.caltech.edu/html-files/archive.html http://iris.usc.edu/Vision- Users/OldUsers/bowu/DatasetWebpage/dataset.html 42
43.
OpenCV • http://opencv.org/ • 実装はここでコード見て、ずいぶん学ぶことができました。 43
44.
これから • 画像認識を使ったサービスは開始できた。これから先は、 • 音声を使ったら… •
文字認識は… • ユーザのデータから新しい学習の傾向を探す… •新しい技術で乗り込むチャンス。 44 なので
45.
SPRIXでは、仲間を募集しています。 • 世界初のサービスをつくるため、研究~設計~実装までやれます。 • 研究機関、個人、ベンチャー、大学関係の皆様、共同研究の費用 出ます。 •
画像認識に限らず、テキストマイニング、文字認識、AI …など、研究 を現実的なサービスに取り入れるチャンス。 • 連絡があればいつでも会えます。 45 どんなことやれるの?
46.
連絡先 •Twitter @masazdream •会社 46
47.
SPRIXでは IT×教育サービス を どんどん実現します。 以上です、ありがとうございました。 47
Download