(57)【特許請求の範囲】
【請求項１】
複数の畳み込み層を含む特徴抽出部であって、１以上のオブジェクトが映る画像の特徴マップを出力する特徴抽出部と、前記特徴マップに基づいて、前記１以上のオブジェクトのクラスを示すクラス情報を出力するクラス推定部と、前記特徴マップに基づいて、前記１以上のオブジェクトの数を出力するオブジェクト数推定部と、前記特徴マップに基づいて、前記画像における前記１以上のオブジェクトそれぞれの座標を出力する座標推定部と、を含むモデルを生成する生成手段と、
前記生成されたモデルをモデル記憶手段に記憶させる記憶制御手段と、
を備え、
前記生成手段は、
１以上のオブジェクトがそれぞれ映る複数の画像それぞれについて、前記画像と、前記１以上のオブジェクトそれぞれのクラスと、前記オブジェクトの数と、を含む第１訓練データを、訓練データ記憶手段から取得する第１取得手段と、
前記第１取得手段により取得された前記第１訓練データを用いて、前記特徴抽出部と、前記クラス推定部と、前記オブジェクト数推定部と、を訓練する第１訓練手段と、
前記複数の画像の数よりも少ない数の画像それぞれについて、前記画像と、前記画像における前記１以上のオブジェクトそれぞれの座標と、含む第２訓練データを、前記訓練データ記憶手段から取得する第２取得手段と、
前記第１訓練手段により訓練された前記特徴抽出部により、前記取得された第２訓練データに含まれる前記画像の特徴マップを出力させ、該特徴マップと、前記取得された第２訓練データに含まれる前記座標と、を用いて、前記座標推定部を訓練する第２訓練手段と、
を含むことを特徴とする学習装置。
【請求項２】
前記座標推定部は、
前記特徴マップにおいて、前記オブジェクトが存在する領域と存在しない領域との境界部分の値であると推定される閾値を出力する全結合層と、
前記特徴マップを構成する複数の要素のうち、前記出力された閾値以上の値を有する要素で構成される領域に対応する座標を、前記オブジェクトの座標として出力する出力部と、を含み、
前記第２訓練手段は、前記座標推定部に含まれる前記全結合層に、前記閾値を学習させることを特徴とする請求項１に記載の学習装置。
【請求項３】
前記第１訓練手段は、前記オブジェクト数推定部から前記特徴抽出部への誤差逆伝播により、前記特徴マップにおいて、前記第１訓練データに含まれる前記オブジェクトの数に相当する数の領域が強調されるように、前記特徴抽出部を訓練することを特徴とする請求項１又は２に記載の学習装置。
【請求項４】
前記オブジェクト数推定部は、クラスごとに前記オブジェクトの数を出力し、
前記特徴抽出部は、クラスごとに前記特徴マップを出力し、
前記第２訓練手段は、前記特徴抽出部から出力された特徴マップのうち、前記取得された第１訓練データに含まれる前記１以上のクラスそれぞれに対応する特徴マップを用いて、前記座標推定部を訓練することを特徴とする請求項１乃至３の何れか一項に記載の学習装置。
【請求項５】
前記オブジェクト数推定部は、前記１以上のオブジェクトの数を出力する全結合層を含むことを特徴とする請求項１乃至４の何れか一項に記載の学習装置。
【請求項６】
請求項１乃至５の何れか一項に記載の学習装置により生成された前記モデルを記憶する記憶手段から、前記モデルを読み出す読み出し手段と、
前記読み出されたモデルに含まれる前記特徴抽出部により、１以上のオブジェクトが映る所与の画像の特徴マップを出力させる特徴マップ出力制御手段と、
前記出力された所与の画像の特徴マップを、前記読み出されたモデルに含まれる前記クラス推定部に入力して、前記所与の画像に映る前記１以上のオブジェクトそれぞれのクラスを示すクラス情報を出力させるクラス出力制御手段と、
前記出力された所与の画像の特徴マップを、前記読み出されたモデルに含まれる前記座標推定部に入力して、前記所与の画像に映る前記１以上のオブジェクトそれぞれの座標を出力させる座標出力制御手段と、
を備えることを特徴とする分類装置。
【請求項７】
コンピュータにより実行される学習方法において、
複数の畳み込み層を含む特徴抽出部であって、１以上のオブジェクトが映る画像の特徴マップを出力する特徴抽出部と、前記特徴マップに基づいて、前記１以上のオブジェクトのクラスを示すクラス情報を出力するクラス推定部と、前記特徴マップに基づいて、前記１以上のオブジェクトの数を出力するオブジェクト数推定部と、前記特徴マップに基づいて、前記画像における前記１以上のオブジェクトそれぞれの座標を出力する座標推定部と、を含むモデルを生成する生成ステップと、
前記生成されたモデルをモデル記憶手段に記憶させる記憶制御ステップと、
を含み、
前記生成ステップは、
１以上のオブジェクトがそれぞれ映る複数の画像それぞれについて、前記画像と、前記１以上のオブジェクトそれぞれのクラスと、前記オブジェクトの数と、を含む第１訓練データを、訓練データ記憶手段から取得する第１取得ステップと、
前記第１取得ステップにより取得された前記第１訓練データを用いて、前記特徴抽出部と、前記クラス推定部と、前記オブジェクト数推定部と、を訓練する第１訓練ステップと、
前記複数の画像の数よりも少ない数の画像それぞれについて、前記画像と、前記画像における前記１以上のオブジェクトそれぞれの座標と、含む第２訓練データを、前記訓練データ記憶手段から取得する第２取得ステップと、
前記第１訓練ステップにより訓練された前記特徴抽出部により、前記取得された第２訓練データに含まれる前記画像の特徴マップを出力させ、該特徴マップと、前記取得された第２訓練データに含まれる前記座標と、を用いて、前記座標推定部を訓練する第２訓練ステップと、
を含むことを特徴とする学習方法。
【請求項８】
コンピュータにより実行される分類方法において、
請求項１乃至５の何れか一項に記載の学習装置により生成された前記モデルを記憶する記憶手段から、前記モデルを読み出す読み出しステップと、
前記読み出されたモデルに含まれる前記特徴抽出部により、１以上のオブジェクトが映る所与の画像の特徴マップを出力させる特徴マップ出力制御ステップと、
前記出力された所与の画像の特徴マップを、前記読み出されたモデルに含まれる前記クラス推定部に入力して、前記所与の画像に映る前記１以上のオブジェクトそれぞれのクラスを示すクラス情報を出力させるクラス出力制御ステップと、
前記出力された所与の画像の特徴マップを、前記読み出されたモデルに含まれる前記座標推定部に入力して、前記所与の画像に映る前記１以上のオブジェクトそれぞれの座標を出力させる座標出力制御ステップと、
を含むことを特徴とする分類方法。
【請求項９】
コンピュータにより実行される学習プログラムにおいて、
前記コンピュータを、
複数の畳み込み層を含む特徴抽出部であって、１以上のオブジェクトが映る画像の特徴マップを出力する特徴抽出部と、前記特徴マップに基づいて、前記１以上のオブジェクトのクラスを示すクラス情報を出力するクラス推定部と、前記特徴マップに基づいて、前記１以上のオブジェクトの数を出力するオブジェクト数推定部と、前記特徴マップに基づいて、前記画像における前記１以上のオブジェクトそれぞれの座標を出力する座標推定部と、を含むモデルを生成する生成手段と、
前記生成されたモデルをモデル記憶手段に記憶させる記憶制御手段と、
として機能させ、
前記生成手段は、
１以上のオブジェクトがそれぞれ映る複数の画像それぞれについて、前記画像と、前記１以上のオブジェクトそれぞれのクラスと、前記オブジェクトの数と、を含む第１訓練データを、訓練データ記憶手段から取得する第１取得手段と、
前記第１取得手段により取得された前記第１訓練データを用いて、前記特徴抽出部と、前記クラス推定部と、前記オブジェクト数推定部と、を訓練する第１訓練手段と、
前記複数の画像の数よりも少ない数の画像それぞれについて、前記画像と、前記画像における前記１以上のオブジェクトそれぞれの座標と、含む第２訓練データを、前記訓練データ記憶手段から取得する第２取得手段と、
前記第１訓練手段により訓練された前記特徴抽出部により、前記取得された第２訓練データに含まれる前記画像の特徴マップを出力させ、該特徴マップと、前記取得された第２訓練データに含まれる前記座標と、を用いて、前記座標推定部を訓練する第２訓練手段と、
を含むことを特徴とする学習プログラム。
【請求項１０】
コンピュータを、
請求項１乃至５の何れか一項に記載の学習装置により生成された前記モデルを記憶する記憶手段から、前記モデルを読み出す読み出し手段と、
前記読み出されたモデルに含まれる前記特徴抽出部により、１以上のオブジェクトが映る所与の画像の特徴マップを出力させる特徴マップ出力制御手段と、
前記出力された所与の画像の特徴マップを、前記読み出されたモデルに含まれる前記クラス推定部に入力して、前記所与の画像に映る前記１以上のオブジェクトそれぞれのクラスを示すクラス情報を出力させるクラス出力制御手段と、
前記出力された所与の画像の特徴マップを、前記読み出されたモデルに含まれる前記座標推定部に入力して、前記所与の画像に映る前記１以上のオブジェクトそれぞれの座標を出力させる座標出力制御手段と、
として機能させることを特徴とする分類プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械学習を用いた画像処理方法に関し、特に、畳み込みニューラルネットワークを用いて、画像内の如何なる位置に如何なるオブジェクトが映っているかを推定するための学習方法及び分類方法の技術分野に関する。
【背景技術】
【０００２】
現在、深層学習に関する研究開発が盛んに行われている。特にコンピュータビジョンの技術分野においては、画像を処理するためのモデルとして、畳み込みニューラルネットワークが一般的に採用されている。このネットワークは、複数の畳み込み層を有し、画像に対する畳み込み演算を繰り返してその画像の特徴マップを生成する。この特徴マップから、画像に映るオブジェクトの分類等が行われる（例えば、非特許文献１）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Sachin Padmanabhan、「画像分類及びキャプション生成のための畳み込みニューラルネットワーク（Convolutional Neural Networks for Image Classification and Captioning）」、［online］、［平成30年7月9日検索］、インターネット<URL: https://web.stanford.edu/class/cs231a/prev_projects_2016/example_paper.pdf>
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、画像に映っているオブジェクトのクラス、及びそのオブジェクトの画像内における座標を推定するモデルを生成するためには、学習用に、画像、オブジェクトのクラスを示すラベル、及びそのオブジェクトの座標を示すラベルからなるデータセットを、大量に準備する必要がある。しかしながら、オブジェクトの座標は基本的には手作業で入力されるため、座標のデータを大量に準備することは困難な作業である。特に、画像に複数のオブジェクトが映っている場合、座標のデータを準備することはより困難である。【０００５】
本発明は以上の点に鑑みてなされたものであり、その課題の一例は、比較的に少量の座標データのみを学習に用いたとしても、画像内における複数のオブジェクトの座標の推定精度を向上させるためのモデルを生成可能な学習装置、分類装置、学習方法、分類方法、学習プログラム、及び分類プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明の一の態様は、複数の畳み込み層を含む特徴抽出部であって、１以上のオブジェクトが映る画像の特徴マップを出力する特徴抽出部と、前記特徴マップに基づいて、前記１以上のオブジェクトのクラスを示すクラス情報を出力するクラス推定部と、前記特徴マップに基づいて、前記１以上のオブジェクトの数を出力するオブジェクト数推定部と、前記特徴マップに基づいて、前記画像における前記１以上のオブジェクトそれぞれの座標を出力する座標推定部と、を含むモデルを生成する生成手段と、前記生成されたモデルをモデル記憶手段に記憶させる記憶制御手段と、を備え、前記生成手段は、１以上のオブジェクトがそれぞれ映る複数の画像それぞれについて、前記画像と、前記１以上のオブジェクトそれぞれのクラスと、前記オブジェクトの数と、を含む第１訓練データを、訓練データ記憶手段から取得する第１取得手段と、前記第１取得手段により取得された前記第１訓練データを用いて、前記特徴抽出部と、前記クラス推定部と、前記オブジェクト数推定部と、を訓練する第１訓練手段と、前記複数の画像の数よりも少ない数の画像それぞれについて、前記画像と、前記画像における前記１以上のオブジェクトそれぞれの座標と、含む第２訓練データを、前記訓練データ記憶手段から取得する第２取得手段と、前記第１訓練手段により訓練された前記特徴抽出部により、前記取得された第２訓練データに含まれる前記画像の特徴マップを出力させ、該特徴マップと、前記取得された第２訓練データに含まれる前記座標と、を用いて、前記座標推定部を訓練する第２訓練手段と、を含むことを特徴とする学習装置である。【０００７】
この態様によれば、学習装置は、特徴抽出部に含まれる複数の畳み込み層による画像に対する畳み込み演算によって、特徴抽出部から特徴マップを出力させる。この特徴マップにおける各要素は、画像におけるその要素に対応する座標において、オブジェクトが映っている蓋然性を示す。学習装置は、クラス推定部及びオブジェクト数推定部が、第１訓練データに含まれるラベルとしてのクラス及びオブジェクトの数をそれぞれ出力するように、特徴抽出部、クラス推定部及びオブジェクト数推定部を訓練する。この訓練の結果、特徴抽出部は、第１訓練データに含まれるオブジェクトの数に相当する数の領域であって、第１訓練データに含まれるクラスのオブジェクトが画像内に映っている位置に対応する領域が強調された特徴マップを出力するようになる。座標推定部は、このような特徴マップから、画像に映る１以上のオブジェクトそれぞれの座標の特定を学習すればよいので、学習が容易である。それ故、学習装置は、第１訓練データに含まれる画像の数よりも少ない数の画像のみの座標データを用いて座標推定部を訓練すればよい。従って、比較的に少量の座標データのみを学習に用いたとしても、画像内における複数のオブジェクトの座標の推定精度を向上させることができる。【０００８】
本発明の別の態様は、前記座標推定部は、前記特徴マップにおいて、前記オブジェクトが存在する領域と存在しない領域との境界部分の値であると推定される閾値を出力する全結合層と、前記特徴マップを構成する複数の要素のうち、前記出力された閾値以上の値を有する要素で構成される領域に対応する座標を、前記オブジェクトの座標として出力する出力部と、を含み、前記第２訓練手段は、前記座標推定部に含まれる前記全結合層に、前記閾値を学習させることを特徴とする学習装置である。【０００９】
この態様によれば、座標推定部に含まれる全結合層は、オブジェクトが存在する蓋然性を各要素が示す特徴マップから、オブジェクトが存在する領域の外周を特定するための閾値を学習する。従って、オブジェクトの座標を適切に推定することができる。【００１０】
本発明の更に別の態様は、前記第１訓練手段は、前記オブジェクト数推定部から前記特徴抽出部への誤差逆伝播により、前記特徴マップにおいて、前記第１訓練データに含まれる前記オブジェクトの数に相当する数の領域が強調されるように、前記特徴抽出部を訓練することを特徴とする学習装置である。【００１１】
この態様によれば、オブジェクト数推定部から出力されたオブジェクトの数と、第１訓練データに含まれるオブジェクトの数との誤差に基づいて、オブジェクト数推定部から特徴抽出部に誤差が逆伝播されて、特徴抽出部に含まれる畳み込み層が有するパラメータが更新される。そのため、この訓練の結果、特徴抽出部は、第１訓練データに含まれるオブジェクトの数に相当する数の領域が強調された特徴マップを出力するようになる。従って、画像に映る１以上のオブジェクトそれぞれの座標を正確に推定することができる。【００１２】
本発明の更に別の態様は、前記オブジェクト数推定部は、クラスごとに前記オブジェクトの数を出力し、前記特徴抽出部は、クラスごとに前記特徴マップを出力し、前記第２訓練手段は、前記特徴抽出部から出力された特徴マップのうち、前記取得された第１訓練データに含まれる前記１以上のクラスそれぞれに対応する特徴マップを用いて、前記座標推定部を訓練することを特徴とする学習装置である。【００１３】
この態様によれば、第１訓練データを用いた訓練の結果、特徴抽出部から、第１訓練データに含まれる前記１以上のクラスそれぞれについて、適切な数の領域が強調された特徴マップが出力される。この特徴マップを用いることで、クラスごとに適切な数のオブジェクトの座標を出力するように、座標推定部を訓練することができる。【００１４】
本発明の更に別の態様は、前記オブジェクト数推定部は、前記１以上のオブジェクトの数を出力する全結合層を含むことを特徴とする学習装置である。【００１５】
本発明の更に別の態様は、前記学習装置により生成された前記モデルを記憶する記憶手段から、前記モデルを読み出す読み出し手段と、前記読み出されたモデルに含まれる前記特徴抽出部により、１以上のオブジェクトが映る所与の画像の特徴マップを出力させる特徴マップ出力制御手段と、前記出力された所与の画像の特徴マップを、前記読み出されたモデルに含まれる前記クラス推定部に入力して、前記所与の画像に映る前記１以上のオブジェクトそれぞれのクラスを示すクラス情報を出力させるクラス出力制御手段と、前記出力された所与の画像の特徴マップを、前記読み出されたモデルに含まれる前記座標推定部に入力して、前記所与の画像に映る前記１以上のオブジェクトそれぞれの座標を出力させる座標出力制御手段と、を備えることを特徴とする分類装置である。【００１６】
この発明によれば、特徴抽出部は、所与の画像に映る１以上のオブジェクトの数に相当する数の領域であって、それらのオブジェクトが画像内に映っている位置に対応する領域が強調された特徴マップを出力する。クラス推定部は、そのような特徴マップから、所与の画像に映る１以上のオブジェクトそれぞれのクラスを推定する。また、座標推定部は、そのような特徴マップから、所与の画像に映る１以上のオブジェクトそれぞれの座標を推定する。従って、比較的に少量の座標データのみを学習に用いたとしても、画像内における複数のオブジェクトの座標の推定精度を向上させることができる。【００１７】
本発明の更に別の態様は、コンピュータにより実行される学習方法において、複数の畳み込み層を含む特徴抽出部であって、１以上のオブジェクトが映る画像の特徴マップを出力する特徴抽出部と、前記特徴マップに基づいて、前記１以上のオブジェクトのクラスを示すクラス情報を出力するクラス推定部と、前記特徴マップに基づいて、前記１以上のオブジェクトの数を出力するオブジェクト数推定部と、前記特徴マップに基づいて、前記画像における前記１以上のオブジェクトそれぞれの座標を出力する座標推定部と、を含むモデルを生成する生成ステップと、前記生成されたモデルをモデル記憶手段に記憶させる記憶制御ステップと、を含み、前記生成ステップは、１以上のオブジェクトがそれぞれ映る複数の画像それぞれについて、前記画像と、前記１以上のオブジェクトそれぞれのクラスと、前記オブジェクトの数と、を含む第１訓練データを、訓練データ記憶手段から取得する第１取得ステップと、前記第１取得ステップにより取得された前記第１訓練データを用いて、前記特徴抽出部と、前記クラス推定部と、前記オブジェクト数推定部と、を訓練する第１訓練ステップと、前記複数の画像の数よりも少ない数の画像それぞれについて、前記画像と、前記画像における前記１以上のオブジェクトそれぞれの座標と、含む第２訓練データを、前記訓練データ記憶手段から取得する第２取得ステップと、前記第１訓練ステップにより訓練された前記特徴抽出部により、前記取得された第２訓練データに含まれる前記画像の特徴マップを出力させ、該特徴マップと、前記取得された第２訓練データに含まれる前記座標と、を用いて、前記座標推定部を訓練する第２訓練ステップと、を含むことを特徴とする。【００１８】
本発明の更に別の態様は、コンピュータにより実行される分類方法において、前記学習装置により生成された前記モデルを記憶する記憶手段から、前記モデルを読み出す読み出しステップと、前記読み出されたモデルに含まれる前記特徴抽出部により、１以上のオブジェクトが映る所与の画像の特徴マップを出力させる特徴マップ出力制御ステップと、前記出力された所与の画像の特徴マップを、前記読み出されたモデルに含まれる前記クラス推定部に入力して、前記所与の画像に映る前記１以上のオブジェクトそれぞれのクラスを示すクラス情報を出力させるクラス出力制御ステップと、前記出力された所与の画像の特徴マップを、前記読み出されたモデルに含まれる前記座標推定部に入力して、前記所与の画像に映る前記１以上のオブジェクトそれぞれの座標を出力させる座標出力制御ステップと、を含むことを特徴とする。【００１９】
本発明の更に別の態様は、コンピュータにより実行される学習プログラムにおいて、前記コンピュータを、複数の畳み込み層を含む特徴抽出部であって、１以上のオブジェクトが映る画像の特徴マップを出力する特徴抽出部と、前記特徴マップに基づいて、前記１以上のオブジェクトのクラスを示すクラス情報を出力するクラス推定部と、前記特徴マップに基づいて、前記１以上のオブジェクトの数を出力するオブジェクト数推定部と、前記特徴マップに基づいて、前記画像における前記１以上のオブジェクトそれぞれの座標を出力する座標推定部と、を含むモデルを生成する生成手段と、前記生成されたモデルをモデル記憶手段に記憶させる記憶制御手段と、として機能させ、前記生成手段は、１以上のオブジェクトがそれぞれ映る複数の画像それぞれについて、前記画像と、前記１以上のオブジェクトそれぞれのクラスと、前記オブジェクトの数と、を含む第１訓練データを、訓練データ記憶手段から取得する第１取得手段と、前記第１取得手段により取得された前記第１訓練データを用いて、前記特徴抽出部と、前記クラス推定部と、前記オブジェクト数推定部と、を訓練する第１訓練手段と、前記複数の画像の数よりも少ない数の画像それぞれについて、前記画像と、前記画像における前記１以上のオブジェクトそれぞれの座標と、含む第２訓練データを、前記訓練データ記憶手段から取得する第２取得手段と、前記第１訓練手段により訓練された前記特徴抽出部により、前記取得された第２訓練データに含まれる前記画像の特徴マップを出力させ、該特徴マップと、前記取得された第２訓練データに含まれる前記座標と、を用いて、前記座標推定部を訓練する第２訓練手段と、を含むことを特徴とする。【００２０】
本発明の更に別の態様は、コンピュータを、前記学習装置により生成された前記モデルを記憶する記憶手段から、前記モデルを読み出す読み出し手段と、前記読み出されたモデルに含まれる前記特徴抽出部により、１以上のオブジェクトが映る所与の画像の特徴マップを出力させる特徴マップ出力制御手段と、前記出力された所与の画像の特徴マップを、前記読み出されたモデルに含まれる前記クラス推定部に入力して、前記所与の画像に映る前記１以上のオブジェクトそれぞれのクラスを示すクラス情報を出力させるクラス出力制御手段と、前記出力された所与の画像の特徴マップを、前記読み出されたモデルに含まれる前記座標推定部に入力して、前記所与の画像に映る前記１以上のオブジェクトそれぞれの座標を出力させる座標出力制御手段と、として機能させることを特徴とする分類プログラムである。
【発明の効果】
【００２１】
本発明によれば、比較的に少量の座標データのみを学習に用いたとしても、画像内における複数のオブジェクトの座標の推定精度を向上させることができる。
【図面の簡単な説明】
【００２２】
【図１】一実施形態に係る画像処理装置１の概要構成の一例を示すブロック図である。
【図２】一実施形態に係る画像処理装置１のシステム制御部１１及びＧＰＵ１８の機能ブロックの一例を示す図である。
【図３】モデル２の構成例を示す図である。
【図４】クラス推定部２２及びオブジェクト数推定部２３の構成例を示す図である。
【図５】閾値推定部２４１及び座標出力部２４２の機能概要の一例を示す図である。
【図６】学習に用いられる画像及び、学習の途中の段階と学習完了後それぞれの特徴マップにおける確率分布の一例を示す図である。
【図７】閾値推定部２４１及び座標出力部２４２の訓練概要の一例を示す図である。
【図８】画像処理装置１のシステム制御部１１及びＧＰＵ１８による学習処理の一例を示すフローチャートである。
【図９】画像処理装置１のシステム制御部１１及びＧＰＵ１８による分類処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００２３】
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態においては、画像に映るオブジェクトを分類してオブジェクトの座標を推定するためのモデルを生成するための学習の実行と、生成されたモデルを用いた、オブジェクトの分類及び座標の推定（すなわち物体検出）を行う画像処理装置に対して本発明を適用した場合の実施形態である。なお、学習を実行する装置と、クラス及び座標の推定を行う装置とは別々の装置であってもよい。
【００２４】
［１．画像処理装置の構成］
先ず、画像処理装置１の構成について、図１を用いて説明する。図１は、本実施形態に係る画像処理装置１の概要構成の一例を示すブロック図である。図１に示すように、画像処理装置１は、システム制御部１１と、システムバス１２と、入出力インターフェース１３と、記憶部１４と、通信部１５と、入力部１６と、表示部１７と、ＧＰＵ（Graphics Processing Unit）１８と、ＧＰＵメモリ１９（または、ビデオＲＡＭ）を備えている。システム制御部１１と入出力インターフェース１３とは、システムバス１２を介して接続されている。画像処理装置１は、例えばサーバ装置であってもよいし、パーソナルコンピュータであってもよい。
【００２５】
システム制御部１１は、ＣＰＵ（Central Processing Unit）１１ａ、ＲＯＭ（Read Only Memory）１１ｂ、ＲＡＭ（Random Access Memory）１１ｃ等により構成されている。
【００２６】
入出力インターフェース１３は、記憶部１４〜ＧＰＵメモリ１９とシステム制御部１１との間のインターフェース処理を行う。
【００２７】
記憶部１４は、例えば、ハードディスクドライブ又はソリッドステートドライブ等により構成されている。この記憶部１４には、生成されたモデル２、及びモデル２の生成に用いられる複数の訓練データ等が記憶される。記憶部１４には、更にオペレーティングシステム、モデル生成用のプログラム、分類用のプログラム等が記憶されている。訓練データ及び各種プログラムは、例えば、所定のコンピュータからネットワークを介して取得されるようにしてもよいし、光ディスク、メモリカード、磁気テープ等の記録媒体に記録されてドライブ装置を介して読み込まれるようにしてもよい。モデル２を生成する装置と分類を行う装置とが別々の装置である場合、生成されたモデル２の受け渡しは、ネットワークを介して行われてもよいし、記録媒体を介して行われてもよい。
【００２８】
通信部１５は、例えばネットワークインターフェースコントローラ等により構成されている。通信部１５は、インターネット、ＬＡＮ（Local Area Network）等の所定のネットワークを介して他のコンピュータと接続し、そのコンピュータとの通信状態を制御する。
【００２９】
入力部１６は、オペレータによる操作を受け付け、操作内容に対応する信号をシステム制御部１１に出力する。入力部１６の例として、キーボード、マウス、タッチパネル等が挙げられる。
【００３０】
表示部１７は、例えば、グラフィックコントローラ及びディスプレイ等により構成されている。表示部１７は、システム制御部１１の制御により、画像、文字等の情報を表示する。ディスプレイのパネルの例として、液晶パネル、有機ＥＬ（Light Emitting）パネル等が挙げられる。
【００３１】
ＧＰＵ１８は、システム制御部１１からの制御により、機械学習における行列演算等を実行する。ＧＰＵ１８は、複数の演算を並列にパイプライン処理する。ＧＰＵ１８とＧＰＵメモリ１９とは接続されている。ＧＰＵメモリ１９は、ＧＰＵ１８による演算に用いられるデータや演算結果を記憶する。
【００３２】
［２．画像処理装置のシステム制御部の機能概要］
次に、図２乃至図７を用いて、システム制御部１１及びＧＰＵ１８の機能概要について説明する。図２は、本実施形態に係る画像処理装置１のシステム制御部１１及びＧＰＵ１８の機能ブロックの一例を示す図である。システム制御部１１及びＧＰＵ１８は、ＣＰＵ１１ａが、記憶部１４に記憶されているプログラムに含まれる各種コード等を読み出し実行することにより、図２に示すように、第１訓練データ取得部１１１、第１訓練部１１２、第２訓練データ取得部１１３、第２訓練部１１４、モデル記憶制御部１１５、モデル読み出し部１１６、特徴マップ出力制御部１１７、クラス出力制御部１１８、座標出力制御部１１９等として機能する。
【００３３】
［２−１．モデルの生成］
図３は、モデル２の構成例を示す図である。第１訓練データ取得部１１１第１訓練部１１２、第２訓練データ取得部１１３及び第２訓練部１１４は、機械学習によってモデル２を生成する。図３に示すように、モデル２は、特徴抽出部２１と、クラス推定部２２と、オブジェクト数推定部２３と、座標推定部２４と、を含む畳み込みニューラルネットワークである。モデル２のベースとなるネットワークモデルの例として、Reset、GoogleNet、AlexNet、VGGNetが挙げられる。
【００３４】
特徴抽出部２１は、複数の畳み込み層を含む。特徴抽出部２１は、モデル２に入力された画像３１の特徴マップ３２を出力する。画像３１には、１以上のオブジェクトが映っている。画像３１に複数のオブジェクトが映っている場合、各オブジェクトのクラスは互いに同じであってもよいし異なってもよい。画像１３は、例えばオペレータが用意した画像、又はネットワークを介して取得された画像である。特徴抽出部２１は、これらの畳み込み層によって画像３１に対する畳み込み演算を繰り返し、モデル２が分類可能なクラスごとに特徴マップ３２を出力する。特徴抽出部２１は、プーリング層等のレイヤを適宜含んでもよい。
【００３５】
クラス推定部２２は、特徴抽出部２１から出力された特徴マップ３２に基づいて、画像３１に映っている１以上のオブジェクトのクラスを示すクラス情報を出力する。クラス推定部２２は、１以上の全結合層を含む。クラス推定部２２は、直列に接続された複数の全結合層を含んでもよい。クラス推定部２２は、特徴マップ３２を全結合層で変換して、クラスごとにそのクラスのオブジェクトが映っているか否かを示す情報をクラス情報として出力する。クラス推定部２２は、例えばクラスごとに１個の全結合層又は直列に接続された複数の全結合層を含んでもよい。画像３１に複数のクラスのオブジェクトが映っている場合、クラス推定部２２は、これらのクラスそれぞれのオブジェクトが映っていると推定することが可能である。
【００３６】
オブジェクト数推定部２３は、特徴抽出部２１から出力された特徴マップ３２に基づいて、画像３１に映っている１以上のオブジェクトの数を出力する。クラス推定部２２は、１以上の全結合層を含む。オブジェクト数推定部２３は、直列に接続された複数の全結合層を含んでもよい。オブジェクト数推定部２３は、特徴マップ３２を全結合層で変換して、クラスごとのオブジェクト数を出力する。
【００３７】
図４は、クラス推定部２２及びオブジェクト数推定部２３の構成例を示す図である。クラス推定部２２及びオブジェクト数推定部２３は、別々の全結合層で構成されてもよいし、同一の全結合層で構成されてもよい。例えば、図４に示すように、クラス推定部２２及びオブジェクト数推定部２３は、全結合層２５−１〜２５−Ｎで構成されている。Ｎは、モデル２で分類可能なクラスの総数である。特徴マップ３２として、特徴マップ３２−１〜３２−Ｎが全結合層２５−１〜２５−Ｎにそれぞれ入力される。全結合層２５−１〜２５−Ｎは、それぞれＮ＋１チャネルの出力ユニットを有する。或るクラスのインデックスをｉとすると、全結合層２５−ｉにおいて、Ｎチャネルの出力ユニット２２−ｉがクラス推定部２２に対応し、１チャネルの出力ユニット２３−ｉがオブジェクト数推定部２３に対応する。出力ユニット２２−ｉからは、クラスｉに対応する特徴マップ３２−ｉから推定される各クラスの確率値が出力される。学習が終わった後の分類段階においては、各クラスの確率値が０又は１に変換される。例えば、所定値以上の確率値は１に変換され、所定値未満の確率値は０に変換される。全結合層２５−ｉからクラスｉについて所定値以上の確率値が出力されることは、画像３１にクラスｉのオブジェクトが映っていると推定されたことを示す。出力ユニット２３−ｉからは、特徴マップ３２−ｉから推定されるクラスｉのオブジェクト数が出力される。学習が終わった後の分類段階においては、オブジェクト数が、四捨五入等されることにより、整数化される。
【００３８】
座標推定部２４は、画像３１における１以上のオブジェクトそれぞれの座標データを出力する。座標推定部２４は、閾値推定部２４１と、座標出力部２４２とを含む。図５は、閾値推定部２４１及び座標出力部２４２の機能概要の一例を示す図である。閾値推定部２４１は、例えば１以上の全結合層で構成される。閾値推定部２４１は、特徴マップ３２において、オブジェクトが存在する領域と存在しない領域との境界部分の値であると推定される閾値を出力する。特徴マップ３２−ｉを構成する各配列要素は、画像３１におけるその要素が対応する座標において、クラスｉのオブジェクトが存在する蓋然性を示す値を格納する。すなわち、座標推定部２４は、特徴マップ３２−ｉを変換することにより、クラスｉのオブジェクトが存在する蓋然性が高い領域を特定するための閾値を出力する。例えば、図５に示すように、閾値推定部２４１は、クラス１に対応する特徴マップ３２−１について、クラス１の閾値を出力する。
【００３９】
座標出力部２４２は、特徴マップ３２を構成する複数の配列要素のうち、閾値推定部２４１から出力された閾値以上の値を有する要素で構成される領域に対応する座標を、オブジェクトの座標データとして出力する。座標データは、この領域に対応する位置及び範囲を示してもよい。具体的に、座標出力部２４２は、特徴マップ３２−ｉから、閾値以上の値の要素で構成される領域を特定し、その領域に対して矩形のバウンディングボックスを設定する。例えば、座標出力部２４２は、閾値以上の値の要素で構成される領域の大部分がバウンディングボックスで囲まれるように、バウンディングボックスを設定する。特徴マップ３２から複数の領域が特定される場合、座標出力部２４２は、各領域に対してバウンディングボックスを設定する。座標出力部２４２は、座標データとして、例えば領域ごとに、バウンディングボックスの中心座標、バウンディングボックスの高さ及び幅、並びにクラスｉを出力する。座標出力部２４２は、特定した領域の数を、クラスｉのオブジェクト数として更に出力してもよい。例えば、図５に示すように、座標出力部２４２は、特徴マップ３２−１において、閾値推定部２４１から出力された閾値以上の領域４１を特定し、領域４１に対応するバウンディングボックス４２を設定する。
【００４０】
上述したモデル２を生成するため、第１訓練データ取得部１１１は、学習に用いられる複数の画像３１それぞれについて、その画像３１と、画像３１に映っているオブジェクトのクラスを示すラベル（Ground Truth）と、オブジェクトの数を示すラベルとを含む第１訓練データを、記憶部１４から取得する。
【００４１】
クラスを示すラベルは、例えばベクトルで表現されてもよい。例えば、このラベルにおいて、画像３１に映っているオブジェクトのクラスに対応するベクトル要素に１が設定され、その他のクラスに対応するベクトル要素に０が設定される。画像３１に複数のクラスのオブジェクトが映っている場合、その複数のクラスそれぞれに対応するベクトル要素に１が設定される。第１訓練データ取得部１１１は、例えば、クラスのラベルを、クラス推定部２２から出力される確率値のフォーマットと同じフォーマットに変換してもよい。
【００４２】
オブジェクトの数を示すラベルも、例えばベクトルで表現されてもよい。例えば、このラベルにおいて、画像３１に映っているオブジェクトのクラスに対応するベクトル要素に、そのクラスのオブジェクト数が設定され、その他のクラスに対応するベクトル要素に０が設定される。
【００４３】
第１訓練部１１２は、第１訓練データ取得部１１１により取得された第１訓練データを用いて、特徴抽出部２１と、クラス推定部２２と、オブジェクト数推定部２３とを訓練する。すなわち、第１訓練部１１２は、特徴抽出部２１、クラス推定部２２及びオブジェクト数推定部２３を第１訓練データから学習させる。第１訓練部１１２による処理は、例えば第１訓練データ取得部１１１により第１訓練データが取得されることに応じて自動的に実行される。第１訓練部１１２は、特徴抽出部２１、クラス推定部２２及びオブジェクト数推定部２３として、これらの層に対応する演算処理を実行して、各クラスの確率及びオブジェクト数を出力する。第１訓練部１１２は、出力された情報とラベルとを比較して学習を実行する。
【００４４】
具体的に、第１訓練部１１２は、画像３１を特徴抽出部２１に入力して、特徴抽出部２１から特徴マップ３２−１〜３２−Ｎを出力させる。第１訓練部１１２は、特徴マップ３２−１〜３２−Ｎをクラス推定部２２に入力して、クラス推定部２２から各クラスの確率を出力させる。第１訓練部１１２は、クラス推定部２２から出力された確率とクラスのラベルとを比較して、分類誤差を計算する。第１訓練部１１２は、分類誤差を用いて、クラス推定部２２が保持する重み及びバイアスのパラメータを更新する。また、第１訓練部１１２は、特徴マップ３２−１〜３２−Ｎをオブジェクト数推定部２３に入力して、オブジェクト数推定部２３から各クラスのオブジェクト数を出力させる。第１訓練部１１２は、オブジェクト数推定部２３から出力されたオブジェクト数とオブジェクト数のラベルとを比較して、カウンティング誤差を計算する。第１訓練部１１２は、カウンティング誤差を用いて、オブジェクト数推定部２３が保持する重み及びバイアスを更新する。
【００４５】
また、第１訓練部１１２は、クラス推定部２２から特徴抽出部２１へ分類誤差を逆伝播することにより、画像３１に映っているクラスのオブジェクトの領域が、特徴マップ３１において強調されるように、特徴抽出部２１を訓練する。領域が強調されるとは、その領域に格納されている確率値が、その領域外に格納されている確立値よりも高くなることをいう。更に、第１訓練部１１２は、オブジェクト数推定部２３から特徴抽出部２１へカウンティング誤差を逆伝播することにより、第１訓練データに含まれるラベルのオブジェクト数に相当する数の領域が、特徴マップ３１において強調されるように、特徴抽出部２１を訓練する。訓練の結果、特徴抽出部２１は、ラベルのオブジェクト数に相当する数の領域であって、画像内でオブジェクトが映っている位置に対応する位置にある領域が強調された特徴マップを出力するようになる。
【００４６】
図６は、学習に用いられる画像及び、学習の途中の段階と学習完了後それぞれの特徴マップにおける確率分布の一例を示す図である。例えば、図６に示すように、或る画像３１Ａに、クラス１のオブジェクト５１及び５２と、クラス２のオブジェクト５３とが映っている。クラス１について、学習の途中の段階で生成される特徴マップ３２−１−１においては、例えば１個の領域が強調されている。特徴マップ３２−１−１からは、クラス１のオブジェクトが画像３１に映っていると推定することはできるものの、クラス１のオブジェクトを正確に推定することはできない。学習が進んでいくに従って、例えば１個の領域が次第に２個の領域に分けられていく。学習完了後に生成される特徴マップ３２−１−２においては、２個の領域が強調されている。クラス２について、学習の途中の段階で生成される特徴マップ３２−２−１においては、例えば２個の領域が強調されている。学習完了後に生成される特徴マップ３２−２−２においては、１個の領域が強調されている。ラベルのオブジェクト数に相当する数の領域の強調は、オブジェクト数推定部２３から特徴抽出部２１への誤差逆伝播により実現される。また、強調される領域の位置が、画像３１におけるオブジェクトの位置に対応することは、分類誤差の逆伝播により実現される。
【００４７】
分類誤差とカウンティング誤差は組み合わせて逆伝播されてもよい。例えば、分類誤差をＥ１とし、カウンティング誤差をＥ２とし、所定の割合をｋとする（０＜ｋ＜１）。この場合、Ｅ＝ｋ＊Ｅ１＋（１−ｋ）＊Ｅ２で計算される組み合わせ誤差Ｅが逆伝播されてもよい。
【００４８】
第２訓練データ取得部１１３は、第１訓練データ取得部１１１により取得されて第１訓練部により特徴抽出部２１、クラス推定部２２及びオブジェクト数推定部２３の訓練に使用された複数の画像３１の数よりも少ない数の画像３３それぞれについて、画像３３と、画像３３に映っている１以上のオブジェクトそれぞれの座標を示すラベルとを含む第２訓練データを、記憶部１４から取得する。第２訓練データ取得部１１３による処理は、例えば第１訓練部１１２による訓練が完了したことに応じて自動的に実行される。画像３３は、画像３１のうちの幾つかの画像であってもよい。座標のラベルは、例えば、オブジェクトのバウンディングボックスの中心座標、バウンディングボックスの高さ及び幅、並びにそのオブジェクトのクラスを含んでもよい。
【００４９】
第２訓練部１１４は、第１訓練部１１２により訓練された特徴抽出部２１により、第２訓練データ取得部１１３により取得された第２訓練データに含まれる画像３３の特徴マップ３２を出力させる。第２訓練部１１４による処理は、例えば第２訓練データ取得部１１３により第２訓練データが取得されることに応じて自動的に実行される。第２訓練部１１４は、出力された特徴マップ３２と、第２訓練データに含まれる座標のラベルとを用いて、座標推定部２４を訓練する。第２訓練部１１４は、特徴抽出部２１及び座標推定部２４に対応する演算処理を実行する。特徴抽出部２１、クラス推定部２２及びオブジェクト数推定部２３の訓練により、特徴マップ３２において、画像３３に映っているオブジェクトの数に相当する領域が、それらのオブジェクトに対応する位置で強調されている。そのため、強調された領域に基づいて、オブジェクトの座標を座標推定部２４に学習させればよいので、特徴抽出部２１、クラス推定部２２及びオブジェクト数推定部２３の訓練に用いられた全ての画像３１についての座標のラベルは必要ではなく、一部の画像３３について、座標のラベルを用意すればよい。一例として、５０クラスのオブジェクトを識別可能なモデルに対して、学習用に用意された画像３１の数が約１０万であり、ラベルとしての座標データを用意する画像３３の数が約３千とした場合において、座標推定部２４を十分に訓練することができた。
【００５０】
図７は、閾値推定部２４１及び座標出力部２４２の訓練概要の一例を示す図である。具体的に、特徴抽出部２１からは、第１訓練部１１２による訓練の場合と同様に、クラス１〜Ｎに対応する特徴マップ３２−１〜３２−Ｎが出力される。第２訓練部１１４は、特徴マップ３２−１〜３２−Ｎのうち、座標のラベルに含まれるクラスに対応する特徴マップを閾値推定部２４１に入力して、それらのクラスに対応する閾値を閾値推定部２４１から出力させる。図６に示す画像３Ａの場合、図７に示すように、特徴マップ３２−１−２及び３２−２−２が閾値推定部２４１に入力される。閾値推定部２４１は、クラス１及び２それぞれについて閾値を出力する。
【００５１】
第２訓練部１１４は、ラベルに含まれるクラスに対応する特徴マップと、閾値推定部２４１から出力された閾値とを座標出力部２４２に入力する。そして、第２訓練部１１４は、特徴マップにおいて、閾値以上の値を有する要素で構成される領域に対応する座標を座標出力部２４２から出力させる。特徴抽出部２１による学習が完了していれば、通常、画像３３に映っているオブジェクトのクラスごとに、画像３３に映っているオブジェクトの数に相当する座標が出力される。第２訓練部１１４は、座標出力部２４２から出力された座標と、座標のラベルとを比較して、座標誤差を計算する。第２訓練部１１４は、座標誤差と、特徴マップ３２とを用いて、正しい閾値を計算する。第２訓練部１１４は、閾値推定部２４１から出力された閾値と、正しい閾値とを比較して、閾値誤差を計算する。そして、第２訓練部１１４は、閾値誤差を用いて、閾値推定部２４１が保持する重み及びバイアスを更新する。クラスごとに適切な閾値が異なる場合があるので、第２訓練部１１４は、クラスごとに閾値を閾値推定部２４１に学習させる。例えば、画像３１Ａの場合、図７に示すように、座標出力部２４２は、クラス１について、２個の領域に対応するバウンディングボックス６１及び６２を設定し、クラス２について、１個の領域に対応するバウンディングボックス６３を設定する。座標のラベルから設定されるクラス１の正しいバウンディングボックス７１及び７２は、バウンディングボックス６１及び６２よりも広い。従って、第２訓練部１１４は、より小さい閾値を出力するよう、閾値推定部２４１を訓練する。また、クラス２の正しいバウンディングボックス７３は、バウンディングボックス６３よりも狭い。従って、第２訓練部１１４は、より大きい閾値を出力するよう、閾値推定部２４１を訓練する。
【００５２】
モデル記憶制御部１１５は、第１訓練部１１２による特徴抽出部２１、クラス推定部２２及びオブジェクト数推定部２３の訓練、及び第２訓練部１１４による座標推定部２４の訓練を経てモデル２が生成されると、生成されたモデル２を記憶部１４に記憶させる。
【００５３】
［２−２．クラスの分類］
モデル読み出し部１１６は、記憶部１４に記憶されたモデル２を読み出して、ＲＡＭ１４ｃ又はＧＰＵメモリ１９にロードする。
【００５４】
特徴マップ出力制御部１１７、クラス出力制御部１１８及び座標出力制御部１１９は、それぞれ特徴抽出部２１、クラス推定部２２及び座標推定部２４に対応する演算を実行する。特徴マップ出力制御部１１７は、分類の対象となる１以上のオブジェクトが映る所与の画像を、読み出されたモデル２に含まれる特徴抽出部２１に入力して、特徴抽出部２１から所与の画像の特徴マップを出力させる。所与の画像は、例えば記憶部１４に記憶されてもよいし、ネットワーク又は記録媒体を介して取得されてもよい。
【００５５】
クラス出力制御部１１８は、特徴抽出部２１から出力された特徴マップを、読み出されたモデル２に含まれるクラス推定部２２に入力して、クラス推定部２２から所与の画像に映る１以上のオブジェクトそれぞれのクラスを示すクラス情報を出力させる。
【００５６】
座標出力制御部１１９は、特徴抽出部２１から出力された特徴マップを、読み出されたモデル２に含まれる座標推定部２４に入力して、座標推定部２４から所与の画像に映る１以上のオブジェクトそれぞれの座標を出力させる。ここで、座標出力制御部１１９は、特徴抽出部２１から出力された特徴マップのうち、所与の画像に映る１以上のオブジェクトのクラスとしてクラス推定部２２から出力されたクラス情報に示される１以上のクラスそれぞれに対応する特徴マップのみを、座標推定部２４に入力すればよい。座標推定部２４は、クラス情報に示される１以上のクラスそれぞれに対応する閾値を出力する。座標出力制御部１１９は、クラス情報に示される１以上のクラスそれぞれについて、特徴マップ及び閾値を用いて、そのクラスのオブジェクトが映っている領域を特定してバウンディングボックスを設定する。座標出力制御部１１９は、領域ごとに、バウンディングボックスの座標データ及び対応するクラスを出力する。座標出力制御部１１９は、クラスごとに、バウンディングボックスの数に相当するオブジェクト数を更に出力してもよい。特徴マップをオブジェクト数推定部２３に入力してオブジェクト数を出力させる必要はない。
【００５７】
［３．画像処理装置の動作］
次に、画像処理装置１の動作について、図８及び図９を用いて説明する。図８は、画像処理装置１のシステム制御部１１及びＧＰＵ１８による学習処理の一例を示すフローチャートである。モデル生成用のプログラムに含まれるプログラムコードに従って、システム制御部１１及びＧＰＵ１８は学習処理を実行する。
【００５８】
図９に示すように、訓練データ取得部１１１は、第１訓練データとして、複数の画像３１それぞれについて、画像３１と、画像３１に対応するクラス及びオブジェクト数のラベルとを、記憶部１４から取得する（ステップＳ１）。
【００５９】
次いで、第１訓練部１１２は、第１訓練データを用いて、特徴抽出部２１〜オブジェクト数推定部２３を訓練する（ステップＳ２）。具体的に、第１訓練部１１２は、特徴抽出部２１から、各画像３１について特徴マップ３２−１〜３２−Ｎを出力させる。第１訓練部１１２は、特徴マップ３２−１〜３２−Ｎをクラス推定部２２に入力して、クラス推定部２２からクラス情報を出力させる。第１訓練部１１２は、クラス情報と、クラスのラベルとを比較して、分類誤差を計算する。第１訓練部１１２は、分類誤差に基づいて、クラス推定部２２のパラメータを更新する。また、第１訓練部１１２は、特徴マップ３２−１〜３２−Ｎをオブジェクト数推定部２３に入力して、オブジェクト数推定部２３からクラスごとのオブジェクト数を出力させる。第１訓練部１１２は、出力されたオブジェクト数と、オブジェクト数のラベルとを比較して、カウンティング誤差を計算する。第１訓練部１１２は、カウンティング誤差に基づいて、オブジェクト数推定部２３のパラメータを更新する。更に、第１訓練部１１２は、クラス推定部２２及びオブジェクト数推定部２３から特徴抽出部２１へ誤差を逆伝播して、オブジェクト数推定部２３のパラメータを更新する。第１訓練部１１２は、例えばエポック数が所定数に達したとき等に訓練を終了させる。
【００６０】
次いで、第２訓練データ取得部１１３は、第２訓練データとして、画像３１のうち幾つかの画像３２について、画像３３と、画像３３それぞれに対応する座標のラベルとを、記憶部１４から取得する（ステップＳ３）。
【００６１】
次いで、第２訓練部１１４は、第２訓練データを用いて、座標推定部２４を訓練する（ステップＳ４）。具体的に、第２訓練部１１４は、特徴抽出部２１から、各画像３３に対応する特徴マップ３２−１〜３２−Ｎを出力させる。第２訓練部１１４は、特徴マップ３２−１〜３２−Ｎのうち、座標のラベルに含まれるクラスに対応する特徴マップを閾値推定部２４１に入力して、閾値推定部２４１からそのクラスの閾値を出力させる。第２訓練部１１４は、閾値を座標出力部２４２に入力する。座標出力部２４２は、座標のラベルに含まれるクラスそれぞれについて、特徴マップから、閾値以上の値を格納する配列要素で構成される１以上の領域を特定する。座標出力部２４２は、特定された領域ごとに、領域に対応するバウンディングボックスの座標データ及びクラスを出力する。第２訓練部１１４は、出力された座標データと座標のラベルとを比較して、座標誤差を計算する。第２訓練部１１４は、座標誤差及び特徴マップに基づいて、閾値誤差を計算する。第２訓練部１１４は、閾値誤差に基づいて、閾値推定部２４１のパラメータを更新する。第２訓練部１１４は、例えばエポック数が所定数に達したとき等に訓練を終了させる。これによって、モデル２が生成される。モデル記憶制御部１１５は、生成されたモデル２を記憶部１４に記憶させて（ステップＳ５）、学習処理を終了させる。
【００６２】
図９は、画像処理装置１のシステム制御部１１及びＧＰＵ１８による分類処理の一例を示すフローチャートである。分類用のプログラムに含まれるプログラムコードに従って、システム制御部１１及びＧＰＵ１８は分類判定処理を実行する。
【００６３】
図９に示すように、モデル読み出し部１１６は、モデル２を記憶部１４から読み出す（ステップＳ１１）。次いで、特徴マップ出力制御部１１７は、分類の対象となる画像を取得する。特徴マップ出力制御部１１７は、取得された画像を特徴抽出部２１に入力して、特徴抽出部２１から特徴マップを出力させる（ステップＳ１２）。
【００６４】
次いで、クラス出力制御部１１８は、出力された特徴マップをクラス推定部２２に入力して、クラス推定部２２から、クラス情報を出力させる（ステップＳ１３）。
【００６５】
次いで、座標出力制御部１１９は、出力された特徴マップのうち、クラス情報により示される、画像に映っているオブジェクトのクラスそれぞれに対応する特徴マップを、座標推定部２４に入力する。これによって、座標出力制御部１１９は、座標推定部２４から各オブジェクトの座標及びクラスを、推定結果として出力させる（ステップＳ１４）。ステップＳ１４を終えると、システム制御部１１は、分類処理を終了させる。
【００６６】
以上説明したように、本実施形態によれば、画像処理装置１が、複数の畳み込み層を含む特徴抽出部２１であって、１以上のオブジェクトが映る画像の特徴マップを出力する特徴抽出部２１と、特徴マップに基づいて、１以上のオブジェクトのクラスを示すクラス情報を出力するクラス推定部２２と、特徴マップに基づいて、１以上のオブジェクトの数を出力するオブジェクト数推定部２３と、特徴マップに基づいて、画像における１以上のオブジェクトそれぞれの座標を出力する座標推定部２４と、を含むモデル２を生成する。ここで、画像処理装置１が、１以上のオブジェクトがそれぞれ映る複数の画像それぞれについて、画像３２と、１以上のオブジェクトそれぞれのクラスと、オブジェクトの数と、を含む第１訓練データを、記憶部１４から取得する。また、画像処理装置１が、第１訓練データを用いて、特徴抽出部２１と、クラス推定部２２と、オブジェクト数推定部２３と、を訓練する。また、画像処理装置１が、複数の画像の数よりも少ない数の画像それぞれについて、画像と、画像における１以上のオブジェクトそれぞれの座標と、含む第２訓練データを、記憶部１４から取得する。また、画像処理装置１が、訓練された特徴抽出部２１により、第２訓練データに含まれる画像の特徴マップを出力させ、その特徴マップと、第２訓練データに含まれる座標と、を用いて、座標推定部２４を訓練する。そして、画像処理装置１が、生成されたモデル２を記憶部１４に記憶させる。従って、比較的に少量の座標データのみを学習に用いたとしても、画像内における複数のオブジェクトの座標の推定精度を向上させることができる。
【００６７】
また、座標推定部２４は、特徴マップにおいて、オブジェクトが存在する領域と存在しない領域との境界部分の値であると推定される閾値を出力する全結合層と、特徴マップを構成する複数の要素のうち、出力された閾値以上の値を有する要素で構成される領域に対応する座標を、オブジェクトの座標として出力する座標出力部と、を含んでもよい。画像処理装置１は、座標推定部２４に含まれる全結合層に、閾値を学習させてもよい。この場合、座標推定部２４に含まれる全結合層は、分類対象たるオブジェクトが存在する蓋然性の分布を示す特徴マップから、オブジェクトが存在する領域の外周を特定するための閾値を学習する。従って、オブジェクトの座標を適切に推定することができる。
【００６８】
また、画像処理装置１が、オブジェクト数推定部２３から特徴抽出部２１への誤差逆伝播により、特徴マップにおいて、第１訓練データに含まれるオブジェクト数に相当する数の、オブジェクトが存在する領域が強調されるように、特徴抽出部２１を訓練してもよい。この場合、オブジェクト数推定部２３から出力されたオブジェクトの数と、第１訓練データに含まれるオブジェクト数との誤差に基づいて、オブジェクト数推定部２３から特徴抽出部２１に誤差が逆伝播されて、特徴抽出部２１に含まれる畳み込み層のパラメータが更新される。そのため、この訓練の結果、特徴抽出部２１は、第１訓練データに含まれるオブジェクトの数に相当する数の領域が強調された特徴マップを出力するようになる。従って、画像に映る１以上のオブジェクトそれぞれの座標を正確に推定することができる。
【００６９】
また、オブジェクト数推定部２３は、クラスごとにオブジェクト数を出力してもよい。また、特徴抽出部２１は、クラスごとに特徴マップを出力してもよい。また、画像処理装置１は、第１訓練データを用いて訓練された特徴抽出部２１から出力された特徴マップのうち、第１訓練データに含まれる１以上のクラスそれぞれに対応する特徴マップを用いて、座標推定部２４を訓練してもよい。この場合、第１訓練データを用いた訓練の結果、特徴抽出部２１から、第１訓練データに含まれる１以上のクラスそれぞれについて、適切な数の領域が強調された特徴マップが出力される。この特徴マップを用いることで、クラスごとに適切な数のオブジェクトの座標を出力するように、座標推定部２４を訓練することができる。
【００７０】
また、オブジェクト数推定部２３は、１以上のオブジェクトの数を出力する全結合層を含んでもよい。
【００７１】
また、画像処理装置１が、生成されたモデル２を記憶部１４から読み出してもよい。また、画像処理装置１が、読み出されたモデル２に含まれる特徴抽出部２１により、１以上のオブジェクトが映る所与の画像の特徴マップを出力させてもよい。また、画像処理装置１が、出力された所与の画像の特徴マップを、読み出されたモデル２に含まれるクラス推定部２２に入力して、所与の画像に映る１以上のオブジェクトそれぞれのクラスを示すクラス情報を出力させてもよい。また、画像処理装置１が、出力された所与の画像の特徴マップを、読み出されたモデル２に含まれる座標推定部２４に入力して、所与の画像に映る１以上のオブジェクトそれぞれの座標を出力させてもよい。この場合、比較的に少量の座標データのみを学習に用いたとしても、画像内における複数のオブジェクトの座標の推定精度を向上させることができる。
【符号の説明】
【００７２】
１  画像処理装置
１１  システム制御部
１２  システムバス
１３  入出力インターフェース
１４  記憶部
１５  通信部
１６  入力部
１７  表示部
１８  ＧＰＵ
１９  ＧＰＵメモリ
１１１  第１訓練データ取得部
１１２  第１訓練部
１１３  第２訓練データ取得部
１１４  第２訓練部
１１５  モデル記憶制御部
１１６  モデル読み出し部
１１７  特徴マップ出力制御部
１１８  クラス出力制御部
１１９  座標出力制御部
２  モデル
２１  特徴抽出部
２２  クラス推定部
２３  オブジェクト数推定部
２４  座標推定部
２４１  閾値推定部
２４２  座標出力部
【要約】
比較的に少量の座標データのみを学習に用いたとしても、画像内における複数のオブジェクトの座標の推定精度を向上させるためのモデルを生成することを目的とする。
学習装置は、複数の画像それぞれについて、画像と、画像に映る１以上のオブジェクトそれぞれのクラスと、オブジェクトの数と、を含む第１訓練データを、ストレージから取得する。学習装置は、第１訓練データを用いて、特徴抽出部と、クラス推定部と、オブジェクト数推定部と、を訓練する。学習装置は、複数の画像の数よりも少ない数の画像それぞれについて、画像と、画像における１以上のオブジェクトそれぞれの座標と、含む第２訓練データを、ストレージから取得する。学習装置は、訓練された特徴抽出部により、第２訓練データに含まれる画像の特徴マップを出力させ、その特徴マップと、第２訓練データに含まれる座標と、を用いて、座標推定部を訓練する。【図１】
0006612486.tif 000002
【図２】
0006612486.tif 000003
【図３】
0006612486.tif 000004
【図４】
0006612486.tif 000005
【図５】
0006612486.tif 000006
【図６】
0006612486.tif 000007
【図７】
0006612486.tif 000008
【図８】
0006612486.tif 000009
【図９】
0006612486.tif 000010