特許第6843212号(P6843212)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ コグネックス・コーポレーションの特許一覧

<>
  • 特許6843212-ホモグラフィの修正 図000038
  • 特許6843212-ホモグラフィの修正 図000039
  • 特許6843212-ホモグラフィの修正 図000040
  • 特許6843212-ホモグラフィの修正 図000041
  • 特許6843212-ホモグラフィの修正 図000042
  • 特許6843212-ホモグラフィの修正 図000043
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6843212
(24)【登録日】2021年2月25日
(45)【発行日】2021年3月17日
(54)【発明の名称】ホモグラフィの修正
(51)【国際特許分類】
   G06T 5/00 20060101AFI20210308BHJP
【FI】
   G06T5/00 725
【請求項の数】20
【外国語出願】
【全頁数】36
(21)【出願番号】特願2019-205175(P2019-205175)
(22)【出願日】2019年11月13日
(62)【分割の表示】特願2018-16914(P2018-16914)の分割
【原出願日】2016年3月29日
(65)【公開番号】特開2020-53062(P2020-53062A)
(43)【公開日】2020年4月2日
【審査請求日】2019年12月12日
(31)【優先権主張番号】14/678279
(32)【優先日】2015年4月3日
(33)【優先権主張国】US
(31)【優先権主張番号】14/678299
(32)【優先日】2015年4月3日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】504427282
【氏名又は名称】コグネックス・コーポレーション
(74)【代理人】
【識別番号】110000659
【氏名又は名称】特許業務法人広江アソシエイツ特許事務所
(72)【発明者】
【氏名】ナサニエル,ボーガン
【審査官】 千葉 久博
(56)【参考文献】
【文献】 特開2006−300890(JP,A)
【文献】 特開2002−334327(JP,A)
【文献】 特開平11−312238(JP,A)
【文献】 特開平10−240925(JP,A)
【文献】 山田喜紀, 外5名,“射影変換の高速化に関する一検討”,電子情報通信学会技術研究報告,日本,社団法人電子情報通信学会,2007年 3月 2日,第106巻, 第552号,p.19-24
(58)【調査した分野】(Int.Cl.,DB名)
G06T 5/00
(57)【特許請求の範囲】
【請求項1】
機械視覚システムであって、
プロセッサが、メモリに格納されたコンピュータプログラムを実行するように構成されており、前記コンピュータプログラムが、
歪曲画像からホモグラフィ行列の第1の変換を除去することによって生成される中間画像を受信する処理であって、前記第1の変換は前記歪曲画像を中間画像に関連づけることを特徴とする、受信する処理と、
前記中間画像からホモグラフィ行列の第2の変換を除去することによって、修正画像を生成する処理であって、前記第2の変換は前記中間画像を修正画像に関連付けることを特徴としており、かつ、
前記第2の変換は、前記修正画像の第1の次元に沿うピクセルを、前記中間画像の前記第1の次元に沿う位置にマッピングするように制約が加えられており、前記中間画像の前記第1の次元に沿う前記位置は、同じ距離だけ前記中間画像の前記第1の次元に沿って隣接する位置から離間していることを特徴としている、前記修正画像を生成する処理と、
を前記プロセッサに実行させるように構成されている、
機械視覚システム。
【請求項2】
前記第1の変換は、前記中間画像の前記第1の次元に沿うピクセルを、前記歪曲画像の第1の次元に沿う位置にマッピングするように制約が加えられており、前記歪曲画像の前記第1の次元に沿う前記位置は、同じ距離だけ前記歪曲画像の前記第1の次元に沿って隣接する位置から離間していることを特徴とする請求項1に記載の機械視覚システム。
【請求項3】
前記プロセッサは、前記中間画像から前記第2の変換を除去する前に、前記中間画像を変形するようにさらに構成されていることを特徴とする請求項1に記載の機械視覚システム。
【請求項4】
前記プロセッサは、前記中間画像から前記第2の変換を除去する前に、ダイレクトメモリアクセスコントローラに中間画像を変形させるように構成されていることを特徴とする請求項3に記載の機械視覚システム。
【請求項5】
前記ダイレクトメモリアクセスコントローラが、2次元の直接的メモリアクセスを使用して、前記中間画像を変形させるように構成されていることを特徴とする請求項4に記載の機械視覚システム。
【請求項6】
前記プロセッサが、
前記修正画像の第1のピクセルについて、前記中間画像の対応する第1の位置を決定する処理と、
前記中間画像の前記対応する第1の位置を囲むピクセルを畳み込み、前記第1のピクセルの画像値を決定する処理と、
によって前記中間画像から前記第2の変換を除去するように構成されていることを特徴とする請求項1に記載の機械視覚システム。
【請求項7】
前記プロセッサが、前記第1のピクセルの座標上で前記第2の変換を操作することにより、前記対応する第1の位置を決定するように構成されていることを特徴とする請求項6に記載の機械視覚システム。
【請求項8】
前記プロセッサが、第2の次元の前記第1のピクセルと同一の座標を有する前記修正画像の第2のピクセルについて、前記第1の次元の前記対応する第1の位置の座標に定数を加えることにより、前記中間画像の対応する第2の位置を決定するように構成されていることを特徴とする請求項6に記載の機械視覚システム。
【請求項9】
前記プロセッサが、前記修正画像をパターン検出システムに提供することで、前記パターン検出システムが前記修正画像を使用して前記修正画像が特定のパターンを含むかどうかを決定できるように構成されていることを特徴とする請求項1に記載の機械視覚システム。
【請求項10】
前記プロセッサが、前記ホモグラフィ行列を前記パターン検出システムから受信するように構成されており、前記ホモグラフィ行列は、前記歪曲画像に関連づけられたホモグラフィの仮定に基づき、前記パターン検出システムによって決定されていることを特徴とする請求項9に記載の機械視覚システム。
【請求項11】
前記プロセッサが、前記歪曲画像の前記第1の次元に沿う前記位置の1つのサブピクセル座標に基づいてカーネルのセットの1つを選択し、前記位置の1つに前記選択されたカーネルを適用するように構成されていることを特徴とする請求項1に記載の機械視覚システム。
【請求項12】
ホモグラフィ分解モジュールにおいて、歪曲画像からホモグラフィ行列の第1の変換を除去することによって生成される中間画像を受信する工程であって、前記第1の変換は前記歪曲画像を中間画像に関連づけることを特徴とする、受信する工程と、
前記中間画像からホモグラフィ行列の第2の変換を除去することによって、修正画像を生成する工程であって、前記第2の変換は前記中間画像を修正画像に関連付けることを特徴としており、かつ、
前記第2の変換は、前記修正画像の第1の次元に沿うピクセルを、前記中間画像の前記第1の次元に沿う位置にマッピングするように制約が加えられており、前記中間画像の前記第1の次元に沿う前記位置は、同じ距離だけ前記中間画像の前記第1の次元に沿って隣接する位置から離間していることを特徴としている、前記修正画像を生成する工程と、
を含むことを特徴とするコンピュータで処理される方法。
【請求項13】
前記第1の変換は、前記中間画像の前記第1の次元に沿うピクセルを、前記歪曲画像の第1の次元に沿う位置にマッピングするように制約が加えられており、前記歪曲画像の前記第1の次元に沿う前記位置は、同じ距離だけ前記歪曲画像の前記第1の次元に沿って隣接する位置から離間していることを特徴とする請求項12に記載の方法。
【請求項14】
前記中間画像から前記第2の変換を除去する前に、前記中間画像を変形させることをさらに含んでいることを特徴とする請求項12に記載の方法。
【請求項15】
前記中間画像から前記第2の変換を除去する前に、ダイレクトメモリアクセスコントローラに前記中間画像を変形させることをさらに含んでいることを特徴とする請求項14に記載の方法。
【請求項16】
前記中間画像から前記第2の変換を除去することには、前記修正画像の第1のピクセルについて、前記中間画像の対応する第1の位置を決定することと、前記中間画像の前記対応する第一の位置を囲むピクセルを畳み込み、前記第1のピクセルの画像値を決定することと、が含まれることを特徴とする請求項12に記載の方法。
【請求項17】
第2の次元の前記第1のピクセルと同一の座標を有する前記修正画像の第2のピクセルについて、前記第1の次元の前記対応する第1の位置の座標に定数を加えることにより、前記中間画像の対応する第2の位置を決定することをさらに含むことを特徴とする請求項16に記載の方法。
【請求項18】
前記修正画像をパターン検出システムに提供することで、前記パターン検出システムが前記修正画像を使用して前記修正画像が特定のパターンを含むかどうかを決定できるようにすることをさらに含むことを特徴とする請求項16に記載の方法。
【請求項19】
前記歪曲画像の前記第1の次元に沿う前記位置の1つのサブピクセル座標に基づき、カーネルのセットの1つを選択することと、前記位置の1つにおいて前記選択されたカーネルを適用することと、をさらに含むことを特徴とする請求項16に記載の方法。
【請求項20】
実行可能な命令を有する非一時的なコンピュータ可読媒体であって、機械視覚システムに、
歪曲画像からホモグラフィ行列の第1の変換を除去することによって生成される中間画像を受信する工程であって、前記第1の変換は前記歪曲画像を中間画像に関連づけることを特徴とする、受信する工程と、
前記中間画像からホモグラフィ行列の第2の変換を除去することによって、修正画像を生成する工程であって、前記第2の変換は前記中間画像を修正画像に関連付けることを特徴としており、かつ、
前記第2の変換は、前記修正画像の第1の次元に沿うピクセルを、前記中間画像の前記第1の次元に沿う位置にマッピングするように制約が加えられており、前記中間画像の前記第1の次元に沿う前記位置は、同じ距離だけ前記中間画像の前記第1の次元に沿って隣接する位置から離間していることを特徴としている、前記修正画像を生成する工程と、
を実行させることが可能である、非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書に開示するのは、画像処理用途のための画像のホモグラフィの射影(homographic projection)の修正に関する装置、システム、および方法である。
【背景技術】
【0002】
デジタル画像が、多くのデバイスによって形成され、多くの実用目的のために使用される。デバイスには、荷電結合デバイス(CCD)画像センサまたは相補型金属酸化膜半導体(CMOS)画像センサ、線走査センサ、飛点走査装置、電子顕微鏡、コンピュータ断層撮影(CT)装置を含むX線装置、磁気共鳴映像装置、ならびに当業者に知られている他のデバイスなどの、可視光または赤外光で作動する画像センサを有するカメラが含まれる。実用用途が、産業オートメーション、医学診断、様々な軍事、民事、および科学的目的のための衛生撮像、写真処理、偵察および行先監視、文献処理、ならびに他の多くの用途に見出される。
【0003】
これらの用途に対応するために、様々なデバイスによって形成された画像が、機械視覚システムによって解析されて適切な情報が抽出される。実用上かなり重要な解析の形態の1つが、撮像デバイスの視野内の対象に対応する画像のパターンの位置、配向、およびサイズの決定である。パターン検出法が、その方法が半導体製造、電子回路組立て、製薬、食品加工、消費財製造、および他の多くでロボットおよび他のオートメーション装置の誘導に使用される産業オートメーションにおいて特に重要である。
【0004】
パターン検出方法は、斜視歪曲を受けてきた画像に作用することができる。しかし、斜視歪曲は、計算上での複雑さ、およびパターン検出方法の計算時間を増す傾向がある。したがって、前処理ステップとして、画像を修正して、パターン検出方法を実施する前に斜視歪曲を除去することができる。
【発明の概要】
【発明が解決しようとする課題】
【0005】
開示の主題にしたがって、装置、システム、および方法が、画像処理用途のために画像のホモグラフィ(同形異義性)による歪曲を修正するために提供される。
【課題を解決するための手段】
【0006】
いくつかの実施形態には、機械視覚システムが含まれる。このシステムは、メモリに格納されるコンピュータプログラムを実行するように構成されるプロセッサを含むことができる。このコンピュータプログラムは、プロセッサに、歪曲画像、および歪曲画像に関連づけられたホモグラフィ行列を受信することと、ホモグラフィ分解モジュールを使用して、集合的にホモグラフィ行列を表す第1の変換および第2の変換を決定することであって、第1の変換は歪曲画像を中間画像に関連付け、第2の変換は中間画像を修正画像に関連付け、第1の変換は、中間画像の第1の次元に沿うピクセルを、歪曲画像の第1の次元に沿う位置にマッピングするように制約が加えられ、歪曲画像の第1の次元に沿う位置が、歪曲画像の第1の次元に沿って隣接する位置から同じ距離だけ離間している。さらにホモグラフィ除去モジュールを使用して、歪曲画像から第1の変換を除去することによって、中間画像を生成することと、ホモグラフィ除去モジュールを使用して、中間画像から第2の変換を除去することによって、修正画像を生成することと、を行わせるように構成することができる。
【0007】
いくつかの実施形態では、第2の変換が、修正画像の第1の次元に沿うピクセルを、中間画像の第1の次元に沿う位置にマッピングするように制約が加えられ、中間画像の第1の次元に沿う位置は、同じ距離だけ中間画像の第1の次元に沿って隣接する位置から離間する。
【0008】
いくつかの実施形態では、プロセッサが、ホモグラフィ除去モジュールを使用して、中間画像から第2の変換を除去する前に、中間画像を変形するようにさらに構成される。
【0009】
いくつかの実施形態では、プロセッサが、ホモグラフィ除去モジュールを使用して、中間画像から第2の変換を除去する前に、ダイレクトメモリアクセスコントローラ(直接的メモリアクセスコントローラ、direct memory access controller)に中間画像を変形させるようにさらに構成される。
【0010】
いくつかの実施形態では、ダイレクトメモリアクセスコントローラが、2次元のダイレクトメモリアクセスコントローラを使用して、中間画像を変形させるように構成される。
【0011】
いくつかの実施形態では、プロセッサが、ホモグラフィ除去モジュールを使用して、中間画像の第1のピクセルについて、歪曲画像の対応する第1の位置を決定することと、歪曲画像の対応する第1の位置を囲むピクセルを畳み込み、第1のピクセルの画像値を決定することと、によって歪曲画像から第1の変換を除去するようにさらに構成される。
【0012】
いくつかの実施形態では、プロセッサが、ホモグラフィ除去モジュールを使用して、第1のピクセルの座標上で第1の変換を操作することにより、対応する第1の位置を決定するようにさらに構成される。
【0013】
いくつかの実施形態では、プロセッサが、ホモグラフィ除去モジュールを使用して、第2の次元の第1のピクセルと同一の座標を有する中間画像の第2のピクセルについて、第1の次元の対応する第1の位置の座標に定数を加えることにより、歪曲画像の対応する第2の位置を決定するように構成される。
【0014】
いくつかの実施形態では、プロセッサが、ホモグラフィ除去モジュールを使用して、修正画像をパターン検出システムに提供することで、パターン検出システムが修正画像を使用して修正画像が特定のパターンを含むかどうかを決定できるようにするように構成される。
【0015】
いくつかの実施形態では、プロセッサが、ホモグラフィ行列をパターン検出システムから受信するように構成され、ホモグラフィ行列は、歪曲画像に関連づけられたホモグラフィの仮定に基づき、パターン検出システムによって決定される。
【0016】
いくつかの実施形態では、プロセッサが、ホモグラフィ除去モジュールを使用して、歪曲画像の第1の次元に沿う位置の1つのサブピクセル座標に基づき、カーネルのセットの1つを選択し、位置の1つに選択されたカーネルを適用するように構成される。
【0017】
いくつかの実施形態には、開示のシステム、または開示の非一時的な(non−transitory、固定された)コンピュータ可読媒体を操作する方法が含まれる。この方法には、ホモグラフィ分解モジュールにおいて、歪曲画像に関連づけられたホモグラフィ行列(homography matrix)を受信することと、ホモグラフィ分解モジュールを使用して、集合的にホモグラフィ行列を表す第1の変換および第2の変換を決定することであって、第1の変換は歪曲画像を中間画像に関連付け、第2の変換は中間画像を修正画像に関連付け、第1の変換は、中間画像の第1の次元に沿うピクセルを、歪曲画
像の第1の次元に沿う位置にマッピングするように制約が加えられ、歪曲画像の第1の次元に沿う位置が、歪曲画像の第1の次元に沿って隣接する位置から同じ距離だけ離間している、決定することと、ホモグラフィ分解モジュールに接続されるホモグラフィ除去モジュールを使用して、歪曲画像から第1の変換を除去することによって、中間画像を生成することと、ホモグラフィ除去モジュールを使用して、中間画像から第2の変換を除去することによって、修正画像を生成することと、が含まれる。
【0018】
いくつかの実施形態では、方法が、ホモグラフィ除去モジュールを使用して、中間画像から第2の変換を除去する前に、中間画像を変形することを含む。
【0019】
いくつかの実施形態では、方法が、ホモグラフィ除去モジュールを使用して、中間画像から第2の変換を除去する前に、ダイレクトメモリアクセスコントローラに中間画像を変形させることをさらに含む。
【0020】
いくつかの実施形態では、方法が、中間画像の第1のピクセルについて、歪曲画像の対応する第1の位置を決定することと、歪曲画像の対応する位置を囲むピクセルを畳み込み(convolve)、第1のピクセルの画像値を決定することと、を含む。
【0021】
いくつかの実施形態では、方法が、第2の次元の第1のピクセルと同一の座標を有する中間画像の第2のピクセルについて、第1の次元の対応する第1の位置の座標に定数を加えることにより、歪曲画像の対応する第2の位置を決定することを含む。
【0022】
いくつかの実施形態では、方法が、修正画像をパターン検出システムに提供することで、パターン検出システムが修正画像を使用して修正画像が特定のパターンを含むかどうかを決定できるようにすることを含む。
【0023】
いくつかの実施形態では、方法が、歪曲画像の第1の次元に沿う位置の1つのサブピクセル座標に基づき、カーネルのセットの1つを選択することと、位置の1つにおいて選択されたカーネルを適用することと、を含む。
【0024】
いくつかの実施形態には、ホモグラフィ分解モジュールおよびホモグラフィ除去モジュールに関連する実行可能な命令を有する非一時的なコンピュータ可読媒体が含まれる。このモジュールは、機械視覚システムに、歪曲画像に関連づけられたホモグラフィ行列を受信することと、集合的にホモグラフィ行列を表す第1の変換および第2の変換を決定することであって、第1の変換は歪曲画像を中間画像に関連付け、第2の変換は中間画像を修正画像に関連付け、第1の変換は、中間画像の第1の次元に沿うピクセルを、歪曲画像の第1の次元に沿う位置にマッピングするように制約が加えられており、歪曲画像の第1の次元に沿う位置が、歪曲画像の第1の次元に沿って隣接する位置から同じ距離だけ離間している。さらに、歪曲画像から第1の変換を除去することによって中間画像を生成することと、中間画像から第2の変換を除去することによって修正画像を生成することと、を行わせるように操作することが可能である。
【0025】
本明細書に記載される、開示の装置、システム、および方法により、多段階の修正プロセス(rectification process、順変換工程)を使用して歪曲画像を修正画像にマッピングすることによって、歪曲画像のホモグラフィによる歪曲の修正の効率を向上させることができる。修正プロセスの各段階は、計算を減らし、メモリからの画像にアクセスするのに必要な時間の量を減らすように設計される。
【0026】
いくつかの実施形態には、機械視覚システム(machine vision system)が含まれる。このシステムには、メモリに格納されるコンピュータプログラムを
実行するように構成されるプロセッサが含まれ得る。このコンピュータプログラムはプロセッサに、第1の画像、および第1の画像に関連する第1の変換を受信することであって、第1の変換は第1の画像を第2の画像に関連づけ、第2の画像の次元に沿う複数のピクセルを第1の画像の次元に沿う複数の位置にマッピングするように制約が加えられる、受信することと、複数のピクセルの第1のピクセルについて、第1の画像の対応する第1の位置の座標を決定することと、第1の位置の座標に関連するサブピクセルのフェーズ(サブピクセルの相、sub−pixel phase)に基づき、複数のカーネルの1つを選択することであって、サブピクセルのフェーズが第1の画像のピクセルグリッドからの第1の位置のサブピクセルのオフセット(sub−pixel offset)を示す、選択することと、部分的に、選択されたカーネルを第1の画像の第1の位置の周りの少なくとも1つのピクセルに適用して、第2の画像の第1のピクセルの画像値(image value)を決定することにより、第1の画像から第2の画像を生成することと、を行わせるように構成され得る。
【0027】
いくつかの実施形態では、プロセッサが、第1のピクセルの座標上で第1の変換を操作することにより、第1の位置の座標を決定するように構成される。
【0028】
いくつかの実施形態では、プロセッサが、複数のピクセルの第2のピクセルについて、第1の位置の座標に定数を加えることにより、第1の画像の対応する第2の位置の座標を決定するように構成される。
【0029】
いくつかの実施形態では、プロセッサが、第2の位置の座標に関連するサブピクセルのフェーズに基づき、複数のカーネルの第2のカーネルを選択することと、部分的に、複数のカーネルの第2のカーネルを第1の画像の第2の位置の周りの少なくとも1つのピクセルに適用して、第2の画像の第2のピクセルの画像値を決定することにより、第1の画像から第2の画像を生成することと、を行うように構成される。
【0030】
いくつかの実施形態では、プロセッサが、第2の画像に関連する第2の変換を受信することであって、第2の変換は第2の画像を第3の画像に関連づけ、第3の画像の次元に沿う複数のピクセルを第2の画像の次元に沿う複数の位置にマッピングするように制約が加えられる、受信することと、第3の画像の第1のピクセルについて、第3の画像の対応する第1の位置の座標を決定することと、第3の画像の第1の位置の座標に関連するサブピクセルのフェーズに基づき、複数のカーネルの1つを選択することと、部分的に、複数のカーネルの1つを第3の画像の第1の位置の周りの少なくとも1つのピクセルに適用して、第3の画像の第1のピクセルの画像値を決定することにより、第2の画像から第3の画像を生成することと、を行うように構成される。
【0031】
いくつかの実施形態には、開示のシステムまたは開示の非一時的なコンピュータ可読媒体を操作する方法が含まれる。この方法は、第1の画像、および第1の画像に関連する第1の変換を受信することであって、第1の変換は第1の画像を第2の画像に関連づけ、第2の画像の次元に沿う複数のピクセルを第1の画像の次元に沿う複数の位置にマッピングするように制約が加えられる、受信することと、複数のピクセルの第1のピクセルについて、第1の画像の対応する第1の位置の座標を決定することと、第1の位置の座標に関連するサブピクセルのフェーズに基づき、複数のカーネルの1つを選択することであって、サブピクセルのフェーズが第1の画像のピクセルグリッドからの第1の位置のサブピクセルのオフセットを示す、選択することと、部分的に、選択されたカーネルを第1の画像の第1の位置の周りの少なくとも1つのピクセルに適用して、第2の画像の第1のピクセルの画像値を決定することにより、第1の画像から第2の画像を生成することと、を含む。
【0032】
いくつかの実施形態では、第1の位置の座標を決定することには、第1のピクセルの座
標上で第1の変換を操作することが含まれる。
【0033】
いくつかの実施形態では、方法が、複数のピクセルの第2のピクセルについて、第1の位置の座標に定数を加えることで、第1の画像の対応する第2の位置の座標を決定することをさらに含む。
【0034】
いくつかの実施形態では、方法が、第2の位置の座標に関連するサブピクセルのフェーズに基づき、複数のカーネルの第2のカーネルを選択することと、部分的に、複数のカーネルの第2のカーネルを第1の画像の第2の位置の周りの少なくとも1つのピクセルに適用して、第2の画像の第2のピクセルの画像値を決定することにより、第1の画像から第2の画像を生成することと、をさらに含む。
【0035】
いくつかの実施形態では、方法が、第2の画像に関連する第2の変換を受信することであって、第2の変換は第2の画像を第3の画像に関連づけ、第3の画像の次元に沿う複数のピクセルを第2の画像の次元に沿う複数の位置にマッピングするように制約が加えられる、受信することと、第3の画像の第1のピクセルについて、第3の画像の対応する第1の位置の座標を決定することと、第3の画像の第1の位置の座標に関連するサブピクセルのフェーズに基づき、複数のカーネルの1つを選択することと、部分的に、複数のカーネルの1つを第3の画像の第1の位置の周りの少なくとも1つのピクセルに適用して、第3の画像の第1のピクセルの画像値を決定することにより、第2の画像から第3の画像を生成することと、をさらに含む。
【0036】
いくつかの実施形態には、ホモグラフィ分解モジュールおよびホモグラフィ除去モジュールに関連する実施可能な命令を有する非一時的なコンピュータ可読媒体が含まれる。このモジュールは、機械視覚システムに、第1の画像、および第1の画像に関連する第1の変換を受信することであって、第1の変換は第1の画像を第2の画像に関連づけ、第2の画像の次元に沿う複数のピクセルを第1の画像の次元に沿う複数の位置にマッピングするように制約が加えられる、受信することと、複数のピクセルの第1のピクセルについて、第1の画像の対応する第1の位置の座標を決定することと、第1の位置の座標に関連するサブピクセルのフェーズに基づき、複数のカーネルの1つを選択することであって、サブピクセルのフェーズは第1の画像のピクセルグリッドからの第1の位置のサブピクセルのオフセットを示す、選択することと、部分的に、選択されたカーネルを第1の画像の第1の位置の周りの少なくとも1つのピクセルに適用して、第2の画像の第1のピクセルの画像値を決定することにより、第1の画像から第2の画像を生成することと、を行わせるように操作可能である。
【0037】
いくつかの実施形態では、実施可能な命令は、機械視覚システムに、複数のピクセルの第2のピクセルについて、第1の位置の座標に定数を加えることで、第1の画像の対応する第2の位置の座標を決定させるように、さらに操作可能である。
【0038】
いくつかの実施形態では、複数のカーネルが、複数のサブフェイズにおいてサンプリングされる同一の関数に対応する。
【0039】
いくつかの実施形態では、第1の変換および第2の変換が集合的な擬似変換(アフィン変換、affine transformation)を表す。
【0040】
いくつかの実施形態では、第1の変換がダウンサンプリング操作(down sample、低解像度処理)を含む。
【0041】
いくつかの実施形態では、第1の変換が第1の変換行列を含む。
【0042】
本明細書に記載される、開示の装置、システム、および方法により、多段階修正プロセスを使用して歪曲画像を修正画像にマッピングすることによって、歪曲画像のホモグラフィによる歪曲の修正の効率を向上させることができる。修正プロセスの各段階は、計算を減らし、メモリからの画像にアクセスするのに必要な時間の量を減らすように設計されている。
【0043】
以下のその詳細な説明がより良く理解され得るために、また、技術への本件の寄与がより良く認識され得るために、開示の主題の特徴をこうして幾分大まかに概説した。もちろん、これ以降に記載され、本明細書に添付される特許請求の範囲の主題を形成する、開示の主題のさらなる特徴がある。本明細書に利用される言い回しおよび用語は、説明を目的とするものであり、限定的に捉えられるべきではないことを理解されたい。
【0044】
開示の主題の様々な目的、特徴、および利点が、以下の図面と関連づけて考察されると、以下の開示の主題の詳細な説明を参照することで、より完全に認識され得る。図面において、同様の参照符号は同様の要素を識別する。
【図面の簡単な説明】
【0045】
図1図1は、いくつかの実施形態による、歪曲画像のホモグラフィを修正する機械視覚システムを示す。
図2図2は、いくつかの実施形態による、修正画像を中間画像に歪曲させる第2の変換Bの適用、および、中間画像を歪曲画像に歪曲させる第1の変換Aの適用を示す。
図3図3は、いくつかの実施形態による、2段階画像マッピングプロセスを示す。
図4図4は、いくつかの実施形態による、斜視湾曲を受けた歪曲画像の例を示す。
図5図5は、いくつかの実施形態による、図4の歪曲画像から第1の変換を除去することによって生成される中間画像の例を示す。
図6図6は、いくつかの実施形態による、図5の中間画像から第2の変換Bを除去することによって生成される修正画像の例を示す。
【発明を実施するための形態】
【0046】
以下の説明では、開示の主題を十分に理解することを可能にするために、開示の主題のシステムおよび方法、ならびにそれらのシステムおよび方法が機能できる環境などに関して、多数の具体的な詳細が説明される。しかし、開示の主題はそのような具体的な詳細に関わらず実施され得、また、開示の主題が複雑になることを避けるために、当該技術分野で周知の特定の特徴は詳細に記載されないことが、当業者には明らかになる。さらに、以下に提供される例は例示的なものであり、また、開示の主題の範囲内にある他のシステムおよび方法が存在することが予想されることが理解されよう。
【0047】
画像は、その値が、たとえば明るさ(反射された、または別様の放射エネルギー)、色、温度、基準面からの高さなどの対象の物理的特性に対応し、任意の画像形成デバイスによって測定されるか、その値が、対象のシミュレートされる特性に対応し、任意のデータ処理デバイスによって生成される、2次元的相関関係を含み得る。画像は、2次元行列と見なすことができ、2次元行列の各ビン(bin、たとえば、ピクセル)は、値、または値のセットと関連する。各ピクセルは、2次元座標(x,y)を使用して識別することができる。いくつかの実施形態では、同一のy座標を有するピクセルのセットによって画像の列を識別することができ、同一のx座標を有するピクセルのセットによって画像の行を識別することができる。
【0048】
歪曲画像には、たとえば斜視効果(perspective effect)による歪曲を受けた画像が含まれ得る。歪曲画像は、画像平面上に配置することができ、それは、対象の平面の斜視図を表し得る。したがって、対象の平面の平行線は、画像平面上で、歪曲画像内または歪曲画像外のいずれかで、一点に集まる場合がある。
【0049】
修正画像は、歪曲画像から歪曲(たとえば、斜視効果)を除去することによって元に戻される画像を含み得る。修正画像は、対象の平面に配置することができ、それは、対象の平面の正射影図を表し得る。修正画像において、対象の平面の消失線は無限遠での線となる場合がある。
【0050】
画像処理は、画像に示される特徴の指標(characteristics offe
atures)を決定するための画像の自動分析に関する場合がある。画像処理は、たとえば、部品の画像を分析して、組立ての前に位置と配列を決定する、自動化された製造ラインにおいて使用される。画像処理は、たとえば、パッケージの画像を分析して、製品のラベル、ロット番号、および「賞味」期限が適切に配置され、読みやすくなっていることを保証する、品質確認においても使用される。
【0051】
画像処理は、産業上のものではない用途も有する。バイオテクノロジーの研究においては、画像処理はたとえば、顕微鏡により画像化されたサンプルの組成、または培養液内の生長パターンを識別するのに使用することができる。巨視的なスケール上では、低速度撮影画像において対象を見つけるために天文学の研究に使用することができる。画像処理の気象上、農業上、および防衛上の用途には、衛星画像における対象の検出および分析が含まれる。
【0052】
対象/パターン/特徴点の検出の精度を向上させるための画像処理技術の1つが、ホモグラフィの修正(rectification、順変換)である。ホモグラフィは、空間の同一の2次元表面の2つの画像間の関係に関する。ホモグラフィは、画像の修正に用途を有し、このことは、歪曲画像を、消失線が無限遠の線になる共通の画像平面の修正画像にマッピングするプロセスに関する場合がある。この変換プロセスは、ホモグラフィの修正と呼ぶことができる。ある意味では、ホモグラフィの修正により、撮像システムの斜視プロパティによって導入される歪曲が除去される。
【0053】
ホモグラフィの修正において、ホモグラフィ(たとえば、歪曲画像と修正画像との間のマッピング)がわかると、画像マッピング技術を使用して、歪曲画像からホモグラフィを除去して修正画像に戻すことができる。この除去操作には、サイズの変更、転換、回転、斜めに歪めること、および/または他の画像変換操作の1つまたは複数を含む場合がある、1つまたは複数の画像処理操作が含まれ得る。
【0054】
慣習的な画像マッピング技術は、不都合に遅く、ほとんどの画像処理用途について、計算に集中しすぎている。慣習的な画像マッピング技術ではしばしば、修正画像のすべてのピクセル位置について、歪曲画像の対応するピクセル位置を識別し、その歪曲画像での対応するピクセル位置の値を、修正画像の関連するピクセル位置にコピーして、マッピングを完了する。単純な例では、修正画像のすべてのピクセルの座標位置が、ソースに存在するピクセルに直接マッピングされる。したがって、たとえば、修正画像の座標(4,10)のピクセルが歪曲画像の座標(2,5)にマッピングされたり、修正画像の(6,10)のピクセルが歪曲画像の(3,5)にマッピングされたりする。
【0055】
しかし、修正画像のピクセルが歪曲画像のグリッド位置に直接マッピングされることはまれである。したがって、たとえば、修正画像の座標(4,10)のピクセルが、サブピクセルだけピクセルグリッドから離れた位置、たとえば、歪曲画像の座標(2.5,5.
33)にマッピングされる場合がある。このため、決定位置における適切な画像値を決定するために、補間および/またはフィルタリングを必要とする場合がある。上述の例では、修正画像の座標(4,10)のピクセルの適切な強度が、ソースのピクセル位置(2,5)、(3,5)、(2,6)、および(3,6)の強度の加重平均値として決定される場合がある。以下、位置(location)という用語は、平面における座標に言及するのに使用し、ピクセルグリッド上にあるか、ピクセルグリッド上にない場合がある。
【0056】
そのような画像マッピング技術は通常、計算上の費用がかかり、かつ多くの時間がかかり、この理由は、歪曲画像の対応するピクセル(複数の場合もある)を、修正画像の各ピクセルについて独立して識別しなければならないためである。
【0057】
さらに、そのような画像マッピング技術は通常、そのメモリの使用において非効率的であり、この理由は、それらの技術により、それがメモリ構造に並べられていない方式(たとえば、データがメモリ内に格納される方法)でメモリに格納されるピクセルにアクセスするためである。たとえば、画像マッピング技術が歪曲画像の1つまたは複数のピクセルを使用して、修正画像のピクセルについての画像値を補間する場合、1つまたは複数のピクセルがメモリから呼び出される。ダイナミックランダムアクセスメモリ(DRAM)などの所定の種類のメモリは、連続するメモリ位置(たとえば、画像の連続するx座標)にアクセスする特性を有し、一般に、連続しないアクセスよりも非常に速い。したがって、メモリからの1つまたは複数のピクセルにアクセスする順番、または1つまたは複数のピクセルがメモリに書き込まれる順番が、迅速なメモリアクセス操作に不可欠である場合がある。残念ながら、慣習的な画像マッピング技術は、1つまたは複数のピクセルを呼び出す順番がメモリに好適であることを保証していない。メモリからアクセスされる1つまたは複数のピクセルが、メモリ内の連続するメモリ位置に対応していない場合があるので、メモリからピクセルを取り出すのに時間がかかる可能性がある。
【0058】
慣習的な画像マッピング技術に関連するいくつかの問題点が、「3D Transformations of Images in Scanline Order」(カトムル(catmull)及びスミス,1980)である程度扱われた。カトムルは、修正画像内のピクセル(目標ピクセルと呼ばれる)に対応する歪曲画像のピクセル(ソースピクセルと呼ばれる)がメモリ内の連続する位置に配置されるように、画像マッピングプロセスを複数の段階に分解する方法を示している。しかし、カトムルの方法は依然として、各目標ピクセルについて実質的な計算、特に除法を実施することを必要とする。カトムルは、その方法を専用のハードウェアに組合せて、計算スピードを向上させたようであるが、その方法は、汎用プロセッサで効果的に実施するのは容易ではない。
【0059】
慣習的な画像マッピング技術に関連するいくつかの問題点が、「High−quality multi−pass image resampling」(ツェリスキー(Szeliski)ら ,2010)でもある程度扱われた。ツェリスキーは、ほぼ間違いなく所定の所望の特性を有する画像マッピングのいくつかのクラスを実施する方法を開示している。しかし、ツェリスキーの方法は、ホモグラフィ/斜視画像マッピングに適用されない。実際、ツェリスキーは、「完全な計算効率を達成することが困難であることから、最適な複数パス斜視アルゴリズムの理論はまだ完全には開発していない」と認めている。したがって、ホモグラフィ/斜視画像マッピングのための、計算とメモリのアクセスの効率を向上させる必要がある。
【0060】
本開示は、歪曲画像を修正画像にマッピングするための多段階()画像マッピング機構を提供する。たとえば、多段階画像マッピング機構により、(1)歪曲画像から歪曲を部分的に除去して中間画像を生成する第1の段階と、(2)中間画像から残りの歪曲を除去して修正画像に戻す第2の段階と、の2段階で、歪曲画像からホモグラフィを除去して、
修正画像を再構成することができる。(1)2つの画像のピクセル間の対応を識別すること、(2)メモリからのピクセルにアクセスすること、および(3)画像値を決定するためにピクセルをフィルタリングすることにおいて、各段階を効率的とすることが可能であるため、多段階機構が有利となり得る。
【0061】
このため、多段階画像マッピング機構により、ホモグラフィ変換Hが、2つの別々の変換、第1の変換Aと第2の変換Bとに分解される。したがって、
H = A * B
である。この表現の下では、第2の変換Bが対象の平面(たとえば、修正された画像に関連する平面)の座標を中間画像の平面(たとえば、中間画像に関連する平面)の座標にマッピングするように設計され、第1の変換Aが中間画像の平面の座標を画像の平面(たとえば、歪曲画像に関連づけられた平面)の座標にマッピングするように設計される。したがって、多段階画像マッピング機構の第1の段階は、歪曲画像から第1の変換Aを除去して中間画像を生成するものと考えることができ、多段階画像マッピング機構の第2の段階は、中間画像から第2の変換Bを除去して修正画像を生成するものと考えることができる。
【0062】
前の説明では、ソース画像は、ホモグラフィの分解される変換(たとえば、第1の変換Aまたは第2の変換B)の1つへの入力として提供される画像に関し、目標画像は、ホモグラフィの分解される変換(たとえば、第1の変換Aまたは第2の変換B)の1つからの出力として提供される画像に関する。たとえば、第2の変換Bについては、ソース画像は修正画像であり、目標画像は中間画像である。また、第1の変換Aについては、ソース画像は中間画像であり、目標画像は歪曲画像である。
【0063】
いくつかの実施形態では、1つまたは複数の分解される変換(Aおよび/またはB)が、特定のy座標を有するソース画像のすべてのピクセルを、決まったy座標を有する目標画像のピクセルにマッピングするように設計される。一例では、第1の変換Aがソース画像の列を目標画像の列にマッピングするように構成される。この特徴により、大部分のメモリがソース画像および/または目標画像についてメモリ構造と整列させるようにアクセスすることが可能になり、それによってキャッシュミスが減り、外部メモリにアクセスするためのアクセス時間が短縮される。
【0064】
いくつかの実施形態では、1つまたは複数の分解される変換(Aおよび/またはB)が、ソース画像の特定の列のピクセルを目標画像の決まった列の隣接する位置から等距離にある位置にマッピングするように構成される。たとえば、ソース画像(たとえば、第1の変換Aについての中間画像)のピクセル(1,y)、(2,y)、(3,y)を、目標画像(たとえば、第1の変換Aについての歪曲画像)のピクセル(2,y)、(4,y)、(6,y)にマッピングすることができる。前のように、目標画像の決まった列は、ピクセルグリッドからサブピクセル値だけオフセットしてもよい。したがって、座標yは、小数の座標値(たとえば、3.5)となり得る。
【0065】
いくつかの実施形態では、目標画像における位置間の距離が一定であるため(「サンプリング定数」と称する)、画像マッピング技術により、ソース画像の特定の列のピクセルに対応する目標画像の位置を独立して計算する必要はない。代わりに、画像マッピング技術により、ソース画像の第1のピクセルに対応する目標画像の第1の位置が識別されると、画像マッピング技術により第1の位置を参照ポイントとして使用して、ソース画像の第1のピクセルと同じ列の隣接するピクセルに対応する第2の位置を(たとえば、第1の位置のx座標にサンプリング定数を単に加えることによって)決定する。分解される変換のこの特性により、ソース画像のピクセルに対応する目標画像の1つまたは複数の位置を識別するために必要な計算量が減少する。
【0066】
図1は、いくつかの実施形態による、歪曲画像のホモグラフィを修正する機械視覚システム100を示す。システム100は、プロセッサ104、メモリ106、ホモグラフィ修正(HR)モジュール108、直接的メモリアクセス(DMA)コントローラ114を含むコンピュータデバイス102と、インターフェイス116とを含み得る。システム100は、現場の画像を生成することができる画像取得デバイスをも含み得る。
【0067】
いくつかの実施形態では、プロセッサ104は命令を実行することができ、1つまたは複数のメモリデバイス106は命令および/またはデータを格納することができる。メモリデバイス106は、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、フラッシュメモリ、磁気ディスクドライブ、光学ドライブ、プログラマブルリードオンリーメモリ(PROM)、リードオンリーメモリ(ROM)、もしくは他の任意のメモリまたはメモリの組合せなどの、非一時的なコンピュータ可読媒体とすることができる。メモリデバイス106は、一時的にデータを格納するのに使用することができる。メモリデバイス106は、長期間のデータの格納にも使用することができる。プロセッサ104およびメモリデバイス106は、特定の目的の論理回路により補足および/または特定の目的の論理回路に組み込むことができる。
【0068】
いくつかの実施形態では、HRモジュール108はホモグラフィ分解モジュール110およびホモグラフィ除去モジュール112を含み得る。
【0069】
ホモグラフィ分解モジュール110は、歪曲画像から除去されるホモグラフィの表示を受信し、このホモグラフィに対応する分解される変換を決定するように構成することができる。分解される変換には、たとえば、歪曲画像から除去して中間画像を生成する第1の変換A、および、中間画像から除去して修正画像を生成する第2の変換Bが含まれ得る。いくつかの実施形態では、分解される変換には、歪曲画像から順に除去して修正画像を生成することができる、3つ以上の変換、たとえば、3つまたは4つの変換が含まれ得る。
【0070】
ホモグラフィ分解モジュール110は、ソース画像の特定の列のすべてのピクセルが、目標画像の決まったy座標にマッピングされるように、1つまたは複数の分解される変換に制約を加えることができる。決まったy座標は整数であってもよく、その場合、ソース画像の特定の列のすべてのピクセルは目標画像の決まった列にマッピングされる。同様に、ホモグラフィ分解モジュール110は、ソース画像の特定の列のピクセルが、目標画像の決まったy座標において互いから等距離にある位置にマッピングされるように、1つまたは複数の分解される変換に制約を加えることができる。
【0071】
ホモグラフィ除去モジュール112は、歪曲画像から分解される変換を除去して修正画像に戻すように構成することができる。たとえば、ホモグラフィ除去モジュール112は、歪曲画像から第1の変換Aを除去して中間画像を生成することができ、中間画像から第2の変換Bを除去して修正画像に戻すことができる。いくつかの実施形態では、ホモグラフィ除去モジュール112は、目標画像の列をダウンサンプリング(down−sample)して、目標画像から分解される変換を除去することができる。この場合、ホモグラフィ除去モジュール112は目標画像の各列を異なるサンプリング比でダウンサンプリングして、分解される変換の斜視歪曲に対処することができる。
【0072】
いくつかの実施形態では、ホモグラフィ除去モジュール112は、分解される変換の除去プロセスの一部として、目標画像をダウンサンプリングするように構成することができる。このことは、たとえばダウンサンプリング比により、分解される変換を適切にスケーリングすることによって行うことができる。
【0073】
いくつかの実施形態では、直接的メモリアクセス(DMA)コントローラ114が、特定のハードウェアデバイスがメインメモリとの間で直接データを送受信することを可能にするように構成され、それによってメモリ操作を高速化するようにプロセッサ104をバイパスする。たとえば、DMAコントローラ114により、ホモグラフィ分解モジュール110に、プロセッサ104を伴うことなくメモリ106にアクセスすることを可能にすることができる。いくつかの実施形態では、DMAコントローラ114は2次元DMAを実施することができる。この2次元DMAにより、画像の行に対応していないメモリ内の一定のバイト数を自動的に飛び越えることができる。
【0074】
いくつかの実施形態では、インターフェイス116は、ハードウェア内で実施されて、光学、チョッパ、および/または無線インターフェイスなどの様々な媒体で、およびその中の固定されているものがあってもよい、いくつかの異なるプロトコルで信号を送受信することができる。
【0075】
いくつかの実施形態では、モジュール108、110、112の1つまたは複数をソフトウェア内で実施することができる。このソフトウェアは、コンピュータの命令またはコンピュータコードを実行可能であるプロセッサ104上で実行することができる。プロセッサ104は、特定用途向け集積回路(ASIC)、プログラマブル論理アレイ(PLA)、デジタルシグナルプロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、または任意の他の集積回路を使用して、ハードウェア内で実施される。コンピュータプログラムを実行するのに適切なプロセッサ104には、例として、一般と特殊の両方の目的のマイクロプロセッサ、デジタルシグナルプロセッサ、および任意の種類のデジタルコンピュータの任意の1つまたは複数のプロセッサが含まれる。一般に、プロセッサ104はリードオンリーメモリもしくはランダムアクセスメモリ、またはその両方から命令およびデータを受信する。
【0076】
モジュール108、110、112は、デジタル電子回路内、またはコンピュータのハードウェア、ファームウェア、ソフトウェア、もしくはそれらの組合せの中で実施することができる。実施は、たとえばプログラマブルプロセッサ、コンピュータ、および/または複数のコンピュータなどのデータ処理装置によって実行させる、または操作を制御させる、たとえば機械読取り可能な記憶デバイスに明白に埋め込まれたコンピュータプログラムなどの、コンピュータプログラム製品としてすることができる。コンピュータプログラムは、ソースコード、コンパイルコード、解釈されたコード、および/または機械コードを含むコンピュータまたはプログラミング言語の任意の形式で書き込むことができる。また、コンピュータプログラムは、スタンドアローンなプログラムまたはサブルーチンとして、コンピュータ環境での使用に適切な要素、または他の単位を含む任意の形式で展開することができる。コンピュータプログラムは、展開して、1つのコンピュータ、または1つまたは複数の現場の複数のコンピュータ上で実行することができる。
【0077】
いくつかの実施形態では、2つ以上のモジュール108、110、112を、ASIC、PLA、DSP、またはFPGAなどの同じ集積回路上で実施することができ、それによってチップ上にシステムを形成する。サブルーチンは、1つまたは複数の機能を実施する、コンピュータプログラム、および/またはプロセッサ/特定の電子回路の部分に関連することができる。
【0078】
コンピュータデバイス102は、画像取得デバイスに操作可能に接続することができる。画像取得デバイス118は、インターフェイス116を介して、1つまたは複数の修正される画像を提供することができる。画像取得デバイス118には、荷電結合デバイス(CCD)画像センサまたは相補型金属酸化膜半導体(CMOS)画像センサ、線走査センサ、飛点走査装置、電子顕微鏡、コンピュータ断層撮影(CT)装置を含むX線装置、磁
気共鳴映像装置、ならびに当業者に知られている他のデバイスが含まれ得る。
【0079】
コンピュータデバイス102は、命令および/もしくはデータを装置もしくはネットワークから受信するために、および/または命令および/もしくはデータを装置もしくはネットワークに送信するために、たとえばファクトリーオートメーションもしくは物流機材などの外部装置、または、たとえばファクトリーオートメーションもしくは物流機材のネットワークなどの通信ネットワークと操作可能に接続することができる。コンピュータプログラムの命令およびデータを具体化するのに適切なコンピュータ可読記憶デバイスには、DRAM、SRAM、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、内蔵ハードディスクまたはリムーバブルディスクなどの磁気ディスク、磁気光学ディスク、ならびにCD、DVD、HD−DVD、およびBlu−ray(登録商標)ディスクなどの光学ディスクを例として含む、すべての形式の揮発性および非揮発性メモリが含まれる。
【0080】
いくつかの実施形態では、コンピュータデバイス102はユーザ装置を含むことができる。ユーザ装置は、1つまたは複数の無線アクセスネットワーク、および有線通信ネットワークと通信することができる。ユーザ装置は、移動電話であってもよい。ユーザ装置はまた、ワードプロセッシング、ウェブブラウジング、ゲーミング、電子書籍機能、オペレーティングシステム、およびフルキーボードなどのサービスを提供するスマートフォンでもよい。ユーザ装置は、ネットワークへのアクセス、およびスマートフォンによって提供されるサービスのほとんどを提供するタブレットコンピュータでもよい。ユーザ装置は、Symbian OS、iPhone(登録商標)OS、RIMのBlackberry(登録商標)、Windows Mobile(登録商標)、Linux(登録商標)、HP WebOS、およびAndroid(登録商標)などのオペレーティングシステムを使用して機能する。スクリーンはデータをモバイルデバイスに入力するのに使用されるタッチスクリーンであってもよく、その場合、スクリーンはフルキーボードの代わりに使用することができる。ユーザ装置は、全地球測位座標、プロフィール情報、または他の位置情報を保有することもできる。
【0081】
いくつかの実施形態では、コンピュータデバイス102はサーバを含むことができる。サーバは、オペレーティングシステム(OS)ソフトウェアを使用して機能することができる。いくつかの実施形態では、OSソフトウェアは、Linux(登録商標)ソフトウェアカーネルを基礎とし、タスクの監視およびプロトコルスタックの提供などの特定のアプリケーションをサーバ内で実行する。OSソフトウェアは、制御およびデータパスのために、サーバのリソースを別々に配置することを許容する。たとえば、特定のパケットアクセラレータカードおよびパケットサービスカードがルーティングまたはセキュリティコントロール機能の実施に割り当てられ、一方では他のパケットアクセラレータカード/パケットサービスカードがユーザのセッショントラフィックの処理に割り当てられる。ネットワークの要求が変化すると、ハードウェアのリソースを動的に展開して、いくつかの実施形態における要求に対処することができる。
【0082】
いくつかの実施形態では、ホモグラフィ除去モジュール112は、2段階画像マッピングプロセスを使用して、歪曲画像を修正して修正画像に戻すように構成することができる。2段階画像マッピングプロセスの第1の段階では、ホモグラフィ除去モジュール112は、歪曲画像のx軸に沿ってピクセルを処理することにより、歪曲画像から第1の変換Aを除去して中間画像を生成することができ、2段階画像マッピングプロセスの第2の段階では、ホモグラフィ除去モジュール112は、中間画像のy軸に沿ってピクセルを処理することにより、第2の変換Bを除去することができる。
【0083】
いくつかの実施形態では、ホモグラフィ除去モジュール112がソース画像のx軸に沿
って、および目標画像のx軸に沿って、優先的にピクセルにアクセスするように、ホモグラフィの1つまたは複数の分解される変換を設計することができる。この理由は、メモリは通常、画像のx軸に対して整列されるためである。言い換えると、メモリは通常、画像のすべてのピクセルが格納されるまで、(1)x軸に沿うピクセルの順番を維持しつつ、第1のy座標を有するすべてのピクセルを格納し、その後に、(2)x軸に沿うピクセルの順番を維持しつつ、第2のy座標(しばしば、第1のy座標に隣接する)を有するすべてのピクセルを格納することによって、画像を格納する。したがって、画像のx軸に沿うピクセルに優先的にアクセスする1つまたは複数の分解される変換を設計することによって、ホモグラフィ除去モジュール112が直接的メモリアクセス、たとえば、ダイレクトメモリアクセスコントローラを使用して、キャッシュミスおよびアクセス時間を減少させることができる。
【0084】
いくつかの実施形態では、ホモグラフィ除去モジュール112は、2段階画像マッピングプロセスの第2の段階を開始する前に、2段階画像マッピングプロセスの第1の段階によって生成された中間画像を変形するように構成することができる。そうすることによって、2段階画像マッピングプロセスの第2の段階が中間画像のy軸に沿ってピクセルを処理するように構成されていても、ホモグラフィ除去モジュール112は依然として、変形された中間画像のx軸(これは事実上、変形された中間画像のy軸である)に沿うピクセルに優先的にアクセスして、2段階画像マッピングプロセスの第2の段階の間にメモリアクセスをメモリ構造に整列させることができる。
【0085】
上述のように、いくつかの実施形態では、ホモグラフィ分解モジュール110は、ホモグラフィを、集合的にホモグラフィを示す第1の変換と第2の変換とに分解するように構成される。場合によっては、ホモグラフィ分解モジュール110が所定のホモグラフィを受信すると、ホモグラフィ分解モジュール110は、ホモグラフィと、第1の変換と、第2の変換との間の所定の関係を使用して、分解を決定することができる。以下に、ホモグラフィと、第1の変換と、第2の変換との間の所定の関係を記載する。
【0086】
ホモグラフィは通常、3×3ホモグラフィ行列Hを使用して一様座標(x,y,z)に表され、ここでは、下付文字hが、変数が一様座標に関連することを示す。(x,y)が対象平面(たとえば、修正画像に関連する平面)の座標系であり、(x’,y’)が画像平面(たとえば、歪曲画像に関連づけられた平面)の座標系であると仮定する。一様座標の定義により、以下の式が成り立つ。
【数1】

【数2】

【数3】

【数4】
【0087】
通常の斜視操作は以下のように示すことができる。
【数5】

または、Hの座標を明確に識別することによって同様に示すことができる。
【数6】
【0088】
一般性を失うことなく、ホモグラフィ分解モジュール110により、画像平面の原点を選択することができ、目標平面の原点となる位置も同様に規定する。この方法で、ホモグラフィ行列Hを簡約して、転換(translation)を除去することができる。すなわち、

02=h12=0
である。
【0089】
さらに、一様座標の表示と同様に、ホモグラフィ分解モジュール110により、ホモグラフィ行列Hの全体の大きさを任意に設定することができる。いくつの実施形態では、ホモグラフィ分解モジュール110により、ホモグラフィ行列Hの大きさを、h22=1に設定することによって設定することができる。
【0090】
それらの仮定により、対象平面と画像平面との間のホモグラフィを規定するホモグラフィ行列Hは、6つのパラメータを有し、以下のように記すことができる。
【数7】

このホモグラフィ行列の表示により、任意の量の回転を修正することが許容される。
【0091】
場合によっては、ホモグラフィ行列Hには、修正画像の質を向上させるために、さらに制約を加えることができる。このため、ホモグラフィ分解モジュール110により、ホモグラフィ行列Hの回転要素に制約を加えることができる。ホモグラフィ行列Hの回転要素の制約は、事実上、ホモグラフィ行列Hに関連する回転量を決定する(たとえば、決める)。
【0092】
いくつかの実施形態では、ホモグラフィ分解モジュール110は、h01=h10と設定することにより、ホモグラフィ行列Hの回転要素に制約を加えるように構成される。この制約の下では、対象平面と画像平面との間のホモグラフィを規定するホモグラフィ行列Hが5つのパラメータを有し、以下のように記すことができる。
【数8】

場合によっては、変形した画像に関連する実際の回転は、ホモグラフィ行列Hに関連する回転量から実質的に逸脱し得る。このことは、性能の望ましくない低下につながる場合がある。そのような場合、ホモグラフィ分解モジュール110により、ホモグラフィ除去モジュール112に、多段階の修正プロセスの段階1の間に局所的にダウンサンプリングし、その後に、多段階の修正プロセスの段階2の間に局所的にアップサンプリングして、性能の低下を抑制するように命令することができる。
【0093】
いくつかの実施形態では、ホモグラフィ行列Hには、傾きに関して2つの自由度のみを含むように、さらに制約を加えることができる。傾きに関する2つの自由度は、(1)傾斜方向τ(方位角としても知られる)、および(2)傾斜量σ(傾斜、または単に傾きとしても知られる)を使用してパラメータで表すことができる。傾きの制約が前述の制約および慣習と合わせられる場合、ホモグラフィ行列Hを計算して、σおよびτによって特定される傾きを修正するには十分である。
【数9】
【0094】
いくつかの実施形態では、ホモグラフィ分解モジュール110は、パラメータ表示の別のセットを通してホモグラフィ行列Hの回転要素に制約を加えることができる。このパラメータ表示のセットには、(1)z軸周りの回転、(2)y軸周りの回転、および(3)x軸周りの回転を(順次的に)特定する3つの角度パラメータが含まれる。このことはしばしば、「ロール、ピッチ、およびヨー」の表示と呼ばれる。「ロール、ピッチ、およびヨー」の表示をパラメータで表す少なくとも2つの異なる方法がある。第1の例では、ピ
ッチおよびヨーが前の回転の後の「新しい」軸周りの回転を表し、第2の例では、ロール、ピッチ、およびヨーのそれぞれが、不動の「世界的な(world)」軸周りの回転を表す。例示の目的のために、進行中の開示は「ロール、ピッチ、およびヨー」の表示の第2の例を使用し、世界的なz軸周りの回転をγで示し、世界的なy軸周りの回転をβで示し、x軸周りの回転をαで示す。この表示に基づき、ホモグラフィ行列Hは以下の形態を取ることができる。
【数10】
【0095】
いくつかの実施形態では、ホモグラフィ分解モジュール110は、ホモグラフィ行列Hのz軸周りの回転(γ)に制約を加えることができる。γの値をゼロとする制約を加えることにより、ホモグラフィ行列Hを以下の形態に簡約にすることができる。
【数11】

このパラメータ表示は、h01とh10との両方の大きさが小さいという、好適な特性を有する。
【0096】
本開示の残りの部分では、ホモグラフィ行列Hの以下の表示に基づいて実施形態を説明する。
【数12】

しかし、当業者は、他のホモグラフィ行列表示を使用するために開示の実施形態を適用することができる。
【0097】
ホモグラフィ行列Hが与えられる場合、ホモグラフィ修正の目的はこのホモグラフィHを画像平面(x’,y’,z’)の歪曲画像から除去することである。
【0098】
いくつかの実施形態では、ホモグラフィ分解モジュール110は、
H =A * B
となるようにホモグラフィ行列Hを第1の変換Aと第2の変換Bとに分解するように構成される。式中、*は連結演算子を示す。この関係は、以下のように書き出すことができる。
【数13】
【0099】
ある意味では、第1の変換Aは、座標系(x’,y’)によって表される画像平面の歪曲画像を、座標系(x,y)によって表される中間画像平面の中間画像に関連付け、第2の変換Bは、座標系(x,y)によって表される中間画像平面の中間画像を、座標系(x,y)によって表される対象平面の修正画像に関連付ける。図2は、修正画像(たとえば、2段階修正プロセスの望ましい結果である、対象平面の正射影図)を中間画像に歪曲させる第2の変換Bの適用と、中間画像を歪曲画像(たとえば、2段階修正プロセスの入力画像)に歪曲させる第1の変換Aの適用を示す。
【0100】
第1の変換Aが歪曲画像を中間画像に関連付け、第2の変換Bが中間画像を修正画像に関連付けることから、(1)歪曲画像から第1の変換Aを除去して中間画像を生成し、(2)中間画像から第2の変換Bを除去して修正画像を生成することによって、ホモグラフィHを歪曲画像から除去して修正画像に戻すことができる。
【0101】
いくつかの実施形態では、第2の変換Bを、zを元の状態に維持しつつx座標とy座標とを切り替える変形操作T、変形された第2の変換Byx、および別の変形操作Tの3つの操作の連結で表すことができる。
【数14】

式中、変形行列Tは、以下のように表すことができる。
【数15】

したがって、ホモグラフィ行列Hは、以下のように示すことができる。
【数16】

式中、
【数17】

である。下付文字yxは、変形された第2の変換Byxが切り替えられたx−y座標上で作用することを示すのに使用される。なお、変形された第2の変換Byxは、第2の変換Bを単に変形したもの(たとえば、
【数18】

)ではない。変形した第2の変換Byxは、xおよびy座標が、z座標が同じままで取り替えられる事実に基づき、B内の項を再配置することにより、第2の変換Bから得ることができる。
【0102】
いくつかの実施形態では、第1の変換Aおよび第2の変換Bに、(1)以下に第1の制約と称する、ソース画像の特定の列のピクセルが目標画像の決まった列の等距離にあるピクセル(たとえば、隣接するピクセルの対の各々が等しい距離だけ離れている)にマッピングされるということ、および、(2)以下に第2の制約と称する、ソース画像の列が目標画像の列にマッピングされるということの、上述の特性を有するように制約を加えることができる。
【0103】
第1の制約は、x(中間画像平面のx座標)に対するx’(画像平面のx座標)の変化量を示す
【数19】

の制約によって、第1の変換Aに導入することができる。x’は、第1の変換Aのパラメータを直接使用して表すことができる。
【数20】
【0104】
したがって、合成関数の微分法を使用して、xに対するx’の導関数を以下のように示すことができる。
【数21】

【数22】

この導関数
【数23】

がyのみに依存する場合、中間画像の隣接するピクセル間の距離が、すべての隣接するピクセルについて同一になる。導関数
【数24】

は、yにのみ依存するようにすることができる。xに依存する項だけが分母に見られる。したがって、xへの依存性を除去するために、乗数a20をゼロに設定することができる。
【0105】
第2の制約は、歪曲画像のy座標が中間画像のy座標のみに依存しなければならないという制約を導入することによって、第1の変換Aに導入することができる。上のようにa20=0に設定することにより、分母のz’がyにのみ依存することがすでにわかっている。したがって、分子y’がyにのみ依存する場合、y’(たとえば、歪曲画像のy座標)が中間画像のy座標にのみ依存し、それによって、中間画像の列を歪曲画像の列にマッピングする。
【0106】
第1の変換Aを中間画像の座標に適用することにより、歪曲画像のy座標を以下のように示すことができる。
【数25】

したがって、歪曲画像のy座標をyにのみ依存させるために、xの係数をゼロ、すなわち、a10=0に設定することができる。
【0107】
したがって、まとめると、第1の制約および第2の制約は、第1の変換Aが以下の形態
をとることを必要とする。
【数26】
【0108】
いくつかの実施形態では、第1の制約および第2の制約が、第2の変換Bにも課されるものとする。変形された第2の変換
【数27】

がAと同じ状況下で作用することから、ByxはAと同じ形態を有するものとする。したがって、第1の制約によりb21=0であり、第2の制約によりb01=0である。したがって、byxは以下のように表すことができる。
【数28】

変形された第2の変換Byxは、以下に示すように、第2の変換Bに戻って関連することができる。
【数29】
【0109】
まとめると、ホモグラフィ行列Hは以下のように示すことができる。
【数30】

あるいは、ホモグラフィ行列Hは以下のように表すこともできる。
【数31】
【0110】
ホモグラフィ行列Hの分解は、Hの係数、Aの係数、およびBの係数の間の関係について解析的に解くのに使用することができる。この解析的計算に基づいて、第1の変換Aおよび変形された第2の変換Byxが、以下のようにHの係数に関連することを示すことができる。
【数32】

【数33】
【0111】
したがって、ホモグラフィ分解モジュール110がホモグラフィ行列Hの係数を受信すると、ホモグラフィ分解モジュール110は、上記関係を使用して第1の変換Aおよび変形された第2の変換Byxを生成することができる。
【0112】
いくつかの実施形態では、第1の変換Aおよび/または第2の変換Bが、ソース画像に戻す場合に目標画像を効率的にダウンサンプリングするスケーリング要素を含み得る。以下の分解は、第1の変換Aのダウンサンプリング比でダウンサンプリングすることを許容しつつ、上述のように、第1の制約および第2の制約を守る。
【数34】

式中sAxとsAyはそれぞれ、x次元とy次元のサンプリング要素に関する。あるいは、ホモグラフィ行列Hは以下のように示すことができる。
【数35】

いくつかの実施形態では、サンプリング要素sAxおよび/またはsAyを1未満として、第1の段階で歪曲画像を効率的にオーバーサンプリングしてもよい。この方法で、第2の段階での処理のために、歪曲画像の情報を保つことができる。
【0113】
いくつかの実施形態では、ホモグラフィ除去モジュール112は、歪曲画像から第1の変換Aおよび変形された第2の変換Byxを効率的に除去することができる。2段階修正プロセスの各段階でのホモグラフィ除去モジュール112のジョブは、4つの非自明な係数で制限されるホモグラフィ(たとえば、第1の変換Aまたは変形された第2の変換Byx)を除去することである。
【数36】

第1の変換Aおよび変形された第2の変換Byxが同じ構造を有するため、ホモグラフィ除去モジュール112は事実上、1回は第1の変換Aについて、そして1回は変形した第2の変換Byxについて、同じ手順を2回実施することができる。したがって、2段階修正プロセスの第1の段階および第2の段階には、実質的に同一の操作を含むことができる。
【0114】
図3は、いくつかの実施形態による、2段階画像マッピングプロセスを示す。この2段
階画像マッピングは、ホモグラフィ分解モジュール110によって決定されるように、ホモグラフィの分解を使用して2段階で修正を実施する。2段階画像マッピングプロセスの第1の段階(ステップ302〜304として識別される)では、ホモグラフィ除去モジュール112がx軸に沿って歪曲画像のピクセルを処理することができ、2段階画像マッピングプロセスの第2の段階(ステップ306〜308として識別される)では、ホモグラフィ除去モジュール112がy軸に沿って中間画像のピクセルを処理することができる。第1の段階と第2の段階との間で生じる変形操作のおかげで、多段階修正プロセスの第1の段階が、多段階修正プロセスの第2の段階と実質的に同様であることには、注意する価値がある。
【0115】
図3のステップを開始する前に、ホモグラフィ除去モジュール112は、歪曲画像、および、第1の変換Aと第2の変換B(または変形された第2の変換)との連結として表されるホモグラフィを受信するように構成することができる。ホモグラフィ除去モジュール112は、ホモグラフィ分解モジュール110からホモグラフィ表示を受信することができる。図4は、斜視歪曲を受けた歪曲画像の例を示す。斜視歪曲は、2つの縦方向の平行線402、404を非平行な2つの線に変換し、2つの横方向の平行線406、408を非平行な2つの線に変換することによって、そのことを明示する。
【0116】
ステップ302では、ホモグラフィ除去モジュール112は、歪曲画像をx軸に沿って処理することにより歪曲画像から第1の変換を除去し、それによって中間画像を生成するように構成される。ステップ302aでは、ホモグラフィ除去モジュール112は、中間画像を任意選択的にダウンサンプリングすることができる。いくつかの実施形態では、ステップ302とステップ302aとを同時に実施することができる。たとえば、第1の変換Aは、上述のように、ダウンサンプリング要素を包含することができ、それによって、歪曲画像から第1の変換Aを除去することで、事実上、ホモグラフィ除去モジュール112はダウンサンプリング操作をも実施することができる。
【0117】
ステップ302では、ホモグラフィ除去モジュール112は、中間画像の各ピクセルについて、歪曲画像内の対応する位置を決定するように構成することができる。たとえば、ホモグラフィ除去モジュール112は、中間画像の列のピクセルの1つにアクセスすることができ、第1の変換Aを使用して、歪曲画像のどの位置が中間画像のピクセルの1つに対応するかを決定する。場合によっては、歪曲画像のこの位置は、サブピクセルの座標値を有し得る。たとえば、歪曲画像のこの位置は(2.24,3.1)の座標を有し得る。
【0118】
第1の変換Aが第1および第2の制約を受けるため、ホモグラフィ除去モジュール112は予め、中間画像の列のピクセルが常に、歪曲画像の所定のy座標の位置に対応することを知覚する。したがって、ホモグラフィ除去モジュール112がメモリ106内の歪曲画像にアクセスするべきパターンは、予測可能かつ決定的である。したがって、ホモグラフィ除去モジュール112は、標準的なピンポン2バッファシステムおよびDMAコントローラ114を使用して、画像の列および列の郡を並行して読込および格納することができる。
【0119】
ホモグラフィ除去モジュール112が中間画像のピクセルと歪曲画像の位置との間の対応を決定すると、ホモグラフィ除去モジュール112は中間画像のそのピクセルの画像値を決定することができる。そのピクセルの画像値を決定するために、ホモグラフィ除去モジュール112は歪曲画像の対応する位置の画像値を使用することができる。
【0120】
対応する位置が歪曲画像のピクセルグリッドにかかる場合、ホモグラフィ除去モジュール112は、歪曲画像の対応する位置を囲む画像値にフィルタをかけることができる。場合によっては、ホモグラフィ除去モジュール112は、歪曲画像の対応する位置の画像値
を単にコピーする場合がある。対応する位置が歪曲画像のグリッドにかからない場合、ホモグラフィ除去モジュール112は、歪曲画像の対応する位置を囲むピクセルの画像値を補間することによって中間画像のピクセルの画像値を決定することができる。
【0121】
たとえば、ホモグラフィ除去モジュール112は、歪曲画像の対応する位置を囲むピクセルをカーネルで畳み込んで、歪曲画像の対応する位置を囲むピクセルの画像値を補間することができる。場合によっては、カーネルは、歪曲画像の列に沿って適切な平滑化(たとえば、ナイキストサンプリングの制約を満たす)を実施するようにも設計することができる。いくつかの実施形態では、カーネルは一部を切り詰めたsync関数とすることができ、他の実施形態では、カーネルは一部を切り詰めたガウス関数とすることができる。
【0122】
いくつかの実施形態では、ホモグラフィ除去モジュール112は、予め選択されるサブピクセルのグリッド位置からの変化のために使用されるカーネルのセットを予め決定することができる。歪曲画像の対応する位置がx軸のグリッドから0.1ピクセルだけずれている場合、ホモグラフィ除去モジュール112は、カーネルの所定のセットの第1のカーネルを使用することができ、歪曲画像の対応する位置がx軸のグリッドから0.3ピクセルだけずれている場合、ホモグラフィ除去モジュール112は、カーネルの所定のセットの第2のカーネルを使用することができる、などである。いくつかの実施形態では、カーネルのセットの各カーネルが同じ関数形態を有する。
【0123】
たとえば、カーネルのセットは以下を含み得る。
K1:36, 56, 36, 0
K2:30, 56, 38, 4
K3:25, 54, 41, 8
K4:21, 50, 45, 12
K5:16, 48, 48, 16
K6:12, 45, 50, 21
K7: 8, 41, 54, 25
K8: 4, 38, 56, 30
これらのカーネルK1〜K8はすべて、同じ関数形態を有するが、各カーネルは、異なるサブピクセル座標(サブピクセルのフェーズとも呼ばれる)に関連する。
【0124】
ホモグラフィ除去モジュール112がピクセルグリッド上(たとえば、0のサブピクセルのフェーズ)の位置にフィルタをかける場合、ホモグラフィ除去モジュール112は、K1を使用して、その位置の周りのピクセルにフィルタをかけることができる。なお、K1は中心周りに対称である。ホモグラフィ除去モジュール112がピクセルグリッドから1/8サブピクセルのフェーズだけ離れた位置にフィルタをかける場合、ホモグラフィ除去モジュール112はK2を使用して、その位置の周りのピクセルにフィルタをかけることができる。たとえば、ホモグラフィ除去モジュール112は、サブピクセルの補間とフィルタリングを同時に実施するために、K2を連続する4つの画像ピクセルに直接乗算することができる。ホモグラフィ除去モジュール112がピクセルグリッドから1/2サブピクセルのフェーズだけ離れた位置にフィルタをかける場合、ホモグラフィ除去モジュール112はK5を使用して、その位置の周りのピクセルにフィルタをかけることができる。1/2ピクセルのずれは、2つの隣接するピクセルの厳格な境界における画像値を識別することに関するため、K5は対称である。なお、1/8と7/8のサブピクセルのフェーズにそれぞれ対応するK2とK8は、同じ値を有するが、互いに対し鏡像である。このことは、1/8が−7/8と同じであり、−1/8が7/8と同じであるため、意味をなす。「1/4,3/4」の対、および「3/8,5/8」の対について、これと同じ事が言える。
【0125】
いくつかの実施形態では、歪曲画像の位置が、セットの中のカーネルの1つのサブピクセルのフェーズに厳格にマッチするサブピクセルのフェーズを有さない場合、ホモグラフィ除去モジュール112は、その位置のサブピクセルのフェーズに最も近いサブピクセルのフェーズに関連するカーネルを使用することができる。たとえば、その位置のサブピクセルのフェーズが1/9である場合、1/9がカーネルに関連する他のサブピクセルのフェーズのどれよりも1/8に近いことから、ホモグラフィ除去モジュール112はK1を使用して、その位置にフィルタをかけることができる。
【0126】
いくつかの実施形態では、ホモグラフィ除去モジュール112は、単一命令多重データ(SIMD)処理ユニットを使用して畳み込み操作を実施することができる。より詳細には、畳み込み操作は、SIMD処理ユニットによって操作可能なSIMD乗算および/またはSIMD内積の命令を使用して容易に実施することができる。
【0127】
いくつかの実施形態では、畳み込み操作は2次元カーネルを含むことができる。カーネルを空間的な軸(たとえば、xおよびy軸)に分けることができる場合、ホモグラフィ除去モジュール112は、(1)x軸(たとえば、画像の列)に沿って畳み込み、(2)y軸(たとえば、画像の行)に沿って畳み込む、2つの別々のステップで畳み込み(コンボルーション)を実施することができる。
【0128】
第1の段階については、第1の変換Aが第1の制約を受けるため、中間画像の列のピクセルが、歪曲画像の決まったy軸の隣接する位置から等距離にある位置にマッピングされる。したがって、ホモグラフィ除去モジュール112は、歪曲画像の決まったy座標のすべての対応する位置に単一のカーネル関数を適用することができる。歪曲画像の位置のサブピクセルのフェーズが互いに対して異なる場合があるため、ホモグラフィ除去モジュール112は、各位置のサブピクセルのフェーズに基づき、その単一のカーネル関数に対応するセットの内の1つのカーネルを選択することができる。このことにより、ホモグラフィ除去モジュール112が、歪曲画像の決まった列に沿う畳み込みの間にカーネルを生成することが必要になることを避けることができる。いくつかの実施形態では、ホモグラフィ除去モジュール112は、異なる列に同じカーネル関数を使用することができ、他の実施形態では、ホモグラフィ除去モジュール112は、異なる列に異なるカーネル関数を使用することができる。x軸に沿う畳み込み操作の結果(x畳み込みの結果とも称する)は、一時的バッファに格納することができる。
【0129】
ホモグラフィ除去モジュール112がx軸に沿う畳み込みを完了すると、ホモグラフィ除去モジュール112は、一時的バッファに格納されるx畳み込みの結果のy方向のカーネルを畳み込むことにより、y軸に沿う畳み込みを実施することができる。いくつかの実施形態では、一時的バッファは、x畳み込みの結果に関連する所定の数の列を保持することができる。この所定の数の列は、y方向のカーネルのサイズに基づいて決定することができる。たとえば、y方向のカーネルが5ピクセルの長さを有する場合、一時的バッファはx畳み込みの結果に関連する5つの列を保持することができる。
【0130】
いくつかの実施形態では、一時的バッファは、x畳み込みの結果の列を、y畳み込みを計算するのにもはや必要ではなくなるまで格納する、ローリングバッファ(たとえば、循環バッファ)とすることができる。たとえば、ホモグラフィ除去モジュール112が、jのy座標を有するピクセルでy畳み込みを計算し、y方向のカーネルが5つのピクセルを有する場合、ホモグラフィ除去モジュール112は、一時的バッファに、y座標j+2、j+1、j、j−1、j−2によって識別されるx畳み込みの結果の5つの列を格納することができる。ホモグラフィ除去モジュール112がjのy座標を有するすべてのピクセルのy畳み込みを完了すると、ホモグラフィ除去モジュール112は、目標となるy座標を1ピクセルだけ増大させ、j+1のy座標を有するすべてのピクセルのy畳み込みを計
算することができる。この場合、ホモグラフィ除去モジュール112は、y座標j+3、j+2、j+1、j、j−1によって識別されるx畳み込みの結果の5つの列を使用することができる。したがって、一時的バッファはもはや、j−2のy座標を有するx畳み込みの結果の列を必要としない。この場合、一時的バッファは、j−2のy座標を有するx畳み込みの結果の列を除去し、j+3のy座標を有するx畳み込みの結果の列とそれを入れ替える。
【0131】
いくつかの実施形態では、y方向のカーネルは、出力画像の列に沿う各ピクセルについて同一とすることができる。したがって、このy方向の畳み込みは、その列に対応するカーネル係数によってx畳み込みされた列のすべてのピクセルを乗算し、次いで行に沿って合算することによって実施することができる。この操作は、SIMD処理ユニット、たとえば、SIMD乗算および/またはSIMD加算命令を使用して効率的に実施することができる。
【0132】
第1の変換Aの制約は、y軸に沿うピクセルサンプリングについての特別なあらゆる特性を保証するものではない。したがって、各列は、たとえば(1)対象平面の対称カーネル関数を、画像平面の、必ずしも対称ではない対応するカーネル関数にマッピングし、(2)それをピクセルビンに統合することによって計算することができる、それ自体のカーネル関数を有する。そのようなカーネルは本来的に、y軸の非整数の位置で正確にサンプリングすることを可能にし、また、性能を損なうことなく、異なる任意の2つの列の間のサンプリング距離をも可能にする。任意選択的に、y軸に沿う畳み込みに使用されるすべてのカーネル関数は、トレーニングフェイズの間に予め計算することができる。
【0133】
図5は、いくつかの実施形態による、図4の歪曲画像から第1の変換Aを除去することによって生成される中間画像の例を示す。なお、2つの縦方向の平行線402、404はここでは、中間画像において平行である。しかし、第1の段階では2つの横方向の平行線406および408の歪曲を除去しなかった。
【0134】
図5に示すように、中間画像は傾いた台形形状(たとえば、2辺が平行で、他の2辺が平行ではない)を有し得る。場合によっては、歪曲画像の各列、x畳み込みされた列、および中間画像の各列の関連する始点およびランレングスは任意選択的に、トレーニングステップで予め計算することができる。
【0135】
2つの水平な平行線406および408から歪曲を除去するために、ホモグラフィ除去モジュール112は、2段階画像マッピングプロセスの第2の段階に移行することができる。しかし、上述のように、第2の段階を開始する前に、ステップ304において、ホモグラフィ除去モジュール112は中間画像を変形するように構成される。
【0136】
いくつかの実施形態では、ホモグラフィ除去モジュール112は、「縦(vertical)」バッファを使用して変形操作を実施することができる。たとえば、y方向のコンボルーションの出力値(たとえば、中間画像)は、決まった幅の、好ましくは近チップ(near−to−chip)メモリ(たとえば、ユーザ制御のレベル2のキャッシュ)に嵌まる、一時的画像として格納することができる。それらの出力値は、列の順の代わりに行の順で、そしてこのため、縦バッファの名前で、バッファに書き込まれる。バッファ全体が近チップメモリ内に含まれるため、ホモグラフィ除去モジュール112は、外部メモリデバイスのいずれにも、格納またはアクセスする必要がなく、このことにより、メモリのアクセス時間が向上する。事実上、この実施形態により、局所的に変形操作が実施される。
【0137】
いくつかの実施形態では、ホモグラフィ除去モジュール112は、「ピン−ピン(pi
ng−ping)」方式で2つの縦バッファの1つへの書込みを交互に行うことができ、これによって、第1の縦バッファに書き込まれた前の行を、現在の行を第2の縦バッファに書き込まれた状態としつつ、外部メモリに書き出すことができる。
【0138】
いくつかの実施形態では、縦バッファのデータは、DMAコントローラ114を使用して外部メモリの領域に移動することができる。外部メモリのその領域は、修正画像全体を収容するのに十分な大きさとすることができる。
【0139】
いくつかの実施形態では、DMAコントローラ114は、2次元DMAを使用して縦バッファのデータを外部メモリに移動することができる。2次元DMAは自動的に、画像の縦セクションに対応していない外部メモリのバイトを飛び越えることができ、このことは、概念的に、縦バッファのデータにマッチする。局所的な縦バッファとは異なり、外部メモリは、連続するメモリ位置に、結果となる画像の隣接するセクション(たとえば、タイル)を格納せず、このことは、読込みおよび/または書込み速度を低下させる場合がある。そのような場合、2次元DMAは、読込/書込操作を、(局所的縦バッファの幅が十分に大である限り)最小限の追加コストで効率的に処理することができる。
【0140】
ステップ306では、中間画像が変形されると、ホモグラフィ除去モジュール112は、変形された中間画像のx軸(たとえば、中間画像のy軸)のピクセルを処理することによって、第2の変換を中間画像から除去するように構成される。次いで、ステップ306aでは、ホモグラフィ除去モジュール112が任意選択的に、ステップ306の結果をダウンサンプリングするように構成され、ステップ308において、ホモグラフィ除去モジュール112は、ステップ306の結果(または、それが実行されれば、ステップ306aの結果)を変形するように構成される。いくつかの実施形態では、ステップ306/306aでは、ホモグラフィ除去モジュール112は、ステップ302/302aと同様の操作を使用することができ、ステップ308では、ホモグラフィ除去モジュール112は、ステップ304と同様の処理を使用することができる。
【0141】
図6は、いくつかの実施形態による、第2の変換Bを図5の中間画像から除去することによって生成される修正画像の例を示す。なお、2つの横方向の平行線406、408、および2つの縦方向の平行線402、404は、修正画像では平行である。したがって、結果となる修正画像は、すべての斜視歪曲が修正され、目標となるダウンサンプリング比でダウンサンプリングされる。
【0142】
上述のように、ホモグラフィ除去モジュール112は、ホモグラフィ修正の間、歪曲画像をダウンサンプリングすることができ、ホモグラフィ除去モジュール112は、多段階修正プロセスの2つの段階の1つまたは複数においてダウンサンプリングを実施することができる。いくつかの実施形態では、目標となるダウンサンプリング比がある場合、ステップ302a(たとえば、第1の段階)において、可能な限りダウンサンプリングすることが有利となり得るが、この理由は、このことが、多段階修正プロセスの第1の段階の速度を速め、第2の段階の速度をさらに速め得るためである。多段階修正プロセスの各段階では、xまたはy方向において、画像を独立してダウンサンプリングすることができる。
【0143】
いくつかの実施形態では、パターン検出システムが、修正画像が特定のパターンを含むかどうかを決定できるように、修正画像をパターン検出システムに提供することができる。パターン検出システムは通常、ソース画像が非線形の歪曲を含まない場合の方が効率的に作動するため、開示されたホモグラフィ修正プロセスにより、パターンマッチングの効率を向上させることができる。場合によっては、パターン検出システムは、単純な収集に基づくパターンマッチング技術を使用して、修正画像が特定のパターンを含むかどうかを決定することができる。他の場合では、パターン検出システムは、「Method fo
r fast,robust,multi−dimensional pattern recognition」と題され、2006年3月21日に発行された、米国特許第7,016,539号に開示のパターン検出技術の実施形態を使用することができる。この文献はその全体が、参照することにより本明細書に組み込まれる。
【0144】
いくつかの実施形態では、ホモグラフィが事前にわからない場合、歪曲画像は、複数の仮定されるホモグラフィ変換の1つを使用して修正することができ、修正画像をパターン検出システムに提供して、複数の仮定されるホモグラフィ変換の1つの下で特定のパターンが存在するかを決定することができる。このプロセスは、パターン検出システムが修正される画像から特定のパターンを検出するまで、他の仮定されるホモグラフィ変換について繰り返すことができる。
【0145】
いくつかの実施形態では、開示の多段階修正プロセスを使用して、実際に全体のホモグラフィの斜視歪曲を除去することなく、擬似的な画像のサンプリングを単に実施することができる。たとえば、ホモグラフィ行列Hを擬似変換(アフィン変換、affine transformation)に制限するために、パラメータh20およびh21をゼロに設定することができる。他の実施形態では、この開示の多段階修正プロセスを使用して、単に画像のスケーリングを除去することができる。たとえば、開示の多段階修正プロセスは、h20およびh21に加えて、ホモグラフィ行列Hのパラメータh10およびh01をゼロに設定することにより、画像のスケーリング操作を除去するように構成することができる。
【0146】
開示の多段階修正プロセスを使用して単に擬似変換(アフィン変換)または画像のスケーリング操作を除去する場合であっても、開示の多段階修正プロセスは計算上、擬似変換または画像のスケーリング操作を除去するための従来の既知の方法よりも高速とすることができる。計算上の利点は、カーネルを画像の列に適用する方法から得られる。上述したように、ホモグラフィ除去モジュール112は、単一のカーネル関数を画像の列に適用するように構成される。ホモグラフィ除去モジュール112は、このカーネル関数に対応するカーネルのセットを保持する。ここで、このセットの各カーネルは特定のサブピクセルのフェーズに対応する。この方法で、ホモグラフィ除去モジュール112が単一のカーネル関数を画像の列に適用する場合、列の各位置において、ホモグラフィ除去モジュール112は、その位置のサブピクセルのフェーズに基づき、それらのカーネルの1つを選択することができる。サブピクセルのフェーズに対応するカーネルのセットがすでに予め決定されているため、ホモグラフィ除去モジュール112は、それらのカーネルのうちの選択されるカーネルを適用することにより、擬似変換または画像のスケーリングを除去することができる。ある位置のサブピクセルのフェーズがそのセットのカーネルの1つに厳密には対応しない場合、ホモグラフィ除去モジュール112は、その位置のサブピクセルのフェーズに最も近いサブピクセルのフェーズに関連付けられるカーネルを選択することができる。これにより、計算上高額になる傾向にあるほぼすべての補間操作が除去される。
【0147】
ホモグラフィ除去モジュール112が画像のスケーリングのみを除去するように構成される場合、ホモグラフィ除去モジュール112は、各カーネルがピクセルグリッドからより細かいサブピクセルの変化量(たとえば、サブピクセルのフェーズ)に適合される多数のカーネルを保持することにより、正確さをさらに向上させることができる。ホモグラフィ除去モジュール112がダウンサンプリングを実施する場合、ホモグラフィ除去モジュール112は、修正画像の各ピクセルについて、歪曲画像の対応する位置のサブピクセルのフェーズを決定し、サブピクセルの変化量を使用してカーネルの所定のセットの1つを選択することができる。次いで、ホモグラフィ除去モジュール112は、選択されるカーネルを歪曲画像の対応するピクセルに適用して、画像のスケーリングを除去することができる。
【0148】
いくつかの実施形態では、ホモグラフィ除去モジュール112が画像のスケーリングのみを除去するように構成される場合、ホモグラフィ除去モジュール112は、多段階修正プロセスの第1段階のみを使用することにより、操作を実施することができる。
【0149】
いくつかの実施形態では、修正画像と歪曲画像との間のホモグラフィ変換Hが、上述した第1および第2の制約を満たす場合、ホモグラフィ除去モジュール112は、多段階修正プロセスの1つの段階のみを使用して歪曲画像から斜視歪曲を除去してもよい。たとえば、歪曲画像は、画像センサのx軸(たとえば、画像センサのビットセルの列)周りの画像センサの回転の結果である斜視歪曲を受ける場合がある。この場合、画像センサは、画像センサが画像センサの軸の1つと平行である軸周りに回転するように対象平面の頂部が画像センサから離れて傾けられるように配置される場合がある。画像センサ平面と対象平面との間のこの関係は、(1)修正画像の特定の列のピクセルが歪曲画像の決まった列の等距離のピクセルにマッピングされるということ、および(2)修正画像の列が歪曲画像の列にマッピングされるということの、第1および第2の制約を実際に満たすホモグラフィ変換Hによって表される場合がある。したがって、この場合、ホモグラフィ除去モジュール112は、多段階修正プロセスの1つの段階のみを使用することによって修正操作を実施するように構成することができる。
【0150】
いくつかの実施形態では、多段階修正プロセスを使用して、複数のカメラによって取得した画像を並べることができる。場合によっては、機械視覚システムは、その場面の異なる部分を見るが、大まかに並べられる複数のカメラを含み得る。言い換えると、複数のカメラのそれぞれは、同一の平面内で回転し、平面から同一の距離にあるように設計される。しかし、物理的制限により、平面内での回転と平面からの距離に「小さい」差異がある場合があり、このことはそれぞれ、それ自体が平面内の回転およびスケールであることを明示する。さらに、各カメラからのピクセルグリッドは、互いからサブピクセルの値だけ位置がずれる場合があり、この理由は、物理的制限により、各カメラからのピクセルを厳格に並べることが困難であるためである。
【0151】
複数のカメラによって取得される画像の差異は、オフラインで調整することができる。したがって、複数のカメラによって取得される画像間の関係をオフラインで決定することができる。この関係は、ホモグラフィ行列として示すことができる。したがって、開示の多段階修正プロセスを使用して、複数のカメラによって取得される画像を並べることができる。場合によっては、開示の多段階修正プロセスは、取得される画像をダウンサンプリングすることにも使用でき、それによって、1つまたは複数のカメラが異なる数のピクセルまたは異なるピクセルサイズを有する場合、開示の多段階修正プロセスにより、画像をダウンサンプリングしてそのような差異に対処することができる。
【0152】
開示の主題は、その用途において、以下の説明で述べた、または図面に示した構成の詳細、および構成要素の配置に限定されないことを理解されたい。開示の主題は、他の実施形態も可能であり、また、様々な方法で実施および実行することができる。また、本明細書で使用されている言い回しおよび用語は、説明を目的とするものであり、限定的に捉えられるべきではないことを理解されたい。
【0153】
そのように、当業者には、本開示の元である概念により、開示の主題のいくつかの目的を実行するための他の構造、方法、および装置を設計するための基礎として容易に利用できることを理解されたい。したがって、特許請求の範囲が、開示の主題の趣旨および範囲から逸脱しない限り、そのような同等の構造を含むと解されることが重要である。たとえば、開示の実施形態のいくつかは、1つまたは複数の変形形態に関する。この関係は、数理的方程式を使用して説明され得る。しかし、当業者は、1つまたは複数の変形形態の間の同じ関係を、開示の数理的方程式を変形することにより、異なる数理的方程式を使用し
て表現することもできる。特許請求の範囲が、1つまたは複数の変形形態の間のそれらの均等の関係も含むと解されることが重要である。
【0154】
開示の主題は、上述の例示的な実施形態で記載され、説明されたが、本開示は例としてのみ行われたものであり、開示の主題の実施の詳細の多くの変更を、開示の主題の要旨および範囲を逸脱することなく行うことができることを理解されたい。
【符号の説明】
【0155】
100 ・・・機械視覚システム
102 ・・・コンピュータデバイス
104 ・・・プロセッサ
106 ・・・メモリ
108 ・・・ホモグラフィ修正モジュール
110 ・・・ホモグラフィ分解モジュール
112 ・・・ホモグラフィ除去モジュール
114 ・・・ダイレクトメモリアクセスコントローラ
116 ・・・インターフェイス
118 ・・・画像取得デバイス
図1
図2
図3
図4
図5
図6