(57)【要約】【課題】  視差量を求める際のコストの算出においてノイズの影響に応じた重み情報を用いることで、ノイズの影響を適切に抑止したステレオマッチングを行う画像処理装置、画像処理方法及びプログラム等を提供すること。【解決手段】  画像処理装置１００は、第１、第２の画像に対するセンサス変換の結果の比較処理に基づいて、比較結果情報を求めるセンサス処理部１１０と、重み情報を設定する重み設定部１２０と、比較結果情報と重み情報に基づいてコストを算出するコスト算出部１３０と、コストに基づいて視差量を求める視差量決定部１４０を含み、重み設定部１２０は、複数の周辺画素のうち、ノイズによる影響が大きいと判断される周辺画素に対して、コストへの寄与度が小さい第１の重みを設定し、ノイズによる影響が小さいと判断される周辺画素に対して、寄与度が大きい第２の重みを設定する。【選択図】      図１
2015162156.tif 000002
【特許請求の範囲】
【請求項１】
第１の画像と第２の画像に対するステレオマッチング処理において、前記第１の画像及び前記第２の画像に対してセンサス変換を行い、前記第１の画像の前記センサス変換の結果と前記第２の画像の前記センサス変換の結果との比較処理に基づいて、比較結果情報を求めるセンサス処理部と、
コストの算出に用いられる重み情報を設定する重み設定部と、
前記比較結果情報と、前記重み情報に基づいて、注目画素での前記コストを算出するコスト算出部と、
前記コストに基づいて、前記注目画素での視差量を求める視差量決定部と、
を含み、
前記重み設定部は、
前記第１の画像及び前記第２の画像内の所定領域における、前記注目画素の周辺の複数の周辺画素のうち、ノイズによる影響が大きいと判断される前記周辺画素に対して、前記コストへの寄与度が小さい第１の重みを設定し、
複数の前記周辺画素のうち、前記ノイズによる影響が小さいと判断される前記周辺画素に対して、前記コストへの寄与度が大きい第２の重みを設定することを特徴とする画像処理装置。
【請求項２】
請求項１において、
前記コスト算出部は、
前記比較結果情報と、前記重み情報と、前記コストとを対応付ける変換テーブルを参照して前記コストを算出することを特徴とする画像処理装置。
【請求項３】
請求項１又は２において、
前記重み設定部は、
前記注目画素と前記周辺画素の差分値を求め、求めた前記差分値に基づいて前記ノイズの影響を判定して前記重み情報を設定することを特徴とする画像処理装置。
【請求項４】
請求項３において、
前記重み設定部は、
前記第１の画像の前記周辺画素と前記注目画素の前記差分値と所与の閾値との比較結果、及び、前記第２の画像の前記周辺画素と前記注目画素の前記差分値と前記所与の閾値の比較結果に基づいて、前記周辺画素に対する前記重み情報を設定することを特徴とする画像処理装置。
【請求項５】
請求項４において、
前記重み設定部は、
前記差分値との比較処理に用いられる前記所与の閾値を、前記ノイズに応じて設定することを特徴とする画像処理装置。
【請求項６】
請求項４又は５において、
前記重み設定部は、
前記第１の画像の前記周辺画素と前記注目画素の前記差分値と、前記第２の画像の前記周辺画素と前記注目画素の前記差分値のうち、少なくとも一方が前記所与の閾値以下の場合に、前記周辺画素に対して前記第１の重みを設定することを特徴とする画像処理装置。
【請求項７】
請求項１乃至６のいずれかにおいて、
前記センサス処理部は、
前記比較処理の結果を数値に変換して前記比較結果情報を取得することを特徴とする画像処理装置。
【請求項８】
請求項１乃至７のいずれかにおいて、
前記重み設定部は、
前記第１の重みとして第１の論理レベルが設定され、前記第２の重みとして前記第１の論理レベルとは異なる第２の論理レベルが設定される重みマスクを、前記重み情報として設定することを特徴とする画像処理装置。
【請求項９】
請求項８において、
前記重み設定部は、
前記第１の画像について、前記第１の重みとして前記第１の論理レベルを設定し、前記第２の重みとして前記第２の論理レベルを設定して、第１の重み情報を求め、
前記第２の画像について、前記第１の重みとして前記第１の論理レベルを設定し、前記第２の重みとして前記第２の論理レベルを設定して、第２の重み情報を求め、
前記第１の重み情報と、前記第２の重み情報による論理演算を行って前記重みマスクを求めることを特徴とする画像処理装置。
【請求項１０】
請求項８又は９において、
前記コスト算出部は、
前記重みマスクの値が前記第１の論理レベルとなる画素では、前記コストの算出処理をスキップすることを特徴とする画像処理装置。
【請求項１１】
請求項８乃至１０のいずれかにおいて、
前記コスト算出部は、
前記比較結果情報により表される値と、前記重みマスクの値の組み合わせに応じて、変換結果が決定される変換テーブルを参照し、前記所定領域において前記周辺画素ごとに求められた変換結果を用いて前記コストを算出することを特徴とする画像処理装置。
【請求項１２】
請求項８乃至１１のいずれかにおいて、
前記コスト算出部は、
前記比較結果情報と、前記重みマスクを用いた前記周辺画素ごとの演算結果を累積した結果に対して、前記第２の論理レベルとなる前記周辺画素の数を用いた平均化処理を行って前記コストを算出することを特徴とする画像処理装置。
【請求項１３】
第１の画像と第２の画像に対するステレオマッチング処理において、前記第１の画像及び前記第２の画像に対してセンサス変換を行い、前記第１の画像の前記センサス変換の結果と前記第２の画像の前記センサス変換の結果との比較処理に基づいて、比較結果情報を求め、
コストの算出に用いられる重み情報を設定し、
前記比較結果情報と、前記重み情報に基づいて、注目画素での前記コストを算出し、
前記コストに基づいて、前記注目画素での視差量を求め、
前記重み情報の設定において、
前記第１の画像及び前記第２の画像内の所定領域における、前記注目画素の周辺の複数の周辺画素のうち、ノイズによる影響が大きいと判断される前記周辺画素に対して、前記コストへの寄与度が小さい第１の重みを設定し、
複数の前記周辺画素のうち、前記ノイズによる影響が小さいと判断される前記周辺画素に対して、前記コストへの寄与度が大きい第２の重みを設定することを特徴とする画像処理方法。
【請求項１４】
第１の画像と第２の画像に対するステレオマッチング処理において、前記第１の画像及び前記第２の画像に対してセンサス変換を行い、前記第１の画像の前記センサス変換の結果と前記第２の画像の前記センサス変換の結果との比較処理に基づいて、比較結果情報を求めるセンサス処理部と、
コストの算出に用いられる重み情報を設定する重み設定部と、
前記比較結果情報と、前記重み情報に基づいて、注目画素での前記コストを算出するコスト算出部と、
前記コストに基づいて、前記注目画素での視差量を求める視差量決定部として、
コンピュータを機能させ、
前記重み設定部は、
前記第１の画像及び前記第２の画像内の所定領域における、前記注目画素の周辺の複数の周辺画素のうち、ノイズによる影響が大きいと判断される前記周辺画素に対して、前記コストへの寄与度が小さい第１の重みを設定し、
複数の前記周辺画素のうち、前記ノイズによる影響が小さいと判断される前記周辺画素に対して、前記コストへの寄与度が大きい第２の重みを設定することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法及びプログラム等に関する。
【背景技術】
【０００２】
画像に基づいてデプス（奥行き情報、距離情報）を求める手法としてステレオマッチングが広く知られている。さらに、特許文献１に開示されているように、ステレオマッチングにおいて、センサス変換を行う手法が知られている。また、非特許文献１にもセンサス変換の手法が詳細に開示されている。
【０００３】
センサス変換では、注目画素と周辺画素の大小関係に応じて値（ビットデータ）を付与する。しかし、画像の平坦領域では、画素値の変化が小さく、注目画素と周辺画素の差分値も比較的小さくなる。そのため、何らかのノイズが生じた場合、上記大小関係が容易に逆転する可能性があり、処理精度が低下してしまう。
【０００４】
従来のセンサス変換が注目画素と周辺画素との差分の大小関係に応じて０か１を付与するのに対して、非特許文献２では、差分がノイズバッファ内にある場合にも新たにビットデータ（００）を付与し、ハミング距離を算出する手法が開示されている。非特許文献２では、上記手法により平坦領域におけるノイズの影響を抑えることが出来るとしている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００３−１６４２７号公報
【非特許文献】
【０００６】
【非特許文献１】Ramin Zabih and John Woodfill, "Non-parametric Local Transforms for Computing Visual Correspondence", LectureNotes in Computer Science, Vol. 801, Computer Vision-ECCV '94
【非特許文献２】Zucheul Lee他 "Local Disparity Estimation with Three-Moded Cross Census and Advanced Support Weight"
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１や非特許文献１等の従来からのセンサス変換は、上述したようにノイズの影響を抑止することが難しい。非特許文献２では、ノイズバッファ内の場合に新たなビットデータ（００）を付与し、ノイズバッファ内でなかった場合のビットデータ（１０又は０１）と分けて処理を行うことでノイズの影響を抑止するとしている。しかし非特許文献２のように、ビットデータの割り当てでノイズに対応するのでは処理の柔軟性が欠ける。例えば、画像に撮像されている被写体や、撮像環境等が変化すれば、発生するノイズの傾向も変化するが、非特許文献２では画一的な対応しかできない。
【０００８】
本発明の幾つかの態様によれば、ノイズの影響に応じた重み情報を設定し、視差量を求める際のコストの算出において当該重み情報を用いることで、ノイズの影響を適切に抑止したステレオマッチングを行う画像処理装置、画像処理方法及びプログラム等を提供することができる。
【課題を解決するための手段】
【０００９】
本発明の一態様は、第１の画像と第２の画像に対するステレオマッチング処理において、前記第１の画像及び前記第２の画像に対してセンサス変換を行い、前記第１の画像の前記センサス変換の結果と前記第２の画像の前記センサス変換の結果との比較処理に基づいて、比較結果情報を求めるセンサス処理部と、コストの算出に用いられる重み情報を設定する重み設定部と、前記比較結果情報と、前記重み情報に基づいて、注目画素での前記コストを算出するコスト算出部と、前記コストに基づいて、前記注目画素での視差量を求める視差量決定部と、を含み、前記重み設定部は、前記第１の画像及び前記第２の画像内の所定領域における、前記注目画素の周辺の複数の周辺画素のうち、ノイズによる影響が大きいと判断される前記周辺画素に対して、前記コストへの寄与度が小さい第１の重みを設定し、複数の前記周辺画素のうち、前記ノイズによる影響が小さいと判断される前記周辺画素に対して、前記コストへの寄与度が大きい第２の重みを設定する画像処理装置に関係する。
【００１０】
本発明の一態様では、ノイズによる影響を考慮して重み情報を設定し、当該重み情報を用いてステレオマッチングの視差量決定におけるコストを求める。これにより、ノイズの影響が大きい周辺画素の寄与度を低くできるため、ノイズに対するロバスト性を高くすることや、上記寄与度を柔軟に設定すること等が可能になる。
【００１１】
また、本発明の一態様では、前記コスト算出部は、前記比較結果情報と、前記重み情報と、前記コストとを対応付ける変換テーブルを参照して前記コストを算出してもよい。
【００１２】
これにより、コストの算出に変換テーブルを用いることが可能になる。
【００１３】
また、本発明の一態様では、前記重み設定部は、前記注目画素と前記周辺画素の差分値を求め、求めた前記差分値に基づいて前記ノイズの影響を判定して前記重み情報を設定してもよい。
【００１４】
これにより、注目画素と周辺画素の差分値に基づいてノイズの影響の判定や、重み情報の設定を行うこと等が可能になる。
【００１５】
また、本発明の一態様では、前記重み設定部は、前記第１の画像の前記周辺画素と前記注目画素の前記差分値と所与の閾値との比較結果、及び、前記第２の画像の前記周辺画素と前記注目画素の前記差分値と前記所与の閾値の比較結果に基づいて、前記周辺画素に対する前記重み情報を設定してもよい。
【００１６】
これにより、ステレオマッチングに用いる複数の画像のそれぞれについて、注目画素と周辺画素の差分値と、閾値との比較処理を行い、その比較結果から重み情報を設定すること等が可能になる。
【００１７】
また、本発明の一態様では、前記重み設定部は、前記差分値との比較処理に用いられる前記所与の閾値を、前記ノイズに応じて設定してもよい。
【００１８】
これにより、ノイズの状況に応じた重みを設定すること等が可能になる。
【００１９】
また、本発明の一態様では、前記重み設定部は、前記第１の画像の前記周辺画素と前記注目画素の前記差分値と、前記第２の画像の前記周辺画素と前記注目画素の前記差分値のうち、少なくとも一方が前記所与の閾値以下の場合に、前記周辺画素に対して前記第１の重みを設定してもよい。
【００２０】
これにより、複数の画像の少なくとも１つにおいて、所与の周辺画素でのノイズの影響が大きいと判定されたのであれば、当該周辺画素での重みを寄与度が相対的に小さい第１の重みとすること等が可能になる。
【００２１】
また、本発明の一態様では、前記センサス処理部は、前記比較処理の結果を数値に変換して前記比較結果情報を取得してもよい。
【００２２】
これにより、複数の画像のセンサス変換の比較結果を、ビットデータではなく数値データとして取得すること等が可能になる。
【００２３】
また、本発明の一態様では、前記重み設定部は、前記第１の重みとして第１の論理レベルが設定され、前記第２の重みとして前記第１の論理レベルとは異なる第２の論理レベルが設定される重みマスクを、前記重み情報として設定してもよい。
【００２４】
これにより、重み情報として論理レベルにより表されるデータ（ビットデータ）を用いること等が可能になる。
【００２５】
また、本発明の一態様では、前記重み設定部は、前記第１の画像について、前記第１の重みとして前記第１の論理レベルを設定し、前記第２の重みとして前記第２の論理レベルを設定して、第１の重み情報を求め、前記第２の画像について、前記第１の重みとして前記第１の論理レベルを設定し、前記第２の重みとして前記第２の論理レベルを設定して、第２の重み情報を求め、前記第１の重み情報と、前記第２の重み情報による論理演算を行って前記重みマスクを求めてもよい。
【００２６】
これにより、複数の画像のそれぞれで、論理レベルにより表されるデータ（ビットデータ）による重み情報を求めておくことで、コスト算出に用いる重み情報（重みマスク）をそれらの論理演算により容易に求めること等が可能になる。
【００２７】
また、本発明の一態様では、前記コスト算出部は、前記重みマスクの値が前記第１の論理レベルとなる画素では、前記コストの算出処理をスキップしてもよい。
【００２８】
これにより、コスト算出における演算負荷（処理負荷）を軽減することや、ハードウェアの構成を簡略化すること等が可能になる。
【００２９】
また、本発明の一態様では、前記コスト算出部は、前記比較結果情報により表される値と、前記重みマスクの値の組み合わせに応じて、変換結果が決定される変換テーブルを参照し、前記所定領域において前記周辺画素ごとに求められた変換結果を用いて前記コストを算出してもよい。
【００３０】
これにより、少なくとも重み情報についてはビットデータが対応付けられた変換テーブルを用いて、コストを算出すること等が可能になる。
【００３１】
また、本発明の一態様では、前記コスト算出部は、前記比較結果情報と、前記重みマスクを用いた前記周辺画素ごとの演算結果を累積した結果に対して、前記第２の論理レベルとなる前記周辺画素の数を用いた平均化処理を行って前記コストを算出してもよい。
【００３２】
これにより、ノイズの影響が小さいと判定された画素（有効画素）の数を考慮したコスト算出処理を行うこと等が可能になる。
【００３３】
また、本発明の他の態様は、第１の画像と第２の画像に対するステレオマッチング処理において、前記第１の画像及び前記第２の画像に対してセンサス変換を行い、前記第１の画像の前記センサス変換の結果と前記第２の画像の前記センサス変換の結果との比較処理に基づいて、比較結果情報を求め、コストの算出に用いられる重み情報を設定し、前記比較結果情報と、前記重み情報に基づいて、注目画素での前記コストを算出し、前記コストに基づいて、前記注目画素での視差量を求め、前記重み情報の設定において、前記第１の画像及び前記第２の画像内の所定領域における、前記注目画素の周辺の複数の周辺画素のうち、ノイズによる影響が大きいと判断される前記周辺画素に対して、前記コストへの寄与度が小さい第１の重みを設定し、複数の前記周辺画素のうち、前記ノイズによる影響が小さいと判断される前記周辺画素に対して、前記コストへの寄与度が大きい第２の重みを設定する画像処理方法に関係する。
【００３４】
また、本発明の他の態様は、第１の画像と第２の画像に対するステレオマッチング処理において、前記第１の画像及び前記第２の画像に対してセンサス変換を行い、前記第１の画像の前記センサス変換の結果と前記第２の画像の前記センサス変換の結果との比較処理に基づいて、比較結果情報を求めるセンサス処理部と、コストの算出に用いられる重み情報を設定する重み設定部と、前記比較結果情報と、前記重み情報に基づいて、注目画素での前記コストを算出するコスト算出部と、前記コストに基づいて、前記注目画素での視差量を求める視差量決定部として、コンピュータを機能させ、前記重み設定部は、前記第１の画像及び前記第２の画像内の所定領域における、前記注目画素の周辺の複数の周辺画素のうち、ノイズによる影響が大きいと判断される前記周辺画素に対して、前記コストへの寄与度が小さい第１の重みを設定し、複数の前記周辺画素のうち、前記ノイズによる影響が小さいと判断される前記周辺画素に対して、前記コストへの寄与度が大きい第２の重みを設定するプログラムに関係する。
【図面の簡単な説明】
【００３５】
【図１】本実施形態に係る画像処理装置の構成例。
【図２】本実施形態に係る画像処理装置の詳細な構成例。
【図３】第１の実施形態の処理を説明するフローチャート。
【図４】画像領域のシフト手法を説明する図。
【図５】センサス変換の手法を説明する図。
【図６】センサス結果比較部の構成例。
【図７】センサスビット変換手法の説明図。
【図８】第１の実施形態の重み設定処理を説明する図。
【図９】視差量決定手法の説明図。
【図１０】第２の実施形態の処理を説明するフローチャート。
【図１１】重み設定部の構成例。
【図１２】第２の実施形態のコスト算出処理を説明する図。
【図１３】第３の実施形態の処理を説明するフローチャート。
【図１４】第３の実施形態のコスト算出処理を説明するフローチャート。
【図１５】第４の実施形態の処理を説明するフローチャート。
【図１６】第４の実施形態の重み設定処理を説明する図。
【図１７】第４の実施形態のコスト算出処理を説明する図。
【図１８】第５の実施形態の処理を説明するフローチャート。
【図１９】第５の実施形態の重み設定処理を説明する図。
【発明を実施するための形態】
【００３６】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３７】
１．本実施形態の手法
まず本実施形態の手法について説明する。上述したように、ステレオマッチングにおいてセンサス変換を用いる手法が知られている。センサス変換では、画素値そのものではなく、注目画素に対する周辺画素の大小関係を用いて処理を行う。そのため、明るさの変化等による影響を抑止し、精度よくマッチングを行うことができる。
【００３８】
しかし、画像の平坦領域を処理対象とすると、注目画素と周辺画素の画素値の差分が小さくなる。例えば、後述する図５の入力画像では、丸が付けられた注目画素と、注目画素の左隣の周辺画素を比べた場合、画素値の差が１しかない。ここでは周辺画素の画素値≧注目画素の画素値（１２５）の周辺画素には０というビットデータを付与し、そうでなければ１を付与するため、上記周辺画素には０が付与されている。ここで、当該周辺画素の画素値が、何らかのノイズにより２だけ減少してしまった場合、上記大小関係が逆転し、付与されるビットデータが１になってしまう。
【００３９】
つまり、平坦領域のように画素値の差が元々小さい領域は、ノイズの影響を受けやすく、処理精度を低下させる要因となる。一方、さらに左隣の周辺画素（画素値＝１０）のように、画素値の差が十分大きければ、多少のノイズが発生していたとしても、周辺画素の画素値＜注目画素の画素値という関係は変化せず、センサス変換により得られる１というビットデータは信頼できるものである。
【００４０】
非特許文献２は以上の点を考慮したものであり、ノイズバッファ内にある（ノイズの影響が大きいと判断される）周辺画素に付与するビットデータを００とし、ノイズバッファ内にある周辺画素に付与するビットデータ（０１又は１０）と区別することで、ノイズの影響を抑止するというものである。
【００４１】
しかし、非特許文献２の手法であっても、ノイズによる影響の抑止効果は十分とは言えない。例えば、ステレオマッチング用の画像が取得される環境は種々変化しうるため、それに応じてノイズの量や傾向も変化する。具体的には、被写体が風景か、人物か、内視鏡画像のような生体かという違いでノイズは変化する。或いは、光源が太陽光なのか、照明光なのか、昼間の撮影なのか夜間撮影なのかという違いもノイズに影響するし、撮像したカメラのレンズや撮像素子等の特性によっても違いは生じる。
【００４２】
画像の特性や、それに伴うノイズの特性が変化すれば、適切なステレオマッチングの処理も変化する。例えば、ノイズの影響を受けやすい画素については処理から完全に除外してしまうのがよいのか、処理には利用するが寄与度（例えばコスト算出への寄与度）を相対的に下げるのがよいのか、といった条件は状況に応じて変えることが望ましい。さらにいえば、寄与度を相対的に下げる場合、寄与度が相対的に高い画素（ノイズの影響を受けにくい画素）との相対関係をどの程度にしたらよいか、という設定も状況に応じて最適解は変化するはずである。非特許文献２の手法はこの点を考慮しておらず、状況に応じた柔軟な処理が困難である。
【００４３】
そこで本出願人は、ノイズの影響を受けやすい画素と受けにくい画素を区別した上で、環境変化等に応じて柔軟な設定が可能な手法を提案する。具体的には、本実施形態に係る画像処理装置１００は図１に示したように、第１の画像と第２の画像に対するステレオマッチング処理において、第１の画像及び第２の画像に対してセンサス変換を行い、第１の画像のセンサス変換の結果と第２の画像のセンサス変換の結果との比較処理に基づいて、比較結果情報を求めるセンサス処理部１１０と、コストの算出に用いられる重み情報を設定する重み設定部１２０と、比較結果情報と重み情報に基づいて、注目画素でのコストを算出するコスト算出部１３０と、コストに基づいて、注目画素での視差量を求める視差量決定部１４０を含む。そして、重み設定部１２０は、第１の画像及び第２の画像内の所定領域における、注目画素の周辺の複数の周辺画素のうち、ノイズによる影響が大きいと判断される周辺画素に対して、コストへの寄与度が小さい第１の重みを設定し、複数の周辺画素のうち、ノイズによる影響が小さいと判断される周辺画素に対して、コストへの寄与度が大きい第２の重みを設定する。
【００４４】
ここで、第１の画像、第２の画像はステレオマッチングに用いられる左画像と右画像を表す。以下では、第１の画像を左画像とし、当該左画像を基準にして、第２の画像（右画像）をシフトさせる例について説明するが、これには限定されない。
【００４５】
また、注目画素とは、第１の画像のうちの１画素であり、所定領域とは注目画素を含む（狭義には中心とする）所定の形状、面積の領域であって、例えばＷ画素×Ｗ画素の領域となる。図５の例であれば、所定領域とは注目画素を中心とする５×５の正方形の領域である。また、周辺画素とは、上記所定領域に含まれ、且つ、注目画素でない画素である。
【００４６】
ステレオマッチングでは、一方の画像に設定された注目画素が、他方の画像においてどの程度ずれているか（どの程度の視差量があるか）を求める。そのため、図４を用いて後述するように、左画像で１つの注目画素を設定したら、右画像では所与のシフト量だけシフトされた画素を注目画素とし、当該右画像の注目画素を基準に所定領域の設定する。そして、当該シフト量を所与の範囲、所与の間隔で変化させて、複数のシフト量のうちコストが最適となるシフト量を視差量として求める。つまり「注目画素でのコスト」とは、単一の値ではなく、シフト量の数だけ求められることが想定される。例えば、シフト量としてＮ通りの量が設定されている場合、左画像の１つの注目画素について、右画像ではＮ通りの注目画素、所定領域が設定され、Ｎ個のコスト値が例えば図９のグラフのように取得されることになる。
【００４７】
なお、ステレオマッチングでは画像中の複数の画素（狭義には全画素）についての視差量を求めることが一般的であるため、左画像の注目画素についても更新処理を行う必要がある。つまり実際には、１つのコスト値を求める処理を、注目画素についてのループ分、シフト量についてのループ分実行する必要がある。例えば左右画像がそれぞれＭ画素の画像であり、且つその全てについて視差量を求めるのであれば、Ｍ×Ｎ回のコスト算出処理が実行されることになる。
【００４８】
また、左右画像それぞれのセンサス変換結果を比較した比較結果情報とは、図７のＸＯＲ演算出力のように、従来手法と同様の情報であってもよいし、図７のセンサスビット変換結果のように、変換パラメータにより変換された後の情報でもよい。従来手法と同様の情報とは、狭義には０，１のビットデータの集合であり、変換後の情報とは、狭義には数値データの集合である。
【００４９】
重み情報とは、コスト計算に用いられるものであり、例えば周辺画素のそれぞれについて所与の重みが付与された情報である。例えば、図８に示したように第１の重み＝１、第２の重み＝２．３という数値データを設定し、各周辺画素に対して１又は２．３が割り当てられた情報であってもよい。或いは、第１，第２の重みはビットデータであってもよく、図１２を用いて後述するような重みマスクであってもよい。なお、第１，第２の重みはコストの寄与度の大小が第１の重み＜第２の重みとなればよく、第１の重みに割り当てられる数値を、第２の重みに割り当てられる数値よりも小さくする必要はない。
【００５０】
このようにすれば、ノイズによる影響の大小に応じて、重みを設定することが可能になる。つまり、ノイズの影響が大きい画素については、処理への寄与度を相対的に小さくできるため、ノイズの影響を抑止した処理が可能になる。具体的には、ステレオマッチングのコストを算出する際に、注目画素と周辺画素の差分の絶対値が閾値以下であるような、ノイズによりセンサス変換の大小関係が反転しやすい画素のコストへの寄与度を他の画素に比べて低くするため、コストがノイズによって変化しにくくなる。
【００５１】
また、重み情報として図８のように数値データの集合を用いる際にも、図８、図１６に示すようにその数値を任意に設定可能である。そのため、ノイズの影響が大きい画素の情報の処理に対する寄与度を、状況に応じて柔軟に設定することが可能になり、センサス変換を用いたステレオマッチングを精度よく行うことが可能になる。
【００５２】
以下、第１〜第５の実施形態について説明する。第１の実施形態では、センサス変換の比較結果を数値変換する処理、及び、数値データの集合である重み情報を設定する処理を含む本発明の基本的な実施形態を説明する。第２、第３の実施形態では、重み情報として重みマスクを用いる例を説明する。なお、第２の実施形態と第３の実施形態では、重みマスクを用いたコスト算出の処理内容が異なる。第４の実施形態では、重み情報として一旦重みマスクを求め、その後当該重みマスクを数値データに変換する例を説明する。第５の実施形態では、比較結果情報と重み情報をともにビットデータで求め、当該ビットデータの組と画素当たりのコストとを対応付ける変換テーブルを用いてコストを算出する例を説明する。
【００５３】
２．第１の実施形態
図２に第１の実施形態に係る画像処理装置１００の構成例を示す。画像処理装置１００は、画像シフト部１５０と、センサス処理部１１０と、重み設定部１２０と、コスト算出部１３０と、視差量決定部１４０を含む。そして、センサス処理部１１０は、センサス変換部１１１と、センサス結果比較部１１３を含み、重み設定部１２０は、差分算出部１２１と、設定処理部１２３を含む。ただし、画像処理装置１００は、図２の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【００５４】
画像シフト部１５０は、左右画像の一方の画像を設定されたシフト量だけシフトさせる。本実施形態では、右画像をｄ１〜ｄ２の範囲において、所与の間隔（例えば１画素間隔）でシフトさせる例を説明する。
【００５５】
センサス変換部１１１は、左画像と右画像のそれぞれに対してセンサス変換を行う。センサス結果比較部１１３は、左画像に対するセンサス変換の結果と、右画像に対するセンサス変換の結果を比較する。
【００５６】
差分算出部１２１は、左画像と右画像のそれぞれに対して注目画素と周辺画素の差分値を算出する。設定処理部１２３は、算出された差分値に基づいて各周辺画素に対して重みを設定する。以上の各部での処理の詳細については後述する。
【００５７】
図３に本実施形態の処理を説明するフローチャートを示す。なお、図３のフローチャートではまず画像をシフトしてから画素毎にコストを算出し、全てのシフト探索範囲で同処理を行っていくが、図４のように片方の画像領域（左画像の所定領域）に対してもう片方の画像上の領域（右画像の所定領域）をシフトさせてもよい。図４の場合は左を固定し、右をシフトしているが当然、逆でもよい。
【００５８】
また、図３のフローチャートでは全ての画素、シフト量でコストを算出してから、視差を算出しているが、ある画素において全てのシフト量でコストを算出したらその都度視差を算出するとメモリを大きく消費しないで済む。また、図３では不図示であるが、ノイズが多い場合においては事前に前処理としてノイズ低減処理を行なってもよい。
【００５９】
本実施形態の処理が開始されると、まず所与のシフト量の範囲でループ処理を開始する（Ｓ１０１）。ここでは、ｄ１〜ｄ２の範囲で１画素刻みでシフト量を更新していく。そして画像シフト部１５０は、右画像を設定されたシフト量でシフトさせる（Ｓ１０２）。
【００６０】
そして、注目画素のループ処理を開始する（Ｓ１０３）。ここでは、左画像中の全画素を、順次注目画素として設定する。また、Ｓ１０２において右画像のシフトが行われているため、左画像の注目画素が決定されれば、右画像の注目画素も決定できる。
【００６１】
左右画像で注目画素が決定されたら、センサス処理部１１０において比較結果情報を求める処理と、重み設定部１２０において重み情報を設定する処理を行う。具体的には、センサス変換部１１１では、画像シフト部１５０でシフトした画像（右画像）とシフトしていない方の画像（左画像）に対して、図５に示す通り、注目画素周辺Ｗ＊Ｗの周辺画素と注目画素の画素値の大小関係に応じて０または１を各画素に付与し、その結果をＷ＊Ｗ−１の長さのビット列で表現する（Ｓ１０４）。なお、所定領域は必ずしも正方でなくてもよい。
【００６２】
大小関係に対する０、１の付与の仕方はどちらでもよいが、図５では周辺画素の画素値＜注目画素の画素値（＝１２５）ならば１、それ以外は０としている。定義の上では、図５下に示したビット列にするまでがセンサス変換であるが、図５における大小比較画像の状態のままをセンサス変換部１１１の出力としてもよい。その場合、注目画素に相当する画素は無効とすればよい。以降の式や図では分かりやすくするために、センサス変換部１１１の出力が大小比較画像の場合を想定して記載する。
【００６３】
センサス結果比較部１１３は、左右画像のセンサス変換の出力を比較する（Ｓ１０５）。図６にセンサス結果比較部１１３の具体的な構成例を示す。センサス結果比較部１１３は、ＸＯＲ演算部１１３１と、センサスビット変換部１１３２を含む。ＸＯＲ演算部１１３１では、Ｓ１０４で取得されたセンサス変換部１１１の左右画像それぞれの出力を、画素毎或いはビット毎にＸＯＲ（排他的論理和）演算を行う。ＸＯＲ演算を行うため、左画像と右画像でセンサス変換結果の値が等しい画素（或いはビット）では０となり、異なる画素では１となる。
【００６４】
センサスビット変換部１１３２は、下式（１）及び図７が示すように、ＸＯＲ演算部１１３１で出力された画素或いはビット毎の出力に対して、出力が１ならば出力が０の時に比べて大きい値に変換する。下式（１）において、Ｔはセンサスビット変換部１１３２の出力を表し、ｔはＸＯＲ演算部１１３１の出力を表す。また、（ｉ，ｊ）は注目画素のインデックスである。
【数１】
2015162156.tif 000003
【００６５】
図７では、出力が１の場合の変換パラメータγ＝１、出力が０の場合の変換パラメータδ＝−１としたがこれには限定されない。またγやδの値は整数に限らない。変換パラメータは実験的に事前に算出しておくものとする。なお、ここではコストが最小となるシフト量を視差量としているためγ＞δとなるが、コストが最大となるシフト量を視差量とするならばγ＜δとしてもよい。
【００６６】
また、以下ではセンサス処理部１１０の出力である比較結果情報は、センサスビット変換部１１３２の出力である数値データであるものとして説明するが、ＸＯＲ演算部１１３１の出力であるビットデータを比較結果情報としてもよい。
【００６７】
差分算出部１２１は、下式（２）のように注目画素周辺Ｗ＊Ｗの周辺画素と注目画素の画素値の差分の絶対値Ｄｉｆｆを画素毎に算出する（Ｓ１０６）。下式（２）においてＩは画素値を表す。
【数２】
2015162156.tif 000004
【００６８】
そして設定処理部１２３は、下式（３）及び図８で示す通り、差分算出部１２１の出力結果に応じて重みＭを画素毎に設定する（Ｓ１０７）。差分算出部１２１において左右画像の出力の少なくとも一方が閾値以下である場合には、それ以外の場合に比べて小さな値αを重みとする。α及びβは整数に限らない。なお、下式（３）において、diff1、diff2は左右画像それぞれの差分算出部１２１の出力を表す。
【数３】
2015162156.tif 000005
【００６９】
例えば左上の画素（先頭ビット）に着目した場合、右画像の差分絶対値（＝１２０）は閾値Ｔｈ（ここでは１５）より大きいが、左画像の差分絶対値（＝５）が閾値以下であるため、当該画素における重みはα（＝１）とする。一方、その１つ右の画素（２ビット目）では、左画像の差分絶対値（＝１００）も右画像の差分絶対値（＝５５）も閾値より大きいため、当該画素における重みはβ（＝２．３）とする。
【００７０】
重みパラメータα及びβは実験的に事前に算出しておく。また、閾値Ｔｈはノイズ量に応じて決定する。例えば平坦領域における分散などの統計量を参考にしてもよい。またこの統計量を用いて入力画像時点での画素値に応じて閾値を段階的に設けてもよい。
【００７１】
比較結果情報と重み情報が求められたら、コスト算出部１３０は、比較結果情報と重み情報に基づいてコストを算出する。例えば下式（４）に示すように画素毎或いはビット毎に積を取り、領域内画素での結果の総和をコストＣとして算出すればよい。ただし下式（４）では、ｋ＝０且つｌ＝０の時は計算から除く。
【数４】
2015162156.tif 000006
【００７２】
なお、コストは上記のセンサス変換結果を用いる手法と、他の手法を組み合わせて算出してもよい。例えば、画像の画素値より算出したＳＡＤやＳＳＤ、画像の微分結果より算出したＳＡＤやＳＳＤなどと組み合わせてもよい。その際の組み合わせ方は種々考えられるが、例えば下式（５）のように組み合わせてもよい。下式（５）におけるＣ１〜Ｃ３は各手法で算出したコストを表し、γ１〜γ３は実験的に得られたパラメータを表す。複数の手法での算出結果を組み合わせる際に、このパラメータにより各手法で算出したコストのバランスを調整する。
【数５】
2015162156.tif 000007
【００７３】
また、コストに閾値を持たせてもよい。その閾値は各手法で算出したコストそれぞれに対して設けてもよいし、組み合わせた結果に対して設けてもよい。一例を下式（６）、（７）に示す。下式（６）が各手法で算出したコストごとに閾値を設ける例であり、τ１〜τ３は各手法で算出したコストに対する閾値を表す。下式（７）が組み合わせた結果に対して閾値を設ける例であり、τは全体のコストに対する閾値を表す。なお。ｍｉｎ（ｐ，ｑ）はｐとｑの小さい方を表し、下式（６）では、各手法で求められたコストが、それぞれ対応する閾値を超えないように制限を設けていることになる。同様に、下式（７）では、全体としてのコストが閾値を超えないように制限を設けている。
【数６】
2015162156.tif 000008
【数７】
2015162156.tif 000009
【００７４】
全ての注目画素に対してＳ１０３〜Ｓ１０８の処理が行われたら、Ｓ１０３で開始した注目画素ループを終了する（Ｓ１０９）。また、Ｓ１０２でシフト量を更新しつつ、全てのシフト量でＳ１０２〜Ｓ１０９の処理が行われたら、Ｓ１０１で開始されたシフト量ループを終了する（Ｓ１１０）。
【００７５】
ループ処理が終了した段階で、画像上の全ての画素に対して、それぞれｄ１〜ｄ２のシフト量の範囲でのコストが計算されたことになる。そこで視差量決定部１４０は、図９に示すようにコスト算出部１３０においてシフト探索範囲内（図３、図９ではｄ１〜ｄ２）で算出したコストを、画素毎に比較し、最も小さいコストを持つシフト量Ｄを該当画素の視差量として算出する。
【００７６】
以上の本実施形態では、重み設定部１２０は、注目画素と周辺画素の差分値を求め、求めた差分値に基づいてノイズの影響を判定して重み情報を設定する。
【００７７】
具体的には上述したように、重み設定部１２０は差分算出部１２１を含み、差分算出部１２１での算出結果に基づいて重みを設定する。なお、上述の例では差分絶対値を用いたが、単純な差分値（正負の値を含む）ものであってもよい。これにより、画素値の差分値から、各周辺画素がノイズの影響の受けやすいか否かを判定することが可能になる。
【００７８】
また、重み設定部１２０は、第１の画像の周辺画素と注目画素の差分値と所与の閾値との比較結果、及び、第２の画像の周辺画素と注目画素の差分値と所与の閾値の比較結果に基づいて、周辺画素に対する重み情報を設定してもよい。
【００７９】
これにより、左右画像のそれぞれに対して、差分値に対する閾値処理により、重みを設定することが可能になる。
【００８０】
具体的には、重み設定部１２０は、第１の画像の周辺画素と注目画素の差分値と、第２の画像の周辺画素と注目画素の差分値のうち、少なくとも一方が所与の閾値以下の場合に、周辺画素に対して第１の重み（コストに対する寄与度が小さい重み）を設定する。
【００８１】
左右画像はそもそも撮像時の撮像部の位置が異なるものであるし、さらに左右画像のうち一方は所与のシフト量だけシフトされるため、所定範囲内での各周辺画素でのノイズの影響の大小は、左画像と右画像では異なるはずである。そして、比較結果情報は左右画像のセンサス変換結果を比較して求める以上、所与の位置の周辺画素での比較結果情報の演算には左右画像の両方が用いられる。つまり、所与の周辺画素での比較結果情報が信頼できるか否かは、左右画像の両方でノイズの影響が少ないと判定されるか否かで決定するとよい。逆に言えば、少なくとも一方でノイズの影響が大きいのであれば、当該周辺画素についてはコストに対する寄与度を下げる、すなわち第１の重みを設定するほうが、ノイズに対するロバスト性を高めることが可能である。
【００８２】
なお、ここでは差分絶対値を想定しているため、差分値≦閾値Ｔｈの場合にノイズの影響が大きいと判定している。つまり負の差分値も考慮するのであれば、負の閾値Ｔｈ２も設定しておき、差分値＜０であれば、差分値≧Ｔｈ２の場合にノイズの影響が大きいと判定することになる。
【００８３】
また、重み設定部１２０は、差分値との比較処理に用いられる所与の閾値を、ノイズに応じて設定してもよい。
【００８４】
これにより、ノイズに応じた閾値設定が可能になる。例えば、ノイズが多い環境では、注目画素と周辺画素の差分値がある程度大きくても、ノイズにより大小関係が逆転してしまう可能性がある。逆にノイズが少ない環境では、注目画素と周辺画素の差分値があまり大きくなくても、ノイズにより大小関係が逆転してしまう可能性が低い。つまり、閾値は一定値にするのではなく、想定されるノイズの状況に応じて変更することで、柔軟な処理を行うことが可能になる。
【００８５】
また、センサス処理部１１０は、比較処理の結果を数値に変換して比較結果情報を取得してもよい。
【００８６】
具体的には、上述したようにＸＯＲ演算部１１３１での演算結果を、センサスビット変換部１１３２において、変換パラメータγ、δを用いて変換すればよい。
【００８７】
非特許文献２では、左右画像を比較してハミング距離を算出した結果、所与の周辺画素において、注目画素との差分が左右画像の両方でノイズバッファ内にある場合と、左右画像の両方で同符号のノイズバッファ外にある場合とで、該当画素がハミング距離にもたらす値はどちらの場合においても０である。つまり、ノイズバッファ内か否かを判定し、付与するビットデータを００とするか，０１又は１０とするかを分けているにもかかわらず、左右画像で付与されたビットデータが等しい場合、コストに対する寄与度に差異がなくなってしまう。そのため、ノイズによってハミング距離へ影響を与える画素とそうでない画素の切り分けが出来ないおそれがある。
【００８８】
その点、上述したようにセンサスビット変換部１１３２による変換処理を行った上で重み情報との積を取れば、左右画像に差がない画素についても値は０にならず、当該画素はコストに寄与することになる。特に本実施形態では、ノイズの影響を考慮して重み情報を設定しているため、左右画像に差がない画素についても、ノイズの影響に応じて寄与度に差異を設けることが可能である。図７、図８の例であれば、左右画像に差がない画素からはコストを減少させる値が求められることになるが、ノイズの影響が小さければ当該値は−２．３となりコスト減少効果が大きく、ノイズの影響が大きければ当該値は−１となりコスト減少効果が小さいという違いが生じている。
【００８９】
また、本実施形態の画像処理装置１００等は、その処理の一部または大部分をプログラムにより実現してもよい。この場合には、ＣＰＵ等のプロセッサがプログラムを実行することで、本実施形態の画像処理装置１００等が実現される。具体的には、情報記憶装置に記憶されたプログラムが読み出され、読み出されたプログラムをＣＰＵ等のプロセッサが実行する。ここで、情報記憶装置（コンピュータにより読み取り可能な装置）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＤＶＤ、ＣＤ等）、ＨＤＤ（ハードディスクドライブ）、或いはメモリ（カード型メモリ、ＲＯＭ等）などにより実現できる。そして、ＣＰＵ等のプロセッサは、情報記憶装置に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち、情報記憶装置には、本実施形態の各部としてコンピュータ（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００９０】
また、本実施形態の画像処理装置１００等は、プロセッサとメモリを含んでもよい。ここでのプロセッサは、例えばＣＰＵ（Central Processing Unit）であってもよい。ただしプロセッサはＣＰＵに限定されるものではなく、ＧＰＵ（Graphics Processing Unit）、或いはＤＳＰ（Digital Signal Processor）等、各種のプロセッサを用いることが可能である。またプロセッサはＡＳＩＣによるハードウェア回路でもよい。また、メモリはコンピュータにより読み取り可能な命令を格納するものであり、当該命令がプロセッサにより実行されることで、本実施形態に係る画像処理装置１００等の各部が実現されることになる。ここでのメモリは、ＳＲＡＭ、ＤＲＡＭなどの半導体メモリであってもよいし、レジスタやハードディスク等でもよい。また、ここでの命令は、プログラムを構成する命令セットの命令でもよいし、プロセッサのハードウェア回路に対して動作を指示する命令であってもよい。
【００９１】
また、本実施形態は種々の変形実施が可能である。例えば、重みに０やそれに近い値が含まれる場合、例えば平坦領域などのノイズの影響を受けやすいところでどのシフト量においてもコストがほぼ０となる場合がある。その場合には視差マップ算出後、例えばBelief Propagationなどの伝播処理を行ってそういった領域に対して補間してもよい。また、この補間処理は第２〜第５の実施形態において実行してもよい。
【００９２】
３．第２の実施形態
図１０に第２の実施形態の処理を説明するフローチャートを示す。図１０のＳ２０１〜２０６、Ｓ２０９〜Ｓ２１２は、図３のＳ１０１〜Ｓ１０６、Ｓ１０８〜Ｓ１１１と同様であるため詳細な説明は省略する。
【００９３】
図１１に本実施形態に係る重み設定部１２０の構成例を示す。重み設定部１２０は、差分算出部１２１と、差分判定部１２２と、設定処理部１２３を含む。
【００９４】
Ｓ２０６において、差分算出部１２１は左右画像のそれぞれに対して、注目画素と周辺画素の差分絶対値を算出する。差分判定部１２２は、下式（８）に示す通り、左右画像それぞれ対して差分算出部１２１の出力結果が閾値以上ならば１を、そうでないならば０を画素毎に出力する（Ｓ２０７）。ただし、第１の実施形態と等価にするために、出力結果が閾値と等しい場合には０としてもよい。下式（８）においてdiffthは差分判定部１２２の出力を表す。
【数８】
2015162156.tif 000010
【００９５】
差分判定部１２２では、判定結果を左右それぞれ１ビット画像として出力してもよいし、センサス変換において大小比較画像からビット列にするように、左右それぞれＷ＊Ｗ−１ビットのビット列として出力してもよい。第１の実施形態と同様、以降の式や図では分かりやすくするために、センサス変換部１１１の出力及び差分判定部１２２での判定結果が画像である場合を想定して記載する。
【００９６】
設定処理部１２３は、差分判定部１２２の出力結果である左右の１ビット画像或いはＷ＊Ｗ−１ビットのビット列から重みマスクを作成する（Ｓ２０８）。下式（９）に示す通り、重みマスクの作成方法は左右の１ビット画像を画素毎に、或いはＷ＊Ｗ−１ビットのビット列同士のＡＮＤを取る論理演算を行えばよい。下式（９）において、diffth1、diffth2はそれぞれ左右画像に対する差分判定部１２２の出力を表す。
【数９】
2015162156.tif 000011
【００９７】
つまり注目画素と周辺画素の差分の絶対値が、左右いずれかの一方で閾値以下の場合を０とした重みマスクを作成する。センサス結果比較部１１３の出力と差分判定部１２２または設定処理部１２３の出力は、それぞれ独立したデータとして扱われるものに限定されず、結合または統合された１つのビットデータであってもよい。
【００９８】
なお、Ｓ２０５において行われるセンサス結果比較部１１３における処理は、第１の実施形態と同様であり、出力はビットデータ（ＸＯＲ演算部１１３１の出力）でもよいし、数値データ（センサスビット変換部１１３２の出力）でもよい。ただしセンサスビット変換部１１３２がない場合の方がビット演算で処理出来るため、処理が軽くなる。
【００９９】
コスト算出部１３０は、比較結果情報と重み情報に基づいてコストを算出する。コスト算出部１３０は、比較結果情報と重み情報を、画素毎或いはビット毎に積を取る。比較結果情報がビットデータであり、重み情報もビットデータ（重みマスク）であれば、これらの結果は共に１ビットデータであるためＡＮＤを取る論理演算を行えばよいことになる。
【０１００】
そしてコスト算出部１３０は、図１２で示す通り、ＡＮＤを取った結果を１画素ずつ或いは１ビットずつ加算していく。具体的には上式（４）と同様の処理を行えばよい。
【０１０１】
以上の本実施形態では、重み設定部１２０は、第１の重みとして第１の論理レベルが設定され、第２の重みとして第１の論理レベルとは異なる第２の論理レベルが設定される重みマスクを、重み情報として設定する。
【０１０２】
ここで、第１の論理レベルと第２の論理レベルとは異なる論理レベルであり、上述の例であれば第１の論理レベル＝０、第２の論理レベル＝１となるビットデータである。ただし、第１，第２の論理レベルは１ビットデータに限定されるものではなく、２ビット以上のデータを用いる等、種々の変形実施が可能である。
【０１０３】
これにより、重み情報としてビットデータ（重みマスク）を用いることが可能になり、コスト算出処理を容易にすることが可能になる。例えば上述の例であれば、コストの算出はビットデータである比較結果情報と重みマスクのＡＮＤを取るだけでよい。
【０１０４】
また、重み設定部１２０は、第１の画像について、第１の重みとして第１の論理レベルを設定し、第２の重みとして第２の論理レベルを設定して、第１の重み情報を求め、第２の画像について、第１の重みとして第１の論理レベルを設定し、第２の重みとして第２の論理レベルを設定して、第２の重み情報を求め、第１の重み情報と、第２の重み情報による論理演算を行って重みマスクを求めてもよい。
【０１０５】
第１の実施形態においても上述したように、重みを設定する際には、左右画像の両方におけるノイズの影響を考慮するとよい。その際、左画像の差分算出結果と、右画像の差分算出結果を、差分判定部１２２において、それぞれ第１，第２の論理レベルを用いて表現しておけば、その両方を考慮した重みマスクを容易に求めることができる。具体的には、設定処理部１２３では、ビットデータである左右画像それぞれの差分判定結果のＡＮＤを取るだけで重みマスクを求めることが可能である。なお、ここでの論理演算は必ずしもＡＮＤに限定されるものではない。
【０１０６】
また、コスト算出部１３０は、比較結果情報と、重みマスクを用いた周辺画素ごとの演算結果を累積した結果に対して、第２の論理レベルとなる周辺画素の数を用いた平均化処理を行ってコストを算出してもよい。
【０１０７】
上述した例では、コストはセンサス結果比較出力と重みマスクを積算した結果の総和を取るとした。しかし、上記総和の結果を重みマスクの有効画素の数で割った値をコストとしてもよい。ここで言う有効画素とは重みマスクにおいて１が与えられている画素であり、図１２ではこの有効画素数は１２となる。したがってここでのコストを７÷１２として求めてもよい。つまり総和から算出したコストを有効画素で平均化するということになる。これにより、重みマスク内の有効画素数の大きさに寄らず、コストを得ることが出来る。
【０１０８】
例えば、有効画素が多い場合には、比較結果情報に含まれる１のビットの画素数が比較的少なくても、算出されるコストはある程度大きい値となることが期待される。比較結果情報が１の画素で、重みも１となっている可能性が高く、当該画素の値がコストに反映されやすいためである。それに対して、有効画素が少ない場合には、比較結果情報に含まれる１のビットの画素数が比較的多かったとしても、算出されるコストはそれほど大きい値とならないと考えられる。比較結果情報が１の画素があっても、当該画素の重みが０となっている可能性が高く、当該画素の値がコストに反映されにくいためである。
【０１０９】
つまり、有効画素数は、コストの大小に影響を及ぼす可能性がある。そのため、厳密な判定を行うのであれば、有効画素数の差をキャンセルする処理を追加するとよく、具体的には上述したように有効画素で平均化すればよい。
【０１１０】
４．第３の実施形態
図１３に第３の実施形態の処理を説明するフローチャートを示す。図１３のＳ３０１〜３０８、Ｓ３１０〜Ｓ３１２は、図１０のＳ２０１〜Ｓ２０８、Ｓ２１０〜Ｓ２１２と同様であるため詳細な説明は省略する。
【０１１１】
本実施形態のコスト算出部１３０は、比較結果情報と重みマスクに基づいて、コストを算出する。重み設定部１２０の出力が１ならば、同じ画素における比較結果情報の値をコストに加算し、そうでなければ演算をスキップする。詳しいフローチャートを図１４に示す。
【０１１２】
本実施形態のコスト算出処理が開始されると、まずコストを表す変数Ｃを０で初期化する（Ｓ４０１）。そして、周辺画素分だけのループ処理を開始する（Ｓ４０２）。具体的には、処理対象としている周辺画素に対応する重みマスクのビットデータが１か否かを判定し（Ｓ４０３）、重みマスクの値が１であれば、処理対象としている周辺画素における比較結果情報の値を、Ｃに加算する（Ｓ４０４）。一方、重みマスクの値が１でなければ（０であれば）、Ｓ４０４の処理をスキップして周辺画素ループを継続する。そして、全ての周辺画素について処理が行われたら、周辺画素ループを終了し（Ｓ４０５）、コスト算出処理を終了する。
【０１１３】
以上の本実施形態では、コスト算出部１３０は、重みマスクの値が第１の論理レベルとなる画素では、コストの算出処理をスキップする。
【０１１４】
これは図１４のフローチャートで言えば、Ｓ４０３でＮｏの場合（第２の論理レベルである１のビットが立っていない場合）に、Ｓ４０４の処理をスキップすることに相当する。このようにすれば、重みマスクの乗算（比較結果情報が数値データの場合）或いはＡＮＤ演算（比較結果情報がビットデータの場合）が不要であるため、回路の規模を抑えることが可能になる。
【０１１５】
５．第４の実施形態
図１５に第４の実施形態の処理を説明するフローチャートを示す。上述してきた実施形態と比較した場合、Ｓ５０９に設定処理部１２３における処理が追加された実施形態となっている。
【０１１６】
具体的には、第２，第３の実施形態と同様に、設定処理部１２３は左右画像の差分判定結果のＡＮＤを取って重みマスクを作成する（Ｓ５０８）。本実施形態では、設定処理部１２３は、さらに下式（１０）及び図１６に示す通り、求められた重みマスクについて、画素毎或いはビット毎において、出力が１ならば出力が０の時に比べて大きい値に変換する。下式（１０）において、Ｍ’は最終的に重み設定部１２０から出力される重み情報の値を表し、Ｍは重みマスクの値を表し、ε及びφは変換パラメータを表す。なお変換パラメータε、φは実験的に事前に算出しておく。また、ε及びφの値は整数に限らない。
【数１０】
2015162156.tif 000012
【０１１７】
コスト算出部１３０は、下式（１１）及び図１７に示す通り、センサス結果比較部１１３及び設定処理部１２３の出力に基づいて、コストを算出する。ただし、下式（１４）ではｋ＝０且つｌ＝０の時は計算から除く。具体的には、画素毎に比較結果情報と重み情報の値を掛け合わせて、この演算結果を所定領域内の周辺画素全てで足し合わせた結果をコストとする。図１７では比較結果情報は数値データとしているが、当然センサスビット変換部１１３２を用いずビットデータとしてもよい。
【数１１】
2015162156.tif 000013
【０１１８】
つまり本実施形態は、第１の実施形態では直接的に求めていた数値データである重み情報を、ビットデータである重みマスクを求めるフェーズと、当該重みマスクを数値データに変換するフェーズの２つに分けて求める例と言うことができる。
【０１１９】
６．第５の実施形態
図１８に第５の実施形態の処理を説明するフローチャートを示す。上述してきた実施形態と比較した場合、コスト算出部１３０におけるコスト算出処理が、テーブル参照を行うステップ（Ｓ６０９）と、参照結果に基づいて演算を行うステップ（Ｓ６１０）により実現される点が異なる。
【０１２０】
なお、コスト算出部１３０以外の各部は、第１の実施の形態と同様とすればよいが、センサス結果比較部１１３については、センサスビット変換部１１３２は用いずに、出力結果がビットデータであるものとして説明する。同様に、重み情報も重みマスクであるものとして説明する。
【０１２１】
コスト算出部１３０は、図１９で示すようにセンサス結果比較部１１３及び設定処理部１２３の出力に応じて事前に用意されている変換テーブルを参照して、１周辺画素当たりのコストを表す所定値に変換する。上述したように、比較結果情報と重み情報がともにビットデータであれば、変換テーブルは（比較結果情報，重みマスク）＝（０，０），（０，１），（１，０），（１，１）の４つを、それぞれ所定値と対応付ける情報となる。
【０１２２】
その際に、変換結果は図１９のように、（比較結果情報，重みマスク）＝（１，１）＞（１，０）≧（０，０）＞（０，１）の順で大きい値を持つように設定する。図１９の例であれば（１，１）の場合が２．５で最大となり、（１，０）の１．２、（０，０）の−１．２、（０，１）の−２．５の順となる。なお、コストが最大となるシフト量を視差量とするならば、上記の並びを逆順にすればよい。
【０１２３】
以上の並びについて説明する。比較結果情報＝１とは、左右画像でセンサス変換結果の値が異なる画素である。その場合、左右画像で違いがあるのだから、当該状態でのシフト量は視差量として採用されにくくすべきである。つまり、コストが高いほど一致度が低い（視差量として採用されにくい）場合であれば、比較結果情報＝１では比較結果情報＝０に比べて、コストを高くするような値を設定することになる。つまり、（１，１）＞（０，１）、（１，０）＞（０，０）とするとよい。
【０１２４】
また、重みマスク＝１とは重みマスク＝０に比べて、寄与度が高い場合の値である。つまり、コストを高くすべき状況では、重みマスク＝１での増加幅＞重みマスク＝０での増加幅とすべきであるし、コストを低くすべき状況では、重みマスク＝１での増加幅＜重みマスク＝０での増加幅（或いは重みマスク＝１での減少幅＞重みマスク＝０での減少幅）とすべきである。つまり、（１，１）＞（１，０）、（０，０）＞（０，１）とするとよい。
【０１２５】
以上をまとめれば、（１，１）＞（１，０）＞（０，０）＞（０，１）の関係が導ける。ただし、重みマスク＝０の場合に、コストに対する寄与度を０とするような実施例がありえる。その場合、（１，０）と（０，０）の間に差異を設ける必要はない。よって、（１，０）と（０，０）については同じ値を設定してもよく（等号が成立してもよく）、（１，０）≧（０，０）となる。
【０１２６】
また、センサス結果比較部１１３にてセンサスビット変換部１１３２を用いた場合には、それぞれＸＯＲ演算部１１３１の演算結果が０及び１に対応する値を上記の順序にあてはめるとよい。
【０１２７】
Ｓ６０９での処理により、図１９の変換結果に示すように、周辺画素ごとに、当該画素についてのコスト相当の値が求められたことになる。よって下式（１２）に示す通り、コスト算出部１３０は重みＳ６０９の出力結果を所定領域内で足し合わせた結果をコストとする。ただし、下式（１２）において、ＴＭは重み変換テーブルによる変換結果をあらわす。また、ｋ＝０且つｌ＝０の時は計算から除く。
【数１２】
2015162156.tif 000014
【０１２８】
以上の本実施形態では、コスト算出部１３０は、比較結果情報と、重み情報と、コストとを対応付ける変換テーブルを参照してコストを算出する。
【０１２９】
ここで変換テーブルとは例えば図１９に示したテーブルである。また、ここでは比較結果情報（センサス結果比較部１１３の出力）と重み情報（差分判定部１２２の出力）に対応付けられている変換結果をコストとしているが、当該変換結果は単体で注目画素に対するコストを表すものではない。当該変換結果を全周辺画素にわたって累積することでコストが求められるという点を考えれば、変換結果とは１周辺画素当たりのコストを表す情報と言うことも可能である。
【０１３０】
このようにすれば、比較結果情報と重み情報の乗算等を行うことなく、コストを演算することが可能になる。なお、本実施形態では変換テーブルを保持しておかなくてはならないが、図１９からもわかるように、変換テーブル自体のデータ量はそれほど大きくないため、問題とならない。
【０１３１】
また、変換テーブルを参照したコスト算出処理とは、具体的には、コスト算出部１３０において、比較結果情報により表される値と、重みマスクの値の組み合わせに応じて、変換結果が決定される変換テーブルを参照し、所定領域において画素ごとに求められた変換結果を用いてコストを算出する処理であってもよい。
【０１３２】
さらに具体的には、比較結果情報についてもビットデータであってもよい。図１９の変換テーブルからもわかるように、比較結果情報の値や重み情報の値は、値自体がいくつであるかは重要でなく、何通りの値を取り得るうちのどの値であるかということが重要となる。例えば、比較結果情報の値は、左右画像が等しいか否かの２値しか取らない、また、重み情報についても寄与度の高いものと低いものの２値しか取らないという場合であれば、それら２値を相互に識別可能であれば処理上十分である。この場合、具体的な数値データを割り当てるまでもなく、１ビットのビットデータを用いればよいことになる。つまり、比較結果情報や重み情報をビットデータとすることで、余計な変換処理を抑止して効率的にコスト算出処理を行うことが可能になる。
【０１３３】
なお、比較結果情報や重み情報として数値データを用いたり、ビットデータとして２ビット以上のビットを割り当てたりすることで、比較結果情報や重み情報が３通り以上の値をとるものとしてもよい。その場合でも、比較結果情報の値と重み情報の値の全ての組み合わせについて、変換結果を対応付けておくことで、変換テーブルによる処理は可能である。例えば、比較結果情報がｓ通りの値をとり、重み情報がｔ通りの値をとるのであれば、ｓ×ｔ行の変換テーブルを保持しておくことで、上述した例と同様に処理を行うことができる。
【０１３４】
以上、本発明を適用した５つの実施の形態１〜５およびその変形例について説明したが、本発明は、各実施の形態１〜５やその変形例そのままに限定されるものではなく、実施段階では、発明の要旨を逸脱しない範囲内で構成要素を変形して具体化することができる。また、上記した各実施の形態１〜５や変形例に開示されている複数の構成要素を適宜組み合わせることによって、種々の発明を形成することができる。例えば、各実施の形態１〜５や変形例に記載した全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態や変形例で説明した構成要素を適宜組み合わせてもよい。また、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。このように、発明の主旨を逸脱しない範囲内において種々の変形や応用が可能である。
【符号の説明】
【０１３５】
１００  画像処理装置、１１０  センサス処理部、１１１  センサス変換部、
１１３  センサス結果比較部、１２０  重み設定部、１２１  差分算出部、
１２２  差分判定部、１２３  設定処理部、１３０  コスト算出部、
１４０  視差量決定部、１５０  画像シフト部、１１３１  ＸＯＲ演算部、
１１３２  センサスビット変換部
【図１】
2015162156.tif 000015
【図２】
2015162156.tif 000016
【図３】
2015162156.tif 000017
【図５】
2015162156.tif 000018
【図６】
2015162156.tif 000019
【図７】
2015162156.tif 000020
【図８】
2015162156.tif 000021
【図１０】
2015162156.tif 000022
【図１１】
2015162156.tif 000023
【図１２】
2015162156.tif 000024
【図１３】
2015162156.tif 000025
【図１４】
2015162156.tif 000026
【図１５】
2015162156.tif 000027
【図１６】
2015162156.tif 000028
【図１７】
2015162156.tif 000029
【図１８】
2015162156.tif 000030
【図１９】
2015162156.tif 000031
【図４】
2015162156.tif 000032
【図９】
2015162156.tif 000033