(57)【要約】【課題】並列処理による高速化と早期棄却による高速化とを両立させる。【解決手段】画像識別装置１は、並列演算部３のデータ並列性を発現する並列数よりも小さい値で画像上の並列数を決定し、画像識別手法に含まれる類似構造を持つ複数の小識別器を順番に判断する判断順にしたがって当該画像識別手法に含まれる全ての小識別器の個数である全数の値よりも十分に小さく且つ早期棄却の間隔に近い値の個数を含むようにグループを決定する。画像上の並列数とグループ内の小識別器の個数とを乗じた個数の小識別器を処理単位として画像識別手法にしたがって並列処理し、その処理結果から、各画像位置毎に早期棄却を行うか否かの判断、識別結果の出力、画像上の識別位置の移動を行う。【選択図】図１
2016189108.tif 000002
【特許請求の範囲】
【請求項１】
外部から入力した画像データに基づいて検出対象物を認識するために、類似構造を有する複数の小識別器を順番に判断して早期棄却を行う画像識別手法を実行する画像識別装置（１）であって、
前記画像識別手法にしたがって並列処理する並列演算手段（３）と、
前記並列演算手段のデータ並列性を発現する並列数よりも小さい値で画像上の並列数を決定し、前記画像識別手法に含まれる複数の小識別器を順番に判断する判断順にしたがって当該画像識別手法に含まれる全ての小識別器の個数である全数の値よりも十分に小さく且つ早期棄却の間隔に近い値の個数を含むようにグループを決定する制御手段（２）と、を備え、
前記制御手段は、前記画像上の並列数と前記グループ内の小識別器の個数とを乗じた個数の小識別器を処理単位として前記画像識別手法にしたがって前記並列演算手段に並列処理させ、その処理結果から、各画像位置毎に早期棄却を行うか否かの判断、識別結果の出力、画像上の識別位置の移動を行うことを特徴とする画像識別装置。
【請求項２】
請求項１に記載した画像識別装置において、
前記制御手段は、画像上の識別位置を、各識別画像の範囲の一部ずつが重複するように割り付けることを特徴とする画像識別装置。
【請求項３】
請求項１に記載した画像識別装置において、
前記制御手段は、画像上の識別位置を、各識別画像の範囲が互いに隣接するように割り付けることを特徴とする画像識別装置。
【請求項４】
請求項１から３の何れか一項に記載した画像識別装置において、
前記制御手段は、画像上の並列数として、自装置の仕様により予め静的に決定された値、又は前記画像識別手法の実行時に動的に決定する値を用いることを特徴とする画像識別装置。
【請求項５】
請求項１から４の何れか一項に記載した画像識別装置において、
前記制御手段は、グループ内の小識別器の個数として、自装置の仕様により予め静的に決定された値、又は前記画像識別手法の実行時に動的に決定する値を用いることを特徴とする画像識別装置。
【請求項６】
外部から入力した画像データに基づいて検出対象物を認識するために、類似構造を有する複数の小識別器を順番に判断して早期棄却を行う画像識別手法にしたがって並列処理する並列演算手段（３）を用い、画像を識別する方法であって、
前記並列演算手段のデータ並列性を発現する並列数よりも小さい値で画像上の並列数を決定する第１の手順と、
前記画像識別手法に含まれる複数の小識別器を順番に判断する判断順にしたがって当該画像識別手法に含まれる全ての小識別器の個数である全数の値よりも十分に小さく且つ早期棄却の間隔に近い値の個数を含むようにグループを決定する第２の手順と、
前記画像上の並列数と前記グループ内の小識別器の個数とを乗じた個数の小識別器を処理単位として前記画像識別手法にしたがって前記並列演算手段に並列処理させ、その処理結果から、各画像位置毎に早期棄却を行うか否かの判断、識別結果の出力、画像上の識別位置の移動を行う第３の手順と、を行うことを特徴とする画像識別方法。
【請求項７】
請求項６に記載した画像識別方法において、
画像上の識別位置を、各識別画像の範囲の一部ずつが重複するように割り付けることを特徴とする画像識別方法。
【請求項８】
請求項６に記載した画像識別方法において、
画像上の識別位置を、各識別画像の範囲が互いに隣接するように割り付けることを特徴とする画像識別方法。
【請求項９】
請求項６から８の何れか一項に記載した画像識別方法において、
画像上の並列数として、画像識別装置（１）の仕様により予め静的に決定された値、又は前記画像識別手法の実行時に動的に決定する値を用いることを特徴とする画像識別方法。
【請求項１０】
請求項６から９の何れか一項に記載した画像識別方法において、
グループ内の小識別器の個数として、前記画像識別装置の仕様により予め静的に決定された値、又は前記画像識別手法の実行時に動的に決定する値を用いることを特徴とする画像識別方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像識別装置及び画像識別方法に関する。
【背景技術】
【０００２】
従来より、カメラにより撮影された画像を識別する画像識別装置が供されている（例えば特許文献１及び２参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−２１０００９号公報
【特許文献２】特開２０１４−６５８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
例えば車載の画像識別装置では、歩行者や他車両を対象として高速に実時間での識別が求められており、その実現のために並列処理を行うことがある。特にカメラから入力した画像データに歩行者や他車両が含まれているか否かを識別するために、画像中の様々な識別位置について、各識別位置の画像が検出対象物体を含むか否かを示すスコア値を算出する処理（スコア算出）を並列化して行うことがある。しかしながら、データ並列性を有する並列演算部による並列処理では、図９に示すように、何れかのスコア算出で早期棄却を行っても、処理時間が最長のスコア算出が終了するまで待つため、早期棄却の効果が弱い。この場合、データ並列性の並列数を低減すると、待ち時間を低減することができ、早期棄却の効果を高めることができるが、これでは並列処理の効果が弱くなる。このように並列処理による高速化と早期棄却による高速化とはトレードオフの関係にあり、これらを両立させることができないという問題があった。
【０００５】
本発明は、上記した事情に鑑みてなされたものであり、その目的は、並列処理による高速化と早期棄却による高速化とを両立させることができる画像識別装置及び画像識別方法を提供することにある。
【課題を解決するための手段】
【０００６】
請求項１に記載した画像識別装置によれば、並列演算手段は、画像識別手法にしたがって並列処理する。制御手段は、並列演算手段のデータ並列性を発現する並列数よりも小さい値で画像上の並列数を決定し、画像識別手法に含まれる複数の小識別器を順番に判断する判断順にしたがって当該画像識別手法に含まれる全ての小識別器の個数である全数の値よりも十分に小さく且つ早期棄却の間隔に近い値の個数を含むようにグループを決定する。ここで、制御手段は、画像上の並列数とグループ内の小識別器の個数とを乗じた個数を処理単位として画像識別手法にしたがって並列演算手段に並列処理させ、その処理結果から、各画像位置毎に早期棄却を行うか否かの判断、識別結果の出力、画像上の識別位置の移動を行う。
【０００７】
画像識別処理をグループに分割してグループ内で並列処理し、又、画像上の並列処理も行い、更に早期棄却への影響が小さいグループ内の小識別器の個数とするようにしたので、並列処理による高速化を図ることができる。グループ内の識別器の個数が全数と同じ値であったり早期棄却の間隔と比較して極めて大きな値であったりすると早期棄却の効果を十分に得られないが、グループ内の識別器の個数が識別器の全数の値よりも早期棄却の間隔に近い値となるようにしたので、早期棄却の効果を十分に得ることができ、早期棄却による高速化を図ることができる。これにより、並列処理による高速化と早期棄却による高速化とを両立させることができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の一実施形態を示す機能ブロック図
【図２】データ並列性を示す図
【図３】早期棄却を示す図
【図４】画像上の識別位置の走査を示す図
【図５】グループの単位を示す図（その１）
【図６】フローチャート
【図７】グループの単位を示す図（その２）
【図８】グループの単位を示す図（その３）
【図９】データ並列性の並列数による早期棄却と待ち時間との関係を示す図
【発明を実施するための形態】
【０００９】
以下、本発明を例えば車両（自動車）に搭載される構成に適用した一実施形態について図１から図８を参照して説明する。画像識別装置１は、例えば車両前方の景色を撮影するカメラから画像データを入力し、その入力した画像データに検出対象物体である歩行者や他車両等が含まれているか否かを識別する。画像識別装置１は、図１に示すように、制御部２（制御手段）と、並列演算部３（並列演算手段）とを有する。並列演算部３は、データ並列性を有する並列処理機である。データ並列性とは、図２に示すように、互いに依存関係のないデータに対して、同一の処理内容を並列実行するという並列処理機の特性であり、データ並列性の並列数とは並列処理の際に並列処理可能な数であり、ハードウェアの仕様（スペック）により規定されている。
【００１０】
制御部２は、画像データ入力部４から画像データを入力すると、その入力した画像データを並列演算部３と連携して演算処理し、その処理結果を処理結果出力部５に出力する。これら制御部２及び並列演算部３は、ソフトウェアにより構成されており、画像識別装置１のプロセッサが実行する制御プログラムの一部として構成されている。
【００１１】
制御部２は、類似構造を持つ複数の小識別器を順番に判断して早期棄却を行う画像識別手法を実行する。類似構造とは、例えばパターンマッチングやヒストグラムマッチング等のアルゴリズムが各小識別器で類似する構造である。早期棄却とは、小識別器を順番に判断してその結果から最終的な判断を行う処理において、小識別器の途中までの判断結果から、以降の判断を行わなくとも判断結果が確定し得る場合には以降の判断を中断することで、全体の処理時間を短縮する処理である。早期棄却の間隔は、図３に示すように定義する。即ち、図３（ａ）に示すように、早期棄却を行う小識別器から見て早期棄却を行う次の小識別器が連続して連結されていれば、早期棄却の間隔を「１」と定義する。図３（ｂ）に示すように、早期棄却を行う小識別器から見て早期棄却を行う次の小識別器が１個置きに連結されていれば、早期棄却の間隔を「２」と定義する。図３（ｃ）に示すように、早期棄却を行う小識別器から見て早期棄却を行う次の小識別器が１個置きに２個並列に連結されていれば、早期棄却の間隔を「３」と定義する。尚、小識別器とは、認識率はそこまで高くはないがシンプルで計算量が少ない識別処理を行う識別器である。又、後述する大識別器とは、複数の小識別器の判断結果を用いて、より高精度な判断を行う識別器である。
【００１２】
制御部２は、並列演算部３のデータ並列性を発現する並列数よりも小さい値で画像上の並列数を決定する。又、制御部２は、上記した画像識別手法に含まれる複数の小識別器を順番に判断する判断順にしたがって画像識別手法に含まれる全数（全ての小識別器の個数）の値よりも十分に小さく且つ早期棄却の間隔に近い値でグループに含まれる小識別器の個数を決定する（近い値の個数を含むようにグループを決定する）。
【００１３】
制御部２は、画像中の物体の識別処理を、画像上の識別位置の走査、画像上の各識別位置でのスコア算出の２段階で行う。
制御部２は、画像上の識別位置の走査（割り付け）を、図４に示すように、各識別画像の範囲の一部ずつが重複して「田」の字を形成するように走査する。制御部２は、このような「田」の字の位置関係を保ちつつ且つ処理を終了したどの識別位置とも重複しないように画像上の識別位置を走査する。即ち、制御部２は、このような「田」の字の位置関係を保つには、横方向に移動する際には１列分を飛ばして走査し、縦方向に移動する際には１行分を飛ばして走査する。
【００１４】
制御部２は、画像上の各識別位置でのスコア算出を、グループを単位として行う。具体的な例を以下に説明する。図５は、ＧＰＵ（Graphics Processing Unit）上でのSoftCascade識別器の実装を例示しており、１つの大識別器が１０００個の小識別器を有し、各小識別器が早期棄却を行う構成を示している。この場合、小識別器の全数は「１０００」である。又、各小識別器が早期棄却を行うので、早期棄却の間隔は「１」である。制御部２は、画像上の識別位置を、各識別画像の範囲の一部ずつが重複して「田」の字を形成するように割り付け、画像上の並列数を「４」に決定する（第１の手順を行う）。又、制御部２は、グループ内の小識別器の個数を、画像識別手法に含まれる全数の値よりも十分に小さく且つ早期棄却の間隔に近い値となるように、データ並列性の並列数を画像上の並列数で除した値として設定する。制御部２は、データ並列性の並列数が例えば「３２」である条件では、画像上の並列数が「４」の場合、グループ内の小識別器の個数を「８」に決定する（第２の手順を行う）。即ち、制御部２は、３２個の小識別器を処理単位として並列演算部３により並列にスコア算出を行う。処理単位とは、並列演算部３にて並列に同時に処理を行う処理のまとまりである。尚、制御部２は、これらの画像上の並列数及びグループ内の小識別器の個数として、画像識別装置１の仕様により予め静的に決定された値を用いても良いし、画像識別手法の実行時に動的に決定する値を用いても良い。
【００１５】
次に、上記した構成の作用について図６から図８を参照して説明する。
画像識別装置１において、制御部２は並列演算部３と連携して以下の処理を行う（第３の手順を行う）。制御部２は、現在の「処理単位」（図５参照）の位置に含まれる全ての小識別器について、データ並列性を有する並列演算部３で一括してスコア算出を行う（Ｓ１）。次いで、制御部２は、各グループにおける小識別器の演算結果（スコア値）を統合し、その統合結果と過去の小識別器の演算結果とに基づいて早期棄却を行うか否かを判断する（Ｓ２）。
【００１６】
次いで、制御部２は、スコア算出の終了条件が成立したか否かを判定する（Ｓ３）。制御部２は、最終の「処理単位」を終了しておらず、且つ全ての識別位置で早期棄却を行っていなければ、スコア算出の終了条件が成立していないと判定し（Ｓ３：ＮＯ）、「処理単位」の位置を進め（Ｓ４）、上記したＳ１に戻り、Ｓ１以降を繰り返して行う。即ち、制御部２は、現在の「処理単位」の位置が「１」であれば、「処理単位」の位置を「２」に進め、「処理単位」の位置が「２」についてＳ１以降を行う。
【００１７】
一方、制御部２は、最終の「処理単位」を終了した、又は全ての識別位置で早期棄却を行っていれば、スコア算出の終了条件が成立したと判定し（Ｓ３：ＹＥＳ）、スコア値を出力し（Ｓ５）、画像全体の処理を終了したか否かを判定する（Ｓ６）。制御部２は、画像全体の処理を終了していないと判定すると（Ｓ６：ＮＯ）、識別位置を「田」の字の位置関係を保ちながら移動し（Ｓ７）、上記したＳ１に戻り、Ｓ１以降を繰り返して行う。一方、制御部２は、画像全体の処理を終了したと判定すると（Ｓ６：ＹＥＳ）、一連の処理を終了する。
【００１８】
図５に示した構成では、画像上の並列数が「４」の場合、グループ内の小識別器の個数を「８」として並列処理を並列して行うことで、並列処理による高速化を図ることができる。又、グループ内の小識別器の個数を、画像識別手法に含まれる全数の値よりも十分に小さく且つ早期棄却の間隔に近い値となるように決定したことで、早期棄却による高速化を図ることができる。
【００１９】
図７は、別の構成の例であり、ＳＩＭＤ（Single Instruction Multiple Data）構造を持つハードウェアでのViolaJonesの実装を例示しており、カスケード段数が１００段であり、５０個の小識別器を単位とする構成を示している。この場合、小識別器の全数は「５０００」である。又、５０個の小識別器の単位が早期棄却を行うので、早期棄却の間隔は「５０」である。この場合も、制御部２は、画像上の識別位置を、各識別画像の範囲の一部ずつが重複して「田」の字を形成するように割り付け、画像上の並列数を「４」に決定する。又、制御部２は、グループ内の小識別器の個数を、画像識別手法に含まれる全数の値よりも十分に小さく且つ早期棄却の間隔に近い値となるように、データ並列性の並列数を画像上の並列数で除した値として設定し、データ並列性の並列数が例えば「２００」である条件では、画像上の並列数が「４」の場合、グループ内の小識別器の個数を「５０」に決定する。即ち、制御部２は、２００個の小識別器を「処理単位」としてスコア算出を行う。
【００２０】
図７の構成でも、画像上の並列数が「４」の場合、グループ内の小識別器の個数を「５０」として並列処理を並列して行うことで、並列処理による高速化を図ることができる。又、グループ内の小識別器の個数を、画像識別手法に含まれる全数の値よりも十分に小さく且つ早期棄却の間隔に近い値となるように決定したことで、早期棄却による高速化を図ることができる。
【００２１】
尚、以上は、識別位置ａ〜ｄを、各識別画像の範囲の一部ずつが重複して「田」の字を形成するように割り付ける構成を例示したが、識別位置ａ〜ｄが比較的近い位置関係であれば、図８に示すように、各識別画像の範囲の一部ずつが重複せずに互いに隣接するように割り付けても良い。識別位置ａ〜ｄが比較的近い位置関係であれば、特徴が類似した画像同士となる可能性が高い。即ち、画像上の識別位置を割り付ける方法としては、例えば画像のＸ方向（横方向）やＹ方向（縦方向）の幅や識別画像の範囲のＸ方向やＹ方向の幅に対する比率を用いて近い位置関係の条件を設定し、識別位置同士のＸ方向やＹ方向の間隔が当該条件を満たすように割り付けても良い。
【００２２】
以上説明したように本実施形態によれば、次に示す効果を得ることができる。
画像識別装置１において、並列演算部３のデータ並列性を発現する並列数よりも小さい値で画像上の並列数を決定し、画像識別手法に含まれる複数の小識別器を順番に判断する判断順にしたがって当該画像識別手法に含まれる全ての小識別器の個数である全数の値よりも十分に小さく且つ早期棄却の間隔に近い値でグループ内の小識別器の個数を決定する。そして、画像上の並列数とグループ内の小識別器の個数とを乗じた個数の小識別器を処理単位として画像識別手法にしたがって並列処理し、その処理結果から、各画像位置毎に早期棄却を行うか否かの判断、識別結果の出力、画像上の識別位置の移動を行う。
【００２３】
画像上の並列数とグループ内の小識別器の個数とを乗じた個数の小識別器を処理単位として画像識別手法にしたがってデータを並列処理するようにしたので、並列処理による高速化を図ることができる。又、グループ内の識別器の個数が全数と同じ値であったり早期棄却の間隔と比較して極めて大きな値であったりすると早期棄却の効果を十分に得られないが、グループ内の識別器の個数が識別器の全数の値よりも早期棄却の間隔に近い値となるようにしたので、早期棄却の効果を十分に得ることができ、早期棄却による高速化を図ることができる。これにより、並列処理による高速化と早期棄却による高速化とを両立させることができる。即ち、既存のハードウェアを利用する場合であれば、画像上の並列数及びグループ内の小識別器の個数を上記した手順により決定することで、データ並列性を持つ並列演算部３を効果的に活用することができ、並列処理による高速化と早期棄却による高速化とを両立させることができる。
【００２４】
又、画像上の識別位置を、各識別画像の範囲の一部ずつが重複するように割り付けるので、特徴が類似した画像同士を識別処理して各早期棄却のタイミングを近付けることができ、早期棄却の処理効率を高めることができる。又、画像上の識別位置を、各識別画像の範囲が互いに隣接するように割り付けても同様であり、特徴が類似した画像同士を識別処理して早期棄却の処理効率を高めることができる。
【００２５】
本発明は、上記した実施形態で例示したものに限定されることなく、その範囲を逸脱しない範囲で任意に変形又は拡張することができる。
本実施形態では、車両前方の景色を撮影するカメラにより撮影された車両前方の画像を識別する構成を例示したが、車載以外の用途のカメラにより撮影された画像を識別する構成でも良い。
【符号の説明】
【００２６】
図面中、１は画像識別装置、２は制御部（制御手段）、３は並列演算部（並列演算手段）である。
【図１】
2016189108.tif 000003
【図２】
2016189108.tif 000004
【図３】
2016189108.tif 000005
【図４】
2016189108.tif 000006
【図５】
2016189108.tif 000007
【図６】
2016189108.tif 000008
【図７】
2016189108.tif 000009
【図８】
2016189108.tif 000010
【図９】
2016189108.tif 000011