(57)【特許請求の範囲】
【請求項１】
原点と各ピクセルとを対角線とする矩形領域内の原画像のピクセル値の和を当該ピクセルでのピクセル値とするインテグラル画像を作成するインテグラル画像作成手段と、
前記インテグラル画像の各行もしくは各列において、当該ピクセルのピクセル値を予め定めた上限ピクセル値と比較し、前記上限ピクセル値以上のピクセル値を持つ場合に当該ピクセルの横位置（列の場合は縦位置）を当該行内（列の場合は列）のビット下げ点座標として記憶するピクセル値ビット下げ点検出手段と、
前記インテグラル画像の当該ピクセルにおけるピクセル値から、前記当該ピクセルが属する行内で（列の場合は列内で）前記当該ピクセルを含みその左側（列の場合は上側）に存在する前記ビット下げ点座標の個数と前記上限ピクセル値を乗じた値を、減ずるインテグラル画像ピクセル値ビット下げ手段と、
前記インテグラル画像の各行もしくは各列において左端から（列の場合は上端から）、各ピクセルについて前記インテグラル画像ピクセル値ビット下げ手段と前記ピクセル値ビット下げ点検出手段を適用するビット下げインテグラル画像作成手段と、
前記インテグラル画像を基に原画像内の単独または複数の矩形領域内のピクセル値和である矩形領域内ピクセル値和を計算する矩形領域内ピクセル値和計算手段と、
前記矩形領域内ピクセル値和を基に特徴ベクトルを計算する特徴ベクトル計算手段と、
前記特徴ベクトルを出力する特徴ベクトル出力手段と、
を備えたことを特徴とする画像特徴検出システム。
【請求項２】
前記矩形領域内ピクセル値和計算手段において、前記インテグラル画像の各ピクセルが属する行内もしくは列内で前記当該ピクセルを含みその左側（列の場合は上側）に存在する前記ビット下げ点座標の個数と前記上限ピクセル値を乗じた値を前記当該ピクセルでのピクセル値に加算した値を元に前記矩形領域内ピクセル値和を計算すること
を特徴とする請求項１に記載の画像特徴検出システム。
【請求項３】
前記インテグラル画像の格納に用いる記憶領域のピクセル当りのビット数がNである場合に、前記上限ピクセル値を２Nとすること
を特徴とする請求項１または２に記載の画像特徴検出システム。
【請求項４】
前記特徴ベクトルがHaar-like特徴であること
を特徴とする請求項１〜３の何れかに記載の画像特徴検出システム。
【請求項５】
画像から勾配画像を作成し、勾配方向を量子化し、量子化勾配方向毎に対応する勾配方向の勾配値を各ピクセルに格納した方向量子化勾配画像を作成し、各前記方向量子化勾配画像を前記原画像として前記特徴ベクトルの計算を行い、前記量子化勾配方向毎の前記特徴ベクトルを統合することにより特徴ベクトルを得る
ことを特徴とする請求項１〜３の何れかに記載の画像特徴検出システム。
【請求項６】
請求項１〜５の何れかに記載の画像特徴検出システムにより検出した前記特徴ベクトルを基に画像内の物体の検知・認識を行う画像認識システム。
【請求項７】
原点と各ピクセルとを対角線とする矩形領域内の原画像のピクセル値の和を当該ピクセルでのピクセル値とするインテグラル画像を作成するインテグラル画像作成処理と、
前記インテグラル画像の各行もしくは各列において、当該ピクセルのピクセル値を予め定めた上限ピクセル値と比較し、前記上限ピクセル値以上のピクセル値を持つ場合に当該ピクセルの横位置（列の場合は縦位置）を当該行内（列の場合は列）のビット下げ点座標として記憶するピクセル値ビット下げ点検出処理と、
前記インテグラル画像の当該ピクセルにおけるピクセル値から、前記当該ピクセルが属する行内で（列の場合は列内で）前記当該ピクセルを含みその左側（列の場合は上側）に存在する前記ビット下げ点座標の個数と前記上限ピクセル値を乗じた値を、減ずるインテグラル画像ピクセル値ビット下げ処理と、
前記インテグラル画像の各行もしくは各列において左端から（列の場合は上端から）、各ピクセルについて前記インテグラル画像ピクセル値ビット下げ処理と前記ピクセル値ビット下げ点検出処理を適用するビット下げインテグラル画像作成処理と、
前記インテグラル画像を基に原画像内の単独または複数の矩形領域内のピクセル値和である矩形領域内ピクセル値和を計算する矩形領域内ピクセル値和計算処理と、
前記矩形領域内ピクセル値和を基に特徴ベクトルを計算する特徴ベクトル計算処理と、
前記特徴ベクトルを出力する特徴ベクトル出力処理と、
を含む、画像特徴検出方法。
【請求項８】
原点と各ピクセルとを対角線とする矩形領域内の原画像のピクセル値の和を当該ピクセルでのピクセル値とするインテグラル画像を作成するインテグラル画像作成処理と、
前記インテグラル画像の各行もしくは各列において、当該ピクセルのピクセル値を予め定めた上限ピクセル値と比較し、前記上限ピクセル値以上のピクセル値を持つ場合に当該ピクセルの横位置（列の場合は縦位置）を当該行内（列の場合は列）のビット下げ点座標として記憶するピクセル値ビット下げ点検出処理と、
前記インテグラル画像の当該ピクセルにおけるピクセル値から、前記当該ピクセルが属する行内で（列の場合は列内で）前記当該ピクセルを含みその左側（列の場合は上側）に存在する前記ビット下げ点座標の個数と前記上限ピクセル値を乗じた値を、減ずるインテグラル画像ピクセル値ビット下げ処理と、
前記インテグラル画像の各行もしくは各列において左端から（列の場合は上端から）、各ピクセルについて前記インテグラル画像ピクセル値ビット下げ処理と前記ピクセル値ビット下げ点検出処理を適用するビット下げインテグラル画像作成処理と、
前記インテグラル画像を基に原画像内の単独または複数の矩形領域内のピクセル値和である矩形領域内ピクセル値和を計算する矩形領域内ピクセル値和計算処理と、
前記矩形領域内ピクセル値和を基に特徴ベクトルを計算する特徴ベクトル計算処理と、
前記特徴ベクトルを出力する特徴ベクトル出力処理と、
をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像特徴検出システム、画像認識システム、画像特徴検出方法、画像認識方法、およびプログラムに関し、少ない記憶容量で特徴を検出することができる画像特徴検出システム、画像認識システム、画像特徴検出方法、画像認識方法、およびプログラムに関する。
【背景技術】
【０００２】
関連する画像特徴検出システムの一例が、特許文献１に記載されている。ここでの画像特徴とは、原画像から、例えば顔等の検出を行う際に用いる特徴であり、原画像内の部分領域内の予め指定された矩形領域におけるピクセル値の合計や平均等、前記矩形領域のピクセル値の総和を用いて計算される特徴量に基づいて検出される。図１５に示すように、この画像特徴検出システムは、情報入力部１２００と、累積情報生成部１２０１と、累積情報保持部１２０２と、累積情報利用演算部１２０３とから構成されている。
【０００３】
この画像特徴検出システムは次のように動作する。
【０００４】
すなわち、前記情報入力部１２００は、原画像を入力する。前記累積情報生成部１２０１は前記原画像の原点と各ピクセルとを対角線とする矩形領域内の前記原画像のピクセル値の和を当該ピクセルでのピクセル値とする画像を生成する。この新たに生成された画像はインテグラル画像と呼ばれるものであり、本明細でも以下、この呼称を使用する。前記累積情報保持部１２０２は前記インテグラル画像データを保持する。前記累積情報利用演算部１２０３は前記インテグラル画像を用いて前記特徴量を計算する。前記特徴量の計算方法については、特許文献１または後述の式（１）を参照されたい。
【０００５】
ところで、前記インテグラル画像のピクセル値は前記原画像の前記矩形領域内のピクセル値和であるため、前記原画像のピクセル値と比較して大きな値となる傾向がある。従って、このままでは前記インテグラル画像の保持に大きな記憶容量を必要とする。そこで、この画像特徴検出システムでは、以下のようにして前記インテグラル画像の保持に必要な記憶容量を抑制している。
【０００６】
すなわち、前記特徴量の最大値がM以下である場合、M≦X=２NとなるようなNを選び、これを前記インテグラル画像の保持に用いるバッファのビット精度とする。この場合、前記累積情報保持部１２０２での前記インテグラル画像のピクセル値の保持においてオーバーフローを起こす場合があるが、その際にもオーバーフローを起こした値をそのままピクセル値として保持する。また、前記累積情報利用演算部１２０３における前記特徴量の計算において、Nビットの正整数入出力の加算器を用いる。このように構成であっても前記累積情報利用演算部１２０３における前記特徴量の計算において正しい値が計算されることが特許文献１に示されている。また、Nとして十分小さな値を選択することができるならば、前記インテグラル画像の保持に必要な記憶容量を抑制することが出来る。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００８−２９９６２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、上記特許文献１の構成では、インテグラル画像の保持に必要な記憶容量の抑制に限界がある。
【０００９】
その理由は、インテグラル画像の記憶に用いるバッファのビット精度が、計算される特徴量の値の大きさにより規定されるため、計算される特徴量の値が大きい場合には、インテグラル画像の保持に用いるバッファのビット精度も大きくなってしまうためである。
【００１０】
本発明の目的は、計算される特徴量の値の大きさに関わらずにインテグラル画像の保持に必要な記憶容量を抑制することにより、少ない記憶容量で特徴を検出することができる技術を提供することにある。
【課題を解決するための手段】
【００１１】
本願発明の第1の観点によれば、原点と各ピクセルとを対角線とする矩形領域内の原画像のピクセル値の和を当該ピクセルでのピクセル値とするインテグラル画像を作成するインテグラル画像作成手段と、前記インテグラル画像の各行もしくは各列において左端から（列の場合は上端から）当該行内（列の場合は列）のピクセル値を予め定めた上限ピクセル値と比較し、前記上限ピクセル値以上のピクセル値を持つピクセルの横位置（列の場合は縦位置）をビット下げ点座標として記憶するピクセル値ビット下げ点検出手段と、前記インテグラル画像の各ピクセルにおけるピクセル値から、前記当該ピクセルが属する行内で（列の場合は列内で）前記当該ピクセルを含みその左側（列の場合は上側）に存在する前記ビット下げ点座標の個数と前記上限ピクセル値を乗じた値を、減ずるインテグラル画像ピクセル値ビット下げ手段と、前記インテグラル画像を基に原画像内の単独または複数の矩形領域内のピクセル値和を計算する矩形領域内ピクセル値和計算手段と、前記矩形領域内ピクセル値和を基に特徴ベクトルを計算する特徴ベクトル計算手段と、前記特徴ベクトルを出力する特徴ベクトル出力手段とを備えたことを特徴とする画像特徴検出システムが提供される。
【００１２】
本願発明の第2の観点によれば、原点と各ピクセルとを対角線とする矩形領域内の原画像のピクセル値の和を当該ピクセルでのピクセル値とするインテグラル画像を作成し、前記インテグラル画像の各行もしくは各列において左端から（列の場合は上端から）当該行内（列の場合は列）のピクセル値を予め定めた上限ピクセル値と比較し、前記上限ピクセル値以上のピクセル値を持つピクセルの横位置（列の場合は縦位置）をビット下げ点座標として記憶し、前記インテグラル画像の各ピクセルにおけるピクセル値から、前記当該ピクセルが属する行内で（列の場合は列内で）前記当該ピクセルを含みその左側（列の場合は上側）に存在する前記ビット下げ点座標の個数と前記上限ピクセル値を乗じた値を、減じ、前記インテグラル画像を基に原画像内の単独または複数の矩形領域内のピクセル値和を計算し、前記矩形領域内ピクセル値和を基に特徴ベクトルを計算し、前記特徴ベクトルを出力することを特徴とする画像特徴検出方法が提供される。
【００１３】
本願発明の第3の観点によれば、原点と各ピクセルとを対角線とする矩形領域内の原画像のピクセル値の和を当該ピクセルでのピクセル値とするインテグラル画像を作成するインテグラル画像作成処理と、前記インテグラル画像の各行もしくは各列において左端から（列の場合は上端から）当該行内（列の場合は列）のピクセル値を予め定めた上限ピクセル値と比較し、前記上限ピクセル値以上のピクセル値を持つピクセルの横位置（列の場合は縦位置）をビット下げ点座標として記憶するピクセル値ビット下げ点検出処理と、前記インテグラル画像の各ピクセルにおけるピクセル値から、前記当該ピクセルが属する行内で（列の場合は列内で）前記当該ピクセルを含みその左側（列の場合は上側）に存在する前記ビット下げ点座標の個数と前記上限ピクセル値を乗じた値を、減ずるインテグラル画像ピクセル値ビット下げ処理と、前記インテグラル画像を基に原画像内の単独または複数の矩形領域内のピクセル値和を計算する矩形領域内ピクセル値和計算処理と、前記矩形領域内ピクセル値和を基に特徴ベクトルを計算する特徴ベクトル計算処理と、前記特徴ベクトルを出力する特徴ベクトル出力処理とをコンピュータに実行させるためのプログラムが提供される。
【発明の効果】
【００１４】
本願発明によれば、少ない記憶容量で特徴を検出することができることにある。
【００１５】
その理由は、インテグラル画像の保持に用いるバッファのビット精度を小さく設定するとともにインテグラル画像のピクセル値がオーバーフローするピクセル位置を保持し、特徴量の計算の際にインテグラル画像のピクセル値がオーバーフローしたピクセル位置を参照することによりオーバーフロー前のインテグラル画像のピクセル値を再現しながら特徴量の計算をすることで、計算される特徴量の値の大きさに関わらずにインテグラル画像の保持に必要な記憶容量を抑制することができるためである。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１の発明を実施するための最良の形態の構成を示すブロック図である。
【図２】ビット下げインテグラル画像の作成方法を示す図である。
【図３】ビット下げインテグラル画像からの原画像内の矩形領域ピクセル値和の計算方法を示す図である。
【図４】第１の発明を実施するための最良の形態の動作を示す第１フローである。
【図５】第１の発明を実施するための最良の形態の動作を示す第２フローである。
【図６】原画像と部分領域、および部分領域の移動を示す図である。
【図７】Haar-like特徴を示す図である。
【図８】第１の発明を実施するための最良の形態の具体例の構成を示すブロック図である。
【図９】第１の発明を実施するための最良の形態の具体例の動作を示す第１フローである。
【図１０】第１の発明を実施するための最良の形態の具体例の動作を示す第２フローである。
【図１１】HOG特徴ベクトル計算におけるセルを説明する図である。
【図１２】第１の発明を実施するための最良の形態の別の具体例の構成を示すブロック図である。
【図１３】第１の発明を実施するための最良の形態の別の具体例の動作を示す第１フローである。
【図１４】第１の発明を実施するための最良の形態の別の具体例の動作を示す第２フローである。
【図１５】従来技術の例の構成を示すブロック図である。
【発明を実施するための形態】
【００１７】
次に、発明を実施するための最良の形態について図面を参照して詳細に説明する。図１を参照すると、本発明の第１の実施の形態は、プログラム制御により動作するコンピュータ１００と、画像入力装置１１０とから構成されている。
【００１８】
コンピュータ１００は、CPU（Central Proccessing Unit）やROM(Read Only Memory)、RAM(Random Access Memory)を備えている。ROMには、予めプログラムが記憶されている。このプログラムは、CPUによって読み込まれ、CPU上で実行されることで、CPU等のハードウェアに、インテグラル画像作成機能１０１と、ピクセル値ビット下げ点検出機能１０２と、インテグラル画像ピクセル値ビット下げ機能１０３と、ビット下げインテグラル画像作成機能１０４と、インテグラル画像端点読込み機能１０５と、ピクセル値ビット上げ機能１０６と、矩形領域ピクセル値和計算機能１０７と、特徴値ベクトル計算機能１０８と、特徴値ベクトル出力機能１０９を実現させる。
【００１９】
これらの手段はそれぞれ概略つぎのように動作する。
【００２０】
前記画像入力装置１１０は、原画像を入力する。前記インテグラル画像作成機能１０１は、原点と各ピクセルとを対角線とする矩形領域内の原画像のピクセル値の和を当該ピクセルでのピクセル値とするインテグラル画像を作成する。前記ピクセル値ビット下げ点検出機能１０２は、図２に示すとおり、各ピクセルの前記インテグラル画像ピクセル値を予め定めた上限ピクセル値２０３と比較し、前記上限ピクセル値２０３以上のピクセル値をもつピクセルの横位置（列の場合は縦位置）をビット下げ点座標２０５として記憶する。前記インテグラル画像ピクセル値ビット下げ機能１０３は、前記上限ピクセル値２０３を適宜整数倍した値を当該ピクセルの前記インテグラル画像ピクセル値から減ずる。前記ビット下げインテグラル画像作成機能１０４は、前記上限ピクセル値２０３を適宜整数倍した値を減ぜられた前記インテグラル画像ピクセル値を各ピクセル値とするビット下げインテグラル画像２０２を作成する。前記インテグラル画像端点読込み機能１０５は、図３に示すとおり、前記原画像内の計算対象である矩形領域３０１の四隅の各端点に相当する前記ビット下げインテグラル画像３００（図２のビット下げインテグラル画像２０２に相当。）の各ピクセル値を読み込む。前記ピクセル値ビット上げ機能１０６は、前記端点の前記ビット下げインテグラル画像３００の各ピクセル値について、当該ピクセルが属する行（もしくは列）内の前記ビット下げ点座標２０５との位置関係により、前記当該ピクセル値が前記上限ピクセル値２０３を減じられたものであるか否かを判定し、減じられていた場合は当該ピクセル値に前記上限ピクセル値２０３を加算することにより前記インテグラル画像２００でのピクセル値を得る。前記矩形領域ピクセル値和計算機能１０７は、前記矩形領域３０１の四隅に相当する前記インテグラル画像の前記各ピクセル値により前記原画像での矩形領域ピクセル値和３０１を計算する。前記特徴値ベクトル計算機能１０８は、前記矩形領域ピクセル値和３０１を基に特徴値ベクトルを計算する。前記特徴値ベクトル出力機能１０９は、前記特徴値ベクトルを出力する。
【００２１】
なお、前記矩形領域３０１の四隅に相当する前記インテグラル画像の前記各ピクセルによる前記原画像での矩形領域ピクセル値和３０１の計算は、以下のように行う。すなわち、図３に示すとおり、前記矩形領域の４隅の各端点の座標をそれぞれ(x1, y1)、(x2, y1)、(x1, y2)、(x2, y2)とし（ただし、x2≧x1、y2≧y1）、座標(x, y)での前記インテグラル画像ピクセル値をI(x, y)とすると、前記矩形領域ピクセル値和S(x1, y1, x2, y2)は式（１）のように計算できる。
S(x1, y1, x2, y2) = I(x2, y2) + I(x1, y1) - I(x1, y2) - I(x2, y1)・・・（１）
【００２２】
また、本実施の形態における前記原画像の代わりに、これらにフィルタや幾何変換等の処理を施した処理画像を用いてもよい。
【００２３】
また、前記原画像は１つである必要はなく、複数の前記原画像に対して複数の前記ビット下げインテグラル画像を作成し、それら複数の前記ビット下げインテグラル画像を用いた原画像の矩形領域ピクセル値和を基に特徴値を計算してもよい。
【００２４】
また、前記ピクセル値ビット下げ点は各行もしくは各列に１つである必要はなく、複数の前記ピクセル値ビット下げ点を検出してもよい。この場合、前記ビット下げインテグラル画像の各ピクセルでのピクセル値は、前記上限ピクセル値に、当該ピクセルを含む行（もしくは列）で当該ピクセルおよびその左（列の場合は上）に存在する前記ピクセル値ビット下げ点の個数を乗じた値を前記インテグラル画像の当該ピクセルでのピクセル値から減じた値とする。
【００２５】
また、前記原画像は通常の画像のような２次元の画像である必要はなく、３次元以上の多次元の画像を対象としてもよい。その際、前記矩形領域は多次元直方体領域として多次元直方体領域ピクセル値和を計算する。また、前記インテグラル画像作成機能１０１は、原点と各ピクセルとを対角線とする多次元直方体領域内の原画像のピクセル値の和を当該ピクセルでのピクセル値とするインテグラル画像を作成する。
【００２６】
次に、図１〜３、及び、図４〜５のフローチャートを参照して本実施の形態の全体の動作について詳細に説明する。
【００２７】
なお、本動作の説明においては、前記ビット下げ座標２０５（図２参照）は前記ビット下げインテグラル画像２０２の各行について検出するが、前記ビット下げ座標２０５の検出を各列に対しておこなってもよい。この場合、下記の説明において左右を上下と読み替えることにより処理が成立する。
【００２８】
まず、前記画像入力装置１１０により撮像された原画像を入力する（図４のステップＡ１）。次に、前記原画像においてインテグラル画像ピクセル値未計算のピクセルが存在すればステップＡ３へ、存在しなければ図５のステップＡ９へすすむ（ステップＡ２）。ステップＡ３では、前記インテグラル画像作成機能１０１により当該ピクセルでのインテグラル画像ピクセル値を原点と前記当該ピクセルとを対角線とする矩形領域内の前記原画像のピクセル値の和として計算する。さらに、前記インテグラル画像ピクセル値ビット下げ機能１０３により前記当該ピクセルでの前記インテグラル画像ピクセル値から、前記当該ピクセル上またはその左側にある前記ビット下げ座標２０５の個数と前記上限ピクセル値２０３を乗じた値を減ずる（ステップＡ４）。さらに、前記ピクセル値ビット下げ点検出機能１０２により前記当該ピクセルでの前記インテグラル画像ピクセル値と前記上限ピクセル値２０３を比較し、前記インテグラル画像ピクセル値が前記上限ピクセル値２０３以上であればステップＡ６へ、前記上限ピクセル値２０３未満であればステップＡ８へとすすむ（ステップＡ５）。ステップＡ６では、前記ピクセル値ビット下げ点検出機能１０２により前記当該ピクセルの位置をビット下げ座標２０５として記憶する。さらに、前記インテグラル画像ピクセル値ビット下げ機能１０３により前記当該ピクセルでの前記インテグラル画像ピクセル値から前記上限ピクセル値２０３を減ずる（ステップＡ７）。ステップＡ８では、前記ビット下げインテグラル画像作成機能１０４により前記インテグラル画像ピクセル値を前記ビット下げインテグラル画像のピクセル値として記憶する。図５のステップＡ９では、前記ビット下げインテグラル画像において特徴値ベクトル未計算のピクセルが存在すればステップＡ１０へすすみ、存在しなければ処理を終了する。ステップＡ１０では、前記特徴ベクトルを計算するために必要な前記矩形領域ピクセル値和のうち未計算の前記矩形領域３０１が存在すればステップＡ１１へ、存在しなければステップＡ１６へすすむ。ステップＡ１１では、前記インテグラル画像端点読込み機能１０５により当該矩形領域３０１の４隅の各端点での前記ビット下げインテグラル画像ピクセル値を読み込む。さらに、前記ピクセル値ビット上げ機能１０６により前記当該矩形領域３０１の前記各端点と前記各端点が含まれる各行での前記ビット下げ座標２０５との位置関係をそれぞれ比較する（ステップＡ１２）。さらに、前記ピクセル値ビット上げ機能１０６により前記各端点が対応する各前記ビット下げ座標上もしくはその左側に位置するか否かを判定し、各前記ビット下げ座標上もしくはその左側の位置する場合はＡ１４へ、位置しない場合はＡ１５へすすむ（ステップＡ１３）。ステップＡ１４では、前記ピクセル値ビット上げ機能１０６により前記各端点での前記ビット下げインテグラル画像ピクセル値に、前記各端点上またはその左側にある前記ビット下げ座標２０５の個数と前記上限ピクセル値２０３を乗じた値を加算し前記インテグラル画像ピクセル値を得る。ステップＡ１５では、前記矩形領域ピクセル値和計算機能１０７により前記各端点の前記インテグラル画像ピクセル値から前記矩形領域ピクセル値和３０１を計算する。ステップA１６では、前記特徴値ベクトル計算機能１０８により前記矩形領域ピクセル値和から前記特徴値ベクトルを計算する。さらに、前記特徴ベクトル出力機能１０９により前記特徴値ベクトルを出力する（ステップＡ１７）。
【００２９】
次に、本実施の形態の効果について説明する。
【００３０】
本実施の形態では、インテグラル画像のピクセル値の上限が前記上限ピクセル値２０３として定められているためインテグラル画像の記憶に必要なビット数を削減することができ、また前記上限ピクセル値２０３および前記ビット下げ座標２０５の記憶に要するビット数は、削減されたインテグラル画像格納のためのビット数より通常用いられる画像サイズであれば小さいと考えられるので、全体として記憶に必要なビット数を小さく抑えることができる。
【００３１】
また、前記上限ピクセル値２０３は計算される特徴値とは無関係に定めることが出来るため、インテグラル画像の記憶に必要なビット数を計算される特徴値の大きさに拘わらずより小さく抑えることができる。
【００３２】
（実施例）
次に、具体的な実施例を用いて本発明を実施するための最良の形態の動作を説明する。
【００３３】
本実施例は、図６に示すように輝度画像５０２を前記原画像とするものであり、前記原画像から、例えば顔等の検出に用いる特徴値ベクトル（１次元のスカラー値を含む）を検出するものである。前記特徴値ベクトルは当該ピクセル５０１を左上端点とする部分領域５０３内のピクセル値から算出されるものであり、前記部分領域５０３を縦横方向に適当な間隔、例えば横３ピクセル縦３ピクセルずつ、適当な順序、例えばラスタスキャン方向に移動し、それぞれの位置において前記特徴値ベクトルを計算し、それを基に前記部分領域５０３が例えば顔を含むか否かを識別することにより例えば顔等の検出を行う。前記特徴値ベクトルを基にした識別については、例えば非特許文献１（P. Viola, M. Jones, "Rapid Object Detection using a Boosted Cascade of Simple Features", Proc. IEEE Conf. on Computer Vision and Pattern Recognition, Vol. 1, pp.511-518, December 2001.）に示されている方法等を用いることが出来る。また、前記特徴値ベクトルとして、非特許文献１で用いられているHaar-like特徴を要素とする特徴値ベクトルを用いる。前記Haar-like特徴は、図７に示すように前記部分領域６０１内の適当な位置における前記矩形領域についての前記矩形領域ピクセル値和から計算される特徴値である。例えば、図７におけるHaar-like特徴６０２は矩形領域６０５についての前記矩形領域ピクセル値和から矩形領域６０４と矩形領域６０６についての前記矩形領域ピクセル値和を減ずることにより計算される。Haar-like特徴６０３についても同様に、矩形領域６０７についての前記矩形領域ピクセル値和から矩形領域６０８についての前記矩形領域ピクセル値和を減ずることにより計算される。非特許文献１では、さらにさまざまな前記矩形領域ピクセル値和の加減算によるHaar-like特徴が示されており、それらのHaar-like特徴を特徴値ベクトルの要素とすることにより例えば顔等の検出を行うことが出来るが、本実施例では計算される特徴値は２つのHaar-like特徴６０２、６０３であるとして、以下説明を行う。
【００３４】
本実施例は、図８にしめすように、プログラム制御により動作するコンピュータ７００と、画像入力装置７１０とから構成されている。
【００３５】
コンピュータ７００は、CPU（Central Proccessing Unit）やROM(Read Only Memory)、RAM(Random Access Memory)を備えている。ROMには、予めプログラムが記憶されている。このプログラムは、CPUによって読み込まれ、CPU上で実行されることで、CPU等のハードウェアに、インテグラル画像作成機能７０１と、ピクセル値ビット下げ点検出機能７０２と、インテグラル画像ピクセル値ビット下げ機能７０３と、ビット下げインテグラル画像作成機能７０４と、インテグラル画像端点読込み機能７０５と、ピクセル値ビット上げ機能７０６と、矩形領域ピクセル値和計算機能７０７と、特徴値ベクトル計算機能７０８と、特徴値ベクトル出力機能７０９を実現させる。
【００３６】
これらの手段はそれぞれ概略つぎのように動作する。
【００３７】
前記画像入力装置７１０は、原画像を入力する。前記インテグラル画像作成機能７０１は、原点と各ピクセルとを対角線とする矩形領域内の原画像のピクセル値の和を当該ピクセルでのピクセル値とする前記インテグラル画像２００を作成する。前記ピクセル値ビット下げ点検出機能７０２は、各ピクセルの前記インテグラル画像ピクセル値を予め定めた前記上限ピクセル値２０３と比較し、前記上限ピクセル値２０３以上のピクセル値をもつピクセルの横位置をビット下げ点座標２０５として記憶する。前記インテグラル画像ピクセル値ビット下げ機能７０３は、前記上限ピクセル値２０３を適宜整数倍した値を当該ピクセルの前記インテグラル画像ピクセル値から減ずる。前記ビット下げインテグラル画像作成機能７０４は、前記上限ピクセル値２０３を適宜整数倍した値を減ぜられた前記インテグラル画像ピクセル値を各ピクセル値とするビット下げインテグラル画像２０２を作成する。前記インテグラル画像端点読込み機能７０５は、前記矩形領域６０４、６０５、６０６、６０７、６０８の各前記矩形領域の四隅の各端点に相当する前記ビット下げインテグラル画像３００（図２のビット下げインテグラル画像２０２に相当。）の各ピクセル値を読み込む。前記ピクセル値ビット上げ機能７０６は、前記端点の前記ビット下げインテグラル画像３００の各ピクセル値について、当該ピクセルが属する行内の前記ビット下げ点座標２０５との位置関係により、前記当該ピクセル値が前記上限ピクセル値２０３を減じられたものであるか否かを判定し、減じられていた場合は当該ピクセル値に前記上限ピクセル値２０３を加算することにより前記インテグラル画像２００でのピクセル値を得る。前記矩形領域ピクセル値和計算機能７０７は、前記矩形領域６０４、６０５、６０６、６０７、６０８についての前記矩形領域ピクセル値和を各前記矩形領域の四隅に相当する前記インテグラル画像２００の前記各ピクセル値により前記矩形領域ピクセル値和３０１を計算する。前記特徴値ベクトル計算機能７０８は、前記矩形領域６０４、６０５、６０６、６０７、６０８についての前記矩形領域ピクセル値和を基に前記Haar-like特徴６０２、６０３を計算し、それらを要素とする特徴値ベクトルを計算する。前記特徴値ベクトル出力機能７０９は、前記特徴値ベクトルを出力する。なお、前記矩形領域ピクセル値和の計算は式（１）によって行われる。
【００３８】
次に、以上説明した構成要素により構成される本実施例の動作について、図９及び図１０のフローチャートを参照して詳細に説明する。
【００３９】
まず、前記画像入力装置７１０により撮像された原画像を入力する（図９のステップＢ１）。次に、前記原画像においてインテグラル画像ピクセル値未計算のピクセルが存在すればステップＢ３へ、存在しなければ図１０のステップＢ９へすすむ（ステップＢ２）。ステップＢ３では、ラスタスキャン方向に順次指定される各ピクセルについて、前記インテグラル画像作成機能７０１により当該ピクセルでのインテグラル画像ピクセル値を原点と前記当該ピクセルとを対角線とする矩形領域内の前記原画像のピクセル値の和として計算する。さらに、前記インテグラル画像ピクセル値ビット下げ機能７０３により前記当該ピクセルでの前記インテグラル画像ピクセル値から、前記当該ピクセル上またはその左側にある前記ビット下げ座標２０５の個数と前記上限ピクセル値２０３を乗じた値を減ずる（ステップＢ４）。さらに、前記ピクセル値ビット下げ点検出機能７０２により前記当該ピクセルでの前記インテグラル画像ピクセル値と前記上限ピクセル値２０３を比較し、前記インテグラル画像ピクセル値が前記上限ピクセル値２０３以上であればステップＢ６へ、前記上限ピクセル値２０３未満であればステップＢ８へとすすむ（ステップＢ５）。ステップＢ６では、前記ピクセル値ビット下げ点検出機能７０２により前記当該ピクセルの位置をビット下げ座標２０５として記憶する。さらに、前記インテグラル画像ピクセル値ビット下げ機能７０３により前記当該ピクセルでの前記インテグラル画像ピクセル値から前記上限ピクセル値２０３を減ずる（ステップＢ７）。ステップＢ８では、前記ビット下げインテグラル画像作成機能７０４により前記インテグラル画像ピクセル値を前記ビット下げインテグラル画像のピクセル値として記憶する。図１０のステップＢ９では、前記ビット下げインテグラル画像において特徴値ベクトル未計算のピクセルが存在すればステップＢ１０へすすみ、存在しなければ処理を終了する。ステップＢ１０では、ラスタスキャン順に順次指定される各ピクセルについて、前記特徴ベクトルを計算するために必要な前記矩形領域６０４、６０５、６０６、６０７、６０８についての矩形領域ピクセル値和のうち未計算の前記矩形領域３０１が存在すればステップＢ１１へ、存在しなければステップＢ１６へすすむ。ステップＢ１１では、各前記矩形領域６０４、６０５、６０６、６０７、６０８について、前記インテグラル画像端点読込み機能７０５により当該矩形領域３０１の４隅の各端点での前記ビット下げインテグラル画像ピクセル値を読み込む。さらに、前記ピクセル値ビット上げ機能７０６により前記当該矩形領域３０１の前記各端点と前記各端点が含まれる各行での前記ビット下げ座標２０５との位置関係をそれぞれ比較する（ステップＢ１２）。さらに、前記ピクセル値ビット上げ機能７０６により前記各端点が対応する各前記ビット下げ座標上もしくはその左側に位置するか否かを判定し、各前記ビット下げ座標上もしくはその左側の位置する場合はＢ１４へ、位置しない場合はＢ１５へすすむ（ステップＢ１３）。ステップＢ１４では、前記ピクセル値ビット上げ機能７０６により前記各端点での前記ビット下げインテグラル画像ピクセル値に、前記各端点上またはその左側にある前記ビット下げ座標２０５の個数と前記上限ピクセル値２０３を乗じた値を加算し前記インテグラル画像ピクセル値を得る。ステップＢ１５では、前記矩形領域ピクセル値和計算機能７０７により前記各端点の前記インテグラル画像ピクセル値から前記矩形領域ピクセル値和３０１を計算する。ステップ１６では、前記特徴値ベクトル計算機能１０８により前記矩形領域６０４、６０５、６０６、６０７、６０８についての各前記矩形領域ピクセル値和から前記Haar-like特徴６０２、６０３を計算し、これらをベクトルの要素として前記特徴値ベクトルを計算する。さらに、前記特徴ベクトル出力機能７０９により前記特徴値ベクトルを出力する（ステップＢ１７）。
【００４０】
次に、別の具体的な実施例を用いて本発明を実施するための最良の形態の動作を説明する。
【００４１】
本実施例は、図６に示すように輝度画像５０２を前記原画像とするものであり、前記原画像から、例えば顔等の検出に用いる特徴値ベクトル（１次元のスカラー値を含む）を検出するものである。前記特徴値ベクトルは当該ピクセル５０１を左上端点とする部分領域５０３内のピクセル値から算出されるものであり、前記部分領域５０３を縦横方向に適当な間隔、例えば横３ピクセル縦３ピクセルずつ、適当な順序、例えばラスタスキャン方向、に移動し、それぞれの位置において前記特徴値ベクトルを計算しそれを基に前記部分領域５０３が例えば顔を含むか否かを識別することにより例えば顔等の検出を行う。前記特徴値ベクトルを基にした識別については、例えば非特許文献２（N. Dalal and B. Triggs, "Histograms of Oriented Gradients for Human Detection", Proc. IEEE Conf. on Computer Vision and Pattern Recognition, Vol. 1, pp.886-893, December 2005.）に示されている方法等を用いることが出来る。また、前記特徴値ベクトルとして、非特許文献２で用いられているHOG特徴ベクトルを用いる。前記HOG特徴ベクトルは、非特許文献２にあるように、例えばSobelフィルタ等の画像勾配を算出するフィルタを原画像にかけた後に各ピクセルでの勾配の方向を例えば４方向や８方向といった幾つかの離散的な量子化勾配方向に量子化し、さらに図１１に示すような前記部分領域９０１を幾つかの矩形領域９０２、９０３、９０４、９０５、９０６、９０７、９０８、９０９、９１０に分割した各前記矩形領域において、前記量子化勾配方向毎に当該前記量子化勾配方向をもつ当該前記矩形領域内のピクセルについての勾配値和を計算する。非特許文献２では、前記勾配値和を基にさらに各種の正規化を行い、前記HOG特徴ベクトルを得る手法が述べられているが、これらの正規化についての詳細は非特許文献２を参照されたい。前記HOG特徴ベクトルの計算においては、前記量子化勾配方向毎の勾配値和の計算が必要であるため、前記量子化勾配方向毎の勾配値をピクセル値とした原画像に対してのインテグラル画像が必要となる。本実施例では前記矩形領域の数は３×３＝９個、前記量子化勾配方向は４方向として、以下説明を行う。
【００４２】
本実施例は、図１２にしめすように、プログラム制御により動作するコンピュータ１０００と、画像入力装置１０１１とから構成されている。
【００４３】
コンピュータ１０００は、CPU（Central Proccessing Unit）やROM(Read Only Memory)、RAM(Random Access Memory)を備えている。ROMには、予めプログラムが記憶されている。このプログラムは、CPUによって読み込まれ、CPU上で実行されることで、CPU等のハードウェアに、勾配画像作成機能１００１と、インテグラル画像作成機能１００２と、ピクセル値ビット下げ点検出機能１００３と、インテグラル画像ピクセル値ビット下げ機能１００４と、ビット下げインテグラル画像作成機能１００５と、インテグラル画像端点読込み機能１００６と、ピクセル値ビット上げ機能１００７と、矩形領域ピクセル値和計算機能１００８と、特徴値ベクトル計算機能１００９と、特徴値ベクトル出力機能１０１０を実現させる。
【００４４】
これらの手段はそれぞれ概略つぎのように動作する。
【００４５】
前記画像入力装置１０１１は、原画像を入力する。前記勾配画像作成機能１００１は、前記原画像に例えばSobelフィルタ等の勾配値を算出するフィルタをかけ、勾配画像を作成する。前記インテグラル画像作成機能１００２は、前記量子化勾配方向毎に、原点と各ピクセルとを対角線とする矩形領域内の、勾配画像内で当該前記量子化勾配方向をもつピクセルにおけるピクセル値の和を当該ピクセルでのピクセル値とする前記インテグラル画像２００を作成する。前記ピクセル値ビット下げ点検出機能１００３は、各前記インテグラル画像において各ピクセルの前記インテグラル画像ピクセル値を予め定めた前記上限ピクセル値２０３と比較し、前記上限ピクセル値２０３以上のピクセル値をもつピクセルの横位置をビット下げ点座標２０５として記憶する。前記インテグラル画像ピクセル値ビット下げ機能１００４は、前記上限ピクセル値２０３を適宜整数倍した値を当該ピクセルの前記インテグラル画像ピクセル値から減ずる。前記ビット下げインテグラル画像作成機能１００５は、前記上限ピクセル値２０３を適宜整数倍した値を減ぜられた前記インテグラル画像ピクセル値を各ピクセル値とするビット下げインテグラル画像２０２を、各前記量子化勾配方向について作成する。前記インテグラル画像端点読込み機能１００６は、前記矩形領域９０２、９０３、９０４、９０５、９０６、９０７、９０８、９０９、９１０の各前記矩形領域の四隅の各端点に相当する前記ビット下げインテグラル画像３００の各ピクセル値を、各前記量子化勾配方向に対して読み込む。前記ピクセル値ビット上げ機能１００７は、前記端点の前記ビット下げインテグラル画像３００の各ピクセル値について、当該ピクセルが属する行内の前記ビット下げ点座標２０５との位置関係により、前記当該ピクセル値が前記上限ピクセル値２０３を減じられたものであるか否かを判定し、減じられていた場合は当該ピクセル値に前記上限ピクセル値２０３を加算することにより各前記量子化勾配方向についての前記インテグラル画像２００でのピクセル値を得る。前記矩形領域ピクセル値和計算機能１００８は、前記矩形領域９０２、９０３、９０４、９０５、９０６、９０７、９０８、９０９、９１０についての各前記量子化勾配方向に対する前記矩形領域ピクセル値和を、各前記矩形領域の四隅に相当する前記インテグラル画像２００の前記各ピクセル値により前記矩形領域ピクセル値和３０１を計算する。前記特徴値ベクトル計算機能１００９は、各前記量子化勾配方向に対する前記矩形領域９０２、９０３、９０４、９０５、９０６、９０７、９０８、９０９、９１０についての前記矩形領域ピクセル値和を基に前記HOG特徴ベクトルを計算し、それらを要素とする特徴値ベクトルを計算する。前記特徴値ベクトル出力機能１０１０は、前記特徴値ベクトルを出力する。
【００４６】
次に、以上説明した構成要素により構成される本実施例の動作について、図１３及び図１４のフローチャートを参照して詳細に説明する。
【００４７】
まず、前記画像入力装置１０１１により撮像された原画像を入力する（図１３のステップＣ１）。次に、前記勾配画像作成機能１００１により前記原画像に例えばSobelフィルタ等の勾配値を算出するフィルタをかけ、勾配画像を作成する（ステップＣ２）。次に、対応するインテグラル画像が未作成である前記量子化勾配方向が存在すればステップＣ４へ、存在しなければ図１４のステップＣ１１へすすむ（ステップＣ３）。ステップＣ４では、当該前記量子化勾配方向についての前記インテグラル画像においてインテグラル画像ピクセル値未計算のピクセルが存在すればステップＣ５へ、存在しなければステップＣ３へすすむ（ステップＣ４）。ステップＣ５では、ラスタスキャン方向に順次指定される各ピクセルについて、前記インテグラル画像作成機能１００２により当該ピクセルでのインテグラル画像ピクセル値を原点と各ピクセルとを対角線とする矩形領域内の、勾配画像内で当該前記量子化勾配方向をもつピクセルにおけるピクセル値の和として計算する。さらに、前記インテグラル画像ピクセル値ビット下げ機能１００４により前記当該ピクセルでの前記インテグラル画像ピクセル値から、前記当該ピクセル上またはその左側にある前記ビット下げ座標２０５の個数と前記上限ピクセル値２０３を乗じた値を減ずる（ステップＣ６）。さらに、前記ピクセル値ビット下げ点検出機能１００３により前記当該ピクセルでの前記インテグラル画像ピクセル値と前記上限ピクセル値２０３を比較し、前記インテグラル画像ピクセル値が前記上限ピクセル値２０３以上であればステップＣ８へ、前記上限ピクセル値２０３未満であればステップＣ１０へとすすむ（ステップＣ７）。ステップＣ８では、前記ピクセル値ビット下げ点検出機能１００３により前記当該ピクセルの位置をビット下げ座標２０５として記憶する。さらに、前記インテグラル画像ピクセル値ビット下げ機能１００４により前記当該ピクセルでの前記インテグラル画像ピクセル値から前記上限ピクセル値２０３を減ずる（ステップＣ９）。ステップＣ１０では、前記ビット下げインテグラル画像作成機能１００５により前記インテグラル画像ピクセル値を前記ビット下げインテグラル画像のピクセル値として記憶する。図１４のステップＣ１１では、ラスタスキャン順に順次指定される各ピクセルについて、前記ビット下げインテグラル画像において特徴値ベクトル未計算のピクセルが存在すればステップＣ１２へすすみ、存在しなければ処理を終了する。ステップＣ１２では、当該ピクセルにおける、対応する前記矩形領域ピクセル値和が未計算である前記量子化勾配方向が存在すればステップＣ１３へ、存在しなければステップＣ１９へとすすむ。ステップＣ１３では、当該ピクセルと当該前記量子化勾配方向に対して、前記矩形領域９０２、９０３、９０４、９０５、９０６、９０７、９０８、９０９、９１０についての前記矩形領域ピクセル値和のうち未計算の前記矩形領域３０１が存在すればステップＣ１４へ、存在しなければステップＣ１２へすすむ。ステップＣ１４では、各前記矩形領域９０２、９０３、９０４、９０５、９０６、９０７、９０８、９０９、９１０について、前記インテグラル画像端点読込み機能１００６により当該矩形領���３０１の４隅の各端点での当該前記量子化勾配方向に対応する前記ビット下げインテグラル画像ピクセル値を読み込む。さらに、前記ピクセル値ビット上げ機能１００７により前記当該矩形領域３０１の前記各端点と前記各端点が含まれる各行での前記ビット下げ座標２０５との位置関係をそれぞれ比較する（ステップＣ１５）。さらに、前記ピクセル値ビット上げ機能１００７により前記各端点が対応する各前記ビット下げ座標上もしくはその左側に位置するか否かを判定し、各前記ビット下げ座標上もしくはその左側の位置する場合はＣ１７へ、位置しない場合はＣ１８へすすむ（ステップＣ１６）。ステップＣ１７では、前記ピクセル値ビット上げ機能１００７により前記各端点での当該前記量子化勾配方向に対応する前記ビット下げインテグラル画像ピクセル値に、前記各端点上またはその左側にある前記ビット下げ座標２０５の個数と前記上限ピクセル値２０３を乗じた値を加算し前記インテグラル画像ピクセル値を得る。ステップＣ１８では、前記矩形領域ピクセル値和計算機能１００８により前記各端点の当該前記量子化勾配方向に対応する前記インテグラル画像ピクセル値から前記矩形領域ピクセル値和３０１を計算する。ステップＣ１９では、前記特徴値ベクトル計算機能１００９により前記矩形領域９０２、９０３、９０４、９０５、９０６、９０７、９０８、９０９、９１０についての各前記量子化勾配歩行に対する各前記矩形領域ピクセル値和から前記HOG特徴ベクトルを計算する。さらに、前記特徴ベクトル出力機能１０１０により前記特徴値ベクトルを出力する（ステップＣ２０）。
【００４８】
（付記１）
原点と各ピクセルとを対角線とする矩形領域内の原画像のピクセル値の和を当該ピクセルでのピクセル値とするインテグラル画像を作成するインテグラル画像作成手段と、
前記インテグラル画像の各行もしくは各列において左端から（列の場合は上端から）当該行内（列の場合は列）のピクセル値を予め定めた上限ピクセル値と比較し、前記上限ピクセル値以上のピクセル値を持つピクセルの横位置（列の場合は縦位置）をビット下げ点座標として記憶するピクセル値ビット下げ点検出手段と、
前記インテグラル画像の各ピクセルにおけるピクセル値から、前記当該ピクセルが属する行内で（列の場合は列内で）前記当該ピクセルを含みその左側（列の場合は上側）に存在する前記ビット下げ点座標の個数と前記上限ピクセル値を乗じた値を、減ずるインテグラル画像ピクセル値ビット下げ手段と
前記インテグラル画像を基に原画像内の単独または複数の矩形領域内のピクセル値和を計算する矩形領域内ピクセル値和計算手段と、
前記矩形領域内ピクセル値和を基に特徴ベクトルを計算する特徴ベクトル計算手段と、
前記特徴ベクトルを出力する特徴ベクトル出力手段と
を備えたことを特徴とする画像特徴検出システム。
（付記２）
前記矩形領域内ピクセル値和計算手段において、前記インテグラル画像の各ピクセルが属する行内もしくは列内で前記当該ピクセルを含みその左側（列の場合は上側）に存在する前記ビット下げ点座標の個数と前記上限ピクセル値を乗じた値を前記当該ピクセルでのピクセル値に加算した値を元に前記矩形領域内ピクセル値和を計算すること
を特徴とする付記１に記載の画像特徴検出システム。
（付記３）
前記インテグラル画像の格納に用いる記憶領域のピクセル当りのビット数がNである場合に、前記上限ピクセル値を２Nとすること
を特徴とする付記１または２に記載の画像特徴検出システム。
（付記４）
前記特徴ベクトルがHaar-like特徴であること
を特徴とする付記１〜３の何れかに記載の画像特徴検出システム。
（付記５）
画像から勾配画像を作成し、勾配方向を量子化し、量子化勾配方向毎に対応する勾配方向の勾配値を各ピクセルに格納した方向量子化勾配画像を作成し、各前記方向量子化勾配画像を前記原画像として前記特徴ベクトルの計算を行い、前記量子化勾配方向毎の前記特徴ベクトルを統合することにより特徴ベクトルを得る
ことを特徴とする付記１〜３の何れかに記載の画像特徴検出システム。
（付記６）
付記１〜５の何れかに記載の画像特徴検出システムにより検出した前記特徴ベクトルを基に画像内の物体の検知・認識を行う画像認識システム。
（付記７）
原点と各ピクセルとを対角線とする矩形領域内の原画像のピクセル値の和を当該ピクセルでのピクセル値とするインテグラル画像を作成し、
前記インテグラル画像の各行もしくは各列において左端から（列の場合は上端から）当該行内（列の場合は列）のピクセル値を予め定めた上限ピクセル値と比較し、前記上限ピクセル値以上のピクセル値を持つピクセルの横位置（列の場合は縦位置）をビット下げ点座標として記憶し、
前記インテグラル画像の各ピクセルにおけるピクセル値から、前記当該ピクセルが属する行内で（列の場合は列内で）前記当該ピクセルを含みその左側（列の場合は上側）に存在する前記ビット下げ点座標の個数と前記上限ピクセル値を乗じた値を、減じ
前記インテグラル画像を基に原画像内の単独または複数の矩形領域内のピクセル値和を計算し、
前記矩形領域内ピクセル値和を基に特徴ベクトルを計算し、
前記特徴ベクトルを出力する
ことを特徴とする画像特徴検出方法。
（付記８）
前記インテグラル画像の各ピクセルが属する行内もしくは列内で前記当該ピクセルを含みその左側（列の場合は上側）に存在する前記ビット下げ点座標の個数と前記上限ピクセル値を乗じた値を前記当該ピクセルでのピクセル値に加算した値を元に前記矩形領域内ピクセル値和を計算する
ことを特徴とする付記７に記載の画像特徴検出方法。
（付記９）
前記インテグラル画像の格納に用いる記憶領域のピクセル当りのビット数がNである場合に、前記上限ピクセル値を２Nとする
ことを特徴とする付記７または８に記載の画像特徴検出方法。
（付記１０）
前記特徴ベクトルがHaar-like特徴である
ことを特徴とする付記７〜９の何れかに記載の画像特徴検出方法。
（付記１１）
画像から勾配画像を作成し、勾配方向を量子化し、量子化勾配方向毎に対応する勾配方向の勾配値を各ピクセルに格納した方向量子化勾配画像を作成し、各前記方向量子化勾配画像を前記原画像として前記特徴ベクトルの計算を行い、前記量子化勾配方向毎の前記特徴ベクトルを統合することにより特徴ベクトルを得る
ことを特徴とする付記７〜９の何れかに記載の画像特徴検出方法。
（付記１２）
付記７〜１１の何れかに記載の画像特徴検出方法により検出した前記特徴ベクトルを基に画像内の物体の検知・認識を行う画像認識方法。
（付記１３）
原点と各ピクセルとを対角線とする矩形領域内の原画像のピクセル値の和を当該ピクセルでのピクセル値とするインテグラル画像を作成するインテグラル画像作成処理と、
前記インテグラル画像の各行もしくは各列において左端から（列の場合は上端から）当該行内（列の場合は列）のピクセル値を予め定めた上限ピクセル値と比較し、前記上限ピクセル値以上のピクセル値を持つピクセルの横位置（列の場合は縦位置）をビット下げ点座標として記憶するピクセル値ビット下げ点検出処理と、
前記インテグラル画像の各ピクセルにおけるピクセル値から、前記当該ピクセルが属する行内で（列の場合は列内で）前記当該ピクセルを含みその左側（列の場合は上側）に存在する前記ビット下げ点座標の個数と前記上限ピクセル値を乗じた値を、減ずるインテグラル画像ピクセル値ビット下げ処理と
前記インテグラル画像を基に原画像内の単独または複数の矩形領域内のピクセル値和を計算する矩形領域内ピクセル値和計算処理と、
前記矩形領域内ピクセル値和を基に特徴ベクトルを計算する特徴ベクトル計算処理と、
前記特徴ベクトルを出力する特徴ベクトル出力処理と
をコンピュータに実行させるためのプログラム。
（付記１４）
前記矩形領域内ピクセル値和計算処理において、前記インテグラル画像の各ピクセルが属する行内もしくは列内で前記当該ピクセルを含みその左側（列の場合は上側）に存在する前記ビット下げ点座標の個数と前記上限ピクセル値を乗じた値を前記当該ピクセルでのピクセル値に加算した値を元に前記矩形領域内ピクセル値和を計算すること
を特徴とする付記１３に記載のプログラム。
（付記１５）
前記インテグラル画像の格納に用いる記憶領域のピクセル当りのビット数がNである場合に、前記上限ピクセル値を２Nとすること
を特徴とする付記１３または１４に記載のプログラム。
（付記１６）
前記特徴ベクトルがHaar-like特徴であること
を特徴とする付記１３〜１５の何れかに記載のプログラム。
（付記１７）
画像から勾配画像を作成し、勾配方向を量子化し、量子化勾配方向毎に対応する勾配方向の勾配値を各ピクセルに格納した方向量子化勾配画像を作成し、各前記方向量子化勾配画像を前記原画像として前記特徴ベクトルの計算を行い、前記量子化勾配方向毎の前記特徴ベクトルを統合することにより特徴ベクトルを得る
ことを特徴とする付記１３〜１５の何れかに記載のプログラム。
（付記１８）
付記１３〜１７の何れかに記載のプログラムにより検出した前記特徴ベクトルを基に画像内の物体の検知・認識を行うプログラム。
【産業上の利用可能性】
【００４９】
本発明によれば、画像からの特徴検出といった用途に適用できる。特に、画像からの例えば顔等の物体検知・認識、画質測定といった画像処理一般に適用可能である。
【符号の説明】
【００５０】
１００, ７００, １０００    コンピュータ（中央処理装置；プロセッサ；データ処理装置）
１０１, ７０１, １００２    インテグラル画像作成機能
１０２, ７０２, １００３    ピクセル値ビット下げ点検出機能
１０３, ７０３, １００４    インテグラル画像ピクセル値ビット下げ機能
１０４, ７０４, １００５    ビット下げインテグラル画像作成機能
１０５, ７０５, １００６    インテグラル画像端点読込み機能
１０６, ７０６, １００７    ピクセル値ビット上げ機能
１０７, ７０７, １００８    矩形領域ピクセル値和計算機能
１０８, ７０８, １００９    特徴値ベクトル計算機能
１０９, ７０９, １０１０    特徴値ベクトル出力機能
１１０, ７１０, １０１１    画像入力装置
２００, ３００    インテグラル画像
２０１    インテグラル画像の１行内でのピクセル値
２０２    ビット下げインテグラル画像
２０３    上限ピクセル値
２０４    ビット下げインテグラル画像の１行内でのピクセル値
２０５    ビット下げ点座標
３０１, ６０４, ６０５, ６０６, ６０７, ６０８    矩形領域
５００    輝度画像
５０１, ６００, ９００    当該ピクセル
５０２, ６０１, ９０１    部分領域
６０２, ６０３    Haar-like特徴
９０２, ９０３, ９０４, ９０５, ９０６, ９０７, ９０８, ９０９, ９１０    セル
１００１    勾配画像作成機能
１２００    情報入力部
１２０１    累積情報生成部
１２０２    累積情報保持部
１２０３    累積情報利用演算部
【図１】
0005703705.tif 000002
【図２】
0005703705.tif 000003
【図３】
0005703705.tif 000004
【図４】
0005703705.tif 000005
【図５】
0005703705.tif 000006
【図６】
0005703705.tif 000007
【図７】
0005703705.tif 000008
【図８】
0005703705.tif 000009
【図９】
0005703705.tif 000010
【図１０】
0005703705.tif 000011
【図１１】
0005703705.tif 000012
【図１２】
0005703705.tif 000013
【図１３】
0005703705.tif 000014
【図１４】
0005703705.tif 000015
【図１５】
0005703705.tif 000016