(57)【要約】【課題】複数ステージの学習モデルデータを用いたオブジェクト検知処理において、精度低下を抑制しつつ、検知開始タイミングを早める。【解決手段】それぞれが特徴点の修正ベクトルの導出に寄与するＮ（Ｎは２以上の整数）ステージの学習モデルデータを用いて、入力画像内の初期の特徴点を段階的に修正してオブジェクトの特徴点を検出する画像処理装置１０において、少なくとも起動時において、ワークエリア部１５へのＮステージの学習モデルデータのロードが完了する前から、修正ベクトル導出部および特徴点修正部は、特徴点の修正処理を開始し、修正ベクトル導出部は、ステージｔ（１≦ｔ≦Ｎ）の修正ベクトルを導出する際に、ワークエリア部１５にステージｔの学習モデルデータがロードされていない場合、他のステージの学習モデルデータを代用して修正ベクトルを導出する。【選択図】図１
2018147240.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが特徴点の修正ベクトルの導出に寄与するＮ（Ｎは２以上の整数）ステージの学習モデルデータを用いて、入力画像内の初期の特徴点を段階的に修正してオブジェクトの特徴点を検出する画像処理装置であって、
前記Ｎステージの学習モデルデータをロードするためのワークエリア部と、
入力画像内の初期の各特徴点の周辺の特徴量または１つ前のステージにおいて修正された各特徴点の周辺の特徴量をもとに、前記ワークエリア部に保持される、対応するステージの学習モデルデータを参照して各特徴点の修正ベクトルを導出する修正ベクトル導出部と、
前記入力画像内の各特徴点を、導出された各修正ベクトルをもとに修正する特徴点修正部と、を備え、
少なくとも本画像処理装置の起動時において、前記Ｎステージの学習モデルデータを記録している記録部から前記ワークエリア部への前記Ｎステージの学習モデルデータのロードが完了する前から、前記修正ベクトル導出部および前記特徴点修正部は、特徴点の修正処理を開始し、
前記修正ベクトル導出部は、ステージｔ（１≦ｔ≦Ｎ）の修正ベクトルを導出する際に、前記ワークエリア部にステージｔの学習モデルデータがロードされていない場合、他のステージの学習モデルデータを代用して修正ベクトルを導出することを特徴とする画像処理装置。
【請求項２】
前記修正ベクトル導出部は、ステージｔ（１≦ｔ≦Ｎ）の修正ベクトルを導出する際に、前記ワークエリア部にステージｔの学習モデルデータがロードされていない場合、前記ワークエリア部に既にロードされている学習モデルデータの内、最も近いステージの学習モデルデータを代用して修正ベクトルを導出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記記録部から前記ワークエリア部への前記Ｎステージの学習モデルデータのロード順序は、ステージ１を含み一部のステージを飛ばしたステージ群を昇順に順次ロードした後、飛ばしたステージを順次ロードする順序であることを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記Ｎステージの学習モデルデータの前記ワークエリア部へのロード順序を決定するロード順序決定部と、
前記ロード順序決定部で決定されたロード順序に基づいて、前記Ｎステージの学習モデルデータをステージ単位で順次ロードする学習モデルデータロード部と、をさらに備え、
前記ロード順序決定部は、複数のロード順序候補の中から、テストデータに対する特徴点の修正処理において正解特徴点との誤差の平均が最小となるロード順序候補を、使用するロード順序に決定することを特徴とする請求項１から３のいずれかに記載の画像処理装置。
【請求項５】
各ステージで導出される特徴点の修正ベクトルの信頼度を判定する信頼度判定部をさらに備え、
前記信頼度判定部は、ステージｔで導出された修正ベクトルの信頼度が基準値に満たない場合、ステージｔの特徴点の修正を無効にすることを特徴とする請求項１から４のいずれかに記載の画像処理装置。
【請求項６】
前記信頼度判定部は、ステージｔで導出された複数の修正ベクトルの長さの平均値が、ステージ（ｔ−１）で導出された複数の修正ベクトルの長さの平均値より所定値以上大きい場合、ステージｔの複数の特徴点の修正を無効にすることを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記記録部には、前記Ｎステージの学習モデルデータが検知対象のオブジェクトごとに記録されており、
検知対象が第１オブジェクトから第２オブジェクトに切り替わる際、前記記録部から前記ワークエリア部への前記第２オブジェクトのＮステージの学習モデルデータのロードが完了する前から、前記修正ベクトル導出部および前記特徴点修正部は、前記第２オブジェクトの特徴点の修正処理を開始し、
前記修正ベクトル導出部は、前記第２オブジェクトの特徴点の修正処理において、ステージｔ（１≦ｔ≦Ｎ）の修正ベクトルを導出する際に、前記ワークエリア部にステージｔの学習モデルデータがロードされていない場合、他のステージの学習モデルデータを代用して修正ベクトルを導出することを特徴とする請求項１から４のいずれかに記載の画像処理装置。
【請求項８】
各ステージで導出される特徴点の修正ベクトルの信頼度を判定する信頼度判定部をさらに備え、
前記信頼度判定部は、前記第２オブジェクトの学習モデルデータを使用した修正ベクトルの信頼度が基準値に満たない場合であり、かつ前記ワークエリア部に残存している前記第１オブジェクトの学習モデルデータを使用した修正ベクトルの信頼度が基準値を満たす場合、第１オブジェクトの検知処理に切り替えることを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記入力画像内において特定のオブジェクトを探索し、検出した特定のオブジェクトの検出枠を設定するオブジェクト領域検出部と、
前記検出枠内のオブジェクトの特徴点を、前記初期の特徴点に設定する初期特徴点設定部と、
をさらに備えることを特徴とする請求項１から８のいずれかに記載の画像処理装置。
【請求項１０】
前記初期の特徴点の段階的な修正が完了した後の特徴点をもとに、複数のアプリケーション処理を実行するアプリケーション処理部をさらに備え、
前記アプリケーション処理部は、前記複数のアプリケーション処理のそれぞれの開始タイミングを、前記ワークエリア部への前記学習モデルデータのロード済みのステージ数に応じて決定することを特徴とする請求項１から９のいずれかに記載の画像処理装置。
【請求項１１】
前記入力画像は、車両内に設置された運転者の顔を撮影するための撮像部から入力された画像であり、
検知対象のオブジェクトは、運転者の顔であることを特徴とする請求項１から１０のいずれかに記載の画像処理装置。
【請求項１２】
それぞれが特徴点の修正ベクトルの導出に寄与するＮ（Ｎは２以上の整数）ステージの学習モデルデータを用いて、入力画像内の初期の特徴点を段階的に修正してオブジェクトの特徴点を検出する画像処理方法であって、
前記Ｎステージの学習モデルデータをワークエリア部にロードするステップと、
入力画像内の初期の各特徴点の周辺の特徴量または１つ前のステージにおいて修正された各特徴点の周辺の特徴量をもとに、前記ワークエリア部に保持される、対応するステージの学習モデルデータを参照して各特徴点の修正ベクトルを導出するステップと、
前記入力画像内の各特徴点を、導出された各修正ベクトルをもとに修正するステップと、を有し、
少なくとも起動時において、前記Ｎステージの学習モデルデータを記録している記録部から前記ワークエリア部への前記Ｎステージの学習モデルデータのロードが完了する前から、前記修正ベクトルを導出する処理および前記特徴点を修正する処理は、特徴点の修正処理を開始し、
前記修正ベクトルを導出するステップは、ステージｔ（１≦ｔ≦Ｎ）の修正ベクトルを導出する際に、前記ワークエリア部にステージｔの学習モデルデータがロードされていない場合、他のステージの学習モデルデータを代用して修正ベクトルを導出することを特徴とする画像処理方法。
【請求項１３】
それぞれが特徴点の修正ベクトルの導出に寄与するＮ（Ｎは２以上の整数）ステージの学習モデルデータを用いて、入力画像内の初期の特徴点を段階的に修正してオブジェクトの特徴点を検出する画像処理プログラムであって、
前記Ｎステージの学習モデルデータをワークエリア部にロードする処理と、
入力画像内の初期の各特徴点の周辺の特徴量または１つ前のステージにおいて修正された各特徴点の周辺の特徴量をもとに、前記ワークエリア部に保持される、対応するステージの学習モデルデータを参照して各特徴点の修正ベクトルを導出する処理と、
前記入力画像内の各特徴点を、導出された各修正ベクトルをもとに修正する処理と、をコンピュータに実行させ、
少なくとも起動時において、前記Ｎステージの学習モデルデータを記録している記録部から前記ワークエリア部への前記Ｎステージの学習モデルデータのロードが完了する前から、前記修正ベクトルを導出する処理および前記特徴点を修正する処理は、特徴点の修正処理を開始し、
前記修正ベクトルを導出する処理は、ステージｔ（１≦ｔ≦Ｎ）の修正ベクトルを導出する際に、前記ワークエリア部にステージｔの学習モデルデータがロードされていない場合、他のステージの学習モデルデータを代用して修正ベクトルを導出することを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、所定のオブジェクトの特徴点を検出する画像処理装置、画像処理方法、及び画像処理プログラムに関する。
【背景技術】
【０００２】
近年、入力画像内のオブジェクト（例えば、人間の顔）の特徴点を、形状回帰モデルを使用して検出する手法が提案されている。形状回帰モデルは、初期の特徴点を複数ステージの修正処理により正解の特徴点に逐次的に近似させていくモデルであり、複数ステージ分の学習モデルデータを必要とする。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１６−６６１１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来の形状回帰モデルを使用した特徴点検出では、起動時に容量の大きい学習モデルデータをワークエリアにロードする際、全ての学習データのロードが完了しなければオブジェクトの検知処理を開始することができず、起動から検知開始までに時間がかかっていた。
【０００５】
本発明はこうした状況に鑑みなされたものであり、その目的は、複数ステージの学習モデルデータを用いたオブジェクト検知処理において、精度低下を抑制しつつ、検知開始タイミングを早める技術を提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明のある態様の画像処理装置は、それぞれが特徴点の修正ベクトルの導出に寄与するＮ（Ｎは２以上の整数）ステージの学習モデルデータを用いて、入力画像内の初期の特徴点を段階的に修正してオブジェクトの特徴点を検出する画像処理装置であって、前記Ｎステージの学習モデルデータをロードするためのワークエリア部と、入力画像内の初期の各特徴点の周辺の特徴量または１つ前のステージにおいて修正された各特徴点の周辺の特徴量をもとに、前記ワークエリア部に保持される、対応するステージの学習モデルデータを参照して各特徴点の修正ベクトルを導出する修正ベクトル導出部と、前記入力画像内の各特徴点を、導出された各修正ベクトルをもとに修正する特徴点修正部と、を備える。少なくとも本画像処理装置の起動時において、前記Ｎステージの学習モデルデータを記録している記録部から前記ワークエリア部への前記Ｎステージの学習モデルデータのロードが完了する前から、前記修正ベクトル導出部および前記特徴点修正部は、特徴点の修正処理を開始し、前記修正ベクトル導出部は、ステージｔ（１≦ｔ≦Ｎ）の修正ベクトルを導出する際に、前記ワークエリア部にステージｔの学習モデルデータがロードされていない場合、他のステージの学習モデルデータを代用して修正ベクトルを導出する。
【０００７】
なお、以上の構成要素の任意の組み合わせ、本発明の表現を方法、装置、システム、コンピュータプログラム、コンピュータプログラムを記録した記録媒体などの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【０００８】
本発明によれば、複数ステージの学習モデルデータを用いたオブジェクト検知処理において、精度低下を抑制しつつ、検知開始タイミングを早めることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態に係る撮像システムの構成を示すブロック図である。
【図２】図２（ａ）−（ｃ）は、特徴点検出部による特徴点修正処理で使用されるＮステージ分の学習モデルデータの生成アルゴリズムを説明するための図である。
【図３】図１のオブジェクト検出部及び特徴点検出部の構成を詳細に示したブロック図である。
【図４】実施例１に係る、各検知ステージと使用する学習モデルデータの関係を示す図である。
【図５】実施例２に係る、各検知ステージと使用する学習モデルデータの関係を示す図である。
【図６】実施例２に係るステージ選択ルールの決定処理の一例を示す図である。
【図７】図７（ａ）、（ｂ）は、比較例に係る画像処理装置の動作例を示すフローチャートである。
【図８】図８（ａ）−（ｃ）は、図７（ａ）、（ｂ）の動作例により検出される特徴点の具体例を示す図である。
【図９】図９（ａ）、（ｂ）は、実施例２に係る画像処理装置の動作例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
図１は、本発明の実施の形態に係る撮像システム１の構成を示すブロック図である。以下、本明細書では撮像システム１として、車両内の運転者の顔を撮影するためのカメラシステムを想定する。撮像システム１は、撮像部２０及び画像処理装置１０を備える。撮像部２０は車両内において運転席の前方上部に、運転者の顔を画角に収める向きに設置される。撮像部２０が実装される基板と、画像処理装置１０が実装される基板は１つの筐体に一体的に収納されてもよいし、別々の筐体に分離されて収納されてもよい。後者の場合、撮像部２０と画像処理装置１０間は有線または無線で接続される。
【００１１】
撮像部２０は、固体撮像素子及び信号処理回路を含む。固体撮像素子には例えば、ＣＭＯＳイメージセンサ又はＣＣＤイメージセンサを使用することができる。固体撮像素子は入射光を電気的な画像信号に変換し、信号処理回路に出力する。信号処理回路は、固体撮像素子から入力される画像信号に対して、Ａ／Ｄ変換、ノイズ除去などの信号処理を実行し、画像処理装置１０に出力する。なお当該信号処理回路で、歪み補正、フレーム／画素の間引き等の所定の前処理を実行してもよい。
【００１２】
画像処理装置１０は、処理部１１、ワークエリア部１５及び不揮発性記録部１６を含む。ワークエリア部１５は、ＤＲＡＭ、ＳＤＲＡＭ等の揮発性メモリで構成される記憶領域を含む。不揮発性記録部１６は、ＮＡＮＤ型／ＮＯＲ型フラッシュメモリ等で構成される大容量の不揮発性メモリを備える。なお不揮発性記録部１６は、着脱可能な記録媒体を備える構成でもよく、半導体メモリカード、光ディスク、リムーバブルハードディスク等が装着される構成でもよい。不揮発性記録部１６には、特徴点検出部１３による特徴点修正処理で使用するＮ（Ｎは２以上の整数）ステージ分の学習モデルデータが記録されている。
【００１３】
処理部１１は、オブジェクト検出部１２、特徴点検出部１３及びアプリケーション処理部１４を含む。処理部１１の構成は、ハードウェア資源とソフトウェア資源の協働、またはハードウェア資源のみにより実現できる。ハードウェア資源として、ＣＰＵ、ＧＰＵ、ＤＳＰ、ＦＰＧＡ、その他のＬＳＩを利用できる。ソフトウェア資源としてオペレーティングシステム、ファームウェア、アプリケーション等のプログラムを利用できる。
【００１４】
オブジェクト検出部１２は、入力画像内から所定のオブジェクトの識別器を用いて、所定のオブジェクトの大凡の位置と大きさを検出する。以下、本明細書では所定のオブジェクトとして運転者の顔を想定する。特徴点検出部１３は、検知対象のオブジェクトを含む入力画像に設定された初期の特徴点座標を、複数のステージで逐次修正し、当該オブジェクトの真の特徴点と推定される特徴点を検出する。アプリケーション処理部１４は、特徴点検出部１３により検出されたオブジェクトの特徴点をもとに所定のアプリケーション処理を実行する。本実施の形態では例えば、運転者の個人認証、顔向き判定、わき見判定などのアプリケーション処理を実行する。
【００１５】
図２（ａ）−（ｃ）は、特徴点検出部１３による特徴点修正処理で使用されるＮステージ分の学習モデルデータの生成アルゴリズムを説明するための図である。図２（ａ）−（ｃ）に示す例では、顔の特徴点として、左右の眉頭、左右の目頭、左右の目尻、鼻の穴の間、口の両端に合計９点を設定している。ステージ１では入力画像内に平均的な顔の特徴点（濃い点）を初期特徴点として設定する（図２（ａ）参照）。
【００１６】
学習アルゴリズムは、ステージ１における初期特徴点の周囲の特徴量を特徴点ごとに算出し、各特徴点の周囲のパターンを分類する。当該特徴量には輝度の勾配やＨＯＧ（Ｈｉｓｔｇｒａｍｓ  ｏｆ  Ｏｒｉｅｎｔｅｄ  Ｇｒａｄｉｅｎｔｓ）特徴量、あるいはその他の任意の特徴量を用いることができる。なお、抽出した特徴量をさらにＫ−ｍｅａｎｓ法などによるクラスタリング、あるいは主成分分析などにより次元圧縮をするなどしたものを当該特徴量としてもよい。学習アルゴリズムは、設定された初期特徴点（濃い点）と、正解特徴点（薄い丸）との差分を修正ベクトルとして算出する。ここで、正解特徴点は、例えばあらかじめ人間が目視で判断して座標を定義する。学習アルゴリズムは、特徴点の周囲のパターンと修正ベクトルを関連付けてステージ１の学習モデルデータとして保存する。例えば、各特徴点の分類パターンごとにルックアップテーブルを用意して、当該ルックアップテーブルに、同一の当該パターンに分類された複数の学習画像から導出した修正ベクトルの平均値や中央値などで代表化した代表値を修正ベクトルとして書き込んでいく。あるいは、特徴量と修正ベクトルとの関係が数式で近似可能な場合はその数式に含まれる係数パラメータなどを学習モデルデータとして保存してもよい。
【００１７】
また学習アルゴリズムは、ステージ１において構築した学習モデルデータを用いて、ステージ１の初期特徴点に対して特徴点の周囲のパターンに対応する学習済みの修正ベクトルを用いて当該初期特徴点を修正することで、ステージ１での検出特徴点を導出し、これをステージ２の初期特徴点として設定する。例えば学習アルゴリズムは、９個の特徴点に対する９本の修正ベクトルをルックアップテーブルから読み込み、９個の特徴点に９本の修正ベクトルをそれぞれ加算して、ステージ２の９個の初期特徴点を導出する（図２（ａ）および図２（ｂ）参照）。
【００１８】
学習アルゴリズムは、ステージ２においてステージ１と同様に、ステージ２の初期特徴点の周囲の特徴量を特徴点ごとに算出し、各特徴点の周囲のパターンを分類する。学習アルゴリズムは、設定された初期特徴点（濃い点）と、正解特徴点（薄い丸）との差分を修正ベクトルとして算出する。学習アルゴリズムは、特徴点の周囲のパターンと修正ベクトルを関連付けてステージ２の学習モデルデータとして保存する。以下、同様の処理をステージＮまで繰り返す。ステージが進むにつれて検出特徴点の修正量が小さくなっていき、それに従い検出特徴点と正解特徴点とのずれも小さくなっていく（図２（ｃ）参照）。この学習を多数の顔画像に対して実行することにより、Ｎステージ分の学習モデルデータが生成される。
【００１９】
図３は、図１のオブジェクト検出部１２及び特徴点検出部１３の構成を詳細に示したブロック図である。オブジェクト検出部１２は、オブジェクト領域検出部１２１及び初期特徴点出力部１２２を含む。特徴点検出部１３は、ロード順序決定部１３１、学習モデルデータロード部１３２、使用ステージ決定部１３３、修正ベクトル導出部１３４、特徴点修正部１３５、信頼度判定部１３６及び特徴点出力部１３７を含む。
【００２０】
オブジェクト領域検出部１２１は、入力画像内においてオブジェクトの探索窓をラスタスキャンして、オブジェクトが写っている領域を探索する。１度のラスタスキャンが終了すると、探索窓の大きさを変更して再度ラスタスキャンを実行する。この探索には例えば、Haar-Like特徴量を用いたCascade構造の識別器を用いることができる。オブジェクト領域検出部１２１による検出処理では、オブジェクトの大小や、画像のぼけ具合に関わらず、オブジェクトの大凡の位置と大きさを検出することができる。初期特徴点出力部１２２は、オブジェクト領域検出部１２１により検出されたオブジェクトの検出窓をもとに、その検出窓内の大凡の特徴点座標を修正ベクトル導出部１３４に初期座標として出力する。
【００２１】
ロード順序決定部１３１は、不揮発性記録部１６に保存されたＮステージ分の学習モデルデータのワークエリア部１５へのロード順序を決定する。学習モデルデータロード部１３２は、ロード順序決定部１３１により決定されたロード順序に基づいて、学習モデルデータを不揮発性記録部１６からステージ単位でワークエリア部１５に順次ロードする。
【００２２】
使用ステージ決定部１３３は、Ｎステージ分の学習モデルデータがワークエリア部１５にどのステージまでロードされたかに基づいて、各検知ステージにおいて、どのステージの学習モデルデータを使用するかを決定する。修正ベクトル導出部１３４は各検知ステージにおいて、入力画像内の複数の特徴点の各修正ベクトルを、使用ステージ決定部１３３により決定されたステージの学習モデルデータから導出する。特徴点修正部１３５は各検知ステージにおいて、入力画像内の複数の特徴点を、使用ステージ決定部１３３により導出された各修正ベクトルを用いてそれぞれ修正する。
【００２３】
信頼度判定部１３６は検知ステージごとに、特徴点修正の信頼度を判定する。信頼度判定部１３６は、ある検知ステージで導出された修正ベクトルの信頼度が基準値に満たない場合、当該検知ステージで導出された修正ベクトルの信頼度が低いと判定する。
【００２４】
特徴点出力部１３７は、Ｎステージにわたる修正後の特徴点を、特徴点検出部１３の検出結果としてアプリケーション処理部１４に出力する。特徴点出力部１３７は特徴点の修正過程において、信頼度判定部１３６により信頼度が低いと判定された検知ステージが発生した場合、その検知ステージにおける特徴点の修正をキャンセルし、直前の検知ステージの特徴点の状態に戻す。なお信頼度判定部１３６により信頼度が低いと判定された検知ステージが発生した場合、そのフレームの特徴点検出を無効としてもよい。また所定の回数以上、信頼度判定部１３６により信頼度が低いと判定された検知ステージが発生した場合に、そのフレームの特徴点検出を無効としてもよい。
【００２５】
以上の構成において、撮像システム１の起動時にＮステージ分の学習モデルデータを不揮発性記録部１６からワークエリア部１５にロードするために長い時間を要する。ステージの数、特徴点の数、特徴点の周囲のパターン分類の数が多くなるほど、学習モデルデータの量が大きくなる。安価な組み込み型のシステムでは、バスのバンド幅が狭く、不揮発性記録部１６からワークエリア部１５に学習モデルデータを全てロードするのに、数秒以上を要する場合もある。例えば撮像システム１を、運転開始時の個人認証に使用する場合、イグニッションオンしてから実際に車両を動かせる状態になるまで数秒以上の時間がかかることになる。以下、このロードの待ち時間を短縮する仕組みを導入する。
【００２６】
まず実施例１を説明する。実施例１では、Ｎステージ分の学習モデルデータを途中までワークエリア部１５にロードした段階で、ワークエリア部１５にロード済みの学習モデルデータを使用して検知を開始する。即ち、一部のステージのロードが完了した時点で検知を開始し、学習モデルデータが未ロードの検知ステージでは、ロード済みの学習モデルデータで代替して検知を行う。
【００２７】
図４は、実施例１に係る、各検知ステージと使用する学習モデルデータの関係を示す図である。比較例は、Ｎステージ分の学習モデルデータのワークエリア部１５へのロードが全て完了してから検知を開始する例である。比較例では、各検知ステージと、各検知ステージで使用する学習モデルデータのステージは常に一致する。これに対して実施例１では、ステージｋまでのロードが完了した段階で検知を開始する。実施例１ではステージｋ以降のステージｋ〜Ｎでは、ステージｋの学習モデルデータを使用して特徴点を修正する。
【００２８】
次に実施例２を説明する。実施例２では、学習モデルデータのロード順序を変えることで、より実際のステージに近いデータを使用可能とするものであり、実施例１と比較して修正精度が向上する。例えば、ロード順序は、ステージ１を含み一部のステージを含まないステージ群を昇順に順次ロードした後に、残りのステージをロードする。なお、当該残りのステージのロード順序は、当該残りのステージの全部または一部をさらに昇順に順次ロードする順序に設定してもよい。
【００２９】
図５は、実施例２に係る、各検知ステージと使用する学習モデルデータの関係を示す図である。図５に示す例では、７ステージ分の学習モデルデータを使用する例を示しており、その学習モデルデータのロード順序は、１、２、４、６、３、５、７に設定されている。ステージ１の学習モデルデータしかロードされていない段階で検知を開始すると、全ての検知ステージでステージ１の学習モデルデータを使用することになり、誤差が大きくなる。従って、全検知ステージの数（図５では７）に対して、約半分の数（図５では、３または４）のステージの学習モデルデータのロードが完了した段階から検知を開始することが好ましい。ステージ１、２、４、６の学習モデルデータのロードが完了した段階で検知を開始すると、各検知ステージにおいて、自ステージまたは直前のステージの学習モデルデータを使用することができ、誤差を最小限に抑えることができる。
【００３０】
このように学習モデルデータのロード順序は、基本的に１つ飛ばして２回ループする「１、２、４、６、３、５、７」か「１、３、５、７、２、４、６」が好ましいことが分かる。以下、最適な学習モデルデータのロード順序と、最適なステージ選択ルールを導出する方法を説明する。
【００３１】
複数のテスト画像を用いて、修正された特徴点と正解特徴点との平均誤差が最小となるステージ選択ルールを決定する。まず、ステージ選択ルールの複数の候補を用意する。最終ステージであるステージ７において、選択した学習モデルデータの修正ベクトルによる修正後の特徴点と正解特徴点との誤差を特徴点ごとに算出し、それらの誤差の平均を算出する。その際、修正後の特徴点と正解特徴点との誤差を示す値として、生のピクセル数ではなく、右眼と左眼の間の距離で正規化したピクセル数を使用する。これにより、テスト画像内の顔の大きさの違いにより、平均誤差の値が影響を受けることを防止することができる。なお、上記以外の任意の正規化を行ってもよい。
【００３２】
次に各テスト画像における平均誤差を全テスト画像で平均化して、テスト画像全体に対する平均誤差を算出する。最後に平均誤差が最小となるステージ選択ルールを採用する。なお、全てのテスト画像の平均誤差ではなく、例えばワースト２割のテスト画像の平均誤差を使用してもよい。この場合、大きく外れた修正を行ったステージ選択候補の評価が下がり、どの画像に対しても安定した修正を行ったステージ選択候補が採用されやすくなる。なお、上記以外の方法により誤差の代表値を導出してもよい。
【００３３】
図６は、実施例２に係るステージ選択ルールの決定処理の一例を示す図である。図６に示す例は、ワークエリア部１５に４つのステージの学習モデルデータがロードされた段階において、各検知ステージで使用する学習モデルデータの選択ルールとして、最適なものを決定するための例である。図６では４つのステージ選択ルールの候補についてテストが実行され、候補３が最も平均誤差が小さくなったことを示している。候補３のステージ選択ルールを実現するには、ワークエリア部１５に４つのステージの学習モデルデータがロードされた段階において、ステージ１、２、４、６の学習モデルデータがロードされていることが必要となる。従って、学習モデルデータのロード順序は、「１、２、４、６、３、５、７」が適切であると決定することができる。
【００３４】
実施例１、２では、検知ステージと、使用する学習モデルデータのステージが一致しない状態が発生する。このステージが一致しないことによる悪影響を軽減するため信頼度判定部１３６を設けている。信頼度判定部１３６は、ある検知ステージで導出された修正ベクトルの信頼度が基準値に満たない場合、当該修正ベクトルの信頼度が低いと判定する。例えば、ステージｔ（ｔは１〜Ｎの整数）で導出された複数の修正ベクトルの平均長が、ステージ（ｔ−１）で導出された複数の修正ベクトルの平均長より所定値以上大きい場合、ステージｔで導出された修正ベクトルの信頼度が低いと判定する。修正ベクトルの長さは、修正ベクトルのＸ、Ｙ成分の二乗和の平方根などで求めることができる。
【００３５】
また信頼度判定部１３６は、例えば初期特徴点をあらかじめ複数用意する、あるいは１つの初期特徴点に乱数を加えるなどして生成した複数の初期特徴点に対して複数の検知を行い、ステージｔの複数の修正ベクトルを導出した場合に、当該複数の修正ベクトルの分散または修正後の複数の特徴点の分散が、ステージ（ｔ−１）で導出された複数の修正ベクトルの分散または修正後の複数の特徴点の分散より所定値以上大きい場合、ステージｔで導出された修正ベクトルの信頼度が低いと判定してもよい。特徴点の修正が正解に向けて正しく行われている場合、ステージが進むにつれて修正量が減少して収束していく筈であり、直前のステージより修正ベクトルの長さや分散、特徴点同士の分散が増加している場合は修正が成功していないことを示唆している。
【００３６】
図７（ａ）、（ｂ）は、比較例に係る画像処理装置１０の動作例を示すフローチャートである。図７（ａ）はメインルーチンを示し、図７（ｂ）は顔特徴点検出のサブルーチンを示している。図８（ａ）−（ｃ）は、図７（ａ）、（ｂ）の動作例により検出される特徴点の具体例を示す図である。
【００３７】
図７（ａ）において、オブジェクト検出部１２は、撮像部２０から入力された入力画像において顔領域Ｒｆを検出する（Ｓ１０、図８（ａ）参照）。学習モデルデータロード部１３２は、不揮発性記録部１６に記録されているＮステージ分の学習モデルデータをステージ順にワークエリア部１５にロードしていく（Ｓ１２）。Ｎステージ分の学習モデルデータの全てのロードが完了すると顔特徴点検出処理が開始する（Ｓ１３）。
【００３８】
図７（ｂ）において、初期特徴点出力部１２２は顔領域Ｒｆに初期の特徴点を設定する（Ｓ１３０）。使用ステージ決定部１３３は、ステージｔの学習モデルデータを選択する（Ｓ１３２）。修正ベクトル導出部１３４は、ステージｔの学習モデルデータを使用して、検知ステージｔの特徴点の修正ベクトルを導出する（Ｓ１３３）。特徴点修正部１３５は、導出された修正ベクトルを用いて検知ステージｔの特徴点を修正する（Ｓ１３４）。ステップＳ１３２からステップＳ１３４までの処理が、Ｎ回繰り返し実行される。図８（ｂ）は初期の特徴点の位置を示しており、図８（ｂ）は修正完了後の特徴点の位置を示している。
【００３９】
図７（ａ）において、アプリケーション処理部１４は、顔特徴点検出処理において検出された特徴点をもとに顔向きを推定し（Ｓ１４）、わき見の有無を判定する（Ｓ１５）。アプリケーション処理部１４は、運転者がわき見をしていると判定すると、アラート信号を出力する。図７（ａ）に示した処理がフレーム毎に実行される。アプリケーション処理部１４は、複数のフレーム間の各特徴点の移動量および移動方向を検出することにより、わき見の有無を判定してもよい。
【００４０】
図９（ａ）、（ｂ）は、実施例２に係る画像処理装置１０の動作例を示すフローチャートである。図９（ａ）において、オブジェクト検出部１２は、撮像部２０から入力された入力画像において顔領域Ｒｆを検出する（Ｓ１０）。ロード順序決定部１３１は、Ｎステージ分の学習モデルデータの不揮発性記録部１６からワークエリア部１５へのロード順序を決定する（Ｓ１１）。学習モデルデータロード部１３２は、決定されたロード順序に従い、学習モデルデータをワークエリア部１５にロードしていく（Ｓ１２ａ）。実施例２ではＮステージ分の学習モデルデータの全てのロードが完了する前に、顔特徴点検出処理が開始する（Ｓ１３）。
【００４１】
図９（ｂ）において、初期特徴点出力部１２２は顔領域Ｒｆに初期の特徴点を設定する（Ｓ１３０）。使用ステージ決定部１３３は、予め設定されたステージ選択ルールに従い、検知ステージｔで使用する学習モデルデータのステージｍを決定する（Ｓ１３１）。使用ステージ決定部１３３は、決定したステージｍの学習モデルデータを選択する（Ｓ１３２ａ）。修正ベクトル導出部１３４は、ステージｍの学習モデルデータを使用して、検知ステージｔの特徴点の修正ベクトルを導出する（Ｓ１３３）。特徴点修正部１３５は、導出された修正ベクトルを用いて検知ステージｔの特徴点を修正する（Ｓ１３４）。
【００４２】
信頼度判定部１３６は、検知ステージｔの修正ベクトルの信頼度を算出する（Ｓ１３５）。算出された信頼度が基準値未満の場合（Ｓ１３６のＮ）、特徴点出力部１３７は、検知ステージｔの修正をキャンセルし、検知ステージ（ｔ−１）の特徴点を検知ステージ（ｔ＋１）に出力する（Ｓ１３７）。算出された信頼度が基準値以上の場合（Ｓ１３６のＹ）、ステップＳ１３７の処理はスキップされる。ステップＳ１３１からステップＳ１３７までの処理が、Ｎ回繰り返し実行される。
【００４３】
図９（ａ）において、アプリケーション処理部１４は、顔特徴点検出処理において検出された特徴点をもとに顔向きを推定し（Ｓ１４）、わき見の有無を判定する（Ｓ１５）。
【００４４】
以上説明したように本実施の形態によれば、学習モデルデータを不揮発性記録部１６からワークエリア部１５へロードする際、Ｎステージ分の学習モデルデータを予め決定した順序でステージ単位で順次ロードする。一部のステージのロードが完了した時点から検知を開始し、未ロードのステージの検知を行う際は、予め決定した選択ルールに従い、現在の検知ステージに最も近いロード済みステージの学習モデルデータを代替して使用する。代替時の精度低下が最小となるようにロード順序を決定しておくことにより、検知開始までの時間を短縮しつつ、精度低下を抑えた検知が可能となる。
【００４５】
また、各検知ステージにおいて信頼度を算出し、信頼度が低いと判断した場合は、１つ前のステージの特徴点を検知結果として出力する。これにより、精度低下を抑えた検知が可能となる。
【００４６】
以上、本発明を実施の形態をもとに説明した。実施の形態は例示であり、それらの各構成要素または各処理プロセスの組み合わせに、いろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００４７】
上述の実施の形態では、検知対象のオブジェクトが単一の例を説明した。この点、検知対象のオブジェクトが複数の場合、Ｎステージ分の学習モデルデータがオブジェクトごとに不揮発性記録部１６に保存される。例えば、ノーマルの顔検知用の学習モデルデータＡ、マスクをした顔検知用の学習モデルデータＢ、サングラスをした顔検知用の学習モデルデータＣが不揮発性記録部１６内に保存される。
【００４８】
オブジェクト検出部１２は、入力画像内で検出されたオブジェクトを示すオブジェクトＩＤを特徴点検出部１３に出力する。特徴点検出部１３の学習モデルデータロード部１３２は、オブジェクトＩＤに対応する学習モデルデータを、不揮発性記録部１６からワークエリア部１５に上述した実施例１または実施例２に係る方法でロードする。
【００４９】
以下、オブジェクト切り替え前の学習モデルデータ（ノーマル顔の学習モデルデータ）を学習モデルデータＡとし、オブジェクト切り替え後の学習モデルデータ（マスクをした顔の学習モデルデータ）を学習モデルデータＢとする。学習モデルデータＢを使用した検知ステージの信頼度が基準値未満であり、学習モデルデータＡがワークエリア部１５に残存している場合、学習モデルデータＡを使用した場合の信頼度を算出し、基準値以上の場合、学習モデルデータＡを使用した検知に復帰してもよい。この場合、ワークエリア部１５の学習モデルデータＡが上書きされることを防止し、学習モデルデータＡの再ロードを回避することができる。
【００５０】
アプリケーション処理部１４は、複数のアプリケーション処理のそれぞれの開始タイミングを、ワークエリア部１５への学習モデルデータのロード済みのステージ数に応じて決定してもよい。例えば、顔の表情から感情を推定するアプリケーションの場合、精通な特徴点の検出が必要となるため、全てのステージの学習モデルデータのロードが完了してから処理を開始する。一方、顔向き推定のアプリケーションは大凡の特徴点から検出できるため、一部のステージの学習モデルデータのロードが完了した時点で処理を開始する。アプリケーション処理部１４は、ワークエリア部１５へのロード済みステージ数が増えるにつれて、複数のアプリケーションの内、処理可能なアプリケーションを順次有効化していく。
【００５１】
上述の実施の形態では、特徴点検出部１３における初期の特徴点座標を、オブジェクト検出部１２により検出されたオブジェクトの大凡の特徴点座標から設定する例を説明した。この点、画像内のオブジェクトの大きさと位置が概ね決まっている用途（例えば、証明写真）の場合、予め決まった位置に平均顔の特徴点を初期の特徴点として設定してもよい。
【００５２】
上述の実施の形態では画像処理装置１０として、車内に設置される撮像システム１内に組み込まれる画像処理装置１０を想定した。この点、画像処理装置１０はスマートフォン、ＰＣなど情報処理機器全般のいずれの機器に搭載されるものであってもよい。例えば、ＰＣであっても低スペックの機種であれば、ハードディスク内の学習モデルデータをＲＡＭにロードするのに長い時間を要するものもある。このような場合、上述の実施の形態で説明した手法が有効に機能する。
【００５３】
なお、実施の形態は、以下の項目によって特定されてもよい。
【００５４】
［項目１］
それぞれが特徴点の修正ベクトルの導出に寄与するＮ（Ｎは２以上の整数）ステージの学習モデルデータを用いて、入力画像内の初期の特徴点を段階的に修正してオブジェクトの特徴点を検出する画像処理装置（１０）であって、
前記Ｎステージの学習モデルデータをロードするためのワークエリア部（１５）と、
入力画像内の初期の各特徴点の周辺の特徴量または１つ前のステージにおいて修正された各特徴点の周辺の特徴量をもとに、前記ワークエリア部（１５）に保持される、対応するステージの学習モデルデータを参照して各特徴点の修正ベクトルを導出する修正ベクトル導出部（１３４）と、
前記入力画像内の各特徴点を、導出された各修正ベクトルをもとに修正する特徴点修正部（１３５）と、を備え、
少なくとも本画像処理装置（１０）の起動時において、前記Ｎステージの学習モデルデータを記録している記録部（１６）から前記ワークエリア部（１５）への前記Ｎステージの学習モデルデータのロードが完了する前から、前記修正ベクトル導出部（１３４）および前記特徴点修正部（１３５）は、特徴点の修正処理を開始し、
前記修正ベクトル導出部（１３４）は、ステージｔ（１≦ｔ≦Ｎ）の修正ベクトルを導出する際に、前記ワークエリア部（１５）にステージｔの学習モデルデータがロードされていない場合、他のステージの学習モデルデータを代用して修正ベクトルを導出することを特徴とする画像処理装置（１０）。
これによれば、特徴点の修正処理の開始タイミングを早めることができる。
［項目２］
前記修正ベクトル導出部（１３４）は、ステージｔ（１≦ｔ≦Ｎ）の修正ベクトルを導出する際に、前記ワークエリア部（１５）にステージｔの学習モデルデータがロードされていない場合、前記ワークエリア部（１５）に既にロードされている学習モデルデータの内、最も近いステージの学習モデルデータを代用して修正ベクトルを導出することを特徴とする項目１に記載の画像処理装置（１０）。
これによれば、特徴点の修正精度の低下を抑制しつつ、修正処理の開始タイミングを早めることができる。
［項目３］
前記記録部（１６）から前記ワークエリア部（１５）への前記Ｎステージの学習モデルデータのロード順序は、ステージ１を含み一部のステージを飛ばしたステージ群を昇順に順次ロードした後、飛ばしたステージを順次ロードする順序であることを特徴とする項目１または２に記載の画像処理装置（１０）。
これによれば、学習モデルデータの代用が必要なステージにおいて、近いステージの学習モデルデータを代用することができ、特徴点の修正精度の低下を抑制することができる。
［項目４］
前記Ｎステージの学習モデルデータの前記ワークエリア部（１５）へのロード順序を決定するロード順序決定部（１３１）と、
前記ロード順序決定部（１３１）で決定されたロード順序に基づいて、前記Ｎステージの学習モデルデータをステージ単位で順次ロードする学習モデルデータロード部（１３２）と、をさらに備え、
前記ロード順序決定部（１３１）は、複数のロード順序候補の中から、テストデータに対する特徴点の修正処理において正解特徴点との誤差の平均が最小となるロード順序候補を、使用するロード順序に決定することを特徴とする項目１から３のいずれかに記載の画像処理装置（１０）。
これによれば、特徴点の修正精度の低下をさらに抑制することができる。
［項目５］
各ステージで導出される特徴点の修正ベクトルの信頼度を判定する信頼度判定部（１３６）をさらに備え、
前記信頼度判定部（１３６）は、ステージｔで導出された修正ベクトルの信頼度が基準値に満たない場合、ステージｔの特徴点の修正を無効にすることを特徴とする項目１から４のいずれかに記載の画像処理装置（１０）。
これによれば、信頼度の低い特徴点の修正を無効にすることにより、修正精度の低下を抑制することができる。
［項目６］
前記信頼度判定部（１３６）は、ステージｔで導出された複数の修正ベクトルの長さの平均値が、ステージ（ｔ−１）で導出された複数の修正ベクトルの長さの平均値より所定値以上大きい場合、ステージｔの複数の特徴点の修正を無効にすることを特徴とする項目５に記載の画像処理装置（１０）。
これによれば、直前のステージの修正と現在のステージの修正とを比較することにより、修正精度を的確に評価することができる。
［項目７］
前記記録部（１６）には、前記Ｎステージの学習モデルデータが検知対象のオブジェクトごとに記録されており、
検知対象が第１オブジェクトから第２オブジェクトに切り替わる際、前記記録部（１６）から前記ワークエリア部（１５）への前記第２オブジェクトのＮステージの学習モデルデータのロードが完了する前から、前記修正ベクトル導出部（１３４）および前記特徴点修正部（１３５）は、前記第２オブジェクトの特徴点の修正処理を開始し、
前記修正ベクトル導出部（１３４）は、前記第２オブジェクトの特徴点の修正処理において、ステージｔ（１≦ｔ≦Ｎ）の修正ベクトルを導出する際に、前記ワークエリア部（１５）にステージｔの学習モデルデータがロードされていない場合、他のステージの学習モデルデータを代用して修正ベクトルを導出することを特徴とする項目１から４のいずれかに記載の画像処理装置（１０）。
これによれば、第１オブジェクトから第２オブジェクトへの切り替え時において、第２オブジェクトの特徴点の修正処理の開始タイミングを早めることができる。
［項目８］
各ステージで導出される特徴点の修正ベクトルの信頼度を判定する信頼度判定部（１３６）をさらに備え、
前記信頼度判定部（１３６）は、前記第２オブジェクトの学習モデルデータを使用した修正ベクトルの信頼度が基準値に満たない場合であり、かつ前記ワークエリア部（１５）に残存している前記第１オブジェクトの学習モデルデータを使用した修正ベクトルの信頼度が基準値を満たす場合、第１オブジェクトの検知処理に切り替えることを特徴とする項目７に記載の画像処理装置（１０）。
これによれば、ワークエリア部（１５）に残存している第１オブジェクトの学習モデルデータを有効活用することができる。
［項目９］
前記入力画像内において特定のオブジェクトを探索し、検出した特定のオブジェクトの検出枠を設定するオブジェクト領域検出部（１２１）と、
前記検出枠内のオブジェクトの特徴点を、前記初期の特徴点に設定する初期特徴点設定部（１２２）と、
をさらに備えることを特徴とする項目１から８のいずれかに記載の画像処理装置（１０）。
これによれば、初期の特徴点を、正解の特徴点に比較的に近い位置に設定することができる。
［項目１０］
前記初期の特徴点の段階的な修正が完了した後の特徴点をもとに、複数のアプリケーション処理を実行するアプリケーション処理部（１４）をさらに備え、
前記アプリケーション処理部（１４）は、前記複数のアプリケーション処理のそれぞれの開始タイミングを、前記ワークエリア部（１５）への前記学習モデルデータのロード済みのステージ数に応じて決定することを特徴とする項目１から９のいずれかに記載の画像処理装置（１０）。
これによれば、アプリケーション処理の開始タイミングを最適化することができる。
［項目１１］
前記入力画像は、車両内に設置された運転者の顔を撮影するための撮像部（２０）から入力された画像であり、
検知対象のオブジェクトは、運転者の顔であることを特徴とする項目１から１０のいずれかに記載の画像処理装置（１０）。
これによれば、運転者の顔検出システムにおいて、特徴点の修正処理の開始タイミングを早めることができる。
［項目１２］
それぞれが特徴点の修正ベクトルの導出に寄与するＮ（Ｎは２以上の整数）ステージの学習モデルデータを用いて、入力画像内の初期の特徴点を段階的に修正してオブジェクトの特徴点を検出する画像処理方法であって、
前記Ｎステージの学習モデルデータをワークエリア部（１５）にロードするステップと、
入力画像内の初期の各特徴点の周辺の特徴量または１つ前のステージにおいて修正された各特徴点の周辺の特徴量をもとに、前記ワークエリア部（１５）に保持される、対応するステージの学習モデルデータを参照して各特徴点の修正ベクトルを導出するステップと、
前記入力画像内の各特徴点を、導出された各修正ベクトルをもとに修正するステップと、を有し、
少なくとも起動時において、前記Ｎステージの学習モデルデータを記録している記録部（１６）から前記ワークエリア部（１５）への前記Ｎステージの学習モデルデータのロードが完了する前から、前記修正ベクトルを導出する処理および前記特徴点を修正する処理は、特徴点の修正処理を開始し、
前記修正ベクトルを導出するステップは、ステージｔ（１≦ｔ≦Ｎ）の修正ベクトルを導出する際に、前記ワークエリア部（１５）にステージｔの学習モデルデータがロードされていない場合、他のステージの学習モデルデータを代用して修正ベクトルを導出することを特徴とする画像処理方法。
これによれば、特徴点の修正処理の開始タイミングを早めることができる。
［項目１３］
それぞれが特徴点の修正ベクトルの導出に寄与するＮ（Ｎは２以上の整数）ステージの学習モデルデータを用いて、入力画像内の初期の特徴点を段階的に修正してオブジェクトの特徴点を検出する画像処理プログラムであって、
前記Ｎステージの学習モデルデータをワークエリア部（１５）にロードする処理と、
入力画像内の初期の各特徴点の周辺の特徴量または１つ前のステージにおいて修正された各特徴点の周辺の特徴量をもとに、前記ワークエリア部（１５）に保持される、対応するステージの学習モデルデータを参照して各特徴点の修正ベクトルを導出する処理と、
前記入力画像内の各特徴点を、導出された各修正ベクトルをもとに修正する処理と、をコンピュータに実行させ、
少なくとも起動時において、前記Ｎステージの学習モデルデータを記録している記録部（１６）から前記ワークエリア部（１５）への前記Ｎステージの学習モデルデータのロードが完了する前から、前記修正ベクトルを導出する処理および前記特徴点を修正する処理は、特徴点の修正処理を開始し、
前記修正ベクトルを導出する処理は、ステージｔ（１≦ｔ≦Ｎ）の修正ベクトルを導出する際に、前記ワークエリア部（１５）にステージｔの学習モデルデータがロードされていない場合、他のステージの学習モデルデータを代用して修正ベクトルを導出することを特徴とする画像処理プログラム。
これによれば、特徴点の修正処理の開始タイミングを早めることができる。
【符号の説明】
【００５５】
１  撮像システム、  １０  画像処理装置、  １１  処理部、  １２  オブジェクト検出部、  １３  特徴点検出部、  １４  アプリケーション処理部、  １５  ワークエリア部、  １６  不揮発性記録部、  ２０  撮像部、  １２１  オブジェクト領域検出部、  １２２  初期特徴点出力部、  １３１  ロード順序決定部、  １３２  学習モデルデータロード部、  １３３  使用ステージ決定部、  １３４  修正ベクトル導出部、  １３５  特徴点修正部、  １３６  信頼度判定部、  １３７  特徴点出力部。
【図１】
2018147240.tif 000003
【図２】
2018147240.tif 000004
【図３】
2018147240.tif 000005
【図４】
2018147240.tif 000006
【図５】
2018147240.tif 000007
【図６】
2018147240.tif 000008
【図７】
2018147240.tif 000009
【図８】
2018147240.tif 000010
【図９】
2018147240.tif 000011