(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-09
(45)【発行日】2024-09-18
(54)【発明の名称】物体検出方法、物体検出装置、及び、コンピュータープログラム
(51)【国際特許分類】
G06T 7/00 20170101AFI20240910BHJP
【FI】
G06T7/00 350C
(21)【出願番号】P 2020194817
(22)【出願日】2020-11-25
【審査請求日】2023-08-21
(73)【特許権者】
【識別番号】000002369
【氏名又は名称】セイコーエプソン株式会社
(74)【代理人】
【識別番号】110000028
【氏名又は名称】弁理士法人明成国際特許事務所
(72)【発明者】
【氏名】倉沢 光
【審査官】吉川 康男
(56)【参考文献】
【文献】特開2020-123340(JP,A)
【文献】国際公開第2019/083553(WO,A1)
【文献】特表2018-528525(JP,A)
【文献】Capsule Dynamic Network-Based Object Detection Algorithm,2019 IEEE Symposium Series on Computational Intelligence (SSCI),2019年,https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=9002884
【文献】CapsuleNetを用いた半教師ありクラスタリングによる未知ラベルの検出,電子情報通信学会技術研究報告 Vol.118 No.81,2018年06月06日
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、入力画像から物体を検出する物体検出方法であって、
前記機械学習モデルは、前記入力画像よりも小さい予め定められたサイズのパッチ画像を前記機械学習モデルに入力すると、前記パッチ画像が複数のクラスのうちの1つに属することを示す判定値を前記機械学習モデルが出力するように構成されており、
前記物体検出方法は、
(a)前記機械学習モデルに前記入力画像を入力して、前記複数のベクトルニューロン層のうちの少なくとも1つの特定層の出力から、前記複数のクラスのうちのいずれかのクラスの特徴と類似する程度を示す類似度を前記特定層の画素毎に求めることによって、類似度画像を生成する工程と、
(b)前記類似度画像の各画素の前記類似度を予め定められた閾値と比較し、前記類似度が前記閾値未満の場合に当該画素に未知ラベルを付与することによって、少なくとも前記未知ラベルを含む判別画像を生成する工程と、
を含む物体検出方法。
【請求項2】
請求項1に記載の物体検出方法であって、
前記工程(b)は、前記類似度が前記閾値以上の場合には、当該画素に、前記類似度に関連付けられた前記クラスに対応する既知ラベルを付与する、物体検出方法。
【請求項3】
請求項1又は2に記載の物体検出方法であって、
前記工程(a)は、前記入力画像の前記入力に応じた前記機械学習モデルの出力から、前記複数のクラスのいずれに属するかを示す既知ラベルが画素毎に付与された出力画像を生成する工程を含み、
前記工程(b)は、前記判別画像を参照して、前記出力画像の一部の画素に前記未知ラベルを設定する工程を含む、
物体検出方法。
【請求項4】
請求項3に記載の物体検出方法であって、
前記工程(b)は、更に、前記判別画像と前記出力画像の解像度を一致させる解像度変換を実行する工程を含む、
物体検出方法。
【請求項5】
請求項3又は4に記載の物体検出方法であって、
前記特定層は2つ以上存在し、
前記工程(a)は、前記2つ以上の特定層のそれぞれに関して前記類似度画像を求める工程を含み、
前記工程(b)は、
前記2つ以上の特定層のそれぞれに関して前記判別画像を求める工程と、
前記出力画像の各画素について、前記2つ以上の特定層のそれぞれに関する前記判別画像の対応画素のうちの予め定められた数の対応画素に前記未知ラベルが付与されている場合に、前記出力画像の当該画素に前記未知ラベルを設定する工程と、
を含む、物体検出方法。
【請求項6】
請求項1~5のいずれか一項に記載の物体検出方法であって、
前記特定層は、第1軸と第2軸の2つの軸で規定された平面に配置されたベクトルニューロンが、前記2つの軸とは異なる方向の第3軸に沿って複数のチャンネルとして配置されている構成を有し、
前記工程(a)は、
前記特定層のうちの1つの平面位置におけるベクトルニューロンの出力ベクトルの複数の要素値を、前記第3軸に沿った前記複数のチャンネルにわたって配列した第1種の特徴スペクトルと、
前記第1種の特徴スペクトルの各要素値に、前記出力ベクトルのベクトル長さに相当するアクティベーション値を乗じることによって得られる第2種の特徴スペクトルと、
前記特定層のうちの1つの平面位置における前記アクティベーション値を、前記第3軸に沿った前記複数のチャンネルにわたって配列した第3種の特徴スペクトルと、
のうちのいずれかの特徴スペクトルを前記特定層の画素毎に求める工程と、
前記機械学習モデルに
複数の既知ラベルのいずれかがそれぞれ付与された複数のパッチ画像が入力されたときに前記特定層の出力から得られた既知特徴スペクトル群と、前記入力画像の入力に応じて前記特定層の画素毎に得られた前記特徴スペクトルと、に対して予め定められた演算式を適用することによって前記類似度を求める工程と、
を含む、物体検出方法。
【請求項7】
入力画像から物体を検出する物体検出装置であって、
複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを記憶するメモリーと、
前記機械学習モデルを用いた物体検出処理を実行するプロセッサーと、
を備え、
前記機械学習モデルは、前記入力画像よりも小さい予め定められたサイズのパッチ画像を前記機械学習モデルに入力すると、前記パッチ画像が複数のクラスのうちの1つに属することを示す判定値を前記機械学習モデルが出力するように構成されており、
前記プロセッサーは、
(a)前記機械学習モデルに前記入力画像を入力して、前記複数のベクトルニューロン層のうちの少なくとも1つの特定層の出力から、前記複数のクラスのうちのいずれかのクラスの特徴と類似する程度を示す類似度を前記特定層の画素毎に求めることによって、類似度画像を生成する処理と、
(b)前記類似度画像の各画素の前記類似度を予め定められた閾値と比較し、前記類似度が前記閾値未満の場合に当該画素に未知ラベルを付与することによって、少なくとも前記未知ラベルを含む判別画像を生成する処理と、
を実行する、物体検出装置。
【請求項8】
複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、入力画像から物体を検出する物体検出処理をプロセッサーに実行させるコンピュータープログラムであって、
前記機械学習モデルは、前記入力画像よりも小さい予め定められたサイズのパッチ画像を前記機械学習モデルに入力すると、前記パッチ画像が複数のクラスのうちの1つに属することを示す判定値を前記機械学習モデルが出力するように構成されており、
前記コンピュータープログラムは、
(a)前記機械学習モデルに前記入力画像を入力して、前記複数のベクトルニューロン層のうちの少なくとも1つの特定層の出力から、前記複数のクラスのうちのいずれかのクラスの特徴と類似する程度を示す類似度を前記特定層の画素毎に求めることによって、類似度画像を生成する処理と、
(b)前記類似度画像の各画素の前記類似度を予め定められた閾値と比較し、前記類似度が前記閾値未満の場合に当該画素に未知ラベルを付与することによって、少なくとも前記未知ラベルを含む判別画像を生成する処理と、
を前記プロセッサーに実行させる、コンピュータープログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、入力画像から物体を検出する物体検出方法、物体検出装置、及び、コンピュータープログラムに関する。
【背景技術】
【0002】
特許文献1には、テンプレートマッチングを用いた高速な物体認識を行う技術が記載されている。この技術では、まず、解像度が異なる複数の標準テンプレートを作成し、また、複数の標準テンプレートの共通部分をあらわす共通テンプレートと、複数のテンプレート間での差異部分をあらわす識別テンプレートとを作成する。そして、上層レベルのマッチング処理において、標準テンプレートを用いる一方、下層レベルのマッチング処理では、テンプレート間の共通部分を示す共通テンプレート及びテンプレート間の差異部分を示す識別テンプレートを用いることにより、高速な物体認識を実現する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述の技術では、テンプレートマッチングで物体認識を行うため、物体のテンプレートが用意できない場合や、物体が透明でマッチングをうまく行えない場合などに、物体の検出を行うことができないという問題があった。そこで、従来のテンプレートマッチングとは異なる方法で入力画像から物体を検出できる技術が望まれる。
【課題を解決するための手段】
【0005】
本開示の第1の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、入力画像から物体を検出する物体検出方法が提供される。前記機械学習モデルは、前記入力画像よりも小さい予め定められたサイズのパッチ画像を前記機械学習モデルに入力すると、前記パッチ画像が複数のクラスのうちの1つに属することを示す判定値を前記機械学習モデルが出力するように構成されている。前記物体検出方法は、(a)前記機械学習モデルに前記入力画像を入力して、前記複数のベクトルニューロン層のうちの少なくとも1つの特定層の出力から、前記複数のクラスのうちのいずれかのクラスの特徴と類似する程度を示す類似度を前記特定層の画素毎に求めることによって、類似度画像を生成する工程と、(b)前記類似度画像の各画素の前記類似度を予め定められた閾値と比較し、前記類似度が前記閾値未満の場合に当該画素に未知ラベルを付与することによって、少なくとも前記未知ラベルを含む判別画像を生成する工程と、を含む。
【0006】
本開示の第2の形態によれば、入力画像から物体を検出する物体検出装置が提供される。この物体検出装置は、複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを記憶するメモリーと、前記機械学習モデルを用いた物体検出処理を実行するプロセッサーと、を備える。前記機械学習モデルは、前記入力画像よりも小さい予め定められたサイズのパッチ画像を前記機械学習モデルに入力すると、前記パッチ画像が複数のクラスのうちの1つに属することを示す判定値を前記機械学習モデルが出力するように構成されている。前記プロセッサーは、(a)前記機械学習モデルに前記入力画像を入力して、前記複数のベクトルニューロン層のうちの少なくとも1つの特定層の出力から、前記複数のクラスのうちのいずれかのクラスの特徴と類似する程度を示す類似度を前記特定層の画素毎に求めることによって、類似度画像を生成する処理と、(b)前記類似度画像の各画素の前記類似度を予め定められた閾値と比較し、前記類似度が前記閾値未満の場合に当該画素に未知ラベルを付与することによって、少なくとも前記未知ラベルを含む判別画像を生成する処理と、を実行する。
【0007】
本開示の第3の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、入力画像から物体を検出する物体検出処理をプロセッサーに実行させるコンピュータープログラムが提供される。前記機械学習モデルは、前記入力画像よりも小さい予め定められたサイズのパッチ画像を前記機械学習モデルに入力すると、前記パッチ画像が複数のクラスのうちの1つに属することを示す判定値を前記機械学習モデルが出力するように構成されている。前記コンピュータープログラムは、(a)前記機械学習モデルに前記入力画像を入力して、前記複数のベクトルニューロン層のうちの少なくとも1つの特定層の出力から、前記複数のクラスのうちのいずれかのクラスの特徴と類似する程度を示す類似度を前記特定層の画素毎に求めることによって、類似度画像を生成する処理と、(b)前記類似度画像の各画素の前記類似度を予め定められた閾値と比較し、前記類似度が前記閾値未満の場合に当該画素に未知ラベルを付与することによって、少なくとも前記未知ラベルを含む判別画像を生成する処理と、を前記プロセッサーに実行させる。
【図面の簡単な説明】
【0008】
【
図1】実施形態における情報処理装置のブロック図。
【
図3】準備工程における機械学習モデルの構成を示す説明図。
【
図5】既知画像を領域分離して得られるラベル画像を示す説明図。
【
図6】既知画像から抽出された複数のパッチ画像を示す説明図。
【
図7】類似度の算出に用いる特徴スペクトルを示す説明図。
【
図9】物体検出処理における機械学習モデルの構成を示す説明図。
【
図10】物体検出工程の処理手順を示すフローチャート。
【
図11】ステップS220~S240の処理内容を示す説明図。
【発明を実施するための形態】
【0009】
図1は、一実施形態における情報処理装置100の機能を示すブロック図である。情報処理装置100は、プロセッサー110と、メモリー120と、インターフェイス回路130と、インターフェイス回路130に接続された入力デバイス140及び表示部150と、を有している。限定されないが例えば、プロセッサー110は、以下で詳述される処理を実行する機能を有するだけでなく、表示部150に、当該処理によって得られる出力画像、類似度画像、判別画像、および、当該処理の過程で生成されるデータを表示する機能も有する。情報処理装置100は、パーソナルコンピューターなどのコンピューターによって実現可能である。
【0010】
プロセッサー110は、入力画像から物体を検出する物体検出処理部112として機能する。物体検出処理部112は、メモリー120に格納されたコンピュータープログラムをプロセッサー110が実行することによって実現される。但し、物体検出処理部112をハードウェア回路で実現してもよい。本明細書のプロセッサーは、このようなハードウェア回路をも含む用語である。メモリー120には、ベクトルニューラルネットワーク型の機械学習モデル200と、既知画像KMと、既知特徴スペクトル群KSGと、入力画像Piとが格納される。機械学習モデル200は、物体検出処理部112による物体検出処理に使用される。機械学習モデル200の構成例や動作については後述する。既知画像KMは、機械学習モデル200の学習に使用される教師データの元となる画像である。既知特徴スペクトル群KSGは、学習済みの機械学習モデル200に教師データを再度入力した際に得られる特徴スペクトルの集合である。特徴スペクトルについては後述する。入力画像Piは、物体検出処理の処理対象となる画像である。なお、既知画像KMは、機械学習モデル200の学習時にのみ必要であり、入力画像Piに対する物体検出処理の実行時には不要である。また、入力画像Piは、機械学習モデル200の学習時にメモリー120に保存されている必要はない。
【0011】
図2は、入力画像Piと既知画像KMの一例を示す説明図である。入力画像Piは、暗い背景BGの中に試験管立てSTが設置されており、試験管立てSTにガラス製の透明な試験管TTがセットされている画像である。本実施形態の物体検出処理では、背景BGと試験管立てSTを既知のものとし、試験管TTを未知の物体として、入力画像Piから試験管TTを検出する処理を実行する。このため、機械学習モデル200の学習に用いる既知画像KMとして、検出対象としての試験管TTが存在せず、背景BGと試験管立てSTが存在する画像を予め撮影して準備する。すなわち、入力画像Piは、既知画像KMに存在する背景BGと物体STに加えて、既知画像KMに存在しない未知の物体TTを含む画像である。なお、既知画像KMとしては、同じ配置状態において複数の異なる方向から撮影した複数の画像を用いることが好ましい。以下では、背景BGや物体ST,TTのそれぞれを、「画像領域」又は「画像部品」と呼ぶ。一般に、試験管TTのような透明体は、光源の正反射や、周りの映り込み、背景BGの透過など、周囲の環境によって見え方が大きく変化するため、機械学習が困難であることが知られている。一方、以下で説明するように、本実施形態では、ベクトルニューラルネットワーク型の機械学習モデル200を利用するので、少ない学習量でも透明の物体を容易に検出できる。
【0012】
図3は、学習時における機械学習モデル200の構成の一例を示す説明図である。この機械学習モデル200は、入力データIMの側から順に、畳み込み層210と、プライマリーベクトルニューロン層220と、第1畳み込みベクトルニューロン層230と、第2畳み込みベクトルニューロン層240と、分類ベクトルニューロン層250とを備える。これらの5つの層210~250のうち、畳み込み層210が最も下位の層であり、分類ベクトルニューロン層250が最も上位の層である。以下の説明では、層210~250を、それぞれ「Conv層210」、「PrimeVN層220」、「ConvVN1層230」、「ConvVN2層240」、及び「ClassVN層250」とも呼ぶ。
【0013】
図3の例では2つの畳み込みベクトルニューロン層230,240を用いているが、畳み込みベクトルニューロン層の数は任意であり、畳み込みベクトルニューロン層を省略してもよい。但し、1つ以上の畳み込みベクトルニューロン層を用いることが好ましい。
【0014】
図3の機械学習モデル200は、更に、類似度画像を生成する類似度演算部260を有している。類似度演算部260は、ConvVN1層230と、ConvVN2層240と、ClassVN層250の出力から、後述する類似度画像S_ConvVN1,S_ConvVN2,S_ClassVNをそれぞれ算出することが可能である。
【0015】
各層210~250の構成は、以下のように記述できる。
<各層の構成の記述>
・層210:Conv[32,5,2]
・層220:PrimeVN[16,1,1]
・層230:ConvVN1[12,3,2]
・層240:ConvVN2[6,3,1]
・層250:ClassVN[2,4,1]
・ベクトル次元VD:VD=16
これらの各層210~250の記述において、括弧前の文字列はレイヤー名であり、括弧内の数字は、順に、チャンネル数、カーネルサイズ、及び、ストライドである。例えば、Conv層210のレイヤー名は「Conv」であり、チャンネル数は32、カーネルサイズは5×5、ストライドは2である。
図3では、各層の下にこれらの記述が示されている。各層の中に描かれているハッチングを付した矩形は、隣接する上位層の出力ベクトルを算出する際に使用されるカーネルを表している。なお、各層210~250の記述で用いたパラメーターの値は例示であり、任意に変更可能である。
【0016】
Conv層210は、スカラーニューロンで構成された層である。他の4つの層220~250は、ベクトルニューロンで構成された層である。ベクトルニューロンは、ベクトルを入出力とするニューロンである。上記の記述では、個々のベクトルニューロンの出力ベクトルの次元は16で一定である。以下では、スカラーニューロン及びベクトルニューロンの上位概念として「ノード」という語句を使用する。
【0017】
図3では、Conv層210について、ノード配列の平面座標を規定する第1軸x及び第2軸yと、奥行きを表す第3軸zとが示されている。また、Conv層210のx,y,z方向のサイズが13,13,32であることが示されている。x方向のサイズとy方向のサイズを「解像度」と呼ぶ。この例では、x方向とy方向の解像度は等しいが、異なっていても良い。z方向のサイズは、チャンネル数である。これらの3つの軸x,y,zは、他の層においても各ノードの位置を示す座標軸として使用する。但し、
図3では、Conv層210以外の層では、これらの軸x,y,zの図示が省略されている。
【0018】
よく知られているように、畳み込み後の解像度W1は、次式で与えられる。
W1=Ceil{(W0-Wk+1)/S} (1)
ここで、W0は畳み込み前の解像度、Wkはカーネルサイズ、Sはストライド、Ceil{X}はXを切り上げる演算を行う関数である。
図3に示した各層の解像度は、入力データの解像度を29×29画素とした場合の例であり、実際の各層の解像度は入力データのサイズに応じて適宜変更される。
【0019】
PrimeVN層220の各ノードは、Conv層210の1×1×32個のノードのスカラー出力を32次元のベクトルとみなして、このベクトルに変換行列を乗ずることによってそのノードのベクトル出力を得る。この変換行列は、1×1のカーネルの要素であり、機械学習モデル200の学習によって更新される。なお、Conv層210とPrimeVN層220の処理を統合して、1つのプライマリーベクトルニューロン層として構成することも可能である。
【0020】
PrimeVN層220を「下位層L」と呼び、その上位側に隣接するConvVN1層230を「上位層L+1」と呼ぶとき、上位層L+1の各ノードの出力は、以下の式を用いて決定される。
【数1】
ここで、
M
L
iは、下位層Lにおけるi番目のノードの出力ベクトル、
M
L+1
jは、上位層L+1におけるj番目のノードの出力ベクトル、
v
ijは、出力ベクトルM
L+1
jの予測ベクトル、
W
L
ijは、下位層Lの出力ベクトルM
L
iから予測ベクトルv
ijを算出するための予測行列、
u
jは、予測ベクトルv
ijの和、すなわち線形結合、である和ベクトル、
a
jは、和ベクトルu
jのノルム|u
j|を正規化することによって得られる正規化係数であるアクティベーション値、
F(X)は、Xを正規化する正規化関数である。
【0021】
正規化関数F(X)としては、例えば以下の(4a)式または(4b)式を使用できる。
【数2】
ここで、
kは、上位層L+1のすべてのノードに対する序数、
βは、任意の正の係数である調整パラメーターであり、例えばβ=1である。
【0022】
上記(4a)式では、上位層L+1のすべてのノードに関して和ベクトルujのノルム|uj|をソフトマックス関数で正規化することによってアクティベーション値ajが得られる。一方、(4b)式では、和ベクトルujのノルム|uj|を、上位層L+1のすべてのノードに関するノルム|uj|の和で除算することによってアクティベーション値ajが得られる。なお、正規化関数F(X)としては、(4a)式や(4b)式以外の他の関数を用いてもよい。
【0023】
上記(3)式の序数iは、上位層L+1におけるj番目のノードの出力ベクトルM
L+1
jを決めるために使用される下位層Lのノードに便宜上割り振られるものであり、1~nの値をとる。また、整数nは、上位層L+1におけるj番目のノードの出力ベクトルM
L+1
jを決めるために使用される下位層Lのノードの数である。従って、整数nは次式で与えられる。
n=Nk×Nc (6)
ここで、Nkはカーネルの要素数であり、Ncは下位層であるPrimeVN層220のチャンネル数である。
図3の例ではNk=9、Nc=16なので、n=144である。
【0024】
ConvVN1層230の出力ベクトルを求めるために使用される1つのカーネルは、カーネルサイズ3×3を表面サイズとし、下位層のチャンネル数16を深さとする3×3×16=144個の要素を有しており、これらの要素のそれぞれは予測行列WL
ijである。また、ConvVN1層230の12個のチャンネルの出力ベクトルを生成するためには、このカーネルが12組必要である。従って、ConvVN1層230の出力ベクトルを求めるために使用されるカーネルの予測行列WL
ijの数は、144×12=1728個である。これらの予測行列WL
ijは、機械学習モデル200の学習により更新される。
【0025】
上述した(2)~(5)式から分かるように、上位層L+1の個々のノードの出力ベクトルML+1
jは、以下の演算によって求められる。
(a)下位層Lの各ノードの出力ベクトルML
iに予測行列WL
ijを乗じて予測ベクトルvijを求め、
(b)下位層Lの各ノードから得られた予測ベクトルvijの和、すなわち線形結合、である和ベクトルujを求め、
(c)和ベクトルujのノルム|uj|を正規化することによって正規化係数であるアクティベーション値ajを求め、
(d)和ベクトルujをノルム|uj|で除算し、更に、アクティベーション値ajを乗じる。
【0026】
なお、アクティベーション値ajは、上位層L+1のすべてのノードに関してノルム|uj|を正規化することによって得られる正規化係数である。従って、アクティベーション値ajは、上位層L+1内の全ノードの中における各ノードの相対的な出力強度を示す指標と考えることができる。(4)式,(4a)式、(4b)式、及び(5)式で使用されるノルムは、典型的な例ではベクトル長さを表すL2ノルムである。このとき、アクティベーション値ajは、出力ベクトルML+1
jのベクトル長さに相当する。アクティベーション値ajは、上述した(4)式と(5)式で使用されるだけなので、ノードから出力される必要は無い。但し、アクティベーション値ajを外部に出力するように上位層L+1を構成することも可能である。
【0027】
ベクトルニューラルネットワークの構成は、カプセルネットワークの構成とほぼ同じであり、ベクトルニューラルネットワークのベクトルニューロンがカプセルネットワークのカプセルに相当する。但し、ベクトルニューラルネットワークで使用される上述の(2)~(5)式による演算は、カプセルネットワークで使用される演算と異なる。両者の最も大きな違いは、カプセルネットワークでは、上記(3)式の右辺の予測ベクトルvijにそれぞれ重みが乗じられており、その重みが、動的ルーティングを複数回繰り返すことによって探索される点である。一方、本実施形態のベクトルニューラルネットワークでは、上述した(2)~(5)式を順番に1回計算することによって出力ベクトルML+1
jが得られるので、動的ルーティングを繰り返す必要が無く、演算がより高速であるという利点がある。また、本実施形態のベクトルニューラルネットワークは、カプセルネットワークよりも演算に必要とするメモリー量がカプセルネットワークより少なく、本開示の発明者の実験によれば、約1/2~1/3のメモリー量で済むという利点もある。
【0028】
ベクトルを入出力とするノードを使用するという点では、ベクトルニューラルネットワークはカプセルネットワークと同じである。従って、ベクトルニューロンを使用する利点もカプセルネットワークと共通している。また、複数の層210~250は、上位に行くほどより大きな領域の特徴を表現し、下位に行くほどより小さな領域の特徴を表現する、という点は、通常の畳み込みニューラルネットワークと同じである。ここで、「特徴」とは、ニューラルネットワークへの入力データに含まれている特徴的な部分を意味する。ベクトルニューラルネットワークやカプセルネットワークでは、或るノードの出力ベクトルが、そのノードが表現する特徴の空間的な情報を表す空間情報を含む点で、通常の畳み込みニューラルネットワークよりも優れている。すなわち、或るノードの出力ベクトルのベクトル長さは、そのノードが表現する特徴の存在確率を表し、ベクトル方向がその特徴の方向やスケール等の空間情報を表している。従って、同じ層に属する2つのノードの出力ベクトルのベクトル方向は、それぞれの特徴の位置関係を表す。あるいは、当該2つのノードの出力ベクトルのベクトル方向は、特徴のバリエーションを表わすとも言える。例えば、「目」の特徴に対応するノードなら、出力ベクトルの方向は、目の細さ、吊り上がり方、などのバリエーションを表し得る。通常の畳み込みニューラルネットワークでは、プーリング処理によって特徴の空間情報が消失してしまうと言われている。この結果、ベクトルニューラルネットワークやカプセルネットワークは、通常の畳み込みニューラルネットワークに比べて入力データを識別する性能に優れているという利点がある。
【0029】
ベクトルニューラルネットワークの利点は、以下のように考えることも可能である。すなわち、ベクトルニューラルネットワークでは、ノードの出力ベクトルが、入力データの特徴を連続空間内の座標として表現すること、に利点がある。従って、ベクトル方向が近ければ特徴が似ている、というように出力ベクトルを評価できる。また、入力データに含まれている特徴が教師データではカバーできていなくても、補間してその特徴を判別できる、などの利点もある。一方、通常の畳み込みニューラルネットワークは、プーリング処理によって無秩序な圧縮がかかるため、入力データの特徴を連続空間内の座標として表現できない、という欠点がある。
【0030】
ConvVN2層240とClassVN層250の各ノードの出力も、上述した(2)~(5)式を用いて同様に決定されるので、詳細な説明は省略する。最上位層であるClassVN層250の解像度は1×1であり、チャンネル数は2である。ClassVN層250のチャンネル数は、通常は教師データで使用されるラベルの数と等しくなるように設定される。
【0031】
各層210~250のノードの出力を求める方法は、以下のように説明することも可能である。入力データIMに対して、5×5のカーネルをストライド「2」で適用することで、入力データIMの範囲のうちでConv層210の一つのノードに出力を与える部分範囲が決まる。入力データIMに対して適用するカーネルの数は32である。これにより、Conv層210は、第1軸xと第2軸xがそれぞれ13個に区切られた領域を有するように構成される。また、Conv層210の深さであるチャンネル数はカーネルの数と同数の32で構成される。「部分範囲」とは、入力データIM上の領域であって、第1軸xの位置と第2軸yの位置で特定される1つの領域である。ただし、以下の説明から明らかなように、「部分範囲」の大きさは、「部分範囲」に対応する1つ以上のノード又は当該1つ以上のノードから構成される「部分領域Rn」が、ベクトルニューロン層220,230,240,250のどれに属するかに応じて異なる。他方、「部分領域Rn」とは、ベクトルニューロン層において第1軸xの位置と第2軸yの位置とで特定される領域である。ベクトルニューロン層における各「部分領域Rn」は、上記第1軸x、第2軸x、および第3軸zに対応する「Width」×「Height」×「Depth」の次元を有する。本実施形態では、1つの「部分領域Rn」に含まれるノードの数は「1×1×デプス数」、すなわち「1×1×チャンネル数」である。本明細書において、部分領域Rnの添え字「n」には、ベクトルニューロン層220,230,240,250に応じて、「220」、「230」、「240」、「250」の数値を代入する。例えば、部分領域R220は、PrimeVN層220における領域を示す。
【0032】
Conv層210に1×1×32のカーネルをストライド「1」で適用することで、Conv層210の部分領域R210のうちから、PrimeVN層220の一つのノードに出力する部分領域R210が決まる。ここでは、同じサイズ、同じストライドで、16種類のカーネルが用いられることから、PrimeVN層220において、Conv層210の一つの部分領域R210に対応するノードの数は16である。Conv層210のノードからPrimeVN層220のノードへの出力の生成には、変換行列が用いられており、上記の式(2)~式(5)で示される出力決定アルゴリズムが用いられていない。なお、ベクトルニューロン層に畳み込むためのカーネルの次元は、チャンネル数およびベクトルの要素数も考慮にいれる場合には、「Width」×「Height」×「Depth」×「ベクトルの要素数」と表現されることもある。この表現にしたがうと、Conv層210からPrimeVN層220への畳み込みに用いられるカーネルの次元は、1×1×32×16である。
【0033】
PrimeVN層220に3×3×16のカーネルをストライド「2」で適用することで、PrimeVN層220の部分領域R220のうちから、ConvVN1層230の一つの部分領域R230に含まれるノードに出力を与える部分領域R220、が決まる。ここでは、同じサイズ、同じ次元、同じストライドで、12種類のカーネルが用いられることから、ConvVN1層230の部分領域R230に含まれるノードの数は12である。PrimeVN層220のノードからConvVN1層230のノードへの出力の生成には、上記の式(2)~式(5)で示される出力決定アルゴリズムが用いられる。ここで、下位層220に適用されるカーネルは、上位層230の1つのノードを決めるために用いる下位層220の3×3×16個のノードを指定する、とも表現される。これは、以下の説明でもあてはまる。
【0034】
ConvVN1層230に3×3×12のカーネルをストライド「1」で適用することで、ConvVN1層230の部分領域R230のうちから、ConvVN2層240の一つの部分領域R240に出力を与える部分領域R230が決まる。ここでは、同じサイズ、同じ次元、同じストライドで、6種類のカーネルが用いられることから、ConvVN2層240の部分領域R240に含まれるノードの数は6である。ConvVN1層230のノードからConvVN2層240のノードを生成する際には、上記の式(2)~式(5)で示される出力決定アルゴリズムが用いられる。
【0035】
ConvVN2層240に4×4×6のカーネルをストライド「1」で適用することで、ConvVN2層240の部分領域R240のうちから、ClassVN層250の一つの部分領域R250に出力を与える部分領域R240が決まる。ここでは、同じサイズ、同じ次元、同じストライドで、2種類のカーネルが用いられることから、ClassVN層250の部分領域R250に含まれるノードの数は2である。ConvVN2層240のノードからClassVN層250のノードを生成する際には、上記の式(2)~式(5)で示される出力決定アルゴリズムが用いられる。
【0036】
最上位層であるClassVN層250は1つの部分領域R250で構成される。ClassVN層250は、機械学習モデル200に入力された入力データIMについて、予め定められたラベルに分類する。本実施形態では、予め定めたラベルは、ラベル「0」とラベル「1」とである。ClassVN層250では、2つのノードのうち、アクティベーション値ajが最大となるノードに対応するラベルが出力となる。ClassVN層250から出力されるラベルは、プロセッサー110によって制御されることで表示部150によって出力される。
【0037】
上記
図3において、PrimeVN層220の1つの部分領域R220は、入力データIMの5×5ピクセルの部分範囲に対応する。また、ConvVN1層230の1つの部分領域R230は、入力データIMの9×9ピクセルの部分範囲に対応する。また、ConvVN2層240の部分領域R240は、入力データIMの17×17ピクセルの部分範囲に対応する。また、ClassVN層250の部分領域R250は、入力データIMの29×29ピクセルの部分範囲に対応する。
【0038】
図4は、機械学習モデル200の学習を実行する準備工程の処理手順を示すフローチャートである。ステップS110では、物体検出処理部112が、既知画像KMを領域分離してラベル画像を作成する。
【0039】
図5は、既知画像KMからラベル画像LMを作成する領域分離処理を示す説明図である。既知画像KMに領域分離処理を実行すると、複数の画像領域B0,B1に分離される。第1の画像領域B0は、既知画像KMの背景BGに相当し、第2の画像領域B1は試験管立てSTに相当する。複数の画像領域B0,B1には、互いに異なるラベルLbが割り当てられる。
図5の例では、第1の画像領域B0のラベルLbは0であり、第2の画像領域B1のラベルLbは1である。なお、領域分離処理は任意の方法を用いてよい。例えば、ユーザーが手作業でラベルを付与してもよく、或いは、公知の輪郭抽出アルゴリズムを用いてもよい。また、対象物の撮影時に深度センサーを使って距離情報を付与し、その情報から近い深度にある対象に同じラベルを付与してもよい。換言すれば、ラベル画像LMの作成は、物体検出処理部112が自動的に実行してもよく、或いは、情報処理装置100のユーザーが実行してもよい。但し、機械的な領域分離処理では、背景BGが、試験管立てSTの外側の背景領域と試験管立てSTの内側の背景領域とに分離されてしまうので、ユーザーがこれらに同じラベルが付与されるようにラベルを修正することが好ましい。試験管立てSTも同様である。ラベル画像LMは、各画素に、複数の画像領域B0,B1を区別する複数のラベルLb=0,Lb=1のうちの1つのラベルが付された画像である。
【0040】
図4のステップS120では、物体検出処理部112が、既知画像KMから複数のパッチ画像Pcを作成し、個々のパッチ画像Pcに1つのラベルを付与することによって教師データを作成する。
【0041】
図6は、既知画像KMから抽出された複数のパッチ画像Pcの例を示す説明図である。抽出により得られるパッチ画像Pcの数Npは次式で与えられる。
Np=Ceil{(Wx-Hx+1)/T}×Ceil{(Wy-Hy+1)/T} (7)
ここで、Wx,Wyは既知画像KMの解像度、Hx,Hyはパッチ画像Pcの解像度、Tはストライド、Ceil{X}はXを切り上げる演算を行う関数である。
本実施形態では、Wx=Wy=256、Hx=Hy=29,T=2であり、Np=12996である。パッチ画像Pcの抽出方法としては、これ以外の他の方法を採用してもよい。但し、複数のパッチ画像Pcは、既知画像KMの全体を覆うことができるように抽出されることが好ましい。
【0042】
個々のパッチ画像Pcには、1つのラベルLbが対応付けられる。このラベルLbは、パッチ画像Pcに含まれる既知画像KMの画像部品BG,STのうちで、パッチ画像Pc内での面積が最大のものに対するラベルLbとする。或いは、パッチ画像Pcに付与するラベルは、複数の連続値のセットとして与えることも可能である。例えば2つの背景BGと試験管立てSTの割合が1:3のパッチ画像Pcに対しては、Lb_0=0.25、Lb_1=0.75の2つのラベルを付与するようにしてもよい。なお、ベクトルニューラルネットワークのClassVN層250の出力をアクティベーション値aの連続値として、連続値のラベルを学習することも可能である。なお、「連続値」とは、1,2,3のような離散値ではなく、小数点以下の数値を含む値を意味する。
【0043】
図6の例では、1つのパッチ画像Pc3(図中、右から2番目)のラベルLbは0であり、他の3つのパッチ画像Pc1,Pc2,Pc4のラベルLbは1である。これらのラベルLbは、
図5に示した既知画像KMとラベル画像LMとの対応関係と、既知画像KMにおける各パッチ画像Pcの位置から決定することができる。パッチ画像Pcに対するラベルLbの対応付けは、物体検出処理部112が自動的に実行してもよく、或いは、情報処理装置100のユーザーが実行してもよい。
【0044】
図4のステップS130では、物体検出処理部112が、複数のパッチ画像Pcを教師データとして機械学習モデル200の学習を実行する。一実施例では、バッチサイズ=128,学習率=0.001,エポック=5000で学習を実施した。学習の結果、パッチ画像Pcに対するラベル判別の精度(Accuracy)は1.0となった。
【0045】
ClassVN層250の出力は、ラベルLbの数と等しい個数のクラスに対する複数の判定値に変換されるが、
図3ではその図示を省略している。本実施形態では、ClassVN層250の2つのノードの出力が、ラベルLb=0,Lb=1に対応する2つのクラスに対する判定値に変換される。これらの判定値は、通常はソフトマックス関数によって正規化された値である。具体的には、例えば、ClassVN層250の各ノードの出力ベクトルから、その出力ベクトルのベクトル長さを算出し、更に、2つのノードのベクトル長さをソフトマックス関数で正規化する、という演算を実行することによって、2つのクラスに対する判定値を得ることができる。上述したように、上記(4)式で得られるアクティベーション値a
jは、出力ベクトルM
L+1
jのベクトル長さに相当する値であり、正規化されている。従って、ClassVN層250の2つのノードのそれぞれにおけるアクティベーション値a
jを出力して、そのまま2つのクラスに対する判定値として使用してもよい。
【0046】
学習済みの機械学習モデル200は、入力画像Piよりも小さい予め定められたサイズのパッチ画像Pcを学習済みの機械学習モデル200に入力すると、入力したパッチ画像Pcが複数のクラスのうちの1つに属することを示す判定値を機械学習モデル200が出力するように構成されていることが理解できる。複数のパッチ画像Pcを用いた学習が終了すると、学習済みの機械学習モデル200がメモリー120に保存される。
【0047】
図4のステップS140では、学習済みの機械学習モデル200に複数のパッチ画像Pcを再度入力して、既知特徴スペクトル群KSGを生成する。既知特徴スペクトル群KSGは、以下で説明する特徴スペクトルの集合である。
【0048】
図7は、学習済みの機械学習モデル200に任意の入力データを入力することによって得られる特徴スペクトルSpを示す説明図である。ここでは、ConvVN1層230の出力から得られる特徴スペクトルSpについて説明する。
図7の横軸は、ConvVN1層230の1つの平面位置(x,y)におけるノードの出力ベクトルの要素番号NDと、チャンネル番号NCとの組み合わせで表されるスペクトル位置である。本実施形態では、ノードのベクトル次元が16なので、出力ベクトルの要素番号NDは0から15までの16個である。また、ConvVN1層230のチャンネル数は12なので、チャンネル番号NCは0から11までの12個である。
【0049】
図7の縦軸は、各スペクトル位置での特徴値C
Vを示す。この例では、特徴値C
Vは、出力ベクトルの各要素の値V
NDである。なお、特徴値C
Vとしては、出力ベクトルの各要素の値V
NDと、そのノードのアクティベーション値a
jとを乗算した値V
ND×a
jを使用してもよく、或いは、アクティベーション値a
jをそのまま使用してもよい。後者の場合には、特徴スペクトルSpに含まれる特徴値C
Vの数はチャンネル数に等しく、12個である。
【0050】
1つの入力データに対してConvVN1層230の出力から得られる特徴スペクトルSpの数は、ConvVN1層230の平面位置(x,y)の数に等しいので、6×6=36個である。同様に、1つの入力データに対して、ConvVN2層240の出力から16個の特徴スペクトルSpが得られ、ClassVN層250の出力から1個の特徴スペクトルSpが得られる。
【0051】
類似度演算部260は、学習済みの機械学習モデル200に複数のパッチ画像Pcが再度入力されたときに、
図7に示す特徴スペクトルSpをそれぞれ算出して、既知特徴スペクトル群KSGに登録する。
【0052】
図8は、既知特徴スペクトル群KSGの構成を示す説明図である。この例では、既知特徴スペクトル群KSGは、ConvVN1層230の出力から得られた既知特徴スペクトル群KSG_ConvVN1と、ConvVN2層240の出力から得られた既知特徴スペクトル群KSG_ConvVN2と、ClassVN層250の出力から得られた既知特徴スペクトル群KSG_ConvVN1とを含んでいる。
【0053】
既知特徴スペクトル群KSG_ConvVN1の個々のレコードは、レコード番号と、レイヤー名と、ラベルLbと、既知特徴スペクトルKSpとを含んでいる。また、個々のレコードは、教師データTDの個別のデータ名や、入力データIMにおいて特徴スペクトルSpに対応する部分の左上の座標、などの他の項目を含んでいてもよい。既知特徴スペクトルKSpは、パッチ画像Pcの入力に応じて得られた
図4の特徴スペクトルSpと同じものである。
図5の例では、複数のパッチ画像Pcを学習済みの機械学習モデル200に入力することによって、ConvVN1層230の出力から、ラベルLb=0に関連づけられたN1_0max個の既知特徴スペクトルKSpと、ラベルLb=1に関連づけられたN1_1max個の既知特徴スペクトルKSpと、が得られて登録されている。N1_0max,N1_1maxは、それぞれ2以上の整数である。前述したように、ラベルLb=0とラベルLb=1は、互いに異なるクラスに対応する。従って、既知特徴スペクトル群KSG_ConvVN1における個々の既知特徴スペクトルKSpは、複数のクラスのうちの1つのクラスに関連付けられて登録されていることが理解できる。他の既知特徴スペクトル群KSG_ConvVN2,KSG_ConvVN1も同様である。
【0054】
なお、ステップS120で使用される複数のパッチ画像Pcは、ステップS110で使用された複数のパッチ画像Pcと同じものである必要は無い。但し、ステップS120においても、ステップS110で使用された複数のパッチ画像Pcの一部又は全部を利用すれば、新たなパッチ画像を準備する必要が無いという利点がある。
【0055】
こうして機械学習モデル200の学習を含む準備工程が終了すると、任意のタイミングで、入力画像Piに対する物体検出を行う物体検出工程が実行される。
【0056】
図9は、物体検出工程における機械学習モデル200の構成を示す説明図である。
図3に示した準備工程における機械学習モデル200との違いは、
図9では入力データとして入力画像Piが用いられており、この結果、各層210~250の解像度が
図3の場合と異なるだけであり、他の構成は
図3と同じである。各層210~250における演算も、
図3に即して説明したものと同じである。
【0057】
図9の構成において、最上位層であるClassVN層250からは、画素毎に既知のラベルLbが付された出力画像Poが出力される。この出力画像Poは、各平面位置(x,y)にある2つのチャンネルのノードから出力されるラベルLbを統合したものである。すなわち、各平面位置(x,y)の2つのチャンネルのノードからは、2つのラベルLb=0,Lb=1のいずれのクラスに該当するかを示す判定値が出力される。出力画像Poは、各平面位置(x,y)における判定値を統合して、各平面位置(x,y)の画素に1つのラベルLbを割り当てた画像である。
図9の例では、出力画像Poの解像度は57×57画素である。なお、出力画像Poは、ClassVN層250の出力から、物体検出処理部112が生成するものとしてもよい。
【0058】
図10は、学習済みの機械学習モデル200を用いた物体検出工程の処理手順を示すフローチャートであり、
図11は、ステップS220~S240の処理内容を示す説明図である。
【0059】
ステップS210では、物体検出処理部112が、機械学習モデル200に入力画像Piを入力して、機械学習モデル200の最上位層の出力から、複数のクラスのいずれに属するかを示す既知ラベルLbが画素毎に付与された出力画像Poを生成する。
【0060】
ステップS220では、ステップS210における入力画像Piの入力に応じて、ConvVN1層230と、ConvVN2層240と、ClassVN層250の出力から、類似度演算部260が類似度画像S_ConvVN1,S_ConvVN2,S_ClassVNをそれぞれ生成する。以下では、ConvVN1層230の出力から類似度画像S_ConvVN1を算出する方法を説明する。なお、類似度演算部260は、物体検出処理部112の一部を構成するものと考えることも可能である。
【0061】
類似度画像S_ConvVN1は、ConvVN1層230と同じ解像度を有する。
図9の例では、ConvVN1層230の解像度は62×62であり、類似度画像S_ConvVN1のサイズも62×62画素である。
【0062】
類似度画像S_ConvVN1の各画素位置(x,y)における類似度S(x,y)は、
図8に示した既知特徴スペクトル群KSGを用いて、次式に従って求めることができる。
S(x,y)=max[G{Sp(x,y),KSp(j)}] (8)
ここで、G{a,b}はaとbの類似度を求める関数、Sp(x,y)は入力画像Piに応じて得られるConvVN1層230の平面位置(x,y)での特徴スペクトル、KSp(j)はConvVN1層230に関連付けられたすべての既知特徴スペクトル、max[X]はXの最大値を取る論理演算を示す。すなわち、各画素位置(x,y)における類似度S(x,y)は、入力画像Piに応じて得られた特徴スペクトルSp(x,y)と、同じConvVN1層230で得られていたすべての既知特徴スペクトルKSp(j)との間の類似度のうちの最大値である。
【0063】
類似度を求める関数G{a,b}としては、例えば、コサイン類似度を求める式や、距離に応じた類似度を求める式を使用できる。なお、各位置(x,y)での画素値は、類似度S(x,y)の他に、上記(8)式において最大値を与えた既知特徴スペクトルKSp(j)に関連づけられたラベルLbも含む形で保存されることが好ましい。但し、ラベルLbの情報は、各位置(x,y)の画素値に含まれていなくてもよい。例えば、未知部分が認識できれば良い場合もあり、この場合には、既知領域と未知領域の2つの領域で塗り分けるよう画素値が構成されていてもよい。類似度画像S_ConvVN1の類似度S(x,y)は、その位置(x,y)に対応する入力画像Piの画素位置に、そのラベルLbに対応するクラスの特徴が存在する確率を表している。換言すれば、類似度S(x,y)は、その層の平面位置(x,y)における特徴が、複数のクラスのうちのいずれかのクラスの特徴と類似する程度を示す指標である。
【0064】
ConvVN2層240とClassVN層250の出力に関する類似度画像S_ConvVN2,S_ClassVNも、類似度画像S_ConvVN1と同様に生成される。なお、これらの3つの類似度画像S_ConvVN1,S_ConvVN2,S_ClassVNをすべて生成する必要はないが、これらのうちの1つ以上を生成することが好ましい。本開示において、類似度画像を生成する層を、「特定層」とも呼ぶ。
【0065】
図10のステップS230では、物体検出処理部112が、類似度画像S_ConvVN1,S_ConvVN2,S_ClassVNの各画素の類似度を予め定められた閾値と比較し、比較結果に応じて既知ラベルと未知ラベルを付与することによって、判別画像を生成する。
図11では、ステップS230の処理によって、類似度画像S_ConvVN1,S_ConvVN2,S_ClassVNから、判別画像T_ConvVN1,T_ConvVN2,T_ClassVNがそれぞれ作成されている。類似度画像S_ConvVN1の各画素は、複数のクラスのうちのいずれかのクラスの特徴と類似する程度を示す類似度を表している。そこで、類似度に対する閾値を予め設定しておき、類似度画像S_ConvVN1の画素位置(x,y)における類似度が閾値以上であれば、その画素位置(x,y)に、その類似度に関連付けられたクラスに対応する既知ラベルを付与し、一方、類似度が閾値未満であれば、その画素位置(x,y)に未知ラベルを付与することによって、判別画像T_ConvVN1が生成される。本実施形態では、既知ラベルはLb=0とLb=1の2つである。未知ラベルとしては、例えば、Lb=-1が付与される。なお、類似度の閾値としては、例えば、0.90~0.98の範囲の値を使用することができる。
【0066】
なお、判別画像T_ConvVN1,T_ConvVN2,T_ClassVNを作成する際に、画素位置(x,y)に既知ラベルを付与することを行わずに、未知ラベルを付与するだけでもよい。例えば、未学習の物体位置を特定する目的であれば、既知ラベルは不要である。換言すれば、判別画像T_ConvVN1,T_ConvVN2,T_ClassVNには、少なくとも未知ラベルが付与されていればよい。
【0067】
図10のステップS240では、物体検出処理部112が、判別画像T_ConvVN1,T_ConvVN2,T_ClassVNを参照して、出力画像Poに未知ラベルを設定する。この際まず、判別画像T_ConvVN1,T_ConvVN2,T_ClassVNの解像度と、出力画像Poの解像度とを一致させる解像度変換を実行することが好ましい。
図11では、判別画像T_ConvVN1,T_ConvVN2,T_ClassVNのそれぞれの解像度を、いずれも入力画像Piと同じ256×256画素に変換することによって、解像度変換後の判別画像#T_ConvVN1,#T_ConvVN2,#T_ClassVNが生成される様子が描かれている。
図11には、更に、
図9に示した出力画像Poを256×256画素に変換した出力画像#Poが描かれている。解像度変換のアルゴリズムとしては、例えば、バイキュービック法、最近傍法などを使用できる。但し、この解像度変換は省略可能である。
【0068】
物体検出処理部112は、ステップS240において、判別画像#T_ConvVN1,#T_ConvVN2,#T_ClassVNを参照して、出力画像#Poに未知ラベルを設定する。例えば、出力画像#Poの各画素位置(x,y)について、3つの判別画像#T_ConvVN1,#T_ConvVN2,#T_ClassVNにおけるラベルを参照し、1つでも未知ラベルがあれば、その画素位置(x,y)に未知ラベルを割当て、すべてが既知ラベルであれば出力画像#Poのラベルをそのまま採用する。この結果、
図11に示すように、既知ラベルLb=0,Lb=1と、未知ラベルLb=-1が設定された出力画像LPoが作成される。
【0069】
他の実施形態では、出力画像#Poの各画素位置(x,y)について、3つの判別画像#T_ConvVN1,#T_ConvVN2,#T_ClassVNにおけるラベルを参照し、それらがすべて未知ラベルであれば、その画素位置(x,y)に未知ラベルを割当て、すべてが既知ラベルであれば出力画像#Poのラベルをそのまま採用するようにしてもよい。一般には、複数の層の出力から生成された複数の判別画像について、これらの判別画像の対応画素のうちの予め定められた数の対応画素に未知ラベルが付与されている場合に、出力画像Poの当該画素に未知ラベルを設定するようにしてもよい。
【0070】
なお、
図10及び
図11に即して説明した処理において、3つの層230,240,250の出力から類似度画像や判別画像をそれぞれ生成する必要はなく、これらのうちの少なくとも1つの層から類似度画像や判別画像を生成するようにしてもよい。本開示では、類似度画像や判別画像の生成に使用された層を「特定層」とも呼ぶ。
【0071】
未知領域のみを検出することを目的とする場合には、出力画像Poに判別画像を統合するためのステップS240を省略してもよい。また、出力画像Poを使用することなく、3つの判別画像#T_ConvVN1,#T_ConvVN2,#T_ClassVNを統合して、出力画像Loとすることも可能である。
【0072】
図4のステップS250では、物体検出処理部112が、画素毎に既知ラベルと未知ラベルが付与された出力画像LPoを表示する。出力画像LPoを表示する際には、ラベル毎に異なる色を付した状態で出力画像LPoを表示することが好ましい。
【0073】
図12は、物体検出処理の結果として表示された出力画像LPoを示す説明図である。この例では、背景BGと試験管立てSTと試験管TTにそれぞれ異なる色が付されている。なお、出力画像LPoを表示する際には、入力画像Piを流用し、未知ラベルの画素位置に未知ラベル特有の色を付した半透明のレイヤーを入力画像Piの上に重ねることによって、表示用の画像を作成するようにしてもよい。
【0074】
なお、上記実施形態では、入力画像Piの入力に応じた機械学習モデル200の最上位層の出力から出力画像Poを求め、この出力画像Poを用いて未知ラベルを含む出力画像LPoを求めていたが、これ以外の方法で、ユーザーに提示する出力画像を求めるようにしてもよい。例えば、判別画像T_ConvVN1,T_ConvVN2,T_ClassVNの少なくとも一つ、又は、解像度変換後の判別画像#T_ConvVN1,#T_ConvVN2,#T_ClassVNの少なくとも一つを、出力画像としてユーザーに提示してもよい。
【0075】
上述したように、本実施形態では、学習済みの機械学習モデル200に入力画像Piを入力して、少なくとも1つの特定層の出力から類似度画像を生成し、類似度画像の各画素の類似度を予め定められた閾値と比較することによって、少なくとも未知ラベルが付与された判別画像を生成した。この処理によれば、未知の物体の画像領域に未知ラベルが付与されるので、入力画像Pi内に存在する未知の物体を検出することができる。特に、試験管TTのような透明の物体を容易に検出できるという利点がある。
【0076】
上述の実施形態では、機械学習モデル200として、上記(2)式~(5)式の演算によって出力ベクトルを求めるベクトルニューラルネットワークを用いていたが、この代わりに、米国特許第5210798号公報や国際公開2019/083553号公報に開示されているカプセルネットワークを用いてもよい。
【0077】
また、既知スペクトル群KSGの生成方法や、ConvVN1層等の中間層の出力データの生成方法は上記実施形態に限定されるものではなく、例えば、Kmeans法を用いてこれらのデータを生成してもよい。また、PCAやICA、Fisherなどの変換を用いてこれらのデータを生成してもよい。また、既知スペクトル群KSGと中間層の出力データの変換方法は異なっていてもよい。
【0078】
・他の実施形態:
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態(aspect)によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【0079】
(1)本開示の第1の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、入力画像から物体を検出する物体検出方法が提供される。前記機械学習モデルは、前記入力画像よりも小さい予め定められたサイズのパッチ画像を前記機械学習モデルに入力すると、前記パッチ画像が複数のクラスのうちの1つに属することを示す判定値を前記機械学習モデルが出力するように構成されている。前記物体検出方法は、(a)前記機械学習モデルに前記入力画像を入力して、前記複数のベクトルニューロン層のうちの少なくとも1つの特定層の出力から、前記複数のクラスのうちのいずれかのクラスの特徴と類似する程度を示す類似度を前記特定層の画素毎に求めることによって、類似度画像を生成する工程と、(b)前記類似度画像の各画素の前記類似度を予め定められた閾値と比較し、前記類似度が前記閾値未満の場合に当該画素に未知ラベルを付与することによって、少なくとも前記未知ラベルを含む判別画像を生成する工程と、を含む。
この物体検出方法によれば、未知の物体の画像領域に未知ラベルが付与されるので、テンプレートマッチングとは異なる方法で、入力画像内に存在する未知の物体を検出することができる。
【0080】
(2)上記物体検出方法において、前記工程(b)は、前記類似度が前記閾値以上の場合には、当該画素に、前記類似度に関連付けられた前記クラスに対応する既知ラベルを付与するものとしてもよい。
この物体検出方法によれば、既知ラベルと未知ラベルが付与された判別画像から、既知の物体と未知の物体を識別することが可能である。
【0081】
(3)上記物体検出方法において、前記工程(a)は、前記入力画像の前記入力に応じた前記機械学習モデルの出力から、前記複数のクラスのいずれに属するかを示す既知ラベルが画素毎に付与された出力画像を生成する工程を含み、前記工程(b)は、前記判別画像を参照して、前記出力画像の一部の画素に前記未知ラベルを設定する工程を含むものとしてもよい。
この物体検出方法によれば、未知の物体の画像領域に未知ラベルが設定された出力画像を得ることができる。
【0082】
(4)上記物体検出方法において、前記工程(b)は、更に、前記判別画像と前記出力画像の解像度を一致させる解像度変換を実行する工程を含むものとしてもよい。
この物体検出方法によれば、判別画像と出力画像の解像度を一致させるので、判別画像を参照して出力画像に未知ラベルを容易に設定できる。
【0083】
(5)上記物体検出方法において、前記特定層は2つ以上存在し、前記工程(a)は、前記2つ以上の特定層のそれぞれに関して前記類似度画像を求める工程を含み、前記工程(b)は、前記2つ以上の特定層のそれぞれに関して前記判別画像を求める工程と、前記出力画像の各画素について、前記2つ以上の特定層のそれぞれに関する前記判別画像の対応画素のうちの予め定められた数の対応画素に前記未知ラベルが付与されている場合に、前記出力画像の当該画素に前記未知ラベルを設定する工程と、を含むものとしてもよい。
この物体検出方法によれば、2つの以上の特定層に関して得られた判別画像の対応画素うち、予め定められた数の対応画素に未知ラベルが付与されている場合に出力画像の画素に未知ラベルを設定するので、未知ラベルをより正確に設定できる。
【0084】
(6)上記物体検出方法において、前記特定層は、第1軸と第2軸の2つの軸で規定された平面に配置されたベクトルニューロンが、前記2つの軸とは異なる方向の第3軸に沿って複数のチャンネルとして配置されている構成を有し、前記工程(a)は、前記特定層のうちの1つの平面位置におけるベクトルニューロンの出力ベクトルの複数の要素値を、前記第3軸に沿った前記複数のチャンネルにわたって配列した第1種の特徴スペクトルと、前記第1種の特徴スペクトルの各要素値に、前記出力ベクトルのベクトル長さに相当するアクティベーション値を乗じることによって得られる第2種の特徴スペクトルと、前記特定層のうちの1つの平面位置における前記アクティベーション値を、前記第3軸に沿った前記複数のチャンネルにわたって配列した第3種の特徴スペクトルと、のうちのいずれかの特徴スペクトルを前記特定層の画素毎に求める工程と、前記機械学習モデルに前記複数の既知ラベルのいずれかがそれぞれ付与された複数のパッチ画像が入力されたときに前記特定層の出力から得られた既知特徴スペクトル群と、前記入力画像の入力に応じて前記特定層の画素毎に得られた前記特徴スペクトルと、に対して予め定められた演算式を適用することによって前記類似度を求める工程と、を含むものとしてもよい。
この物体検出方法によれば、ベクトルニューロンの出力ベクトルから得られる3種の特徴スペクトルのいずれかを用いて類似度を求めることができる。
【0085】
(7)本開示の第2の形態によれば、入力画像から物体を検出する物体検出装置が提供される。この物体検出装置は、複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを記憶するメモリーと、前記機械学習モデルを用いた物体検出処理を実行するプロセッサーと、を備える。前記機械学習モデルは、前記入力画像よりも小さい予め定められたサイズのパッチ画像を前記機械学習モデルに入力すると、前記パッチ画像が複数のクラスのうちの1つに属することを示す判定値を前記機械学習モデルが出力するように構成されている。前記プロセッサーは、(a)前記機械学習モデルに前記入力画像を入力して、前記複数のベクトルニューロン層のうちの少なくとも1つの特定層の出力から、前記複数のクラスのうちのいずれかのクラスの特徴と類似する程度を示す類似度を前記特定層の画素毎に求めることによって、類似度画像を生成する処理と、(b)前記類似度画像の各画素の前記類似度を予め定められた閾値と比較し、前記類似度が前記閾値未満の場合に当該画素に未知ラベルを付与することによって、少なくとも前記未知ラベルを含む判別画像を生成する処理と、を実行する。
この物体検出装置によれば、未知の物体の画像領域に未知ラベルが付与されるので、テンプレートマッチングとは異なる方法で、入力画像内に存在する未知の物体を検出することができる。
【0086】
(8)本開示の第3の形態によれば、複数のベクトルニューロン層を有するベクトルニューラルネットワーク型の機械学習モデルを用いて、入力画像から物体を検出する物体検出処理をプロセッサーに実行させるコンピュータープログラムが提供される。前記機械学習モデルは、前記入力画像よりも小さい予め定められたサイズのパッチ画像を前記機械学習モデルに入力すると、前記パッチ画像が複数のクラスのうちの1つに属することを示す判定値を前記機械学習モデルが出力するように構成されている。前記コンピュータープログラムは、(a)前記機械学習モデルに前記入力画像を入力して、前記複数のベクトルニューロン層のうちの少なくとも1つの特定層の出力から、前記複数のクラスのうちのいずれかのクラスの特徴と類似する程度を示す類似度を前記特定層の画素毎に求めることによって、類似度画像を生成する処理と、(b)前記類似度画像の各画素の前記類似度を予め定められた閾値と比較し、前記類似度が前記閾値未満の場合に当該画素に未知ラベルを付与することによって、少なくとも前記未知ラベルを含む判別画像を生成する処理と、を前記プロセッサーに実行させる。
このコンピュータープログラムによれば、未知の物体の画像領域に未知ラベルが付与されるので、テンプレートマッチングとは異なる方法で、入力画像内に存在する未知の物体を検出することができる。
【0087】
本開示は、上記以外の種々の形態で実現することも可能である。例えば、物体検出装置の機能を実現するためのコンピュータープログラム、そのコンピュータープログラムを記録した一時的でない記録媒体(non-transitory storage medium)等の形態で実現することができる。
【符号の説明】
【0088】
100…情報処理装置、110…プロセッサー、112…物体検出処理部、120…メモリー、130…インターフェイス回路、150…表示部、200…機械学習モデル、210…畳み込み層、220…プライマリーベクトルニューロン層、230…第1畳み込みベクトルニューロン層、240…第2畳み込みベクトルニューロン層、250…分類ベクトルニューロン層、260…類似度演算部