(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024035672
(43)【公開日】2024-03-14
(54)【発明の名称】プログラム、情報処理方法、内視鏡システム及び学習モデルの生成方法
(51)【国際特許分類】
A61B 1/045 20060101AFI20240307BHJP
A61B 1/00 20060101ALI20240307BHJP
G02B 23/24 20060101ALI20240307BHJP
【FI】
A61B1/045 610
A61B1/045 614
A61B1/045 618
A61B1/00 513
A61B1/045 622
G02B23/24 B
【審査請求】未請求
【請求項の数】12
【出願形態】OL
(21)【出願番号】P 2022140275
(22)【出願日】2022-09-02
(71)【出願人】
【識別番号】000113263
【氏名又は名称】HOYA株式会社
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】松村 京助
【テーマコード(参考)】
2H040
4C161
【Fターム(参考)】
2H040BA15
2H040GA02
2H040GA06
2H040GA11
4C161CC06
4C161DD03
4C161HH52
4C161LL02
4C161QQ02
4C161QQ06
4C161QQ07
4C161SS21
4C161WW02
4C161WW04
4C161WW10
4C161WW18
(57)【要約】
【課題】関心領域を高精度で検出することが可能なプログラム等を提供すること。
【解決手段】一つの側面に係るプログラムは、内視鏡に設けたSPADセンサを通じて体内の3次元データを生成し、前記3次元データを入力した場合に、関心領域に関する情報を出力するよう学習された第1学習モデルに、生成した3次元データを入力して関心領域に関する情報を出力する処理をコンピュータに実行させる。これにより、関心領域を高精度で検出することが可能となる。
【選択図】
図9
【特許請求の範囲】
【請求項1】
内視鏡に設けたSPADセンサを通じて体内の3次元データを生成し、
前記3次元データを入力した場合に、関心領域に関する情報を出力するよう学習された第1学習モデルに、生成した3次元データを入力して関心領域に関する情報を出力する
処理をコンピュータに実行させるプログラム。
【請求項2】
前記第1学習モデルを用いて、前記関心領域の種類、位置または確信度を出力する
請求項1に記載のプログラム。
【請求項3】
所定の確信度に応じて、所定数の前記関心領域に関する情報を出力する
請求項2に記載のプログラム。
【請求項4】
前記内視鏡は、第1発光部を有し、
前記第1発光部の波長は405nm±10nmであり、
前記第1発光部により発光を繰り返し実行させて前記3次元データを生成する
請求項1又は2に記載のプログラム。
【請求項5】
前記内視鏡は、第2発光部を有し、
前記第2発光部による発光時に、前記SPADセンサを通じて撮影された体内の内視鏡画像を取得し、
内視鏡画像を入力した場合に、関心領域を特定するよう学習された第2学習モデルに、取得した内視鏡画像を入力して関心領域を特定し、
前記第1発光部により発光を繰り返し実行させて、特定した関心領域を含む体内の3次元データを生成し、
生成した3次元データを前記第1学習モデルに入力する
請求項4に記載のプログラム。
【請求項6】
所定の段階の光量及び発光時間で、前記第1発光部により発光を実行させて複数の体内の内視鏡画像を、前記SPADセンサを通じて取得し、
時系列で隣接する内視鏡画像同士の差分画像を複数組生成し、
複数の差分画像を組み合わせて3次元データを生成する
請求項4に記載のプログラム。
【請求項7】
前記関心領域を含む体内の内視鏡画像の上に、前記関心領域の3次元データを拡大表示する
請求項1又は2に記載のプログラム。
【請求項8】
内視鏡に設けたSPADセンサを通じて体内の3次元データを生成し、
前記3次元データを入力した場合に、関心領域に関する情報を出力するよう学習された第1学習モデルに、生成した3次元データを入力して関心領域に関する情報を出力する
処理をコンピュータが実行する情報処理方法。
【請求項9】
内視鏡用プロセッサと、前記内視鏡用プロセッサに接続される内視鏡と、を備える内視鏡システムにおいて、
前記内視鏡は、SPADセンサを備え、
前記内視鏡用プロセッサは、制御部を備え、
前記制御部は、
内視鏡に設けたSPADセンサを通じて体内の3次元データを生成し、
前記3次元データを入力した場合に、関心領域に関する情報を出力するよう学習された第1学習モデルに、生成した3次元データを入力して関心領域に関する情報を出力する
ことを特徴とする内視鏡システム。
【請求項10】
前記内視鏡は、波長が405nm±10nmである第1発光部を備え、
前記制御部は、
前記第1発光部により発光を繰り返し実行させて前記3次元データを生成する
ことを特徴とする請求項9に記載の内視鏡システム。
【請求項11】
前記内視鏡は、第2発光部を備え、
前記制御部は、
前記第2発光部による発光時に、前記SPADセンサを通じて撮影された体内の内視鏡画像を取得し、
内視鏡画像を入力した場合に、関心領域を特定するよう学習された第2学習モデルに、取得した内視鏡画像を入力して関心領域を特定し、
前記第1発光部により発光を繰り返し実行させて、特定した関心領域を含む体内の3次元データを生成し、
生成した3次元データを前記第1学習モデルに入力する
ことを特徴とする請求項10に記載の内視鏡システム。
【請求項12】
内視鏡に設けたSPADセンサを通じて生成した体内の3次元データと、前記3次元データにおける関心領域に関する情報とを含む訓練データを取得し、
取得した訓練データを用いて、体内の3次元データを入力した場合に関心領域に関する情報を出力する学習モデルを生成する
処理をコンピュータが実行する学習モデルの生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報処理方法、内視鏡システム及び学習モデルの生成方法に関する。
【背景技術】
【0002】
近年、内視鏡検査における各種の画像処理技術がある。例えば、特許文献1には、内視鏡画像から抽出(検出)された関心領域と、3次元医用画像とを効率的に関連付けるプログラムが開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に係る発明は、3次元データに基づき関心領域を検出することができないという問題がある。
【0005】
一つの側面では、関心領域を高精度で検出することが可能なプログラム等を提供することにある。
【課題を解決するための手段】
【0006】
一つの側面に係るプログラムは、内視鏡に設けたSPADセンサを通じて体内の3次元データを生成し、前記3次元データを入力した場合に、関心領域に関する情報を出力するよう学習された第1学習モデルに、生成した3次元データを入力して関心領域に関する情報を出力する処理をコンピュータに実行させる。
【発明の効果】
【0007】
一つの側面では、関心領域を高精度で検出することが可能となる。
【図面の簡単な説明】
【0008】
【
図1】内視鏡システムの構成例を示す模式図である。
【
図3】
図2に示す内視鏡の先端部の各構成部品の一例を示す図である。
【
図4】プロセッサの構成例を示すブロック図である。
【
図5】訓練データDB及び光量設定データDBのレコードレイアウトの一例を示す説明図である。
【
図6】距離データの算出処理を説明する説明図である。
【
図7】3次元データの生成処理を説明する説明図である。
【
図8】関心領域情報出力モデルを説明する説明図である。
【
図9】関心領域に関する情報の表示画面の一例を示す説明図である。
【
図10】関心領域情報出力モデルの生成処理の手順を示すフローチャートである。
【
図11】3次元データに基づき関心領域に関する情報を出力する際の処理手順を示すフローチャートである。
【
図12】関心領域の3次元データを生成する処理のサブルーチンの処理手順を示すフローチャートである。
【
図13】関心領域の3次元データを生成する処理のサブルーチンの処理手順を示すフローチャートである。
【
図14】対象物検査システムの概要を示す説明図である。
【
図16】実施形態2における訓練データDB及び検査結果DBのレコードレイアウトの一例を示す説明図である。
【
図17】撮像装置の構成例を示すブロック図である。
【
図18】検査モデルを用いて対象物の検査結果を出力する際の処理手順を示すフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明をその実施形態を示す図面に基づいて詳述する。
【0010】
(実施形態1)
実施形態1は、内視鏡に設けたSPAD(Single Photon Avalanche Diode)センサを通じて生成した体内の3次元データに基づき、人工知能(AI:Artificial Intelligence)を用いて関心領域に関する情報を出力する形態に関する。
【0011】
通常、被検体の体内の関心領域(病変部;患部)を検出するために、機械学習により学習済みの学習モデルが多く利用されると考えられる。しかし、学習モデルを利用しても関心領域を検出できない場合がある。例えば、隆起型の腫瘍とは異なる表面型(表面隆起型、表面平坦型または表面陥凹型)の腫瘍に対し、隆起がはっきりしていないため、関心領域の検出精度が低下するおそれがある。
【0012】
本実施形態では、内視鏡に設けたSPADセンサを通じて生成した体内の3次元データを利用することにより、表層の関心領域の中身を立体的に表示することができる。立体的に表示された関心領域の形状等を容易に識別できるため、関心領域の検出精度を向上させる。
【0013】
図1は、内視鏡システムの構成例を示す模式図である。
図1に示すシステムは、被検体の体内に挿入されて撮像を行い、観察対象の映像信号を出力する内視鏡1、内視鏡1が出力した映像信号を内視鏡画像に変換する内視鏡用プロセッサ2、及び内視鏡画像等を表示する表示装置3を含む。各装置は、コネクタを介して電気信号または映像信号等の送受信を行う。
【0014】
内視鏡1は、先端部に撮像素子がある挿入部を被検体の体内に挿入し、診断または治療を行う器具である。内視鏡1は、先端にある撮像素子を用いて捉えた撮像画像を内視鏡用プロセッサ2に転送する。
【0015】
内視鏡用プロセッサ2は、内視鏡1の先端にある撮像素子から取り込まれた撮像画像に対して画像処理を行い、内視鏡画像を生成して表示装置3に出力する情報処理装置である。また、以下では簡潔のため、内視鏡用プロセッサ2をプロセッサ2と読み替える。
【0016】
表示装置3は、液晶ディスプレイ又は有機EL(electroluminescence)ディスプレイ等であり、プロセッサ2から出力された内視鏡画像等を表示する。
【0017】
図2は、内視鏡1の外観図である。内視鏡1は、先端部11、処置具挿入チャネル12、操作部13及びコネクタ14を含む。
【0018】
先端部11は、撮像素子及び光源等を含み、内視鏡1の先端に設置される。処置具挿入チャネル12は、把持具、生検針、鉗子、スネア、クランプ、ハサミ、メスまたは切開器具等を含む処置具を通すためのチャンネルである。操作部13にはレリーズボタン、内視鏡の先端を曲げるためのアングルノブ等が設けられ、例えば送気、送水、送ガス等の周辺機器の操作指示信号の入力を受け付ける。コネクタ14は、プロセッサ2に接続される。
【0019】
図3は、
図2に示す内視鏡1の先端部11の各構成部品の一例を示す図である。先端部11は、ハーネス111、端子台112、SPADセンサ113、基板114、LED(Light Emitting Diode)基板115、第1LED素子116(第1発光部)及び第2LED素子117(第2発光部)を含む。
【0020】
ハーネス111は、電気接続用の配線(電線)である。端子台112は、ハーネス111を中継する端子台(例えば、セラミック端子台)である。SPADセンサ113は、光子(フォトン)1個が画素に入射すると、アバランシェ(Avalanche)のような増倍によって1個の大きな電気パルス信号を出力する電子素子を画素ごとに並べた構造を持つセンサである。また、SPADセンサ113には、例えばCCD(Charge Coupled Device)イメージセンサ、CMD(Charge Modulation Device)イメージセンサまたはCMOS(Complementary Metal Oxide Semiconductor)イメージセンサが含まれる。
【0021】
基板114は、例えば、FPC基板、セラミック基板、ガラスエポキシ基板、ガラス基板またはシリコン基板等である。LED基板115は、LEDが実装されているLED基板である。なお、LED基板115が上下に分離して配置されている例を示すが、上側のLED基板と下側のLED基板とが繋げられても良い。
【0022】
第1LED素子116及び第2LED素子117は、観察対象の照明に用いる照明光を発するLED(光源)素子である。第1LED素子116は、病変表層欠陥を明確にするための特殊光を発光するLED素子である。第1LED素子116の波長帯域は、例えば405nm±10nmである。第2LED素子117は、通常発光用の複数色または白色のLED素子である。第2LED素子117の波長帯域は、例えば380nm~650nmである。
【0023】
なお、
図3では、2つのLED素子が配置されている例を示すが、LED素子の数は限定されるものではない。なお、第1LED素子116及び第2LED素子117がプロセッサ2の内部に設置されても良い。
【0024】
図4は、プロセッサ2の構成例を示すブロック図である。プロセッサ2は、制御部21、記憶部22、操作入力部23、出力部24、光源制御部25、読取部26、大容量記憶部27及び通信部28を含む。各構成はバスBで接続されている。
【0025】
制御部21は、CPU(Central Processing Unit)、MPU(Micro-Processing Unit)、GPU(Graphics Processing Unit)、FPGA(Field Programmable Gate Array)、DSP(Digital Signal Processor)、または量子プロセッサ等の演算処理装置を含み、記憶部22に記憶された制御プログラム2P(プログラム製品)を読み出して実行することにより、プロセッサ2に係る種々の情報処理、制御処理等を行う。なお、
図2では制御部21を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。
【0026】
記憶部22は、RAM(Random Access Memory)、ROM(Read Only Memory)等のメモリ素子を含み、制御部21が処理を実行するために必要な制御プログラム2P又はデータ等を記憶している。また、記憶部22は、制御部21が演算処理を実行するために必要なデータ等を一時的に記憶する。
【0027】
操作入力部23は、例えばタッチパネル、各種スイッチ等の入力デバイスによって構成され、これらの入力デバイスに対する外部からの操作に応じて発生した入力信号を制御部21に入力する。出力部24は、制御部21の制御の下で、表示用の画像信号及び各種の情報を表示装置3に出力し、画像及び情報を表示させる。
【0028】
光源制御部25は、LED等のオン/オフ、LED等の駆動電流及び駆動電圧の調整によって照明光の発光量を制御する。また、光源制御部25は、光学フィルタの変更等によって、照明光の波長帯域を制御する。光源制御部25は、各LEDの点灯もしくは消灯、または点灯時の発光量等を独立に制御することによって、照明光の発光タイミング、発光期間、光量及び分光スペクトルの調節を行う。
【0029】
読取部26は、CD(Compact Disc)-ROM又はDVD(Digital Versatile Disc)-ROMを含む可搬型記憶媒体2aを読み取る。制御部21が読取部26を介して、制御プログラム2Pを可搬型記憶媒体2aより読み取り、大容量記憶部27に記憶しても良い。また、ネットワークN等を介して他のコンピュータから制御部21が制御プログラム2Pをダウンロードし、大容量記憶部27に記憶しても良い。さらにまた、半導体メモリ2bから、制御部21が制御プログラム2Pを読み込んでも良い。
【0030】
大容量記憶部27は、例えばHDD(Hard disk drive:ハードディスク)、SSD(Solid State Drive:ソリッドステートドライブ)等の記録媒体を備える。大容量記憶部27には、関心領域情報出力モデル(第1学習モデル)271、関心領域特定モデル(第2学習モデル)272、訓練データDB(database)273及び光量設定データDB274が記憶されている。
【0031】
関心領域情報出力モデル271は、被検体の体内(口内、食道、胃、小腸または大腸等)の関心領域(患部)に関する情報を出力する出力器であり、機械学習により生成された学習済みモデルである。関心領域特定モデル272は、被検体の体内の関心領域を特定する特定器であり、機械学習により生成された学習済みモデルである。訓練データDB273は、関心領域情報出力モデル271及び関心領域特定モデル272を構築(作成)するための訓練データを記憶している。
【0032】
なお、他のコンピュータ(図示せず)またはクラウドサーバ等により学習処理を行い、関心領域情報出力モデル271または関心領域特定モデル272をデプロイしても良い。なお、関心領域情報出力モデル271または関心領域特定モデル272を構築せずに、機械学習モデルを使ったWEB API(Application Programming Interface)を利用しても良い。
【0033】
光量設定データDB274は、第1LED素子116による発光の光量及び時間の設定データを記憶している。
【0034】
なお、本実施形態において記憶部22及び大容量記憶部27は一体の記憶装置として構成されていても良い。また、大容量記憶部27は複数の記憶装置により構成されていても良い。更にまた、大容量記憶部27はプロセッサ2に接続された外部記憶装置であっても良い。
【0035】
通信部28は、通信に関する処理を行うための通信モジュールであり、ネットワークNを介して、外部の情報処理装置等との間で情報の送受信を行う。
【0036】
図5は、訓練データDB273及び光量設定データDB274のレコードレイアウトの一例を示す説明図である。
訓練データDB273は、訓練ID列、学習モデル種類列、入力データ列及び出力データ列を含む。訓練ID列は、各訓練データを識別するために、一意に特定される訓練データのIDを記憶している。学習モデル種類列は、関心領域情報出力モデル271及び関心領域特定モデル272を含む学習モデルの種類を記憶している。
【0037】
入力データ列は、学習モデル種類が関心領域情報出力モデル271である場合、内視鏡1の先端部11に設けたSPADセンサ113を通じて生成した体内の3次元データを記憶している。出力データ列は、学習モデル種類が関心領域情報出力モデル271である場合、3次元データにおける関心領域に関する情報を記憶している。関心領域は、病変(例えば、大腸ポリープ)が写っている領域である。
【0038】
関心領域に関する情報は、病変の有無を示す情報、病変が写っている関心領域の種類(例えば、表面平坦型のポリープまたは表面隆起型のポリープ)、関心領域の位置を示す領域座標、関心領域の確信度(確率)、病変の重症度等に応じて分類された分類情報、または関心領域の面積等を含む。
【0039】
また、入力データ列は、学習モデル種類が関心領域特定モデル272である場合、第2LED素子117による発光時に、SPADセンサ113を通じて撮影された体内の内視鏡画像を記憶している。出力データ列は、学習モデル種類が関心領域特定モデル272である場合、内視鏡画像における関心領域の位置を示す領域座標を記憶している。
【0040】
光量設定データDB274は、段階列、光量列及び発光時間列を含む。段階列は、第1LED素子116による発光の段階を記憶している。発光の段階は、例えば、光量の昇順(弱いから強いまで)、または光量の降順(強いから弱いまで)に、0から1023までの1024段階であっても良い。または、発光の段階は、光量の強弱交替変化により設定されても良い。即ち、発光の段階は、実際のニーズに応じて任意の段階が設定されても良い。光量列は、第1LED素子116による発光の光量を記憶している。発光時間列は、発行の光量に対応する発光の時間を記憶している。
【0041】
なお、上述した各DBの記憶形態は一例であり、データ間の関係が維持されていれば、他の記憶形態であっても良い。
【0042】
続いて、体内の関心領域に関する情報を出力する処理を説明する。プロセッサ2は、第2LED素子117による発光時に、SPADセンサ113を通じて撮影された体内の内視鏡画像を取得する。プロセッサ2は、取得した内視鏡画像に基づき、関心領域特定モデル272を用いて関心領域を特定する。
【0043】
関心領域特定モデル272、人工知能ソフトウェアの一部であるプログラムモジュールとして利用される。関心領域特定モデル272は、内視鏡1の先端部11に設けた第2LED素子117による発光時に取得された内視鏡画像を入力した場合に、病変が写っている関心領域の位置(領域座標)と、当該関心領域の確信度とを示す情報を出力する学習モデルである。
【0044】
例えば関心領域特定モデル272は、RCNN(Regions with Convolutional Neural Network)を用いて推定を行う。関心領域特定モデル272は、領域候補抽出部と分類部とを含む。分類部は、ニューラルネットワークを含む。ニューラルネットワークは、コンボリューション層、プーリング層および全結合層を含む。
【0045】
関心領域特定モデル272は予め、プロセッサ2又は図示しない外部装置において生成され、訓練データDB273に蓄積された、関心領域特定モデル272における訓練データを用いて予め学習される。訓練データは、第2LED素子117による発光時に、SPADセンサ113を通じて撮影された体内の内視鏡画像と、当該内視鏡画像における関心領域の位置(領域座標)との関係を示す学習用のデータである。
【0046】
関心領域特定モデル272に、訓練データに含まれる内視鏡画像が入力される。領域候補抽出部は、内視鏡画像から、様々なサイズの領域候補を抽出する。分類部は、抽出された領域候補の特徴量を算出し、算出した特徴量に基づいて領域候補に映っている被写体が病変(例えば、大腸ポリープ)であるか否かを分類する。関心領域特定モデル272は、領域候補の抽出と分類とを繰り返す。
【0047】
プロセッサ2は、関心領域特定モデル272の分類部から出力された推定結果を、訓練データにおいて内視鏡画像に対しラベル付けされた情報、すなわち正解値と比較し、分類部からの出力値が正解値に近づくように、コンボリューション層及びプーリング層での演算処理に用いるパラメータを最適化する。当該パラメータは、例えばニューロン間の重み(結合係数)、各ニューロンで用いられる活性化関数の係数等である。パラメータの最適化の方法は特に限定されないが、例えば、プロセッサ2は誤差逆伝播法を用いて各種パラメータの最適化を行う。
【0048】
プロセッサ2は、訓練データに含まれる各内視鏡画像について上記の処理を行い、関心領域特定モデル272を生成する。これにより、例えばプロセッサ2は、訓練データを用いて関心領域特定モデル272の学習を行うことで、病変が写っている関心領域を特定可能なモデルを生成することができる。
【0049】
関心領域特定モデル272は、所定の閾値(例えば、80%)よりも高い確率で病変が写っていると分類された領域候補を関心領域とし、当該関心領域の範囲(領域座標)及び確信度等を出力する。
【0050】
なお、関心領域特定モデル272は、RCNNの代わりに、Fast RCNN、Faster RCNNまたはSSD(Single Shot Multibook Detector)、YOLO(You Only Look Once)、SVM(Support Vector Machine)、ベイジアンネットワーク、トランスフォーマー(Transformer)ネットワーク、または回帰木等の任意の物体検出アルゴリズムを使用しても良い。
【0051】
プロセッサ2は、関心領域特定モデル272により関心領域を特定した場合、特定した関心領域を表示装置3に出力する。表示装置3は、プロセッサ2から出力された関心領域を表示する。
【0052】
プロセッサ2は、関心領域特定モデル272により特定された関心領域において、3次元データに基づく関心領域に関する情報の出力要求を受け付ける。この場合、プロセッサ2は、受け付けた出力要求に応じて、第1LED素子116による発光を繰り返し実行させて体内の内視鏡画像を取得する。
【0053】
プロセッサ2は、特定された関心領域の領域座標に基づき、取得した体内の内視鏡画像から関心領域の内視鏡画像を抽出する。プロセッサ2は、時系列で隣接する当該関心領域の内視鏡画像同士の差分画像を複数組生成する。なお、差分画像は、体内の内視鏡画像に基づいて生成されても良い。プロセッサ2は、生成した複数の差分画像を組み合わせることにより、当該関心領域の3次元データを生成する。
【0054】
具体的には、プロセッサ2は、内視鏡1の先端部11に設けた第1LED素子116による発光を制御する。具体的には、プロセッサ2は、所定の段階(例えば、1024)の発光の光量及び時間を含む光量設定データを光量設定データDB274から取得する。プロセッサ2は、取得した各段階の発光の光量及び時間に基づいて、第1LED素子116による発光を実行させる。
【0055】
プロセッサ2は、第1LED素子116による発光制御と同時に、各段階における体内の撮像指示をSPADセンサ113に出力する。プロセッサ2は、SPADセンサ113を通じて撮像された複数の体内の内視鏡画像を時系列で取得する。例えば0から1023までの段階において、プロセッサ2は、1024枚の体内の内視鏡画像を時系列で取得する。プロセッサ2は、特定された関心領域の領域座標に基づき、取得した各体内の内視鏡画像から関心領域の内視鏡画像を抽出する。プロセッサ2は、抽出した複数の関心領域の内視鏡画像において、体内までの距離データを算出する。
【0056】
図6は、距離データの算出処理を説明する説明図である。SPADセンサ113が利用された場合、ToF(Time of Flight)による距離測定手法を利用し、当該SPADセンサ113から被検体の体内(撮像対象)までの距離を測定することができる。ToFによる距離測定手法は、光源(第1LED素子116)から発せられた光が高速(30万km/秒)で空気中を伝搬し、被検体の体内に反射してSPADセンサ113に戻ってくるまでの時間を測ることにより、体内までの距離を算出する手法である。
【0057】
図6には、発光光量グラフ90及び受光光量グラフ91が含まれる。発光光量グラフ90は、発光の光量を示すグラフである。受光光量グラフ91は、受光の光量(検出された光量)を示すグラフである。
【0058】
図示のように、発光光量グラフ90の横軸は時間を示し、単位はナノ秒(nsec)である。発光光量グラフ90の縦軸は発光の光量を示し、単位はルーメン(lm)である。受光光量グラフ91の横軸は時間を示し、単位はナノ秒(nsec)である。受光光量グラフ91の縦軸は受光の光量を示し、単位はルーメン(lm)である。なお、上述した横軸及び縦軸の単位に限定されず、他の単位であっても良い。
【0059】
距離データは以下の式(1)で表される。
距離(L) = cT/2 …(1)
cは空気中の光の速さ(30万km/秒)を示す。Tは、光源(第1LED素子116)から発せられた光が、被検体の体内に反射してSPADセンサ113に戻ってくるまでの時間(時間差)を示す。時間差Tが短いほど、SPADセンサ113から被検体の体内までの距離は短くなる。また、時間差Tが長いほど、当該SPADセンサ113から被検体の体内までの距離は長くなる。
【0060】
各内視鏡画像における距離データを求める場合、上述した式(1)を用いて、光速c及び時間差Tに基づいて、画素ごとに距離データを算出することができる。例えば、SPADセンサ113に第1LED素子116が返ってくるまでの時間差(T)が10ナノ秒である場合、上述した式(1)を用いて、距離(L)が1.5m(10nsec(0.00000001)×30万km/2)であると算出することができる。
【0061】
プロセッサ2は、時系列で隣接する関心領域の内視鏡画像同士の差分画像を複数組生成する。例えばプロセッサ2は、1024枚の関心領域の内視鏡画像を取得する。この場合、プロセッサ2は、1024枚の内視鏡画像のうち、第1内視鏡画像(例えば、n)と、当該第1内視鏡画像の撮像後に撮像された第2内視鏡画像(例えば、n+1)との相違点を抽出することにより、1023枚の差分画像を生成する。例えばプロセッサ2は、1画素(ピクセル)がRデータ、Gデータ、Bデータで構成されている内視鏡画像において、Rデータ、Gデータ、Bデータのデータ毎に差分を算出する。プロセッサ2は、算出した差分に基づいて画素ごとの差分画像を生成する。
【0062】
プロセッサ2は、予め設定された画像処理データを取得する。画像処理データは、例えば画像の色を表す画素値、または画像の境界(エッジ)を検出するための輝度値等の設定データである。なお、画像処理データは、記憶部22または大容量記憶部27に記憶されても良い。
【0063】
プロセッサ2は、算出した距離データ、取得した画像処理データ、及び生成した差分画像に基づき、3次元データを生成する。
【0064】
図7は、3次元データの生成処理を説明する説明図である。プロセッサ2は、内視鏡画像における距離データに基づき、距離値を配列した点群で形成された3次元点群データで構成されたグリッドデータ(仮想グリッド)を生成する。
図7においては、m1、m2、m3、m4及びm5を含むグリッドデータが例示されているが、これはあくまで一例であって、これに限定されるものではない。例えば、1023枚の内視鏡画像における距離データに基づき、m1、m2、・・・、m1023を含むグリッドデータを生成する。
【0065】
なお、内視鏡画像の解像度またはプロセッサ2の処理速度等に応じて、グリッドデータの精度を変更することができる。例えば、高精度低速処理1023点群、中精度中速処理640点群、または低精度高速処理320点群などを設けても良い。
【0066】
プロセッサ2は、上述した差分画像の生成処理により得られた複数の差分画像を取得する。図示のように、n1、n2、n3、n4及びn5を含む差分画像が取得される。プロセッサ2は、生成したグリッドデータ(例えば、m1、m2、m3、m4及びm5)と、取得した差分画像(例えば、n1、n2、n3、n4及びn5)とを重ね合わせることにより、3次元データを生成する。
【0067】
具体的には、プロセッサ2は、取得した差分画像の各画素の値を、該当するグリッドデータの点に当てはめる。プロセッサ2は、グリッドデータの任意の点において、差分画像の画像データがある場合、当該点を有効(ON)に設定し、または、差分画像の画像データがない場合、当該点を無効(OFF)に設定する。
【0068】
なお、グリッドデータの点に当てはめた画素の値に基づいて設けられた閾値を用いて、有効または無効に設定することができる。例えば、画素の値が閾値以上である場合、該当する点を有効に設定する。または、画素の値が閾値未満である場合、該当する点を無効に設定する。このように、全てのグリッドデータの点に差分画像の画素の値を当てはめることにより、色付き点の集合によって立体表現できる3次元データを生成することができる。
【0069】
また、差分画像に対し、画像処理データ(輝度値等)を利用することにより、3次元データの表現力を向上することができる。例えば、プロセッサ2は、差分画像の各画素の値、及び各画素に対応する輝度値を、該当するグリッドデータの点に当てはめることにより、3次元データが見やすいようにエッジ強調処理を行った3次元データを生成しても良い。
【0070】
続いて、生成した関心領域の3次元データに基づき、関心領域情報出力モデル271を用いて関心領域に関する情報を出力する処理を説明する。プロセッサ2は、3次元データを入力した場合に、関心領域に関する情報を出力するよう学習された関心領域情報出力モデル271に、生成した関心領域の3次元データを入力して関心領域に関する情報を出力する。
【0071】
図8は、関心領域情報出力モデル271を説明する説明図である。関心領域情報出力モデル271は、人工知能ソフトウェアの一部であるプログラムモジュールとして利用される。関心領域情報出力モデル271は、SPADセンサ113を通じて生成した体内の3次元データが入力された場合に、関心領域に関する情報を出力する学習モデルである。以下では、病変が大腸ポリープである例を説明するが、他の種類の病変にも同様に適用することができる。関心領域に関する情報は、病変が写っている関心領域の種類、及び確信度(確率)等を含む。
【0072】
関心領域情報出力モデル271は、畳み込みニューラルネットワーク(CNN;Convolutional Neural Network)等のニューラルネットワークによって構成される。関心領域情報出力モデル271は、領域候補抽出部71aと、分類部71bとを含む。分類部71bは、図示を省略するニューラルネットワークを含む。ニューラルネットワークは、コンボリューション層、プーリング層および全結合層を含む。
【0073】
関心領域情報出力モデル271は予め、プロセッサ2又は図示しない外部装置において生成され、訓練データDB273に蓄積された、関心領域情報出力モデル271における訓練データを用いて予め学習される。訓練データは、SPADセンサ113を通じて生成した関心領域の3次元データと、当該3次元データにおける関心領域の種類との関係を示す学習用のデータである。
【0074】
関心領域情報出力モデル271に、訓練データに含まれる各3次元データが入力される。領域候補抽出部71aは、3次元データから、様々なサイズの領域候補を抽出する。分類部71bは、抽出された領域候補の特徴量を算出し、算出した特徴量に基づいて領域候補に映っている被写体が大腸ポリープであるか否かを分類する。関心領域情報出力モデル271は、領域候補の抽出と分類とを繰り返す。
【0075】
プロセッサ2は、関心領域情報出力モデル271の分類部71bから出力された推定結果を、訓練データにおいて3次元データに対しラベル付けされた情報、すなわち正解値と比較し、分類部71bからの出力値が正解値に近づくように、コンボリューション層及びプーリング層での演算処理に用いるパラメータを最適化する。当該パラメータは、例えばニューロン間の重み(結合係数)、各ニューロンで用いられる活性化関数の係数等である。パラメータの最適化の方法は特に限定されないが、例えば、プロセッサ2は誤差逆伝播法を用いて各種パラメータの最適化を行う。
【0076】
プロセッサ2は、訓練データに含まれる各3次元データについて上記の処理を行い、関心領域情報出力モデル271を生成する。これにより、例えばプロセッサ2は訓練データを用いて関心領域情報出力モデル271の学習を行うことで、関心領域に関する情報を出力可能なモデルを生成することができる。
【0077】
関心領域情報出力モデル271は、所定の閾値(例えば、80%)よりも高い確信度で大腸ポリープが写っていると分類された関心領域の候補について、関心領域の種類及び確信度を出力する。
図8に示す例では、確信度が85パーセントである表面平坦型の大腸ポリープが写っている関心領域が検出されている。
【0078】
なお、CNNの代わりに、RCNN、Fast RCNN、Faster RCNN、SSD、YOLO、SVM、ベイジアンネットワーク、トランスフォーマーネットワーク、または回帰木等の任意の物体検出アルゴリズムを使用しても良い。
【0079】
プロセッサ2は、関心領域情報出力モデル271により検出された関心領域に関する情報を表示装置3に出力する。表示装置3は、プロセッサ2から出力された関心領域に関する情報を表示する。
【0080】
図9は、関心領域に関する情報の表示画面の一例を示す説明図である。当該画面は、内視鏡画像表示欄11a、3D(3次元データ)表示ボタン11b、3D表示欄11c及び関心領域情報表示欄11dを含む。
【0081】
内視鏡画像表示欄11aは、体内の内視鏡画像を表示する表示欄である。3D表示ボタン11bは、関心領域の3次元データを生成するボタンである。3D表示欄11cは、関心領域の3次元データを拡大表示する表示欄(子画面等)である。関心領域情報表示欄11dは、関心領域に関する情報を表示する表示欄である。
【0082】
プロセッサ2は、第2LED素子117による発光時に、SPADセンサ113を通じて撮影された体内の内視鏡画像を取得する。プロセッサ2は、取得した内視鏡画像に基づき、関心領域特定モデル272を用いて関心領域(ROI)を特定する。プロセッサ2は、特定した関心領域を含む内視鏡画像を表示装置3に出力する。表示装置3は、プロセッサ2から出力された内視鏡画像を内視鏡画像表示欄11aに表示する。
【0083】
なお、
図9には1つの関心領域が図示されているが、これに限るものではない。例えばプロセッサ2は、所定の確信度に応じて複数の関心領域を特定した場合、特定した複数の関心領域を表示装置3に出力する。なお、プロセッサ2は、確信度の高い順に、予め設定された所定数(例えば、3)の関心領域に関する情報を出力しても良い。
【0084】
プロセッサ2は、3D表示ボタン11bのタッチ(クリック)操作を受け付けた場合、所定の段階(例えば、1024)の発光の光量及び時間を含む光量設定データを光量設定データDB274から取得する。プロセッサ2は、取得した光量設定データに基づき、内視鏡1の先端部11に設けた第1LED素子116による発光を制御する。
【0085】
プロセッサ2は、第1LED素子116による発光制御と同時に、先端部11に設けたSPADセンサ113を通じて撮像された複数の体内の内視鏡画像(例えば、1024枚)を時系列で取得する。プロセッサ2は、関心領域特定モデル272により特定された関心領域の領域座標に基づき、取得した1024枚の体内の内視鏡画像から、1024枚の関心領域の内視鏡画像を抽出する。なお、プロセッサ2は、複数の関心領域を特定した場合、医師等による関心領域の選択を受け付け、選択された関心領域の領域座標に基づき、当該関心領域の内視鏡画像を体内の内視鏡画像から抽出しても良い。
【0086】
プロセッサ2は、抽出した1024枚の関心領域の内視鏡画像において、体内までの距離データを算出する。プロセッサ2は、時系列で隣接する関心領域の内視鏡画像同士の差分画像を複数組生成する。プロセッサ2は、算出した距離データ、及び生成した差分画像に基づき、関心領域の3次元データを生成する。プロセッサ2は、3次元データを入力した場合に、関心領域に関する情報を出力するよう学習された関心領域情報出力モデル271に、生成した関心領域の3次元データを入力して関心領域に関する情報を出力する。
【0087】
プロセッサ2は、当該関心領域の3次元データを拡大する。プロセッサ2は、拡大した関心領域の3次元データ、及び当該関心領域に関する情報を表示装置3に出力する。表示装置3は、拡大された関心領域の3次元データを3D表示欄11cに表示し、当該関心領域に関する情報を関心領域情報表示欄11dに表示する。
【0088】
図示のように、関心領域(ROI)を含む内視鏡画像が内視鏡画像表示欄11aに表示され、当該関心領域の3次元データが3D表示欄11cに拡大表示される。3D表示欄11cは、内視鏡画像表示欄11aの隅に重ねて配置されている。なお、3D表示欄11cの表示サイズまたは配置位置に関しては、実際のニュースに応じて設けられても良く、特に限定されるものではない。また、当該関心領域の種類、位置(領域座標)及び確信度が関心領域情報表示欄11dに表示される。
【0089】
図10は、関心領域情報出力モデル271の生成処理の手順を示すフローチャートである。プロセッサ2の制御部21は、SPADセンサ113を通じて生成した体内の3次元データと、当該3次元データにおける関心領域の種類及び位置とが対応付けられた訓練データを大容量記憶部27の訓練データDB273から複数取得する(ステップS201)。
【0090】
制御部21は、取得した訓練データを用いて、体内の3次元データを入力として、体内の関心領域に関する情報を出力とする関心領域情報出力モデル271を生成する(ステップS202)。制御部21は、生成した関心領域情報出力モデル271を記憶部22または大容量記憶部27に記憶し(ステップS203)、一連の処理を終了する。
【0091】
図11は、3次元データに基づき関心領域に関する情報を出力する際の処理手順を示すフローチャートである。プロセッサ2の制御部21は、光源制御部25を介して、第2LED素子117による発光を制御する(ステップS211)。制御部21は、内視鏡1の先端部11に設けたSPADセンサ113に、体内の撮像指示を出力する(ステップS212)。SPADセンサ113は、制御部21から出力された撮像指示に応じて体内を撮像する。制御部21は、SPADセンサ113を通じて撮像した内視鏡画像を取得する(ステップS213)。
【0092】
制御部21は、取得した内視鏡画像に基づき、関心領域特定モデル272を用いて関心領域を特定する(ステップS214)。具体的には、制御部21は、取得した内視鏡画像を関心領域特定モデル272に入力し、病変が写っている関心領域の位置(領域座標)と、当該関心領域の確信度とを示す情報を出力する。
【0093】
制御部21は、関心領域特定モデル272により特定された関心領域において、当該関心領域の3次元データに基づく関心領域に関する情報の出力要求を操作入力部23により受け付ける(ステップS215)。制御部21は、受け付けた出力要求に応じて、関心領域の3次元データを生成する処理のサブルーチンを実行する(ステップS216)。なお、3次元データの生成処理のサブルーチンに関しては後述する。
【0094】
制御部21は、生成した関心領域の3次元データを関心領域情報出力モデル271に入力し(ステップS217)、所定の確信度に応じて、所定数の関心領域の種類または確信度等を含む関心領域に関する情報を出力する(ステップS218)。例えば、所定の確信度(例えば、80%)以上である複数の関心領域に関する情報を出力しても良い。なお、所定数は予め設定された数(例えば、3)であっても良い。この場合は、確信度の高い順に所定数の関心領域に関する情報を出力しても良い。
【0095】
制御部21は、当該関心領域の3次元データを拡大する(ステップS219)。制御部21は、出力部24を介して、関心領域を含む内視鏡画像、及び、拡大された当該関心領域の3次元データを表示装置3に出力する(ステップS220)。
【0096】
表示装置3は、プロセッサ2から出力された内視鏡画像、及び拡大された3次元データを取得する(ステップS311)。表示装置3は、取得した関心領域を含む内視鏡画像の上に、拡大された当該関心領域の3次元データを表示し(ステップS312)、処理を終了する。
【0097】
図12及び
図13は、関心領域の3次元データを生成する処理のサブルーチンの処理手順を示すフローチャートである。プロセッサ2の制御部21は、所定の段階(例えば、1024)の発光の光量及び時間を含む光量設定データを大容量記憶部27の光量設定データDB274から取得する(ステップS01)。制御部21は、取得した各段階(例えば、0~1023段階)から、1つの段階を取得する(ステップS02)。例えば、最初の段階が0段階である。
【0098】
光源制御部25は、取得した段階の発光の光量及び時間に基づいて、第1LED素子116による発光を制御する(ステップS03)。制御部21は、内視鏡1の先端部11に設けたSPADセンサ113に、体内の撮像指示を出力する(ステップS04)。SPADセンサ113は、制御部21から出力された撮像指示に応じて被検体の体内を撮像する。制御部21は、関心領域の領域座標に基づき、SPADセンサ113を通じて撮像した体内の内視鏡画像から、関心領域の内視鏡画像を取得(抽出)する(ステップS05)。
【0099】
制御部21は、所定の段階において、当該段階が最後の段階であるか否かを判定する(ステップS06)。制御部21は、当該段階が最後の段階でないと判定した場合(ステップS06でNO)、ステップS02の処理に戻り、当該段階の次の段階を取得する。制御部21は、当該段階が最後の段階であると判定した場合(ステップS06でYES)、取得した各内視鏡画像において、例えばToFによる距離測定手法を利用し、当該SPADセンサ113から被検体の体内までの距離データを算出する(ステップS07)。
【0100】
制御部21は、複数(例えば、1024枚)の内視鏡画像のうち、第1内視鏡画像(例えば、n)と、当該第1内視鏡画像の撮像後に撮像された第2内視鏡画像(例えば、n+1)とを取得する(ステップS08)。制御部21は、取得した第1内視鏡画像と第2内視鏡画像との差分画像を生成する(ステップS09)。例えば制御部21は、1画素がRデータ、Gデータ、Bデータで構成されている内視鏡画像において、Rデータ、Gデータ、Bデータのデータ毎に差分を算出する。制御部21は、算出した差分に基づいて画素ごとの差分画像を生成する。
【0101】
制御部21は、複数の内視鏡画像のうち、当該内視鏡画像が最後の内視鏡画像であるか否かを判定する(ステップS10)。制御部21は、当該内視鏡画像が最後の内視鏡画像でないと判定した場合(ステップS10でNO)、ステップS08の処理に戻り、新たな第1内視鏡画像(例えば、n+1)と、当該第1内視鏡画像の撮像後に撮像された第2内視鏡画像(例えば、n+2)とを取得する。
【0102】
制御部21は、当該内視鏡画像が最後の内視鏡画像であると判定した場合(ステップS10でYES)、記憶部22または大容量記憶部27に予め記憶された画像処理データ(輝度値等)を取得する(ステップS11)。なお、画像処理データは必須ではなく省略しても良い。制御部21は、各内視鏡画像における距離データに基づき、距離値を配列した点群で形成された3次元点群データで構成されたグリッドデータを生成する(ステップS12)。
【0103】
制御部21は、取得した画像データに基づき、生成したグリッドデータと差分画像とを重ね合わせる画像処理を行うことにより、3次元データを生成する(ステップS13)。具体的には、制御部21は、取得した差分画像の各画素の値、及び各画素に対応する画像処理データ(輝度値等)を、該当するグリッドデータの点に当てはめることにより、色付き点の集合によって立体表現できる3次元データを生成する。制御部21は、3次元データの生成処理のサブルーチンを終了してリターンする。
【0104】
なお、本実施形態では、関心領域情報出力モデル271及び関心領域特定モデル272を用いて、関心領域に関する情報を出力した例を説明したが、これに限るものではない。例えば、関心領域情報出力モデル271のみを利用することにより、関心領域に関する情報を出力しても良い。
【0105】
具体的には、プロセッサ2は、内視鏡1に設けたSPADセンサ113を通じて体内の内視鏡画像を取得する。プロセッサ2は、取得した内視鏡画像の3次元データを生成する。プロセッサ2は、3次元データを入力した場合に、関心領域に関する情報を出力するよう学習された関心領域情報出力モデル271に、生成した3次元データを入力して関心領域に関する情報を出力する。
【0106】
この場合、関心領域情報出力モデル271から出力された関心領域に関する情報は、関心領域の種類、位置(領域座標)または確信度等を含む。すなわち、関心領域情報出力モデル271を利用することにより、関心領域の種類と位置との両方を取得することができる。
【0107】
本実施形態によると、SPADセンサ113を通じて生成した3次元データに基づき、関心領域情報出力モデル271を用いて、関心領域に関する情報を出力することが可能となる。
【0108】
本実施形態によると、3次元データにより学習された関心領域情報出力モデル271を利用することにより、隆起がはっきりしていない表面型の腫瘍等の検出精度を向上させることが可能となる。
【0109】
本実施形態によると、関心領域特定モデル272により特定された関心領域を3次元データに変換することにより、立体的に病変形状等を識別できるため、病変の検出精度を向上させる。
【0110】
(実施形態2)
実施形態2は、SPADセンサを通じて生成した対象物の3次元データに基づき、人工知能(AI:Artificial Intelligence)を用いて当該対象物を分類する形態に関する。なお、実施形態1と重複する内容については説明を省略する。
【0111】
対象物は、例えば、工業用電子部品(例えば、電子基板)、絵柄印刷物(紙やフィルム等のシート状物に絵柄が印刷されたもの)、オートバイ、自動車もしくは鉄道車両等の製造物、機器、電柱、部材または食品等を含む。対象物には、人間の皮膚または眼等にも含まれても良い。対象物の3次元データを用いて、例えば、対象物に対し、良品または不良品(例えば、部品なしまたは傷あり)の分類、劣化要因(風化、凍害または化学的腐食等)の分類、または消耗レベルの分類等を行うことができる。
【0112】
本実施形態では、対象物に対する良品または不良品の分類の例を説明するが、他の分類処理にも同様に適用することができる。
【0113】
図14は、対象物検査システムの概要を示す説明図である。本実施形態のシステムは、情報処理装置4、検査装置5及び撮像装置6を含み、各装置はインターネット等のネットワークNを介して情報の送受信を行う。
【0114】
情報処理装置4は、種々の情報に対する処理、記憶及び送受信を行う情報処理装置である。情報処理装置4は、例えばサーバ装置、パーソナルコンピュータ等である。本実施形態において、情報処理装置4はサーバ装置であるものとし、以下では簡潔のためサーバ4と読み替える。
【0115】
検査装置5は、生産ラインで検査対象物に対する状態、形状、方向、大小及び高さ等の検査を行う装置である。検査装置5は、例えば加工設備へのワーク搬入、または工程間のワーク搬送におけるワークの高さの測定、ワークに対する異常の有無の検査等を行う検査装置であっても良い。ワークは、生産ラインの非加工物である。生産ラインでは、1個のワークを持ち、複数の工程で組立を行って完成品に仕上げる。
【0116】
検査装置5は、搬送コンベア、コンベアモータまたは振分装置等を含む搬送機構を有する。検査装置5は各種の操作信号に応じて、バッテリーからの電力供給を得て搬送制御を実行する。
【0117】
撮像装置6は、対象物を撮影して画像を生成する。なお、撮像装置6の代わりに、撮影可能な情報処理端末であっても良い。情報処理端末は、例えばスマートフォン、携帯電話、タブレット、パーソナルコンピュータ端末等の情報処理機器である。
【0118】
図15は、サーバ4の構成例を示すブロック図である。サーバ4は、制御部41、記憶部42、通信部43、入力部44、表示部45、読取部46及び大容量記憶部47を含む。各構成はバスBで接続されている。
【0119】
制御部41は、CPU、MPU、GPU、FPGA、DSPまたは量子プロセッサ等の演算処理装置を含み、記憶部42に記憶された制御プログラム4P(プログラム製品)を読み出して実行することにより、サーバ4に係る種々の情報処理、制御処理等を行う。なお、
図15では制御部41を単一のプロセッサであるものとして説明するが、マルチプロセッサであっても良い。
【0120】
記憶部42はRAM、ROM等のメモリ素子を含み、制御部41が処理を実行するために必要な制御プログラム4P又はデータ等を記憶している。また、記憶部42は、制御部41が演算処理を実行するために必要なデータ等を一時的に記憶する。通信部43は通信に関する処理を行うための通信モジュールであり、ネットワークNを介して、検査装置5及び撮像装置6等との間で情報の送受信を行う。
【0121】
入力部44は、マウス、キーボード、タッチパネル、ボタン等の入力デバイスであり、受け付けた操作情報を制御部41へ出力する。表示部45は、液晶ディスプレイ又は有機ELディスプレイ等であり、制御部41の指示に従い各種情報を表示する。
【0122】
読取部46は、CD-ROM又はDVD-ROMを含む可搬型記憶媒体4aを読み取る。制御部41が読取部46を介して、制御プログラム4Pを可搬型記憶媒体4aより読み取り、大容量記憶部47に記憶しても良い。また、ネットワークN等を介して他のコンピュータから制御部41が制御プログラム4Pをダウンロードし、大容量記憶部47に記憶しても良い。さらにまた、半導体メモリ4bから、制御部41が制御プログラム4Pを読み込んでも良い。
【0123】
大容量記憶部47は、例えばHDDまたはSSD等の記録媒体を備える。大容量記憶部47は、検査モデル471、訓練データDB472、光量設定データDB473及び検査結果DB474を含む。
【0124】
検査モデル471は、撮像装置6に設けたSPADセンサを通じて生成した対象物の3次元データから良品または不良品を検出する検出器であり、機械学習により生成された学習済みモデルである。訓練データDB472は、検査モデル471を構築するための訓練データを記憶している。光量設定データDB473は、発光の光量及び時間の設定データを記憶している。検査結果DB474は、対象物に対して良品または不良品を検査した検査結果を記憶している。
【0125】
なお、本実施形態において記憶部42及び大容量記憶部47は一体の記憶装置として構成されていても良い。また、大容量記憶部47は複数の記憶装置により構成されていても良い。更にまた、大容量記憶部47はサーバ4に接続された外部記憶装置であっても良い。
【0126】
サーバ4は、種々の情報処理及び制御処理等をコンピュータ単体で実行しても良いし、複数のコンピュータで分散して実行しても良い。また、サーバ4は、1台のサーバ内に設けられた複数の仮想マシンによって実現されても良いし、クラウドサーバを用いて実現されても良い。
【0127】
なお、光量設定データDB473のレコードレイアウトについては、実施形態1での光量設定データDB274のレコードレイアウトと同様であるため、説明を省略する。
【0128】
図16は、実施形態2における訓練データDB472及び検査結果DB474のレコードレイアウトの一例を示す説明図である。
訓練データDB472は、訓練ID列、入力データ列及び出力データ列を含む。訓練ID列は、各訓練データを識別するために、一意に特定される訓練データのIDを記憶している。入力データ列は、撮像装置6に設けたSPADセンサを通じて対象物の3次元データを記憶している。出力データ列は、対象物が良品であるか不良品であるかを示す情報を記憶している。
【0129】
検査結果DB474は、対象物ID列、検査結果列及び検査日時列を含む。対象物ID列は、対象物を特定する対象物IDを記憶している。検査結果列は、対象物に対して良品または不良品を検査した検査結果を記憶している。検査日時列は、対象物に対して検査を行った日時情報を記憶している。
【0130】
なお、上述した各DBの記憶形態は一例であり、データ間の関係が維持されていれば、他の記憶形態であっても良い。
【0131】
図17は、撮像装置6の構成例を示すブロック図である。撮像装置6は、制御部61、記憶部62、無線通信部63、撮影部64、SPADセンサ65、発光部66及び光源制御部67を含む。各構成はバスBで接続されている。
【0132】
制御部61は、CPUまたはMPU等の演算処理装置を含み、記憶部62に記憶された制御プログラム6P(プログラム製品)を読み出して実行することにより、撮像装置6に係る撮像処理及び制御処理等を行う。記憶部62は、RAMもしくはROM等のメモリ素子、またはHDD等記録媒体を含み、制御部61が処理を実行するために必要な制御プログラム6P、及び撮像画像等を記憶している。
【0133】
無線通信部63は、通信に関する処理を行うための無線通信モジュールであり、ネットワークNを介して、サーバ4等と撮像画像の送受信を行う。撮影部64は、被写体となる対象物を撮像し画像を出力するものであり、受光した光を電気信号に変え画像とするCCD、CMDまたはCMOS等の撮像素子、及び被写体からの光を撮像素子に集光するためのレンズ等の光学系を備えている。撮影部64は、撮像した対象物の撮像画像を制御部61に出力する。
【0134】
SPADセンサ65は、実施形態1でのSPADセンサ113と同様であるため、説明を省略する。発光部66は、良品または不良品の判定にさらに容易になるための白色光を発光するLED素子である。発光部66の波長は、例えば380nm~650nmである。光源制御部67は、LED等のオン/オフ、LED等の駆動電流及び駆動電圧の調整によって照明光の発光量を制御する。また、光源制御部67は、光学フィルタの変更等によって、照明光の波長帯域を、例えば405nm±10nmに制御する。
【0135】
続いて、対象物に対して良品または不良品を検査する処理を説明する。検査装置5は、搬送機構上の対象物が撮像可能位置に達した場合、当該対象物を撮像する撮像指示を撮像装置6に送信する。撮像装置6は、検査装置5から送信された撮像指示に応じて、発光部66による発光を制御する。
【0136】
具体的には、撮像装置6は、所定の段階(例えば、1024)の発光の光量及び時間を含む光量設定データをサーバ4の光量設定データDB473から取得する。なお、光量設定データは予め撮像装置6の記憶部62に記憶されても良い。撮像装置6は、取得した各段階の発光の光量及び時間に基づき、光源制御部67を介して、発光部66による発光を実行させる。
【0137】
撮像装置6は、発光部66による発光制御と同時に、SPADセンサ65を通じて、各段階における対象物を撮像する。撮像装置6は、例えば0~1023段階において、1024枚の対象物の撮像画像を時系列で取得する。撮像装置6は、取得した複数の撮像画像(例えば、1024枚)をサーバ4に送信する。
【0138】
なお、本実施形態では、対象物の撮像画像が撮像装置6からサーバ4に送信された例を説明したが、これに限るものではない。例えば、撮像装置6が撮影した対象物の画像をメモリーカード等経由でサーバ4に転送しても良い。
【0139】
サーバ4は、撮像装置6から送信された複数の撮像画像を受信する。サーバ4は、受信した対象物の撮像画像において、対象物までの距離データを算出する。サーバ4は、時系列で隣接する撮像画像同士の差分画像を複数組生成する。サーバ4は、算出した距離データ、及び生成した差分画像に基づき、対象物の3次元データを生成する。なお、3次元データの生成処理に関しては、実施形態1での3次元データの生成処理と同様であるため、説明を省略する。
【0140】
サーバ4は、生成した対象物の3次元データに基づき、検査モデル471を用いて、対象物が良品であるか不良品であるかを判定する。検査モデル471は、人工知能ソフトウェアの一部であるプログラムモジュールとして利用される。検査モデル471は、SPADセンサ65を通じて生成した対象物の3次元データが入力された場合に、当該対象物に対し、良品または不良品を検査した検査結果を出力する学習モデルである。
【0141】
検査モデル471は、畳み込みニューラルネットワーク等のニューラルネットワークによって構成される。例えば検査モデル471には、CNNの一種であるRCNNが用いられる。検査モデル471は、領域候補抽出部と分類部とを含む。分類部は、ニューラルネットワークを含む。ニューラルネットワークは、コンボリューション層、プーリング層および全結合層を含む。
【0142】
検査モデル471は予め、サーバ4又は図示しない外部装置において生成され、訓練データDB472に蓄積された訓練データを用いて予め学習される。訓練データは、SPADセンサ65を通じて生成した対象物の3次元データと、当該対象物が良品であるか不良品であるかを示す情報とが対応付けられた学習用のデータである。
【0143】
検査モデル471に、訓練データに含まれる各3次元データが入力される。領域候補抽出部は、3次元データから、様々なサイズの領域候補を抽出する。分類部は、抽出された領域候補の特徴量を算出する。分類部は、算出した特徴量に基づいて領域候補に映っている、不良品(例えば、傷)を示す情報であるか否かを分類する。検査モデル471は、領域候補の抽出と分類とを繰り返す。
【0144】
サーバ4は、検査モデル471の分類部から出力された推定結果(検査結果)を、訓練データにおいて3次元データに対しラベル付けされた情報、すなわち正解値と比較し、分類部からの出力値が正解値に近づくように、コンボリューション層及びプーリング層での演算処理に用いるパラメータを最適化する。当該パラメータは、例えばニューロン間の重み、各ニューロンで用いられる活性化関数の係数等である。パラメータの最適化の方法は特に限定されないが、例えば、サーバ4は誤差逆伝播法を用いて各種パラメータの最適化を行う。
【0145】
サーバ4は、訓練データに含まれる各3次元データについて上記の処理を行い、検査モデル471を生成する。これにより、例えばサーバ4は訓練データを用いて検査モデル471の学習を行うことで、対象物に対して良品または不良品を検査した検査結果を出力可能なモデルを生成することができる。
【0146】
検査モデル471は、所定の閾値(例えば、80%)よりも高い確信度で、不良品を示す情報(例えば、傷)が写っていると分類された領域の候補を推定した場合、当該対象物が不良品である検査結果を出力する。なお、領域の候補は、単一または複数であっても良い。
【0147】
なお、本実施形態では、良品と不良品との2種類の例を説明したが、これに限るものではない。例えば、良品、部品なし、または傷あり等の不良の種別による複数の分類であっても良い。この場合、サーバ4は、対象物の3次元データと、当該対象物の不良の種別とが対応付けられた訓練データを用いて、検査モデル471を学習させる。なお、良品、不良レベル1、不良レベル2または不良レベル3等の不良レベルによる複数の分類であっても良い。
【0148】
なお、RCNNの代わりに、Fast RCNN、Faster RCNN、SSD、YOLO、SVM、ベイジアンネットワーク、トランスフォーマーネットワーク、または回帰木等の任意の物体検出アルゴリズムを使用しても良い。
【0149】
図18は、検査モデル471を用いて対象物の検査結果を出力する際の処理手順を示すフローチャートである。撮像装置6の制御部61は、無線通信部63を介して、撮像指示を検査装置5から受信する(ステップS631)。なお、制御部61は、サーバ4から撮像指示を受信しても良い。制御部61は、受信した撮像指示に応じて、無線通信部63を介して、サーバ4の大容量記憶部47の光量設定データDB473から、所定の段階の発光の光量及び時間を含む光量設定データを取得する(ステップS632)。
【0150】
制御部61は、取得した各段階の発光の光量及び時間に基づいて、光源制御部67を介して、発光部66による発光を実行させる(ステップS633)。制御部61は、SPADセンサ65を通じて、各段階における対象物を撮像した撮像画像を取得する(ステップS634)。制御部61は、取得した対象物の撮像画像を無線通信部63によりサーバ4に送信する(ステップS635)。
【0151】
サーバ4の制御部41は、撮像装置6から送信された対象物の撮像画像を通信部43により受信する(ステップS431)。制御部41は、受信した対象物の撮像画像に基づき、当該対象物の3次元データを生成する(ステップS432)。なお、3次元データの生成処理に関しては、実施形態1での3次元データの生成処理と同様であるため、説明を省略する。
【0152】
制御部41は、生成した対象物の3次元データを検査モデル471に入力し(ステップS433)、当該対象物に対し、良品または不良品を検査した検査結果を出力する(ステップS434)。制御部41は、出力した検査結果を表示部45により表示し(ステップS435)、処理を終了する。
【0153】
なお、上述した処理に限るものではない。例えば、サーバ4は、第2発光部による発光時に取得された対象物の撮像画像に基づいて不良領域を特定する。サーバ4は、特定した不良領域を含む3次元データに基づき、検査モデル471により良品または不良品を検出しても良い。
【0154】
具体的には、撮像装置6は、第2発光部(図示なし)を有する。第2発光部は、通常発光用の複数色または白色のLED素子である。第2発光部の波長帯域は、例えば380nm~650nmである。また、サーバ4の大容量記憶部47には、不良領域特定モデル(図示なし)が記憶されている。
【0155】
不良領域特定モデルは、第2発光部を通じて撮像された対象物の撮像画像に基づき、不良領域を特定する特定器であり、機械学習により生成された学習済みモデルである。不良領域特定モデルは、人工知能ソフトウェアの一部であるプログラムモジュールとして利用される。
【0156】
不良領域特定モデルは、第2発光部による発光時に取得された対象物の撮像画像を入力した場合に、不良箇所(例えば、傷)が写っている不良領域と、当該不良領域の確信度とを示す情報を出力する学習モデルである。不良領域特定モデルは、例えばRCNN、Fast RCNN、Faster RCNN、SSD、YOLOまたはSVM等の公知の手法により行える。
【0157】
サーバ4は、第2発光部による発光時に、SPADセンサ65を通じて撮影された対象物の撮像画像を取得する。サーバ4は、取得した撮像画像に基づき、不良領域特定モデルを用いて不良領域を特定する。サーバ4は、発光部(第1発光部)66による発光を繰り返し実行させて、特定した不良領域を含む対象物の3次元データを生成する。サーバ4は、生成した3次元データを検査モデル471に入力し、不良領域特定モデルにより特定された不良領域において、良品または不良品を検査した検査結果を出力する。
【0158】
本実施形態によると、SPADセンサ65を通じて生成した対象物の3次元データに基づき、検査モデル471を用いて当該対象物を分類することが可能となる。
【0159】
本実施形態によると、3次元データに基づいて生成された検査モデル471を利用することにより、対象物に対する検査結果の精度を向上させる。
【0160】
本実施形態によると、不良領域特定モデルにより特定された不良領域を3次元データに変換することにより、立体的に不良箇所の形状等を識別できるため、不良品の検出精度を向上させる。
【0161】
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0162】
1 内視鏡
11 先端部
111 ハーネス
112 端子台
113 SPADセンサ
114 基板
115 LED基板
116 第1LED素子
117 第2LED素子
12 処置具挿入チャネル
13 操作部
14 コネクタ
2 内視鏡用プロセッサ(プロセッサ)
21 制御部
22 記憶部
23 操作入力部
24 出力部
25 光源制御部
26 読取部
27 大容量記憶部
271 関心領域情報出力モデル(第1学習モデル)
71a 領域候補抽出部
71b 分類部
272 関心領域特定モデル(第2学習モデル)
273 訓練データDB
274 光量設定データDB
28 通信部
2a 可搬型記憶媒体
2b 半導体メモリ
2P 制御プログラム
3 表示装置
4 情報処理装置(サーバ)
41 制御部
42 記憶部
43 通信部
44 入力部
45 表示部
46 読取部
47 大容量記憶部
471 検査モデル
472 訓練データDB
473 光量設定データDB
474 検査結果DB
4a 可搬型記憶媒体
4b 半導体メモリ
4P 制御プログラム
5 検査装置
6 撮像装置
6P 制御プログラム
61 制御部
62 記憶部
63 無線通信部
64 撮影部
65 SPADセンサ
66 発光部(第1発光部)
66 発光部
67 光源制御部