(57)【要約】  予め定義された対象物に係る少なくとも一部を動画像から検出して追跡する画像認識システム（１０）は、対象物を検出する対象物検出処理（Ｓ１１）と、所定箇所を追跡すべき箇所として特定する追跡箇所特定処理（Ｓ１２）と、追跡すべき箇所に基づいて、実際の追跡対象物を認識する追跡対象認識処理（Ｓ１３）と、追跡対象物を追跡する追跡処理（Ｓ１４）と、追跡対象物の挙動を判定する判定処理（Ｓ１５）とを実行可能に構成され、追跡箇所特定処理と、判定処理とを、ソフトウェアで実行する一方、対象物検出処理と、追跡対象認識処理と、追跡処理とをハードウェアで実行する。
2015129152.tif 000002
【特許請求の範囲】
【請求項１】
予め定義された対象物に係る少なくとも一部を動画像から検出して追跡する画像認識システムであって、
前記動画像から前記対象物を検出する対象物検出処理と、
前記対象物に係る少なくとも１つの所定箇所を追跡すべき箇所として特定する追跡箇所特定処理と、
前記追跡すべき箇所に基づいて、実際の追跡対象物を認識する追跡対象認識処理と、
前記追跡対象物を追跡する追跡処理と、
前記追跡処理の結果に基づいて前記追跡対象物の挙動を判定する判定処理とを実行可能に構成され、
前記追跡箇所特定処理と、前記判定処理とを、ソフトウェアで実行する一方、前記対象物検出処理と、前記追跡対象認識処理と、前記追跡処理とをハードウェアで実行することを特徴とする画像認識システム。
【請求項２】
請求項１の画像認識システムにおいて、
前記対象物は、人物であることを特徴とする画像認識システム。
【請求項３】
請求項１の画像認識システムにおいて、
前記対象物検出処理を実行可能な対象物検出部と、
前記追跡対象認識処理を実行可能な追跡対象認識部と、
前記追跡処理を実行可能な追跡部と、
前記追跡箇所特定処理および前記判定処理を実行可能なＣＰＵとを有するハードウェアを備えていることを特徴とする画像認識システム。
【請求項４】
請求項１の画像認識システムにおいて、
前記対象物検出処理を実行する対象物検出部は、少なくとも特徴量計算ユニットと、事後事象を格納する複数の事後事象メモリと、事後事象更新部と、スコア計算ユニットとを有し、
前記特徴量計算ユニットは、前記動画像から特徴量を算出し、
前記事後事象メモリは、少なくとも対象物画像における事後事象と非対象物画像における事後事象との両方を記憶し、
前記事後事象更新部は、前記対象物画像における事後事象と前記非対象物画像における事後事象とを前記特徴量のパターンに基づいて更新し、
前記スコア計算ユニットは、前記特徴量計算ユニットから得られる任意の特徴量のパターンに該当する事後事象を前記事後事象メモリから取得し、前記任意の特徴量のパターンに該当するスコアを計算することを特徴とする画像認識システム。
【請求項５】
請求項１の画像認識システムにおいて、
前記追跡処理を実行する追跡部は、画像断片における輝度勾配反復計算を行い、
前記輝度勾配反復計算は、前記画像断片を格納したメモリ参照を逐次行い、
前記輝度勾配反復計算を実施する計算ユニットを複数有し、
複数の独立した前記画像断片に対して各々の前記計算ユニットを対応付けて前記複数の画像断片における各々の輝度勾配反復計算を並列に実行することを特徴とする画像認識システム。
【請求項６】
予め定義された対象物に係る少なくとも一部を動画像から検出して追跡する処理を実行する半導体集積回路であって、
前記動画像から前記対象物を検出する処理を実行する対象物検出部と、
前記対象物に係る少なくとも１つの所定箇所を、実際の追跡対象物として認識する処理を実行する追跡対象認識部と、
前記追跡対象物を追跡する処理を実行する追跡部と、
前記所定箇所を特定する処理と、前記追跡部による追跡結果に基づいて前記追跡対象物の挙動を判定する処理とを実行するＣＰＵと、
前記対象物検出部、前記追跡対象認識部、および前記追跡部のそれぞれに対して、各処理に必要なデータを転送するＤＭＡコントローラと、
前記対象物検出部と、前記追跡対象認識部と、前記追跡部と、前記ＣＰＵと、前記ＤＭＡコントローラとを接続するデータバスとを備えていることを特徴とする半導体集積回路。
【請求項７】
請求項６の半導体集積回路において、
前記ＣＰＵは、前記対象物検出部、前記追跡対象認識部、前記追跡部、および前記ＤＭＡコントローラのそれぞれに対する動作制御を行うことを特徴とする半導体集積回路。
【請求項８】
請求項７の半導体集積回路において、
前記対象物検出部、前記追跡対象認識部、前記追跡部、および前記ＤＭＡコントローラのそれぞれに接続される制御バスと、
前記ＣＰＵによる動作制御を前記制御バスに中継するシーケンサとを更に備えていることを特徴とする半導体集積回路。
【請求項９】
請求項６の半導体集積回路において、
前記ＣＰＵは、前記対象物検出部の処理が所定の単位時間で終了するように制御し、当該処理の結果を用いて、前記所定箇所を特定する処理と、前記追跡対象認識部の動作制御と、前記追跡部の動作制御と、前記追跡対象物の挙動を判定する処理とを、前記所定の単位時間に連続する複数の単位時間のそれぞれで繰り返し実行することを特徴とする半導体集積回路。
【請求項１０】
請求項９の半導体集積回路において、
前記ＣＰＵは、前記所定箇所を特定する処理と、前記追跡対象認識部の動作制御と、前記追跡部の動作制御と、前記追跡対象物の挙動を判定する処理とのうち２以上を、前記複数の単位時間のいずれかにおいて並行して実行することを特徴とする半導体集積回路。
【請求項１１】
請求項１０の半導体集積回路において、
前記ＣＰＵは、前記所定の単位時間が終了した後、再度前記対象物検出部による処理が実行されるとき、当該処理が、前記所定箇所を特定する処理と、前記追跡対象認識部の動作制御と、前記追跡部の動作制御と、前記追跡対象物の挙動を判定する処理とのうち２以上が実行される単位時間においてなされるように制御することを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、画像認識システムに関し、特に、効率的な画像認識処理に関する。
【背景技術】
【０００２】
近年、監視カメラ、車載安全装置、およびデジタルスチルカメラなどにおいて、人物や非人物などの対象物を検出する画像認識技術が幅広く使用されている。さらに、対象物を追跡してその挙動を判定することによって、不審人物の特定やマーケティング情報の収集、あるいは危険予測を行うといった幅広い応用が期待されている。【０００３】
対象物を追跡する技術として、オプティカルフローを用いた画像認識処理が知られている（例えば特許文献１参照）。また、画像認識処理の１つとして、ソフトウェアによる識別器を用いて、人の顔の向きを判定する技術も開示されている（例えば特許文献２参照）。また、ソフトウェアによる別の画像認識処理として、人体のエッジに着目した特徴量に基づいて、人の姿勢を推定する技術が開示されている（例えば、非特許文献１、非特許文献２参照）。【０００４】
一方、画像認識処理をハードウェアによって実現する、再構成可能なプロセッサが知られている（例えば非特許文献３参照）。また、再構成可能なプロセッサについては、特許文献３および特許文献４にも開示されている。また、画像認識処理には様々な処理が必要であるところ、複数種類の演算を効率的に実行可能な処理装置が知られている（例えば特許文献５）。【０００５】
また、Ｍｉｃｒｏｓｏｆｔ（登録商標）社のＫｉｎｅｃｔセンサを用いたジェスチャ認識処理のように、センサで３Ｄデータを生成し、センサの出力に対してソフトウェア処理を行うものもある。【０００６】
このように、画像認識処理に関する技術は様々であるが、その技術の進歩は早いため、最新の技術に柔軟に対応しやすいという点を考慮すると、画像認識処理をソフトウェアで実現することが現実的であるといえる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第８，３７４，３９３号明細書
【特許文献２】米国特許第７，９５７，５６７号明細書
【特許文献３】特開２００１−２３６４９６号公報
【特許文献４】特開２００７−１４１１３２号公報
【特許文献５】特開２０１０−１３４７１３号公報
【非特許文献】
【０００８】
【非特許文献１】Pedro.F Felzenszwalb, Ross.B Girshick, David McAllester, Deva Ramanan, “Object Detection with Discriminatively Trained Part-Based Models”, Pattern Analysis and Machine Intelligence, IEEE Transactions, Vol.32, no.9, pp.1627-1645, Sept. 2010
【非特許文献２】Yi Yang, Deva Ramanan, “Articulated pose estimation with flexible mixtures-of-parts”, Computer Vision and Pattern Recognition (CVPR), 2011 IEEE Conference, pp.1385-1392, 20-25 June 2011
【非特許文献３】新淳、他４名、「低消費電力応用志向プロセッサ〜画像認識プロセッサＩＭＡＰＣＡＲ２を例として〜」、ＮＥＣ技報、Ｖｏｌ．６２、Ｎｏ．３／２００９、ｐ．９７−１０１
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところが、画像認識処理の全てをソフトウェアで実現すると、様々なアルゴリズムに柔軟に対応しやすい反面、処理の全てをＣＰＵ（Central Processing Unit）等が担うことになるため、高性能なＣＰＵ等が必要であったり、多くのＣＰＵ等が必要であったりする。したがって、コストがかかるだけでなく、処理性能に限界があったり、消費電力が多くなったりするおそれがある。特に、高精細な画像を処理する場合、周波数が高い高性能なＣＰＵ等による処理が必須であるため、消費電力の増大は顕著になる。【００１０】
一方、画像認識処理の全てをハードウェアで実現すると、各処理に適したハードウェアを用いることができるため処理性能を向上でき、高性能なＣＰＵ等を用いる必要がないため低コストかつ低消費電力化を図ることができる。その反面、ソフトウェアで実現した場合に得られる柔軟性が損なわれたり、回路規模が増大したりするおそれがある。【００１１】
つまり、画像認識処理をソフトウェアあるいはハードウェアのいずれかで実現することによって得られる効果はトレードオフの関係にある。【００１２】
従来技術には、単に画像認識処理等に関する内容が開示されているに過ぎず、上記トレードオフを考慮した、最適なシステム構成については言及されていない。【００１３】
また、上記Ｋｉｎｅｃｔセンサでは、光学系に制限があり、例えば、光学ズームを用いた遠距離の対象物や、広角レンズや魚眼レンズを用いた広範囲の空間の対象物のジェスチャ認識を実現するのは困難である。そのため、ソフトウェアによる処理が当該センサを用いた場合（ゲーム等）に制限されうる。【００１４】
かかる点に鑑みて、本開示は、回路規模、消費電力、処理性能、および柔軟性のそれぞれに最適な画像認識システムを提供することを課題とする。
【課題を解決するための手段】
【００１５】
上記課題を解決するため本開示によって次のような解決手段を講じた。すなわち、予め定義された対象物に係る少なくとも一部を動画像から検出して追跡する画像認識システムは、前記動画像から前記対象物を検出する対象物検出処理と、前記対象物に係る少なくとも１つの所定箇所を追跡すべき箇所として特定する追跡箇所特定処理と、前記追跡すべき箇所に基づいて、実際の追跡対象物を認識する追跡対象認識処理と、前記追跡対象物を追跡する追跡処理と、前記追跡処理の結果に基づいて前記追跡対象物の挙動を判定する判定処理とを実行可能に構成され、前記追跡箇所特定処理と、前記判定処理とを、ソフトウェアで実行する一方、前記対象物検出処理と、前記追跡対象認識処理と、前記追跡処理とをハードウェアで実行する。【００１６】
あるいは、予め定義された対象物に係る少なくとも一部を動画像から検出して追跡する処理を実行する半導体集積回路は、前記動画像から前記対象物を検出する処理を実行する対象物検出部と、前記対象物に係る少なくとも１つの所定箇所を、実際の追跡対象物として認識する処理を実行する追跡対象認識部と、前記追跡対象物を追跡する処理を実行する追跡部と、前記所定箇所を特定する処理と、前記追跡部による追跡結果に基づいて前記追跡対象物の挙動を判定する処理とを実行するＣＰＵと、前記対象物検出部、前記追跡対象認識部、および前記追跡部のそれぞれに対して、各処理に必要なデータを転送するＤＭＡコントローラと、前記対象物検出部と、前記追跡対象認識部と、前記追跡部と、前記ＣＰＵと、前記ＤＭＡコントローラとを接続するデータバスとを備えている。【００１７】
これによると、動画像中の、例えば人物のような対象物を検出し、その人物の手などの所定箇所を追跡すべき箇所として特定することができる。そして、追跡すべき箇所が移動する際に、動画像中に他の移動体等が存在していても、追跡すべき箇所が実際の追跡対象物として認識されるため、常に追跡対象物を捕らえたままその軌跡を追跡することができる。したがって、追跡対象物の軌跡を判定することで、その挙動を判定することができる。【００１８】
従来、動画像から対象物を検出して、その挙動を判定するまでの各処理について、様々な研究がなされ、技術が進歩している。そのため、新たな技術に柔軟に対応すべく、これら各処理をソフトウェアで実現することが現実的となっている。【００１９】
ところが、全ての処理をソフトウェアで実現すると、最新技術への柔軟性を確保しやすく、回路規模の増大を抑制しやすい反面、処理性能を向上するには、高性能なＣＰＵ等が必要であり、消費電力が高くなるばかりか、処理性能がＣＰＵ等に依存するため制限されるという懸念がある。【００２０】
一方、全ての処理をハードウェアで実現すると、処理性能の向上や、低消費電力化を図りやすい反面、ソフトウェアで実現することによって得られるメリットを犠牲にしてしまうことになる。【００２１】
そこで、本願発明者らは、画像認識処理について、ハードウェアおよびソフトウェアのそれぞれで実現する場合のメリットを最大限に得ることに着目した。すなわち、本願発明者らは、上記各処理のうち、追跡箇所特定処理と、判定処理とをソフトウェアで実現し、対象物検出処理と、追跡対象認識処理と、追跡処理とをハードウェアで実現することが最適であることを見いだした。【００２２】
これにより、ソフトウェアによって得られる、柔軟性の確保および回路規模の増大抑制というメリットを得ながらも、ハードウェアによって得られる、低消費電力化、処理性能向上というメリットを得ることができる。
【発明の効果】
【００２３】
本開示によれば、回路規模、消費電力、処理性能、および柔軟性のそれぞれに最適な画像認識システムを提供することができる。
【図面の簡単な説明】
【００２４】
【図１】一実施形態に係る画像認識システムの概要を説明するための図である。
【図２】（Ａ）および（Ｂ）は一実施形態に係るハードウェアで実現される処理の例を示すフローチャートである。
【図３】一実施形態に係る画像認識システムの具体的な処理の例を示す図である。
【図４】図３に示す処理例を、システム階層化した場合の図である。
【図５】図４に示すハードウェアを構成する半導体集積回路のブロック図である。
【図６】一実施形態に係る半導体集積回路におけるデータの転送動作の例を説明するための図である。
【図７】一実施形態に係る画像認識システムの各処理のタイミングの例を説明するための図である。
【図８】一実施形態に係る画像認識システムの各処理のタイミングの別の例を説明するための図である。
【図９】（Ａ）および（Ｂ）は一実施形態に係る画像認識システムの効果を説明するための図である。
【図１０】一実施形態に係る画像認識システムにて追跡対象認識処理を実行するための構成例を示す図である。
【図１１】（Ａ）および（Ｂ）は図１０の構成の動作を説明するための図である。
【図１２】図１０の構成による追跡対象認識処理を説明するための図である。
【図１３】一実施形態に係る画像認識システムにて追跡処理のために画像ピラミッドを用いて実行されるサーチフローを示す概念図である。
【図１４】一実施形態に係る画像認識システムにて追跡処理のために反復実行される計算の内容を説明するための図である。
【図１５】一実施形態に係る画像認識システムにて追跡処理のために並列に反復実行される計算のタイミング図である。
【発明を実施するための形態】
【００２５】
以下、本開示の一実施形態について図面を用いて説明するが、各図面において共通する符号は、同一の要素または処理を示す。
【００２６】
＜画像認識システムの概要＞
図１は、一実施形態に係る画像認識システムの概要を説明するための図である。本実施形態に係る画像認識システム１０は、入力される動画像に含まれる対象物を検出し、対象物に関する所定箇所を追跡することによって、その挙動を判定する、といった画像認識処理を行う。そして、挙動の判定結果に応じて、適切なアプリケーションが決定される。画像認識システム１０による各処理は、ソフトウェアおよびハードウェアによって実現される。
【００２７】
画像認識システム１０において、対象物検出処理Ｓ１１（以下、処理Ｓ１１と表記する）と、追跡対象認識処理Ｓ１３（以下、処理Ｓ１３と表記する）と、追跡処理Ｓ１４（以下、処理Ｓ１４と表記する）とはハードウェアで実現され、追跡箇所特定処理Ｓ１２（以下、処理Ｓ１２と表記する）と、判定処理Ｓ１５（以下、処理Ｓ１５と表記する）とは、ソフトウェアで実現される。
【００２８】
従来、画像認識処理に関する研究がなされており、現在では、その技術の進歩は早いため、対象物を検出してからその挙動を判定するまでの処理において、新たな技術に柔軟に対応しやすくするために、これら各処理をソフトウェアで実現することが一般的となっている。例えば、ＯｐｅｎＣＶ（Open Source Computer Vision Library）を用いて、画像認識処理をソフトウェアにより実現可能であることが知られている。
【００２９】
ところが、全ての処理をソフトウェアで実現すると、様々な技術に柔軟に対応しやすく、ハードウェアで実現する場合に比べて回路規模の増大を抑制しやすい反面、処理性能がＣＰＵ等に依存するため、高性能化が制限されてしまう。また、高性能なＣＰＵ等を高い周波数で動作させると消費電力も高くなってしまうという懸念もある。
【００３０】
一方、全ての処理をハードウェアで実現すると、処理性能の向上や低消費電力化を図りやすい反面、ソフトウェアで実現することによって得られる柔軟性等のメリットが損なわれやすい。このように、ソフトウェア処理とハードウェア処理とで、得られる効果はトレードオフの関係にある。
【００３１】
そこで、本願発明者らは、このトレードオフの関係を踏まえ、次の点に着目して、これら各処理を、ソフトウェアで実現するか、あるいはハードウェアで実現するかの切り分けを行うこととした。
【００３２】
ハードウェアで実現すべき処理は、
（１）ソフトウェアのような柔軟性がなくても、既に汎化されたものである。
（２）本質的にソフトウェア処理として効率が悪く、ハードウェア処理の方が効率がよい。
【００３３】
このように、本願発明者らは、上記２点を満たす処理をハードウェアによって実現することで、画像認識システム１０のシステム構成を最適化することができると考えた。
【００３４】
処理Ｓ１１は、動画像に含まれる対象物として、例えば人物を検出する。処理Ｓ１１は、入力される動画像の画像データを探索し、予め機械学習させておいた対象物の画像が、画像データに含まれているか否かを判定するものである。なお、対象物は人物以外であってもよく、学習によって予め定義可能なものであればよい。
【００３５】
ここで、機械学習とは、一般的な教師付き機械学習のことを指す。例えば、対象物と非対象物とを含む画像群から、画像から得られた特徴量（輝度勾配ヒストグラム（ＨＯＧ：Histograms of Oriented Gradients））や局所輝度比較バイナリパターン（ＬＢＰ：Local Binary Pattern））と、ラベル（対象物または非対象物）との対応関係を取得する。そして、この対応関係を統計処理して、特徴量の全組み合わせの中の対象物を示す集合を分離することによって行われる学習である。
【００３６】
したがって、処理Ｓ１１は、予め機械学習させておいた画像データを用いて、動画像内の全画素を探索する識別器型検出器による一般的な検出処理によって実現することができる。なお、対象物を人物の顔としてもよく、人物等の少なくとも一部を対象物としてもよい。
【００３７】
このように、処理Ｓ１１は、全画素について繰り返す処理であるため、処理の高速化等の観点から、ソフトウェアよりも、ハードウェアによって実現することが好ましいといえる。なお、対象物を学習するためのデータはメモリ等に格納しておけばよい。
【００３８】
処理Ｓ１２は、処理Ｓ１１によって検出された対象物について、その所定箇所としての例えば手や顔などを、追跡すべき箇所として特定する。なお、追跡すべき箇所は、対象物に関する少なくとも一部であってもよく、対象物全体であってもよい。また、対象物の複数箇所として、例えば両手を追跡すべき箇所として特定してもよい。処理Ｓ１２は、例えば顔認識処理のように、画像データ内に、対象物の所定箇所（例えば顔）が存在するか否かによって、その所定箇所を追跡すべき箇所として特定することができる。
【００３９】
また、処理Ｓ１１によって対象物として人物の顔が検出された場合、そのことをもって動画像に人物が存在するという前提のもと、その人物の手を追跡すべき箇所として特定してもよい。つまり、追跡すべき箇所は、対象物の一部でなくてもよく、対象物からその存在が推測可能な部分であってもよい。
【００４０】
このように、処理Ｓ１２は、顔認識処理等のように様々な実装形態が考えられ、その技術進歩が早いため、ソフトウェアによって実現して、柔軟性を持たせることが好ましいといえる。
【００４１】
処理Ｓ１３は、処理Ｓ１２によって特定された箇所に基づいて、画像認識システム１０で実際に追跡するための追跡対象物を認識する。処理Ｓ１３は、画像データを探索し、例えば人の手の部分など、予め指定された特定箇所の画像（テクスチャ）が画像データに含まれているか否かを検出する。含まれている場合には、追跡対象物が認識されていることになる。また、処理Ｓ１３の実行時には、テクスチャの学習と検出とが並行して行われ、逐次、繰り返されるテクスチャの検出に反映される。これにより、処理Ｓ１３において、手の指が曲がったり伸びたりするなど、追跡対象物の形状が変化しても常に追跡対象物を認識することができる。
【００４２】
このように、処理Ｓ１３は、予め指定されたテクスチャを画像データから探索する処理や、逐次変化するテクスチャを学習するといった処理を繰り返し行うものであるため、性能面において処理の高速化が必要である。一方、これらの処理は、識別器型検出器を用いた一般的な検出処理によって実現することができる。したがって、処理Ｓ１３は、ハードウェアによって実現することが好ましいといえる。なお、テクスチャの逐次学習結果はメモリ等に格納される。
【００４３】
処理Ｓ１４は、処理Ｓ１３によって認識された追跡対象物を追跡する。また、処理Ｓ１４では、現在追跡している追跡対象物に関するデータを処理Ｓ１３にフィードバック可能であり、このフィードバックによって、処理Ｓ１３における逐次学習が可能となる。処理Ｓ１４は、例えば、オプティカルフローのLucas-Kanade法を用いて、画像データ内の任意の箇所の画像（テクスチャ）の動きベクトル（オプティカルフロー、あるいはモーションフロー）を算出することにより実現することができる。
【００４４】
このように、処理Ｓ１４は、オプティカルフローのような一般的な手法を用いて実現可能であるため、処理の高速化等の高性能化を行いやすくするべく、ハードウェアによって実現することが好ましいといえる。
【００４５】
処理Ｓ１５は、処理Ｓ１４による追跡対象物の追跡結果に基づいて、追跡対象物の挙動を判定する。
【００４６】
処理Ｓ１５は、追跡対象物の挙動を判定するため、様々な対象物に柔軟に対応する必要がある。例えば、画像認識システム１０を車載安全装置に適用する場合には、追跡対象物としてのドライバ（あるいはドライバの顔）の挙動が脇見運転に該当するかどうかを判定することができる。また、画像認識システム１０を店舗内の監視カメラに適用する場合には、様々な商品が陳列された棚から、客がどの商品に手を伸ばしたかを判定することができる。
【００４７】
さらに、挙動の判定手法については、様々な研究が進んでおり、今後の技術動向を考慮すると、最新の技術に柔軟に対応できることが好ましい。
【００４８】
したがって、処理Ｓ１５は、ソフトウェアによって実現することが好ましいといえる。
【００４９】
このように、図１に示す各処理が連係しあって、本実施形態に係る画像認識システム１０が実現される。
【００５０】
図２（Ａ）および図２（Ｂ）は、一実施形態に係るハードウェアで実現される処理の例を示すフローチャートである。図２（Ａ）は、対象物検出処理および追跡対象認識処理の概要の例を、図２（Ｂ）は、追跡処理の概要の例を示すフローチャートである。
【００５１】
処理Ｓ１１，Ｓ１３，Ｓ１４のそれぞれをハードウェアで実現する場合、ハードウェアによって、各処理に必要なバリエーションに対応すればよい。
【００５２】
具体的に、画像データ２０内の所定の領域ＲＯＩ（Region Of Interest）に含まれる画素データに基づいて、対象物のエッジ部分の特徴量が生成される（Ｓ２１）。特徴量の生成に関して、所定の計算式を用いればよく、参照する画素の位置および計算式に用いるパラメータ、といったバリエーションに対応すればよい。
【００５３】
特徴量が生成されると、その特徴量を示すインデックスと、確からしさを示すスコア（尤度）とが対応付けられたＬＵＴ（Look up table）が検索され、インデックスに対応するスコアが決定される（Ｓ２２）。ＬＵＴは、例えばＳＲＡＭ（Static Random Access Memory）に格納され、その値が逐次更新可能であり、ＬＵＴの内容を更新することを学習と呼ぶ場合がある。したがって、バリエーションとしての、ＬＵＴの内容に対応すればよい。
【００５４】
そして、ＬＵＴから得られたスコアが累算され、その結果と閾値とが比較されることによって、対象物および追跡対象物が判定される（Ｓ２３）。この処理では、バリエーションとしての、スコアの累算回数と閾値とに対応すればよい。なお、ＬＵＴには、特徴量とスコアとが、予め機械学習等によって与えられている。
【００５５】
このように、上記各処理は汎化されており、ソフトウェアのような柔軟性がなくてもハードウェアで実現しやすく、ハードウェアを、上述した各バリエーションに対応可能なように構成すればよい。
【００５６】
また、図２（Ｂ）では、処理Ｓ１４について、オプティカルフローのＬＫ法を用いる場合を例に挙げている。
【００５７】
オプティカルフローでは、画像データ２０の領域ＲＯＩに含まれる画素データに基づいて、輝度勾配が生成される（Ｓ２４）。輝度勾配の生成に関する計算式は固定的である。
【００５８】
次に、輝度勾配に基づいて、座標変位（例えば動きベクトル）を示すフロー量がフロー行列計算によって算出される（Ｓ２５）。フロー量の算出に関する計算式は固定的である。
【００５９】
そして、フロー量に基づいて、追跡対象物の動きが収束したかどうかの判定が行われ、収束したときのフロー量（どこに移動したか）が出力される（Ｓ２６）。したがって、バリエーションである、収束の判定条件に対応すればよい。
【００６０】
このように、オプティカルフローでは、Ｓ２４〜Ｓ２６が反復して行われるため、処理の高速化の観点からハードウェアで実現することのメリットは大きいといえる。
【００６１】
図３は、一実施形態に係る画像認識システムの具体的な処理例を示す図である。なお、図３では、対象物が人物であり、追跡対象物が手である場合を例にしている。
【００６２】
入力される動画像の任意の時刻における画像３０に人物３１が含まれている場合、処理Ｓ１１において、対象物として人物３１が検出される。
【００６３】
人物３１が検出されると、処理Ｓ１２において、その人物３１の両手３２，３３が追跡すべき箇所として特定される。なお、片手３２のみが追跡すべき箇所として特定されてもよい。
【００６４】
両手３２，３３が特定されると、処理Ｓ１３，Ｓ１４において、逐次、両手３２，３３の認識と追跡とが並行して行われる。これにより、両手３２，３３の形状が変わったり、手の形状に近い物体が存在したりしても、両手３２，３３を実際の追跡対象物として、逐次学習しながら追跡可能となる。
【００６５】
なお、処理Ｓ１１，Ｓ１３では、図２（Ａ）のＳ２１〜Ｓ２３で示す処理が実行される。また、処理Ｓ１４では、図２（Ｂ）のＳ２４〜Ｓ２６で示す処理が実行される。
【００６６】
その後、例えば所定の時間、両手３２，３３の追跡が行われると、処理Ｓ１５において、両手３２，３３の挙動が判定される。なお、両手３２，３３の移動が停止してから所定の時間経過後に処理Ｓ１５を実行してもよい。このような処理により、人物のジェスチャ認識が可能となる。
【００６７】
そして、処理Ｓ１５における判定結果に基づいて、処理Ｓ１６において、両手３２，３３の挙動に応じたアプリケーションの動作が決定される。なお、本実施形態に係る画像認識システム１０の動作結果に応じたアプリケーションは任意である。例えば、画像認識システム１０が車載安全装置に適用される場合、挙動判定の結果がドライバの脇見運転に該当するようであれば、ドライバに注意を促すようなアプリケーションを動作させることができる。
【００６８】
このように、処理Ｓ１１〜Ｓ１６が繰り返される。なお、例えば、処理Ｓ１５の後に、再度、処理Ｓ１３，Ｓ１４を実行してもよい。また、処理Ｓ１１〜Ｓ１５の途中で、対象物や追跡対象物が変更された場合には、それに応じて処理を実行し直してもよい。
【００６９】
図４は、図３に示す処理例を、システム階層化した場合の図である。
【００７０】
図４に示すように、例えば、処理Ｓ１１，Ｓ１３，Ｓ１４は、ハードウェア５０によって実装され、処理Ｓ１２，Ｓ１５は、ソフトウェアであるミドルウェア５３によって実装される。
【００７１】
処理Ｓ１１，Ｓ１３，Ｓ１４、および処理Ｓ１２，Ｓ１５の連係は、ドライバ５１とアプリケーションプログラミングインタフェースであるＡＰＩ５２とを介して行われる。また、処理Ｓ１６は、その処理の内容に適したアプリケーション５４によって実現される。
【００７２】
このように、本実施形態では、ハードウェア処理とソフトウェア処理とが連係することにより、ソフトウェア処理による柔軟性の維持および回路規模の増大抑制、ならびに、ハードウェア処理による性能の向上および低消費電力化を実現することができる。
【００７３】
＜半導体集積回路の構成＞
図５は、図４に示すハードウェアを構成する半導体集積回路のブロック図である。ハードウェアは、上述した画像認識処理を実行可能な半導体集積回路５０であり、ＣＰＵ５０１と、マイクロコードシーケンサ５０２と、対象物検出部５０３と、追跡対象認識部５０４と、追跡部５０５と、これらに対応する複数のローカルメモリであるＬＭＥＭ５０６と、ＤＭＡ（Direct Memory Access）コントローラ５０７と、支援ＤＳＰ（Digital Signal Processor）５０８と、制御バス５０９と、データバス５１０と、ＤＲＡＭ（Dynamic Random Access Memory）５１１とを有する。
【００７４】
ＣＰＵ５０１、マイクロコードシーケンサ５０２、対象物検出部５０３、追跡対象認識部５０４、追跡部５０５、ＤＭＡコントローラ５０７、および支援ＤＳＰ５０８はそれぞれ、データバス５１０に接続されている。
【００７５】
ＣＰＵ５０１は、データバス５１０を介してＤＲＡＭ５１１から必要なデータを取得し、処理Ｓ１２，Ｓ１５，Ｓ１６を行う。また、ＣＰＵ５０１は、図４のＡＰＩから呼び出されることにより、マイクロコードシーケンサ５０２にアクセスし、処理Ｓ１２，Ｓ１５の結果やデータバス５１０から取得したデータ等をマイクロコードシーケンサ５０２に設定し、マイクロコードでマイクロコードシーケンサ５０２の動作を制御する。
【００７６】
マイクロコードシーケンサ５０２は、制御バス５０９を介して、対象物検出部５０３、追跡対象認識部５０４、追跡部５０５、ＤＭＡコントローラ５０７、および支援ＤＳＰ５０８のそれぞれに接続されている。
【００７７】
また、マイクロコードシーケンサ５０２は、マイクロコードに応じて、対象物検出部５０３、追跡対象認識部５０４、追跡部５０５、ＤＭＡコントローラ５０７、および支援ＤＳＰ５０８のそれぞれに対する動作制御を行う。これにより、ＣＰＵ５０１による、対象物検出部５０３、追跡対象認識部５０４、追跡部５０５、ＤＭＡコントローラ５０７、および支援ＤＳＰ５０８のそれぞれの動作制御が中継される。
【００７８】
マイクロコードシーケンサ５０２の動作制御により、対象物検出部５０３、追跡対象認識部５０４、追跡部５０５、ＤＭＡコントローラ５０７、および支援ＤＳＰ５０８が起動される。このとき、処理Ｓ１１，Ｓ１３，Ｓ１４に必要なパラメータ等がそれぞれ設定される。なお、対象物検出部５０３、追跡対象認識部５０４、追跡部５０５、ＤＭＡコントローラ５０７、および支援ＤＳＰ５０８が起動すると、これらはそれぞれに応じた処理を実行するため、所定の期間、ＣＰＵ５０１による動作制御は不要となる。
【００７９】
対象物検出部５０３は、マイクロコードシーケンサ５０２の制御に従って、対応するＬＭＥＭ５０６にアクセスし、処理Ｓ１１を実行する。
【００８０】
追跡対象認識部５０４は、マイクロコードシーケンサ５０２の制御に従って、対応するＬＭＥＭ５０６にアクセスし、処理Ｓ１３を実行する。
【００８１】
追跡部５０５は、マイクロコードシーケンサ５０２の制御に従って、対応するＬＭＥＭ５０６にアクセスし、処理Ｓ１４を実行する。
【００８２】
処理Ｓ１１，Ｓ１３，Ｓ１４の結果はそれぞれ、対応するＬＭＥＭ５０６およびデータバス５１０を介してＤＲＡＭ５１１に格納される。
【００８３】
ＤＭＡコントローラ５０７は、処理Ｓ１１，Ｓ１３，Ｓ１４に必要なデータをＤＲＡＭ５１１から読み出して、各ＬＭＥＭ５０６に同時並行的に転送する。処理Ｓ１１，Ｓ１３，Ｓ１４のそれぞれは、ハードウェアにより実装されているため、ＤＭＡコントローラ５０７は、アクセスすべきＤＲＡＭ５１１のアドレスを容易に予測することができる。したがって、ＤＭＡコントローラ５０７は、ＤＲＡＭ５１１から各ＬＭＥＭ５０６にデータを並列に転送することができる。これにより、対象物検出部５０３、追跡対象認識部５０４、および追跡部５０５のそれぞれがＤＲＡＭ５１１に直接アクセスすることによるパフォーマンスの劣化を抑制することができる。
【００８４】
支援ＤＳＰ５０８は、対象物検出部５０３、追跡対象認識部５０４、および追跡部５０５に対して、付加的な処理を提供する。これにより、処理Ｓ１１，Ｓ１３，Ｓ１４をハードウェアで実現した場合の柔軟性の低下を抑制することができる。支援ＤＳＰ５０８は、例えば、処理Ｓ１１，Ｓ１３，Ｓ１４の前処理や、処理結果の補正処理の実行が可能である。また、支援ＤＳＰ５０８は、処理Ｓ１１，Ｓ１３，Ｓ１４の連係処理や、ＣＰＵ５０１の処理を支援してもよい。
【００８５】
このように、処理Ｓ１２，Ｓ１５，Ｓ１６をＣＰＵ５０１で処理し、処理Ｓ１１，Ｓ１３，Ｓ１４をそれぞれに対応するハードウェアで実装することで、ＣＰＵ５０１の負荷を低減しつつ、高性能な画像認識処理を高速に実行することができる。
【００８６】
＜半導体集積回路の動作例＞
図６は、一実施形態に係る半導体集積回路におけるデータの転送動作の例を説明するための図である。なお、縦軸は時間、横軸はハードウェアで実行される処理を表す。
【００８７】
以下、ＤＭＡコントローラ５０７によるデータの転送動作について説明する。なお、図中の三角印は、ＤＭＡコントローラ５０７がデータ転送するタイミングを示す。
【００８８】
図６に示すように、対象物検出部５０３、追跡対象認識部５０４、追跡部５０５、およびＤＭＡコントローラ５０７のそれぞれは、マイクロコードシーケンサ５０２からの、各処理に必要な設定がなされることにより並列動作が可能となる。
【００８９】
まず、マイクロコードシーケンサ５０２は、ＤＭＡコントローラ５０７に対して、対象物検出部５０３、追跡対象認識部５０４、および追跡部５０５のそれぞれの処理に必要なデータ等をＤＲＡＭ５１１から転送するように設定する（メモリ転送設定）。これにより、ＤＭＡコントローラ５０７は、ＤＲＡＭ５１１からＬＭＥＭ５０６にデータを転送するメモリ転送制御を実行し、処理Ｓ１１に必要なデータのＬＭＥＭ５０６への転送を開始する（５０３関連転送）。
【００９０】
ＤＭＡコントローラ５０７は、対象物検出部５０３、追跡対象認識部５０４、および追跡部５０５のそれぞれの処理用に例えば３ｃｈずつの独立したチャネルを有する（合計９ｃｈ）。
【００９１】
マイクロコードシーケンサ５０２は、対象物検出部５０３に対して、処理Ｓ１１に関する設定を行う（Ｓ１１の設定）。これにより、対象物検出部５０３は処理Ｓ１１を実行する。
【００９２】
具体的に、対象物検出部５０３において、特徴量生成処理（図２（Ａ）のＳ２１）が実行されるとき、都度、ＬＭＥＭ５０６とのデータ転送が可能となる。また、ＬＵＴ検索処理（図２（Ａ）のＳ２２）が実行されるとき、その処理の開始時に一度データ転送が行われる。さらに、累算、閾値判定処理（図２（Ａ）のＳ２３）が実行されるとき、その処理の最終段階で一度データ転送が行われる。このように、それぞれの処理について独立したデータ転送が可能である。
【００９３】
また、ＤＭＡコントローラ５０７は、処理Ｓ１３に必要なデータのＬＭＥＭ５０６への転送を開始する（５０４関連転送）。
【００９４】
そして、マイクロコードシーケンサ５０２は、追跡対象認識部５０４に対して、処理Ｓ１３に関する設定を行う（Ｓ１３の設定）。これにより、追跡対象認識部５０４は処理Ｓ１３を実行する。処理Ｓ１３では、図２（Ａ）に示すＳ２１〜Ｓ２３が実行される。なお、このとき、ＬＵＴの内容が逐次更新される、逐次学習が並行して実行される。
【００９５】
さらに、ＤＭＡコントローラ５０７は、処理Ｓ１４に必要なデータのＬＭＥＭ５０６への転送を開始する（５０５関連転送）。
【００９６】
そして、マイクロコードシーケンサ５０２は、追跡部５０５に対して、処理Ｓ１４に関する設定を行う（Ｓ１４の設定）。これにより、追跡部５０５は処理Ｓ１４を実行する。処理Ｓ１４では、図２（Ｂ）に示すＳ２４〜Ｓ２６が実行される。
【００９７】
その後、対象物検出部５０３、追跡対象認識部５０４、追跡部５０５、およびＤＭＡコントローラ５０７のそれぞれの処理が終了すると、その結果はＣＰＵ５０１に通知され、以後、処理が繰り返し実行される。
【００９８】
このように、処理Ｓ１１，Ｓ１３，Ｓ１４のそれぞれにおいて、図６中の三角印のタイミングで、ＤＭＡコントローラ５０７によるデータ転送が独立して実行される。
【００９９】
なお、２つ以上の処理が連係して、お互いの処理内容に応じて、並行して実行されてもよい。この場合、上述したようなＤＭＡ転送を用いて、データ転送をしながら各処理を同時進行させることが可能である。また、１つの処理の結果を一旦ＤＲＡＭ５１１に格納し、再度、ＬＭＥＭ５０６に転送し、処理を順次パイプライン的に進めることも可能である。
【０１００】
また、図６に示す各設定、つまり各処理の順序は、図６に示した順序に限られない。これは、各処理Ｓ１１，Ｓ１３，Ｓ１４のそれぞれが、所定の時間内に完了するために十分な時間があるように開始され、所定の時間内において、互いに協働する処理が適切なタイミングで同時に動作できればよいからである。
【０１０１】
また、ＤＭＡコントローラ５０７における各処理用のチャネル数は任意であり、チャネル数は各処理の内容に応じて異なっていてもよく、合計は９ｃｈに限らない。
【０１０２】
図７は、一実施形態に係る画像認識システムの各処理のタイミングの例を説明するための図である。図７では、図４に示す処理Ｓ１１〜処理Ｓ１５によって、画像データ（フレームデータ）を連続して処理する場合の動作タイミングの一例を説明する。なお、図７において、横軸は時間、縦軸は処理対象のフレームデータを示す。
【０１０３】
単位時間Ｔ１にて、フレーム１に対して処理Ｓ１１が実行される。処理Ｓ１１の結果として得られた対象物（例えば人物の顔）のフレーム１上における座標に関する情報６１はデータバス５１０を介してＣＰＵ５０１に渡される。
【０１０４】
単位時間Ｔ２にて、座標情報６１を用いて、ＣＰＵ５０１による処理Ｓ１２が実行され、追跡すべき箇所（例えば人物の手）が特定される。処理Ｓ１２の結果として得られた追跡箇所のフレーム１上の座標に関する情報６２は、ＡＰＩ５２およびＣＰＵ５０１を介して処理Ｓ１３を実行する追跡対象認識部５０４に渡される。
【０１０５】
単位時間Ｔ３にて、座標情報６２を用いて、処理Ｓ１３，Ｓ１４が並行して実行される。また、処理Ｓ１３，Ｓ１４の実行中に、フレーム２に対する処理Ｓ１２に用いるための、情報６２が補正された情報６３が算出される。つまり、情報６３は、１つのフレームに対する処理Ｓ１２の結果である追跡箇所の座標情報が補正された情報である。そして、情報６３は、単位時間Ｔ３において並行して実行されるフレーム２に対する処理Ｓ１２に反映される。なお、同一単位時間内のデータのやりとりは、ＤＭＡコントローラ５０７によるＤＭＡ転送によって実現される。
【０１０６】
情報６３を用いた、フレーム２に対する処理Ｓ１２の結果は、処理Ｓ１３を実行する追跡対象認識部５０４に渡される。これにより、処理Ｓ１３において、ＬＵＴの内容が更新され逐次学習が実行される。
【０１０７】
単位時間Ｔ４では、単位時間Ｔ３までの処理の結果に基づいて、ＣＰＵ５０１による処理Ｓ１５が行われ、追跡対象物の挙動が判定される。このように、単位時間Ｔ１〜Ｔ４において、フレーム１に対する追跡対象物の挙動判定の結果が得られる。
【０１０８】
また、単位時間Ｔ４では、フレーム２に対する処理Ｓ１３，Ｓ１４が同時並行的に実行される。
【０１０９】
以降、処理Ｓ１２〜Ｓ１５がパイプライン的に繰り返され、フレーム毎の挙動判定が実行される。
【０１１０】
単位時間Ｔ５では、フレーム５に対して再度処理Ｓ１１が行われる。このとき、処理Ｓ１１は、フレーム２〜４に対する処理Ｓ１２〜Ｓ１５と同時並行的に実行される。
【０１１１】
以降、処理群６４と処理群６５とが繰り返され、フレーム毎の挙動判定結果が得られる。なお、処理群６４では、座標情報６１，６２が用いられて、処理Ｓ１１〜Ｓ１５が実行されるのに対して、処理群６５では、座標情報６２が補正された情報６３が用いられて、処理Ｓ１２〜Ｓ１５が実行される。
【０１１２】
以上のように各処理のタイミングを制御することによって、単位時間Ｔ３，Ｔ４，Ｔ６，Ｔ７では、ハードウェアによる処理Ｓ１３，Ｓ１４の同時並行的な実行が可能となり、単位時間Ｔ５では、ハードウェアによる処理Ｓ１１，Ｓ１３，Ｓ１４の同時並行的な実行が可能となる。つまり、１つの単位時間において、２以上の処理の実行が可能である。
【０１１３】
なお、図７では、処理Ｓ１１が実行されるインターバルを４単位時間毎としているが、このインターバルは任意である。
【０１１４】
また、図７では、１つのフレームに対して、同じ単位時間に複数の処理が実行される場合について説明しているが、図８に示すように、フレーム毎に、処理Ｓ１１〜Ｓ１５が１つの単位時間で実行されるようにしてもよい。
【０１１５】
図８は、一実施形態に係る画像認識システムの各処理のタイミングの別の例を説明するための図である。処理Ｓ１１〜Ｓ１５が、図８のようなタイミングで実行される場合でも、例えば単位時間Ｔ５において、ハードウェアによる処理Ｓ１１，Ｓ１３，Ｓ１４の同時並行的な実行が可能であるため、処理の高速化を図ることができる。
【０１１６】
図９（Ａ）および図９（Ｂ）は、一実施形態に係る画像認識システムの効果を説明するための図である。図９（Ａ）は、画像認識処理の全てをソフトウェアによって実現した場合を説明するための図であり、図９（Ｂ）は、本実施形態に係る画像認識システムで画像認識処理を実現した場合を説明するための図である。
【０１１７】
図９（Ａ）に示すように、画像認識処理の全てをソフトウェアで実現する場合、つまり、上述した処理Ｓ１１〜Ｓ１５の全てをソフトウェアで実現する場合、画像データ２０に含まれる領域ＲＯＩに係るデータが１つずつ順次読み出され、このデータに対してＣＰＵによって、対象物の検出、追跡箇所の特定、追跡、および挙動の判定のそれぞれに係る演算処理が逐次実行される。なお、これら複数の演算処理のそれぞれを、図９（Ａ）では、演算Ａ〜演算Ｘで示している。
【０１１８】
このとき、ＣＰＵは、後段の演算を実行するにあたり前段の演算結果を用いる。具体的に、ＣＰＵは、演算Ｂを実行するにあたり、演算Ａの結果を用いるため、処理の高速化には限界がある。そして、最終段である演算Ｘの実行が終了すると、１つの領域ＲＯＩに対する処理結果が出力されるとともに、別の領域ＲＯＩに係るデータを読み出すためのアドレスの決定処理が行われる。
【０１１９】
このように、画像認識システム１０で実行される処理の全てをソフトウェアで実現すると、ＣＰＵによる、データへのランダムアクセスや各種演算の繰り返しが発生してしまう。また、アクセスすべきアドレスの決定処理も発生してしまう。特に、図２（Ａ）および図２（Ｂ）に示す処理は反復的な処理が支配的であるため、ソフトウェア処理では、高性能なＣＰＵ等を用いたとしても、処理の高速化に限界がある。例えば、フレームレートが３０ｆｐｓ以上で、フルＨＤ（High Definition）のような高精細な動画像を扱う場合、ソフトウェアのみによる画像認識処理では３３ｍｓ以内に完了することが困難である。
【０１２０】
これに対して、図９（Ｂ）に示すように、本実施形態に係る画像認識システム１０では、ＤＭＡコントローラ５０７によって、複数の領域ＲＯＩに係るデータのアドレスが予測可能であるため、必要なデータは、各処理Ｓ１１，Ｓ１３，Ｓ１４に対応するＬＭＥＭ５０６に同時並行的に転送することができる。
【０１２１】
各ＬＭＥＭ５０６にデータが転送されると、処理Ｓ１１，Ｓ１３，Ｓ１４のそれぞれは独立かつ並行して実行され、並列処理された結果の出力が可能であるため、高速な処理を実現することができる。
【０１２２】
このように、本実施形態では、ソフトウェア処理として、処理Ｓ１２，Ｓ１５が実行され、ハードウェア処理として、処理Ｓ１１，Ｓ１３，Ｓ１４が実行されるため、フルＨＤのような高精細な動画像を扱う場合であっても、画像認識処理を３３ｍｓ以内で完了することができる。つまり、図９（Ａ）の場合と比較して、画像認識処理に要する時間を１／３０以下とすることができる。
【０１２３】
以上、本実施形態に係る画像認識システムおよび半導体集積回路５０では、処理Ｓ１２，Ｓ１５をソフトウェアで実現し、処理Ｓ１１，Ｓ１３，Ｓ１４を専用のハードウェアで実現するようにしている。つまり、画像認識システム１０を、単にソフトウェア処理とハードウェア処理とに切り分けるのではなく、上述した（１），（２）に着目して構成している。その結果、ソフトウェア処理によって実現した場合に得られる、柔軟性の確保および回路規模の増大抑制といったメリットと、ハードウェア処理によって実現した場合に得られる、消費電力の低減、コストの削減、処理性能の向上といったメリットとを享受することができる。
【０１２４】
したがって、本実施形態によると、回路規模、消費電力、処理性能、および柔軟性のそれぞれにおいて、最適な画像認識システム１０および半導体集積回路５０を構成することができる。
【０１２５】
最後に、追跡対象認識処理Ｓ１３および追跡処理Ｓ１４の詳細例を説明する。
【０１２６】
図１０は、一実施形態に係る画像認識システムにて追跡対象認識処理Ｓ１３を実行するための構成例を示す図である。また、図１１（Ａ）および図１１（Ｂ）は、図１０の構成の動作を説明するための図である。
【０１２７】
図１０において、７０１はイメージ積分ユニット、７０２は積分値選択ユニット、７０３は事後事象メモリ、７０４はスコア計算ユニットである。ここで、イメージ積分とは、画像中の任意矩形領域内の画素レベルの合計値を算出することを表す（図１１（Ａ）参照）。具体的には画像を２次元方向に積分した積分画像を保持しておき、任意矩形の４点での積分画像値を選択ユニット７０２により取り出すことで、任意矩形領域内の画素レベルの合計値を得ることができる（図１１（Ｂ）参照）。
【０１２８】
事後事象とは、後述するイメージ積分値を基に作られる特徴量の特定パターンに該当する事象（Posteriors）の数を表す。具体的には特徴量を数値化したものをインデックスとした配列メモリの各要素に事象の数を記憶することで実現する。事象の数は正解画像における事象（ｐ：Positive）と不正解画像における事象（ｎ：Negative）との２種類を設定し、後述する逐次学習過程で特定値ｐ、ｎを各々累算する（図１０内の記述：＋ｐ、＋ｎ）。
【０１２９】
スコア計算とは、前述の事後事象の値を用いて、特徴量に応じた正解画像に対する尤度を求めることを示す。スコア（Ｓｃｏｒｅ）の計算の一例として、事後事象の値ｐ、ｎを用いて、
Ｓｃｏｒｅ  ＝  ｐ／（ｐ＋ｎ）
という定義を用いることができる。
【０１３０】
図１２は、図１０の構成による追跡対象認識処理Ｓ１３を説明するための図である。ここでは、逐次学習過程について説明する。７０５に示すように画像全体を探索して正解画像を探す。ここで正解画像は前述のスコア値から尤度が高い画像を選択することと、追跡処理Ｓ１４から得られる時系列から推測される正解画像の位置とから特定される。この正解画像の中から、７０６に示すようにランダム、あるいは特定ルールで設定された複数の矩形領域ペアを決定し、矩形領域ペアの積分値の大小比較結果を１ビットの特徴量とする。複数の矩形領域ペアから複数ビットの特徴量が得られるため、これをインテックスとして、７０７に示すように特定パターンに対する事後事象（ｐ）として定義できる。
【０１３１】
また、画像全体を探索して上記正解画像に該当しない画像については不正解画像として定義し、同様に７０８、７０９、７１０に示すように複数の矩形領域ペアから得られる特徴量を不正解画像における事後事象（ｎ）として定義できる。
【０１３２】
これら事後事象の算出後、前述の特定値ｐ、ｎの累算によって、事後事象メモリ７０３の更新が実現できる。
【０１３３】
また、事後事象の算出結果は例えば７０４に示すように各々スコア値として尤度を計算することに用い、さらに７１１に示すように平均スコア値として使用することもできる。
【０１３４】
次に、図１３、図１４および図１５を用いて、追跡処理Ｓ１４の詳細例を説明する。図１３はサーチフローを示す概念図、図１４は計算内容の説明図、図１５は計算のタイミング図である。
【０１３５】
一般的に知られるLucas-Kanade法を用いる場合を示す。追跡処理Ｓ１４では時系列の２つの画像（過去と現在）を参照する。まず、図１３の８０１、８０２に示すように複数の縮小（本実施形態では各々１／２倍の縮小）を行った画像ピラミッドを形成する。最も小さい画像レイヤから後述する特徴点探索を行い、大きな画像レイヤでの探索に段階的に移行する。これは概念的には大局的な探索から、より詳細な画像での探索を行うという意味を持つ。
【０１３６】
各々の画像レイヤにおいて、図１４のように、特徴点を中心として８０４、８０５に示すような画像断片（本実施形態では特徴点を中心とする９画素×９画素）の画素レベル（輝度）を用いた反復計算を行う。Lucas-Kanade法では輝度勾配を算出する。ここで特徴点の座標を（ｘ，ｙ）とし、過去画像におけるその座標の輝度をＩｐ（ｘ，ｙ）、現在画像におけるその座標の輝度をＩｃ（ｘ，ｙ）とすると、特徴点における輝度勾配Ｉｘ、Ｉｙ、Ｉｔは、
Ｉｘ＝Ｉｐ（ｘ＋１，ｙ）−Ｉｐ（ｘ−１，ｙ）
Ｉｙ＝Ｉｐ（ｘ，ｙ＋１）−Ｉｐ（ｘ，ｙ−１）
Ｉｔ＝Ｉｐ（ｘ，ｙ）−Ｉｃ（ｘ，ｙ）
から算出できる。また、輝度勾配から、オプティカルフロー８０３の反復計算のための座標変位量は、次の式で算出できる。
【０１３７】
【数１】
2015129152.tif 000003
【０１３８】
上記数式から判るように、本反復計算では座標変位量を計算するために都度画像の参照を必要とし、また次の変位量を計算するためには該当座標を特定する必要があり、図１５の８０７に示すような計算の依存関係が存在する。そこで複数の画像断片を並列に計算するデータパスを設け、図１４の８０６に示すように複数の画像断片毎の反復計算を並列処理する。８０６は、例えば座標位置が特定された状態から、座標変位量を求め（下向きの矢印）、次の座標位置を特定し（上向きの矢印）、またその座標変位量を求める、という反復が並列して生じている様子を概念的に表している。画像断片は各々独立しているため、このようにすることで図１５の８０８に示すように計算の依存関係を排除し、並列処理による計算効率化を実現できる。
【産業上の利用可能性】
【０１３９】
本開示に係る画像認識システムは、回路規模、消費電力、処理性能、および柔軟性のそれぞれが最適であるため、より高精細な画質の画像認識処理の高速化等に有用である。
【符号の説明】
【０１４０】
１０  画像認識システム
５０  ハードウェア（半導体集積回路）
Ｓ１１  対象物検出処理
Ｓ１２  追跡箇所特定処理
Ｓ１３  追跡対象認識処理
Ｓ１４  追跡処理
Ｓ１５  判定処理
５０１  ＣＰＵ
５０２  マイクロコードシーケンサ（シーケンサ）
５０３  対象物検出部
５０４  追跡対象認識部
５０５  追跡部
５０７  ＤＭＡコントローラ
５０９  制御バス
５１０  データバス
【図１】
2015129152.tif 000004
【図２】
2015129152.tif 000005
【図４】
2015129152.tif 000006
【図５】
2015129152.tif 000007
【図６】
2015129152.tif 000008
【図７】
2015129152.tif 000009
【図８】
2015129152.tif 000010
【図９】
2015129152.tif 000011
【図１０】
2015129152.tif 000012
【図１１】
2015129152.tif 000013
【図３】
2015129152.tif 000014
【図１２】
2015129152.tif 000015
【図１３】
2015129152.tif 000016
【図１４】
2015129152.tif 000017
【図１５】
2015129152.tif 000018
【国際調査報告】
2015129152.tif 000019
2015129152.tif 000020
2015129152.tif 000021
2015129152.tif 000022