(57)【特許請求の範囲】
【請求項１】
複数の被検出部の各々に応じた波長についての検出される光量が前記複数の被検出部の各々の形状に応じて異なるように構成されたセンサを用いて取得された前記波長と前記光量との関係である光量情報が入力されるように構成された入力部と、
各々の前記被検出部についての前記形状と前記波長と前記光量との関係を表す形状特性情報を含む光量推定関係を記憶する記憶部と、
前記光量推定関係に基づいて算出される前記波長と前記光量との関係である光量推定値と、前記光量情報とが所定の条件を満たすように、前記光量推定値を最適化演算によって算出することで、前記形状の推定値である形状情報を算出する形状演算部と
を備える形状推定装置。
【請求項２】
前記形状演算部が行う前記最適化演算は、少なくとも２種類の演算方法を含み、
前記少なくとも２種類の演算方法のうち少なくとも１種類の演算方法は、収束計算を含み、
前記少なくとも２種類の演算方法は、互いに収束性が異なる、
請求項１に記載の形状推定装置。
【請求項３】
前記少なくとも２種類の演算方法は、第１の最適化演算と第２の最適化演算とを含み、
前記第１の最適化演算は、前記第２の最適化演算よりも精度が高く、
前記第２の最適化演算は、前記第１の最適化演算よりも収束性が高い、
請求項２に記載の形状推定装置。
【請求項４】
前記形状演算部は、前記少なくとも２種類の演算方法を順次に実施する、請求項３に記載の形状推定装置。
【請求項５】
前記形状演算部は、前記第１の最適化演算を行った後に、前記第２の最適化演算を行う、請求項４に記載の形状推定装置。
【請求項６】
前記形状演算部は、前記第１の最適化演算によって算出された前記形状情報を、前記第２の最適化演算に用いる、請求項５に記載の形状推定装置。
【請求項７】
前記形状演算部は、
前記第１の最適化演算を行った後に、前記第２の最適化演算を行い、
前記第１の最適化演算によって算出された前記形状情報を、前記第２の最適化演算に用い、
前記第２の最適化演算を行っている間に、前記光量情報と前記光量推定値との誤差が所定の閾値よりも大きくなったとき、前記第２の最適化演算を中断して前記第１の最適化演算を行う、
請求項３に記載の形状推定装置。
【請求項８】
前記形状演算部は、
前記少なくとも２種類の演算方法の各々を用いた演算を並列で行い、
前記演算の結果として得られた少なくとも２つの前記形状情報のうちから最適な前記形状情報を選択する、
請求項２に記載の形状推定装置。
【請求項９】
前記形状演算部は、前記光量情報と前記光量推定値との誤差の大きさに基づいて、前記形状情報を選択する、請求項８に記載の形状推定装置。
【請求項１０】
前記最適化演算は収束計算を含み、
前記形状演算部は、前記光量情報と前記光量推定値との誤差が所定の閾値よりも小さくなったときに前記収束計算を終了し、前記形状情報を決定する、
請求項１に記載の形状推定装置。
【請求項１１】
前記第１の最適化演算と前記第２の最適化演算との選択が入力されるように構成された選択入力部をさらに備え、
前記形状演算部は、前記選択入力部への入力に応じて前記第１の最適化演算又は前記第２の最適化演算を行う、
請求項３に記載の形状推定装置。
【請求項１２】
前記形状演算部は、前記第１の最適化演算を行っている間は、待ち状態を表す信号を出力する、請求項３に記載の形状推定装置。
【請求項１３】
前記待ち状態を表す信号は、表示装置に待ち状態を表示させるための信号である、請求項１２に記載の形状推定装置。
【請求項１４】
前記形状演算部は、以前に行った前記最適化演算の結果を保持している、請求項１に記載の形状推定装置。
【請求項１５】
光を射出する光源と、
前記センサと
をさらに備え、
前記センサは、
前記光源から射出された前記光を導光する導光部材と、
前記導光部材に設けられた複数の光学部材であって前記導光部材によって導光される光のスペクトルに対して互いに異なる影響を与える複数の光学部材の各々を含む複数の前記被検出部と、
前記導光部材によって導光される光であって、前記複数の光学部材によって影響を受けた光を検出し、前記光量情報を出力する光検出器と
を含む請求項１乃至１４のうち何れか１項に記載の形状推定装置。
【請求項１６】
請求項１５に記載の形状推定装置と、
前記導光部材が挿入部に設けられた内視鏡と、
前記形状情報に基づいて前記挿入部の形状を算出する内視鏡形状計算部と
を備える内視鏡システム。
【請求項１７】
複数の被検出部の各々に応じた波長についての検出される光量が前記複数の被検出部の各々の形状に応じて異なるように構成されたセンサを用いて取得された前記波長と前記光量との関係である光量情報を取得することと、
各々の前記被検出部についての前記形状と前記波長と前記光量との関係を表す形状特性情報を含む光量推定関係を取得することと、
前記光量推定関係に基づいて算出される前記波長と前記光量との関係である光量推定値と、前記光量情報とが所定の条件を満たすように、前記光量推定値を最適化演算によって算出することで、前記形状の推定値である形状情報を算出することと
をコンピュータに実行させる形状推定のためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、形状推定装置、それを備えた内視鏡システム及び形状推定のためのプログラムに関する。
【背景技術】
【０００２】
内視鏡の形状を検出するための装置が知られている。例えば特許文献１には、光ファイバを用いた形状検出プローブに係る技術が開示されている。この形状検出プローブは、内視鏡のスコープと一体的に曲がる光ファイバを備える。光ファイバには、互いに異なる波長成分の強度等を変調する光変調部が設けられている。この形状検出プローブは、光変調部による変調の前後の波長成分の強度等に基づいて、内視鏡の形状を検出することができることが特許文献１には開示されている。しかしながら特許文献１には、波長成分の強度等に基づいて、どのように内視鏡の形状を導出するのか具体的に開示されていない。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００７−１４３６００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、高精度に形状を取得できる形状推定装置、それを備えた内視鏡システム及び形状推定のためのプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
前記目的を果たすため、本発明の一態様によれば、形状推定装置は、複数の被検出部の各々に応じた波長についての検出される光量が前記複数の被検出部の各々の形状に応じて異なるように構成されたセンサを用いて取得された前記波長と前記光量との関係である光量情報が入力されるように構成された入力部と、各々の前記被検出部についての前記形状と前記波長と前記光量との関係を表す形状特性情報を含む光量推定関係を記憶する記憶部と、前記光量推定関係に基づいて算出される前記波長と前記光量との関係である光量推定値と、前記光量情報とが所定の条件を満たすように、前記光量推定値を最適化演算によって算出することで、前記形状の推定値である形状情報を算出する形状演算部とを備える。
【０００６】
前記目的を果たすため、本発明の一態様によれば、内視鏡システムは、前記形状推定装置と、前記導光部材が挿入部に設けられた内視鏡と、前記形状情報に基づいて前記挿入部の形状を算出する内視鏡形状計算部とを備える。
【０００８】
前記目的を果たすため、本発明の一態様によれば、形状推定のためのプログラムは、複数の被検出部の各々に応じた波長についての検出される光量が前記複数の被検出部の各々の形状に応じて異なるように構成されたセンサを用いて取得された前記波長と前記光量との関係である光量情報を取得することと、各々の前記被検出部についての前記形状と前記波長と前記光量との関係を表す形状特性情報を含む光量推定関係を取得することと、前記光量推定関係に基づいて算出される前記波長と前記光量との関係である光量推定値と、前記光量情報とが所定の条件を満たすように、前記光量推定値を最適化演算によって算出することで、前記形状の推定値である形状情報を算出することとをコンピュータに実行させる。
【発明の効果】
【０００９】
本発明によれば、最適化演算によって算出された光量推定値と検出された光量情報とが所定の条件を満たすように形状情報を算出するので、高精度に形状を取得できる形状推定装置、それを備えた内視鏡システム及び形状推定のためのプログラムを提供できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の一実施形態に係る内視鏡システムの構成例の概略を示すブロック図。
【図２】一実施形態に係るセンサ駆動部及びセンサ部の構成例の概略を示す図。
【図３】光源が射出する光の波長と強度との関係の一例を示す図。
【図４】光検出器の入射光の波長と検出感度との関係の一例を示す図。
【図５】被検出部の構成例の概略を示す断面図。
【図６】光吸収体の光の波長と吸収率との関係の一例を示す図。
【図７Ａ】被検出部について説明するための図。
【図７Ｂ】被検出部について説明するための図。
【図７Ｃ】被検出部について説明するための図。
【図８】波長と基準光量との関係の一例を示す図。
【図９】第１の被検出部の波長と光量の変化率との関係である曲率特性情報の一例を示す図。
【図１０】第２の被検出部の波長と光量の変化率との関係である曲率特性情報の一例を示す図。
【図１１】第１の被検出部及び第２の被検出部の曲率と光量の変化率との関係である曲率特性情報の一例を示す図。
【図１２】光検出器によって取得される波長と光量との関係の一例を示す図。
【図１３】波長と、第１の被検出部に係る変化率と第２の被検出部に係る変化率の積との関係の一例を示す図。
【図１４】波長と、第１の被検出部に係る変化率及び第２の被検出部に係る変化率との関係の一例を示す図。
【図１５】第１の算出方法に係る形状最適化部の構成例の概略を示すブロック図。
【図１６】第１の算出方法に係る動作の一例を示すフローチャート。
【図１７】第１の算出方法に係る形状情報算出処理の一例を示すフローチャート。
【図１８】第２の算出方法に係る形状最適化部の構成例の概略を示すブロック図。
【図１９】第２の算出方法に係る動作の一例を示すフローチャート。
【図２０】第２の算出方法に係る第１の形状情報算出処理の一例を示すフローチャート。
【図２１】第２の算出方法に係る第２の形状情報算出処理の一例を示すフローチャート。
【図２２】第３の算出方法に係る形状最適化部の構成例の概略を示すブロック図。
【図２３】第３の算出方法に係る形状情報算出処理の一例を示すフローチャート。
【発明を実施するための形態】
【００１１】
本発明の一実施形態について図面を参照して説明する。本発明に係る形状推定装置１０が用いられた内視鏡システム１の構成例の概略を図１に示す。図１に示すように、内視鏡システム１は、内視鏡８１０を備える。内視鏡８１０は、細長形状の湾曲し得る挿入部８１２と、内視鏡８１０の各種操作を行うための操作部８１４とを有する。内視鏡システム１は、さらに、内視鏡８１０の各種動作を制御するための内視鏡制御部８２０を備える。内視鏡制御部８２０には、内視鏡８１０により取得された画像を処理するための画像処理部８２２が設けられている。
【００１２】
内視鏡システム１は、本発明に係る形状推定装置１０を含む。形状推定装置１０は、内視鏡８１０の挿入部８１２の形状を推定するための装置である。内視鏡システム１は、さらに、表示部１８０と、入力機器１９０とを備える。表示部１８０は、例えば液晶ディスプレイやＣＲＴディスプレイや有機ＥＬディスプレイといった一般的な表示装置である。表示部１８０は、内視鏡制御部８２０と接続されており、内視鏡８１０により取得された画像を表示する。また、表示部１８０は、形状推定装置１０の後述する制御部１００と接続されており、形状推定装置１０により得られた内視鏡８１０の挿入部８１２の形状に係る情報を表示する。
【００１３】
入力機器１９０は、例えばキーボードやマウスやポインティングデバイスやタグリーダやボタンスイッチやスライダやダイヤルといった一般的な入力用の機器である。入力機器１９０は、形状推定装置１０の後述する制御部１００に接続されている。入力機器１９０は、ユーザが形状推定装置１０の動作に係る各種指令を入力するために用いられる。また、入力機器１９０は、記憶媒体でもよい。この場合、記憶媒体に記憶された情報が制御部１００へと入力される。
【００１４】
形状推定装置１０について説明する。形状推定装置１０は、制御部１００と、センサ駆動部３００と、センサ部４００とを備える。形状推定装置１０のセンサ駆動部３００は、光源３１０と光検出器３２０とを含む。また、センサ部４００は、内視鏡８１０の挿入部８１２内に設けられた複数の被検出部４１０を含む。センサ駆動部３００とセンサ部４００との構成例の概略を図２を参照して説明する。
【００１５】
図２に示すように、センサ駆動部３００は、光源３１０と、光検出器３２０と、光分岐部３３０と、反射防止部材３４０とを備える。
【００１６】
光源３１０は、例えばランプやＬＥＤやレーザダイオードといった一般に知られている各種光源のうち何れかを含む。光源３１０は、さらに波長を変換するための蛍光体などを有していてもよい。光源３１０は、所定の発光波長領域の光を射出する。光源３１０が射出する光についての波長と強度との関係の一例を図３に示す。図３に示したλ１は、後述するセンサ部４００の第１の被検出部４１１が吸収するスペクトルの特徴的な波長である第１の波長λ１を示す。ここで特徴的な波長とは、例えば吸収が極大となる波長である。同様に、図３に示したλ２は、センサ部４００の第２の被検出部４１２が吸収するスペクトルの特徴的な波長である第２の波長λ２を示す。図３に示すように、発光波長領域は、例えば第１の波長λ１や第２の波長λ２といったように、センサ部４００が用いる波長を含む。
【００１７】
光検出器３２０は、例えば分光器やカラーフィルタといった分光のための素子と、例えばフォトダイオードといった受光素子とを備える。光検出器３２０は、所定の波長帯域の光の強度を検出し、光量情報を出力する。ここで、光量情報とは、所定の波長帯域とその波長帯域の光強度との関係を表す情報である。光検出器３２０に入射する光の波長と光検出器３２０の検出感度との関係の一例を図４に示す。図４に示すように、光検出器３２０は、例えば第１の波長λ１や第２の波長λ２といったセンサ部４００が用いる波長に対して検出感度を有する。
【００１８】
光検出器３２０は、様々な波長の光量を同時に取得できるように構成されていてもよいし、時分割的に取得されるように構成されていてもよい。また、光源３１０が時分割的に波長が異なる光を順次射出するように構成され、光検出器３２０が分光のための素子を含まずに時分割的に異なる波長の光量を検出するように構成されてもよい。
【００１９】
光分岐部３３０は、光カプラやハーフミラー等を含む。光分岐部３３０は、光源３１０から射出された光を後述するセンサ部４００の導光部材４２０へと導く。また、光分岐部３３０は、導光部材４２０によって導かれた光を光検出器３２０へと導く。
【００２０】
反射防止部材３４０は、光源３１０から射出された光のうち、導光部材４２０に入射しなかった光を吸収する部材である。反射防止部材３４０は、光源３１０から射出された光のうち、導光部材４２０に入射しなかった光が光検出器３２０に戻るのを防ぐ役割を担う。
【００２１】
センサ部４００は、複数の被検出部４１０と、導光部材４２０と、反射部材４３０とを備える。導光部材４２０は、例えば光ファイバであり、可撓性を有する。導光部材４２０は、内視鏡８１０の挿入部８１２内にその長手方向に沿って設けられている。導光部材４２０は、挿入部８１２のうち形状を算出したい領域に渡って設けられている。前述のとおり、光源３１０から射出された光は、光分岐部３３０を介して導光部材４２０に入射する。導光部材４２０は、入射した光を導光部材４２０に沿って導く。
【００２２】
導光部材４２０には、複数の被検出部４１０が設けられている。被検出部４１０は、第１の被検出部４１１と、第２の被検出部４１２とを含む。さらに同様に、第ｍの被検出部４１ｍを含む。ここでｍは任意の数である。第１の被検出部４１１、第２の被検出部４１２等は、それぞれ導光部材４２０の長手軸に沿って異なる位置に設けられている。
【００２３】
被検出部４１０の構成例の概略について図５を参照して説明する。図５は、導光部材４２０の長手軸と垂直な断面の概略を示す図である。被検出部４１０は、例えば光ファイバである導光部材４２０の被覆４２１及びクラッド４２２の一部が除去されてコア４２３が露出したところに光吸収体４２９が塗布された構造を有している。複数の被検出部４１０の各々には、波長毎の光吸収率が互いに異なる光吸収体４２９が用いられている。
【００２４】
光吸収体４２９における光の波長と吸収率との関係の一例を図６に示す。図６において、実線は第１の被検出部４１１に設けられた光吸収体４２９の吸光特性を示し、破線は第２の被検出部４１２に設けられた光吸収体４２９の吸光特性を示し、一点鎖線は第ｍの被検出部４１ｍに設けられた光吸収体４２９の吸光特性を示す。図６に示すように、異なる被検出部４１０に設けられた光吸収体４２９は、互いにその吸光特性が異なる。第１の被検出部４１１に設けられた光吸収体４２９において最も光吸収率が高い波長を、上述の第１の波長λ１と称し、第２の被検出部４１２に設けられた光吸収体４２９において最も光吸収率が高い波長を、上述の第２の波長λ２と称し、第ｍの被検出部４１ｍに設けられた光吸収体４２９において最も光吸収率が高い波長を、第ｍの波長λｍと称することにする。
【００２５】
被検出部４１０について図７Ａ、図７Ｂ及び図７Ｃを参照してさらに説明する。図７Ａ、図７Ｂ及び図７Ｃは、導光部材４２０の形状と、そのときの導光部材４２０内の光路とを模式的に示した図である。例えば図７Ａに示すように、光吸収体４２９が内側となるように導光部材４２０が湾曲しているとき、光吸収体４２９に入射する光は比較的少なくなり、導光部材４２０による光伝達率は高くなる。一方、図７Ｃに示すように、光吸収体４２９が外側となるように導光部材４２０が湾曲しているとき、光吸収体４２９に入射する光は比較的多くなり、導光部材４２０による光伝達率は低くなる。図７Ｂに示すように、導光部材４２０が湾曲していないとき、導光部材４２０による光伝達率は、図７Ａに示す場合よりも低く図７Ｃに示す場合よりも高くなる。以降説明のため、図７Ａに示すように導光部材４２０による光伝達率が高くなる方向への導光部材４２０の曲げを正方向と称し、図７Ｃに示すように導光部材４２０による光伝達率が低くなる方向への導光部材４２０の曲げを負方向と称することにする。このように、例えば各々の光吸収体４２９は、導光部材によって導光される光のスペクトルに対して互いに異なる影響を与える光学部材として機能する。
【００２６】
図２に戻ってセンサ駆動部３００及びセンサ部４００について説明を続ける。導光部材４２０の光分岐部３３０に接続されていない側の端部には、反射部材４３０が設けられている。反射部材４３０は、光分岐部３３０から導光部材４２０によって導かれた光を、光分岐部３３０の方向へと反射する。
【００２７】
以上のような構成により、光源３１０から射出された光は、光分岐部３３０を介して導光部材４２０へと導かれる。この光は、導光部材４２０内を基端側から先端側へと伝達される。その際、導光部材４２０に設けられた被検出部４１０において、この被検出部４１０の湾曲状態に応じて光が吸収され、波長毎に伝達される光の量が減少する。この光は、反射部材４３０で反射し、導光部材４２０内を先端側から基端側へと伝達される。この反射光は、光分岐部３３０を介して光検出器３２０へと導かれる。光検出器３２０では、導かれた光の強度を波長毎に検出する。光検出器３２０で検出される波長毎の検出強度に基づけば、各々の被検出部４１０の湾曲状態、すなわち、内視鏡８１０の挿入部８１２の形状が導出され得る。
【００２８】
なお、光分岐部３３０を含むセンサ駆動部３００とセンサ部４００とは、固定されていてもよいし、着脱自在に構成されてもよい。
【００２９】
制御部１００について説明する。制御部１００は、例えばパーソナルコンピュータといった電子計算機によって構成される。制御部１００は、演算部１０１と、内視鏡形状計算部１４０と、光検出器駆動部１５０と、出力部１６０とを備える。
【００３０】
演算部１０１は、例えばＣＰＵ又はＡＳＩＣを含む機器等によって構成されている。演算部１０１は、形状演算部１１０と、記憶部１２０と、入力部１３０とを含む。
【００３１】
入力部１３０には、光検出器３２０から、波長と検出した光強度とに係る光量情報が入力される。入力部１３０は、入力された光量情報を形状演算部１１０に伝達する。また、入力部１３０には、入力機器１９０によって入力されたユーザの指示を表す信号等が入力される。また、入力部１３０には、例えばセンサ部４００の種別や個体を識別するための識別情報などが入力され得る。また、入力部１３０には、被検出部４１０の形状特性情報についても入力され得る。また、入力部１３０には、内視鏡制御部８２０から出力された情報も入力され得る。入力部１３０は、これら入力された信号を光検出器駆動部１５０又は形状演算部１１０に伝達する。
【００３２】
記憶部１２０は、形状演算部１１０が行う演算に必要な各種情報を記憶している。記憶部１２０は、例えば計算アルゴリズムを含むプログラムや被検出部４１０の後述する特性情報や、特性情報を含む光量推定関係を記憶している。
【００３３】
形状演算部１１０は、入力部１３０を介して取得した光量情報と、記憶部１２０に記憶されている情報とに基づいて、各々の被検出部４１０の形状を算出する。形状演算部１１０は、形状算出に用いられる形状最適化部２００を有する。形状最適化部２００の詳細については後述する。形状演算部１１０は、算出した被検出部４１０の形状を内視鏡形状計算部１４０及び出力部１６０に伝達する。また、形状演算部１１０は、光検出器３２０のゲイン等、形状算出に必要な光検出器３２０の動作に関する情報を、光検出器駆動部１５０へ出力する。
【００３４】
制御部１００に含まれる内視鏡形状計算部１４０は、例えばＣＰＵやＡＳＩＣを含む。内視鏡形状計算部１４０は、形状演算部１１０で算出された各々の被検出部４１０の形状に基づいて、被検出部が配置されている内視鏡８１０の挿入部８１２の形状を算出する。算出された挿入部８１２の形状は、出力部１６０に伝達される。なお、内視鏡形状計算部１４０は、形状演算部１１０に組み込まれてもよい。
【００３５】
光検出器駆動部１５０は、入力部１３０から取得した信号に基づいて、光検出器３２０の駆動信号を生成する。この駆動信号によって光検出器駆動部１５０は、例えば入力部１３０を介して取得した入力機器１９０へ入力されたユーザの指示に基づいて、光検出器３２０の動作のオン／オフを切り替えたり、形状演算部１１０から取得した情報に基づいて、光検出器３２０のゲインを調整したりする。また、光検出器駆動部１５０は、光源３１０の動作も制御するように構成されていてもよい。光検出器駆動部１５０は、生成した駆動信号を、出力部１６０に伝達する。
【００３６】
出力部１６０は、内視鏡形状計算部１４０から取得した挿入部８１２の形状を、表示部１８０へ出力し、表示部１８０に挿入部８１２の形状を表示させる。また、出力部１６０は、内視鏡形状計算部１４０から取得した挿入部８１２の形状を内視鏡制御部８２０へ出力する。また、出力部１６０は、形状演算部１１０から取得した被検出部４１０の形状を内視鏡制御部８２０へ出力する。内視鏡制御部８２０は、取得した挿入部８１２の形状や被検出部４１０の形状に基づいて、内視鏡８１０の動作を制御する。また、出力部１６０は、光検出器駆動部１５０から取得した駆動信号を光検出器３２０へ出力し、光検出器３２０を駆動させる。
【００３７】
次に本実施形態に係る内視鏡システム１の動作について説明する。内視鏡８１０の挿入部８１２は、ユーザによって観察対象物の内部に挿入される。このとき、挿入部８１２の形状は様々に変化する。内視鏡８１０は、挿入部８１２の先端に設けられた撮像装置を用いて撮像を行う。撮像により得られた画像信号は、内視鏡制御部８２０の画像処理部８２２に伝達される。画像処理部８２２は、取得した画像信号に基づいて、内視鏡画像を作成する。画像処理部８２２は、作成した内視鏡画像を表示部１８０に表示させる。
【００３８】
また、ユーザが内視鏡８１０の挿入部８１２の形状を表示部１８０に表示させたいときや、内視鏡制御部８２０に挿入部８１２の形状を用いた各種動作を行わせたいとき、ユーザはその旨を入力機器１９０を介して制御部１００に入力する。このとき、形状推定装置１０は動作する。
【００３９】
形状推定装置１０が動作するとき、センサ駆動部３００の光源３１０は、光を射出する。この光は、光分岐部３３０を介して被検出部４１０を有する導光部材４２０内を基端側から先端側へと進む。この光は、導光部材４２０の先端に設けられた反射部材４３０で反射して、導光部材４２０内を先端側から基端側へと進む。導光部材４２０内を進むとき、波長毎の光の強度は、被検出部４１０の形状に応じて変化する。この光は、光分岐部３３０を介して光検出器３２０に到達する。
【００４０】
光検出器３２０は、光検出器３２０に到達した光の強度を波長毎に検出する。光検出器３２０は、検出した光強度を制御部１００の入力部１３０へと出力する。形状演算部１１０は、入力部１３０を介して取得した光検出器３２０が検出した光強度に基づいて、各々の被検出部４１０の形状を算出する。
【００４１】
内視鏡制御部８２０は、出力部１６０を介して形状演算部１１０から各々の被検出部４１０の形状の情報を取得する。内視鏡制御部８２０は、被検出部４１０の形状の情報を用いて内視鏡８１０の動作を制御する。
【００４２】
また、内視鏡形状計算部１４０は、形状演算部１１０から各々の被検出部４１０の形状の情報を取得する。内視鏡形状計算部１４０は、被検出部４１０の形状に基づいて、内視鏡８１０の挿入部８１２の形状を算出する。内視鏡形状計算部１４０は、算出した挿入部８１２の形状を出力部１６０を介して表示部１８０に表示させる。また、内視鏡制御部８２０は、出力部１６０を介して内視鏡形状計算部１４０から挿入部１８２の形状の情報を取得し、その情報を内視鏡８１０の制御に用いる。
【００４３】
このように、形状推定装置によれば、各々の被検出部４１０の形状が取得される。被検出部４１０の形状に基づいて内視鏡形状計算部１４０が内視鏡８１０の挿入部８１２の形状を算出することで、ユーザは内視鏡８１０の操作中に挿入部８１２の形状を知ることができる。また、被検出部４１０の形状に基づいて内視鏡制御部８２０が各種演算を行うことで、内視鏡制御部８２０は、挿入部８１２の形状に応じて適切に内視鏡の動作を制御することができる。
【００４４】
次に本実施形態に係る形状推定装置１０の演算部１０１で行われる演算について詳述する。初めにわかりやすさのため、被検出部４１０に第１の被検出部４１１及び第２の被検出部４１２のみが含まれる場合を例に挙げて説明する。
【００４５】
まず、内視鏡システム１の使用の前に予め準備される情報について説明する。光検出器３２０が検出する波長λｎの光についての光量Ｄλｎは次に示す式（１）で与えられる。
【００４６】
【数１】
0006278848.tif 000002
【００４７】
ここで、Ｅλｎは光源３１０から射出される波長λｎの光についての光量であり、Ａλｎは第１の被検出部４１１における波長λｎの光についての吸収率であり、Ｂλｎは第２の被検出部４１２における波長λｎの光についての吸収率であり、Ｌλｎは光分岐部３３０や導光部材４２０や反射部材４３０等の光路に含まれる被検出部４１０以外の部材による波長λｎの光についての吸収率である。
【００４８】
射出光量Ｅλｎや吸収率Ｌλｎは、被検出部４１０の形状に依存しない。したがって、光量Ｄλｎは次のようにも得られる。すなわち、各々の被検出部４１０が基準となる所定の形状（以下、基準形状と称する）である場合に光検出器３２０が検出する波長λｎの光についての光量を基準光量Ｉλｎとして求めておく。また、第１の被検出部４１１以外の被検出部４１０が基準形状である場合に光検出器３２０が検出する波長λｎの光についての光量と基準光量Ｉλｎとの比をαλｎとする。また、第２の被検出部４１２以外の被検出部４１０が基準形状である場合に光検出器３２０が検出する波長λｎの光についての光量と基準光量Ｉλｎとの比をβλｎとする。このとき、光量Ｄλｎは次に示す式（２）で与えられる。
【００４９】
【数２】
0006278848.tif 000003
【００５０】
各々の被検出部４１０における光の吸収率は、被検出部４１０の形状、例えば曲率κに応じて変化する。したがって，上述の比αλｎは、次に示す式（３）で与えられる。
【００５１】
【数３】
0006278848.tif 000004
【００５２】
ここで、καは、第１の被検出部４１１の曲率であり、関数ｆλｎは、例えば記憶部１２０に曲率特性情報として記憶されている変化率を示す。
【００５３】
同様に、上述の比βλｎは、次に示す式（４）で与えられる。
【００５４】
【数４】
0006278848.tif 000005
【００５５】
ここで、κβは、第２の被検出部４１２の曲率であり、関数ｇλｎは、例えば記憶部１２０に曲率特性情報として記憶されている変化率を示す。
【００５６】
式（２）、式（３）、式（４）より、次に示す式（５）が得られる。
【００５７】
【数５】
0006278848.tif 000006
【００５８】
基準光量Ｉλｎを決定する基準形状として、例えば各々の被検出部４１０が全て直線形状である場合、すなわち、曲率が０であり曲率半径が∞である場合が採用され得る。基準形状は、直線形状でなくてもよい。また、基準形状は、全ての被検出部について同じでなくてもよく、各々の被検出部について任意の形状を基準形状としてもよい。
【００５９】
以下、基準形状を各々の被検出部４１０が全て直線形状である場合として説明する。波長と基準光量Ｉとの関係は、例えば図８のようなスペクトルを示す。全ての被検出部４１０が基準形状であるときの光量Ｄλｎ（０，０）は、定義より、次に示す式（６）で与えられる。
【００６０】
【数６】
0006278848.tif 000007
【００６１】
すなわち、定義より、基準光量はＩλｎであり、ｆλｎ（０）＝１であり、ｇλｎ（０）＝１である。
【００６２】
曲率特性情報である関数ｆλｎ及び関数ｇλｎは、対象となる被検出部以外の形状を基準形状にした状態で、対象となる被検出部の曲率を取り得る範囲で変化させることにより実測され得る。第１の被検出部４１１の曲率特性情報、すなわち、波長と変化率との関係は、例えば図９に示すようなスペクトルを示す。ここで、κ１１＜κ１２＜０＜κ１３＜κ１４である。また、第２の被検出部４１２の曲率特性情報、すなわち、波長と変化率との関係は、例えば図１０に示すようなスペクトルを示す。ここで、κ２１＜κ２２＜０＜κ２３＜κ２４である。
【００６３】
図９及び図１０では、それぞれ４種類の曲率の場合のみが例示されている。しかしながら、曲率特性情報としては、様々な曲率において図９及び図１０に示すような曲率と変化率との関係が取得され得る。したがって、例えば図１１に示すような、曲率καと変化率との関係を表す第１の被検出部４１１の曲率特性情報や、曲率κβと変化率との関係を表す第２の被検出部４１２の曲率特性情報が得られる。
【００６４】
なお、関数ｆλｎ（κα）は、式（５）より次に示す式（７）で与えられる。
【００６５】
【数７】
0006278848.tif 000008
【００６６】
同様に、関数ｇλｎ（κβ）は、次に示す式（８）で与えられる。
【００６７】
【数８】
0006278848.tif 000009
【００６８】
曲率特性情報や、図８に示すような基準光量Ｉλｎは、内視鏡システム１の製造時や内視鏡システム１の設置時等に予め取得され、予め記憶部１２０に記憶され得る。また、曲率特性情報や基準光量Ｉλｎは、使用の度に取得されてもよい。例えば、内視鏡システム１の起動時に、挿入部８１２を直線形状として基準光量Ｉλｎを実測し、さらに挿入部８１２の形状を順次に所定の湾曲状態としてこのときに検出される光量から曲率特性情報が取得されてもよい。
【００６９】
また、曲率特性情報や基準光量Ｉλｎは、制御部１００に設けられた記憶部１２０ではなく、センサ駆動部３００やセンサ部４００に設けられた記憶部に記憶されてもよい。このようにすることで、センサ駆動部３００やセンサ部４００が他の装置に接続されたときにもそれらの特性情報が用いられ得る。
【００７０】
また、例えばセンサ駆動部３００やセンサ部４００に機器の固有の値を含む識別情報が備えられ、記憶部１２０にはこの識別情報と関連付けられた曲率特性情報や基準光量Ｉλｎが記憶されるように構成されてもよい。このようにすれば、制御部１００は、複数のセンサ駆動部３００やセンサ部４００の曲率特性情報や基準光量Ｉλｎを管理して用いることができる。識別情報は、入力機器１９０であるキーボードから入力されてもよいし、ＲＦ−ＩＤタグから読み出されてもよいし、センサ駆動部３００やセンサ部４００に設けられた記憶部から読み出されてもよい。
【００７１】
次に、内視鏡システム１の使用時に行われる演算について説明する。第１の被検出部４１１及び第２の被検出部４１２の曲率が、それぞれ任意の曲率κα及び任意の曲率κβである場合を考える。このとき、光量Ｄ（κα，κβ）は、例えば図１２に示すようなスペクトルを示す。この光量Ｄ（κα，κβ）は、光検出器３２０によって取得される。
【００７２】
式（５）及び予め取得されている図８に示すような基準光量Ｉλｎに基づけば、第１の被検出部４１１に係る変化率と第２の被検出部４１２に係る変化率との積であるｆ（κα）×ｇ（κβ）が求まる。波長とｆ（κα）×ｇ（κβ）との関係は、例えば図１３に示すようになる。
【００７３】
例えば図１３で示される波長とｆ（κα）×ｇ（κβ）との関係を、図１４に示すように、波長とｆ（κα）との関係、及び、波長とｇ（κβ）との関係に分離できれば、光量Ｄ（κα，κβ）から第１の被検出部４１１の曲率καと第２の被検出部４１２の曲率κβとが求まる。
【００７４】
一例として、第１の被検出部４１１の曲率καと第２の被検出部４１２の曲率κβとを求めるために、第１の波長λ１と第２の波長λ２とに注目して、光検出器３２０によって検出された波長毎の光量Ｄλ１及び光量Ｄλ２について、次に示す式（９）を考える。
【００７５】
【数９】
0006278848.tif 000010
【００７６】
基準光量であるＩλ１及びＩλ２と、曲率特性情報であるｆλ１、ｆλ２、ｇλ１、及びｇλ２とが予め記憶部１２０に記憶されている。したがって、光量Ｄλ１及び光量Ｄλ２に基づいて、第１の被検出部４１１の曲率καと第２の被検出部４１２の曲率κβとが算出され得る。
【００７７】
以上、被検出部４１０が第１の被検出部４１１と第２の被検出部４１２との２つの被検出部を含む場合を例に挙げて説明したが、被検出部の数が３つ以上であっても同様に算出され得る。
【００７８】
なお、上述の例では、第１の被検出部４１１の曲率καと第２の被検出部４１２の曲率κβとを算出するため、第１の波長λ１と第２の波長λ２とを用いたがこれに限らない。第１の波長λ１と第２の波長λ２以外の波長を用いてもよい。ただし、各々の被検出部４１０の光吸収体４２９の光吸収率が最大となる波長を用いた方が、曲率の算出精度は向上する。
【００７９】
また、ここで用いる波長はある程度の帯域幅を有していてもよい。ただし、光吸収体４２９の光吸収率が最大となる波長を含む帯域が用いられることが好ましい。帯域幅を有する波長についての光量を演算に用いることで、光検出器３２０の分解能をそれほど高くする必要がなくなり、形状推定装置１０の低コスト化が実現され得る。また、局所的な波長が用いられないことで、ノイズの影響を受けにくくなる利点がある。演算に用いられる複数の波長帯域は互いにその一部が重なり合っていてもよい。演算に用いられる波長については以下の説明においても同じである。
【００８０】
また、上述の式（９）について、対数をとってもよい。対数が用いられることで計算が容易になり得る。
【００８１】
［第１の算出方法］
上述の説明では、被検出部４１０が２つであり、これら第１の被検出部４１１の曲率κα及び第２の被検出部４１２の曲率κβが算出される例を示した。しかしながら、一般に、被検出部の数はいくつでもよく、ここでは２つ以上の場合を考える。また、被検出部４１０の形状を表すパラメータは、曲率に限らず、回転等を含んでいてもよい。以降の説明では、第１の被検出部４１１から第ｍの被検出部４１ｍまでのそれぞれの被検出部の形状を表す情報である形状情報ｋ１乃至ｋｍについて考える。形状情報は、曲率や曲率半径や湾曲角度や回転角等、種々の形状を表す値を含み得る。上述の例で曲率特性情報と称していたものは、形状特性情報と称することにする。
【００８２】
以降、形状情報ｋ１乃至ｋｍを求めるため、収束計算を行う例を示す。すなわち、収束計算において繰り返し算出される光量推定値をＥλｘとしたときに、光量推定値Ｅλｘを光検出器３２０で検出される光量Ｄλｘに収束させることで、形状情報ｋ１乃至ｋｍを得ることを考える。
【００８３】
光量推定値Ｅλｘは、例えば上述の式（５）を参照して説明した第１の被検出部４１１及び第２の被検出部４１２のみを含む被検出部４１０の場合には、次に示す式（１０）に相当する。
【００８４】
【数１０】
0006278848.tif 000011
【００８５】
ここで、κ１は第１の被検出部４１１の曲率の推定値であり、κ２は第２の被検出部４１２の曲率の推定値である。このように、光量推定値Ｅλｘは、第１乃至第ｍの被検出部の形状情報ｋ１乃至ｋｍの関数として与えられる。例えば式（１０）に相当する光量推定値を求めるための光量推定式は、記憶部１２０に記憶されている。
【００８６】
光検出器３２０で検出される光量Ｄλｘと光量推定値Ｅλｘとを用いて、評価値Ｊを次に示す式（１１）のように定義する。
【００８７】
【数１１】
0006278848.tif 000012
【００８８】
ここで、ｐは演算に使用する波長の数であり、ｐはｍ以上である。すなわち、評価値Ｊは、光量推定式を用いて算出された光量推定値Ｅλｘの検出された光量Ｄλｘに対する誤差の２乗を足し合わせた値である。
【００８９】
収束計算は、形状演算部１１０内にある形状最適化部２００で行われる。本算出方法に係る形状最適化部２００の構成例の概略を図１５に示す。図１５に示すように、形状最適化部２００は、推定値演算部２１２と評価値演算部２１４とを含む。
【００９０】
推定値演算部２１２は、記憶部１２０から光量推定式を取得する。推定値演算部２１２には、演算開始信号が入力される。演算開始信号が入力されたとき、推定値演算部２１２は、光量推定値Ｅλｘの算出を開始する。推定値演算部２１２は、算出した光量推定値Ｅλｘと形状情報ｋ１乃至ｋｍとを評価値演算部２１４へと出力する。
【００９１】
評価値演算部２１４は、推定値演算部２１２から取得した光量推定値Ｅλｘと光検出器３２０で取得された光量Ｄλｘとに基づいて、式（１１）を用いて評価値Ｊを算出する。評価値演算部２１４は、評価値Ｊが所定の閾値Ａより大きいとき、評価値Ｊを推定値演算部２１２に返し、推定値演算部２１２に光量推定値Ｅλｘの演算を繰り返させる。一方、評価値Ｊが所定の閾値Ａ以下であるとき、評価値演算部２１４は、推定値演算部２１２から取得した形状情報を内視鏡形状計算部１４０及び出力部１６０に出力する。
【００９２】
本算出方法で用いられるアルゴリズムは、１つの最適化アルゴリズム、又はいくつかの最適化アルゴリズムを組み合わせた複合最適化手法等である。用いられるアルゴリズムはどのようなアルゴリズムでもよい。例えば、粒子郡最適化（Ｐａｒｔｉｃｌｅ  Ｓｗａｒｍ  Ｏｐｔｉｍｉｚａｔｉｏｎ；ＰＳＯ）や差分進化（Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｅｖｏｌｕｔｉｏｎ；ＤＥ）を含む集団的降下法や、遺伝的アルゴリズム（Ｇｅｎｅｔｉｃ  Ａｌｇｏｒｉｔｈｍ；ＧＡ）や、シミュレーテッド・アニーリング法（Ｓｉｍｕｌａｔｅｄ  Ａｎｎｅａｌｉｎｇ；ＳＡ）や、ニュートン法や、最急降下法や、最小二乗法や、シンプレックス法等が用いられ得る。
【００９３】
第１の算出方法を用いた制御部１００の動作について図１６に示すフローチャートを参照して説明する。ここで説明するのは、内視鏡８１０の挿入部８１２の形状を表示部１８０に表示する動作についてである。この動作は、例えばユーザが入力機器１９０を用いて挿入部８１２の形状を表示部１８０に表示させることを要求したときに開始される。
【００９４】
ステップＳ１０１において、制御部１００は、記憶部１２０に記憶されている被検出部４１０の位置情報を読み込む。ここで、位置情報とは、内視鏡８１０の挿入部８１２に対する各々の被検出部４１０の位置に係る情報である。位置情報は、被検出部４１０の形状に基づいて挿入部８１２の形状を算出するときに用いられる。
【００９５】
ステップＳ１０２において、制御部１００は、所定の更新時間になったか否かを判定する。ここで、更新時間は、挿入部８１２の形状の表示部１８０への表示を更新する時間を意味する。すなわち、本動作では、更新時間毎に挿入部８１２の形状の算出と表示とが繰り返し行われることになる。ステップＳ１０２の判定において、更新時間になっていないと判定されたとき、処理はステップＳ１０２を繰り返し、更新時間が到来するのを待つ。一方、更新時間になったと判定されたとき、処理はステップＳ１０３に進む。
【００９６】
ステップＳ１０３において、制御部１００は、第１の算出方法に係る形状情報算出処理を行う。すなわち、推定値演算部２１２に演算開始信号が入力され、形状最適化部２００による形状情報算出処理が開始される。形状情報算出処理について、図１７に示すフローチャートを参照して説明する。
【００９７】
ステップＳ２０１において、形状最適化部２００の推定値演算部２１２は、記憶部１２０から、後の演算に用いられる光量推定式及び所定の閾値Ａを読み込む。
【００９８】
ステップＳ２０２において、推定値演算部２１２は、光量推定式に基づいて、光量推定値Ｅλｘ及び形状情報ｋ１乃至ｋｍを算出する。推定値演算部２１２は、算出した光量推定値Ｅλｘ及び形状情報ｋ１乃至ｋｍを評価値演算部２１４へと伝達する。
【００９９】
ステップＳ２０３において、形状最適化部２００の評価値演算部２１４は、入力部１３０を介して光検出器３２０から光検出器３２０で検出された光量Ｄλｘを取得する。ステップＳ２０４において、制御部１００の評価値演算部２１４は、推定値演算部２１２から取得した光量推定値Ｅλｘと、光検出器３２０から取得した光量Ｄλｘとに基づいて、式（１１）を用いて評価値Ｊを算出する。
【０１００】
ステップＳ２０５において、評価値演算部２１４は、評価値Ｊが閾値Ａ以下であるか否かを判定する。評価値Ｊが閾値Ａ以下でないと判定されたとき、処理はステップＳ２０２に戻る。すなわち、評価値演算部２１４は、推定値演算部２１２に光量推定値Ｅλｘの算出を再び行わせる。一方、ステップＳ２０５において評価値Ｊが閾値Ａ以下であると判定されたとき、処理はステップＳ２０６に進む。ステップＳ２０６において、制御部１００の評価値演算部２１４は、推定値演算部２１２が算出した形状情報ｋ１乃至ｋｍを出力する。その後、処理は図１６を参照して説明している処理に戻る。
【０１０１】
図１６に戻って、説明を続ける。ステップＳ１０４において、制御部１００の内視鏡形状計算部１４０は、形状最適化部２００で算出された形状情報ｋ１乃至ｋｍと被検出部４１０の位置情報とに基づいて、内視鏡８１０の挿入部８１２の形状を算出する。各々の被検出部４１０の間の距離は位置情報に含まれているので、各々の被検出部４１０の位置を形状情報ｋ１乃至ｋｍに基づいて結んでいくと、挿入部８１２の形状が求まる。ステップＳ１０５において、制御部１００は、算出した挿入部８１２の形状を表示部１８０に表示させる。
【０１０２】
ステップＳ１０６において、制御部１００は、動作終了の指示が入力されたか否かを判定する。動作終了の指示が入力されていないとき、処理はステップＳ１０２に戻り、上述の動作を繰り返す。一方、動作終了の指示が入力されたと判定されたとき、本動作に係る処理は終了する。なお、本動作は、ステップＳ１０２の繰り返し動作において動作終了の指示が入力されたときにも終了するように構成されていてもよいし、ステップＳ２０２乃至ステップＳ２０５の繰り返し動作において動作終了の指示が入力されたときにも終了するように構成されていてもよい。
【０１０３】
なお、ここでは繰り返し演算によって最適な光量推定値Ｅλｘが算出される例を示したが、例えば最小二乗法のように、１回の演算によって取得された光量Ｄλｘに対して最適な光量推定値Ｅλｘが算出される方法が用いられてもよい。また、最適化演算では、関数の形式で表された光量推定式に限らず、例えばテーブルの形式で表された光量推定テーブルが用いられてもよい。記憶部１２０には、このように種々の形式で表され得る光量推定関係が記憶されている。このように、光検出器３２０で取得された光量Ｄλｘに対して最適な光量推定値Ｅλｘが算出され得る種々の最適化演算が用いられ得る。
【０１０４】
また、評価値Ｊは式（１１）に限らず、光検出器３２０で検出された光量Ｄλｘと算出された光量推定値Ｅλｘとの差を適切に表すものであればどのようなものでもよい。
【０１０５】
以上のような動作によれば、形状推定装置１０は、内視鏡８１０の挿入部８１２の形状を算出することができる。本実施形態によれば、センサ部４００は、概して例えば光ファイバである導光部材４２０のみにより構成されている。さらに、複数ある被検出部４１０毎の情報を、波長の違いによって分離している。これらのことは、挿入部８１２の小型化に効を奏する。
【０１０６】
第１の算出方法によれば、最適化演算が行われることで各々の被検出部４１０の形状が高精度に容易に算出され得る。また、第１の算出方法では、用いられる波長の数、すなわち、式（１１）におけるｐを、被検出部の数すなわちｍ以上とすれば任意に決められる。ｐをより大きくすることで、被検出部４１０の形状がより高精度に算出され得る。
【０１０７】
なお、本実施形態に係る形状推定装置１０は、種々の物品の形状を推定するために用いられ得る。すなわち、形状推定装置１０は、医療用及び工業用の内視鏡の形状の推定に用いられ得るし、例えばカテーテルや手術支援ロボットの形状の推定に用いられ得るし、医療用途に限らず各種のロボットや変形する器具の形状の推定に用いられ得る。
【０１０８】
［第２の算出方法］
第２の算出方法について説明する。第１の算出方法との相違点について説明し、同一の部分については説明を省略する。第２の算出方法に係る形状最適化部２００の構成例の概略を図１８に示す。図１８に示すように、形状最適化部２００は、第１の推定値演算部２２２と、第２の推定値演算部２２４と、評価値演算部２２６と、選択部２２８とを備える。このように、第２の算出方法は、形状最適化部２００に２つの推定値演算部が含まれる点が第１の算出方法と異なる。
【０１０９】
第１の推定値演算部２２２は、第１の最適化演算を行う。第１の最適化演算は、大域的な最適化演算である。ここで大域的な最適化演算とは、例えば粒子群最適化（ＰＳＯ）、差分進化（ＤＥ）、遺伝的アルゴリズム（ＧＡ）、シミュレーテッド・アニーリング法（ＳＡ）のように、局所解に陥らずに最適解を導出できる手法である。第１の推定値演算部２２２は、大域的な最適化演算によって算出された光量推定値Ｅλｘ及び形状情報ｋ１乃至ｋｍを評価値演算部２２６へと出力する。また、第１の推定値演算部２２２は、必要に応じて形状情報ｋ１乃至ｋｍを第２の推定値演算部２２４へと出力してもよい。また、第１の推定値演算部２２２は、演算回数をカウントし、その結果を演算回数Ｃａｌｃ＿ｎｕｍとして保持する。また、第１の推定値演算部２２２は、演算回数Ｃａｌｃ＿ｎｕｍを選択部２２８へ出力する。
【０１１０】
一方、第２の推定値演算部２２４は、第２の最適化演算を行う。第２の最適化演算は、収束性が早い局所的な最適化演算である。ここで、収束性が早い最適化演算とは、例えばニュートン法や最急降下法やシンプレックス法等のように局所解を求める近傍探索手法である。第２の推定値演算部２２４は、局所的な最適化演算によって算出された光量推定値Ｅλｘ及び形状情報ｋ１乃至ｋｍを評価値演算部２２６へ出力する。
【０１１１】
上記した第１の演算及び第２の演算は一例である。第１の演算は、第２の演算に比べて演算時間が長くなるが、高い精度で適切な解を導出し得る。一方、第２の演算は、第１の演算に比べて例えば不適切な局所解を導出する恐れがあるが、演算時間は短くなる。第１の演算が第２の演算よりも精度が高く、第２の演算が第１の演算よりも収束性が早ければ、第１の演算と第２の演算は、どのような手法の組み合わせでもよい。
【０１１２】
評価値演算部２２６は、第１の推定値演算部２２２又は第２の推定値演算部２２４から取得した光量推定値Ｅλｘと光検出器３２０で取得された光量Ｄλｘとに基づいて、式（１１）を用いて評価値Ｊを算出する。評価値演算部２２６は、評価値Ｊ及び形状情報ｋ１乃至ｋｍを選択部２２８へ出力する。
【０１１３】
選択部２２８には、演算開始信号が入力される。選択部２２８は、演算開始信号が入力されたとき、第１の推定値演算部２２２に最適化演算を開始させる。また、選択部２２８は、評価値演算部２２６から取得した評価値Ｊ及び形状情報ｋ１乃至ｋｍと、第１の推定値演算部２２２から取得した演算回数Ｃａｌｃ＿ｎｕｍとに基づいて、第１の推定値演算部２２２に最適化演算をさせるか、第２の推定値演算部２２４に最適化演算をさせるか、演算結果である形状情報ｋ１乃至ｋｍを出力するかのうち何れかを選択して実行する。選択部２２８は、第１の推定値演算部２２２に最適化演算をさせるとき、現在保持している形状情報ｋ１乃至ｋｍを第１の推定値演算部２２２へと出力する。また、選択部２２８は、第２の推定値演算部２２４に最適化演算をさせるとき、現在保持している形状情報ｋ１乃至ｋｍを第２の推定値演算部２２４へと出力する。
【０１１４】
第２の算出方法を用いた制御部１００の動作について、図１９に示すフローチャートを参照して説明する。ステップＳ３０１において、制御部１００は、記憶部１２０に記憶されている被検出部４１０の位置情報を読み込む。
【０１１５】
ステップＳ３０２乃至ステップＳ３０５の処理は、形状最適化部２００で行われる。ステップＳ３０２において、制御部１００の形状最適化部２００は、第１の形状情報算出処理を行う。第１の形状情報算出処理について図２０に示すフローチャートを参照して説明する。
【０１１６】
ステップＳ４０１において、形状最適化部２００の選択部２２８は、記憶部１２０に記憶されている各種閾値を読み込む。また、形状最適化部２００の第１の推定値演算部２２２は、記憶部１２０に記憶されている光量推定式を読み込む。ステップＳ４０２において、形状最適化部２００は、表示部１８０に例えば「待ち状態」と表示させる。
【０１１７】
ステップＳ４０３において、形状最適化部２００の第１の推定値演算部２２２は、大域的な最適化演算により光量推定値Ｅλｘを算出する。ステップＳ４０４において、形状最適化部２００の第１の推定値演算部２２２は、演算回数Ｃａｌｃ＿ｎｕｍを更新する。すなわち、
Ｃａｌｃ＿ｎｕｍ＝Ｃａｌｃ＿ｎｕｍ＋１
とする。第１の推定値演算部２２２は、演算結果である光量推定値Ｅλｘ及び形状情報ｋ１乃至ｋｍを評価値演算部２２６へ出力する。また、第１の推定値演算部２２２は、演算回数Ｃａｌｃ＿ｎｕｍを選択部２２８へ出力する。また、第２の推定値演算部２２４は、光量推定値Ｅλｘ及び形状情報ｋ１乃至ｋｍを利用するので、第１の推定値演算部２２２は、光量推定値Ｅλｘ及び形状情報ｋ１乃至ｋｍを第２の推定値演算部２２４へ出力してもよい。すなわち、第２の推定値演算部２２４は、演算に用いる光量推定値Ｅλｘを、評価値演算部２２６から取得してもよいし、第１の推定値演算部２２２から取得してもよい。
【０１１８】
ステップＳ４０５において、形状最適化部２００の評価値演算部２２６は、光検出器３２０から光量Ｄλｘを読み込む。ステップＳ４０６において、形状最適化部２００の評価値演算部２２６は、第１の推定値演算部２２２から取得した光量推定値Ｅλｘ及び演算回数Ｃａｌｃ＿ｎｕｍと、光検出器３２０から取得した光量Ｄλｘとに基づいて、式（１１）を用いて評価値Ｊを算出する。評価値演算部２２６は、評価値Ｊと、第１の推定値演算部２２２から取得した光量推定値Ｅλｘ及び形状情報ｋ１乃至ｋｍを選択部２２８へと出力する。
【０１１９】
ステップＳ４０７において、形状最適化部２００の選択部２２８は、評価値Ｊが所定の閾値Ａ１以下であるか、又は、Ｃａｌｃ＿ｎｕｍが所定の閾値Ａ２よりも大きいか否かを判定する。評価値Ｊが所定の閾値Ａ１よりも大きく、かつ、Ｃａｌｃ＿ｎｕｍが所定の閾値Ａ２以下であるとき、処理はステップＳ４０３に戻る。このとき、光量推定値Ｅλｘの算出が繰り返し行われる。一方、評価値Ｊが所定の閾値Ａ１以下であるか、又は、Ｃａｌｃ＿ｎｕｍが所定の閾値Ａ２よりも大きいとき、処理はステップＳ４０８に進む。
【０１２０】
ステップＳ４０８において、形状最適化部２００の選択部２２８は、大域的な最適化演算が適切に終了していることを表すフラグＦの値を１に設定する。その後、処理は図１９を参照して説明している処理に戻る。
【０１２１】
図１９に戻って説明を続ける。第１の形状情報算出処理の後、ステップＳ３０３において、制御部１００の形状最適化部２００に含まれる選択部２２８は、所定の更新時間が経過したか否かを判定する。所定の更新時間が経過していないと判定されたとき、処理はステップＳ３０３を繰り返し、待機する。一方、所定の更新時間が経過していると判定されたとき、処理はステップＳ３０４に進む。
【０１２２】
ステップＳ３０４において、制御部１００の形状最適化部２００は、第２の形状情報算出処理を行う。第２の形状情報算出処理について図２１に示すフローチャートを参照して説明する。
【０１２３】
ステップＳ５０１において、形状最適化部２００の選択部２２８は、記憶部１２０に記憶されている各種閾値を読み込む。また、形状最適化部２００の第２の推定値演算部２２４は、記憶部１２０に記憶されている光量推定式を読み込む。ステップＳ５０２において、形状最適化部２００の選択部２２８は、表示部１８０に例えば「駆動ＯＫ」と表示させる。
【０１２４】
ステップＳ５０３において、形状最適化部２００の第２の推定値演算部２２４は、収束性が早い局所的な最適化演算により光量推定値Ｅλｘを算出する。第２の推定値演算部２２４は、演算結果である光量推定値Ｅλｘ及び形状情報ｋ１乃至ｋｍを評価値演算部２２６へと出力する。
【０１２５】
ステップＳ５０４において、形状最適化部２００の評価値演算部２２６は、光検出器３２０から光量Ｄλｘを読み込む。ステップＳ５０５において、形状最適化部２００の評価値演算部２２６は、第２の推定値演算部２２４から取得した光量推定値Ｅλｘと光検出器３２０から取得した光量Ｄλｘとに基づいて、式（１１）を用いて評価値Ｊを算出する。評価値演算部２２６は、評価値Ｊと、第２の推定値演算部２２４から取得した光量推定値Ｅλｘ及び形状情報ｋ１乃至ｋｍを選択部２２８へと出力する。
【０１２６】
ステップＳ５０６において、形状最適化部２００の選択部２２８は、評価値Ｊが所定の閾値Ａ３以下であるか否かを判定する。ここで、閾値Ａ３は、閾値Ａ１よりも小さい。評価値Ｊが所定の閾値Ａ３以下であるとき、処理はステップＳ５０７に進む。ステップＳ５０７において、形状最適化部２００の選択部２２８は、光量推定式により算出された被検出部の形状情報ｋ１乃至ｋｍ、及び、演算回数Ｃａｌｃ＿ｎｕｍを、例えば内視鏡形状計算部１４０や出力部１６０へ出力する。その後、処理は図１９を参照して説明している処理に戻る。
【０１２７】
ステップＳ５０６の判定において、評価値Ｊが所定の閾値Ａ３以下でないと判定されたとき、処理はステップＳ５０８に進む。ステップＳ５０８において、形状最適化部２００の選択部２２８は、評価値Ｊが所定の閾値Ａ４よりも大きいか否かを判定する。ここで、所定の閾値Ａ４は、所定の閾値Ａ１よりも大きい。評価値Ｊが所定の閾値Ａ４以下であると判定されたとき、処理はステップＳ５０３に戻る。このとき、光量推定値Ｅλｘの算出が繰り返し行われる。一方、評価値Ｊが所定の閾値Ａ４よりも大きいと判定されたとき、処理はステップＳ５０９に進む。ステップＳ５０９において、形状最適化部２００の選択部２２８は、フラグＦの値を０に設定する。その後、処理は図１９を参照して説明している処理に戻る。
【０１２８】
図１９に戻って説明を続ける。第２の形状情報算出処理の後、ステップＳ３０５において、制御部１００の形状最適化部２００に含まれる選択部２２８は、フラグＦが１であるか否かを判定する。フラグＦが１でないとき、処理はステップＳ３０２に戻る。すなわち、第２の形状情報算出処理を行っている間に、不適切な解に収束しそうになったとき、ステップＳ５０９においてフラグＦが０となり、再び第１の形状情報算出処置が行われる。一方、フラグＦが１であると判定されたとき、処理はステップＳ３０６に進む。このようにして、比較的制度が劣る第２の形状情報算出処理によって不適切な解に収束することが防止され得る。
【０１２９】
ステップＳ３０６において、制御部１００の内視鏡形状計算部１４０は、形状最適化部２００で算出された形状情報ｋ１乃至ｋｍと被検出部４１０の位置情報とに基づいて、内視鏡８１０の挿入部８１２の形状を算出する。ステップＳ３０７において、制御部１００は、算出した挿入部８１２の形状を表示部１８０に表示させる。ステップＳ３０８において、制御部１００は、動作終了の指示が入力されたか否かを判定する。動作終了の指示が入力されていないとき、処理はステップＳ３０３に戻る。一方、動作終了の指示が入力されたと判定されたとき、本動作に係る処理は終了する。
【０１３０】
第２の算出方法を用いた処理によれば、第１の推定値演算部２２２による大域的な最適化演算で、不適切な局所解が算出されることを防ぎながら、第２の推定値演算部２２４による収束性の高い最適化演算で、素早く適切な形状情報が算出され得る。第２の算出方法によれば、全体として早くて正確な形状情報の算出が実現され得る。
【０１３１】
なお、第１の推定値演算部２２２による大域的な最適化演算が行われているときは、演算を収束させるため、挿入部８１２の形状は変化しないことが好ましい。このため、表示部１８０には、「待ち状態」と表示され、ユーザに挿入部８１２を動かさないように促す。また、第２の推定値演算部２２４による収束性の高い最適化演算が行われているときは、挿入部８１２の形状が変化しても追従できるので、表示部１８０には「駆動ＯＫ」と表示される。このような表示によって、演算が収束しないことが防止される。「待ち状態」や「駆動ＯＫ」の表示は一例であり、どのような表示でもよい。また、表示に限らず、音声によってユーザに報知されるように構成されてもよい。
【０１３２】
なお、第２の算出方法では、選択部２２８が第１の最適化演算を行うか第２の最適化演算を行うかを選択しているが、ユーザがこの選択を行えるように形状推定装置１０が構成されてもよい。この場合、形状推定装置１０には、ユーザが自らの選択を入力するための選択入力部が設けられる。ユーザが演算の種類を選択できるように構成されることで、ユーザは、正確さと表示の早さとのうち必要な方を自ら選択することができる。
【０１３３】
［第３の算出方法］
第３の算出方法について説明する。第２の算出方法との相違点について説明し、同一の部分については説明を省略する。第３の算出方法に係る形状最適化部２００の構成例の概略を図２２に示す。図２２に示すように、形状最適化部２００は、第１の推定値演算部２３１と、第２の推定値演算部２３２と、第１の評価値演算部２３３と、第２の評価値演算部２３４と、選択部２３５とを備える。
【０１３４】
第１の推定値演算部２３１は、第２の算出方法における第１の推定値演算部２２２と同様に、大域的な最適化演算を行う推定値演算部である。第１の推定値演算部２３１は、第１の形状情報ｋ１´乃至ｋｍ´に基づく第１の光量推定値Ｅλｘ１を算出する。第１の推定値演算部２３１は、第１の光量推定値Ｅλｘ１及び第１の形状情報ｋ１´乃至ｋｍ´を第１の評価値演算部２３３へと出力する。
【０１３５】
第１の評価値演算部２３３は、第１の推定値演算部２３１が算出した第１の光量推定値Ｅλｘ１についての第１の評価値Ｊ１を次に示す式（１２）に基づいて算出する。
【０１３６】
【数１２】
0006278848.tif 000013
【０１３７】
第１の評価値演算部２３３は、第１の評価値Ｊ１及び第１の形状情報ｋ１´乃至ｋｍ´を選択部２３５へと出力する。
【０１３８】
第２の推定値演算部２３２は、第２の算出方法における第２の推定値演算部２２４と同様に、局所的な最適化演算を行う推定値演算部である。第２の推定値演算部２３２は、第２の形状情報ｋ１´´乃至ｋｍ´´に基づく第２の光量推定値Ｅλｘ２を算出する。第２の推定値演算部２３２は、第２の光量推定値Ｅλｘ２及び第２の形状情報ｋ１´´乃至ｋｍ´´を第２の評価値演算部２３４へと出力する。
【０１３９】
第２の評価値演算部２３４は、第２の推定値演算部２３２が算出した第２の光量推定値Ｅλｘ２についての第２の評価値Ｊ２を次に示す式（１３）に基づいて算出する。
【０１４０】
【数１３】
0006278848.tif 000014
【０１４１】
第２の評価値演算部２３４は、第２の評価値Ｊ２及び第２の形状情報ｋ１´´乃至ｋｍ´´を選択部２３５へと出力する。
【０１４２】
第３の算出方法では、第１の推定値演算部２３１及び第１の評価値演算部２３３による大域的な最適化演算と、第２の推定値演算部２３２及び第２の評価値演算部２３４による局所的な最適化演算とが、並列演算される。
【０１４３】
選択部２３５は、第１の評価値Ｊ１と第２の評価値Ｊ２とに基づいて、評価値Ｊを決定する。選択部２３５は、この評価値Ｊに基づいて、最適化演算を繰り返し行うか、演算を終了し、演算結果を出力するかを判定する。選択部２３５は、第１の形状情報ｋ１´乃至ｋｍ´と第２の形状情報ｋ１´´乃至ｋｍ´´とのうちより適切な方を形状情報ｋ１乃至ｋｍとして出力する。
【０１４４】
第３の算出方法を用いた制御部１００の動作について説明する。本動作は、図１６を参照して説明した第１の算出方法を用いた制御部１００の動作と同様に動作する。ただし、形状情報算出処理の動作が異なる。第３の算出方法を用いた形状情報算出処理の動作について、図２３に示すフローチャートを参照して説明する。
【０１４５】
ステップＳ６０１において、形状最適化部２００は、光量推定式及び閾値を読み込む。すなわち、第１の推定値演算部２３１は、第１の光量推定値Ｅλｘ１の算出に用いる光量推定式を読み込む。第２の推定値演算部２３２は、第２の光量推定値Ｅλｘ２の算出に用いる光量推定式を読み込む。選択部２３５は、閾値Ａを読み込む。
【０１４６】
ステップＳ６０１の後に行われる第１の推定値演算部２３１及び第１の評価値演算部２３３によるステップＳ６０２乃至ステップＳ６０４の処理と、第２の推定値演算部２３２及び第２の評価値演算部２３４によるステップＳ６０５乃至ステップＳ６０７の処理とは、並列処理である。
【０１４７】
ステップＳ６０２において、形状最適化部２００の第１の推定値演算部２３１は、第１の光量推定値Ｅλｘ１を算出する。第１の推定値演算部２３１は、算出した第１の光量推定値Ｅλｘ１を第１の評価値演算部２３３へと出力する。
【０１４８】
ステップＳ６０３において、形状最適化部２００の第１の評価値演算部２３３は、光検出器３２０から光量Ｄλｘを読み込む。ステップＳ６０４において、形状最適化部２００の第１の評価値演算部２３３は、第１の推定値演算部２３１から取得した第１の光量推定値Ｅλｘ１と、光検出器３２０から取得した光量Ｄλｘとに基づいて、式（１２）を用いて、第１の評価値Ｊ１を算出する。第１の評価値演算部２３３は、算出した第１の評価値Ｊ１及び第１の光量推定値Ｅλｘ１に係る第１の形状情報ｋ１´乃至ｋｍ´を選択部２３５へと出力する。
【０１４９】
ステップＳ６０５において、形状最適化部２００の第２の推定値演算部２３２は、第２の光量推定値Ｅλｘ２を算出する。第２の推定値演算部２３２は、算出した第２の光量推定値Ｅλｘ２を第２の評価値演算部２３４へと出力する。
【０１５０】
ステップＳ６０６において、形状最適化部２００の第２の評価値演算部２３４は、光検出器３２０から光量Ｄλｘを読み込む。ステップＳ６０７において、形状最適化部２００の第２の評価値演算部２３４は、第２の推定値演算部２３２から取得した第２の光量推定値Ｅλｘ２と、光検出器３２０から取得した光量Ｄλｘとに基づいて、式（１３）を用いて、第２の評価値Ｊ２を算出する。第２の評価値演算部２３４は、算出した第２の評価値Ｊ２及び第２の光量推定値Ｅλｘ２に係る第２の形状情報ｋ１´´乃至ｋｍ´´を選択部２３５へと出力する。
【０１５１】
ステップＳ６０２乃至ステップＳ６０４の処理及びステップＳ６０５乃至ステップＳ６０７の処理の後、ステップＳ６０８において、形状最適化部２００の選択部２３５は、第１の評価値演算部２３３から取得した第１の評価値Ｊ１と、第２の評価値演算部２３４から取得した第２の評価値Ｊ２とを比較して、小さい方を評価値Ｊとする決定を行う。
【０１５２】
ステップＳ６０９において、形状最適化部２００の選択部２３５は、評価値Ｊが所定の閾値Ａ以下であるか否かを判定する。評価値Ｊが閾値Ａ以下でないと判定されたとき、処理はステップＳ６０２及びステップＳ６０５の並列演算に戻る。この際、第１の推定値演算部２３１と第２の推定値演算部２３２とは、前回の演算で自ら算出した形状情報をそれぞれ用いてもよいし、第１の推定値演算部２３１と第２の推定値演算部２３２とがともにより評価値が小さかった方の形状情報を用いてもよい。一方、評価値Ｊが閾値Ａ以下であると判定されたとき、処理はステップＳ６１０に進む。
【０１５３】
ステップＳ６１０において、形状最適化部２００の選択部２３５は、第１の評価値Ｊ１と第２の評価値Ｊ２とを比較する。選択部２３５は、第１の評価値Ｊ１の方が小さいときは、第１の形状情報ｋ１´乃至ｋｍ´を形状情報ｋ１乃至ｋｍとする決定を行う。また、選択部２３５は、第２の評価値Ｊ２の方が小さいときは、第２の形状情報ｋ１´´乃至ｋｍ´´を形状情報ｋ１乃至ｋｍとする決定を行う。
【０１５４】
ステップＳ６１１において、形状最適化部２００の選択部２３５は、ステップＳ６１０で決定した形状情報ｋ１乃至ｋｍを、例えば内視鏡形状計算部１４０へ出力する。その後、処理は図１６を参照して説明した処理に戻る。
【０１５５】
第３の算出方法を用いれば、第１の推定値演算部２３１による大域的な最適化演算と第２の推定値演算部２３２による収束性の高い最適化演算との並列演算により、適切な最適解が早く算出され得る。また、大域的な最適化演算が適切に収束していない間は収束性の高い最適化演算の結果が出力され、大域的な最適化演算が適切に収束しているときは精度が高い大域的な最適化演算の結果が出力されるので、第２の算出方法の場合と異なり、常に形状情報が出力され得る。
【符号の説明】
【０１５６】
１…内視鏡システム、１０…形状推定装置、１００…制御部、１０１…演算部、１１０…形状演算部、１２０…記憶部、１３０…入力部、１４０…内視鏡形状計算部、１５０…光検出器駆動部、１６０…出力部、１８０…表示部、１８２…挿入部、１９０…入力機器、２００…形状最適化部、２１２…推定値演算部、２１４…評価値演算部、２２２…第１の推定値演算部、２２４…第２の推定値演算部、２２６…評価値演算部、２２８…選択部、２３１…第１の推定値演算部、２３２…第２の推定値演算部、２３３…第１の評価値演算部、２３４…第２の評価値演算部、２３５…選択部、３００…センサ駆動部、３１０…光源、３２０…光検出器、３３０…光分岐部、３４０…反射防止部材、４００…センサ部、４１０…被検出部、４１１…第１の被検出部、４１２…第２の被検出部、４１ｍ…第ｍの被検出部、４２０…導光部材、４２１…被覆、４２２…クラッド、４２３…コア、４２９…光吸収体、４３０…反射部材、８１０…内視鏡、８１２…挿入部、８１４…操作部、８２０…内視鏡制御部、８２２…画像処理部。
【図１】
0006278848.tif 000015
【図２】
0006278848.tif 000016
【図３】
0006278848.tif 000017
【図４】
0006278848.tif 000018
【図５】
0006278848.tif 000019
【図６】
0006278848.tif 000020
【図７Ａ】
0006278848.tif 000021
【図７Ｂ】
0006278848.tif 000022
【図７Ｃ】
0006278848.tif 000023
【図８】
0006278848.tif 000024
【図９】
0006278848.tif 000025
【図１０】
0006278848.tif 000026
【図１１】
0006278848.tif 000027
【図１２】
0006278848.tif 000028
【図１３】
0006278848.tif 000029
【図１４】
0006278848.tif 000030
【図１５】
0006278848.tif 000031
【図１６】
0006278848.tif 000032
【図１７】
0006278848.tif 000033
【図１８】
0006278848.tif 000034
【図１９】
0006278848.tif 000035
【図２０】
0006278848.tif 000036
【図２１】
0006278848.tif 000037
【図２２】
0006278848.tif 000038
【図２３】
0006278848.tif 000039