350 likes | 425 Views
電気電子工学専攻 知能集積システム特論. 画像認識 II. 関根 優年. 講 義 内 容. 神経回路の構造と機能 情報処理. 画像の前処理 I. 網膜> LGB> 視蓋>視床>上丘部 大局的な情報で手掛りを取り出す 網膜の視細胞で一部処理済み Wavelet 変換回路で粗画像を作る. 2枚のフレームで動きベクトルを作る 注視領域情報を取り出す.. 画像の前処理 II. 両眼での奥行き(ステレオ)情報はソフトで計算している 両眼の CMOS センサ画像を取り出す. 両方の画像で,テンプレートマッチングを行い, x,y 座標を求める.
E N D
電気電子工学専攻知能集積システム特論 画像認識 II 関根 優年
講 義 内 容 • 神経回路の構造と機能 • 情報処理
画像の前処理 I • 網膜>LGB>視蓋>視床>上丘部 • 大局的な情報で手掛りを取り出す • 網膜の視細胞で一部処理済み • Wavelet変換回路で粗画像を作る. • 2枚のフレームで動きベクトルを作る • 注視領域情報を取り出す.
画像の前処理 II • 両眼での奥行き(ステレオ)情報はソフトで計算している • 両眼のCMOSセンサ画像を取り出す. • 両方の画像で,テンプレートマッチングを行い,x,y座標を求める. • 両方の座標データで奥行き距離を計算する. • 両眼の対応する領域を,帯状に取り出し,他方をテンプレートしてマッチングを行い,距離計算をする. 両眼視差
距離計算を行う回路例 • 全帯状領域で奥行き計算を行い,帯状ごとに,奥行き座標を求めて,手掛り情報を作成する. • 背景では,両座標ともに同じになるので,直ぐに取り出せる. • 最初に一致する所(極小値)でOK テンプレートで 一致座標を計算 テンプレート化 座標を計算
回路構成例 I • 奥行きの計算の仕様: • 遠くはおおよその距離を早く,沢山,並列計算 • 近くは遅くても正確に計算 • CMOS画像の入力画像は横方向(X)にスキャンする. • 2つのCMOSセンサーは横(ΔX)に配置する. • 横方向にだけ,両眼視差(δX)があると簡単化.入力画像でのY座標は変化しない(δY=0). • 奥行きZ • 焦点 f • 無限遠方: 平行線よりδX=ΔX
遠方の像は近似 X:Z = XL : f , X+ΔX:Z = XR:f X Δx Z 焦点面 f XR XL
回路構成例 II CMOSセンサー CMOSセンサー 入力画像 入力画像 Wavelet変換 Wavelet変換 帯状領域設定 帯状領域設定 Templet 切り出し マッチング 奥行き計算 奥行き座標マップ
回路記述例 I input left_R, right_R; //左右の画像 input w_t, h_t, XL, YL; // templetの形状 //copy template from left_R // 初期化して フラグが立つのを待つ // 行毎に templetにコピー if(ycnt < h_t)begin // pixel line templetLine[I] <= left_R[I]; I <= I+1; ycnt<= ycnt+1; end // この templetでマッチング // matching initialize,set matchingGoFlag // matching if(xcnt < w_t) begin if( matchNew- matchOld<0) begin matchOld <= matchNew; XR = X; end end
回路記述例 II // XL, YL , XR, YR で 奥行きZを計算: 相対的なZが分かれば良いので Zではなく,XLとXRの差だけ求める. 視野の左側領域: XR –XL 視野の正面領域: | XL–XR | 視野の右側領域: XL–XR 適当な離散値に量子化してZを求める. // 領域毎にXL, YL , XR, YR , Zを出力する. // 必要ならば正確なZをプログラムで計算する. // 次の領域の計算・処理の準備として初期化をする.
奥行きマップ • 測定用手掛り部を複数選べば,格子状の奥行きマップが出来る. • 並列演算が可能. • 奥行きが同じなら背景から切り取ることができる. • 手掛り部を上位のテンプレートから指定して,再計算を行えば,精度が上がる. 00111011 01121001 01222100 00111000
視覚情報の流れ • 空間認知(頭頂葉)と対象物認知(側頭葉)に分かれる. • 前頭葉で認識結果が会合する • プログラムで認識するのと同じ? • 入力元への出力は側頭葉のみ
画像前処理のハード構成 データベース 何GB? 認識処理 アルゴリズム 何GB/sec Host CPU + プログラム • 画像データが膨大なため不十分? • 前頭葉・認識統合用のhwModule? • ボード数は未だ不十分 800MB 運動出力 hwModule 何十個 ? サーボモータ 出力 PCIバス 133MB/S 直ぐに ボトル ネック になる 複数 PCIバス 音声合成 hwModule 音声出力 196Khz 5μs 音声認識 hwModule 5ms 1ms以下 マイク Bioler3 VP70x3 200MHz 画像用 hwModule CMOS センサー 30frame,640x480x8x3(YUV) 700000x30=21Mpixels/sec
V1野のmodule構造 Upper surface of A single hypercolumn(1mm2) Interstripe interval(V2) Cortical blob Thin stripe I II III IVA IVB IVC-α IVC-β V VI 2mm C I C I C Complex cell M-channel Movement、 Visual attention Simple cell Complex cell P-channel Form,color LGB 500μm 30-100μm
V1野での処理 • Orientation columns • エッジの方向性の抽出 • 15°の角度に分けて計算 • Complex-cell(2,3+5層)が特定方向のsimple-cell(4,6層)を集めて作成. • エッジ(wavelet成分)でも同じ値(scaling成分)でも作れる.境界部分しか意味無い? • 両成分で構成:色情報,輝度情報をエッジに付加する. • 輪郭と連続する領域で作成 • 運動,注意 • 2画面の差分で容易に作成可能
V1野の回路構成 論理関数で構成 // simple cell array s(x,y) // complex cell array c(X,Y) // 0,15,30,45,60,75,90,… 24 channel //0-channel(0) c0 <= s(0,0)&s(2,0)&s(4,0)&s(6,0); //1-channel(15) c1 <= s(0,0)&s(2,3)&s(4,6)&(6,9); //2-channel(30) c2 <= s(0,0)&(2,6)&s(4,12)&(6,18); …… //orientation output cout = {c0,c1,c2,…,c23}; //color output sout = computed color;
V2野の回路構成 • V1野の出力を処理 • V1野から24ビットの向きベクトル • cout[x][y]=cout(0,0,0,…,1,0,…0), sout [x][y]がV1の各コラムから出力. • 境界線分cout,soutをまとめて中規模の線分,頂点を作成 • 小規模の面を作成 ? • 中規模の図形を構成するのに必要な図形を作成し,ベクトル化して出力.
視覚前野と下部側頭葉皮質の入出力 斜線域がHRP色素 ●は顆粒上層、 □は顆粒下層 大/小=100/10個の標識細胞 TEO野に HRP注入 V4→TEO →最終段 まで3段 しかない 逐次的に 図形認識 V4野に注入
視覚関連皮質野間の投射繊維 • 起始層と終末層に関する層分布パターン模式図(Pandya と Yeterian 1985) • 双方向の結線で規則正しく層状にモジュールが構成されている. • Handshake で 像が認識される • 後段から像を求める. • 収束機構があるのでは?
形態視関連細分野間の神経投射 • V1,V2,V4(OC,OB,OA)野は中心視野対応域のみ 主要経路 データパス 画像処理 テンプレート 散在経路 制御線: 再注視? 選択
形態視関連細分野間を真似 逆行性の投射=注視位置を特定する制御情報
下部側頭葉皮質を中心とした解剖学的神経線維結合下部側頭葉皮質を中心とした解剖学的神経線維結合 • 画像処理に主眼を置いたフロー • 制御系,情動系との結線 • 画像情報の外部仕様そのもの • 各部分での処理を割り付ける • データ,データ構造を決める
上側頭葉皮質の12細分野の聴覚情報処理機構のモデル(PandyaとYeterian,1985)上側頭葉皮質の12細分野の聴覚情報処理機構のモデル(PandyaとYeterian,1985) • 同じように聴覚情報処理が連なっている. • 回路構造は,情報の構造を反映して大きく異なる • 共通点は多段処理 • 異なる点はチャンネル構造
系列内、系列間の細分野間の投射 • 聴覚系は視覚系と異なる結線方式 • 点線矢印は3系列内、4段階系内情報処理以外の処理系の存在の可能性を示したもの
視覚系での画像処理 • V1:方位選択性 • V2:刺激選択性,主観的輪郭 • MT(V5):運動方向性 • MST:物体の動きと自分の動き • 奥行き方向の動き, • 眼球運動の制御 • 頭頂連合野(7a,LIP,VIP): • 網膜座標から空間座標へ変換 • 視覚誘導性行動 • V4:網膜由来でない情報処理 • IT: • TEO:単純・複雑図形刺激選択性 • TE:複雑図形刺激選択性
画像処理システム • 前処理は部分回路を多段化して構成 • 後段の認識処理に必要な情報を領域毎に生成 • (Y,U,V),奥行き座標,方向ベクトル,境界・エッジ,動きベクトル • 認識処理部分はプログラム • 前段出力を多段で処理 • 注目領域の選定 • 注目対象物の形状形成, • 注目対象物の認識,記憶を探索 • 探索アルゴリズム • 認識アルゴリズム • 学習アルゴリズム • 処理の並列化と逐次処理
分析情報の統合 I • 何処で,どのように統合されるか? • 漠然と前頭葉らしい • 制御は上丘(視蓋)でも情報処理の制御は前頭葉?前頭葉も処理だけ? • 統合した後何をするのか • 運動命令を生成する.信号の流れ
分析情報の統合 I • 異なる領野からの情報を統合する → 座標で統一する(可能?) → 複合データなのでオブジェクトとする. • 各座標にこのオブジェクトがある. • データによって粒度が異なる.Waveletのような多重レベルの座標系となる.
分析情報の統合 II Hl+1Φl+1n 2l+1 HlΦlm 2l + + • 座標はHaar系の座標区間Imn • 各区間にはscaling基底関数 Φlnが付随する. • l+1 レベルでの座標は n1, n2, ... • l レベルでの座標は m1, m2, ... • (n,m,u,v,…)で符号化する • 領域ごとに画像データオブジェクト • (Y,U,V),奥行き座標,方向ベクトル,境界・エッジ,動きベクトル • データの種類により領域の大きさが異なる. • 同一のデータでも多重解像度で表現 • オブジェクトとしてまとめる. + Haar 座標 =
分析情報の統合 III • データ生成は別々に別の場所,異なる処理段階で行われる => 種類毎に別のメモリ領域 • 表現メモリクラス class memA { • ベースアドレス,メモリサイズ • 表現レベル(座標の刻み量) • 像の生成や認識処理を行う作業空間(メモリ):座標オブジェクトの二次元配列で構成 map<int, coord*, less> innerSpace • coord クラスはデータメモリ領域へのポインタでリンクする class coord { • memA*, memB*, … • int level • coord* next coord
分析情報の統合 IV • Coord上に対象物の像を生成する • Coordに配置された情報を解読・認識して,オブジェクト(顔,車,人,壁,床,天井,山などの背景)を作り配置する. • 既存のオブジェクトの生成 • 新規の物のオブジェクトはどうやって作る? • コンパイラ(C++)では無理? • インタープリタで行く? • JavaはOK?,ETは? • オブジェクトは既知で名前付か無名の物,未知のもの • データベースへのアクセスがある • DB上にクラスを作る? • 回路では無理,ソフトしかない.
画像情報の統合と分析 • 画像を手掛りとして運動をプログラム • 動機を生成 • 動機を優先度で整理 • 発行時期をスケジュール • 運動プログラムを作成 • 抽象化された記号(符号列)を選択 • 入力情報を評価 • 記憶するかどうかの判定 • 扁桃葉を含む辺縁系に依頼 • 評価の座標系を作る • 評価関数を作る • 情報の関係付けをする • 海馬でリンクを行っている • 記憶アドレスを生成?
入力-出力変換=関数・回路 • 関数 • 入力パターンと出力パターンで真理値表,論理関数 • 入出力ともにパルス→ パルス論理関数を作成. 論理関数と同じように真理値表を作成 • 積和の標準形で作成 • 関数の作成法 • 入出力対を次々と記憶. • 入力をデコードして記憶データを出力 • 積和式と見なして簡単化 • 初期関数を作り,学習で更新 • FPGA内に動的再構成可能な回路を作る. • 学習アルゴリズムを決める. • 当面何でも良いのでは, • 教師信号をどうするか.
記憶 • 記憶 • 分散して記憶される • 断片化された記憶を呼び出すときに統合される • 多重解像度のレベルに分けて記憶され,呼び出される. • 新しいアドレスの生成方法が必要
状態機械 • 内部状態がある場合には,状態機械として作成する(前頭葉を) • 状態も部分集合化される.部分状態内での遷移と部分集合化された状態間の遷移に分かれる. • 状態内での機能はプログラムで実現される. • プログラムは状態遷移イベントで制御される • 状態制御イベントを介して状態機械ー回路(hwNet)との連動が実現する