IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ キヤノン株式会社の特許一覧

<>
  • 特許-認識装置、認識方法 図1
  • 特許-認識装置、認識方法 図2
  • 特許-認識装置、認識方法 図3
  • 特許-認識装置、認識方法 図4
  • 特許-認識装置、認識方法 図5
  • 特許-認識装置、認識方法 図6
  • 特許-認識装置、認識方法 図7
  • 特許-認識装置、認識方法 図8
  • 特許-認識装置、認識方法 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-27
(45)【発行日】2024-03-06
(54)【発明の名称】認識装置、認識方法
(51)【国際特許分類】
   G06T 7/00 20170101AFI20240228BHJP
   H04N 23/60 20230101ALI20240228BHJP
【FI】
G06T7/00 350C
H04N23/60 500
【請求項の数】 12
(21)【出願番号】P 2019206347
(22)【出願日】2019-11-14
(65)【公開番号】P2021081790
(43)【公開日】2021-05-27
【審査請求日】2022-11-11
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】加藤 政美
(72)【発明者】
【氏名】森 克彦
(72)【発明者】
【氏名】野村 修
【審査官】小池 正彦
(56)【参考文献】
【文献】特開2018-190332(JP,A)
【文献】特開2017-225084(JP,A)
【文献】特開平06-326919(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
H04N 23/60
(57)【特許請求の範囲】
【請求項1】
階層型ニューラルネットワークを用いて、撮像デバイスにより撮像された撮像画像からそれぞれの階層の特徴マップを生成し、該特徴マップに基づいて該撮像画像に対する認識結果を取得する認識手段と、
前記階層型ニューラルネットワークにおいて前記撮像画像を入力する階層により近い階層の特徴マップに基づいて前記撮像デバイスにおけるセンサからのデータの取得条件を制御する制御手段と
を備えることを特徴とする認識装置。
【請求項2】
前記制御手段は、前記階層型ニューラルネットワークにおいて前記撮像画像を入力する階層により近い階層の特徴マップに基づいて、前記取得条件を制御するための制御データを生成し、該制御データに基づいて前記取得条件を制御することを特徴とする請求項に記載の認識装置。
【請求項3】
前記制御手段は、前記階層型ニューラルネットワークにおいて前記撮像画像を入力する階層により近い階層の特徴マップから、階層型ニューラルネットワークを用いて前記制御データを生成することを特徴とする請求項に記載の認識装置。
【請求項4】
前記認識手段が用いる階層型ニューラルネットワークおよび前記制御手段が用いる階層型ニューラルネットワークはConvolutional Neural Networkであることを特徴とする請求項に記載の認識装置。
【請求項5】
前記制御手段は、前記センサ面を分割した分割領域ごとに前記取得条件を制御することを特徴とする請求項1乃至の何れか1項に記載の認識装置。
【請求項6】
更に、
前記撮像画像を、前記取得条件を制御するためのデータに基づいて補正する補正手段を備えることを特徴とする請求項1ないし5のいずれか1項に記載の認識装置。
【請求項7】
前記撮像デバイスは光電変換デバイスを含み、前記制御手段は、該光電変換デバイスの電荷の蓄積時間を制御することを特徴とする請求項1ないし6のいずれか1項に記載の認識装置。
【請求項8】
前記撮像デバイスは光電変換デバイスを含み、前記制御手段は、該光電変換デバイスによる光電変換後の信号に対するゲインを制御することを特徴とする請求項1ないし7のいずれか1項に記載の認識装置。
【請求項9】
前記撮像デバイスは、アナログ画像信号をディジタル画像信号に変換するA/D変換部を含み、前記制御手段は、該A/D変換部によるA/D変換の特性を制御することを特徴とする請求項1ないし8のいずれか1項に記載の認識装置。
【請求項10】
前記認識手段が用いる階層型ニューラルネットワークと、前記制御手段が用いる階層型ニューラルネットワークと、で使用する回路を共有することを特徴とする請求項3に記載の認識装置。
【請求項11】
認識装置が行う認識方法であって、
前記認識装置の認識手段が、階層型ニューラルネットワークを用いて、撮像デバイスにより撮像された撮像画像からそれぞれの階層の特徴マップを生成し、該特徴マップに基づいて該撮像画像に対する認識結果を取得する認識工程と、
前記認識装置の制御手段が、前記階層型ニューラルネットワークにおいて前記撮像画像を入力する階層により近い階層の特徴マップに基づいて前記撮像デバイスにおけるセンサからのデータの取得条件を制御する制御工程と
を備えることを特徴とする認識方法。
【請求項12】
認識装置のコンピュータを、請求項1乃至10の何れか1項に記載の認識装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、認識技術に関するものである。
【背景技術】
【0002】
Convolutional Neural Network(以下CNNと略記する)に代表される階層的な演算手法(深層学習技術に基づくパターン認識手法)が認識対象の変動に対して頑健なパターン認識を可能にする手法として注目されている。例えば、非特許文献1では様々な応用例・実装例が開示されている。
【0003】
しかしながら、CNNのような強力な演算手法を利用した場合であっても、認識対象の撮影環境(コントラストやボケ等)によっては十分な認識性能を引き出せない場合がある。
【0004】
撮影環境の大きな変動に対応する手法として、特許文献1には、撮影デバイスの撮影条件を所定期間毎に変化させて画像中の顔検出確率を向上させる手法が開示されている。また、特許文献2には、顔検出の結果に基づいて撮像デバイスのゲインや露光時間を制御し、検出した人物の属性認識処理に好適な条件で画像データを再取得する手法が開示されている。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2014-127999号公報
【文献】特開2017-098746号公報
【非特許文献】
【0006】
【文献】Yann LeCun, Koray Kavukvuoglu and Clement Farabet: Convolutional Networks and Applications in Vision, Proc. International Symposium on Circuits and Systems (ISCAS'10), IEEE, 2010,
【発明の概要】
【発明が解決しようとする課題】
【0007】
特許文献1に開示されている手法は、撮影条件を所定期間毎に変更するだけであり、パターン認識にとって常に最適な画像取得となるわけではない。また、特許文献2に開示されている手法は、撮影条件を変更するテーブルを事前に決定しておく必要があり、撮影環境の多様な変動に対して最適な条件の変更テーブルを決定することは困難である。また、最適な撮影条件が同一フレーム画像の領域毎に異なる場合に対応することができない。本発明では、データに対するロバストな認識を可能にする技術を提供する。
【課題を解決するための手段】
【0008】
本発明の一様態は、階層型ニューラルネットワークを用いて、撮像デバイスにより撮像された撮像画像からそれぞれの階層の特徴マップを生成し、該特徴マップに基づいて該撮像画像に対する認識結果を取得する認識手段と、
前記階層型ニューラルネットワークにおいて前記撮像画像を入力する階層により近い階層の特徴マップに基づいて前記撮像デバイスにおけるセンサからのデータの取得条件を制御する制御手段と
を備えることを特徴とする。
【発明の効果】
【0009】
本発明の構成によれば、データに対するロバストな認識を可能にする技術を提供することができる。
【図面の簡単な説明】
【0010】
図1】認識装置201のより詳細な構成を示すブロック図。
図2】画像処理システムの構成例を示すブロック図。
図3】処理部101の論理的な処理構造を含む認識装置201の構成例を示すブロック図。
図4】演算処理303~307を実現するための構成を示すブロック図。
図5】画像処理システムによるパターン認識処理の動作を示すタイミングチャート。
図6】(a)は積層デバイスの例を示す図、(b)はロジック層62の一例を示す図。
図7】認識装置201の構成例を示すブロック図。
図8】ロジック層62に対応する制御データの一例を示す図。
図9】認識装置201の動作を示すフローチャート。
【発明を実施するための形態】
【0011】
以下、添付図面を参照して実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでない。実施形態には複数の特徴が記載されているが、これらの複数の特徴の全てが発明に必須のものとは限らず、また、複数の特徴は任意に組み合わせられてもよい。さらに、添付図面においては、同一若しくは同様の構成に同一の参照番号を付し、重複した説明は省略する。
【0012】
[第1の実施形態]
先ず、本実施形態に係る画像処理システムの構成例について、図2のブロック図を用いて説明する。本実施形態に係る画像処理システムは、撮像デバイスを用いて物体を撮像した撮像画像から該物体を認識すると共に、該認識のために該撮像画像から抽出した特徴に基づいて該撮像デバイスからの撮像画像の取得条件を制御する。
【0013】
CPU(Central Prosessing Unit)205は、ROM(Read Only Memory)206やRAM(Random Access Memory)207に格納されているコンピュータプログラムやデータを用いて各種の処理を実行する。これによりCPU205は、画像処理システム全体の動作制御を行うと共に、画像処理システムが行うものとして後述する各処理を実行若しくは制御する。
【0014】
ROM206には、画像処理システムの起動プログラムや設定データ、画像処理システムが行うものとして後述する各処理をCPU205に実行若しくは制御させるためのコンピュータプログラムやデータが格納されている。ROM206に格納されているコンピュータプログラムやデータは、CPU205による制御に従って適宜RAM207にロードされ、CPU205による処理対象となる。
【0015】
RAM207は、ROM206からロードされたコンピュータプログラムやデータを格納するためのエリア、DMAC208により認識装置201から転送されたデータを格納するためのエリア、を有する。さらにRAM207は、CPU205が各種の処理を実行する際に用いるワークエリアを有する。このようにRAM207は、各種のエリアを適宜提供することができる。
【0016】
DMAC(Direct Memory Access Controller)208は、画像処理システムにおけるデータ転送を制御するものであり、例えば、認識装置201とRAM207との間のデータ転送を制御する。
【0017】
次に、認識装置201について説明する。認識装置201は、撮像デバイス202、認識処理部203、RAM204を有する。撮像デバイス202は、光学系、光電変換デバイス、該光電変換デバイスのセンサ面(センシング領域)に並ぶ画素に対応するフォトダイオードからの出力を読み出すための信号線および増幅器、該光電変換デバイスを制御するドライバ回路、該光電変換デバイスからのアナログ画像信号をディジタル画像信号に変換するA/D変換部、等を有する。光電変換デバイスは、CCD(Charge-Coupled Devices)やCMOS(Complimentary Metal Oxide Semiconductor)等のセンサである。
【0018】
光学系を介して外界から入光した光は光電変換デバイスにてアナログ画像信号に変換され、該アナログ画像信号はADコンバータにてディジタル画像信号に変換され、該ディジタル画像信号は撮像画像として認識処理部203に入力される。
【0019】
認識処理部203は、撮像デバイス202を制御すると共に、該撮像デバイス202から取得した撮像画像に含まれている物体を認識してその位置を認識結果として取得する。
【0020】
RAM204は、認識処理部203が各種の処理を行うために用いるワークエリア、DMAC208により転送されたデータを格納するためのエリア、等の各種のエリアを適宜提供する。
【0021】
認識装置201は、CPU205からの指示に従って撮像や認識等の動作を行い、該認識の結果をRAM204に格納する。DMAC208はRAM204に格納された認識の結果をRAM207に転送し、CPU205は、RAM207に転送された認識の結果に基づいて各種の処理を実行する。
【0022】
認識装置201のより詳細な構成について、図1のブロック図を用いて説明する。処理部101は、撮像デバイス202から取得した撮像画像から特徴を抽出し、該特徴(演算の中間結果)をメモリ103に格納し、該格納した特徴を用いて次の演算を行う、という一連の処理を繰り返すことで、該撮像画像から階層的に特徴を抽出する。そして処理部101は、撮像画像から最終的に抽出された特徴に基づく認識結果(撮像画像に対する認識結果)を、例えばRAM204に格納する。さらに処理部101は、撮像画像から階層的に抽出された特徴を用いて、撮像デバイス202からの撮像画像の取得条件を制御するための制御データを生成し、該生成した制御データを処理部105に出力する。
【0023】
処理部105は、処理部101からの制御データに基づいて撮像デバイス202を制御することで、撮像デバイス202から処理部101が撮像画像を取得する取得条件を制御する。
【0024】
例えば、処理部105は、制御データに従って、光電変換後の信号に対するゲインや光電変換デバイス(フォトダイオード等)の電荷の蓄積時間(露光時間)、A/D変換部のA/D変換の特性等を制御する。本実施形態では、光電変換デバイスにおけるセンサ面を複数の領域に分割した場合におけるそれぞれの分割領域をブロックと称し、処理部105は、ブロック単位で取得条件を制御する。
【0025】
近年の半導体積層実装技術の実用化に伴い、制御ロジックをセンサ面に対して積層実装することでブロック単位や画素単位の読み出し制御を実現する事が可能になった。本実施形態に適用可能な積層デバイスの例を図6(a)に示す。光電変換素子を実装するセンサ層61(光電変換デバイスに対応)に対し、読み出し制御ロジックを実装するロジック層62(処理部105に対応)、大規模なメモリ及びその制御部を実装するメモリ層63(メモリ103に対応)を積層する。各層の間では貫通ビア等により信号を伝達する。
【0026】
ロジック層62の一例を図6(b)に示す。ロジック層62には、センサ層61における各ブロックに対応する制御回路ct(1,1)~ct(n,n)が設けられており、制御回路ctは、該制御回路ctに対応するブロックからのデータの読み出しを制御する。図6(b)は、センサ面におけるn個×n個のブロックのそれぞれについて取得条件(ゲインや露光時間等)を制御するための構成を示している。つまり画像中のn個×n個の部分画像のそれぞれについて撮像特性を制御することができる。
【0027】
なお、本実施形態では、処理部101もロジック層62やメモリ層63に実装するものとする。センサ層61に対して積層実装することで、より少ない遅延で制御データを処理部105にフィードバックすることができる。撮影環境や対象が高速に変化する場合、より少ない画像フレーム遅延で撮像デバイス202を制御することが望まれる。
【0028】
制御部102は、認識装置201が有する処理部101、処理部105、の動作制御を行う。処理部101の論理的な処理構造を含む認識装置201の構成例について、図3のブロック図を用いて説明する。処理部101は、認識ネットワーク302とセンサ制御ネットワーク313とを有する。
【0029】
認識ネットワーク302は、撮像デバイス202が撮像した撮像画像301中の特定物体を認識し、該認識した特定物体の位置を表す認識結果を出力する階層型ニューラルネットワークであり、本実施形態では5層のCNNであるものとして説明する。
【0030】
センサ制御ネットワーク313は、認識ネットワーク302内で生成された特徴マップから制御データを生成する階層型ニューラルネットワークであり、本実施形態では2層のCNNであるものとして説明する。
【0031】
先ず、認識ネットワーク302について説明する。303~307のそれぞれは、畳み込み演算、活性化関数演算、プーリング演算等を含む演算処理を表しており、図4に示す構成で実装可能な処理である。図4に示す構成については後述する。特徴マップ(Feature Map)308~311は、CNNにおける中間層と呼ばれる特徴マップであり、特徴マップ312は、CNNにおける最終層と呼ばれる特徴マップである。それぞれの特徴マップは、撮像画像301から階層的に抽出された2次元のデータであり、メモリ103に格納される。
【0032】
特徴マップ308は撮像画像301に対する演算処理303によって得られた特徴マップであり、特徴マップ309は、特徴マップ308から演算処理304によって得られた特徴マップである。特徴マップ310は、特徴マップ309から演算処理305によって得られた特徴マップであり、特徴マップ311は、特徴マップ310から演算処理306によって得られた特徴マップである。特徴マップ312は、特徴マップ311から演算処理307によって得られた特徴マップであり、撮像画像301に対する認識結果でもある。
【0033】
ここで、撮像画像301に対して認識ネットワーク302が行う2次元CNN演算の詳細について説明する。畳み込み演算のカーネル(係数マトリクス)サイズがcolumnSize×rowSize、前階層の特徴マップ数がLの場合、以下の式(1)に示すような積和演算により一つの特徴マップを算出する。
【0034】
【数1】
【0035】
input(x,y) : 2次元座標(x、y)での参照画素値
output(x,y): 2次元座標(x、y)での演算結果
weight(column,row):2次元座標(x+column、y+row)での重み係数
L:前階層の特徴マップ数
columnSize:2次元コンボリューションカーネルの水平方向サイズ
rowSize :2次元コンボリューションカーネルの垂直方向サイズ
2次元CNN演算では、式(1)に従って複数のコンボリューションカーネルを画素単位で走査しながら積和演算を繰り返し、最終的な積和演算結果を非線形変換(活性化処理)することで特徴マップを算出する。また、生成した特徴マップをプーリング処理により縮小して次の階層で参照する場合もある。特徴マップ308~312のそれぞれは、対応する一つの階層内に複数存在し、異なる重み係数群に対応して異なる特性の特徴マップが生成される。
【0036】
2次元CNN演算で使用する重み係数は事前の学習により定めるデータセットである。該重み係数は、バックプロパゲーション等の学習手法により、学習データと教師データ(正解を示すデータ)を用いて、画像処理システム外の学習装置(汎用のコンピュータなど)で事前に学習して収集しておく。
【0037】
次に、演算処理303~307を実現するための構成について、図4のブロック図を用いて説明する。データバッファ401は、畳み込み演算の参照データとなる前階層の特徴マップのデータ(式(1)におけるinput(x,y))の全てあるいはその一部をメモリ103から取得してバッファリングするためのメモリ回路である。
【0038】
乗算器402および累積加算器403はそれぞれ、乗算および累積加算を行う回路であり、式(1)の演算は、乗算器402および累積加算器403によって行われる。データバッファ404は、事前に学習によって得られた重み係数(式(1)におけるweight(column, row))の全てあるいは一部をメモリ103から所定の単位で読み出してバッファリングするメモリ回路である。乗算器402は、データバッファ404に格納されている重み係数を用いて乗算演算を行う。
【0039】
活性化処理器405は、式(1)に示す畳み込み演算結果(output(x,y))に対してReLU(Rectified Linear Unit, Rectifier)等の非線形関数を適用する演算を行う回路である。
【0040】
プーリング処理器406は、特徴マップを最大値フィルタ等の空間フィルタを用いて縮小し、該縮小した特徴マップをメモリ103に格納する回路である。プーリング処理しない場合、活性化処理器405による演算結果をメモリ103に格納する。プーリング処理する場合は、プーリング処理器406による処理結果をメモリ103に格納する。ここで格納する特徴マップが現階層の特徴マップとなる。現階層の特徴マップの算出が終了すると、そのデータを前階層の特徴マップとして次の階層の特徴マップの算出に用いる。このように、メモリ103に格納する特徴マップを順次参照しながら、複数の階層の特徴マップを算出する。制御部102が図4に示した各機能部の動作を制御して階層的な特徴抽出処理(2次元CNN演算処理)を実現する。
【0041】
CNNはこのように複数の階層に渡る特徴抽出を繰り返すことで識別対象の変動にロバストな認識処理を実現する。各階層の特徴抽出結果に従って、最終層における演算処理である演算処理307によって撮像画像301における所望の物体の存在を判定する。最終層の特徴マップ312が認識結果を表現する。特徴マップ312が表す認識結果は、例えば撮像画像301内の所望の物体の存在確率を2次元の情報として表現する信頼度マップとして出力される。なお、最終層における演算処理である演算処理307は前述した畳み込み演算ではなく、全結合型のニューラルネットワークや線形判別器で実装することもある。
【0042】
また、各階層の特徴マップ308~311は撮像画像301に対する特徴抽出結果を表現する。一般的には、下位層(撮像画像301を入力する層により近い階層)の特徴マップはエッジ等のローレベルの特徴を示し、上位層(認識結果により近い階層)の特徴マップは抽象度の高い特徴を示す。各特徴マップはパターン認識の対象や学習方法によって特性が異なる。
【0043】
次にセンサ制御ネットワーク313について説明する。センサ制御ネットワーク313は、制御データを処理部105に回帰する演算ネットワークである。314,315のそれぞれは、演算処理303~307のそれれと同様、畳み込み演算、活性化関数演算、プーリング演算等を含む演算処理を表しており、図4に示す構成で実装可能な処理である。
【0044】
本実施形態に係るセンサ制御ネットワーク313は、認識ネットワーク302における下位層の特徴マップ308を入力とし、該特徴マップ308から回帰データとしての制御データを生成する。特徴マップを認識ネットワーク302と共有することで回帰性能の向上・学習の容易化を期待すると共に、全体の演算コストを削減することができる。また、本実施形態では認識ネットワーク302と類似するネットワーク構造でセンサ制御ネットワーク313を構成しているため、図4に示す構成を認識ネットワーク302とセンサ制御ネットワーク313とで共有することができる。その結果、認識用の回路とは別個に制御データの生成用の回路を設ける必要はない。
【0045】
特徴マップ316は、特徴マップ308から演算処理314によって得られた特徴マップであり、特徴マップ317は特徴マップ316から演算処理315によって得られた特徴マップである。特徴マップ317は、制御データとして処理部105に回帰される。
【0046】
制御データは、センサ面に並ぶ各画素(撮像素子)の空間位置に対応する取得条件を指定するデータであり、例えば、特徴マップ内の位置に対応する画素のゲインや露光時間の指定に対応するデータとなる。制御データは、制御対象が1種類かつスカラー値で制御する場合、一枚の特徴マップで良い。制御対象が複数ある場合や制御パラメータがベクトルデータの場合は、制御データは複数の特徴マップとなる。
【0047】
図6(b)のロジック層62に対応する制御データの一例を図8に示す。図8に示す制御データは複数枚の特徴マップで構成されており、そのうちの1枚の特徴マップ218におけるrg(n,n)はct(n,n)に対応するブロックに対応する取得条件を表している。図8では、取得条件の値を濃淡で表現しており、取得条件の値とは、例えば、ゲインに対応する。
【0048】
なお、センサ制御ネットワーク313についても認識ネットワーク302と同様、画像処理システム外のコンピュータ等で事前に学習により重み係数を取得しておく。ここでの学習も認識ネットワーク302の学習と同様に教師データを利用して、認識ネットワーク302と連携して学習を行う。学習は更にセンサの特性を考慮してバックプロパゲーション等を利用して学習する。
【0049】
処理部105は、センサ制御ネットワーク313で回帰された制御データに従って撮像デバイス202の光電変換デバイスにおける各画素を制御する(例えばセンサ面における画素からのデータのゲインを、対応する取得条件の値に応じて制御する)。これにより処理部101は、認識処理に適した撮像画像を撮像デバイス202から取得することができる。ここで得られる撮像画像は人が観測して内容を理解・鑑賞するための画像とは異なり、認識処理の精度向上に好適な画像となる。
【0050】
なお、本実施形態では、センサ制御ネットワーク313における演算処理314はプーリング処理を含んでおり、その結果、特徴マップ308を縮小した特徴マップ316が得られ、演算処理315は該特徴マップ316を対象にして行われる。従って制御データ(特徴マップ317)のサイズは撮像画像301のサイズよりも小さい。即ち、複数の画素を単位とするブロック毎に取得条件を制御することになる。プーリングの割合などは処理部105で制御可能なブロックサイズを考慮して予め設定しておく。
【0051】
画像処理システムによるパターン認識処理の動作について、図5のタイミングチャートを用いて説明する。図5において「認識ネットワークX」は認識ネットワーク302のX回目の動作を表しており、「センサ制御ネットワークY」はセンサ制御ネットワーク313のY回目の動作を表している。図5では、3フレーム分の撮像画像のそれぞれについて認識ネットワーク302およびセンサ制御ネットワーク313による処理が行われる様子を示している。
【0052】
認識ネットワーク1とセンサ制御ネットワーク1とは並行して実行される。センサ制御ネットワーク1による処理結果として制御データ507が得られ、認識ネットワーク2は、「該制御データ507に応じた取得条件で撮像デバイス202から得られた次のフレームの撮像画像」に対して実行される。センサ制御ネットワーク2は認識ネットワーク2と並行して実行される。
【0053】
センサ制御ネットワーク2による処理結果として制御データ508が得られ、認識ネットワーク3は、「該制御データ508に応じた取得条件で撮像デバイス202から得られた次のフレームの撮像画像」に対して実行される。センサ制御ネットワーク3は認識ネットワーク3と並行して実行される。
【0054】
センサ制御ネットワーク3による処理結果として制御データ509が得られ、認識ネットワーク4は、「該制御データ509に応じた取得条件で撮像デバイス202から得られた次のフレームの撮像画像」に対して実行される。
【0055】
認識装置201の動作について、図9のフローチャートに従って説明する。なお、図9の各ステップにおける処理の詳細については上記の通りであるから、ここでは簡単に説明する。
【0056】
ステップS901では、認識ネットワーク302は、撮像デバイス202からの撮像画像を入力として、該撮像画像から階層的に特徴を抽出することで該撮像画像に対する認識処理を行う。
【0057】
ステップS901における階層的な特徴抽出において特定の階層の特徴マップが得られると(図3の例では特徴マップ308が得られると)、ステップS902の処理が開始される。ステップS902では、センサ制御ネットワーク313は、特定の階層の特徴マップを入力として、上記の処理を行うことで制御データを生成し、該生成した制御データを処理部105に対して出力する。そしてステップS903では、処理部105は、センサ制御ネットワーク313から取得した制御データに基づいて、撮像デバイス202からの撮像画像の取得条件をブロックごとに制御する。
【0058】
ステップS904では、制御部102は終了指示を受けたか否かを判断する。例えば、ユーザが不図示の操作部を操作して入力した終了指示を制御部102が取得しても良いし、特定の条件が満たされたことをCPU205が検知した場合にCPU205が発行した終了指示をDMAC208によって制御部102に転送しても良い。
【0059】
この判断の結果、制御部102が終了指示を受けた場合には、図9のフローチャートに従った処理は終了し、制御部102が終了指示を受けていない場合には、処理は図9のフローチャートの先頭に戻る。
【0060】
このように、センサ制御ネットワークは撮影対象の状況変化に応じて順次認識に適した撮影条件を設定し、認識ネットワークは該撮影条件に応じて高精度な認識処理を実行する。このように、本実施形態によれば、撮影環境に応じて認識に最適な画像を取得することが可能になり、認識精度の高い認識技術を実現することができる。
【0061】
[第2の実施形態]
本実施形態を含む以下の各実施形態では、第1の実施形態との差分について説明し、以下で特に触れない限りは第1の実施形態と同様であるものとする。本実施形態に係る認識装置201の構成例について、図7のブロック図を用いて説明する。図7に示した構成は、図1に示した構成に画像補正処理部706を加えた構成となっている。また、撮像デバイス202から出力される撮像画像は処理部101だけでなく画像補正処理部706にも入力され、処理部101から出力される制御データは処理部105だけでなく画像補正処理部706にも入力される。
【0062】
第1の実施形態では、撮像デバイス202が出力する撮像画像は認識処理に好適な画像として読み出されるため、人が観測する画像としては好ましくない。例えば、監視カメラ等においては、検出した物体を事後に人が確認するなどのケースがある。
【0063】
本実施形態では、画像補正処理部706は、撮像デバイス202から出力された撮像画像(つまり認識処理に好適な撮像画像)を、処理部101から出力された制御データに基づいて、人が観測する際に自然な画像に変換する。画像の変換は制御データが表す撮影条件であるゲインや露光時間に基づいて予め定めるアルゴリズムに従って変換することが可能である(いわゆる現像処理と呼ばれる画像処理を拡張することで対応が可能である)。また、画像補正処理部706もCNN等を利用して学習データに基づいて画像を変換するなどの手法を用いても良い。その場合、図4に示す構成をそのまま利用することができ、構成上追加となる回路が不要である。
【0064】
画像補正処理部706により変換された撮像画像の出力先は特定の出力先に限らず、画像処理システムの内外の表示部であっても良いし、画像処理システムの内外のメモリであっても良い。このように、本実施形態によれば、パターン認識に好適な画像の取得を実現すると共に、人が観測可能な画像を出力することができる。
【0065】
[第3の実施形態]
第1の実施形態では、2次元の画像センサを用いた構成を例に取り説明したが、センサは2次元の画像センサに限らず、センシングするデータの次元数やモダリティが異なる様々なセンサを用いた構成であっても良い。このようなセンサとしては、例えば、マイクロフォンや電波センサなどが挙げられる。つまり、第1の実施形態は、センサから取得したデータから階層的に特徴を抽出し、該抽出の結果に基づいて該データに対する認識結果を取得すると共に、該抽出の結果に基づいて該センサからのデータの取得条件を制御する、という構成の一例に過ぎない。
【0066】
また、第1の実施形態では、ブロック単位で取得条件を制御するケースについて説明したが、制御単位はブロックに限らず、画素であっても良いし、センサ面全体であっても良い。センサ面を単位に取得条件を制御する場合、センサ制御ネットワーク313の最終層の特徴マップを線形判別器に通した結果を制御データとしても良いし、該特徴マップに対してグローバルプーリング処理を施した結果を制御データとしても良い。
【0067】
また、第1の実施形態では、センサ制御ネットワーク313は、認識ネットワーク302の下位層の特徴マップを入力としていたが、入力する特徴マップは下位層の特徴マップに限らない。例えばセンサ制御ネットワーク313は、認識ネットワーク302の上位層の特徴マップを入力としても良いし、認識ネットワーク302の各階層の特徴マップから選択された階層の特徴マップを入力としても良い。該選択は制御部102が行っても良いし、ユーザが不図示の操作部を操作して行っても良いし、特定の形態に限らない。
【0068】
また、認識ネットワーク302やセンサ制御ネットワーク313の階層構造(階層の数や階層内の特徴マップの数など)は、認識対象や制御対象等に応じて適宜変更可能である。
【0069】
また、センサ制御ネットワーク313は、認識ネットワーク302の特徴マップではなく撮像デバイス202からの出力(撮像画像)を入力しても良い。その場合もセンサ制御ネットワーク313の学習時には認識ネットワーク302を利用して学習する。
【0070】
また、第1の実施形態では、最終層でパターン認識の信頼度や制御データを生成するケースについて説明したが、これに限らず、例えば、中間層の特徴マップを直接参照してパターン認識の信頼度や制御データを生成するようにしても良い。
【0071】
また、第1の実施形態では、撮像画像中の物体の位置を検出する画像処理システムについて説明したが、画像処理システムが行うタスクはこれに限らず、例えば、撮像画像中の物体の属性の認識や、撮像画像の内容の認識等、様々な認識を行うようにしても良い。
【0072】
また第1の実施形態では、階層的に特徴を抽出するためにCNNを用いたが、これに限らない。つまり、Multi Layer Perceptron、Restricted Boltzmann Machines、Capsule Network等の他の様々な階層的手法を用いて階層的に特徴を抽出するようにしても良い。また、Recursive Neural Network等の再帰的手法を用いても良い。
【0073】
第1の実施形態では、図4に示す構成をハードウェアで実装するケースについて説明したが、一部の構成、例えば、乗算器402、累積加算器403、活性化処理器405、プーリング処理器406をソフトウェア(コンピュータプログラム)で実装しても良い。この場合、このソフトウェアはROM206に格納しておき、DMAC208によってRAM204に転送して制御部102が実行することで、対応する機能部の機能を実現させることができる。
【0074】
また第1の実施形態では、図6に示す積層デバイスを適用したが、各積層への実装機能はコストや性能を考慮して様々な形態が可能である。また、読み出し制御の遅延が問題にならない応用の場合、認識ネットワーク302及びセンサ制御ネットワーク313を積層せずに異なるデバイス上に実装しても良い。
【0075】
また第1の実施形態では、純粋な認識処理に適用したケースについて説明したが、近年提案されている深層学習技術を応用した手法では、特定のパターンを認識するだけではなく、パターンの変形・変換等に利用する手法も提案されている。よって第1の実施形態はこれらの手法に適用することも可能である。
【0076】
なお、以上説明した各実施形態の一部若しくは全部を適宜組み合わせて使用しても構わない。また、以上説明した各実施形態の一部若しくは全部を選択的に使用しても構わない。
【0077】
(その他の実施形態)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【0078】
発明は上記実施形態に制限されるものではなく、発明の精神及び範囲から離脱することなく、様々な変更及び変形が可能である。従って、発明の範囲を公にするために請求項を添付する。
【符号の説明】
【0079】
101:処理部 102:制御部 103:メモリ 105:処理部 202:撮像デバイス
図1
図2
図3
図4
図5
図6
図7
図8
図9