第6回名古屋CV・PRML勉強会に参加しました

4月16日に開催された第6回 名古屋CV・PRML勉強会(以下・名古屋CV)に参加しました。
そう、前日の名古屋Scala勉強会に参加した次の日です。
今回の名古屋CVは初学者向けに広く浅くCVについて紹介するというテーマで、私にとっていつも以上に有意義なものだったので、詳細をまとめようと思います。
なお、メモは発表者の方の発言だけではなく、個人的解釈による補足などを含んでいますので、誤解等あったらご指摘願います。

名古屋CVについて

  • 毎月第3土曜日の13:30から17:00まで
  • その後、懇親会
  • 構成要員(個人的な印象で)

    • 学生が非常に多い(他のIT勉強会にない特徴)
    • 大学の教員の方も多い(  〃  )
    • 社会人の方も多い
    • 要するに、参加者も結構多い

私と名古屋CV

  • 第1回から毎回参加

    • 最初っから参加
    • すみません嘘つきました
    • 実は第0回があって、それには行ってません
    • どうして過去5回参加してるのにブログ記事がひとつもないのですか?

      • 私の不徳の致すところでありますorz
  • CV技術は昔から興味あった

    • (その割に未だに初心者とか言わないで)
    • なので学部3年次より、個人的に名古屋CVに参加
  • 大学で希望通りCV系の研究室に配属された

    • 名古屋CVに参加する強い理由ができた
  • 今まで聞きっぱなし

    • そろそろ、自分自身のために、アウトプットをするべき

オープニング

  • 2011年度としては最初の開催で、今回初参加となる人が多いことなどもあって、あらためて名古屋CVの紹介

今回のテーマ

コンピュータビジョンの概要

  • セッションは名古屋CV主催者でもある@miyabiartsさん
  • そもそもCVって何でどんな分野があるの
  • CVが究極的に目指すのは計算機に人間に匹敵し越える視覚を与える
  • 応用のほんの一部

    • 顔認識・顔認証
    • 三次元再構築

      • 僕の研究室の主要テーマのひとつ
    • 画像理解(セグメンテーション)
    • モーフィング
    • 高度交通システム(ITS)
    • 医療画像処理
    • 画像検索
    • 拡張現実
    • コンピュータグラフィックス
    • 深度画像処理(kinectとか)
  • 歴史

    • 撮像デバイスと計算機が発達してきた1970sくらいからまともにできるようになった
    • あとはメモるの追いつかなかった
    • 参考図書に書いてあるのでそちらを参照のこと
    • 研究は有機的に関連してる

      • それをうまいことまとめた資料が無い
      • ぜひまとめよう!!
      • まとめるの手伝って!!
  • おすすめな本

    • コンピュータビジョン最先端ガイド
    • Computer Vision Algorithm and Application
    • Pattern Recognition and Machine Learning

      • いわゆるPRML本
      • 訳書は上下巻に分かれた黄色い本
    • CGArtsの画像処理本
    • などなど。他にもたくさんあります。
    • 個人的にはごく初学者向けに酒井幸市先生の書かれた本がおすすめ

      • 非常に説明が丁寧で平易です
      • 初学者が実際に画像処理を始めるには、の取っ掛かりをつかむのにいいと思います
      • 酒井先生は高専の先生です
  • 今日のおしながき

    1. 画像処理
    2. セグメンテーション
    3. 画像評価
    4. 物体認識
    5. 物体検出・追跡
    6. ステレオ・多視点幾何
    7. AR

画像処理について

  • @miyabiartsさんより
「画像処理とは」
  • 画像に対して何らかの処理をすることである

    • 画像変換:画像を使いやすい形に変換する
    • 特徴抽出:対象を表す特徴を抽出する
    • 画像生成:ビジュアライゼーションやCG
    • etc
画像処理の種類(大きな分け方で)
画像から画像を得る画像処理
  • 輝度や色変換

    • トーンカーブの類
    • 入力輝度に対する出力輝度の関数を定義
    • ガンマ補正とか
    • 関数を変えるといろいろおもしろい
  • グレースケール化

    • RGB成分をおよそ3:6:1で加重平均をとる(NTSC方式)
    • 複数の方法があります
    • HoGなどは輝度勾配なのでグレースケール画像でよかったり
  • 空間フィルタリング

    • 注目画素の値を周辺画素の値によって決定
    • 3×3や5×5のオペレータ
    • オペレータの値によっていろんなフィルタができる
    • 平均化
    • 重み付け平均化(ガウシアン)
    • メディアン(※ちょっと特殊(単純な畳み込みじゃない(非線形)))
    • 各種エッジ抽出フィルタ(一階微分や二階微分)
    • オフセットつきなフィルタ(エッジ抽出して下駄履き128で、エンボス加工になる)
    • 先鋭化フィルタ
    • モザイク化
  • 周波数空間フィルタリング

    • FFT
    • IFFT
    • 画像のFFTは、横にFFTしてそれを縦にFFTするだけ
    • IFFTはFFTでの指数を-1にするだけでできるというね
    • LPF:空間周波数の中心(低周波成分)のみを残す
    • HPF:空間周波数の外周(高周波成分)のみを残す
    • BPF:空間周波数をドーナツ状に残す
  • 幾何変換

    • 回転(1パラメータ;角度)
    • 平行移動(2パラメータ;移動量のx,y成分)
    • スケーリング(2パラメータ;伸縮量のx,y成分)
    • 射影変換(4パラメータ;2点の移動先それぞれのx,y成分)
    • アフィン変換(6パラメータ;3点の移動先それぞれのx,y成分)
    • 射影変換(8パラメータ;4点の移動先それぞれのx,y成分)
    • ワーピング(すべての点の移動先を記述)
    • パラメータを増やすほど自由度の高い変換ができる
  • 二値画像処理

    • 画像の二値化

      • 大津のしきい値法
      • Pタイル法
    • モルフォロジー演算

      • いわゆる膨張、収縮
      • これらを組み合わせる順序によって、オープニング処理やクロージング処理
    • 細線化

      • 文字認識や形状認識で使われることもある
画像から数値データを得る画像処理
  • ヒストグラム
  • 特徴点抽出

    • 最小固有値に基づく方法
    • Haris検出器
    • FAST特徴量
    • 何度か扱ってきたSIFTやSURFやHoGなども
  • ハフ変換

    • 直線や線分の検出
    • 一般化ハフ変換により任意の形状を検出
数値データから画像を得る画像処理
  • 図形描画

    • GUIツールキットの類には必ず入ってるような。
  • グラフ描画
  • コンピュータグラフィックス

とりあえず以上だけどまだまだほんの一部!!

その他の画像処理
  • 動画像
  • 三次元画像(立体復元とか)
  • 距離画像
画像処理ライブラリ
  • OpenCV
  • Boost.GIL
  • MIST

    • 名古屋大学で開発・メンテされてるライブラリ
  • 商用にもいくつか

    • MATLAB
    • HALCOM
    • etc
  • 次回はこういったライブラリ(たぶんOpenCV?)を使って画像処理の取っ掛かりをやる予定!

セグメンテーション

  • 名古屋大学M1の林さんより
セグメンテーションとは
  • 画像中の対象物を分離・抽出する
  • 基本的に画像認識・画像理解のための前処理として行われる
  • 医療用画像で臓器の領域を見つけたり
  • テレビでのクロマキー合成をしたり
画素に基づく分割方法
  • Pタイル法

    • 対象物画素の全画素に占める割合が既知である場合に使える
    • 累積頻度がその割合となるところでヒストグラムを分割する
  • モード法

    • ヒストグラムに明確な谷がある場合そこで分割
    • そのようなヒストグラムを示す画像でないと使えない
    • 「谷」をとるのか、最大と次点の「山」の中間点をとるのか

      • 概ね後者らしい?
  • クラスタリングによる領域分割

    • 色空間上でのまとまりを利用
    • 全画素をRGBの三次元色空間にプロット
    • そのまとまりを同領域として分けていく手法
領域に基づく分割方法
  • 画素に基づく分割は位置的な情報を考慮しないアドホック気味な方法であるのに対して、平面上での配置を考慮
  • 分割統合法

    • 領域を分割して統合することにより領域を分ける手法
    • 分割ってのは

      • 画像をどっか適当な点(中央でもいいし何らかの基準で決めても)でガッと分けてしまう
    • 分割後の画像の中に前景領域と背景領域がともに含まれていたら、その画像を再度分割
    • 細分化されたすべての画像がそれぞれ前景または背景のどちらかのみを含むものである状態になったら、分割作業は終了
    • このとき、前景と背景の境界付近ほど細かく分割されているはず
    • 終わったら、前景領域と背景領域の分割画像それぞれ隣接している同じ領域の画像を統合

      • 分割を有限で打ち切ると、階段状の領域になるはず
  • グラフカット

    • グラフ理論を利用
    • 隣り合う画素のつながりをグラフに

      • 近い画素値なら強いつながり
    • メモがとれませんでした

      • グラフカットの理論については結構資料があるのでそちらを参考に。。
  • グローカット

    • 人によって指定された前景領域上の点(または部分領域)を広げていくことで領域を分割
    • 画素値が近いなら前景だろうと推定
    • 背景推定も同様に
境界に基づく方法
  • スネーク(輪郭の動的抽出)など
  • 詳細は割愛されました

画像評価

  • 中部大学・鈴木さんより
画像評価とは
  1. 視覚的評価法

    • 観察・検出過程における評価
    • 人間による画質の評価

      • いい構図だ、とか
  2. 物理的評価法

    • 画像記録の家庭に置ける評価
    • 画像特性の評価(画像解析)
    • 今回のセッションでの主題はこっち
  3. 画像解析って

    • 階調性
    • 光沢
    • 解像度
    • ノイズの有無
    • saliency(せいれんしー;顕著性)

      • 特にこれに注目したセッション
saliencyとは
  • saliency;顕著性

    • 画像中の顕著性が高い部分を示す

      • 具体的には、浜辺の写真の中で人のいるあたりを高いsaliencyと評価する
      • 出力されるのは画素単位のsaliencyのマップ
  • 画像のsaliency解析

    • 画像中の特徴量による顕著性の特定

      • 色やエッジやメイドや彩度や周波数など
  • saliency detection

    • ある論文で示された、周波数領域でのsaliencyの求め方
    • まずFFT
    • LoGフィルタをかけて高周波成分のノイズを消す(LoG;Laplacian of Gaussian)
    • フィルタかける前後での差分をとって低周波成分を抽出
    • それをIFFTすると顕著性マップ画像になる
    • 顕著性マップを二値化すると、saliencyの高い物体の領域が出せる
  • CVへの応用

    • 道路標識認識など

      • (参加者よりツッコミ)実際は無理だろうねww
    • SeamCarving

      • メモが追いつきませんでした

物体認識

  • 名古屋大学M1・吉田さんより
  • おしながき

    1. 物体認識とは
    2. 物体認識の研究対象
    3. 一般的な物体認識の流れ
物体認識とは
  • CVの主分野と言ってもいい
  • 画像中の物体は何?

    • これは誰
    • これは何
    • これはなんという文字
  • 物体認識≠物体検出

    • 検出は画像中から特定カテゴリの物体の位置を求めるものである
    • 認識はその後の話になるのかな
物体認識の研究対象
  • 何を認識したくて研究してるか
  • 王道としては人画像(顔)や文字
  • 動物や製品の、個体や種類の特定
  • シンボル(道路標識など)
  • 姿勢とか(モーションキャプチャも含まれるのかな?)
  • 結局、画像から認識したい物体の数だけ特殊化された研究がある

    • その対象に特化した知識を用いるのが重要
    • 個人的には、特殊化された対象の情報を放り込むだけで精度よく認識できるという一般化された手法を開発できたら理想的なんだとは思う

      • もちろんそんなの難しいのは理解しているつもり
一般的な認識のフロー
  • 入力画像に対する前処理

    • 例えば、集合写真に写ってる人をそれぞれ認識するには、個人の顔領域の集合に分割しなければいけない
    • つまり、認識したい箇所を取得すること

      • 前述したセグメンテーションの手法による抽出
      • 後述する物体検出の結果を利用
  • 特徴抽出

    • 領域に関する特徴ベクトルを得る
    • これまでにさまざまな特徴ベクトル抽出方法が考案されている

      • 色ヒストグラム
      • 色コリログラム
      • SIFT
      • SURF
  • 識別器による認識

    • 特徴ベクトルを識別関数にかけて、しきい値処理を行う
    • 識別器はいろんな種類がある
    • 大体こういう分野で使われるのは教師あり学習
    • 識別器やその設計によって結果が大きく変わるので、極めて重要
物体認識における課題
  • やはり、見た目の変化

    • 視点の変化による(画像上での)形状変化
    • 人の顔であれば表情など、実際の形状変化
    • 照明変化

物体検出・追跡

  • 中部大学、@kstmsgさん
  • 前回、学習データ自動生成についてのセッションを行った方

    • このときの発表は個人的に衝撃でした
    • 学習データを自動生成って。なにそれすげえ!と。。
物体検出とは
  • 特定の単一クラスの物体を画像から見つけること(前述の通り)
  • 応用はいろいろある

    • 監視
    • 産業(品質管理など)
    • 介護
    • ITS
    • などなど
物体検出は難しい!
  • 対象の見え方や形状の変化が激しい

    • 物体認識の課題と同じような課題。視点変化、形状変化、照明変化、オクルージョンetc
  • 対象のクラスが純粋に多すぎる

    • 加えて、クラスは階層的になってるので、どこをとるか?
    • 車なら車と言ってもセダンかワゴンか
  • そういう課題に取り組んでる手法の例

    • HoGとSVMなど

      • HoG: 局所領域内の輝度の購買方向をヒストグラム化
      • SVM: 繁華能力の高い2クラス識別子。マージンという考え方の導入。
    • 色類似関係を捉える特徴量;CSS特徴量

      • Color Self-Simularity
      • HoGは色情報を利用してないので
      • (詳細は理解しきれなかった><)
物体追跡について
  • 検出対象が画像中のどこに移動したか
  • 応用はやっぱりいろいろある

    • 監視カメラ。不審者とか
    • 顧客の行動理解
    • 顔検出
  • 物体追跡は難しい!

    • 物体検出と同じ難しさがある。
    • ただ、時間軸方向に広がる情報から補間することも可能

      • 要するに一時的に見えなくなったら前後のフレームの位置の中間を〜とかいう融通が効くこともある
  • Particle Filter

    • 初期化→予測→尤度計算→対象推定
  • MeanShift
  • 他にもいろんな手法あるよ

    • アクティブ探索
    • SIFTで点単位で追跡
    • Kanade-Lucas-Tomasi法
  • デモが中部大学・藤吉先生の研究室サイトで公開されているのでご参照ください

多視点幾何とステレオ

  • 名工大・福島先生
  • おしながき

    • カメラはどこにいる?〜キャリブレーション〜
    • 被写体はどこにいる?〜スレテオマッチング〜
キャリブレーションとは
  • 強キャリブレーション

    • カメラはどこにいてカメラの構造はどうなっているか

      • 三次元空間中のどこにいる
      • どこを向いている
      • これらを、コンピュータが画像から知るには
    • それに使うのが次のパラメータ

      • 内部パラメータA;焦点距離や画像中心などカメラ内部の特性
      • 外部パラメータR;カメラの回転と並進
      • 投影行列M;最終的に画像上のどの二次元点に投影されるか
      • 全てのパラメータがわかると、カメラの位置がわかる
      • 連立方程式を解いて求める
  • 弱キャリブレーション

    • 2台のカメラの相対関係を画像だけから記述する
    • 同じ物体を二つのカメラから撮影したものがあるとき、対応点はどこ

      • 全画素スキャンして対応を探さなくてもいい!
      • 対応点はある1ライン上にのる。
      • エピポーラ法則
  • 平行化

    • カメラが特殊に並んでる場合のエピポーラ幾何
    • 画像を回転させて、並行したカメラで撮影したかのように変換する
    • 製品化されてるカメラアレイ(つまり理想的にはカメラは平行)でも、平行化は必要
ステレオマッチング
  • カメラに見えている物体が実際はどこにあるのか
  • 右画像、左画像を平行化し(計算を簡単にするため)、対応点探索

    • 対応点が見つかったら三角測量で求まる
  • ステレオマッチングの難しいところ

    • テクスチャレスな部分の曖昧性
    • 撮像デバイス自体のノイズ
    • オクルージョン

      • 左画像で隠れていて右画像で隠れていないような領域が生じる
    • その他

      • サンプリング誤差
      • 鏡のようなもの
      • カメラの個体差による色の違い
      • 平行化の失敗
      • etc…
    • 解決方法

      • たくさんww
  • OpenCVにはステレオマッチングのアルゴリズムはいろいろ実装されている
三次元投影・レンダリング
  • 三次元シーンの再構成
  • おかしい、メモが全くない…

AR

  • 愛知工科大学・手島さん
  • http://tessy.orgの方
  • プレゼン資料がGoogleDocsにupされています
  • AR(拡張現実;Augmented Reality)

    • 身の周りだと、スポーツに結構使われてる

      • オリンピックの水泳で、着順・時間や世界記録ペースの表示がある
      • 野球のストライクゾーン表示
      • アメフトの10ヤード線
  • AR≠VR

    • 現実が移っているかどうか。
    • 実世界と仮想物体の組み合わせ
    • …では、笑い男のやつや、字幕もAR?→そんなことはない
    • ARの定義

      • 拡張現実とは、実世界と仮想世界を、インタラクティブに・リアルタイムで・三次元的に位置合わせして組み合わせているもの
  • センサを使った位置合わせ

    • セカイカメラとか

      • センサはGPSを方位計
  • 画像から直接取得

    • マーカを使う

      • マーカを元に、カメラの位置・姿勢を推定
      • 撮影したらP行列をリアルタイムに推定
      • ARToolKitは代表的
    • ARTag

      • ARToolKitはオクルージョンに弱い
      • 複数マーカを統合
      • オクルージョン耐性のあるマーカ(何らかの符号を埋め込むなど)
      • …などの方法
    • マーカを使わない、自然特徴点を用いた位置合わせもある
  • それっぽさ

    • 見た目が矛盾してないことが重要
    • 幾何的整合性

      • 位置がちゃんとしてるかどうか
    • 光学的整合性

      • 光源の位置がおかしくないか
      • 周りの照明環境を推定して適切な陰影をつけることが必要
  • モデリングとAR

    • 仮想3D物体のモデリングまでリアルタイムに行う
    • カメラの位置の変化だったり、現実物体の見え方の変化などに合わせて仮想物体の形をいいかんじに変えるような
    • http://www.youtube.com/watch?v=IZOeRhQdew8

      • これ、ロゴは仮想物体なんです…
      • 事前知識と映り込む手がなければ、気づかん…

全体の感想

  • こうやって広く浅く、かつ適度にテクニカルなレベルでコンピュータビジョン全般のことを紹介してもらえる機会はすごく貴重

    • 初学者へのCVイントロダクションとしてとてもいい形だったのでは
  • 今回の学生の発表者の方、みんなすごいしゃべれてて…

    • だいたいM1の方でした
    • 私はB4です
    • 1年後に同じような機会があって僕がしゃべることになったとして、同じレベルでしゃべれると思えない。。
    • しゃべる練習をしときたいですね。
    • 大学での卒研発表もありますし
  • グラフカットについて勉強しとかないとな

    • 文献とか見ると結構いろんなところで使われてるかんじ

懇親会

  • 第1回と第4回勉強会以降ずっと懇親会に参加してます

    • 回を追うごとに楽しみになってきてる
  • 名古屋大B4の人がおられた

    • IT勉強会で(うちの大学の同級生以外で)同い年の人に会うのは初めて
    • そしてその方は高専からの編入組という。
  • 懇親会で隣だった@maeda_さんは前日の名古屋Scalaにも参加しておられました
  • 今回は他大学の話がちらほら聞けました

    • 懇親会に来られた人のうち大学関係者はたぶん、名大、名工大、愛工大、中部大、技科大
    • 他の勉強会でこれほど大学関係者が揃う機会はあまりないですね(だから良い悪いなどとと言うつもりは全くありませんので)
  • すでに何日か経ってしまってるので結構忘れてるな…

次回以降について

第7回(5月)について
  • 第6回同様に、初学者向けな内容
  • 画像処理プログラミングの基礎
  • ハンズオン形式?
  • OpenCVなどで実際にいろいろできるように
  • 発表者募集中
第8回(6月)について
  • テーマ・発表者ともに未定、募集中
  • 物体認識とかARとか?
  • なければLT形式でもいいし
その他
  • 運営側に携わる学生がほしいそうです
  • 発表資料は基本的にGoogleGroupの名古屋CVのところにupされるので、ぜひご覧ください
  • 勉強会の模様は基本的にust中継します

    • ※資料upやustは発表者が望まない場合はされません

Japan Computer Vision Dayについて

  • MIRU2011の前座として
  • 前日
  • 同会場
  • 関東・関西・名古屋の各CV勉強会の合同で
  • 内容は、

    • LT
    • デモ
    • パネルディスカッション(パネラーは決定済み)
    • グループディスカッション(全参加者で)
    • 懇親会(本番とも言う(ちょ))
  • おそらくMIRUは研究室のボスに言えば研究費から参加できると思う

    • 前日から行くのどうするかは、交渉次第

まとめ

研究室配属されて最初の名古屋CV勉強会でした。
卒研テーマを決める上でも参考になりそうです。
また今の立場を生かして、在籍している豊橋技科大と名古屋CV勉強会のつながりを作っていけたらと思っています。

One thought on “第6回名古屋CV・PRML勉強会に参加しました

  1. 医療画像を調べていてたどりつきました。私も勉強中ですが、いろいろな会社が医療画像を扱っているので調べていたところです…あのデルhttp://www1.jp.dell.com/content/topics/global.aspx/sitelets/solutions/industry_application/pub_solutions/dell_healthcare_medical_imaging?c=jp&l=ja&cs=jpgem1
    もそのようなサービスを始めたとききました。今後の医療画像の動向が気になりますね。またブログ拝見しにきます。

コメントを残す

メールアドレスが公開されることはありません。