国際・国内特許データベース検索
このアプリケーションの一部のコンテンツは現在ご利用になれません。
この状況が続く場合は、次のお問い合わせ先までご連絡ください。フィードバック & お問い合わせ
1. (WO2015129724) 画像処理装置、画像処理方法及びプログラム
Document

明 細 書

発明の名称 画像処理装置、画像処理方法及びプログラム

技術分野

0001  

背景技術

0002   0003   0004  

先行技術文献

特許文献

0005  

非特許文献

0006  

発明の概要

発明が解決しようとする課題

0007   0008  

課題を解決するための手段

0009   0010   0011   0012   0013   0014   0015   0016   0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034  

図面の簡単な説明

0035  

発明を実施するための形態

0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132   0133   0134  

符号の説明

0135  

請求の範囲

1   2   3   4   5   6   7   8   9   10   11   12   13   14  

図面

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19  

明 細 書

発明の名称 : 画像処理装置、画像処理方法及びプログラム

技術分野

[0001]
 本発明は、画像処理装置、画像処理方法及びプログラム等に関する。

背景技術

[0002]
 画像に基づいてデプス(奥行き情報、距離情報)を求める手法としてステレオマッチングが広く知られている。さらに、特許文献1に開示されているように、ステレオマッチングにおいて、センサス変換を行う手法が知られている。また、非特許文献1にもセンサス変換の手法が詳細に開示されている。
[0003]
 センサス変換では、注目画素と周辺画素の大小関係に応じて値(ビットデータ)を付与する。しかし、画像の平坦領域では、画素値の変化が小さく、注目画素と周辺画素の差分値も比較的小さくなる。そのため、何らかのノイズが生じた場合、上記大小関係が容易に逆転する可能性があり、処理精度が低下してしまう。
[0004]
 従来のセンサス変換が注目画素と周辺画素との差分の大小関係に応じて0か1を付与するのに対して、非特許文献2では、差分がノイズバッファ内にある場合にも新たにビットデータ(00)を付与し、ハミング距離を算出する手法が開示されている。非特許文献2では、上記手法により平坦領域におけるノイズの影響を抑えることが出来るとしている。

先行技術文献

特許文献

[0005]
特許文献1 : 特開2003-16427号公報

非特許文献

[0006]
非特許文献1 : Ramin Zabih and John Woodfill, "Non-parametric Local Transforms for Computing Visual Correspondence", LectureNotes in Computer Science, Vol.801, Computer Vision-ECCV '94
非特許文献2 : Zucheul Lee他 "Local Disparity Estimation with Three-Moded Cross Census and Advanced Support Weight"

発明の概要

発明が解決しようとする課題

[0007]
 特許文献1や非特許文献1等の従来からのセンサス変換は、上述したようにノイズの影響を抑止することが難しい。非特許文献2では、ノイズバッファ内の場合に新たなビットデータ(00)を付与し、ノイズバッファ内でなかった場合のビットデータ(10又は01)と分けて処理を行うことでノイズの影響を抑止するとしている。しかし非特許文献2のように、ビットデータの割り当てでノイズに対応するのでは処理の柔軟性が欠ける。例えば、画像に撮像されている被写体や、撮像環境等が変化すれば、発生するノイズの傾向も変化するが、非特許文献2では画一的な対応しかできない。
[0008]
 本発明の幾つかの態様によれば、ノイズの影響に応じた重み情報を設定し、視差量を求める際のコストの算出において当該重み情報を用いることで、ノイズの影響を適切に抑止したステレオマッチングを行う画像処理装置、画像処理方法及びプログラム等を提供することができる。

課題を解決するための手段

[0009]
 本発明の一態様は、第1の画像と第2の画像に対するステレオマッチング処理において、前記第1の画像及び前記第2の画像に対してセンサス変換を行い、前記第1の画像の前記センサス変換の結果と前記第2の画像の前記センサス変換の結果との比較処理に基づいて、比較結果情報を求めるセンサス処理部と、コストの算出に用いられる重み情報を設定する重み設定部と、前記比較結果情報と、前記重み情報に基づいて、注目画素での前記コストを算出するコスト算出部と、前記コストに基づいて、前記注目画素での視差量を求める視差量決定部と、を含み、前記重み設定部は、前記第1の画像及び前記第2の画像内の所定領域における、前記注目画素の周辺の複数の周辺画素のうち、ノイズによる影響が大きいと判断される前記周辺画素に対して、前記コストへの寄与度が小さい第1の重みを設定し、複数の前記周辺画素のうち、前記ノイズによる影響が小さいと判断される前記周辺画素に対して、前記コストへの寄与度が大きい第2の重みを設定する画像処理装置に関係する。
[0010]
 本発明の一態様では、ノイズによる影響を考慮して重み情報を設定し、当該重み情報を用いてステレオマッチングの視差量決定におけるコストを求める。これにより、ノイズの影響が大きい周辺画素の寄与度を低くできるため、ノイズに対するロバスト性を高くすることや、上記寄与度を柔軟に設定すること等が可能になる。
[0011]
 また、本発明の一態様では、前記コスト算出部は、前記比較結果情報と、前記重み情報と、前記コストとを対応付ける変換テーブルを参照して前記コストを算出してもよい。
[0012]
 これにより、コストの算出に変換テーブルを用いることが可能になる。
[0013]
 また、本発明の一態様では、前記重み設定部は、前記注目画素と前記周辺画素の差分値を求め、求めた前記差分値に基づいて前記ノイズの影響を判定して前記重み情報を設定してもよい。
[0014]
 これにより、注目画素と周辺画素の差分値に基づいてノイズの影響の判定や、重み情報の設定を行うこと等が可能になる。
[0015]
 また、本発明の一態様では、前記重み設定部は、前記第1の画像の前記周辺画素と前記注目画素の前記差分値と所与の閾値との比較結果、及び、前記第2の画像の前記周辺画素と前記注目画素の前記差分値と前記所与の閾値の比較結果に基づいて、前記周辺画素に対する前記重み情報を設定してもよい。
[0016]
 これにより、ステレオマッチングに用いる複数の画像のそれぞれについて、注目画素と周辺画素の差分値と、閾値との比較処理を行い、その比較結果から重み情報を設定すること等が可能になる。
[0017]
 また、本発明の一態様では、前記重み設定部は、前記差分値との比較処理に用いられる前記所与の閾値を、前記ノイズに応じて設定してもよい。
[0018]
 これにより、ノイズの状況に応じた重みを設定すること等が可能になる。
[0019]
 また、本発明の一態様では、前記重み設定部は、前記第1の画像の前記周辺画素と前記注目画素の前記差分値と、前記第2の画像の前記周辺画素と前記注目画素の前記差分値のうち、少なくとも一方が前記所与の閾値以下の場合に、前記周辺画素に対して前記第1の重みを設定してもよい。
[0020]
 これにより、複数の画像の少なくとも1つにおいて、所与の周辺画素でのノイズの影響が大きいと判定されたのであれば、当該周辺画素での重みを寄与度が相対的に小さい第1の重みとすること等が可能になる。
[0021]
 また、本発明の一態様では、前記センサス処理部は、前記比較処理の結果を数値に変換して前記比較結果情報を取得してもよい。
[0022]
 これにより、複数の画像のセンサス変換の比較結果を、ビットデータではなく数値データとして取得すること等が可能になる。
[0023]
 また、本発明の一態様では、前記重み設定部は、前記第1の重みとして第1の論理レベルが設定され、前記第2の重みとして前記第1の論理レベルとは異なる第2の論理レベルが設定される重みマスクを、前記重み情報として設定してもよい。
[0024]
 これにより、重み情報として論理レベルにより表されるデータ(ビットデータ)を用いること等が可能になる。
[0025]
 また、本発明の一態様では、前記重み設定部は、前記第1の画像について、前記第1の重みとして前記第1の論理レベルを設定し、前記第2の重みとして前記第2の論理レベルを設定して、第1の重み情報を求め、前記第2の画像について、前記第1の重みとして前記第1の論理レベルを設定し、前記第2の重みとして前記第2の論理レベルを設定して、第2の重み情報を求め、前記第1の重み情報と、前記第2の重み情報による論理演算を行って前記重みマスクを求めてもよい。
[0026]
 これにより、複数の画像のそれぞれで、論理レベルにより表されるデータ(ビットデータ)による重み情報を求めておくことで、コスト算出に用いる重み情報(重みマスク)をそれらの論理演算により容易に求めること等が可能になる。
[0027]
 また、本発明の一態様では、前記コスト算出部は、前記重みマスクの値が前記第1の論理レベルとなる画素では、前記コストの算出処理をスキップしてもよい。
[0028]
 これにより、コスト算出における演算負荷(処理負荷)を軽減することや、ハードウェアの構成を簡略化すること等が可能になる。
[0029]
 また、本発明の一態様では、前記コスト算出部は、前記比較結果情報により表される値と、前記重みマスクの値の組み合わせに応じて、変換結果が決定される変換テーブルを参照し、前記所定領域において前記周辺画素ごとに求められた変換結果を用いて前記コストを算出してもよい。
[0030]
 これにより、少なくとも重み情報についてはビットデータが対応付けられた変換テーブルを用いて、コストを算出すること等が可能になる。
[0031]
 また、本発明の一態様では、前記コスト算出部は、前記比較結果情報と、前記重みマスクを用いた前記周辺画素ごとの演算結果を累積した結果に対して、前記第2の論理レベルとなる前記周辺画素の数を用いた平均化処理を行って前記コストを算出してもよい。
[0032]
 これにより、ノイズの影響が小さいと判定された画素(有効画素)の数を考慮したコスト算出処理を行うこと等が可能になる。
[0033]
 また、本発明の他の態様は、第1の画像と第2の画像に対するステレオマッチング処理において、前記第1の画像及び前記第2の画像に対してセンサス変換を行い、前記第1の画像の前記センサス変換の結果と前記第2の画像の前記センサス変換の結果との比較処理に基づいて、比較結果情報を求め、コストの算出に用いられる重み情報を設定し、前記比較結果情報と、前記重み情報に基づいて、注目画素での前記コストを算出し、前記コストに基づいて、前記注目画素での視差量を求め、前記重み情報の設定において、前記第1の画像及び前記第2の画像内の所定領域における、前記注目画素の周辺の複数の周辺画素のうち、ノイズによる影響が大きいと判断される前記周辺画素に対して、前記コストへの寄与度が小さい第1の重みを設定し、複数の前記周辺画素のうち、前記ノイズによる影響が小さいと判断される前記周辺画素に対して、前記コストへの寄与度が大きい第2の重みを設定する画像処理方法に関係する。
[0034]
 また、本発明の他の態様は、第1の画像と第2の画像に対するステレオマッチング処理において、前記第1の画像及び前記第2の画像に対してセンサス変換を行い、前記第1の画像の前記センサス変換の結果と前記第2の画像の前記センサス変換の結果との比較処理に基づいて、比較結果情報を求めるセンサス処理部と、コストの算出に用いられる重み情報を設定する重み設定部と、前記比較結果情報と、前記重み情報に基づいて、注目画素での前記コストを算出するコスト算出部と、前記コストに基づいて、前記注目画素での視差量を求める視差量決定部として、コンピュータを機能させ、前記重み設定部は、前記第1の画像及び前記第2の画像内の所定領域における、前記注目画素の周辺の複数の周辺画素のうち、ノイズによる影響が大きいと判断される前記周辺画素に対して、前記コストへの寄与度が小さい第1の重みを設定し、複数の前記周辺画素のうち、前記ノイズによる影響が小さいと判断される前記周辺画素に対して、前記コストへの寄与度が大きい第2の重みを設定するプログラムに関係する。

図面の簡単な説明

[0035]
[図1] 図1は、本実施形態に係る画像処理装置の構成例。
[図2] 図2は、本実施形態に係る画像処理装置の詳細な構成例。
[図3] 図3は、第1の実施形態の処理を説明するフローチャート。
[図4] 図4は、画像領域のシフト手法を説明する図。
[図5] 図5は、センサス変換の手法を説明する図。
[図6] 図6は、センサス結果比較部の構成例。
[図7] 図7は、センサスビット変換手法の説明図。
[図8] 図8は、第1の実施形態の重み設定処理を説明する図。
[図9] 図9は、視差量決定手法の説明図。
[図10] 図10は、第2の実施形態の処理を説明するフローチャート。
[図11] 図11は、重み設定部の構成例。
[図12] 図12は、第2の実施形態のコスト算出処理を説明する図。
[図13] 図13は、第3の実施形態の処理を説明するフローチャート。
[図14] 図14は、第3の実施形態のコスト算出処理を説明するフローチャート。
[図15] 図15は、第4の実施形態の処理を説明するフローチャート。
[図16] 図16は、第4の実施形態の重み設定処理を説明する図。
[図17] 図17は、第4の実施形態のコスト算出処理を説明する図。
[図18] 図18は、第5の実施形態の処理を説明するフローチャート。
[図19] 図19は、第5の実施形態の重み設定処理を説明する図。

発明を実施するための形態

[0036]
 以下、本実施形態について説明する。なお、以下に説明する本実施形態は、請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
[0037]
 1.本実施形態の手法
 まず本実施形態の手法について説明する。上述したように、ステレオマッチングにおいてセンサス変換を用いる手法が知られている。センサス変換では、画素値そのものではなく、注目画素に対する周辺画素の大小関係を用いて処理を行う。そのため、明るさの変化等による影響を抑止し、精度よくマッチングを行うことができる。
[0038]
 しかし、画像の平坦領域を処理対象とすると、注目画素と周辺画素の画素値の差分が小さくなる。例えば、後述する図5の入力画像では、丸が付けられた注目画素と、注目画素の左隣の周辺画素を比べた場合、画素値の差が1しかない。ここでは周辺画素の画素値≧注目画素の画素値(125)の周辺画素には0というビットデータを付与し、そうでなければ1を付与するため、上記周辺画素には0が付与されている。ここで、当該周辺画素の画素値が、何らかのノイズにより2だけ減少してしまった場合、上記大小関係が逆転し、付与されるビットデータが1になってしまう。
[0039]
 つまり、平坦領域のように画素値の差が元々小さい領域は、ノイズの影響を受けやすく、処理精度を低下させる要因となる。一方、さらに左隣の周辺画素(画素値=10)のように、画素値の差が十分大きければ、多少のノイズが発生していたとしても、周辺画素の画素値<注目画素の画素値という関係は変化せず、センサス変換により得られる1というビットデータは信頼できるものである。
[0040]
 非特許文献2は以上の点を考慮したものであり、ノイズバッファ内にある(ノイズの影響が大きいと判断される)周辺画素に付与するビットデータを00とし、ノイズバッファ内にある周辺画素に付与するビットデータ(01又は10)と区別することで、ノイズの影響を抑止するというものである。
[0041]
 しかし、非特許文献2の手法であっても、ノイズによる影響の抑止効果は十分とは言えない。例えば、ステレオマッチング用の画像が取得される環境は種々変化しうるため、それに応じてノイズの量や傾向も変化する。具体的には、被写体が風景か、人物か、内視鏡画像のような生体かという違いでノイズは変化する。或いは、光源が太陽光なのか、照明光なのか、昼間の撮影なのか夜間撮影なのかという違いもノイズに影響するし、撮像したカメラのレンズや撮像素子等の特性によっても違いは生じる。
[0042]
 画像の特性や、それに伴うノイズの特性が変化すれば、適切なステレオマッチングの処理も変化する。例えば、ノイズの影響を受けやすい画素については処理から完全に除外してしまうのがよいのか、処理には利用するが寄与度(例えばコスト算出への寄与度)を相対的に下げるのがよいのか、といった条件は状況に応じて変えることが望ましい。さらにいえば、寄与度を相対的に下げる場合、寄与度が相対的に高い画素(ノイズの影響を受けにくい画素)との相対関係をどの程度にしたらよいか、という設定も状況に応じて最適解は変化するはずである。非特許文献2の手法はこの点を考慮しておらず、状況に応じた柔軟な処理が困難である。
[0043]
 そこで本出願人は、ノイズの影響を受けやすい画素と受けにくい画素を区別した上で、環境変化等に応じて柔軟な設定が可能な手法を提案する。具体的には、本実施形態に係る画像処理装置100は図1に示したように、第1の画像と第2の画像に対するステレオマッチング処理において、第1の画像及び第2の画像に対してセンサス変換を行い、第1の画像のセンサス変換の結果と第2の画像のセンサス変換の結果との比較処理に基づいて、比較結果情報を求めるセンサス処理部110と、コストの算出に用いられる重み情報を設定する重み設定部120と、比較結果情報と重み情報に基づいて、注目画素でのコストを算出するコスト算出部130と、コストに基づいて、注目画素での視差量を求める視差量決定部140を含む。そして、重み設定部120は、第1の画像及び第2の画像内の所定領域における、注目画素の周辺の複数の周辺画素のうち、ノイズによる影響が大きいと判断される周辺画素に対して、コストへの寄与度が小さい第1の重みを設定し、複数の周辺画素のうち、ノイズによる影響が小さいと判断される周辺画素に対して、コストへの寄与度が大きい第2の重みを設定する。
[0044]
 ここで、第1の画像、第2の画像はステレオマッチングに用いられる左画像と右画像を表す。以下では、第1の画像を左画像とし、当該左画像を基準にして、第2の画像(右画像)をシフトさせる例について説明するが、これには限定されない。
[0045]
 また、注目画素とは、第1の画像のうちの1画素であり、所定領域とは注目画素を含む(狭義には中心とする)所定の形状、面積の領域であって、例えばW画素×W画素の領域となる。図5の例であれば、所定領域とは注目画素を中心とする5×5の正方形の領域である。また、周辺画素とは、上記所定領域に含まれ、且つ、注目画素でない画素である。
[0046]
 ステレオマッチングでは、一方の画像に設定された注目画素が、他方の画像においてどの程度ずれているか(どの程度の視差量があるか)を求める。そのため、図4を用いて後述するように、左画像で1つの注目画素を設定したら、右画像では所与のシフト量だけシフトされた画素を注目画素とし、当該右画像の注目画素を基準に所定領域の設定する。そして、当該シフト量を所与の範囲、所与の間隔で変化させて、複数のシフト量のうちコストが最適となるシフト量を視差量として求める。つまり「注目画素でのコスト」とは、単一の値ではなく、シフト量の数だけ求められることが想定される。例えば、シフト量としてN通りの量が設定されている場合、左画像の1つの注目画素について、右画像ではN通りの注目画素、所定領域が設定され、N個のコスト値が例えば図9のグラフのように取得されることになる。
[0047]
 なお、ステレオマッチングでは画像中の複数の画素(狭義には全画素)についての視差量を求めることが一般的であるため、左画像の注目画素についても更新処理を行う必要がある。つまり実際には、1つのコスト値を求める処理を、注目画素についてのループ分、シフト量についてのループ分実行する必要がある。例えば左右画像がそれぞれM画素の画像であり、且つその全てについて視差量を求めるのであれば、M×N回のコスト算出処理が実行されることになる。
[0048]
 また、左右画像それぞれのセンサス変換結果を比較した比較結果情報とは、図7のXOR演算出力のように、従来手法と同様の情報であってもよいし、図7のセンサスビット変換結果のように、変換パラメータにより変換された後の情報でもよい。従来手法と同様の情報とは、狭義には0,1のビットデータの集合であり、変換後の情報とは、狭義には数値データの集合である。
[0049]
 重み情報とは、コスト計算に用いられるものであり、例えば周辺画素のそれぞれについて所与の重みが付与された情報である。例えば、図8に示したように第1の重み=1、第2の重み=2.3という数値データを設定し、各周辺画素に対して1又は2.3が割り当てられた情報であってもよい。或いは、第1,第2の重みはビットデータであってもよく、図12を用いて後述するような重みマスクであってもよい。なお、第1,第2の重みはコストの寄与度の大小が第1の重み<第2の重みとなればよく、第1の重みに割り当てられる数値を、第2の重みに割り当てられる数値よりも小さくする必要はない。
[0050]
 このようにすれば、ノイズによる影響の大小に応じて、重みを設定することが可能になる。つまり、ノイズの影響が大きい画素については、処理への寄与度を相対的に小さくできるため、ノイズの影響を抑止した処理が可能になる。具体的には、ステレオマッチングのコストを算出する際に、注目画素と周辺画素の差分の絶対値が閾値以下であるような、ノイズによりセンサス変換の大小関係が反転しやすい画素のコストへの寄与度を他の画素に比べて低くするため、コストがノイズによって変化しにくくなる。
[0051]
 また、重み情報として図8のように数値データの集合を用いる際にも、図8、図16に示すようにその数値を任意に設定可能である。そのため、ノイズの影響が大きい画素の情報の処理に対する寄与度を、状況に応じて柔軟に設定することが可能になり、センサス変換を用いたステレオマッチングを精度よく行うことが可能になる。
[0052]
 以下、第1~第5の実施形態について説明する。第1の実施形態では、センサス変換の比較結果を数値変換する処理、及び、数値データの集合である重み情報を設定する処理を含む本発明の基本的な実施形態を説明する。第2、第3の実施形態では、重み情報として重みマスクを用いる例を説明する。なお、第2の実施形態と第3の実施形態では、重みマスクを用いたコスト算出の処理内容が異なる。第4の実施形態では、重み情報として一旦重みマスクを求め、その後当該重みマスクを数値データに変換する例を説明する。第5の実施形態では、比較結果情報と重み情報をともにビットデータで求め、当該ビットデータの組と画素当たりのコストとを対応付ける変換テーブルを用いてコストを算出する例を説明する。
[0053]
 2.第1の実施形態
 図2に第1の実施形態に係る画像処理装置100の構成例を示す。画像処理装置100は、画像シフト部150と、センサス処理部110と、重み設定部120と、コスト算出部130と、視差量決定部140を含む。そして、センサス処理部110は、センサス変換部111と、センサス結果比較部113を含み、重み設定部120は、差分算出部121と、設定処理部123を含む。ただし、画像処理装置100は、図2の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
[0054]
 画像シフト部150は、左右画像の一方の画像を設定されたシフト量だけシフトさせる。本実施形態では、右画像をd1~d2の範囲において、所与の間隔(例えば1画素間隔)でシフトさせる例を説明する。
[0055]
 センサス変換部111は、左画像と右画像のそれぞれに対してセンサス変換を行う。センサス結果比較部113は、左画像に対するセンサス変換の結果と、右画像に対するセンサス変換の結果を比較する。
[0056]
 差分算出部121は、左画像と右画像のそれぞれに対して注目画素と周辺画素の差分値を算出する。設定処理部123は、算出された差分値に基づいて各周辺画素に対して重みを設定する。以上の各部での処理の詳細については後述する。
[0057]
 図3に本実施形態の処理を説明するフローチャートを示す。なお、図3のフローチャートではまず画像をシフトしてから画素毎にコストを算出し、全てのシフト探索範囲で同処理を行っていくが、図4のように片方の画像領域(左画像の所定領域)に対してもう片方の画像上の領域(右画像の所定領域)をシフトさせてもよい。図4の場合は左を固定し、右をシフトしているが当然、逆でもよい。
[0058]
 また、図3のフローチャートでは全ての画素、シフト量でコストを算出してから、視差を算出しているが、ある画素において全てのシフト量でコストを算出したらその都度視差を算出するとメモリを大きく消費しないで済む。また、図3では不図示であるが、ノイズが多い場合においては事前に前処理としてノイズ低減処理を行なってもよい。
[0059]
 本実施形態の処理が開始されると、まず所与のシフト量の範囲でループ処理を開始する(S101)。ここでは、d1~d2の範囲で1画素刻みでシフト量を更新していく。そして画像シフト部150は、右画像を設定されたシフト量でシフトさせる(S102)。
[0060]
 そして、注目画素のループ処理を開始する(S103)。ここでは、左画像中の全画素を、順次注目画素として設定する。また、S102において右画像のシフトが行われているため、左画像の注目画素が決定されれば、右画像の注目画素も決定できる。
[0061]
 左右画像で注目画素が決定されたら、センサス処理部110において比較結果情報を求める処理と、重み設定部120において重み情報を設定する処理を行う。具体的には、センサス変換部111では、画像シフト部150でシフトした画像(右画像)とシフトしていない方の画像(左画像)に対して、図5に示す通り、注目画素周辺W*Wの周辺画素と注目画素の画素値の大小関係に応じて0または1を各画素に付与し、その結果をW*W-1の長さのビット列で表現する(S104)。なお、所定領域は必ずしも正方でなくてもよい。
[0062]
 大小関係に対する0、1の付与の仕方はどちらでもよいが、図5では周辺画素の画素値<注目画素の画素値(=125)ならば1、それ以外は0としている。定義の上では、図5下に示したビット列にするまでがセンサス変換であるが、図5における大小比較画像の状態のままをセンサス変換部111の出力としてもよい。その場合、注目画素に相当する画素は無効とすればよい。以降の式や図では分かりやすくするために、センサス変換部111の出力が大小比較画像の場合を想定して記載する。
[0063]
 センサス結果比較部113は、左右画像のセンサス変換の出力を比較する(S105)。図6にセンサス結果比較部113の具体的な構成例を示す。センサス結果比較部113は、XOR演算部1131と、センサスビット変換部1132を含む。XOR演算部1131では、S104で取得されたセンサス変換部111の左右画像それぞれの出力を、画素毎或いはビット毎にXOR(排他的論理和)演算を行う。XOR演算を行うため、左画像と右画像でセンサス変換結果の値が等しい画素(或いはビット)では0となり、異なる画素では1となる。
[0064]
 センサスビット変換部1132は、下式(1)及び図7が示すように、XOR演算部1131で出力された画素或いはビット毎の出力に対して、出力が1ならば出力が0の時に比べて大きい値に変換する。下式(1)において、Tはセンサスビット変換部1132の出力を表し、tはXOR演算部1131の出力を表す。また、(i,j)は注目画素のインデックスである。
[数1]


[0065]
 図7では、出力が1の場合の変換パラメータγ=1、出力が0の場合の変換パラメータδ=-1としたがこれには限定されない。またγやδの値は整数に限らない。変換パラメータは実験的に事前に算出しておくものとする。なお、ここではコストが最小となるシフト量を視差量としているためγ>δとなるが、コストが最大となるシフト量を視差量とするならばγ<δとしてもよい。
[0066]
 また、以下ではセンサス処理部110の出力である比較結果情報は、センサスビット変換部1132の出力である数値データであるものとして説明するが、XOR演算部1131の出力であるビットデータを比較結果情報としてもよい。
[0067]
 差分算出部121は、下式(2)のように注目画素周辺W*Wの周辺画素と注目画素の画素値の差分の絶対値Diffを画素毎に算出する(S106)。下式(2)においてIは画素値を表す。
[数2]


[0068]
 そして設定処理部123は、下式(3)及び図8で示す通り、差分算出部121の出力結果に応じて重みMを画素毎に設定する(S107)。差分算出部121において左右画像の出力の少なくとも一方が閾値以下である場合には、それ以外の場合に比べて小さな値αを重みとする。α及びβは整数に限らない。なお、下式(3)において、diff 1、diff 2は左右画像それぞれの差分算出部121の出力を表す。
[数3]


[0069]
 例えば左上の画素(先頭ビット)に着目した場合、右画像の差分絶対値(=120)は閾値Th(ここでは15)より大きいが、左画像の差分絶対値(=5)が閾値以下であるため、当該画素における重みはα(=1)とする。一方、その1つ右の画素(2ビット目)では、左画像の差分絶対値(=100)も右画像の差分絶対値(=55)も閾値より大きいため、当該画素における重みはβ(=2.3)とする。
[0070]
 重みパラメータα及びβは実験的に事前に算出しておく。また、閾値Thはノイズ量に応じて決定する。例えば平坦領域における分散などの統計量を参考にしてもよい。またこの統計量を用いて入力画像時点での画素値に応じて閾値を段階的に設けてもよい。
[0071]
 比較結果情報と重み情報が求められたら、コスト算出部130は、比較結果情報と重み情報に基づいてコストを算出する。例えば下式(4)に示すように画素毎或いはビット毎に積を取り、領域内画素での結果の総和をコストCとして算出すればよい。ただし下式(4)では、k=0且つl=0の時は計算から除く。
[数4]


[0072]
 なお、コストは上記のセンサス変換結果を用いる手法と、他の手法を組み合わせて算出してもよい。例えば、画像の画素値より算出したSADやSSD、画像の微分結果より算出したSADやSSDなどと組み合わせてもよい。その際の組み合わせ方は種々考えられるが、例えば下式(5)のように組み合わせてもよい。下式(5)におけるC1~C3は各手法で算出したコストを表し、γ1~γ3は実験的に得られたパラメータを表す。複数の手法での算出結果を組み合わせる際に、このパラメータにより各手法で算出したコストのバランスを調整する。
[数5]


[0073]
 また、コストに閾値を持たせてもよい。その閾値は各手法で算出したコストそれぞれに対して設けてもよいし、組み合わせた結果に対して設けてもよい。一例を下式(6)、(7)に示す。下式(6)が各手法で算出したコストごとに閾値を設ける例であり、τ1~τ3は各手法で算出したコストに対する閾値を表す。下式(7)が組み合わせた結果に対して閾値を設ける例であり、τは全体のコストに対する閾値を表す。なお。min(p,q)はpとqの小さい方を表し、下式(6)では、各手法で求められたコストが、それぞれ対応する閾値を超えないように制限を設けていることになる。同様に、下式(7)では、全体としてのコストが閾値を超えないように制限を設けている。
[数6]


[数7]


[0074]
 全ての注目画素に対してS103~S108の処理が行われたら、S103で開始した注目画素ループを終了する(S109)。また、S102でシフト量を更新しつつ、全てのシフト量でS102~S109の処理が行われたら、S101で開始されたシフト量ループを終了する(S110)。
[0075]
 ループ処理が終了した段階で、画像上の全ての画素に対して、それぞれd1~d2のシフト量の範囲でのコストが計算されたことになる。そこで視差量決定部140は、図9に示すようにコスト算出部130においてシフト探索範囲内(図3、図9ではd1~d2)で算出したコストを、画素毎に比較し、最も小さいコストを持つシフト量Dを該当画素の視差量として算出する。
[0076]
 以上の本実施形態では、重み設定部120は、注目画素と周辺画素の差分値を求め、求めた差分値に基づいてノイズの影響を判定して重み情報を設定する。
[0077]
 具体的には上述したように、重み設定部120は差分算出部121を含み、差分算出部121での算出結果に基づいて重みを設定する。なお、上述の例では差分絶対値を用いたが、単純な差分値(正負の値を含む)ものであってもよい。これにより、画素値の差分値から、各周辺画素がノイズの影響の受けやすいか否かを判定することが可能になる。
[0078]
 また、重み設定部120は、第1の画像の周辺画素と注目画素の差分値と所与の閾値との比較結果、及び、第2の画像の周辺画素と注目画素の差分値と所与の閾値の比較結果に基づいて、周辺画素に対する重み情報を設定してもよい。
[0079]
 これにより、左右画像のそれぞれに対して、差分値に対する閾値処理により、重みを設定することが可能になる。
[0080]
 具体的には、重み設定部120は、第1の画像の周辺画素と注目画素の差分値と、第2の画像の周辺画素と注目画素の差分値のうち、少なくとも一方が所与の閾値以下の場合に、周辺画素に対して第1の重み(コストに対する寄与度が小さい重み)を設定する。
[0081]
 左右画像はそもそも撮像時の撮像部の位置が異なるものであるし、さらに左右画像のうち一方は所与のシフト量だけシフトされるため、所定範囲内での各周辺画素でのノイズの影響の大小は、左画像と右画像では異なるはずである。そして、比較結果情報は左右画像のセンサス変換結果を比較して求める以上、所与の位置の周辺画素での比較結果情報の演算には左右画像の両方が用いられる。つまり、所与の周辺画素での比較結果情報が信頼できるか否かは、左右画像の両方でノイズの影響が少ないと判定されるか否かで決定するとよい。逆に言えば、少なくとも一方でノイズの影響が大きいのであれば、当該周辺画素についてはコストに対する寄与度を下げる、すなわち第1の重みを設定するほうが、ノイズに対するロバスト性を高めることが可能である。
[0082]
 なお、ここでは差分絶対値を想定しているため、差分値≦閾値Thの場合にノイズの影響が大きいと判定している。つまり負の差分値も考慮するのであれば、負の閾値Th2も設定しておき、差分値<0であれば、差分値≧Th2の場合にノイズの影響が大きいと判定することになる。
[0083]
 また、重み設定部120は、差分値との比較処理に用いられる所与の閾値を、ノイズに応じて設定してもよい。
[0084]
 これにより、ノイズに応じた閾値設定が可能になる。例えば、ノイズが多い環境では、注目画素と周辺画素の差分値がある程度大きくても、ノイズにより大小関係が逆転してしまう可能性がある。逆にノイズが少ない環境では、注目画素と周辺画素の差分値があまり大きくなくても、ノイズにより大小関係が逆転してしまう可能性が低い。つまり、閾値は一定値にするのではなく、想定されるノイズの状況に応じて変更することで、柔軟な処理を行うことが可能になる。
[0085]
 また、センサス処理部110は、比較処理の結果を数値に変換して比較結果情報を取得してもよい。
[0086]
 具体的には、上述したようにXOR演算部1131での演算結果を、センサスビット変換部1132において、変換パラメータγ、δを用いて変換すればよい。
[0087]
 非特許文献2では、左右画像を比較してハミング距離を算出した結果、所与の周辺画素において、注目画素との差分が左右画像の両方でノイズバッファ内にある場合と、左右画像の両方で同符号のノイズバッファ外にある場合とで、該当画素がハミング距離にもたらす値はどちらの場合においても0である。つまり、ノイズバッファ内か否かを判定し、付与するビットデータを00とするか,01又は10とするかを分けているにもかかわらず、左右画像で付与されたビットデータが等しい場合、コストに対する寄与度に差異がなくなってしまう。そのため、ノイズによってハミング距離へ影響を与える画素とそうでない画素の切り分けが出来ないおそれがある。
[0088]
 その点、上述したようにセンサスビット変換部1132による変換処理を行った上で重み情報との積を取れば、左右画像に差がない画素についても値は0にならず、当該画素はコストに寄与することになる。特に本実施形態では、ノイズの影響を考慮して重み情報を設定しているため、左右画像に差がない画素についても、ノイズの影響に応じて寄与度に差異を設けることが可能である。図7、図8の例であれば、左右画像に差がない画素からはコストを減少させる値が求められることになるが、ノイズの影響が小さければ当該値は-2.3となりコスト減少効果が大きく、ノイズの影響が大きければ当該値は-1となりコスト減少効果が小さいという違いが生じている。
[0089]
 また、本実施形態の画像処理装置100等は、その処理の一部または大部分をプログラムにより実現してもよい。この場合には、CPU等のプロセッサがプログラムを実行することで、本実施形態の画像処理装置100等が実現される。具体的には、情報記憶装置に記憶されたプログラムが読み出され、読み出されたプログラムをCPU等のプロセッサが実行する。ここで、情報記憶装置(コンピュータにより読み取り可能な装置)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(DVD、CD等)、HDD(ハードディスクドライブ)、或いはメモリ(カード型メモリ、ROM等)などにより実現できる。そして、CPU等のプロセッサは、情報記憶装置に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。即ち、情報記憶装置には、本実施形態の各部としてコンピュータ(操作部、処理部、記憶部、出力部を備える装置)を機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)が記憶される。
[0090]
 また、本実施形態の画像処理装置100等は、プロセッサとメモリを含んでもよい。ここでのプロセッサは、例えばCPU(Central Processing Unit)であってもよい。ただしプロセッサはCPUに限定されるものではなく、GPU(Graphics Processing Unit)、或いはDSP(Digital Signal Processor)等、各種のプロセッサを用いることが可能である。またプロセッサはASICによるハードウェア回路でもよい。また、メモリはコンピュータにより読み取り可能な命令を格納するものであり、当該命令がプロセッサにより実行されることで、本実施形態に係る画像処理装置100等の各部が実現されることになる。ここでのメモリは、SRAM、DRAMなどの半導体メモリであってもよいし、レジスタやハードディスク等でもよい。また、ここでの命令は、プログラムを構成する命令セットの命令でもよいし、プロセッサのハードウェア回路に対して動作を指示する命令であってもよい。
[0091]
 また、本実施形態は種々の変形実施が可能である。例えば、重みに0やそれに近い値が含まれる場合、例えば平坦領域などのノイズの影響を受けやすいところでどのシフト量においてもコストがほぼ0となる場合がある。その場合には視差マップ算出後、例えばBelief Propagationなどの伝播処理を行ってそういった領域に対して補間してもよい。また、この補間処理は第2~第5の実施形態において実行してもよい。
[0092]
 3.第2の実施形態
 図10に第2の実施形態の処理を説明するフローチャートを示す。図10のS201~206、S209~S212は、図3のS101~S106、S108~S111と同様であるため詳細な説明は省略する。
[0093]
 図11に本実施形態に係る重み設定部120の構成例を示す。重み設定部120は、差分算出部121と、差分判定部122と、設定処理部123を含む。
[0094]
 S206において、差分算出部121は左右画像のそれぞれに対して、注目画素と周辺画素の差分絶対値を算出する。差分判定部122は、下式(8)に示す通り、左右画像それぞれ対して差分算出部121の出力結果が閾値以上ならば1を、そうでないならば0を画素毎に出力する(S207)。ただし、第1の実施形態と等価にするために、出力結果が閾値と等しい場合には0としてもよい。下式(8)においてdiffthは差分判定部122の出力を表す。
[数8]


[0095]
 差分判定部122では、判定結果を左右それぞれ1ビット画像として出力してもよいし、センサス変換において大小比較画像からビット列にするように、左右それぞれW*W-1ビットのビット列として出力してもよい。第1の実施形態と同様、以降の式や図では分かりやすくするために、センサス変換部111の出力及び差分判定部122での判定結果が画像である場合を想定して記載する。
[0096]
 設定処理部123は、差分判定部122の出力結果である左右の1ビット画像或いはW*W-1ビットのビット列から重みマスクを作成する(S208)。下式(9)に示す通り、重みマスクの作成方法は左右の1ビット画像を画素毎に、或いはW*W-1ビットのビット列同士のANDを取る論理演算を行えばよい。下式(9)において、diffth1、diffth2はそれぞれ左右画像に対する差分判定部122の出力を表す。
[数9]


[0097]
 つまり注目画素と周辺画素の差分の絶対値が、左右いずれかの一方で閾値以下の場合を0とした重みマスクを作成する。センサス結果比較部113の出力と差分判定部122または設定処理部123の出力は、それぞれ独立したデータとして扱われるものに限定されず、結合または統合された1つのビットデータであってもよい。
[0098]
 なお、S205において行われるセンサス結果比較部113における処理は、第1の実施形態と同様であり、出力はビットデータ(XOR演算部1131の出力)でもよいし、数値データ(センサスビット変換部1132の出力)でもよい。ただしセンサスビット変換部1132がない場合の方がビット演算で処理出来るため、処理が軽くなる。
[0099]
 コスト算出部130は、比較結果情報と重み情報に基づいてコストを算出する。コスト算出部130は、比較結果情報と重み情報を、画素毎或いはビット毎に積を取る。比較結果情報がビットデータであり、重み情報もビットデータ(重みマスク)であれば、これらの結果は共に1ビットデータであるためANDを取る論理演算を行えばよいことになる。
[0100]
 そしてコスト算出部130は、図12で示す通り、ANDを取った結果を1画素ずつ或いは1ビットずつ加算していく。具体的には上式(4)と同様の処理を行えばよい。
[0101]
 以上の本実施形態では、重み設定部120は、第1の重みとして第1の論理レベルが設定され、第2の重みとして第1の論理レベルとは異なる第2の論理レベルが設定される重みマスクを、重み情報として設定する。
[0102]
 ここで、第1の論理レベルと第2の論理レベルとは異なる論理レベルであり、上述の例であれば第1の論理レベル=0、第2の論理レベル=1となるビットデータである。ただし、第1,第2の論理レベルは1ビットデータに限定されるものではなく、2ビット以上のデータを用いる等、種々の変形実施が可能である。
[0103]
 これにより、重み情報としてビットデータ(重みマスク)を用いることが可能になり、コスト算出処理を容易にすることが可能になる。例えば上述の例であれば、コストの算出はビットデータである比較結果情報と重みマスクのANDを取るだけでよい。
[0104]
 また、重み設定部120は、第1の画像について、第1の重みとして第1の論理レベルを設定し、第2の重みとして第2の論理レベルを設定して、第1の重み情報を求め、第2の画像について、第1の重みとして第1の論理レベルを設定し、第2の重みとして第2の論理レベルを設定して、第2の重み情報を求め、第1の重み情報と、第2の重み情報による論理演算を行って重みマスクを求めてもよい。
[0105]
 第1の実施形態においても上述したように、重みを設定する際には、左右画像の両方におけるノイズの影響を考慮するとよい。その際、左画像の差分算出結果と、右画像の差分算出結果を、差分判定部122において、それぞれ第1,第2の論理レベルを用いて表現しておけば、その両方を考慮した重みマスクを容易に求めることができる。具体的には、設定処理部123では、ビットデータである左右画像それぞれの差分判定結果のANDを取るだけで重みマスクを求めることが可能である。なお、ここでの論理演算は必ずしもANDに限定されるものではない。
[0106]
 また、コスト算出部130は、比較結果情報と、重みマスクを用いた周辺画素ごとの演算結果を累積した結果に対して、第2の論理レベルとなる周辺画素の数を用いた平均化処理を行ってコストを算出してもよい。
[0107]
 上述した例では、コストはセンサス結果比較出力と重みマスクを積算した結果の総和を取るとした。しかし、上記総和の結果を重みマスクの有効画素の数で割った値をコストとしてもよい。ここで言う有効画素とは重みマスクにおいて1が与えられている画素であり、図12ではこの有効画素数は12となる。したがってここでのコストを7÷12として求めてもよい。つまり総和から算出したコストを有効画素で平均化するということになる。これにより、重みマスク内の有効画素数の大きさに寄らず、コストを得ることが出来る。
[0108]
 例えば、有効画素が多い場合には、比較結果情報に含まれる1のビットの画素数が比較的少なくても、算出されるコストはある程度大きい値となることが期待される。比較結果情報が1の画素で、重みも1となっている可能性が高く、当該画素の値がコストに反映されやすいためである。それに対して、有効画素が少ない場合には、比較結果情報に含まれる1のビットの画素数が比較的多かったとしても、算出されるコストはそれほど大きい値とならないと考えられる。比較結果情報が1の画素があっても、当該画素の重みが0となっている可能性が高く、当該画素の値がコストに反映されにくいためである。
[0109]
 つまり、有効画素数は、コストの大小に影響を及ぼす可能性がある。そのため、厳密な判定を行うのであれば、有効画素数の差をキャンセルする処理を追加するとよく、具体的には上述したように有効画素で平均化すればよい。
[0110]
 4.第3の実施形態
 図13に第3の実施形態の処理を説明するフローチャートを示す。図13のS301~308、S310~S312は、図10のS201~S208、S210~S212と同様であるため詳細な説明は省略する。
[0111]
 本実施形態のコスト算出部130は、比較結果情報と重みマスクに基づいて、コストを算出する。重み設定部120の出力が1ならば、同じ画素における比較結果情報の値をコストに加算し、そうでなければ演算をスキップする。詳しいフローチャートを図14に示す。
[0112]
 本実施形態のコスト算出処理が開始されると、まずコストを表す変数Cを0で初期化する(S401)。そして、周辺画素分だけのループ処理を開始する(S402)。具体的には、処理対象としている周辺画素に対応する重みマスクのビットデータが1か否かを判定し(S403)、重みマスクの値が1であれば、処理対象としている周辺画素における比較結果情報の値を、Cに加算する(S404)。一方、重みマスクの値が1でなければ(0であれば)、S404の処理をスキップして周辺画素ループを継続する。そして、全ての周辺画素について処理が行われたら、周辺画素ループを終了し(S405)、コスト算出処理を終了する。
[0113]
 以上の本実施形態では、コスト算出部130は、重みマスクの値が第1の論理レベルとなる画素では、コストの算出処理をスキップする。
[0114]
 これは図14のフローチャートで言えば、S403でNoの場合(第2の論理レベルである1のビットが立っていない場合)に、S404の処理をスキップすることに相当する。このようにすれば、重みマスクの乗算(比較結果情報が数値データの場合)或いはAND演算(比較結果情報がビットデータの場合)が不要であるため、回路の規模を抑えることが可能になる。
[0115]
 5.第4の実施形態
 図15に第4の実施形態の処理を説明するフローチャートを示す。上述してきた実施形態と比較した場合、S509に設定処理部123における処理が追加された実施形態となっている。
[0116]
 具体的には、第2,第3の実施形態と同様に、設定処理部123は左右画像の差分判定結果のANDを取って重みマスクを作成する(S508)。本実施形態では、設定処理部123は、さらに下式(10)及び図16に示す通り、求められた重みマスクについて、画素毎或いはビット毎において、出力が1ならば出力が0の時に比べて大きい値に変換する。下式(10)において、M’は最終的に重み設定部120から出力される重み情報の値を表し、Mは重みマスクの値を表し、ε及びφは変換パラメータを表す。なお変換パラメータε、φは実験的に事前に算出しておく。また、ε及びφの値は整数に限らない。
[数10]


[0117]
 コスト算出部130は、下式(11)及び図17に示す通り、センサス結果比較部113及び設定処理部123の出力に基づいて、コストを算出する。ただし、下式(14)ではk=0且つl=0の時は計算から除く。具体的には、画素毎に比較結果情報と重み情報の値を掛け合わせて、この演算結果を所定領域内の周辺画素全てで足し合わせた結果をコストとする。図17では比較結果情報は数値データとしているが、当然センサスビット変換部1132を用いずビットデータとしてもよい。
[数11]


[0118]
 つまり本実施形態は、第1の実施形態では直接的に求めていた数値データである重み情報を、ビットデータである重みマスクを求めるフェーズと、当該重みマスクを数値データに変換するフェーズの2つに分けて求める例と言うことができる。
[0119]
 6.第5の実施形態
 図18に第5の実施形態の処理を説明するフローチャートを示す。上述してきた実施形態と比較した場合、コスト算出部130におけるコスト算出処理が、テーブル参照を行うステップ(S609)と、参照結果に基づいて演算を行うステップ(S610)により実現される点が異なる。
[0120]
 なお、コスト算出部130以外の各部は、第1の実施の形態と同様とすればよいが、センサス結果比較部113については、センサスビット変換部1132は用いずに、出力結果がビットデータであるものとして説明する。同様に、重み情報も重みマスクであるものとして説明する。
[0121]
 コスト算出部130は、図19で示すようにセンサス結果比較部113及び設定処理部123の出力に応じて事前に用意されている変換テーブルを参照して、1周辺画素当たりのコストを表す所定値に変換する。上述したように、比較結果情報と重み情報がともにビットデータであれば、変換テーブルは(比較結果情報,重みマスク)=(0,0),(0,1),(1,0),(1,1)の4つを、それぞれ所定値と対応付ける情報となる。
[0122]
 その際に、変換結果は図19のように、(比較結果情報,重みマスク)=(1,1)>(1,0)≧(0,0)>(0,1)の順で大きい値を持つように設定する。図19の例であれば(1,1)の場合が2.5で最大となり、(1,0)の1.2、(0,0)の-1.2、(0,1)の-2.5の順となる。なお、コストが最大となるシフト量を視差量とするならば、上記の並びを逆順にすればよい。
[0123]
 以上の並びについて説明する。比較結果情報=1とは、左右画像でセンサス変換結果の値が異なる画素である。その場合、左右画像で違いがあるのだから、当該状態でのシフト量は視差量として採用されにくくすべきである。つまり、コストが高いほど一致度が低い(視差量として採用されにくい)場合であれば、比較結果情報=1では比較結果情報=0に比べて、コストを高くするような値を設定することになる。つまり、(1,1)>(0,1)、(1,0)>(0,0)とするとよい。
[0124]
 また、重みマスク=1とは重みマスク=0に比べて、寄与度が高い場合の値である。つまり、コストを高くすべき状況では、重みマスク=1での増加幅>重みマスク=0での増加幅とすべきであるし、コストを低くすべき状況では、重みマスク=1での増加幅<重みマスク=0での増加幅(或いは重みマスク=1での減少幅>重みマスク=0での減少幅)とすべきである。つまり、(1,1)>(1,0)、(0,0)>(0,1)とするとよい。
[0125]
 以上をまとめれば、(1,1)>(1,0)>(0,0)>(0,1)の関係が導ける。ただし、重みマスク=0の場合に、コストに対する寄与度を0とするような実施例がありえる。その場合、(1,0)と(0,0)の間に差異を設ける必要はない。よって、(1,0)と(0,0)については同じ値を設定してもよく(等号が成立してもよく)、(1,0)≧(0,0)となる。
[0126]
 また、センサス結果比較部113にてセンサスビット変換部1132を用いた場合には、それぞれXOR演算部1131の演算結果が0及び1に対応する値を上記の順序にあてはめるとよい。
[0127]
 S609での処理により、図19の変換結果に示すように、周辺画素ごとに、当該画素についてのコスト相当の値が求められたことになる。よって下式(12)に示す通り、コスト算出部130は重みS609の出力結果を所定領域内で足し合わせた結果をコストとする。ただし、下式(12)において、TMは重み変換テーブルによる変換結果をあらわす。また、k=0且つl=0の時は計算から除く。
[数12]


[0128]
 以上の本実施形態では、コスト算出部130は、比較結果情報と、重み情報と、コストとを対応付ける変換テーブルを参照してコストを算出する。
[0129]
 ここで変換テーブルとは例えば図19に示したテーブルである。また、ここでは比較結果情報(センサス結果比較部113の出力)と重み情報(差分判定部122の出力)に対応付けられている変換結果をコストとしているが、当該変換結果は単体で注目画素に対するコストを表すものではない。当該変換結果を全周辺画素にわたって累積することでコストが求められるという点を考えれば、変換結果とは1周辺画素当たりのコストを表す情報と言うことも可能である。
[0130]
 このようにすれば、比較結果情報と重み情報の乗算等を行うことなく、コストを演算することが可能になる。なお、本実施形態では変換テーブルを保持しておかなくてはならないが、図19からもわかるように、変換テーブル自体のデータ量はそれほど大きくないため、問題とならない。
[0131]
 また、変換テーブルを参照したコスト算出処理とは、具体的には、コスト算出部130において、比較結果情報により表される値と、重みマスクの値の組み合わせに応じて、変換結果が決定される変換テーブルを参照し、所定領域において画素ごとに求められた変換結果を用いてコストを算出する処理であってもよい。
[0132]
 さらに具体的には、比較結果情報についてもビットデータであってもよい。図19の変換テーブルからもわかるように、比較結果情報の値や重み情報の値は、値自体がいくつであるかは重要でなく、何通りの値を取り得るうちのどの値であるかということが重要となる。例えば、比較結果情報の値は、左右画像が等しいか否かの2値しか取らない、また、重み情報についても寄与度の高いものと低いものの2値しか取らないという場合であれば、それら2値を相互に識別可能であれば処理上十分である。この場合、具体的な数値データを割り当てるまでもなく、1ビットのビットデータを用いればよいことになる。つまり、比較結果情報や重み情報をビットデータとすることで、余計な変換処理を抑止して効率的にコスト算出処理を行うことが可能になる。
[0133]
 なお、比較結果情報や重み情報として数値データを用いたり、ビットデータとして2ビット以上のビットを割り当てたりすることで、比較結果情報や重み情報が3通り以上の値をとるものとしてもよい。その場合でも、比較結果情報の値と重み情報の値の全ての組み合わせについて、変換結果を対応付けておくことで、変換テーブルによる処理は可能である。例えば、比較結果情報がs通りの値をとり、重み情報がt通りの値をとるのであれば、s×t行の変換テーブルを保持しておくことで、上述した例と同様に処理を行うことができる。
[0134]
 以上、本発明を適用した5つの実施の形態1~5およびその変形例について説明したが、本発明は、各実施の形態1~5やその変形例そのままに限定されるものではなく、実施段階では、発明の要旨を逸脱しない範囲内で構成要素を変形して具体化することができる。また、上記した各実施の形態1~5や変形例に開示されている複数の構成要素を適宜組み合わせることによって、種々の発明を形成することができる。例えば、各実施の形態1~5や変形例に記載した全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態や変形例で説明した構成要素を適宜組み合わせてもよい。また、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。このように、発明の主旨を逸脱しない範囲内において種々の変形や応用が可能である。

符号の説明

[0135]
100 画像処理装置、110 センサス処理部、111 センサス変換部、
113 センサス結果比較部、120 重み設定部、121 差分算出部、
122 差分判定部、123 設定処理部、130 コスト算出部、
140 視差量決定部、150 画像シフト部、1131 XOR演算部、
1132 センサスビット変換部

請求の範囲

[請求項1]
 第1の画像と第2の画像に対するステレオマッチング処理において、前記第1の画像及び前記第2の画像に対してセンサス変換を行い、前記第1の画像の前記センサス変換の結果と前記第2の画像の前記センサス変換の結果との比較処理に基づいて、比較結果情報を求めるセンサス処理部と、
 コストの算出に用いられる重み情報を設定する重み設定部と、
 前記比較結果情報と、前記重み情報に基づいて、注目画素での前記コストを算出するコスト算出部と、
 前記コストに基づいて、前記注目画素での視差量を求める視差量決定部と、
 を含み、
 前記重み設定部は、
 前記第1の画像及び前記第2の画像内の所定領域における、前記注目画素の周辺の複数の周辺画素のうち、ノイズによる影響が大きいと判断される前記周辺画素に対して、前記コストへの寄与度が小さい第1の重みを設定し、
 複数の前記周辺画素のうち、前記ノイズによる影響が小さいと判断される前記周辺画素に対して、前記コストへの寄与度が大きい第2の重みを設定することを特徴とする画像処理装置。
[請求項2]
 請求項1において、
 前記コスト算出部は、
 前記比較結果情報と、前記重み情報と、前記コストとを対応付ける変換テーブルを参照して前記コストを算出することを特徴とする画像処理装置。
[請求項3]
 請求項1において、
 前記重み設定部は、
 前記注目画素と前記周辺画素の差分値を求め、求めた前記差分値に基づいて前記ノイズの影響を判定して前記重み情報を設定することを特徴とする画像処理装置。
[請求項4]
 請求項3において、
 前記重み設定部は、
 前記第1の画像の前記周辺画素と前記注目画素の前記差分値と所与の閾値との比較結果、及び、前記第2の画像の前記周辺画素と前記注目画素の前記差分値と前記所与の閾値の比較結果に基づいて、前記周辺画素に対する前記重み情報を設定することを特徴とする画像処理装置。
[請求項5]
 請求項4において、
 前記重み設定部は、
 前記差分値との比較処理に用いられる前記所与の閾値を、前記ノイズに応じて設定することを特徴とする画像処理装置。
[請求項6]
 請求項4において、
 前記重み設定部は、
 前記第1の画像の前記周辺画素と前記注目画素の前記差分値と、前記第2の画像の前記周辺画素と前記注目画素の前記差分値のうち、少なくとも一方が前記所与の閾値以下の場合に、前記周辺画素に対して前記第1の重みを設定することを特徴とする画像処理装置。
[請求項7]
 請求項1において、
 前記センサス処理部は、
 前記比較処理の結果を数値に変換して前記比較結果情報を取得することを特徴とする画像処理装置。
[請求項8]
 請求項1乃至7のいずれかにおいて、
 前記重み設定部は、
 前記第1の重みとして第1の論理レベルが設定され、前記第2の重みとして前記第1の論理レベルとは異なる第2の論理レベルが設定される重みマスクを、前記重み情報として設定することを特徴とする画像処理装置。
[請求項9]
 請求項8において、
 前記重み設定部は、
 前記第1の画像について、前記第1の重みとして前記第1の論理レベルを設定し、前記第2の重みとして前記第2の論理レベルを設定して、第1の重み情報を求め、
 前記第2の画像について、前記第1の重みとして前記第1の論理レベルを設定し、前記第2の重みとして前記第2の論理レベルを設定して、第2の重み情報を求め、
 前記第1の重み情報と、前記第2の重み情報による論理演算を行って前記重みマスクを求めることを特徴とする画像処理装置。
[請求項10]
 請求項8において、
 前記コスト算出部は、
 前記重みマスクの値が前記第1の論理レベルとなる画素では、前記コストの算出処理をスキップすることを特徴とする画像処理装置。
[請求項11]
 請求項8において、
 前記コスト算出部は、
 前記比較結果情報により表される値と、前記重みマスクの値の組み合わせに応じて、変換結果が決定される変換テーブルを参照し、前記所定領域において前記周辺画素ごとに求められた変換結果を用いて前記コストを算出することを特徴とする画像処理装置。
[請求項12]
 請求項8において、
 前記コスト算出部は、
 前記比較結果情報と、前記重みマスクを用いた前記周辺画素ごとの演算結果を累積した結果に対して、前記第2の論理レベルとなる前記周辺画素の数を用いた平均化処理を行って前記コストを算出することを特徴とする画像処理装置。
[請求項13]
 第1の画像と第2の画像に対するステレオマッチング処理において、前記第1の画像及び前記第2の画像に対してセンサス変換を行い、前記第1の画像の前記センサス変換の結果と前記第2の画像の前記センサス変換の結果との比較処理に基づいて、比較結果情報を求め、
 コストの算出に用いられる重み情報を設定し、
 前記比較結果情報と、前記重み情報に基づいて、注目画素での前記コストを算出し、
 前記コストに基づいて、前記注目画素での視差量を求め、
 前記重み情報の設定において、
 前記第1の画像及び前記第2の画像内の所定領域における、前記注目画素の周辺の複数の周辺画素のうち、ノイズによる影響が大きいと判断される前記周辺画素に対して、前記コストへの寄与度が小さい第1の重みを設定し、
 複数の前記周辺画素のうち、前記ノイズによる影響が小さいと判断される前記周辺画素に対して、前記コストへの寄与度が大きい第2の重みを設定することを特徴とする画像処理方法。
[請求項14]
 第1の画像と第2の画像に対するステレオマッチング処理において、前記第1の画像及び前記第2の画像に対してセンサス変換を行い、前記第1の画像の前記センサス変換の結果と前記第2の画像の前記センサス変換の結果との比較処理に基づいて、比較結果情報を求めるセンサス処理部と、
 コストの算出に用いられる重み情報を設定する重み設定部と、
 前記比較結果情報と、前記重み情報に基づいて、注目画素での前記コストを算出するコスト算出部と、
 前記コストに基づいて、前記注目画素での視差量を求める視差量決定部として、
 コンピュータを機能させ、
 前記重み設定部は、
 前記第1の画像及び前記第2の画像内の所定領域における、前記注目画素の周辺の複数の周辺画素のうち、ノイズによる影響が大きいと判断される前記周辺画素に対して、前記コストへの寄与度が小さい第1の重みを設定し、
 複数の前記周辺画素のうち、前記ノイズによる影響が小さいと判断される前記周辺画素に対して、前記コストへの寄与度が大きい第2の重みを設定することを特徴とするプログラム。

図面

[ 図 1]

[ 図 2]

[ 図 3]

[ 図 4]

[ 図 5]

[ 図 6]

[ 図 7]

[ 図 8]

[ 図 9]

[ 図 10]

[ 図 11]

[ 図 12]

[ 図 13]

[ 図 14]

[ 図 15]

[ 図 16]

[ 図 17]

[ 図 18]

[ 図 19]