特許第6268303号(P6268303)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェラインの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6268303
(24)【登録日】2018年1月5日
(45)【発行日】2018年1月24日
(54)【発明の名称】2D画像分析装置
(51)【国際特許分類】
   G06T 7/00 20170101AFI20180115BHJP
【FI】
   G06T7/00 300A
   G06T7/00 300B
【請求項の数】16
【全頁数】63
(21)【出願番号】特願2016-550234(P2016-550234)
(86)(22)【出願日】2015年1月30日
(65)【公表番号】特表2017-508207(P2017-508207A)
(43)【公表日】2017年3月23日
(86)【国際出願番号】EP2015052009
(87)【国際公開番号】WO2015117906
(87)【国際公開日】20150813
【審査請求日】2016年9月30日
(31)【優先権主張番号】102014201997.4
(32)【優先日】2014年2月4日
(33)【優先権主張国】DE
(73)【特許権者】
【識別番号】500341779
【氏名又は名称】フラウンホーファー−ゲゼルシャフト・ツール・フェルデルング・デル・アンゲヴァンテン・フォルシュング・アインゲトラーゲネル・フェライン
(74)【代理人】
【識別番号】100085497
【弁理士】
【氏名又は名称】筒井 秀隆
(72)【発明者】
【氏名】クレンツァー,ダニエル
(72)【発明者】
【氏名】ヘス,アルプレヒト
(72)【発明者】
【氏名】ケタイ,アンドレス
(72)【発明者】
【氏名】ヴィーデ,クリスチャン
(72)【発明者】
【氏名】エルンスト,アンドレアス
(72)【発明者】
【氏名】ルフ,トビアス
【審査官】 山内 裕史
(56)【参考文献】
【文献】 特開2011−112398(JP,A)
【文献】 特開2003−157408(JP,A)
【文献】 特開2003−223630(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
探索パターン(711)を含む画像(710)を受信し、スケーリングファクタに従って前記受信された画像(710)をスケールするよう構成された、画像スケーラ(702)と、
前記受信されかつスケールされた画像の複数のコピー(710'〜710''''''''')を含む一覧画像(712)を生成するよう構成された画像生成部(704)であって、各コピーは異なるスケーリングファクタによってスケールされており、前記生成は、前記一覧画像(712)を形成するために、前記受信されかつスケールされた画像のコピー(710'〜710''''''''')を編集すること、及び前記受信されかつスケールされた画像のコピー(710'〜710''''''''')を前記一覧画像(712)の画像行列内に配置することを含み、前記画像生成部(704)は、前記受信されかつスケールされた画像のコピー(710'〜710''''''''')について、前記一覧画像(712)内の前記受信されかつスケールされた画像のコピー(710'〜710''''''''')間のギャップ、及び前記受信されかつスケールされた画像のコピー(710'〜710''''''''')と前記一覧画像(712)の1つ以上の境界とのギャップを考慮しながら、前記一覧画像(712)内のそれぞれの位置を計算することを含む、画像生成部(704)と、
並列アーキテクチャを有するFPGA上に実装され、所定パターンと前記一覧画像(712)内の前記受信され又はスケールされた画像の複数のコピー(710'〜710''''''''')とを比較し、前記探索パターンと前記所定パターンとの一致度が最大になる、前記一覧画像内の位置に関する情報を出力するよう構成されたパターンファインダ(706)であって、前記位置は前記受信されかつスケールされた画像のそれぞれのコピー(710'〜710''''''''')に関連しており、前記パターンファインダ(706)は、関与する全てのスケールされた画像のコピーを一括して単一ステップで探索する、パターンファインダ(706)と、
を含む2D画像分析装置(700)。
【請求項2】
請求項1に記載の2D画像分析装置(700)において、スケールされた画像の各コピー(710'〜710''''''''')は、個々のスケーリングファクタにしたがって、前記一覧画像(712)内のそれぞれの位置に割り当てられている、2D画像分析装置。
【請求項3】
請求項1又は2に記載の2D画像分析装置(700)において、前記それぞれの位置は、前記一覧画像(712)における前記スケールされた画像のコピー(710'〜710''''''''')間のギャップ、前記スケールされた画像のコピー(710'〜710''''''''')の前記一覧画像(712)における1つ以上の境界とのギャップ及び/又は他の所定の条件を考慮する、アルゴリズムによって計算可能である、2D画像分析装置。
【請求項4】
請求項1〜3のいずれか1項に記載の2D画像分析装置(700)において、前記パターンファインダ(706)は1つ以上の特徴を変換するための特徴変換部と分類部とを有し、前記分類部は前記一覧画像(712)におけるパターンを分類するか、又は前記特徴変換部によって特徴空間へと変換された前記一覧画像(712)における1つのパターンを分類するよう構成されている、2D画像分析装置。
【請求項5】
請求項4に記載の2D画像分析装置(700)において、前記特徴変換部は特徴を抽出するよう構成され、その特徴変換は、ハフアルゴリズム、センサスアルゴリズム、勾配アルゴリズム、ヒストグラムベースのアルゴリズム、及び/又は相関ベースのアルゴリズムに基づいている、2D画像分析装置。
【請求項6】
請求項4又は5に記載の2D画像分析装置(700)において、前記分類部は、前記一覧画像(712)のセンサス変換済みバージョンに基づいて、前記一覧画像(712)の特徴空間へと変換されたバージョンに基づいて、又は前記一覧画像(712)のグラデーション画像へと変換されたバージョンに基づいて、分類を実行するよう構成されている、2D画像分析装置。
【請求項7】
請求項6に記載の2D画像分析装置(700)において、前記パターンファインダ(706)は、前記一覧画像(712)の前記センサス変換済みバージョン、又は前記一覧画像(712)の前記特徴空間へ変換されたバージョン、又は前記一覧画像(712)の前記グラデーション画像へと変換されたバージョン、における1つ以上の極大値を識別するよう構成され、前記極大値の各位置は、前記受信されかつスケールされた画像のそれぞれのコピー(710'〜710''''''''')において識別されるべき前記所定パターンの各位置を示している、2D画像分析装置。
【請求項8】
請求項6又は7に記載の2D画像分析装置(700)において、前記パターンファインダ(706)は、合計フィルタ及び/又は最大値フィルタを有し、そのフィルタは、前記受信されかつスケールされた画像のそれぞれのコピー(710’〜710’’’’’’’’’)における識別された前記所定パターンの位置を平滑化し、及び/又は分類された前記一覧画像(712)における極大値の位置を平滑化しかつ修正するよう構成されている、2D画像分析装置。
【請求項9】
請求項4乃至8のいずれか1項に記載の2D画像分析装置(700)において、前記パターンファインダ(706)は、前記受信されかつスケールされた画像のコピー(710'〜710''''''''')について、平均化に基づいて前記極大値の位置を決定するために前記特徴変換と分類とを実行し、前記極大値の位置は、前記受信されかつスケールされた画像のそれぞれのコピー(710'〜710''''''''')における前記識別された所定パターンの位置を示している、2D画像分析装置。
【請求項10】
請求項4乃至9のいずれか1項に記載の2D画像分析装置(700)において、前記識別された所定パターンの位置は顔の参照点、眼又は一般的な探索オブジェクトに関係している、2D画像分析装置。
【請求項11】
請求項1乃至10のいずれか1項に記載の2D画像分析装置(700)において、前記2D画像分析装置(700)は、選択的適応型データプロセッサを有する処理ユニットに接続されており、前記プロセッサは複数セットの値を受信し、各セットがそれぞれのサンプルに割り当てられ、前記プロセッサはフィルタプロセッサを含み、
前記フィルタプロセッサは、受信された前記セットに基づき、かつ妥当でないセットが妥当なセットによって置き換えられる方法で、妥当なセットを出力するよう構成されている、2D画像分析装置。
【請求項12】
請求項1乃至11のいずれか1項に記載の2D画像分析装置(700)において、前記2D画像分析装置(700)は、3D画像分析装置(400)を有する処理ユニットに接続されており、前記3D画像分析装置は第1画像(710)に基づいて決定された画像データの少なくとも1つの第1セットと、前記第1画像(710)又は追加画像(710)に基づいて決定された画像データの追加セットとを受信するよう構成され、前記第1画像(710)は第1視覚から第1画像平面への3次元オブジェクトのパターンを表示しており、前記追加セットは前記3次元オブジェクトの1点と前記第1画像平面との間の相対関係を示す相対情報を含み、
前記3D画像分析装置は
前記第1セットと前記追加画像(710)に基づいて決定された前記追加セットとに基づいて3次元空間内での前記パターンの位置を計算するよう構成されるか、又は前記第1セットと、前記第1画像(710)における2つの特性的特徴の相互間の統計的に評価された関係とに基づいて前記3次元空間内での前記パターンの位置を計算するよう構成された位置計算部と、
1画像毎に2つの可能な3D視線ベクトルを計算し、これら2つの可能な3D視線ベクトルから、前記パターンが前記3次元空間において位置合わせされる3D視線ベクトルを決定するよう構成されるアライメント計算部であって、前記計算と決定とは前記第1セットと前記追加セットとに基づき、かつ計算されるべき前記パターンの位置とに基づいて行われる、アライメント計算部と、
を含む2D画像分析装置。
【請求項13】
請求項9に記載の2D画像分析装置(700)を含む2D画像分析システムであって、
前記2D画像分析装置(700)は、第1カメラのための第1ハフ経路と前記第1ハフ経路結果の後処理のための処理ユニットとを含む、瞳孔の収集及び/又はトラッキングのための前記画像分析システムに接続されており、前記第1ハフ経路は以下の特徴を持つハフプロセッサを含み、
前処理部(102)であって、それぞれ1つの画像(710)を含む複数のサンプル(112a,112b,112c)を受信し、個々の前記サンプル(112a,112b,112c)の画像(710)を回転及び/又は反転させ、個々の前記サンプル(112a,112b,112c)のために個々の前記サンプル(112a,112b,112c)の画像(710)の複数のバージョン(112a,112a',112a'',112a''')を出力するよう構成された前処理部(102)と、
ハフ変換ユニット(104)であって、前記複数のバージョン(112a,112a',112a'',112a''')に基づいて、前記複数のサンプル(112a,112b,112c)内の所定の探索パターンを収集するよう構成され、このハフ変換ユニット(104)の特性は前記探索パターンに依存して調節可能である、ハフ変換ユニット(104)と、
を備え、前記処理ユニットは収集された前記パターンを分析し、かつ1セットの幾何学的パラメータを出力するためのユニットを有し、前記幾何学的パラメータは各サンプルについて前記パターンの位置及び/又は幾何学的形状を表している、
2D画像分析システム。
【請求項14】
請求項9に記載の2D画像分析装置(700)と、眼の無反応を検出するよう構成された評価ユニットとを含む、2D画像分析システム。
【請求項15】
探索パターンを含む受信された画像(710)をスケーリングファクタに従ってスケールするステップと、
受信されかつスケールされた前記画像の複数のコピー(710'〜710''''''''')を含む一覧画像(712)を生成するステップであって、各コピーは異なるスケーリングファクタによってスケールされており、前記生成するステップは、前記一覧画像(712)を形成するために、前記受信されかつスケールされた画像のコピー(710'〜710''''''''')を編集すること、及び前記受信されかつスケールされた画像のコピー(710'〜710''''''''')を前記一覧画像(712)の画像行列内に配置することを含み、前記生成するステップは、前記受信されかつスケールされた画像のコピー(710'〜710''''''''')について、前記一覧画像(712)内の前記受信されかつスケールされた画像のコピー(710'〜710''''''''')間のギャップ、及び前記受信されかつスケールされた画像のコピー(710'〜710''''''''')と前記一覧画像(712)の1つ以上の境界とのギャップを考慮しながら、前記一覧画像(712)内のそれぞれの位置を計算することを含む、ステップと、
並列アーキテクチャを有するFPGA上に実装されたパターンファインダ(706)によって、所定パターンと前記一覧画像(712)内の複数の受信されかつスケールされた前記画像(710'〜710''''''''')の複数のパターンとを比較し、前記探索パターンと前記所定パターンとの一致度が最大になる、前記一覧画像内の位置に関する情報を出力するステップであって、前記位置は前記受信されかつスケールされた画像のそれぞれのコピー(710'〜710''''''''')に関連しており、前記パターンファインダ(706)は、関与する全てのスケールされた画像のコピーを一括して単一ステップで探索する、ステップと、
を含む2D画像(710)を分析する方法。
【請求項16】
FPGA上で作動するとき、請求項15に従う方法の実行のためのプログラムコードを有するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、2D画像分析装置及びその対応する方法に関する。
【背景技術】
【0002】
多くのデジタル画像処理の場合、初期画像の複数のスケール済みバージョンがパターン認識に用いられる。そのようなパターン認識のための実例は、特定のモデルサイズについてトレーニングされた、例えばビオラ−ジョーンズ(Viola-Jones)に従う分類部(Klassifikatoer)である。
【0003】
探索パターンがカメラシステムに対してどの程度の距離を持つかに依存して、より大きな又はより小さな表示が発生する。分類部のモデルサイズが固定されているので、分類部のモデルサイズとの最適な一致度をスケーリング段階の1つの中で取得するために、記録された画像の複数のスケーリング段階の中での探索が必要となる。それらのスケーリング段階は通常は昇順又は降順(画像ピラミッド参照)で探索される。このシーケンシャルな処理は、特に並列アーキテクチャ(例えばFPGA)に対して非常に不十分な適性しか持ち得ない。
【0004】
したがって、改良された概念についての必要性が生じる。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】ドイツ特許DE102004046617A1
【特許文献2】ドイツ特許DE102005047160B4
【非特許文献】
【0006】
【非特許文献1】Steffen Markert: gaze direction determination of the human eye in real time(学位論文)
【非特許文献2】Andrew T. Duchowski: Eye Tracking Methodology: Theory and Practice
【非特許文献3】Johannes Katzmann: A real time implementation for the ellipsis Hough transformation (学位論文)
【非特許文献4】Christian Holland-Nell: Implementation of a pupil detection algorithm based on the Hough transformation for circles (学位論文)
【非特許文献5】Christian Kueblbeck, Andreas Ernst: Face detection and tracking in video sequences using the modified census transformation
【非特許文献6】Paul Viola, Michael Jones: Robust Real-time Object Detection
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の目的は、効率的でかつ信頼性のあるパターン認識を可能とすることである。
【課題を解決するための手段】
【0008】
この目的は、独立請求項によって達成される。さらなる実施形態は従属請求項で定義される。
【0009】
本発明の実施形態は、画像スケーラ、画像生成部、及びパターンファインダを持つ2D画像分析装置を創造することである。画像スケーラは、探索パターンを持つ画像を受信し、その受信された画像をスケーリングファクタに従ってスケールするよう構成されている。画像生成部は、前記受信されかつスケールされた画像の複数のコピーを含む一覧画像(Uebersichtsbild)を生成するよう構成され、各コピーは異なるスケーリングファクタによってスケールされている。パターンファインダは、所定パターンと前記一覧画像内の受信されかつスケールされた複数の画像とを比較し、前記探索パターンと所定パターンとの一致度が最大になるような位置に関する情報を出力するよう構成され、その位置は前記受信されかつスケールされた画像のそれぞれのコピーに関連している。
【0010】
つまり、本発明の要旨は、特定パターンの認識度(Erkennbarkeit)は画像サイズに応じて変化する、という事実である。ここで、特に、異なるスケーリング段階のシーケンシャルな処理が非常に非効率的であり得るということが現実化した。したがって、本発明の実施形態は、パターンファインダを有する画像分析装置を創造することであり、そのパターンファインダは、探索パターンが含まれた画像を異なるスケーリング段階で含む一覧画像に対して適用される。これら異なるスケーリング段階が上述のように一覧画像に配置されていることにより、ただ1つのステップにおいて、関与している複数の又は全てのスケーリング段階を一度に探索することが可能になる(しかも、従来のように、パターン認識が1つずつ複数のスケーリング段階に適用されることはない)。これは、パターン認識が一覧画像に対してのみ実行される方法により実現される。一覧画像が探索パターンと最大の一致度を有する点で、一方ではどのスケーリング段階がこの一致度を提供したか(一覧画像内でのそのスケールされた画像の位置)、他方ではどの位置(画像におけるx,y座標)にそのスケーリング段階が存在していたか(スケーリングファクタによって修正された、一覧画像におけるスケール済み画像内の位置)が明確になる。よって、要するに、一覧画像におけるパターン認識を実行するだけで、特にFPGAのような並列アーキテクチャにおいて、探索パターンがより効率的に収集され得るという利点をもたらす。スケーリングの知識によって、絶対画像(Absolutebild)においてもまた、探索パターンの位置が計算可能である。
【0011】
したがって、さらなる実施形態によれば、各スケール済み画像は、それぞれのスケーリングファクタに従って、一覧画像内のそれぞれの位置に割り当てられる。それにより、それぞれの位置は、一覧画像におけるスケール済み画像間のギャップ、一覧画像におけるスケール済み画像の1つ以上の境界とのギャップ及び又は他の所定の条件を考慮する、アルゴリズムによって計算され得る。
【0012】
さらなる実施形態によれば、この準備された一覧画像に対してパターンファインダが適用され、一覧画像のセンサス変換済みバージョン、ハフ特徴空間へと変換された一覧画像のバージョン、グラデーション画像に変換された一覧画像のバージョン、又は一般的に特徴空間に変換された一覧画像のバージョン、における1つ以上の極大値を識別するよう構成され、その場合、極大値の位置は、受信されスケールされた画像のそれぞれのコピーにおける識別された所定パターンの位置を示している。
【0013】
さらなる実施形態によれば、パターンファインダは分類部と後処理部とを含む。分類部は、特徴空間へと変換された一覧画像に適用され、画像コンテンツが探索パターンと一致して存在するような位置において高い値(極大値)を提供する。その分類については、従来技術に従う(例えばViola-Jonesに従う)通常の方法を参考にしてもよい。
【0014】
分類された一覧画像は、次に、それに応じた後処理部を受ける。このため、分類された一覧画像は、最初に局所合計フィルタ(lokalen Summenfilter)を用いて平滑化され、また、極大値の位置も局所的に修正される。これと並行して、極大値フィルタが使用され、合計フィルタを介して、極大値を修正するためにあるスコアが取得される(殆どの場合、そのスコアは分類の結果であり、つまり画像コンテンツと探索パターンとの一致度である)。その結果が、スコアと局所的に修正された極大値とを持つ、分類された一覧画像である。前述の実施形態に対応して、一覧画像における極大値の各位置に対して、対応するスケーリング段階が割り当てられる(それらのスケーリング段階が上下に間隔を空けて配置され、かつ一覧画像の複数の境界に対して間隔を空けて配置されているような場合を除く)。スケーリング段階内の正にどこに最大値があるかに依存して、この位置は、対応するスケーリング段階のスケーリングファクタに関する対応位置を修正することによって、オリジナル画像へと再転換され得る。よって、一覧画像における各位置に対して、オリジナル座標における絶対位置が割り当てられる(それらのスケーリング段階が一列に間隔を空けて配置され、かつ一覧画像の複数の境界に対して間隔を空けて配置されているような場合を除く)。1つの最大値が1つのスケーリング段階内で抽出されていた場合、この位置は、隣接するスケーリング段階の対応する極大値を考慮して再度修正されることもでき、また、隣接するスケーリング段階を介した平均化も行われ得る。
【0015】
さらなる実施形態は、2D画像分析装置の正確な実装に関係しており、実施形態の第1グループによれば、組込型プロセッサ又はプログラム可能な論理ユニット又は特定用途向けユニット(ASIC)として設計されうるか、又は実施形態の第2グループによれば、コンピュータ上で作動する方法(コンピュータプログラム)として実現される。
【0016】
一実施形態は、以下のステップを含む2D画像を分析する方法を含む。即ち、探索パターンを含む受信された画像を、スケーリングファクタに従ってスケールするステップと、前記受信されかつスケールされた画像の複数のコピーを含む一覧画像を生成するステップとを含み、全てのグループ化は異なるスケーリングファクタによってスケールされている。次のステップとして、一覧画像の特徴空間(例えばハフ特徴空間)への変換が行われ、次に所定パターン(例えば眼など)との一致度を決定するための分類が行われる。次に、一覧画像内の受信されかつスケールされた複数の画像において最大値が探索され、探索パターンと所定パターンとの間の一致度が最大となるような位置に関する情報が出力される。その位置は受信されかつスケールされた画像のそれぞれのコピーに関係している。その位置は、必要であれば、局所合計フィルタ及び極大値フィルタの組合せによって修正され、かつ隣接するスケーリング段階を介して平均化され得る。
【0017】
さらなる実施形態によれば、2D画像分析装置は2D画像分析システムと結合されることができ、その画像分析システムは、所定パターン及び特に瞳孔(又は一般的に眼領域又はユーザーの眼)を監視し、かつこれに対するステータスを決定する評価ユニットを有する。それ故、例えば瞬時的な居眠りに起因してもはや開かれない眼のような、眼の反応がないことの検出が特に可能になる。
【0018】
さらなる実施形態によれば、2D画像分析装置は、選択的適応型データプロセッサを含む追加の処理ユニットに接続されることができ、そのデータプロセッサは複数のデータセットを画像分析装置と交換し、これらデータセットを処理するよう構成されている。その場合、データセットは、妥当なデータセットだけが伝送され、一方でデータセットの妥当でない部分は妥当な部分と置き換えられるという方法で処理される。
【0019】
さらなる実施形態によれば、2D画像分析装置は3D画像分析装置に接続されてもよく、その3D画像分析装置は、画像データの少なくとも1つのセットと追加的情報との組合せに基づいて空間内のオブジェクトのアライメント(例えば視点)を決定する。この3D画像分析装置は2つの主たるユニット、すなわち3次元空間内のパターンの位置を決定する位置計算部と、このパターンを正確に通過する軸を決定するアライメント計算部とを含む。
【0020】
さらなる実施形態によれば、2D画像分析装置はハフプロセッサに接続されてもよく、そのハフプロセッサは以下の2つのサブユニットに分割される。すなわち、前処理部は、それぞれに画像を含む複数のサンプルを受信し、それぞれのサンプルの画像を回転及び/又は反転させ、それぞれのサンプルの各サンプルについて画像の複数のバージョンを出力するよう構成されている。ハフ変換ユニットは、前記複数のバージョンに基づいて複数のサンプルにおける所定の探索パターンを収集するよう構成され、前記探索パターンに依存した特性は、ハフ変換ユニットにおいて調整可能である。ハフ結果の後処理のための処理ユニットは、収集されたパターンを分析し、各サンプルについてパターンの位置及び/又は幾何学形状(ジオメトリ)を表す幾何学的パラメータのセットを出力するよう構成されている。
【0021】
以下に、本発明の実施形態について添付の図面に基づいて説明する。
【図面の簡単な説明】
【0022】
図1】本発明の一実施形態に従う2D画像分析装置の概略ブロック図である。
図2a】本発明の一実施形態に従う、前処理部とハフ変換ユニットとを有するハフプロセッサの概略ブロック図を示す。
図2b】一実施形態に従う、前処理部の概略ブロック図を示す。
図2c】直線(部分)の検出用のハフコアの概略図を示す。
図3a】一実施形態に従うハフ変換ユニットの可能な実装例の概略ブロック図を示す。
図3b】一実施形態に従う減速行列の単一セルを示す。
図4a】一実施形態に従うハフ変換ユニットの他の実装例の概略ブロック図を示す。
図4b】一実施形態に従うハフ変換ユニットの他の実装例の概略ブロック図を示す。
図4c】一実施形態に従うハフ変換ユニットの他の実装例の概略ブロック図を示す。
図4d】一実施形態に従うハフ変換ユニットの他の実装例の概略ブロック図を示す。
図5a】2つの画像処理部と1つの後処理ユニットとを有し、画像処理部の各々が1つのハフプロセッサを含む、一実施形態に従うステレオカメラ組立体の概略図を示す。
図5b図5aのユニットにより可能な視点検出の説明と、モノスコピックの場合の視点検出の説明のための眼の例示的な図である。
図6】追加的な実施形態及び/又は態様を説明するための更なる図である。
図7a】さらに追加的な実施形態及び/又は態様を説明するための更なる図である。
図7b】オリジナル画像と縮小画像とを示す図である。
図7c】センサス変換後の画像と分類後の擬似カラー画像とを示す図である。
図8a】光学システムの概略図である。
図8b】光学システムの概略図である。
図8c】光学システムの概略図である。
図8d】光学システムの概略図である。
図8e】光学システムの概略図である。
図9a】ハフ変換ユニットの背景知識を説明する図である。
図9b】ハフ変換ユニットの背景知識を説明する図である。
図9c】ハフ変換ユニットの背景知識を説明する図である。
図9d】ハフ変換ユニットの背景知識を説明する図である。
図9e】ハフ変換ユニットの背景知識を説明する図である。
図9f】ハフ変換ユニットの背景知識を説明する図である。
図9g】ハフ変換ユニットの背景知識を説明する図である。
図9h】ハフ変換ユニットの背景知識を説明する図である。
図9i】ハフ変換ユニットの背景知識を説明する図である。
【発明を実施するための形態】
【0023】
以下に本発明の実施形態について、図を用いて詳細に説明する。同一の構成要素には同一の参照符号が用いられ、その説明は相互に適用可能であり、及び/又は変更可能であることに注目すべきである。
【0024】
図1は、画像スケーラ702と画像生成部702とパターンファインダ706とを有する2D画像分析装置700を示す。画像スケーラ702は、探索パターン711を含む画像710(図7b参照)を受信するよう構成されている。画像スケーラ702において、受信された画像710は異なるスケーリングファクタによってスケールされる。例えば、次のように縮小が行われ得る。この縮小の間、画像710に基づいて、受信されかつスケールされた画像の複数のコピー710',710'',710'''〜710'''''''''が発生するが、その場合、スケーリング段階の数は限定されない点に注意すべきである。このスケールされた複数の画像710'〜710'''''''''は画像生成部704によって一覧画像712へと組み合わされ、一覧画像712は受信されかつスケールされた画像の複数のコピー710'〜710'''''''''を含む。一覧画像内のスケールされた画像のそれぞれの位置は、一覧画像におけるスケール済み画像間のギャップ、スケール済み画像の一覧画像における1つ以上の境界に対するギャップ、及び又は他の所定の条件を考慮する、アルゴリズムによって計算され得る。この一覧画像712において、パターンファインダ706により、探索パターン711が検出され得る。
【0025】
パターン認識を複数のスケーリング段階に対して1つずつ適用することに代えて、パターン認識は一覧画像に対して一度だけ適用される。この場合、それぞれのスケーリング段階は一覧画像内の位置情報として「符号化」される。個別のスケーリング段階のこの種の処理は、FPGAアーキテクチャにおいて特に有利である。なぜならここで、個別のスケーリング段階の1つずつのシーケンシャルな処理は、比較的複雑になる恐れがあるからである。スケールされた種々の画像は、記憶装置に個々に格納され、別個に処理され、次にその結果が一緒に集められなければならないであろう。一覧画像は一度に生成され、次に1ステップで処理され得る。このようにして、並列FPGAアーキテクチャが最適に利用され得る。
【0026】
他の実施形態によれば、この一覧画像710を特徴画像710aへと変換することも可能であろうし、その場合、典型的にはセンサス変換が使用される。このセンサス変換済み画像710aに基づいて、擬似カラー画像710b(図7c参照)を検出するために、分類を行うことも考えられる。
【0027】
任意選択的ではあるが、他の実施形態によれば、追加的に後処理ユニット(図示せず)が2D画像分析装置(図5a参照)に設けられ得る。後処理ユニットは、分類された一覧画像における極大値の位置を修正するために、局所合計フィルタ及び最大値フィルタの組合せの適用を可能とする。任意選択的に、スケーリング段階の1つにおいて隣接するスケーリング段階から対応する最大値を用いて発見された最大値の位置の平均化を行っても良い。その場合、一覧画像内において隣接するスケーリング段階にわたりかつそれを超える範囲の平均化が行われる。
【0028】
この2D画像分析装置の他の実施携帯又は変形例は図7aに関して説明される。
【0029】
図2aは、前処理部102とハフ変換ユニット104とを有するハフプロセッサ100を示す。前処理部102は、第1信号処理ステージを構成し、ハフ変換ユニット104に対して情報的に接続されている。ハフ変換ユニット104は遅延フィルタ106を有し、その遅延フィルタ106は、少なくとも1つの、しかし好ましくは複数の遅延要素108a,108b,108c,110a,110b,110cを含み得る。遅延フィルタ106の遅延要素108a〜108c及び110a〜110cは、典型的にはコラム(列)108及び110とライン(行)a〜cにおける行列として配置され、相互に信号接続されている。図1の実施形態によれば、遅延要素108a〜108c及び/又は110a〜110cの少なくとも1つは、調節可能な遅延時間を有しており、ここでは「+/−」の符号を用いて示されている。遅延要素108a〜108c及び110a〜110cを活性化するため、及び/又はそれらを制御するため、別の制御ロジック及び/又は制御レジスタ(図示せず)が設けられてもよい。この制御ロジックは、個々の遅延要素108a〜108c及び/又は110a〜110cの遅延時間を、任意選択的な切換え可能要素109a〜109c及び/又は111a〜111cを介して制御し、それら切換え可能要素は、例えばマルチプレクサ及びバイパスを含み得る。ハフ変換ユニット104は、個々の遅延要素108a〜108c及び110a〜110cの初期コンフィグレーションのための追加的なコンフィグレーションレジスタ(図示せず)を備えてもよい。
【0030】
前処理部102の目的は、個々のサンプル112a,112b,112cを、それらがハフ変換ユニット104によって効率的に処理され得るような方法で処理することである。この目的のために、前処理部102は、画像データ及び/又は複数のサンプル112a,112b,112cを受信し、例えば回転形式及び/又は反転形式のような前処理を実行して、ハフ変換ユニット104に対して複数のバージョン(112a及び112a'を参照)を出力する。その出力は、ハフ変換ユニット104が単一のハフコア106を有する場合には直列的に発生可能であり、又は、複数のハフコアが準備された場合には並列的にも発生可能である。つまり、この実装例によれば、画像のn個のバージョンが、完全に並列的、準並列的(即ち、一部分だけ並列的)又は直列的に出力されかつ処理されることになる。探索パターン又はハフコアコンフィグレーションを有する複数の類似パターン(上昇又は下降する直線)を検出するという目的を果たす、前処理部102内の前処理について、以下に第1サンプル112aを用いて説明する。
【0031】
このサンプルは、例えば約90°回転されて、回転済みバージョン112a'が取得されてもよい。このような回転の手順は参照符号114で示す。その場合、回転は約90°で行うことができるが、更に約180°もしくは約270°、又は一般的に約360°/nでも行うことができる。その場合、下流側のハフ変換(ハフ変換ユニット104参照)に依存して、90°回転だけを実行することが非常に効率的となり得ることに留意されたい。これらのサブ態様については、図2を参照して説明する。更にまた、画像112aは反転されて、反転済みバージョン112a''が取得されてもよい。このような反転の手順は、参照符号116で示す。この反転116は、メモリの後方読み出しに対応する。反転済みバージョン112a''に基づき、又は回転済みバージョン112a'に基づき、手順114又は116を実行することで、第4のバージョンが回転かつ反転されたバージョン112a'''として取得されてもよい。反転116に基づいて、後述するような同じハフコアコンフィグレーションを有する2つの類似パターン(例えば右方向に開口された半円及び左方向に開口された半円)が検出される。
【0032】
ハフ変換ユニット104は、前処理部102により提供されたバージョン112a若しくは112a'(又は112a''若しくは112a''')の中で、所定の探索パターン、例えば楕円又は楕円のセグメント、円又は円のセグメント、直線又は直線のセグメントなどを検出するよう構成されている。このため、所定の探索パターンに対応してフィルタ装置が構成される。それぞれのコンフィグレーションに依存して、遅延要素108a〜108c又は110a〜110cの幾つかが活性化され、又は迂回される。そのため、検査されるべき画像112a又は112a'のフィルムストリップを変換ユニット104へと適用する際に、遅延要素108a〜108cによって幾つかのピクセルが選択的に遅延され、このことは中間格納に対応し、他のピクセルは直接的に次のコラム110へと送られる。この手順に起因して、曲線的又は傾斜した幾何学形状は「直線化」される。ロードされた画像データ112a又は112a'に依存し、及び/又は、より正確には画像112a又は112a'の適用された線の画像構造に依存して、コラム108又は110の1つにおいて高いコラム合計(Spaltensumme)が発生する一方で、他のコラムにおけるコラム合計はより低くなる。コラム合計はコラム合計出力108x又は110xを介して出力される。その場合、ここでは任意選択的に、各コラム108又は110のコラム合計を達成する加算要素(図示せず)が設けられてもよい。コラム合計のうちの1つの最大値を用いて、探索画像構造又は探索画像構造のセグメントの存在、又は少なくとも探索構造との関連する一致度の存在が推定され得る。つまり、処理ステップ毎に、フィルムストリップがピクセル毎又はコラム108若しくは110毎に更に動かされ、その結果、開始ヒストグラムによる各処理ステップを用いて、探索構造の1つが検出されるか否か、又は、探索構造の存在確率が対応するように高いか否か、が認識可能となる。換言すれば、コラム108又は110のそれぞれのコラム合計が閾値を超えたということは、探索画像構造のセグメントを検出したことを示し、その場合、各コラム108又は110は、探索パターン又は探索パターンの特性(例えば直線の角度又は円の半径)に関連していることを意味する。ここで注意すべきは、それぞれの構造について、それぞれのコラム110のそれぞれの遅延要素110a,110b,110cが決定的であるだけでなく、特に、後続の遅延要素110a,110b,110cとの組合せにおける先行の遅延要素108a,108b,108cも決定的ということである。現状技術に対応して、そのような構造又は遅延要素の活性化もしくは迂回は、先験的に予め決定されている。
【0033】
可変遅延要素108a〜108c又は110a〜110c(遅延要素)を介して、探索特性(例えば半径又は傾きが動作中に調節され得る。個々のコラム108と110とは互いに接続されているので、遅延要素108a〜108c又は110a〜110cの1つの遅延時間を調節している間に、フィルタ106の全体的なフィルタ特性の変化が発生する。ハフ変換ユニット104のフィルタ106のフィルタ特性の柔軟な調節により、変換コア106をそのランタイム期間中に調節可能であり、それにより、例えば小さな瞳孔及び大きな瞳孔についての例えば動的な画像コンテンツを、同じハフコア106を用いて収集及び追跡計測し得る。図3cには、遅延時間がどのように調節され得るかに関する正確な実装例について言及されている。ハフプロセッサ100又は変換ユニット104が高い柔軟性を持ち得るようにするため、好ましくは全ての遅延要素108a,108b,108c,110a,110b及び/又は110c(又はこれら要素の少なくとも1つ)が、可変又は離散的に切換え可能な遅延時間を用いて実行され、その結果、動作中に、検出されるべき異なるパターン間で、又は検出されるべきパターンの異なる特性間で切換え可能となる。
【0034】
更なる実施形態によれば、図示されたハフコア104のサイズは(動作中又は事前に)設定可能であり、そのため、追加的なハフセルが活性化又は不活性化され得る。
【0035】
更なる実施形態によれば、変換ユニット104は、変換ユニット104を調節するための手段、又はより正確には、個々の遅延要素108a〜108c及び110a〜110cを調節するための手段、例えばコントローラ(図示せず)へと接続されることができる。
そのコントローラは、例えば下流側の処理ユニット内に配置されてもよく、パターンが認識されない場合、又はその認識が十分でない場合(画像コンテンツと探索パターンとの一致度が低い場合)に、フィルタ106の遅延特性を調整するよう構成されてもよい。このコントローラに関しては、図5aを参照しながら説明する。
【0036】
上述した実施形態の長所は、それらが容易かつ柔軟に実現でき、特にFPGA(プログラム可能ゲートアレイ)上に実装できるということである。その背景には、上述した並列ハフ変換が、回帰なしで進行すること、及び言わば完全に並列化されていることがある。従って、更なる実施形態は、少なくともハフ変換ユニット104及び/又は前処理部102を有するFPGAに関する。上述のデバイスをFPGA、例えばXILINX Spartan 3A DSPに実装することで、例えば640×480の解像度を有する60FPSの非常に高いフレームレートが、96MHzの周波数を使用して達成され得る。なぜなら、複数のコラム108と110とを有する上述した構造104により、並列処理又はいわゆる並列ハフ変換が可能となるからである。
【0037】
図2a及び図2bは、フレーム112a,112b,112cを有するビデオデータストリーム112の前処理を行う前処理部102を示す。その前処理部102は、サンプル112を、二値エッジ画像として、又はグラデーション画像としても受信し、それに基づいて回転114又は反転116を実行して、4個のバージョン112a,112a',112a'',112a'''を得るよう構成されている。その背景として、典型的に、ハフ変換ユニットによって実行されるような並列ハフ変換は、画像112aの2個又は4個の個別に前処理され例えば約90°シフトされたバージョンに基づいていることが挙げられる。図2bに示すように、初めに(112aから112a'へ)90°の回転が行われ、その後、2つのバージョン112aと112a'とが水平に(112aから112a''へ、及び112a'から112a'''へ)反転される。反転116及び/又は回転114を実行するために、前処理部は、対応する実施形態において、受信された画像データ112を蓄積する役割を担う内部又は外部のストレージを有する。
【0038】
前処理部102の回転114及び/又は反転116の処理は、下流側のハフ変換と、並列ハフコアの数(並列化の程度)と、それらのコンフィグレーションとに依存し、その様子は特に図2cを参照しながら説明する。ここで、前処理部102は、以下の3つの場合の1つに対応した下流側のハフ変換ユニット104の並列化の程度に応じて、前処理済みのビデオストリームを出力126を介して出力するよう構成されてもよい。
【0039】
100%並列化:4つのビデオデータストリームの同時出力、即ち、非回転かつ非反転の1つのバージョン112aと、約90°回転された1つのバージョン112a’と、それぞれ反転されたバージョン112a''及び112a'''の出力。
【0040】
50%並列化:2つのビデオデータストリームの出力、即ち、第1ステップで非回転バージョン112aと約90°回転バージョン112a'とを出力し、第2ステップでそれぞれに反転されたバージョン112a''と112a'''とを出力。
【0041】
25%並列化:1つのビデオデータストリームの個別出力、即ち、非回転バージョン112aと、約90°回転バージョン112a'と、反転バージョン112a''と、反転されかつ回転されたバージョン112a'''とのシーケンシャルな出力。
【0042】
上述のバージョンに対して代替的に、第1バージョンに基づいて、回転だけによる3個の更なるバージョン、即ち例えば約90°、180°及び270°の回転によるバージョンが達成されることも想定可能であろうし、ハフ変換はこれらバージョンに基づいて実行される。
【0043】
更なる実施形態によれば、前処理部102は、例えばアップサンプリングのような更なる画像処理ステップを実行するよう構成されてもよい。加えて、前処理部がグラデーション画像を生成することも可能であろう。グラデーション画像の生成が画像の前処理の一部となるような場合には、グレー値画像(初期画像)がFPGAにおいて回転されることも可能であろう。
【0044】
図2cは、例えば2個の並列31×31ハフコアのための2個のハフコアコンフィグレーション128及び130を示し、それらは直線又は直線部分を認識するよう構成されている。更に、どの角度セグメントにおいて検出が可能かを示すため、単位円132が適用されている。ここでの注意は、ハフコアコンフィグレーション128及び130は、白点が遅延要素を示していると、それぞれ理解されるべきことである。ハフコアコンフィグレーション128は、いわゆるタイプ1のハフコアに相当し、ハフコアコンフィグレーション120は、いわゆるタイプ2のハフコアに相当する。2つのハフコアコンフィグレーション128と130とを比較すれば分かるように、一方は他方の逆を構成している。第1のハフコアコンフィグレーション128を用いて、3π/4とπ/2の間のセグメント1における直線が検出され得る。他方、3π/2と5π/4の間のセグメント(セグメント2)における直線はハフコアコンフィグレーション130によって検出可能である。更なるセグメントにおける検出を有効化するため、上述したように、ハフコアコンフィグレーション128及び130がそれぞれの画像の回転されたバージョンに対して適用される。結果的に、ハフコアコンフィグレーション128によってπ/4とゼロの間のセグメント1rが、ハフコアコンフィグレーション130によってπと3π/4の間のセグメント2rが収集され得る。
【0045】
代替的に、ただ1つのハフコア(例えばタイプ1のハフコア)だけを使用する場合、上述の直線アライメントのバージョンを収集するために、画像の回転を約90°で一回、約180°で一回、270°で一回行うことが有益であり得る。他方、柔軟性に起因して、ハフコアのコンフィグレーションの期間中に、単一のハフコアタイプが使用されることができ、ハフコアが動作中にリコンフィグレーションされ、又は、それに関連して、ハフコアが逆のタイプに対応するような方法で個々の遅延要素がスイッチオン又はオフされ得る。つまり、換言すれば、(50%並列化操作における)前処理部102と単一のハフコア及び単一の画像回転を有する構成可能なハフ変換ユニット104とを使用する場合に、全体的な機能を表現することができ、そうでない場合では、2つの並列ハフコアによってカバーされ得る。このように、それぞれのハフコアコンフィグレーション又はハフコアタイプの選択は、前処理部102によって実行される前処理に依存することが明らかとなる。
【0046】
図3aは、m個のコラム108,110,138,140,141,143とn個のラインa,b,c,d,e,fとを有し、m×n個のセルが形成されている、ハフコア104を示す。このフィルタのコラム108,110,138,140,141,143は、探索構造の特異な特性、例えば特異なカーブ又は直線セグメントの特異な傾きを表す。
【0047】
各セルは、遅延時間に関して調節可能な1つの遅延要素を含み、この実施形態においては、バイパスを有する個別に切換え可能な遅延要素が設けられるという事実により、調節機能が実現される。以下に図3bを参照しながら、全てのセルの構造を代表例として説明する。図3bのセル(108a)は、遅延要素142と、例えばマルチプレクサのような遠隔制御可能なスイッチ144と、バイパス146とを含む。遠隔制御可能なスイッチ144によって、ライン信号は遅延要素142を介して伝送され得るか、又は遅延無しで交点148へと導かれ得る。交点148は、一方ではコラム(例えば108)のための合計要素(Summenelement)150に接続されており、他方では、この交点148を介して次のセル(例えば110a)が接続されている。
【0048】
マルチプレクサ144は、いわゆるコンフィグレーションレジスタ160(図3a参照)を介して構成される。ここで注意すべきは、この参照符号160が、マルチプレクサ144に直接的に連結されているコンフィグレーションレジスタ160の一部分に関連しているだけということである。コンフィグレーションレジスタ160の構成要素は、マルチプレクサ144を制御するよう構成されており、第1情報入力160aを介して、例えばFPGA内部BRAM163に記憶されているコンフィグレーション行列に由来するコンフィグレーション情報を受信する。このコンフィグレーション情報はコラム毎のビットストリングであってもよく、複数(変換期間中を含む)の構成された遅延セル(142+144)のコンフィグレーションに関係する。従って、コンフィグレーション情報は出力160bを介して更に伝送され得る。リコンフィグレーションは動作中のどの時点においても不可能であるため、コンフィグレーションレジスタ160又はコンフィグレーションレジスタ160のセルは、追加の信号入力160cを介していわゆる有効化信号を受信し、その信号によりリコンフィグレーションが開始される。この背景には、ハフコアのリコンフィグレーションが、遅延要素の個数又は特にコラムのサイズに依存する所定の時間を必要とするという事実がある。その場合、各コラム要素に対してクロックサイクルが関連付けられ、BRAM163又はコンフィグレーション論理部160に起因して、少数のクロックサイクルの待ち時間が発生する。リコンフィグレーションのための全体の待ち時間は、ビデオベースの画像処理にとっては典型的には無視できる。この実施形態において、CMOSセンサで記録されたビデオデータストリームは、水平及び垂直のブランキングを有すると想定される。その場合、水平ブランキング又は水平ブランキング時間をリコンフィグレーションのために使用できる。そのため、FPGA内に実装されたハフコア構造のサイズが、ハフコアコンフィグレーションのための最大サイズを予め決定することになる。例えば、小さなコンフィグレーションが使用される場合、これらは垂直方向に中心合わせされ、ハフコア構造のコラム1に対して水平方向に位置合わせされる。ハフコア構造の使用されていない要素は、活性化された遅延要素によって全て占められる。
【0049】
個々の遅延要素(142+144)を用いてこのような方法で処理されたデータストリームの評価は、コラム毎に行われる。そのため、コラム毎に合計されて、合計の極大値が検出され、この値が認識された探索構造を表現している。コラム108,110,138,140,141及び143毎の合計はある値を決定する役割を担い、その値はそれぞれのコラムに割り当てられた構造の特性の1つについて、探索構造との一致度を表すものである。コラム合計の極大値を決定するために、コラム108,110,138,140,141又は143毎に、いわゆる比較部108v,110v,138v,140v,141v又は143vが設けられ、それぞれの合計要素150へと接続されている。任意ではあるが、異なるコラム108,110,138,140,141又は143の個々の比較部108v,110v,138v,140v,141v,143vの間に、追加の遅延要素153が設けられてもよく、前記比較部は隣接するコラムのコラム合計同士を比較する。詳細には、フィルタを通過する間に、探索パターンの特性に対して最高の一致度を有するコラム108,110,138又は140が常にフィルタから選出される。コラム合計の極大値を検出している間に、探索構造の存在が推定され得る。つまり、比較の結果が、その中で極大値が認識され、又は探索構造の特性が発見されたコラム番号(可能であればコラム合計=一致度を含む)であり、例えばコラム138である。好ましくは、その結果はいわゆる多次元ハフ空間を含み、その多次元ハフ空間は、探索構造の全ての関連するパラメータ、例えばパターンの種類(例えば直線又は半円)、パターンの一致度、構造の特性(曲線セグメントについてはカーブの強度又は直線セグメントについては傾き及び長さ)、及び探索パターンの位置や向き(Orientierung)などを含む。換言すれば、ハフ空間内の各点について、対応する構造のグレー値が画像セグメント内に追加されることを意味する。結果として、最大値(複数)が形成され、それらによってハフ空間内の探索構造が容易に位置決めされ、画像セグメントへと戻され得る。
【0050】
図3bのハフコアセルは、任意選択的なパイプライン遅延要素162(パイプライン遅延)を有することができ、この要素162は例えばセルの出力に配置されて、遅延要素142による遅延信号とバイパス146による非遅延信号とを遅延させるよう構成されている。
【0051】
図1を参照しながら示したように、そのようなセルはまた、可変性を有する1つの遅延要素、又は切換え及び迂回される複数の遅延要素を含むことができ、その結果、遅延時間が複数段階において調節可能となり得る。図3bに示すハフコアセルの構成を超える更なる構成も、代替的に想定可能であろう。
【0052】
以下に、上述したデバイスの画像処理システム1000内への適用例を、図5aを参照しながら説明する。図5aは、前処理部102とハフ変換ユニット104とを含む、FPGA構成の画像プロセッサ10aを示す。画像プロセッサ10a内には、前処理部102の前に入力ステージ12が更に設けられてもよく、入力ステージ12は、カメラ14aからの画像データ又は画像サンプルを受信するよう構成されている。このため、入力ステージ12は、例えば画像取り込みインターフェイス12aと、セグメンテーション及びエッジ検出部12bと、カメラ制御手段12cとを含み得る。カメラ制御手段12cは、画像インターフェイス12a及びカメラ14aに接続されており、照明時間及び/又は強度のようなファクタを制御する役割を担う。
【0053】
画像プロセッサ10aは、いわゆるハフ特徴抽出部16を更に備え、このハフ特徴抽出部16は、ハフ変換ユニット104により出力されかつパターン認識についての全ての関連情報を含む多次元ハフ空間を分析し、その分析結果に基づいて、全てのハフ特徴のコンパイルを出力するよう構成されている。詳しくは、ハフ特徴空間の平滑化、即ちローカルフィルタを用いた空間的平滑化又はハフ空間の間引き(Ausduennung)(パターン認識と無関係な情報の拒絶)がここで行われる。その間引きは、パターンの種類及び構造の特性を考慮して、ハフ確率空間内の非最大値が削除されるように実行される。更にまた、その間引きのために閾値を定義することもでき、それにより、例えば最小もしくは最大のカーブ、又は最小もしくは最大の傾きなどのような、例えば最小限又は最大限に許容され得る構造の特性を予め決定できるようになる。閾値ベースの拒絶により、ハフ確率空間におけるノイズ抑制も可能になる。
【0054】
オリジナル画像セグメント内の残りの全ての点のパラメータの分析的な再変換は、例えば以下のハフ特徴からもたらされる。即ち、曲線的構造について、位置(x及びy座標)、出現確率、どの方向に円弧が開口しているかを示す半径及び角度が伝送され得る。直線については、位置(x及びy座標)、出現確率、直線の傾きを示す角度、及び代表的な直線セグメントの長さのようなパラメータが決定され得る。この間引きされたハフ空間は、ハフ特徴抽出部16により、又は全体的には画像プロセッサ10aにより出力され、後処理ユニット18における処理へと送られる。
【0055】
後処理ユニットは、例えば組込型プロセッサとして実現されてもよく、そのアプリケーションに応じて、以下に例示的に説明するような異なるサブユニットを含んでもよい。後処理ユニット18は、ハフ特徴ポスト幾何学形状変換部202を含み得る。この幾何学形状変換部202は、ハフ特徴抽出部により出力された1つ以上の所定の探索パターンを分析し、幾何学形状を説明するパラメータを出力するよう構成されている。つまり、幾何学形状変換部202は、例えば、検出されたハフ特徴に基づいて、例えば楕円(瞳孔)又は円についての第1直径、第2直径、中点のシフト及び位置などの、幾何学パラメータを出力するよう構成されてもよい。好ましい一実施形態によれば、幾何学形状変換部202は、3〜4個のハフ特徴(例えば曲線)によって瞳孔を検出しかつ選択する役割を担う。よって、例えば探索構造又はハフ特徴との一致度、ハフ特徴又は検出されるべき所定のパターンのカーブ、ハフ特徴の位置及び向きなどの基準が含まれている。選択されたハフ特徴の組合せがアレンジされ、その場合、第1に、取得されたハフ特徴の合計に従うアレンジメントが行われ、第2に、探索構造との一致度に従うアレンジメントが行われる。そのアレンジメントの後で、この点におけるハフ特徴の組合せが選択され、そこから、カメラ画像内の瞳孔を最も近似して表す楕円がフィットされる。
【0056】
更に、後処理ユニット18は任意選択的なコントローラ204を含み、そのコントローラ204は、画像プロセッサ10a(制御チャネル206参照)に対し、又はより詳細にはハフ変換ユニット104に対して制御信号を返すよう形成されており、その制御信号に基づいて、フィルタ106のフィルタ特性が調節可能となる。フィルタコア106の動的な調節のために、コントローラ204は、典型的には幾何学形状変換部202と接続されて、認識された幾何学形状の幾何学パラメータを分析し、更に、幾何学形状のより正確な認識が可能となるような方法で、定義された境界内でハフコアをトラッキングする。この手順は連続的な手順であり、例えば、最後のハフコアコンフィグレーション(最後に使用されたハフコアのサイズ)から出発して、認識202が不十分な結果を提供すると直ちにトラッキングされる。このように、上述した瞳孔又は楕円の検出の実例に対し、コントローラは、例えば記録されるべきオブジェクトとカメラ14aとの間の距離に依存する楕円サイズを、対象となる人がカメラ14aに近づく場合に調節できる。このとき、フィルタ特性の制御は、最後の調節と楕円の幾何学パラメータとに基づいて行われる。
【0057】
更なる実施形態によれば、後処理ユニット18は選択的適応型データ処理部300を有してもよい。そのデータ処理部の目的は、データ列内の孤立値(Ausreisser)及び外れ値(Aussetzer)を後処理して、例えばデータ列の平滑化を実行することである。従って、選択的適応型データ処理部300は、幾何学形状変換部202により出力される値の複数のセットを受信するよう構成されており、その場合、各セットがそれぞれのサンプルに割り当てられる。データ処理部300のフィルタ処理部は、複数のセットに基づいて次のように値の選択を実行するが、その方法は、妥当でないセットのデータ値(例えば孤立値又は外れ値)が、内部的に決定されたデータ値(交換値)によって交換され、残りのセットのデータ値は交換されずに更に使用される。より詳細には、(孤立値又は外れ値を含まない)妥当なセットのデータ値は伝送され、(孤立値又は外れ値を含む)妥当でないセットのデータ値は、妥当なセットのデータ値、例えば先行するデータ値又は複数の以前のデータ値の平均値、によって交換される。そのため、伝送された値と恐らく交換値とから結果として得られるデータ列は、連続的に平滑化されたものとなる。つまり、(例えば決定された楕円中点座標の)データ列の適応型時間平滑化は、例えば指数平滑法の原理に従って行われ、その場合、(例えば瞳孔検出中の誤った検出による)平滑化されるべきデータ列の孤立値及び外れ値が、平滑化済みデータの変動をもたらすことがない。詳細には、データ処理部は、新たに受信されたセットのデータ値が下記のような基準の範囲内に当てはまらない場合、そのセットのデータ値にわたって平滑化を実行してもよい。
− セットの追加的な値の1つにより定量化される、探索構造との関連する一致度によれば、それがデータ列の外れ値となる。
− 例えば現実のオブジェクトのサイズが以前のオブジェクトから余りに強く外れている場合など、関連するサイズパラメータ又は幾何学パラメータによれば、それが外れ値となる。
− 現実のデータ値(例えば現実の位置の値)が閾値の間にない場合、現実のデータ値と以前のデータ値に基づいて決定されていた閾値との比較に従えば、それが外れ値となる。これを説明する実例は、例えば、オブジェクトの現実の位置座標(セットのデータ値)が選択的適応型データ処理部により事前に決定された位置座標から余りに強く外れている場合である。
【0058】
上述の基準の1つが満たされた場合は、次に、現実の値を平滑化するために、以前の値が出力されるか又は少なくとも考慮される。平滑化期間中の遅延をできるだけ小さくする目的で、任意ではあるが、現実の値は過去の値よりも強く評価される。つまり、指数平滑化を適用する場合、現実の値が以下の式によって決定され得る。
現実に平滑化された値=現実の値×平滑化係数+最後の平滑化された値×(1−平滑化係数)
【0059】
平滑化係数は、定義された境界内で、平滑化されるべきデータの傾向に対して動的に調節され、例えば比較的一定した値動向の低減、又は、上昇もしくは降下する値動向の増強が行われる。平滑化されるべき幾何学パラメータ(楕円パラメータ)に関して長期的に大きな急上昇が発生した場合、データ処理部と、平滑化された値動向は、この新たな値に対して順応する。一般的に、選択的適応型データ処理部300はまた、例えば初期化の期間中にパラメータによって構成され得る。その場合、これらのパラメータを介して、平滑化の挙動、例えば外れ値の最大期間又は最大平滑化ファクタなどが決定される。
【0060】
このように、選択的適応型データ処理部300、又は全体的には後処理ユニット18は、認識されるべきパターンの位置及び幾何学形状の高度な正確性を有する妥当な値を出力してもよい。このため、後処理ユニットはインターフェイス18aを有し、任意ではあるが、このインターフェイスを介して外部の制御コマンドを受信することもできる。より多くのデータ列が平滑化されるべき場合には、各データ列について別個の選択的適応型データ処理部を使用するか、又は、データ値のセット毎に異なるデータ列が処理できるような方法で選択的適応型データ処理部を調節することも想定し得る。
【0061】
以下に、選択的適応型データ処理部300の上述した特徴を、具体的な実施形態を用いて全体的に説明する。データ処理部300は、例えば2つ以上の入力と1つの出力とを有してもよい。(データ値を受信する)入力の1つは、処理されるべきデータ列のために設けられている。出力は、選択されたデータに基づく平滑化された列である。その選択のために、更なる入力(データ値のより正確な査定のために追加的な値が受信される)が考慮されるか、及び/又はデータ列そのものがより正確に査定される。データ処理部300内での処理の間に、データ列の変化が生じ、その場合、データ列内における孤立値の扱いと外れ値の扱いとが区別される。
【0062】
孤立値:選択の間に、孤立値は(処理されるべきデータ列内で)アレンジされ、他の(内部的に決定された)値によって交換される。
【0063】
外れ値:処理されるべきデータ列の品質の査定のために、1つ以上の更なる入力信号(追加的な値)が考慮される。その査定は1つ以上の閾値を用いて行われ、その場合、データは「高い」及び「低い」品質に分類される。低い品質を持つデータは外れ値と査定されて、他の(内部的に決定された)値によって交換される。
【0064】
次のステップでは、例えばデータ列の平滑化(例えば時間列の指数平滑化)が行われる。その平滑化のために、外れ値及び孤立値の調節済みのデータ列が考慮される。その平滑化は、可変(適応型)の係数により行われてもよい。平滑化係数は、処理されるべきデータのレベル差に対して調節される。
【0065】
更なる実施形態によれば、後処理ユニット18は、例えば3D画像分析部400としての画像分析部を含み得る。3D画像分析部400の場合、後処理ユニット18とともに、画像処理部10b及びカメラ14bからなる更なる画像収集ユニットを備え得る。このように、2つのカメラ14a及び14bと、画像処理部10a及び10bとは、1つのステレオカメラ機構を確立し、その場合、好ましくは画像処理部10bは画像処理部10aと同一である。
【0066】
3D画像分析部400は、第1画像(カメラ14a参照)に基づいて決定された少なくとも1セットの画像データを受信し、かつ、第2画像(カメラ14b参照)に基づいて決定された第2セットの画像データを受信するよう構成され、その場合、第1及び第2の画像が1つのパターンを異なる視覚から表現しており、さらに3D画像分析部400は、これら画像に基づいて1つの視点又は3D視線ベクトル(3D-Blick vektor)を計算するよう構成されている。このため、3D画像分析部400は位置計算部404とアライメント計算部408とを含む。位置計算部404は、第1のセット、第2のセット、及び、視覚同士の間又は第1カメラ14aと第2カメラ14bとの間の幾何学的関係に基づいて、3次元空間内におけるパターンの位置を計算するよう構成されている。アライメント計算部408は、3D視線ベクトル、例えば視線方向を計算するよう構成されており、認識されたパターンはその視線ベクトルに従って3次元空間内で位置合わせされ、視線ベクトルの計算は、第1のセット、第2のセット及び計算された位置(位置計算部404参照)に基づいて行われる。
【0067】
このため、例えばコンフィグレーションファイル内に、位置パラメータ、光学的パラメータ(カメラ14a,14b参照)など全てのモデルパラメータを記憶した、いわゆる3Dカメラシステムモデルが考慮されてもよい。
【0068】
以下に、瞳孔認識の実例に基づいて、3D画像分析部400の全体的な機能について説明する。3D画像分析部400内に記憶又はロードされたモデルは、カメラユニットに関するデータ、即ちカメラセンサ(例えばピクセルサイズ、センササイズ及び解像度)及び使用される対物レンズに関するデータ(例えば焦点距離及び対物レンズ歪み)と、認識されるべきオブジェクトのデータ又は特性(例えば眼の特性)と、更なる関連オブジェクトに関するデータ(例えばシステム1000を入力デバイスとして使用する場合のディスプレイ)とを含む。
【0069】
3D位置計算部404は、眼の位置又は瞳孔中点を、2個又は複数のカメラ画像(14a,14b参照)に基づいて三角形分割により計算する。このため、位置計算部404には、画像処理部10a及び10b、幾何学的変換部202及び選択的適応型データ処理部300の処理の連鎖を介して、2個のカメラ画像(14a,14b参照)内の1つの点の2D座標が提供される。提供された2D座標から、両方のカメラ10a及び10bについて、3D点をセンサ上の2D点として表現した光線が、3Dカメラモデルを用いて特に光学的パラメータを考慮して、計算される。互いの距離が最短となる2つの直線の点(理想的な場合には直線同士の交点)が、探索される3D点の位置であると推定される。この3D位置は、モデルパラメータに関連して提供された2D座標の精度を記述している誤差尺度と一緒に、インターフェイス18aを介して結果として出力されるか、又は、視線方向計算部408へと伝送される。
【0070】
3D空間内の位置に基づいて、視線方向計算部408は、瞳孔の2つの楕円形状の投影からカメラセンサまでの視線方向を、校正なくかつ眼とカメラシステムとの間の距離を知ることなく決定できる。このため、視線方向計算部408は、画像センサの3D位置パラメータの他に、幾何学的分析部202により決定された楕円パラメータと、位置計算部404により決定された位置とを使用する。瞳孔の中点の3D位置及び画像センサの位置から、現実のカメラユニットの回転により、光軸が3Dの瞳孔中点を通過する仮想のカメラユニットが計算される。次に、それぞれ現実のセンサ上への瞳孔の投影から、2つの仮想の楕円がもたらされるように、仮想のセンサ上への瞳孔の投影が計算される。仮想の楕円のパラメータから、それぞれの仮想のセンサ平面に対して任意に平行な平面上の眼の2つの視点が計算され得る。4個の視点と3Dの瞳孔中点とにより、4個の視線方向ベクトル、つまり、カメラ毎にそれぞれ2個のベクトルが計算され得る。これら4個の可能な視線方向ベクトルのうち、常に、1つのカメラの正に1つのベクトルが、他のカメラの1つのベクトルと略同一となる。両方の同一ベクトルは眼の探索される視線方向を示し、その視線方向はインターフェイス18aを介して視線方向計算部404により出力される。
【0071】
この3D計算の特別な長所は、3D視線方向の検出が非接触であり、3Dの眼の位置の決定のための校正が不要であり、その計算はカメラに対する眼の位置についての知識に依存せず、かつ瞳孔サイズに関する情報を必要としないことである。3D空間モデルを考慮しながら3Dの眼の位置及び3D視線方向を分析的に決定することで、3D空間内における(1を超える)任意のカメラ個数及び任意のカメラ位置が可能となる。短い待ち時間と同時に高いフレームレートにより、上述のシステム1000のリアルタイム機能が可能となる。更に、連続的な結果間の時間差が一定となるように、いわゆる時間レジームが固定される。
【0072】
代替的な変形例において、視線方向の決定はまた、以下に図5を参照しながら説明する方法でも実行され得る。
【0073】
校正不要のアイトラッキング(視線計測)方法を含む、「3D画像分析部」に関する上述した説明の中で、これまでは異なる視覚からの少なくとも2個のカメラ画像が必要とされてきた。視線方向の計算に関し、カメラ画像毎に正に2つの可能な視線方向ベクトルが決定される位置が存在し、その場合、それぞれ第2のベクトルが、カメラと瞳孔中点との間の交差線における第1のベクトルの反転に対応する。他のカメラ画像から結果としてもたらされる両方のベクトルの中から、正に1つのベクトルが、第1カメラ画像から計算されたベクトルに略対応する。これらの対応するベクトルは、決定されるべき視線方向を示す。
【0074】
1つのカメラを用いても校正不要のアイトラッキングを実行できるようにするため、現実の視線方向ベクトル(以下では「vb」と記す)が、カメラ画像から決定される2つの可能な視線方向ベクトル(以下では「v1」及び「v2」と記す)から選択されなければならない。
【0075】
このプロセスを、図5bを参照しながら説明する。図5bは、瞳孔と2つの可能な視線方向v1及びv2とを有する眼球の可視部分(緑の枠)を示す。
【0076】
視線方向「vb」を選択するためには、複数の可能性があり、それらは現実の視線方向ベクトルを選択するために個別又は組み合わせで用いられてもよい。それらの可能性の幾つかを以下に説明する(この列挙は最終的ではない)が、v1及びv2(図5a参照)は、この選択の時点で既に決定済みであると想定されている。
【0077】
第1の可能性(虹彩の周囲の白い真皮組織は、カメラ画像内に発生し得る。(瞳孔中点から出発して無限に長い)2つのビームが定義され、1つはv1の方向であり、もう1つはv2の方向である。両方のビームは眼のカメラ画像へと投影され、そこで瞳孔中点から画像エッジへとそれぞれ延びる。強膜へ帰属するより少数のピクセルに関与するビームは、現実の視線方向ベクトルvbに属する。強膜のピクセルはそのグレー値が、隣接する虹彩のピクセル又は瞼のピクセルとは異なっている。捕捉された眼が属する顔がカメラから余りにそらされている場合(つまり、カメラの光軸と顔平面に対して直角に伸びるベクトルとの間の角度が大き過ぎた場合)、この方法は限界に達する。
【0078】
第2の可能性によれば、瞳孔中点の位置の評価は、眼が開いている間に行われる。眼球の可視部分内又は眼が開いている間の瞳孔中点の位置は、現実の視線方向ベクトルの選択に使用されてもよい。そのための1つの可能性は、(瞳孔中点から出発して無限に長い)2つのビームを定義することであり、1つのビームはv1の方向であり、1つのビームはv2の方向である。両方のビームは眼のカメラ画像内へと投影され、そこで瞳孔中点から画像エッジへとそれぞれ延びる。カメラ画像内の両方のビームに沿って、瞳孔中点と眼の開口部のエッジ(図5bでは緑で示す)との距離がそれぞれ決定される。より短い距離を有するビームが、現実の視線方向ベクトルに帰属する。捕捉された眼が属する顔がカメラから余りにそらされている場合(つまり、カメラの光軸と顔平面に対して直角に伸びるベクトルとの間の角度が大き過ぎた場合)、この方法は限界に達する。
【0079】
第3の可能性によれば、瞳孔中点の位置の評価は、基準瞳孔中点に対して行われ得る。眼球の可視部分内又は眼が開いている間にカメラ画像において決定された瞳孔中点の位置は、基準瞳孔中点と一緒に、現実の視線方向ベクトルを選択するために使用されてもよい。このための1つの可能性は、(瞳孔中点から出発して無限に長い)2つのビームを定義することであり、1つのビームはv1の方向であり、1つのビームはv2の方向である。両方のビームは眼のカメラ画像に投影され、そこで瞳孔中点から画像のエッジへとそれぞれ延びる。画像記録に使用されるカメラセンサ中心の方向を眼が直接的に見る場合、眼が開いている間の基準瞳孔中点は、瞳孔中点に対応する。カメラ画像内へと投影されたビームであって、その画像内で基準瞳孔中点に対する最短距離を有するビームは、現実の方向ベクトルに帰属する。基準瞳孔中点を決定するために複数の可能性があり、そのうちの幾つかを以下に説明する。
【0080】
可能性1(アプリケーションの特異な場合):
カメラセンサ中心の方向を眼が直接的に見る場合、基準瞳孔中点は、決定された瞳孔中点から決められる。これは、仮想のセンサ平面(視線方向計算に関する説明参照)上の瞳孔輪郭が円を特徴付ける場合に行われる。
【0081】
可能性2(アプリケーションの一般的な場合):
基準瞳孔中点の位置の粗い推定として、眼の開口部の表面の焦点が使用され得る。顔が横たわる平面がカメラのセンサ平面と平行でない場合、この推定方法は限界に達する。(例えば事前に実行された頭部位置の決定及びアライメントなどにより)カメラセンサ平面に対する顔面の傾きが既知であり、推定された基準瞳孔中点の位置の修正にその傾きが使用される場合、この限界は補償され得る。
【0082】
可能性3(アプリケーションの一般的な場合):
眼の中点の3D位置が使用可能である場合、3Dの眼の中点と仮想センサの中点との間の直線、及び、眼球の表面とその直線との交点が決定され得る。カメラ画像内へと変換されたこの交点の位置から、基準瞳孔中点が分かる。
【0083】
更なる実施形態によれば、FPGA10a及び10bの代わりに、ASIC(特定用途向けチップ)が使用されることができ、特にそれは多数でも低コストで実現され得る。要約すれば、ハフプロセッサ10a及び10bの実装には依存せずに、高効率処理及び関連する低い内部クロック要件に起因して、低エネルギー消費が達成可能となると云える。
【0084】
これらの特徴にもかかわらず、ここで使用されるハフプロセッサ又はハフプロセッサ上で実行される方法は、非常にロバストであり、失敗の影響を受けにくい。ここで注目すべきは、図1に示すハフプロセッサ100は、例えば図5に関して示したような種々の特徴との種々の組合せの中で使用されてもよい。
【0085】
図1に示すハフプロセッサの適用例として、例えば自動車部門における(又は一般的にセキュリティ関連の人間−機械インターフェイスのための)運転支援システムとしての、瞬間的居眠り警報システム又は疲労検出器などが挙げられる。その場合、(例えば眼のまばたきの程度の尺度としての瞳孔のカバリングなどの)眼の評価により、かつ視点及び焦点を考慮して、特異な疲労パターンが検出され得る。更に、ハフプロセッサは、入力デバイス又は技術的デバイスの入力インターフェイスに関連して使用され得る。その場合、眼の位置及び視線方向は入力パラメータとして使用される。明確な適用例として、例えば特定の焦点領域を強調しながらスクリーンコンテンツを眺めているときの、ユーザーの支援が挙げられ得る。そのような適用例は、介護の分野で、コンピュータゲームで、視線方向を含めることによる3D視覚化の最適化に関し、市場及びメディア展開に関し、又は、特殊な眼科的診断及び治療に関して、存在し得る。
【0086】
上段でも説明したように、上述した方法の実装はプラットフォームに依存せず、その結果、上述の方法はまた、他のユニット、例えばPC上でも実行できる。よって、更なる実施形態は、前処理部を使用して、それぞれが1つの画像を有する大多数のサンプルを処理するステップであって、その場合、それぞれのサンプルの画像が回転及び/又は反転され、各サンプルについてそれぞれのサンプルの画像の大多数のバージョンを出力するステップと、ハフ変換ユニットを使用して、多数のバージョンに基づいて多数のサンプル内で所定のパターンを収集するステップであって、そのハフ変換ユニットが選択された所定のパターンのセットに依存しているフィルタ特性を持つ遅延フィルタを有するステップと、を含むハフ変換の方法に関する。
【0087】
調節可能な特性に関連する上述の説明の中では、常にフィルタ特性に言及していたが、ここでは、更なる実施形態によれば、調節可能な特性は高速2D相関に関する後処理の特性(カーブ又は歪み特性)に関連してもよいことに注意すべきである。この実装については、図4a〜図4dを参照しながら説明する。
【0088】
図4aは高速2D相関の処理連鎖1000を示す。2D相関のこの処理連鎖は、少なくとも、2D曲線のための機能ブロック1105と、結合のための機能ブロック1110とを含む。2D曲線に関する手順は、図4bに示される。図4bは、テンプレートにおける例示的なコンパイルを示す。図4cと図4dとの組合せにより、この処理連鎖1000に基づいてハフ特徴がどのように抽出されるかが自明となる。図4cは、楕円1115を認識するための、(この場合には例えば異なる傾きを有する複数の直線に関し)n個のテンプレートとのピクセル毎の相関を例示的に示す。図4dは、ピクセル毎の相関の結果を示し、その場合、典型的にはn個の結果画像を介して1つの最大探索が行われる。結果として得られる各画像はピクセル毎に1つのハフ特徴を含む。以下に、このハフ処理について、全般的に説明する。
【0089】
調節可能な特性を有する遅延フィルタを用いる構成(並列FPGA構造のために最適化された構成)とは対照的に、ここで説明するハフ処理は、PCベースの構成を特に想定したものであるが、その処理の一部分が他の手法によって置き換え可能となり得る。
【0090】
これまでのところ、事実として、遅延フィルタの略全てのコラムは、探索構造(例えば異なる傾きの直線セグメントなど)を表現していた。フィルタを通過することで、最高合計値を有するコラム番号が決定的となる。その場合、そのコラム番号は探索構造の特性を表し、合計値はその探索構造との一致度を示す。
【0091】
PCベースの構成に関し、遅延フィルタは高速2D相関によって置き換えられる。以前の遅延フィルタは、特定パターンの特性の位置n内のサイズに従って形成されることになる。このn個の特性はストレージ内にテンプレートとして記憶される。次に、前処理済み画像(例えば二値エッジ画像又はグラデーション画像)が、ピクセル毎に通過する。各ピクセル位置において、それぞれ、全ての記憶されたテンプレートとすぐ下方にある画像コンテンツ(後処理特性に対応する)とが同期される(即ち、(テンプレートのサイズにおける)ピクセル位置の環境が評価される)。この手順は、デジタル画像処理における相関として言及される。つまり、各テンプレートについて、すぐ下方にある画像コンテンツとの相関値(即ち一致度)が取得される。つまり、一致度が以前の遅延フィルタからのコラム合計に対応する。ここで、(ピクセル毎に)最高相関値を有するテンプレートについての決定がなされ、そのテンプレート番号が記憶される(テンプレート番号は探索構造の特性、例えば直線セグメントの傾きを記述する)。
【0092】
このように、ピクセル毎に、相関値とテンプレート番号とが取得される。それにより、ハフ特徴は、これまで説明した通り完全に記述され得る。
【0093】
ここで注意すべきは、個々のテンプレートと画像コンテンツとの相関付けが、局所的領域で実行されてもよく、周波数領域で実行されてもよいことである。これは、第1に、初期画像がn個の全てのテンプレートとそれぞれ相関されることを意味する。N個の結果的な画像が取得される。これらの結果的な画像が(立方体状に)1つずつ重ね置かれた場合、ピクセル毎の最高相関値が(全ての平面を介して)探索されるであろう。その場合、個々の平面は、立方体における個々のテンプレートを表す。結果として、個々の画像が再度取得され、その画像はピクセル毎に1つの相関尺度及び1つのテンプレート番号−つまり、ピクセル毎に1つのハフ特徴を含む。
【0094】
上述した態様は常に「瞳孔の認識」との関係で説明してきたが、上述した態様はまた、更なるアプリケーションにも使用可能である。ここで、例えば「瞬間的居眠りに対する警報システム」のアプリケーションについて、以下に詳細に説明する。
【0095】
瞬間的居眠りに対する警報システムは、少なくとも画像収集ユニットと、照明ユニットと、処理ユニットと、音響的及び/又は光学的信号化ユニットとから構成される。ユーザーにより記録された画像の評価によって、そのデバイスは、ユーザーの瞬間的居眠りの開始、又は疲労もしくは注意散漫を認識でき、そのユーザーに警告することができる。
【0096】
このシステムは、例えばCMOS画像センサが使用され、場面が赤外線領域で照明されているという形態で展開されてもよい。この形態には、そのデバイスが環境光から独立して作動し、特にユーザーの眼を眩ませないという長所がある。処理ユニットとして組込型処理システムが使用され、そのシステムは、直下の操作システム上でソフトウェアコードを実行する。信号化ユニットは、現状では、マルチ周波数型ブザー及びRGB−LEDから構成されている。
【0097】
記録された画像の評価は、第1処理段階において、顔及び眼の検出と眼の分析とが分類部によって実行される、という事実上の形式で行われ得る。この処理段階は、顔のアライメント、眼の位置及び瞬目反射(Lidschlussgrad)の程度についての第1の指示を提供する。
【0098】
これに基づき、次のステップにおいて、モデルベースの眼の精密な分析が実行される。そこで使用される眼のモデルは、例えば瞳孔及び/又は虹彩の位置、瞳孔及び/又は虹彩のサイズ、瞼の記述及び眼のエッジ点などで構成され得る。その場合、各時点においてこれらの構成要素の幾つかが見つけられかつ評価されれば十分である。個々の構成要素はまた、複数の画像を介してトラッキングされることもでき、それら構成要素が全ての画像内において再度完全に探索される必要はない。
【0099】
上述したハフ特徴は、顔の検出、眼の検出又は眼の分析もしくは眼の精密な分析を実行するために使用できる。上述した2D画像分析は、顔の検出、眼の検出もしくは眼の分析に使用できる。顔の検出もしくは眼の検出もしくは眼の分析の期間中、決定された結果値、中間値、又は値動向を平滑化するために、上述の適応型選択的データ処理部が使用されてもよい。
【0100】
瞬目反射の程度、及び/又は眼の精密な分析結果の経時的な評価は、ユーザーの瞬間的居眠り、疲労又は注意散漫を判定するために使用され得る。加えて、3D画像分析部に関連して上述したような校正不要の視線方向決定もまた、ユーザーの瞬間的居眠り、疲労又は注意散漫の判定のための更に良好な結果を得るために使用され得る。これらの結果を安定化させるために、適応型選択的データ処理部が使用されてもよい。
【0101】
眼の位置の決定に係る「瞬間的居眠りの警報システム」の実施形態において説明した手順はまた、例えば顔の中の鼻の位置や鼻根の位置などの、他の任意に定義された2D位置の決定のためにも使用され得る。
【0102】
1つの画像からの情報の1セットと情報の追加のセットとを使用する場合、この位置は3D空間においても決定されることができ、その場合、情報の追加のセットは、追加のカメラの画像から生成されるか、又は第1のカメラ画像内のオブジェクト間の関係の評価から生成され得る。
【0103】
一実施形態によれば、初期画像の段階のハフプロセッサは、カメラ制御のためのユニットを含み得る。
【0104】
これまで幾つかの態様をデバイスに関して説明してきたが、これらの態様はまたそれぞれの方法の説明でもあることは明らかあり、その場合、デバイスのブロック又は構成要素はそれぞれの方法ステップ又は方法ステップの特徴としても理解されるべきである。同様に、これまで方法ステップの関係で、又は方法ステップとして説明された態様はまた、それぞれのデバイスのそれぞれのブロック、又は詳細もしくは特徴の説明でもある。方法ステップの幾つか又は全部は、例えばマイクロプロセッサ、プログラム可能なコンピュータの装置、又は電子スイッチとして、(ハードウェア装置を使用して)ある装置により実行されてもよい。幾つかの実施形態では、最も重要な方法ステップの幾つか又はそれ以上がそのような装置によって実行されてもよい。
【0105】
特定の実装要件にもよるが、本発明の実施形態は、ハードウェア又はソフトウエアにおいて構成可能である。この構成は、電子的に読み取り可能な制御信号がその中に格納され、本発明の各方法が実行されるようにプログラム可能なコンピュータシステムと協働する、例えばフレキシブルディスク,DVD,ブルーレイディスク,CD,ROM,PROM,EPROM,EEPROM又はフラッシュメモリ、ハードディスク、又は他のいかなる電磁的もしくは光学的ストレージなどのデジタル記憶媒体を使用して実行され得る。その場合、デジタル記憶媒体はコンピュータ読み取り可能であり得る。
【0106】
本発明に従う幾つかの実施形態は、上述した方法の1つを実行するようプログラム可能なコンピュータシステムと協働可能で、電子的に読み取り可能な制御信号を有するデータキャリアを含む。
【0107】
一般的に、本発明の実施例は、プログラムコードを有するコンピュータプログラム製品として構成することができ、そのプログラムコードは当該コンピュータプログラム製品がコンピュータ上で作動するときに、本発明の方法の一つを実行するよう作動可能である。
【0108】
そのプログラムコードは、例えば機械読み取り可能なキャリアに格納されていても良い。
【0109】
本発明の他の実施形態は、上述した方法の1つを実行するためのコンピュータプログラムを含み、そのコンピュータプログラムは機械読み取り可能なキャリアに格納されている。
【0110】
換言すれば、本発明方法の一実施形態は、そのコンピュータプログラムがコンピュータ上で作動するときに、上述した方法の1つを実行するためのプログラムコードを有するコンピュータプログラムである。
【0111】
本発明の他の実施形態は、本明細書に記載された方法のいずれかを実行するためのコンピュータプログラムが記録されている、データキャリア(又はデジタル記憶媒体、又はコンピュータ読み取り可能な媒体)である。
【0112】
本発明の他の実施形態は、上述した方法の1つを実行するためのコンピュータプログラムを構成するデータストリーム又は信号列である。そのデータストリーム又は信号列は、例えばインターネットのようなデータ通信接続を介して伝送されるよう構成されても良い。
【0113】
他の実施形態は、上述した方法の1つを実行するように構成又は適応された、例えばコンピュータ又はプログラム可能な論理要素のような処理ユニットを含む。
【0114】
他の実施形態は、上述した方法の1つを実行するためのコンピュータプログラムがインストールされたコンピュータを含む。
【0115】
本発明に従う更なる実施形態は、上述した方法の少なくとも1つを実行するためのコンピュータプログラムを受信者へと伝送するよう設計されたデバイス又はシステムを含む。その伝送は電子的又は光学的に行われ得る。受信者はコンピュータ、モバイルデバイス、ストレージデバイス又は類似のデバイスであり得る。そのデバイス又はシステムは、例えばコンピュータプログラムの受信者への伝送のためのファイルサーバーを含み得る。
【0116】
幾つかの実施形態においては、(例えばプログラム可能ゲートアレイ:FPGAのような)プログラム可能な論理要素が、上述した方法の幾つか又は全ての機能を実行するために使用されても良い。幾つかの実施形態では、プログラム可能ゲートアレイが、上述した方法の1つを実行するためにマイクロプロセッサと協働しても良い。一般的に、幾つかの実施形態に関し、それらの方法は任意のハードウェアデバイスによって実行される。これはコンピュータプロセッサ(CPU)としてユニバーサル的に適用可能なハードウェアであってもよく、又は、例えばASICのように方法に関しハードウェア特定型であってもよい。
【0117】
以下に、上述した発明又は発明の態様について、更なる2つの観点から説明する。換言すれば以下の通りである。
【0118】
統合型アイトラッカー(視線計測器)
統合型アイトラッカーは、FPGA最適化済みアルゴリズムのコンパイルを含み、それらアルゴリズムは、カメラライブ画像から並列ハフ変換により(楕円)特徴(ハフ特徴)を抽出するのに適している。次に、抽出された特徴を評価することで、瞳孔の楕円が決定され得る。ある位置を有する複数のカメラを使用し、アライメントが互いに既知である場合、瞳孔中点の3D位置と3D視線方向及び瞳孔の直径が決定され得る。その計算には、カメラ画像内の楕円の位置と形状が考慮される。それぞれのユーザーにとってシステムの校正は必要でなく、カメラと分析される眼との間の距離の知識も必要でない。
【0119】
使用される画像処理アルゴリズムは、特に、FPGA(プログラム可能ゲートアレイ)上での処理に対して最適化されているという特徴を持つ。そのアルゴリズムは、FPGAにおいて一定のリフレッシュレートと最小の待ち時間と最小の資源消費とを有する非常に高速の画像処理を可能にする。つまり、これらのモジュールは、時間的、待ち時間的及びセキュリティ的に厳しいアプリケーション(例えば運転支援システム)、医学診断システム(例えば視野計)、更には、人間−機械インターフェイス(例えばモバイルデバイス)などであって、小型の構造を要件とするアプリケーションを想定して設計されている。
【0120】
オブジェクトの技術的課題
−複数の(ライブ)カメラ画像内における3D空間内での3Dの眼の位置及び3D視線方向のロバストな検出、及び瞳孔サイズの検出
−非常に短い反応時間(又は処理時間)
−小型の構造
−統合された解決策による(PCから独立した)自律機能
【0121】
現状技術
−アイトラッカーシステム
・Steffen Markert: gaze direction determination of the human eye in real time(非特許文献1及び特許文献2)
・Andrew T. Duchowski: Eye Tracking Methodology:Theory and Practice(非特許文献2)
−並列ハフ変換
・Johannes Katzmann: A real time implementation for the ellipsis Hough transformation(非特許文献3及び特許文献1)
・Christian Holland-Nell: Implementation of a pupil detection algorithm based on the Hough transformation for circles(非特許文献4及び特許文献1)
【0122】
現状技術の欠点
−アイトラッカーシステム
○欠点
・アイトラッカーシステムは一般的に、使用前に(複雑な)校正を必要とする。
・Markertによるシステム(特許文献2)は、校正不要であるが、以下のような所定の要件の下でしか作動しない。
1.カメラと瞳孔中点との間の距離が既知であり、ファイルされていること
2.3D瞳孔中点がカメラの光軸の範囲内にある場合にだけその方法が作動する
・全体的な処理はPCハードウェアに対して最適化されている。よって、それによる欠点(処理の期間中では固定の時間レジームが可能でないこと)も免れない。
・アルゴリズムが非常に高い資源消費を有するため、効率的なシステムが必要となる。
・結果が有効になるまでに長期の処理時間、よって長期の遅延時間が発生する(評価されるべき画像サイズに部分的に依存する)。
−並列ハフ変換
○欠点
・二値エッジ画像だけが伝送され得る。
・変換はある画像座標に関連する二値結果を提供するだけである(構造の位置は既知となったが、ヒット確率及び更なる構造特徴は未知である)。
・動作中に変換コアの柔軟な調節ができず、よって、動的な画像コンテンツ(例えば小さな瞳孔と大きな瞳孔などの)動的な画像コンテンツに対しては適性不十分である。
・動作中に変換コアを他の構造へとリコンフィグレーションすることは不可能である。よって、オブジェクト認識への適性は限定的である。
【0123】
構成
全体的なシステムは、同一の眼が表示されている2個以上のカメラ画像から、多次元ハフ特徴のリストをそれぞれ決定し、それらに基づいて瞳孔楕円の位置及び形状をそれぞれ計算する。これら2個の楕円パラメータから、また、カメラの互いの位置及びアライメントのみから、瞳孔中点の3D位置と3D視線方向及び瞳孔直径とが完全に校正不要で決定され得る。ハードウェアのプラットフォームとして、少なくとも2つの画像センサの組合せと、FPGA及び/又は下流側のマイクロプロセッサシステムが(PCIを強制的に必要とせずに)使用される。「ハフ処理」、「並列ハフ変換」、「ハフ特徴抽出部」、「楕円変換部へのハフ特徴」、「コアサイズ制御」、「時間的スマート平滑化フィルタ」、「3Dカメラシステムモデル」、「3D位置計算」及び「3D視線方向計算」は、統合型アイトラッカーの個々の機能モジュールに関係する。それらは統合型アイトラッカーの一連の画像処理ライン内に以下のように当てはまる。
【0124】
図6は、統合型アイトラッカーにおける個々の機能モジュールのブロック図を示す。そのブロック図は、統合型アイトラッカーの個々の処理ステージを示す。以下に、モジュールの詳細な説明を提示する。
【0125】
「ハフ前処理」
○機能
・「並列ハフ変換」モジュールのためのビデオストリームのアップサンプリング。特に、「並列ハフ変換」モジュールの並列化の程度に従う、変換されるべき画像の画像回転及びアップサンプリングによる。
○入力
・二値エッジ画像又はグラデーション画像
○出力
・後続のモジュールの並列化の程度に従い、入力からアップサンプリングされたピクセルデータを有する1つ以上のビデオストリーム
○詳細な説明
・並列ハフ変換は、その原理に基づき、画像コンテンツに対し、それぞれ約90°歪まされた4つの主方向から適用され得る。
・このため、前処理の中で約90°の画像回転が行われる。
・回転された画像と回転されていない画像とが水平方向に反転されているという事実から、(ストレージ内にファイルされた画像行列の逆読み出しにより)残りの2つの方向がカバーされる。
・モジュールの並列化の程度に従い、以下の3つの場合が出力用にもたらされる。
・・100%並列化:4個のビデオデータストリームの同時出力。即ち、約90°回転済み、回転なし、及びそれぞれの反転済みの同時出力。
・・50%並列化:2個のビデオデータストリームの出力。即ち、約90°回転済み及び回転なしの出力と、それぞれの反転済みバージョンの出力とが、シーケンシャルに行われる。
・・25%並列化:1個のビデオデータストリームの出力。即ち、約90°回転済み、回転なし、及びそれぞれの反転済みバージョンが、シーケンシャルに出力される。
【0126】
「並列ハフ変換」
○機能
・簡素なパターン(異なるサイズ及び傾きを有する直線と、異なる半径及び向きを有する曲線)と、二値エッジ又はグラデーション画像内におけるそれらの出現確率との並列認識
○入力
・並列ハフ変換のためのアップサンプリング済みのエッジ画像又はグラデーション画像(「ハフ前処理」モジュールの出力)
○出力
・探索構造の全ての関連パラメータを含む多次元ハフ空間
○詳細な説明
・ピクセルデータについての定義された「通過方向」を有し、以下の特徴によって特性付けされる、複素遅延ベースのローカルフィルタによる入力の処理。
・・遅延要素から成る可変サイズを有するフィルタコア
・・探索構造へのフィルタの適応型調節のために、動作中に遅延要素がスイッチオン及びオフされ得る
・・フィルタの各コラムは探索構造(曲線又は直線の傾き)の特定の特性を表す
・・フィルタコラムを介する合計は、各コラムによって表された構造の特性についての出現確率を提供する
・・フィルタを通過するとき、探索パターンの特性についての最高の出現確率を有するコラムが常に出力される
・各画像ピクセルについて、フィルタは、ハフ空間内の以下のような情報を含む1つの点を提供する:
・・パターンの種類(例えば直線又は半円)
・・パターンについての出現確率
・・構造の特性(カーブの強度又は直線については傾き及び長さ)
・・画像内の構造の位置及び向き
・変換結果として多次元画像がもたらされ、これは以下においてはハフ空間と称される。
【0127】
「ハフ特徴抽出部」
○機能
・パターン認識のための関連情報を含むハフ空間からの特徴の抽出
○入力
・多次元ハフ空間(「並列ハフ変換」モジュールの出力)
○出力
・パターン認識のための関連情報を含むハフ特徴のリスト
○詳細な説明
・ハフ特徴空間の平滑化(ローカルフィルタリングを用いた空間的修正)
・修正された「非最大抑圧」によるハフ空間の「間引き」(パターン認識と無関係な情報の抑制)
・・パターンの種類と構造の特性を考慮した、処理に無関係な点(ハフ確率空間内の「非最大」)の削除
・・以下の適切な閾値を用いたハフ空間点の更なる間引き
・・○ハフ確率空間における閾値によるノイズ抑制
・・○構造の最小及び最大の許容可能な特性のための区間の指示(例えば曲線構造については最小/最大のカーブ、又は、直線については最低/最高の傾き)
・オリジナル画像スコープの結果における全ての残りの点のパラメータの分析的な再変換は、以下のハフ特徴をもたらす。
・・次のパラメータを有する曲線構造
・・○位置(x−及びy−画像座標)
・・○ハフ特徴の出現確率
・・○円弧の半径
・・○円弧がどの方向に開口しているかを示す角度
・・次のパラメータを有する直線
・・○位置(x−及びy−画像座標)
・・○ハフ特徴の出現確率
・・○直線の傾きを示す角度
・・○表された直線セグメントの長さ
【0128】
「ハフ特徴を楕円変換部へ」
○機能
・画像内の瞳孔エッジ(楕円)を最高確率で記述する3〜4個のハフ特徴(曲線)の選択と楕円の決定
○入力
・カメラ画像内の全ての検出されたハフ特徴(曲線)のリスト
○出力
・瞳孔を最高確率で表している楕円のパラメータ
○詳細な説明
・全てのハフ特徴(曲線)のリストから3〜4個のハフ特徴の組合せが形成され、それらのパラメータによってハフ特徴が水平及び垂直の端点を記述し得る
・その場合、以下のような基準がハフ特徴の選択に影響を与える
・・ハフ特徴のスコア(確率)
・・ハフ特徴のカーブ
・・ハフ特徴同士の互いに対する位置及び向き
・選択されたハフ特徴の組合せは以下のようにアレンジされる
・・第1に、含まれるハフ特徴の数に従って
・・第2に、含まれるハフ特徴の組合せられた確率に従って
・アレンジングの後で、第1位のハフ特徴の組合せが選択されて、カメラ画像内の瞳孔を最も確からしく表している楕円がフィットされる。
【0129】
「コアサイズ制御」
○機能
・並列ハフ変換のフィルタコア(ハフコア)の、現実の楕円サイズへの動的な調節
○入力
・最後に使用されたハフコアサイズ
・対応するカメラ画像内の瞳孔を表す楕円のパラメータ
○出力
・更新されたハフコアサイズ
○詳細な説明
・「ハフ特徴を楕円変換部へ」により計算された楕円のサイズ(半軸の長さ)に依存して、端点の検出の間にハフ変換結果の精度を向上させるためにハフコアサイズがトラッキングされる。
【0130】
「時間的スマート平滑化フィルタ」
○機能
・指数平滑法の原理に従う(例えば決定された楕円中点座標の)データ列の適応型同時平滑化であり、その場合、平滑化されるべきデータ列内の外れ値又は極端な孤立値が平滑化されたデータの変動をもたらすことがない。
○入力
・モジュールの各活性化期間において、それぞれ、データ列の1つの値及び関連する品質基準(例えばフィットされた楕円の出現確率など)
○出力
・平滑化されたデータ列(例えば楕円中点座標)
○詳細な説明
・1セットのフィルタパラメータを介してフィルタを初期化することで、その挙動が決定され得る。
・以下のカテゴリの1つに該当しない場合、現実の入力値が平滑化に使用される。
・・関連する出現確率に対応して、それがデータ列の外れ値である場合
・・関連する楕円パラメータに対応して、それがデータ列の孤立値である場合
・・○現実の楕円サイズが以前の楕円サイズと違い過ぎる場合
・・○楕円の最後の位置に対する現実の位置の差異が大き過ぎる場合
・更に、これらの基準の1つが満たされた場合、以前に決定された値が出力される。そうでない場合には、平滑化のための現在の値が考慮される。
・平滑化の間に可能な低遅延を得るために、現在の値は過去の値よりもより強く評価される:
・・現在平滑化されている値=現在値*平滑化係数+最後に平滑化された値*(1−平滑化係数)
・・平滑化係数は、定義された境界内において、平滑化されるべきデータの傾向に対して動的に調節される:
・・○データ列内におけるほぼ一定の値動向を用いた低減
・・○データ列内における増加又は減少する値動向を用いた増強
・平滑化されるべき楕円パラメータに関して長期的に大きな逸脱が発生する場合、フィルタ及び平滑化された値動向が調節される。
【0131】
「3Dカメラシステムモデル」
○機能
・複数のカメラと、ユーザー(又は彼/彼女の眼)と、可能性としてスクリーンとが配置された、3D空間のモデリング
○入力
・全てのモデルのモデルパラメータ(位置パラメータ、光学的パラメータ、その他)を含むコンフィグレーションファイル
○出力
・このモデル内での計算のための統計的枠組み及び関数を提供する
○詳細な説明
・モデルの全ての構成要素の空間位置(位置及び回転角度)と、それらの幾何学的特性(例えばピクセルサイズ、センササイズ、解像度)及び光学的特性(例えば焦点距離、対物レンズ歪み)のモデリング
・モデルはこの時点で以下の構成要素を含む
・・次の構成要素を含むカメラユニット
・・○カメラセンサ
・・○対物レンズ
・・眼
・・ディスプレイ
・モデルの全ての構成要素の特性の他に、特に、以下に説明する機能、即ち(眼の位置の計算のための)「3D位置計算」と、(視線方向の計算のための)「3D視線方向計算」とが提供される。
・このモデルにより、特に(瞳孔中点及び視線方向ベクトルからなる)3Dの目視線(3D-Blickgerade)であって、人間の眼の生物学及び生理学に対応して修正されたものが計算され得る。
・任意ではあるが、(例えばディスプレイ上の)3Dモデルの他のオブジェクトのビューワの視点と、そのビューワの焦点領域もまた計算され得る。
【0132】
「3D位置計算」
○機能
・2個以上のカメラによって捕捉されたある点(例えば瞳孔中点)の空間位置(3D座標)の三角形分割による計算
○入力
・2つのカメラ画像内の1つの点の2D座標
○出力
・その点の3D座標
・誤差の尺度:伝送された2D座標の精度をモデルパラメータとの組合せで記述する
○詳細な説明
・伝送された2D座標から、両方のカメラについて「3Dカメラシステムモデル」により(特に光学的パラメータを考慮して)、3D点をセンサ上の2D点として表示した光線が計算される。
・これらの光線はこのモードの3D空間における直線として記述される。
・両方の直線同士の距離が最短となる点(理想的な場合には直線の交点)が探索3D点であると推定される。
【0133】
「3D視線方向計算」
○機能
・瞳孔の2個の楕円形状の投影からカメラセンサまでの視線方向を、校正なしでかつ眼とカメラシステムとの間の距離を知ることなく決定すること。
○入力
・画像センサの3D位置パラメータ
・両方の画像センサに投影された瞳孔の楕円パラメータ
・両方の画像センサ上の楕円中点の3D位置
・瞳孔中点の3D位置
○出力
・ベクトル及び角度表現における3D視線方向
○詳細な説明
・瞳孔中点の3D位置及び画像センサの位置から、現実のカメラユニットの回転により仮想のカメラユニットが計算され、その光軸は、3Dの瞳孔中点を通過する。
・次に、現実のセンサへの瞳孔の投影に基づいて、仮想のセンサへのそれぞれの瞳孔の投影が計算されて、いわゆる2個の仮想の楕円がもたらされる。
・仮想の楕円のパラメータから、両方のセンサについて、眼のそれぞれ2個の視点が、それぞれのセンサ平面に対して任意に平行な平行平面上において計算され得る。
・これら4個の視点と3Dの瞳孔中点とにより、4個の視線方向ベクトル(各カメラの結果からそれぞれ2個のベクトル)が計算され得る。
・これら4個の視線方向ベクトルのうち、あるカメラの1つのベクトルが、他のカメラの1つのベクトルと正に同一又は略同一となる。
・同一のベクトルの両方は眼の探索視線方向を示し、その視線方向が「3D視線方向計算」モジュールにより結果として提供される。
【0134】
4.a)長所
−カメラに対する眼の位置の知識から独立した、3Dの眼の位置、3D視線方向及び瞳孔サイズの、非接触かつ完全に校正不要の決定。
−3Dの眼の位置と3D視線方向との(3D空間モデルを包含することによる)分析的な決定により、3D空間内におけるカメラの任意の個数(>2)及び任意のカメラ位置が可能となる。
−カメラに投影された瞳孔の計測と、それによる瞳孔サイズの正確な決定
−一連の処理において再帰がない完全に並列の処理に起因して、高いフレームレート(例えば1つのXILINX Spartan 3A DSP @ 96MHzについて60FPS @ 640x480)及び短い待ち時間
−並列FPGA構造のために開発されたFPGAハードウェア及びアルゴリズムの使用
−オブジェクト認識(ここでは瞳孔楕円の特徴)のためのロバストな特徴抽出のための(上述したFPGAハードウェアのために調節された形態における)ハフ変換の使用
−ハフ変換の結果の後処理のためのアルゴリズムはFPGAにおける並列処理に最適化されている。
−固定の時間レジーム(連続的な結果間の一定の時間差)
−1チップ上に完全に集積されていることによる最小の構造空間
−低いエネルギー消費
−FPGAからASICへの処理の直接的な変更の可能性→スケーリング効果の活用に起因して、多数でも非常に費用効率が良好な解決策
【0135】
迂回策
−(部分的な)他のアルゴリズムの使用(例えば楕円検出のための異なるオブジェクト認識方法)
【0136】
特許侵害に対する証明の可能性
−対応する製品が、FPGA及びマイクロプロセッサから構成される高速かつ完全に校正不要なアイトラッキングシステムであれば、明らかに特許侵害の可能性がある。
−FPGAビットファイル/ネットワークリストリストのコピー/模倣による特許侵害の証明
○例えばチェックアマウントにより容易に証明できるであろう。
○更に、ビットファイルはFPGA−IDに束縛され得る→よって、FPGAの類似IDを使用する場合にのみコピーが可能となるであろう。
−FPGAビットファイル/ネットワークリストリストの分解による特許侵害の証明
○特許侵害の示唆は、それぞれのFPGAビットファイル/ネットワークリストリストの分解により認識可能であり得る。
○完全な証明は実現困難となる可能性がある。
−プロセッサコードの「分解」による特許侵害の証明
○示唆は認識可能であるが、完全な証明は困難であろう。
【0137】
アプリケーション
−(ライブ)カメラ画像データストリーム内で、3Dの眼の位置及び3Dの視線方向が検出され、それらは以下のアプリケーションのために使用され得る。
○セキュリティ関連分野
・自動車分野における運転支援システムとして、(例えば瞳孔のカバー度をまばたきの尺度とする)眼の評価による、かつ視点及び焦点を考慮に入れた、例えば瞬間的居眠り警報システム又は疲労検出器
○人間−機械インターフェイス
・技術的デバイスのための入力インターフェイスとして(眼の位置及び視線方向は入力パラメータとして使用され得る)
・スクリーンコンテンツを眺めているときのユーザーの支援(例えば眺められている領域の強調)
・例えば
・・介護分野
・・コンピュータゲーム
・・頭部装着型デバイス用の視線方向サポートされた入力
・・視線方向を含めることによる3D可視化の最適化
○市場及びメディア展開
・例えば被験者の空間的視線方向及び視点を評価することによる、広告の魅力の評価
○眼科的診断(例えば対物視野計測)及び治療
【0138】
FPGA−フェイストラッカー
本発明の一態様は、自律型(PCから独立した)システムに関し、特に、FPGA最適化されたアルゴリズムを使用し、カメラライブ画像内の顔とその(空間的)位置を検出するのに適したシステムに関する。使用されるアルゴリズムは、特に、FPGA(プログラム可能ゲートアレイ)上の処理に対して最適化されており、現存の方法と比較して、処理の中に再帰なしで処理が進むという特徴を有する。そのアルゴリズムは、FPGAにおいて一定のフレームレートと最短の待ち時間と最小の資源消費とを用いて非常に高速の画像処理を可能にする。従って、これらのモジュールは、(例えば運転支援システムなど)時間的/待ち時間的/セキュリティ的に厳しいアプリケーション、又は、小型の構造体であることを要件とする(例えばモバイルデバイス用の)人間・機械インターフェイスとしてのアプリケーションに適している。更に、第2のカメラを使用することで、画像内の特定の点に対するユーザーの空間的位置が、高度な精度を持って、校正不要かつ非接触で決定され得る。
【0139】
オブジェクトの技術的課題
(ライブ)カメラ画像内におけるロバストでハードウェアベースの顔検出
−ステレオカメラシステムを使用した3D空間内での顔及び眼の位置の検出
−非常に短い反応時間(又は処理時間)
−小型の構造
−統合された解決策による(PCから独立した)自律機能
【0140】
現状技術
−文献:
○Christian Kueblbeck, Andreas Ernst: Face detection and tracking in video sequences using the modified census transformation(非特許文献5)
○Paul Viola, Michael Jones: Robust Real-time Object Detection(非特許文献6)
【0141】
現状のフェイストラッカーシステムの欠点
−全体的な処理はPCシステム(より一般的:汎用目的プロセッサ)のために最適化されており、従ってその欠点から免れない(例えば処理進行中の固定の時間レジームが可能でない(実例:画像コンテンツ、例えば背景に依存して、トラッキングにより長い時間が掛かる可能性がある))。
−シーケンシャルな処理;初期画像は異なるスケーリング段階へと(最低のスケーリング段階に到達するまで)連続的に送り込まれ、顔に関する多段階分類部を用いてそれぞれ探索される。
○どれだけ多くのスケーリング段階が計算されるべきか、又は、分類部のどれだけ多くの段階が計算されるべきかに依存して、結果が利用可能となるまで処理期間が変化する。
−高いフレームレートに到達するために、効率的なシステムが必要となる(より高いクロックレート、マルチコア−システムの環境下で)。なぜなら、PCハードウェアに対して最適化されたアルゴリズムは(特に組込型プロセッサシステムが用いられた場合)、非常に高い資源消費を必要とするから。
−検出された顔位置に基づいて、分類部は不正確な眼の位置しか提供しない(眼の位置−特に瞳孔中点−は分析的に決定(又は測定)されておらず、従って不正確性から免れない)。
−決定された顔と眼の位置は2D画像座標においてのみ利用可能であり、3Dでは利用できない。
【0142】
構成
全体的なシステムは、(単一の顔だけが表示されている)1つのカメラ画像から顔の位置を決定し、この位置を使用して左右の眼の瞳孔中点の位置を決定する。互いにに対する既知のアライメントを有する2つ以上のカメラが使用される場合、これら2つの点が三次元空間のために指示され得る。決定された両方の眼の位置は、「統合型アイトラッカー」を使用するシステム内で更に処理されてもよい。「並列画像スケーラ」、「並列フェイスファインダ」、「並列眼分析器」、「並列瞳孔分析器」、「時間的スマート平滑化フィルタ」、「3Dカメラシステムモデル」及び「3D位置計算」は、全体システム(FPGAフェイストラッカー)の個々の機能モジュールに関係している。それらはFPGAフェイストラッカーの画像の一連の処理に以下のように関与する。
【0143】
図7aは、FPGAフェイストラッカー800における個々の機能モジュールのブロック図を示す。機能モジュール「3Dカメラシステムモデル」802と「3D位置計算」804は、フェイストラッキングには必須要件であるが、ステレオカメラシステムを用いて、空間位置の決定のために両方のカメラ上の適切な点を計算する場合に(例えば両方のカメラ画像内の2Dの顔中点の計算の間に3Dの頭部位置を決定するために)使用される。FPGAフェイストラッカーにおけるモジュール「特徴抽出(分類)」806は、フラウンホーファーIIS(エルランゲン、ドイツ連邦共和国)のKueblbeck/Ernstの特徴抽出及び分類に基づいており、センサス特徴に基づいて分類された調節済み変形例を使用する。
【0144】
ブロック図は、FPGAフェイストラキングシステムの個々の処理ステージを示す。以下に、モジュールの詳細な説明を提示する。
【0145】
・「並列画像スケーラ702」
○機能
・初期画像のスケーリング段階の並列計算と、計算されたスケーリング段階の新たな画像行列内でのアレンジメントにより、後続の画像処理モジュールが全てのスケーリング段階を同時分析できるようする。
【0146】
図7bは、初期画像710(オリジナル画像)と並列画像スケーラの結果712(縮小画像)を示す。
○入力
・オリジナル解像度における初期画像710
○出力712
・初期画像のより多くのスケール済み変形例を、後続のフェイストラキングモジュールのために適切なアレンジメントで含む、新たな画像行列
○詳細な説明
・初期画像の異なるスケーリング段階の並列的計算により画像ピラミッドを確立する。
・以前に計算されたスケーリング段階の目標行列内における定義されたアレンジメントを保証するため、種々の基準により、それぞれのスケーリング段階の画像座標が目標行列の画像座標システムへと変換される。
・・隣接する段階内の分析結果のクロストークを抑制するため、スケーリング段階同士間の定義された最短距離
・・画像から部分的に突出している顔の分析を保証するため、目標行列のエッジへの定義された距離
【0147】
・「並列フェイスファインダ808」
○機能
・1つの行列内に合体してアレンジされた複数のスケーリング段階の分類結果から顔を検出する。並列フェイスファインダ808は図1のファインダに匹敵し、その場合、ファインダ706は一般的な機能範囲(瞳孔認識などの更なるパターンの認識)を含む。
【0148】
図7cに示すように、分類結果(右側)は並列フェイスファインダへの入力を構成する。
○入力712
・複数のスケーリング段階を含む分類された画像行列
○出力
・(複数の基準を考慮して)最高確率で顔が配置される位置
○詳細な説明
・分類結果を限定するためのノイズ抑制
・局所合計及び最大値フィルタ(lokalen Summen- und Maximunfilter)の組合せによる、スケーリング段階内の分類結果の空間的修正
・任意ではあるが全てのスケーリング段階にわたる顔サイズにおける、顔の最高出現確率についての向き
・選択されたスケーリング段階にわたる結果位置の空間的平均化
・・平均化に関与するスケーリング段階の選択は、以下の基準を考慮して行われる。
・・○観察されたスケーリング段階内の選択された顔の中点同士の差
・・○合計フィルタの最高結果の動的に決定された偏差
・・○分類結果なしのスケーリング段階の抑制
・「並列フェイスファインダ」の検出性能の閾値ベースの調節
【0149】
「並列眼分析器810」
○機能
・顔検出の間に、対応する顔内の眼の位置を並列に検出する(これは理想的に前面から捕捉されておらず、かつ歪んだ顔の場合に特に重要である)。
○入力
・(「並列画像スケーラ」モジュールからの)初期画像の複数のスケーリング段階を含む画像行列と、(「並列フェイスファインダ」モジュールからの)探索される顔が最高確率で配置されているそれぞれの現在の位置
○出力
・「並列フェイスファインダ」により検出された現在の顔の中の眼の位置及び関連する確率値
○詳細な説明
・ダウンスケールされた初期画像に基づき、「並列フェイスファインダ」により提供された顔領域内の眼の定義された範囲(眼の範囲)内において、各眼に対する眼の探索が以下のように行われる。
・・顔領域内の眼の経験的に決定された通常位置から眼の範囲を定義する。
・・特別に形成された相関ベースのローカルフィルタを用いて、眼の存在についての確率が眼の範囲内で決定される(この画像セグメント内の眼は、光環境を有する小さな暗い表面として簡素に記述される)
・・正確な眼の位置であって、以前に計算された確率分布における最大探索からの眼の位置の確率結果を含む
【0150】
「並列瞳孔分析器812」
○機能
・以前に決定された眼の位置に基づいて、検出された眼の中の瞳孔中点の位置を検出する(眼の位置の精度が向上することになり、それは瞳孔の測定や後続の評価にとって重要である)
○入力
・オリジナル解像度における初期画像と、(「並列眼分析器」又は「並列フェイスファインダ」からの)決定された眼の位置及び顔のサイズ
○出力
・評価された画像内の瞳孔の位置と、瞳孔が発見されたかどうかについてのステータス指示
○詳細な説明
・決定された眼の位置と顔のサイズに基づいて、処理されるべき画像部分が眼の周囲に認識される
・この画像行列内で画像コラムの最小値を含むベクトルと画像ラインの最小値を含むベクトルとが構築される。
・これらベクトルの中で(最小グレー値から)、以下に説明するように瞳孔中点が水平及び垂直方向において別々に検出される
・・それぞれのベクトルの最小値の検出(瞳孔内の位置として)
・・この最小値に基づいて、そのベクトル内で、正及び負の方向に、全てのベクトル要素の動的な範囲に比例的に関連する調節可能な閾値を超えた位置が決定される
・・両方のベクトル内のこれらの範囲の中点が一緒に、分析された画像内の瞳孔の中点を形成する。
【0151】
「時間的スマート平滑化フィルタ814」
○機能
・(例えば決定された顔座標の)データ列の適応型時間的平滑化であり、これにより、外れ値、不合理な値又は極端な孤立値が、平滑化されたデータ内で変動をもたらさなくなる。
○入力
・モジュールの各活性化期間に対し、それぞれデータ列の1つの値及び関連する品質基準(フェイストラッキングに関して:顔が発見されたフェイススコア及びダウンスケーリング段階)
○出力
・平滑化されたデータ値(例えば顔座標)
○詳細な説明
・フィルタパラメータのセットを介し、フィルタの初期化の間に、その挙動が決定され得る。
・現在の入力値は、それが以下のカテゴリの1つに当てはまらない場合、平滑化のために使用される。
・・関連するスコアによれば、それはデータ列の外れ値である。
・・関連するダウンスケーリング段階によれば、それは不合理な値(離れ過ぎであるとダウンスケーリング段階内で決定されていた値)である。
・・平滑化に使用された最後の値に対して過大な差がある場合、それは外れ値である。
・これらの基準の1つが満足された場合、以前に決定された平滑化済み値が出力される。それ以外の場合には、現在の値が平滑化のために考慮される。
・平滑化の間のできるだけ低い遅延を達成するために、現在の値が過去の値よりもより強く評価される。
・・現時点で平滑化される値=現在値*平滑化係数+最後の平滑化された値*(1−平滑化係数)
・・平滑化係数は、平滑化されるべきデータの傾向に対し、定義された境界内において動的に調節される
・・○データ列の比較的一定した値動向の低減
・・○データ列の増加又は減少する値動向の増強
・平滑化されるべき楕円パラメータに関して長期的に大きな逸脱が発生する場合、フィルタ及び平滑化された値動向が調整される。
【0152】
「3Dカメラシステムモデル804a」
○機能
・複数のカメラ、ユーザー(又は彼/彼女の眼)、及び可能性としてスクリーンが配置されている3D空間のモデリング
○入力
・モデルの全ての構成要素のモデルパラメータ(位置パラメータ、光学的パラメータなど)を含むコンフィグレーションファイル
○出力
・このモデル内での計算のための統計的枠組み及び関数を提供する
○詳細な説明
・モデルの全ての構成要素の空間位置(位置及び回転角度)と、それらの幾何学的特性(例えばピクセルサイズ、センササイズ、解像度)及び光学的特性(例えば焦点距離、対物レンズ歪み)のモデリング
・モデルはこの時点で以下の構成要素を含む
・・次の構成要素を含むカメラユニット
・・○カメラセンサ
・・○対物レンズ
・・眼
・・ディスプレイ
・モデルの全ての構成要素の特性の他に、特に、以下に説明する機能(眼の位置の計算のための)「3D位置計算」と、(視線方向の計算のための)「3D視線方向計算」とが提供される。
・他のアプリケーションの場合、更に以下の機能が提供される。
・・このモデルにより、特に(瞳孔中点及び視線方向ベクトルからなる)3Dの目線であって、人間の眼の生物学及び生理学に対応して修正されたものが計算され得る。
・・任意ではあるが、(例えばディスプレイ上の)3Dモデルの他のオブジェクトへのビューワの視点と、そのビューワの焦点領域もまた計算され得る。
【0153】
「3D位置計算804」
○機能
・2個以上のカメラによって捕捉されたある点(例えば瞳孔中点)の空間位置(3D座標)の計算
○入力
・2つのカメラ画像内の1つの点の2D座標
○出力
・その点の3D座標
・誤差の尺度:伝送された2D座標の精度をモデルパラメータに関連して記述する
○詳細な説明
・伝送された2D座標から、両方のカメラについて「3Dカメラシステムモデル」により(特に光学的パラメータを考慮して)、3D点をセンサ上の2D点として表示した光線が計算される。
・これらの光線はこのモードの3D空間における直線として記述される。
・両方の直線同士の距離が最短となる点(理想的な場合には直線の交点)が探索3D点であると推定される。
【0154】
長所
2D内の(ライブ)カメラ画像内における、及び3D空間での再計算による(3D空間モデルを含めることによる)3Dにおける、顔の位置及び眼の位置の決定
−3.で提示したアルゴリズムは、FPGAにおいてリアルタイム可能でかつ並列の処理に対して最適化されている。
−一連の処理の中に再帰がない完全に並列の処理に起因する、高いフレームレート(XILINX Spartan3A DSP @48MHzについて60FPS@640x480)と、短い待ち時間→非常に高速の画像処理及び最小遅延での結果の出力
−全体機能が1つの構成要素(FPGA)で達成できることによる最小の構造空間
−低いエネルギー消費
−固定の時間レジーム(連続的な結果間の一定の時間差)及びセキュリティ的に厳しいアプリケーションへの使用の適応性
−FPGAからASIC(特定用途向け統合型回路)への処理の直接的な変更の可能性→スケーリング効果の活用に起因して、多数でも非常に費用効率が良好な解決策
【0155】
迂回策
−個々のサブ関数の全体的な機能のための他のアルゴリズムの使用
【0156】
特許侵害に対する証明の可能性
−FPGAビットファイル/ネットワークリストリストのコピー/模倣による特許侵害の証明
○例えばチェックアマウントにより容易に証明であろう。
○更に、ビットファイルはFPGA−IDに束縛され得る→よって、FPGAの類似IDを使用する場合にのみコピーが可能となるであろう。
−FPGAビットファイル/ネットワークリストリストの「分解」による特許侵害の証明
○特許侵害の示唆は、それぞれのFPGAビットファイル/ネットワークリストリストの分解により認識可能であり得る。
○完全な証明は実現困難となる可能性がある。
【0157】
アプリケーション
−ソフトウエア解決策との比較におけるアプリケーション間の長所
○自律機能(チップ上のシステム)
○ASICへの容易な変更の可能性
○既存のシステム/スイッチ内への空間節約的な統合
−ソフトウエア解決策の分野と類似するアプリケーション分野((ライブ)カメラ画像データストリーム内で顔の位置及び対応する眼の位置が検出されて、以下のリストに記載するアプリケーションに使用される)。
○セキュリティアプリケーション
○セキュリティ関連分野
・例えば眼(まばたきの程度)の評価と眼及び頭部の動きの評価とによる、自動車分野における瞬間的居眠り警報システム
○人間−機械インターフェイス
・例えば技術的デバイスのための入力インターフェイスとして(頭部又は眼の位置を入力パラメータとして)
○視線計測
・例えば顔及び眼の位置を(「統合型アイトラッカー」との組合せにおける)視線方向決定のための事前段階として
○マーケティング
・例えば頭部及び眼のパラメータ(特に位置)を決定することによる、広告の魅力の評価
【0158】
以下に、2つのイラストを用いて、上述の態様に関する更なる背景知識について説明する。
【0159】
この視線方向計算のための詳細な計算の実例について、図8a〜図8eを用いて説明する。
【0160】
瞳孔中点の計算
上述したように、カメラレンズ808a及び808bにより画像センサ802a及び802bの上に円形の瞳孔806aを描写することにより、楕円形状の瞳孔の投影がそれぞれもたらされる(図8a参照)。瞳孔の中心はセンサ802a及び802bの両方の上にあり、また、それぞれのカメラ画像の中では、常に楕円の中点EMPK1及びEMPK2として描かれている。従って、これら2個の楕円中点EMPK1及びEMPK2のステレオ後方投影(stereoskopische Rueckprojektion)に基づいて、3Dの瞳孔中点が対物レンズモデルによって決定され得る。その場合の任意選択的な要件は、理想的に時間同期するピクチャであり、それにより両方のカメラから取り出された描写場面が同一となり、よって、瞳孔中点が同一の位置に集められたようになる。
【0161】
最初に、各カメラについて、楕円中点の後方投影ビームRSが計算されなければならず、そのビームは、オブジェクトと光学システム(図8a)のそのオブジェクト側(H1)の交点との間の交差ビームに沿って延びる。
[数1]
【0162】
この後方投影ビームは数式(A1)により定義される。その式は開始点RS0及び標準化された方向ベクトル
により構成され、使用される対物レンズモデル(図8b)を、対物レンズの2つの主要点H1及びH2から、及びセンサ平面内の楕円中心EMPから、数式(A2)及び(A3)によりもたらす。このため、全ての3個の点(H1,H2,HMP)は、アイトラッカー配位システム(Eyetracker-Koordinatensystem)の中で使用可能でなくてはならない。
[数2]
[数3]
【0163】
主要点は、対物レンズ及びカメラのパラメータ(図8b)から、次式によって直接的に計算され得る。
[数4]
及び
[数5]
【0164】
ここで、K0はカメラセンサ平面の中点であり、
はカメラセンサ平面の法線ベクトルである。カメラ配位システムにおける3Dの楕円中心は、以前に決定された楕円中心パラメータxm及びymから計算されることができ、次式により提供される。
[数6]
【0165】
ここで、Pimageはカメラ画像のピクセル内の解像度であり、Soffsetは画像の読出しを開始するセンサ上の位置であり、Sresはセンサの解像度であり、SPxGrはセンサのピクセルサイズである。
【0166】
探索される瞳孔中点は、理想的な場合、2つの後方投影ビームRSK1及びRSK2の交点である。しかし、現実的に決定されたモデルパラメータと楕円中点を用いると、最小の測定誤差の場合、3D空間内で直線の交点が得られないことがある。この場合、交差せず平行に延びてもいない2つの直線は、幾何学においてねじれの位置にある線(skew lines)と呼ばれる。後方投影の場合、ねじれの位置にある2つの線がそれぞれ瞳孔中点のごく近傍を通過することが推定され得る。従って、瞳孔中点は、2つの直線の間の半分の線上の互いに最短距離となる位置にある。
【0167】
ねじれの位置にある2つの線の最短距離は、それら2つの直線に対して垂直となる連結線により示される。両方の後方投影ビーム上に垂直に立つ線の方向ベクトル
は、数式(A4)に従って、その方向ベクトルの交差積(Kreuzprodukt)として計算され得る。
[数7]
【0168】
後方投影ビームの間の最短の連結線の位置は、数式(A5)により定義される。RSK1(s)、RSK2(t)及び
を使用することで、ある数式系がもたらされ、そこからs,t及びuが計算され得る。
[数8]
【0169】
後方投影ビームの間の線の半分にある探索される瞳孔中点PMPは、s及びuのために計算された値を使用した後で、数式(A6)から結果的にもたらされる。
[数9]
【0170】
計算された瞳孔中点の正確さの指標として、追加的に、後方投影ビームの間の最短距離dRSが計算され得る。モデルパラメータ及び楕円パラメータがより正確であればあるほど、dRSは小さくなる。
[数10]
【0171】
計算された瞳孔中点は、アイトラッカーにより決定されるべき眼の視線を決定する2つのパラメータの1つである。更に、これは後段で説明する視線方向ベクトル
の計算に必要となる。
【0172】
瞳孔中点を計算するこの方法の長所は、カメラから眼までの距離がシステム内にしっかりと蓄積されている必要がない点である。この点は、例えば特許文献2の特許明細書の中に記載された方法では必要とされている。
【0173】
視線方向ベクトルの計算
決定されるべき視線方向ベクトル
は、円形の瞳孔表面の法線ベクトルに対応し、よって、3D空間で特定される瞳孔のアライメントに基づく。カメラセンサ上の瞳孔の2つの楕円形状の投影の各々について決定され得る楕円パラメータから、瞳孔の位置及びアライメントが決定され得る。これにより、2つの半軸の長さと、投影された楕円の回転角度とは、カメラ位置に対する瞳孔及び/又は視線方向のアライメントについて特徴的となる。
【0174】
楕円パラメータ、及び、アイトラッキングシステムの中にしっかりと蓄積されたカメラと眼の間の距離から視線方向を計算する1つの手法は、例えば特許文献2の特許明細書の中に記載されている。図8eに示すように、この手法は平行投影を想定し、その場合、センサの法線とセンサに投影された瞳孔の中点とにより定義される直線は、瞳孔中点を通過する。このために、カメラと眼との間の距離は事前に既知でなくてはならず、アイトラッキングシステムの中にしっかりと蓄積されている必要がある。
【0175】
実際のオブジェクトの映像の挙動を記述する、この手法で提示されたカメラの対物レンズのモデルを用いて、画像センサに対するオブジェクトの透視投影(perspektivische Projektion)が生まれる。これにより、瞳孔中点の計算が実行でき、カメラから眼までの距離は事前に既知である必要がなくなる。このことは、上述の特許明細書と比較した場合の本質的な改善点の1つを構成する。しかし、透視投影に起因して、センサ上に表示される瞳孔の楕円の形状は、平行投影とは対照的な結果をもたらす。これは、瞳孔のセンサ表面に対する傾きだけに起因するものではない。カメラの対物レンズの光軸からの瞳孔中点の偏位δも同様に、図8bに示すように、瞳孔投影の形状に対し、またそこから決定される楕円パラメータに対し、影響を与える。
【0176】
図8bのスケッチとは対照的に、数百ミリメートルを有する瞳孔とカメラとの間の距離は、2mmから8mmの間の瞳孔半径と比べて非常に大きい。従って、光軸に対する瞳孔の傾きから発生する、理想的な楕円形からの瞳孔投影のずれは、非常に小さく、省略可能である。
【0177】
視線方向ベクトル
を計算できるようにするため、楕円パラメータに対する角度δの影響は排除されるべきであり、その結果、瞳孔投影の形状だけが瞳孔のアライメントによる影響を受ける。瞳孔中点PMPがカメラシステムの光軸内に直に存在すれば、これは常に既定となる。つまり、仮想のカメラシステムvKであって、その光軸が図8cに示すように予め計算された瞳孔中点PMPを直接的に通過するカメラシステムの、センサ上の瞳孔投影を計算することにより、角度δの影響を排除できる。
【0178】
そのような仮想のカメラシステム804a'(図8cのvK)の位置及びアライメントは、オリジナルカメラシステム804a(図8bのK)のパラメータから、そのオブジェクト側の主要点H1回りの回転により計算できる。つまり、これは同時に、仮想のカメラシステム804a'のオブジェクト側の主要点vH1に対応する。従って、描写されたオブジェクトの交差ビームの方向ベクトルは、オリジナルカメラシステム内のそれらと同様に、仮想の光学システム808c’の前と後とに存在する。視線方向ベクトルを決定するための全ての更なる計算は、アイトラッカー配位システム内で行われる。
【0179】
仮想のカメラvKの標準化された法線ベクトル
は、次式により取得される:
[数11]
【0180】
更なる手順のために、アイトラッカー配位システムのx軸(vKθ)回り、y軸(vKφ)回り、及びz軸(vKψ)回りの回転角度を計算することが必要となる。これ角度は、ベクトル
を取得するために、アイトラッカー配位システムのz方向の単位ベクトルが、アイトラッカー配位システムの複数の軸回りに回転されるべき角度である。軸vKθ、vKφ、及びvKψ回りの、アイトラッカー配位システムのx方向の単位ベクトルの回転と、y方向の単位ベクトルの回転とにより、ベクトルvKx及び
が計算でき、それらはアイトラッカー配位システムにおける仮想のセンサのx軸及びy軸を示す。
【0181】
仮想のカメラシステム804’(図8c)の位置を取得するために、その位置ベクトル及び/又は座標原点vK0、即ち同時に画像センサの中点が、次式(A9)により、それが瞳孔中点PMPの交差ビーム内にあるように、計算されなければならない。
[数12]
【0182】
この目的で必要になる、主要点の間の距離d、及び主平面2とセンサ平面との間の距離bが、既知又は例えば試験的設定により決定される必要がある。
【0183】
更に、画像側の主要点の位置は、次式(A10)からもたらされる。
[数13]
【0184】
仮想のセンサ804’上の瞳孔投影を計算するために、まず、予め決定されたセンサ上のオリジナル位置における楕円のエッジ点RP3Dが必要となる。これらは、カメラ画像内の楕円Eのエッジ点RP2Dからもたらされ、その場合、図8dに対応して、Eaは楕円の短い半軸、Ebは楕円Exmの長い半軸、Eymは楕円の中点座標、Eαは楕円の回転角度である。アイトラッカー配位システム内の1つの点RP3Dの位置は、楕円EとセンサSとカメラKとのパラメータから次式(A11)〜(A14)により計算されることができ、ここで、ωは図8dの楕円の外周上のエッジ点RP2Dの位置を示す。
[数14]
[数15]
[数16]
[数17]
【0185】
瞳孔エッジ点をセンサ上の楕円エッジ点RP3Dとして表示するオリジナルカメラシステム内の1つの交差ビームKSの方向は、同じ瞳孔エッジ点を仮想センサ上の楕円エッジ点RP3Dとして表示する、仮想のカメラシステム内の交差ビームvKSの方向と等しい。図8bと図8c内の楕円エッジ点の交差ビームがこの態様を表している。つまり、2つのビームKSとvKSは、次式(A15)からもたらされる同じ方向ベクトルを有する。仮想のセンサ側の交差ビームvKSの位置ベクトルvKS0については、vKS0=vH2が常に適用可能である。
[数18]
【0186】
仮想の交差ビームと、仮想カメラvKのx−y平面に対応する仮想のセンサ平面とは、次式(A16)において等式化され、そこで、s2とt2とを解くことで、それらの交点が取得できる。これらにより、仮想のカメラの画像内のピクセル座標における楕円エッジ点が次式(A17)により計算され得る。
[数19]
[数20]
【0187】
次に、複数の仮想のエッジ点vRP2Dから、仮想の楕円vEのパラメータが、楕円フィティング、例えばFitzgibbonらによるアルゴリズムである「楕円の直接最小二乗当てはめ(Direct least square fitting of ellipses)」により計算され得る。このため、少なくとも6個の仮想のエッジ点vRP2Dが必要となり、それらは上述した数式(A11)内で上述の経路で複数のωを使用することにより、計算され得る。
【0188】
このようにして決定された仮想の楕円vEの形状は、瞳孔のアライメントに依存する。更に、その中点は常に仮想のセンサの中心にあり、カメラの法線
に対応するセンサの法線とともに、光軸に沿って瞳孔中点PMPを通過して走る直線を形成する。つまり、特許文献2の特許明細書で提示された手法に基づいて、次に視線方向を計算するための要件を満足している。従って、この手法を用いると、瞳孔中点が実際のカメラシステムの光軸からずれて存在する場合、上述した仮想のカメラシステムを使用して視線方向を決定することが可能となり、そのような場合とは実際のアプリケーションにおいてほぼ当てはまる。
【0189】
図8eに示すように、予め計算された仮想の楕円vEは、仮想の主平面1の中に含まれている。vEの中点は仮想センサの中心にあり、つまり光軸内にあるので、3Dの楕円中点vE’MPは仮想の主要点1に対応する。同時に、それは仮想の主平面1における瞳孔中点PMPの垂直足点である。以下では、楕円vEの軸比と回転角度だけが使用される。これらはvEのパラメータを形成し、主平面1に関して変更なしで使用可能である。なぜなら、それらが言及する2Dのセンサ平面のx軸及びy軸のアライメントは、3Dのセンサ平面に対応し、よってまた、主平面1のアライメントにも対応するからである。
【0190】
カメラ画像内の瞳孔806aの各ピクチャは、その瞳孔の2つの異なるアライメントによりもたらされ得る。図8eに示すように、瞳孔の形状を評価する間に、2つの可能な直線的視線と仮想の主平面1との2つの仮想の交点vSが、各カメラの結果からもたらされる。図8eの幾何学比に対応して、それら2つの可能な視線方向
は、以下のように決定され得る。
【0191】
既知の瞳孔中点と楕円中点vE’MPとの間の距離Aは、次の通りである。
[数21]
【0192】
そこから、rが次式A19を用いて決定され得る。
[数22]
【0193】
vH1からvS1及びvS2へと位置合わせされる方向ベクトル
は、次式に対して同様に計算され、
[数23]
次式のvKθ、vKφ、vKψ及びvKαに基づいている。
[数24]
[数25]
【0194】
次に、両方の仮想の交点vS1とvS2とが決定され、そこから、可能な視線方向
が決定され得る。
[数26]
[数27]
[数28]
[数29]
【0195】
実際の視線方向を決定するために、カメラ1の可能な視線方向
と、カメラ2の可能な視線方向
とが必要となる。これら4個のベクトルのうち、各カメラのそれぞれ1つは実際の視線方向を示している。よって、これら2つの標準化されたベクトルは理想的には同一である。それらを識別するために、可能な4個の全ての組合せについて、それぞれに選択された可能な視線方向ベクトルの差が、1つのカメラのベクトルから、及び他のカメラのベクトルから形成される。最小の差を有する組合せが探索ベクトルを含む。平均化されると、これらの結果は決定されるべき視線方向ベクトル
をもたらす。平均化するとき、ほぼ同時に捕捉された画像は、両方のカメラが同じ瞳孔位置と同じアライメント、よって同じ視線方向を収集したと想定されるべきである。
【0196】
計算された視線方向の精度の尺度として、追加的に、実際の視線方向を示す2つの平均化されたベクトル
の間の角度wdiffが計算され得る。wdiffが小さければ小さいほど、それまで計算に使用されたモデルパラメータ及び楕円中点が正確であったことになる。
[数30]
【0197】
瞳孔の通常位置(
がアイトラッカー配位システムのz軸に平行な位置)に対する視点θBWとΦBWとは、以下の式により計算され得る。
[数31]
及び
[数32]
【0198】
眼の光軸から及び/又は瞳孔の法線からの、システム上の視線方向のずれが考慮されるべき場合には、決定された視点θBWとΦBWとに対して対応する角度が加算され得る。よって、新たな視線方向ベクトルは、新たな視点θBW’とΦBW’と
から、次式によって計算されるべきである。
[数33]
【0199】
(数式A6から瞳孔中点PMPに加えて)視線ベクトル
が既知になると、3Dの画像分析器によって決定されるべき目視線(LoS)の第2パラメータが既知となる。これは以下の数式から導出され得る。
[数34]
【0200】
上述した方法の実装は、プラットフォームに依存するものでなく、従って、上述した方法は、異なるハードウェアプラットフォーム上、例えばPC上でも実行され得る。
【0201】
特徴抽出方法の処理のための方法の発展
本願の以下の実施形態の目的は、並列ハフ変換に基づいて、特徴抽出のためのロバストな方法を発展させることである。このために、ハフコアは修正され、特徴抽出のための方法が提示される。その方法は、変換の結果を減少させ、それらを画像ごとの少数の「特徴ベクトル」へと作り変える。その後、新たに発展された方法は、MATLABツールボックス内に実装されて試験される。最後に、新たに発展された方法のFPGA実装を提示する。
【0202】
直線及び円のための並列ハフ変換
並列ハフ変換は種々のサイズのハフコアを使用し、それらはそれぞれのアプリケーション用のコンフィグレーション行列によって構成されなければならない。そのようなコンフィグレーション行列を確立するための数学的コンテキスト及び方法を、以下に提示する。MATLAB alc_config_lines_curvatures.m は、これらの方法に言及し、異なるサイズの直線及び半円のためのコンフィグレーション行列を確立する。
【0203】
コンフィグレーション行列を確立するために、まず、曲線アレイを離散表示で種々のハフコアについて計算することが必要である。曲線アレイについての要件(確立規定Bildungsvorschriften)は既に発表されている。これらの確立規定を考慮すると、特に直線と半円はハフコアのコンフィグレーションに適している。視線方向の決定のためには、半円(又は曲線)用のコンフィグレーションを有するハフコアが使用される。完璧さを期す上で、ここでは直線(又は直線セグメント)用のコンフィグレーションも導出される。直線用の曲線のアレイを決定する数学的コンテキストが提示される。
【0204】
直線用の曲線のアレイの計算のための開始点は、次式(B1)の線形直線方程式である。
[数35]
【0205】
曲線のアレイは傾きmの変化により生成され得る。このため、0°から45°の直線の傾きは同一サイズの区間へと分割される。区間の個数はハフコアサイズに依存し、ハフコアラインの数に対応する。傾きは、0〜coreheightの制御変数Ycoreを介して調整されてもよい。
[数36]
【0206】
曲線のアレイの関数値は、その値が0〜core幅を有する制御変数((B3)ではxcoreで置換されている)の変化により計算される。
[数37]
【0207】
2Dプロットにおける離散表示のために、関数値は丸め操作を受けなければならない。半円用の曲線のアレイの計算は、Katzmann 2005,(非特許文献3)の37〜38頁に記載され、図9bに示されている。
【0208】
曲線のアレイの計算のための開始点は、座標フォーマット内の円方程式である。
[数38]
【0209】
M=0(円の中心がy軸上にある)、x=xcoreを使用し、曲線のアレイの関数値についてyへと変換することにより、次式(B5)になる。
[数39]
【0210】
M及びrは未知であるため、置換されなければならない。このため、図9bから(B6)及び(B7)の数学的コンテキストが導出されてもよい。
[数40]
[数41]
【0211】
(B7)のyMへの変換により、また、yMが常に負でなければならない(図9b参照)という条件から、次式(B8)が取得される。
[数42]
【0212】
(B8)を(B5)に代入すると、次式(B9)がもたらされる。
[数43]
【0213】
図9bから、ハフコアはハブ中心合わせされており、円座標系のy軸内にあることが明らかである。変数xcoreは通常、0からcorewidth−1まで伸びており、従って、
により修正されなければならない。
[数44]
【0214】
しかしながら、半径が欠落しているので、これは(B6)を(B7)に代入し、更なる変換により取得される。
[数45]
[数46]
[数47]
【0215】
曲線のアレイを生成するため、最後に、0から
までの変数hが変更されなければならない。これは、0からcorehightまで変化する制御変数ycoreを介して行われる。
[数48]
【0216】
直線について上述したように、離散表示のためのy値は、2Dプロットにおいて丸め操作を受けなければならない。タイプ2のハフコアのための曲線のアレイは、次式(B15)により容易に決定され得る。
[数49]
【0217】
曲線のアレイに基づき、全てのハフサイズについて、直線及び円に関するそれぞれ2個のコンフィグレーション(タイプ1及びタイプ2)が決定され得る。これらのコンフィグレーションは、その場合、曲線のアレイから直接的に決定される(Katzmann 2005:非特許文献3の35〜36頁参照)。コンフィグレーション行列はゼロ又は1によって占められ得る。その場合の1は、ハフコア内の使用された遅延要素を表現している。最初に、コンフィグレーション行列は、ハフコアの次元においてゼロ値を用いて初期化される。その後、以下のステップが行われる。
1)曲線のアレイの第1曲線から開始して、第1のxインデックス番号のy値をテストする。y値がゼロよりも大きい場合、正に同じ位置(同じxインデックス)にある同じライン(同じyインデックス)内でコンフィグレーション行列の要素を1で占める。
2)曲線のアレイの全ての曲線を介して、y値を同じxインデックスで修正する。第1ステップにおいてある要素が1で占められていた場合、全てのy値から1を差し引く。第1ステップにおいてその要素が何も占められていない場合、何もしない。
3)コンフィグレーション行列の全ての要素がアプローチされる限り、ステップ1とステップ2とをパススルーする。
【0218】
図9cにおいて、コンフィグレーションの手順が段階的に示されている。
【0219】
最後に、ハフコアコンフィグレーションの幾つかの特殊性について述べる。直線に関するコンフィグレーションは、ハフコアの幅に依存する直線セグメントだけを常に表している。二値エッジ画像における長い直線セグメントは、任意ではあるが、複数の検出された直線セグメントから組み立てられてもよい。直線セグメントの角度(又は傾き)の解像度は、ハフコアの高さに依存する。
【0220】
円に関するコンフィグレーションは、半円の頂点の周囲の円弧を常に表す。曲線のアレイの最高のyインデックス番号(最小半径)だけが、完全な半円を表す。新たなハフコアについては発展したコンフィグレーションが使用され得る。
【0221】
ハフコアの修正
Holland-Nell(非特許文献4)のFPGA構成の決定的な欠点は、ハフコアの柔軟性のないコンフィグレーションである。合成に先立って遅延ラインがパラメータ化されなければならず、その後、ハードウェア構造の中に固定的に格納される(Holland-Nell(非特許文献4)の48〜49頁)。ランタイム中の変化(例えばハフコアサイズ)は全く不可能である。新たな方法は、この点においてより柔軟になることである。新たなハフコアは、−ランタイム中であっても−FPGAにおいて、完全に新たに構成可能となるべきである。これにより、複数の長所が生まれる。一方では、2つのハフコア(タイプ1及びタイプ2)が並列にファイルされる必要がなく、他方では、直線及び半円について異なるコンフィグレーションが使用されてもよいことである。更に、ハフコアサイズがランタイム中に柔軟に変更され得る。
【0222】
以前のハフコア構造は遅延とバイパスとからなり、FPGA合成の前に、どの経路が使用されるべきかが決定される。以下では、この構造が、マルチプレクサと、遅延要素のコンフィグレーションのための更なるレジスタ(マルチプレクサの切換え)と、パイプライン遅延とにより拡張される。コンフィグレーションレジスタはランタイムの間に修正され得る。このようにして、異なるコンフィグレーション行列がハフコア内へと組み込まれ得る。パイプライン遅延を設定することで、FPGAにおける合成ツールは、ハフコア設計の実装の間により大きな自由度を持ち、高いクロックレートが達成できる。パイプライン遅延はFPGA構造内の時間的に厳しい経路を突破する。図9dにおいて、遅延要素の新たな設計を示す。
【0223】
Katzmann(非特許文献3)及びHolland-Nell(非特許文献4)に従う以前の実装と比較して、新たなハフコアの遅延要素はもう少し複雑に構築されている。遅延要素の柔軟なコンフィグレーションのために、追加的なレジスタが必要とされ、マルチプレクサが更なる論理資源を占領する(FPGA内でLUTにおいて実装されなければならない)。パイプライン遅延は任意選択的である。遅延要素の修正とは別に、ハフコアの設計変更も実行されてきた。新たなハフコアは図9eに示されている。
【0224】
以前のハフコアとは対照的に、最初に、新たな表記法が実装されるべきである。図9eの約90°回転された設計により、元は初期のヒストグラムの信号として言及されていた「ライン合計(Zeilensummen)」が、この図においては「コラム合計」として言及される。従って、ハフコアの各コラムは、曲線のアレイのあるカーブを表す。新たなハフコアは、更に、ランタイムの間に新たなコンフィグレーション行列による影響を受けることもあり得る。コンフィグレーション行列はFPGA内部のBRAM内にファイルされ、あるコンフィグレーション論理によってロードされる。これは、コンフィグレーションを、コラム毎のビットストリングとして、連結されたコンフィグレーションレジスタ内にロードする(図9d参照)。ハフコアのリコンフィグレーションは、所定の時間を必要とし、コラムの長さ(又は遅延ラインの合計)に依存する。従って、各コラム要素はあるクロックサイクルを必要とし、BRAMによる少数のタックサイクルの待ち時間とコンフィグレーション論理が追加される。リコンフィグレーションのための全体の待ち時間は不利ではあるが、ビデオベースの画像処理にとっては、それは許容され得る。通常、CMOSセンサで記録されたビデオデータストリームは水平及び垂直のブランキングを有する。よって、リコンフィグレーションは、水平ブランキング時間において問題なく行われ得る。FPGA内で実装されたハフコア構造のサイズは、ハフコアコンフィグレーションの最大の可能なサイズを予め決定する。小さなコンフィグレーションが使用される場合、これらは垂直に中心合わせされ、水平方向にはハフコア構造のコラム1において位置合わせ(図9f参照)される。ハフコア構造の使用されていない要素は、全て遅延によって占められる。小さなコンフィグレーションの正確なアライメントはx座標の修正にとって重要である(方程式(B17)〜(B19)を参照)。
【0225】
ハフコアには、前もって、構成された遅延ラインを通って二値エッジ画像が供給される。各処理ステップにより、コラム合計が全体のハフコアを介して計算されて、前のコラムの合計信号とそれぞれ比較される。あるコラムがより高い合計値を提供した場合、元のコラムの合計値が上書きされる。初期信号として、新たなハフコアはコラム合計値及び関連するコラム番号を提供する。これらの値に基づいて、後に、どの構造が発見されたのか(コラム番号により表現される)、また、どれぐらいの出現確率でこれが検出されたのか(合計値により表現される)についての記述が作成され得る。ハフコアの初期信号は、ハフ空間又はアキュムレータ空間とも称される。通常のハフ変換とは対照的に、ハフ空間は画像座標系における並列ハフ変換に対して利用可能である。これは、各画像座標について、合計値及び関連するコラム番号が出力されることを意味する。眼の画像の完全な変換のために、未回転及び回転済みの画像のタイプ1及びタイプ2のそれぞれ1つのハフコアが、送られなければならない。従って、変換の後に、コラム合計及び関連するコラム番号だけでなく、ハフコアタイプ及び初期画像(未回転又は回転済み)のアライメントも使用可能である。更に、直線及び半円について、異なるハフコアサイズ及びコンフィグレーションが使用されてもよい。その場合、上述した結果の他に、曲線タイプ及びハフコアサイズも指示され得る。要約すると、新たなハフコアサイズの結果のデータセットが以下の表に示される。並列ハフ変換に関し、各画像点について、そのようなデータセットがもたらされる。
【0226】
【表1】
修正されたハフコア構造を用いた並列ハフ変換により初期画像の各視点についてもたらされる結果のデータセットの概説
【0227】
Katzmann(非特許文献3)及びHolland-Nell(非特許文献4)のハフコアの二値及び閾値ベースの出力とは対照的に、新たなハフコア構造はかなり初期的なデータを生成する。そのようなデータ量は取り扱いが困難であるので、結果的なデータ量を明確に低減させる特徴抽出の方法が提示される。
【0228】
タイプ2のハフコア及び画像回転
並列ハフ変換に関する実施形態について、画像回転の必要性とタイプ2のハフコアの特殊性が既に紹介された。並列ハフ変換に関し、初期画像はハフコアを4回通過しなければならない。これは、直線と半円が異なる角度位置で検出され得るようにするために必要である。タイプ1のハフコアだけが使用される場合、画像は初期位置で処理され、約90°、180°及び270°の回転が行われなければならないであろう。タイプ2のハフコアを含むことで、約180°と270°の回転は省略される。未回転の初期画像がタイプ2のハフコアで処理される場合、これはタイプ1のハフコアを用いた約180°回転された初期画像の処理と対応する。それは約270°の回転と類似する。これはタイプ2のハフコアを用いた約90°回転された画像の処理で置換され得る。画像回転は通常、外部ストレージによってのみ解決されるので、FPGA構造にとって、追加的な回転の省略は肯定的な影響を与える。適用されたハードウェアに従い、所定の帯域幅(最大限可能なデータレート)だけがFPGAとストレージ要素との間で使用可能である。タイプ2のハフコアの使用については、外部ストレージ要素の帯域幅は約90°の回転によって占有されるだけである。Holland-Nell(非特許文献4)の従来の構成に関しては、タイプ1のハフコア及びタイプ2のハフコアをFPGA内にファイルすることが必要とされていた。修正されたハフコア設計を用いて、FPGA内にハフコア構造を一度ファイルし、かつタイプ1又はタイプ2のコンフィグレーションをアップロードすることも可能になった。この新たな機能により、初期画像は単一のハフコアだけを用いかつ単一の画像回転を用いるだけで完全に変換することができる。
【0229】
単一のハフコアを用いた処理の間に、ハフコア内に4通りのデータレートが発生することも考慮されるべきである。60fps及びVGA解像度のビデオデータストリームに関し、ピクセルデータレートは24Mhzになる。この場合、ハフコアは96Mhzで操作されなければならないであろうし、それはSpartan3世代のFPGAにとって既に高いクロックレートを構成する。設計を最適化するために、ハフコア構造内のパイプライン遅延を用いて集約的に操作されなければならない。
【0230】
特徴抽出
特徴抽出は以前のテーブルからのデータセットに対して作動する。これらのデータセットは特徴ベクトル(B16)内に要約され得る。その特徴ベクトルは以下ではハフ特徴として言及され得る。
[数50]
【0231】
特徴ベクトルはそれぞれ、検出された特徴についてのx座標及びy座標(MVx及びMVy)と、向きMV0と、カーブ強度MVKSと、頻度MVHと、ハフコアサイズMVG-1と、検出された構造の種類MVAとから構成される。特徴ベクトルの各要素の詳細な意味及び値範囲は、以下の表から導出され得る。
【0232】
【表2】
ハフ特徴ベクトルの要素、それらの意味及び値範囲
【0233】
【表3】
画像回転及び変換に使用されるハフコアタイプに依存した向きの計算
【0234】
上記の表から、直線及び半円に関する両方の要素MV0及びMVKSが異なる意味を持つことが明らかになる。直線に関しては、向きとカーブ強度との組合せが、0°〜180°の角度における検出された直線セグメントの位置角度を形成する。従って、向きは角度範囲を示し、カーブ強度はこの範囲内の具体的な角度を表す。ハフコアが大きければ大きいほど(より正確には、より多数のハフコアコラムが使用可能であるほど)、角度分解能が微細となる。半円に関しては、向きは半円の位置角度又は半円のアライメントを表す。半円は、原則として、4個のアライメント内でのみ検出可能である。半円コンフィグレーションに関し、カーブ強度は半径を表す。
【0235】
向きMV0とカーブ強度MVKSの他に、更なる特別な特徴が座標(MVxとMVy)について考慮されるべきである(図9g参照)。直線に関して座標は常に中点を表現すべきであり、半円又は曲線に関して座標は常に頂点を表現すべきである。この前提に基づき、y座標は実装されたハフコア構造に対応して修正されてもよく、変換に使用されたコンフィグレーションのサイズに依存しない(図9f参照)。ローカルフィルタと同様に、y座標は垂直に中心合わせされて示される。x座標について、ヒットを提供しハフコアコラムを介するコンテキストが確立されている(特徴ベクトルにおいて、ハフコアコラムは指示MVKSとともに蓄積されている)。ハフコアタイプ及び画像回転に依存して、3個の異なる場合についての計算規則も提示され得る。ハフコアタイプ1について、数式(B17)が、未回転及び回転済みの初期画像のためにそれぞれ言及される。タイプ2のハフコアが使用可能であれば、画像回転に依存して、数式(B18)又は数式(B19)が言及されるべきである。
[数51]
[数52]
[数53]
【0236】
指示「floor」により、分数の有理数が丸め操作される。FPGAにおいて、これは二値小数の単純な切り捨てに対応する。向きが決定され、ハフ特徴の座標が修正された後で、現実の特徴抽出が実行され得る。
【0237】
特徴抽出のために、非最大抑圧操作との組合せにおいて3個の閾値が使用される。非最大抑圧の演算子は直線と半円とに関して異なる。閾値を介して、最小MVKSmin及び最大カーブ強度MVKSmaxが与えられ、最小頻度MVHminが決定される。非最大抑圧の演算子は、サイズ3×3のローカル演算子として見ることができる(図9h参照)。数式B(23)における非最大抑圧の演算子(nms演算子)の条件が満足し、かつ数式(B20)〜(B22)に従う閾値を超えた場合、半円(又は曲線)についての有効な特徴が常にもたらされる。
[数54]
[数55]
[数56]
[数57]
【0238】
非最大抑圧操作に起因して、特徴ベクトルのハフ空間の中で、極大値を構成しないハフ特徴が抑制される。このようにして、探索構造に寄与せず、かつ後処理に無関係なハフ特徴が抑制される。特徴抽出は、予め有益に調節され得る3個の閾値を介してパラメータ化されるだけである。閾値の詳細な説明は、以下の表から導かれ得る。
【0239】
【表4】
ハフ空間からハフ特徴を抽出するための3個の閾値の詳細な説明。Katzmannによる方法と比較して、パラメータは類似の関数を用いて示されている。
【0240】
直線に関しては、サイズ3×3の(図9h参照)非最大抑圧の演算子が同様に推定され得る。その場合、幾つかの特殊性が考慮されるべきである。曲線とは異なり、直線セグメントに関する探索構造は、二値エッジ展開に沿って連続的に発生する複数の最大値に従って検出される訳ではない。非最大抑圧は、キャニーのエッジ検出(Canny edge detection)アルゴリズムにおける方法に基づいてもよい。ハフコアタイプ及び検出された角度範囲に従い、3つのケースが区別され得る(図9iと上記の表を組合せて参照されたい)。このようなケースの区別は、回転無しの初期画像と同様に回転された初期画像に対しても有効である。なぜなら、回転された座標の再変換は、非最大抑圧の後でのみ行われるからである。どのnms演算子が使用されるべきかは、ハフコアタイプ及び角度範囲にそれぞれ依存する。直線用のコンフィグレーションを有するハフコアにより提供される角度範囲は、角度範囲二等分線により分割される。角度範囲二等分線(又はその一部)は、ハフコアコラム(MVKShalbe)として示され得る。ハフコアサイズに依存する数学的コンテキストは方程式(B24)により記述される。ヒット(MVKS)を提供したハフコアコラムが、どの角度範囲内にハフ特徴があるかを示し、そのハフコアコラムは角度範囲二等分線と直接的に比較され得る。
[数58]
【0241】
ある演算子が選択された場合、それぞれのnms演算子に関する条件は、曲線についての非最大抑圧と同様に求められ得る(方程式(B25)〜(B27))。全ての条件が満足され、かつ追加的に、方程式(B20)〜(B22)に従う閾値を超えた場合、位置nms2,2におけるハフ特徴が推定され得る。
【0242】
【表5】
ハフコアタイプ及びヒットが発生した角度範囲に依存するnms-演算子の決定
[数59]
[数60]
[数61]
【0243】
特徴抽出の完成は、回転されたハフ特徴のx軸及びy軸の再回転を形成する。後処理のために、これらは画像座標系において再度使用可能となるべきである。回転済みの初期画像が処理される場合、再変換は、曲線タイプとは無関係に(直線か曲線かに無関係で)常に行われるべきである。数式(B28)及び(B29)の中に、数学的コンテキストが記述される。画像幅を用いて、回転無しの初期画像の幅が表される。
[数62]
[数63]
【0244】
特徴抽出により、並列ハフ変換の結果データを少数の点まで減少させることができる。これらは次に、特徴ベクトルとして後処理へと送られてもよい。
【0245】
上述した実施形態は、単に本発明の原理の説明を示したに過ぎない。本明細書に記載した構成及び詳細について修正及び変更が可能であることは、当業者にとって明らかである。従って、本発明は、添付した特許請求の範囲によってのみ限定されるべきであり、本明細書に実施形態の説明及び解説の目的で提示した特定の詳細によって限定されるものではない。
図1
図2a
図2b
図2c
図3a
図3b
図4a
図4b
図4c
図4d
図5a
図5b
図6
図7a
図7b
図7c
図8a
図8b
図8c
図8d
図8e
図9a
図9b
図9c
図9d
図9e
図9f
図9g
図9h
図9i