IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ アクシス アーベーの特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-15
(45)【発行日】2024-11-25
(54)【発明の名称】自己学習型歪み補正
(51)【国際特許分類】
   G06T 3/047 20240101AFI20241118BHJP
   G06T 5/80 20240101ALI20241118BHJP
   H04N 23/60 20230101ALI20241118BHJP
【FI】
G06T3/047
G06T5/80
H04N23/60 500
【請求項の数】 8
【外国語出願】
(21)【出願番号】P 2023102344
(22)【出願日】2023-06-22
(65)【公開番号】P2024007396
(43)【公開日】2024-01-18
【審査請求日】2024-04-11
(31)【優先権主張番号】22181939
(32)【優先日】2022-06-29
(33)【優先権主張国・地域又は機関】EP
【早期審査対象出願】
(73)【特許権者】
【識別番号】502208205
【氏名又は名称】アクシス アーベー
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】エリクソン, ヨアキム
(72)【発明者】
【氏名】ユアン, ソン
(72)【発明者】
【氏名】ステニング, ヨーアン
【審査官】小池 正彦
(56)【参考文献】
【文献】特開2020-053019(JP,A)
【文献】特許第6577557(JP,B2)
【文献】特表2021-528794(JP,A)
【文献】米国特許出願公開第2022/0191463(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06T 3/047
G06T 5/80
H04N 23/60
(57)【特許請求の範囲】
【請求項1】
非直線レンズを有するカメラ(210)によって上方から取り込まれた部屋の画像における歪み補正の方法(200)であって、
i)経時的に前記カメラによって上方から取り込まれた前記部屋の複数の画像(101、212)を取得すること(S201)と、
ii)1つ又は複数の物体の1つ又は複数の底部(150)が前記複数の画像のうちの少なくともいくつかの画像の中のどこに位置しているかを判定すること(S202)と、
iii)前記底部の前記判定された位置に基づいて前記部屋の床(110)の境界(170)が前記複数の画像のどこに位置しているかを判定すること(S203)と、
iv)前記床の前記判定された境界の周囲に、前記床の前記境界の平面から離れるように垂直に延びる1つ又は複数の壁(172a-d)を画定することによって、前記部屋の三次元モデル(102、103)を生成すること(S204)と、
v)前記複数の画像のうちの少なくとも1つの画像を前記部屋の前記三次元モデル上に投影することによって、前記部屋の歪み補正画像(104)を生成すること(S205)と
を含
前記判定すること(S203)において、前記複数の画像のうちの前記少なくともいくつかの画像の領域内の異なる場所にある、前記底部の前記判定された位置の個数が有限の時間間隔の間に閾値を超える場合に限り、前記少なくともいくつかの画像の前記領域が前記部屋の前記床に属すると見なされる、
方法(200)。
【請求項2】
前記非直線レンズが魚眼レンズである、請求項1に記載の方法。
【請求項3】
前記底部が前記物体の足を含む、請求項1又は2に記載の方法。
【請求項4】
ステップii)が前記1つ又は複数の物体の1つ又は複数のキーポイントを特定することによって、前記部屋の前記床の上を移動した前記1つ又は複数の物体の前記底部が前記複数の画像のうちの前記少なくともいくつかの画像の中のどこに位置しているかを判定することを含む、請求項1又は2に記載の方法。
【請求項5】
非直線レンズを有するカメラによって取り込まれた部屋(100)の画像における歪み補正のための装置であって、前記装置に請求項1に記載の方法を実行させるように構成された処理回路を含む、装置。
【請求項6】
前記装置が前記非直線レンズを有する前記カメラである、請求項5に記載の装置。
【請求項7】
非直線レンズを有するカメラによって取り込まれた部屋の画像における歪み補正のためのコンピュータプログラムであって、前記コンピュータプログラムが、装置の処理回路上で実行されると、前記装置に請求項1に記載の方法を実行させるコンピュータコードを含む、コンピュータプログラム。
【請求項8】
請求項7に記載のコンピュータプログラムが記憶されたコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、シーンの画像の歪み補正に関する。特に、本開示は、例えば、魚眼レンズなどの非直線レンズを有するカメラによって取り込まれた画像の自己学習型歪み補正に関する。
【背景技術】
【0002】
多くの状況では、1台のカメラでシーンの大部分を取り込むことができることが望ましく、広角レンズはこの目的に使用することができるこのような広角レンズは、多くの場合、非直線であり、それによって画像の強い光学的歪みが生じ、その結果、このようなレンズを使用して取り込まれたシーンの画像では、シーン内の真っ直ぐな線やその他の物体は、湾曲したり反ったりしてしまう。非直線レンズの一例は、いわゆる魚眼レンズであり、これは、例えばシーンの半球状の画像を生成することができ、多くの場合、例えば、90度、180度、又は更には270度を超える広い画角を有する。
【0003】
上記のような状況の一例としては、例えば、部屋の天井に取り付けられた監視カメラがあり、魚眼レンズを使用して天井の下方にある部屋の大部分又は全てを取り込むように構成されている。カメラの周囲で起きていることをより多く取り込むことができるため、このようなカメラは、例えば、通常のパン/チルト/ズーム(PTZ)カメラと比較して状況認識が向上する。
【0004】
しかしながら、前述したように、このような非直線レンズを有するカメラの1つの欠点は、これらが生成する画像が歪むことである(例えば、反る)。例えば、魚眼レンズを介して取り込まれた画像をデジタル的に「反り補正」するための様々な解決策が存在するが、このような解決策では、得られる結果が十分に満足のいくものになるまで、複数のパラメータを手動で調整する必要があることが多い。更に、多くのこのようなカメラを含む設備では、各カメラの反り補正パラメータを調整するために必要な手作業は、すぐに時間がかかることになる可能性がある。
【0005】
したがって、例えば、監視カメラ設備において、非直線レンズの使用を容易にする改善された方法が必要とされている。
【発明の概要】
【0006】
上記の特定された必要性を少なくとも部分的に満たすために、本開示は、非直線レンズを有するカメラによって取り込まれたシーンの画像における歪み補正の改良された方法、このような方法を実施するように構成された装置、並びに添付の独立請求項に定義されたコンピュータプログラム及びコンピュータプログラム製品を提供する。改良された方法、装置、コンピュータプログラム及びコンピュータプログラム製品の様々な実施形態は、添付の従属請求項に定義されている。
【0007】
本開示の第1の態様によれば、非直線レンズを有するカメラによって取り込まれたシーンの画像における歪み補正の方法が提供される。本方法は、i)カメラによって取り込まれるシーンの複数の画像を経時的に取得することを含む。本方法は、ii)シーン内の水平面上を移動した1つ又は複数の物体の底部が、複数の画像のうちの少なくともいくつかの中のどこに位置しているかを判定することを更に含む。本方法は、iii)底部の判定された位置に基づいて、シーン内の水平面の境界を判定することを更に含む。本方法は、iv)水平面の判定された境界の周囲に1つ又は複数の垂直面を画定することにより、シーンの三次元(3D)モデルを生成することを更に含む。本方法は、v)少なくとも1つの画像をシーンの三次元モデル上に投影することによって複数の画像のうちの少なくとも1つの歪みを補正することを更に含む。本方法は、例えば、処理回路を含む装置などの装置/コンピュータ上で実施することができる。
【0008】
本明細書で使用される場合、「水平面」とは、例えば、シーンの床もしくは地面、又は、例えば、人々、動物もしくは他の物体が通常歩行/移動する他の任意の表面である。同様に、「垂直面」とは、例えば、部屋の床を囲む壁などの水平面の外縁の周りに配置され、床に対して垂直に延在することが多い、例えば、壁又はその他の面である。「底部」という用語は、例えば、(動物又は人の)足、(例えば、ロボット掃除機、又は同様のものの)車輪、又は物体がシーン内を移動するときに水平面と接触する物体の任意のその他の部分を含むことができる。
【0009】
シーンの例として部屋を使用すると、部屋の画像の歪み補正に関する従来の解決策は、歪み補正に必要な部屋の十分な3Dモデルを構築するために、部屋の画像のどの部分が部屋の床に属し、画像のどの部分が部屋の垂直面(例えば、壁など)に属するかをオペレータ/ユーザが手動で指示する必要があることが多い。本開示の解決策は、シーン内を移動する物体の底部(例えば、足など)が床と接触することが多いという認識を利用することによって、このような従来の技術を改善するものであり、しかも、部屋の画像内で底部が経時的にどのように移動するかを確認することによって、床の延伸部/境界を学習/近似することができる。この延伸部/境界の中にない画像の他の部分は、代わりに、例えば、壁の一部であると仮定することで、画像の手動によるセグメント化を必要とせずに、部屋の3Dモデルを自動的に構築することができる。本明細書で前述したように、これは、各カメラが本開示の解決策を使用して、部屋をモデル化する方法を自己学習し、次いで必要な歪み補正を行うことができるため、複数のカメラの大規模な設置において特に有用であり得る。
【0010】
本方法のいくつかの実施形態では、(カメラの)非直線レンズは魚眼レンズであってもよい。
【0011】
本方法のいくつかの実施形態では、底部は、物体(例えば、ヒトの足、又は動物の足など)の足部を含むことができる。
【0012】
本方法のいくつかの実施形態では、ステップii)は、1つ又は複数の物体の1つ又は複数のキーポイントを特定することを含むことができる。本明細書で使用される場合、「キーポイント」とは、例えば、画像内の物体の特定された足、膝、脚、又は任意の他の特徴であってもよく、実際の足の位置は、これらのキーポイントの位置に基づいて推定されてもよい。例えば、ソファに座っている人の膝及び/又は腰がどこに位置するか分かれば、シーンの画像に足が見えない場合でも足の位置を計算することができる。これは、例えば、ソファの前にテーブルが置かれた場合に起こり得るシナリオであり、足の位置をとにかく推測し、床の境界を判定するのに使用される。
【0013】
本方法のいくつかの実施形態では、シーンは部屋のシーンであってもよく、水平面は部屋の床であってもよい。
【0014】
本方法のいくつかの実施形態では、複数の画像のうちの少なくともいくつかはトレーニング期間中に取り込まれてもよく、有限の時間間隔の間に領域内で移動した底部の数が閾値を超えた場合、複数の画像のうちの少なくともいくつかの領域は、シーンの水平面に属すると見なし得る。その領域をシーンの水平面の一部として分類する前に、同じ領域内で複数の底部の検出を要求することで、例えば、その領域が実際に水平面の一部であるという信頼性を向上させることができる。
【0015】
本方法のいくつかの実施形態では、三次元モデルは、判定された境界によって囲まれた水平面を含むことができ、1つ又は複数の垂直面は、水平面に垂直な方向に突出することができる。例えば、水平面は部屋の床であってもよく、垂直面は、壁が床と90度の角度を形成するように、部屋内に通常配置される壁(の表面)であってもよい。
【0016】
本方法のいくつかの実施形態では、シーンが部屋である場合、カメラは部屋の天井に配置され得る。例えば、天井が床の平面と平行な平面内に延在する場合、例えば、カメラの光軸が床の平面(又は水平面)に対して垂直になるように、カメラの光軸が、例えば、床方向に直接向くようにカメラを配置することができる。
【0017】
本開示の第2の態様によれば、非直線レンズを有するカメラによって取り込まれたシーンの画像における歪み補正のための装置が提供される。装置は処理回路を含む。処理回路は、装置に、i)経時的にカメラによって取り込まれたシーンの複数の画像を取得させる、ii)シーン内の水平面上を移動した1つ又は複数の物体の底部が複数の画像のうちの少なくともいくつかの中のどこに位置しているかを判定させる、iii)底部の判定された位置に基づいてシーンの水平面の外側の境界を判定させる、iv)シーンの水平面の判定された境界の周囲に1つ又は複数の垂直面を画定することによって、シーンの三次元(3D)モデルを生成させる、v)少なくとも1つの画像をシーンの三次元モデル上に投影することによって、複数の画像のうちの少なくとも1つの歪みを補正させるように構成される。したがって、装置は、第1の態様の方法のステップを実施するように構成される。装置は、例えば、装置の処理回路によって実行されると、装置に前述のステップi)~v)を行わせる命令を記憶するメモリを含むことができる。したがって、装置が上記のステップi)~v)を実施するように「構成される」ことは、このような実施形態では、処理回路がメモリに記憶された命令を読み出して実行するように構成されることを意味する。
【0018】
装置のいくつかの実施形態では、処理回路は、装置に、本明細書で説明及び開示される第1の態様の方法の実施形態を実施させるように更に構成される。
【0019】
装置のいくつかの実施形態では、装置は、例えば、魚眼レンズカメラなどの非直線レンズを有するカメラであってもよい。
【0020】
本開示の第3の態様によれば、非直線レンズを有するカメラによって取り込まれたシーンの画像における歪み補正のためのコンピュータプログラムが提供される。コンピュータプログラムは、装置の処理回路上で実行されるとき、装置に、i)経時的にカメラによって取り込まれたシーンの複数の画像を取得させる、ii)シーン内の水平面上を移動した1つ又は複数の物体の底部が複数の画像のうちの少なくともいくつかの中のどこに位置しているかを判定させる、iii)底部の判定された位置に基づいてシーンの水平面の外側の境界を判定させる、iv)シーンの水平面の判定された境界の周囲に1つ又は複数の垂直面を画定することによって、シーンの三次元(3D)モデルを生成させる、v)少なくとも1つの画像をシーンの三次元モデル上に投影することによって、複数の画像のうちの少なくとも1つの歪みを補正させるコンピュータコードを含む。したがって、コンピュータコードは、装置に第1の態様の方法のステップを実施させるようなものである。
【0021】
コンピュータプログラムのいくつかの実施形態では、コンピュータコードは、更に、装置の処理回路上で実行されるとき、本明細書で説明及び開示されるような第1の態様の方法の任意の実施形態を装置に実施させるようなものであってもよい。
【0022】
本開示の第4の態様によれば、コンピュータプログラム製品が提供される。コンピュータプログラム製品は、第3の態様(又は本明細書で説明及び開示されるその任意の実施形態)によるコンピュータプログラムが記憶されるコンピュータ可読記憶媒体を含む。本明細書で使用される場合、コンピュータ可読記憶媒体は、例えば、非一時的であってもよく、例えば、ハードディスクドライブ(HDD)、ソリッドステートドライブ(SDD)、USBフラッシュドライブ、SDカード、CD/DVD、及び/又はデータの非一時的な記憶が可能な任意の他の記憶媒体として提供されてもよい。他の実施形態では、コンピュータ可読記憶媒体は一時的であってもよく、例えば、通信リンク、ワイヤ、又は同様の信号伝達手段などに存在する信号(電気的、光学的、機械的、又は同様のもの)に対応する。
【0023】
本開示の他の目的及び利点は、以下の詳細な説明、図面及び特許請求の範囲から明らかになるであろう。本開示の範囲内で、例えば、第1の態様の方法を参照して説明された全ての特徴及び利点は、第2の態様の装置、第3の態様のコンピュータプログラム、及び第4の態様のコンピュータプログラム製品にも関連し、適用され、それらと組み合わせて使用され得ることが想定され、その逆もまた同様である。
【0024】
以下、添付の図面を参照して、例示的な実施形態を説明する。
【図面の簡単な説明】
【0025】
図1A】非直線レンズを有するカメラによって取り込まれたシーン/部屋の画像を概略的に示す。
図1B】本開示による方法の様々な実施形態で実施される、図1Aのシーンで移動した物体の底部の判定を概略的に示す。
図1C】本開示による方法の様々な実施形態において実施される、図1Bの判定された底部に基づいて図1Aのシーンの3Dモデルを生成する様々なステップを概略的に示す。
図1D】本開示による方法の様々な実施形態において実施される、図1Bの判定された底部に基づいて図1Aのシーンの3Dモデルを生成する様々なステップを概略的に示す。
図1E】本開示による方法の様々な実施形態において実施される、図1Bの判定された底部に基づいて図1Aのシーンの3Dモデルを生成する様々なステップを概略的に示す。
図1F】本開示による方法の様々な実施形態において実施される、図1Bの判定された底部に基づいて図1Aのシーンの3Dモデルを生成する様々なステップを概略的に示す。
図1G】本開示による方法の様々な実施形態において実施される、図1Bの判定された底部に基づいて図1Aのシーンの3Dモデルを生成する様々なステップを概略的に示す。
図1H】本開示による方法の様々な実施形態によって生成された、図1Aのシーンの歪み補正画像を概略的に示す。
図2A】様々な機能ユニットを使用して、本開示による方法及び装置の様々な実施形態を概略的に示す。
図2B図2Aの方法の流れを概略的に示す。
図3A】本開示による装置の様々な実施形態を概略的に示す。
図3B】本開示による装置の様々な実施形態を概略的に示す。
図3C】本開示による装置の様々な実施形態を概略的に示す。
【発明を実施するための形態】
【0026】
図面において、特に明記しない限り、同様の要素には同様の参照数字が使用される。反対のことが明示的に述べられていない限り、図面は、例示的な実施形態を例示するために必要な要素のみを示しているが、他の要素は、明確にするために、省略されるか、又は単に示唆される場合がある。図に示すように、要素及び領域の(絶対的又は相対的な)サイズは、例示の目的のために、それらの真の値に対して誇張又は控えめにされる場合があり、したがって、実施形態の一般的な構造を説明するために提供される。
【0027】
図1Aは、シーンの画像100を概略的に示す。この特定の例におけるシーンは部屋のシーンである。画像100は、非直線レンズ(例えば、魚眼レンズなど)を有するカメラによって取り込まれたものであり、画像100は、直線が曲線として表示されるなど反っている。カメラは、部屋の天井(図示せず)に取り付けられ、その光軸は部屋の床110に直接向くように配置されることが想定される。床110は、床110から垂直に上方に突出する4つの壁120a-dによって囲まれており、床110とそれぞれの壁とが交わる場所に4つの角130a-dを形成するようになっている。壁120aにはドア140も設けられており、ドアを通ってドア物体が部屋に出入りすることができる。画像100が取り込まれた時点では、部屋は空であった(例えば、家具、壁装飾、又は同様のものを除く)、即ち、部屋の中に人、動物、又は他の移動体は存在しなかった。
【0028】
画像100で分かるように、カメラの非直線レンズがカメラの画像センサ上に投影されることに起因して、床110に沿って角と角を結ぶ線は湾曲/反って見える。これは、画像100内の他のほとんどの線にも当てはまり、カメラのレンズによって導入される歪みのために、画像100内で反っている/湾曲している。したがって、このような歪みを補正し、例えば、現実世界で真っ直ぐな線は、シーンを描写する画像でも真っ直ぐのままであるようにしたいという要望がある。従来の技術を使用して、カメラの非直線レンズによって導入された画像100の歪みを補正するために、オペレータは、画像100のどの部分が床110(即ち、画像100に示されているシーンの水平面)に属するかを手動で識別する必要がある。例えば、オペレータは、(画像100を示すグラフィカルユーザインターフェースを使用して、)例えば、4つの角130-dを結ぶ曲線に沿ってトレースすることによって、及び/又は、例えば、4つの壁120a-d及びドア140に対応する画像100の領域、即ち、シーンの垂直面を手動で示すことによって、このようなタスクを実施することができる。一般に、このようなプロセスは時間がかかり、大規模なカメラ設置で歪み補正のために設定し準備するカメラが多数(例えば、数百台)ある場合には、処理できない可能性さえある。
【0029】
本開示がこの問題/課題をどのように解決するかについて、最初に図1Bを参照することから始めて、残りの図を参照してより詳細に説明する。以下では、「シーン」及び「部屋」という用語は互換的に使用される。同じことが、「垂直面」及び「壁」という用語、並びに同様に互換的に使用される「水平面」及び「床」という用語にも当てはまる。
【0030】
図1Bは、経時的に取り込まれた部屋の複数の画像101のオーバーレイを概略的に示しており、複数の足跡150は、シーン内の水平面/床の上を移動した1つ又は複数の物体の底部がどこに位置しているかを示している。画像101から、例えば、1つ又は複数の物体がドア140を通って入り、部屋の中の物体(キャビン、壁など)に移動し、その後再びドア140を通って出て行ったことが明らかである。足跡150は、必ずしも人の後に残された実際の足跡である必要はないが(例えば、靴の下の土、ゴム跡、又は同様のものによって引き起こされるもの)、代わりに、これらの物体の底部(例えば、足など)が経時的に判定された場所を図示/記号化するのに役立つことに留意されたい。キーポイント検出は、例えば、物体のそのような底部が画像内のどこに位置するかを推定するための1つの可能な手段として機能することができる。人又は他の物体が移動中に床110上に実際の足跡(例えば、土/ゴム跡)を実際に残す場合、もちろん、これらも検出され、このような物体の底部が画像内のどこに位置するかを示す指標として使用され得る。
【0031】
ここで、図1C図1Hも参照して、想定される方法では、複数の画像101と「足跡」150を使用して、最終的には画像101のうちの1つ又は複数の歪み補正がどのように実施されるのかについて説明する。
【0032】
図1Cは、説明のために足跡150を使用して、底部がシーン内で経時的にどのように移動したかを概略的に示す。足跡150は、各足跡150が特定の(x、y)座標に位置するように、(x、y)座標系でプロットされる。
【0033】
図1Dは、図1Cと同じ足跡150を概略的に示しているが、床110の平面内での足跡の延伸部を示す破線形状160を有する。
【0034】
図1Eは、カメラの既知のパラメータに基づいて、足跡150の延伸部160に基づいて長方形の境界170がどのように画定されるかを概略的に示す。これは、例えば、非直線レンズが異なる角度から生じる光をどのように屈折させるかについての知識に基づいて行われ得る。例えば、魚眼レンズの場合、レンズが光をどのように屈折させるかは、(シーンの画像を取り込むために使用されるカメラの画像センサ上の)画素とレンズの光学中心(レンズ/カメラの光軸が延びる中心)との間の距離に基づいており、例えば、床110の上方のカメラの設置高さに関する知識を必要としない場合がある。境界170は、例えば、全ての足跡150について、又は、例えば、最も外側の足跡150についてのみ、そのような屈折を補正することによって見つけることができる。重要なことは、これが正確にどのように行われるかではなく、シーンの画像内の足跡150の判定された位置は、これらの位置が床110に対応し、そして、例えば、壁120a-dのいずれかに対応しないことを伝えるために使用されることである。
【0035】
図1Fは、境界170を特定した後、境界170が三次元モデル102の水平面としてどのように使用されるかを概略的に示す。図1Fに示すように、三次元モデル102は未完成であり、1つ又は複数の垂直面で完成させる必要がある。
【0036】
図1Gは、完全な三次元モデル103を形成するために、三次元モデル102の完成を概略的に示す。モデル103では、壁172a-dが境界170の周囲に画定されるように、壁172a-dの形状の垂直面が追加/画定されている。図1Gに示す例では、壁172a-dは、境界170の平面から離れるように垂直に、即ち、図1Gに示すようにz軸の正方向に延びるように追加される。したがって、図1Gに示す例では、三次元モデル103は、境界170によって囲まれた床171と、4つの角174a~174dで床171と互いに交差する4つの壁172a-dとを含む。壁172a-dは同じ高さhを有する。前述のように、物体が移動していない画像の領域が、統計的に、例えば、部屋の壁に属する可能性が高いという仮定の下で、三次元モデル104が作成される。パラメータhは、例えば、部屋の高さをエミュレートするために必要に応じて調整することができる。
【0037】
図1Hは、部屋の上面図を再び概略的に示すが、ここでは図1Aの画像100が三次元モデル103に投影されている。例えば、4つの角130a-dを結ぶ線がもはや以前ほどには反っても/湾曲してもいないことから分かるように、結果として得られる画像104は、画像100の歪み補正バージョンである。
【0038】
本明細書で想定されるように、画像100の三次元モデル103への投影を実施することは、例えば、床171とカメラとの間の向きに関する知識に基づくことができ、これは、例えば、カメラ/レンズの光軸が床171に直交すると仮定することによって得ることができる。画像100の三次元モデル103への投影を実施する際のカメラの想定位置は、例えば、カメラが部屋の天井内の正確な中心にないことを補正するためなど、意図的にその真の位置から変更される場合がある。カメラの想定位置を変更することは、例えば、結果として得られる画像104の両側(水平及び/又は垂直)に同程度の画素数を得るのに役立ち得る。いくつかの実施形態では、例えば、部屋の床の上方にあるカメラの想定される高さは、また、投影を実施するときに、真の高さと一致しないように変更され得ることも想定される。これは、例えば、結果として得られる画像104の視点を変更したい場合に特に興味深い。一般に、画像100のどの部分が、例えば、壁や床にそれぞれ対応するのかに関する知識を(水平面を横切って移動した物体の底部の位置から)得ることによって、三次元モデルを構築することができ、次いで、この三次元モデル(モデル103など)上に画像100の投影を実施するために使用することができる。次いで投影が正確にどのように実施されるかは、例えば、所望の遠近法や、例えば、所望の視点(例えば、水平面に対するカメラの所望の/想定される位置)に基づいて変化し得る。
【0039】
提案された方法の精度は、もちろん、シーン内を移動する物体が、例えば、床などの全ての部分を訪れるか否かに依存し得る。提案された方法に提供されるシーンの複数の画像において、床の特定の部分を横切って移動する物体がない場合、結果として得られるシーンの三次元モデルは小さすぎる可能性が高く、想定される床の外側の物体は反って見えるであろう。しかしながら、少なくとも1つの物体が床の各領域を訪れる可能性が時間とともに高くなると仮定すれば、シーンの画像をより多く分析することで、このような影響を低減することができる。更に、前述したようにキーポイント検出を使用することによって、床とカメラとの間に、例えば、家具や他の物体が配置されているためにカメラから隠されている床の領域でも、物体の底部の真の位置を特定することができる。これにより、例えば、部屋の真の床の正確な推定値を得る可能性が更に向上する。
【0040】
想定される使用シナリオは、例えば、大きな部屋や、例えば、廊下をカバーするために複数の魚眼カメラが設置されるとき、及び各カメラを手動で設定するのに非常に時間がかかる場合などである。想定される方法を使用することにより、カメラを設置し、次いでカメラの画像のどの部分が、例えば、床や壁に対応するかをそれぞれ学習させることができる。そして、各カメラは、それに基づいて、カメラが撮影を担当するシーンの一部について独自の三次元モデルを生成し、次いで、この三次元モデルを使用してその取り込まれた画像を投影して、歪み補正を実施することができる。
【0041】
本明細書で想定されるように、床は必ずしも正方形又は長方形である必要はなく、他の形状を有することもできることにも留意されたい。例えば、部屋の1つ又は複数の壁は湾曲していてもよい。同様に、壁は、必ずしも他の壁と90度の角度で接触する必要はない。唯一の仮定は、壁が床から垂直に延伸することである。
【0042】
ここで、(図1A図1Hを参照して前述したような)想定される方法を、図2A及び図2Bも参照して更に説明する。図2Aは、様々な機能ユニットを使用して、本明細書で想定される歪み補正のための方法200の様々な実施形態を概略的に示し、図2Bは、そのような方法の流れを概略的に示す。図2Aは、また、図3A図3Cを参照して本明細書で後により詳細に説明するように、方法を実施するための想定される装置300を示すのに役立つ。
【0043】
方法200では、カメラ210がシーン(例えば、部屋)を取り込むように構成される。カメラ210は、例えば、魚眼レンズなどの非直線レンズを有しており、カメラ210の視野は、カメラ210がシーンのより広い部分を取り込むために十分な大きさである。カメラ210によって取り込まれたシーンの複数の画像212は、第1の判定モジュール220に提供される。
【0044】
ステップS201において、第1の判定モジュール220は、カメラ210からシーンの複数の画像212を受信する。カメラ210は、複数の画像を一度に送信してもよいし、例えば、各画像が取り込まれるとすぐに、一度に1つの画像を送信してもよい。第1の判定モジュール220は、(ステップS202において)シーン内の水平面の上を移動した1つ又は複数の物体の底部の位置を推定/判定するように構成されている。これは、例えば、キーポイントを使用することによって、及び/又は1つ又は複数の物体の底部を直接特定することによって実施され得る。例えば、第1の判定モジュール220は、例えば、人間の足、動物の足、及び/又は、例えば、ロボット掃除機の車輪、又はシーンの床を横切って定期的に動き回る他の物体を特定するように構成されてもよい。このような底部の特定は、例えば、この目的のために一般的に利用可能な技術を使用して実施することができ、例えば、このような特徴を特定するように訓練された様々な機械学習アルゴリズムに基づいて実施することができる。シーン内の底部物体の位置が判定されると、第1の判定モジュール220は推定位置222を第2の判定モジュール230へ送信する。第1の判定モジュール220は、また、底部の複数の位置を判定するまで待ち、次いで、これらの複数の位置を第2の判定モジュール230に同時に送信してもよい。
【0045】
第2の判定モジュール230は、物体、特に、物体の底部がシーン内で経時的にどのように移動するのかに関する統計を収集するために、第1の判定モジュール220から底部の複数の位置222を受信する。特に、第2の判定モジュール230は、物体がどこを移動するか、即ち、それらのそれぞれの底部が部屋のどの部分を訪れるかに注目することができる。ステップS203において、第2の判定モジュール230は、そのような統計を使用して、部屋の床の境界を判定/推定する。部屋の床の境界が判定されると、第2の判定モジュール230は、判定された境界232を3Dモデルモジュール240に送信する。いくつかの実施形態では、第2の判定230モジュールは、特定の領域を部屋の床と見なす前に、画像の特定の領域内で移動した底部の数が閾値を超えるまで待機することができる。本明細書で前述したように、これは、特定の領域が実際に床の一部であることの信頼性を向上させることができる。本明細書で想定されるように、「複数の底部」は、必ずしも異なる物体の底部を意味するわけではなく、同じ物体の1つ又は複数の底部が特定の領域に位置するものとして繰り返し識別されることでもよい。より一般的には、異なる物体を区別する必要は必ずしもなく、したがって、(底部がどの特定の物体に属するかを識別することなく)底部のみを識別することができる方法も、想定される方法を実施するために使用することができる。
【0046】
3Dモデリングモジュール240は、第2の判定モジュール230から判定された境界232を受信し、床の判定された境界の周囲に1つ又は複数の壁を画定することによって、カメラ210によって取り込まれた部屋の三次元モデルを生成するように構成される(ステップS204)。三次元モデルが生成されると、3Dモデリングモジュール240は、三次元モデル242を補正モジュール250に送信する。三次元モデルは、例えば、境界を示す複数の座標、及び壁を示す複数の座標によって画定することができる。他の実施形態では、壁は高さ値に応じた高さを有し、床から垂直に延び、かつ多角形によって画定された床の境界に沿って延びるようなものであると仮定した場合、床は、例えば、多角形として表されてもよく、壁は、例えば、単に高さ値hとして表されてもよい。三次元モデルを表現/パラメータ化する他の方法も当然想定される。
【0047】
補正モジュール250は、三次元モデル242を3Dモデリングモジュール240から受信し、3Dモデリングモジュール240から受信した三次元モデル上に1つ又は複数の画像を投影することによって、カメラ210によって取り込まれた1つ又は複数の画像214の歪み補正を実施する(ステップS205)。補正モジュール250が歪みを適用する(同じ部屋/シーンを取り込む)1つ又は複数の画像は、例えば、1つ又は複数の画像214としてカメラ210から直接受信することができる。他の実施形態では、歪み補正が行われる1つ又は複数の画像は、例えば、そのような画像を有する任意の他のモジュールから送信されてもよい。1つ又は複数の画像242の少なくとも1つの歪みを補正した後、補正モジュール250は、例えば、補正画像252を出力してもよい。補正画像252は、例えば、ビデオストリームの一部として含まれてもよく、例えば、対応する非補正画像を置き換えてもよく、又は非補正画像に加えて提供されてもよい。歪みが補正される画像は、三次元モデルの生成に使用された画像と必ずしも同じ画像である必要はなく、代わりに、例えば、三次元モデルの生成に使用された複数の画像よりも後のインスタンスで取り込まれたシーンの画像であってもよい。
【0048】
ここで、図3A図3Cを参照して、非直線レンズを有するカメラを使用して取り込まれた画像の歪み補正を実施するための装置についてより詳細に説明する。
【0049】
図3Aは、多数の機能ユニット/モジュール/ブロックの観点から、本明細書で想定される装置300の様々な実施形態の構成要素を概略的に示す。装置300は処理回路310を含む。処理回路310は、例えば、コンピュータ可読記憶媒体320の形態のコンピュータプログラム製品(本明細書には図示せず)に記憶されたソフトウェア命令を実行することができる、1つ又は複数の適切な中央処理装置(CPU)、マルチプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)などのうちの任意の組合せを使用して提供される。処理回路610は、少なくとも1つの特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)として更に設けられてもよい。
【0050】
特に、処理回路310は、例えば、図2A及び図2Bに示す方法200を説明する際に、前述のステップS201~S205のうちの1つ又は複数など一連の動作、又はステップを装置300に実施させるように構成される。例えば、記憶媒体320は、一連の動作を記憶することができ、処理回路310は、記憶媒体320から一連の動作を取り出して、装置300に一連の動作を実施させるように構成され得る。一連の動作は一連の実行可能命令として提供され得る。したがって、処理回路310は、それによって、例えば、図2A及び図2Bを参照して本明細書に開示される方法を実行するように構成される。
【0051】
記憶媒体320は、また、例えば、磁気メモリ、光メモリ、ソリッドステートメモリ、又は更には遠隔マウントメモリなどの任意の単一又は組合せの形態のメモリとすることができる永続記憶装置も含むことができる。
【0052】
装置300は、例えば、カメラ210などの他のエンティティ、機能、ノード、及び装置と通信するための通信インターフェース330を更に含んでもよい。例えば、通信インターフェース330は、シーンの三次元モデルを生成するために使用されるシーンの複数の画像を受信するために、装置300がカメラ210と通信することを可能にすることができる。したがって、通信インターフェース330は、アナログ及び/又はデジタル構成要素を含む、1つ又は複数の送信機及び受信機を含むことができる。本明細書で後により詳細に説明するように、装置300は、いくつかの実施形態では、カメラ210自体であってもよく、通信インターフェース330は、例えば、装置/カメラ300の処理回路310が装置/カメラ300の画像センサ(図示せず)によって生成された画像データにアクセスできるようにするために必要な任意の回路を含んでもよい。
【0053】
処理回路310は、例えば、通信インターフェース330及び記憶媒体/メモリ320にデータ及び制御信号を送信することによって、通信インターフェース330からデータ及び報告を受信することによって、並びに記憶媒体320からデータ及び命令を取り出すことによって、装置300の一般的な動作を制御する。当然ながら、装置300の他の構成要素及びそれらに関連する機能性も含まれ得るが(破線のボックス340によって示されるように)、本明細書で提示される概念を不明瞭にしないために、それらの説明は省略される。通信バス350が含まれ、様々なユニット310、320及び330(及び任意選択で340も)が必要に応じて互いにデータ及び情報を交換することができるように構成される。
【0054】
図3Bは、本開示の様々な実施形態による装置300の構成要素を、いくつかの機能モジュール301~305に関して概略的に示す。装置300は、少なくとも、図2A及び図2Bを参照して説明した方法200のステップS202を実施するように構成された第1の判定モジュール301(例えば、第1の判定モジュール220など)と、ステップS203を実施するように構成された第2の判定モジュール302(例えば、第2の判定モジュール230など)と、ステップS204を実施するように構成された3Dモデリングモジュール303(例えば、3Dモデリングモジュール240など)と、ステップS205を実施するように構成された歪み補正モジュール304(例えば、補正モジュール250など)とを含む。
【0055】
一般的に言えば、各機能モジュール301~304は、ハードウェア又はソフトウェアで実装され得る。好ましくは、1つもしくは複数の、又は全ての機能モジュール301~304は、場合によっては通信インターフェース330及び/又は記憶媒体320と協働して、処理回路310によって実装され得る。したがって、処理回路310は、記憶媒体320から、機能モジュール301~304によって提供されるような命令をフェッチし、これらの命令を実行し、それによって本明細書に開示されるように、装置300によって実施される方法200の任意のステップを実施するように構成され得る。ハードウェアとして提供される場合、各モジュール301~304は、他のモジュールとは別個であってもよい。他の実施形態では、モジュール310~304のうちの1つ、複数、又は全ては、同じ、物理モジュールなどの一部として実装され得る。
【0056】
いくつかの実施形態では、装置300は、例えば、添付の従属請求項によって定義されるように、装置300の他のタスクを実施するために必要な追加の機能モジュール(破線のボックス305によって示される)を更に含み得る。様々な機能モジュール301~304(及び任意選択で305)が必要に応じてデータ及び情報を通信/交換することを可能にするために、通信バス352(論理的又は物理的)が設けられる。
【0057】
図3Cは、本明細書で想定されるカメラ300の一実施形態を概略的に示しており、即ち、図3A及び図3Bを参照して説明した装置300が、実際には、シーンの複数の画像を取り込むために使用されるカメラ300である場合を示している。図3Aに示すように、いくつかの実施形態では、カメラ300は、魚眼レンズ370を有する魚眼カメラであってもよい。カメラ300は光軸372を有し、シーンの画像を取り込むとき、光軸372と位置合わせされたシーンの点は、取り込まれる画像の中心にある画素に対応するのが好ましい。図3Cにも示すように、カメラ300は、例えば、前述の処理回路310を含み、例えば、メモリ(図示せず)320などを含むこともできる。カメラ300は、光軸372が、例えば、部屋の床と直交するように、例えば、部屋の天井に取り付けられるように設定される。
【0058】
本明細書のいずれの図面及び図にも示されていないが、本開示は、本明細書で既に説明したようなコンピュータプログラム及びコンピュータプログラム製品も提供する。コンピュータプログラム製品は、想定されるコンピュータプログラムが記憶されるコンピュータ可読記憶媒体を含む。既に説明したように、コンピュータプログラムは、装置(300など)の処理回路(310など)上で実行されると、コンピュータコードは、例えば、図2A及び図2Bを参照して説明した方法200のステップS201~S205を実行することによって、本明細書で開示及び説明した任意の方法を装置に実施させるコンピュータコードを含む。したがって、コンピュータプログラム及び/又はコンピュータプログラム製品は、例えば、方法200の任意のステップを実施するための手段、及び/又は想定される装置300を意図したとおりに動作させるための手段を提供することができる。
【0059】
コンピュータプログラム製品は、例えば、CD(コンパクトディスク)又はDVD(デジタル多用途ディスク)又はBlu-Rayディスクなどの光ディスクとして提供することができる。コンピュータプログラム製品はまた、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROM)、又は電気的消去可能プログラマブル読み出し専用メモリ(EEPROM)などのメモリとして、より具体的には、USB(ユニバーサルシリアルバス)メモリ又はコンパクトフラッシュメモリなどのフラッシュメモリなどの外部メモリ内の装置の不揮発性記憶媒体として具現化することもできる。したがって、コンピュータプログラムは、コンピュータプログラム製品に適した任意の方法で、即ち、コンピュータ可読記憶媒体に記憶することができる。
【0060】
本明細書に提示される様々な実施形態を要約すると、本開示は、非直線レンズを有するカメラによって取り込まれた画像の歪み補正を処理する改良された方法を提供する。特に、本開示は、補正を実施するために使用することができる三次元モデルを生成するために、シーンの画像のどの部分が、例えば、部屋の床に対応し、画像の他のどの部分が、例えば、部屋の壁に対応するかを判定するために、シーンの画像において物体の底部(人間の足など)がどのように動くか、又は特にどこを移動するかを観察することによって、このような補正を自己学習する方法を提供する。例えば、このような三次元モデルをどのように生成するかをカメラが経時的に学習することを可能にすることにより、カメラによって取り込まれた画像の歪みを、例えば、オペレータからの手動入力を必要とせずに補正することができるため、例えば、このようなカメラを複数設置するプロセスなどが容易になる。
【0061】
特徴や要素を特定の組合せで前述したが、各特徴や要素は、他の特徴や要素を用いずに単独で用いてもよいし、又は他の特徴や要素を用いて又は用いずに様々な組合せで用いてもよい。更に、開示された実施形態に対する変形は、図面、開示、及び添付の特許請求の範囲の研究から、特許請求された発明を実施する際に当業者によって理解され実現され得る。
【0062】
特許請求の範囲において、「含む(comprising)」や「含む(including)」という語は他の要素を排除するものではなく、不定冠詞「1つの(a)」や「1つの(an)」は複数を排除するものではない。特定の特徴が相互に異なる従属請求項に記載されているというだけでは、これらの特徴の組合せが効果的に使用できないことを示すものではない。
【符号の説明】
【0063】
100 シーンの画像
101、212 シーンの複数の画像
102、103、242 シーンの三次元モデル
104、252 シーンの歪み補正画像
110、171 水平面/床
120a-d、172a-d 垂直面/壁
130a-d、174a-d 角
140 ドア
150、222 経時的なシーン内の物体の底部の位置
160 底部の境界
170、232 水平面の境界
200 歪み補正の方法
S201~S205 方法のステップ
210 非直線レンズを有するカメラ
212 シーンの複数の画像
220、301 第1の判定モジュール
230、302 第2の判定モジュール
240、303 3Dモデリングモジュール
250、304 補正モジュール
300 装置/カメラ
305、340 光学機能モジュール
310 処理回路
320 メモリ
330 通信インターフェース
350、352 通信バス
370 魚眼レンズ
372 光軸
図1A
図1B
図1C
図1D
図1E
図1F
図1G
図1H
図2A
図2B
図3A
図3B
図3C