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

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

▶ ゼブラ テクノロジーズ コーポレイションの特許一覧

特表2022-512604支持構造の深さを決定するための方法、システムおよび装置
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2022-02-07
(54)【発明の名称】支持構造の深さを決定するための方法、システムおよび装置
(51)【国際特許分類】
   G06T 7/70 20170101AFI20220131BHJP
   G01C 3/06 20060101ALN20220131BHJP
【FI】
G06T7/70 Z
G01C3/06 140
G01C3/06 130
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2021518611
(86)(22)【出願日】2019-09-05
(85)【翻訳文提出日】2021-04-02
(86)【国際出願番号】 US2019049761
(87)【国際公開番号】W WO2020072170
(87)【国際公開日】2020-04-09
(31)【優先権主張番号】16/152,986
(32)【優先日】2018-10-05
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】519047200
【氏名又は名称】ゼブラ テクノロジーズ コーポレイション
【氏名又は名称原語表記】Zebra Technologies Corporation
【住所又は居所原語表記】3 Overlook Point, Lincolnshire, Illinois 60069, United States of America
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【弁理士】
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100109070
【弁理士】
【氏名又は名称】須田 洋之
(74)【代理人】
【識別番号】100098475
【弁理士】
【氏名又は名称】倉澤 伊知郎
(74)【代理人】
【識別番号】100130937
【弁理士】
【氏名又は名称】山本 泰史
(74)【代理人】
【識別番号】100144451
【弁理士】
【氏名又は名称】鈴木 博子
(74)【代理人】
【識別番号】100107537
【弁理士】
【氏名又は名称】磯貝 克臣
(72)【発明者】
【氏名】ファン レイモンド
(72)【発明者】
【氏名】ユ ユァンハオ
(72)【発明者】
【氏名】ルジェズテク リチャード ジェフリー
(72)【発明者】
【氏名】ラム ジョセフ
【テーマコード(参考)】
2F112
5L096
【Fターム(参考)】
2F112AD01
2F112AD06
2F112BA06
2F112CA04
2F112CA08
2F112FA35
2F112FA45
2F112GA01
5L096AA06
5L096AA09
5L096BA05
5L096CA05
5L096DA02
5L096EA39
5L096FA03
5L096FA32
5L096FA62
5L096FA67
5L096FA69
5L096FA74
5L096GA10
5L096GA51
(57)【要約】
支持構造深さによって分離された正面及び背面を有する支持構造の当該支持構造深さを決定する方法である。前記支持構造のポイントクラウド、及び、捕捉ポーズから捕捉される前記支持構造の画像の複数の部分について、当該複数の部分が当該支持構造の前記背面を描写していることについてのそれぞれの信頼性レベルを示すマスク、を取得する工程と、前記ポイントクラウドから、前記捕捉ポーズで生じる視野内に位置するポイントの初期セットを選択する工程と、前記ポイントの初期セットから、深さ測定値の閉塞されていないサブセットを選択する工程と、前記マスクから、前記閉塞されていないサブセットの前記深さ測定値の各々の信頼性レベルを取得する工程と、前記閉塞されていないサブセットの前記深さ測定値と前記取得された信頼性レベルとに基づいて、前記支持構造深さを決定する工程と、を備え、前記閉塞されていないサブセットの前記深さ測定値は、それぞれの画像座標に対応している。
【特許請求の範囲】
【請求項1】
支持構造深さによって分離された正面及び背面を有する支持構造の当該支持構造深さを決定する方法であって、
(i)前記支持構造のポイントクラウド、及び、(ii)捕捉ポーズから捕捉される前記支持構造の画像の複数の部分について、当該複数の部分が当該支持構造の前記背面を描写していることについてのそれぞれの信頼性レベルを示すマスク、を取得する工程と、
前記ポイントクラウドから、前記捕捉ポーズで生じる視野内に位置するポイントの初期セットを選択する工程と、
前記ポイントの初期セットから、深さ測定値の閉塞されていないサブセットを選択する工程と、
前記マスクから、前記閉塞されていないサブセットの前記深さ測定値の各々の信頼性レベルを取得する工程と、
前記閉塞されていないサブセットの前記深さ測定値と前記取得された信頼性レベルとに基づいて、前記支持構造深さを決定する工程と、
を備え、
前記閉塞されていないサブセットの前記深さ測定値は、それぞれの画像座標に対応している
ことを特徴とする方法。
【請求項2】
更なる捕捉ポーズから捕捉される前記支持構造の更なる画像に対応する更なるマスクを取得する工程と、
更なるポイントの初期セットを選択する工程と、
更なる深さ測定値の閉塞されていないサブセットを選択する工程と、
前記更なる閉塞されていないサブセットの前記深さ測定値の各々の更なる信頼性レベルを取得する工程と、
を更に備えたことを特徴とする請求項1に記載の方法。
【請求項3】
前記閉塞されていないサブセットの前記深さ測定値、前記更なる閉塞されていないサブセットの前記深さ測定値、前記信頼性レベル、及び、前記更なる信頼性レベル、に基づいて、前記支持構造深さを決定する工程
を更に備えたことを特徴とする請求項2に記載の方法。
【請求項4】
捕捉ポーズが、共通の座標系内のカメラの位置及び向きを規定する
ことを特徴とする請求項1に記載の方法。
【請求項5】
前記ポイントの初期セットを選択する工程は、
前記ポイントクラウド内の各ポイントについて、前記支持構造深さに直交する第1及び第2次元を含むツリーデータ構造を生成する工程と、
前記第1及び第2次元内に視野中心を決定する工程と、
前記ツリーデータ構造から、前記視野中心から所定の半径内にある前記ポイントの初期セットを取得する工程と、
を有している
ことを特徴とする請求項1に記載の方法。
【請求項6】
前記深さ測定値の閉塞されていないサブセットを選択する工程は、
前記ポイントの初期セットの各々に対応する画像座標を決定する工程と、
前記画像座標の隣接群を特定する工程と、
各隣接群ごとに、最小深さ測定値に対応する画像座標を選択する工程と、
を有している
ことを特徴とする請求項1に記載の方法。
【請求項7】
前記支持構造深さを決定する工程は、
前記支持構造の前記正面に対応する平面定義を取得する工程と、
前記深さ測定値の閉塞されていないサブセットの各深さ測定値を、前記平面定義に対する深さに変換する工程と、
前記取得された信頼性レベルに従って各変換された深さ測定値を重み付けする工程と、
前記重み付けされた深さ測定値の平均を決定する工程と、
を有している
ことを特徴とする請求項1に記載の方法。
【請求項8】
前記支持構造深さを決定する前に、前記取得された信頼性レベルが最小の信頼性閾値を下回っているという深さ測定値を廃棄する工程
を更に備えたことを特徴とする請求項1に記載の方法。
【請求項9】
前記支持構造深さを決定する前に、最大の深さ閾値を越えているという深さ測定値を廃棄する工程
を更に備えたことを特徴とする請求項1に記載の方法。
【請求項10】
支持構造深さによって分離された正面及び背面を有する支持構造の当該支持構造深さを決定するためのコンピューティングデバイスであって、
(i)前記支持構造のポイントクラウド、及び、(ii)捕捉ポーズから捕捉される前記支持構造の画像の複数の部分について、当該複数の部分が当該支持構造の前記背面を描写していることについてのそれぞれの信頼性レベルを示すマスク、を記憶するメモリと、
前記メモリに接続された撮像コントローラと、
を備え、
前記撮像コントローラは、
前記ポイントクラウドから、前記捕捉ポーズで生じる視野内に位置するポイントの初期セットを選択し、
前記ポイントの初期セットから、深さ測定値の閉塞されていないサブセットを選択し、
前記マスクから、前記閉塞されていないサブセットの前記深さ測定値の各々の信頼性レベルを取得し、
前記閉塞されていないサブセットの前記深さ測定値と前記取得された信頼性レベルとに基づいて、前記支持構造深さを決定する
ように構成されている
ことを特徴とするコンピューティングデバイス。
【請求項11】
前記撮像コントローラは、更に、
更なる捕捉ポーズから捕捉される前記支持構造の更なる画像に対応する更なるマスクを取得し、
更なるポイントの初期セットを選択し、
更なる深さ測定値の閉塞されていないサブセットを選択し、
前記更なる閉塞されていないサブセットの前記深さ測定値の各々の更なる信頼性レベルを取得する
ように構成されている
ことを特徴とする請求項10に記載のコンピューティングデバイス。
【請求項12】
前記撮像コントローラは、更に、
前記閉塞されていないサブセットの前記深さ測定値、前記更なる閉塞されていないサブセットの前記深さ測定値、前記信頼性レベル、及び、前記更なる信頼性レベル、に基づいて、前記支持構造深さを決定する
ように構成されている
ことを特徴とする請求項11に記載のコンピューティングデバイス。
【請求項13】
捕捉ポーズが、共通の座標系内のカメラの位置及び向きを規定する
ことを特徴とする請求項10に記載のコンピューティングデバイス。
【請求項14】
前記撮像コントローラは、前記ポイントの初期セットを選択するために、更に、
前記ポイントクラウド内の各ポイントについて、前記支持構造深さに直交する第1及び第2次元を含むツリーデータ構造を生成し、
前記第1及び第2次元内に視野中心を決定し、
前記ツリーデータ構造から、前記視野中心から所定の半径内にある前記ポイントの初期セットを取得する
ように構成されている
ことを特徴とする請求項10に記載のコンピューティングデバイス。
【請求項15】
前記撮像コントローラは、前記深さ測定値の閉塞されていないサブセットを選択するために、更に、
前記ポイントの初期セットの各々に対応する画像座標を決定し、
前記画像座標の隣接群を特定し、
各隣接群ごとに、最小深さ測定値に対応する画像座標を選択する
ように構成されている
ことを特徴とする請求項10に記載のコンピューティングデバイス。
【請求項16】
前記撮像コントローラは、前記支持構造深さを決定するために、更に、
前記支持構造の前記正面に対応する平面定義を取得し、
前記深さ測定値の閉塞されていないサブセットの各深さ測定値を、前記平面定義に対する深さに変換し、
前記取得された信頼性レベルに従って各変換された深さ測定値を重み付けし、
前記重み付けされた深さ測定値の平均を決定する
ように構成されている
ことを特徴とする請求項10に記載のコンピューティングデバイス。
【請求項17】
前記撮像コントローラは、更に、
前記支持構造深さを決定する前に、前記取得された信頼性レベルが最小の信頼性閾値を下回っているという深さ測定値を廃棄する
ように構成されている
ことを特徴とする請求項10に記載のコンピューティングデバイス。
【請求項18】
前記撮像コントローラは、更に、
前記支持構造深さを決定する前に、最大の深さ閾値を越えているという深さ測定値を廃棄する
ように構成されている
ことを特徴とする請求項10に記載のコンピューティングデバイス。
【請求項19】
コンピュータ実行可能命令を記憶したコンピュータ可読媒体であって、
前記命令は、
(i)前記支持構造のポイントクラウド、及び、(ii)捕捉ポーズから捕捉される前記支持構造の画像の複数の部分について、当該複数の部分が当該支持構造の前記背面を描写していることについてのそれぞれの信頼性レベルを示すマスク、を取得する工程と、
前記ポイントクラウドから、前記捕捉ポーズで生じる視野内に位置するポイントの初期セットを選択する工程と、
前記ポイントの初期セットから、深さ測定値の閉塞されていないサブセットを選択する工程と、
前記マスクから、前記閉塞されていないサブセットの前記深さ測定値の各々の信頼性レベルを取得する工程と、
前記閉塞されていないサブセットの前記深さ測定値と前記取得された信頼性レベルとに基づいて、前記支持構造深さを決定する工程と、
を含み、
前記閉塞されていないサブセットの前記深さ測定値は、それぞれの画像座標に対応している
ことを特徴とするコンピュータ可読媒体。
【請求項20】
前記命令は、更に、
前記閉塞されていないサブセットの前記深さ測定値、前記更なる閉塞されていないサブセットの前記深さ測定値、前記信頼性レベル、及び、前記更なる信頼性レベル、に基づいて、前記支持構造深さを決定する工程
を更に含む
ことを特徴とする請求項19に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【0001】
小売環境で購入される製品等、対象物の在庫が管理される環境は、複雑で流動的であり得る。例えば、所与の環境は、様々な属性(サイズ、形状、価格など)を有する様々な対象物を含み得る。更に、当該環境内の対象物の配置及び量は、頻繁に変化し得る。更に、照明等の撮像条件が、時間の経過によっても、当該環境内の異なる位置によっても、可変であり得る。これらの要因は、対象物に関する情報が当該環境内で収集される精度を、低下させ得る。
【発明の概要】
【0002】
添付の図面は、以下の詳細な説明と共に、本明細書に組み込まれて本明細書の一部を形成し、特許請求される発明を含む概念の実施形態を更に説明するのに役立ち、また、それら実施形態の様々な原理及び利点を説明するのに役立つ。添付図面において、同様の参照符号は、別個の図面を通して同一または機能的に類似の要素を指している。
【図面の簡単な説明】
【0003】
図1図1は、モバイル自動システムの概略図である。
【0004】
図2A図2Aは、図1のシステムにおけるモバイル自動装置を示している。
【0005】
図2B図2Bは、図1のシステムにおけるモバイル自動装置の特定の内部ハードウェア構成要素のブロック図である。
【0006】
図3図3は、支持構造深さを決定するための方法のフローチャートである。
【0007】
図4A図4Aは、図3の方法のブロック305において得られるポイントクラウト及び棚面の図である。
【0008】
図4B図4Bは、図1のシステムの装置によって捕捉され、図3の方法のブロック310において得られる、例示画像の図である。
【0009】
図5A図5Aは、図4Bの画像の1つを、より詳細に示す図である。
【0010】
図5B図5Bは、図5Aの画像に対応する棚マスクの例示的な背面を示す図である。
【0011】
図6A図6Aは、図3の方法のブロック315を実施するための方法のフローチャートである。
【0012】
図6B図6Bは、図4Aのポイントクラウドとの関連での図6Aの方法の実施を説明する図である。
【0013】
図7A図7Aは、図3の方法のブロック320を実施する方法のフローチャートである。
【0014】
図7B図7Bは、図5Aの画像との関連での図7Aの方法の実施を説明する図である。
【0015】
図8A図8A及び図8Bは、図3の方法のブロック325の例示的な実施を示す図である。
図8B図8A及び図8Bは、図3の方法のブロック325の例示的な実施を示す図である。
【0016】
図8C図8Cは、図3の方法のブロック325の更なる例示的な実施を示す図である。
【0017】
図9図9は、図3の方法の実施を介して決定される支持構造深さを示す図である。
【発明を実施するための形態】
【0018】
当業者は、図面内の要素は簡潔及び明瞭に示されていて、必ずしも一定縮尺で描かれていない、ということを理解するであろう。例えば、図面内の幾つかの要素の寸法は、本発明の実施形態の理解を改善することを助けるべく、他の要素と比較して誇張されている可能性がある。
【0019】
装置及び方法の構成要素は、適切な場合、図面内で従来の符号によって示されており、当該図面は、詳細に関する開示を不明瞭にしないように、本発明の実施形態を理解することに関連する特定の詳細のみを示しており、当該詳細に関する開示は、本明細書の記載の利益を受ける当業者にとって容易に明らかである。
【0020】
本明細書に開示される例は、支持構造であって当該支持構造の深さによって分離されている正面及び背面を有する支持構造、の支持構造深さを決定する方法に向けられている。当該方法は、(i)支持構造のポイントクラウド(点群)、及び、(ii)捕捉ポーズから捕捉される支持構造の画像の複数の部分について、当該複数の部分が当該支持構造の背面を描写していることについてのそれぞれの信頼性レベルを示すマスク、を取得する工程と、前記ポイントクラウドから、前記捕捉ポーズで生じる視野内に位置するポイントの初期セットを選択する工程と、前記ポイントの初期セットから、深さ測定値の閉塞(遮蔽)されていないサブセットを選択する工程と、前記マスクから、前記閉塞されていないサブセットの前記深さ測定値の各々の信頼性レベルを取得する工程と、前記閉塞されていないサブセットの前記深さ測定値と前記取得された信頼性レベルとに基づいて、前記支持構造深さを決定する工程と、を備え、前記閉塞されていないサブセットの前記深さ測定値は、それぞれの画像座標に対応している。
【0021】
本明細書に開示される追加の例は、支持構造であって当該支持構造の深さによって分離されている正面及び背面を有する支持構造、の支持構造深さを決定するためのコンピューティングデバイスに向けられている。当該コンピューティングデバイスは、(i)前記支持構造のポイントクラウド、及び、(ii)捕捉ポーズから捕捉される前記支持構造の画像の複数の部分について、当該複数の部分が当該支持構造の前記背面を描写していることについてのそれぞれの信頼性レベルを示すマスク、を記憶するメモリと、前記メモリに接続された撮像コントローラと、を備え、前記撮像コントローラは、前記ポイントクラウドから、前記捕捉ポーズで生じる視野内に位置するポイントの初期セットを選択し、前記ポイントの初期セットから、深さ測定値の閉塞されていないサブセットを選択し、前記マスクから、前記閉塞されていないサブセットの前記深さ測定値の各々の信頼性レベルを取得し、前記閉塞されていないサブセットの前記深さ測定値と前記取得された信頼性レベルとに基づいて、前記支持構造深さを決定するように構成されている。
【0022】
本明細書に開示される更なる例は、サーバのプロセッサによって実行可能なコンピュータ可読命令を記憶したコンピュータ可読媒体に向けられている。当該コンピュータ可読命令の実行は、サーバをして、(i)前記支持構造のポイントクラウド、及び、(ii)捕捉ポーズから捕捉される前記支持構造の画像の複数の部分について、当該複数の部分が当該支持構造の前記背面を描写していることについてのそれぞれの信頼性レベルを示すマスク、を取得させ、前記ポイントクラウドから、前記捕捉ポーズで生じる視野内に位置するポイントの初期セットを選択させ、前記ポイントの初期セットから、深さ測定値の閉塞されていないサブセットを選択させ、前記マスクから、前記閉塞されていないサブセットの前記深さ測定値の各々の信頼性レベルを取得させ、前記閉塞されていないサブセットの前記深さ測定値と前記取得された信頼性レベルとに基づいて、前記支持構造深さを決定させ、前記閉塞されていないサブセットの前記深さ測定値は、それぞれの画像座標に対応している。
【0023】
図1は、本開示の教示によるモバイル自動システム100を示している。当該システム100は、小売環境内に配備されるように示されているが、他の実施形態では、倉庫や病院等を含む様々な他の環境内に配備され得る。当該システム100は、少なくとも1つのモバイル自動装置103(本明細書では単に装置103とも呼ばれる)と通信するサーバ101と、本実施例では無線リンクを含むものとして示される通信リンク107を介して少なくとも1つのクライアントコンピューティングデバイス105と、を含む。 本実施例では、リンク107は、1または複数のアクセスポイント(図示せず)によって当該小売環境内に配備(展開)された無線ローカルエリアネットワーク(WLAN)によって提供されている。他の例では、サーバ101、クライアントデバイス105、またはそれらの両方が、当該小売環境の外側に配置され、リンク107は、従って、インターネットやモバイルネットワーク等のような広域ネットワークを含む。当該システム100はまた、本実施例における装置103のためのドック108を含んでいる。当該ドック108は、本実施例では有線リンクであるリンク109を介して、サーバ101と通信している。もっとも、他の例では、リンク109は無線リンクである。
【0024】
クライアントコンピューティングデバイス105は、タブレットやスマートフォン等のモバイルコンピューティングデバイスとして、図1に示されている。他の例では、クライアントデバイス105は、デスクトップコンピュータ、ラップトップコンピュータ、別のサーバ、キオスク、モニタ等のような、別のタイプのコンピューティングデバイスとして実装される。当該システム100は、それぞれのリンク107を介してサーバ101と通信する複数のクライアントデバイス105を含み得る。
【0025】
当該システム100は、図示例では、棚モジュール110-1、110-2、110-3等(まとめて(複数の)棚110と呼ばれ、一般的に(単数の)棚110と呼ばれる-この命名法はまた、本明細書で説明される他の要素に採用される)の複数の支持構造を含む小売環境内に配備されている。他の例では、ペグボードなどの追加タイプの支持構造も存在し得る。各棚モジュール110は、複数の製品112を支持する。各棚モジュール110は、棚背面116-1、116-2、116-3と、当該棚背面116から棚縁部118-1、118-2、118-3まで延びる支持面(例えば、図1に示されるような支持面117-3)と、を含む。
【0026】
複数の棚モジュール110は、典型的には、複数の通路内に配置されている。各通路は、端から端まで整列された複数のモジュール110を含んでいる。そのような配置では、棚縁部118が通路内に面している。当該通路を通って、当該小売環境内の顧客及び装置103が移動可能である。図1から明らかなように、本明細書で使用される「棚縁部」118という用語は、支持面(例えば、支持面117)の縁部とも呼ばれ得て、異なる傾斜角を有する隣接表面によって境界付けられた表面を指す。図1に示される例では、棚縁部118-3は、支持面117-3及び支持面117-3の下側(図示せず)の各々に対して、約90度の角度である。他の例では、棚縁部118-3と、支持面117-3等の隣接面と、の間の角度は、90度より大きいまたは小さい。棚縁部118は、棚深さによって棚背面116から分離された棚110の正面を規定している。共通の座標系102が、図1に示されている。本実施例では、棚深さは、共通の座標系102におけるY次元で定義され、棚背面116及び棚縁部118は、XZ平面に平行であるとして示されている。
【0027】
装置103は、当該小売環境内に配備され、(例えばリンク107を介して)サーバ101と通信して、棚110の少なくとも一部の長さ119(座標系102のX軸に平行であるとして図1に示されている)に沿って、自律的にまたは部分的に自律的にナビゲート(航行)する。装置103は、自律的にまたはサーバ101と連動して、例えば当該環境のマップに関して、当該環境内のその位置を連続的に決定するように、構成されている。装置103はまた、マップを更新するように構成され得る(例えば、同時マッピング及びローカリゼーションプロセス、すなわち、SLAMプロセスを介して)。
【0028】
装置103は、画像センサ(例えば、1または複数のデジタルカメラ)及び深度センサ(例えば、1または複数の光検出及び測距(LIDAR)センサ、赤外光等の構造化された光パターンを使用する1または複数の深度カメラ)等の、複数のナビゲーション及びデータ捕捉センサ104を備えている。装置103は、当該センサ104を使用して、棚110間をナビゲートし(例えば、前記の経路に従って)、及び、そのようなナビゲーション中にポイントクラウド及び画像データ等の棚データを捕捉する、というように構成され得る。
【0029】
サーバ101は、環境内でナビゲートしてデータを捕捉するようにモバイル自動装置103を制御する及び/または支援するように特別に設計された、プロセッサ120等の特別目的の撮像コントローラを含んでいる。プロセッサ120は、更に、リポジトリ132への格納及びその後の処理(例えば、捕捉データ内の棚保管製品等の対象物を検出し、当該対象物に対応する状態情報を検出する)のために通信インタフェース124を介して捕捉データを取得するように構成され得る。サーバ101はまた、製品状態データの決定に応答して、状態通知(例えば、製品が在庫切れ、在庫少、または、置き間違い、であることを示す通知)をクライアントデバイス105に送信するように構成され得る。クライアントデバイス105は、サーバ101から受信した通知を処理する(例えば、表示する)ように構成された1または複数のコントローラ(例えば、中央処理装置(CPU)及び/またはフィールドプログラマブルゲートアレイ(FPGA)等)を含む。
【0030】
プロセッサ120は、前記のメモリ122等の、非一時的なコンピュータ可読記憶媒体と相互接続されており、棚データを捕捉するための装置103の制御、棚データの後処理、及び、棚データを捕捉するための目標位置等の所定のナビゲーションデータを生成して装置103に提供すること、を含む様々な機能を実行するためのコンピュータ可読命令をその上に記憶している。メモリ122は、揮発性メモリ(例えば、ランダムアクセスメモリ、すなわち、RAM)及び非揮発性メモリ(例えば、読取専用メモリ、すなわち、ROM、または、電気的に消去可能なプログラマブル読取専用メモリ、すなわち、EEPROM、または、フラッシュメモリ)の組合せを含む。プロセッサ120及びメモリ122は、各々、1または複数の集積回路を有している。幾つかの実施形態では、プロセッサ120は、1または複数の中央処理装置(CPU)及び/またはグラフィクス処理装置(GPU)として実装される。
【0031】
サーバ101はまた、プロセッサ120と相互接続された前記の通信インタフェース124を含んでいる。通信インタフェース124は、サーバ101がリンク107、109を介して他のコンピューティングデバイス(特には、装置103、クライアントデバイス105及びドック108)と通信することを許容する、好適なハードウェア(例えば、送信器、受信器、ネットワークインターフェースコントローラ、等)を含んでいる。リンク107、109は、直接リンクであり得て、あるいは、ローカルネットワークと広域ネットワークとの両方を含む1または複数のネットワークを横断するリンクであり得る。通信インタフェース124の具体的な構成要素は、サーバ101が通信するために必要とされるネットワークまたは他のリンクのタイプに基づいて選択される。本実施例では、前述のように、無線ローカルエリアネットワークが、1または複数の無線アクセスポイントの配備(展開)を介して当該小売環境内に実装されている。従って、リンク107は、装置103とモバイルデバイス105と前記のアクセスポイントとの間の無線リンク、及び、サーバ101とアクセスポイントとの間の有線リンク(例えば、イーサネットベースのリンク)、のいずれかまたは両方を含む。
【0032】
メモリ122は、プロセッサ120によって実行可能な複数のコンピュータ可読命令を各々が含む複数のアプリケーションを記憶している。プロセッサ120による前記の命令の実行は、本明細書で説明される様々な動作を実行するようにサーバ101を構成する。メモリ122内に記憶されたアプリケーションは、制御アプリケーション128を含み、これはまた、論理的に別個のアプリケーションの組として実装され得る。 一般に、アプリケーション128またはそのサブコンポーネントの実行を介して、及び、サーバ101の他のコンポーネントと併せて、プロセッサ120は、装置103を制御して棚110間をナビゲートしてデータを捕捉し、当該捕捉データを用いて当該捕捉データに様々な後処理動作を実行する、ということに関連する様々な機能を実装するように構成される。本実施例では、以下でより詳細に説明されるように、アプリケーション128の実行が、棚110を表すポイントクラウド及び画像データを含む捕捉データ(例えば、装置103から取得される)に基づいて、1または複数の棚110の棚の深さを決定するようにサーバ101を構成する。
【0033】
制御アプリケーション128の実行を介して構成される時、プロセッサ120は、本明細書ではコントローラ120とも呼ばれる。ここで明らかになるように、以下に説明されるコントローラ120によって実装される機能の一部または全ては、プロセッサ120による制御アプリケーション128の実行によるのではなく、むしろ、事前構成された専用ハードウェアコントローラ(例えば、画像処理の速度を最適化するように特別に構成された1または複数の論理回路構成、例えば、当該目的用に構成されたFPGA及び/または特定用途向け集積回路(ASIC))によっても実行され得る。
【0034】
次に、図2A及び図2Bを参照すると、モバイル自動装置103がより詳細に示されている。当該装置103は、移動機構203(例えば、車輪や軌道等を駆動する1または複数の電気モータ)を含むシャーシ201を含んでいる。当該装置103は、更に、シャーシ201上に支持され、本実施例ではシャーシ201から上方に(例えば、実質的に鉛直に)延びる、センサマスト205を含んでいる。当該マスト205は、前述のセンサ104を支持している。特に、センサ104は、デジタルカメラ等の少なくとも1つの画像センサ207、及び、3Dデジタルカメラ等の少なくとも1つの深度センサ209、を含んでいる。当該装置103はまた、LIDARセンサ211等の追加の深度センサをも含んでいる。他の例では、当該装置103は、1または複数のRFIDリーダや温度センサ等のような追加センサを含む。
【0035】
本実施例では、マスト205は、7台のデジタルカメラ207-1~207-7、及び、2台のLIDARセンサ211-1~211-2を支持している。マスト205はまた、それぞれのカメラ207の視野を照明するように構成された複数の照明アセンブリ213をも支持している。すなわち、照明アセンブリ213-1は、カメラ207-1の視野を照明し、以下同様である。センサ207及び211は、装置103が移動している長さ119に沿って各センサの視野が棚110に面するというように、マスト205上で方向付けられている。装置103は、当該小売施設内で以前に確立された共通の座標系102内の当該装置103の位置(例えば、シャーシ201の中心の位置)を追跡するように構成され、モバイル自動装置103によって捕捉されるデータが当該共通の座標系に登録されることを許容する。
【0036】
モバイル自動装置103は、図2Bに示されるように、例えばメモリ222等の非一時的なコンピュータ可読記憶媒体と相互接続された、プロセッサ220等の特別目的のコントローラを含んでいる。メモリ222は、揮発性メモリ(例えば、ランダムアクセスメモリ、すなわち、RAM)及び非揮発性メモリ(例えば、読取専用メモリ、すなわち、ROM、または、電気的に消去可能なプログラマブル読取専用メモリ、すなわち、EEPROM、または、フラッシュメモリ)の組合せを含む。プロセッサ220及びメモリ222は、各々、1または複数の集積回路を有している。メモリ222は、プロセッサ220によって実行されるためのコンピュータ可読命令を記憶している。特に、メモリ122は、プロセッサ220によって実行される時、装置103のナビゲーション及び例えばサーバ101による後続の処理のためのデータの捕捉に関連する様々な機能を実行するようにプロセッサ220を構成する制御アプリケーション228を記憶している。幾つかの実施形態では、そのような後続の処理は、アプリケーション228の実行を介して装置103自身によって実行され得る。アプリケーション228はまた、他の例では、別個のアプリケーションの組として実装され得る。
【0037】
プロセッサ220は、アプリケーション228の実行によってそのように構成される時、撮像コントローラ220と呼ばれることもある。当業者は、アプリケーション228の実行を介してプロセッサ220によって実装される機能が、1または複数の特別に設計されたハードウェア及びファームウェアコンポーネントによっても実装され得ることを理解するであろう。後者は、他の実施形態では、画像及び/または深度センサデータの処理用に最適化された論理回路構成、例えば特別に構成されたFPGAやASIC等、を含む。
【0038】
メモリ222はまた、例えば、アプリケーション228の実行中に使用するための、装置103が動作する環境を表す1または複数のマップを含むリポジトリ232を格納し得る。装置103は、例えば、図1に示されるリンク107を介して通信インタフェース224を介して、指定された場所にナビゲートしてデータ捕捉動作を開始するための命令を受信するべく、サーバ101と通信し得る。通信インタフェース224はまた、装置103がドック108及びリンク109を介してサーバ101と通信することを可能にする。
【0039】
以下の説明で明らかなように、他の例では、サーバ101によって実行される処理の一部または全てが、装置103によって実行され得て、装置103によって実行される処理の一部または全てが、サーバ101によって実行され得る。すなわち、図示の例では、アプリケーション128はサーバ101内に存在するが、他の実施形態では、捕捉されたデータから棚110の棚深さを決定するための以下に説明される動作の一部または全てが、サーバ101のプロセッサ120と組み合わせて、または、サーバ103のプロセッサ120からは独立して、装置103のプロセッサ220によって実行され得る。当業者が理解するように、サーバ101とモバイル自動装置103との間のそのような計算の分配は、プロセッサ120、220のそれぞれの処理速度、リンク107の品質および帯域幅、並びに、基礎となる命令の重要度、に依存し得る。
【0040】
次に、アプリケーション128の機能がより詳細に説明される。特に、前記の支持構造深さの決定が、サーバ101によって実行されるものとして説明される。図3を参照すると、支持構造深さを決定する方法300が示されている。当該方法300は、図1に示された構成要素を参照して、サーバ101によるその性能と併せて説明される。
【0041】
ブロック305において、サーバ101は、支持構造のポイントクラウド(点群)、及び、支持構造の正面に対応する平面定義、を取得するように構成される。本実施例では、支持構造は、図1に示される棚110等の棚であり、従って、ブロック305で得られるポイントクラウドは、棚モジュール110の少なくとも一部を表し(複数の棚モジュール110を表すことができる)、平面定義は、棚モジュールの正面に対応する棚平面に対応している。換言すれば、平面定義は、棚縁部118を含む平面を規定している。
【0042】
ブロック305で得られるポイントクラウド及び平面定義は、リポジトリ132から取得(検索)され得る。例えば、サーバ101は、装置103から捕捉データ(棚モジュールの複数のライダースキャンを含む)を事前に受信していた可能性があり、当該ライダースキャンからポイントクラウドを事前に生成していた可能性がある。ポイントクラウド内の各ポイントは、棚110や製品112等の表面上の点(例えば、ライダーセンサ211の走査線が影響を与えた点)を表し、座標系102内の座標の組(X、Y及びZ)によって規定される。平面定義もまた、例えば前記のポイントクラウドから、サーバ101によって事前に生成され得てリポジトリ132に格納され得る。例えば、サーバ101は、棚縁部118の事前定義された特性に従って棚縁部118を識別するように、ポイントクラウド、生のライダーデータ、カメラ207によって捕捉された画像データ、または、それらの組合せ、を処理するように構成され得る。そのような特性の例は、棚縁部118が実質的に平面である可能性が高いこと、及び、装置103が棚モジュール110の長さ119を移動する時に他の対象物(例えば棚背面116及び製品112等)よりも棚縁部118が当該装置103により近い可能性が高いこと、を含む。平面定義は、平面を定義する適切なパラメータの組など、様々な好適な形式で取得され得る。そのようなパラメータの例は、法線ベクトル(すなわち、当該平面に垂直であるように座標系102に従って定義されるベクトル)、及び、深さ(座標系102の原点から当該平面までの法線ベクトルに沿った距離を示す)を含む。
【0043】
図4Aを参照すると、棚モジュール110-3を示すポイントクラウド400が示されている。従って、棚背面116-3、棚117-3及び棚縁部118-3が、ポイントクラウド400内に示されている。棚モジュール110-3の正面(前面)に対応する平面定義404も、図4Aに示されている(すなわち、平面定義404は、棚縁部118-3を含んでいる)。ポイントクラウド400及び平面定義404は、図4に示されるグラフィカル形式で取得される必要はない。当業者には明らかであるように、ポイントクラウドは座標のリストとして取得され得て、平面定義404は、前記の複数のパラメータとして取得され得る。
【0044】
図3に戻って、ブロック310において、サーバ101は、捕捉ポーズから(例えば、装置103によって)捕捉される時、支持構造の少なくとも1つの画像を取得するように構成される。捕捉ポーズとは、座標系内でのカメラ207等の捕捉デバイスの位置及び向きである。前記のように、装置103は、1または複数の棚モジュール110をトラバース(横断)して、当該棚モジュール110の画像を捕捉するように構成される。ここで明らかになるように、各画像の捕捉は、装置103の特定の位置及び向きで行われる。更に、装置103は、図2Aに示されるように、複数のカメラ207を含んでいる。当該複数のカメラ207は、各々、装置103上で、事前定義された物理的位置及び向きを有している。従って、装置103の各ポーズ(すなわち、位置及び向き)において、複数の画像が、各カメラ207において1つずつ、捕捉され得る。従って、各画像は、特定の捕捉ポーズに対応し、後者は、座標系102によるカメラ207の物理的位置を意味している。
【0045】
図4Bは、装置103が棚モジュール110-3を移動方向406でトラバース(横断)する時の、当該装置103による2つの例示的な画像408-1、408-2の捕捉を示す。特に、第1装置ポーズ412-1において、装置103がカメラ207-1を制御して第1画像408-1を捕捉する。従って、第1画像408-1の捕捉時のカメラ207-1の位置及び向きは、第1捕捉ャポーズに対応する。その後、棚モジュール110-3のトラバース中に、第2装置ポーズ412-2で、装置103がカメラ207-1を制御して第2画像408-2を捕捉する。ここで明らかになるように、第2画像408-2は、装置ポーズ412-2及び装置103に対するカメラ207-1の物理的向きによって定義される第2捕捉ポーズに対応する。他のカメラ207の各々はまた、各装置ポーズ412で画像を捕捉するように制御され得る。それらの他のカメラ207によって捕捉される画像は、更に多くの捕捉ポーズに対応する。
【0046】
図3に戻って、ブロック310において、サーバ101はまた、例えばリポジトリ132からの取得(検索)によって、棚の背面(BoS)マスクまたはBoSマップとも呼ばれるマスクを取得するように構成される。当該マスクは、前記の少なくとも1つの画像に対応する。すなわち、ブロック310で取得される各画像について、1つの対応するマスクが取得され得る。当該マスクは、対応する画像から導出され、当該画像の複数の部分の各々について、当該部分が棚背面116を描写しているという信頼性レベルを示す。当該マスクが画像と同じ解像度を有する場合、前記部分は個々のピクセルであり得る。他の例では、マスクは画像よりも低い解像度を有するため、マスク内の各信頼性レベルは、複数のピクセルを含む画像の一部に対応する。
【0047】
図5Aは、図4Bの画像408-1を示している。図5Aに示すように、画像408-1の部分500は、棚背面116-3を描写している。一方、部分504-1、504-2、504-3は、製品112を描写し、部分508は、棚縁部118-3を描写している。図5Bは、画像408-1から導出されるマスク512を示している。当該マスクを生成するために、様々な機構が採用され得る。例えば、画像408-1は、事前定義されたサイズ(例えば、5×5ピクセル)のパッチに分解され得て、各パッチは信頼性レベルを生成するための適切な分類操作によって分類され得る。当該信頼性レベルは、前記パッチが棚背面116-3の参照画像と合致する程度を示す。その後、マスク512は、各パッチに割り当てられた信頼性レベルを組合せることによって構築され得る。
【0048】
図5Bでは、マスク512の信頼性レベルが、グレースケールで表されている。マスク512のより暗い領域は、画像408-1の対応部分が棚背面116-3を描写することについてのより低い信頼度を示し(換言すれば、画像408-1の対応部分が棚背面116-3を描写しないことについてのより高い信頼性を示し)、マスク512のより明るい領域は、画像408-1の対応部分が棚背面116-3を描写することについてのより高い信頼性を示す。例えば、領域516は、画像408-1の部分508が棚背面116-3を描写するということについてのゼロの信頼性レベルを示す。マスク512の別の領域520は、画像408-1の対応部分が棚背面116-3を描写するということについての最大の信頼性レベル(例えば、100%)を示す。マスク512の他の領域は、中間の信頼性レベルを示す。例えば、領域524は、約50%の信頼性レベルを示すが、これは、画像408-1の部分504-3に示される製品112上のパターンが、棚背面116-3に類似しているからである。一方、マスク512の領域528は、約30%の信頼性レベルを示している。
【0049】
マスク512の信頼性レベルを記憶するための様々な他の機構が、図5Bに示されるグレースケール画像の他に、企図される。例えば、信頼性レベルは、画像408-1のどの部分が各信頼性レベルに対応するかを示す関連の画像座標の組とともに、リストに記憶され得る。
【0050】
ブロック305及び310でポイントクラウド、平面定義、画像、及び、マスク、を取得すると、サーバ101は、その後、対応する信頼性レベルがマスク512内に存在するポイントクラウド内のポイントのサブセットを識別するように構成される。すなわち、サーバ101は、画像が捕捉された時にカメラ207に見えていたポイントクラウド内の複数のポイントを識別する。次に、サーバ101は、棚面に対するそのような複数の点の深さをマスク512からの対応する信頼性レベルと併せて使用して、棚面に対する棚背面116の深さを決定するように構成される。前記の機能は、以下でより詳細に説明される。
【0051】
図3に戻って、ブロック315において、サーバ101は、ポイントクラウドから、前記の捕捉ポーズによって確立される視野内に位置するポイントの初期セットを選択するように構成される。図4Bを簡単に参照すると、カメラ207-2の視野が、各捕捉ポーズ412において破線で示されている。捕捉ポーズは、座標系102に従って規定され、カメラ207の事前定義された動作パラメータ(例えば、焦点距離)に従って、座標系102内の視野の位置及び範囲も定義され得る。
【0052】
サーバ101は、ブロック315において、ポイントクラウドの各ポイントを評価して、当該ポイントがブロック310で取得された画像に対応する視野内にあるか否かを決定する、というように構成され得る。例えば、サーバ101は、座標系102内のある体積として視野を定義して、ポイントクラウドの各ポイントが定義された体積内にあるか否かを決定する、というように構成され得る。定義された体積内にあるポイントが、初期セットとして選択される。もっとも、幾つかの例では、サーバ101は、図6に関連して後述されるように、ツリーベースの検索を実行してポイントの初期セットを生成するように構成される。
【0053】
図6Aを参照して、ブロック315でポイントの初期セットを選択する方法600が説明される。ブロック605において、サーバ101は、k-d(k次元)ツリーやオクトツリー等のようなツリーデータ構造を生成するように構成される。本実施例では、k-dツリーがブロック605で生成される。ツリーデータ構造は、ポイントクラウド内の各ポイントについて、当該ポイントの深さに直交する第1及び第2次元座標を含んでいる。すなわち、各ポイントは、座標系102に従ってそのX座標及びZ座標によってツリー内で表され、初期セットの選択のためにY座標が省略される(Y座標は、方法300の後半で使用され、以下で説明される)。
【0054】
当業者によって理解されるように、k-dツリーは、前記の2つの次元のうちの1つ(例えば、X次元)の中央値を決定することによって、構築され得る。当該中央値より小さいX座標を有するポイントは、ツリーの最初のブランチに割り当てられ、残りのポイントは、2番目のブランチに割り当てられる。各ブランチについて、他の座標(この例ではZ)の中央値が決定され、当該ブランチに割り当てられたポイントは、それらのZ座標がZ中央値より上か下かによって、再び細分化される。このプロセスが繰り返され、ツリーの各ノードが単一のポイントを含むまで、交互の次元の中央値に基づいてブランチのペア間のポイントが更に細分化される(すなわち、X次元に基づく1つの分割に、Z次元に基づく1つの分割が後続し、X次元に基づく更なる分割が後続し、等)。
【0055】
ブロック610において、サーバ101は、ツリーで表される2次元内で、視野の中心の座標を決定するように構成される。前述のように、視野によって規定される体積は、カメラ207の動作パラメータ及び捕捉ポーズから決定される。図6Bを参照すると、装置ポーズ412-1でのカメラ207-2の視野602が示されている。視野602中心は、3次元では、線604によって規定される。視野の中心の2次元座標を2次元(すなわち、X次元及びZ次元)で決定するために、サーバ101は、事前定義された深さを選択して、中心線604が当該事前定義された深さと交差する座標を決定するように構成される。事前定義された深さは、ブロック305において得られる棚面の深さに追加されるべき深さとして、メモリ122内に記憶され得る。他の例では、本明細書で説明される計算を簡略化するために、ポイントクラウド、棚面、捕捉ポーズ等が、原点が棚面上にある(例えば、XZ面が棚面上にある)座標系に変換され得る。図6Bに示されるように、中心線604は、FOV中心608で事前定義された深さと交差する。事前定義された深さは、好ましくは、棚背面116の深さを超えるように選択される(但し、棚背面116の深さは、正確にはわかっていない場合がある)。
【0056】
ブロック615において、サーバ101は、中心608から事前定義された半径内にあるツリーからポイントを取得(検索)することによって、セットのポイントを選択するように構成される。図6Bは、中心608から延びる所定の半径612を示している。当業者には明らかであるように、k-dツリー等のツリー内での半径ベースの検索を実行するために、様々な機構が利用可能である。本実施例では、図6Bに示されるように、ブロック615で取得(検索)されるポイントは、例示的なポイント616を含み、他のポイント618は、半径612よりも中心608から更に離れているので、取得(検索)されない。
【0057】
ブロック620において、サーバ101は、事前定義された半径612がFOV602の実際の境界を超えて延びる可能性がある時、ブロック615において取得(検索)される各ポイントの3次元位置がFOV602内にあることを検証するように構成され得る。他の例では、ブロック620は省略され得る。ブロック620での検証は、実施される場合、ポイントクラウドからの3次元座標をある座標系内の2次元座標(例えば、画像408-1内のピクセル座標)に変換するように構成された、カメラ較正行列とも呼ばれる変換行列を採用し得る。従って、ブロック620における検証は、ブロック615で取得(検索)された各ポイントについて、対応する画像座標を生成すること、及び、当該画像座標が画像408-1の境界内にあるか否かを決定すること、を含み得る。
【0058】
図3に戻って、FOV602内のポイント616の初期セットを選択した後、ブロック320において、サーバ101は、当該初期セット内のポイントから深さ測定値の閉塞されていないセットを選択するように構成される。ブロック315で選択されたポイントの初期セットは、FOV602内にあるが、それにもかかわらず、他の対象物によってカメラ207による視界から遮られているために、カメラ207によって画像化されなかったポイントを含み得る。例えば、再び図6Bを参照すると、ポイント616aは、FOV602内にあるが、カメラ207-2が図6Bに示される捕捉ポーズから撮像(画像化)できない棚117の部分に対応する。これは、製品112がカメラ207-2とポイント616aとの間に存在するためである。ライダースキャナがカメラ2072-2とは異なる位置にあるために、あるいは、ライダースキャンが後続の装置ポーズ412からポイント616aを捕捉したために、あるいは、そのような理由のために、ポイント616aは、ポイントクラウド内に現れる場合がある。換言すれば、ポイント616aは、画像408-1及びマスク512が対応するデータを有しない閉塞ポイントである。ブロック320において、サーバ101は、そのような閉塞されたポイントを更なる考慮から除外し、ポイント616b等の閉塞されていないポイントのデータを保持するように構成される。
【0059】
一般に、ブロック320における選択は、ポイントクラウドからの任意の閉塞ポイントについて、閉塞の原因である対象物に対応するポイントクラウド内にも閉塞されていないポイントが存在する、という仮定に基づいて動作する。更に、ブロック320において、前記の閉塞されていないポイントがカメラ207に視認可能であって、従って、画像408-1内に表されている、と想定される。図7Aを参照すると、深さ測定値の閉塞されていないサブセットを選択する例示的な方法700が示されている。
【0060】
ブロック705で、サーバ101は、ブロック315において選択された初期セット内の各ポイントの画像座標を決定するように構成される。前述のように、画像座標は、前方投影とも呼ばれるプロセス(すなわち、ポイントクラウド内への画像内のポイントの「後方」投影と呼ばれる後方投影とは対照的に、捕捉画像内に3次元内のポイントを「前方」投影する)でカメラ較正行列を使用することによって取得され得る。 図7Bは、前述のポイント6l6a、616bに対するブロック705の結果を示している。ポイント6l6a、616bは、座標系702(本実施例では、座標系102のXZ平面と平行である)によって規定される画像座標に対応している。図7Bに見られるように、ポイント616に関連する座標系102内の深さ測定値も、画像座標(2次元である)内に直接的には表されていないが、方法700の実行を通じて保持される。深さ測定値は、画像座標に関連して、リスト704または他の適切なフォーマットで維持され得る。追加の例示的なポイント706、708、709、712、714も示されている。深さ測定値のリスト704に示されているように、ポイント708は製品表面上に位置しており、ポイント709は製品の後方、例えば棚背面116上にある(ポイント708の深さ235mmと比較して、深さ528mm)。ポイント712、714はまた、棚背面116上に位置しており、それぞれ、530mm、522mmの関連する深さを有する。
【0061】
ブロック710において、サーバ101は、ブロック705において決定された画像座標を含む、更なるk-dツリー等のツリーデータ構造を生成するように構成される。ブロック715において、サーバ101は、ポイントの隣接群を選択するように構成される。具体的には、ツリー内の選択されたポイントについて、サーバ101は、当該ポイントの最も近い隣接群(例えば、事前定義された数の隣接群、事前定義された半径内の隣接群、または、前記の組合せ)を取得(検索)するように構成される。サーバ101は、更に、ブロック715において取得(検索)された最も近い隣接群から、最小深さを有する隣接ポイントを選択するように構成される。従って、図7Bを再び参照して、ポイント616aから開始して、最も近い隣接ポイントは、ポイント616bであり、ポイント616a、6l6b間での最も低い深さは、ポイント6l6bに関連する深さである。従って、ポイント616bの深さ測定値(及び対応する画像座標)は、深さ測定値の閉塞されていないサブセットに含めるために保持され、ポイント616aは破棄される。ブロック720での決定が、処理されるべきポイントが残っていないことを示すまで、ブロック715の実行は、初期セットの残りのポイントの各々に繰り返される。図7Bに例示的なポイントが示されている。
【0062】
初期セットからの全てのポイントが処理され、閉塞されていない深さ測定値のサブセットが選択されると、サーバ101は、方法300のブロック325に戻る。ブロック325において、サーバ101は、選択的に、深さ測定値の閉塞されていないサブセットから深さ測定値の最終サブセットを選択するように構成され得る。例えば、図7Bに示された複数のポイントを取って、そこから得られる深さ測定値の閉塞されていないサブセットが図8Aに示されている。図8Aでは、ポイント616a、709が閉塞されていないサブセット800から廃棄されていることが分かる。ブロック325において、サーバ101は、1または複数の追加のフィルタリング操作を実行して、閉塞されていないサブセットから更なるポイントを除外するように構成され得る。
【0063】
ブロック325において適用されるフィルタリング操作の第1例は、所定の閾値を下回るマスク512からのBoS信頼性レベルを有する任意のポイントを破棄することである。本実施例では、所定の閾値は55%である(もっとも、代わりに他の様々な閾値が適用され得ることが理解される)。図8Bは、ポイント6l6b、706、708、712、714の画像座標にそれぞれ対応する信頼性レベル8l6b、806、808、812、814を有するマスク512を示している。本実施例では、信頼性レベル8l6b、806、808、812、814が、それぞれ、30%、0%、50%、100%、90%であると想定されている。従って、55%未満の信頼性レベルを有するポイント(すなわち、ポイント6l6b、706、708)は破棄され、深さ測定値の最終サブセットは、ポイント712、714の深さ測定値と、それらに関連する画像座標と、を含む。
【0064】
ブロック325において実行されるフィルタリングの他の例は、事前定義された最大深さ閾値を超える深さ測定値を有するポイントを破棄することを含む。図8Cは、画像418-1が捕捉されたポーズとは異なる装置ポーズ(従って、異なる捕捉ポーズ)から取られた別の例示的な画像818を示している。画像818では、棚モジュール110-3の縁部818が視認可能であり、従って、画像818とポイントクラウドとの両方の特定のポイントが、棚モジュール110-3を超えた施設の領域に対応している。例えば、ポイント820は、2500mmの関連する深さ測定値を有し得る。前記の最大閾値は、施設全体の既知の最大棚深さ(例えば、700mm)として選択され得る。従って、ポイント820は、ブロック325で破棄され得る。
【0065】
図3に戻って、ブロック330において、最終サブセットの深さ測定値は、マスク512からの対応する信頼性レベルに従って重み付けされる。従って、本実施例では、ポイント712、714の深さ測定値は、それぞれの信頼性レベル(それぞれ、100%、90%)に従って、重み付けされる。例えば、当該深さは、それぞれの重みによって乗算され得る(例えば、530×1、522×0.9)。ブロック335において、棚深さは、重み付けされた深さから決定される。すなわち、ブロック335において決定される棚深さは、ブロック325からの最終サブセットにおける深さ測定値の加重平均である。本実施例では、ポイント712、714の深さ測定値の加重平均は、重み付けされた深さを合計し、その結果を重み付けの合計(すなわち、1.9または190%)で除算することによって得られ、526.2mmの結果が得られる。図9は、決定された棚深さを、棚面404から延びる(棚面404に垂直な)破線900として示している。
【0066】
ブロック340において、サーバ101は、捕捉ポーズが処理されるべく残っているか否か(すなわち、現在のカメラにとって追加の装置ポーズが残っているか否か、あるいは、追加のカメラが現在の装置ポーズにおいて残っているか否か)を決定するように構成される。ブロック340での決定が肯定的である場合、方法300の実行は、後続の画像及び対応するマスクに対して繰り返される。ブロック340での決定が否定的である場合、方法300の実行は、終了する。幾つかの例では、ブロック335は、ブロック340での否定的な決定の後にのみ実行され、ブロック330の各実施からの深さ測定値の複数の重み付けされた最終セットを使用して、棚モジュール110の単一の棚深さを決定する。方法300の実行を介して決定される棚深さは、例えば、棚110または他の対象物状態データのギャップを特定するのに使用するべく、サーバ101の更なるアプリケーション(または別のコンピューティングデバイス)に戻され得る。
【0067】
前述の明細書において、特定の実施形態が説明された。しかしながら、当業者は、以下の特許請求の範囲で示す本発明の範囲から逸脱することなく、種々の改変及び変更を行うことができることを認識する。従って、明細書及び図面は、限定的な意味ではなく例示的なものであるとみなされるべきであり、このような改変の全てが、本教示の範囲内に含まれることが意図されている。
【0068】
利益、利点、課題の解決法、並びに、何らかの利益、利点または解決法を生じさせ得るかより顕著にし得るあらゆる要素は、特許請求の範囲の請求項のいずれかまたは全てにおける、決定的な、要求される、または必須の、特徴または要素として解釈されるべきではない。本発明は、添付の特許請求の範囲によってのみ規定され、本出願の係属中になされるあらゆる補正と、発行時の特許請求の範囲の全ての均等物と、を含む。
【0069】
更に、当該文書において、第1及び第2、上及び下、等のような関連語は、1つの実体または動作を他の実体または動作から区別するためにのみ用いられている可能性があり、必ずしもそのような実体または動作間の実際のそのような関係または順序を要求したり含意したりしていない可能性がある。用語「備える(comprises)」、「備えている(comprising)」、「有する(has)」、「有している(having)」、「含む(include)」、「含んでいる(including)」、「含有する(contains)」、「含有している(containing)」、あるいは、それらの他のあらゆる変形語は、非排他的な包含をカバーすることが意図されている。要素の列挙(リスト)を、備える、有する、含む、または、含有する、というプロセス、方法、物品、または、装置は、それらの要素のみを含むのではなく、明示的に列挙されていない他の要素や、そのようなプロセス、方法、物品、または、装置に固有の他の要素を含み得る。「を備える(comprises ...a)」、「を有する(has ...)」、「を含む(includes ...a)」、「を含有する(contains ...a)」の後に続く要素は、更なる制約条件が無ければ、当該要素を、備える、有する、含む、または、含有する、というプロセス、方法、物品、または、装置、における付加的な同一要素の存在を排除しない。用語「a」及び「an」は、明示的に他の言及が無い限り、1または複数として定義される。用語「実質的に」、「本質的に」、「およそ」、「約」、あるいは、それらの他のあらゆる変形語は、当業者に理解されるように、近い状態であるものとして定義され、1つの非限定的な実施形態において、当該用語は、10%以内、別の実施形態においては5%以内、別の実施形態においては1%以内、及び、別の実施形態において0.5%以内、として定義される。本明細書で用いられる用語「結合された」は、接続されたものとして定義されるが、必ずしも直接的でなくてもよく、また、必ずしも機械的でなくてもよい。ある方式で「構成された」デバイスまたは構造は、少なくとも当該方式で構成されるが、挙げられていない方式で構成されてもよい。
【0070】
幾つかの実施形態は、マイクロプロセッサ、デジタル信号プロセッサ、カスタマイズドプロセッサ及びフィールドプログラマブルゲートアレイ(FPGA)のような、1または複数の専用プロセッサ(又は「処理デバイス」)と、当該1または複数のプロセッサを制御して、特定の非プロセッサ回路と共に、本明細書で説明される方法及び/または装置の機能の一部、大部分、または、全て、を実装する、特有の記憶されたプログラム命令(ソフトウェア及びファームウェアの両方を含む)と、で構成され得ることが認識されるであろう。あるいは、一部または全ての機能が、記憶されたプログラム命令を有しない状態機械によって実装され得るし、または、各機能もしくは特定の機能の幾つかの組合せがカスタム論理として実装された1または複数の特定用途向け集積回路(ASIC)において実装され得る。勿論、2つの手法の組合せが用いられてもよい。
【0071】
更に、実施形態は、本明細書で説明されて特許請求される方法を実行するようにコンピュータ(例えばプロセッサを含む)をプログラミングするための、記憶されたコンピュータ可読コードを有する、コンピュータ可読ストレージ媒体として実装され得る。このようなコンピュータ可読ストレージ媒体の例は、ハードディスク、CD-ROM、光学ストレージデバイス、磁気ストレージデバイス、ROM(読出し専用メモリ)、PROM(プログラマブル読出し専用メモリ)、EPROM(消去可能プログラマブル読出し専用メモリ)、EEPROM(電気的消去可能プログラマブル読出し専用メモリ)、及び、フラッシュメモリ、を含むがこれらに限定されない。更に、例えば、利用可能な時間、現在の技術水準、及び、経済的考慮事項、によって動機付けされる、可能性ある顕著な努力や多くの設計選択肢にもかかわらず、本明細書に開示される概念及び原理によって導かれる時、当業者は、このようなソフトウェア命令及びプログラム並びにICを最小限の実験で容易に生成可能になる、ということが期待される。
【0072】
本開示の要約は、読者が当該技術的開示の性質を素早く確認することを許容するために提供される。それは、特許請求の範囲の請求項の範囲または意味を解釈または制限するために用いられないという理解と共に提示される。また、前述の詳細な説明において、当該開示を円滑にする目的で、様々な実施形態において様々な特徴がまとめてグループ化されていることが認められ得る。この開示方法は、特許請求される実施形態が、各請求項で明示的に記載されている特徴よりも多くの特徴を必要とする、という意図を反映するものとして解釈されるべきでない。むしろ、以下の特許請求の範囲が反映するように、本発明の主題は、単一の開示された実施形態の全ての特徴よりも少なく存在する。以下の特許請求の範囲は、ここで詳細な説明に組み入れられ、各請求項は、別個に特許請求される主題として、それ自身独立している。
図1
図2A
図2B
図3
図4A
図4B
図5A
図5B
図6A
図6B
図7A
図7B
図8A
図8B
図8C
図9
【国際調査報告】