(57)【要約】【課題】ウインドウを用いて画像の評価値を算出する際に、処理時間の増大を回避しつつ、ウインドウの大きさの変更に容易に対応する。【解決手段】ラスタスキャンの順番に従って移動するウインドウに含まれる複数の画素のそれぞれを示す複数の画素データのそれぞれに、当該画素のウインドウ内の位置に応じて相互に異なる複数の関数のそれぞれを適用することによって算出した複数の値の和をウインドウの位置毎に評価値として算出する計算装置であって、画像を構成する複数の画素のそれぞれを示す複数の画素データのそれぞれをラスタスキャンの順番に従って１つずつ受け付けて複数の関数のそれぞれを適用して複数の値のそれぞれを算出し、ウインドウに含まれる複数の画素のいずれかを示す画素データに、複数の関数のうち当該画素の当該ウインドウ内の位置に応じた関数を適用した値が算出される度に加算していくことにより、当該ウインドウの評価値を算出する。【選択図】図１
2012118920.tif 000002
【特許請求の範囲】
【請求項１】
画像を構成する複数の画素のうち、ラスタスキャンの順番に従って移動する所定の大きさの領域であるウインドウに含まれる複数の画素のそれぞれを示す複数の画素データのそれぞれに、当該画素の前記ウインドウ内の位置に応じて相互に異なる複数の関数のそれぞれを適用することによって算出した複数の値の和を前記ウインドウの位置毎に評価値として算出する計算装置であって、
前記画像を構成する複数の画素のそれぞれを示す複数の画素データのそれぞれをラスタスキャンの順番に従って１つずつ受け付け、該受け付けた画素データに前記複数の関数のそれぞれを適用することによって複数の値のそれぞれを算出し、前記ウインドウに含まれる複数の画素のいずれかを示す画素データに、前記複数の関数のうち当該画素の当該ウインドウ内の位置に応じた関数を適用した値が算出される度に、該算出された値を加算していくことにより、当該ウインドウの前記評価値を算出する計算装置。
【請求項２】
画像を構成する複数の画素のうち、ラスタスキャンの順番に従って移動する所定の大きさの領域であるウインドウに含まれる複数の画素のそれぞれを示す複数の画素データのそれぞれに、当該画素の前記ウインドウ内の位置に応じて相互に異なる複数の関数のそれぞれを適用することによって算出した複数の値の和を前記ウインドウの位置毎に評価値として算出する計算装置における計算方法であって、
前記画像を構成する複数の画素のそれぞれを示す複数の画素データのそれぞれをラスタスキャンの順番に従って１つずつ受け付ける処理と、
前記受け付けた画素データに前記複数の関数のそれぞれを適用することによって複数の値のそれぞれを算出する処理と、
前記ウインドウに含まれる複数の画素のいずれかを示す画素データに、前記複数の関数のうち当該画素の当該ウインドウ内の位置に応じた関数を適用した値が算出される度に、該算出された値を加算していくことにより、当該ウインドウの前記評価値を算出する処理と、を有する計算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像を評価するための評価値を算出する計算装置および計算方法に関する。
【背景技術】
【０００２】
画像識別やコンピュータビジョン（Ｃｏｍｐｕｔｅｒ  Ｖｉｓｉｏｎ）の分野では、例えば画像の特徴量を把握するために画像の評価値を算出することがある。
【０００３】
画像の評価値を算出する方法の一例として、矩形型の画像を構成する複数の画素の一部を取り出すための所定の大きさの領域（以降、ウインドウという）を画像に設定する方法が挙げられる。
【０００４】
ウインドウを設定して画像の特徴量をＡｄａｂｏｏｓｔ識別器を用いて把握するための方法が例えば、非特許文献１の「３．４ラスタスキャン方式による人検出」に記載されている。
【０００５】
この方法によれば、ラスタスキャンの順番に従って移動するウインドウを画像に設定し、ウインドウに含まれる複数の画素のそれぞれを示す複数の画素データのそれぞれに、当該画素のウインドウ内の位置に応じて相互に異なる複数の関数のそれぞれを適用することによって複数の値を算出する。そして、算出された複数の値の和がウインドウの位置毎に評価値として出力される。
【０００６】
なお、ラスタスキャンとは、画像を構成する複数の画素のそれぞれを行方向に左から右へスキャンし、その後、次の行の左から右へスキャンすることを繰り返して行う走査方式のことである。
【０００７】
ここで、ラスタスキャンの順番に従って移動するウインドウを画像に設定することによって画像の評価値を算出する方法について説明する。
【０００８】
図３は、ラスタスキャンの順番に従って移動するウインドウを画像に設定することによって画像の評価値を算出する方法を説明するための図であり、（ａ）は評価の対象となる画像の一例を示す図、（ｂ）はウインドウの一例を示す図、（ｃ）は（ｂ）に示すウインドウが移動する様子を示す図である。ここでは、画像の行方向の画素数をＬとし、ウインドウの大きさを行方向および列方向ともに２画素分とした場合について説明する。
【０００９】
ウインドウはまず、画像を構成する複数の画素のうち、画素データｖ1，ｖ2，ｖL+1，ｖL+2によって示される画素に設定される。
【００１０】
これにより、画素データｖ1には図３（ｂ）に示す関数ｈ11，ｈ12，ｈ21，ｈ22のうちの関数ｈ11が適用される。同様に、画素データｖ2には関数ｈ12が適用され、画素データｖL+1には関数ｈ21が適用され、画素データｖL+2には関数ｈ22が適用される。この状態が図３（ｃ）の上段に示されている。このときの評価値ｗL+2は、（ｈ11（ｖ1）＋ｈ12（ｖ2）＋ｈ21（ｖL+1）＋ｈ22（ｖL+2））となる。
【００１１】
そして、ウインドウがラスタスキャンの順番に従って移動する。その結果、ウインドウは、画像を構成する複数の画素のうち、画素データｖ2，ｖ3，ｖL+2，ｖL+3によって示される画素に設定される。
【００１２】
これにより、画素データｖ2には図３（ｂ）に示す関数ｈ11，ｈ12，ｈ21，ｈ22のうちの関数ｈ11が適用される。同様に、画素データｖ3には関数ｈ12が適用され、画素データｖL+2には関数ｈ21が適用され、画素データｖL+3には関数ｈ22が適用される。この状態が図３（ｃ）の下段に示されている。このときの評価値ｗL+3は、（ｈ11（ｖ2）＋ｈ12（ｖ3）＋ｈ21（ｖL+2）＋ｈ22（ｖL+3））となる。
【００１３】
上述した動作により、ラスタスキャンの順番に従ってウインドウを移動させた場合の評価値ｗtがウインドウの位置毎に算出されていく。つまり、１つの画像について、ウインドウを移動させた回数と同じ数の評価値が算出されることになる。
【００１４】
次に、図３に示した方法を実現するための計算装置の構成および動作について説明する。
【００１５】
図４は、図３に示した方法を実現するための計算装置の構成の一例を示す図である。また、図５は、図４に示した計算装置１００の動作を説明するためのフローチャートである。
【００１６】
図４に示す計算装置１００は、１ワード分の画素データを格納できる容量のレジスタ１０１ａ〜１０４ａのそれぞれを有する計算器１０１〜１０４と、（Ｌ−２）ワード分の画素データを格納できるシフトレジスタ１０５と、加算器１０６〜１０８とを備えている。
【００１７】
図４および図５を参照しながら、図３に示した方法を実現するための計算装置の動作について説明する。
【００１８】
まず、計算装置１００は、制御変数ｉを定義し、ｉを１とする（ステップＳ１０１）。
【００１９】
次に、時刻ｔ＝ｉにおいて計算器１０１は、ラスタスキャンの順番に従って画素データｖtを受け付けてレジスタ１０１ａに格納する（ステップＳ１０２）。
【００２０】
そして、制御変数ｉが（ｉ＋１）に更新される（ステップＳ１０３）。
【００２１】
次に、制御変数ｉが（Ｌ＋３）よりも小さいかどうかを判定する（ステップＳ１０４）。
【００２２】
ステップＳ１０４における判定の結果、制御変数ｉが（Ｌ＋３）よりも小さな場合、ステップＳ１０２の動作へ遷移する。この場合、レジスタ１０１ａに格納されている画素データｖtは画素データｖt-1としてレジスタ１０２ａに格納される。
【００２３】
一方、ステップＳ１０４における判定の結果、制御変数ｉが（Ｌ＋３）以上である場合には、計算器１０１〜１０４のそれぞれは、レジスタ１０１ａ〜１０４ａのそれぞれに格納された画素データに関数を適用することによって値を算出する（ステップＳ１０５）。具体的には、計算器１０４は、ｈ11（ｖt-L-1）を算出し、計算器１０３は、ｈ12（ｖt-L）を算出し、計算器１０２は、ｈ21（ｖt-1）を算出し、計算器１０１は、ｈ22（ｖt）を算出することになる。
【００２４】
そして、計算器１０１および計算器１０２は、算出した値を加算器１０６へ出力し、計算器１０３および計算器１０４は、算出した値を加算器１０７へ出力する。
【００２５】
次に、加算器１０６は、計算器１０１および計算器１０２のそれぞれから出力された値を加算して加算器１０８へ出力する。
【００２６】
また、加算器１０７は、計算器１０３および計算器１０４のそれぞれから出力された値を加算して加算器１０８へ出力する。
【００２７】
そして、加算器１０８は、評価値ｗt＝ｈ11（ｖt-L-1）＋ｈ12（ｖt-L）＋ｈ21（ｖt-1）＋ｈ22（ｖt）を算出して出力する（ステップＳ１０６）。
【００２８】
そして、時刻ｔ＝ｉにおいて計算器１０１は、画素データｖtを受け付けてレジスタ１０１ａに格納する。これにより、レジスタ１０４ａに格納された画素データｖt-L-2は削除されることになる（ステップＳ１０７）。
【００２９】
次に、制御変数ｉが（ｉ＋１）に更新される（ステップＳ１０８）。
【００３０】
以降、ステップＳ１０５〜Ｓ１０８の処理が繰り返され、ウインドウの位置毎に複数の評価値ｗtのそれぞれが順次算出されて出力される。
【先行技術文献】
【非特許文献】
【００３１】
【非特許文献１】「複数の特徴量間の関連性に着目したBoostingによる物体検出」信学技報, vol. 108, no. 484, PRMU2008-247, pp. 43-54, 2009年3月
【発明の概要】
【発明が解決しようとする課題】
【００３２】
図４に示した計算装置１００において、ウインドウに含まれる複数の画素を示す複数の画素データうち、時刻tにおいて受け付けた画素データｖt以外の画素データｖt-L-1，ｖt-L，ｖt-1は、関数ｈ11，ｈ12，ｈ21，ｈ22のうちのいずれかまたは複数の関数が時刻ｔよりも前に適用されている。
【００３３】
ところが、当該ウインドウにおいては、画素データと適用する関数との組み合わせは、これまでにないものとなる。そのため、ウインドウの大きさに応じたＮ個の値を新たに算出し、そのＮ個の値の和を評価値として算出する必要がある。この場合、少なくともｌｏｇ2Ｎに相当する段数に加算器を配置した加算器のツリーが必要となる。
【００３４】
ここで、ウインドウを大きくした場合、加算器のツリーの段数が増え、処理時間が増大してしまうという問題点がある。
【００３５】
また、加算器のツリーは、遅延を最適化するために階層構造となっている。そのため、ウインドウの大きさを変更した場合、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等に配置された配線の変更の影響範囲が全体に渡ることになる。
【００３６】
この場合、ＦＰＧＡ等のプログラマブルロジック部品で計算装置を構築しても、柔軟性を迅速に発揮できなくなり、ウインドウの大きさを変更したことによる再設計や最適化にかかる手間が大きくなってしまう。
【００３７】
つまり、ウインドウの大きさの変更に容易に対応することができないという問題点がある。
【００３８】
本発明は、ウインドウを用いて画像の評価値を算出する際に、処理時間の増大を回避しつつ、ウインドウの大きさの変更に容易に対応することができる計算装置および計算方法を提供することを目的とする。
【課題を解決するための手段】
【００３９】
上記目的を達成するために本発明の計算装置は、画像を構成する複数の画素のうち、ラスタスキャンの順番に従って移動する所定の大きさの領域であるウインドウに含まれる複数の画素のそれぞれを示す複数の画素データのそれぞれに、当該画素の前記ウインドウ内の位置に応じて相互に異なる複数の関数のそれぞれを適用することによって算出した複数の値の和を前記ウインドウの位置毎に評価値として算出する計算装置であって、
前記画像を構成する複数の画素のそれぞれを示す複数の画素データのそれぞれをラスタスキャンの順番に従って１つずつ受け付け、該受け付けた画素データに前記複数の関数のそれぞれを適用することによって複数の値のそれぞれを算出し、前記ウインドウに含まれる複数の画素のいずれかを示す画素データに、前記複数の関数のうち当該画素の当該ウインドウ内の位置に応じた関数を適用した値が算出される度に、該算出された値を加算していくことにより、当該ウインドウの前記評価値を算出する。
【００４０】
また、上記目的を達成するために本発明の計算方法は、画像を構成する複数の画素のうち、ラスタスキャンの順番に従って移動する所定の大きさの領域であるウインドウに含まれる複数の画素のそれぞれを示す複数の画素データのそれぞれに、当該画素の前記ウインドウ内の位置に応じて相互に異なる複数の関数のそれぞれを適用することによって算出した複数の値の和を前記ウインドウの位置毎に評価値として算出する計算装置における計算方法であって、
前記画像を構成する複数の画素のそれぞれを示す複数の画素データのそれぞれをラスタスキャンの順番に従って１つずつ受け付ける処理と、
前記受け付けた画素データに前記複数の関数のそれぞれを適用することによって複数の値のそれぞれを算出する処理と、
前記ウインドウに含まれる複数の画素のいずれかを示す画素データに、前記複数の関数のうち当該画素の当該ウインドウ内の位置に応じた関数を適用した値が算出される度に、該算出された値を加算していくことにより、当該ウインドウの前記評価値を算出する処理と、を有する。
【発明の効果】
【００４１】
本発明は以上説明したように構成されているので、評価値を算出するために、加算器のツリーのような大域的構造を計算装置に適用する必要がない。
【００４２】
従って、ウインドウを用いて画像の評価値を算出する際に、処理時間の増大を回避しつつ、ウインドウの大きさの変更に容易に対応することができる。
【図面の簡単な説明】
【００４３】
【図１】本発明の計算装置の実施の一形態の構成を示すブロック図である。
【図２】図１に示した計算装置の動作を説明するためのフローチャートである。
【図３】ラスタスキャンの順番に従って移動するウインドウを画像に設定することによって画像の評価値を算出する方法を説明するための図であり、（ａ）は評価の対象となる画像の一例を示す図、（ｂ）はウインドウの一例を示す図、（ｃ）は（ｂ）に示すウインドウが移動する様子を示す図である。
【図４】図３に示した方法を実現するための計算装置の構成の一例を示す図である。
【図５】図４に示した計算装置の動作を説明するためのフローチャートである。
【発明を実施するための形態】
【００４４】
以下に、本発明の実施の形態について図面を参照して説明する。ここでは、画像の行方向の画素数をＬとし、ウインドウの大きさを行方向および列方向ともに２画素分とした場合について説明する。
【００４５】
図１は、本発明の計算装置の実施の一形態の構成を示すブロック図である。
【００４６】
図１を参照すると、本実施形態の計算装置には、図４に示したような加算器のツリーが含まれていない。
【００４７】
図４に示した計算装置１００において加算器のツリーが必要であったのは、時刻tにおいてｈ11（ｖt-L-1），ｈ12（ｖt-L），ｈ21（ｖt-1），ｈ22（ｖt）を並列化して算出し、さらに、これらの値の和を評価値として算出するためであった。
【００４８】
ここで、画素データｖt-L-1，ｖt-L，ｖt-1，ｖtのそれぞれが図４に示した計算装置１００にて受け付けられる時刻は、順番に、時刻（ｔ−Ｌ−１）、（ｔ−Ｌ）、（ｔ−１）、ｔである。図４に示した計算装置１００では、シフトレジスタ１０５を用いて遅延させることにより、画素データｖt-L-1，ｖt-L，ｖt-1，ｖtのそれぞれに相互に異なる関数ｈ11，ｈ12，ｈ21，ｈ22を適用した。
【００４９】
本実施形態の計算装置１０は、画素データｖtを受け付けると、ｈ11（ｖt）、ｈ12（ｖt）、ｈ21（ｖt）、ｈ22（ｖt）の全てを算出する点が図４に示した計算装置１００と異なる。以下に、本実施形態の計算装置の構成および動作について説明する。
【００５０】
本実施形態の計算装置１０は図１に示すように、１ワード分の画素データを格納できる容量のレジスタ１１ａ〜１４ａのそれぞれを有する計算器１１〜１４と、（Ｌ−２）ワード分の画素データを格納できるシフトレジスタ１５とを備えている。
【００５１】
計算器１１〜１４のそれぞれは、画像を構成する複数の画素のそれぞれを示す複数の画素データｖtのそれぞれをラスタスキャンの順番に従ってクロックサイクル毎に１つずつ受け付ける。そして、計算器１１〜１４のそれぞれは、受け付けた画素データｖtに、ウインドウ内の位置に応じて相互に異なる複数の関数ｈ11，ｈ12，ｈ21，ｈ22のそれぞれを適用することによってｈ11（ｖt），ｈ12（ｖt），ｈ21（ｖt），ｈ22（ｖt）のそれぞれを算出する。そして、計算器１１〜１４のそれぞれは、予め決められた処理を実行する。この処理の詳細については後述する動作フローにおいて説明する。
【００５２】
以下に、上記のように構成された計算装置の動作について説明する。
【００５３】
図２は、図１に示した計算装置１０の動作を説明するためのフローチャートである。
【００５４】
まず、計算装置１０は、制御変数ｉを定義し、制御変数ｉを１とする（ステップＳ１）。
【００５５】
次に、時刻ｔ＝ｉにおいて計算器１１〜１４のそれぞれは、ラスタスキャンの順番に従って画素データｖtを１つ受け付け、受け付けた画素データｖtに相互に異なる複数の関数ｈ11，ｈ12，ｈ21，ｈ22のそれぞれを適用することによってｈ11（ｖt），ｈ12（ｖt），ｈ21（ｖt），ｈ22（ｖt）のそれぞれを算出する（ステップＳ２）。
【００５６】
そして、計算器１１は、算出したｈ11（ｖt）をレジスタ１１ａに格納する（ステップＳ３）。
【００５７】
ここで、制御変数ｉが（ｉ＋１）に更新される（ステップＳ４）。
【００５８】
次に、時刻ｔ＝ｉにおいて計算器１１〜１４のそれぞれは、ラスタスキャンの順番に従って次の画素データｖtを受け付け、受け付けた画素データｖtに相互に異なる複数の関数ｈ11，ｈ12，ｈ21，ｈ22のそれぞれを適用することによってｈ11（ｖt），ｈ12（ｖt），ｈ21（ｖt），ｈ22（ｖt）のそれぞれを算出する（ステップＳ５）。
【００５９】
そして、計算器１１は、レジスタ１１ａに格納されたｈ11（ｖt）をｈ11（ｖt-1）として計算器１２へ出力するとともに、ステップＳ５において算出したｈ11（ｖt）をレジスタ１１ａに格納する（ステップＳ６）。
【００６０】
また、計算器１２は、計算器１１から出力されたｈ11（ｖt-1）を受け付け、受け付けたｈ11（ｖt-1）と、ステップＳ５において算出したｈ12（ｖt）との合計値（ｈ11（ｖt-1）＋ｈ12（ｖt））をレジスタ１２ａに格納する（ステップＳ７）。つまり、計算器１２は、評価値ｗtの一部である（ｈ11（ｖt-1）＋ｈ12（ｖt））を算出したことになる。
【００６１】
ここで、制御変数ｉが（ｉ＋１）に更新される（ステップＳ８）。
【００６２】
次に、時刻ｔ＝ｉにおいて計算器１１〜１４のそれぞれは、ラスタスキャンの順番に従って次の画素データｖtを受け付け、受け付けた画素データｖtに相互に異なる複数の関数ｈ11，ｈ12，ｈ21，ｈ22のそれぞれを適用することによってｈ11（ｖt），ｈ12（ｖt），ｈ21（ｖt），ｈ22（ｖt）のそれぞれを算出する（ステップＳ９）。
【００６３】
そして、計算器１１は、レジスタ１１ａに格納されたｈ11（ｖt）をｈ11（ｖt-1）として計算器１２へ出力するとともに、ステップＳ９において算出したｈ11（ｖt）をレジスタ１１ａに格納する（ステップＳ１０）。
【００６４】
また、計算器１２は、レジスタ１２ａに格納された（ｈ11（ｖt-1）＋ｈ12（ｖt））を（ｈ11（ｖt-1-1）＋ｈ12（ｖt-1））としてシフトレジスタ１５へ出力する。
【００６５】
次に、計算器１２は、計算器１１から出力されたｈ11（ｖt-1））を受け付け、受け付けたｈ11（ｖt-1）と、ステップＳ９において算出したｈ12（ｖt）との合計値（ｈ11（ｖt-1）＋ｈ12（ｖt））をレジスタ１２ａに格納する（ステップＳ１１）。
【００６６】
そして、計算器１２から出力された（ｈ11（ｖt-1-1）＋ｈ12（ｖt-1））は、シフトレジスタ１５の入力端に格納される（ステップＳ１２）。
【００６７】
ここで、制御変数ｉが（ｉ＋１）に更新される（ステップＳ１３）。
【００６８】
次に、制御変数ｉが（Ｌ＋１）よりも小さいかどうかが判定される（ステップＳ１４）。
【００６９】
ステップＳ１４における判定の結果、制御変数ｉが（Ｌ＋１）よりも小さな場合、ステップＳ９の動作へ遷移する。
【００７０】
一方、ステップＳ１４における判定の結果、制御変数ｉが（Ｌ＋１）以上である場合には、時刻ｔ＝ｉにおいて計算器１１〜１４のそれぞれは、ラスタスキャンの順番に従って次の画素データｖtを受け付け、受け付けた画素データｖｔに相互に異なる複数の関数ｈ11，ｈ12，ｈ21，ｈ22のそれぞれを適用することによってｈ11（ｖt），ｈ12（ｖt），ｈ21（ｖt），ｈ22（ｖt）のそれぞれを算出する（ステップＳ１５）。
【００７１】
そして、計算器１１は、レジスタ１１ａに格納されたｈ11（ｖt）をｈ11（ｖt-1）として計算器１２へ出力するとともに、ステップＳ１５において算出したｈ11（ｖt）をレジスタ１１ａに格納する（ステップＳ１６）。
【００７２】
また、計算器１２は、レジスタ１２ａに格納された（ｈ11（ｖt-1）＋ｈ12（ｖt））を（ｈ11（ｖt-1-1）＋ｈ12（ｖt-1））としてシフトレジスタ１５へ出力する。
【００７３】
次に、計算器１２は、計算器１１から出力されたｈ11（ｖt-1）を受け付け、受け付けたｈ11（ｖt-1）と、ステップＳ１５において算出したｈ12（ｖt）との合計値（ｈ11（ｖt-1）＋ｈ12（ｖt））をレジスタ１２ａに格納する（ステップＳ１７）。
【００７４】
そして、計算器１２から出力された（ｈ11（ｖt-1-1）＋ｈ12（ｖt-1））は、シフトレジスタ１５の入力端に格納される（ステップＳ１８）。
【００７５】
ここで、この時刻においては、ステップＳ１２においてシフトレジスタ１５の入力端に格納された（ｈ11（ｖt-1-1）＋ｈ12（ｖt-1））がシフトレジスタ１５の出力端に現れ、（ｈ11（ｖt-1-(L-2)-1）＋ｈ12（ｖt-(L-2)-1））として計算器１３へ出力される。
【００７６】
計算器１３は、シフトレジスタ１５から出力されたｈ11（ｖt-1-(L-2)-1）＋ｈ12（ｖt-(L-2)-1））を受け付ける。
【００７７】
そして、計算器１３は、受け付けた（ｈ11（ｖt-1-(L-2)-1）＋ｈ12（ｖt-(L-2)-1））と、ステップＳ１５において算出したｈ21（ｖt）とを加算してレジスタ１３ａに格納する（ステップＳ１９）。つまり、計算器１３は、評価値ｗtの一部である（ｈ11（ｖt-L）＋ｈ12（ｖt-L+1）＋ｈ21（ｖt））を算出したことになる。
【００７８】
そして、制御変数ｉが（ｉ＋１）に更新される（ステップＳ２０）。
【００７９】
次に、時刻ｔ＝ｉにおいて計算器１１〜１４のそれぞれは、ラスタスキャンの順番に従って次の画素データｖtを受け付け、受け付けた画素データｖtに相互に異なる複数の関数ｈ11，ｈ12，ｈ21，ｈ22のそれぞれを適用することによってｈ11（ｖt），ｈ12（ｖt），ｈ21（ｖt），ｈ22（ｖt）のそれぞれを算出する（ステップＳ２１）。
【００８０】
そして、計算器１１は、レジスタ１１ａに格納されたｈ11（ｖt）をｈ11（ｖt-1）として計算器１２へ出力するとともに、ステップＳ２１において算出したｈ11（ｖt）をレジスタ１１ａに格納する（ステップＳ２２）。
【００８１】
また、計算器１２は、レジスタ１２ａに格納された（ｈ11（ｖt-1）＋ｈ12（ｖt））を（ｈ11（ｖt-1-1）＋ｈ12（ｖt-1））としてシフトレジスタ１５へ出力する。
【００８２】
次に、計算器１２は、計算器１１から出力されたｈ11（ｖt-1）を受け付け、受け付けたｈ11（ｖt-1）と、ステップＳ２１において算出したｈ12（ｖt）との合計値（ｈ11（ｖt-1）＋ｈ12（ｖt））をレジスタ１２ａに格納する（ステップＳ２３）。
【００８３】
そして、計算器１２から出力された（ｈ11（ｖt-1-1）＋ｈ12（ｖt-1））は、シフトレジスタ１５の入力端に格納される（ステップＳ２４）。
【００８４】
ここで、この時刻においても、ステップＳ１２においてシフトレジスタ１５の入力端に格納された（ｈ11（ｖt-1-1）＋ｈ12（ｖt-1））がシフトレジスタ１５の出力端に現れ、（ｈ11（ｖt-1-(L-2)-1）＋ｈ12（ｖt-(L-2)-1））として計算器１３へ出力される。
【００８５】
計算器１３は、シフトレジスタ１５から出力されたｈ11（ｖt-1-(L-2)-1）＋ｈ12（ｖt-(L-2)-1））を受け付ける。
【００８６】
そして、計算器１３は、レジスタ１３ａに格納された（ｈ11（ｖt-1-(L-2)-1）＋ｈ12（ｖt-(L-2)-1）＋ｈ21（ｖt））を、（ｈ11（ｖt-1-(L-2)-1-1）＋ｈ12（ｖt-(L-2)-1-1）＋ｈ21（ｖt-1））として計算器１４へ出力する。
【００８７】
それとともに、計算器１３は、受け付けた（ｈ11（ｖt-1-(L-2)-1）＋ｈ12（ｖt-(L-2)-1））と、ステップＳ２１において算出したｈ21（ｖt）とを加算してレジスタ１３ａに格納する（ステップＳ２５）。
【００８８】
次に、計算器１４は、計算器１３から出力された（ｈ11（ｖt-1-(L-2)-1-1）＋ｈ12（ｖt-(L-2)-1-1）＋ｈ21（ｖt-1））を受け付ける。
【００８９】
そして、計算器１４は、受け付けた（ｈ11（ｖt-1-(L-2)-1-1）＋ｈ12（ｖt-(L-2)-1-1）＋ｈ21（ｖt-1））と、ステップＳ２１において算出したｈ22（ｖt）とを加算することにより、評価値ｗt＝（ｈ11（ｖt-L-1）＋ｈ12（ｖt-L）＋ｈ21（ｖt-1）＋ｈ22（ｖt））を算出して出力する（ステップＳ２６）。
【００９０】
上述した動作フローでは、１つの評価値ｗtが算出されるまでの動作について説明したが、実際には、１つの評価値ｗtを算出する動作がウインドウの位置毎に並行して実行されている。つまり、上述したステップＳ２０〜Ｓ２６の動作が繰り返されることにより、時刻ｔ＝（Ｌ＋２）以降、画素データｖtが受け付けられる度に、１つの評価値ｗtが算出されて出力されていくことになる。
【００９１】
このように本実施形態において計算装置１０は、画像を構成する複数の画素のそれぞれを示す複数の画素データのそれぞれをラスタスキャンの順番に従って１つずつ受け付け、受け付けた画素データに複数の関数のそれぞれを適用することによって複数の値のそれぞれを算出し、ウインドウに含まれる複数の画素のいずれかを示す画素データに、複数の関数のうち当該画素の当該ウインドウ内の位置に応じた関数を適用した値が算出される度に、算出された値を加算していくことにより、当該ウインドウの評価値を算出する。
【００９２】
これにより、評価値ｗtを算出するために、加算器のツリーのような大域的構造を計算装置に適用する必要がない。そのため、１つの評価値ｗtを算出するまでの時間は、ウインドウの大きさによらず、画素データｖtを受け付けてから一定（常に加算器１つ分）の遅延となる。
【００９３】
また、計算装置の構造を単純化することができる。そのため、ＦＰＧＡ等のコンフィギュレーション変更によってウインドウの大きさを変える場合には、設計上の単位構造の繰り返しを延長、縮小および接続替えするだけで済み、再設計や最適化にかかる手間が抑制される。これにより、ＦＰＧＡ等のプログラマブルロジック部品で計算装置を構築することによる柔軟性を迅速に発揮させることができる。
【００９４】
さらに、コンフィギュレーションを変更することなくウインドウの大きさを変更する（動的変更を行う）場合でも、配線の変更の影響範囲を局所化することができる。そのため、配線を切り替える手順が単純化され、ＦＰＧＡ等への収容効率が高くなる。
【００９５】
従って、ウインドウを用いて画像の評価値を算出する際に、処理時間の増大を回避しつつ、ウインドウの大きさの変更に容易に対応することができる。
【符号の説明】
【００９６】
１０    計算装置
１１〜１４    計算器
１１ａ〜１４ａ    レジスタ
１５    シフトレジスタ
【図１】
2012118920.tif 000003
【図２】
2012118920.tif 000004
【図４】
2012118920.tif 000005
【図５】
2012118920.tif 000006
【図３】
2012118920.tif 000007