(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
[18] 以下の詳細な説明は、本発明の図面及び例示的な実装形態のさらなる詳細を明らかにする。図面間で重複する要素の参照番号及び説明は明確化のために省略する。説明を通じて使用される用語は例として示されており、限定することを意図していない。例えば、「自動的な」という用語の使用は、本発明の実装形態を実施する当業者が所望する実装形態に応じて、実装形態の特定の態様に対するユーザ又はオペレータの制御を含む、全自動又は半自動の実装形態を含むことができる。さらに、「第1の」、「第2の」、「第3の」などの連続した用語は、本明細書及び特許請求の範囲において、単に表示目的で使用してもよく、記載された順序で起きる記載された行為又は事項への言及に限定されないものとする。行為又は事項は、本発明の範囲を逸脱することなく、異なる順序に並べられてもよい、又は、並行して、もしくは動的に実行されてもよい。
【0010】
[19] 本発明における「コンピュータ可読媒体」という用語は、ローカル記憶デバイス、クラウドベースの記憶デバイス、遠隔配置されたサーバ、又は当業者には明白であり得る任意の他の記憶デバイスを含むことができる。
【0011】
[20] 本発明に係るマシンビジョン又は物体検出システムの例示的な実装形態は、物体間の隙間又はコントラスト差を検出するために2つ以上の画像データモードを使用することによって、例えば物体又はボックス間の隙間又は空間の検出による物体エッジの検出確率を高めることができる。2つ以上の画像データモードを使用することによって、素材、背景、ケースもしくは物体、環境照明、又は反射の違いを検出することができ、これらの検出に基づいて、コンピュータシステムは、物体のサイズを決定するために、隙間間のエッジ、又は点群を識別する融合エッジ情報を生成することができる。さらに、以下で説明するように、異なる画像データモードを使用して検出されたエッジ情報を融合させることによって、例示的な実装形態は、マップ上のボックスのエッジである物体又はボックスの周囲の輪郭を読み取ることができ、結果としてこの領域を画定し、後の処理のための正確な検出仮説を与える可能性が高くなる。物体位置及び輪郭を検出する確率を高めることによって、物体をより良好に追跡し、生産加工、梱包、又は出荷施設内に配置することができる。
【0012】
[21] 本明細書で説明される例示的な実装形態は、仕分け又は製造施設を通過するパレット又はボックスの追跡に関連する場合がある。しかしながら、例示的な実装形態はこれらの用途に限定されない。本明細書で説明されるプロセス及びシステムの例示的な実装形態は、3Dマッピング、自律視覚又は改善されたエッジ検出から恩恵を受け得る任意の他の用途に使用することもできる。例示的な実装形態は、従来のエッジ検出システムと比較して、より多くのデータのモジュールを使用することによって改善されたエッジ検出結果を提供して、異なるセンシングデバイスの欠点や限界を克服し、その長所や能力を所与の環境に組み合わせることができる。
【0013】
適切な環境
[22]
図1Aは、本願の例示的な実施形態に係る、マシンビジョン又は物体検出システムを有するロボットシステム100の例示的な環境を示す図である。ロボットシステム100は、1つ以上のタスクを実行するように構成された1つ以上の構造体(例えばロボット)を含む。ピースロス管理機構の態様は、様々な構造体によって実行又は実施することができる。
【0014】
[23]
図1Aに示す例では、ロボットシステム100は、倉庫又は流通/出荷拠点に、荷下ろしユニット102、移送ユニット104、搬送ユニット106、荷積みユニット108、又はこれらの組み合わせを備えることができる。ロボットシステム100の各ユニットは、1つ以上のタスクを実行するように構成することができる。タスクは順番に組み合わせて、例えば倉庫に保管するために物体をトラックやバンから降ろすこと、又は物体を保管場所から降ろし、出荷のためにトラックやバンに積み込むことなどの目的を達成する作業を実行することができる。別の例では、タスクは物体をあるコンテナから別のコンテナに移動させることを含むことができる。各ユニットは、タスクを実行するために一連の動作(例えば、ユニット内の1つ以上のコンポーネントを操作すること)を実行するように構成することができる。
【0015】
[24] 一部の実施形態では、タスクは開始位置114からタスク位置116までの対象物体112(例えば、ボックス、ケース、ケージ、パレットなど)の操作(例えば、移動及び/又は再配向)を含むことができる。例えば、荷下ろしユニット102(例えば、デバンニングロボット)は、対象物体112をキャリア(例えば、トラック)内の位置からコンベヤベルト上の位置まで移送するように構成することができる。また、移送ユニット104(例えば、パレタイジングロボット)は、例えば対象物体112を搬送ユニット106上のパレットに積載するために、対象物体112をコンベヤベルト上の位置から搬送ユニット106上の位置に移送するように構成することができる。
【0016】
[25] 別の例示的な実施形態によれば、移送ユニット104(例えば、ピースピッキングロボット)は、対象物体112をあるコンテナから別のコンテナに移送するように構成することができる。搬送ユニット106は、作業を完了する際、対象物体112を移送ユニット104に関連付けられたエリアから荷積みユニット108に関連付けられたエリアに移送することができる。荷積みユニット108は、対象物体112を(例えば、対象物体112を載せたパレットを移動させることによって)移送ユニット104から保管位置(例えば、棚上の位置)に移送することができる。タスク及び関連動作についての詳細は以下で説明する。
【0017】
[26] 例示を目的として、ロボットシステム100は発送センターとの関連で説明されるが、ロボットシステム100が、例えば製造、組立、梱包、医療、及び/又はその他の種類の自動化のための、他の環境における他の目的のためのタスクを実行するように構成できることは理解される。また、ロボットシステム100が、
図1に示されていない、例えばマニピュレータ、サービスロボット、モジュラーロボットなどのその他のユニットを含むことができることも理解される。
【0018】
[27] 例えば一部の実施形態では、ロボットシステム100は、物体をケージ、カート又はパレットからコンベヤ又は別のパレットに移送するためのデパレタイジングユニット、物体をあるコンテナから別のコンテナに移送するためのコンテナ交換ユニット、物体を包むための梱包ユニット、物体をその1つ以上の特性に応じて分類するための仕分けユニット、物体に対してその1つ以上の特性に応じて異なる操作(例えば、仕分け、グループ化、及び/又は移送)を行うためのピースピッキングユニット、又はこれらの組み合わせを備えることができる。
【0019】
適切なシステム
[28]
図1Bは、本技術の例示的な実施形態に係る、マシンビジョン又は物体検出システムを有するロボットシステム100を示すブロック図である。例えば、一部の実施形態では、ロボットシステム100は(例えば、上記の1つ以上のユニット及び/又はロボットに)、例えば1つ以上のプロセッサ118、1つ以上の記憶デバイス120、1つ以上の通信デバイス122、1つ以上の入出力デバイス124、1つ以上の駆動デバイス128、1つ以上の搬送モータ130、1つ以上のセンサ132、又はこれらの組み合わせを備えることができる。
【0020】
[29] 種々のデバイスは、有線接続及び/又は無線接続を介して互いに通信可能に結合することができる。例えば、ロボットシステム100は、システムバス、周辺コンポーネント相互接続(PCI)バスもしくはPCIエクスプレスバス、ハイパートランスポートもしくは業界標準アーキテクチャ(ISA)バス、小型コンピュータ用システムインターフェイス(SCSI)バス、汎用シリアルバス(USB)、IIC(I2C)バス、又は電気電子技術者協会(IEEE)標準1394バス(「FIREWIRE」とも呼ばれる)などのバスを備えることができる。また、例えばロボットシステム100は、ブリッジ、アダプタ、コントローラ、又はデバイス間の有線接続を提供するための他の信号関連デバイスを備えることができる。無線接続は、例えばセルラ通信プロトコル(例えば、3G、4G、LTE、5Gなど)、無線ローカルエリアネットワーク(LAN)プロトコル(例えば、ワイヤレスフィデリティ(WIFI))、ピアツーピアもしくはデバイスツーデバイス通信プロトコル(例えば、ブルートゥース、近距離無線通信(NFC)など)、インターネット・オブ・シングス(IoT)プロトコル(例えば、NB−IoT、LTE−Mなど)、及び/又はその他の無線通信プロトコルに基づくことができる。
【0021】
[30] プロセッサ118は、記憶デバイス120(例えば、コンピュータメモリ)に記憶された命令(例えば、ソフトウェア命令)を実行するように構成されたデータプロセッサ(例えば、中央演算処理装置(CPU)、専用コンピュータ、及び/又はオンボードサーバ)を含むことができる。プロセッサ118は、プログラム命令を実行して他のデバイスを制御する又は他のデバイスと連動することによって、ロボットシステム100に動作、タスク、及び/又は操作を実行させることができる。
【0022】
[31] 記憶デバイス120は、プログラム命令(例えば、ソフトウェア)が記憶された非一時的コンピュータ可読媒体を備えることができる。記憶デバイス120の一部の例は、揮発性メモリ(例えば、キャッシュメモリ及び/又はランダムアクセスメモリ(RAM))及び/又は不揮発性メモリ(例えば、フラッシュメモリ及び/又は磁気ディスク装置)を含むことができる。記憶デバイス120のその他の例は、ポータブルメモリ装置及び/又はクラウド記憶デバイスを含むことができる。
【0023】
[32] 一部の実施形態では、記憶デバイス120を使用して、さらに処理結果及び/又はデータ/閾値(例えば、所定のデータ及び閾値)を記憶し、これにアクセスすることができる。例えば、記憶デバイス120は、ロボットシステム100が操作し得る物体(例えば、ボックス、ケース、及び/又は製品)の記述を含むマスターデータを記憶することができる。1つ以上の実施形態では、マスターデータは、ロボットシステム100により操作されることが予想される物体の、寸法、形状(例えば、潜在的な姿勢のテンプレート及び/又は様々な姿勢にある物体を認識するためのコンピュータ生成モデル)、カラースキーム、画像、識別情報(例えば、バーコード、クイックレスポンス(QR)コード(登録商標)、ロゴなど、及び/又はこれらの予想位置)、予想重量、又はこれらの組み合わせを含むことができる。一部の実施形態では、マスターデータは、物体ごとの重心位置、1つ以上の動作/操作に対応する(例えば、力、トルク、圧力、及び/又は接触測定の)予想センサ測定値、又はこれらの組み合わせなどの、物体についての操作関連情報を含むことができる。
【0024】
[33] また、例えば記憶デバイス120は、物体追跡データを記憶することができる。一部の実施形態では、物体追跡データは、スキャンされた又は操作された物体のログを含むことができる。一部の実施形態では、物体追跡データは、1つ以上の位置(例えば、指定の積み込みもしくは積み下ろし位置及び/又はコンベヤベルト)にある物体の画像データ(例えば、写真、点群、ライブビデオ画像など)を含むことができる。一部の実施形態では、物体追跡データは、1つ以上の位置にある物体の位置及び/又は向きを含むことができる。
【0025】
[34] 通信デバイス122は、ネットワークを介して外部又は遠隔デバイスと通信するように構成された回路を備えることができる。通信デバイス122は、例えば受信器、送信器、変調器/復調器(モデム)、信号検出器、信号エンコーダ/デコーダ、コネクタポート、ネットワークカードなどを備えることができる。通信デバイス122は、1つ以上の通信プロトコル(例えば、インターネットプロトコル(IP)、無線通信プロトコルなど)に従って電気信号を送信、受信、及び/又は処理するように構成することができる。一部の実施形態では、ロボットシステム100は、通信デバイス122を使用して、ロボットシステム100のユニット間の情報交換、及び/又はロボットシステム100の外部のシステム又はデバイスとの(例えば、報告、データ収集、解析、及び/又はトラブルシューティング目的の)情報交換を行うことができる。
【0026】
[35] 入出力デバイス124は、オペレータ(例えば、人間オペレータ)との情報のやりとりを行うように構成されたユーザインターフェイスデバイスを含むことができる。例えば、入出力デバイス124は、ディスプレイ126、及び/又は人間オペレータに情報を伝達するためのその他の出力デバイス(例えば、スピーカ、触覚回路、又は触覚フィードバックデバイスなど)を含むことができる。また、入出力デバイス124は、キーボード、マウス、タッチスクリーン、マイクロホン、ユーザインターフェイス(UI)センサ(例えば、動作コマンドを受け取るためのカメラ)、ウェアラブル入力デバイスなどの制御又は受信デバイスを含むことができる。一部の実施形態では、ロボットシステム100は、動作、タスク、操作、又はこれらの組み合わせを実行する際、入出力デバイス124を使用して人間オペレータと対話することができる。
【0027】
[36] ロボットシステム100は、運動(例えば、回転及び/又は並進変位)のために関節で接続された物理的部材又は構造部材(例えば、ロボットマニピュレータアーム)を備えることができる。構造部材及び関節は、ロボットシステム100の使用/操作に応じて1つ以上のタスク(例えば、把持、回転、溶接など)を実行するように構成されたエンドエフェクタ(例えば、グリッパ)を操作するように構成された運動連鎖を形成することができる。ロボットシステム100は、構造部材を対応する関節又は関節の周りにおいて駆動又は操作する(例えば、移動及び/又は再配向させる)ように構成された駆動デバイス128(例えば、モータ、アクチュエータ、ワイヤ、人工筋肉、電気活性高分子など)を備えることができる。一部の実施形態では、ロボットシステム100は、対応するユニット/シャーシをあちこちに搬送するように構成された搬送モータ130を備えることができる。
【0028】
[37] ロボットシステム100は、例えば構造部材を操作するため、及び/又はロボットユニットを搬送するためのタスクを実行するのに使用される情報を取得するように構成されたセンサ132を備えることができる。センサ132は、ロボットシステム100の1つ以上の物理的特性(例えば、1つ以上の構造部材/これらの関節の状態、状況、及び/又は位置)を検出又は測定するように構成された、及び/又は周囲環境のためのデバイスを備えることができる。センサ132の一部の例は、加速度計、ジャイロスコープ、力センサ、ひずみゲージ、触覚センサ、トルクセンサ、及び位置エンコーダを含むことができる。
【0029】
[38] 一部の実施形態では、例えばセンサ132は、周囲環境を検出するように構成された1つ以上の撮像デバイス134(例えば、視覚及び/又は赤外線カメラを含む2次元及び/又は3次元カメラ、LADAR、RADAR、及び/又はその他の距離測定又は撮像デバイス)を含むことができる。撮像デバイス134は、(例えば、自動検査、ロボット誘導、又はその他のロボット応用のための)マシン/コンピュータビジョンを実行するために使用される、デジタル画像及び/又は点群などの検出された環境の表現を検出及び生成することができる。以下でさらに詳細に説明するように、ロボットシステム100は、(例えば、プロセッサ118を介して)デジタル画像及び/又は点群を処理して、
図1Aの対象物体112、
図1Aの開始位置114、
図1Aのタスク位置116、
図1Aの対象物体112の姿勢、又はこれらの組み合わせを特定することができる。
【0030】
[39] 対象物体112を操作するために、ロボットシステム100は、(例えば、種々のユニットを介して)指定されたエリア(例えば、トラック内部、コンテナ内部、又はコンベヤベルト上の物体のピックアップ位置)の画像を取り込み、解析して対象物体112及びその開始位置114を特定することができる。同様に、ロボットシステム100は、別の指定エリア(例えば、物体をコンベヤベルト上に置くためのドロップ位置、コンテナ内部の物体を置くための位置、又はパレット上の積載するための位置)の画像を取り込み、解析してタスク位置116を特定することができる。
【0031】
[40] また、例えばセンサ132は、ロボットシステム100の構造部材(例えば、ロボットアーム及び/又はエンドエフェクタ)及び/又は対応する関節の位置を検出するように構成された位置センサ136(例えば、位置エンコーダ、ポテンショメータなど)を含むことができる。ロボットシステム100は、位置センサ136を使用して、タスクの実行中に構造部材及び/又は関節の位置及び/又は向きを追跡することができる。
【0032】
[41] 一部の実施形態では、センサ132は、複数の物理的構造体又は表面間の直接接触と関連する特性を測定するように構成された接触センサ138(例えば、圧力センサ、力センサ、ひずみゲージ、ピエゾ抵抗/圧電センサ、容量センサ、エラスト抵抗センサ、及び/又はその他の触覚センサ)を含むことができる。接触センサ138は、対象物体112に対するエンドエフェクタ(例えば、グリッパ)の把持に対応する特性を測定することができる。したがって、接触センサ138は、グリッパと対象物体112との接触又は密着の度合いに対応する定量化された測度(例えば、測定された力、トルク、位置など)を表す接触測度を出力することができる。例えば接触測度は、エンドエフェクタにより対象物体112に印加された力と関連する1つ以上の力又はトルク測定値を含むことができる。接触測度についての詳細は以下で説明される。
【0033】
[42] 以下でさらに詳細に説明するように、ロボットシステム100は、(例えば、プロセッサ118を介して)接触測度に基づいてタスクを遂行する様々な動作を実行することができる。例えば、ロボットシステム100は、初期の接触測度が閾値未満である場合、対象物体112を再把持することができる。また、ロボットシステム100は、タスクの実行中に接触測度が閾値を下回った場合、対象物体112を下ろすこと、タスク位置116を調整すること、動作の速度もしくは加速度を調整すること、又はこれらの組み合わせを意図的に行うことができる。
【0034】
[43] 本願に係るエンドエフェクタ(例えば、グリッパ)の例示的な実施形態は、必要な能力に基づいて工具ヘッドを変更する能力を提供することによって工具の選択及びカスタマイズの柔軟性が高くなる可能性がある。例えば、握持する物体のタイプとマッチするように可変グリッパを交換することができる。マッチングは、物体のサイズ、物体の繊細さ、又は当業者には明白と思われる任意の他の要因に基づいて行うことができる。この変更能力は、工具の変更を検知し、新しい工具の要件に適合するように信号I/O操作及び供給される圧縮空気の供給量を調整するように構成された制御モジュールと通信可能に結合されたコネクタ構造体によって提供される。
【0035】
例示的な実装形態
[44]
図2は、本発明の第1の例示的な実装形態に係る、運搬装置220に沿って移動する物体275a〜275cを検出するための装置205を示している。装置205は、Z軸に沿って運搬装置220と間隔を隔てて配置された2つの画像データ取込デバイス210/212を備えることができる。図示されるように、画像取込デバイス210/212は、運搬装置220に沿って物体275a〜275cが移動する方向に整列し、運搬装置220の物体275a〜275cと同じ側に位置する。しかしながら、例示的な実装形態はこの構成に限定されず、当業者には明白と思われる他の構成で構成することもできる。他の例示的な構成は、以下で考察される
図3及び
図4に示されている。さらに、例示を目的として、物体275a〜275cが運搬装置220上にある装置205が示されているが、物体275a〜275cを異なる構成で配置できることが理解される。例えば、物体275a〜275cは、パレットなどのプラットフォーム上、又はカートやビンなどの物体容器の内部に積載又は配置することができる。
【0036】
[45] 一部の例示的な実装形態では、画像データ取込デバイス210/212の一方又は両方は、例えばカラースチルカメラ(例えば、RGBカメラ)、カラービデオカメラ、モノクロもしくはグレースケールスチルカメラ、モノクロもしくはグレースケールビデオカメラなどの2次元撮像デバイスもしくはカメラ、又は当業者には明白と思われる任意の他の2次元撮像デバイスであってよい。また、一部の例示的な実装形態では、画像データ取込デバイス210/212のそれぞれは、異なるタイプの2次元撮像デバイスであってもよい(例えば、一方の画像取込デバイスがRGBカメラであって、他方の画像取込デバイスがモノクロカメラであってよい、又は当業者には明白と思われる2次元撮像デバイスの任意の他の組み合わせであってよい)。
【0037】
[46] さらに、一部の例示的な実装形態では、画像データ取込デバイス210/212の一方又は両方は、例えばステレオビジョンカメラ、距離画像カメラ(すなわち、飛行時間(TOF)カメラ)などの3D点群情報を生成可能な3次元画像デバイス、又は3D点群情報を生成可能な任意の他のデバイスであってよい。また、一部の例示的な実装形態では、画像データ取込デバイス210/212のそれぞれは、異なるタイプの3次元撮像デバイスであってもよい(例えば、一方の画像取込デバイスがステレオビジョンカメラであり、他方の画像取込デバイスが飛行時間カメラであってよい、又は当業者には明白と思われる3次元撮像デバイスの任意の他の組み合わせであってよい)。
【0038】
[47] さらにまた、一部の例示的な実装形態では、画像取込デバイスの一方(例えば、デバイス210)は2次元画像取込デバイスであり、画像取込デバイスの他方(例えば、デバイス212)は3次元画像取込デバイスであってよい。
【0039】
[48]
図2に示すように、画像取込デバイス210/212は、物体275a〜275cが運搬装置220上での移動中に画像取込デバイス210/212の下を通り過ぎるとき、物体275a〜275cの画像データを取り込む又は生成するように構成することができる。一部の例示的な実装形態では、物体275a〜275cは、産業、製造、又は仕分け施設において運搬装置220又は同様の装置に沿って移動するボックス、パッケージ、又はパレットであってよい。
【0040】
[49] 装置205はまた、画像取込デバイス210/212に結合され、物体275a〜275cの画像データを処理するコンピュータデバイス225を備えることができる。一部の例示的な実装形態では、コンピュータデバイス225は、通信可能に画像取込デバイス210/212をコンピュータデバイス225内の1つ以上のプロセッサに結合するシステムインターフェイス280(例えば、入出力(I/O)インターフェイス)を備えることができる。例えば、コンピュータデバイス225のシステムインターフェイス280は、画像取込デバイス210/212により取り込まれた又は生成された画像データを受け取り、この画像データをコンピュータデバイス225の1つ以上のプロセッサに提供することができる。
【0041】
[50] さらに、コンピュータデバイス225の1つ以上のプロセッサは、画像取込デバイス210/212により取り込まれた又は生成された画像データに基づいて物体275a〜275cのエッジを検出するように構成することができる。別の例として、コンピュータデバイス225の1つ以上のプロセッサは、物体275a〜275c間の隙間を検出するために、画像取込デバイス210/212の画像データに検出されたエッジを融合させるように構成することができる。エッジを検出するプロセス及び融合させるプロセスは以下でより詳細に考察される。一部の例示的な実装形態では、コンピュータデバイス225は、例えば、以下で考察される
図9のコンピュータ環境900のコンピュータデバイス905であってよい。また、システムインターフェイス280は、例えば
図9のコンピュータデバイス905のI/Oインターフェイス925であってよい。さらに、1つ以上のプロセッサは、例えば
図9のコンピュータデバイス905のプロセッサ910であってよい。
【0042】
[51] コンピュータデバイス225はまた、画像データ取込デバイス210/212の出力から、エッジ及び物体275a〜275c間の隙間をより上手く検出するための結合画像信号を生成することができる。一部の例示的な実装形態では、コンピュータデバイス225はまた、例えばネットワーク230を介して(例えば、有線及び/又は無線接続により)通信可能に互いに接続された、仕分け、追跡、又は当業者には明白と思われる任意の他の目的で検出された隙間及びエッジを使用し得る複数のデバイス235〜265に結合画像信号を送信することができる。
【0043】
[52] 複数のデバイス235〜265は、コンピュータ235(例えば、ラップトップコンピュータデバイス)、モバイルデバイス240(例えば、スマートフォン又はタブレット)、ウェアラブルデバイス255(例えば、スマートウォッチ)、記憶デバイス250に接続されたサーバコンピュータ245、及び当業者には明白と思われるその他のコンピュータデバイス260〜265を含むことができるが、これらに限定されない。デバイス235〜265はまた、以下に示される
図9のコンピュータ環境900を有することができる。
【0044】
[53] 一部の例示的な実装形態では、コンピュータデバイス225は、結合画像信号を複数のデバイス235〜265に送信する前に生成することができるが、本発明の例示的な実装形態はこの構成に限定されない。例えば、コンピュータデバイス225は、物体275a〜275cに関連するエッジ及び隙間を検出するために、(第1の画像データ取込デバイス210と呼ばれることもある)画像データ取込デバイス210からの画像データを(第2の画像データ取込デバイス212と呼ばれることもある)画像データ取込デバイス212からの画像データと結合して、以下で考察されるプロセス又はアルゴリズムを使用して結合画像信号を生成することができる。
【0045】
[54] 逆に、他の例示的な実装形態では、コンピュータデバイス225は、画像データ取込デバイス210からの画像データ及び画像データ取込デバイス212からの画像データを分離信号として複数のデバイス235〜265の1つ以上に送信することができる。分離信号が受信されると、複数のデバイス235〜265のそれぞれは、以下で考察されるプロセス又はアルゴリズムを使用して分離信号を結合して、結合画像信号を生成して物体275a〜275cに関連するエッジ及び隙間を検出することができる。
【0046】
[55] コンピュータデバイス225は、装置205の初期設定又は再構成可能な設定の間に結合画像信号を生成するために、画像データ取込デバイス210からの画像データ及び画像データ取込デバイス212からの画像データに対応して結合画像信号を送信すべきか分離信号を送信すべきかを決定することができる。結合画像信号を送信すべきか分離信号を送信すべきかの決定は、複数のデバイス235〜265のそれぞれに問い合わせを行って、複数のデバイス235〜265のそれぞれの能力及び複数のデバイス235〜265のそれぞれへのデータ転送に使用可能な帯域幅を判定することに基づくことができる。
【0047】
[56]
図3は、本発明の第2の例示的な実装形態に係る、運搬装置320に沿って移動する物体375a〜375cを検出するための装置305を示している。装置305は、
図2に示された上記の装置205と類似している。したがって、類似の構造及びコンポーネントを示すのに類似の参照番号が用いられる。
【0048】
[57] 装置305は、Z軸に沿って運搬装置320と間隔を隔てて配置された2つの画像データ取込デバイス310/312を備える。但し、
図2とは異なり、画像データ取込デバイス310/312は、運搬装置320の物体375a〜375cと同じ側に位置している一方、互いに対して角度を成すように示されている。同様に、例示的な実装形態はこの構成に限定されず、当業者には明白と思われる他の構成で構成することもできる。他の例示的な構成は、以下で考察される
図4に示される。
【0049】
[58] 一部の例示的な実装形態では、画像データ取込デバイス310/312の一方又は両方は、例えばカラースチルカメラ(例えば、RGBカメラ)、カラービデオカメラ、モノクロもしくはグレースケールスチルカメラ、モノクロもしくはグレースケールビデオカメラなどの2次元撮像デバイスもしくはカメラ、又は当業者には明白と思われる任意の他の2次元撮像デバイスであってよい。また、一部の例示的な実装形態では、画像データ取込デバイス310/312のそれぞれは、異なるタイプの2次元撮像デバイスであってもよい(例えば、一方の画像取込デバイスがRGBカメラであり、他方の画像取込デバイスがモノクロカメラであってよい、又は当業者には明白と思われる2次元撮像デバイスの任意の他の組み合わせであってよい)。
【0050】
[59] さらに、一部の例示的な実装形態では、画像データ取込デバイス310/312の一方又は両方は、例えばステレオビジョンカメラ、飛行時間(TOF)カメラなどの3D点群を取り込み可能な3次元画像デバイス、又は3D点群を取り込み可能な任意の他のデバイスであってよい。また、一部の例示的な実装形態では、画像データ取込デバイス310/312のそれぞれは、異なるタイプの3次元撮像デバイスであってもよい(例えば、一方の画像取込デバイスがステレオビジョンカメラであり、他方の画像取込デバイスが飛行時間カメラであってよい、又は当業者には明白と思われる3次元撮像デバイスの任意の他の組み合わせであってよい)。
【0051】
[60] さらにまた、一部の例示的な実装形態では、画像取込デバイスの一方(例えば、デバイス310)は2次元取込デバイスであり、画像取込デバイスの他方(例えば、デバイス312)は3次元取込デバイスであってよい。
【0052】
[61] 画像取込デバイス310/312は、運搬装置320上での移動中に画像取込デバイス310/312の下を通り過ぎる物体375a〜375cの画像データを取り込むように構成することができる。一部の例示的な実装形態では、物体375a〜375cは、産業、製造、又は仕分け施設においてコンベヤベルト又は同様の装置に沿って移動するボックス、パッケージ、又はパレットであってよい。
【0053】
[62] 装置305はまた、画像取込デバイス310/312に結合され、物体375a〜375cの画像データを処理するコンピュータデバイス325を備えることができる。一部の例示的な実装形態では、コンピュータデバイス325は、通信可能に画像取込デバイス310/312をコンピュータデバイス325内の1つ以上のプロセッサに結合するシステムインターフェイス380(例えば、I/Oインターフェイス)を備えることができる。例えば、コンピュータデバイス325のシステムインターフェイス380は、画像取込デバイス310/312により取り込まれた又は生成された画像データを受け取り、この画像データをコンピュータデバイス325の1つ以上のプロセッサに提供することができる。
【0054】
[63] コンピュータデバイス325の1つ以上のプロセッサは、物体375a〜375cのエッジを検出し、物体375a〜375c間の隙間を検出するために、検出したエッジを融合させるように構成することができる。エッジを検出するプロセス及び融合させるプロセスは以下でより詳細に考察される。一部の例示的な実装形態では、コンピュータデバイス325は、例えば、以下で考察される
図9のコンピュータ環境900のコンピュータデバイス905であってよい。また、システムインターフェイス380は、例えば
図9のコンピュータデバイス905のI/Oインターフェイス925であってよい。さらに、1つ以上のプロセッサは、例えば
図9のコンピュータデバイス905のプロセッサ910であってよい。
【0055】
[64] コンピュータデバイス325はまた、画像データ取込デバイス310/312の出力から、エッジ及び物体375a〜375c間の隙間をより上手く検出するための結合画像信号を生成することができる。一部の例示的な実装形態では、コンピュータデバイス325はまた、例えばネットワーク330を介して(例えば、有線及び/又は無線接続により)通信可能に互いに接続された、仕分け、追跡、又は当業者には明白と思われる任意の他の目的で検出された隙間及びエッジを使用し得る複数のデバイス335〜365に結合画像信号を送信することができる。
【0056】
[65] 複数のデバイス335〜365は、コンピュータ335(例えば、ラップトップコンピュータデバイス)、モバイルデバイス340(例えば、スマートフォン又はタブレット)、ウェアラブルデバイス355(例えば、スマートウォッチ)、記憶デバイス350に接続されたサーバコンピュータ345、及び当業者には明白と思われるその他のコンピュータデバイス360〜365を含むことができるが、これらに限定されない。デバイス335〜365はまた、以下に示される
図9のコンピュータ環境900を有することができる。
【0057】
[66] 一部の例示的な実装形態では、コンピュータデバイス325は、結合画像信号を複数のデバイス335〜365に送信する前に生成することができるが、本発明の例示的な実装形態はこの構成に限定されない。例えば、コンピュータデバイス325は、物体375a〜375cに関連するエッジ及び隙間を検出するために、(第1の画像データ取込デバイス310と呼ばれることもある)画像データ取込デバイス310からの画像データを(第2の画像データ取込デバイス312と呼ばれることもある)画像データ取込デバイス312からの画像データと結合して、以下で考察されるプロセス又はアルゴリズムを使用して結合画像信号を生成することができる。
【0058】
[67] 逆に、他の例示的な実装形態では、コンピュータデバイス325は、画像データ取込デバイス310からの画像データ及び画像データ取込デバイス312からの画像データを分離信号として複数のデバイス335〜365の1つ以上に送信することができる。分離信号が受信されると、複数のデバイス335〜365のそれぞれは、以下で考察されるプロセス又はアルゴリズムを使用して分離信号を結合して、結合画像信号を生成して物体375a〜375cに関連するエッジ及び隙間を検出することができる。
【0059】
[68] コンピュータデバイス325は、装置305の初期設定又は再構成可能な設定の間に結合画像信号を生成するために、画像データ取込デバイス310からの画像データ及び画像データ取込デバイス312からの画像データに対応して結合画像信号を送信すべきか分離信号を送信すべきかを決定することができる。結合画像信号を送信すべきか分離信号を送信すべきかの決定は、複数のデバイス335〜365のそれぞれに問い合わせを行って、複数のデバイス335〜365のそれぞれの能力及び複数のデバイス335〜365のそれぞれへのデータ転送に使用可能な帯域幅を判定することに基づくことができる。
【0060】
[69]
図4は、本発明の第3の例示的な実装形態に係る、運搬装置420に沿って移動する物体475a〜475cを検出するための装置405を示している。装置405は、
図2に示された上記の装置205と類似している。したがって、類似の構造及びコンポーネントを示すのに類似の参照番号が用いられる。
【0061】
[70] 装置405は、Z軸に沿って運搬装置と間隔を隔てて配置された2つの画像データ取込デバイス410/412を備える。但し、
図2とは異なり、画像取込デバイス410/412は、物体475a〜475cの異なる側、より具体的には、運搬装置420の反対側に位置している一方、X軸、Y軸、又はZ軸の1つ以上に整列するように示されている。同様に、例示的な実装形態はこの構成に限定されず、当業者には明白と思われる他の構成で構成することもできる。
【0062】
[71] 一部の例示的な実装形態では、画像データ取込デバイス410/412の一方又は両方は、例えばカラースチルカメラ(例えば、RGBカメラ)、カラービデオカメラ、モノクロもしくはグレースケールスチルカメラ、モノクロもしくはグレースケールビデオカメラなどの2次元撮像デバイスもしくはカメラ、又は当業者には明白と思われる任意の他の2次元撮像デバイスであってよい。また、一部の例示的な実装形態では、画像データ取込デバイス410/412のそれぞれは、異なるタイプの2次元撮像デバイスであってもよい(例えば、一方の画像取込デバイスがRGBカメラであり、他方の画像取込デバイスがモノクロカメラであってよい、又は当業者には明白と思われる2次元撮像デバイスの任意の他の組み合わせであってよい)。
【0063】
[72] さらに、一部の例示的な実装形態では、画像データ取込デバイス410/412の一方又は両方は、例えばステレオビジョンカメラ、飛行時間(TOF)カメラなどの3D点群を取り込み可能な3次元画像デバイス、又は3D点群を取り込み可能な任意の他のデバイスであってよい。また、一部の例示的な実装形態では、画像データ取込デバイス410/412のそれぞれは、異なるタイプの3次元撮像デバイスであってもよい(例えば、一方の画像取込デバイスがステレオビジョンカメラであり、他方の画像取込デバイスが飛行時間カメラであってよい、又は当業者には明白と思われる3次元撮像デバイスの任意の他の組み合わせであってよい)。
【0064】
[73] さらにまた、一部の例示的な実装形態では、画像取込デバイスの一方(例えば、デバイス410)は2次元取込デバイスであり、画像取込デバイスの他方(例えば、デバイス412)は3次元取込デバイスであってよい。
【0065】
[74] 画像取込デバイス410/412は、運搬装置420上での移動中に画像取込デバイス410/412の下を通り過ぎる物体475a〜475cの画像データを取り込むように構成することができる。一部の例示的な実装形態では、物体475a〜475cは、産業、製造、又は仕分け施設においてコンベヤベルト又は同様の装置に沿って移動するボックス、パッケージ、又はパレットであってよい。
【0066】
[75] 装置405はまた、画像取込デバイス410/412に結合され、物体475a〜475cの画像データを処理するコンピュータデバイス425を備えることができる。一部の例示的な実装形態では、コンピュータデバイス425は、通信可能に画像取込デバイス410/412をコンピュータデバイス425内の1つ以上のプロセッサに結合するシステムインターフェイス480(例えば、I/Oインターフェイス)を備えることができる。例えば、コンピュータデバイス425のシステムインターフェイス480は、画像取込デバイス410/412により取り込まれた又は生成された画像データを受け取り、この画像データをコンピュータデバイス425の1つ以上のプロセッサに提供することができる。
【0067】
[76] コンピュータデバイス425の1つ以上のプロセッサは、物体のエッジを検出し、物体475a〜475c間の隙間を検出するためにエッジを融合させるように構成することができる。エッジを検出するプロセス及び融合させるプロセスは以下でより詳細に考察される。一部の例示的な実装形態では、コンピュータデバイス425は、例えば、以下で考察される
図9のコンピュータ環境900のコンピュータデバイス905であってよい。また、システムインターフェイス480は、例えば
図9のコンピュータデバイス905のI/Oインターフェイス925であってよい。さらに、1つ以上のプロセッサは、例えば
図9のコンピュータデバイス905のプロセッサ910であってよい。
【0068】
[77] コンピュータデバイス425はまた、画像データ取込デバイス410/412の出力から、エッジ及び物体475a〜475c間の隙間をより上手く検出するための結合画像信号を生成することができる。一部の例示的な実装形態では、コンピュータデバイス425はまた、例えばネットワーク430を介して(例えば、有線及び/又は無線接続により)通信可能に互いに接続された、仕分け、追跡、又は当業者には明白と思われる任意の他の目的で検出された隙間及びエッジを使用し得る複数のデバイス435〜465に結合画像信号を送信することができる。
【0069】
[78] 複数のデバイス435〜465は、コンピュータ435(例えば、ラップトップコンピュータデバイス)、モバイルデバイス440(例えば、スマートフォン又はタブレット)、ウェアラブルデバイス455(例えば、スマートウォッチ)、記憶デバイス450に接続されたサーバコンピュータ445、及び当業者には明白と思われるその他のコンピュータデバイス460〜465を含むことができるが、これらに限定されない。デバイス435〜465はまた、以下に示される
図9のコンピュータ環境900を有することができる。
【0070】
[79] 一部の例示的な実装形態では、コンピュータデバイス425は、結合画像信号を複数のデバイス435〜465に送信する前に生成することができるが、本発明の例示的な実装形態はこの構成に限定されない。例えば、コンピュータデバイス425は、物体475a〜475cに関連するエッジ及び隙間を検出するために、(第1の画像取込デバイス410と呼ばれることもある)画像データ取込デバイス410からの画像データを(第2の画像取込デバイス412と呼ばれることもある)画像データ取込デバイス412からの画像データと結合して、以下で考察されるプロセス又はアルゴリズムを使用して結合画像信号を生成することができる。
【0071】
[80] 逆に、他の例示的な実装形態では、コンピュータデバイス425は、画像データ取込デバイス410からの画像データ及び画像データ取込デバイス412からの画像データを分離信号として複数のデバイス435〜465の1つ以上に送信することができる。分離信号が受信されると、複数のデバイス435〜465のそれぞれは、以下で考察されるプロセス又はアルゴリズムを使用して分離信号を結合して、結合画像信号を生成して物体475a〜475cに関連するエッジ及び隙間を検出することができる。
【0072】
[81] コンピュータデバイス425は、装置405の初期設定又は再構成可能な設定の間に結合画像信号を生成するために、画像データ取込デバイス410からの画像データ及び画像データ取込デバイス412からの画像データに対応して結合画像信号を送信すべきか分離信号を送信すべきかを決定することができる。結合画像信号を送信すべきか分離信号を送信すべきかの決定は、複数のデバイス435〜465のそれぞれに問い合わせを行って、複数のデバイス435〜465のそれぞれの能力及び複数のデバイス435〜465のそれぞれへのデータ転送に使用可能な帯域幅を判定することに基づくことができる。
【0073】
[82]
図5は、比較例に係る単一の画像取込デバイス又はカメラのエッジ検出結果を表し得る画像データの概略
図500を示している。図に示すように、画像データのエッジ検出結果は、パレット501上のほぼ同じサイズのボックス又は物体を図式化した異なるサイズの複数の矩形502、510、及び530を含むことができる。換言すれば、
図5の画像データは、矩形502、510及び530が異なるサイズを有することを示し、システムが互いに異なるサイズを有する各矩形により表された物体又はボックスを検出していることを示す。しかしながら、実際には、システムが矩形502、510、530で表そうとしている、画像取込デバイスにより撮像されている実際のボックス又は物体は、この例ではほぼ同じようなサイズ及び形状である。換言すれば、システムは、ボックスが実際にはほぼ同じようなサイズ及び形状を有する場合に異なる形状及びサイズを有するものと誤った検出をしている。
【0074】
[83] 各ボックス及び物体は、画像データに検出されたエッジ(例えば、物体の形状を画定するエッジを表す線及び曲線)により画定された検出された形状を有する。
図5では、単一の画像取込デバイスにより検出されたボックス又は物体のエッジは、矩形502、510及び530の辺を構成する参照番号505、512、515及び535で表された直線として示される。しかしながら、検出されたエッジは直線でない場合があり、曲線や不規則な形状の場合もある。
【0075】
[84] 図に示すように、(検出されたエッジを表す)線505は第1の長さを有するものとして検出され、(別の検出されたエッジを表す)線512は線505よりも長い第2の長さを有するものとして検出されている。さらに、(それぞれが検出されたエッジを表す)線515及び535は、線505及び512で表された検出されたエッジと比較してより短い長さを有するものとして検出されている。この例では、領域520及び525に追加の内部エッジ(例えば、画像データに表された物体又はボックス間のエッジ)が検出されていないが、領域520及び525に存在する実際のボックス又は物体には内部エッジが存在する可能性がある。例示的な実装形態は、以下で
図8について説明されるプロセス800を用いて異なる画像データモードから検出されたエッジ又は輪郭を融合させて、輪郭検出の誤差(例えば、未検出の内部エッジ、実際の物体のエッジよりも長いもしくは短い長さを有する検出されたエッジ、又は当業者には明白と思われる任意の他の検出誤差)に対処することができる。
【0076】
[85]
図6は、本発明の例示的な実装形態である融合エッジ検出結果を表し得る融合画像データ表現の概略
図600を示している。図に示すように、2つの異なる画像データ表現(例えば、第1の画像データ表現610及び第2の画像データ表現615)は、検出された物体の融合されたエッジ又は輪郭に対応する融合画像データを表す融合画像データ表現605に統合することができる。
【0077】
[86] 例えば、第1の画像データ表現610は、モノクロカメラ画像データなどの2D画像データを使用して取り込まれた画像データの視覚的表現であってよい。一部の例では、2D画像取込デバイス(例えば、2D画像カメラ)は、ボックスなどの異なる物体間のコントラストを判定するのに十分な解像度を有しない場合がある。2D画像取込デバイスの解像度が異なるボックス間のコントラストを判定するのに十分でない場合、エッジの一部(例えば、隣接するボックス間の内部エッジ)が検出されず、他のエッジが線660で表すように正確に検出される一方、線655などの不正確な検出エッジが生じる可能性がある。
図6では、不正確な検出エッジに基づいた検出物体を表すエリアは領域620が斜線で示されている。第1の画像データ表現610は、不正確な検出エッジのエリア(例えば、領域620の斜線)内のボックス間の内部エッジを正確に検出できなかったため、単独では検出失敗と見なされる可能性がある。しかしながら、以下で説明するように、第1の画像データ表現610が第2の画像データ表現615と結合されるとき、融合画像データ表現605を生成することができる。
【0078】
[87] 一例として、第2の画像データ表現615は、3Dカメラ(例えば、奥行き知覚カメラ)により生成された3D点群データ(3D画像データとも呼ばれる)の視覚的表現であってよい。領域625の斜線エリアは3D点群データを表すことができる。3D点群の各部分は領域625内のボックス又は物体の高さを表すことができるが、物体の周囲のエッジは、ノイズ又は環境要因に起因して、破線630で示す実際のエッジと比較して、決定された輪郭線640が示すように歪む又は完全には表現されない可能性がある。一部の例では、3D画像データの処理及び/又は解析に基づいたエッジ検出は、線665が表すようにエッジを正確に検出する可能性がある一方、他の例では、3D画像データの処理及び/又は解析に基づいたエッジ検出は、線670が表すように不完全又は不正確なエッジ検出をもたらす可能性がある。第2の画像データ表現615に基づいた検出エッジの一部もまた、内部エッジ(すなわち、線670)及び物体の周囲のエッジの一部が、(決定された輪郭線640と破線630で示された実際のエッジとの差が示すように)歪む、不完全である、及び/又は不正確である可能性があるため、単独では検出失敗と見なされる可能性がある。
【0079】
[88] 第1の画像データ表現610で示される(2D画像データを表す)画像データと、第1の画像データ表現610で示される(3D深度カメラデータを表す)第2の画像データ表現615を融合させることによって、画像データ表現605で示される融合画像データを生成することができる。図に示すように、融合画像データ表現605は、線670及び655で表された検出エッジなどの部分的に検出された、不正確な、又は不完全な検出エッジを互いに融合させることによって、及び/又は線66−及び665で表された検出エッジなどの正確に検出されたエッジ(すなわち、外部エッジなどの検出信頼度の高いエッジ)と、部分的に検出された、不正確な、又は不完全な検出エッジの1つ以上との組み合わせによって決定され得る内部輪郭又はエッジ645及び周囲輪郭又はエッジ650の向上した検出精度に基づいて、9個の明確な物体635の検出を可能にすることができる。
【0080】
[89] したがって、本発明の例示的な実装形態に係るプロセスを使用するエッジ融合は、そうでない場合にそれぞれ不正確又は信頼度が低いと見なされ得る物体検出仮説をもたらす第1の画像データ表現610と第2の画像データ表現615のペアから融合画像データ表現605の生成を可能にすることができる。
【0081】
[90]
図7A及び
図7Bは、本発明の例示的な実装形態に係る物体検出の概略図を示している。
図1のロボットシステム100は、
図8のプロセス800におけるステップ820について以下で説明される物体検出仮説を生成することができる。物体検出仮説は、ステップ820を参照して説明されるように決定されると、
図8のプロセス800のステップ825について以下で説明されるように検証することができる。融合画像データを使用することによって、物体検出仮説の改善された生成及びその検証を達成することができる。
【0082】
[91]
図7Aは、本発明の例示的な実装形態に係る融合されたエッジデータ表現を利用することによって回避し得る不正確な検出仮説の第1の例を示す。
図7Aに示すように、一部の例では、破線715で表された内部輪郭又はエッジ(例えば、2つのボックス間の輪郭又はエッジ)は、単一の画像取込モードからの矩形710で表されたエッジ検出データの解析に基づいて検出される可能性はなく、ロボットシステム100は、四角形705で表された実際の物体についての検出仮説を正確に生成することができない可能性がある。結果として、ロボットシステム100は、検出仮説を矩形710として誤って生成する可能性がある。異なる画像データモードと関連付けられたエッジ検出データの融合は、エッジ情報の確実性を向上させる、及び/又はそうでない場合に物体の輪郭についての有効なエッジ検出結果と見なされないエッジを特定することができるため、ロボットシステム100は検出仮説の生成及び/又は検証を改善することができる。
【0083】
[92]
図7Bは、本発明の例示的な実装形態に係る融合された検出エッジデータを利用することによって回避し得る不正確な検出仮説の第2の例を示す。図に示すように、パレット720上の一連のボックス725が検出される場合がある。また、(四角形745で表された)検出仮説は、入力画像740を表す画像情報に基づいて生成することができる。しかしながら、一部の例では、ロボットシステム100は、破線735で表された分割輪郭(例えば、2つのボックス間の内部輪郭又はエッジ)を、単一の画像取込モードに基づいたエッジ検出によって検出することができず、その代わりに、矩形745で表された検出仮説を誤って生成する可能性がある。換言すれば、破線735で表されたエッジ又は輪郭(例えば、2つのボックス間の内部エッジ)を認識できないことによって、誤った又は不正確な物体検出仮説がもたらされる可能性がある。異なる画像データモードと関連付けられたエッジ検出データの融合は物体の輪郭のより良好な検出を可能にすることができるため、物体検出仮説の改善された生成及び/又は検証を達成することができる。
【0084】
[93]
図8は、本発明の例示的な実装形態に係る物体検出及び検証のためのプロセス800のフローチャートを示している。プロセス800は、ロボットシステム100のコンピュータデバイス(例えば下記の
図9に示すコンピュータ環境900のコンピュータデバイス905)によって実行することができる。
【0085】
[94]
図8に示すように、プロセス800は、ステップ805において、第1の撮像モードにより取り込まれた画像データと関連付けられたエッジ情報の検出から始まる。エッジ情報は、画像データに取り込まれた1つ以上の物体の輪郭を画定する及び/又は記述する情報である。以上で考察したように、物体のエッジは、物体の形状を画定するエッジを表す線及び/又は曲線であってよい。エッジ情報は、エッジ寸法(例えば、エッジ長さ)、エッジ形状(例えば、直線、曲線など)、エッジ位置、及びコーナー位置(例えば、2つ以上のエッジが交わる位置)を含むことができる。例えばエッジ情報は、画像データに検出エッジを形成する1つ以上の画素の位置に対応する座標情報(すなわち、(x,y)座標)であってよい。エッジ情報はまた、高さ又は深さ情報(例えば、画像取込デバイスと表面上の点との間の距離を表す情報)及び同じような高さを有する領域の位置を含むことができる。一例として、深さ情報は、画像取込デバイス(すなわち、3Dカメラ)からの距離を表す値を含むことができる。一部の実施形態では、深さ情報は、画像データの画素に割り当てられた深度値であってよい。
【0086】
[95] 画像データに複数の物体が取り込まれる場合、画像データは、画像データに取り込まれた複数の物体の集合体の周囲に位置する外部輪郭もしくはエッジ又は周囲輪郭もしくはエッジを含むことができる。例えば、周囲エッジ又は輪郭は、
図6の融合画像データ表現605の参照番号650で表すことができる。さらに、画像データは、隣接する物体間に位置する内部輪郭又はエッジを含むことができる。一例として、ボックスの内部輪郭又はエッジは周囲エッジ又は輪郭に対して垂直であってよい。さらに、例えば内部輪郭又はエッジは、
図6の融合画像データ表現605の参照番号645で表すことができる。
【0087】
[96] 第1の撮像モード(例えば、第1の画像取込モード)は、画像データを取り込む又は生成するためのプロセスであってよい。一部の例示的な実装形態では、第1の撮像モードは、
図6について以上で考察した第1の画像データ表現610で例示されたような画像データ表現を生成するために2D画像データを取り込むプロセスであってよい。換言すれば、一部の例示的な実装形態では、第1の撮像モードのエッジ情報検出は、例えばモノクロカメラ(例えば、グレースケールカメラ)、カラーカメラ(例えば、赤緑青(RGB)カメラ)、又は当業者には明白と思われる任意の他の2次元カメラからのデータなどの2次元画像データに基づいて行うことができる。
【0088】
[97] 2次元画像データについて、エッジ検出は、当業者には明白と思われる任意のタイプの2Dエッジ検出アルゴリズムを使用して実行することができる。例えば2Dエッジ検出の方法は、CANNYエッジ検出、領域類似度エッジ検出(RSD)、線分検出(LSS)、又は物体輪郭を検出してエッジ情報を抽出するのに用いられ得る任意の他の2Dエッジ検出方法であってよい。
【0089】
[98] 他の例示的な実装形態では、第1の撮像モードは、
図6について以上で考察した第2の画像データ表現615で例示されたような画像データ表現を生成する3D点群データを取り込むプロセスであってよい。換言すれば、一部の例示的な実装形態では、第1の撮像モードのエッジ情報検出は、例えばステレオビジョンカメラ、距離画像カメラ(例えば、飛行時間(TOF)カメラ)、又は当業者には明白と思われる任意の他の3次元カメラからのデータなどの3次元データに基づいて行うことができる。
【0090】
[99] 3次元画像データ(例えば、3D点群データ)について、3D点群は、物体を表す画像空間内の点の投影であってよい。そして、物体輪郭又はエッジは、3D点群から特定することができる。例えばロボットシステム200は、3D点群内の1つの位置と3D点群内の隣接する位置との深さ情報の変化又は差に基づいて、投影された3D点群から物体輪郭又はエッジを特定することができる。
【0091】
[100] ステップ810で、第2の撮像モードで収集された画像データと関連付けられたエッジ情報が検出される。以下でさらに詳細に考察するように、第2の撮像モードは、ステップ805のエッジ情報検出と関連付けられた第1の撮像モードと異なる。
【0092】
[101] 以上で説明したように、エッジ情報は、画像データに取り込まれた1つ以上の物体の輪郭を画定する情報である。以上で考察したように、物体の輪郭は、物体の形状を画定するエッジを表す線及び/又は曲線である。繰り返しになるが、エッジ情報は、エッジ寸法(例えば、エッジ長さ)、エッジ形状(例えば、直線、曲線など)、エッジ位置、及びコーナー位置(例えば、2つ以上のエッジが交わる位置)を含むことができる。エッジ情報はまた、高さ又は深さ情報(例えば、画像取込デバイスと表面上の点との間の距離を表す情報)及び同じような高さを有する領域の位置を含むことができる。輪郭は、画像データに取り込まれた複数の物体の集合体の周囲に位置する外部輪郭もしくはエッジ又は周囲輪郭もしくはエッジを含むことができる。例えば、周囲エッジ又は輪郭は、
図6の融合画像データ表現605の参照番号650で表すことができる。さらに、画像データは、隣接する物体間に位置する内部輪郭又はエッジを含むことができる。一例として、ボックスの内部輪郭又はエッジは周囲エッジ又は輪郭に対して垂直であってよい。さらに、例えば内部輪郭又はエッジは、
図6の融合画像データ表現605の参照番号645で表すことができる。
【0093】
[102] 第2の撮像モード(例えば、第2の画像取込モード)はまた、画像データを取り込む又は生成するためのプロセスであってよい。一部の例示的な実装形態では、第2の撮像モードは、
図6について以上で考察した第1の画像データ表現610で例示されたような画像データ表現を生成するために2D画像データを取り込むプロセスであってよい。換言すれば、一部の例示的な実装形態では、第2の撮像モードのエッジ情報検出は、例えばモノクロカメラ(例えば、グレースケールカメラ)、カラーカメラ(例えば、RGBカメラ)、又は当業者には明白と思われる任意の他の2次元カメラからのデータなどの2次元画像データに基づいて行うことができる。
【0094】
[103] 2次元画像データについて、エッジ検出は、当業者には明白と思われる任意のタイプの2Dエッジ検出アルゴリズムを使用して実行することができる。例えば2Dエッジ検出の方法は、CANNYエッジ検出、領域類似度エッジ検出(RSD)、線分検出(LSS)、又は物体輪郭を検出してエッジ情報を抽出するのに用いられ得る任意の他の2Dエッジ検出方法であってよい。
【0095】
[104] 他の例示的な実装形態では、第2の撮像モードは、
図6について以上で考察した第2の画像データ表現615で例示されたような画像データ表現を生成する3D点群データを取り込むプロセスであってよい。換言すれば、一部の例示的な実装形態では、第2の撮像モードのエッジ情報検出は、例えばステレオビジョンカメラ、距離画像カメラ(例えば、飛行時間(TOF)カメラ)、又は当業者には明白と思われる任意の他の3次元カメラからのデータなどの3次元データに基づいて行うことができる。
【0096】
[105] 3次元画像データ(例えば、3D点群データ)について、3D点群は、物体を表す画像空間内の点の投影であってよい。そして、物体輪郭又はエッジは、3D点群から特定することができる。例えばロボットシステム200は、3D点群内の1つの位置と3D点群内の隣接する位置との深さ情報の変化又は差に基づいて、投影された3D点群から物体輪郭又はエッジを特定することができる。
【0097】
[106] 第2の撮像モード(例えば、第2の画像取込モード)は、第1の撮像モードと比較して異なるタイプの画像取込モードである。例えば、第1の撮像モードと関連付けられたエッジ検出が2次元データに基づいて行われた場合、エッジ情報は、ステップ810において、3次元データ、又は異なるタイプの2次元データ(例えば、ステップ805でカラーカメラが使用されていた場合はモノクロカメラ、又はステップ805でモノクロカメラデータが使用されていた場合はカラーカメラ)に基づいて検出することができる。
【0098】
[107] 逆に、第1の撮像モードと関連付けられたエッジ検出が3次元データに基づいて行われた場合、エッジ情報は、ステップ810において、2次元データ、又は異なるタイプの3次元データ(例えば、ステップ805でTOFカメラが使用されていた場合はステレオビジョンカメラ、又はステップ805でステレオビジョンカメラが使用されていた場合はTOFカメラ)に基づいて検出することができる。
【0099】
[108] ステップ815において、第1の撮像モード及び第2の撮像モードと関連付けられたデータから検出されたエッジ情報は結合されて、融合プロセスを用いて融合されたエッジ情報を生成する。具体的には、第1の撮像モード及び第2の撮像モードに基づいて検出されたエッジは「基準」カメラ空間に合成される。換言すれば、第1の撮像モード及び第2の撮像モードのそれぞれに基づいて検出されたエッジは、各撮像モードと関連付けられたネイティブカメラ空間(例えば、座標系)から、以下でより詳細に考察される共用又は共有カメラ空間(例えば、基準カメラ空間)に変換される。基準カメラ空間の例示的な実装形態は、ステレオビジョンカメラやToFカメラのカメラ空間などの3Dカメラ空間を含むことができる。
【0100】
[109] 一部の例示的な実装形態では、2次元画像データから(例えば、2D撮像モードから)検出されたエッジは、2D画像の検出エッジに隣接して取り込まれた2次元平面又は表面に対して、エッジ高さを画定し得る深さ情報を使用して3次元カメラ空間に投影することができる。さらに、一部の例示的な実装形態では、3次元空間データは、異なる3次元空間データモードに変換することができる(例えば、ToFカメラからの画像データはステレオビジョンカメラからの画像データに変換することができる)。
【0101】
[110] 換言すれば、融合プロセスは、共用画像空間(例えば、「基準」カメラ空間)に投影された、画像データモードの1つと関連付けられたエッジ点(例えば、検出エッジに沿った点の座標又は位置)を生成することによって実行することができる。より具体的には、画像データモードの1つから検出されたエッジは、例えばステレオビジョンカメラ空間であり得る、選択されたカメラ又は撮像デバイスの共用画像空間(選択された基準カメラ空間とも呼ばれる)に投影(又はマッピング)することができる。融合プロセスの間、ロボットシステム100は、変換及び投影後の、点群ノイズ又は較正(例えば、カメラ間の物理的オフセット/角度/距離)などの要因に起因したエッジ点の座標の起こり得る誤りを考慮し訂正することができる。
【0102】
[111] 選択された基準カメラ(例えば、ステレオビジョンカメラ)の画像空間で検出されたエッジの投影は、基準カメラの検出エッジの元の位置情報(すなわち、座標)を使用することによって実行することができる。換言すれば、ロボットシステム100は、選択された基準カメラから共用画像空間への検出エッジの投影を実行する必要がある。一部の例示的な実装形態では、選択された基準カメラは第1の撮像モードと関連付けることができる。他の例示的な実装形態では、選択されたカメラは第2の撮像モードと関連付けることができる。
【0103】
[112] 他のカメラ(例えば、選択された「基準」カメラ空間と異なるネイティブ画像空間を有するカメラ)の画像空間の検出エッジについては、カメラのタイプに応じていくつかの異なるステップが実行される可能性がある。
【0104】
[113] 他の撮像モードが2Dカメラである場合、検出エッジを構成する点である、2Dカメラの2D画像データから検出されたエッジ点(2Dエッジ点とも呼ばれる)には、選択された基準カメラの、この場合は3D画像空間である選択されたカメラ画像空間に、投影された2D点に対応する選択された基準カメラからの深さ情報を使用して、2Dエッジ点を投影することによって深度値を割り当てることができる。換言すれば、2D位置(例えば、検出エッジのエッジ点が2Dカメラの2D画像空間に位置する(x,y)画素座標)と対応する、選択された基準カメラ画像空間(例えば、ステレオビジョンカメラ)からの点(すなわち、画素)の深度値を使用して、2Dエッジ点を選択された基準カメラの3D画像空間に投影する。これによって2Dエッジ点から投影された3Dエッジ点を生成することができる。
【0105】
[114] さらに、他のカメラ(例えば、選択された基準画像空間と異なるネイティブ画像空間を有するカメラ)により取り込まれたエッジ点は、選択された基準画像空間に変換することができる(「変換されたエッジ点」とも呼ばれる)。変換されたエッジ点は、前段落に記載の投影された2Dエッジ点から生成することができる、又は選択された基準カメラ又は撮像デバイスとは異なる別の3Dカメラから生成することができる。例えば、投影された2Dエッジ点から生成された変換されたエッジ点は、変換されたエッジ点も選択された基準カメラの元の画像データの一部であると見なされ得るように、選択された基準カメラの3D空間に変換することができる。1つのカメラのエッジ点を選択された基準カメラに変換することは、投影された3Dエッジ点の位置の平行移動又はシフト、及び/又は投影された3Dエッジ点を選択されたカメラの基準カメラ画像空間に整合させる投影された3Dエッジ点のスケーリングを含むことができる。
【0106】
[115] 投影された3Dエッジ点が選択された基準カメラ画像空間に平行移動されると、コンピュータシステム100は、(融合3D点群とも呼ばれる)投影された3Dエッジ点を含む3D点群の(2Dビットマップとも呼ばれる)2D表現を生成することができる。例えば、2Dビットマップは、
図6に示すようなボックスのスタック及びパレットの上面を含み得る、融合3D点群のトップダウン表現と対応することができる。これに関連して、選択された基準カメラに関連付けられた2Dビットマップは、3D画像空間の深度値と無関係であるが、画像自体の2D座標(例えば、画像の画素のx−y座標又は上記
図2から
図4に示したx軸及びy軸に沿った座標)に対応する。一部の実施形態では、2Dビットマップの画素は、現実の世界の寸法と一致する可能性がある(すなわち、画素の長さは現実の世界の単位長さ又は距離に対応する可能性がある)。このような実施形態では、ロボットシステム100は、動作計画、グリップ位置決め、及び物体に作用するその他の操作などの下流プロセスに融合3D点群の2Dビットマップを使用することができる。
【0107】
[116] 融合エッジ情報が生成されると、ロボットシステム100は、ステップ820において融合エッジ情報に基づいて物体検出仮説を生成することができる。一部の例示的な実装形態では、ロボットシステム100は、融合エッジ情報の融合エッジに基づいて、3D点群情報をセグメント化することをベースとする物体検出仮説を生成することができる。例えば、ロボットシステム100は、エッジ交差点に達するまで融合エッジに沿って3D点群情報をセグメント化することができる。エッジ交差点は、例えば2つ以上の融合エッジが交わる場所、又は一部の例では、検出エッジの外挿が交差するであろう場所であってよい。ボックス型の物体の例では、ロボットシステム100は、一方の融合エッジの平行な対が他方の融合エッジの平行な対に対して垂直である融合エッジの2つの平行な対により画定される3D点群情報の部分として、融合エッジの2つの平行な対の交差点と一致するエッジ交差点と共に物体検出仮説を生成することができる。一部の実施形態では、ロボットシステム100は、融合エッジの異なる組み合わせに基づいて複数の物体検出仮説を生成することができる。
【0108】
[117] 融合エッジ情報を用いて物体検出仮説を生成することによって、
図7A及び
図7Bについて以上で考察したように、いくつかの重要な利点を得ることができる。得ることができる重要な利点の1つは、融合エッジ情報は、単一の画像取込モードから生成されたエッジ情報と比較して点群データをより精確にセグメント化するのに用いることができることである。例えば、ボックスのそれぞれの上面がほぼ水平な平面又は表面を形成するように同じ又は同様の高さを有する場合など、ほぼ同様の高さの物体又はボックスを検出する適用において、ボックスの上面に対応する点群の部分(「点群レイヤ」とも呼ばれる)は、複数の物体又はボックスを包含するように取り込むことができる可能性がある。この例では、点群レイヤ内でボックス又は物体は同じ又は同様の高さ/深度値を有する可能性があり、個々のボックス又は物体(すなわち、ボックス間の境界に対応する内部輪郭645)の検出を困難にする。より具体的には、2D画像データに基づいた検出エッジを使用する3D点群データのセグメンテーションは、不完全なエッジ(すなわち、ボックスの実際の上面のエッジ全体の一部分に対応する検出エッジ)又は偽エッジ(すなわち、ボックスフラップのエッジ、折り目/しわ、又はボックスの上面上のデザイン/グラフィック/画像の一部など、ボックスの上面の実際のエッジに実際には対応しない検出エッジ)を生じさせる可能性がある。さらに、ボックスは密集している可能性があるため、ボックス間の分離に対応し得る深さの違いを3D画像データに取り込むことができない。したがって、複数の撮像モードからのエッジ情報を組み合わせた融合エッジ情報は、偽エッジ検出を低減する及び/又はそうでない場合に検出されないエッジを特定することによって、実際の物体エッジの特定を向上させ、エッジ情報と実際の物体エッジとの相関関係の確実性を高めることができる。これによって、点群レイヤをより良好にセグメント化し、個別の物体又はボックスの検出を改善できる可能性がある。
【0109】
[118] 得ることができるもう1つの重要な利点は、融合エッジ情報は、検出仮説生成のための特徴として用いることができることである。例えば上記のように、融合エッジ情報は、物体の輪郭のコーナーの位置に対応し得るエッジ交差点(例えば、2つ以上の検出エッジが交わる場所、又は検出エッジの外挿が交差するであろう場所)を検出又は生成するのに使用することができる。より具体的には、単一の撮像モードのみからの画像データの解析(すなわち、2次元画像データ又は3次元画像データに基づくエッジ検出)は、エラー確率が高い、又はエッジを特定できない可能性があり、融合エッジ情報を使用して検出仮説を生成すれば物体検出仮説が正しくなる確率が高まる。
【0110】
[119] 物体検出仮説が生成された後、ロボットシステム100は、ステップ825において物体検出仮説の検証を実行することができる。一部の実施形態では、ロボットシステム100は、物体検出仮説と
図2のマスターデータに登録された物体の物体記述との比較に基づいて物体検出仮説を検証することができる。例えば、ロボットシステム100は、物体検出仮説の輪郭特性(すなわち、融合エッジの長さ、エッジ交差点の位置/場所)を、マスターデータの登録物体に対応するものと照合することによって物体検出仮説を検証することができる。一部の実施形態では、ロボットシステム100は、物体検出仮説の検証中に登録物体と比較する際、検出された輪郭の精度に影響を及ぼし得る融合エッジ情報の完全性(すなわち、融合エッジが切れ目を含んでいるか、あるいは融合エッジの長さが2つの交差点間の距離全体に及んでいるかどうか)などの複数の要因を考慮することができる。例えばロボットシステム100は、物体検出仮説の確実性評価又は登録物体との一致の度合いを提供することができる。特定の例として、ロボットシステム100は、上記のように、融合エッジ情報のより高い完全度を含むより高い確実性評価を検出仮説に提供することができる。融合エッジ情報は、利用可能な撮像デバイスの組み合わせから最大限可能な情報を提供することができるため、検出仮説に基づいて物体のエッジ又は輪郭の正確な位置を決定することに伴う正確性及び信頼性を高めることに役立つことができる。さらに、確実性評価又は一致の度合いを決定する際に、変換及び投影後の、点群ノイズ又は較正(例えば、カメラ間の物理的オフセット/角度/距離)などの要因に起因するエッジ点の座標の起こり得る誤りを考慮することができる。
【0111】
[120] 物体検出仮説の検証後、ロボットシステム100は、ステップ830において、対象物体のさらなる処理のために物体検出仮説に対応する、対象物体(
図1の対象物体112など)の物体輪郭、姿勢/向き情報、及び/又は位置情報を使用することができる。例えば、ロボットシステムは、ロボットのエンドエフェクタのグリップ配置及び/又は対象物体を移動させるための動作計画計算などの対象物体の操作を含む操作のために物体輪郭、姿勢/向き情報、及び/又は位置情報を使用することができる。輪郭及び位置検出の精度が向上すると、出荷又は製造プロセスを改善することができる。物体輪郭及び位置が伝えられた後、プロセス800は必要に応じて繰り返し、上記のステップに従う追加のエッジ融合操作を含み得るさらなる物体検出仮説を生成することができる、又はプロセスは終了することができる。
【0112】
[121] 例示的なコンピュータ環境
[122]
図9は、一部の例示的な実装形態での使用に適した例示的なコンピュータデバイス905を備えた例示的なコンピュータ環境900を示している。コンピュータ環境900のコンピュータデバイス905は、いずれも情報を伝達するための通信機構又はバス930上に結合又はコンピュータデバイス905に埋め込まれ得る、1つ以上の処理ユニット、コア、又はプロセッサ910、メモリ915(例えば、RAM、ROMなど)、内部ストレージ920(例えば、磁気、光学、固体ストレージ、及び/又は有機)、及び/又はI/Oインターフェイス925を備えることができる。
【0113】
[123] コンピュータデバイス905は、入力/インターフェイス935及び出力デバイス/インターフェイス940と通信可能に結合することができる。入力/インターフェイス935及び出力デバイス/インターフェイス940のいずれか一方又は両方は、有線又は無線インターフェイスであってよく、取外し可能であってよい。入力/インターフェイス935は、入力を提供するのに使用され得る、任意のデバイス、コンポーネント、センサ、又はインターフェイス、物理又は仮想を含むことができる(例えば、ボタン、タッチスクリーンインターフェイス、キーボード、ポインティング/カーソル制御、マイクロホン、カメラ、点字、運動センサ、光学式読取装置など)。
【0114】
[124] 出力デバイス/インターフェイス940は、ディスプレイ、テレビ、モニタ、プリンタ、スピーカ、点字などを含むことができる。一部の例示的な実装形態では、入力/インターフェイス935(例えば、ユーザインターフェイス)及び出力デバイス/インターフェイス940は、コンピュータデバイス905に埋め込むこと、又は物理的に結合することができる。他の例示的な実装形態では、他のコンピュータデバイスが、コンピュータデバイス905の入力/インターフェイス935及び出力デバイス/インターフェイス940として機能する、又はコンピュータデバイス905の入力/インターフェイス935及び出力デバイス/インターフェイス940の機能を提供することができる。これらの素子は、ユーザがAR環境と対話することを可能にするように周知のARハードウェア入力を含むことができるが、これに限定されない。
【0115】
[125] コンピュータデバイス905の例には、高度モバイルデバイス(例えば、スマートフォン、車両及び他のマシン内のデバイス、人間及び動物が携行するデバイスなど)、モバイルデバイス(例えば、タブレット、ノートブック、ラップトップ、パーソナルコンピュータ、ポータブルテレビ、ラジオなど)、及び移動用に設計されていないデバイス(例えば、デスクトップコンピュータ、サーバデバイス、他のコンピュータ、情報キオスク、1つ以上のプロセッサが埋め込まれた及び/又は結合されたテレビ、ラジオなど)を含むことができるが、これに限定されない。
【0116】
[126] コンピュータデバイス905は、同じ構成又は異なる構成の1つ以上のコンピュータデバイスを含む、任意の数のネットワークコンポーネント、デバイス、及びシステムと通信するために、外部ストレージ945及びネットワーク950と(例えば、I/Oインターフェイス925を介して)通信可能に結合することができる。コンピュータデバイス905又は任意の接続されたコンピュータデバイスは、サーバ、クライアント、シンサーバ、汎用マシン、専用マシン、又は別のラベルとして機能し、そのサービスを提供し、そのように呼ぶことができる。
【0117】
[127] I/Oインターフェイス925は、コンピュータ環境900内の少なくともすべての接続されたコンポーネント、デバイス、及びネットワークとの間で情報を伝達するために、任意の通信又はI/Oプロトコル又は規格(例えば、イーサネット、802.11xs、ユニバーサルシステムバス、WiMAX、モデム、セルラネットワークプロトコルなど)を使用する有線インターフェイス及び/又は無線インターフェイスを含むことができるが、これに限定されない。ネットワーク950は、任意のネットワーク又はネットワークの組み合わせ(例えば、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、電話ネットワーク、セルラネットワーク、衛星ネットワークなど)であってよい。
【0118】
[128] コンピュータデバイス905は、一時的媒体及び非一時的媒体を含むコンピュータ使用可能媒体又はコンピュータ可読媒体を使用して使用及び/又は通信することができる。一時的媒体は、伝送媒体(例えば、金属ケーブル、光ファイバ)、信号、搬送波などを含む。非一時的媒体は、磁気媒体(例えば、ディスク及びテープ)、光学媒体(例えば、CD ROM、デジタルビデオディスク、Blu−rayディスク)、固体媒体(例えば、RAM、ROM、フラッシュメモリ、固体ストレージ)、及び他の不揮発性ストレージ又はメモリを含む。
【0119】
[129] コンピュータデバイス905は、一部の例示的なコンピュータ環境において、技法、方法、アプリケーション、プロセス、又はコンピュータ実行可能命令を実装するために使用することができる。コンピュータ実行可能命令は、一時的媒体から取得し、非一時的媒体に記憶し、非一時的媒体から取得することができる。実行可能命令は、任意のプログラミング言語、スクリプト言語、及びマシン語(例えば、C、C++、C#、Java、Visual Basic、Python、Perl、JavaScriptなど)のうちの1つ以上から作ることができる。
【0120】
[130] プロセッサ910は、ネイティブ環境又は仮想環境において、任意のオペレーティングシステム(OS)(図示せず)下で実行することができる。論理ユニット955、アプリケーションプログラミングインターフェイス(API)ユニット960、入力ユニット965、出力ユニット970、エッジ検出ユニット975、エッジ融合ユニット980、仮説生成ユニット985、仮説検証ユニット990及び異なるユニットが互いに、OS、及び他のアプリケーション(図示せず)と通信するためのユニット間通信機構995を含む、1つ以上のアプリケーションを配備することができる。
【0121】
[131] 例えば、エッジ検出ユニット975、エッジ融合ユニット980、仮説生成ユニット985、及び仮説検証ユニット990は、
図8に示した1つ以上のプロセスを実施することができる。説明されたユニット及び素子は、設計、機能、構成、又は実装において変更可能であり、提供される説明に限定されない。
【0122】
[132] 一部の例示的な実装形態では、情報又は実行命令は、APIユニット960によって受信されると、1つ以上の他のユニット(例えば、エッジ検出ユニット975、エッジ融合ユニット980、仮説生成ユニット985、及び仮説検証ユニット990)に伝達することができる。例えば、エッジ検出ユニット975は、少なくとも2つの画像取込モードから取り込んだ画像データから物体エッジを自動的に検出し、検出したエッジをエッジ融合ユニット980に提供することができる。エッジ融合ユニット980は、検出されたエッジを融合させて、仮説生成ユニット985に提供するエッジ融合データを生成することができる。仮説生成ユニット985は、エッジ融合データに基づいて物体検出仮説を生成し、仮説検証ユニット990に提供することができる。仮説検証ユニット990は、収集された画像データ及びエッジ融合データに基づいて、生成された仮説を検証することができる。
【0123】
[133] 一部の例では、論理ユニット955は、ユニット間の情報の流れを制御し、上記の一部の例示的な実装形態におけるAPIユニット960、入力ユニット965、エッジ検出ユニット975、エッジ融合ユニット980、仮説生成ユニット985、及び仮説検証ユニット990により提供されるサービスを指示するように構成することができる。例えば、1つ以上のプロセス又は実装形態のフローは、論理ユニット955によって単独で、又はAPIユニット960と連携して制御することができる。
【0124】
[134] いくつかの例示的な実装形態が示され、説明されているが、これらの例示的な実装形態は、本明細書に記載される主題をこの分野に精通した人々に伝えるために提供される。本明細書に記載された主題は、記載された例示的な実装形態に限定されることなく、様々な形態で実施できることを理解されたい。本明細書に記載された主題は、具体的に定義又は記載された事項なしに、又は記載されていない他の又は異なる要素又は事項を使用して実施することができる。この分野に精通した者は、添付の特許請求の範囲及びその均等物で定義された本明細書に記載された主題から逸脱することなく、これらの例示的な実装形態で変更を行うことができることを理解するであろう。
【解決手段】物体を検出する方法は、第1の画像取込モードに基づいた物体を表す第1の画像データから第1のエッジ情報を生成すること、第1の画像取込モードと異なる第2の画像取込モードに基づいた物体を表す第2の画像データから第2のエッジ情報を生成すること、第1のエッジ情報と第2のエッジ情報を融合させて融合エッジ情報を生成すること、融合エッジ情報に基づいて物体検出仮説を生成すること、及び融合エッジ情報、第1のエッジ情報、及び/又は第2のエッジ情報に基づいて物体検出仮説を検証すること、を含む。