JP7447708B2 - モデル生成装置、回帰装置、モデル生成方法、及びモデル生成プログラム - Google Patents

モデル生成装置、回帰装置、モデル生成方法、及びモデル生成プログラム Download PDF

Info

Publication number
JP7447708B2
JP7447708B2 JP2020114595A JP2020114595A JP7447708B2 JP 7447708 B2 JP7447708 B2 JP 7447708B2 JP 2020114595 A JP2020114595 A JP 2020114595A JP 2020114595 A JP2020114595 A JP 2020114595A JP 7447708 B2 JP7447708 B2 JP 7447708B2
Authority
JP
Japan
Prior art keywords
neural network
network module
images
regression
training
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2020114595A
Other languages
English (en)
Other versions
JP2022012626A (ja
Inventor
竜典 谷合
竜 米谷
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Omron Corp
Original Assignee
Omron Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Omron Corp filed Critical Omron Corp
Priority to JP2020114595A priority Critical patent/JP7447708B2/ja
Priority to EP21833036.3A priority patent/EP4177827A4/en
Priority to US18/002,684 priority patent/US20230245437A1/en
Priority to CN202180044574.7A priority patent/CN115803774A/zh
Priority to PCT/JP2021/024701 priority patent/WO2022004773A1/ja
Publication of JP2022012626A publication Critical patent/JP2022012626A/ja
Application granted granted Critical
Publication of JP7447708B2 publication Critical patent/JP7447708B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • G06T7/0008Industrial image inspection checking presence/absence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/766Arrangements for image or video recognition or understanding using pattern recognition or machine learning using regression, e.g. by projecting features on hyperplanes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/7715Feature extraction, e.g. by transforming the feature space, e.g. multi-dimensional scaling [MDS]; Mappings, e.g. subspace methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • G06T2207/10021Stereoscopic video; Stereoscopic image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10024Color image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10048Infrared image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20076Probabilistic image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • G06T2207/30261Obstacle

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Image Analysis (AREA)

Description

本発明は、モデル生成装置、回帰装置、モデル生成方法、及びモデル生成プログラムに関する。
近年、画像から実数値を回帰する様々な場面で、訓練済みのニューラルネットワークが用いられている。例えば、非特許文献1には、訓練済みのニューラルネットワークを用いて、複数の画像間における視差を計算する方法が提案されている。具体的には、訓練済みのニューラルネットワークにより、回帰する視差に対する複数の候補値(離散値)それぞれの尤度を算出し、算出された尤度に基づく期待値を計算する。この方法によれば、実数値により視差を回帰することができる。
Alex Kendall, Hayk Martirosyan, Saumitro Dasgupta, Peter Henry, Ryan Kennedy, Abraham Bachrach, Adam Bry, "End-to-End Learning of Geometry and Context for Deep Stereo Regression", ICCV 2017, 66-75.
本件発明者らは、非特許文献1等で提案される訓練済みのニューラルネットワークを用いた従来の回帰方法には、次のような問題点があることを見出した。すなわち、訓練済みのニューラルネットワークにより実数値を回帰する過程で、ある程度の確からしさを有する複数の候補が導出される場合がある。この場合に、望ましくない候補の影響を受けて、回帰される実数値の精度が低くなってしまう可能性がある。例えば、視差を算出する上記の事例では、算出される尤度に複数のピークが現れる(すなわち、複数の候補値の尤度が比較的に高くなる)場合がある。この場合、算出される期待値が各ピークの値に引っ張られて真値からずれてしまい、これにより、回帰される視差の精度が低くなってしまう可能性がある。
本発明は、一側面では、このような事情を鑑みてなされたものであり、その目的は、ニューラルネットワークを使用して1つ以上の画像から実数値を回帰する精度の向上を図る技術を提供することである。
本発明は、上述した課題を解決するために、以下の構成を採用する。
すなわち、本発明の一側面に係るモデル生成装置は、1つ以上の訓練画像、及び前記1つ以上の訓練画像から回帰する実数値の正解を示す正解情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得するデータ取得部と、前記複数の学習データセットを使用して、ニューラルネットワークモジュールの機械学習を実施する学習処理部であって、前記ニューラルネットワークモジュールは、所定の条件を満たす要素を対象の集合から抽出する演算を含み、前記機械学習は、前記各学習データセットについて、前記ニューラルネットワークモジュールを使用して前記1つ以上の訓練画像から回帰される値が前記正解情報により示される正解に適合するように前記ニューラルネットワークモジュールを訓練することにより構成され、前記機械学習の間、前記ニューラルネットワークモジュールの順伝播のフェーズでは、前記抽出する演算をそのまま計算するのに対して、逆伝播のフェーズでは、前記抽出する演算を微分可能な代替演算に置き換え、置き換えられた前記代替演算の微分計算により、前記抽出する演算の微分計算に対応する近似勾配を算出する、学習処理部と、を備える。
上記問題点は、最も確からしい候補以外の他の候補(例えば、2番目以降に尤度の高い候補)の影響に起因すると考えられる。そこで、上記問題点を解決する単純な方法として、ニューラルネットワークの演算過程において、所定の条件を満たす要素を対象の集合から抽出する演算を採用することが考えられる。例えば、視差を算出する上記の事例では、尤度について最大値を与える要素を抽出し、抽出された要素の近傍のみで期待値を計算することが考えられる。この方法によれば、最も確からしい候補以外の他の候補の影響を抑制することができるため、回帰精度の向上を図ることができる。
しかしながら、ニューラルネットワークによる回帰(順伝播の演算)過程に上記抽出する演算を採用した場合、抽出する演算を含んだ構成でニューラルネットワークの機械学習を実施することになる。ニューラルネットワークの機械学習を実施する(すなわち、誤差逆伝搬法により誤差の勾配を逆伝搬する)ためには、ニューラルネットワークにより実数値を回帰するまでの全ての演算が微分可能であることが求められるが、当該抽出する演算は、微分不可能である。そのため、上記単純な方法では、機械学習を実施することができず、訓練済みのニューラルネットワークを生成することができない。
そこで、当該構成では、所定の条件を満たす要素を対象の集合から抽出する演算を含むニューラルネットワークモジュールを採用すると共に、機械学習の間、順伝播のフェーズでは、当該抽出する演算をそのまま計算するのに対して、逆伝播のフェーズでは、当該抽出する演算を微分可能な代替演算に置き換え、置き換えられた代替演算の微分計算により、抽出する演算の微分計算に対応する近似勾配を算出する。これにより、微分不可能な当該抽出する演算を含むニューラルネットワークモジュールであっても、機械学習を適切に実施することができる。したがって、当該構成によれば、1つ以上の画像から実数値を回帰する精度の向上が図られた訓練済みのニューラルネットワークモジュールを生成することができる。
上記一側面に係るモデル生成装置において、前記ニューラルネットワークモジュールは、回帰する実数値に対する複数の候補値それぞれの尤度を算出する演算を更に含んでよく、前記抽出する演算は、算出された各尤度のうちの最大値の要素を抽出することにより構成されてよい。当該構成によれば、各候補値の尤度に基づく期待値により実数値を回帰する形態において、回帰精度の向上を図ることができる。
上記一側面に係るモデル生成装置において、前記1つ以上の訓練画像は、異なる位置から撮像された複数の画像により構成されてよく、回帰する実数値は、前記複数の画像の間における視差であってよい。当該構成によれば、複数の画像間の視差を回帰する精度の向上が図られた訓練済みのニューラルネットワークモジュールを生成することができる。
上記一側面に係るモデル生成装置において、前記1つ以上の訓練画像は、連続的に撮像された複数の画像により構成されてよく、回帰する実数値は、前記複数の画像に写る対象物の動きに関する推定値であってよい。当該構成によれば、連続する複数の画像に写る対象物の動きを回帰する精度の向上が図られた訓練済みのニューラルネットワークモジュールを生成することができる。
上記一側面に係るモデル生成装置において、前記1つ以上の訓練画像は、対象物の写る画像により構成されてよく、回帰する実数値は、前記対象物の検出位置に関する推定値であってよい。当該構成によれば、対象物の検出位置を画像から回帰する精度の向上が図られた訓練済みのニューラルネットワークモジュールを生成することができる。
また、本発明の形態は、上記モデル生成装置の形態に限られなくてもよい。本発明の一側面は、上記モデル生成装置により生成された訓練済みのニューラルネットワークモジュールを利用する回帰装置であってもよい。例えば、本発明の一側面は、1つ以上の対象画像を取得する画像取得部と、上記モデル生成装置により生成された訓練済みのニューラルネットワークモジュールを使用して、取得された前記1つ以上の対象画像から実数値を回帰する回帰部と、回帰の結果に関する情報を出力する出力部と、を備えるように構成された回帰装置であってもよい。この回帰装置は、適用場面における回帰タスクの種類に応じて、例えば、視差計測装置、動き計測装置、検出装置等と読み替えられてよい。
また、上記各形態に係るモデル生成装置及び回帰装置それぞれの別の態様として、本発明の一側面は、以上の各構成の全部又はその一部を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータその他装置、機械等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。また、本発明の一側面は、上記いずれかの形態に係るモデル生成装置及び回帰装置により構成される回帰システムであってもよい。
例えば、本発明の一側面に係るモデル生成方法は、コンピュータが、1つ以上の訓練画像、及び前記1つ以上の訓練画像から回帰する実数値の正解を示す正解情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得するステップと、前記複数の学習データセットを使用して、ニューラルネットワークモジュールの機械学習を実施するステップであって、前記ニューラルネットワークモジュールは、所定の条件を満たす要素を対象の集合から抽出する演算を含み、前記機械学習は、前記各学習データセットについて、前記ニューラルネットワークモジュールを使用して前記1つ以上の訓練画像から回帰される値が前記正解情報により示される正解に適合するように前記ニューラルネットワークモジュールを訓練することにより構成され、前記機械学習の間、前記ニューラルネットワークモジュールの順伝播のフェーズでは、前記抽出する演算をそのまま計算するのに対して、逆伝播のフェーズでは、前記抽出する演算を微分可能な代替演算に置き換え、置き換えられた前記代替演算の微分計算により、前記抽出する演算の微分計算に対応する近似勾配を算出する、ステップと、を実行する、情報処理方法である。
また、例えば、本発明の一側面に係るモデル生成プログラムは、コンピュータに、1つ以上の訓練画像、及び前記1つ以上の訓練画像から回帰する実数値の正解を示す正解情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得するステップと、前記複数の学習データセットを使用して、ニューラルネットワークモジュールの機械学習を実施するステップであって、前記ニューラルネットワークモジュールは、所定の条件を満たす要素を対象の集合から抽出する演算を含み、前記機械学習は、前記各学習データセットについて、前記ニューラルネットワークモジュールを使用して前記1つ以上の訓練画像から回帰される値が前記正解情報により示される正解に適合するように前記ニューラルネットワークモジュールを訓練することにより構成され、前記機械学習の間、前記ニューラルネットワークモジュールの順伝播のフェーズでは、前記抽出する演算をそのまま計算するのに対して、逆伝播のフェーズでは、前記抽出する演算を微分可能な代替演算に置き換え、置き換えられた前記代替演算の微分計算により、前記抽出する演算の微分計算に対応する近似勾配を算出する、ステップと、を実行させるための、プログラムである。
本発明によれば、ニューラルネットワークを使用して1つ以上の画像から実数値を回帰する精度の向上を図ることができる。
図1は、本発明が適用される場面の一例を模式的に例示する。 図2は、実施の形態に係るモデル生成装置のハードウェア構成の一例を模式的に例示する。 図3は、実施の形態に係る回帰装置のハードウェア構成の一例を模式的に例示する。 図4は、実施の形態に係るモデル生成装置のソフトウェア構成の一例を模式的に例示する。 図5は、実施の形態に係る回帰装置のソフトウェア構成の一例を模式的に例示する。 図6は、実施の形態に係るモデル生成装置の処理手順の一例を示すフローチャートである。 図7は、実施の形態に係る回帰装置の処理手順の一例を示すフローチャートである。 図8は、本発明が適用される他の場面の一例を模式的に例示する。 図9は、本発明が適用される他の場面の一例を模式的に例示する。 図10は、本発明が適用される他の場面の一例を模式的に例示する。 図11Aは、2つの入力画像のうちの一方を示す。 図11Bは、2つの入力画像のうちの他方を示す。 図11Cは、2つの入力画像間における視差の正解を示す。 図12Aは、2つの入力画像間における視差を比較例により算出した結果を示す。 図12Bは、比較例の計算結果の誤差を示す。 図13Aは、2つの入力画像間における視差を実施例により算出した結果を示す。 図13Bは、実施例の計算結果の誤差を示す。
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
§1 適用例
図1は、本発明を適用した場面の一例を模式的に例示する。図1に示されるとおり、本実施形態に係る回帰システム100は、モデル生成装置1及び回帰装置2を備えている。
本実施形態に係るモデル生成装置1は、機械学習により訓練済みのニューラルネットワーク(図では、「NN」と表記する)モジュール5を生成するように構成されたコンピュータである。本実施形態に係るモデル生成装置1は、1つ以上の訓練画像31、及び1つ以上の訓練画像31から回帰する実数値の正解を示す正解情報32の組み合わせによりそれぞれ構成される複数の学習データセット3を取得する。各学習データセット3は、機械学習に使用される。
各学習データセット3に含まれる訓練画像31の件数は、機械学習の対象となる回帰タスクの内容に応じて適宜決定されてよい。機械学習の対象となる回帰タスクは、1つ以上の画像から1つ以上の実数値を回帰するあらゆる推論タスク(回帰タスク)を含んでよい。回帰タスクは、例えば、複数の画像間の視差を推定すること、連続的に撮像された複数の画像に写る対象物の動きを推定すること、画像から対象物を検出すること等であってよい。一例として、回帰タスクが、2つの画像の間の視差を推定することである場合、各学習データセット3は、2つの訓練画像31を含むように構成されてよい。正解情報32は、1つ以上の訓練画像31に対する回帰タスクの正解を示すように適宜構成される。回帰する実数値の数は、1つに限られなくてよく、複数であってもよい。
本実施形態に係るモデル生成装置1は、複数の学習データセット3を使用して、ニューラルネットワークモジュール5の機械学習を実施する。ニューラルネットワークモジュール5は、所定の条件を満たす要素を対象の集合から抽出する演算(以下、「抽出演算」とも記載する)を含む。抽出演算は、回帰演算の過程で算出される複数の要素を一部の要素(例えば、望ましい要素)に絞る微分不可能な演算であれば、抽出演算の内容は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。抽出演算は、例えば、最大値の要素を抽出する演算(argument of the maximum)、最小値の要素を抽出する演算(argument of the minimum)、中央値(50パーセンタイル値)又はその他の特定のパーセンタイル値の要素を抽出する演算等であってよい。機械学習は、各学習データセット3について、ニューラルネットワークモジュール5を使用して1つ以上の訓練画像31から回帰される値が正解情報32により示される正解に適合するようにニューラルネットワークモジュール5を訓練することにより構成される。
具体的には、ニューラルネットワークモジュール5は、例えば、各ニューロン間の結合の重み、各ニューロンの閾値等の複数の演算パラメータを備える。モデル生成装置1は、ニューラルネットワークモジュール5を使用して、各学習データセット3の1つ以上の訓練画像31に対する実数値の回帰を試行する。すなわち、モデル生成装置1は、各学習データセット3について、1つ以上の訓練画像31をニューラルネットワークモジュール5に入力し、ニューラルネットワークモジュール5の順伝播の演算処理を実行する。モデル生成装置1は、この試行により得られた回帰の結果及び対応する正解情報32により示される正解の間の誤差を算出する。モデル生成装置1は、誤差逆伝播法により、算出された誤差の勾配を逆伝播することで、各演算パラメータの値を調整する。ニューラルネットワークモジュール5を訓練することは、この一連の処理(順伝播による回帰の試行処理及び逆伝播による演算パラメータの調整処理)により各演算パラメータの値を調整することにより構成される。
モデル生成装置1は、この機械学習の間、順伝播(回帰の試行)のフェーズでは、抽出演算をそのまま計算するのに対して、逆伝播(演算パラメータの調整)のフェーズでは、抽出演算を微分可能な代替演算に置き換え、置き換えられた代替演算の微分計算により、抽出演算の微分計算に対応する近似勾配を算出する。すなわち、モデル生成装置1は、機械学習の処理過程のうち、回帰を試行するフェーズでは、抽出演算の計算を含むニューラルネットワークモジュール5の順伝播の演算処理を実行する(抽出演算をそのまま採用する)ことで、各学習データセット3の1つ以上の訓練画像31に対する回帰結果を得る。他方、抽出演算は、微分不可能であり、そのままでは誤差の勾配を逆伝播することができない。そこで、試行フェーズにより導出された誤差の勾配を逆伝播するフェーズでは、モデル生成装置1は、代替演算の微分計算により算出される近似勾配を抽出演算の微分計算の結果として採用して、誤差の勾配を逆伝播し、各演算パラメータの値を調整する。代替演算は、抽出演算の近似勾配を計算可能な演算であれば、その内容は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。抽出演算が最大値又は最小値の要素を抽出する演算である場合、代替演算は、ソフトマックス関数又はこれに類似する関数で構成されてよく、近似勾配は、当該関数の勾配であってよい。また、抽出演算が中央値又はその他の特定のパーセンタイル値の要素を抽出する演算である場合、代替演算は、微分可能なソート演算(例えば、参考文献:Aditya Grover, Eric Wang, Aaron Zweig, Stefano Ermon, “Stochastic Optimization of Sorting Networks via Continuous Relaxations”, ICLR 2019, <URL:https://arxiv.org/abs/1903.08850>記載のソート演算)又はこれに類似する演算であってよく、近似勾配は、当該演算の勾配であってよい。この機械学習の結果、1つ以上の画像から1つ以上の実数値を回帰する能力を獲得した訓練済みのニューラルネットワークモジュール5を生成することができる。
一方、本実施形態に係る回帰装置2は、訓練済みのニューラルネットワークモジュール5を使用して、1つ以上の画像に対する回帰タスクを遂行するように構成されたコンピュータである。本実施形態では、回帰装置2は、1つ以上の対象画像221を取得する。図1の例では、回帰装置2は、カメラSに接続されている。回帰装置2は、このカメラSから1つ以上の対象画像221を取得することができる。
回帰装置2は、訓練済みのニューラルネットワークモジュール5を使用して、取得された1つ以上の対象画像221から実数値を回帰する。すなわち、上記試行のフェーズと同様に、回帰装置2は、訓練済みのニューラルネットワークモジュール5に取得された1つ以上の対象画像221を入力し、抽出演算の計算を含む、訓練済みのニューラルネットワークモジュール5の順伝播の演算処理を実行する。回帰装置2は、この順伝播の演算処理において、抽出演算をそのまま計算する。回帰装置2は、この演算処理の結果として回帰の結果を得ることができる。そして、回帰装置2は、回帰の結果に関する情報を出力する。なお、本実施形態に係る回帰装置2は、適用場面における回帰タスクの種類に応じて、例えば、視差計測装置、動き計測装置、検出装置等と読み替えられてよい。
以上のとおり、本実施形態に係るモデル生成装置1は、機械学習の処理において、順伝播のフェーズでは、抽出演算をそのまま計算するのに対して、逆伝播のフェーズでは、抽出演算を微分可能な代替演算に置き換え、置き換えられた代替演算の微分計算により、抽出演算の微分計算に対応する近似勾配を算出する。これにより、微分不可能な抽出演算を含んでいても、ニューラルネットワークモジュール5の機械学習を適切に実施することができる。そして、本実施形態に係る回帰装置2では、そのような機械学習により生成された訓練済みのニューラルネットワークモジュール5の回帰演算の過程に抽出演算が含まれていることで、最も確からしい候補以外の他の候補の影響を抑えることができ、その結果、回帰精度の向上を図ることができる。
なお、図1の例では、モデル生成装置1及び回帰装置2は、ネットワークを介して互いに接続されている。ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。ただし、モデル生成装置1及び回帰装置2の間でデータをやり取りする方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、モデル生成装置1及び回帰装置2の間では、記憶媒体を利用して、データがやり取りされてよい。
また、図1の例では、モデル生成装置1及び回帰装置2は、それぞれ別個のコンピュータにより構成されている。しかしながら、本実施形態に係る回帰システム100の構成は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。たとえば、モデル生成装置1及び回帰装置2は一体のコンピュータであってもよい。また、例えば、モデル生成装置1及び回帰装置2のうちの少なくとも一方は、複数台のコンピュータにより構成されてもよい。
§2 構成例
[ハードウェア構成]
<モデル生成装置>
図2は、本実施形態に係るモデル生成装置1のハードウェア構成の一例を模式的に例示する。図2に示されるとおり、本実施形態に係るモデル生成装置1は、制御部11、記憶部12、通信インタフェース13、外部インタフェース14、入力装置15、出力装置16、及びドライブ17が電気的に接続されたコンピュータである。なお、図2では、通信インタフェース及び外部インタフェースを「通信I/F」及び「外部I/F」と記載している。
制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部12は、モデル生成プログラム81、複数の学習データセット3、学習結果データ125等の各種情報を記憶する。
モデル生成プログラム81は、訓練済みのニューラルネットワークモジュール5を生成する後述の機械学習の情報処理(図6)をモデル生成装置1に実行させるためのプログラムである。モデル生成プログラム81は、当該情報処理の一連の命令を含む。複数の学習データセット3は、訓練済みのニューラルネットワークモジュール5の生成に使用される。学習結果データ125は、生成された訓練済みのニューラルネットワークモジュール5に関する情報を示す。本実施形態では、学習結果データ125は、モデル生成プログラム81を実行した結果として生成される。詳細は後述する。
通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。モデル生成装置1は、通信インタフェース13を利用して、他の情報処理装置との間で、ネットワークを介したデータ通信を実行することができる。外部インタフェース14は、例えば、USB(Universal Serial Bus)ポート、専用ポート等であり、外部装置と接続するためのインタフェースである。外部インタフェース14の種類及び数は任意に選択されてよい。モデル生成装置1は、通信インタフェース13及び外部インタフェース14の少なくとも一方を介して、訓練画像31を得るためのカメラに接続されてよい。
入力装置15は、例えば、マウス、キーボード等の入力を行うための装置である。また、出力装置16は、例えば、ディスプレイ、スピーカ等の出力を行うための装置である。ユーザ等のオペレータは、入力装置15及び出力装置16を利用することで、モデル生成装置1を操作することができる。
ドライブ17は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラム等の各種情報を読み込むためのドライブ装置である。記憶媒体91は、コンピュータその他装置、機械等が、記憶されたプログラム等の各種情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。上記モデル生成プログラム81及び複数の学習データセット3の少なくともいずれかは、記憶媒体91に記憶されていてもよい。モデル生成装置1は、この記憶媒体91から、上記モデル生成プログラム81及び複数の学習データセット3の少なくともいずれかを取得してもよい。なお、図2では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限られなくてもよく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。ドライブ17の種類は、記憶媒体91の種類に応じて任意に選択されてよい。
なお、モデル生成装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA(field-programmable gate array)、DSP(digital signal processor)等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。通信インタフェース13、外部インタフェース14、入力装置15、出力装置16及びドライブ17の少なくともいずれかは省略されてもよい。モデル生成装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、モデル生成装置1は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、PC(Personal Computer)等であってもよい。
<回帰装置>
図3は、本実施形態に係る回帰装置2のハードウェア構成の一例を模式的に例示する。図3に示されるとおり、本実施形態に係る回帰装置2は、制御部21、記憶部22、通信インタフェース23、外部インタフェース24、入力装置25、出力装置26、及びドライブ27が電気的に接続されたコンピュータである。
回帰装置2の制御部21~ドライブ27及び記憶媒体92はそれぞれ、上記モデル生成装置1の制御部11~ドライブ17及び記憶媒体91それぞれと同様に構成されてよい。制御部21は、ハードウェアプロセッサであるCPU、RAM、ROM等を含み、プログラム及びデータに基づいて各種情報処理を実行するように構成される。記憶部22は、例えば、ハードディスクドライブ、ソリッドステートドライブ等で構成される。本実施形態では、記憶部22は、回帰プログラム82、学習結果データ125等の各種情報を記憶する。
回帰プログラム82は、訓練済みのニューラルネットワークモジュール5を使用して回帰タスクを遂行する後述の情報処理(図7)を回帰装置2に実行させるためのプログラムである。回帰プログラム82は、当該情報処理の一連の命令を含む。回帰プログラム82及び学習結果データ125の少なくともいずれかは、記憶媒体92に記憶されていてもよい。また、回帰装置2は、回帰プログラム82及び学習結果データ125の少なくともいずれかを記憶媒体92から取得してもよい。
図3の例では、回帰装置2は、外部インタフェース24を介して、カメラS(撮像装置)に接続されている。これにより、回帰装置2は、1つ以上の対象画像221をカメラSから取得可能に構成される。ただし、カメラSとの接続方法は、このような例に限定されなくてもよい。例えば、カメラSが通信インタフェースを備える場合、回帰装置2は、通信インタフェース23を介して、カメラSに接続されてもよい。カメラSの種類は、実施の形態に応じて適宜選択されてよい。カメラSは、例えば、一般的なRGBカメラ、ステレオカメラ、深度カメラ、赤外線カメラ等であってよい。
なお、回帰装置2の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部21は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ、FPGA、DSP等で構成されてよい。記憶部22は、制御部21に含まれるRAM及びROMにより構成されてもよい。通信インタフェース23、外部インタフェース24、入力装置25、出力装置26、及びドライブ27の少なくともいずれかは省略されてもよい。回帰装置2は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、回帰装置2は、提供されるサービス専用に設計された情報処理装置の他、汎用のサーバ装置、汎用のPC、PLC(programmable logic controller)等であってもよい。
[ソフトウェア構成]
<モデル生成装置>
図4は、本実施形態に係るモデル生成装置1のソフトウェア構成の一例を模式的に例示する。モデル生成装置1の制御部11は、記憶部12に記憶されたモデル生成プログラム81をRAMに展開する。そして、制御部11は、RAMに展開されたモデル生成プログラム81に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これにより、図4に示されるとおり、本実施形態に係るモデル生成装置1は、データ取得部111、学習処理部112、及び保存処理部113をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、モデル生成装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。
データ取得部111は、複数の学習データセット3を取得するように構成される。各学習データセット3は、1つ以上の訓練画像31及び正解情報32の組み合わせにより構成される。正解情報32は、対応する1つ以上の訓練画像31から回帰する実数値の正解を示すように構成される。
学習処理部112は、取得された複数の学習データセット3を使用して、ニューラルネットワークモジュール5の機械学習を実施するように構成される。ニューラルネットワークモジュール5は、所定の条件を満たす要素を対象の集合から抽出する演算を含むように構成される。機械学習は、各学習データセット3について、ニューラルネットワークモジュール5を使用して1つ以上の訓練画像31から回帰される値が正解情報32により示される正解に適合するようにニューラルネットワークモジュール5を訓練することを含む。学習処理部112は、機械学習の間、順伝播のフェーズでは、抽出演算をそのまま計算するのに対して、逆伝播のフェーズでは、抽出演算を微分可能な代替演算に置き換え、置き換えられた代替演算の微分計算により、抽出演算の微分計算に対応する近似勾配を算出するように構成される。
保存処理部113は、機械学習により生成された訓練済みのニューラルネットワークモジュール5に関する情報を学習結果データ125として生成し、生成された学習結果データ125を所定の記憶領域に保存するように構成される。学習結果データ125は、訓練済みのニューラルネットワークモジュール5を再生するための情報を含むように適宜構成されてよい。
(ニューラルネットワークモジュール)
図4に示されるとおり、本実施形態に係るニューラルネットワークモジュール5の一例は、入力層51、1つ以上の中間(隠れ)層52、及び出力層53を備えている。中間層52の数は、実施の形態に応じて適宜決定されてよい。各層51~53は、1又は複数のニューロン(ノード)を備えている。各層51~53に含まれるニューロンの数は、実施の形態に応じて適宜決定されてよい。本実施形態では、各層51~53に含まれる各ニューロンは、隣接する層の全てのニューロンと結合される。これにより、本実施形態に係るニューラルネットワークモジュール5は、全結合型ニューラルネットワークにより構成されている。
各層51~53の各結合には、重み(結合荷重)が設定される。各ニューロンには閾値が設定されており、基本的には、各入力と各重みとの積の和が閾値を超えているか否かによって各ニューロンの出力が決定される。閾値は、活性化関数により表現されてよい。この場合、各入力と各重みとの積の和を活性化関数に入力し、活性化関数の演算を実行することで、各ニューロンの出力が決定される。活性化関数の種類は任意に選択されてよい。抽出演算は、活性化関数の演算として又は出力層53の出力値から最終的な回帰結果を導出する演算の少なくとも一部として採用されてよい。各層51~53に含まれる各ニューロン間の結合の重み及び各ニューロンの閾値は、演算パラメータの一例である。
上記機械学習では、学習処理部112は、各学習データセット3の1つ以上の訓練画像31を訓練データ(入力データ)として使用し、正解情報32を正解データ(教師信号、ラベル)として使用する。すなわち、学習処理部112は、各学習データセット3の1つ以上の訓練画像31を入力層51に入力し、ニューラルネットワークモジュール5の順伝播の演算処理を実行する。この順伝播の演算過程では、学習処理部112は、抽出演算をそのまま計算する。この順伝播の演算処理の結果として、学習処理部112は、1つ以上の訓練画像31に対する実数値の回帰結果を取得する。学習処理部112は、得られた回帰結果と入力した1つ以上の訓練画像31に関連付けられた正解情報32により示される正解との間の誤差を算出する。そして、学習処理部112は、誤差の勾配を算出し、誤差逆伝播法により、算出された誤差の勾配を逆伝播して、各演算パラメータの値を調整する。この逆伝播の演算過程では、学習処理部112は、代替演算の微分計算により算出される近似勾配を抽出演算の微分計算の結果として採用する。学習処理部112は、各学習データセット3について、算出される誤差の和が小さくなるように各演算パラメータの値を調整する上記一連の処理を繰り返す。この機械学習の結果として、1つ以上の画像から1つ以上の実数値を回帰する能力を獲得した訓練済みのニューラルネットワークモジュール5を生成することができる。
保存処理部113は、上記機械学習により生成された訓練済みのニューラルネットワークモジュール5を再生するための学習結果データ125を生成する。訓練済みのニューラルネットワークモジュール5を再生可能であれば、学習結果データ125の構成は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。一例として、学習結果データ125は、上記機械学習の調整により得られた各演算パラメータの値を示す情報を含んでよい。場合によって、学習結果データ125は、ニューラルネットワークモジュール5の構造を示す情報を更に含んでもよい。構造は、例えば、入力層から出力層までの層の数、各層の種類、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等により特定されてよい。保存処理部113は、生成された学習結果データ125を所定の記憶領域に保存する。
<回帰装置>
図5は、本実施形態に係る回帰装置2のソフトウェア構成の一例を模式的に例示する。回帰装置2の制御部21は、記憶部22に記憶された回帰プログラム82をRAMに展開する。そして、制御部21は、RAMに展開された回帰プログラム82に含まれる命令をCPUにより解釈及び実行して、各構成要素を制御する。これにより、図5に示されるとおり、本実施形態に係る回帰装置2は、画像取得部211、回帰部212、及び出力部213をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、回帰装置2の各ソフトウェアモジュールも、モデル生成装置1と同様に、制御部21(CPU)により実現される。
画像取得部211は、回帰タスクの対象となる1つ以上の対象画像221を取得するように構成される。回帰部212は、学習結果データ125を保持していることで、訓練済みのニューラルネットワークモジュール5を備えている。回帰部212は、訓練済みのニューラルネットワークモジュール5を使用して、取得された1つ以上の対象画像221から実数値を回帰するように構成される。すなわち、回帰部212は、訓練済みのニューラルネットワークモジュール5の入力層51に取得された1つ以上の対象画像221を入力し、抽出演算を含む訓練済みのニューラルネットワークモジュール5の順伝播の演算処理を実行する。この順伝播の演算処理の結果として、回帰部212は、1つ以上の対象画像221に対する実数値の回帰結果を取得する。出力部213は、得られた回帰結果に関する情報を出力するように構成される。
<その他>
モデル生成装置1及び回帰装置2の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、モデル生成装置1及び回帰装置2の各ソフトウェアモジュールがいずれも汎用のCPUによって実現される例について説明している。しかしながら、上記ソフトウェアモジュールの一部又は全部が、1又は複数の専用のプロセッサ(例えば、グラフィックスプロセッシングユニット)により実現されてもよい。上記各モジュールは、ハードウェアモジュールとして実現されてもよい。また、モデル生成装置1及び回帰装置2それぞれのソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
§3 動作例
[モデル生成装置]
図6は、本実施形態に係るモデル生成装置1による機械学習に関する処理手順の一例を示すフローチャートである。以下で説明するモデル生成装置1の処理手順は、モデル生成方法の一例である。ただし、以下で説明するモデル生成装置1の処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が行われてよい。
(ステップS101)
ステップS101では、制御部11は、データ取得部111として動作し、複数の学習データセット3を取得する。
各学習データセット3は適宜生成されてよい。例えば、カメラS又はこれと同種のカメラを用意する。用意したカメラにより、機械学習により習得する回帰タスクの対象を撮影する。これにより、習得する回帰タスクに応じた1つ以上の訓練画像31を生成する。そして、生成された1つ以上の訓練画像31に、その回帰タスクの正解を示す正解情報32を関連付ける。正解情報32は、オペレータの手作業により生成されてもよいし、或いは画像解析、他の訓練済み機械学習モデル等の推定器を利用して少なくとも部分的に自動的に生成されてもよい。正解情報32のデータ形式は、回帰タスクに応じて適宜選択されてよい。一例として、回帰タスクが、複数の画像間の視差を画素単位で算出することである場合、正解情報32は、各画素の視差の正解を画像データの形式で示すように構成されてよい(例えば、後述の図11C)。他の一例として、回帰タスクが、連続的に撮像された複数の画像に写る対象物の動きを算出することである場合、正解情報32は、動きの方向、速さ等の動きに関する推定値(例えば、ベクトル値)の正解を数値データの形式で示すように構成されてよい。他の一例として、回帰タスクが、画像に写る対象物を検出することである場合、正解情報32は、画像内の対象物の位置、大きさ(範囲)等の検出位置に関する推定値の正解を数値データの形式で示すように構成されてよい。これらの一連の処理により、各学習データセット3を生成することができる。
各学習データセット3は、コンピュータの動作により自動的に生成されてもよいし、或いは少なくとも部分的にオペレータの操作を含むことで手動的に生成されてもよい。また、各学習データセット3の生成は、モデル生成装置1により行われてもよいし、モデル生成装置1以外の他のコンピュータにより行われてもよい。各学習データセット3をモデル生成装置1が生成する場合、制御部11は、自動的に又は入力装置15を介したオペレータの操作により手動的に上記生成処理を実行することで、各学習データセット3を取得してよい。一方、各学習データセット3を他のコンピュータが生成する場合、制御部11は、例えば、ネットワーク、記憶媒体91等を介して、他のコンピュータにより生成された各学習データセット3を取得してよい。複数の学習データセット3の一部がモデル生成装置1により生成され、その他が1又は複数の他のコンピュータにより生成されてもよい。
取得する学習データセット3の件数は、特に限定されなくてよく、機械学習を実施可能なように実施の形態に応じて適宜決定されてよい。複数の学習データセット3を取得すると、制御部11は、次のステップS102に処理を進める。
(ステップS102)
ステップS102では、制御部11は、学習処理部112として動作し、取得された複数の学習データセット3を使用して、ニューラルネットワークモジュール5の機械学習を実施する。
機械学習の処理の一例として、まず、制御部11は、機械学習の処理対象となるニューラルネットワークモジュール5の初期設定を行う。ニューラルネットワークモジュール5の構造(例えば、層の数、各層の種類、各層に含まれるニューロンの数、隣接する層のニューロン同士の結合関係等)、各ニューロン間の結合の重みの初期値、及び各ニューロンの閾値の初期値は、テンプレートにより与えられてもよいし、オペレータの入力により与えられてもよい。また、再学習を行う場合には、制御部11は、過去の機械学習により得られた学習結果データに基づいて、ニューラルネットワークモジュール5の初期設定を行ってよい。
ニューラルネットワークモジュール5の構成に関して、画像から実数値を回帰する処理の形態は、実施の形態に応じて適宜決定されてよい。一例として、ニューラルネットワークモジュール5は、回帰する実数値に対する複数の候補値それぞれの尤度を算出する演算を更に含むように構成されてよい。各候補値は任意に与えられてよい。加えて、抽出演算は、算出された各尤度のうちの最大値の要素を抽出すること(argmax演算)により構成されてよい。この形態では、各候補値の尤度に基づく期待値により実数値を回帰することができる。なお、各候補値の尤度は、逆数により表現されてよい。各尤度が逆数により表現される場合、各尤度のうちの最大値の要素を抽出することは、最小値の要素を抽出すること(argmin演算)により構成されてよい。以下では、この尤度の逆数を「コスト」とも称する。また、各尤度を算出する演算は、出力層53の演算として構成されてよい。この場合、出力層53からの出力値は、各候補値の尤度(又はその逆数)で構成されてよい。
この形態の具体例として、出力層53は、各候補値iのコストxi(尤度の逆数)を出力するように構成されてよい。候補値iの集合は、任意に設定されてよいが、以下では、説明の便宜のため、[0、1、・・・、D-1]である(すなわち、候補値の数はD個である)と仮定する。一例として、W×Hサイズの画像の各画素の視差を推定する(回帰する実数値の数がW×H個である)場合、出力層53は、W×H×D個のコストxiを出力するように構成されてよい。その他の一例として、連続する画像に写るN個の対象物の二次元の動き(2次元ベクトル)を推定する場合、出力層53は、2×N×D個のコストxiを出力するように構成されてよい。その他の一例として、画像に写るM個の対象物の任意の点の2次元座標及び対象物の寸法(各方向の長さ)を推定する(すなわち、矩形の範囲で対象物を検出する)場合、出力層53は、4×M×D個のコストxiを出力するように構成されてよい。この場合、最終的な回帰結果は、回帰する実数値毎に以下の式1~式5の演算を実行することで算出されてよい。
σi(x)は、各コストのうちの最小値の要素を抽出する演算(argmin演算)であり、抽出演算の一例である。上記一連の演算処理では、まず、式1及び式2の演算により、コストが最小である(尤度が最も高い)候補値を得ることができる。次に、式3及び式4の演算により、得られた候補値を中心とする窓を生成することができる。wは、窓関数の大きさ(例えば、ガウス関数における分散の大きさ)を定義するパラメータであり、タスクに応じて任意に決定されてよい。Zは、正規化定数である。なお、式3及び式4では、ガウス関数により窓を生成しているが、窓関数の種類は、このような例に限定されなくてよく、実施の形態に応じて適宜選択されてよい。そして、式5の演算により、生成された窓を用いて期待値(dsemi-soft)を算出することができ、算出された期待値を最終的な回帰結果として得ることができる。本実施形態に係るニューラルネットワークモジュール5は、上記式1~式5の一連の演算処理により、出力層53の出力値から最終的な回帰結果を得るように構成されてよい。
次に、制御部11は、各学習データセット3について、ニューラルネットワークモジュール5を使用して1つ以上の訓練画像31から回帰される値が正解情報32により示される正解に適合するようにニューラルネットワークモジュール5を訓練する。この訓練の処理には、確率的勾配降下法、ミニバッチ勾配降下法等が用いられてよい。
訓練処理の一例として、まず、制御部11は、各学習データセット3の1つ以上の訓練画像31を入力層51に入力し、順伝播の演算処理を実行する。この順伝播の演算処理の結果として、制御部11は、1つ以上の訓練画像31に対する実数値の回帰結果を取得する。上記の一例では、制御部11は、各層51~53の順伝播の演算処理を実行することで、回帰対象の実数値の各候補値のコストxiを出力層53から取得する。そして、制御部11は、得られた各候補値のコストxiを用いて、上記式1~式5の演算処理を実行することで、回帰結果を得ることができる。この順伝播の演算過程では、制御部11は、抽出演算(上記の一例では、式2)をそのまま計算する。
次に、制御部11は、得られた回帰結果と対応する正解情報32により示される正解との間の誤差を算出する。誤差(損失)の算出には、損失関数が用いられてよい。誤差の計算に利用する損失関数の種類は、実施の形態に応じて適宜選択されてよい。続いて、制御部11は、算出された誤差の勾配を算出する。制御部11は、誤差逆伝播法により、算出された誤差の勾配を用いて、各演算パラメータの値の誤差を出力側から順に算出する。
この誤差を逆伝播する演算過程では、制御部11は、微分可能な代替演算に抽出演算を置き換え、置き換えられた代替演算の微分計算により、抽出演算の微分計算に対応する近似勾配を算出する。上記の一例では、式2の抽出演算σi(x)は、以下の式6の代替演算σi a(x)に置き換えられてよい。
この一例では、まず、制御部11は、式5のσi w(x)項の微分計算を行う。次に、制御部11は、式3のh(x)の項の微分計算を行う。そして、制御部11は、置き換えられた代替演算σi a(x)の微分計算を行う。制御部11は、この代替演算σi a(x)の微分計算により算出される近似勾配を抽出演算σi(x)の勾配(微分計算の結果)として採用する。この一例では、近似勾配を算出した後、制御部11は、算出された近似勾配を出力層53から入力層51に逆伝播することで、各層51~53の各演算パラメータの値の誤差を算出することができる。
そして、制御部11は、算出された各誤差に基づいて、各層51~53の各演算パラメータの値を更新する。各演算パラメータの値を更新する程度は、学習率により調節されてよい。学習率は、オペレータの指定により与えられてもよいし、プログラム内の設定値として与えられてもよい。
制御部11は、上記一連の更新処理により、各学習データセット3について、算出される誤差の和が小さくなるように、各層51~53の各演算パラメータの値を調整する。例えば、規定回数実行する、算出される誤差の和が閾値以下になる等の所定の条件を満たすまで、制御部11は、上記一連の更新処理による各演算パラメータの値の調整を繰り返してもよい。
この機械学習の処理結果として、制御部11は、使用した学習データセット3に応じた所望の回帰タスクを遂行する能力を獲得した訓練済みのニューラルネットワークモジュール5を生成することができる。機械学習の処理が完了すると、制御部11は、次のステップS103に処理を進める。
(ステップS103)
ステップS103では、制御部11は、保存処理部113として動作し、機械学習により生成された訓練済みのニューラルネットワークモジュール5に関する情報を学習結果データ125として生成する。そして、制御部11は、生成された学習結果データ125を所定の記憶領域に保存する。
所定の記憶領域は、例えば、制御部11内のRAM、記憶部12、外部記憶装置、記憶メディア又はこれらの組み合わせであってよい。記憶メディアは、例えば、CD、DVD等であってよく、制御部11は、ドライブ17を介して記憶メディアに学習結果データ125を格納してもよい。外部記憶装置は、例えば、NAS(Network Attached Storage)等のデータサーバであってよい。この場合、制御部11は、通信インタフェース13を利用して、ネットワークを介してデータサーバに学習結果データ125を格納してもよい。また、外部記憶装置は、例えば、外部インタフェース14を介してモデル生成装置1に接続された外付けの記憶装置であってもよい。
学習結果データ125の保存が完了すると、制御部11は、本動作例に係るモデル生成装置1の処理手順を終了する。
なお、生成された学習結果データ125は、任意のタイミングで回帰装置2に提供されてよい。例えば、制御部11は、ステップS103の処理として又はステップS103の処理とは別に、学習結果データ125を回帰装置2に転送してもよい。回帰装置2は、この転送を受信することで、学習結果データ125を取得してもよい。また、例えば、回帰装置2は、通信インタフェース23を利用して、モデル生成装置1又はデータサーバにネットワークを介してアクセスすることで、学習結果データ125を取得してもよい。また、例えば、回帰装置2は、記憶媒体92を介して、学習結果データ125を取得してもよい。また、例えば、学習結果データ125は、回帰装置2に予め組み込まれてもよい。
更に、制御部11は、上記ステップS101~ステップS103の処理を定期又は不定期に繰り返すことで、学習結果データ125を更新又は新たに生成してもよい。この繰り返しの際に、機械学習に使用する学習データセット3の少なくとも一部の変更、修正、追加、削除等が適宜実行されてよい。そして、制御部11は、更新した又は新たに生成した学習結果データ125を任意の方法で回帰装置2に提供することで、回帰装置2の保持する学習結果データ125を更新してもよい。
[回帰装置]
図7は、本実施形態に係る回帰装置2による回帰タスクの遂行に関する処理手順の一例を示すフローチャートである。以下で説明する回帰装置2の処理手順は、回帰方法の一例である。ただし、以下で説明する回帰装置2の処理手順は一例に過ぎず、各ステップは可能な限り変更されてよい。また、以下の処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が行われてよい。
(ステップS201)
ステップS201では、制御部21は、画像取得部211として動作し、回帰タスクの対象となる1つ以上の対象画像221を取得する。本実施形態では、制御部21は、外部インタフェース24を介して、1つ以上の対象画像221をカメラSから直接的に取得する。対象画像221は、動画像であってもよいし、静止画像であってもよい。なお、対象画像221を取得する経路は、このような例に限定されなくてよい。他の経路の一例として、カメラSは、他のコンピュータに接続されてよい。この場合、制御部21は、他のコンピュータを介してカメラSから間接的に対象画像221を取得してもよい。1つ以上の対象画像221を取得すると、制御部21は、次のステップS202に処理を進める。
(ステップS202)
ステップS202では、制御部21は、回帰部212として動作し、学習結果データ125を参照して、訓練済みのニューラルネットワークモジュール5の設定を行う。そして、制御部21は、訓練済みのニューラルネットワークモジュール5を使用して、取得された1つ以上の対象画像221から実数値を回帰する。
この回帰の演算処理は、上記機械学習の訓練処理における回帰試行フェーズの演算処理と同様であってよい。すなわち、制御部21は、取得された1つ以上の対象画像221を訓練済みのニューラルネットワークモジュール5の入力層51に入力し、抽出演算(上記の一例では、式2)を含む順伝播の演算処理を実行する。この順伝播の演算処理の結果として、制御部21は、1つ以上の対象画像221に対する実数値の回帰結果を取得する。上記の一例では、制御部21は、取得された1つ以上の対象画像221を入力層51に入力し、各層51~53の順伝播の演算処理を実行することで、実数値の各候補値のコストxiを出力層53から取得する。そして、制御部21は、得られた各候補値のコストxiを用いて、上記式1~式5の演算処理を実行することで、回帰結果を得ることができる。
1つ以上の対象画像221に対する実数値の回帰結果を訓練済みのニューラルネットワークモジュール5から取得すると、制御部21は、次のステップS203に処理を進める。
(ステップS203)
ステップS203では、制御部21は、出力部213として動作し、回帰の結果に関する情報を出力する。
出力先及び出力する情報の内容はそれぞれ、実施の形態に応じて適宜決定されてよい。例えば、制御部21は、ステップS202により得られた回帰の結果をそのまま出力装置26に出力してもよい。また、制御部21は、得られた回帰の結果に基づいて、何らかの情報処理を実行してもよい。そして、制御部21は、その情報処理を実行した結果を、回帰の結果に関する情報として出力してもよい。この情報処理を実行した結果の出力には、回帰結果に応じて制御対象装置の動作を制御すること等が含まれてよい。出力先は、例えば、出力装置26、他のコンピュータの出力装置、制御対象装置等であってよい。
回帰結果に関する情報の出力が完了すると、制御部21は、本動作例に係る回帰装置2の処理手順を終了する。なお、制御部21は、ステップS201~ステップS203の一連の情報処理を継続的に繰り返し実行してもよい。繰り返すタイミングは、実施の形態に応じて適宜決定されてよい。これにより、回帰装置2は、上記回帰タスクを継続的に繰り返し遂行するように構成されてよい。
[特徴]
以上のとおり、本実施形態に係るモデル生成装置1は、ステップS102の機械学習の逆伝播のフェーズにおいて、ニューラルネットワークモジュール5に含まれる抽出演算を微分可能な代替演算に置き換え、代替演算の微分計算により算出される近似勾配を抽出演算の勾配として採用する。この置き換えにより、微分不可能な抽出演算を含むニューラルネットワークモジュール5の機械学習を適切に実施することができる。また、本実施形態に係る回帰装置2は、ステップS202の回帰処理において、そのような機械学習により生成された訓練済みのニューラルネットワークモジュール5を使用する。この訓練済みのニューラルネットワークモジュール5の回帰演算の過程に抽出演算が含まれていることで、最も確からしい候補以外の他の候補の影響を抑えることができる。上記の一例では、式1~式4の演算により、最も尤度の高い候補値近傍に期待値を算出する範囲を絞ることができる(すなわち、最も尤度の高い候補値から離れた候補値の影響を抑えることができる)。その結果、ステップS202の回帰精度の向上を図ることができる。
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良又は変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例は適宜組み合わせ可能である。
<4.1>
上記実施形態に係る回帰システム100は、1つ以上の画像から1つ以上の実数値を回帰するあらゆる場面に適用されてよい。具体例として、上記実施形態に係る回帰システム100は、複数の画像間の視差を計測する場面、連続する複数の画像間の動きを計測する場面、画像から対象物を検出する場面等に適用されてよい。以下、適用場面を限定した一具体例を示す。
(A)視差を計測する場面
図8は、第1具体例に係る視差計測システム100Aの適用場面の一例を模式的に例示する。第1具体例は、複数の画像間の視差を計測する場面に上記実施形態を適用した例である。第1具体例に係る視差計測システム100Aは、モデル生成装置1及び視差計測装置2Aを備える。視差計測装置2Aは、上記回帰装置2の一例である。
第1具体例における1つ以上の画像(訓練画像、対象画像)は、複数のカメラで異なる位置から同一時刻に撮像された複数の画像(典型的には、2つの画像)により構成される。回帰する実数値は、複数の画像の間における視差である。複数の画像の撮像には、例えば、ステレオカメラ等の複数のカメラを備える撮像装置SAが用いられる。複数のカメラは、独立に設けられてもよいし、或いは、ステレオカメラ、スマートフォン等のように単一のユニットで設けられてもよい。これらの点を除き、第1具体例の構成は、上記実施形態と同様であってよい。なお、典型的には、視差は、画素単位で回帰されてよい。ただし、視差を回帰する単位は、このような例に限定されなくてよく、実施の形態に応じて適宜決定されてよい。
(モデル生成装置)
第1具体例において、モデル生成装置1は、上記実施形態と同様の処理手順により、複数の画像間の視差を回帰する能力を獲得した訓練済みのニューラルネットワークモジュール5を生成することができる。
すなわち、ステップS101では、制御部11は、複数の学習データセットを取得する。各学習データセットは、複数の訓練画像及び正解情報の組み合わせにより構成される。複数の訓練画像は、異なる位置から同一時刻に同一の対象を撮像することで得られてよい。正解情報は、複数の画像間の視差の正解を示すように構成される。典型的には、各学習データセットは、視差の生じた2つの訓練画像、及び一方の訓練画像に対する他方の訓練画像の視差の正解を画素毎に示す正解情報の組み合わせにより構成されてよい。
ステップS102では、制御部11は、取得された複数の学習データセットを使用して、ニューラルネットワークモジュール5の機械学習を実施する。上記実施形態と同様に、この機械学習の逆伝播のフェーズでは、制御部11は、代替演算の微分計算により算出される近似勾配を抽出演算の微分計算の結果として採用する。この機械学習により、複数の画像間の視差を回帰する能力を獲得した訓練済みのニューラルネットワークモジュール5を生成することができる。ステップS103では、制御部11は、生成された訓練済みのニューラルネットワークモジュール5を示す学習結果データを所定の記憶領域に保存する。学習結果データは、任意のタイミングで視差計測装置2Aに提供されてよい。
(視差計測装置)
視差計測装置2Aのハードウェア構成及びソフトウェア構成は、上記実施形態に係る回帰装置2と同様であってよい。第1具体例において、視差計測装置2Aは、上記回帰装置2と同様の処理手順により、複数の画像間の視差を計測することができる。
すなわち、ステップS201では、視差計測装置2Aの制御部は、画像取得部として動作し、複数の対象画像221Aを取得する。視差計測装置2Aは、互いに異なる位置に配置された複数のカメラを含む撮像装置SAを備えてよく、制御部は、撮像装置SAから複数の対象画像221Aを取得してよい。複数の対象画像221Aは、複数のカメラで異なる位置から同一時刻に同一の対象(図8の例では、対象物RA)を撮像することで生成されてよい。典型的には、制御部は、2つの対象画像221Aを取得してよい。
ステップS202では、制御部は、回帰部として動作し、訓練済みのニューラルネットワークモジュール5を使用して、取得された複数の対象画像221A間における視差を回帰する。具体的に、制御部は、取得された複数の対象画像221Aを訓練済みのニューラルネットワークモジュール5の入力層51に入力し、抽出演算を含む順伝播の演算処理を実行する。この順伝播の演算結果として、制御部は、複数の対象画像221A間における視差を回帰した結果を得ることができる。
ステップS203では、制御部は、出力部として動作し、視差を回帰した結果に関する情報を出力する。一例として、制御部は、得られた視差をそのまま出力してもよい。その他の一例として、制御部は、得られた視差に基づいて、複数の対象画像221Aに写る対象物RAまでの距離を算出してもよい。この場合、制御部は、算出された距離を出力してもよい。或いは、制御部は、算出された距離に基づいて、何らかの情報処理を実行してもよい。
具体例として、複数の画像間の視差は、車両周囲のモニタリング、FA(Factory Automation)等における画像計測、ロボットビジョン等の目的で計測されてよい。車両周囲の状況をモニタリングする目的で視差を計測する場合、対象物RAは、障害物(例えば、物、人)であってよい。この場合、制御部は、得られた視差に基づいて、障害物までの距離を算出してもよい。制御部は、算出された障害物までの距離に基づいて、車両の進行方向の所定距離の範囲に障害物が存在するか否かを判定してもよい。そして、車両の進行方向の所定距離の範囲内に障害物が存在すると判定した場合に、制御部は、車両の走行を停止する又は車両の走行速度を減速する指令を車両に対して出力してもよい。
画像計測を行う目的で視差を計測する場合、制御部は、得られた視差に基づいて、対象物RAの位置及び形状を推定してもよい。具体例として、視差計測装置2Aは、基板の端子に塗布された半田の状態を計測する検査装置として動作してよく、対象物RAは半田であってよい。この場合、制御部は、得られた視差に基づいて、端子に塗布された半田の形状(特に、高さ方向の形状)を算出し、算出された半田の形状に基づいて、半田の塗布が十分か否かを判定してもよい。
ロボットビジョンにおいて視差を計測する場合、制御部は、得られた視差に基づいて、対象物RAまでの距離を算出してもよい。そして、制御部は、算出された距離に基づいて、ロボット装置の動作(例えば、ロボットハンドにより対象物RAを把持する動作)を制御してもよい。
(特徴)
第1具体例のモデル生成装置1によれば、抽出演算を含み、かつ複数の画像間の視差を回帰する能力を獲得した訓練済みのニューラルネットワークモジュール5を適切に生成することができる。また、視差計測装置2Aでは、訓練済みのニューラルネットワークモジュール5の回帰演算の過程に抽出演算が含まれていることで、複数の対象画像221A間における視差を精度よく計測することができる。
(B)動きを計測する場面
図9は、第2具体例に係る動き計測システム100Bの適用場面の一例を模式的に例示する。第2具体例は、連続的に撮像された複数の画像に写る対象物の動きを計測する場面に上記実施形態を適用した例である。第2具体例に係る動き計測システム100Bは、モデル生成装置1及び動き計測装置2Bを備える。動き計測装置2Bは、上記回帰装置2の一例である。
第2具体例における1つ以上の画像(訓練画像、対象画像)は、カメラSBにより連続的に撮像された複数の画像(典型的には、時系列に隣接する2つの画像)により構成される。回帰する実数値は、複数の画像に写る対象物RBの動きに関する推定値である。動きに関する推定値は、例えば、画像空間の各座標軸方向の変位量、極座標上での変化量(変位角度及び変位の大きさ)等であってよい。画素単位で回帰されてもよい。カメラSBは、時系列に沿って連続的に画像を撮像するように構成される。カメラSBは、例えば、ビデオカメラ等であってよい。これらの点を除き、第2具体例の構成は、上記実施形態と同様であってよい。
(モデル生成装置)
第2具体例において、モデル生成装置1は、上記実施形態と同様の処理手順により、連続する複数の画像に写る対象物の動きを回帰する能力を獲得した訓練済みのニューラルネットワークモジュール5を生成することができる。
すなわち、ステップS101では、制御部11は、複数の学習データセットを取得する。各学習データセットは、複数の訓練画像及び正解情報の組み合わせにより構成される。複数の訓練画像は、時系列に沿って連続的に対象物をカメラで撮像することで得られてよい。正解情報は、複数の訓練画像に写る対象物の動きの正解を示すように構成される。典型的には、各学習データセットは、撮像時刻の前後する2つの訓練画像、及び先の訓練画像から後の訓練画像にかけて生じた対象物の動きの正解を示す正解情報の組み合わせにより構成されてよい。
ステップS102では、制御部11は、取得された複数の学習データセットを使用して、ニューラルネットワークモジュール5の機械学習を実施する。上記実施形態と同様に、この機械学習の逆伝播のフェーズでは、制御部11は、代替演算の微分計算により算出される近似勾配を抽出演算の微分計算の結果として採用する。この機械学習により、連続する複数の画像に写る対象物の動きを回帰する能力を獲得した訓練済みのニューラルネットワークモジュール5を生成することができる。ステップS103では、制御部11は、生成された訓練済みのニューラルネットワークモジュール5を示す学習結果データを所定の記憶領域に保存する。学習結果データは、任意のタイミングで動き計測装置2Bに提供されてよい。
(動き計測装置)
動き計測装置2Bのハードウェア構成及びソフトウェア構成は、上記実施形態に係る回帰装置2と同様であってよい。第2具体例において、動き計測装置2Bは、上記回帰装置2と同様の処理手順により、連続する複数の画像に写る対象物の動きを計測することができる。
すなわち、ステップS201では、動き計測装置2Bの制御部は、画像取得部として動作し、時系列に沿って連続する複数の対象画像221Bを取得する。動き計測装置2BはカメラSB(撮像装置)を備えてよく、制御部は、連続する複数の対象画像221BをカメラSBから取得してよい。典型的には、制御部は、撮像時刻の前後する2つの対象画像221Bを取得してよい。
ステップS202では、制御部は、回帰部として動作し、訓練済みのニューラルネットワークモジュール5を使用して、取得された複数の対象画像221Bに写る対象物RBの動きを回帰する。具体的に、制御部は、取得された複数の対象画像221Bを訓練済みのニューラルネットワークモジュール5の入力層51に入力し、抽出演算を含む順伝播の演算処理を実行する。この順伝播の演算結果として、制御部は、対象物RBの動きを回帰した結果を得ることができる。
ステップS203では、制御部は、出力部として動作し、対象物RBの動きを回帰した結果に関する情報を出力する。一例として、制御部は、得られた動きに関する推定値をそのまま出力してもよい。その他の一例として、制御部は、得られた動きに関する推定値に基づいて、何らかの情報処理を実行してもよい。
具体例として、対象物RBの動きは、車両周囲のモニタリング、任意の場所における人物の動きのモニタリング、道路を走行する車両の動きのモニタリング、人物に対して所定の運動の動作を指導する等の目的で計測されてよい。任意の場所における人物の動きをモニタリングする目的で動き計測装置2Bを利用する(すなわち、対象物RBは、任意の場所に存在する人物である)場合、制御部は、ステップS202の処理により得られた人物の動きに関する推定値に基づいて、例えば、電車の線路内等の危険なエリアにその人物が進入しようとしていないかどうかを判定してもよい。そして、危険なエリアに人物が進入しようとしていると判定した場合に、制御部は、その近傍に存在するユーザ(例えば、駅員、警備員等)の端末にそのことを知らせるための警告を出力してもよい。
人物に対して所定の運動の動作を指導する目的で動き計測装置2Bを利用する場合、制御部は、回帰により得られたユーザの動きに関する推定値と正しい動作の正解値との差を算出し、算出された差に基づいて、ユーザが正しい動作を行っているか否かを判定してもよい。また、制御部は、算出される差が小さくなるように指導メッセージを決定し、決定された指導メッセージをユーザに対して出力してもよい。この場合、動き計測装置2Bは、例えば、スマートフォン等のユーザ端末から複数の対象画像221Bを取得し、上記処理により得られた指導メッセージをユーザ端末に送信してもよい。なお、所定の運動の動作は、例えば、ゴルフ、テニス、野球、サッカー等のスポーツの動作であってよい。或いは、介護の一環として、運動機能の低下した人物に対して機能回復の訓練を行う場面で動き計測装置2Bを利用する場合、所定の運動の動作は、例えば、立ち上がる、歩く、物を持ち上げる、足を昇降する、ペダルを漕ぐ等の機能回復に関する動作であってよい。
(特徴)
第2具体例のモデル生成装置1によれば、抽出演算を含み、かつ連続する複数の画像に写る対象物の動きを回帰する能力を獲得した訓練済みのニューラルネットワークモジュール5を適切に生成することができる。また、動き計測装置2Bでは、訓練済みのニューラルネットワークモジュール5の回帰演算の過程に抽出演算が含まれていることで、連続する複数の対象画像221Bに写る対象物RBの動きを精度よく計測することができる。
(C)対象物を検出する場面
図10は、第3具体例における検出システム100Cの適用場面の一例を模式的に例示する。第3具体例は、画像から対象物を検出する場面に上記実施形態を適用した例である。第3具体例に係る検出システム100Cは、モデル生成装置1及び検出装置2Cを備える。検出装置2Cは、上記回帰装置2の一例である。
第3具体例における1つ以上の画像(訓練画像、対象画像)は、対象物の写る画像(典型的には、1つの画像)により構成される。回帰する実数値は、画像に写る対象物の検出位置に関する推定値である。検出位置に関する推定値は、例えば、画像内の対象物の任意の点の座標、寸法(幅方向、高さ方向等の長さ)等であってよい。これらの点を除き、第3具体例の構成は、上記実施形態と同様であってよい。
(モデル生成装置)
第3具体例において、モデル生成装置1は、上記実施形態と同様の処理手順により、画像に写る対象物の位置を回帰する能力を獲得した訓練済みのニューラルネットワークモジュール5を生成することができる。
すなわち、ステップS101では、制御部11は、複数の学習データセットを取得する。各学習データセットは、訓練画像及び正解情報の組み合わせにより構成される。訓練画像は、カメラSC又はこれと同種のカメラにより対象物RCを撮像することで得られてよい。カメラSCの種類は、実施の形態に応じて適宜選択されてよい。カメラSCは、例えば、一般的なRGBカメラ、ステレオカメラ、深度カメラ、赤外線カメラ等であってよい。対象物RCは、検出装置2Cの利用場面を想定した上で、適宜選択されてよい。正解情報は、訓練画像に写る対象物RCの検出位置の正解を示すように構成される。典型的には、各学習データセットは、1つの訓練画像及びその訓練画像に対する検出位置の回帰タスクの正解を示す正解情報の組み合わせにより構成されてよい。
ステップS102では、制御部11は、取得された複数の学習データセットを使用して、ニューラルネットワークモジュール5の機械学習を実施する。上記実施形態と同様に、この機械学習の逆伝播のフェーズでは、制御部11は、代替演算の微分計算により算出される近似勾配を抽出演算の微分計算の結果として採用する。この機械学習により、画像に写る対象物の位置を回帰する能力を獲得した訓練済みのニューラルネットワークモジュール5を生成することができる。ステップS103では、制御部11は、生成された訓練済みのニューラルネットワークモジュール5を示す学習結果データを所定の記憶領域に保存する。学習結果データは、任意のタイミングで検出装置2Cに提供されてよい。
(検出装置)
検出装置2Cのハードウェア構成及びソフトウェア構成は、上記実施形態に係る回帰装置2と同様であってよい。第3具体例において、検出装置2Cは、上記回帰装置2と同様の処理手順により、画像から対象物RCを検出することができる。
すなわち、ステップS201では、検出装置2Cの制御部は、画像取得部として動作し、対象画像221Cを取得する。検出装置2Cは、カメラSC(撮像装置)を備えてよく、制御部は、対象物RCの写り得る対象画像221CをカメラSCから取得してよい。典型的には、制御部は、1つの対象画像221Cを取得してよい。
ステップS202では、制御部は、回帰部として動作し、訓練済みのニューラルネットワークモジュール5を使用して、取得された対象画像221Cに対して対象物RCの検出位置を回帰する。具体的に制御部は、取得された対象画像221Cを訓練済みのニューラルネットワークモジュール5の入力層51に入力し、抽出演算を含む順伝播の演算処理を実行する。この順伝播の演算結果として、制御部は、対象物RCの検出位置を回帰した結果を得ることができる。
ステップS203では、制御部は、出力部として動作し、対象物RCの検出位置を回帰した結果に関する情報を出力する。一例として、制御部は、得られた検出位置に関する推定値をそのまま出力してもよい。その他の一例として、制御部は、得られた検出位置に関する推定値に基づいて、何らかの情報処理を実行してもよい。
具体例として、対象物RCの検出は、車両周囲のモニタリング、ドライバモニタリング、任意の場所における人物のモニタリング、製品の外観検査(欠陥検出)等の目的で行われてよい。製品の外観検査を実施する目的で検出装置2Cを使用する(すなわち、対象物RCは、製品の欠陥である)場合、制御部は、ステップS202の処理により得られた欠陥の検出位置に関する推定値に基づいて、製品に欠陥が存在するか否かを判定してもよい。そして、製品に欠陥が存在すると判定した場合に、制御部は、欠陥が存在することを知らせるための警告を出力してもよい。また、製品を搬送するコンベア装置に検出装置2Cが接続される場合、制御部は、欠陥の有無を判定した結果に基づいて、欠陥のある製品と欠陥のない製品とを別々のラインで搬送されるようにコンベア装置の動作を制御してもよい。
(特徴)
第3具体例のモデル生成装置1によれば、抽出演算を含み、かつ画像に写る対象物RCの位置を回帰する能力を獲得した訓練済みのニューラルネットワークモジュール5を生成することができる。また、検出装置2Cでは、訓練済みのニューラルネットワークモジュール5の回帰演算の過程に抽出演算が含まれていることで、対象画像221Cに写る対象物RCの位置を精度よく回帰することができる。
<4.2>
ニューラルネットワークモジュール5の構成は、上記実施形態の例に限定されなくてよく、実施の形態に応じて適宜変更されてよい。例えば、各ニューロンは、隣接する層の特定のニューロンと接続されたり、隣接する層以外の層のニューロンと接続されたりしてもよい。各ニューロンの結合関係は、実施の形態に応じて適宜決定されてよい。中間層52は、省略されてもよい。ニューラルネットワークモジュール5は、例えば、畳み込み層、プーリング層、正規化層、ドロップアウト層等の他の種類の層を含んでもよい。ニューラルネットワークモジュール5は、畳み込みニューラルネットワーク、再帰型ニューラルネットワーク等の他の形式のニューラルネットワークにより構成されてよい。
その他の一例として、複数の入力画像を受け付けるように構成される場合、ニューラルネットワークモジュール5は、複数の特徴抽出部及び結合部を備えてよい。各特徴抽出部は、入力側に入力画像毎に設けられ、1つ以上の層(例えば、畳み込み層、全結合層)により、入力画像から特徴マップを生成するように構成されてよい。結合部は、各特徴抽出部の出力を受け付けるように出力側に配置され、1つ以上の層により、各特徴抽出部により得られた特徴マップを結合するように構成されてよい。
また、上記実施形態において、ニューラルネットワークモジュール5の入力及び出力の形式は、特に限定されなくてよく、実施の形態に応じて適宜決定されてよい。例えば、ニューラルネットワークモジュール5は、画像以外の情報の入力を更に受け付けるように構成されてもよい。また、例えば、ニューラルネットワークモジュール5は、実数値の回帰結果以外の情報(例えば、上記第3具体例では、対象物RCの識別結果)を出力するように構成されてもよい。
§5 実験例
抽出演算の有効性を検証するために、以下の実施例及び比較例に係る訓練済みのニューラルネットワークモジュールを生成した。ただし、本発明は、以下の実施例に限定されるものではない。
まず、上記実施形態(第1具体例)と同様の方法により、2つの画像間の視差を画素毎に回帰する(すなわち、一方の画像に対する他方の画像の各画素の視差を回帰する)能力を獲得した実施例に係る訓練済みのニューラルネットワークモジュールを生成した。ニューラルネットワークモジュールの構成には、出力層を除いて、非特許文献1のTable1と同様の構成を採用した。出力層は、各画素の視差の候補値のコストを出力するように構成した。そして、出力層の出力値に対して式1~式5の演算を実行するようにニューラルネットワークモジュールを構成した(D=192、w=96)。学習データセット(訓練画像及び正解情報)には、参考文献(Nikolaus Mayer, Eddy Ilg, Philip Hausser, Philipp Fischer, Daniel Cremers, Alexey Dosovitskiy, Thomas Brox, "A Large Dataset to Train Convolutional Networks for Disparity, Optical Flow, and Scene Flow Estimation", 2016 IEEE Conference on Computer Vision and Pattern Recognition, <URL:https://arxiv.org/abs/1512.02134>.)で公開されているSceneFlowデータセット(訓練データは、35,454組のステレオ画像ペア)を使用した。一方、式1~式5の演算を以下の式7の演算に置き換え、逆伝播フェーズの置き換えを省略し(式7の演算は抽出演算を含まないため)、その他の条件は実施例と同じにして、比較例に係る訓練済みのニューラルネットワークモジュールを生成した。
実施例に係る訓練済みのニューラルネットワークモジュールでは、式5の計算により算出される各画素の期待値(dsemi-soft)を視差の回帰結果として取得した。比較例に係る訓練済みのニューラルネットワークモジュールでは、上記式7により算出される各画素の期待値(dsoft)を視差の回帰結果として取得した。
次に、市販のステレオカメラを使用して、2つの検証用画像を生成した。図11Aは、2つの検証用画像のうちの一方を示す。図11Bは、2つの検証用画像のうちの他方を示す。図11Cは、検証用画像の各画素の視差の真値を示す。そして、実施例及び比較例に係る訓練済みのニューラルネットワークモジュールに生成した2つの検証用画像を与えて、実施例及び比較例の視差の回帰精度を検証した。
図12Aは、比較例に係る訓練済みのニューラルネットワークモジュールにより2つの検証用画像間の視差を回帰した結果を示す。図12Bは、図12Aに示される回帰結果と図11Cに示される真値との間の誤差を示す。図13Aは、実施例に係る訓練済みのニューラルネットワークモジュールにより2つの検証用画像間の視差を回帰した結果を示す。図13Bは、図13Aに示される回帰結果と図11Cに示される真値との間の誤差を示す。
図12B及び図13Bに示されるとおり、比較例よりも実施例の方が視差を精度よく回帰することができた。特に、実施例では、比較例に比べて、画像左上部分に存在する無地な外観を有する対象物の部分で視差を精度よく回帰することができた。この検証の結果により、画像から実数値(実験例では、視差)を回帰する演算過程に抽出演算を採用することで、回帰精度の向上を図ることができることが分かった。特に、視差が投影されにくい模様(例えば、上記無地な外観)を有する部分について、回帰精度の向上を図ることができることが分かった。また、上記逆伝播フェーズで代替演算の置き換えを行うことで、訓練済みのニューラルネットワークモジュールを適切に生成することができることが分かった。
1…モデル生成装置、
11…制御部、12…記憶部、13…通信インタフェース、
14…外部インタフェース、
15…入力装置、16…出力装置、17…ドライブ、
81…モデル生成プログラム、91…記憶媒体、
111…データ取得部、112…学習処理部、
113…保存処理部、
125…学習結果データ、
2…回帰装置、
21…制御部、22…記憶部、23…通信インタフェース、
24…外部インタフェース、
25…入力装置、26…出力装置、27…ドライブ、
82…回帰プログラム、92…記憶媒体、
211…画像取得部、212…回帰部、213…出力部、
221…対象画像、
3…学習データセット、
31…訓練画像、32…正解情報、
5…ニューラルネットワークモジュール、
51…入力層、52…中間(隠れ)層、
53…出力層

Claims (7)

  1. 1つ以上の訓練画像、及び前記1つ以上の訓練画像から回帰する実数値の正解を示す正解情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得するデータ取得部と、
    前記複数の学習データセットを使用して、ニューラルネットワークモジュールの機械学習を実施する学習処理部であって、
    前記ニューラルネットワークモジュールは、所定の条件を満たす要素を対象の集合から抽出する演算を含み、
    前記機械学習は、前記各学習データセットについて、前記ニューラルネットワークモジュールを使用して前記1つ以上の訓練画像から回帰される値が前記正解情報により示される正解に適合するように前記ニューラルネットワークモジュールを訓練することにより構成され、
    前記機械学習の間、前記ニューラルネットワークモジュールの順伝播のフェーズでは、前記抽出する演算をそのまま計算するのに対して、逆伝播のフェーズでは、前記抽出する演算を微分可能な代替演算に置き換え、置き換えられた前記代替演算の微分計算により、前記抽出する演算の微分計算に対応する近似勾配を算出する、
    学習処理部と、
    を備え、
    前記ニューラルネットワークモジュールは、回帰する実数値に対する複数の候補値それぞれの尤度を算出する演算を更に含み、
    前記抽出する演算は、算出された各尤度のうちの最大値の要素を抽出することにより構成される、
    モデル生成装置。
  2. 前記1つ以上の訓練画像は、異なる位置から撮像された複数の画像により構成され、
    回帰する実数値は、前記複数の画像の間における視差である、
    請求項1に記載のモデル生成装置。
  3. 前記1つ以上の訓練画像は、連続的に撮像された複数の画像により構成され、
    回帰する実数値は、前記複数の画像に写る対象物の動きに関する推定値である、
    請求項1に記載のモデル生成装置。
  4. 前記1つ以上の訓練画像は、対象物の写る画像により構成され、
    回帰する実数値は、前記対象物の検出位置に関する推定値である、
    請求項1に記載のモデル生成装置。
  5. 1つ以上の対象画像を取得する画像取得部と、
    訓練済みのニューラルネットワークモジュールを使用して、取得された前記1つ以上の対象画像から実数値を回帰する回帰部であって、
    前記訓練済みのニューラルネットワークモジュールは、1つ以上の訓練画像、及び前記1つ以上の訓練画像から回帰する実数値の正解を示す正解情報の組み合わせによりそれぞれ構成される複数の学習データセットを使用した機械学習により生成されたものであり、
    前記ニューラルネットワークモジュールは、所定の条件を満たす要素を対象の集合から抽出する演算を含み、
    前記機械学習は、前記各学習データセットについて、前記ニューラルネットワークモジュールを使用して前記1つ以上の訓練画像から回帰される値が前記正解情報により示される正解に適合するように前記ニューラルネットワークモジュールを訓練することにより構成され、
    前記機械学習の間、前記ニューラルネットワークモジュールの順伝播のフェーズでは、前記抽出する演算をそのまま計算するのに対して、逆伝播のフェーズでは、前記抽出する演算を微分可能な代替演算に置き換え、置き換えられた前記代替演算の微分計算により、前記抽出する演算の微分計算に対応する近似勾配を算出する、
    回帰部と、
    回帰の結果に関する情報を出力する出力部と、
    を備え、
    前記ニューラルネットワークモジュールは、回帰する実数値に対する複数の候補値それぞれの尤度を算出する演算を更に含み、
    前記抽出する演算は、算出された各尤度のうちの最大値の要素を抽出することにより構成される、
    回帰装置。
  6. コンピュータが、
    1つ以上の訓練画像、及び前記1つ以上の訓練画像から回帰する実数値の正解を示す正解情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得するステップと、
    前記複数の学習データセットを使用して、ニューラルネットワークモジュールの機械学習を実施するステップであって、
    前記ニューラルネットワークモジュールは、所定の条件を満たす要素を対象の集合から抽出する演算を含み、
    前記機械学習は、前記各学習データセットについて、前記ニューラルネットワークモジュールを使用して前記1つ以上の訓練画像から回帰される値が前記正解情報により示される正解に適合するように前記ニューラルネットワークモジュールを訓練することにより構成され、
    前記機械学習の間、前記ニューラルネットワークモジュールの順伝播のフェーズでは、前記抽出する演算をそのまま計算するのに対して、逆伝播のフェーズでは、前記抽出する演算を微分可能な代替演算に置き換え、置き換えられた前記代替演算の微分計算により、前記抽出する演算の微分計算に対応する近似勾配を算出する、
    ステップと、
    を実行
    前記ニューラルネットワークモジュールは、回帰する実数値に対する複数の候補値それぞれの尤度を算出する演算を更に含み、
    前記抽出する演算は、算出された各尤度のうちの最大値の要素を抽出することにより構成される、
    モデル生成方法。
  7. コンピュータに、
    1つ以上の訓練画像、及び前記1つ以上の訓練画像から回帰する実数値の正解を示す正解情報の組み合わせによりそれぞれ構成される複数の学習データセットを取得するステップと、
    前記複数の学習データセットを使用して、ニューラルネットワークモジュールの機械学習を実施するステップであって、
    前記ニューラルネットワークモジュールは、所定の条件を満たす要素を対象の集合から抽出する演算を含み、
    前記機械学習は、前記各学習データセットについて、前記ニューラルネットワークモジュールを使用して前記1つ以上の訓練画像から回帰される値が前記正解情報により示される正解に適合するように前記ニューラルネットワークモジュールを訓練することにより構成され、
    前記機械学習の間、前記ニューラルネットワークモジュールの順伝播のフェーズでは、前記抽出する演算をそのまま計算するのに対して、逆伝播のフェーズでは、前記抽出する演算を微分可能な代替演算に置き換え、置き換えられた前記代替演算の微分計算により、前記抽出する演算の微分計算に対応する近似勾配を算出する、
    ステップと、
    を実行させ、
    前記ニューラルネットワークモジュールは、回帰する実数値に対する複数の候補値それぞれの尤度を算出する演算を更に含み、
    前記抽出する演算は、算出された各尤度のうちの最大値の要素を抽出することにより構成される、
    モデル生成プログラム。
JP2020114595A 2020-07-02 2020-07-02 モデル生成装置、回帰装置、モデル生成方法、及びモデル生成プログラム Active JP7447708B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2020114595A JP7447708B2 (ja) 2020-07-02 2020-07-02 モデル生成装置、回帰装置、モデル生成方法、及びモデル生成プログラム
EP21833036.3A EP4177827A4 (en) 2020-07-02 2021-06-30 MODEL GENERATING DEVICE, REGRESSION DEVICE, MODEL GENERATION METHOD AND MODEL GENERATION PROGRAM
US18/002,684 US20230245437A1 (en) 2020-07-02 2021-06-30 Model generation apparatus, regression apparatus, model generation method, and computer-readable storage medium storing a model generation program
CN202180044574.7A CN115803774A (zh) 2020-07-02 2021-06-30 模型生成装置、回归装置、模型生成方法以及模型生成程序
PCT/JP2021/024701 WO2022004773A1 (ja) 2020-07-02 2021-06-30 モデル生成装置、回帰装置、モデル生成方法、及びモデル生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020114595A JP7447708B2 (ja) 2020-07-02 2020-07-02 モデル生成装置、回帰装置、モデル生成方法、及びモデル生成プログラム

Publications (2)

Publication Number Publication Date
JP2022012626A JP2022012626A (ja) 2022-01-17
JP7447708B2 true JP7447708B2 (ja) 2024-03-12

Family

ID=79316638

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020114595A Active JP7447708B2 (ja) 2020-07-02 2020-07-02 モデル生成装置、回帰装置、モデル生成方法、及びモデル生成プログラム

Country Status (5)

Country Link
US (1) US20230245437A1 (ja)
EP (1) EP4177827A4 (ja)
JP (1) JP7447708B2 (ja)
CN (1) CN115803774A (ja)
WO (1) WO2022004773A1 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115557550B (zh) * 2022-08-31 2024-02-23 达斯玛环境科技(北京)有限公司 一种污水预处理方法及系统
CN115657580B (zh) * 2022-12-14 2023-03-31 北京交科公路勘察设计研究院有限公司 基于组合算法的隧道消防水池监控方法及系统

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018514856A (ja) 2015-06-05 2018-06-07 グーグル エルエルシー 空間的変換モジュール

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5271090A (en) * 1990-03-21 1993-12-14 At&T Bell Laboratories Operational speed improvement for neural network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018514856A (ja) 2015-06-05 2018-06-07 グーグル エルエルシー 空間的変換モジュール

Also Published As

Publication number Publication date
JP2022012626A (ja) 2022-01-17
EP4177827A1 (en) 2023-05-10
EP4177827A4 (en) 2024-02-28
CN115803774A (zh) 2023-03-14
WO2022004773A1 (ja) 2022-01-06
US20230245437A1 (en) 2023-08-03

Similar Documents

Publication Publication Date Title
US10970559B2 (en) People flow estimation device, people flow estimation method, and recording medium
JP7339029B2 (ja) モーション認識モデルを用いた自体運動推定装置及び方法並びにモーション認識モデルトレーニング装置及び方法
CN112991413A (zh) 自监督深度估测方法和系统
CN104599287B (zh) 对象跟踪方法和装置、对象识别方法和装置
KR20190031318A (ko) 도메인 분리 뉴럴 네트워크들
JP2014522035A (ja) オブジェクト姿勢検索装置及び方法
CN110263920B (zh) 卷积神经网络模型及其训练方法和装置、巡检方法和装置
CN111695402A (zh) 用于标注3d点云数据中人体姿态的工具和方法
EP4078523A1 (en) System, method and computer program product for determining sizes and/or 3d locations of objects imaged by a single camera
JP7447708B2 (ja) モデル生成装置、回帰装置、モデル生成方法、及びモデル生成プログラム
US11625852B1 (en) Object pose neural network system
WO2020033345A1 (en) Action localization using relational features
CN113642431A (zh) 目标检测模型的训练方法及装置、电子设备和存储介质
CN104850219A (zh) 估计附着物体的人体姿势的设备和方法
US20230281966A1 (en) Semi-supervised keypoint based models
CN110059646A (zh) 训练动作规划模型的方法及目标搜索方法
JP7434829B2 (ja) モデル生成装置、推定装置、モデル生成方法、及びモデル生成プログラム
Ishihara et al. Deep radio-visual localization
CN114937177A (zh) 自动打标、检测模型训练及目标识别方法、和电子设备
JP2005078528A (ja) 物体検出装置及び方法
CN114663503A (zh) 从图像进行三维位置预测
CN107481263B (zh) 乒乓球目标跟踪方法、装置、存储介质和计算机设备
JP2021077177A (ja) 動作認識装置、動作認識方法及び動作認識プログラム
Chen et al. An integrated sensor network method for safety management of construction workers
WO2020028068A1 (en) Learning template representation libraries

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230512

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240115

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240130

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240212

R150 Certificate of patent or registration of utility model

Ref document number: 7447708

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150