(57)【要約】      （修正有）【課題】単一のカメラで取得した画像により、容器または採取対象の状態を判定可能な画像処理装置、自動分析システム及び画像処理方法を提供する。【解決手段】試料や試薬、反応溶液を含む採取対象を収容する容器を上方から撮像部１１１で撮像して得られる画像である上方画像２１２を取得する画像取得部２０１と、上方画像２１２から容器の縁領域２１３または採取対象の上面領域２１５を算出する領域算出部２０２と、縁領域２１３または上面領域２１５に基づいて容器または採取対象の状態を判定する状態判定部２０３と、を備えることを特徴とする。【選択図】図２
2020173101.tif 000002
【特許請求の範囲】
【請求項１】
試料や試薬、反応溶液を含む採取対象を収容する容器を上方から撮像して得られる画像である上方画像を取得する画像取得部と、
前記上方画像から前記容器の縁領域または前記採取対象の上面領域を算出する領域算出部と、
前記縁領域または前記上面領域に基づいて前記容器または前記採取対象の状態を判定する状態判定部と、を備えることを特徴とする画像処理装置。
【請求項２】
請求項１に記載の画像処理装置であって、
前記領域算出部は前記縁領域を算出し、
前記状態判定部は前記縁領域の外径と内径に基づいて前記容器の種別を判定することを特徴とする画像処理装置。
【請求項３】
請求項２に記載の画像処理装置であって、
前記領域算出部は、前記上面領域をさらに算出し、
前記状態判定部は、前記容器の種別と、前記上面領域の大きさ又は前記上面領域から前記縁領域までの距離に基づいて前記採取対象の量を判定することを特徴とする画像処理装置。
【請求項４】
請求項１に記載の画像処理装置であって、
前記領域算出部は、前記縁領域と前記上面領域を算出し、
前記状態判定部は、前記縁領域の中心と前記上面領域の中心との一致度に基づいて前記容器の傾きの有無を判定することを特徴とする画像処理装置。
【請求項５】
請求項３に記載の画像処理装置であって、
前記状態判定部は、前記容器の種別と前記上面領域の大きさとを用いて求められる前記採取対象の高さと、前記縁領域の中心と前記上面領域の中心との距離である中心距離と、に基づいて容器の傾き角度を判定することを特徴とする画像処理装置。
【請求項６】
請求項５に記載の画像処理装置であって、
前記上方画像が非テレセントリックのレンズを用いて撮像された場合、前記状態判定部は、前記上面領域の短径と前記縁領域の内径との比率に基づいて前記中心距離を補正することを特徴とする画像処理装置。
【請求項７】
請求項１に記載の画像処理装置であって、
選択された画像を表示する表示部と、
前記表示部に表示された画像に対する教師信号を入力するための操作画面を表示する教師信号取得部をさらに備えることを特徴とする画像処理装置。
【請求項８】
請求項７に記載の画像処理装置であって、
前記表示部は、選択された画像の枚数を示す画面をさらに表示することを特徴とする画像処理装置。
【請求項９】
請求項１に記載の画像処理装置であって、
前記領域算出部は、カーネルの要素間に所定数のゼロを挿入することにより作成されるダイレートカーネルを用いてＣｏｎｖｏｌｕｔｉｏｎ処理およびＰｏｏｌｉｎｇ処理を実行することにより前記上方画像を複数の領域に分割して、前記縁領域または前記上面領域を算出することを特徴とする画像処理装置。
【請求項１０】
請求項９に記載の画像処理装置であって、
前記領域算出部は、前記Ｃｏｎｖｏｌｕｔｉｏｎ処理および前記Ｐｏｏｌｉｎｇ処理を実行するときに前記ダイレートカーネルをずらす量であるストライド量に基づいて前記カーネルに挿入されるゼロの数を決めることを特徴とする画像処理装置。
【請求項１１】
請求項１に記載の画像処理装置を備える自動分析システムであって、
前記容器から前記採取対象を採取する採取部と、
前記状態判定部の判定結果に基づいて前記採取部を制御する制御部を備えることを特徴とする自動分析システム。
【請求項１２】
請求項１１に記載の自動分析システムであって、
前記状態判定部が前記容器の種別を未知の種別と判定したか、前記採取対象の量が閾値未満であると判定したか、前記容器の傾き角度が閾値以上であると判定したときに、前記制御部は前記採取部を停止させることを特徴とする自動分析システム。
【請求項１３】
請求項１１に記載の自動分析システムであって、
前記状態判定部が判定した前記容器の種別や、前記採取対象の量、前記容器の傾き角度に応じて、前記制御部は前記採取部の高さや角度を調整することを特徴とする自動分析システム。
【請求項１４】
試料や試薬、反応溶液を含む採取対象を収容する容器を上方から撮像して得られる画像である上方画像を取得する画像取得ステップと、
前記上方画像から前記容器の縁領域または前記採取対象の上面領域を算出する領域算出ステップと、
前記縁領域または前記上面領域に基づいて前記容器または前記採取対象の状態を判定する状態判定ステップと、を備えることを特徴とする画像処理方法。
【請求項１５】
画像を複数の領域に分割する画像処理方法であって、
Ｃｏｎｖｏｌｕｔｉｏｎ処理およびＰｏｏｌｉｎｇ処理に用いられるカーネルの要素間に所定数のゼロを挿入することによりダイレートカーネルを作成するステップと、
前記ダイレートカーネルを用いてＣｏｎｖｏｌｕｔｉｏｎ処理およびＰｏｏｌｉｎｇ処理を実行するステップと、を備えることを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は免疫分析装置等を備える自動分析システムにおいて、試料、試薬、反応溶液等の採取対象が収容される容器の状態または採取対象の状態を判定する技術に関する。
【背景技術】
【０００２】
免疫分析装置等を備える自動分析システムでは、血液および尿等の試料の成分等を分析するために、試料と試薬を反応させた反応溶液から生じる発色や発光の状態が測定される。分析に用いられる試料や試薬、反応溶液等は試験管等の容器に収容され、分注プローブ等の採取部によって容器から採取される。採取部の採取対象である試料、試薬、反応溶液等が収容される容器には、内径や長さの異なる複数の種別があり、複数の容器が混在している状況では容器の種別が自動的に判別されることが望まれる。
【０００３】
特許文献１には、容器を開口部方向と側面方向の二方向からそれぞれ撮像して得られた図形を、メモリに格納された標準図形と比較することにより、容器の種別を判別することが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００４−１５１０２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら特許文献１では、容器の種別を判別するために、容器を開口部方向と側面方向の二方向からそれぞれ撮像する複数のカメラが必要であり、ハードウェアコストがかかる。また特許文献１では、容器の種別を判別することに留まっており、容器の傾きや採取対象の量といった容器または採取対象の状態の判定に対する配慮はなされていない。
【０００６】
そこで本発明は、単一のカメラで取得した画像により、容器または採取対象の状態を判定可能な画像処理装置、自動分析システム及び画像処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために本発明は、試料や試薬、反応溶液を含む採取対象を収容する容器を上方から撮像して得られる画像である上方画像を取得する画像取得部と、前記上方画像から前記容器の縁領域または前記採取対象の上面領域を算出する領域算出部と、前記縁領域または前記上面領域に基づいて前記容器または前記採取対象の状態を判定する状態判定部と、を備えることを特徴とする画像処理装置である。
【０００８】
また本発明は、前記画像処理装置を備える自動分析システムであって、前記容器から採取対象を採取する採取部と、前記状態判定部の判定結果に基づいて前記採取部を制御する制御部を備えることを特徴とする自動分析システムである。
【０００９】
また本発明は、試料や試薬、反応溶液を含む採取対象を収容する容器を上方から撮像して得られる画像である上方画像を取得する画像取得ステップと、前記上方画像から前記容器の縁領域または前記採取対象の上面領域を算出する領域算出ステップと、前記縁領域または前記上面領域に基づいて前記容器または前記採取対象の状態を判定する状態判定ステップと、を備えることを特徴とする画像処理方法である。
【００１０】
また本発明は、画像を複数の領域に分割する画像処理方法であって、Ｃｏｎｖｏｌｕｔｉｏｎ処理およびＰｏｏｌｉｎｇ処理に用いられるカーネルの要素間に所定数のゼロを挿入することによりダイレートカーネルを作成するステップと、前記ダイレートカーネルを用いてＣｏｎｖｏｌｕｔｉｏｎ処理およびＰｏｏｌｉｎｇ処理を実行するステップと、を備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、単一のカメラで取得した画像により、容器または採取対象の状態を判定可能な画像処理装置、自動分析システム及び画像処理方法を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】自動分析システムのハードウェア構成の一例を示す図である。
【図２】実施例１の機能ブロック図の一例である。
【図３】実施例１の処理の流れの一例を示す図である。
【図４】領域分割処理の結果の一例を示す図である。
【図５】容器の縁領域を算出することについて説明する図である。
【図６Ａ】容器の種別の判定に用いられるテーブルの一例を示す図である。
【図６Ｂ】容器の種別から容器の長さ等を求めるためのテーブルの一例を示す図である。
【図７】Ｃｏｎｖｏｌｕｔｉｏｎ処理の概念を示す図である。
【図８】Ｐｏｏｌｉｎｇ処理の概念を示す図である。
【図９】ＦＣＮ（Fully Convolutional Networks）による領域分割処理の一例を示す図である。
【図１０】ＦＣＮによる高解像度領域分割処理の一例を示す図である。
【図１１】Ｃｏｎｖｏｌｕｔｉｏｎ処理とＤｉｌａｔｅｄ  Ｃｏｎｖｏｌｕｔｉｏｎ処理におけるカーネルの一例を示す図である。
【図１２】Ｐｏｏｌｉｎｇ処理とＤｉｌａｔｅｄ  Ｐｏｏｌｉｎｇ処理におけるカーネルの一例を示す図である。
【図１３】ダイレート処理の概念を示す図である。
【図１４】ダイレートカーネルを用いた領域分割の手順の一例を示す図である。
【図１５】ダイレートカーネルを用いた領域分割について説明する図である。
【図１６】実施例２の処理の流れの一例を示す図である。
【図１７】採取対象の上面領域の算出について説明する図である。
【図１８Ａ】非テレセントリックでの上方画像の一例を示す図である。
【図１８Ｂ】テレセントリックでの上方画像の一例を示す図である。
【図１８Ｃ】テレセントリックでの斜方画像の一例を示す図である。
【図１９】容器の縁から採取対象の上面までの距離を求めるためのテーブルの一例を示す図である。
【図２０】実施例３の処理の流れの一例を示す図である。
【図２１Ａ】非テレセントリックでの上方画像に基づく傾き判定を説明する図である。
【図２１Ｂ】テレセントリックでの上方画像に基づく傾き判定を説明する図である。
【図２２Ａ】非テレセントリックでの上方画像に基づく傾き角度の算出について説明する図である。
【図２２Ｂ】テレセントリックでの上方画像に基づく傾き角度の算出について説明する図である。
【図２３】実施例４の機能ブロック図の一例である。
【図２４】実施例４の処理の流れの一例を示す図である。
【図２５】教師信号を付与する画像のリストを表示する画面の一例を示す図である。
【図２６】教師信号を付与する領域を指定するための操作画面の一例を示す図である。
【図２７】教師信号を付与するための操作画面の一例を示す図である。
【発明を実施するための形態】
【００１３】
以下、添付図面に従って本発明に係る画像処理装置、自動分析システム及び画像処理方法の好ましい実施例について説明する。なお、以下の説明及び添付図面において、同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【実施例１】
【００１４】
図１を用いて本実施例の自動分析システム１００のハードウェア構成の一例について説明する。自動分析システム１００は、画像処理装置１０１と撮像部１１１、制御部１２１、採取部１２２、分析部１２３を備える。画像処理装置１０１は、いわゆるコンピュータであり、具体的には、入力部１０２、演算部１０３、メモリ１０４、出力部１０５を備え、撮像部１１１や制御部１２１に接続される。なお、画像処理装置１０１は自動分析システム１００以外のシステムに備えられても良い。以下、各部について説明する。
【００１５】
撮像部１１１は、容器１１２と、容器１１２に収容される採取対象１１３を撮像する装置であり、例えばカメラである。容器１１２は試験管等であり、円筒形状またはテーパ形状の一端には底面を、他端には開口部を有する。また容器１１２には、内径や長さの異なる複数の種別がある。採取対象１１３は、血液および尿等の試料や、試料に反応させられる試薬、試料と試薬を反応させた反応溶液等であり、液体または粉末である。撮像部１１１は単一であり、容器１１２の開口部側、すなわち容器１１２の上方に設置され、容器１１２と採取対象１１３を容器１１２の上方から撮像する。撮像部１１１によって容器１１２の上方から撮像された画像を上方画像と呼ぶ。撮像部１１１には、テレセントリックまたは非テレセントリックのレンズが取り付けられる。
【００１６】
入力部１０２は、撮像部１１１や上方画像が記録された記録装置から上方画像のデータを受信したり、操作者がキーボードやマウス等を操作することによって生じる操作信号を受信したりするインターフェースである。上方画像はＢＭＰ、ＰＮＧ、ＪＰＥＧ等の静止画像でも良いし、ＭＰＥＧ、Ｈ．２６４等の動画像から一定の間隔で抽出したフレーム画像でも良い。
【００１７】
演算部１０３は、画像処理装置１０１内での各種の処理を実行する装置であり、例えばＣＰＵ（Central Processing Unit）やＦＰＧＡ（Field-Programmable Gate Array）等である。演算部１０３によって実行される機能については、図２を用いて後述する。
【００１８】
メモリ１０４は、演算部１０３が実行するプログラムや、パラメータ、係数、処理結果等を保存する装置であり、ＨＤＤやＲＡＭ、ＲＯＭ、フラッシュメモリ等である。
【００１９】
出力部１０５は、演算部１０３による処理の結果を外部に送信するインターフェースであり、例えばディスプレイ、プリンタ等の表示装置や、処理の結果を記録する記録装置、その他の装置を制御する制御装置に対して、処理の結果を出力する。図１には、その他の装置を制御する制御装置の一例である制御部１２１に処理の結果が出力されることが例示される。
【００２０】
制御部１２１は、出力部１０５から出力された処理の結果に基づいて、採取部１２２の動作を制御する装置であり、具体的にはＣＰＵ（Central Processing Unit）等である。
【００２１】
採取部１２２は、制御部１２１によって、容器１１２から採取対象１１３を採取する装置であり、例えば分注プローブ等である。
【００２２】
分析部１２３は、採取対象１１３を用いて分析を行う装置であり、例えば免疫分析装置等である。分析部１２３による分析の結果は、ディスプレイ等に表示される。
【００２３】
図２を用いて本実施例の機能ブロック図の一例について説明する。なおこれらの機能は、専用のハードウェアで構成されても良いし、演算部１０３上で動作するソフトウェアで構成されても良い。本実施例は、画像取得部２０１と領域算出部２０２と状態判定部２０３を備える。以下、各部について説明する。
【００２４】
画像取得部２０１は、撮像部１１１によって撮像された上方画像２１２を取得する。上方画像２１２には、容器１１２の縁２１３と内壁２１４、採取対象１１３の上面２１５、混在物２１６、固定部２１７が含まれる。混在物２１６は採取対象１１３の内部や上面に存在する気泡や脂質等である。固定部２１７は容器１１２を固定するホルダ等である。上方画像２１２に含まれる各部については側面図２１１も参照されたい。
【００２５】
領域算出部２０２は、画像取得部２０１によって取得された上方画像２１２から、各部のいずれかの領域、例えば容器１１２の縁２１３の領域や採取対象１１３の上面２１５の領域を算出する。領域を算出するには、画像の輝度値を用いた閾値処理や、ＦＣＮ（Fully Convolutional Networks）を用いた領域分割処理等が実行される。
【００２６】
状態判定部２０３は、領域算出部２０２によって算出されたいずれかの領域に基づいて、容器１１２や採取対象１１３の状態、例えば容器１１２の種別や、容器１１２の傾き、採取対象１１３の量を判定する。
【００２７】
図３を用いて、本実施例の処理の流れの一例について説明する。本実施例では、上方画像２１２から算出される容器１１２の縁２１３の領域に基づいて、容器１１２の種別が判定される。
【００２８】
（Ｓ３０１）
画像取得部２０１が入力部１０２を介して上方画像２１２を取得する。取得される上方画像２１２は、撮像部１１１で撮影された画像であっても、図示されない記録装置等に記録される画像であっても良い。
【００２９】
（Ｓ３０２）
領域算出部２０２がＳ３０１で取得された上方画像２１２から容器１１２の縁２１３の領域を算出する。縁２１３の領域を算出するには、上方画像２１２の輝度値を用いた閾値処理や、ＦＣＮを用いた領域分割処理等のいずれかの処理が実行される。ＦＣＮを用いた領域分割処理については図７〜図１５を用いて後述する。
【００３０】
図４を用いて上方画像２１２を領域分割処理して得られた領域分割像４０１の一例について説明する。領域分割像４０１は、縁領域４０２、内壁領域４０３、上面領域４０４、背景領域４０５から構成される。縁領域４０２は、容器１１２の縁２１３の領域である。内壁領域４０３は、容器１１２の内壁２１４の領域であり、容器１１２の縁２１３と採取対象１１３との間の領域である。上面領域４０４は、採取対象１１３の上面２１５の領域であり、混在物２１６も上面領域４０４に含まれる。背景領域４０５は、縁領域４０２よりも外側の領域全体であり、固定部２１７も背景領域４０５に含まれる。
【００３１】
（Ｓ３０３）
状態判定部２０３が、Ｓ３０２で算出された縁領域４０２に基づいて、容器１１２の種別を判定する。図５と図６を用いて本ステップについて説明する。
【００３２】
状態判定部２０３は、Ｓ３０２での算出結果に基づいて、縁の二値化画像５０１を作成する。縁の二値化画像５０１には、縁領域４０２と、縁領域４０２以外のその他領域５０３が含まれる。縁領域４０２には例えば輝度値０が、その他領域５０３には輝度値２５５が与えられる。
【００３３】
状態判定部２０３は、縁の二値化画像５０１にソーベルフィルタ等を適用して縁領域４０２の境界を抽出し、縁の境界像５０２を作成する。容器１１２の縁２１３は円環形状であるので、縁の境界像５０２には容器１１２の内壁側の境界である内側境界５０５と、外壁側の境界である外側境界５０６が含まれる。
【００３４】
状態判定部２０３は、内側境界５０５と外側境界５０６に対して楕円フィッティングを行い、内側境界５０５と外側境界５０６の長径を算出し、内側境界５０５の長径を容器１１２の内径とし、両者の長径から次式を用いて容器１１２の厚みを求める。
【００３５】
【数１】
2020173101.tif 000003
【００３６】
ここでＤは容器１１２の厚み、Ｌｏは外側境界５０６の長径、Ｌｃは内側境界５０５の長径である。
【００３７】
なお短径ではなく長径を用いる理由は、容器１１２の傾きの影響を低減するためである。すなわち、容器１１２が直立状態から傾くに従い、内側境界５０５と外側境界５０６の短径は短くなるのに対し長径は変化しにくいためである。楕円フィッティングには、内側境界５０５または外側境界５０６の全点が用いられても良いし、内側境界５０５または外側境界５０６から任意に抽出される少なくとも３つの抽出点５０８が用いられても良い。抽出点５０８には、例えば縁領域４０２の各座標を算術平均することで求められる重心５０７から上下左右方向にスキャンすることにより、内側境界５０５または外側境界５０６に達した点が抽出される。
【００３８】
状態判定部２０３は、内側境界５０５と外側境界５０６の長径から求められた容器１１２の内径と厚みを、図６Ａに例示されるテーブルと照合することにより、容器１１２の種別を判定する。例えば、求められた容器１１２の内径が６０ピクセル、厚みが１０ピクセルであった場合、容器の種別がαであると判定される。なお求められた内径と厚みがテーブル中のいずれの項目に該当するかは、求められた値と各項目の数値との差分の絶対値によって判定されても良い。例えば求められた内径が９８ピクセル、厚みが６ピクセルであった場合、テーブルからは内径１００ピクセルと厚み６ピクセルが選択され、容器１１２の種別はδであると判定される。
【００３９】
なお図６Ａに例示されるテーブルは、複数の種別の容器１１２の内径や厚みが計測されることにより予め作成され、メモリ１０４等に保管される。またテーブル中の空欄は未知容器を示し、本ステップで求められた内径と厚みが空欄に該当した場合、上方画像２１２に含まれる容器１１２は未知容器であると判定される。
【００４０】
（Ｓ３０４）
出力部１０５が、Ｓ３０３で判定された容器１１２の種別を出力する。判定の結果は、例えば制御部１２１へ送信され、制御部１２１は判定の結果に基づいて採取部１２２を制御する。例えば、容器１１２が未知容器であると判定された場合、制御部１２１は採取部１２２を停止させても良い。容器１１２が未知容器であるとき、採取部１２２を停止させることにより、採取部１２２と容器１１２との衝突を避けることができる。
【００４１】
また、容器１１２の種別に応じて、制御部１２１は採取部１２２の高さを調整しても良い。例えば判定結果である容器１１２の種別が図６Ｂに例示されるテーブルに照合されることにより取得される容器１１２の長さに基づいて、採取部１２２の高さが調整されても良い。  なお図６Ｂに例示されるテーブルは、複数の種別の容器１１２の内径や厚み、長さ、テーパの有無が計測されることにより予め作成され、メモリ１０４等に保管され、必要に応じて参照される。
【００４２】
また、出力部１０５は判定の結果をディスプレイやプリンタへ出力し、容器１１２の種別を操作者に提示しても良いし、未知容器である場合には容器１１２の変更を促すメッセージが表示されても良い。さらに出力部１０５は、他の画像処理装置へ容器１１２の種別を出力しても良く、それとともに容器１１２の種別に応じた補正処理を行った画像を出力しても良い。容器１１２の種別に応じた補正処理とは、例えば容器１１２の内径に応じて画像サイズを正規化する処理であったり、容器１１２の種別に応じてコントラストを補正する処理であったりする。
【００４３】
以上説明した処理の流れにより、画像処理装置１０１は単一の撮像部１１１で取得された上方画像２１２により容器１１２の状態の一つである容器１１２の種別を判定できる。また自動分析システム１００は、画像処理装置１０１による判定結果に応じて、採取部１２２を適切に制御できるので、検査効率を低下させることなく、より正確な分析を行うことができる。
【００４４】
ここでＦＣＮを用いた領域分割処理について説明する。ＦＣＮはＤＮＮ（Deep Neural Network）の一つであり、全ての層をＣＮＮ（Convolutional Neural Network）で構成することで、画像を領域毎に分割する領域分割処理である。ＣＮＮはＣｏｎｖｏｌｕｔｉｏｎ処理 、Ｐｏｏｌｉｎｇ処理 、Ａｃｔｉｖａｔｉｏｎ処理 の３つの処理から構成される。Ｃｏｎｖｏｌｕｔｉｏｎ処理は入力データから特徴量のマップを作成する処理であり、Ｐｏｏｌｉｎｇ処理は入力データから代表値を抽出する処理であり、Ａｃｔｉｖａｔｉｏｎ処理は入力データに非線形関数を適用する処理である。
【００４５】
図７を用いてＣｏｎｖｏｌｕｔｉｏｎ処理の動作の一例について説明する。図７に示すように、Ｃｏｎｖｏｌｕｔｉｏｎ処理では、入力データＩｃの左上から右下に向かって複数のピクセルの輝度値を取得する位置をスライドさせながら、取得された複数のピクセルの輝度値への係数Ｗｃの乗算と係数Ｂｃの加算を行うことにより出力データＯｃが算出される。
【００４６】
数２にＣｏｎｖｏｌｕｔｉｏｎ処理の算出式の一例を示す。
【００４７】
【数２】
2020173101.tif 000004
【００４８】
ここで、入力データＩｃはチャンネルｃｈ、垂直方向位置ｙ、水平方向位置ｘの３つの次元を持つデータであり、出力データＯｃは特徴量番号ｄ、垂直方向位置ｙ、水平方向位置ｘの３つの次元を持つデータである。また乗算係数Ｗｃは特徴量番号ｄ、チャンネルｃｈ、垂直方向位置ｆｙ、水平方向位置ｆｘの４つの次元を持つ係数であってカーネルとも呼ばれ、加算係数Ｂｃは特徴量番号ｄの次元を持つ係数である。なおカーネルの大きさはカーネル高さＦｙとカーネル幅Ｆｘによって表され、カーネルが１回当たりにスライドする量は垂直方向ストライド量Ｓｙと水平方向ストライド量Ｓｘによって表される。
【００４９】
また、乗算係数Ｗｃと加算係数Ｂｃは、各領域が正しく分割された画像である教師画像を入力データとして、確率的勾配降下法等を用いる機械学習により予め求められて、領域分割処理の係数としてメモリ１０４に格納される。すなわち、複数の上方画像２１２の各ピクセルが縁領域４０２、内壁領域４０３、上面領域４０４、背景領域４０５のいずれに属するかを正しく表す教師信号を用いて機械学習が行われる。
【００５０】
図８を用いてＰｏｏｌｉｎｇ処理の動作の一例について説明する。図８に示すようにＰｏｏｌｉｎｇ処理では、入力データＩｐの左上から右下に向かって複数のピクセルの輝度値を取得する位置を一定の刻み幅でスライドさせながら、取得された複数のピクセルの輝度値から代表値を抽出することにより出力データＯｐが算出される。代表値には例えば複数のピクセルの輝度値の最大値や平均値が用いられ、本実施例で抽出される代表値は最大値である。
【００５１】
数３にＰｏｏｌｉｎｇ処理の算出式の一例を示す。
【００５２】
【数３】
2020173101.tif 000005
【００５３】
ここで入力データＩｐと出力データＯｐはチャンネルｃｈ、垂直方向位置ｙ、水平方向位置ｘの３つの次元を持つデータである。またＰｏｏｌｉｎｇ処理においても、Ｃｏｎｖｏｌｕｔｉｏｎ処理と同様に、取得された複数のピクセルの輝度値にカーネルと呼ばれる係数が乗じられ、カーネルの大きさはＦｙとＦｘ、カーネルのストライド量はＳｙとＳｘによって表される。なおＰｏｏｌｉｎｇ処理では、Ｓｙ＝Ｆｙ、Ｓｘ＝Ｆｘとする場合が多く、カーネルの全要素は１である。なおＰｏｏｌｉｎｇ処理に用いられるカーネルをＰカーネル、Ｃｏｎｖｏｌｕｔｉｏｎ処理に用いられるカーネルをＣカーネルと呼ぶ。
【００５４】
Ａｃｔｉｖａｔｉｏｎ処理はＣｏｎｖｏｌｕｔｉｏｎ処理の出力データＯｃやＰｏｏｌｉｎｇ処理の出力データＯｐに対して、数４や数５の非線形関数を適用し、例えばあるピクセルが縁領域４０２であるか否かを識別する処理である。
【００５５】
【数４】
2020173101.tif 000006
【００５６】
【数５】
2020173101.tif 000007
【００５７】
ＣＮＮは上記のＣｏｎｖｏｌｕｔｉｏｎ処理、Ｐｏｏｌｉｎｇ処理、Ａｃｔｉｖａｔｉｏｎ処理を組み合わせて、特徴量や識別結果を得る。ＦＣＮはＣＮＮのみで構成された領域分割器であり、任意サイズの画像を入力することが可能である。
【００５８】
図９にＦＣＮによる領域分割処理の一例を示す。入力画像９０１はＦＣＮに入力される画像であり、幅と高さがいずれも８ピクセルであるとする。１番目のカーネル９０２は各層における最初の処理対象領域を示している。網掛け部分は処理対象箇所を表す。２番目のカーネル９０３は各層における２番目の処理対象領域を示している。１番目のカーネル９０２と２番目のカーネル９０３のずれ量はストライド量Ｓｙ、Ｓｘによって決定される。
【００５９】
１層目出力データ９０４は、入力画像９０１にＣｏｎｖｏｌｕｔｉｏｎ処理を適用した結果、２層目出力データ９０５は１層目出力データ９０４にＰｏｏｌｉｎｇ処理を適用した結果である。また３層目出力データ９０６は２層目出力データ９０５にＣｏｎｖｏｌｕｔｉｏｎ処理を適用した結果、４層目出力データ９０７は３層目出力データ９０６にＰｏｏｌｉｎｇ処理を適用した結果である。さらに領域分割結果９０８は４層目出力データ９０７が入力画像中のどの位置の識別結果に相当するかを表す。なおＣｏｎｖｏｌｕｔｉｏｎ処理およびＰｏｏｌｉｎｇ処理のカーネルサイズＦｙ、Ｆｘとストライド量Ｓｙ、Ｓｘは図９に記載の通りである。
【００６０】
図９に示す通りストライド量が２以上の処理が実行される毎に、各層の出力データはストライド量に応じてサイズが縮小する。最終出力である４層目出力データ９０７は２ｘ２ピクセルまで縮小しており、入力画像９０１上に当てはめられるのは領域分割結果９０８の黒マスに示した４箇所に過ぎない。すなわち領域分割結果９０８の黒マスの識別結果しか得られておらず、白マス部分は識別結果が得られていない状態であり、低解像度の領域分割処理となる。
【００６１】
図１０を用いて高解像度の領域分割処理について説明する。図１０では取得位置の異なる画像をＦＣＮに入力し、各画像に対する領域分割結果を取得する。すなわち第１の入力画像１００１、第２の入力画像１００２、第３の入力画像１００３、第４の入力画像１００４、…が入力され、第１の領域分割結果１００５、第２の領域分割結果１００６、第３の領域分割結果１００７、第４の領域分割結果１００８、…が取得される。なお第１の入力画像１００１は、図９の入力画像９０１と同じ画像であり、第２の入力画像１００２は入力画像９０１を１ピクセル右に、第３の入力画像１００３は２ピクセル右に、第４の入力画像１００４は１ピクセル下に、それぞれスライドさせた画像である。ピクセルのスライドにより画素が存在しない部分には輝度値０や隣接画素の輝度値が埋められる。取得された複数の領域分割結果を統合することにより、統合領域分割結果１００９が得られる。図１０の領域分割処理によれば、高解像度の領域分割結果を取得できるものの、領域分割処理の回数が増え、例えば図１０の例では１６回となるので処理時間も増大する。
【００６２】
そこで本実施例では、ＦＣＮのＣｏｎｖｏｌｕｔｉｏｎ処理とＰｏｏｌｉｎｇ処理に用いられるカーネルをダイレート処理により変更し、１回の領域分割処理で高解像度の領域分割結果を取得する。ダイレート処理とはカーネルの要素間に所定数のゼロを挿入し、カーネルを拡大する処理であり、ダイレート処理後のカーネルをダイレートカーネルあるいはＤカーネルと呼ぶ。またＤカーネルを用いるＣｏｎｖｏｌｕｔｉｏｎ処理およびＰｏｏｌｉｎｇ処理をＤｉｌａｔｅｄ  Ｃｏｎｖｏｌｕｔｉｏｎ処理、Ｄｉｌａｔｅｄ  Ｐｏｏｌｉｎｇ処理と呼ぶ。
【００６３】
図１１を用いてＤｉｌａｔｅｄ  Ｃｏｎｖｏｌｕｔｉｏｎ処理におけるＤカーネルの一例について説明する。Ｃカーネル１１０１はＣｏｎｖｏｌｕｔｉｏｎ処理に用いられるカーネルの一例であり、ａ〜ｉの９個の要素で構成される。ＤＣカーネル１１０２はＤｉｌａｔｅｄ  Ｃｏｎｖｏｌｕｔｉｏｎ処理に用いられるカーネルの一例であり、Ｃカーネル１１０１の要素間のそれぞれに１つのゼロが挿入されて構成される。なお挿入されるゼロの数に１を加算した値をダイレート量Ｄｙ、Ｄｘと呼び、図１１のＤＣカーネル１１０２はＤｙ、Ｄｘ＝２、２である。
【００６４】
数６にＤｉｌａｔｅｄ  Ｃｏｎｖｏｌｕｔｉｏｎ処理の算出式の一例を示す。
【００６５】
【数６】
2020173101.tif 000008
【００６６】
数６において、Ｄｙ、Ｄｘ＝１、１とすると数２になる。
【００６７】
図１２を用いてＤｉｌａｔｅｄ  Ｐｏｏｌｉｎｇ処理におけるＤカーネルの一例について説明する。Ｐカーネル１２０１はＰｏｏｌｉｎｇ処理に用いられるカーネルの一例であり、９個の全要素が１で構成される。ＤＰカーネル１２０２はＤｉｌａｔｅｄ  Ｐｏｏｌｉｎｇ処理に用いられるカーネルの一例であり、Ｐカーネル１２０１の要素間のそれぞれに１つのゼロが挿入されて構成される。ダイレート量Ｄｙ、Ｄｘに関しては、Ｄｉｌａｔｅｄ  Ｃｏｎｖｏｌｕｔｉｏｎ処理と同様であり、図１２のＤＰカーネル１２０２もＤｙ、Ｄｘ＝２、２である。
【００６８】
数７にＤｉｌａｔｅｄ  Ｐｏｏｌｉｎｇ処理の算出式の一例を示す。
【００６９】
【数７】
2020173101.tif 000009
【００７０】
数７において、Ｄｙ、Ｄｘ＝１、１とすると数３になる。
【００７１】
図１３を用いてＤｉｌａｔｅｄ  Ｃｏｎｖｏｌｕｔｉｏｎ処理とＤｉｌａｔｅｄ  Ｐｏｏｌｉｎｇ処理について説明する。１番目のカーネル１３０１および２番目のカーネル１３０２はＣｏｎｖｏｌｕｔｉｏｎ処理またはＰｏｏｌｉｎｇ処理に用いられるカーネルである。また１番目のＤカーネル１３０３および２番目のＤカーネル１３０４はＤｉｌａｔｅｄ  Ｃｏｎｖｏｌｕｔｉｏｎ処理またはＤｉｌａｔｅｄ  Ｐｏｏｌｉｎｇ処理に用いられるカーネルである。カーネルサイズＦｙ、Ｆｘはいずれも３、ストライド量Ｓｙ、Ｓｘはいずれも２である。
【００７２】
Ｃｏｎｖｏｌｕｔｉｏｎ処理またはＰｏｏｌｉｎｇ処理は、ダイレート量Ｄｙ、Ｄｘをいずれも１とした場合のＤｉｌａｔｅｄ  Ｃｏｎｖｏｌｕｔｉｏｎ処理またはＤｉｌａｔｅｄ  Ｐｏｏｌｉｎｇ処理に相当する。また１番目のＤカーネル１３０３および２番目のＤカーネル１３０４のダイレート量Ｄｙ、Ｄｘはいずれも２である。
【００７３】
なお各カーネルの処理範囲には、入力データ外の領域が含まれる場合がある。例えば２番目のカーネル１３０２の場合、１行目が入力データ外の領域にあたる。本実施例では入力データ外の領域に輝度値０が埋められる。またＤｉｌａｔｅｄ  Ｃｏｎｖｏｌｕｔｉｏｎ処理とＤｉｌａｔｅｄ  Ｐｏｏｌｉｎｇ処理を用いたＦＣＮをＤＦＣＮ（Ｄｉｌａｔｅｄ  ＦＣＮ）と呼ぶ。
【００７４】
図１４を用いてＦＣＮモデルをＤＦＣＮモデルに変換する処理の流れの一例について説明する。図１４の処理の流れではＦＣＮモデルを入力し、垂直方向Ｋｙ、水平方向Ｋｘピクセル単位の領域分割結果を算出するＤＦＣＮモデルを出力する。Ｋｙ、Ｋｘは１に近いほど高解像度であり、大きな値になるほど解像度が低下するものの処理速度が高速になる。ただし、Ｋｙ、ＫｘはＦＣＮモデル内の全層のストライド量の積Ｐｓｙ、Ｐｓｘの約数の１つであるとする。また、ＦＣＮモデルはＣｏｎｖｏｌｕｔｉｏｎ層、Ｐｏｏｌｉｎｇ層、Ａｃｔｉｖａｔｉｏｎ層のいずれかで構成されているとする。Ｃｏｎｖｏｌｕｔｉｏｎ層、Ｐｏｏｌｉｎｇ層、Ａｃｔｉｖａｔｉｏｎ層はそれぞれＣｏｎｖｏｌｕｔｉｏｎ処理、Ｐｏｏｌｉｎｇ処理、Ａｃｔｉｖａｔｉｏｎ処理を行う。
【００７５】
Ｓ１４０１では変数Ｌが初期化される。変数Ｌは処理対象となる層のインデックスを表す。
【００７６】
Ｓ１４０２では層の型が判定される。層の型がＣｏｎｖｏｌｕｔｉｏｎ層またはＰｏｏｌｉｎｇ層であればＳ１４０３に遷移し、Ａｃｔｉｖａｔｉｏｎ層であればＳ１４０６に遷移する。
【００７７】
Ｓ１４０３では層の型が変換される。Ｌ層目がＣｏｎｖｏｌｕｔｉｏｎ層であればＤｉｌａｔｅｄ  Ｃｏｎｖｏｌｕｔｉｏｎ層に、Ｐｏｏｌｉｎｇ層であればＤｉｌａｔｅｄ  Ｐｏｏｌｉｎｇ層に変換される。なお変換後のＤｉｌａｔｅｄ  Ｃｏｎｖｏｌｕｔｉｏｎ層やＤｉｌａｔｅｄ  Ｐｏｏｌｉｎｇ層のカーネルのサイズ、カーネルの種類数、カーネルの係数、プーリングサイズ等のパラメータは変換前のＣｏｎｖｏｌｕｔｉｏｎ層やＰｏｏｌｉｎｇ層の設定値と同じである。
【００７８】
Ｓ１４０４ではＬ層目のダイレート量が決定される。垂直方向のダイレート量Ｄｙの決定手順の一例について説明する。なお水平方向のダイレート量Ｄｘについても添え字をｙからｘに読み替えることで同様に決定される。まず入力されたＦＣＮモデルの０層目からＬ−１層目までの垂直方向のストライド量Ｓｙの積ＰＳｙが算出される。次にストライド量Ｓｙの積ＰＳｙと領域分割結果の垂直方向の刻み幅Ｋｙとの最大公約数ＧＣｙが求められる。ストライド量Ｓｙの積ＰＳｙと最大公約数ＧＣｙが次式に代入され、Ｌ層目の垂直方向のダイレート量Ｄｙが決定される。
【００７９】
【数８】
2020173101.tif 000010
【００８０】
さらに次式により刻み幅Ｋｙが更新される。
【００８１】
【数９】
2020173101.tif 000011
【００８２】
Ｓ１４０５ではＬ層目のストライド量が決定される。垂直方向のストライド量Ｓｙの決定手順の一例について説明する。なお水平方向のストライド量Ｓｘについても添え字をｙからｘに読み替えることで同様に決定される。１４０４にて算出された最大公約数ＧＣｙが次式に代入され、Ｌ層目の垂直方向のストライド量Ｓｙが決定される。
【００８３】
【数１０】
2020173101.tif 000012
【００８４】
Ｓ１４０６では変数Ｌがインクリメントされる。すなわち処理対象が次の層に切り替えられる。
【００８５】
Ｓ１４０７では全ての層に対する変換処理が完了したか否かが判定される。例えば変数ＬがＦＣＮモデルを構成する層の数以上であれば完了、そうでなければ未完了と判定される。完了であれば処理の流れは終了し、未完了であればＳ１４０２に遷移する。
【００８６】
以上の処理の流れによりＦＣＮモデルを、高解像度の領域分割結果を高速に得ることが可能なＤＦＣＮモデルに変換することができる。
【００８７】
図１５にＤＦＣＮによる領域分割処理の一例を示す。入力画像１５０１はＤＦＣＮに入力される画像であり、幅と高さがいずれも８ピクセルであるとする。１番目のカーネル１５０２は各層における最初の処理対象領域を示している。網掛け部分は処理対象箇所を表す。２番目のカーネル１５０３は各層における２番目の処理対象領域を示している。
【００８８】
１層目出力データ１５０４は、入力画像１５０１にＤｉｌａｔｅｄ  Ｃｏｎｖｏｌｕｔｉｏｎ処理を適用した結果、２層目出力データ１５０５は１層目出力データ１５０４にＤｉｌａｔｅｄ  Ｐｏｏｌｉｎｇ処理を適用した結果である。また３層目出力データ１５０６は２層目出力データ１５０５にＤｉｌａｔｅｄ  Ｃｏｎｖｏｌｕｔｉｏｎ処理を適用した結果、４層目出力データ１５０７は３層目出力データ１５０６にＤｉｌａｔｅｄ  Ｐｏｏｌｉｎｇ処理を適用した結果である。各層の処理により解像度の低下が生じないため、４層目出力データ１５０７は入力画像１５０１と同じ解像度を有する領域分割結果となる 。
【００８９】
ＦＣＮで高解像度の領域分割結果を得るには、図１０に示したように取得位置の異なる画像毎に領域分割処理をする必要があり、一部の処理が重複しているために処理時間が増大していた。ＤＦＣＮによる領域分割処理では、高解像度のＦＣＮでは重複していた処理を一度に済ませられるので、高解像度の領域分割結果を高速に得ることができる。
【００９０】
なお図１４ではＦＣＮモデルをＤＦＣＮモデルに変換することについて説明したが、最初からＤＦＣＮモデルを構築しても良い。また一定サイズの入力画像を識別対象とするＤＮＮベースの画像識別器からＦＣＮへ変換し、さらにＤＦＣＮへ変換しても良い。領域分割のための機械学習は、ＤＮＮベースの画像識別器、ＦＣＮ、ＤＦＣＮのいずれのモデルで行っても良い。
【実施例２】
【００９１】
実施例１では、上方画像２１２から算出される容器１１２の縁領域４０２に基づいて、容器１１２の種別が判定されることについて説明した。画像処理装置１０１が出力する判定結果は、容器１１２の種別に限られない。本実施例では、上方画像２１２から算出される容器１１２の縁領域４０２と採取対象１１３の上面領域４０４に基づいて、採取対象１１３の量が判定されることについて説明する。なお、本実施例のハードウェア構成と機能ブロック図は実施例１と同じであるので説明を省略する。
【００９２】
図１６を用いて、本実施例の処理の流れの一例について説明する。なおＳ３０１〜Ｓ３０３は実施例１と同じ処理であるので説明を省略し、Ｓ３０３以降のＳ１６０４〜Ｓ１６０６について説明する。
【００９３】
（Ｓ１６０４）
領域算出部２０２がＳ３０１で取得された上方画像２１２から採取対象１１３の上面領域４０４を算出する。上面領域４０４の算出には、Ｓ３０２と同様に、上方画像２１２の輝度値を用いた閾値処理や、ＦＣＮやＤＦＣＮを用いた領域分割処理等が実行される。
【００９４】
（Ｓ１６０５）
状態判定部２０３が、Ｓ３０２で算出された縁領域４０２とＳ１６０４で算出された上面領域４０４とに基づいて、採取対象１１３の量を判定する。図１７と図１８を用いて本ステップについて説明する。まず図１７を用いて、上面領域４０４について説明する。
【００９５】
状態判定部２０３は、Ｓ１６０４での算出結果に基づいて、採取対象１１３の上面の二値化画像１７０１を作成する。上面の二値化画像１７０１には、上面領域４０４と、上面領域４０４以外のその他領域１７０４が含まれる。上面領域４０４には例えば輝度値０が、その他領域１７０４には輝度値２５５が与えられる。
【００９６】
状態判定部２０３は、上面の二値化画像１７０１にソーベルフィルタ等を適用して上面領域４０４の境界を抽出し、上面の境界画像１７０２を作成する。上面の境界画像１７０２には上面境界１７０５が含まれる。状態判定部２０３は、上面境界１７０５から任意に抽出される少なくとも３つの抽出点１７０６に対して楕円フィッティングを行い、上面領域４０４の長径と短径を算出する。なお上面領域４０４の短径は、容器１１２が傾いても長径に比べて変化しにくいので、以降の処理で用いられる。
【００９７】
図１８を用いて採取対象１１３の量の判定について説明する。なお、撮像部１１１のレンズが非テレセントリックである場合とテレセントリックである場合とについてそれぞれ説明する。レンズが非テレセントリックである場合、撮像部１１１から被撮像物までの距離が長くなるに従って被撮像物の大きさは小さくなるのに対し、テレセントリックである場合、撮像部１１１から被撮像物までの距離にかかわらず被撮像物の大きさは同じである。
【００９８】
図１８Ａを用いて非テレセントリックの場合について説明する。図１８Ａには、採取対象１１３が多量時と少量時の側面図または上方画像、すなわち多量時の側面図１８０１と多量時の上方画像１８０２、少量時の側面図１８０４と少量時の上方画像１８０５が示される。多量時の上方画像１８０２と少量時の上方画像１８０５との比較から分かるように、多量時の上面１８０３は少量時の上面１８０６よりも面積が大きい。そこで状態判定部２０３は、上面領域４０４の短径に基づいて採取対象１１３の量を判定する。
【００９９】
具体的には、まず上面領域４０４の短径が図１９に例示されるテーブルと照合されて、容器１１２の縁２１３から採取対象１１３の上面２１５までの距離Ｈが求められる。なお図１９のテーブルは、複数の種別の容器１１２に異なる量の採取対象１１３が収容されたときの上面領域４０４の短径や距離Ｈが計測されることにより予め作成され、メモリ１０４等に保管される。次に縁領域４０２に基づいて判定される容器１１２の種別が図６Ｂのテーブルに照合されて、容器１１２の長さＧと内径Ｄが求められる。そして距離Ｈと長さＧ、内径Ｄが次式に代入され、採取対象１１３の量Ｑが求められる。
【０１００】
【数１１】
2020173101.tif 000013
【０１０１】
なお数１１は容器１１２の内径Ｄが距離Ｈによらず一定である場合の式である。容器１１２がテーパ形状等を有し、距離Ｈによって容器１１２の内径Ｄが変わる場合には、距離Ｈと内径Ｄとの関係がメモリ１０４等に予め保管され、必要に応じて参照されることにより、数１１を用いて採取対象１１３の量Ｑが求められる。
【０１０２】
図１８Ｂを用いてテレセントリックの場合について説明する。図１８Ｂにも図１８Ａと同様に、多量時の側面図１８０１と多量時の上方画像１８０２、少量時の側面図１８０４と少量時の上方画像１８０５が示される。多量時の上方画像１８０２と少量時の上方画像１８０５との比較から分かるように、テレセントリックの場合は多量時の上面１８０３と少量時の上面１８０６の面積は同等であり、上面領域４０４の短径に基づく採取対象１１３の量の判定ができない。
【０１０３】
そこでテレセントリックの場合には、図１８Ｃに示すように撮像部１１１を傾けて撮像される上方画像に基づいて採取対象１１３の量が判定される。すなわち多量時の上方画像１８０２と少量時の上方画像１８０５との比較から分かるように、採取対象１１３が多量時には少量時よりも縁から上面までの距離１８０７が短いので、縁から上面までの距離１８０７に基づいて採取対象１１３の量が判定される。具体的には、縁から上面までの距離１８０７をＨ’、鉛直方向に対する撮像部１１１の傾き角度をΨとするとき、次式により容器１１２の縁２１３から採取対象１１３の上面２１５までの距離Ｈが求められ、さらに数１１により採取対象１１３の量Ｑが求められる。
【０１０４】
【数１２】
2020173101.tif 000014
【０１０５】
なお容器１１２がテーパ形状等を有する場合は、非テレセントリックの場合と同様に、メモリ１０４等に予め保管される距離Ｈと内径Ｄとの関係が必要に応じて参照され、数１１を用いて採取対象１１３の量Ｑが求められる。
【０１０６】
（Ｓ１６０６）
出力部１０５が、Ｓ１６０５で判定された採取対象１１３の量を出力する。判定の結果は、例えば制御部１２１へ送信され、制御部１２１は判定の結果に基づいて採取部１２２を制御する。例えば、採取対象１１３の量が所定の量に達していないと判定された場合、制御部１２１は採取部１２２を停止させても良い。また、出力部１０５は判定の結果をディスプレイやプリンタへ出力し、採取対象１１３の量を操作者に提示しても良いし、採取対象１１３の量が所定の量に達していない場合にはその旨を示すメッセージが表示されても良い。
【０１０７】
以上説明した処理の流れにより、画像処理装置１０１は単一の撮像部１１１で取得された上方画像２１２により採取対象１１３の状態の一つである採取対象１１３の量を判定できる。また自動分析システム１００は、画像処理装置１０１による判定結果に応じて、採取部１２２を適切に制御できるので、検査効率を低下させることなく、より正確な分析を行うことができる。
【実施例３】
【０１０８】
実施例１では容器１１２の種別が判定されることについて、実施例２では採取対象１１３の量が判定されることについて説明した。本実施例では、上方画像２１２から算出される容器１１２の縁領域４０２と採取対象１１３の上面領域４０４に基づいて、容器１１２の傾きが判定されることについて説明する。なお、本実施例のハードウェア構成と機能ブロック図は実施例１と同じであるので説明を省略する。
【０１０９】
図２０を用いて、本実施例の処理の流れの一例について説明する。なおＳ３０１〜Ｓ３０２は実施例１と同じ処理であり、Ｓ１６０４は実施例２と同じ処理であるので説明を省略し、Ｓ１６０４以降のＳ２００５〜Ｓ２００６について説明する。
【０１１０】
（Ｓ２００５）
状態判定部２０３が、Ｓ３０２で算出された縁領域４０２とＳ１６０４で算出された上面領域４０４とに基づいて、容器１１２の傾きを判定する。容器１１２の傾きの判定では、傾きの有無の判定、あるいは傾き角度の判定が行われる。
【０１１１】
図２１を用いて容器１１２の傾きの有無の判定について説明する。本実施例においても撮像部１１１のレンズが非テレセントリックである場合とテレセントリックである場合とについてそれぞれ説明する。
【０１１２】
図２１Ａを用いて非テレセントリックの場合について説明する。図２１Ａには、容器１１２の直立時と傾斜時の側面図または上方画像、すなわち直立時の側面図２１０１と直立時の上方画像２１０２、傾斜時の側面図２１０５と傾斜時の上方画像２１０６が示される。直立時の上方画像２１０２と傾斜時の上方画像２１０６では、Ｓ３０２で算出された縁領域４０２とＳ１６０４で算出された上面領域４０４に基づいて、縁領域４０２の中心２１０３と上面領域４０４の中心２１０４が求められる。
【０１１３】
直立時の上方画像２１０２と傾斜時の上方画像２１０６との比較から分かるように、直立時には縁領域４０２の中心２１０３と上面領域４０４の中心２１０４は一致するのに対し、傾斜時には中心２１０３と中心２１０４は一致せず、傾斜が大きくなるに従って中心２１０３と中心２１０４との距離が大きくなる。そこで状態判定部２０３は、縁領域４０２の中心２１０３と上面領域４０４の中心２１０４との距離に基づいて、容器１１２の傾きの有無を判定する。すなわち、縁領域４０２の中心２１０３と上面領域４０４の中心２１０４との距離が予め定められた閾値以上であるときは容器１１２が傾いていると判定され、閾値未満であるときは傾いていないと判定される。
【０１１４】
図２１Ｂを用いてテレセントリックの場合について説明する。図２１Ｂにも図２１Ａと同様に、直立時の側面図２１０１と直立時の上方画像２１０２、傾斜時の側面図２１０５と傾斜時の上方画像２１０６が示される。また非テレセントリックの場合と同様に、縁領域４０２の中心２１０３と上面領域４０４の中心２１０４が求められ、テレセントリックの場合も中心２１０３と中心２１０４との距離に基づいて、容器１１２の傾きの有無が判定される。中心２１０３と中心２１０４との距離に基づく容器１１２の傾きの有無の判定は、容器１１２がテーパ形状を有する場合にも可能である。
【０１１５】
また縁領域４０２の中心２１０３と上面領域４０４の中心２１０４との距離以外にも、容器１１２の内壁領域４０３等に基づいて容器１１２の傾きの有無が判定されても良い。例えば、容器１１２の直立時に比べて傾斜時では内壁領域４０３の形状が変化するので、内壁領域４０３の幅や面積を用いて容器１１２の傾きの有無が判定されても良い。また内壁領域４０３に限らず容器１１２の外壁領域が容器１１２の傾きの有無の判定に用いられても良い。
【０１１６】
図２２を用いて容器１１２の傾き角度の判定について説明する。本実施例においても撮像部１１１のレンズが非テレセントリックである場合とテレセントリックである場合とについてそれぞれ説明する。
【０１１７】
図２２Ａを用いて非テレセントリックの場合について説明する。図２２Ａには、容器１１２の傾斜時の側面図２２０１と傾斜時の上方画像２２０２が示される。傾斜時の側面図２２０１において容器１１２の傾き角度を求めるには、容器１１２の縁２１３の中心２２０３と採取対象１１３の上面２１５の中心２２０４との水平方向の距離と鉛直方向の距離が算出できれば良い。すなわち中心２２０３と中心２２０４との水平方向の距離である中心間水平距離２２０５と、鉛直方向の距離である中心間鉛直距離２２０６とから次式により、鉛直方向に対する容器１１２の傾き角度θが求められる。
【０１１８】
【数１３】
2020173101.tif 000015
【０１１９】
ここでＳｈは中心間水平距離２２０５であり、Ｈは中心間鉛直距離２２０６である。
【０１２０】
ただし、撮像部１１１により撮像される画像は傾斜時の上方画像２２０２であるので、数１３を用いて容器１１２の傾き角度θを求めるには、傾斜時の上方画像２２０２から中心間水平距離２２０５と中心間鉛直距離２２０６を取得する必要がある。まず中心間鉛直距離２２０６すなわち容器１１２の縁２１３から採取対象１１３の上面２１５までの距離Ｈは、実施例２で説明したように、上面領域４０４の短径を図１９に例示されるテーブルと照合することにより求められる。
【０１２１】
次に傾斜時の上方画像２２０２から中心間水平距離２２０５を求める。非テレセントリックの場合、撮像部１１１から被撮像物までの距離が長くなるに従って被撮像物の大きさが小さくなるので、採取対象１１３の上面２１５での長さは容器１１２の縁２１３での長さに補正されて扱われることが好ましい。具体的には、傾斜時の上方画像２２０２における縁領域４０２の中心２２０７と上面領域４０４の中心２２０８との距離である領域中心間距離２２０９は、上面領域４０４の短径と縁領域４０２の内径との比率に基づいて補正されることが好ましい。例えば、中心間水平距離２２０５であるＳｈは次式によって算出される。
【０１２２】
【数１４】
2020173101.tif 000016
【０１２３】
ここでＦ１はレンズ中心２２１０から上面領域４０４の中心２２０８までの距離である第一中心間距離２２１２、Ｆ０はレンズ中心２２１０から縁領域４０２の中心２２０７までの距離である第二中心間距離２２１１である。またＢ０は縁領域４０２の内径２２１３、Ｂ１は上面領域４０４の短径２２１４である。数１４によれば、採取対象１１３の上面２１５での長さである第二中心間距離２２１１が容器１１２の縁２１３での長さに補正されてから第一中心間距離２２１２との差分が演算されて、その絶対値が中心間水平距離２２０５であるＳｈとして算出される。すなわち撮像部１１１から被撮像物までの距離に応じて変化する被撮像物の大きさが補正されて中心間水平距離２２０５であるＳｈが算出される。
【０１２４】
算出されたＳｈと先に求められた距離Ｈとが数１３に代入されることにより、容器１１２の傾き角度θが求められる。
【０１２５】
図２２Ｂを用いてテレセントリックの場合について説明する。図２２Ｂにも図２２Ａと同様に、容器１１２の傾斜時の側面図２２０１と傾斜時の上方画像２２０２が示される。テレセントリックの場合、中心間水平距離２２０５は、傾斜時の上方画像２２０２における縁領域４０２の中心２２０７と上面領域４０４の中心２２０８との距離である領域中心間距離２２０９として求められる。また中心間鉛直距離２２０６は実施例２と同様に求められるので、中心間水平距離２２０５と中心間鉛直距離２２０６が数１３に代入されて容器１１２の傾き角度θが求められる。
【０１２６】
また図１８Ｃのように撮像部１１１を傾けながら撮像し、容器１１２の内壁領域４０３が上方画像に含まれなくなった時の撮像部１１１の傾斜角を容器１１２の傾き角度θとしても良い。
【０１２７】
（Ｓ２００６）
出力部１０５が、Ｓ２００５で判定された容器１１２の傾きを出力する。判定の結果は、例えば制御部１２１へ送信され、制御部１２１は判定の結果に基づいて採取部１２２を制御する。例えば、容器１１２が傾いていると判定されたり、容器１１２の傾き角度が予め定められた閾値を超過すると判定されたりした場合、制御部１２１は採取部１２２を停止させても良い。もしくは容器１１２の傾き角度に応じて、採取部１２２の位置や傾きが調整されても良い。
【０１２８】
また出力部１０５は判定の結果をディスプレイやプリンタへ出力し、容器１１２の傾きの有無や傾き角度を操作者に提示しても良いし、傾いている容器１１２の数の比率が予め定められた閾値を超過する場合に注意を促すメッセージ等が表示されても良い。さらに出力部１０５は、他の画像処理装置へ容器１１２の傾き角度を出力しても良く、それとともに容器１１２の傾き角度に応じた補正処理を行った画像を出力しても良い。容器１１２の傾き角度に応じた補正処理とは、例えば容器１１２の傾き角度に応じて画像の座標変換をすることにより、容器１１２の傾きによる画像の変形を補正する処理等である。
【０１２９】
以上説明した処理の流れにより、画像処理装置１０１は単一の撮像部１１１で取得された上方画像２１２により容器１１２の状態の一つである容器１１２の傾きを判定できる。また自動分析システム１００は、画像処理装置１０１による判定結果に応じて、採取部１２２を適切に制御できるので、検査効率を低下させることなく、より正確な分析を行うことができる。
【実施例４】
【０１３０】
実施例１乃至３では、上方画像２１２から算出される容器１１２の縁領域４０２や採取対象１１３の上面領域４０４に基づいて、容器１１２や採取対象の状態が判定されることについて説明した。画像処理装置１０１がＦＣＮやＤＦＣＮ等を用いて上方画像２１２を精度良く領域分割処理するには、機械学習に用いられる適切な教師信号が必要である。本実施例では、機械学習用の教師信号を効率的に作成することについて説明する。なお、本実施例のハードウェア構成は実施例１と同じであるので説明を省略する。
【０１３１】
図２３を用いて本実施例の機能ブロック図の一例について説明する。なおこれらの機能は、専用のハードウェアで構成されても良いし、演算部１０３上で動作するソフトウェアで構成されても良い。本実施例は、画像取得部２０１、領域算出部２０２とともに、尤度取得部２３０１、画像選択・表示部２３０２、教師信号取得部２３０３、学習部２３０４を備える。以下、実施例１で説明された画像取得部２０１、領域算出部２０２以外の各部について説明する。
【０１３２】
尤度取得部２３０１は、領域算出部２０２によって算出された各領域中の各ピクセルが、例えば縁領域４０２、内壁領域４０３、上面領域４０４等のいずれの領域であるかの尤度を取得する。なお尤度はピクセル毎に総和が１．０になるように正規化され、各ピクセルの中の最大の尤度は最大尤度と呼ばれる。最大尤度が大きいピクセルは該当領域である確信度が高く、最大尤度が小さいピクセルは確信度が低いことになる。
【０１３３】
画像選択・表示部２３０２は、例えば画像中の各ピクセルの最大尤度に基づいて、教師信号の付与に用いられる画像を選択し、選択された画像をディスプレイ等に表示させる。
【０１３４】
教師信号取得部２３０３は、教師信号を含む画像である教師画像から教師信号を取得する。教師信号は操作者の操作や他の画像処理装置による領域分割処理によって付与される。
【０１３５】
学習部２３０４は、教師画像に含まれる教師信号を用いて機械学習をし、領域算出部２０２が領域分割処理に用いる係数等のパラメータを算出したり、更新したりする。
【０１３６】
図２４を用いて、本実施例の処理の流れの一例について説明する。本実施例では、分割された各領域の確信度が比較的低い画像が選択・表示され、表示された画像に対して操作者が付与する教師信号を用いて機械学習が行われる。
【０１３７】
（Ｓ２４０１）
画像選択・表示部２３０２が、画像中の各ピクセルの尤度に基づいて、教師信号を付与するための画像を記録装置等に記録される画像群の中から選択し、ディスプレイ等に表示させる。例えば、各ピクセルの最大尤度の平均値が所定の閾値未満の画像、すなわち各領域の確信度が比較的低い画像が選択される。
【０１３８】
図２５を用いて、本ステップにて表示される画面の一例について説明する。図２５に示される画面は、本ステップで選択された複数の画像のうち、教師信号が付与済みの画像の枚数と、未済の画像の枚数とを、容器１１２の種別毎に示す画像リストである。画像リスト中の任意のセル、例えば容器βの未済である１００が表示されるセルがマウスのカーソル等によって選択されると、当該セルに対応する画像である容器βを含む画像が表示されても良い。
【０１３９】
操作者は本画面から教師信号が付与された画像と付与されていない画像の各枚数を容器１１２の種別毎に確認でき、どの種別の容器１１２を含む画像に教師信号を付与したほうが良いかを判断できるので、教師信号を付与する作業の効率化が可能となる。なお表示される画像リストは、容器１１２の種別毎に分類されたものに限定されない。
【０１４０】
（Ｓ２４０２）
教師信号取得部２３０３が、操作者の操作に基づいて、Ｓ２４０１にて表示された画像に対する教師信号を取得する。図２６と図２７を用いて、本ステップにて使用される画面の一例について説明する。
【０１４１】
図２６に示される画面は、教師信号を付与する領域を指定するための操作画面の一例であり、画像表示部２６０１、画像選択部２６０２、修正ツール２６０３、保存ボタン２６０４、読込ボタン２６０５を有する。
【０１４２】
画像表示部２６０１には、画像選択部２６０２での選択に応じた画像が表示される。画像選択部２６０２では、画像表示部２６０１に表示される画像の条件が選択される。図２６では、画像選択部２６０２で原画像と領域分割結果が選択されており、領域算出部２０２が原画像を領域分割した結果が画像表示部２６０１に表示されている。
【０１４３】
修正ツール２６０３では、教師信号を修正したい領域が選択される。例えば修正ツール２６０３で液面、すなわち採取対象１１３が液体であるときの上面が選択された状態で、画像表示部２６０１に表示される画像の任意のピクセルが選択されると、選択されたピクセルは上面領域４０４の教師信号が付与される。画像表示部２６０１に表示される画像中のピクセルの選択は、マウス等によって行われる。
【０１４４】
保存ボタン２６０４は、修正後の教師信号が保存されるときに押下されるボタンである。すなわち保存ボタン２６０４が押下されると、教師信号取得部２３０３は、修正ツール２６０３を介して付与された教師信号を取得する。なお修正ツール２６０３にて修正されなかったピクセルについてはもともとの教師信号が取得される。
【０１４５】
読込ボタン２６０５は、別の画像を選択するときに押下されるボタンである。読込ボタン２６０５が押下されることにより、例えば画像表示部２６０１に表示される画像が更新されても良いし、図２５に例示される画面が表示されても良い。
【０１４６】
図２７に示される画面は、教師信号を付与するための操作画面の一例であり、上方画像表示部２７０１、容器種別表示部２７０２、教師信号入力部２７０３、保存ボタン２６０４、読込ボタン２６０５を有する。保存ボタン２６０４と読込ボタン２６０５は図２６の画面と同じ機能を有するので説明を省略する。
【０１４７】
上方画像表示部２７０１には、撮像部１１１により撮像された画像である上方画像２１２が表示される。図２７では、採取対象１１３の上面２１５に気泡や脂質等の混在物２１６が浮いている状態が表示されている。
【０１４８】
容器種別表示部２７０２には、領域算出部２０２が算出した領域に基づいて判定された容器１１２の種別が内径や厚みとともに表示される。なお容器１１２の長さや印字内容、印字位置、縁周辺のスクリューの有無、底面のリブ等が表示されても良い。また容器種別表示部２７０２に表示される各種情報は操作者によって修正されても良い。
【０１４９】
教師信号入力部２７０３では、上方画像表示部２７０１に表示される画像の任意の領域に付与される教師信号が入力される。例えば、上方画像表示部２７０１に表示される画像中の気泡や脂質等に対し、上面領域４０４に対応する教師信号が入力される。なお教師信号入力部２７０３は、図２７に例示されるようなテキストボックスに限定されず、ラジオボタンやプルダウンメニューのような選択肢が提示される形式でも良い。
【０１５０】
図２６や図２７に示されるような画面の使用は、操作者による教師信号の付与の作業支援になるので教師信号を付与する作業の効率化が可能となる。
【０１５１】
（Ｓ２４０３）
一定数以上の新たな教師画像が収集されたか否かが判別される。一定数以上の教師画像が収集されればＳ２４０４へ処理が進み、一定数に達していなければＳ２４０１へ処理が戻る。
【０１５２】
（Ｓ２４０４）
学習部２３０４が、一定数以上の教師画像を用いた機械学習により係数を更新する。係数の更新には、例えば確率的勾配降下法等が用いられる。係数の初期値には、メモリ１０４に保存されている係数が用いられても良いし、乱数が用いられても良い。
【０１５３】
（Ｓ２４０５）
学習部２３０４が、更新された係数の評価を実施する。例えば、係数の評価用に正解情報付きの画像群が予め準備され、これらの画像群に対してＳ２４０４にて更新された係数と更新前の係数を用いた領域分割処理をそれぞれ実施し、正解率が上昇したか否かにより更新後の係数が評価される。
【０１５４】
（Ｓ２４０６）
メモリ１０４内の係数を上書きするか否かが判別される。上書きされるか否かの判別には、Ｓ２４０５の評価結果が用いられても良い。係数が上書きされるならばＳ２４０７へ処理が進み、上書きされなければ処理の流れは終了となる。
【０１５５】
（Ｓ２４０７）
学習部２３０４が、メモリ１０４内の係数を上書きしたり、更新前後の係数を保存したりする。
【０１５６】
以上説明した処理の流れにより、領域分割結果の確信度が比較的低い画像に対して、適切な教師信号が効率よく付与されるので、画像処理装置１０１は効率よく適切な機械学習を行うことができる。また気泡や異物等に対しても適切な教師信号を付与することができる。適切な機械学習によって領域分割処理の精度を向上できるので、画像処理装置１０１が容器１１２や採取対象１１３の状態をより正しく判定可能となり、自動分析システム１００はより正確な分析を行うことができる。
【０１５７】
以上、本発明の複数の実施例について説明した。本発明はこれらの実施例に限定されるものではなく、さまざまな変形例が含まれる。例えば、上記した実施例は本発明をわかりやすく説明するために詳細に説明したのであり、説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能である。さらに、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【０１５８】
１００：自動分析システム、１０１：画像処理装置、１０２：入力部、１０３：演算部、１０４：メモリ、１０５：出力部、１０６：バス、１１１：撮像部、１１２：容器、１１３：採取対象、１２１：制御部、１２２：採取部、１２３：分析部、２０１：画像取得部、２０２：領域算出部、２０３：状態判定部、２１１：側面図、２１２：上方画像、２１３：容器の縁、２１４：容器の内壁、２１５：採取対象の上面、２１６：混在物、２１７：固定部、４０１：領域分割像、４０２：縁領域、４０３：内壁領域、４０４：上面領域、４０５：背景領域、５０１：縁の二値化像、５０２：縁の境界像、５０３：その他領域、５０５：内側境界、５０６：外側境界、５０７：縁領域の重心、５０８：抽出点、９０１：入力画像、９０２：１番目のカーネル、９０３：２番目のカーネル、９０４：１層目出力データ、９０５：２層目出力データ、９０６：３層目出力データ、９０７：４層目出力データ、９０８：領域分割結果、１００１：第１の入力画像、１００２：第２の入力画像、１００３：第３の入力画像、１００４：第４の入力画像、１００５：第１の領域分割結果、１００６：第２の領域分割結果、１００７：第３の領域分割結果、１００８：第４の領域分割結果、１００９：統合領域分割結果、１１０１：Ｃカーネル、１１０２：ＤＣカーネル、１２０１：Ｐカーネル、１２０２：ＤＰカーネル、１３０１：１番目のカーネル、１３０２：２番目のカーネル、１３０３：１番目のＤカーネル、１３０４：２番目のＤカーネル、１５０１：入力画像、１５０２：１番目のカーネル、１５０３：２番目のカーネル、１５０４：１層目出力データ、１５０５：２層目出力データ、１５０６：３層目出力データ、１５０７：４層目出力データ、１７０１：上面の二値化像、１７０２：上面の境界画像、１７０４：その他領域、１７０５：上面境界、１７０６：抽出点、１８０１：多量時の側面図、１８０２：多量時の上方画像、１８０３：多量時の上面、１８０４：少量時の側面図、１８０５：少量時の上方画像、１８０６：少量時の上面、１８０７：縁から上面までの距離、２１０１：直立時の側面図、２１０２：直立時の上方画像、２１０３：縁領域の中心、２１０４：上面領域の中心、２１０５：傾斜時の側面図、２１０６：傾斜時の上方画像、２２０１：傾斜時の側面図、２２０２：傾斜時の上方画像、２２０３：縁の中心、２２０４：上面の中心、２２０５：中心間水平距離、２２０６：中心間鉛直距離、２２０７：縁領域の中心、２２０８：上面領域の中心、２２０９：領域中心間距離、２２１０：レンズ中心、２２１１：第二中心間距離、２２１２：第一中心間距離、２２１３：縁領域の内径、２２１４：上面領域の短径、２３０１：尤度取得部、２３０２：画像選択・表示部、２３０３：教師信号取得部、２３０４：学習部、２６０１：画像表示部、２６０２：画像選択部、２６０３：修正ツール、２６０４：保存ボタン、２６０５：読込ボタン、２７０１：上方画像表示部、２７０２：容器種別表示部、２７０３：教師信号入力部
【図１】
2020173101.tif 000017
【図２】
2020173101.tif 000018
【図３】
2020173101.tif 000019
【図４】
2020173101.tif 000020
【図５】
2020173101.tif 000021
【図６Ａ】
2020173101.tif 000022
【図６Ｂ】
2020173101.tif 000023
【図７】
2020173101.tif 000024
【図８】
2020173101.tif 000025
【図９】
2020173101.tif 000026
【図１０】
2020173101.tif 000027
【図１１】
2020173101.tif 000028
【図１２】
2020173101.tif 000029
【図１３】
2020173101.tif 000030
【図１４】
2020173101.tif 000031
【図１５】
2020173101.tif 000032
【図１６】
2020173101.tif 000033
【図１７】
2020173101.tif 000034
【図１８Ａ】
2020173101.tif 000035
【図１８Ｂ】
2020173101.tif 000036
【図１８Ｃ】
2020173101.tif 000037
【図１９】
2020173101.tif 000038
【図２０】
2020173101.tif 000039
【図２１Ａ】
2020173101.tif 000040
【図２１Ｂ】
2020173101.tif 000041
【図２２Ａ】
2020173101.tif 000042
【図２２Ｂ】
2020173101.tif 000043
【図２３】
2020173101.tif 000044
【図２４】
2020173101.tif 000045
【図２５】
2020173101.tif 000046
【図２６】
2020173101.tif 000047
【図２７】
2020173101.tif 000048