以下、骨構造輪郭抽出装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、鎖骨の形状の特徴を利用して、胸部透過画像から鎖骨の輪郭を検知する骨構造輪郭抽出装置について説明する。なお、鎖骨の形状の特徴は、例えば、特定の範囲(例えば、90~150度)の傾きのある直線を含む、という性質である。
また、本実施の形態において、肋骨の形状の特徴を利用して、胸部透過画像から肋骨の輪郭を検知する骨構造輪郭抽出装置について説明する。なお、肋骨の形状の特徴は、例えば、肋骨の太さは比較的均一である、という性質である。
さらに、本実施の形態において、胸部透過画像から肺野部を決定し、当該肺野部から骨部を検知する骨構造輪郭抽出装置について説明する。
なお、本明細書において、情報Xが情報Yに対応付いていることは、情報Xから情報Yを取得できること、または情報Yから情報Xを取得できることであり、その対応付けの方法は問わない。情報Xと情報Yとがリンク付いていても良いし、同じバッファに存在していても良いし、情報Xが情報Yに含まれていても良いし、情報Yが情報Xに含まれている等でも良い。
図1は、本実施の形態における骨構造輪郭抽出装置Aのブロック図である。骨構造輪郭抽出装置Aは、格納部1、受付部2、処理部3、および出力部4を備える。格納部1は、画像格納部11を備える。処理部3は、肺野部検出部31、鎖骨線取得部32、および肋骨線取得部33を備える。鎖骨線取得部32は、候補直線検出手段321、部分直線検出手段322、鎖骨延伸手段323、および第二鎖骨線検出手段324を備える。肋骨線取得部33は、肋骨線取得手段331、および補正手段332を備える。出力部4は、鎖骨線出力部41、および肋骨線出力部42を備える。
格納部1には、各種の情報が格納される。各種の情報は、例えば、後述する胸部透過画像、後述する角度情報、後述する各種の条件である。
画像格納部11には、胸部透過画像が格納される。胸部透過画像とは、人体の胸部を撮影した透過画像である。胸部透過画像は、通常、胸部を正面から撮影した画像である。胸部透過画像は、例えば、胸部レントゲン(X線)画像や、胸部のMRI(magnetic resonance imaging)画像や、胸部の超音波検査画像である。ここでの胸部透過画像は、複数の画素で構成されるデジタル画像である。胸部透過画像のデータ構造やファイル形式等は問わない。胸部透過画像は、通常、グレースケール画像であるが、カラー画像であってもよい。胸部透過画像のサイズや形状、画素数、色深度等は問わない。胸部透過画像は、通常、静止画像であるが、動画像であってもよい。
受付部2は、各種の指示や情報を受け付ける。各種の指示や情報は、例えば、開始指示、胸部透過画像である。開始指示とは、骨構造輪郭抽出装置Aの処理の開始の指示である。
各種の指示や情報の入力手段は、タッチパネルやキーボードやマウスやメニュー画面によるもの等、何でも良い。
処理部3は、各種の処理を行う。各種の処理は、例えば、肺野部検出部31、鎖骨線取得部32、肋骨線取得部33が行う処理である。各種の処理は、例えば、受付部2が受け付けた胸部透過画像を画像格納部11に蓄積する処理である。
処理部3は、例えば、胸部透過画像の中に鎖骨線および肋骨線が明示された画像を構成する。なお、処理部3は、鎖骨線取得部32が取得した鎖骨線の情報を用いて、鎖骨線が明示された画像を構成する。処理部3は、肋骨線取得部33が取得した肋骨線の情報を用いて、肋骨線が明示された画像を構成する。
肺野部検出部31は、画像格納部11の胸部透過画像を解析し、肺野部を検出する。肺野部検出部31が行う処理は、例えば、特願2020-137637において記載されている処理である。
鎖骨線取得部32は、胸部透過画像を用いて、下方鎖骨線と上方鎖骨線とを取得する。胸部透過画像を用いることは、肺野部検出部31により、胸部透過画像から検出された肺野部の領域の画像を用いることでも良い。また、下方鎖骨線とは、鎖骨の下方の境界線である。下方鎖骨線とは、鎖骨の下方の境界線を特定する情報でも良い。上方鎖骨線とは、鎖骨の上方の境界線である。上方鎖骨線とは、鎖骨の上方の境界線を特定する情報でも良い。境界線を特定する情報は、例えば、2以上の点(x、y)の情報の集合である。境界線を特定する情報は、例えば、直線を規定する情報の集合でも良い。つまり、下方鎖骨線と上方鎖骨線のデータ構造は問わない。点(x、y)は、例えば、胸部透過画像の中の相対的な座標値である。点(x、y)は、胸部透過画像から検出された肺野部の領域の中の相対的な座標値等でも良い。下方鎖骨線と上方鎖骨線とを区別しない時、または下方鎖骨線と上方鎖骨線とを含める時には、単に、鎖骨線という。
なお、本明細書における座標値は、通常、胸部透過画像の左上を原点(0,0)とし、下側に行くほどY座標値が大きくなり、右側に行くほどX座標値が大きくなる、とする。
鎖骨線取得部32が鎖骨線を取得することは、鎖骨線を特定する情報を取得することである。鎖骨線を特定する情報を取得することは、通常、鎖骨線を特定する2以上の画素の座標値を取得することである。
鎖骨線取得部32は、肺野部検出部31が胸部透過画像から検出した肺野部から、下方鎖骨線と上方鎖骨線とを取得することは好適である。
鎖骨線取得部32は、候補直線検出手段321、部分直線検出手段322、鎖骨延伸手段323、第二鎖骨線検出手段324により、下方鎖骨線と上方鎖骨線とを取得することは好適である。
候補直線検出手段321は、胸部透過画像を解析し、1または2以上の候補直線を検出する。候補直線とは、鎖骨線の候補となる線である。
候補直線検出手段321は、画像から直線を取得する技術を用いて、胸部透過画像から1以上の候補直線を検出する。画像から直線を取得する技術は、例えば、Hough変換(例えば、「URL: https://cvml-expertguide.net/terms/cv/image-feature-detection/hough-transform/」を参照)、マルチスケールHough変換、確率的Hough変換、LSD (Line Segment Detector)(例えば、「URL:https://data-analysis-stats.jp/python/%e3%83%8f%e3%83%95%e5%a4%89%e6%8f%9b%e3%81%a8lsd%e3%81%ab%e3%82%88%e3%82%8b%e7%9b%b4%e7%b7%9a%e6%a4%9c%e5%87%ba%e3%81%ae%e6%af%94%e8%bc%83/」を参照)等があり、候補直線検出手段321が利用する技術は問わない。なお、Hough変換は、ハフ変換と言っても良い。
部分直線検出手段322は、胸部透過画像の中の鎖骨線領域条件に合致する範囲の画素の中で最高画素値の画素を検知する。鎖骨線領域条件は、鎖骨線が存在し得る領域を特定する情報である。鎖骨線が存在し得る領域は、例えば、肺野部の上方25%以内であり、かつ肺野部の外側の60%以内の範囲である。なお、鎖骨線領域条件の内容は問わない。また、胸部透過画像において、鎖骨と肋骨が交差する領域に、通常、最高の画素値を有する画素が存在すると考えられる。従って、上方鎖骨線と下方鎖骨線との間に最高画素値の画素が位置する。この特性を利用するために、部分直線検出手段322は、最高画素値の画素を検知する。
次に、部分直線検出手段322は、下方鎖骨線の部分直線を検出する場合に、1以上の候補直線のうち、鎖骨傾き条件に合致し、かつ当該最高画素値の画素に最も距離が近く、当該最高画素値の画素の下の位置に存在する候補直線を決定する。かかる候補直線は下方鎖骨線の部分直線である。鎖骨傾き条件は、鎖骨線を構成する部分直線の傾きに関する条件である。鎖骨傾き条件は、例えば、鎖骨線を構成する部分直線の傾きの範囲である。右肺では、鎖骨傾き条件は、例えば、90~150度である。なお、ここでは、胸部透過画像の上を0度、右が90度、下が180度である、とする。また、かかる処理は、鎖骨の内部の画素が外部の画素よりも画素値が大きいことを利用した処理である。
なお、部分直線検出手段322が、仮に、上方鎖骨線の部分直線を検出する場合に、1以上の候補直線のうち、当該最高画素値の画素に最も距離が近く、当該最高画素値の画素の上の位置に存在する候補直線を決定する。かかる候補直線は上方鎖骨線の部分直線である。
また、部分直線検出手段322は、下方鎖骨線の部分直線、上方鎖骨線の部分直線のうちのどちらか一方の部分直線を検出することは好適である。また、さらに、部分直線検出手段322は、下方鎖骨線の部分直線を検出することは好適である。
なお、部分直線検出手段322が、鎖骨線領域条件に合致する範囲の画素の中で最高画素値の画素を2以上、検知した場合、例えば、以下のように処理を行う。つまり、部分直線検出手段322は、例えば、予め決められた狭い範囲の中で、2以上の最高画素値の画素を検出し、当該画素のうちの一の画素に最も距離が近く、当該最高画素値の画素の下の位置に存在する候補直線を、下方鎖骨線の部分直線として決定する。または、部分直線検出手段322は、例えば、予め決められた狭い範囲の中で、2以上の最高画素値の画素を検出し、当該画素のうちの一の画素に最も距離が近く、当該最高画素値の画素の上の位置に存在する候補直線を、上方鎖骨線の部分直線として決定する。なお、予め決められた狭い範囲は、例えば、X座標の範囲が10、Y座標の範囲が5である。なお、かかる予め決められた狭い範囲で最高画素値の2以上の画素を検知することは、複数の最高画素値の画素が検出された場合、正しい鎖骨の上の最大画素値が物理的に近接していることが多い、という性質を利用したものである。
鎖骨延伸手段323は、部分直線の端点から伸ばした下方鎖骨線、または部分直線の端点から伸ばした上方鎖骨線を検出する。鎖骨延伸手段323は、例えば、部分直線の2つの各端点を伸ばした下方鎖骨線、または部分直線の2つの各端点を伸ばした上方鎖骨線を検出する。
鎖骨延伸手段323は、通常、部分直線の端点から、停止条件に合致するまで、部分直線を伸ばした下方鎖骨線または上方鎖骨線を検出する。停止条件とは、部分直線を伸ばす処理を停止するための条件である。停止条件は、例えば、胸部透過画像または肺野部の、予め決められたX軸の範囲の点まで伸ばしたことである。予め決められたX軸の範囲の点は、胸部透過画像または肺野部の端の点、胸部透過画像または肺野部の予め決められたX軸の範囲の端の点である。停止条件は、例えば、下方鎖骨線または上方鎖骨線の長さが閾値以上になったことである。
さらに具体的には、鎖骨延伸手段323は、例えば、以下の(1)(2)(3)のようにして下方鎖骨線を検出する。なお、鎖骨延伸手段323は、先に下方鎖骨線を検出することは好適である。鎖骨の上端は肺尖部の構造と重なるので下端の方がより検出が容易だからである。
(1)鎖骨延伸手段323は、部分直線を伸ばす1または2以上の各候補点の中から、候補点の上方の画素の画素値と候補点の画素値との差異である上方差異と、候補点の画素値と候補点の下方の画素の画素値との差異である下方差異とを算出する。
上方差異は、候補点(x,y)に対して、例えば、「上方差異=画素値(x,y-1)-画素値(x,y)」である。下方差異は、候補点(x,y)に対して、例えば、「下方差異=画素値(x,y)-画素値(x,y+1)」である。なお、候補点の上方の画素とは、通常、候補点の1つ上の画素であるが、2以上、上の画素でも良い。候補点の下方画素とは、通常、候補点の1つ下の画素であるが、2以上、下の画素でも良い。
また、部分直線を伸ばす候補点とは、基準点のXの値との差異が1の点(横の点)のうち、着目点のYの値との差異が閾値(例えば、1または2)以内の点である。基準点とは、部分直線の端点、または確定した直線の点のうちの端点である。また、鎖骨延伸手段323は、鎖骨線を構成する画素が確定した場合、当該画素を基準点として、部分直線を伸ばす1または2以上の各候補点に対して、上方差異と下方差異とを算出する。
そして、鎖骨延伸手段323は、上方差異と下方差異のうち、絶対値の大きい方を、当該候補値のシグナル差分map1値として採用する。なお、シグナル差分map1値は、着目する画素(候補値に対応する画素)が鎖骨または肋骨の境界線を構成する画素であるか否かを判断する場合に使用される情報である。
(2)鎖骨延伸手段323は、1以上の各候補点に対して、上方代表値と下方代表値とを算出する。なお、上方代表値は、当該候補点の上方の2以上の画素の画素値の代表値(例えば、合計、平均値)である。下方代表値は、当該候補点の下方の2以上の画素の画素値の代表値(例えば、合計、平均値)である。
鎖骨延伸手段323は、例えば、候補点(x,y)に対して、例えば、「上方代表値=画素値(x,y-3)+画素値(x,y-4)+画素値(x、y-5)」、「下方代表値=画素値(x,y+3)+画素値(x,y+4)+画素値(x、y+5)」により、上方代表値と下方代表値とを算出する。なお、上方代表値の算出において、候補点の上側の2以上の画素の画素値の傾向が出れば良く、選択する画素、選択する画素の数は、いくつか考えられる。また、下方代表値の算出において、候補点の下側の2以上の画素の画素値の傾向が出れば良く、選択する画素、選択する画素の数は、いくつか考えられる。
次に、鎖骨延伸手段323は、上方代表値と下方代表値との差異を算出する。なお、候補点の上方の2以上の画素は、候補点より上の2以上の画素である。また、候補点の下方の2以上の画素は、候補点より下の2以上の画素である。かかる差異を、当該候補値のシグナル差分map2値とする。シグナル差分map2値は、着目する画素(候補値に対応する画素)の上方の画素値の傾向と下方の画素値の傾向との差異に関する情報であり、鎖骨または肋骨の境界線を構成する画素であるか否かを判断する場合に使用することができる情報である。
(3)鎖骨延伸手段323は、シグナル差分map1値が閾値(例えば、7)以上であり、かつシグナル差分map2値が閾値(例えば、0)以上である候補点を選択する。
そして、鎖骨延伸手段323は、当該候補点を、下方鎖骨線を構成する点として採用し、下方鎖骨線を検出する。
鎖骨延伸手段323は、部分直線の端点からX方向に一つ進めた点のうち、端点に対して、Y方向に閾値(例えば、2)以内の変化しかない1以上の候補点を選択し、1以上の各候補点の中から、下方鎖骨線を構成する点として採用することは好適である。つまり、直線を伸ばす場合に、最初に候補点を絞り込むことは好適である。
鎖骨延伸手段323は、部分直線の傾きを考慮して基準候補点を選択し、1以上の各候補点と基準候補点とのY座標値の差異を算出し、当該差異を用いて、1以上の各候補点のスコアを取得し、スコアが最良の候補点を下方鎖骨線を構成する点として採用することは好適である。
鎖骨延伸手段323は、1以上の各候補点と基準候補点とのY座標値の差異をパラメータとする増加関数によりスコアを算出し、当該スコアが最小の候補点を下方鎖骨線または上方鎖骨線を構成する点として採用することは好適である。
鎖骨延伸手段323は、上述した通り、下方鎖骨線から決定することは好適である。そして、鎖骨延伸手段323は、例えば、周辺画素のシグナル差分map1値の最大値(α)と候補点のシグナル差分map1値との差をパラメータとする増加関数によりスコアを算出することは好適である。鎖骨延伸手段323は、例えば、基準候補点のY座標値と候補点のY座標値との差をパラメータとする増加関数によりスコアを算出することは好適である。なお、基準候補点のY座標値とは、直線の傾きを用いたY座標値である。
鎖骨延伸手段323は、例えば、演算式「スコア={α-シグナル差分map1の値}2+{基準候補点のY座標値-候補点のY座標値}2」により、スコアを算出し、当該スコアが最小の候補点を、下方鎖骨線を構成する点として採用することは好適である。
なお、上記演算式を構成する変数αは、上側の閾値の数の画素のシグナル差分map1値、および下側の閾値の数の画素のシグナル差分map1値のうちの最大値である。また、鎖骨線の内側と外側とで、αを取得する画素を異なる範囲としても良い。確定している鎖骨線の左端の座標(外側端)を(X1,Y1)、右端の座標(内側端)を(X2,Y2)とすると、鎖骨延伸手段323は、例えば、αを算出するための外側の探索では(Y1-3,X1-1),(Y1-2,X1-1),(Y1-1,X1-1),(Y1,X1-1),(Y1+1,X1-1)の5つの画素のシグナル差分map1値のうちの最大のシグナル差分map1値をαとする。また、鎖骨延伸手段323は、例えば、αを算出するための内側の探索では(Y2-1,X2+1),(Y2,X2+1),(Y2+1,X2+1),(Y2+2,X2+1),(Y2+3,X2+1)の5つの画素のシグナル差分map1値のうちの最大のシグナル差分 map1値をαとする。
なお、直線の傾きを用いたY座標値とは、例えば、鎖骨線を構成する確定した点であり、評価対象の点からの距離が閾値以内の点のY座標値を用いた傾きに基づくY座標値である。
また、上において、鎖骨延伸手段323は、下方鎖骨線を取得する処理を行った。しかし、鎖骨延伸手段323は、同様のアルゴリズムで、上方鎖骨線を取得しても良い。
第二鎖骨線検出手段324は、鎖骨延伸手段323が取得した鎖骨線(例えば、下方鎖骨線)を構成する各点に対して、鎖骨幅条件を満たす反対側の境界点を検出し、当該境界点を含む鎖骨線(例えば、上方鎖骨線)を検出する。
第二鎖骨線検出手段324は、鎖骨延伸手段323が決定した下方鎖骨線に対して、鎖骨幅条件を満たす反対側の境界点を検出し、当該境界点を含む上方鎖骨線を検出することは好適である。
なお、鎖骨幅条件とは、鎖骨の幅(太さ)の条件である。鎖骨幅条件は、通常、鎖骨の幅(太さ)の範囲である。鎖骨幅条件は、例えば、11から36ピクセルである。
第二鎖骨線検出手段324は、上方鎖骨線について、上述したアルゴリズムで検出することが好適であるが、検出が完了している下方鎖骨線に対して、鎖骨幅条件を満たす反対側の2以上の境界候補点を検出し、当該2以上の各境界候補点に対して、以下のような処理を行い、上方鎖骨線を構成する画素を決定することは好適である。
つまり、第二鎖骨線検出手段324は、例えば、2以上の各境界候補点のシグナル差分map1値、シグナル差分map2値を算出する。次に、第二鎖骨線検出手段324は、例えば、2以上の境界候補点のうち、シグナル差分map1値が条件(例えば、最大)を満たす点を、上方鎖骨線を構成する点として採用しても良い。また、第二鎖骨線検出手段324は、例えば、2以上の境界候補点のうち、シグナル差分map1値が条件(例えば、閾値以上)を満たし、かつシグナル差分map2値が条件(例えば、最大)を満たす点を、上方鎖骨線を構成する点として採用しても良い。
肋骨線取得部33は、胸部透過画像を解析し、肋骨の下方の境界線である下方肋骨線と肋骨の上方の境界線である上方肋骨線とを取得する。なお、胸部透過画像を解析することは、胸部透過画像を構成する肺野部の画像を解析することでも良い。
肋骨線取得部33は、肺野部検出部31が胸部透過画像から検出した肺野部から、下方肋骨線と上方肋骨線とを取得することは好適である。
肋骨線取得部33は、下方肋骨線を構成する画素および上方肋骨線を構成する画素を決定する場合に、胸部透過画像の外側の画素から決定していくことは好適である。
肋骨線取得部33は、例えば、肋骨線取得手段331、および補正手段332により、下方肋骨線と上方肋骨線とを取得することは好適である。
肋骨線取得手段331は、胸部透過画像を構成する1以上の各画素であり、1以上の各画素について、上方代表値と下方代表値とを取得する。次に、肋骨線取得手段331は、当該1以上の各画素について、上方代表値と下方代表値との差である代表差異値を取得する。なお、胸部透過画像を構成する画素の範囲は、肺野部の範囲であることは好適である。
次に、肋骨線取得手段331は、同じX座標値の画素の代表差異値の中で、最大条件を満たす2以上の画素を決定する。なお、最大条件とは、同じX座標値の周辺の画素の中で、極大値に対応する画素であることである。そして、肋骨線取得手段331は、当該極大値に対応する画素を、下方肋骨線を構成する画素とする。
また、肋骨線取得手段331は、同じX座標値の画素の代表差異値の中で、最小条件を満たす2以上の画素を決定する。なお、最小条件とは、同じX座標値の周辺の画素の中で、極小値に対応する画素であることである。そして、肋骨線取得手段331は、当該極小値に対応する画素を、上方肋骨線を構成する画素とする。
そして、肋骨線取得手段331は、X軸方向に探索する範囲を1画素ずつずらしながら、最大条件を満たす2以上の画素を決定していく。かかる画素は、下方肋骨線を構成する画素となる。また、肋骨線取得手段331は、X軸方向に探索する範囲を1画素ずつずらしながら、最小条件を満たす2以上の画素を決定していく。かかる画素は、上方肋骨線を構成する画素となる。
なお、上述したように、肋骨線取得手段331は、例えば、「代表差異値=上方代表値-下方代表値」を算出する。肋骨線取得手段331は、例えば、着目する画素ごとに、「代表差異値(加重平均値の差)=(上方の加重平均値)-(下方の加重平均値)」を算出する。なお、代表差異値が大きいほど、注目している画素の上方に大きな信号値(白い部分)があり、逆に小さいほど注目している画素の下方に大きな信号値(白い部分)があることになる。
上方代表値とは、着目する画素の上方の画素の画素値の傾向を示す値である。上方代表値は、例えば、着目する画素の上方の2以上の画素の画素値の加重平均値である。上方代表値は、例えば、着目する画素(x,y)に対して、「上方代表値=(画素値(x,y-1)×5+画素値(x,y-2)×4+画素値(x,y-3)×3+画素値(x,y-4)×2+画素値(x,y-5)×1)/(5+4+3+2+1)」である。なお、かかる演算式において、使用する画素数は5であるが、使用する画素数は4、3、6等の他の画素数でも良い。また、かかる演算式は、加重平均値を算出する式であることは好適であるが、平均値を算出する式等でも良い。
下方代表値とは、着目する画素の下方の画素の画素値の傾向を示す値である。下方代表値は、例えば、着目する画素の下方の2以上の画素の画素値の加重平均値である。下方代表値は、例えば、着目する画素(x,y)に対して、「下方代表値=(画素値(x,y+1)×5+画素値(x,y+2)×4+画素値(x,y+3)×3+画素値(x,y+4)×2+画素値(x,y+5)×1)/(5+4+3+2+1)」である。なお、かかる演算式において、使用する画素数は5であるが、使用する画素数は4、3、6等の他の画素数でも良い。
また、かかる画素ごとの加重平均値の差により構成される画素ごとのマップを、方向依存性加重平均マップと言う。また、方向依存性加重平均マップは、画素ごとに、代表差異値を対応付けたマップである、と言える。
肋骨線取得手段331は、肋骨の場所に応じた肋骨の延伸の角度情報を用いて、上方肋骨線を構成する上方候補点または下方肋骨線を構成する下方候補点を取得し、当該上方候補点または当該下方候補点である候補点に対応する画素に対してのみ、代表差異値を取得し、当該代表差異値が採用条件を満たす画素を、上方肋骨線または下方肋骨線である肋骨線を構成する画素として採用することは好適である。なお、ここでの採用条件は、最大条件または最小条件である。つまり、下方肋骨線を構成する画素の採用条件は、代表差異値が極大値であることである。上方肋骨線を構成する画素の採用条件は、代表差異値が極小値であることである。
なお、肋骨の延伸の角度情報は、例えば、「(1)肋骨の外側30%は「0または-1」、(2)肋骨の内側70%であり、確定した直線の傾きが「-0.5以下」である場合は「0または-1」、(3)肋骨の内側70%であり、確定した直線の傾きが「-0.5~0.5」である場合は「-0、3または-0.8」、(4)肋骨の内側70%であり、確定した直線の傾きが「0.5以上」である場合は「0または1」である。
なお、肋骨の場所に応じた肋骨の延伸の角度情報を用いることは、肋骨の形状を考慮することである。
補正手段332は、肋骨線取得手段331が取得した下方肋骨線と上方肋骨線の各々を構成する2つの画素であり、同じX座標値の2つの画素が、エラー条件を満たすか否かを判断する。
そして、2つの画素の画素値がエラー条件を満たす場合、補正手段332はY方向に画素を探索し、エラー条件を満たさない画素値の画素を含む上方肋骨線または下方肋骨線を取得する。補正手段332はY方向に画素を探索し、エラー条件を満たさない画素値であり、X座標値が異なる近隣の画素の画素値であり、鎖骨線を構成する画素の画素値に対して、差異が閾値以上に大きい画素値の画素を、補正対象の画素とする。そして、補正手段332は、当該補正対象の画素のY座標値と同じY座標値の近隣の画素の画素値から、エラー条件を満たさない画素値を検出し、当該画素値に対応する画素を上方肋骨線または下方肋骨線を構成する画素として決定する。
なお、エラー条件とは、Xが同じ位置の2つの画素の画素値の差異が、予め決められた条件を満たすほど大きいことである。エラー条件は、例えば、Xが同じ位置の2つの画素の画素値の差異が閾値以上または閾値より大きいことである。Xが同じ位置の2つの画素は、Xが同じ下方肋骨線を構成する画素(例えば、画素(x,y))と上方肋骨線を構成する画素(例えば、画素(x,y-n)(nは自然数))である。エラー条件は、例えば、Xが同じ位置の2つの画素の画素値が2倍以上、異なることである。
補正手段332は、Y方向に画素を探索する場合に、下方肋骨線または上方肋骨線を構成する画素に対して、予め決められた狭い範囲(例えば、肋骨の幅の最大値の範囲)のみを探索することは好適である。
出力部4は、各種の情報を出力する。各種の情報は、例えば、下方鎖骨線、上方鎖骨線、下方肋骨線、上方肋骨線である。
ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
鎖骨線出力部41は、鎖骨線取得部32が取得した下方鎖骨線と上方鎖骨線とを出力する。鎖骨線出力部41は、胸部透過画像の上に下方鎖骨線と上方鎖骨線とを出力することは好適である。鎖骨線出力部41は、肺野部検出部31が検出した肺野部が明確になる態様で、胸部透過画像の上に下方鎖骨線と上方鎖骨線とを出力することは好適である。下方鎖骨線と上方鎖骨線とを出力することは、下方鎖骨線と上方鎖骨線とが明示される態様で出力することである。
肋骨線出力部42は、肋骨線取得部33が取得した下方肋骨線と上方肋骨線とを出力する。肋骨線出力部42は、胸部透過画像の上に下方肋骨線と上方肋骨線とを出力することは好適である。肋骨線出力部42は、肺野部検出部31が検出した肺野部が明確になる態様で、胸部透過画像の上に下方肋骨線と上方肋骨線とを出力することは好適である。なお、下方肋骨線と上方肋骨線とを出力することは、下方肋骨線と上方肋骨線とが明示される態様で出力することである。
格納部1、および画像格納部11は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
格納部1等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部1等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部1等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部1等で記憶されるようになってもよい。
受付部2は、タッチパネルやキーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
処理部3、肺野部検出部31、鎖骨線取得部32、肋骨線取得部33、候補直線検出手段321、部分直線検出手段322、鎖骨延伸手段323、第二鎖骨線検出手段324、肋骨線取得手段331、および補正手段332は、通常、プロセッサやメモリ等から実現され得る。処理部3等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、プロセッサは、CPU、MPU、GPU等であり、その種類は問わない。
出力部4、鎖骨線出力部41、および肋骨線出力部42は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部4等は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、骨構造輪郭抽出装置Aの動作例について、図2のフローチャートを用いて説明する。
(ステップS201)肺野部検出部31は、画像格納部11から胸部透過画像を読み出す。肺野部検出部31は、当該胸部透過画像を解析し、肺野部を検出する。
(ステップS202)鎖骨線取得部32は、肺野部検出部31が検出した肺野部の中の鎖骨線を検出する。かかる鎖骨線を検出する処理(鎖骨線取得処理)の例について、図3のフローチャートを用いて説明する。
なお、鎖骨線取得部32は、画像格納部11の胸部透過画像から鎖骨線を検出しても良い。
(ステップS203)肋骨線取得部33は、肺野部検出部31が検出した肺野部の中の肋骨線を検出する。かかる肋骨線を検出する処理(肋骨線取得処理)の例について、図6のフローチャートを用いて説明する。
なお、肋骨線取得部33は、画像格納部11の胸部透過画像から肋骨線を検出しても良い。
(ステップS204)処理部3は、出力される画像を構成する。処理部3は、例えば、胸部透過画像の中に鎖骨線および肋骨線が明示された画像を構成する。処理部3は、例えば、胸部透過画像の中に、肺野部、鎖骨線、および肋骨線が明示された画像を構成する。
(ステップS205)出力部4は、ステップS204で構成された画像を出力する。処理を修正する。
なお、図2のフローチャートにおいて、例えば、受付部2が開始指示を受け付けたことに応じて、処理が開始される。
次に、ステップS202の鎖骨線取得処理の例について、図3のフローチャートを用いて説明する。
(ステップS301)候補直線検出手段321は、胸部透過画像(肺野部の領域の画像)から2以上の候補直線を検出する。なお、かかる検出には、上述したように、例えば、ハフ変換が用いられる。
(ステップS302)部分直線検出手段322は、カウンタiに1を代入する。
(ステップS303)部分直線検出手段322は、i番目の鎖骨が存在するか否か判断する。i番目の鎖骨が存在する場合はステップS304に行き、i番目の鎖骨が存在しない場合は上位処理にリターンする。なお、iは、通常、「1」または「2」を採り得る。鎖骨は、通常、2本だからである。
(ステップS304)部分直線検出手段322は、胸部透過画像の中の鎖骨線領域条件に合致する範囲の画素の中で最高画素値の画素を検知する。かかる画素を、適宜、最高値画素と言うこととする。
(ステップS305)部分直線検出手段322は、カウンタjに1を代入する。
(ステップS306)部分直線検出手段322は、鎖骨線領域条件に合致する範囲の中で、j番目の候補直線が存在するか否かを判断する。j番目の候補直線が存在する場合はステップS307に行き、j番目の候補直線が存在しない場合はステップS311に行く。
(ステップS307)部分直線検出手段322は、j番目の候補直線の傾きを取得する。なお、直線の傾きを取得する技術は公知技術である。
(ステップS308)部分直線検出手段322は、ステップS307で取得した傾きが、鎖骨傾き条件に合致するか否か判断する。鎖骨傾き条件に合致する場合はステップS309に行き、合致しない場合はステップS310に行く。
(ステップS309)部分直線検出手段322は、最高値画素とj番目の候補直線との距離を取得する。
(ステップS310)部分直線検出手段322は、カウンタjを1、インクリメントする。ステップS306に戻る。
(ステップS311)部分直線検出手段322は、ステップS309で取得した距離が最短の候補直線を、鎖骨直線を構成する部分直線として決定する。
(ステップS312)鎖骨延伸手段323は、ステップS311で取得した部分直線を伸ばす処理である鎖骨延伸処理を行う。鎖骨延伸処理の例について、図4のフローチャートを用いて説明する。
(ステップS313)第二鎖骨線検出手段324は、第二鎖骨線検出処理を行う。第二鎖骨線検出処理の例について、図5のフローチャートを用いて説明する。
なお、第二鎖骨線検出処理は、検出された下方鎖骨線または上方鎖骨線に対応する上方鎖骨線または下方鎖骨線を検出する処理である。下方鎖骨線を先に検出することが好適であるので、第二鎖骨線検出処理は、検出された下方鎖骨線に対応する上方鎖骨線を検出する処理であることは好適である。
(ステップS314)部分直線検出手段322は、カウンタiを1、インクリメントする。ステップS303に戻る。
次に、ステップS312の鎖骨延伸処理の例について、図4のフローチャートを用いて説明する。
(ステップS401)鎖骨延伸手段323は、カウンタiに1を代入する。
(ステップS402)鎖骨延伸手段323は、部分直線の右の端点(最初の基準点)または変更された基準点に対して、さらに右に1つ延びるX座標値が存在するか否かを判断する。基準点から右に延びるX座標値が存在する場合はステップS403に行き、存在しない場合はステップS415に行く。なお、最初の基準点は、部分直線の端点である。また、基準点は、ステップS413で変更される。基準点は、鎖骨線を構成する点である。基準点から右に延びるX座標値は、基準点(x、y)に対して、X座標値が「x+1」の点である。基準点から右に延びるX座標値が存在する場合は、鎖骨線を1画素、伸ばす場合である。
(ステップS403)鎖骨延伸手段323は、基準点(x、y)に対して、同じX座標値の2以上の候補点を取得する。なお、2以上の候補点は、(x+1,y)(x+1,y+1)(x+1,y-1)である。鎖骨延伸手段323は、鎖骨傾き条件(部分直線の傾き)を考慮して、2以上の候補点を取得することは好適である。なお、2以上の各候補点のX座標値は同じである。
(ステップS404)鎖骨延伸手段323は、カウンタjに1を代入する。
(ステップS405)鎖骨延伸手段323は、ステップS403で取得した候補点のうち、j番目の候補点が存在するか否かを判断する。j番目の候補点が存在する場合はステップS406に行き、j番目の候補点が存在しない場合はステップS412に行く。
(ステップS406)鎖骨延伸手段323は、j番目の候補点のシグナル差分map1値を取得する。
(ステップS407)鎖骨延伸手段323は、j番目の候補点のシグナル差分map2値を取得する。
(ステップS408)鎖骨延伸手段323は、ステップS406で取得したシグナル差分map1値、およびステップS407で取得したシグナル差分map2値が、条件を満たすか否かを判断する。条件を満たす場合はステップS409に行き、条件を満たさない場合はステップS411に行く。
なお、条件は、採用条件と言っても良い。ここでの採用条件は、例えば、シグナル差分map1値が閾値(例えば、7)以上または閾値より大きく、シグナル差分map2値が閾値(例えば、0)以上または閾値より大きいことである。
(ステップS409)鎖骨延伸手段323は、直線の傾きを用いたY座標値を取得する。
(ステップS410)鎖骨延伸手段323は、上側の閾値の数の画素のシグナル差分map1値、および下側の閾値の数の画素のシグナル差分map1値のうちの最大値(α)を取得する。次に、鎖骨延伸手段323は、j番目の候補点のY座標値を取得する。そして、鎖骨延伸手段323は、直線の傾きを用いたY座標値とj番目の候補点のY座標値とj番目の候補点のシグナル差分map1値とαとを用いて、スコアを算出する。なお、鎖骨延伸手段323は、例えば、演算式「スコア={α-シグナル差分map1の値}2+{基準候補点のY座標値-候補点のY座標値}2」により、スコアを算出する。
(ステップS411)鎖骨延伸手段323は、カウンタjを1、インクリメントする。ステップS405に戻る。
(ステップS412)鎖骨延伸手段323は、ステップS410で算出したスコアが最小の候補点を、鎖骨線を構成する点として決定する。
(ステップS413)鎖骨延伸手段323は、ステップS412で決定した候補点を基準点とする。
(ステップS414)鎖骨延伸手段323は、カウンタiを1、インクリメントする。ステップS402、またはS416に戻る。
(ステップS415)鎖骨延伸手段323は、カウンタiに1を代入する。
(ステップS416)鎖骨延伸手段323は、部分直線の左の端点または変更された基準点に対して、さらに左に1つ延びるX座標値が存在するか否かを判断する。左に1つ延びるX座標値が存在する場合はステップS403に行き、存在しない場合は上位処理にリターンする。
次に、ステップS313の第二鎖骨線検出処理の例について、図5のフローチャートを用いて説明する。図5のフローチャートにおいて、図4のフローチャートと同一のステップについて説明を省略する。
(ステップS501)第二鎖骨線検出手段324は、カウンタiに1を代入する。
(ステップS502)第二鎖骨線検出手段324は、鎖骨線取得部32が取得した一方の鎖骨線(例えば、下方鎖骨線)を構成するi番目の点が存在するか否かを判断する。i番目の点が存在する場合はステップS503に行き、i番目の点が存在しない場合は上位処理にリターンする。
(ステップS503)第二鎖骨線検出手段324は、i番目の点(x、y)と同じX座標値(x)を有する点であり、i番目の点(x、y)に対して、鎖骨幅条件を満たすY座標値を有する2以上の候補点を決定する。ステップS404に行く。
なお、図5のフローチャートにおいて、ステップS414からステップS502に戻る。
また、図5のフローチャートにおいて、第二鎖骨線検出手段324は、ステップS404からステップS414に代えて、他のアルゴリズムにより、候補点から鎖骨線を構成する画素を決定しても良い。第二鎖骨線検出手段324は、例えば、2以上の候補点のうち、シグナル差分map2値が最小の画素を上方鎖骨線を構成する画素に決定しても良い。
次に、ステップS203の肋骨線取得処理の例について、図6のフローチャートを用いて説明する。
(ステップS601)肋骨線取得手段331は、カウンタiに1を代入する。
(ステップS602)肋骨線取得手段331は、鎖骨線を構成する画素が存在する可能性のある範囲の中で、i番目の画素が存在するか否かを判断する。i番目の画素が存在する場合はステップS603に行き、存在しない場合はステップS607に行く。
なお、鎖骨線を構成する画素が存在する可能性のある範囲は、例えば、肺野部の範囲、肺野部の中の下側の閾値(例えば、90%)以内の領域、胸部透過画像の全体である。
(ステップS603)肋骨線取得手段331は、i番目の画素の上方代表値を取得する。
(ステップS604)肋骨線取得手段331は、i番目の画素の下方代表値を取得する。
(ステップS605)肋骨線取得手段331は、ステップS603で取得した上方代表値とステップS604で取得した下方代表値との差異である代表差異値を算出する。
(ステップS606)肋骨線取得手段331は、カウンタiを1、インクリメントする。ステップS602に戻る。
(ステップS607)肋骨線取得手段331は、同じX座標値の画素の代表差異値が最大条件を満たす2以上の画素を決定する。なお、かかる2以上の各画素は、肋骨の下方肋骨線を構成する異なる画素である。また、最大条件は、同じX座標値の画素であり、画素値が極大値を採る画素であることである。
(ステップS608)肋骨線取得手段331は、カウンタjに1を代入する。
(ステップS609)肋骨線取得手段331は、ステップS607で決定した画素の中のj番目の画素が存在するか否かを判断する。j番目の画素が存在する場合はステップS610に行き、存在しない場合はステップS612に行く。
(ステップS610)肋骨線取得手段331は、j番目の画素を出発点として、下方肋骨線を伸ばす処理である下方肋骨線延伸処理を行う。下方肋骨線延伸処理の例について、図7のフローチャートを用いて説明する。なお、下方肋骨線延伸処理とは、ステップS607で決定された画素を出発点として、下方肋骨線を延ばす処理である。
(ステップS611)肋骨線取得手段331は、カウンタjを1、インクリメントする。ステップS609に戻る。
(ステップS612)肋骨線取得手段331は、同じY座標値の代表差異値が最小条件を満たす2以上の画素を決定する。なお、かかる2以上の各画素は、肋骨の上方肋骨線を構成する異なる画素である。また、最小条件は、同じX座標値の画素であり、画素値が極小値を採る画素であることである。
(ステップS613)肋骨線取得手段331は、カウンタjに1を代入する。
(ステップS614)肋骨線取得手段331は、ステップS612で決定した画素の中のj番目の画素が存在するか否かを判断する。j番目の画素が存在する場合はステップS615に行き、存在しない場合はステップS617に行く。
(ステップS615)肋骨線取得手段331は、上方肋骨線延伸処理を行う。上方肋骨線延伸処理の例について、図8のフローチャートを用いて説明する。なお、上方肋骨線延伸処理とは、j番目の画素を出発点として、上方肋骨線を伸ばす処理である。
(ステップS616)肋骨線取得手段331は、カウンタjを1、インクリメントする。ステップS614に戻る。
(ステップS617)補正手段332は、補正処理を行う。補正処理の例について、図9のフローチャートを用いて説明する。
(ステップS618)肋骨線取得手段331は、肋骨線取得処理を終了するか否かを判断する。終了する場合は上位処理にリターンし、終了しない場合はステップS607に行く。なお、肋骨線取得手段331は、例えば、右側の肋骨の輪郭線を検出することと、左側の肋骨の輪郭線を検出することが完了した後、処理を終了する、と判断する。
次に、ステップS610の下方肋骨線延伸処理の例について、図7のフローチャートを用いて説明する。
(ステップS701)肋骨線取得手段331は、カウンタiに1を代入する。
(ステップS702)肋骨線取得手段331は、肋骨線を延伸すべき、i番目のX座標値が存在するか否かを判断する。i番目のX座標値が存在する場合はステップS703に行き、存在しない場合は上位処理にリターンする。
なお、肋骨線を延伸すべきX座標値は、例えば、肺野部の端ではないこと、胸部透過画像の端ではないこと、胸部透過画像の上位閾値(例えば、20%)から下であり、下位閾値(例えば、90%)より上の領域であること等である。
(ステップS703)肋骨線取得手段331は、i番目のX座標値の画素の箇所の角度情報を取得する。
(ステップS704)肋骨線取得手段331は、ステップS703で取得した角度情報を用いて、2以上の下方候補点を決定する。
(ステップS705)肋骨線取得手段331は、カウンタjに1を代入する。
(ステップS706)肋骨線取得手段331は、ステップS704で決定した下方候補点のうち、j番目の下方候補点が存在するか否かを判断する。j番目の下方候補点が存在する場合はステップS707に行き、存在しない場合はステップS709に行く。
(ステップS707)肋骨線取得手段331は、j番目の下方候補点の代表差異値を取得する。
(ステップS708)肋骨線取得手段331は、カウンタjを1、インクリメントする。ステップS706に戻る。
(ステップS709)肋骨線取得手段331は、ステップS707で取得した代表差異値のうち、最大の代表差異値に対応する画素を、下方肋骨線を構成する画素に決定する。なお、最大の代表差異値に対応する画素は、最大条件を満たす画素である。
(ステップS710)肋骨線取得手段331は、基準画素を、ステップS709で決定した画素に変更する。
(ステップS711)肋骨線取得手段331は、カウンタiを1、インクリメントする。ステップS702に戻る。
次に、ステップS615の上方肋骨線延伸処理の例について、図8のフローチャートを用いて説明する。
(ステップS801)肋骨線取得手段331は、カウンタiに1を代入する。
(ステップS802)肋骨線取得手段331は、肋骨線を延伸すべき、i番目のX座標値が存在するか否かを判断する。i番目のX座標値が存在する場合はステップS803に行き、存在しない場合は上位処理にリターンする。
(ステップS803)肋骨線取得手段331は、i番目のX座標値の画素の箇所の角度情報を取得する。
(ステップS804)肋骨線取得手段331は、ステップS803で取得した角度情報を用いて、2以上の上方候補点を決定する。
(ステップS805)肋骨線取得手段331は、カウンタjに1を代入する。
(ステップS806)肋骨線取得手段331は、ステップS804で決定した上方候補点のうち、j番目の上方候補点が存在するか否かを判断する。j番目の上方候補点が存在する場合はステップS807に行き、存在しない場合はステップS809に行く。
(ステップS807)肋骨線取得手段331は、j番目の上方候補点の代表差異値を取得する。
(ステップS808)肋骨線取得手段331は、カウンタjを1、インクリメントする。ステップS806に戻る。
(ステップS809)肋骨線取得手段331は、ステップS807で取得した代表差異値のうち、最小の代表差異値に対応する画素を、上方肋骨線を構成する画素に決定する。なお、最小の代表差異値に対応する画素は、最小条件を満たす画素である。
(ステップS810)肋骨線取得手段331は、基準画素を、ステップS809で決定した画素に変更する。
(ステップS811)肋骨線取得手段331は、カウンタiを1、インクリメントする。ステップS802に戻る。
なお、図8のフローチャートにおいて、下方肋骨線が決まっているので、肋骨線取得手段331は、当該下方肋骨線を構成する各画素から肋骨幅条件を満たす距離の2以上の候補点を決定し、当該2以上の各候補点の代表差異値が最小の画素を、上方肋骨線を構成する画素に決定する等、他のアルゴリズムで、上方肋骨線を取得しても良い。
次に、ステップS617の補正処理の例について、図9のフローチャートを用いて説明する。
(ステップS901)補正手段332は、カウンタiに1を代入する。
(ステップS902)補正手段332は、i番目の肋骨が存在するか否かを判断する。i番目の肋骨が存在する場合はステップS903に行き、存在しない場合は上位処理にリターンする。
(ステップS903)補正手段332は、カウンタjに1を代入する。
(ステップS904)補正手段332は、i番目の肋骨の下位肋骨線または上位肋骨線の中にj番目のX座標値が存在するか否かを判断する。j番目のX座標値が存在する場合はステップS905に行き、存在しない場合はステップS911に行く。
(ステップS905)補正手段332は、上方肋骨線のj番目のX座標値に対応する画素の画素値を取得する。
(ステップS906)補正手段332は、下方肋骨線のj番目のX座標値に対応する画素の画素値を取得する。
(ステップS907)補正手段332は、ステップS905で取得した画素値と、ステップS906で取得した画素値とが、エラー条件を満たすか否かを判断する。エラー条件を満たす場合はステップS908に行き、エラー条件を満たさない場合はステップS910に行く。なお、エラー条件は、例えば、ステップS905で取得した画素値とステップS906で取得した画素値との差が2倍以上あることである。
(ステップS908)補正手段332は、ステップS905で取得した画素値と、ステップS906で取得した画素値との中で、肋骨線を構成する画素の画素値であり、周辺の画素値と比較して、不適切な画素値(差異が大きい方の画素値)を決定する。補正手段332は、不適切な画素値に対応する画素の上または下の2以上の画素である候補点を決定する。
(ステップS909)補正手段332は、ステップS908で決定した2以上の候補点の画素値の中で、一方の画素値に対して、エラー条件を満たさない画素値を決定する。次に、補正手段332は、当該画素値を有する画素を、肋骨線を構成する画素に決定する。なお、エラー条件を満たさない画素値が複数存在する場合、補正手段332は、ステップS908で決定した不適切な画素値に対応する画素からの距離が近い方の画素を、肋骨線を構成する画素に決定する。
(ステップS910)補正手段332は、カウンタjを1、インクリメントする。ステップS904に戻る。
(ステップS911)補正手段332は、カウンタiを1、インクリメントする。ステップS902に戻る。
以下、本実施の形態における骨構造輪郭抽出装置Aの具体的な動作例について説明する。今、例えば、図10(a)に示す胸部X線画像(胸部透過画像の一例)が画像格納部11に格納されている、とする。
そして、骨構造輪郭抽出装置Aの鎖骨線取得部32は、上述したアルゴリズムにより、下方鎖骨線(1001)、上方肋骨線(1002)を検出する。また、肋骨線取得部33は、上述したアルゴリズムにより、下方肋骨線(1003)、上方肋骨線(1004)を検出する。
なお、肋骨線取得部33は、例えば、図11に示すように、各画素の代表差異値からなるマップ(ここでは、「方向依存性加重平均マップ」と言う)を構成し、当該マップ上の代表差異値の中から最大条件を満たす画素から下方肋骨線(1101)を構成し、最小条件を満たす画素から上方肋骨線(1102)を構成する。そして、肋骨線取得部33は、上述した補正処理を行い、上述したアルゴリズムで、下方肋骨線(1101)および上方肋骨線(1102)を取得する。
次に、処理部3は、胸部X線画像(図10)の上に、下方鎖骨線(1001)、上方肋骨線(1002)、下方肋骨線(1003)、および上方肋骨線(1004)が表出した画像を構成する。なお、図11(b)は、図11(a)の胸部X線画像の一部の領域1103の各画素の代表差異値のマップ(方向依存性加重平均マップ)である。
次に、出力部4は、当該画像を出力する。なお、かかる画像の例は、図10(b)である。
以上、本実施の形態によれば、胸部透過画像から鎖骨を適切に検知できる。特に、胸部透過画像に基づく教師データを大量に入手することなく、胸部透過画像から鎖骨を適切に検知できる。
また、本実施の形態によれば、胸部透過画像から肋骨を適切に検知できる。特に、胸部透過画像に基づく教師データを大量に入手することなく、胸部透過画像から肋骨を適切に検知できる。
また、本実施の形態によれば、胸部透過画像に対して、骨部を明示した画像を出力できる。
さらに、本実施の形態によれば、胸部透過画像から肺野部を検出した後に、当該肺野部に対して、骨部を検知する処理を行うので、高速に骨部を検知できる。なお、骨部は、ここでは、鎖骨または肋骨のうちの1種類以上の骨である。
なお、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD-ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における骨構造輪郭抽出装置Aを実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、胸部透過画像が格納される画像格納部にアクセス可能なコンピュータを、前記胸部透過画像を用いて、鎖骨の下方の境界線である下方鎖骨線と鎖骨の上方の境界線である上方鎖骨線とを取得する鎖骨線取得部と、前記下方鎖骨線と前記上方鎖骨線とを出力する鎖骨線出力部として機能させ、前記鎖骨線取得部は、前記胸部透過画像を解析し、鎖骨の境界線の候補である1以上の候補直線を検出する候補直線検出手段と、前記1以上の候補直線のうち、鎖骨傾き条件に合致し、かつ前記胸部透過画像の中の鎖骨線領域条件に合致する範囲の画素の中で最高画素値の画素を検知し、当該画素に最も近い候補直線を、前記下方鎖骨線または前記上方鎖骨線を構成する部分直線として検出する部分直線検出手段と、前記部分直線の端点から、当該部分直線を伸ばした前記下方鎖骨線または前記上方鎖骨線を検出する鎖骨延伸手段と、前記下方鎖骨線または前記上方鎖骨線を構成する各点に対して、鎖骨幅条件を満たす反対側の境界点を検出し、当該境界点を含む前記上方鎖骨線または前記下方鎖骨線を検出する第二鎖骨線検出手段とを具備するものとして、前記コンピュータを機能させるためのプログラムである。
また、本実施の形態における骨構造輪郭抽出装置Aを実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、胸部透過画像が格納される画像格納部にアクセス可能なコンピュータを、前記胸部透過画像を解析し、肋骨の下方の境界線である下方肋骨線と肋骨の上方の境界線である上方肋骨線とを取得する肋骨線取得部と、前記下方肋骨線と前記上方肋骨線とを出力する肋骨線出力部として機能させ、前記肋骨線取得部は、前記胸部透過画像を構成する1以上の各画素であり、所定の幅に存在する1以上の各画素について、当該画素より上方の2以上の各画素の画素値の代表値である上方代表値と、当該画素より下方の2以上の各画素の画素値の代表値である下方代表値との差を取得し、当該差が最大または最小である画素を前記下方肋骨線を構成する画素とし、当該差が最小または最大である画素を前記上方肋骨線を構成する画素として、前記下方肋骨線と前記上方肋骨線とを取得する肋骨線取得手段を具備するものとして、前記コンピュータを機能させるためのプログラムである。
(実施の形態2)
本実施の形態において、骨構造輪郭抽出装置Aの出力である骨部の輪郭の情報を用いて、骨部を除いた画像である骨透過画像を取得し、当該骨透過画像を出力する画像処理装置について説明する。
図12は、本実施の形態における画像処理装置Bのブロック図である。画像処理装置Bは、受付部2、格納部5、処理部6、および出力部7を備える。格納部5は、画像格納部11、鎖骨線格納部51、および肋骨線格納部52を備える。処理部6は、肺野部検出部31、鎖骨線取得部32、肋骨線取得部33、骨透過部61、および病変検知部62を備える。骨透過部61は、画素値修正手段611を備える。出力部7は、骨透過画像出力部71、および病変出力部72を備える。
格納部5には、各種の情報が格納される。各種の情報は、例えば、下方鎖骨線を構成する画素を特定する情報、上方鎖骨線を構成する画素を特定する情報、下方肋骨線を構成する画素を特定する情報、上方肋骨線を構成する画素を特定する情報、胸部透過画像、角度情報、各種の後述する条件である。
なお、下方鎖骨線を構成する画素を特定する情報は、適宜、下方鎖骨線と言う。上方鎖骨線を構成する画素を特定する情報は、適宜、上鎖骨線と言う。下方肋骨線を構成する画素を特定する情報は、適宜、下方肋骨線と言う。上方肋骨線を構成する画素を特定する情報は、適宜、上方肋骨線と言う。
鎖骨線格納部51には、下方鎖骨線を構成する画素を特定する情報、および上方鎖骨線を構成する画素を特定する情報が格納される。画素を特定する情報は、例えば、座標値(x,y)である。鎖骨線格納部51の情報は、鎖骨線出力部41から渡された情報であることは好適である。鎖骨線格納部51の情報は、鎖骨線取得部32が取得した情報であることは好適である。
肋骨線格納部52は、下方肋骨線を構成する画素を特定する情報、および上方肋骨線を構成する画素を特定する情報が格納される。肋骨線格納部52の情報は、肋骨線出力部42から渡された情報であることは好適である。鎖骨線格納部51の情報は、肋骨線取得部33が取得した情報であることは好適である。
処理部6は、各種の処理を行う。各種の処理は、例えば、肺野部検出部31、鎖骨線取得部32、肋骨線取得部33、骨透過部61が行う処理である。
骨透過部61は、胸部透過画像に対して、骨部を透過した骨透過画像を取得する。骨透過部61は、胸部透過画像に対して、肋骨を透過した骨透過画像を取得する。骨透過部61は、胸部透過画像に対して、鎖骨をも透過した骨透過画像を取得しても良い。
骨透過部61は、下方肋骨線と当該下方肋骨線に対応する上方肋骨線の間の画素である肋骨画素に対して、肋骨画素の画素値を、補正量を用いて補正し、補正後画素値を取得し、当該補正後画素値を当該肋骨画素の画素値とし、胸部透過画像に対して肋骨を透過した骨透過画像を取得する。
補正量は、内側代表値と外側代表値との差異に関する情報である。ここでの内側代表値とは、肋骨の内側の2以上の画素の画素値の代表値である。ここでの外側代表値とは、肋骨の外側の2以上の画素の画素値の代表値である。
肋骨の内側の2以上の画素は、上方肋骨線を構成する2以上の各画素((x,y))の1以上、下(例えば(x,y+1))の画素である。肋骨の内側の2以上の画素は、下方肋骨線を構成する2以上の各画素((x,y))の1以上、上(例えば(x,y-1))の画素である。
肋骨の外側の2以上の画素は、上方肋骨線を構成する2以上の各画素((x,y))の1以上、上(例えば(x,y-1))の画素である。肋骨の内側の2以上の画素は、下方肋骨線を構成する2以上の各画素((x,y))の1以上、下(例えば(x,y+1))の画素である。
代表値は、例えば、2以上の対象点の画素値の平均値、2以上の対象点の画素値の中央値、2以上の対象点の画素値の加重平均値である。差異に関する情報とは、内側代表値と外側代表値との差が好適であるが、例えば、内側代表値と外側代表値との差の二乗等でも良い。なお、対象点とは、肋骨の内側の2以上の画素または肋骨の外側の2以上の画素である。
骨透過部61は、鎖骨画素の画素値を、補正量を用いて補正し、補正後画素値を取得し、補正後画素値を鎖骨画素の画素値とし、胸部透過画像に対して鎖骨を透過した骨透過画像を取得する。なお、鎖骨画素とは、鎖骨の内部の画素である。
補正量は、内側代表値と外側代表値との差異に関する情報である。ここでの内側代表値とは、鎖骨の内側の2以上の画素の画素値の代表値である。ここでの外側代表値とは、鎖骨の外側の2以上の画素の画素値の代表値である。代表値は、例えば、2以上の対象点の画素値の平均値、2以上の対象点の画素値の中央値、2以上の対象点の画素値の加重平均値である。
なお、上記の補正量は、「透過処理パラメータ」と言っても良い。骨透過部61は、例えば、「処理前の肋骨の画素値-透過処理パラメータ」を補正後画素値とする。また、骨透過部61は、例えば、「処理前の鎖骨の画素値-透過処理パラメータ」を補正後画素値とする。
画素値修正手段611は、骨透過部61が取得した補正後画素値が、他の2以上の補正後画素値と比較して、異常条件を満たす場合、補正後画素値を他の2以上の補正後画素値を用いて修正する。
他の2以上の補正後画素値とは、骨透過部61が取得した補正後画素値に対応する画素と同じX座標値の画素の補正後画素値である。
異常条件は、例えば、補正後画素値が、他の2以上の補正後画素値と比較して、差異が閾値以上であることである。異常条件は、例えば、「補正後画素値>=他の2以上の補正後画素値の平均値+0.5×他の2以上の補正後画素値の標準偏差」である。なお、0.5×他の2以上の補正後画素値の標準偏差は、適宜、「0.5SD」と表わす。
画素値修正手段611は、例えば、補正後画素値が異常条件を満たす場合、当該補正後画素値が異常条件を満たさないように、補正後画素値を変更する。画素値修正手段611は、例えば、補正後画素値が異常条件を満たす場合、当該補正後画素値に対応する画素と同じY座標値を有する画素であり、骨の外側(肺野部)の1または2以上の画素の代表値(例えば、骨の輪郭の外側の2画素の画素値の平均値)に変更する。
画素値修正手段611は、例えば、補正後に肋骨の上下端の画素値をy方向に線形で回帰した後、内部の画素値の0.5SD以上を示す画素値が輪郭から肋骨の太さの例えば25%以内に検出された場合、その画素値を線形回帰後の値+0.5SDとする。
病変検知部62は、骨透過部61の処理により取得された骨透過画像を用いて、病変を検知する。なお、病変を検知する技術は、公知技術であるので、詳細な説明を省略する。
出力部7は、各種の情報を出力する。各種の情報は、例えば、骨透過画像、病変の箇所を明示した骨透過画像である。
ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
骨透過画像出力部71は、骨透過部61が取得した骨透過画像を出力する。骨透過画像出力部71は、病変の箇所を明示した骨透過画像を出力できることは好適である。
病変出力部72は、骨透過画像に対応する病変の箇所を出力する。なお、病変の箇所は、病変検知部62が検知した箇所である。
格納部5、および肋骨線格納部52は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。
格納部5等に情報が記憶される過程は問わない。例えば、記録媒体を介して情報が格納部5等で記憶されるようになってもよく、通信回線等を介して送信された情報が格納部5等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力された情報が格納部5等で記憶されるようになってもよい。
処理部6、骨透過部61、画素値修正手段611、および病変検知部62は、通常、プロセッサやメモリ等から実現され得る。処理部6等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。なお、プロセッサは、CPU、MPU、GPU等であり、その種類は問わない。
出力部7、骨透過画像出力部71、および病変出力部72は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。出力部7等は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、画像処理装置Bの動作例について、図13のフローチャートを用いて説明する。図13のフローチャートにおいて、図2のフローチャートと同一のステップについて、説明を省略する。
(ステップS1301)骨透過部61は、骨透過処理を行う。骨透過処理の例について、図14のフローチャートを用いて説明する。
(ステップS1302)病変検知部62は、ステップS1301で取得された骨透過画像に対して、病変の検知を行う。
(ステップS1303)処理部6は、ステップS1301で取得された骨透過画像に対して、ステップS1302で検知された病変の領域を明示する出力画像を構成する。
(ステップS1304)出力部7は、ステップS1303で構成された画像を出力する。処理を終了する。
次に、ステップS1301の骨透過処理の例について、図14のフローチャートを用いて説明する。
(ステップS1401)骨透過部61は、カウンタiに1を代入する。
(ステップS1402)骨透過部61は、透過対象のi番目の骨が存在するか否かを判断する。i番目の骨が存在する場合はステップS1403に行き、i番目の骨が存在しない場合はステップS1405に行く。
なお、骨透過部61は、ステップS203で検知された肋骨線の情報、またはステップS203で検知された肋骨線の情報とステップS202で検知された鎖骨線の情報を用いて、i番目の骨が存在するか否かを判断する。
(ステップS1403)骨透過部61は、i番目の骨の領域に対して、透過処理を行う。かかる処理を、一骨透過処理と言う。一骨透過処理の例について、図15のフローチャートを用いて説明する。
(ステップS1404)骨透過部61は、カウンタiを1、インクリメントする。ステップS1402に戻る。
(ステップS1405)骨透過部61は、カウンタiに1を代入する。
(ステップS1406)骨透過部61は、i番目の骨の領域が存在するか否かを判断する。i番目の骨の領域が存在する場合はステップS1407に行き、存在しない場合は上位処理にリターンする。
なお、骨透過部61は、例えば、ステップS203で検知された肋骨線の情報、またはステップS203で検知された肋骨線の情報とステップS202で検知された鎖骨線の情報を用いて、i番目の骨の領域が存在するか否かを判断する。
(ステップS1407)画素値修正手段611は、骨辺縁影響補正処理を行う。骨辺縁影響補正処理の例について、図16のフローチャートを用いて説明する。
なお、骨辺縁影響補正処理とは、ステップS1403で行われた一骨透過処理が過補正の可能性があるために行われる画素値の修正の処理である。
(ステップS1408)骨透過部61は、カウンタiを1、インクリメントする。ステップS1406に戻る。
なお、図14のフローチャートにおいて、ステップS1407の骨辺縁影響補正処理は行うことは好適であるが、行わなくても良い。
次に、ステップS1403の一骨透過処理の例について、図15のフローチャートを用いて説明する。
(ステップS1501)骨透過部61は、骨の上方線を構成する画素を特定する情報を取得する。なお、骨の上方線は、上方肋骨線または上方鎖骨線である。なお、骨の上方線を構成する画素を特定する情報は、例えば、骨の上方線を構成する画素の位置を示す座標値(x、y)の集合である。
(ステップS1502)骨透過部61は、骨の上方線を構成する2以上の各画素の閾値以内の骨の内側の画素の画素値を、すべて取得する。なお、閾値は、「1」であることは好適であるが、2以上でも良い。また、2以上の各画素の閾値以内の骨の内側の画素は、2以上の各画素(x,y)と同じX座標値(x)に対応する画素であり、当該画素(x,y)より骨の内側にある画素である。
(ステップS1503)骨透過部61は、ステップS1502で取得したすべての画素値の代表値である内側代表値を取得する。なお、内側代表値は、例えば、ステップS1502で取得した画素値の平均値であることは好適であるが、中央値、加重平均値等でも良い。
(ステップS1504)骨透過部61は、骨の上方線を構成する2以上の各画素の閾値以内の骨の外側の画素の画素値を、すべて取得する。なお、閾値は、「1」であることは好適であるが、2以上でも良い。また、2以上の各画素の閾値以内の骨の外側の画素は、2以上の各画素(x,y)と同じX座標値(x)に対応する画素であり、当該画素(x,y)より骨の外側にある画素である。
(ステップS1505)骨透過部61は、ステップS1504で取得したすべての画素値の代表値である外側代表値を取得する。なお、外側代表値は、例えば、ステップS1504で取得した画素値の平均値であることは好適であるが、中央値、加重平均値等でも良い。
(ステップS1506)骨透過部61は、ステップS1503で取得した内側代表値とステップS1505で取得した外側代表値との差異に関する補正量である上方補正量を取得する。なお、例えば、「上方補正量=内側代表値-外側代表値」である。
(ステップS1507)骨透過部61は、骨の下方線を構成する画素を特定する情報(例えば、画素の位置を示す座標値(x、y)の集合)を取得する。なお、骨の下方線は、下方肋骨線または下方鎖骨線である。
(ステップS1508)骨透過部61は、骨の下方線を構成する2以上の各画素の閾値以内の骨の内側の画素の画素値を、すべて取得する。なお、閾値は、「1」であることは好適であるが、2以上でも良い。
(ステップS1509)骨透過部61は、骨透過部61は、ステップS1508で取得したすべての画素値の代表値である内側代表値を取得する。なお、内側代表値は、例えば、ステップS1508で取得した画素値の平均値、中央値、加重平均値である。
(ステップS1510)骨透過部61は、骨の下方線を構成する各画素の閾値以内の骨の外側の画素の画素値を、すべて取得する。なお、閾値は、「1」であることは好適であるが、2以上でも良い。
(ステップS1511)骨透過部61は、ステップS1510で取得したすべての画素値の代表値である外側代表値を取得する。なお、外側代表値は、例えば、ステップS1510で取得した画素値の平均値、中央値、加重平均値である。
(ステップS1512)骨透過部61は、ステップS1509で取得した内側代表値とステップS1511で取得した外側代表値との差異に関する補正量である下方補正量を取得する。なお、例えば、「下方補正量=内側代表値-外側代表値」である。
(ステップS1513)骨透過部61は、カウンタiに1を代入する。
(ステップS1514)骨透過部61は、着目する骨の内部のi番目の画素が存在するか否かを判断する。i番目の画素が存在する場合はステップS1515に行き、存在しない場合は上位処理にリターンする。
(ステップS1515)骨透過部61は、当該骨の内部のi番目の画素の画素値を取得する。
(ステップS1516)骨透過部61は、i番目の画素に対して、採用する補正量を取得する。なお、例えば、骨透過部61は、i番目の画素が上方線に近ければ、上方補正量を取得し、i番目の画素が下方線に近ければ、下方補正量を取得する。また、骨透過部61は、上方補正量と下方補正量との平均値を取得しても良い。
(ステップS1517)骨透過部61は、「i番目の画素の画素値-ステップS1516で取得した補正量」により、補正後画素値を取得する。
(ステップS1518)骨透過部61は、ステップS1517で取得した補正後画素値をi番目の画素の画素値とする。例えば、骨透過部61は、補正後画素値をi番目の画素の位置に上書きする。
(ステップS1519)骨透過部61は、カウンタiを1、インクリメントする。ステップS1514に戻る。
次に、ステップS1407の骨辺縁影響補正処理の例について、図16のフローチャートを用いて説明する。
(ステップS1601)画素値修正手段611は、カウンタiに1を代入する。
(ステップS1602)画素値修正手段611は、i番目の判断対象の画素が存在するか否かを判断する。i番目の判断対象の画素が存在する場合はステップS1603に行き、存在しない場合は上位処理にリターンする。
なお、判断対象の画素とは、一骨透過処理の結果、異常条件を満たすこととなったか否かの判断の対象の画素である。判断対象の画素は、一骨透過処理を行った全画素でも良いが、骨の輪郭線(上方線または下方線)から閾値以内の範囲であることは好適である。骨の輪郭線から閾値以内の範囲は、例えば、骨の輪郭線を構成する各画素と同じX座標値を有する画素で、Y座標値の差が閾値(例えば、「5」)以内の範囲である。
(ステップS1603)画素値修正手段611は、i番目の判断対象の画素の補正後画素値を取得する。
(ステップS1604)画素値修正手段611は、i番目の判断対象の画素(x、y)と同じX座標値の画素であり、近隣の2以上の画素の補正後画素値を取得する。なお、近隣の2以上の画素とは、骨の内側の画素であり、例えば、画素(x,y+1)(x,y+2)(x,y+3)である。
(ステップS1605)画素値修正手段611は、ステップS1604で取得した2以上の補正後画素値の代表値(例えば、平均値、中央値)を取得する。なお、画素値修正手段611は、ステップS1604で取得した2以上の補正後画素値の標準偏差を取得しても良い。
(ステップS1606)画素値修正手段611は、i番目の判断対象の画素の補正後画素値と、ステップS1605で取得した補正後画素値の代表値とを用いて、i番目の判断対象の画素の補正後画素値が異常条件に合致するか否かを判断する。異常条件に合致する場合はステップS1607に行き、合致しない場合はステップS1609に行く。
(ステップS1607)画素値修正手段611は、i番目の判断対象の画素として採用する画素値を取得する。なお、採用する画素は、例えば、当該画素と同じY座標値を有する画素であり、骨の境界線のすぐ外側(骨の外側)の閾値(例えば、2または3)以内の画素の画素値の代表値(例えば、平均値、中央値)である。
(ステップS1608)画素値修正手段611は、ステップS1607で取得した画素値をi番目の判断対象の画素の画素値とする。なお、画素値修正手段611は、ステップS1607で取得した画素値を、i番目の判断対象の画素の位置に上書きする。
(ステップS1609)画素値修正手段611は、カウンタiを1、インクリメントする。ステップS1602に戻る。
なお、図~のフローチャートに、しても良い。
以下、本実施の形態における画像処理装置Bの具体的な動作例について説明する。
画像処理装置Bの鎖骨線取得部32は、図10(a)の胸部透過画像から上方鎖骨線と下方鎖骨線とを検知する。また、肋骨線取得部33は、図10(a)の胸部透過画像から上方肋骨線と下方肋骨線とを検知する。なお、鎖骨線取得部32は、検知した上方鎖骨線と下方鎖骨線とを特定する情報を、鎖骨線格納部51に、少なくとも一時蓄積する。また、肋骨線取得部33は、検知した上方肋骨線と下方肋骨線とを特定する情報を、肋骨線格納部52に、少なくとも一時蓄積する。
次に、骨透過部61は、上方鎖骨線と下方鎖骨線の間の鎖骨の領域に対して、上述した骨透過処理を行う。また、骨透過部61は、上方肋骨線と下方肋骨線の間の2以上の各肋骨の領域に対して、上述した骨透過処理を行う。
次に、骨透過画像出力部71は、当該骨透過処理が行われて、骨部が透過された骨透過画像を出力する。
以上の処理の結果について、図17を用いて説明する。つまり、以上の処理の結果、図17(a)の画像であり、肋骨が見える胸部透過画像から、肋骨の領域が透過された骨透過画像(図17(b))が出力される。以上の処理では、胸部透過画像から骨構造に由来すると考えられる情報を差し引くので、図17(b)において、肋骨に重なって見えている情報は保存される。図17(b)では、脈管構造(矢印の部分)が保存されている様子が確認できる。
以上、本実施の形態によれば、胸部透過画像から骨部を除いた骨透過画像を取得できる。そして、本実施の形態によれば、骨透過画像を出力するできることにより、初期の肺癌を含む肺野病変の見落としを防止する効果がある。また、本実施の形態によれば、医療訴訟のリスクを軽減可能である可能性もあると考えられることから、医療安全の観点で有用である。また、骨透過画像を出力するできることにより、最近極めて甚大な影響を与えている新型コロナウイルス感染症のスクリーニングにも応用可能である可能性がある。
なお、本実施の形態の具体例において、病変検知部62は、骨透過画像に対して、病変検知の処理を行っても良い。そして、処理部6は、骨透過画像に対して、病変を明示した画像を構成し、出力部7は、当該画像を出力しても良い。
また、本実施の形態において、画像処理装置Bが出力する1または2以上の骨透過画像を教師データとして用いて、図示しない学習装置により、機械学習の学習処理を行い、学習器を作成しても良い。なお、教師データは、例えば、肺癌等の病変がある1以上の骨透過画像(正例)と、肺癌等の病変がない1以上の骨透過画像(負例)である。また、図示しない予測装置は、胸部透過画像から取得された骨透過画像と学習装置が取得した学習器とを用いて、機械学習の予測処理により、肺癌等の病変の有無を出力できる。
また、本実施の形態において、画像処理装置Bが出力する2以上の各骨透過画像と、各骨透過画像に対してアノテーションされた病変の領域を特定する情報(病変領域情報)との2以上のセットを教師データとして用いて、図示しない学習装置により、機械学習の学習処理を行い、学習器を作成しても良い。また、図示しない予測装置は、胸部透過画像から取得された骨透過画像と学習装置が取得した学習器とを用いて、機械学習の予測処理により、肺癌等の病変の領域を出力できる。
なお、上記の機械学習の学習処理および予測処理におけるアルゴリズムは、深層学習、ランダムフォレスト、決定木、SVM等、問わない。また、機械学習には、例えば、TensorFlowのライブラリ、R言語のrandom forestのモジュール、TinySVM等の各種の機械学習の関数や、種々の既存のライブラリを用いることができる。また、学習器は、学習モデル、分類器、分類モデル等と言っても良い。
さらに、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD-ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態における情報処理装置を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、胸部透過画像が格納される画像格納部と、下方肋骨線を構成する画素を特定する情報および上方肋骨線を構成する画素を特定する情報が格納される肋骨線格納部とにアクセス可能なコンピュータを、前記下方肋骨線または前記上方肋骨線の、肋骨に対する内側の画素の画素値の代表値である内側代表値と、前記下方肋骨線または前記上方肋骨線の外側の画素の画素値の代表値である外側代表値との差異に関する補正量を取得し、前記下方肋骨線と前記上方肋骨線との間の画素である肋骨画素に対して、当該肋骨画素の画素値を、前記補正量を用いて補正し、補正後画素値を取得し、当該補正後画素値を前記肋骨画素の画素値とし、前記胸部透過画像に対して肋骨を透過した骨透過画像を取得する骨透過部と、前記骨透過部が取得した前記骨透過画像を出力する骨透過画像出力部として機能させるためのプログラムである。
また、図18は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の骨構造輪郭抽出装置A、または画像処理装置B等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図18は、このコンピュータシステム300の概観図であり、図19は、システム300のブロック図である。
図18において、コンピュータシステム300は、CD-ROMドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304とを含む。
図19において、コンピュータ301は、CD-ROMドライブ3012に加えて、MPU3013と、CD-ROMドライブ3012等に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム300に、上述した実施の形態の骨構造輪郭抽出装置A等の機能を実行させるプログラムは、CD-ROM3101に記憶されて、CD-ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD-ROM3101またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ301に、上述した実施の形態の骨構造輪郭抽出装置A等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理は、単一の装置によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。