修士論文
GPGPU を用いた時空間画像処理による 細胞領域分割システムの
精度向上と性能評価
同志社大学大学院 生命医科学研究科 医工学・医情報学専攻 医情報学コース
博士前期課程
2013
年度1008
番井上 楓彩
指導教授 廣安 知之教授
2015
年1
月23
日Abstract
In recent years, with the advance of microscope technology, the alive cells have been able to observe. On the other hand, from the standpoint of image processing, the quality assessment which determine whether cells were successfully cultured has been studied.
Therefore, the cell image processing is performed not only static images but also moving images.
However, because of moving images are aggregation of static images, the processing of these images would take large burdens. Thus, we focused on massive cores, which Graphics Processing Units (GPU) contains, to solve the problem above.
In this study, to aim high quality cell segmentation system, we build the spatio- temporal image processing system using General-Purpose computing on Graphics Process- ing Units (GPGPU) as parallel processing. To evaluate the performance of our proposal system, we compared the processing speed of the spatio-temporal image processing with two cases: one is only using CPU and another is GPGPU. As the result, processing speed of GPGPU is faster than CPU. Moreover, the difference between these processing speeds was extend as increasing the amount of data.
Based on the above, the usefulness of GPGPU use in cell segmentation system with
moving images had been suggested.
目 次
1
序論1
2 GPGPU
による並列処理2
2.1
シングルコアCPU
の性能向上の限界. . . . 2
2.2
マルチコアプロセッサとしてのGPU . . . . 2
2.3 GPGPU
向けGPU
アーキテクチャ. . . . 3
2.4 CUDA
プログラミング. . . . 4
3 GPGPU
を用いた時空間画像処理による細胞領域分割システム5 3.1
細胞領域分割の精度向上. . . . 5
3.2
処理速度の高速化. . . . 6
4
提案システムの性能評価7 4.1
実験環境. . . . 7
4.2
実験結果. . . . 7
5
考察9
6
結論10
1
序論近年
,
生命現象を解き明かす手段として,
生きたままの細胞を観察する「ライブイメージ ング技術」が注目されている?) .
例えば,
遺伝子細胞の研究では分子レベルでの解析が進 み,
生きている細胞で内部の分子の動きを直接観察する取り組みが行われている1 .
しかし
,
細胞を生きたまま観察する技術には,
主に以下3
点の課題が存在する?) . (1)
電 子顕微鏡やX
線顕微鏡で用いられる線量は,
放射線に耐性をもつ微生物さえも死んでしま うほど強力であること. (2)
電子顕微鏡は透過能力が低いため,
試料を数百ナノメートル以 下にスライスしなければならないこと. (3)
試料を染色すると細胞が死んでしまうこと.
し かしながら,
近年はX
線自由電子レーザ?)
や共焦点レーザスキャナー?)
などの顕微鏡動画 技術の発達により,
上記のような課題が解消されつつある.
一方で
,
細胞画像処理に関する研究は以前から行われており,
その代表例として,
細胞画 像から,
細胞が正常に培養されたかどうか判断するための品質評価手法などが挙げられる?)
.
よって,
前述の顕微鏡動画技術の発展に併せ,
細胞画像の処理は静止画の域を越え,
動画の 処理に対応する必要があると考えられる.
しかし,
動画は静止画の集合体であり,
その処理 には大きな負担がかかる.
その負担量は,
ヒトの目の時間分解能が約30 [ms]
であるため?)
, 1
秒間の動画を処理量は, 33
枚以上の静止画を処理する量と同等だと推測される.
そこで
,
この問題を解決するため,
コンピュータの画像処理向け専用プロセッサであるGraphics Processing Unit (GPU)
に顕微鏡動画の処理を委ねることにした. GPU
は本来,
画像処理用のプロセッサであり,
画像処理は膨大なデータを規則的に処理する必要があるた め, Central Processing Unit (CPU)
の演算性能を凌駕する並列演算プロセッサとしての一面をもつ
?) . GPU
を並列演算プロセッサとして応用利用する技術を, GPU
による汎目的計算
(General-purpose computing on graphics processing units: GPGPU)
と呼ぶ.
また, CPU
にくらべGPU
はシンプルな内部構造をとることから?) ,
費用面においてもコスト削 減が見込まれる.
本稿では研究目的して, GPGPU
の特性を上手く活用した効率の良い顕微 鏡動画の高速処理システムの構築を目指す.
本稿の構成について説明する
.
まず,
第2
章では, GPU
の内部構造を説明するとともに,
高い並列性を実現できる原理について紹介する.
つぎに,
第??
章では,
本稿で提案する,
時 空間画像処理による細胞輪郭抽出システムの概要と,
そのシステム要件について説明する.
第3
章では,
細胞輪郭抽出に必要な画像処理アルゴリズムについて説明するとともに,
時空 間画像処理の概要について紹介する.
そして,
第4
章より,
本システムの性能を(1)CPU
の みを用いて細胞輪郭抽出の処理した場合と(2)GPGPU
を利用した場合との二者で性能比 較し, GPGPU
利用の有用性を確かめる.
第5
章ではCPU
のみの処理と比較し, GPGPU
の長所・短所について考察し,
第6
章にてGPGPU
の利点を最大限に引き出せる細胞輪郭 抽出の処理方法について結論を導く.
1細胞内ネットワークのダイナミズム解析技術開発
http://www.nedo.go.jp/activities/ZZ 00184.html
2 GPGPU
による並列処理本章では
, GPU
の内部構造を説明するとともに, GPGPU
として高い並列性を実現する原理について紹介する
.
2.1
シングルコアCPU
の性能向上の限界CPU
の性能は,
プロセッサ上に搭載されるトランジスタの数に左右され,
個々のトラン ジスタのサイズを小さくし,
単位面積あたりの搭載数を増やすことで演算性能を向上させ てきた.
すなわち,
集積密度の増加はCPU
の性能向上に置き換えることができる.
単位面 積あたりのトランジスタ数は18
ヶ月ごとに倍になるという経験則から, CPU
の性能は2.1
式のような向上を見せていた.
これをムーアの法則と呼ぶ.
p = 2
1.5n(2.1)
しかし
, 2010
年代に差し掛かる頃からトランジスタの微細化が原子レベルに到達し,
単位面積あたりの搭載数が頭打ちとなった
.
また,
大量のトランジスタへの電力供給が漏れ電力 を引き起こし, CPU
が生み出す発熱が大きな課題となった.
以上2
点の理由により, CPU
の負荷軽減のためクロック周波数を上昇が躊躇され,
シングルコアCPU
の処理能力の向上 に限界をもたらした.
この問題を解決すべく登場したのが
,
マルチコアCPU
による処理手法である.
マルチコ アCPU
の登場以降,
シングルコアCPU
の処理能力はさほど向上していない.
コアを複数 個利用し,
その1
つ1
つを単純化することによって発熱を抑えつつ,
処理速度を維持する手 法が現在の傾向となった. CPU
を単純化することでパイプライン段数が下がり,
クロック 周波数の低減にも繋がった.
よって,
消費電力は抑えられ,
結果として発熱も抑えることが できた.
2.2
マルチコアプロセッサとしてのGPU
2.1
節にて,
昨今のCPU
の構造は,
消費電力の削減のため従来型より単純化しているこ とについて説明した.
しかし,
内部構造を単純化しても, CPU
には割り込み処理や条件分 岐処理に必要なキャッシュやレジスタセット,
コンテクストスイッチなどを搭載しているた め,
依然コストを下げることが困難である.
そこで,
低いコストでマルチコアを手に入る手段として
, GPU
に備え付けられている大量のコア群に目をつけた. GPU
は元来,
画像処理用のデバイスである
.
そのため,
スクリーン上に画像を1
ドットずつ描画するだけの処理,
つまり1
つのコアにシングルスレッドを走らせるだけで事が足り,
割り込み処理の必要は ないため,
キャッシュやレジスタセット,
コンテクストスイッチなどは搭載されておらず極 めて単純な内部構造を取っている.
つまりGPU
は,
単位面積あたりのコストが低いにも関 わらず処理能力が高いデバイスであると言える. GPGPU
の登場以前から,
画像処理の性能 を向上させるため, GPU
単体でも簡単な物理演算を行う取り組みがなされてきた.
そこで,
この演算能力をもっと汎用的に活用するため, NVIDIA
社はGPU
向けC
言語の統合開発環境である
Compute Unified Device Architecture (CUDA)
を発表した. CUDA
の登場以降
, CUDA
を実行するために適した環境作りが,
ハードウェアレベルで始まり, Fermi
アーキテクチャが開発された
.
2.3 GPGPU
向けGPU
アーキテクチャ2.3.1 Fermi
アーキテクチャFermi
アーキテクチャとは, NVIDIA
が初めて本格的にGPGPU
向けに設計したアーキテクチャである
. GPU
が元来有する並列処理能力をさらに発揮できるよう,
コアとメモリ の設計に改革がみられた. Fermi
アーキテクチャ内のコアは, Streaming Processor (SP)
と呼ばれ
(CUDA
コアとも呼ぶ),
効率よく計算が行えるようSP
を32
個単位でユニット化した
Streaming Multi-processor (SM)
が採用された. Fermi
アーキテクチャではSM
が16
個 搭載されているため,
総SP
数は512
個(32x 16)
である.
また
, Fermi
アーキテクチャではキャッシュメモリが導入された.
キャッシュメモリとは,
繰り返し使用するデータを一時的に保存しておく高速なメモリである
.
前述のとおり, GPU
は画像処理用のデバイスであり,
スクリーン上に画像を1
ドットずつ描画するだけの処理 を主としていた.
つまり, 1
つのコアにシングルスレッドを走らせるだけで処理が終了する ため,
キャッシュメモリの必要性がなかった.
しかし,
数値計算には割り込み処理や条件分 岐処理が必要なため,
メモリアクセスが重要となる.
そこで, Fermi
アーキテクチャに, L1, L2
キャッシュメモリ,
そしてシェアードメモリを搭載することによって,
数値計算を従来型 のGPU
より効率化した.
Fermi
アーキテクチャの登場によりGPU
での数値計算が可能となったが,
一方で,
膨大な電力消費が課題であった
.
これを解決するために生み出されたのが,
次章で説明するKepler
アーキテクチャである.
2.3.2 Kepler
アーキテクチャKepler
アーキテクチャでは, Fermi
アーキテクチャでは課題だった膨大な消費電力を抑えることに成功した
. Kepler
アーキテクチャの1W
あたりの演算能力は,
最大でFermi
アー キテクチャの3
倍である.
消費電力を抑える方策として,
パイプラインとスケジューラの 設計が見直された. Fermi
アーキテクチャとの比較をFig. 1
に乗せる. Kepler
アーキテク チャではパイプラインの長さをFermi
アーキテクチャの約2
倍の長さにし,
クロック周波数 を下げることによって,
漏れ電力による発熱を抑えた.
そして, Fermi
アーキテクチャではGPU
内に設置されていたスケジューラを, Kepler
アーキテクチャではCPU
に移動させる ことによって, GPU
での処理負担を軽減させた.
また, SP
をFermi
時代の32
個から, 192
個に増設しSMX
と名称を変更した. Kepler
アーキテクチャを搭載したGPU
の一つであるGTX680
では, SMX
を8
個搭載しており,
総SP
数は1,536
個(192x 8)
となる.
2.4 CUDA
プログラミング2.3
で紹介した通り, GPGPU
向けGPU
にはキャッシュメモリやシェアードメモリが搭 載され,
ある程度の割り込み処理や条件分岐処理に対応できるようになったが,
その性能は未だ
CPU
に劣る.
よって, GPGPU
は単体で数値演算を行うことができず必ずCPU
の助けを必要とする
. CPU
とGPGPU
の協調動作に必要なのが, CUDA(Fig. 2(a)
を参照)
である
. CUDA
アプリケーションの役割として, CPU
側, GPGPU
側のプログラミング環境の提供
,
そして, CPU
とGPGPU
間の通信制御が挙げられる.
詳細は次の通りである. CPU
側はCUDA Application Programming Interface(
以下, API)
を用いてプログラミングを行 い, CPU
側からGPGPU
の制御を担う.
一方, GPGPU
側はCUDA C Language
を用いて プログラミングを行い, GPGPU
内で動くロジックを記述する.
これをGPU
カーネルと呼 ぶ.
また, CPU
とGPGPU
はシステム構造的にも物理的にも分離しているので, CUDA
ア プリケーションによって双方間の通信制御が行われる.
CUDA
アプリケーションによるプログラミングは,
以下のワークフロー(Fig. 2(b)
を参 照)
の通りである.
(
1
)GPU
側の計算領域を確保する.
(
2
)計算に必要なデータをCPU
からGPU
へ転送する(
3
)カーネルを呼び出す.
(
4
)転送されたデータに対してカーネルを実行する.
結果はGPU
メモリに保存される.
(
5
)計算されたデータをGPU
からCPU
へ転送する.
(
6
)GPU
側の計算領域を破棄する.
GPGPU
はFig. 2(c)
で示すGrid, Block, Thread
の3
要素で構成され,
それらの個数や 配置を含めたアーキテクチャはモデルによって異なる. Block
間の依存関係を絶ち切るこ とで, CPU
からGPGPU
への転送時間に制限をもたせているからだ.
よって, GPU
カーネ ルのプログラムを行う際は, GPGPU
のアーキテクチャを考慮しなければならない.
また,
アーキテクチャに考慮してGPGPU
プログラミングすることにより,
演算性能を高めるこ とができる.
3 GPGPU
を用いた時空間画像処理による細胞領域分 割システム本稿で紹介する細胞領域分割システムには
, 2
つ目標がある.
(
1
)時空間画像処理による細胞領域分割の精度向上.
(
2
)GPGPU
による並列処理がもたらす処理速度の高速化.
本システムの対象動画から
1
フレーム抜き出しFig. 3
に示した. Fig. 3
の欠点として,
コ ントラストが低いゆえ,
細胞領域の境界線が判別しづらいことが挙げられる.
これを解決 する方法として,
ヒストグラム平坦化を用いた画像濃度補正を行った.
詳細をFig. 4
に述 べる.
一方
,
利点として,
動画であるため,
フレーム数が多いことが挙げられる.
これを利用し,
細胞領域の分割精度を向上させる手段として,
時空間画像処理を取り入れた.
詳細をFig. 5
に述べる.
そして
, GPGPU
の並列性を活かし, (1)
に述べた細胞領域分割の処理速度の高速化に取り組んだ
.
3.1
細胞領域分割の精度向上3.1.1
ヒストグラム平坦化を用いた画像濃度補正ヒストグラム平坦化とは
,
画素値の分布が平坦(
一様)
になるように濃度値を変換する手 法のことである.
各濃度値が一様になるため,
コントラスト強調効果が得られる場合が多 い.
しかし,
ヒストグラム平坦化は画像全体のヒストグラムを用いているため,
ピクセル座 標などの位置情報が考慮されていない.
したがって,
今回の対象画像(Fig. 3)
のように,
撮 影時の比較り環境によって細胞の写り具合が異なる場合,
コントラストの差をより際立た せてしまう場合がある. Fig. 3
では,
僅かではあるが,
画像の中央部にいくほど濃度が高く(
明るく) ,
両端にいくほど濃度が低く(
暗く)
なっているためヒストグラム平坦化を行うとFig. 6
のようになり,
濃度の高い中央部分が白く抜けてしまった.
このような誤ったコントラスト強調は
,
領域分割の精度を下げる原因と成り得る.
そこで
,
画像全体のヒストグラムに変換処理を行うのではなく,
画像内のそれぞれ局所的 な範囲でヒストグラム変換を行うことで,
画像のコントラストのばらつきを抑える方法を 提案する.
局所的ヒストグラム平坦化のアルゴリズムを以下に示す
.
また,
概要をFig. 4
に示す.
(
1
)ヒストグラム平坦化を行う局所領域の大きさを指定する.
(
2
)対象画像の局所領域においてヒストグラム平坦化を行い,
処理後の画素値を記憶する.
(
3
)ヒストグラム平坦化を行う局所領域を, 1
ピクセルずつ未変換領域へ移動し(2)
の操 作を行う.
(
4
)(2)
と(3)
の操作を対象画像の全ての局所領域で適用されるまで繰り返す.
(
5
)局所領域が重なるピクセルに置いては,
それらの平均値を新しい画素値とする.
位置によってコントラストがばらついている画像でも,
局所領域ではそのばらつきが小 さいことが考えられる.
そのため,
ばらつきがちいさいそれぞれの範囲ごとでヒストグラム 変換を行うことで,
全体のコントラストを一定にすることができる.
3.1.2
時空間画像処理時空間画像処理とは
, 3
次元処理とも呼ばれる.
この場合の3
次元とは,
画像を構成する 画素のx
軸, y
軸,
そして動画の時間軸を指す.
今回の対象資料は動画であり,
フレーム数 を多く抱える.
そこで,
複数枚のフレームを重ね合わせることによって,
細胞輪郭を強調し,
その他のノイズ成分の軽減を図った.
概要をFig. 5
に示す.
重ね合わせられたフレームは,
任意の一定区間から抽出された細胞画像である.
これらの細胞画像の画素値の平均を取り,
細胞動画を再構成した.
3.2
処理速度の高速化GPU
をGPGPU
として扱うには, NVIDIA
社2
が提供するGPU
向けのC
言語の統合開 発環境であるCompute Unified Device Architecture(CUDA)
が必要となる. CUDA
の役 割として主に, CPU
とGPU
間の通信制御が挙げられる. CUDA
の処理の流れは以下の通 りである.
(
1
)GPU
側の計算領域を確保する.
(
2
)計算に必要なデータをCPU
からGPU
へ転送する(
3
)カーネルを呼び出す.
(
4
)転送されたデータに対してカーネルを実行する.
結果はGPU
メモリに保存される.
(
5
)計算されたデータをGPU
からCPU
へ転送する.
(
6
)GPU
側の計算領域を破棄する.
2
Parallel Programming and Computing Platform — NVIDIA http://www.nvidia.com/object/cuda
home new.html
4
提案システムの性能評価4.1
実験環境本システムで使用した
GPU
の概要はTable 1
の通りであり,
このGPGPU
をTable 2
の スペックを有するマシンに搭載した. GTX680
のアーキテクチャは2
の通りである.
4.2
実験結果4.2.1
画像処理の結果性能評価の際に用いたフィルタ群は以下の通りである
(Fig. 7).
(
1
)グレースケール処理(
2
)時空間画像処理(2
フレーム)
(
3
)Non Local(NL) Means
フィルタ(
4
)局所的ヒストグラム平坦化(
5
)時空間画像処理(20
フレーム)
(
6
)二値化処理まず
, (1)
で色空間の変換を行う.
今回は,
グレースケール処理を行い,
カラー成分を排除することで画像処理の高速化を図った
.
(2)
にて3.1.2
節に述べた時空間画像処理を2
フレーム行い,
軽く平均化することによりノイズ成分を除去した
.
(3)NLMeans
フィルタを用いて更にノイズ成分の除去を行った. NLMeans
フィルタとは,
適応的な重みを持つサポートウィンドウのコンボルージョンによりノイズ成分を低減させ る,
エッジキープ型のフィルタである.
その重みは,
カーネル中心まわりにサポートよりも 小さなテンプレートを作成し,
テンプレートマッチングによりサポートウィンドウ内の類 似度(
重み付きユークリッド距離, L2
ノルムのエクスポネンシャル)
を各位置ごとに求め ていく.
その類似度により,
テンプレートに似ている位置の重みを大きく,
似ていない位置 の重みは小さく設定される.
また,
類似したフィルタには,
バイラテラルフィルタがあり,
NLMeans
フィルタのテンプレートサイズが(1 x 1)
のとき,
位置の重みのないバイラテラルフィルタとなる
.
計算式は以下の通りである.
ω(p, q) = 1
Z(p) exp( − max(kv(p) − v(q)k 2 2 − 2σ 2 , 0)
h 2 ) (4.1)
Z(p, q) = ∑
q ∈ S
exp( − max(kv(p) − v(q)k 2 2 − 2σ 2 , 0)
h 2 ) (4.2)
out(p) = ∑
q ∈ S
ω(p, q)in(q) (4.3)
2
GTX 680 Kepler Whitepaper - GeForce http://www.geforce.com/Active/en US/en US/pdf/
GeForce-GTX-680-Whitepaper-FINAL.pdf
注目画素
p
に対するサポートウィンドウ内の集合S
に含まれる周辺画素q
の重みw(p, q)
は, p
付近のテンプレートから構築したベクトルv(p)
と同様のベクトルv(q)
のL2
ノルム から,
画像の不可されているであろうノイズσに応じた値で引き,
最小値が0
となるように クリップする.
それをパラメータh
に応じた値で除算したものが重みとなる.
最終的な画像
out(p)
はこの重みと入力画像in
のコンボリューションで出力される.
(4)
にて, 3.1.1
節で紹介した局所的ヒストグラム平坦化を行い,
画像全体の濃度補正を行った
.
(5)
にて,
再度,
時空間画像処理を行う.
細胞の動くことによって輪郭がぶれることを利 用し,
フレームの重ね合わせによって輪郭を太く強調する.
このときの重ね合わせるフレー ム枚数は, 20
フレームである.
(6)
最後に二値化を行う.
今回は,
二値化の閾値を求める方法として大津法を採用した.
大津法とは,
濃淡画像の輝度値ヒストグラムが地の部分と頭の部分でそれぞれ山を作ると 仮定し,
地と図のクラスの分離度が一番高くなる閾値を計算する方法である.
閾値は,
各輝 度値を閾値としたときの各クラス内の分散σ 2 W
とクラス間の分散σ B 2
からなる.
これを,
ク ラス内での分散とクラス間の分散の比σ 2 W /σ 2 B
が最小となる輝度値を計算し,
閾値とする.
以上の処理を経て
,
出力された画像をFig. 8
に示す. 4.2.2
各画像処理ごとの処理速度の比較4.2.1
で紹介した画像処理のうち, (2)
時空間画像処理(2
フレーム), (3) NLMeans
フィル タ, (4)
局所的ヒストグラム平坦化, (5)
時空間画像処理(20
フレーム)
それぞれの処理に要 した時間をFig. 9
に示す.
(2)
時空間画像処理(2
フレーム)
をCPU
で行ったときの処理時間は3.33
±0.00, GPU
のときは2.54
±0.07 [s]
であった. (3) NLMeans
フィルタの処理をCPU
で行ったときの 処理時間は89.7
±0.06 [s], GPGPU
のときは8.77
±0.07 [s]
であった. (4)
局所的ヒスト グラム平坦化の処理をCPU
で行ったときの処理時間は121
±0.00 [s], GPGPU
のときは2345
±0.17 [s]
であった. (5)
時空間画像処理(20
フレーム)
をCPU
で行ったときの処理時 間は3.09
±0.00, GPU
のときは2.63
±0.07 [s]
であった. (2), (3), (5)
においてはGPGPU
の利用による処理時間の減少が認められた.
一方, (4)
の局所的ヒストグラム平坦化では,
GPGPU
において処理時間の増加が見られた.
4.2.3
処理速度の比較1
フレームあたりに要した処理時間の結果をFig. 10
に示す. Fig. 7
の全行程をGPGPU
で行った場合, CPU
の処理時間が2.12
±0.13 [s], GPU
の処理時間が25.3
±0.35 [s]
となっ た.
その処理時間はCPU
の処理時間よりも遥かに上回る結果となった.
各処理ごとの処理 時間を調査したところ, GPGPU
で局所的ヒストグラム平坦化を実行した際,
大きなオーバ ヘッドが発生することが判明した.
これが, CPU
よりも処理速度が低下する原因であると考 えられる.
そこで,
局所的ヒストグラム平坦化をCPU
で行い,
それ以外の処理をGPGPU
で行ったところ(GPGPU’), CPU
のみの処理よりも処理時間が削減されることが明らかと なった.
5
考察GPU
で局所的ヒストグラム平坦化を行った際の, CPU
とGPU
の処理記録を調査したと ころ,
平坦化の対象領域を4pixel
ずつ移動させるごとに, Fig. 11
の処理が行われているこ とが判明した.
この処理の問題点は,
平坦化領域の決定と平坦化処理の命令がともにCPU
側から行われていることにある.
このため, GPU
で処理する際に特有の命令の変換や, GPU
上での新たなメモリの確保,
スレッドの同期処理など,
各種オーバヘッドが発生し,
処理効 率を低下させる原因となっていた.
また,
頻繁にCPU
とGPGPU
との通信が行われるため
, GPGPU
最大の利点である並列処理が行われおらず,
シングルスレッドで処理されていたと考えられる
.
本来,
局所的ヒストグラム平坦化は,
並列化に向いた処理であると考えら れる.
なぜなら,
個々の対象領域の画素値処理が独立しているからだ.
したがって,
局所ヒ ストグラム平坦化処理のパフォーマンス最大限に向上させるには,
無用なオーバヘッドを 極力発生させないことが,
求められることが明らかとなった.
6
結論以前より
,
細胞を培養する際の画像処理を用いた品質評価手法として,
細胞領域の分割手 法に関する研究が取り組まれてきた.
これに加え,
顕微鏡技術の向上に伴い,
細胞を生きた まま観測できる環境が整いつつある.
このような状況下において,
細胞領域分割処理の研 究は,
静止画の域を越え,
動画像への対応が求められている.
しかし,
動画像は静止画の集 合体であり,
そのデータ量は膨大である.
そこで,
効率よく領域分割処理する方策として, GPU
に搭載されている大量のコア群に着目した.
細胞領域分割を行うためのフィルタ処理 をGPU
が担い,
その他の処理をCPU
が担うシステムを構築し, GPU
の処理性能の検討を 行った.
細胞領域分割するための画像処理として, (1)
グレースケール処理, (2)
時空間画 像処理(2
フレーム), (3) NLMeans
フィルタ, (4)
局所的ヒストグラム平坦化, (5)
時空間 画像処理(20
フレーム), (6)
二値化を行った.
結果,
局所的ヒストグラム平坦化を除くすべ ての画像処理, GPGPU
による処理速度の削減が見受けられた.
局所的ヒストグラム平坦化の際
, GPGPU
のパーフォーマンスが向上しなかった理由として,
平坦化領域の決定と平坦化処理の命令がともに
CPU
側から行われていたことが考えられる.
したがって,
頻繁にCPU
とGPGPU
との通信が行われるため, GPGPU
最大の利点である並列処理が行われおらず
,
シングルスレッドで処理されていたと考えられる. GPGPU
パフォーマンス最大限に 向上させるには,
無用なオーバヘッドを極力発生させないことが,
求められることが明らか となった.
謝辞
私が本研究室に配属されてからの
3
年間,
同志社大学生命医学部の廣安知之教授,
誠に深 く感謝申し上げます.
また,
様々な指摘,
助言をして下さいました,
同志社大学生命医学部 の山本詩子助教,
同志社大学理工学部の田中美里特任助教,
そして,
昨年度に退職されまし た同志社大学生命医学部の横内久猛教授に心より感謝致します.
日頃から研究ミーティングにて多く議論して頂いた医療システム班の西村祐二さん
,
松浦 秀行さん,
三島康平さん,
伊藤悟さん,
竹中誠人さん,
堀真弓さんに御礼申し上げます.
特に 三島康平さんとは互いにコーチングをし合う関係であり,
研究に関するあらゆる場面で助け 合ってきました.
今では,
私の研究に対する一番の良き理解者です.
ありがとうございまし た.
三島康平さんの研究活動が更なる発展を向かえられるよう,
心より応援しております.
そして
,
同級生の西村祐二さん,
松浦秀行さんからは,
システム研究に関する様々な基礎 知識を教えて頂きました.
修士課程よりシステム研究を始めた私は当初,
大変知識が乏し く,
お二人の的確なご助言に大変救われました.
また,
画像処理プログラムを作成するにあ たって,
澤田淳二さん,
関谷駿介さんにはから多大なご指導,
ご助言を頂きました.
お忙し いなかにも関わらず,
非常に丁寧なご指導を頂いた折には,
感謝の言葉も見つからないほど でございます.
また
,
先にご卒業された藤井亮助さんには,
昨年度の一年間,
多大なるご指導頂き心より 感謝申し上げます.
そして,
本論文を校正してくださいました三島康平さん,
杉田出弥さん に御礼申し上げます.
お忙しい中,
ご無理をお願いしたにも関わらず丁寧な校正をして頂き 感謝しております.
最後に
,
医療情報システム研究室の皆様には私の研究に関して数多くの議論や助言を頂 きました.
皆様のおかげで, 3
年間すばらしい研究生活を送ることができました.
そして,
私 生活において私を支えてくださった家族,
友人にも感謝申し上げます.
この場を借りて厚く 御礼申し上げます.
ありがとうございました.
付 図
1 Comparison between Fermi and Kepler architecture . . . . 1
2 About CUDA application . . . . 2
3 Original cell image . . . . 3
4 Local histogram equalization . . . . 3
5 Working flow of spatio-temporal image processing . . . . 3
6 Overall histogram equalization . . . . 3
7 Sequence of image processing . . . . 4
8 Result image . . . . 4
9 Processing Speed of each filter process . . . . 4
10 Processing Speed . . . . 5
11 Processing sequence of local histogram equalization on GPU . . . . 5
付 表