(57)【要約】ＦＰＧＡ粗ハフ変換部（１０２）が、画像入力部（１０１）に入力された画像に対してＦＰＧＡ上で粗い精度の第１のハフ変換を行い、第１のハフ変換で得られた候補位置情報と画像とを外部メモリ（１０３）に出力し、密ハフ変換部（１０４）が、汎用プロセッサ上で、外部メモリ（１０３）に記憶された候補位置情報と画像とを読み込んで、候補位置情報を用いて画像に対して詳細な精度の第２のハフ変換を行って画像の中の認識対象である２次元パターンの詳細な精度の位置情報を外部メモリ（１０３）に出力する。
2015011799.tif 000002
【特許請求の範囲】
【請求項１】
画像を入力する画像入力手段と、
情報を記憶する外部メモリと、
前記画像入力手段に入力された画像に対してＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）上で粗い精度の第１のハフ変換を行い、該第１のハフ変換で得られた候補位置情報と前記画像とを前記外部メモリに出力するＦＰＧＡ粗ハフ変換手段と、
前記外部メモリに記憶された前記候補位置情報と前記画像とを読み込んで、該候補位置情報を用いて該画像に対して詳細な精度の第２のハフ変換を行って前記画像の中の認識対象である２次元パターンの詳細な精度の位置情報を前記外部メモリに出力する、汎用プロセッサ上で動作する密ハフ変換手段とを有する画像認識装置。
【請求項２】
請求項１に記載の画像認識装置において、
前記ＦＰＧＡ粗ハフ変換手段は、前記第１のハフ変換として、前記画像内の所定の複数の画素を含む範囲ごとにハフ変換を行い、
前記密ハフ変換手段は、前記第２のハフ変換として、前記画像の画素ごとにハフ変換を行うことを特徴とする画像認識装置。
【請求項３】
請求項１または請求項２に記載の画像認識装置において、
前記ＦＰＧＡ粗ハフ変換手段に含まれる投票空間は、リングバッファを用いて構成されることを特徴とする画像認識装置。
【請求項４】
請求項３に記載の画像認識装置において、
前記ＦＰＧＡ粗ハフ変換手段に含まれる投票空間の縦方向のｂｉｎ区分数を、前記投票空間の解像度における２次元パターンの最大縦サイズよりも１もしくは２大きな値とすることを特徴とする画像認識装置。
【請求項５】
請求項１から４のいずれか１項に記載の画像認識装置において、
前記２次元パターンは、外形が円形もしくは三角形をした道路標識であることを特徴とする画像認識装置。
【請求項６】
コンピュータに、
画像を入力する手順と、
前記入力した画像に対してＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）上で粗い精度の第１のハフ変換を行う手順と、
前記第１のハフ変換で得られた候補位置情報と前記画像とを外部メモリに出力する手順と、
前記外部メモリに記憶された前記候補位置情報と前記画像とを読み込んで、該候補位置情報を用いて該画像に対して詳細な精度の第２のハフ変換を行って前記画像の中の認識対象である２次元パターンの詳細な精度の位置情報を前記外部メモリに出力させる処理を汎用プロセッサ上で動作させる手順とを実行させるためのプログラムを記憶した記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
画像中からリアルタイムに認識対象の２次元パターンを認識する、主に組込み向けの画像認識装置に関する。
【背景技術】
【０００２】
形状変化の少ない２次元図形を画像中から効率的に認識するための手法としてハフ（Ｈｏｕｇｈ）変換が知られている。このハフ変換は、例えば、非特許文献１や特許文献１に開示されている。非特許文献１には、直線のような図形をハフ変換により認識する手法が開示されている。この手法は、直線を半径ρおよび回転角Θを変数とする２変数でモデル化し、２次元の投票空間を用いて投票処理を行い、投票値が最大となるρ値およびΘ値を探索して直線を求めるというものである。非特許文献１には、２次元パターンである円を認識する手法も開示されている。円を認識する際には、中心点のｘ座標およびｙ座標、半径の３変数からなる投票空間を用いて、投票値が最大となる点を抽出する。このように、１つの投票空間を用いて、その中から投票値が大きな個所を抽出して解を求めるハフ変換を、後述するハフ変換と区別するために、以下の説明においては通常のハフ変換と呼ぶ。【０００３】
また、通常のハフ変換を改良して、文字認識のための回転補正を効率的に行う手法が特許文献１に開示されている。特許文献１には、文字パターンの回転角度を効率的に求めるために、粗い精度のハフ変換を行って粗い精度の歪み角度を決定し、その決定された歪み角度の近辺に限定してより細かく区分した第２の投票空間を設定して再度ハフ変換を行い、その結果得られる詳細な歪み角度を解とする画像処理装置が開示されている。この手法によれば、細かい精度の投票空間を１つ用意して通常のハフ変換により解を求めるよりも、投票空間保持のために必要なメモリ資源を低減できるという長所がある。このように、粗い精度のハフ変換を行って粗い精度の解を一旦求めた後に、粗い精度の解付近のみに限定して詳細な精度のハフ変換を行って最終的な解を得る処理を、以下の説明においては粗密ハフ変換と呼ぶ。また、粗い精度のハフ変換および詳細な精度のハフ変換の演算量については、認識対象の２次元パターンが入力画像中に数個程度しか存在しない場合は、粗い精度のハフ変換の方が、演算量が圧倒的に大きいという特徴がある。【０００４】
通常のハフ変換および粗密ハフ変換における、演算量および必要メモリ量をまとめた表を図１に示す。なお、粗密ハフ変換については、粗い精度のハフ変換と詳細な精度のハフ変換とに分けて、それぞれの演算量および必要メモリ量を示した。図１に示すように、通常のハフ変換は、演算量および必要メモリ量ともに非常に大きいことが特徴である。粗密ハフ変換における粗い精度のハフ変換は、演算量が大きく、必要メモリ量は中程度といえる。詳細な精度のハフ変換は、演算量、必要メモリ量ともに小さいという特徴がある。【０００５】
次に、別の技術的側面として、組み込み向けの画像処理装置のハードウェアについて図２を参照して説明する。一般的に、組み込み向けの画像処理装置には特定用途に特化して設計されたハードウェアが用いられることが多かったが、コンピュータ技術の進歩に伴い、近年では汎用プロセッサとプログラムとを組み合わせた構成が用いられる機会が増えた。この構成には、ソフトウェアの柔軟性を生かして多様な機能開発が実現でき、また開発に膨大な時間とコストとを要する専用ハードウェアを用いないことから開発期間および開発コストを抑えられるというメリットがある。汎用プロセッサの外部には大容量のメモリも配置され、大容量のメモリを必要とする処理も容易に実現することができる。一方で、短所として、専用ハードウェアに比べて処理速度が遅いという点が挙げられる。
また、近年の組み込み向け画像処理装置の別の実現手段として、ハードウェアでありながら回路構成および機能をプログラムによりある程度柔軟に変更できるＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）が挙げられる。ＦＰＧＡはハードウェアであるため演算が非常に高速であるという長所を持つ反面、内部に確保できるメモリは容量が小さいと制限を持つ。外部メモリが用意されているハードウェアならばＦＰＧＡと外部メモリ間でのデータ授受は可能であるが、外部メモリからのデータ読み込み速度は遅いため、外部メモリからのデータ読み込みを行うと、ハードウェアとしての高速演算性を生かしきれないおそれがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特許第４０６５４６０号、画像処理方法及び装置、請求項３
【非特許文献】
【０００７】
【非特許文献１】Ｕｓｅ  ｏｆ  ｔｈｅ  Ｈｏｕｇｈ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎ  Ｔｏ  Ｄｅｔｅｃｔ  Ｌｉｎｅｓ  ａｎｄ  Ｃｕｒｖｅｓ  ｉｎ  Ｐｉｃｔｕｒｅｓ、Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  ｏｆ  ｔｈｅ  ＡＣＭ、Ｖｏｌ．１５、Ｎｏ．１、ｐｐ．１１−１５（１９７２．１）
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、一般的に知られている技術を単純に組み合わせて、画像中からリアルタイムに２次元パターンを認識する組込み画像認識装置を構成しようとした場合、以下のような課題が存在する。【０００９】
まず、組込み画像処理装置が汎用プロセッサにより構成されている場合、通常のハフ変換や粗密ハフ変換を用いて２次元パターンを認識すること自体は可能である。しかし、組込み画像処理装置向け汎用プロセッサの演算能力は十分に高くないため、入力画像のサイズや投票空間の大きさなどの要件には依存するが、ＶＧＡ（Ｖｉｄｅｏ  Ｇｒａｐｈｉｃｓ  Ａｒｒａｙ）サイズ（横６４０画素×縦４８０画素）の画像中から特定の２次元パターンを認識するといった処理をリアルタイムに実行することは難しいという課題がある。【００１０】
次に、組込み画像処理装置がＦＰＧＡにより構成されている場合、通常のハフ変換における基本的な演算自体は実装することができる。しかし、２次元パターンの認識に必要となる投票空間をＦＰＧＡ内に確保することが難しいという問題がある。一例として、ＶＧＡサイズの画像中から円を認識する場合を挙げて、その投票空間について具体的な数値を用いて説明する。円を表現するには、中心ｘ座標、中心ｙ座標、半径ｒといった最低３つのパラメータが必要であるから、投票空間は３次元となる。中心座標および半径を１画素の精度で求めるとして、認識対象とする円の半径を１０画素から２９画素までとすると、投票空間のｂｉｎ数は６４０×４８０×２０＝６１４４０００個となる。１つのｂｉｎを８ビットで表現すると６．１４４ＭＢのメモリが必要となり、ＦＰＧＡ内には到底保持することができない。【００１１】
また、ＦＰＧＡにより構成された組込み画像処理装置上で粗密ハフ変換を用いて２次元パターンを認識させようとした場合、粗い精度のハフ変換における中心座標および半径を６画素の精度で求めるとすると、投票空間のｂｉｎ数は（６４０／６）×（４８０／６）×（２０／６）＝１０７×８０×４＝３４２４０個となる。１つのｂｉｎを８ビットで表現すると３４ＫＢ強のメモリで済むため、粗い精度のハフ変換はＦＰＧＡに実装することができる。しかしながら、詳細な精度のハフ変換もＦＰＧＡ上で実行するためには入力画像を保持するためのメモリとして６４０×４８０＝３００ＫＢ強が必要となり、粗密ハフ変換もＦＰＧＡにより構成された組込み画像処理装置上に実装することには課題が存在する。【００１２】
以上のことをまとめると図３に示すようになる。すなわち、汎用プロセッサもしくはＦＰＧＡを用いてリアルタイムに２次元パターンを認識するハフ変換処理を実現することは、前述したように知られている技術のみでは不可能である。【００１３】
そこで、本発明は、前述した課題を解決する画像認識装置および記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の画像認識装置は、
画像を入力する画像入力手段と、
情報を記憶する外部メモリと、
前記画像入力手段に入力された画像に対してＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）上で粗い精度の第１のハフ変換を行い、該第１のハフ変換で得られた候補位置情報と前記画像とを前記外部メモリに出力するＦＰＧＡ粗ハフ変換手段と、
前記外部メモリに記憶された前記候補位置情報と前記画像とを読み込んで、該候補位置情報を用いて該画像に対して詳細な精度の第２のハフ変換を行って前記画像の中の認識対象である２次元パターンの詳細な精度の位置情報を前記外部メモリに出力する、汎用プロセッサ上で動作する密ハフ変換手段とを有する。【００１５】
また、本発明の記憶媒体は、
コンピュータに実行させるためのプログラムを記憶した記憶媒体であって、
画像を入力する手順と、
前記入力した画像に対してＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）上で粗い精度の第１のハフ変換を行う手順と、
前記第１のハフ変換で得られた候補位置情報と前記画像とを外部メモリに出力する手順と、
前記外部メモリに記憶された前記候補位置情報と前記画像とを読み込んで、該候補位置情報を用いて該画像に対して詳細な精度の第２のハフ変換を行って前記画像の中の認識対象である２次元パターンの詳細な精度の位置情報を前記外部メモリに出力させる処理を汎用プロセッサ上で動作させる手順とを実行させるためのプログラムを記憶する。
【発明の効果】
【００１６】
本発明においては、画像中からリアルタイムに２次元パターンを認識する画像認識装置を実現することができる。
【図面の簡単な説明】
【００１７】
【図１】通常のハフ変換、および粗密ハフ変換に関して、演算量および処理に必要なメモリ容量についての特性をまとめた表を示す図である。
【図２】汎用プロセッサとＦＰＧＡに関して、演算の高速性およびメモリ容量、柔軟性についての特徴をまとめた表を示す図である。
【図３】一般的に知られているハードウェアとハフ変換の単純な組み合わせによる、２次元パターンのリアルタイム認識の適／不適を示す情報をまとめた表である。
【図４】本発明の実施の一形態を示す図である。
【図５】ＦＰＧＡのハードウェア構造を示す図である。
【図６】図４に示したＦＰＧＡ粗ハフ変換部における投票空間の一例を示す図である。
【図７】図４に示した密ハフ変換部で、１つの中心候補情報に対する処理を行う際に参照する入力画像の範囲を示す図である。
【図８】本実施の形態における動作を説明するためのフローチャートである。
【図９】汎用プロセッサおよびＦＰＧＡの特性と、それぞれの上で実行する粗い精度のハフ変換および詳細な精度のハフ変換の特徴をまとめた表である。
【図１０】本実施の形態のハードウェア構成を示す図である。
【図１１】入力画像から抽出された投票に関わる点の例、およびその点に対する投票先および投票範囲（サイズ最大の２次元パターンを想定した時の投票のみ）の一例を示す図である。
【図１２】投票範囲と粗い精度の投票空間との対応のパターンを示す図である。
【図１３】着目する入力画像中のＹ座標、着目した画素が投票に関わる画素の場合に投票されるｙ座標の範囲および投票空間のｙ座標に対応する入力画像座標系での範囲（最小Ｙ座標値）を示す図である。
【図１４】投票空間の縦方向のｂｉｎ区分数が、該投票空間の解像度における２次元パターンの最大縦サイズよりも１もしくは２大きな値とする場合の、ＦＰＧＡ粗ハフ変換部の内部の動作を説明するためのフローチャートである。
【発明を実施するための形態】
【００１８】
本発明の実施の形態について、図面を参照して詳細に説明する。
【００１９】
図４を参照すると、画像を入力する画像入力部１０１と、ＦＰＧＡ上で粗いハフ変換（第１のハフ変換）を行うＦＰＧＡ粗ハフ変換部１０２と、ＦＰＧＡ粗ハフ変換部１０２からの出力情報および密ハフ変換部１０４からの出力情報を格納する外部メモリ１０３と、汎用プロセッサ上で詳細な精度のハフ変換（第２のハフ変換）を行う密ハフ変換部１０４とから構成される、本発明の画像認識装置１００の実施の一形態が開示されている。
【００２０】
画像入力部１０１は、カメラにて撮影された映像をデジタル映像データ（入力画像）として本画像処理装置に取り込み、ＦＰＧＡ粗ハフ変換部１０２へ出力する。映像データは、例えば、１画素１バイトで表現した輝度画像であり、そのサイズは、横６４０×縦４８０といったものである。
【００２１】
ＦＰＧＡ粗ハフ変換部１０２は、ＦＰＧＡ上に実装され、画像入力部１０１から出力された映像データに対して、粗い精度のハフ変換を実行する。また、ＦＰＧＡ粗ハフ変換部１０２は、ハフ変換の結果を外部メモリ１０３へ出力する。ハフ変換の演算方法については、非特許文献１などに詳しく説明されているが、本発明では粗い精度のハフ変換をＦＰＧＡ上で行う点が重要なポイントの１つであるため、この点について詳しく説明する。なお、ここで用いるハフ変換、および密ハフ変換部１０４におけるハフ変換とも、一般化ハフ変換などを用いることにより複雑な２次元パターンを認識できる。なお、粗い精度のハフ変換とは、所定の範囲（所定の複数の画素（例えば、６画素）を含む範囲）におけるハフ変換である。
【００２２】
ＦＰＧＡのハードウェア構造を図５に示す。ＦＰＧＡは、主に汎用ロジック２０１と、乗算器２０２と、ＲＡＭブロック２０３と、Ｉ/Ｏエレメント２０４と、ＰＬＬブロック（不図示）とからなる。
【００２３】
汎用ロジック２０１は、基礎的な論理演算を行うロジックエレメントの大規模な集合体である。１つのロジックエレメントは、ルックアップ・テーブルとレジスタとで構成され、ルックアップテーブルの内容やロジックエレメントの結合をプログラムにしたがって変更することによって、多様な機能を実現することができる。
【００２４】
乗算器２０２は、２つのデジタル・データの乗算を高速で処理するハードウェアである。乗算を行う回路を汎用ロジック２０１により構成することも可能であるが、汎用ロジック２０１を用いる実装ではロジックエレメントの使用量が多くなり効率が良くないため、乗算専用の回路が用意されている。
【００２５】
ＲＡＭブロック２０３は、一般的なメモリとして使用できる回路ブロックである。ＲＡＭブロック２０３も乗算器２０２と同様、ロジックエレメントを用いて構成することもできるが、メモリとして効率の良い専用の回路が用意される構成がとられている。また、パーソナルコンピュータなどでは数ＧＢ〜数十ＧＢといった大容量のメモリが利用できるのが一般的であるが、ＦＰＧＡにおけるＲＡＭブロック２０３はハイエンドのものでも数ＭＢ程度であり、ミドルクラス以下のＦＰＧＡであれば数十ＫＢ〜数百ＫＢ以下が一般的である。
【００２６】
Ｉ／Ｏエレメント２０４は、ＦＰＧＡ内外における信号のやり取りをつかさどる回路である。
【００２７】
ＰＬＬブロックは、クロック信号をＦＰＧＡ全体に供給する回路である。
【００２８】
画像処理を行う場合、図６の下図に示すような、画像入力部１０１から入力された入力画像６０１が画像の左上から右下へ向かってラスタスキャン順に入力され、プログラムされた結線にしたがって汎用ロジック２０１、乗算器２０２、ＲＡＭブロック２０３、Ｉ/Ｏエレメント２０４間で時々刻々やり取りされ、最終結果が出力される。すでに述べたように、ＦＰＧＡ内のＲＡＭブロック容量は一般的に数百ＫＢと小さいため、入力画像全体を保持することも困難である。そのため、入力される画像データをラスタスキャン順に処理し、画像データをＲＡＭブロック２０３に数ライン程度保持するだけで演算できる処理でないと実装困難である。
【００２９】
このことを、２次元パターンとして円を認識する課題を例に挙げて説明する。円を認識する場合は、図６に示すような、中心（ｘ、ｙ）座標および半径の３つパラメータに対する投票空間６０２を用いて、もっとも単純にはラスタスキャン順に各画素に着目して、それらの画素が円周上の点である可能性がある場合は、投票空間上に投票処理を行うという処理を繰り返せば良い。そのため、入力画像を保持しておく必要はまったくない。また、投票の回数を削減するための手法として勾配の方向を用いる手法があるが、この場合も勾配方向を求めるための最新の数ライン分の入力画像情報のみ保持できていれば良いため、入力画像全体を保持しておく必要がないという点からはＦＰＧＡ化が可能な処理であるといえる。
【００３０】
投票空間を保持するためのメモリについては、粗い精度のハフ変換であるため、入力映像データのサイズを横６４０画素×縦４８０画素、投票空間の縦横の解像度を６画素単位（すなわち、投票空間の縦横のｂｉｎ区分数をそれぞれ入力映像データの縦横の画素数の１／６）、半径の値域を１０〜３９画素、投票空間の半径の解像度を６画素単位（すなわち、投票空間の半径に関するｂｉｎ区分数を（３９−１０＋１）／６＝５）、投票値は１バイトに収まるものとすると、探索空間全体の保持に必要なメモリサイズは、
（６４０／６）×（４８０／６）×（（３９＋１−１０）／６）
＝１０７×８０×５＝４２．８ＫＢ
となる。これはＦＰＧＡ上に保持可能なサイズである。
【００３１】
入力画像全体を保持する必要がないことと合わせ、粗い精度のハフ変換はＦＰＧＡに実装できることがわかる。
【００３２】
投票空間の各ｂｉｎの投票値に基づいて円を抽出する手段はいくつか存在する。各投票値を調べて、局所領域内で極大値を与える投票値のうち大きい方からｎ個を選択し、対応する円中心座標および半径をｎ組抽出するのでも良い。また、局所領域内で極大値を与える投票値のうち、あらかじめ定めた閾値を上回る点を選択し、対応する円中心座標および半径を抽出するのでも良い。後者の手段では抽出される円中心座標および半径の組の数が可変となるが、組数に上限を設けても良い。これらの基準によって抽出した粗い精度の円中心座標および半径の結果は、外部メモリ１０３へ書き込まれる。なお、本発明では粗い精度のハフ変換によって抽出された円の情報は円候補としての情報であり、最終的な円は後述する密ハフ変換部１０４により特定される。そこで、粗い精度のハフ変換によって抽出される円中心座標および半径の情報を中心候補情報（候補位置情報）と呼ぶこととする。また、ＦＰＧＡ粗ハフ変換部１０２が抽出した中心候補情報が示す円が、密ハフ変換部１０４における処理で棄却されることもある。
【００３３】
また、ＦＰＧＡ粗ハフ変換部１０２は、画像入力部１０１から入力された入力画像データを外部メモリ１０３へ出力する。この処理は、粗い精度のハフ変換処理とは並列に実行され、バースト的な書き込み処理であるため、処理時間への影響を無視することができる。
【００３４】
外部メモリ１０３は、各構成要素でやり取りされる情報を保持する。各構成要素間でやり取りされる情報とは、表１および表２に示す情報である。
【００３５】
【表１】
2015011799.tif 000003
【００３６】
【表２】
2015011799.tif 000004
表１に示した詳細な円中心座標と半径は、密ハフ変換部１０４にて抽出された中心の数に相当する情報から構成される。
【００３７】
汎用プロセッサ上で行う密ハフ変換部１０４は、外部メモリ１０３に記憶された円の中心候補情報を１つずつ取り出し、解像度の高い投票空間を用いて円の中心（ｘ、ｙ）座標および半径について詳細な値を求める。また、密ハフ変換部１０４は、対応する小領域（局所領域）の画像を外部メモリ１０３から読み込み、解像度をＦＰＧＡ粗ハフ変換部１０２におけるハフ変換に用いたものよりも密に設定した密なハフ変換を行って抽出した詳細な円中心座標と半径の情報を再び外部メモリ１０３へ出力する。
【００３８】
密ハフ変換部１０４における投票空間の解像度は、例えば入力画像６０１の解像度、つまり、入力画像の画素と等しくすれば良い。ＦＰＧＡ粗ハフ変換部１０２における縦横の解像度および半径の解像度がともに６画素単位とすると、中心候補情報は６画素（もしくは−３画素〜＋３画素）程度の誤差を持っているといえる。そこで、例えば密ハフ変換部１０４における投票空間のｂｉｎ数を横６×縦６×半径６＝２１６個とすれば良い。また、誤差を多少多めに見積もって、上記よりもｂｉｎ数を若干多くした投票空間を用意するのでも良い。
【００３９】
認識対象とする円の半径が最大３９画素ならば、上記投票空間への投票に寄与する入力画像の範囲は図７に示すように、投票空間のｘ、ｙ範囲の上下左右に３９画素広げた範囲に限定される。すなわち、密ハフ変換部１０４においては入力画像全体を走査する必要がなく、局所領域についてハフ変換処理を行えば良い。汎用プロセッサは、ＦＰＧＡと異なり、外部メモリ中の局所領域のデータに対してのみ処理を行うということが容易にできる点も重要なポイントである。ＦＰＧＡ粗ハフ変換部１０２が出力する中心候補情報は多くはなく、しかも、密ハフ変換部１０４は、各中心候補情報に対応する局所領域に対してのみハフ変換を行えば良い。そのため、詳細な精度のハフ変換は、粗い精度のハフ変換に比べ演算量が圧倒的に少ない。それゆえ、組み込み装置の汎用プロセッサであってもリアルタイムに処理を行うことができる。
【００４０】
次に、本実施の形態の動作について説明する。図８は、本実施の形態における動作を説明するためのフローチャートである。
【００４１】
まず、ステップ１にて、画像入力部１０１が画像の取り込みを行う。次に、画像入力部１０１が取り込んだ入力画像について、ステップ２にて、ＦＰＧＡ粗ハフ変換部１０２が粗い精度のハフ変換を行い、ステップ３にて、得られた中心候補情報を外部メモリ１０３へ出力する。また、ステップ４にて、ＦＰＧＡ粗ハフ変換部１０２は、入力画像も外部メモリ１０３へ出力する。次に、ステップ５にて、汎用プロセッサ上の密ハフ変換部１０４が、外部メモリ１０３内に未処理の中心候補情報があるか否か調査する。すべて処理済みであれば、処理を終了する。
【００４２】
一方、外部メモリ１０３内に未処理の中心候補情報がある場合は、ステップ６にて、密ハフ変換部１０４は、外部メモリ１０３から中心候補情報を１つ取り込む。また、ステップ７にて、密ハフ変換部１０４は、入力画像の中から対応する局所領域の画像データを外部メモリ１０３から読み込む。次に、ステップ８にて、密ハフ変換部１０４は、詳細な精度のハフ変換を行い、ステップ９にて、その結果を外部メモリ１０３へ出力する。
【００４３】
以上のように、本実施の形態によれば、画像中からリアルタイムに２次元パターンを認識する組込み画像認識装置を実現することができる。なぜならば、粗い精度のハフ変換をＦＰＧＡ上で行い、粗い精度の認識結果と入力画像とを外部メモリ１０３にいったん記憶し、外部メモリ１０３に記憶された粗い精度の認識結果と入力画像とを用いて汎用プロセッサ上で詳細な精度のハフ変換を行うことにより、図９に示すようにハードウェアの特性と分担する処理の特性とが合致し、リアルタイムに処理を行うことができるようになるからである。
【００４４】
上述の画像認識装置は、図１０に示すような画像入力インタフェース９０１と、ＦＰＧＡ９０２と、汎用プロセッサ９０３と、外部メモリ９０４とから構成される。ただし、汎用プロセッサ９０３はそのコアをＦＰＧＡ９０２の中にハードマクロとしてとりこんだ構成のものでも良い。
【００４５】
なお、本実施の形態では、２次元パターンとして円を認識する場合の動作を例に挙げて説明したが、あらかじめ形状がわかっている２次元図形ならば三角形、四角形などの多角形をはじめ、任意の２次元パターンに対して、本発明を適用することができる。これは、ＦＰＧＡ粗ハフ変換部１０２および密ハフ変換部１０４で利用する一般化ハフ変換の仕組みは、あらかじめ定められた任意の２次元パターンに対して適用できるからである。また、上記円を認識する場合の例では円の中心の可能性があるｂｉｎに投票する場合を例に挙げたが、円の外接矩形の左上の点の可能性があるｂｉｎに投票するようにしても良いし、円のその他の点の可能性があるｂｉｎに投票するのでも良い。一般的な場合に拡張すると、任意の２次元パターンを認識する場合も、投票で抽出する点を２次元パターンに対して任意の点に設定することができる。
【００４６】
また、本実施の形態では、ＦＰＧＡ粗ハフ変換部１０２が外部メモリ１０３へ入力画像をそのまま出力するものとしたが、画像入力部１０１が外部メモリ１０３のあらかじめ定められた領域に入力画像を直接出力するのでも良い。
【００４７】
また、本実施の形態では、ＦＰＧＡ粗ハフ変換部１０２に含まれる投票空間の縦方向のｂｉｎ区分数は、入力画像の縦方向の画素数を投票空間の縦方向の解像度で割った値として説明した。入力画像のサイズがより大きな場合や、ＦＰＧＡのＲＡＭブロックサイズがより小さな場合には、粗い精度のハフ変換のための投票空間をＲＡＭブロックに保持するのも困難な場合がある。そのような場合は、投票空間の縦方向のｂｉｎ区分数が、その投票空間の解像度における２次元パターンの最大縦サイズよりも１もしくは２大きな値としても良い。具体的には、入力画像の縦サイズが４８０画素、ＦＰＧＡ粗ハフ変換部１０２における投票空間の解像度が入力画像の６画素単位とすると、本実施の形態では４８０／６＝８０を投票空間の縦方向のｂｉｎ区分数としたが、認識対象の２次元パターンの最大縦サイズが６０画素の場合であれば、入力画像のサイズによらず、６０／６＋２＝１２を投票空間の縦方向のｂｉｎ区分数としても良い。また、投票空間の解像度における２次元パターンの最大縦サイズよりも１大きくするか２大きくするかの決定方法は、２次元パターンの最大縦サイズを投票空間の解像度で割った値の余りが１の場合は１大きく、それ以外の場合は２大きくすれば良い。これは、以下の原理による。
【００４８】
円を抽出するハフ変換を例題として、図１１を参照して説明する。通常、円を抽出するハフ変換の処理は、入力画像の画素をラスタスキャン順に走査して、着目した画素が円弧上に対応すると考えられる画素の場合に投票空間へ円状に投票を行う。図１１は、認識対象とする最大の大きさの円１１０１に属する点１１０２に着目した際、投票空間中に円の中心の可能性がある画素として投票される画素１１０３を示している。なお、本来、円を認識する際に利用する投票空間は半径の違いの軸も含めた３次元空間を用いるが、ここでは最大の半径の円に対応する２次元の投票空間のみを示すものとし、投票空間の解像度は入力画像と等しいものとする。図１１に示すように、点１１０２に対する投票がされる画素の高さ方向の範囲は、範囲１１０５であり、それより上部の範囲１１０４および下部の範囲１１０６へは投票されない。すわなち、点１１０２と同じライン上の点について投票処理を行っている間は、範囲１１０５に対応する投票空間を保持しておきさえすれば十分である。
【００４９】
入力画像と同じ解像度における範囲１１０５と粗い精度の投票空間（ｎ（ｎ≧２）次元）のｂｉｎとの対応関係の例を図１２に示す。図１２の左図は、粗い精度の投票空間の解像度が入力画像の６画素単位、２次元パターンの最大縦サイズが入力画像上で３７画素の場合の、範囲１１０５と粗い精度の投票空間のｂｉｎの関係を示す図であり、一点鎖線がｂｉｎの区切れ位置を示している。この時、２次元パターンの最大縦サイズを投票空間の解像度で割った値の余りは１（＝３７／６＝６  余り  １）であり、図示した６通りのケースが考えうるが、いずれのケースもグレーの色つき領域で示した投票範囲は７つのｂｉｎにまたがっている。次に、図１２の右図は、粗い精度の投票空間の解像度が入力画像の６画素単位、２次元パターンの最大高さが入力画像上で３８画素の場合の、範囲１１０５と粗い精度の投票空間のｂｉｎの関係を示す図である。この場合は最大８つのｂｉｎに投票範囲がまたがる。また、図示は省略するが、２次元パターンの最大縦サイズを投票空間の解像度で割った値の余りが０（例えば最大縦サイズが３６画素の場合）の場合は、投票範囲が６もしくは７つのｂｉｎにまたがる。このように、２次元パターンの最大縦サイズを投票空間の解像度で割った値の余りが２以上の場合は該投票空間の解像度における２次元パターンの最大縦サイズよりも２大きな値となり、それ以外の場合は２次元パターンの最大縦サイズよりも１大きな値となる。したがって、上記縦サイズの投票空間を用いれば、入力画像の特定のＹ座標上の点については通常と同じ投票空間への投票処理を行えることがわかる。
【００５０】
そして、入力画像の次のラインの処理に移ってもそれまでの投票値を保持しておけば、入力画像全体に対応する投票空間を用いる場合とまったく等しい投票値を得ることができる。ただし、入力画像の次のラインに対する投票処理を進めていくには、投票空間を下側に伸ばさなければならない。しかし、ここでは投票空間の縦サイズは投票空間の解像度における２次元パターンの最大縦サイズよりも１もしくは２大きな値に限定されている。この対策として、投票空間を下側に伸ばす必要が生じると同時かその前に、もともとの投票空間の最上行は投票範囲からはずれるという事実を用いる。例えば、入力画像のあるＹ座標行の処理を行っている場合の投票範囲が図１２の左図中の右端のケースである場合、次のＹ座標行に対する投票処理の投票範囲は、上から２番目のｂｉｎよりも下となり、最上行のｂｉｎには投票されない。したがって、ここで最も上のラインのｂｉｎについてのみ投票値を調べて、外部メモリに記憶済の既認識分も含めて、暫定的に投票値が大きなものからｎ個を選択・記憶する。そして、最も上のラインに関する投票値のチェックが終了したならば、リングバッファの動作原理に基づき、物理的には投票空間の最も上のラインを仮想的に新たに投票空間の下側に追加する行として投票値の記憶に利用すれば良い。
【００５１】
このような対応付けは、図１３に示すような固定的な対応付けテーブルを用いることによって、容易に実現することができる。図１３は、投票空間の解像度を６画素単位、認識対象の２次元パターンの最大高さを５０とし、入力画像全体に対する投票空間を保持できる場合および投票空間のｂｉｎ区分数を１０（＝５０／６＋２）とした場合の投票範囲および入力画像Ｙ座標と投票空間ｙ座標との対応付けの一部について示した図である。この例の場合、たとえば入力画像のＹ座標＝７０上の画素に着目している間、投票空間のｙ＝０に対応するｂｉｎは、入力画像の座標系におけるＹ＝６０〜６５、ｙ＝１に対応するｂｉｎはＹ＝６６〜７１に対応することを意味している。同様に、ｙ＝７のｂｉｎはＹ＝４２〜４７に対応する。また、入力画像のＹ座標＝７１上の画素に着目した投票処理終了後、投票される範囲は８〜９および０〜６であり、ｙ＝７のｂｉｎに保持されている投票値はもう変化しないものであるから、入力画像のＹ座標＝７１上の画素に着目した投票処理を終了した時点でｙ＝７のｂｉｎを横方向にチェックして、メモリに記憶済の既認識分も含めて常に投票値が大きいものｎ個を選択・記憶しておけばよい。記憶後は、ｙ＝７のｂｉｎの値を０にクリアするとともに、Ｙ＝７７の行に着目した投票処理がされる際にＹ＝１０２〜１０７の行への投票値を保持するのに再利用する。
【００５２】
なお、入力画像座標系の縦軸座標値Ｙと投票空間の縦軸座標値ｙとの一般的な関係式は、
ｙ＝（（ｉｎｔ（Ｙ  ／  投票空間の解像度））  ｍｏｄ  ｂｉｎ区分数）
で表される。ここで、ｉｎｔ（ａ）は切り捨て、（ａ  ｍｏｄ  ｂ）はａをｂで割った余りを返すものとする。
【００５３】
次に、投票空間の縦方向のｂｉｎ区分数が、その投票空間の解像度における２次元パターンの最大縦サイズよりも１もしくは２大きな値とする場合の、ＦＰＧＡ粗ハフ変換部１０２の内部の動作について、図１４を用いて説明する。
【００５４】
まず、ステップ１１にて、ＦＰＧＡ粗ハフ変換部１０２は、図１３に示したような入力画像のＹ座標と投票空間のｙ座標の対応関係を示すテーブルの初期化、および投票空間の初期化を行う。次に、ＦＰＧＡ粗ハフ変換部１０２は、入力画像の各Ｙ座標の画素に順次着目し、以下の処理を行う。ステップ１２にて、ＦＰＧＡ粗ハフ変換部１０２は、着目した画素が投票に関わる画素か否かを判定し、ステップ１３にて、投票に関わる画素と判定された場合はＹ座標と投票空間のｙ座標との対応関係を示すテーブルを参照しつつ、投票空間中の投票先を計算し、投票を行う。着目した画素が投票に関わらない画素の場合、または投票が済んだ場合は、ＦＰＧＡ粗ハフ変換部１０２は、次々と隣の画素に着目し、同様の処理を繰り返す。入力画像の１行分の投票処理が終了したら、ステップ１４にて、ＦＰＧＡ粗ハフ変換部１０２は、入力画像のＹ座標と投票空間のｙ座標との対応関係を示すテーブルを参照し、Ｙ座標に対する投票先ｙ座標の最小値が、現Ｙ座標と次Ｙ座標とで１増加するか否かを判定する。現Ｙ座標と次Ｙ座標とで１増加する場合、ステップ１５にて、ＦＰＧＡ粗ハフ変換部１０２は、現Ｙ座標における投票先ｙ座標の最小値に対するｂｉｎの列に対して投票値の大きなｂｉｎを抽出し、投票値およびｂｉｎに対応するパターン位置およびサイズを外部メモリ１０３に記憶する。外部メモリ１０３への記憶の後は、ＦＰＧＡ粗ハフ変換部１０２は、そのｂｉｎの値を０にクリアし、次Ｙ座標に着目してステップ１２以降の処理を繰り返す。ステップ１６にて、入力画像のすべてのＹ座標に着目し終えたら、ＦＰＧＡ粗ハフ変換部１０２は、外部メモリ１０３に記憶されている投票値および位置情報をＦＰＧＡ粗ハフ変換部１０２の出力として出力する。なお、投票値の大きなｂｉｎを抽出する際は、すでに外部メモリ１０３に記憶済みのものも含めて、常に投票値の大きなものから一定個数の投票値およびｂｉｎに対応するパターン位置およびサイズを記憶するのでも良いし、あらかじめ定めた閾値よりも投票値が大きなｂｉｎの情報すべてを外部メモリ１０３に記憶する方法でも構わない。
【００５５】
上記では、円を認識する処理を例に挙げて説明したが、三角形や他の形状の図形であっても、形状があらかじめ既知でありさえすれば、まったく同じ方法で粗い精度の位置およびサイズ情報を得ることができる。また、上記では投票空間の一辺のｂｉｎ区分数が、その投票空間の解像度における２次元パターンの最大縦長よりも１もしくは２大きな値としたが、これよりもｂｉｎ区分数が多くても構わない。また、投票空間の一辺のｂｉｎ区分数が、その投票空間の解像度における２次元パターンの最大縦長と同等に近い値であっても良い。そのような場合は、２次元パターンの上端および下端に対する画素からの投票値が捨てられてしまい、認識対象とする最大サイズの対象図形を認識しにくくなるおそれはあるが、応用によっては本影響が無視できる場合もある。しかしながら、メモリ消費量を削減できるという効果を有する。
【００５６】
なお、実施形態は円形もしくは三角形の道路標識を認識対象とした装置に適用することができる。具体的には、赤い環状の領域で囲まれた最高速度標識や駐車禁止標識、青い円形の背景を持つ指定方向外通行禁止を表す標識、逆三角形をした一時停止標識、さらにはそれらの電光表示によるものなどである。ただし、本実施形態はあらかじめ形状が規定されている２次元パターンであればどのような物体の認識にも適用することができ、道路標識の認識に限定されるものではない。
【００５７】
本発明によれば、粗密ハフ変換における粗い精度のハフ変換をＦＰＧＡ上に実装し、詳細な精度のハフ変換を汎用プロセッサ上に実装する。これにより、ＦＰＧＡ上に入力画像を保持する必要がなくなるとともに、演算速度が比較的遅い汎用プロセッサでは演算量が少ない詳細な精度のハフ変換のみを行うだけで済む。その結果、画像中からリアルタイムに２次元パターンを認識する組込み画像認識装置を実現することができる。
【００５８】
また、画像認識装置１００に設けられた各構成要素が行う処理は、目的に応じてそれぞれ作製された論理回路で行うようにしても良い。また、処理内容を手順として記述したコンピュータプログラム（以下、プログラムと称する）を画像認識装置１００にて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムを画像認識装置１００に読み込ませ、実行するものであっても良い。画像認識装置１００にて読取可能な記録媒体とは、フロッピー（登録商標）ディスク、光磁気ディスク、ＤＶＤ、ＣＤなどの移設可能な記録媒体の他、画像認識装置１００に内蔵されたＲＯＭ、ＲＡＭ等のメモリやＨＤＤ等を指す。この記録媒体に記録されたプログラムは、画像認識装置１００に設けられたＣＰＵ（不図示）にて読み込まれ、ＣＰＵの制御によって、前述したものと同様の処理が行われる。ここで、ＣＰＵは、プログラムが記録された記録媒体から読み込まれたプログラムを実行するコンピュータとして動作するものである。
【００５９】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施の形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【００６０】
上記の実施の形態の一部または全部は、以下の付記のようにも記載され得るが、以下には限られない。
（付記１）画像を入力する画像入力手段と、
情報を記憶する外部メモリと、
前記画像入力手段に入力された画像に対してＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）上で粗い精度の第１のハフ変換を行い、該第１のハフ変換で得られた候補位置情報と前記画像とを前記外部メモリに出力するＦＰＧＡ粗ハフ変換手段と、
前記外部メモリに記憶された前記候補位置情報と前記画像とを読み込んで、該候補位置情報を用いて該画像に対して詳細な精度の第２のハフ変換を行って前記画像の中の認識対象である２次元パターンの詳細な精度の位置情報を前記外部メモリに出力する、汎用プロセッサ上で動作する密ハフ変換手段とを有する画像認識装置。
（付記２）前記ＦＰＧＡ粗ハフ変換手段は、前記第１のハフ変換として、前記画像内の所定の複数の画素を含む範囲ごとにハフ変換を行い、
前記密ハフ変換手段は、前記第２のハフ変換として、前記画像の画素ごとにハフ変換を行うことを特徴とする、付記１に記載の画像認識装置。
（付記３）前記ＦＰＧＡ粗ハフ変換手段に含まれる投票空間は、リングバッファを用いて構成されることを特徴とする、付記１または付記２に記載の画像認識装置。
（付記４）前記ＦＰＧＡ粗ハフ変換手段に含まれる投票空間の縦方向のｂｉｎ区分数を、前記投票空間の解像度における２次元パターンの最大縦サイズよりも１もしくは２大きな値とすることを特徴とする、付記３に記載の画像認識装置。
（付記５）前記２次元パターンは、外形が円形もしくは三角形をした道路標識であることを特徴とする、付記１から４のいずれか１項に記載の画像認識装置。
（付記６）コンピュータに、
画像を入力する手順と、
前記入力した画像に対してＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）上で粗い精度の第１のハフ変換を行う手順と、
前記第１のハフ変換で得られた候補位置情報と前記画像とを外部メモリに出力する手順と、
前記外部メモリに記憶された前記候補位置情報と前記画像とを読み込んで、該候補位置情報を用いて該画像に対して詳細な精度の第２のハフ変換を行って前記画像の中の認識対象である２次元パターンの詳細な精度の位置情報を前記外部メモリに出力させる処理を汎用プロセッサ上で動作させる手順とを実行させるためのプログラムを記憶した記憶媒体。
【図１】
2015011799.tif 000005
【図２】
2015011799.tif 000006
【図３】
2015011799.tif 000007
【図４】
2015011799.tif 000008
【図５】
2015011799.tif 000009
【図６】
2015011799.tif 000010
【図７】
2015011799.tif 000011
【図８】
2015011799.tif 000012
【図９】
2015011799.tif 000013
【図１０】
2015011799.tif 000014
【図１１】
2015011799.tif 000015
【図１２】
2015011799.tif 000016
【図１３】
2015011799.tif 000017
【図１４】
2015011799.tif 000018
【手続補正書】
【提出日】平成28年1月18日(2016.1.18)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項６
【補正方法】変更
【補正の内容】
【請求項６】
コンピュータに、
画像を入力する手順と、
前記入力した画像に対してＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）上で粗い精度の第１のハフ変換を行う手順と、
前記第１のハフ変換で得られた候補位置情報と前記画像とを外部メモリに出力する手順と、
前記外部メモリに記憶された前記候補位置情報と前記画像とを読み込んで、該候補位置情報を用いて該画像に対して詳細な精度の第２のハフ変換を行って前記画像の中の認識対象である２次元パターンの詳細な精度の位置情報を前記外部メモリに出力させる処理を汎用プロセッサ上で動作させる手順とを実行させるためのプログラム。
【国際調査報告】
2015011799.tif 000019
2015011799.tif 000020