IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 富士通株式会社の特許一覧

特開2022-189200計算プログラム、計算方法、および計算装置
<>
  • 特開-計算プログラム、計算方法、および計算装置 図1
  • 特開-計算プログラム、計算方法、および計算装置 図2
  • 特開-計算プログラム、計算方法、および計算装置 図3
  • 特開-計算プログラム、計算方法、および計算装置 図4
  • 特開-計算プログラム、計算方法、および計算装置 図5
  • 特開-計算プログラム、計算方法、および計算装置 図6
  • 特開-計算プログラム、計算方法、および計算装置 図7
  • 特開-計算プログラム、計算方法、および計算装置 図8
  • 特開-計算プログラム、計算方法、および計算装置 図9
  • 特開-計算プログラム、計算方法、および計算装置 図10
  • 特開-計算プログラム、計算方法、および計算装置 図11
  • 特開-計算プログラム、計算方法、および計算装置 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022189200
(43)【公開日】2022-12-22
(54)【発明の名称】計算プログラム、計算方法、および計算装置
(51)【国際特許分類】
   G06T 7/00 20170101AFI20221215BHJP
   A61B 8/00 20060101ALI20221215BHJP
【FI】
G06T7/00 350C
G06T7/00 612
A61B8/00
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021097657
(22)【出願日】2021-06-10
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】酒井 彬
【テーマコード(参考)】
4C601
5L096
【Fターム(参考)】
4C601EE09
4C601EE10
4C601JC06
4C601JC16
5L096BA06
5L096BA13
5L096CA18
5L096FA33
5L096GA30
5L096HA11
5L096JA11
5L096KA04
(57)【要約】
【課題】分散表現による異常判定は、検出部位の位置情報、大きさ情報、確度などの情報が一度に分散表現にエンコードされてしまうため、得られる圧縮情報が制御できず、どの部位の情報が分散表現のどの部分に影響を与えているかがわからないという問題がある。
【解決手段】計算プログラムは、複数の画像のそれぞれに含まれる検査対象物の特定部位に対応する領域の部分画像を用いて自己符号化器による機械学習を実行することで、特定部位に対応する部分画像についての第1の分散表現を、1つ以上の特定部位のそれぞれについて取得し、第1の分散表現と、複数の画像を用いた、自己符号化器による機械学習の結果とに基づいて、複数の画像についての第2の分散表現を取得する処理をコンピュータに実行させ、第1の分散表現と、第2の分散表現とに基づいて、判定対象画像に含まれる検査対象物の異常判定が実行される。
【選択図】図5
【特許請求の範囲】
【請求項1】
複数の画像のそれぞれに含まれる検査対象物の特定部位に対応する領域の部分画像を用いて自己符号化器による機械学習を実行することで、前記特定部位に対応する前記部分画像についての第1の分散表現を、1つ以上の特定部位のそれぞれについて取得し、
前記第1の分散表現と、前記複数の画像を用いた、前記自己符号化器による機械学習の結果とに基づいて、前記複数の画像についての第2の分散表現を取得する、
処理をコンピュータに実行させ、
前記第1の分散表現と、前記第2の分散表現とに基づいて、判定対象画像に含まれる前記検査対象物の異常判定が実行されることを特徴とする計算プログラム。
【請求項2】
前記部分画像を用いて前記自己符号化器による機械学習を実行する処理は、前記部分画像から取得される特徴量を、前記自己符号化器に入力する処理を含むことを特徴とする請求項1に記載の計算プログラム。
【請求項3】
前記部分画像から取得される特徴量を、前記自己符号化器に入力する処理は、前記複数の画像に対する時系列データのうち所定の時間幅の前記部分画像から取得される前記特徴量を、前記自己符号化器に入力する処理を含むことを特徴とする請求項2に記載の計算プログラム。
【請求項4】
前記第1の分散表現を取得する処理は、前記部分画像を用いて前記自己符号化器による機械学習を実行することで取得される第1の中間特徴量を、前記所定の時間幅ごとにグラフにプロットすることにより前記第1の分散表現を取得する処理を含み、
前記第2の分散表現を取得する処理は、前記第1の分散表現と前記結果とを用いて前記自己符号化器による機械学習を実行することで取得される第2の中間特徴量を、前記所定の時間幅ごとにグラフにプロットすることにより前記第2の分散表現を取得する処理を含むことを特徴とする請求項3に記載の計算プログラム。
【請求項5】
前記部分画像から取得される特徴量を、前記自己符号化器に入力する処理は、対応する前記特定部位が前記部分画像に存在する確率である確度、ならびに前記複数の画像全体に対する前記部分画像の位置および大きさの少なくとも1つを、前記特徴量として、前記自己符号化器に入力する処理を含むことを特徴とする請求項1乃至4のいずれか一項に記載の計算プログラム。
【請求項6】
前記検査対象物が正常状態である場合の特徴量を前記自己符号化器に入力する処理と、前記検査対象物が異常状態である場合の特徴量を前記自己符号化器に入力する処理との少なくとも1つを実行する
処理をコンピュータに実行させることを特徴とする請求項1に記載の計算プログラム。
【請求項7】
複数の画像のそれぞれに含まれる検査対象物の特定部位に対応する領域の部分画像を用いて自己符号化器による機械学習を実行することで、前記特定部位に対応する前記部分画像についての第1の分散表現を、1つ以上の特定部位のそれぞれについて取得し、
前記第1の分散表現と、前記複数の画像を用いた、前記自己符号化器による機械学習の結果とに基づいて、前記複数の画像についての第2の分散表現を取得する、
処理をコンピュータが実行し、
前記第1の分散表現と、前記第2の分散表現とに基づいて、判定対象画像に含まれる前記検査対象物の異常判定が実行されることを特徴とする計算方法。
【請求項8】
複数の画像のそれぞれに含まれる検査対象物の特定部位に対応する領域の部分画像を用いて自己符号化器による機械学習を実行することで、前記特定部位に対応する前記部分画像についての第1の分散表現を、1つ以上の特定部位のそれぞれについて取得し、
前記第1の分散表現と、前記複数の画像を用いた、前記自己符号化器による機械学習の結果とに基づいて、前記複数の画像についての第2の分散表現を取得する、
処理を実行する制御部を有し、
前記第1の分散表現と、前記第2の分散表現とに基づいて、判定対象画像に含まれる前記検査対象物の異常判定が実行されることを特徴とする計算装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、計算プログラム、計算方法、および計算装置に関する。
【背景技術】
【0002】
対象を破壊することなく内部構造の異常の有無を検査する超音波検査が知られている。超音波検査では、例えば、検査対象に対して二次元走査断面を撮像し、当該走査断面の画像を確認することで検査を行う。走査断面の画像は、撮像に用いるプローブが、例えば人によって走査されるため、撮像環境の変化の影響を強く受ける。このため、走査断面の画像、つまり超音波検査画像の確認は、目視によって行われることが多い。また、診断に有用な情報を提供する技術としては、CT(Computed Tomography)やMRI(Magnetic Resonance Imaging)などでのスキャン結果から3次元モデルを生成し、任意の切断面の情報を提示する技術が知られている。
【0003】
また、画像にどの様な物体が映っているかを検知する物体検知技術が知られている。物体検知技術は、例えば、機械学習によって画像内の物体を検知する手法として、DPM(Deformable Parts Model)やYOLO(You Only Look Once)が提案されている。
【0004】
また、画像に写った物体を物体検知技術により検知した結果を利用して、当該物体に異常があるか否かを判定する技術が知られている。このような技術は、超音波画像を使った診察や、工業製品の不良品の検査などに利用される。
【0005】
また、物体検知技術を利用した異常判定処理として、対象物を撮影した動画データに含まれる複数フレーム画像それぞれについて、複数種類の特徴量それぞれの検出結果と複数フレーム画像の時系列とを対応付けた検出マップ情報を用いるものがある。これは、検出マップ情報に設定された所定幅の区間領域の位置を時系列に沿って変更させた場合の検出結果の分布状態を低次元空間へ圧縮、射影した点の集合を示す分散表現を計算し、分散表現の軌跡から異常の有無を判定するものである。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2020-028680号公報
【非特許文献】
【0007】
【非特許文献1】M.A.Sadeghi and D.Forsyth,”30Hz Object Detection with DPM V5”,In Computer Vision-ECCV 2014,pages 65-79,Springer,2014
【非特許文献2】Joseph Redmon,Santosh Divvala,Ross Girshick,Ali Farhadi,”You Only Look Once: Unified, Real-Time Object Detection”,arXiv:1506.02640v5 [cs.CV],9 May 2016
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、分散表現による異常判定は、検出部位の位置情報、大きさ情報、確度などの情報が一度に分散表現にエンコードされてしまい、ブラックボックス性が高い。そのため、得られる圧縮情報が制御できず、どの部位の情報が分散表現のどの部分に影響を与えているかがわからないという問題がある。
【0009】
1つの側面では、物体検知技術を利用した検出部位の分散表現を用いた異常判定において、どの部位が分散表現に寄与したかを分析できる計算プログラム、計算方法、および計算装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
1つの態様において、計算プログラムは、複数の画像のそれぞれに含まれる検査対象物の特定部位に対応する領域の部分画像を用いて自己符号化器による機械学習を実行することで、特定部位に対応する部分画像についての第1の分散表現を、1つ以上の特定部位のそれぞれについて取得し、第1の分散表現と、複数の画像を用いた、自己符号化器による機械学習の結果とに基づいて、複数の画像についての第2の分散表現を取得する処理をコンピュータに実行させ、第1の分散表現と、第2の分散表現とに基づいて、判定対象画像に含まれる検査対象物の異常判定が実行される。
【発明の効果】
【0011】
1つの側面では、物体検知技術を利用した検出部位の分散表現を用いた異常判定において、どの部位が分散表現に寄与したかを分析できる。
【図面の簡単な説明】
【0012】
図1図1は、実施例1にかかる計算装置10の構成例を示す図である。
図2図2は、実施例1にかかる検出マップ情報131の一例を示す図である。
図3図3は、実施例1にかかる部位検出マップの一例を示す図である。
図4図4は、実施例1にかかる分散表現の計算方法の一例を示す図である。
図5図5は、実施例1にかかるオートエンコーダの構成の一例を示す図である。
図6図6は、実施例1にかかる各部位の部分分散表現の一例を示す図である。
図7図7は、実施例1にかかる全体分散表現の一例を示す図である。
図8図8は、実施例1にかかる学習装置50の構成例を示す図である。
図9図9は、実施例1にかかる検出処理の流れを示すフローチャートである。
図10図10は、実施例1にかかる異常判定処理の流れを示すフローチャートである。
図11図11は、実施例1にかかる機械学習処理の流れを示すフローチャートである。
図12図12は、ハードウェア構成例を説明する図である。
【発明を実施するための形態】
【0013】
以下に、本実施形態にかかる計算プログラム、計算方法、および計算装置の実施例を図面に基づいて詳細に説明する。なお、この実施例により本実施形態が限定されるものではない。また、各実施例は、矛盾のない範囲内で適宜組み合わせることができる。
【実施例0014】
まず、図1を用いて、実施例に係る計算装置の構成を説明する。図1は、実施例1にかかる計算装置10の構成例を示す図である。図1に示すように、計算装置10は、センサ21からデータの入力を受け付ける。また、計算装置10は、ディスプレイ22に対しデータを出力する。
【0015】
計算装置10は、画像から分散表現を計算し、分散表現を基に画像に写っている対象物に異常があるか否かを判定する。特に、計算装置10は、時系列上の複数の画像から分散表現を計算できる。このような時系列上の複数の画像は、動画データを構成する各フレームの画像であってもよい。
【0016】
センサ21は、異常判定の対象の画像を生成するための信号を取得する装置である。例えば、センサ21は、対象物に対して超音波を照射し、当該超音波の反射波を受信するプローブである。プローブは、例えば診察および物体の非破壊検査に使われるものであってもよい。また、例えば、センサ21は、対象物を撮影するRGBカメラであってもよい。
【0017】
なお、センサ21は、収集した信号をそのまま計算装置10に入力してもよいし、信号から生成した画像のデータを計算装置10に入力してもよい。つまり、計算装置10は、センサ21から受け取った信号を基に画像を生成してもよいし、センサ21から画像を受け取ってもよい。
【0018】
図1に示すように、計算装置10は、入力部11、出力部12、記憶部13、および制御部14を有する。入力部11は、データを入力するためのインタフェースである。例えば、入力部11は、センサ21からのデータの入力を受け付ける。また、入力部11は、マウスおよびキーボードなどの入力装置を介してデータの入力を受け付けてもよい。また、出力部12は、データを出力するためのインタフェースである。例えば、出力部12は、ディスプレイ22などの出力装置にデータを出力する。
【0019】
記憶部13は、データや制御部14が実行するプログラムなどを記憶する記憶装置の一例であり、例えばハードディスクやメモリなどである。記憶部13は、検出マップ情報131、モデル情報132、および正常画像情報133を有する。
【0020】
検出マップ情報131は、対象物を撮影した動画データに含まれる複数フレーム画像それぞれについて、複数種類の特徴量それぞれの検出結果と複数フレーム画像の時系列とを対応付けた情報の一例である。例えば、検出マップ情報131は、フレーム画像のそれぞれに対応するxmlデータの集合であるものとする。また、各xmlデータには、複数種類の特徴量が記載されていてよい。
【0021】
図2は、検出マップ情報の一例を示す図である。図2に示すように、検出マップ情報131は、xmlデータの集合である。xmlデータのfilename要素には、対応するフレーム画像のファイルのパスが記載される。
【0022】
ここで、センサ21は、診察のためのプローブであってよい。また、検出マップ情報131は、超音波画像から得られる特徴量であってよい。特徴量には、フレーム画像にあらかじめ定められた各部位が写っている確率の高さに応じて算出される確度が含まれてよい。さらに、特徴量には、フレーム画像において各部位が存在すると推定される領域を表す矩形の、2つの頂点の座標が含まれてよい。
【0023】
xmlデータのname要素には、部位の名称が記載される。なお、xmlデータには、確度が0でない、または確度が一定値以上の部位の情報のみが記載されるようにしてもよい。また、probability要素は、name要素に記載された部位の確度を表している。対応する部位がフレーム画像の中に存在している確率が高いほど、確度は大きくなる。
【0024】
xmin要素およびymin要素は、矩形の1つの頂点の座標を表す。また、xmax要素およびymax要素は、xmin要素およびymin要素で表される頂点と辺を共有しない頂点の座標を表す。つまり、これらの2つの頂点の座標が決まれば、矩形の位置および大きさが決まる。例えば、xmin要素およびymin要素で表される座標は矩形の左上の頂点を表す。また、xmax要素およびymax要素で表される座標は矩形の右下の頂点を表す。
【0025】
図2に示されているxmlデータの一例は、「frame001.jpg」という名前のフレーム画像のファイルに対応している。また、図2のxmlデータの一例は、部位Aが、点(384, 219)および点(517, 362)を頂点とする矩形領域に存在し、その確度が0.772151112556であることを示している。また、図2のxmlデータの一例は、部位Cが、点(242, 94)および点(298, 174)を頂点とする矩形領域に存在し、その確度が0.101077094674であることを示している。なお、座標は、例えばピクセル単位で表されたものであってもよい。
【0026】
モデル情報132は、分散表現を計算するモデルを構築するためのパラメータなどの情報である。本実施例では、モデルはオートエンコーダ(自己符号化器)であるものとする。この場合、モデル情報132は、オートエンコーダの各ユニットに設定される重みなどのパラメータを含む。
【0027】
正常画像情報133は、正常な状態にある対象物のフレーム画像に関する情報である。正常画像情報133は、フレーム画像そのものであってもよいし、フレーム画像の特徴量であってもよいし、フレーム画像の特徴量から得られた分散表現であってもよい。
【0028】
なお、記憶部13に記憶される上記情報はあくまでも一例であり、記憶部13は、上記情報以外にも様々な情報を記憶できる。
【0029】
制御部14は、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)、GPU(Graphics Processing Unit)などによって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部14は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路により実現されるようにしてもよい。制御部14は、生成部141、検出部142、設定部143、取得部144、計算部145、判定部146、および表示制御部147を有する。なお、各処理部は、プロセッサが有する電子回路の一例やプロセッサが実行するプロセスの一例である。
【0030】
生成部141は、センサ21から入力されたデータを基にフレーム画像を生成する。センサ21からフレーム画像が入力される場合は、生成部141はフレーム画像を生成しなくてもよい。
【0031】
検出部142は、フレーム画像から特徴量を抽出し、検出マップ情報131として記憶部13に格納する。検出部142は、各部位の画像を学習済みの検出モデルを使って確度を含む特徴量の検出を行う。検出モデルは、例えば、YOLO、SSD(Single Shot MultiBox Detector)、Faster-RCNN(Regional Convolutional Neural Network)などの物体検出アルゴリズムを用いるものであってもよい。
【0032】
検出部142は、複数フレーム画像のそれぞれについて、あらかじめ定められた複数の物体のそれぞれが存在する確率の高さに応じた指標である確度を検出する。複数の物体は、検出対象の各部位に対応する。また、検出部142は、フレーム画像内の矩形領域であって、物体が存在する確率が所定の値以上である矩形領域の大きさおよび位置をさらに検出する。
【0033】
設定部143、取得部144、および計算部145は、分散表現の計算に関する処理を行う。ここで、検出マップ情報131に含まれる少なくとも一部の特徴量は、時系列に沿ってマッピングすることができる。図3は、実施例1にかかる部位検出マップの一例を示す図である。図3の部位検出マップ30は、各部位の確度を時系列にマッピングしたものである。つまり、部位検出マップ30は、複数種類の特徴量の種類を第1の軸とし、時系列を第2の軸とした2次元平面に検出結果をマッピングした2次元マップということができる。ここでは、このような図を、Barcode like timelineと呼ぶ。また、Barcode like timelineを単にタイムラインと呼ぶ場合がある。
【0034】
なお、部位検出マップ30は、確度が大きいほどバーの色を濃くしてもよい。以降、分散表現を計算するオートエンコーダが学習済みであるものとして、分散表現の計算方法を説明する。オートエンコーダの学習方法については後述する。図4は、分散表現の計算方法を説明する図である。
【0035】
設定部143は、検出マップ情報131について、時系列における所定幅の区間領域を設定する。このような区間領域を、カーネルと呼ぶ。カーネルは、窓などと言い換えられてもよい。また、検出マップ情報131は、対象物を撮影した動画データに含まれる複数フレーム画像それぞれについて、複数種類の特徴量それぞれの検出結果と複数フレーム画像の時系列とを対応付けた情報の一例である。
【0036】
取得部144は、検出マップ情報131において、設定した区間領域の位置を時系列に沿って変更させた場合の、区間領域中の検出結果の分布状態を、区間領域の複数の位置それぞれについて取得する。確信度および矩形領域の座標は、分布状態の一例である。また、区間領域の複数の位置は、各時刻に対応する。つまり、取得部144は、各時刻に対応するフレーム画像における各部位の確信度、矩形領域の大きさおよび位置を、分布状態として検出マップ情報131から取得する。
【0037】
計算部145は、複数の位置それぞれの分布状態を低次元空間へ射影した点の集合を示す分散表現を計算する。図4に示すように、計算部145は、中間層が2つのユニットによって構成されるオートエンコーダ40に、分布状態、すなわち、カーネル内の情報のすべてを入力することにより、2次元空間へ射影した点の集合を示す分散表現を計算する。オートエンコーダ40は、モデル情報132を基に構築される。また、オートエンコーダ40は、入力層410、中間ユニット421、中間ユニット422、および出力層430を有する。分散表現は、中間ユニット421および中間ユニット422によって出力される中間特徴量である。そして、表示制御部147は、各カーネルの中間特徴量(x,y)の値の推移をグラフにプロットすることで、分散表現の軌跡を描画する。
【0038】
判定部146は、取得した分散表現と、対象物を撮影した判定対象動画データから得られた分散表現との比較に基づいて、判定対象動画データが異常状態の対象物を撮影したものであるか否かを判定する。また、表示制御部147は、2次元空間へ射影した点の時系列に沿った軌跡を画面に表示する。このように、異常状態の判定は、判定部146によって自動的に行われるものであってもよいし、表示制御部147によって表示された画面を見たユーザによって手動で異常判定や分析などが行われてもよい。
【0039】
ここで、図4に示すような分散表現の計算方法の場合、カーネル内の確度や、部位の位置および大きさなどの情報が一度にオートエンコーダ40に入力され、分散表現にエンコードされてしまうため、どの部位の情報が分散表現に寄与しているのかわからない。また、分散表現がどのように形成されるかが確率的に定まってしまい、正常または異常の分散表現ベクトルが表出する位置が特定されない。
【0040】
そこで、図5に示すようなオートエンコーダを用いて、Barcode like timelineを部位ごとに、その集団ごとといった形で段階的に処理することで中間状態の分散表現も同時に獲得する。これにより、どの部位の情報が分散表現に寄与しているのか判断できるようにする。また、理想状態のサンプルに対応する分散表現ベクトルを1つに固定することで獲得される分散表現を制御できるようにする。なお、理想状態のサンプルとは、血管や心臓などの対象部位が全部写っている情報である。
【0041】
図5は、実施例1にかかるオートエンコーダの構成の一例を示す図である。図5に示すように、計算装置10は、判定時に、部位ごと、例えば、重要部位である血管1および血管2の部分中間表現を取得する。図6は、実施例1にかかる各部位の部分分散表現の一例を示す図である。そして、計算装置10は、判定時に、各部位の部分中間表現のデータを1つに統合して、全体を圧縮して、全体中間表現を得て、全体を復元する。これにより、部分中間表現でその部位の解析が可能になり、全体中間表現で心臓全体の解析が可能になる。
【0042】
また、学習時に、再構成に対する損失、図5の例では、血管1と血管1、血管2と血管2、血管1、血管2、および心臓1と血管1、血管2、および心臓1のそれぞれで損失が小さくなるように最適化されモデルが構築される。
【0043】
また、正常または異常状態に対する理想データが判明しているため、学習時に、再構成に対する損失のみでなく、図5に示す、入力から全体中間表現までの理想データに対する損失が小さくなるように最適化されモデルが構築されてよい。この場合、理想データが入力された時のみ、理想データに対する損失を小さくする処理、すなわち、全体中間表現を経由する処理を最適化する処理を実行するようにしてよい。なお、当該処理の意図は、全体中間表現が乱数によって色々な形、例えば、血管疾患状態の軌跡と、血管理想状態の軌跡とか近づき過ぎたりクロスしたりしてしまうことが発生するためであり、意図した全体中間表現得るために理想状態が入力され、最適化される。
【0044】
図7は、実施例1にかかる全体分散表現の一例を示す図である。学習時に、理想データを入力した時のみ、指定された理想状態の分散表現に対する損失を全体の再構成ロスに足し合わせることで、図7に示すように、全体中間表現の表出の仕方を制御できる。図7に示す全体中間表現では、例えば、判定時に、理想状態の時に特定箇所で理想状態の軌跡を描くように定め、学習時に、理想状態の軌跡に近いほど、損失がゼロに近づくようにモデルが構築される。また、判定時に、異常状態の時に理想状態の箇所とは異なる箇所で異常状態の軌跡を描くように定め、学習時に、理想状態の軌跡に近いほど、損失がゼロに近づくようにモデルが構築されてもよい。なお、モデルの構築は、計算装置10とは別の装置で実行されてよい。
【0045】
図8を用いて、オートエンコーダ40の学習を行う学習装置の構成について説明する。図8は、学習装置の構成例を示すブロック図である。図8に示すように、学習装置50は、入力部51、出力部52、記憶部53及び制御部54を有する。入力部51は、データを入力するためのインタフェースである。出力部52は、データを出力するためのインタフェースである。
【0046】
記憶部53は、データや制御部54が実行するプログラムなどを記憶する記憶装置の一例であり、例えば、ハードディスクやメモリなどである。記憶部53は、検出マップ情報531、モデル情報532を有する。
【0047】
検出マップ情報531は、検出マップ情報131と同様の形式のデータである。ただし、検出マップ情報531は、学習用に用意された正常な状態のフレーム画像から検出された特徴量などである。
【0048】
モデル情報532は、モデル情報132と同様に、オートエンコーダ40を構築するためのパラメータなどである。ただし、モデル情報132が学習済みのパラメータであるのに対し、モデル情報532は、未学習または学習中のパラメータであってもよい。
【0049】
制御部54は、例えば、CPU、MPU、GPUなどによって、内部の記憶装置に記憶されているプログラムがRAMを作業領域として実行されることにより実現される。また、制御部54は、例えば、ASICやFPGAなどの集積回路により実現されるようにしてもよい。制御部54は、設定部541、取得部542、計算部543、および更新部544を有する。
【0050】
設定部541、取得部542、計算部543は、それぞれ設定部143、取得部144、および計算部145と同様の機能を有するものとする。更新部544は、計算部145による計算結果を基に、モデル情報532を更新する。
【0051】
[各処理の流れ]
次に、図9を用いて、計算装置10による検出処理の流れを説明する。図9は、実施例1にかかる検出処理の流れを示すフローチャートである。検出処理は、主に計算装置10の生成部141および検出部142によって行われる処理である。
【0052】
図9に示すように、まず、計算装置10は、センサデータの入力を受け付ける(ステップS101)。次に、計算装置10は、センサデータからフレームごとの画像を生成する(ステップS102)。そして、計算装置10は、各画像における部位ごとの特徴量を検出し、検出した特徴量を検出マップ情報131として記憶部13に格納する(ステップS103)。ステップS103の実行後、図9に示す検出処理は終了する。
【0053】
次に図10を用いて、計算装置10による異常判定処理の流れを説明する。図10は、実施例1にかかる異常判定処理の流れを示すフローチャートである。異常判定処理は、主に計算装置10の計算部145および判定部146によって行われる処理である。
【0054】
図10に示すように、まず、計算装置10は、カーネルに関するパラメータを設定する(ステップS201)。次に、計算装置10は、カーネル内の各画像における各部位の特徴量を検出マップ情報131から取得する(ステップS202)。
【0055】
そして、計算装置10は、モデルにより特徴量をエンコードして分散表現を計算する(ステップS203)。ここで、ステップS203では、分散表現の計算として、部分分散表現の計算と全体分散表現の計算とが実行される。部分分散表現の計算は、血管や心臓など重要部位ごとにカーネル内の特徴量をエンコードして計算するものである。全体分散表現の計算は、各部位の部分中間表現のデータを1つに統合して全体をエンコードして計算するものである。
【0056】
次に、計算装置10は、未処理の画像があるか否かを判定する(ステップS204)。未処理の画像がある場合(ステップS204:Yes)、計算装置10は、カーネルをスライドし(ステップS205)、ステップS202に戻り処理を繰り返す。
【0057】
一方、未処理の画像がなくなった場合(ステップS204:No)、計算装置10は、分散表現の軌跡を描画し表示する(ステップS206)。なお、ステップS206では、分散表現の軌跡の描画として、ステップS203で計算された部分分散表現および全体分散表現の軌跡が描画され、図6図7に示すような分散表現が描画される。
【0058】
そして、計算装置10は、分散表現の軌跡から異常の有無を判定する(ステップS207)。ステップS207の実行後、図10に示す異常判定処理は終了する。
【0059】
次に、図11を用いて、学習装置50による機械学習処理の流れを説明する。図11は、実施例1にかかる機械学習処理の流れを示すフローチャートである。学習装置50は、図5の部分中間表現の各々をデコードした結果から計算される各損失関数と、図5の全体中間表現の各々をデコードした結果から計算される損失関数とを全て足しこんでから、足しこんだ損失関数が小さくなるように最適化を実行する。
【0060】
図11に示すように、まず、学習装置50は、カーネルに関するパラメータを設定する(ステップS301)。次に、学習装置50は、カーネル内の各画像における各部位の特徴量を検出マップ情報531から取得する(ステップS302)。そして、学習装置50は、モデルにより特徴量をエンコードして分散表現を計算する(ステップS303)。また、学習装置50は、モデルにより分散表現をデコードした結果から損失関数を計算する(ステップS304)。これは、例えば、図5の例では、再構成に対する損失関数である、入力側の血管1と出力側の血管1、入力側の血管2と出力側の血管2、入力側の血管1、血管2、および心臓1と出力側の血管1、血管2、および心臓1の各損失関数が計算され、足しこまれる。
【0061】
さらに、学習装置50は、ステップS304で計算した損失関数が小さくなるようにモデルを更新する(ステップS305)。図5の例では、入力側の血管1と出力側の血管1、入力側の血管2と出力側の血管2、入力側の血管1、血管2、および心臓1と出力側の血管1、血管2、および心臓1の損失関数が小さくなるように最適化される。また、学習装置50は、正常または異常状態に対する理想データが入力された場合は、図5を用いて上述したように、入力から全体中間表現までの理想データに対する損失が小さくなるようにモデルを更新することもできる。
【0062】
次に、学習装置50は、未処理の画像があるか否かを判定する(ステップS306)。未処理の画像がある場合(ステップS306:Yes)、学習装置50は、カーネルをスライドし(ステップS307)、ステップS302に戻り処理を繰り返す。一方、未処理の画像がなくなった場合(ステップS306:No)、学習装置50は、学習処理の終了条件が充足されているか否かを判定する(ステップS308)。
【0063】
学習処理の終了条件が充足されていない場合(ステップS308:No)、学習装置50は、ステップS301に戻り処理を繰り返す。例えば、学習処理の終了条件は、ステップS301からS307までの処理が規定回数だけ繰り返されたことなどである。一方、学習処理の終了条件が充足されている場合(ステップS308:Yes)、図11に示す機械学習処理は終了する。
【0064】
[効果]
上述したように、計算装置10は、複数の画像のそれぞれに含まれる検査対象物の特定部位に対応する領域の部分画像を用いて自己符号化器による機械学習を実行することで、特定部位に対応する部分画像についての第1の分散表現を、1つ以上の特定部位のそれぞれについて取得し、第1の分散表現と、複数の画像を用いた、自己符号化器による機械学習の結果とに基づいて、複数の画像についての第2の分散表現を取得する。また、第1の分散表現と、第2の分散表現とに基づいて、判定対象画像に含まれる検査対象物の異常判定が実行される。
【0065】
物体検知技術を利用した検出部位の分散表現の軌跡による異常判定において、オートエンコーダを用いて、部位ごとに段階的に処理することで中間状態の分散表現も同時に獲得し、どの部位が分散表現に寄与したかが分析可能になる。
【0066】
また、計算装置10によって実行される、部分画像を用いて自己符号化器による機械学習を実行する処理は、部分画像から取得される特徴量を、自己符号化器に入力する処理を含む。
【0067】
これにより、分散表現の軌跡による異常判定において、部位ごとに、どの部位が分散表現に寄与したかが分析可能になる。
【0068】
また、計算装置10によって実行される、部分画像から取得される特徴量を、自己符号化器に入力する処理は、複数の画像に対する時系列データのうち所定の時間幅の部分画像から取得される特徴量を、自己符号化器に入力する処理を含む。
【0069】
これにより、分散表現の軌跡を描画し、分散表現の軌跡による異常判定が実行可能になる。
【0070】
また、計算装置10によって実行される、第1の分散表現を取得する処理は、部分画像を用いて自己符号化器による機械学習を実行することで取得される第1の中間特徴量を、所定の時間幅ごとにグラフにプロットすることにより第1の分散表現を取得する処理を含み、計算装置10によって実行される、第2の分散表現を取得する処理は、第1の分散表現と結果とを用いて自己符号化器による機械学習を実行することで取得される第2の中間特徴量を、所定の時間幅ごとにグラフにプロットすることにより第2の分散表現を取得する処理を含む。
【0071】
これにより、分散表現の軌跡を描画し、分散表現の軌跡による異常判定が実行可能になる。
【0072】
また、計算装置10によって実行される、部分画像から取得される特徴量を、自己符号化器に入力する処理は、対応する特定部位が部分画像に存在する確率である確度、ならびに複数の画像全体に対する部分画像の位置および大きさの少なくとも1つを、特徴量として、自己符号化器に入力する処理を含む。
【0073】
これにより、分散表現の軌跡による異常判定において、部位ごとに、どの部位が分散表現に寄与したかが分析可能になる。
【0074】
また、学習装置50は、検査対象物が正常状態である場合の特徴量を自己符号化器に入力する処理と、検査対象物が異常状態である場合の特徴量を自己符号化器に入力する処理との少なくとも1つを実行する。
【0075】
これにより、学習装置50は、分散表現において、理想状態の時に特定箇所で理想状態の軌跡を描くように、また、異常状態の時に理想状態の箇所とは異なる箇所で異常状態の軌跡を描くように定めることができる。
【0076】
[システム]
上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更できる。また、実施例で説明した具体例、分布、数値などは、あくまで一例であり、任意に変更できる。
【0077】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散や統合の具体的形態は図示のものに限られない。つまり、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成できる。さらに、各装置にて行われる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0078】
[ハードウェア]
図12は、ハードウェア構成例を説明する図である。図12に示すように、計算装置10は、通信インタフェース10a、HDD(Hard Disk Drive)10b、メモリ10c、プロセッサ10dを有する。また、図12に示した各部は、バスなどで相互に接続される。なお、学習装置50も同様の構成であってよい。
【0079】
通信インタフェース10aは、ネットワークインタフェースカードなどであり、他のサーバとの通信を行う。HDD10bは、図1に示した機能を動作させるプログラムやDB(データベース)を記憶する。
【0080】
プロセッサ10dは、図1に示した各処理部と同様の処理を実行するプログラムをHDD10bなどから読み出してメモリ10cに展開することで、図1などで説明した各機能を実行するプロセスを動作させるハードウェア回路である。すなわち、このプロセスは、計算装置10が有する各処理部と同様の機能を実行する。具体的には、プロセッサ10dは、生成部141および検出部142などと同様の機能を有するプログラムをHDD10bなどから読み出す。そして、プロセッサ10dは、生成部141および検出部142などと同様の処理を実行するプロセスを実行する。
【0081】
このように計算装置10は、図1に示した各処理部と同様の処理を実行するプログラムを読み出して実行することで動作制御処理を実行する計算装置として動作する。また、計算装置10は、媒体読取装置によって記録媒体からプログラムを読み出し、読み出されたプログラムを実行することで上述した実施例と同様の機能を実現することもできる。なお、この他の実施例でいうプログラムは、計算装置10によって実行されることに限定されるものではない。例えば、他のコンピュータまたはサーバがプログラムを実行する場合や、これらが協働してプログラムを実行するような場合にも、本実施形態を同様に適用できる。
【0082】
また、図1に示した各処理部と同様の処理を実行するプログラムは、インターネットなどのネットワークを介して配布できる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD-ROM、MO(Magneto-Optical disk)、DVD(Digital Versatile Disc)などのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行できる。
【0083】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【0084】
(付記1)複数の画像のそれぞれに含まれる検査対象物の特定部位に対応する領域の部分画像を用いて自己符号化器による機械学習を実行することで、前記特定部位に対応する前記部分画像についての第1の分散表現を、1つ以上の特定部位のそれぞれについて取得し、
前記第1の分散表現と、前記複数の画像を用いた、前記自己符号化器による機械学習の結果とに基づいて、前記複数の画像についての第2の分散表現を取得する、
処理をコンピュータに実行させ、
前記第1の分散表現と、前記第2の分散表現とに基づいて、判定対象画像に含まれる前記検査対象物の異常判定が実行されることを特徴とする計算プログラム。
【0085】
(付記2)前記部分画像を用いて前記自己符号化器による機械学習を実行する処理は、前記部分画像から取得される特徴量を、前記自己符号化器に入力する処理を含むことを特徴とする付記1に記載の計算プログラム。
【0086】
(付記3)前記部分画像から取得される特徴量を、前記自己符号化器に入力する処理は、前記複数の画像に対する時系列データのうち所定の時間幅の前記部分画像から取得される前記特徴量を、前記自己符号化器に入力する処理を含むことを特徴とする付記2に記載の計算プログラム。
【0087】
(付記4)前記第1の分散表現を取得する処理は、前記部分画像を用いて前記自己符号化器による機械学習を実行することで取得される第1の中間特徴量を、前記所定の時間幅ごとにグラフにプロットすることにより前記第1の分散表現を取得する処理を含み、
前記第2の分散表現を取得する処理は、前記第1の分散表現と前記結果とを用いて前記自己符号化器による機械学習を実行することで取得される第2の中間特徴量を、前記所定の時間幅ごとにグラフにプロットすることにより前記第2の分散表現を取得する処理を含むことを特徴とする付記3に記載の計算プログラム。
【0088】
(付記5)前記部分画像から取得される特徴量を、前記自己符号化器に入力する処理は、対応する前記特定部位が前記部分画像に存在する確率である確度、ならびに前記複数の画像全体に対する前記部分画像の位置および大きさの少なくとも1つを、前記特徴量として、前記自己符号化器に入力する処理を含むことを特徴とする付記1乃至4のいずれか1つに記載の計算プログラム。
【0089】
(付記6)前記検査対象物が正常状態である場合の特徴量を前記自己符号化器に入力する処理と、前記検査対象物が異常状態である場合の特徴量を前記自己符号化器に入力する処理との少なくとも1つを実行する
処理をコンピュータに実行させることを特徴とする付記1に記載の計算プログラム。
【0090】
(付記7)複数の画像のそれぞれに含まれる検査対象物の特定部位に対応する領域の部分画像を用いて自己符号化器による機械学習を実行することで、前記特定部位に対応する前記部分画像についての第1の分散表現を、1つ以上の特定部位のそれぞれについて取得し、
前記第1の分散表現と、前記複数の画像を用いた、前記自己符号化器による機械学習の結果とに基づいて、前記複数の画像についての第2の分散表現を取得する、
処理をコンピュータが実行し、
前記第1の分散表現と、前記第2の分散表現とに基づいて、判定対象画像に含まれる前記検査対象物の異常判定が実行されることを特徴とする計算方法。
【0091】
(付記8)前記部分画像を用いて前記自己符号化器による機械学習を実行する処理は、前記部分画像から取得される特徴量を、前記自己符号化器に入力する処理を含むことを特徴とする付記7に記載の計算方法。
【0092】
(付記9)前記部分画像から取得される特徴量を、前記自己符号化器に入力する処理は、前記複数の画像に対する時系列データのうち所定の時間幅の前記部分画像から取得される前記特徴量を、前記自己符号化器に入力する処理を含むことを特徴とする付記8に記載の計算方法。
【0093】
(付記10)前記第1の分散表現を取得する処理は、前記部分画像を用いて前記自己符号化器による機械学習を実行することで取得される第1の中間特徴量を、前記所定の時間幅ごとにグラフにプロットすることにより前記第1の分散表現を取得する処理を含み、
前記第2の分散表現を取得する処理は、前記第1の分散表現と前記結果とを用いて前記自己符号化器による機械学習を実行することで取得される第2の中間特徴量を、前記所定の時間幅ごとにグラフにプロットすることにより前記第2の分散表現を取得する処理を含むことを特徴とする付記9に記載の計算方法。
【0094】
(付記11)前記部分画像から取得される特徴量を、前記自己符号化器に入力する処理は、対応する前記特定部位が前記部分画像に存在する確率である確度、ならびに前記複数の画像全体に対する前記部分画像の位置および大きさの少なくとも1つを、前記特徴量として、前記自己符号化器に入力する処理を含むことを特徴とする付記7乃至10のいずれか1つに記載の計算方法。
【0095】
(付記12)前記検査対象物が正常状態である場合の特徴量を前記自己符号化器に入力する処理と、前記検査対象物が異常状態である場合の特徴量を前記自己符号化器に入力する処理との少なくとも1つを実行する
処理をコンピュータが実行することを特徴とする付記7に記載の計算方法。
【0096】
(付記13)複数の画像のそれぞれに含まれる検査対象物の特定部位に対応する領域の部分画像を用いて自己符号化器による機械学習を実行することで、前記特定部位に対応する前記部分画像についての第1の分散表現を、1つ以上の特定部位のそれぞれについて取得し、
前記第1の分散表現と、前記複数の画像を用いた、前記自己符号化器による機械学習の結果とに基づいて、前記複数の画像についての第2の分散表現を取得する、
処理を実行する制御部を有し、
前記第1の分散表現と、前記第2の分散表現とに基づいて、判定対象画像に含まれる前記検査対象物の異常判定を実行することを特徴とする計算装置。
【0097】
(付記14)前記部分画像を用いて前記自己符号化器による機械学習を実行する処理は、前記部分画像から取得される特徴量を、前記自己符号化器に入力する処理を含むことを特徴とする付記13に記載の計算装置。
【0098】
(付記15)前記部分画像から取得される特徴量を、前記自己符号化器に入力する処理は、前記複数の画像に対する時系列データのうち所定の時間幅の前記部分画像から取得される前記特徴量を、前記自己符号化器に入力する処理を含むことを特徴とする付記14に記載の計算装置。
【0099】
(付記16)前記第1の分散表現を取得する処理は、前記部分画像を用いて前記自己符号化器による機械学習を実行することで取得される第1の中間特徴量を、前記所定の時間幅ごとにグラフにプロットすることにより前記第1の分散表現を取得する処理を含み、
前記第2の分散表現を取得する処理は、前記第1の分散表現と前記結果とを用いて前記自己符号化器による機械学習を実行することで取得される第2の中間特徴量を、前記所定の時間幅ごとにグラフにプロットすることにより前記第2の分散表現を取得する処理を含むことを特徴とする付記15に記載の計算装置。
【0100】
(付記17)前記部分画像から取得される特徴量を、前記自己符号化器に入力する処理は、対応する前記特定部位が前記部分画像に存在する確率である確度、ならびに前記複数の画像全体に対する前記部分画像の位置および大きさの少なくとも1つを、前記特徴量として、前記自己符号化器に入力する処理を含むことを特徴とする付記13乃至16のいずれか1つに記載の計算装置。
【0101】
(付記18)前記検査対象物が正常状態である場合の特徴量を前記自己符号化器に入力する処理と、前記検査対象物が異常状態である場合の特徴量を前記自己符号化器に入力する処理との少なくとも1つを実行する
処理を実行する制御部を有することを特徴とする付記13に記載の計算装置。
【0102】
(付記19)プロセッサと、
プロセッサに動作可能に接続されたメモリと
を備えた計算装置であって、プロセッサは、
複数の画像のそれぞれに含まれる検査対象物の特定部位に対応する領域の部分画像を用いて自己符号化器による機械学習を実行することで、前記特定部位に対応する前記部分画像についての第1の分散表現を、1つ以上の特定部位のそれぞれについて取得し、
前記第1の分散表現と、前記複数の画像を用いた、前記自己符号化器による機械学習の結果とに基づいて、前記複数の画像についての第2の分散表現を取得する、
処理を実行し、
前記第1の分散表現と、前記第2の分散表現とに基づいて、判定対象画像に含まれる前記検査対象物の異常判定が実行されることを特徴とする計算装置。
【実施例0103】
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【符号の説明】
【0104】
10 計算装置
11 入力部
12 出力部
13 記憶部
14 制御部
21 センサ
22 ディスプレイ
40 オートエンコーダ
50 学習装置
51 入力部
52 出力部
53 記憶部
54 制御部
131 検出マップ情報
132 モデル情報
133 正常画像情報
141 生成部
142 検出部
143 設定部
144 取得部
145 計算部
146 判定部
147 表示制御部
410 入力層
421、422 中間ユニット
430 出力層
531 検出マップ情報
532 モデル情報
541 設定部
542 取得部
543 計算部
544 更新部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12