Comments
Description
Transcript
GPGPUを用いた時空間画像処理による 細胞領域分割システムの 精度
修士論文 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 spatiotemporal image processing system using General-Purpose computing on Graphics Processing 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 GPGPU を用いた時空間画像処理による細胞領域分割システム 5 3.1 細胞領域分割の精度向上 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2 処理速度の高速化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 提案システムの性能評価 7 4.1 実験環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.2 実験結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 5 考察 9 6 結論 10 3 4 序論 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 1 GPGPU による並列処理 2 本章では, GPU の内部構造を説明するとともに, GPGPU として高い並列性を実現する 原理について紹介する. 2.1 シングルコア CPU の性能向上の限界 CPU の性能は, プロセッサ上に搭載されるトランジスタの数に左右され, 個々のトラン ジスタのサイズを小さくし, 単位面積あたりの搭載数を増やすことで演算性能を向上させ てきた. すなわち, 集積密度の増加は CPU の性能向上に置き換えることができる. 単位面 積あたりのトランジスタ数は 18ヶ月ごとに倍になるという経験則から, CPU の性能は 2.1 式のような向上を見せていた. これをムーアの法則と呼ぶ. n p = 2 1.5 (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 言語の統合開発 2 環境である Compute Unified Device Architecture (CUDA) を発表した. CUDA の登場以 降, CUDA を実行するために適した環境作りが, ハードウェアレベルで始まり, Fermi アー キテクチャが開発された. 2.3 2.3.1 GPGPU 向け GPU アーキテクチャ 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) となる. 3 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 プログラミングすることにより, 演算性能を高めるこ とができる. 4 GPGPU を用いた時空間画像処理による細胞領域分 3 割システム 本稿で紹介する細胞領域分割システムには, 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 (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 6 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) のとき, 位置の重みのないバイラテラ ルフィルタとなる. 計算式は以下の通りである. 1 max(kv(p) − v(q)k22 − 2σ 2 , 0) exp(− ) Z(p) h2 ∑ max(kv(p) − v(q)k22 − 2σ 2 , 0) Z(p, q) = exp(− ) h2 q∈S ∑ out(p) = ω(p, q)in(q) ω(p, q) = (4.1) (4.2) (4.3) q∈S 2 GTX 680 Kepler Whitepaper - GeForce http://www.geforce.com/Active/en US/en US/pdf/ GeForce-GTX-680-Whitepaper-FINAL.pdf 7 注目画素 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 とクラス間の分散 σ 2 からなる. これを, ク 度値を閾値としたときの各クラス内の分散 σW B 2 /σ 2 が最小となる輝度値を計算し, 閾値とする. ラス内での分散とクラス間の分散の比 σW 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 のみの処理よりも処理時間が削減されることが明らかと なった. 8 5 考察 GPU で局所的ヒストグラム平坦化を行った際の, CPU と GPU の処理記録を調査したと ころ, 平坦化の対象領域を 4pixel ずつ移動させるごとに, Fig. 11 の処理が行われているこ とが判明した. この処理の問題点は, 平坦化領域の決定と平坦化処理の命令がともに CPU 側から行われていることにある. このため, GPU で処理する際に特有の命令の変換や, GPU 上での新たなメモリの確保, スレッドの同期処理など, 各種オーバヘッドが発生し, 処理効 率を低下させる原因となっていた. また, 頻繁に CPU と GPGPU との通信が行われるた め, GPGPU 最大の利点である並列処理が行われおらず, シングルスレッドで処理されてい たと考えられる. 本来, 局所的ヒストグラム平坦化は, 並列化に向いた処理であると考えら れる. なぜなら, 個々の対象領域の画素値処理が独立しているからだ. したがって, 局所ヒ ストグラム平坦化処理のパフォーマンス最大限に向上させるには, 無用なオーバヘッドを 極力発生させないことが, 求められることが明らかとなった. 9 6 結論 以前より, 細胞を培養する際の画像処理を用いた品質評価手法として, 細胞領域の分割手 法に関する研究が取り組まれてきた. これに加え, 顕微鏡技術の向上に伴い, 細胞を生きた まま観測できる環境が整いつつある. このような状況下において, 細胞領域分割処理の研 究は, 静止画の域を越え, 動画像への対応が求められている. しかし, 動画像は静止画の集 合体であり, そのデータ量は膨大である. そこで, 効率よく領域分割処理する方策として, GPU に搭載されている大量のコア群に着目した. 細胞領域分割を行うためのフィルタ処理 を GPU が担い, その他の処理を CPU が担うシステムを構築し, GPU の処理性能の検討を 行った. 細胞領域分割するための画像処理として, (1) グレースケール処理, (2) 時空間画 像処理 (2 フレーム), (3) NLMeans フィルタ, (4) 局所的ヒストグラム平坦化, (5) 時空間 画像処理 (20 フレーム), (6) 二値化を行った. 結果, 局所的ヒストグラム平坦化を除くすべ ての画像処理, GPGPU による処理速度の削減が見受けられた. 局所的ヒストグラム平坦 化の際, GPGPU のパーフォーマンスが向上しなかった理由として, 平坦化領域の決定と平 坦化処理の命令がともに CPU 側から行われていたことが考えられる. したがって, 頻繁に CPU と GPGPU との通信が行われるため, GPGPU 最大の利点である並列処理が行われお らず, シングルスレッドで処理されていたと考えられる. GPGPU パフォーマンス最大限に 向上させるには, 無用なオーバヘッドを極力発生させないことが, 求められることが明らか となった. 10 謝辞 私が本研究室に配属されてからの 3 年間, 同志社大学生命医学部の廣安知之教授, 誠に深 く感謝申し上げます. また, 様々な指摘, 助言をして下さいました, 同志社大学生命医学部 の山本詩子助教, 同志社大学理工学部の田中美里特任助教, そして, 昨年度に退職されまし た同志社大学生命医学部の横内久猛教授に心より感謝致します. 日頃から研究ミーティングにて多く議論して頂いた医療システム班の西村祐二さん, 松浦 秀行さん, 三島康平さん, 伊藤悟さん, 竹中誠人さん, 堀真弓さんに御礼申し上げます. 特に 三島康平さんとは互いにコーチングをし合う関係であり, 研究に関するあらゆる場面で助け 合ってきました. 今では, 私の研究に対する一番の良き理解者です. ありがとうございまし た. 三島康平さんの研究活動が更なる発展を向かえられるよう, 心より応援しております. そして, 同級生の西村祐二さん, 松浦秀行さんからは, システム研究に関する様々な基礎 知識を教えて頂きました. 修士課程よりシステム研究を始めた私は当初, 大変知識が乏し く, お二人の的確なご助言に大変救われました. また, 画像処理プログラムを作成するにあ たって, 澤田淳二さん, 関谷駿介さんにはから多大なご指導, ご助言を頂きました. お忙し いなかにも関わらず, 非常に丁寧なご指導を頂いた折には, 感謝の言葉も見つからないほど でございます. また, 先にご卒業された藤井亮助さんには, 昨年度の一年間, 多大なるご指導頂き心より 感謝申し上げます. そして, 本論文を校正してくださいました三島康平さん, 杉田出弥さん に御礼申し上げます. お忙しい中, ご無理をお願いしたにも関わらず丁寧な校正をして頂き 感謝しております. 最後に, 医療情報システム研究室の皆様には私の研究に関して数多くの議論や助言を頂 きました. 皆様のおかげで, 3 年間すばらしい研究生活を送ることができました. そして, 私 生活において私を支えてくださった家族, 友人にも感謝申し上げます. この場を借りて厚く 御礼申し上げます. ありがとうございました. 11 付図 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 1 Specification of NVIDIA GRID K2 . . . . . . . . . . . . . . . . . . . . . . 1 2 Specification of the machine . . . . . . . . . . . . . . . . . . . . . . . . . . 1 付表 Fig. 1 Comparison between Fermi and Kepler architecture Table 1 Specification of NVIDIA GRID K2 GPU GTX680 x2 processor cores 1,536 clock rate [MHz] 745 global memory [Kbyte] 4 memory clock rate [KHz] 2.5 shared memory [Kbyte/block] 48 L1 cashe [Kbyte] 64 L2 cashe [Kbyte] 512 Table 2 Specification of the machine OS OS version memory [GB] processor clock rate [GHz] Microsoft Windows 7 Enterprise 6.1.7601 Service Pack 1 16.38 c R IntelXeon CPU E5-2680 v2 2.8 1 (a) CUDA Application (b) CUDA Programming Work flow (c) GPU Architecture Fig. 2 About CUDA application 2 Fig. 3 Original cell image Fig. 4 Local histogram equalization Fig. 5 Working flow of spatio-temporal image processing Fig. 6 Overall histogram equalization 3 Fig. 7 Sequence of image processing Fig. 8 Result image (a) Processing Speed of each filter process (b) Core Occupation of GPU (c) Core Occupation of GPU (d) Core Occupation of GPU Fig. 9 Processing Speed of each filter process 4 Fig. 10 Processing Speed Fig. 11 Processing sequence of local histogram equalization on GPU 5