第 15 回ＣＡＤセミナー

主催：日本放射線技術学会 画像分科会
共催：学術委員会，中部部会
日時：2004 年 9 月 18 日 1pm-5pm, 19 日 10am-5pm
場所：岐阜大学工学部応用情報学科／会議室および演習室
今回の演習は，岐阜大学で開催したＣＡＤセミナー（第３回，第６回，第９回，第１２回）の続きとして，さらに内容を拡張して企画しました．今回が最初の参加の方は必要に応じて前回の内容から学習してください．また，これまでのセミナーのホームページと合わせて学習されることをお勧めします．
セミナーのページ：http://www.fjt.info.gifu-u.ac.jp/cad-sem
エディタ（xemacs, emacs, mule）の使い方：
http://toba.yanagi.gifu-u.ac.jp/freshers/2001/D/index.html＜９月１８日（１日目）＞＜９月１９日（２日目）＞

12:20 〜 13:00

受付

8:00 〜 10:00

早朝自由演習13:00 〜 13:05

開始のご挨拶

10:00 〜 10:10

２日目・ガイダンス

担当：原（岐阜大学）
13:10 〜 13:40

担当：原（岐阜大学）

特別講演

講師：岐阜大学・藤田広志
13:40 〜 13:50

概要説明・ガイダンス

13:50 〜 14:20

演習Ｊ・ベクトル集中度の計算

14:20 〜 14:50

演習Ｋ・テンプレートマッチング

14:50 〜 17:00

プログラミング実習Ｊ・Ｋ（７階演習室）17:10 〜 17:20

半日の復習・明日の予定について

担当：原（岐阜大学）
18:15 〜 20:00

懇親会（17:30 ころバス出発）

10:10 〜 10:40

演習Ｌ・曲線／曲面の当てはめ

10:40 〜 11:10

演習Ｍ・判別分析（part2）

11:10 〜 12:00

プログラミング実習Ｌ・Ｍ

12:00 〜 13:00

昼食（受付時に有料で承ります）

13:00 〜 13:20

自由演習に関する説明

13:30 〜 16:00

自由演習（７階演習室）

16:00 〜 16:50成果発表・自由討論

16:50 〜 17:00

終了のご挨拶

＜セミナースタッフ＞
画像分科会 ： 原スタッフ

武史（岐阜大学）

学術委員会：小寺吉衞（名古屋大学）

中部部会：津坂昌利（名古屋大学）： 藤田広志（岐阜大学），松原友子（名古屋文理大学），福岡大輔，畑中裕司（岐阜工業高等専門学校）
中川俊明（岐大・産官学），篠原範充（岐大 D），久山慶子，桜井寛之，山本−1−章，安藤暁彦（岐大Ｍ）

演習Ｊ：集中度の計算
ベクトル集中度は，たくさんの計算方法がありますが，ここでは，もっとも単純な手法で演習を行います．計算時間はパラメータによりますが，結構かかります．
基本概念：
ある計算点において，その微分成分からその画素のベクトル成分を定義する．
そのベクトルの方向と強度のうち，方向のみに着目する．
方向が，関心領域内の中心に向かっている場合には高い得点を，それとは別の方向に向いている場合には，低い得点を与える．
得点は，ベクトルの方向と，中心方向へのなす角：θの余弦（cos）成分とする．
（注意：つまり，方向が一致（θ＝０）ならば，最大値：１）
演習内容：
パラメータの影響（微分パラメータ，計算回数，関心領域の範囲の設定／判定）
必要な知識：余弦定理．三角関数．ウィンドウ処理（データ可視化のため）．
＜実験１：実行＞ｊディレクトリで，コンパイル，実行，結果表示をしてみましょう．３つのファイルがありますので，その画像の集中度画像を計算し，表示しましょう．円形部分の中心部が白くなることが確認できます．

コンパイル：make clean; makeobject1.raw についての実行：
proc object1.raw 512 512 out1.raw
表示：
x8view object1.raw 512 512（原画表示）
x8view out1.raw 512 512（結果表示）＜実験２：パラメータ確認＞
関心領域の範囲（半径）を設定：
集中度計算のための２つのパラメータが main.c の concentrate の 最 後 の 引 数：
結果に影響を与えます．それらを変更して， 50.0, 20.0．これらで半径 20 〜 50 のドー
結果の変化の様子を確認しましょう．ただ ナッツ状の領域を設定．
し，パラメータの設定によっては，計算で 微分のための距離設定：きなかったり，非常に時間がかかります．
concentrate.c の中の dist=5
これで，５ピクセル離れた距離と差分計算＜実験３：マンモ画像での計算＞することを示す．
腫瘤を含むマンモ画像で計算しましょう．
＜拡張：領域設定の方法の変更＞
ここでは，ある点の中心からｒと deg によって回転していますが，簡単な不等式で計算領域の内外左のヒント：まず，円の方程式を考えましょう．その不等式は何を示していましたか？

判定が行えるように改造しましょう．

−2−

演習Ｋ：テンプレートマッチング
画像認識の手法はたくさんありますが，もっとも基本的なテンプレートマッチングについて演習を行います．検出対象としたい信号が画像中に明確な場合には非常に強力な手法です．しかし，まったく予想と異なる部分も出力されることも多いです．
基本概念：ある計算点において，原画像のある領域とそれと同じ大きさの参照パターンを比較する．
その比較結果を画像化する．たとえば，２つの領域が非常に似ていれば高い値．そうでなければ，低い値，というような画像を作成する．
類似性の比較にはたくさんの方法があるが，ここでは，誤差２乗和を用いる．すなわ
ち，２つが全く同じであれば０．異なれば異なるほど大きい値になる．
結果画像を作成して，その中で値の低い領域を見つければ，そこに，参照画像と同じ画像があるといえる．
演習内容：

必要な知識：特になし．

文字検索．類似性評価．

＜実験１：実行＞ｋディレクトリで，コンパイル，実行，結果表示をしてみましょう．アルファベットのかかれたファイルと「a」「n」「i」の３つのファイルがありますので，両者のテンプレートマッチングを行い，文字の場所を探しましょう．
＜実験２：検出位置の確認＞

アルファベットのファイル：background.raw 大きさは 512x512
文 字 の フ ァ イ ル：a.raw, n.raw, i.raw
32x32 画素．
実行：
proc background.raw 512 512 a.raw 32
32 out-a.raw原画像に含まれている文字と全く同じ文字でテンプレートマッチングを行っているので，値が０の１点が存在します．２値化などで，位置を確認しましょう．

過去のセミナーの内容を参考にしてください．

＜実験３：胸部画像での結節状陰影検出＞
テンプレートに結節風の陰影を作りました．その画像と胸部画像とのテンプレートマッチングを行いましょう．

テンプレート像：nodxx.raw, ribxx.raw
xx の数字が画像の縦横の画素数．正方形．
胸部画像：chest.raw 512x512 画素＜拡張：テンプレート画像の作成＞

濃度を与える２変数関数を考えます．２変数が画像２次元のガウス分布で，人工像を作りましょう．の平面上の座標点と考えます．

−3−演習Ｌ：曲線／曲面の当てはめ（関数近似）
複数の点にある関数を当てはめたい場合があります．たとえば，何十点か集まったときにその点を２次関数，３次関数で近似する，というような場合，また，空間上に何十点かある場合，その点を２次曲面で表現する，などです．
基本概念：
集まった点と，近似したい関数との誤差が最小になるように，関数のパラメータを決める．２次関数なら３変数｛a, b, c｝：y=ax^2 + bx +c．２次曲面なら z= ax^2 + by^2 +cxy + dx + ey + f の５変数．
演習内容：

簡単な線形代数，連立１次方程式の解法

必要な知識：偏微分，ガウス・ジョルダン法による連立１次方程式の解法．
＜実験１：概念の理解：手計算＞（手で計算してアルゴリズムを理解します）
４点：(-1,0), (0, -2), (0, -1), (1, 1) に２次 １．曲線と点の誤差の２乗和を計算．
曲線：y=ax^2 + bx + c を当てはめなさい． ２．その式を変数：a, b, c で偏微分．
３．偏微分した式＝０で a, b, c が定まる．
（つまり，３が連立方程式を解く部分）＜実験２：ガウス・ジョルダン法＞
ディレクトリＬのプログラムで連立方程式 コンパイル：gcc main.cを解きます．実験１のパラメータが入力さ 実行：a.out
れているので，結果を確認してください．
＜実験３：以下の連立方程式を解く＞
2w+x+2y +z=66w-6x+6y +12z =36
4w+3x +3y -3z= -1
2w+2x -y+z=10

４変数の連立方程式．
解くために，変数の数Ｎと行列を変更する．
解：(w, x, y, z) = (2, 1, -1, 3)になります．

＜実験４：手計算からプログラムへ＞
実験１のプログラムを作成しなさい．

偏微分した式はあらかじめ作成します．

＜拡張１：１次元配列への変更＞

プログラムを一般的な連立方程式を解く関数としてプログラム中の a[][] を１次元配列に書き換えよ．

扱うことができます．また，連立方程式を解くこと係数を与える配列を１次元配列で記述すると，このは他の多くの問題に適用できます．

＜拡張２：曲面の当てはめ＞
画素値に２次曲面を当てはめて，背景トレンド成分

非常に一般的な方法です．どのくらいの範囲で近似を削除する方法をかんがえよ．

するのかによって，結果は当然異なります．

−4−

演習Ｍ：判別分析（線形の判別式の作成）

陰影に対してさまざまな特徴量が集まった場合，その特徴量によって陰影を２つの群に分離したい場合があります．判別分析は，２つの群に分けるための判別式を自動で作成します．特徴量の分離がよい場合には，とてもよい方法です．
基本概念：
２つの群について，事前に特徴量を集め，それらの分離がもっともよくなる識別境界を作成する．特徴量が２つならば，特徴空間は２次元になるため，識別境界を表す判別式は直線（平面を２つに分割する），特徴量が３つならば，特徴空間が３次元なので，判別式は平面の方程式となる．
演習内容：テキストファイルの読み込み，簡単な線形代数．
必要な知識：逆行列，転置行列，＜実験１：テキストファイルの読み込み＞
ディレクトリ「ｍ」において，matrix̲op.c コンパイル：gcc matrix̲op.cをコンパイルして，group̲a.txt を読み込み， 実行：a.out group-a.txt
double 型の配列に入れなさい．実行して，結果を確認し，処理の流れを理解してくだ
さい．
（手順）
１．行ごとの平均値を求める．
＜実験２：転置行列・分散共分散行列＞
実験１の配列：grp̲a は２７行２列です． ２．１行目のすべての数値から１行目の平均値を引く
この行列は，行の数がサンプル数（２７），列の数が特徴量数（２）になります．値は ３．２行目も同じ．
特徴量です．この行列の分散共分散行列を ４．新しく２７行２列の行列ができるので，その転置行列（２行２７列）を左から求めなさい．
掛け，２行２列の行列が得られる．
５．それを（変数の数 -1）で割れば分散共＜実験３：複数の行列の読み込み＞分散行列になる．対角成分は，特徴量group-a.txt, group-b.txt を読み込み，それの分散，そのほかは共分散．
ぞれの分散共分散行列を求めなさい．
＜実験４：判別式の作成＞
資料（次ページ）に基づき，判別式のパラメータ（３つ）を求めなさい．

逆行列を求めるプログラムを作成する必要があります．手で求めても結構です．

＜拡張：多変数になる場合＞

特徴量の数をｎとすると，分散共分散行列がｎｘ２変数がさらに多変数になる場合，どのように変更すればよいか，考えてみましょう．

ｎになります．また，n x n の逆行列を求める必要
が あ り ま す．www.fjt.info.gifu-u.ac.jp/˜hara/semi に他のデータもあります．

−5−

自由演習について

ここで行った「集中度」もしくは「テンプレートマッチング」のいずれかを検出処理に用いて，マンモグラムにおける腫瘤陰影の検出プログラムを作成します．
元プログラムは「体験演習」（ディレクトリ名：taiken）に保存されている処理を利用してください．もしくは，その後の演習のプログラムでもかまいません．
目標：
異常症例と正常症例について処理を行い，真陽性率，画像あたりの偽陽性数，真陰性率を計算します．可能ならば，FROC 曲線も作成してください．
結果について：セミナー二日目の最後に成果報告会を行います．
ご自身のプログラムの概要と，検出精度をまとめ，お一人１分間程度にご報告ください．

さらなる進捗のためにおおよそ中級編はこれで終了したと考えます．今回は，・画像認識の基礎として，テンプレートマッチング・フィルター作成の概念として集中度フィルタの作成・得られた点の近似方法として最小二乗近似による曲線あてはめ・特徴量の自動判別のための判別分析を取り扱いました．これまでの内容と異なり，いくらか数学的な背景が必要となっていますが，それほど難しいものではありません．
さらに高度な手法でも，おおむねこのような要素・構成は変化しません．たとえば，集中度の計算方法が複雑になったり，判別分析がニューラルネットワークや SVM になったり，ということになります．

画像処理コンテストへの応募のお願い

contest.fjt.info.gifu-u.ac.jp をごらん頂き，コンテストへの応募をご検討ください．

参考文献：
・Ｃアルゴリズム全科，千葉則茂，他著．近代科学社．
・多変量データ解析入門，杉山高一著．朝倉書店．
・これなら分かる応用数学教室，金谷健一著．共立出版．
・技術者のための高等数学５ 数値解析， クライツィグ著．近藤次郎，他，訳．培風館．
−6−