(58)【調査した分野】(Int.Cl.,DB名)
前記融合ビットマップを生成することは、少なくとも前記第一のビットマップおよび前記第二のビットマップの加重和、ならびに前記ハイライトビットマップおよび前記シャドウビットマップの加重和に基づいている、請求項10に記載の方法。
【発明を実施するための形態】
【0013】
本開示は、画像の少なくとも一部分を、テクスチャありまたはテクスチャなしのどちらかに分類するためのシステムおよび方法に関する。一部の事例では、分類が、倉庫もしくは小売空間に到着する箱または他の包装品など、一つ以上の物体のグループの特性を決定するための物体登録プロセスの一部であってもよい。これらの特性は、例えば、物体のグループ、もしくは物体のグループと実質的に同じデザインを有する他の物体の自動的な取り扱い、または他の相互作用を容易にするために決定されうる。実施形態では、カメラまたは他の画像取り込み装置によって生成されうる、画像の一部分(画像部分とも呼ぶ)は、一つ以上の物体のうちの一つを表してもよく、物体の表面に現れるいずれかの視覚的詳細があるか、物体の表面上に少なくとも一定量もしくは一定品質の視覚的詳細があるか、および/または視覚的詳細に少なくとも一定量の変動があるかという表示を提供しうる。一部の事例では、画像部分を使用して、物体認識のためのテンプレートを生成してもよい。こうした場合には、画像または画像部分が、テクスチャありテンプレートまたはテクスチャなしテンプレートのどちらを形成するかの分類を伴いうる。テンプレートは、例えば、物体の外観(物体外観とも呼ぶ)、および/または物体のサイズ(物体サイズとも呼ぶ)を記述しうる。実施形態では、テンプレートが、例えば、合致する物体外観を有するか、またはより広くは、テンプレートに合致する任意の他の物体を識別するために使用されてもよい。こうした合致によって、二つの物体が同じ物体デザインに属することを示してもよく、より具体的には、同じまたは実質的に同じである物体サイズなど、他の特性を有することを示してもよい。一部のシナリオでは、特定の物体が、既存のテンプレートに合致する外観を有する場合、こうした合致によって、ロボット相互作用が容易になる場合がある。例えば、合致は、物体がテンプレートによって記述される物体サイズ(例えば、物体寸法または表面積)を有することを示しうる。物体サイズは、ロボットがどのように物体を拾い上げることができるか、または他の方法で物体と相互作用できるかを計画するために使用されうる。
【0014】
実施形態では、少なくとも画像部分がテクスチャありまたはテクスチャなしのどちらかであると分類することは、画像部分に基づく、一つ以上のビットマップ(一つ以上のマスクとも呼ぶ)の生成を伴いうる。一部の事例では、一つ以上のビットマップの一部またはすべては、画像部分の様々な位置に渡り特定の特質の確率または強さを示す、ヒートマップとして作用しうる。一部の事例では、一つ以上のビットマップの一部またはすべては、画像部分が、物体認識用の一つ以上の視覚的特徴を有するかを記述するためのものであってもよい。画像部分が一つ以上のこうした視覚的特徴を有する場合、一つ以上のビットマップによって、一つ以上の特徴が画像部分の中でどこに位置するかを記述しうる。例として、一つ以上のビットマップは、記述子ビットマップおよび/またはエッジビットマップを含みうる。記述子ビットマップによって、画像部分に記述子があるかを記述してもよく、または一つ以上の記述子が、画像部分の中のどこに位置するかを記述してもよい(本開示の「または」「もしくは」という用語は、「および/または」「および/もしくは」を指しうる)。エッジビットマップによって、エッジが画像部分の中で検出されるかを記述してもよく、または一つ以上のエッジが画像部分の中のどこに位置するかを記述してもよい。
【0015】
実施形態では、一つ以上のビットマップの一部またはすべては、画像部分に渡って強度の変動があるかを記述するためのものであってもよい。例えば、こうした変動(また空間的変動と呼んでもよい)が、画像部分のピクセル値の間に変動があるかを示しうる。一部の事例では、空間的変動は、画像部分のピクセル値の間にある局所標準偏差を記述しうる、標準偏差ビットマップによって記述されてもよい。
【0016】
実施形態では、少なくとも画像部分がテクスチャありまたはテクスチャなしのどちらかであるとの分類には、単一のビットマップからの情報を伴ってもよく、または複数のビットマップを組み合わせた、融合ビットマップからの情報を伴ってもよい。例えば、融合ビットマップは、記述子ビットマップ、エッジビットマップ、および/または標準偏差ビットマップの組み合わせに基づいてもよい。一部の事例では、融合ビットマップを使用して、例えば、画像部分が一つ以上のテクスチャあり領域を有するか、および画像部分が一つ以上のテクスチャなし領域を有するかを識別しうる、テクスチャビットマップを生成してもよい。一部の事例では、テクスチャビットマップは、一つ以上のテクスチャあり領域もしくは一つ以上のテクスチャなし領域が占める、総面積または合計サイズを記述するように使用されうる。
【0017】
実施形態では、融合ビットマップは、光る物体表面から反射し、画像部分の中にグレアを出現させる多すぎる光、または物体表面から遮断され、画像部分の中に影を出現させる光など、状態の影響を補正するように生成されうる。照明状態の影響は、例えば、ハイライトビットマップおよび/またはシャドウビットマップによって記述されうる。一部の実施では、融合ビットマップは、さらにハイライトビットマップおよび/またはシャドウビットマップに基づいて生成されうる。
【0018】
実施形態では、少なくとも画像部分がテクスチャありまたはテクスチャなしのどちらかであると分類することは、記述子ビットマップ、エッジビットマップ、標準偏差ビットマップ、ハイライトビットマップ、シャドウビットマップ、融合ビットマップ、および/またはテクスチャビットマップによって提供される情報に基づいてもよい。例えば、分類は、画像部分の中で検出される記述子(存在する場合)の数、画像部分の中でテクスチャあり領域(存在する場合)が占める総面積、画像部分の中でテクスチャなし領域(存在する場合)が占める総面積、および/または画像部分もしくは融合ビットマップに関連付けられる標準偏差に基づいて行われうる。
【0019】
実施形態では、テンプレート、またはより広くは、画像部分がテクスチャありまたはテクスチャなしのどちらであるかという分類は、テンプレートに基づいて物体認識が行われる方法に影響を与えうる。こうした分類に基づく物体認識については、「METHOD AND COMPUTING SYSTEM FOR OBJECT RECOGNITION OR OBJECT REGISTRATION BASED ON IMAGE CLASSIFICATION」と題する、本明細書と同日に出願された米国特許出願第______号(弁理士整理番号MJ0054−US/0077−0012US1)でより詳細に論じ、その全体の内容は参照により本明細書に組み込まれる。一部の事例では、分類は、物体認識の結果に関連付けられる、信頼度に影響を与える場合がある。例えば、物体認識の結果は、物体認識がテクスチャありテンプレートに基づく場合、比較的高信頼度に割り当てることができ、物体認識がテクスチャなしテンプレートに基づく場合、比較的低信頼度に割り当てることができる。一部の事例では、物体認識の結果に関連付けられる信頼度は、物体認識を再び行うべきか(例えば、別の物体認識技術を使用して)に影響を与え、および/または特定の物体とのロボット相互作用をどのように計画するかに影響を与えうる。例えば、その物体に対する物体認識が、テクスチャなしテンプレートに基づく場合、その物体とのロボット相互作用を、より注意深く、またはよりゆっくりと進めるように制御することができる。一部の事例では、物体認識プロセスによって、特定の画像部分がいずれの既存のテンプレートとも合致しないと決定される場合、物体登録プロセスを行って、画像部分に基づいて新しいテンプレートを生成および記憶することができる。
【0020】
図1Aは、画像またはその一部分を分類するためのシステム100を示す。システム100は、計算システム101および画像取り込み装置141(画像感知装置とも呼ぶ)を含みうる。画像取り込み装置141(例えば、カメラ)は、画像取り込み装置141の視野の中にある環境を表す画像を取り込むか、または他の方法で生成するように構成されてもよい。一部の事例では、環境は、例えば、倉庫または工場であってもよい。このような場合、画像は、ロボット相互作用を受ける一つ以上の箱など、倉庫または工場の中にある一つ以上の物体を表しうる。計算システム101は、画像取り込み装置141から直接または間接的に画像を受信し、画像を処理して、例えば、物体認識を行うことができる。以下でより詳細に論じるように、処理には、画像またはその一部分が、テクスチャありまたはテクスチャなしのどちらであるかの分類を伴いうる。一部の実例では、計算システム101および画像取り込み装置141は、倉庫または工場など、同じ施設の中に位置してもよい。一部の実例では、計算システム101および画像取り込み装置141は、互いに遠隔であってもよい。例えば、計算システム101は、クラウドコンピューティングプラットフォームを提供する、データセンターに位置してもよい。
【0021】
実施形態では、計算システム101は、画像取り込み装置141から、データ記憶装置(また記憶装置と呼んでもよい)を介してまたはネットワークを介して、画像を受信してもよい。例えば、
図1Bは、
図1Aのシステム100の実施形態であってもよく、計算システム101、画像取り込み装置141を含み、データ記憶装置198(またはいかなる他のタイプの非一時的コンピュータ可読媒体)をさらに含む、システム100Aを描写する。データ記憶装置198は、画像取り込み装置141の一部であってもよく、または画像取り込み装置141から分離していてもよい。この実施形態では、計算システム101は、データ記憶装置198から画像を読み出す(またはより広くは、受信する)ことによって、画像にアクセスするように構成されてもよい。
【0022】
図1Bでは、記憶装置198は、また非一時的コンピュータ可読記憶装置と呼んでもよい、いかなるタイプの非一時的コンピュータ可読媒体(または複数の媒体)を含んでもよい。こうした非一時的コンピュータ可読媒体または記憶装置は、データを記憶し、データへのアクセスを提供するように構成されうる。非一時的コンピュータ可読媒体または記憶装置の例としては、例えば、コンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消却可能プログラム可能読み取り専用メモリ(EPROMまたはフラッシュメモリ)、ソリッドステートドライブ、スタティックランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み取り専用メモリ(CD−ROM)、デジタル多目的ディスク(DVD)、および/またはメモリスティックなど、電子記憶装置、磁気記憶装置、光記憶装置、電磁記憶装置、半導体記憶装置、またはそれらのいかなる適切な組み合わせが挙げられうるが、これらに限定されない。
【0023】
図1Cは、
図1Aおよび1Bのシステム100/100Aの実施形態であってもよい、ネットワーク199を含むシステム100Bを描写する。より具体的には、計算システム101は、画像取り込み装置141によって生成された画像を、ネットワーク199を介して受信してもよい。ネットワーク199によって、計算システム101が、本明細書の実施形態と一致する画像データを受信可能となるように、個々のネットワーク接続または一連のネットワーク接続が提供されてもよい。実施形態では、ネットワーク199に、有線または無線リンクを介して接続してもよい。有線リンクには、デジタル加入者回線(DSL)、同軸ケーブル回線、または光ファイバ回線が含まれてもよい。無線リンクには、Bluetooth(登録商標)、Bluetooth Low Energy(BLE)、ANT/ANT+、ZigBee、Z−Wave、Thread、Wi−Fi(登録商標)、Worldwide Interoperability for Microwave Access(WiMAX(登録商標))、モバイルWiMAX(登録商標)、WiMAX(登録商標)−Advanced、NFC、SigFox、LoRa、Random Phase Multiple Access(RPMA)、Weightless−N/P/W、赤外線チャネル、または衛星バンドが含まれてもよい。無線リンクはまた、2G、3G、4G、または5Gの資格がある規格を含む、モバイル機器間を通信する、いかなるセルラーネットワーク規格が含まれてもよい。無線規格は、例えば、FDMA、TDMA、CDMA、またはSDMAといった、様々なチャネルアクセス方法を使用してもよい。ネットワーク通信は、例えば、http、tcp/ip、udp、イーサネット、ATMなどを含む、いかなる適切なプロトコルによって実施されてもよい。
【0024】
実施形態では、ネットワーク199はいかなるタイプのネットワークであってもよい。ネットワークの地理的範囲は大きく異なってもよく、ネットワーク199は、ボディエリアネットワーク(BAN)、パーソナルエリアネットワーク(PAN)、例えば、イントラネットといったローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、広域ネットワーク(WAN)、またはインターネットでありうる。ネットワーク199のトポロジーは、いかなる形態であってもよく、例えば、次の、ポイントツーポイント、バス、スター、リング、メッシュ、またはツリーのうちのいずれを含んでもよい。ネットワーク199は、本明細書に記載する動作をサポートできる、当業者に既知であるような、いかなるこうしたネットワークトポロジーから成ってもよい。ネットワーク199は、例えば、イーサネットプロトコル、インターネットプロトコル群(TCP/IP)、ATM(Asynchronous Transfer Mode)技術、SONET(Synchronous Optical Networking)プロトコル、またはSDH(Synchronous Digital Hierarchy)プロトコルを含む、プロトコルの異なる技術、および層またはスタックを利用してもよい。ネットワーク199は、放送ネットワーク、電気通信ネットワーク、データ通信ネットワーク、またはコンピュータネットワークの一タイプであってもよい。
【0025】
実施形態では、計算システム101および画像取り込み装置141は、ネットワーク接続ではなく直接接続によって通信してもよい。例えば、こうした実施形態の計算システム101は、画像取り込み装置141から、RS−232インターフェースなどの専用通信インターフェース、ユニバーサルシリアルバス(USB)インターフェース、および/または周辺構成要素相互接続(PCI)バスなどのローカルコンピュータバスを介して、画像を受信するように構成されてもよい。
【0026】
実施形態では、計算システム101は、空間構造感知装置と通信するように構成されてもよい。例えば、
図1Dは、計算システム101、画像取り込み装置141を含み、空間構造感知装置142をさらに含む、システム100C(システム100/100A/100Bの実施形態であってもよい)を示す。空間構造感知装置142は、その視野の中にある物体の3D構造を感知するように構成されてもよい。例えば、空間構造感知装置142は、物体の構造がどのように3D空間に配設されるかを記述する、点群などの空間構造情報を生成するように構成される、奥行き感知カメラ(例えば、飛行時間(TOF)カメラまたは構造化光カメラ)であってもよい。より具体的には、空間構造情報は、物体の表面上の様々な位置の奥行きを記述する、奥行き値のセットなど、奥行き情報を含みうる。奥行きは、空間構造感知装置142または何らかの他の基準フレームに対してであってもよい。
【0027】
実施形態では、画像取り込み装置141によって生成される画像を使用して、ロボットの制御を容易にしうる。例えば、
図1Eは、計算システム101、画像取り込み装置141、およびロボット161を含む、ロボット操作システム100D(システム100の実施形態である)を示す。画像取り込み装置141は、例えば、倉庫または他の環境の中にある物体を表す画像を生成するように構成されてもよく、ロボット161は、画像に基づいて物体と相互作用するよう制御されてもよい。例えば、計算システム101は、画像を受信し、画像に基づいて物体認識を行うように構成されてもよい。物体認識は、例えば、物体のサイズまたは形状の判定を伴いうる。この例では、物体とのロボット161の相互作用は、物体の判定されたサイズまたは形状に基づいて制御されうる。
【0028】
実施形態では、計算システム101は、ロボット161の移動もしくは他の操作を制御するように構成される、ロボット制御システム(ロボットコントローラとも呼ぶ)を形成しても、またはその一部であってもよい。例えば、こうした実施形態の計算システム101は、画像取り込み装置141によって生成される画像に基づいて、ロボット161に対する動作計画を実行し、動作計画に基づいて一つ以上の移動指令(例えば、運動指令)を生成するように構成されうる。こうした例の計算システム101は、ロボット161の移動を制御するために、一つ以上の移動指令をロボット161に出力しうる。
【0029】
実施形態では、計算システム101は、ロボット制御システムから分離していてもよく、ロボット制御システムによってロボットを制御するのを可能にするために、ロボット制御システムに情報を伝達するように構成されてもよい。例えば、
図1Fは、計算システム101と、計算システム101から分離しているロボット制御システム162とを含む、ロボット操作システム100E(
図1Aのシステム100の実施形態である)を描写する。この例の計算システム101および画像取り込み装置141によって、ロボット161の環境について、より具体的には、その環境の中にある物体についての情報を、ロボット制御システム162へ提供するよう構成される、視覚システム150を形成してもよい。計算システム101は、画像取り込み装置141によって生成された画像を処理して、ロボット161の環境についての情報を判定するように構成される、視覚コントローラとして機能してもよい。計算システム101は、判定した情報をロボット制御システム162へ伝達するように構成されてもよく、ロボット制御システム162は、計算システム101から受信した情報に基づいて、ロボット161に対する動作計画を実行するように構成されうる。
【0030】
上述のように、
図1Aから1Fの画像取り込み装置141は、画像取り込み装置141の環境の中にある一つ以上の物体を表す画像を取り込むか、または形成する画像データを生成するように構成されうる。より具体的には、画像取り込み装置141は、装置視野を有してもよく、装置視野の中にある一つ以上の物体を表す画像を生成するように構成されてもよい。本明細書で使用する場合、画像データは、一つ以上の物理的物体(一つ以上の物体とも呼ぶ)の外観を記述する、いかなるタイプのデータ(情報とも呼ぶ)をも指す。実施形態では、画像取り込み装置141は、2次元(2D)画像を生成するよう構成されたカメラなどのカメラであってもよく、またはカメラを含んでもよい。2D画像は、例えば、グレースケール画像またはカラー画像であってもよい。
【0031】
さらに上で言及したように、画像取り込み装置141によって生成される画像は、計算システム101によって処理されてもよい。実施形態では、計算システム101は、サーバ(例えば、一つ以上のサーバブレード、プロセッサなどを有する)、パーソナルコンピュータ(例えば、デスクトップコンピュータ、ノートパソコンなど)、スマートフォン、タブレットコンピューティング装置、および/もしくは他のいかなる他の計算システムを含んでもよく、またはそれらとして構成されてもよい。実施形態では、計算システム101の機能性のすべては、クラウドコンピューティングプラットフォームの一部として行われてもよい。計算システム101は、単一の計算装置(例えば、デスクトップコンピュータまたはサーバ)であってもよく、または複数の計算装置を含んでもよい。
【0032】
図2Aは、計算システム101の実施形態を示す、ブロック図を提供する。計算システム101は、少なくとも一つの処理回路110および非一時的コンピュータ可読媒体(または複数の媒体)120を含む。実施形態では、処理回路110は、一つ以上のプロセッサ、一つ以上の処理コア、プログラマブルロジックコントローラ(「PLC」)、特定用途向け集積回路(「ASIC」)、プログラマブルゲートアレイ(「PGA」)、フィールドプログラマブルゲートアレイ(「FPGA」)、それらのいかなる組み合わせ、またはいかなる他の処理回路も含む。
【0033】
実施形態では、非一時的コンピュータ可読媒体120は、電子記憶装置、磁気記憶装置、光記憶装置、電磁記憶装置、半導体記憶装置、またはそれらのいかなる適切な組み合わせなどの記憶装置であり、例えば、コンピュータディスケット、ハードディスク、ソリッドステートドライブ(SSD)、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消却可能プログラム可能読み取り専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、携帯型コンパクトディスク読み取り専用メモリ(CD−ROM)、デジタル多目的ディスク(DVD)、メモリスティック、それらのいかなる組み合わせ、またはいかなる他の記憶装置などであってもよい。一部の例では、非一時的コンピュータ可読媒体120は、複数の記憶装置を含みうる。特定の事例では、非一時的コンピュータ可読媒体120は、画像取り込み装置141から受信した画像データを記憶するように構成される。特定の事例では、非一時的コンピュータ可読媒体120はさらに、処理回路110によって実行されるときに、処理回路110に、
図3に関連して記載する方法など、本明細書に記載する一つ以上の方法を行わせる、コンピュータ可読プログラム命令を記憶する。
【0034】
図2Bは、計算システム101の実施形態であり、通信インターフェース130を含む、計算システム101Aを描写する。通信インターフェース130は、例えば、画像、またはより広くは、画像データを、画像取り込み装置141から、
図1Bの記憶装置198、
図1Cのネットワーク199を介して、またはより直接的な接続によってなどで受信するように構成されてもよい。実施形態では、通信インターフェース130は、
図1Dのロボット161または
図1Eのロボット制御システム162と通信するように構成されうる。通信インターフェース130は、例えば、有線または無線プロトコルによって通信を行うように構成される通信回路を含みうる。例として、通信回路は、RS−232ポートコントローラ、USBコントローラ、イーサネットコントローラ、Bluetooth(登録商標)コントローラ、PCIバスコントローラ、いかなる他の通信回路、またはそれらの組み合わせを含んでもよい。
【0035】
実施形態では、処理回路110は、非一時的コンピュータ可読媒体120に記憶される、一つ以上のコンピュータ可読プログラム命令によってプログラムされてもよい。例えば、
図2Cは、計算システム101の実施形態である、計算システム101Bを示し、その中で、処理回路110は、画像アクセスモジュール202、画像分類モジュール204、物体認識モジュール206、物体登録モジュール207、および動作計画モジュール208によってプログラムされるか、またはそれらを実行するように構成される。本明細書で論じる様々なモジュールの機能性は、代表的なものであり、限定ではないことは理解されるであろう。
【0036】
実施形態では、画像アクセスモジュール202は、計算システム101B上で動作するソフトウェアプロトコルであってもよく、画像、またはより広くは、画像データにアクセス(例えば、受信、読み出し、記憶)するように構成されてもよい。例えば、画像アクセスモジュール202は、非一時的コンピュータ可読媒体120もしくは198の中に、またはネットワーク199および/もしくは
図2Bの通信インターフェース130を介して記憶される、画像データにアクセスするように構成されてもよい。一部の事例では、画像アクセスモジュール202は、画像取り込み装置141から直接または間接的に、画像データを受信するように構成されてもよい。画像データは、画像取り込み装置141の視野の中にある、一つ以上の物体を表すためのものであってもよい。実施形態では、画像分類モジュール204は、以下でより詳細に論じるように、画像もしくは画像部分を、テクスチャありまたはテクスチャなしに分類するように構成されてもよく、画像は、画像アクセスモジュール202がアクセスする画像データによって表わされてもよい。
【0037】
実施形態では、物体認識モジュールは、物体の外観に基づいて、物体認識を行うように構成されてもよい。上述のように、物体認識は、
図2Cのテンプレート210など、一つ以上のテンプレートに基づいてもよい。これらのテンプレートは、
図2Cに描写するように、計算システム101B上に記憶されてもよく、または装置の別の装置もしくはグループによってホストされるデータベースなど、他の場所に記憶することもできる。一部の事例では、テンプレートの各々は、画像アクセスモジュール202が受信し、画像分類モジュール204によって、テクスチャありもしくはテクスチャなしに分類された、それぞれの画像部分を含んでもよく、または画像部分に基づいてもよい。物体認識モジュール206は、例えば、別の画像部分に現れる物体に対する物体認識を行うように、テンプレートを使用してもよい。物体認識モジュール206によって、画像部分が、テンプレート記憶空間(例えば、非一時的コンピュータ可読媒体120、または上で論じたデータベース)のいかなる既存のテンプレートにも合致しないと決定される場合、またはテンプレート記憶空間にテンプレートがない場合、物体登録モジュール207は、一部の実例では、その画像部分に基づいて、新しいテンプレートを生成し記憶するように構成されてもよい。実施形態では、動作計画モジュール208は、以下でより詳細に論じるように、例えば、画像分類モジュール204によって行われる分類に基づいて、および/または物体認識モジュール206の結果に基づいて、物体とのロボット相互作用を制御するための、動作計画を実行するように構成されてもよい。
【0038】
様々な実施形態では、「ソフトウェアプロトコル」、「ソフトウェア命令」、「コンピュータ命令」、「コンピュータ可読命令」、および「コンピュータ可読プログラム命令」という用語は、様々なタスクおよび動作を遂行するように構成される、ソフトウェア命令またはコンピュータコードを記述するために使用される。本明細書で使用する場合、「モジュール」という用語は、処理回路110に一つ以上の機能タスクを行わせるように構成される、ソフトウェア命令またはコードの集まりを広く指す。便宜上、実際には、様々なモジュール、コンピュータ命令、およびソフトウェアプロトコルによって、様々な動作およびタスクを行うようにハードウェアプロセッサをプログラムするとき、モジュール、管理部、コンピュータ命令、およびソフトウェアプロトコルは、それらの動作またはタスクを行っていると記載されるであろう。様々な箇所に「ソフトウェア」として記載するものの、「モジュール」、「ソフトウェアプロトコル」、および「コンピュータ命令」によって行われる機能性は、より広くは、ファームウェア、ソフトウェア、ハードウェア、またはそれらのいかなる組み合わせとして実装されてもよいことは理解される。さらに、本明細書の実施形態は、方法ステップ、機能ステップ、およびその他のタイプの発生に関して記載する。実施形態では、これらのアクションは、計算システム101の処理回路110によって実行される、コンピュータ命令またはソフトウェアプロトコルに従って発生する。
【0039】
図3は、画像もしくは画像部分をテクスチャありまたはテクスチャなしに分類するための、例示的な方法300を示すフローチャートである。画像は、例えば、倉庫、小売空間、または他の施設の中にある一つ以上の物体を表しうる。例えば、
図4Aは、方法300を行うことができる環境を描写する。より具体的には、
図4Aは、計算システム101、ロボット461(ロボット161の実施形態でありうる)、および装置視野443を有する画像取り込み装置441(画像取り込み装置141の実施形態でありうる)を含む、システム400を描写する。画像取り込み装置441は、装置視野443の中にある場面の外観を表す画像を生成するように構成されうる。例えば、物体401、402、403、404が装置視野443の中にあるとき、画像取り込み装置441は、物体401〜404、すなわち、より具体的には、物体401〜404の外観を表す画像を生成するように構成されてもよい。一例では、物体401〜404は、ロボット461によってパレットから降ろされる、積み重ねられた箱または他の包装品でありうる。物体401〜404の外観は、存在する場合、物体401〜404のうちの一つ以上の表面上に印刷、または他の方法で配置される視覚的マーキングを含みうる。視覚的マーキングは、例えば、文字、ロゴ、もしくは他の視覚的なデザインもしくはパターン、または物体401〜404のうちの一つ以上の表面上の絵柄を形成してもよく、または含んでもよい。例えば、物体401、404は、箱401/404のそれぞれの上表面に印刷された、絵柄401A/404Aを各々有する箱であってもよい。箱401/404が、商品を保持するために使用されている場合、絵柄401A/404Aまたは他の視覚的マーキングによって、例えば、商品に関連付けられたブランド名もしくは会社を識別してもよく、および/または商品自体もしくは箱の他の内容物を識別しうる。一部の状況では、物体401〜404の外観は、存在する場合、物体401〜404のうちの一つ以上の表面に取り付けられる、物理的な品物の輪郭を含みうる。例えば、物体403は、その上表面に一片のテープ403Aを有してもよい。一部の事例では、一片のテープ403Aと物体403の周辺領域とには、テープ403Aのエッジが、物体403の画像の中に現れることが可能になるほど、充分なコントラストがあってもよい。
【0040】
一部の事例では、画像取り込み装置の視野(例えば、443)の中にある物体(例えば、401〜404)の一部またはすべてが、合致する外観、または実質的に一致する外観を有してもよい。より具体的には、それらの物体は各々、同じ絵柄など、同じまたは実質的に同じ視覚的マーキングを含みうる。例えば、物体401の上表面に印刷された絵柄401Aは、物体404の上表面に印刷された絵柄404Aと同じ、または実質的に同じであってもよい。一部の事例では、物体(例えば、401〜404)は、すべて共通する物体デザインの実例であるため、合致する外観を有しうる。例えば、物体デザインは、特定の商品または商品のタイプを保持する箱を作り出すための、箱のデザインであってもよい。こうした箱のデザインには、特定のサイズ、および/または特定の視覚的デザインもしくは他の視覚的マーキングを伴いうる。したがって、同じ物体デザインを有する物体は、合致する外観および/または合致するサイズ(例えば、合致する寸法)を有しうる。
【0041】
実施形態では、
図3の方法300は、
図2Aから2Cの計算システム101によって、より具体的には、処理回路110によって行うことができる。方法300は、例えば、一つ以上の物体(例えば、物体401〜404)を表すための画像が、非一時的コンピュータ可読媒体(例えば、
図2A〜2Cの120)の中に記憶されるとき、または画像が画像取り込み装置(例えば、
図4Aの441)によって生成されるときに行われてもよい。実施形態では、非一時的コンピュータ可読媒体(例えば、120)はさらに、処理回路110によって実行されるとき、処理回路110に方法300を実施させる、複数の命令(例えば、コンピュータプログラム命令)を記憶しうる。
【0042】
実施形態では、
図3の方法300は、計算システム101の処理回路110が、画像取り込み装置(例えば、141/441)の装置視野(例えば、443)の中にある一つ以上の物体(例えば、401〜404)を表すための画像取り込み装置(例えば、141/441)によって生成された画像を受信する、ステップ302から始まってもよく、またはそうでなければステップ302を含むことができる。例えば、
図4Bは、
図4Aの物体401〜404を表す画像420を示す。画像420は、この例では、物体401〜404の真上に位置付けられうる、画像取り込み装置441によって生成されてもよい。したがって、画像420は、物体401〜404のそれぞれの上表面の外観、すなわち、より具体的には、上表面の遮蔽されていない部分を表しうる。言い換えれば、この例の画像420は、物体401〜404の上表面を取り込む、上面斜視図を表してもよい。実施形態では、受信された画像は、以下でより詳細に論じるように、物体認識を行うための一つ以上のテンプレートを作成するために使用されてもよい。
【0043】
一部の事例では、ステップ302で受信される画像は、積み重ねられた複数の箱など、複数の物体を表してもよい。例えば、
図4Bに描写するように、受信された画像420全体が、複数の物体、すなわち、物体401〜404を表しうる。この例では、物体401〜404の各々が、画像420の特定部分(画像部分とも呼ぶ)によって表されてもよい。例えば、
図4Cに示すように、物体401は、画像420の画像部分421によって表されてもよい。画像部分421は、例えば、矩形の領域(例えば、正方形の領域)、または画像420の他の領域であってもよい。こうした例では、方法300は、受信された画像(例えば、420)からの、特定の物体(例えば、401)に関連付けられた画像部分(例えば、421)の抽出を伴いうる。またターゲットの物体と呼んでもよい、特定の物体は、計算システム101によって識別される個々の箱など、個々の物体(例えば、401)であってもよい。識別される物体は、物体認識もしくは物体登録を行うターゲット、および/またはロボット相互作用を行うための(例えば、パレットから降ろされる)ターゲットであってもよい。
【0044】
実施形態では、画像420からの画像部分421の抽出は、物体401のエッジが現れる画像420内の位置(画像位置とも呼ぶ)の識別と、画像位置によって囲まれた画像420の領域の抽出とに基づいてもよい。一部の事例では、一つ以上の物体401〜404がまた、空間構造感知装置(例えば、
図1Dの142)の視野の中にある場合も、計算システム101は、空間構造感知装置(例えば、142)によって生成される空間構造情報を受信し、空間構造情報の助けを受けて画像部分421を抽出するように構成されうる。例えば、空間構造情報は奥行き情報を含んでもよく、計算システム101は、奥行きに急激な変化がある位置を検出することによってなど、奥行き情報に基づいて、物体401のエッジの位置(エッジ位置とも呼ぶ)を決定するように構成されてもよい。この例では、計算システム101は、空間構造感知装置(例えば、142)によって感知されたエッジ位置を、画像420内の画像位置へマッピングし、画像位置によって囲まれた領域を抽出するように構成されてもよく、抽出された領域が画像部分(例えば、421)であってもよい。
【0045】
実施形態では、画像部分421は、一部の事例では、物体認識を行うためのテンプレートを生成するために使用されてもよく、テンプレートは、ステップ308に関して以下に論じるように、テクスチャありまたはテクスチャなしに分類されてもよい。テンプレートは、特定の物体デザイン、すなわち、より具体的には、物体の外観および/または物体デザインに関連付けられる物体の構造を表しうる。物体の構造は、物体の長さ、物体の幅、物体の高さ、および/もしくは他の任意の物体寸法、またはそれらの組み合わせなど、物体サイズを記述しうる。物体認識は、例えば、別の物体の外観を、テンプレートと、すなわち、より具体的には、テンプレートによって記述される物体の外観と比較することを伴いうる。例えば、物体認識は、物体402〜404各々のそれぞれの外観を比較して、どの物体(存在する場合)が、画像部分421から作成されたテンプレートに合致する、それぞれの外観を有するのかを決定することを含みうる。一部の事例では、物体402〜404の各々の外観は、
図4Bおよび4Cの画像420の対応する画像部分によって表されうる。例として、計算システム101によって、物体404を表す画像部分が、画像部分421および物体401から(例えば、
図2Cの物体認識モジュール206によって)作成されたテンプレートに合致すると決定してもよい。こうした合致によって、例えば、物体404が、物体401と同じ物体デザインを有し、より具体的には、テンプレートによって表されるのと同じ物体デザインを有すると示してもよい。より詳細には、合致によって、物体404が、物体401と同じ物体サイズ(例えば、物体寸法)を有し、テンプレートによって表される物体デザインに関連付けられた物体サイズを有すると示しうる。
【0046】
上述のように、画像420は、一部の事例では、複数の物体を表しうる。他の事例では、ステップ302で受信される画像は、一つの物体のみ(例えば、一箱のみ)を表す場合がある。例えば、画像は、計算システム101によって受信される前に、特定の物体(例えば、物体401)のみを表し、存在する場合、画像取り込み装置(例えば、141/441)の視野(例えば、443)の中に、他の物体を表すいかなる部分も除去するために、画像取り込み装置(例えば、141/441)によって、または別の装置によって処理(例えば、クロップ)されていてもよい。こうした例では、ステップ302で受信される画像は、その特定の物体(例えば、物体401)のみを表しうる。
【0047】
実施形態では、ステップ302は、
図2Cの画像アクセスモジュール202によって行われてもよい。実施形態では、画像(例えば、
図4Bの420)は、非一時的コンピュータ可読媒体(例えば、
図2Cの120)上に記憶されていてもよく、ステップ302で画像を受信することは、非一時的コンピュータ可読媒体(例えば、120)から、または任意の他の装置から、画像(例えば、420)を読み出す(またはより広くは、受信する)ことを伴いうる。一部の状況では、画像(例えば、420)は、画像取り込み装置(例えば、141/441)から、
図2Bの通信インターフェース130を介してなど、計算システム101によって受信されていてもよく、画像(例えば、420)用の一時的バッファまたは長期記憶装置を提供しうる、非一時的コンピュータ可読媒体(例えば、120)に記憶されていてもよい。例えば、画像(例えば、420)は、画像取り込み装置(例えば、
図4Aの141/441)から受信されてもよく、非一時的コンピュータ可読媒体(例えば、120)に記憶されてもよい。次いで画像(例えば、420)は、ステップ302で、計算システム101の処理回路110によって、非一時的コンピュータ可読媒体から受信されてもよい。
【0048】
一部の状況では、画像(例えば、420)は、非一時的コンピュータ可読媒体(例えば、120)に記憶されてもよく、画像取り込み装置(例えば、141/441)から受信する情報に基づいて、処理回路110自体によって事前に生成されていてもよい。例えば、処理回路110は、画像取り込み装置(例えば、141/441)から受信する未加工のカメラデータに基づいて、画像(例えば、420)を生成するように構成されてもよく、生成された画像を非一時的コンピュータ可読媒体(例えば、120)に記憶するように構成されてもよい。次いで画像は、ステップ302で処理回路110によって受信されてもよい(例えば、非一時的コンピュータ可読媒体120から画像を読み出すことによって)。
【0049】
実施形態では、ステップ302で受信される画像(例えば、420)は、物体401〜404のそれぞれの表面(例えば、上表面)に反射する光の強度など、画像取り込み装置441によって感知されている信号の強度に関連付けられる、それぞれのピクセル値(ピクセル強度値とも呼ぶ)を有しうる、ピクセルの2次元(2D)配列であってもよく、またはこれを含んでもよい。一部の事例では、画像(例えば、420)はグレースケール画像であってもよい。このような場合、画像(例えば、420)は、ピクセルの単一の2D配列を含んでもよく、ピクセルの各々が、例えば、0から255までの範囲もしくは何らかの他の範囲の中にある、整数値または浮動小数点値を有しうる。一部の事例では、画像(例えば、420)はカラー画像であってもよい。このような場合、画像(例えば、420)は、ピクセルの異なる2D配列を含んでもよく、2D配列のピクセルの各々は、それぞれの色成分(それぞれの色チャンネルとも呼ぶ)の強度を示してもよい。例えば、こうしたカラー画像は、赤色チャンネルを表し、画像(例えば、420)の赤色成分の強度を示す、第一の2D配列のピクセルと、緑色チャンネルを表し、画像(例えば、420)の緑色成分の強度を示す、第二の2D配列のピクセルと、青色チャンネルを表し、画像(例えば、420)の青色成分の強度を示す、第三の2D配列のピクセルとを含みうる。
【0050】
実施形態では、計算システム101は、画像(例えば、420)上でスムージング操作または平滑化操作を行うように構成されてもよい。平滑化操作は、行われる場合には、ステップ302の一部として、またはステップ302の後に行って、例えば、画像(例えば、420)からアーチファクトまたはノイズ(例えば、照明ノイズ)を除去してもよい。アーチファクトは、例えば、物体の表面上にある凹凸(例えば、皺)、照明状態からの影響(例えば、影)、または何らかの他の要因に起因しうる。一部の事例では、平滑化操作は、ガウシアンフィルタなどの構造保持フィルタの画像(例えば、420)への適用を伴いうる。
【0051】
実施形態では、
図3の方法300はさらに、計算システム101の処理回路110によって、
図4Cおよび4Dの画像420の少なくとも画像部分421など、画像の少なくとも一つの画像部分に基づいて、一つ以上のビットマップ(一つ以上のマスクとも呼ぶ)を生成する、ステップ306を含む。画像部分(例えば、421)は、上で列挙したターゲットの物体を表す画像部分など、画像取り込み装置(例えば、441)の視野(例えば、443)の中にある、特定の物体(例えば、401)を表す画像(例えば、420)の一部分であってもよい。したがって、ステップ306の一つ以上のビットマップは、ターゲットの物体と特に関連付けられてもよい。ステップ302で受信した(例えば、420)が、複数の物体(例えば、401〜404)を表す場合、ステップ306は、一部の実例では、ターゲットの物体(例えば、401)を表す画像部分(例えば、421)のみに基づいてもよく、または主にその画像部分(例えば、421)に基づいてもよい。言い換えれば、こうしたシナリオでは、一つ以上のビットマップが基づく、少なくとも一つの画像部分は、主に、ターゲットの物体を表す画像部分に限定されうる。別のシナリオでは、ステップ302で受信した画像が、ターゲットの物体のみを表す場合、ステップ306は、一部の実例では、画像全体に基づいてもよい。言い換えれば、こうしたシナリオでは、一つ以上のビットマップが基づく、少なくとも一つの画像部分は、画像全体またはほぼ画像全体を含みうる。こうした例では、こうしたシナリオでターゲットの物体に関連付けられる画像部分は、こうしたシナリオの一つ以上のビットマップが、画像全体もしくは実質的に画像全体に直接基づいて生成されうるように、画像全体または実質的に画像全体を占めうる。一部の事例では、ステップ306は、
図2Cの画像分類モジュール204によって行われてもよい。
【0052】
実施形態では、一つ以上のビットマップによって、特徴検出用の一つ以上の視覚的特徴が、物体(例えば、401)を表す少なくとも一つの画像部分(例えば、421)の中に存在するかを記述しうる。一つ以上の視覚的特徴は、物体の外観を、第二の物体(例えば、404)の外観と比較するために使用できる、視覚的詳細を表しうる。視覚的詳細(画像部分に存在する場合)の一部またはすべては、物体(例えば、401)上に印刷されるか、もしくは他の方法で現れる視覚的マーキング(存在する場合)を取り込んでいてもよく、または表してもよい。画像部分(例えば、421)を使用してテンプレートを作成する場合、一つ以上の視覚的特徴(存在する場合)は、テンプレートによって記述される視覚的詳細を表してもよく、またはテンプレートと第二の物体(例えば、404)の外観との比較を容易にするように使用されてもよい。こうした例では、物体認識の実施には、第二の物体(例えば、404)の外観と、テンプレートが記述する視覚的詳細との比較を伴いうる。
【0053】
実施形態では、画像部分(例えば、421)の中の視覚的詳細または視覚的特徴(存在する場合)は、画像部分(例えば、421)の視覚テクスチャ、すなわち、より具体的には、画像部分(例えば、421)によって表される物体(例えば、401)の表面の外観の視覚テクスチャに寄与しうる。視覚テクスチャは、画像部分(例えば、421)に渡る強度の空間的変動を、すなわち、より具体的には、ピクセル強度値間に変動がある画像部分(例えば、421)のピクセルを指しうる。例えば、視覚的詳細または一つ以上の視覚的特徴(幾つか存在する場合)は、不均一なピクセル強度値とのピクセルの領域によって表される、線、隅角、またはパターンを含みうる。一部の事例では、ピクセル強度値間における急激な変動は、高レベルの視覚テクスチャに対応しうる一方、均一なピクセル強度値は、視覚テクスチャの欠如に対応しうる。視覚テクスチャの存在によって、物体のそれぞれの外観の、すなわち、より具体的には、第一の物体(例えば、401)の外観から生成されるテンプレートと、第二の物体(例えば、404)の外観とのより頑健な比較を容易になりうる。
【0054】
実施形態では、一つ以上のビットマップの一部またはすべては、画像部分(例えば、421)が特徴検出用の一つ以上の視覚的特徴を有するか、または画像部分が特徴検出用の視覚的特徴を欠いているかを各々示しうる。画像部分(例えば、421)が、特徴検出用の一つ以上の視覚的特徴を有するか、または表す場合、一つ以上のビットマップの各ビットマップは、画像部分(例えば、421)の中に存在する視覚的特徴の数もしくは量を示してもよく、および/または一つ以上の視覚的特徴が、画像部分(例えば、421)内のどこに位置するかを示してもよい。
【0055】
実施形態では、一つ以上のビットマップの一部またはすべては、特定のタイプの視覚的特徴を各々表しうる。例えば、視覚的特徴のタイプは、第一のタイプの視覚的特徴として記述子を、第二のタイプの視覚的特徴としてエッジを含みうる。複数のビットマップは、生成される場合には、画像の少なくとも一つの画像部分における、記述子(存在する場合)の存在の識別に関連付けられる第一のビットマップと、少なくとも一つの画像部分における、エッジ(存在する場合)の存在の識別に関連付けられる第二のビットマップとを含みうる。
【0056】
より具体的には、ステップ306で生成される一つ以上のビットマップは、実施形態では、一つ以上の記述子が、ステップ302で受信される画像(例えば、420)の少なくとも一つの画像部分(例えば、421)の中に存在するかを記述する、記述子ビットマップ(記述子マスクとも呼ぶ)を含みうる。以下でより詳細に論じるように、記述子ビットマップは、画像部分(例えば、421)のどの領域には記述子がなく、画像部分(例えば、421)のどの領域(存在する場合)に記述子があるのかを示しうる。一部の事例では、記述子ビットマップは、画像部分の様々な位置に存在している、記述子の確率を示すヒートマップとして作用しうる。記述子(特徴記述子とも呼ぶ)は、画像部分の中の隅角またはパターンなど、画像部分(例えば、421)に現れる特定の視覚的詳細を表す、あるタイプの視覚的特徴であってもよい。一部の事例では、視覚的詳細には、外観について、他の視覚的詳細、または受信された画像(例えば、420)の中にある他のタイプの視覚的詳細と区別できるように、十分なレベルの独自性があってもよい。一部の事例では、記述子は、その視覚的詳細を表すピクセルを、スカラー値へまたはベクトルへコード化することによって、その視覚的詳細に対するフィンガープリントとして作用しうる。
【0057】
上述のように、記述子ビットマップは、存在する場合、画像部分(例えば、421)内のどの位置または領域に、記述子を形成する視覚的詳細があるかを示しうる。例えば、
図5Aは、画像部分421に基づいて生成される、記述子ビットマップ513の例を描写する。この例では、記述子ビットマップ513は、ピクセルの2D配列であってもよく、記述子が、ピクセル座標[a
1 b
1]
T、[a
2 b
2]
T、…[a
n b
n]
Tに、および/またはピクセル座標[a
1 b
1]
T、[a
2 b
2]
T、…[a
n b
n]
Tそれぞれを囲む、記述子識別領域514
1、514
2、…514
nに位置すると示してもよい。記述子識別領域514
1、514
2、…514
nは、円形の領域であってもよく、または何らかの他の形状(例えば、正方形の形状)を有してもよい。一部の事例では、ピクセル値ゼロが記述子の欠如を示す場合、記述子ビットマップ513の記述子識別領域514
1、514
2、…514
n内の全ピクセルが、ゼロでない値を有してもよい。記述子ビットマップ513のピクセル座標[a
1 b
1]
T、[a
2 b
2]
T、…[a
n b
n]
T(ピクセル位置とも呼ぶ)は、画像部分421の同じピクセル座標[a
1 b
1]
T、[a
2 b
2]
T、…[a
n b
n]
Tに対応しうる。したがって、記述子ビットマップ513は、画像部分421のピクセル座標[a
1 b
1]
T、[a
2 b
2]
T、…[a
n b
n]
Tが、それぞれの記述子を形成する視覚的詳細を有し、それらの記述子が、領域514
1、514
2、…514
nと同じ位置を占める、画像部分421の領域の中または周辺に概して位置することを示してもよい。
【0058】
実施形態では、計算システム101は、記述子(存在する場合)がある画像部分421内の一つ以上の位置(例えば、[a
1 b
1]
Tから[a
n b
n]
T)、または一つ以上の領域(例えば、514
1から514
n)を検索することによって、記述子ビットマップを生成するように構成されてもよい。この実施形態では、画像部分421には、一つ以上の位置もしくは領域に、十分な視覚的詳細または視覚的詳細の十分な変動があり、こうした位置または領域に一つ以上のそれぞれの記述子を形成してもよい。例として、この実施形態の計算システム101は、一つ以上のキーポイント(記述子キーポイントとも呼ぶ)について、少なくとも画像部分421を検索することによって、一つ以上の位置を検索するように構成されうる。一つ以上のキーポイント(幾つか見つかる場合)の各々が、記述子がある位置または領域でありうる。一つ以上の位置(例えば、[a
1 b
1]
Tから[a
n b
n]
T)または一つ以上の領域(例えば、514
1から514
n)は、一つ以上のキーポイントに等しくてもよく、またはそれらに基づいてもよい。検索は、ハリスコーナー検出アルゴリズム、スケール不変特徴変換(SIFT:scale−invariant feature transform)アルゴリズム、高速化ロバスト特徴(SURF:speeded up robust features)アルゴリズム、加速セグメントテストからの特徴(FAST:feature from accelerated segment test)検出アルゴリズム、および/または配向FASTおよび回転二値ロバスト独立基本特徴(ORB:oriented FAST and rotated binary robust independent elementary features)アルゴリズムなど、特徴検出技術を用いて行われてもよい。例として、計算システム101は、SIFTアルゴリズムを使用して、画像部分421の中でキーポイントを検索してもよく、各キーポイントが、キーポイント中心座標と、スケールパラメータ値σ(キーポイントスケールとも呼ぶ)によって表される半径とを有する円形領域であってもよい。この例では、
図5Aにおける記述子ビットマップ513の座標[a
1 b
1]
T、[a
2 b
2]
T、… [a
n b
n]
Tは、キーポイント中心座標に等しい場合があり、一方、記述子識別領域514
1から514
nは、キーポイントによって識別される円形領域に対応してもよい。より詳細には、記述子識別領域(例えば、領域514
1)の各々は、対応するキーポイントのキーポイント中心座標(例えば、[a
1 b
1]
T)を中心としてもよく、対応するキーポイントのスケールパラメータ値に等しいか、またはそれに基づくサイズ(例えば、半径)を有しうる。
【0059】
実施形態では、一つ以上の記述子識別領域(例えば、514
1から514
n)領域内にある記述子ビットマップ(例えば、513)のピクセルは、任意のこうした領域が見つかる場合、ゼロでないピクセル値を有してもよく、一方、ビットマップの一部またはすべての他のピクセルは、ピクセル値ゼロ(または何らかの他の定義された値)を有してもよい。この例では、特定の記述子ビットマップの全ピクセルが、ピクセル値ゼロを有する場合、記述子ビットマップは、対応する画像部分に記述子が見つからなかったことを示しうる。あるいは、記述子ビットマップの一部のピクセルが、ゼロでない値を有する場合、記述子ビットマップ(例えば、513)は、対応する画像部分(例えば、421)の中にある記述子の数または量を示しうる。例えば、
図5Aの記述子ビットマップ513の中にある幾つかの記述子または記述子識別領域は、画像部分421の中にある記述子の数量(例えば、n個の記述子)を示しうる。この例では、記述子識別領域514
1から514
nの総面積が、画像部分421の中にある記述子の量または記述子情報を示してもよい。一部の事例では、記述子識別領域(例えば、514
1)が、記述子ビットマップの中に存在する場合、記述子識別領域のサイズは、対応する記述子のサイズを示しうる。例えば、記述子識別領域514
1の半径は、ピクセル座標[a
1 b
1]
Tに位置する、画像部分421内の対応する記述子のサイズを示しうる。この例では、より大きな半径が、より大きな面積を占める記述子に対応しうる。
【0060】
実施形態では、記述子ビットマップ(例えば、513)の中にある記述子識別領域(存在する場合)のそれぞれの中心が、定義されたゼロでない値を有してもよい。例えば、
図5Aの記述子ビットマップ513の中にあるピクセル座標[a
1 b
1]
Tから[a
n b
n]
Tの各々は、定義された最大ピクセル値を有してもよい。定義された最大ピクセル値は、記述子ビットマップ513のピクセルに対して(またはより広くは、任意のビットマップのピクセルに対して)認められた、定義された最大値であってもよい。例えば、ビットマップ513の各ピクセルが、8ビットで表される整数値である場合、定義された最大ピクセル値は255であってもよい。別の例では、各ピクセルが、0と1との間である確率値(そのピクセルに存在する記述子の確率に対する)を表す浮動小数点値である場合、定義された最大ピクセル値は1であってもよい。実施形態では、記述子識別領域の中にある他のピクセル座標のピクセル値は、定義された最大ピクセル値よりも小さい場合があり、および/または記述子識別領域のそれぞれの中心座標からの距離に基づいてもよい。例えば、記述子識別領域514
1の中にあるピクセル座標[x y]
Tのピクセル値は、1よりも小さい倍率を乗じた、定義された最大ピクセル値に等しくてもよく、またはそれに基づいてもよく、倍率は、ピクセル座標[x y]
Tと記述子識別領域514
1の中心座標[a
1 b
1]
Tとの距離の関数(例えば、ガウス関数)であってもよい。
【0061】
実施形態では、ステップ306で生成される一つ以上のビットマップは、一つ以上のエッジが、ステップ302で受信される画像(例えば、420)の少なくとも一つの画像部分(例えば、421)の中に存在するかを記述する、エッジビットマップ(エッジマスクとも呼ぶ)を含みうる。より詳細には、エッジビットマップは、少なくとも一つの画像部分(例えば、421)から検出された一つ以上のそれぞれのエッジを含む、少なくとも一つの画像部分(例えば、421)のうちの一つ以上の領域を識別するための、またはエッジが少なくとも一つの画像部分の中で検出されないと示すためのものであってもよい。一部の事例では、エッジビットマップは、少なくとも一つの画像部分の様々な位置に存在している、エッジの濃淡または確率を示すヒートマップとして作用しうる。例として、
図5Bは、画像部分421の中のエッジ423
1から423
nを示し、画像部分421のエッジ423
1から423
nに対応する領域525
1から525
nを識別する、エッジビットマップ523を示す。より詳細には、エッジ423
1から423
nが、
図5Bの画像部分421の中である特定のエッジ位置(例えば、ピクセル座標[g
m h
m]
T)を占める場合、領域525
1から525
n(エッジ識別領域とも呼ぶ)は、エッジビットマップ523の中でそれらの位置を囲む(例えば、ピクセル座標[g
m h
m]
Tを囲む)場合がある。例えば、エッジ識別領域525
1から525
nは、それらのエッジ位置周辺に帯を形成してもよく、帯は、定義された帯の厚さまたは幅を有しうる。
【0062】
実施形態では、エッジ識別領域525
1から525
n(存在する場合)内にあるすべてのピクセルが、ゼロでないピクセル値を有してもよく、エッジビットマップ523の一部またはすべての他のピクセルが、ピクセル値ゼロを有してもよい。特定のエッジビットマップの全ピクセルが、ピクセル値ゼロを有する場合、エッジビットマップは、対応する画像部分でエッジは検出されないと示しうる。特定のエッジビットマップの一部のピクセルが、ゼロでないピクセル値を有する場合、それらのピクセルは、画像部分421の中で一つもしくは複数のエッジが位置する、一つ以上の位置または領域を示してもよい。実施形態では、エッジビットマップ(例えば、523)は、画像部分421の中にあるエッジの数量または広がり(prevalence)を示してもよい。例えば、エッジビットマップの中にあるエッジ識別領域(例えば、525
1から525
n)の総数は、対応する画像部分(例えば、421)の中にあるエッジの数量を示してもよく、エッジ識別領域(例えば、525
1から525
n)の面積は、画像部分(例えば、421)の中にあるエッジの広がり(prevalence)を示しうる。
【0063】
実施形態では、エッジビットマップ(例えば、523)の中にあり、かつエッジ位置(例えば、[g
m h
m]
T)にあるピクセルは、上で論じた定義された最大ピクセル値など、定義されたピクセル値に設定されうる。こうした実施形態では、エッジ位置を囲む(例えば、[g
m h
m]
Tを囲む)エッジ識別領域(例えば、525
1)の中にある他のピクセルは、定義された最大ピクセル値よりも小さい値を有してもよい。例えば、エッジ識別領域(例えば、525
1)の中のピクセルは、エッジ位置からの距離に基づくピクセル値を有してもよい。例として、
図5Bのエッジ識別領域525
1の中にあるピクセル[x y]
Tは、倍率を乗じた定義された最大ピクセル値に等しい、ピクセル値を有してもよく、倍率は1よりも小さい。一部の事例では、倍率は、ピクセル[x y]
Tと最も近いエッジ位置(例えば、[g
m h
m]
T)との距離の関数(例えば、ガウス関数)であってもよい。
【0064】
実施形態では、計算システム101は、ソーベル(Sobel)エッジ検出アルゴリズム、プレヴィット(Prewitt)エッジ検出アルゴリズム、ラプラシアン(Laplacian)エッジ検出アルゴリズム、キャニー(Canny)エッジ検出アルゴリズム、または任意の他のエッジ検出技術などのエッジ検出技術を使用することによって、エッジ位置を検索するように構成されてもよい。実施形態では、エッジ検出アルゴリズムによって、直線または曲線など、2Dエッジを識別しうる。検出は、例えば、急激なピクセル値の変化がある、ピクセル座標の識別に基づいてもよい。
【0065】
実施形態では、ステップ306で生成される一つ以上のビットマップは、標準偏差ビットマップ(標準偏差マスクとも呼ぶ)を含みうる。標準偏差ビットマップは、強度が少なくとも一つの画像部分(例えば、421)に渡って変化するかを記述するため、すなわち、より具体的には、少なくとも一つの画像部分に渡って、強度がどのくらい変化するかを記述するためのものであってもよい。例えば、標準偏差ビットマップは、2D配列のピクセルを形成してもよく、そこでは、標準偏差ビットマップの各ピクセルが、画像部分(例えば、421)の中にあるピクセルの対応する領域について、ピクセル値の標準偏差を示してもよい。標準偏差は、領域に固有であるため、局所標準偏差と呼ばれる場合がある。例として、
図5Cは、画像部分421から生成される標準偏差ビットマップ533を示す。この例では、標準偏差ビットマップ533の特定のピクセル座標(例えば、[u
1 v
1]
Tまたは[u
2 v
2]
T)のピクセル値は、同じピクセル座標(例えば、[u
1 v
1]
Tまたは[u
2 v
2]
T)を囲む、画像部分421の領域(例えば、432
1または432
2)におけるピクセル値の局所標準偏差(または分散の他の尺度)に等しくてもよく、またはそれに基づいてもよい。局所標準偏差を決定するためのピクセルの領域(例えば、432
1または432
2)は、例えば、3ピクセル×3ピクセルである正方形の領域など、定義されたサイズを有する矩形の領域としうる。一部の実施では、標準偏差ビットマップの各ピクセルは、対応する領域のサイズで割った、その対応する領域のピクセル値の標準偏差に等しい場合がある、正規化標準偏差値を有してもよい。例えば、標準偏差ビットマップ533の中にある[u
1 v
1]
Tのピクセル値は、領域432
1の面積(例えば、9平方ピクセル)で割った、画像部分421の領域432
1のピクセル値の標準偏差に等しくてもよい。
【0066】
実施形態では、標準偏差ビットマップ(例えば、533)の特定のピクセルが、ゼロまたは実質的にゼロのピクセル値を有する場合、そのピクセルは、画像部分(例えば、421)の対応する領域に対して、局所標準偏差ゼロを示してもよい。こうした実施形態では、画像部分(例えば、421)の対応する領域には、その領域の中のピクセル値に変動がないか、または実質的に変動がない場合がある。例えば、標準偏差ビットマップ533の[u
2 v
2]
Tにあるピクセルは、ゼロの値を有してもよく、これは、画像部分421の中の同じピクセル座標[u
2 v
2]
Tを囲む、対応する領域432
2が、実質的に均一なピクセル値を有することを示してもよい。実施形態では、標準偏差ビットマップの全ピクセルが、ピクセル値ゼロを有する場合、標準偏差ビットマップは、標準偏差ビットマップが基づく画像部分に渡って、強度の変動がないことを示してもよい。別の実施形態では、標準偏差ビットマップのピクセルが、ゼロでない値を有する(例えば、ビットマップ533のピクセル座標[u
1 v
1]
Tに)場合、こうしたピクセルによって、画像部分(例えば、421)の少なくとも対応する領域(例えば、432
2)に渡って、強度の変動があることを示してもよい。一部の事例では、標準偏差ビットマップ(例えば、533)の中でより高いピクセル値は、より高い局所標準偏差を示す場合があり、これは、画像部分の中でピクセル値間の変動レベルがより高いことを示しうる。
【0067】
実施形態では、ステップ306は、記述子ビットマップ(例えば、513)である第一のビットマップ、およびエッジビットマップ(例えば、523)である第二のビットマップなど、複数のビットマップの生成を含みうる。一部の事例では、複数のビットマップは、記述子ビットマップ、エッジビットマップ、および標準偏差ビットマップなど、少なくとも三つのビットマップを含みうる。この実施形態で、存在する場合、視覚的特徴が画像部分の中にどのくらい存在するかに関するより完全な情報を生み出すために、複数のビットマップからの情報を組み合わせることが可能になりうる。一部の事例では、複数のビットマップは、複数の特徴タイプを記述しうる。例えば、第一のビットマップは、記述子などの第一の特徴タイプの一つ以上の特徴が、少なくとも一つの画像部分(例えば、421)に存在するかを示してもよく、第二のビットマップは、エッジなどの第二の特徴タイプの一つ以上の特徴が、少なくとも一つの画像部分(例えば、421)に存在するかを示してもよい。
【0068】
実施形態では、計算システム101は、受信された画像(例えば、420)またはその画像部分(例えば、421)への照明状態の影響を示す、一つ以上のビットマップを生成するように構成されうる。一部のシナリオでは、照明状態によって、物体の表面(例えば、物体401の上表面)の領域から反射する、多すぎる光または他の信号がもたらされる場合があり、物体を表す、結果として生じる画像部分(例えば、421)にグレアを発生させうる。例えば、光が、光る材質(例えば、光沢のあるテープ)を有する領域に反射している場合がある。一部のシナリオでは、照明状態によって、物体の表面の領域から反射される光が少なくなりすぎる場合があり、結果として生じる画像部分に影を発生させうる。例えば、光が、物体の表面の領域に完全に到達するのを遮られる場合がある。この例の一つ以上のビットマップは、一つ以上の照明影響ビットマップと呼ばれる場合があり、上で論じた複数のビットマップに追加されるビットマップとみなされうる。実施形態では、画像もしくは画像部分の領域の中にあるグレアまたは影によって、その領域の中にある任意の視覚的詳細のコントラストが失われるか、または視覚的詳細があまりにぼやけて現れる場合があり、物体認識における使用に対して、視覚的詳細の信頼性を低下させうる。
【0069】
実施形態では、一つ以上の照明影響ビットマップ(一つ以上の照明影響マスクとも呼ぶ)は、ハイライトビットマップ(ハイライトマスクとも呼ぶ)、および/またはシャドウビットマップ(シャドウマスクとも呼ぶ)を含みうる。ハイライトビットマップは、多すぎるグレア、または物体の表面の特定の一部に反射する、多すぎる光の他の影響を呈する、対応する画像部分(例えば、421)の一つ以上の領域(存在する場合)を示しうる。グレアで画像または画像部分の領域が飽和する場合があり、それによって、物体の表面のその一部を表す視覚的詳細(存在する場合)のコントラストを失わせるか、または視覚的詳細をグレアに溶け込ませうる。
図5Dは、画像部分421に基づいて生成された、例示的なハイライトビットマップ543を描写する。ハイライトビットマップ543は、グレアを示す、ゼロでないピクセル値などのピクセル値を有する、領域547
1および領域547
2を含みうる。より具体的には、領域547
1および547
2(ハイライト識別領域と呼ばれる場合がある)は、画像部分421の対応する領域427
1および427
2の中に、グレアが存在することを示しうる。画像部分421の領域427
1および427
2(またハイライト領域と呼んでもよい)は、ハイライトビットマップ543のハイライト識別領域547
1および547
2と同じ位置を占めうる。一部の事例では、領域547
1および547
2の中のピクセルなど、対応する画像部分(例えば、421)の中にグレアの存在を示す、ハイライトビットマップ(例えば、543)の中のピクセルは、上で論じた定義された最大ピクセル値など、定義されたピクセル値を有してもよい。他の事例では、ハイライトビットマップ(例えば、543)のハイライト識別領域の中にあるピクセルは、画像部分(例えば、421)のハイライト領域の中にある対応するピクセルと同じピクセル値を有してもよい。実施形態では、少なくとも一つのハイライト識別領域(例えば、547
1および547
2)以外にあるすべてのピクセルが、ピクセル値ゼロを有してもよい。
【0070】
実施形態では、計算システム101によって、画像部分の中にある、グレアまたは他の明る過ぎることによる影響を検出することによって、ハイライトビットマップを生成してもよい。こうした検出は、例えば、領域427
1および427
2の中のピクセル値など、定義された輝度閾値を超える、画像部分421のピクセル値の検出に基づいてもよい。輝度閾値の例として、ピクセル値が、0から255の範囲の8ビットの整数である場合、定義された輝度閾値は、例えば、230または240であってもよい。画像部分421の中にある特定のピクセル座標のピクセル値が、定義された輝度閾値を超える場合、計算システム101によって、ハイライトビットマップ543の中にある同じピクセル座標のピクセル値を、グレアの識別に関連する値(例えば、255)に設定してもよい。
【0071】
実施形態では、シャドウビットマップは、光が物体の表面の一部に完全に到達するのを遮られた影響を表す、画像部分(例えば、421)の領域(存在する場合)を示してもよい。こうした薄暗くなる影響によって、物体の表面のその一部に影が投じられうる。一部の実例では、影が、画像部分(例えば、421)のその領域にある任意の視覚的詳細をぼやけさせるか、または全く見えなくさせうる。例えば、
図5Eは、画像部分421の中にあるシャドウ領域428
1を示す。計算システム101によって、少なくとも定義された弁別閾分、周辺領域のピクセル値よりも小さいピクセル値を持つ画像部分421の領域として、シャドウ領域428
1を検出してもよい。一部の事例では、シャドウ領域428
1は、定義された暗部閾値よりも小さいピクセル値を持つ領域として、検出されてもよい。例えば、ピクセル値が0から255の範囲にある場合、定義された暗部閾値は、ピクセル値10または20でありうる。
【0072】
図5Eはさらに、画像部分421に基づいて生成された、シャドウビットマップ553を描写する。より詳細には、シャドウビットマップ553は、シャドウ領域428
1に対応するシャドウ識別領域558
1を含みうる。より詳細には、シャドウ識別領域558
1は、シャドウビットマップ553の中で、画像部分421の中のシャドウ領域428
1が占めるのと同じ位置を占めてもよい。一部の事例では、シャドウ識別領域(例えば、558
1)の中にあるピクセルの各々が、ゼロでない値を有してもよく、一方、シャドウ識別領域以外にあるシャドウビットマップ553の全ピクセルは、ピクセル値ゼロを有してもよい。一部の事例では、シャドウビットマップ(例えば、553)の、存在する場合にはシャドウ識別領域の中にあるピクセルは、定義された最大ピクセル値など、定義されたピクセル値を有してもよい。一部の事例では、シャドウ識別領域(例えば、558
1)の中のピクセルは、シャドウ領域(例えば、428
1)の中の対応するピクセルと同じピクセル値を有してもよい。
【0073】
図3に戻って参照すると、方法300はさらに、計算システム101の処理回路110によって、上に記載した一つ以上のビットマップに基づいて、少なくとも一つの画像部分(例えば、421)を、テクスチャありまたはテクスチャなしのどちらに分類するかを決定しうる(例えば、画像分類モジュール204によって)、ステップ308を含む。こうした分類は、画像もしくは画像部分に充分な量の視覚テクスチャ(存在する場合)があるか、または画像もしくは画像部分の外観が、実質的に空白もしくは均一であるかを指す場合がある。上述のように、少なくとも一つの画像部分は、一部のシナリオでは、物体認識を行うためのテンプレートとして使用されうる。こうしたシナリオでは、ステップ308は、テンプレートを、テクスチャありテンプレートまたはテクスチャなしテンプレートのどちらに分類するかの決定を伴いうる。実施形態では、ステップ308は、
図2Cの画像分類モジュール208によって行われてもよい。
【0074】
実施形態では、ステップ308は、一つ以上の基準のうちの少なくとも一つの基準を満たす場合、画像部分をテクスチャありに分類することを伴いうる。一部の事例では、少なくとも一つの基準は、記述子ビットマップ(例えば、513)または標準偏差ビットマップ(例えば、533)など、単一のビットマップに基づいてもよい。例えば、少なくとも一つの画像部分を、テクスチャありまたはテクスチャなしのどちらに分類するかの決定は、記述子ビットマップ(例えば、513)によって示される記述子の総数が、定義された記述子の数量閾値を超えるか、または標準偏差ビットマップ533における局所標準偏差値の最大値、最小値、もしくは代表値が、定義された標準偏差閾値を超えるかに基づいてもよい。上述のように、記述子ビットマップ(例えば、513)によって、一つ以上のそれぞれの記述子を含む、少なくとも一つの画像部分(例えば、421)のうちの一つ以上の領域を識別してもよく、または記述子が、少なくとも一つの画像部分(例えば、421)の中で検出されないことを示してもよい。
【0075】
実施形態では、画像部分をテクスチャありに分類させる少なくとも一つの基準は、記述子ビットマップ(例えば、513)とエッジビットマップ(例えば、523)との組み合わせ、記述子ビットマップ(例えば、513)と標準偏差ビットマップ(例えば、533)との組み合わせ、エッジビットマップと標準偏差ビットマップとの組み合わせ、または三つすべてのビットマップなど、複数のビットマップに基づいてもよい。例えば、ステップ308での、少なくとも一つの画像部分を、テクスチャありまたはテクスチャなしのどちらに分類するかの決定は、複数のビットマップを組み合わせる融合ビットマップ(融合マスクとも呼ぶ)の生成を含んでもよく、分類は融合ビットマップに基づく。一部の事例では、複数のビットマップは、複数のそれぞれのタイプの特徴を記述している場合がある。複数のタイプのビットマップを使用して、対応する画像部分を分類することによって、複数のタイプの特徴の存在または欠如についての情報を活用する利点を提供してもよく、これによって、画像もしくは画像部分の中に存在する特徴の量または数(存在する場合)について、より完全な判断を提供してもよい。例えば、画像部分には、第一のビットマップによって特徴として識別されえないが、第二のビットマップによって特徴として識別されうる、特定の視覚的詳細(例えば、白の領域に接するピンクの領域)があってもよい。
【0076】
実施形態では、融合ビットマップの生成には、複数のビットマップの和、すなわち、より具体的には、複数のビットマップの加重和の生成を伴いうる。例えば、融合ビットマップは、M1×W1+M2×W2、もしくはM1×W1+M2×W2+M3×W3に等しくてもよく、またはそれらに基づいてもよく、式中、M1は第一のビットマップ(例えば、記述子ビットマップ)を指してもよく、M2は第二のビットマップ(例えば、エッジビットマップ)を指してもよく、M3は第三のビットマップ(例えば、標準偏差ビットマップ)を指してもよく、W1、W2、およびW3は、ビットマップM1、M2、およびM3に関連付けられたそれぞれの重みであってもよい。この例では、ビットマップM1、M2、およびM3は、画像部分の中にある特徴の存在を表す(または特徴の欠如を表す)か、または画像部分に渡る強度の変動を表す(または変動の欠如を表す)ため、特徴ビットマップまたは変動ビットマップと呼ばれる場合がある。実施形態では、特徴ビットマップもしくは変動ビットマップの和または他の組み合わせは、結合特徴ビットマップまたは結合変動ビットマップと呼ばれる場合がある。特徴ビットマップまたは変動ビットマップの加重和の生成は、例えば、ピクセル単位でビットマップを加算することを伴いうる。例えば、融合ビットマップのピクセル座標[x y]
Tに対するピクセル値は、第一のビットマップM1の[x y]
Tに対するピクセル値を乗じたW1、第二のビットマップM2の[x y]
Tのピクセル値を乗じたW2、および第三のビットマップM3の[x y]
Tのピクセル値を乗じたW3の和に等しい場合がある。実施形態では、重みW1、W2、W3は予め定義されてもよい。実施形態では、重みW1、W2、およびW3は、以下でより詳細に論じるように、機械学習アルゴリズムを介して、計算システム101によって決定されうる。
【0077】
実施形態では、融合ビットマップの生成はさらに、ハイライトビットマップ(例えば、543)およびシャドウビットマップ(例えば、553)など、一つ以上の照明影響ビットマップに基づいてもよい。例えば、計算システム101によって、画像の少なくとも一つの画像部分(例えば、421)に渡って視覚テクスチャレベルを記述する、ビットマップピクセル値とも呼ぶ、ピクセル値を決定してもよい。ビットマップピクセル値は、ピクセル値M1×W1+M2×W2、またはM1×W1+M2×W2+M3×W3など、上で論じた結合特徴ビットマップまたは結合変動ビットマップに基づいてもよい。この例では、計算システム101によって、結合特徴ビットマップもしくは結合変動ビットマップの決定されたビットマップピクセル値のサブセットを減少させてもよく、または他の方法で調整してもよく、調整は、ハイライトマップ(例えば、543)および/またはシャドウビットマップ(例えば、553)に基づいてもよい。例えば、ハイライトビットマップまたはシャドウビットマップによって、少なくとも一つの画像部分(例えば、421)のうちの一つ以上の領域を、グレアを呈するか、または影であるか、もしくは影の中にあると識別しうる。計算システム101によって、結合特徴ビットマップまたは結合変動ビットマップの同じ一つ以上の領域で、ビットマップピクセル値を減少させる調整を行ってもよい。それらのビットマップピクセル値が、それら一つ以上の領域からの視覚情報の信頼性または品質を低減させる照明の影響を受ける場合があるため、減少によって、画像部分をテクスチャありまたはテクスチャなしに分類する際に、それら領域におけるピクセル値の影響を低減してもよい。実施形態では、減少は、結合特徴ビットマップもしくは結合変動ビットマップに、ハイライトビットマップおよび/またはシャドウビットマップを乗じることに基づいてもよい。
【0078】
上の考察の例として、
図6は、特徴ビットマップおよび照明影響ビットマップの結合に基づいて生成される、融合ビットマップ631を示す。より具体的には、
図6は、(M1×W1+M2×W2+M3×W3)×(M4×W4+M5×W5)に等しくなるような、融合ビットマップを生成する計算システム101を描写し、式中、M4はハイライトビットマップであり、M5はシャドウビットマップであり、W4およびW5は、ビットマップM4およびM5に関連付けられたそれぞれの重みである。この例では、M1×W1+M2×W2+M3×W3は、結合特徴ビットマップまたは結合変動ビットマップ621を形成してもよく、ビットマップ621に、(M4×W4+M5×W5)に等しい結合照明影響ビットマップ623を乗じうる。
【0079】
上述のように、重みW1からW5は、例では、機械学習技術によって決定されうる。例えば、機械学習技術は、訓練データを使用して、重みW1からW5に対する最適値を決定することを伴いうる。一部の事例では、訓練データは、訓練画像または訓練画像部分を含んでもよく、それらは、テクスチャありもしくはテクスチャなしのどちらであるかについて、予め定義された分類を伴う画像または画像部分であってもよい。このような場合、計算システム101は、訓練画像に対する分類エラーを最小化する、重みW1からW5の最適値を決定するように構成されうる。例えば、計算システム101は、勾配降下プロセスを使用して、重みW1からW5を最適値に調整するように構成されうる。
【0080】
実施形態では、計算システム101は、画像取り込み装置の視野(例えば、443)内にある可能性が高い物体に関する、予め定義された情報に基づいて、重みW1からW5の値を決定するように構成されうる。例えば、計算システム101によって、画像取り込み装置(例えば、441)が、エッジとして現れるであろう視覚的マーキングを多く有する可能性が高い物体を撮影した、または撮影するであろうという兆候を受信する(例えば、倉庫管理部から)場合、重みW2は、エッジビットマップM2を強調するために、比較的高い値に割り当てられてもよい。計算システム101によって、物体が記述子を形成する視覚的マーキングを有する可能性が高いという兆候を受信する場合、重みW1は、記述子ビットマップM1を強調するために、比較的高い値に割り当てられてもよい。一部の事例では、計算システム101は、どのビットマップにより多くの情報(例えば、より多くのゼロでない値)があるかの決定など、下流分析に基づいて、重みW1からW5に対する値を決定するように構成されてもよい。こうした例では、より多くの情報があるビットマップに対する重み(例えば、M1)は、比較的高い重みを割り当てられてもよい。一部の事例では、計算システム101は、どのタイプの特徴検出を使用または強調するかについての定義された優先度に基づいて、値を重みに割り当てるように構成されてもよい。例えば、定義された優先度が、エッジに基づく検出を強調すると示す場合、計算システムによって、比較的高い値をW2に割り当ててもよい。定義された優先度が、記述子に基づく検出を強調すると示す場合、計算システムによって、比較的高い値をW1に割り当ててもよい。
【0081】
実施形態では、ステップ302で受信された画像(例えば、420)が、複数の色成分を有するカラー画像である場合、融合ビットマップ(例えば、631)の生成は、色成分に対応するそれぞれの中間融合ビットマップを生成し、その後、中間融合ビットマップを組み合わせることを伴いうる。より具体的には、
図7が、赤色成分、緑色成分、および青色成分を有するカラー画像を示す。こうした例では、計算システム101は、第一の色成分(例えば、赤)に対応するビットマップの少なくとも第一のセット(M1_RedからM5_Red)、および第二の色成分(例えば、緑)に対応するビットマップの第二のセット(M1_GreenからM5_Green)を生成するように構成されうる。
図7の例では、計算システム101によって、第三の色成分(例えば、青)に対応するビットマップの第三のセット(M1_BlueからM5_Blue)をさらに生成しうる。この実施形態では、Fused_Red、Fused_Green、およびFused_Blueなど、それぞれの中間融合ビットマップが、ビットマップの三つのセットの各々から生成されうる。三つの中間融合ビットマップは、
図6のビットマップ631など、単一の融合ビットマップに組み合わせられてもよい。
【0082】
上述のように、ステップ308の分類は、画像の少なくとも一つの画像部分に渡る強度の変動を表す場合がある、標準偏差ビットマップ(例えば、533)に基づいてもよい。実施形態では、画像部分をテクスチャありに分類させる、少なくとも一つの基準は、融合ビットマップ(例えば、631)に渡る強度の変動に基づいてもよい。融合ビットマップに渡る変動は、例えば、融合ビットマップの中にある局所領域の標準偏差値で定量化されうる。例えば、こうした局所標準偏差値の最大値、最小値、または代表値が、定義された標準偏差閾値に等しいか、またはそれより大きい場合、計算システム101によって、少なくとも一つの画像部分をテクスチャありに分類してもよい。
【0083】
実施形態では、ステップ308は、融合ビットマップに基づいた、テクスチャビットマップの生成を伴いうる。こうした実施形態では、画像部分をテクスチャありに分類させる少なくとも一つの基準は、テクスチャビットマップに基づいてもよい。
図6は、テクスチャビットマップ641へ変換されていく、融合ビットマップ631を描写する。実施形態では、テクスチャビットマップは、対応する画像部分(例えば、421)のどの一つ以上の領域に、充分なレベルの視覚テクスチャがあるかを識別するため、または画像部分(例えば、421)に、充分なレベルの視覚テクスチャを持つ領域がないと示すためのものでありうる。より具体的には、テクスチャビットマップには、テクスチャ識別領域および/またはテクスチャなし識別領域があってもよい。テクスチャビットマップ641の領域643など、テクスチャ識別領域は、テクスチャあり領域と呼ばれる場合がある、画像部分の対応する領域が、少なくとも定義されたテクスチャレベルを有することを示すピクセル値を有してもよい。テクスチャビットマップ641の中の領域645など、テクスチャなし識別領域は、テクスチャなし領域と呼ばれる場合がある、画像部分の対応する領域が、定義されたテクスチャレベルを有さないことを示すピクセル値を有してもよい。画像部分(例えば、421)の中のテクスチャ領域は、テクスチャビットマップ641の中で、テクスチャ識別領域643が占めるのと同じ位置(例えば、同じ座標)を占めてもよい。同様に、画像部分の中のテクスチャなし領域は、テクスチャビットマップ641の中で、テクスチャなし識別領域645が占めるのと同じ位置を占めてもよい。したがって、テクスチャビットマップ641は、画像部分のうちのどのくらい(存在する場合)に、充分なレベルの視覚テクスチャがあるのか、および画像部分のうちのどのくらい(存在する場合)に、充分なレベルの視覚テクスチャが欠けているのかを識別するためのものであってもよい。
【0084】
実施形態では、計算システム101は、融合ビットマップ(例えば、631)のピクセルを、定義されたピクセル値の閾値など、定義されたテクスチャレベルの閾値と比較することによって、テクスチャビットマップ(例えば、641)を生成するように構成されてもよい。こうした例では、計算システム101によって、融合ビットマップ(例えば、631)の各ピクセル座標について、そのピクセル座標にある融合ビットマップ(例えば、631)のピクセル値が、定義されたピクセル値の閾値に等しいか、またはそれを超えるかを決定してもよい。そのピクセル座標にある融合ビットマップのピクセル値が、定義されたピクセル値の閾値に等しいか、またはそれを超える場合、計算システム101によって、例えば、ゼロでない値を、テクスチャビットマップ(例えば、641)の中の同じピクセル座標に割り当ててもよい。例として、ゼロでない値を割り当てられたピクセル座標は、テクスチャ識別領域643の中にあるピクセル座標でありうる。上の考察には、ゼロでない値の割り当てを伴うが、十分なレベルのテクスチャを示すことに関連付けられる、いかなる値も割り当てられうる。そのピクセル座標にある融合ビットマップ(例えば、631)のピクセル値が、定義されたピクセル値の閾値よりも小さい場合、計算システム101によって、例えば、ゼロの値を、テクスチャビットマップの中の同じピクセル座標に割り当ててもよい。例として、ゼロの値を割り当てられたピクセル座標は、テクスチャなし識別領域645の中にあるピクセル座標でありうる。上の考察には、ゼロの値の割り当てを伴うが、不十分なレベルのテクスチャを示すことに関連付けられる、いかなる値も割り当てられうる。
【0085】
実施形態では、テクスチャビットマップは、テクスチャビットマップの中の全ピクセルが、0または1のいずれかなど、二つのピクセル値のうちの一つのみを有することができる、バイナリマスクであってもよい。例えば、テクスチャビットマップ641のテクスチャ識別領域643の中にあるすべてのピクセルは、ピクセル値1を有してもよく、一方、テクスチャなし識別領域645の中にあるすべてのピクセルは、0の値を有してもよい。この例では、テクスチャビットマップの中でピクセル値1を有するピクセルは、画像部分(例えば、421)の対応する領域が、テクスチャあり領域であると示してもよく、一方、テクスチャビットマップ641の中でピクセル値0を有するピクセルは、画像部分(例えば、421)の対応する領域が、テクスチャなし領域であると示してもよい。
【0086】
実施形態では、画像部分(例えば、421)をテクスチャありに分類させる、少なくとも一つの基準は、テクスチャビットマップ(例えば、641)の中にある一つ以上のテクスチャ識別領域(存在する場合)のサイズ(例えば、総面積)に、またはテクスチャビットマップ(例えば、641)の中にある一つ以上のテクスチャなし識別領域(存在する場合)のサイズに基づいてもよい。基準はまた、画像部分(例えば、421)の一つ以上のテクスチャあり領域(存在する場合)のサイズに、または画像部分の一つ以上のテクスチャなし領域(存在する場合)のサイズに基づいてもよい。一つ以上のテクスチャ識別領域(存在する場合)のサイズは、一つ以上のテクスチャあり領域(存在する場合)のサイズに等しいか、または実質的に等しい場合があり、一方、一つ以上のテクスチャなし識別領域(存在する場合)のサイズは、一つ以上のテクスチャなし領域(存在する場合)に等しいか、または実質的に等しい場合がある。
【0087】
上の基準の例として、計算システム101によって、テクスチャビットマップにより示されるテクスチャあり総面積を決定してもよく、テクスチャあり総面積に基づいて、画像部分(例えば、421)をテクスチャありまたはテクスチャなしに分類しうる。テクスチャあり総面積は、テクスチャビットマップ(例えば、641)の中の全テクスチャ識別領域(例えば、643)、または画像部分(例えば、421)の中のすべての対応するテクスチャあり領域の総面積を示しうる。テクスチャビットマップ(例えば、641)にテクスチャ識別領域がない場合、または画像部分(例えば、421)にテクスチャあり領域がない場合、テクスチャあり総面積はゼロとなりうる。一部の事例では、計算システム101は、テクスチャあり総面積が、定義された面積の閾値に等しいか、または閾値よりも大きい場合、画像部分(例えば、421)をテクスチャありに分類してもよく、テクスチャあり総面積が、定義された面積の閾値よりも小さい場合、画像部分(例えば、421)をテクスチャなしに分類してもよい。
【0088】
実施形態では、画像部分をテクスチャありまたはテクスチャなしに分類させる、少なくとも一つの基準は、存在する場合、一つ以上のテクスチャあり領域が占める画像部分(例えば、421)の割合、または存在する場合、一つ以上のテクスチャ識別領域(例えば、643)が占めるテクスチャビットマップ(例えば、641)の割合でありうる、割合P
textureに基づいてもよい。画像部分にテクスチャあり領域がない場合、または対応するテクスチャビットマップにテクスチャ識別領域がない場合、割合P
textureはゼロでありうる。実施形態では、少なくとも一つの基準は、存在する場合、一つ以上のテクスチャなし領域が占める画像部分(例えば、421)の割合、または存在する場合、一つ以上のテクスチャなし識別領域(例えば、643)が占めるテクスチャビットマップ(例えば、641)の割合でありうる、割合P
texturelessに基づいてもよい。
【0089】
実施形態では、画像部分をテクスチャありまたはテクスチャなしに分類させる、少なくとも一つの基準は、割合P
texture(この例では、第一の割合であってもよい)と割合P
textureless(この例では、第二の割合であってもよい)との比率に基づいてもよい。例えば、こうした実施形態は、比率P
texture/P
texturelessが、定義されたテクスチャありとテクスチャなしとの比較閾値T
1(例えば、5)を超える場合、少なくとも一つの画像部分(例えば、421)をテクスチャありに分類することを伴いうる。
【0090】
実施形態では、画像部分(例えば、421)をテクスチャありまたはテクスチャなしに分類させる、少なくとも一つの基準は、画像部分(例えば、421)の中のもしくはステップ302で受信された画像(例えば、420)の中の割合P
textureと、ピクセルNum
imageの総数との比率に基づいてもよく、および/または割合P
texturelessとNum
imageとの比率に基づいてもよい。例えば、計算システム101は、比率P
texture/Num
imageが、定義されたテクスチャと画像サイズとの比較閾値T
2(例えば、0.9)よりも大きい場合、および/または比率P
textureless/Num
imageが、定義されたテクスチャなしと画像サイズとの比較閾値T
3(例えば、0.1)よりも小さい場合、少なくとも画像部分(例えば、421)をテクスチャありに分類してもよい。
【0091】
実施形態では、計算システム101によって、画像部分をテクスチャありもしくはテクスチャなしに分類することに関与する、上の基準の一部またはすべてを組み合わせてもよい。一部の事例では、計算システム101は、上の基準のいずれか一つでも満たされる場合、画像部分(例えば、421)をテクスチャありに分類し、上の基準のいずれもが満たされない場合、画像部分をテクスチャなしに分類することによって、ステップ308を行うように構成されうる。
【0092】
例えば、計算システム101によって、第一の基準を評価する一部として、記述子ビットマップ(例えば、513)の中にある記述子の数が、定義された記述子の数量閾値よりも大きいかを決定してもよい。この第一の基準を満たす場合、計算システム101によって、画像部分(例えば、421)をテクスチャありに分類してもよい。第一の基準を満たさない場合、計算システム101によって、P
texture/P
textureless>T
1であるかを決定することによって、第二の基準を評価してもよい。第二の基準を満たす場合、計算システム101によって、画像部分(例えば、421)をテクスチャありに分類してもよい。第二の基準を満たさない場合、計算システム101によって、P
textureless/Num
image>T
2および/またはP
textureless/Num
image<T
3であるかを決定することによって、第三の基準を評価してもよい。第三の基準を満たす場合、計算システム101によって、画像部分(例えば、421)をテクスチャありに分類してもよい。第三の基準を満たさない場合、計算システム101は、標準偏差ビットマップ(例えば、533)により、もしくは融合ビットマップ(例えば、631)により示される標準偏差値の最大、最小、または平均が、定義された標準偏差閾値よりも大きいかを決定することによって、第四の基準を評価してもよい。第四の基準を満たす場合、計算システムによって、画像部分(例えば、421)をテクスチャありに分類してもよい。上の基準のいずれも満たさない場合、計算システム101によって、画像部分(例えば、421)をテクスチャなしに分類してもよい。
【0093】
実施形態では、ステップ306および308が、ステップ302で受信された画像の一つ以上の他の画像部分に対して繰り返されてもよい。例えば、受信された画像(例えば、420)は、
図4Aの物体401〜404など、複数の物体を表してもよい。一部の状況では、一つより多いテンプレートが、複数の物体に基づいて生成されてもよい。例として、第一のテンプレートは、上で論じたように、物体401の外観を記述する、画像部分421に基づいて生成されてもよい。この実施形態では、第二のテンプレートは、第二の画像部分422に基づいて生成されてもよく、一方、第三のテンプレートは、第三の画像部分423に基づいて生成されてもよく、画像部分422および423は
図8A〜8Cに描写される。画像部分422は物体402を表してもよく、一方、画像部分423は物体403を表してもよい。この例の計算システム101によって、画像部分422および423を画像420から抽出し、第二のテンプレートおよび第三のテンプレートそれぞれを、それらの画像部分422、423に基づいて生成するために、それらの画像部分上でステップ306および308を行いうる。一例では、画像部分422は、テクスチャなしテンプレートに分類されてもよい。一部の実施では、画像部分423はまた、テクスチャなしテンプレートに分類されてもよい。画像部分423が、一片のテープの一つ以上のエッジを表示しうるものの、一つ以上のエッジのみから生成された特徴ビットマップ、変動ビットマップ、および融合ビットマップは、この例では、テクスチャあり分類を生み出すのに不充分でありうる。
【0094】
図3に戻ると、方法300は、計算システム101の処理回路110によって、少なくとも一つの画像部分(例えば、421)が、テクスチャありまたはテクスチャなしのどちらに分類されるかに基づいて、一つ以上の物体(例えば、
図4Aの401〜404)とのロボット相互作用のための動作計画を実行してもよい、ステップ310を含みうる。実施形態では、ステップ308は、
図2Cの画像分類モジュール204および/または動作計画モジュール208によって行われてもよい。
【0095】
実施形態では、ステップ310は、画像420によって表される一つ以上の物体401〜404など、画像取り込み装置(例えば、441)の装置視野(例えば、443)の中にある、物体のうちの一つ以上に対して物体認識を行うことを伴いうる。例えば、上で論じたように、物体401を表す画像部分421は、テンプレートとして、またはテンプレートを生成するように使用されてもよく、物体認識は、装置視野443の中にある残りの物体402〜404が、テンプレートに合致するかの決定を伴いうる。例として、計算システム101は、物体402、403、または404を表す画像420の一部分が、テンプレートに合致するかを決定するように構成されてもよく、テンプレートは、物体401の外観に基づいて生成される。一部の事例では、物体認識は、テンプレートが、テクスチャありテンプレートまたはテクスチャなしテンプレートのどちらに分類されるかに基づいてもよい。例えば、テンプレートの分類は、テンプレートが記憶される場所、および/またはテンプレートが記憶される期間に影響を与える場合がある。テクスチャなしテンプレートまたはテクスチャありテンプレートに基づく物体認識の実施については、「METHOD AND COMPUTING SYSTEM FOR OBJECT RECOGNITION OR OBJECT REGISTRATION BASED ON IMAGE CLASSIFICATION」と題する、本明細書と同日に出願された米国特許出願第______号(弁理士整理番号MJ0054−US/0077−0012US1)でより詳細に論じ、その全体の内容は参照により本明細書に組み込まれる。上述のように、物体認識によって、例えば、物体のサイズについての情報を生み出してもよく、これは、その物体(例えば、404)とロボットの相互作用を計画するために使用されうる。実施形態では、ステップ310は省略されてもよい。例えば、こうした実施形態は、ステップ302、306、308を有し、ステップ308の完了時に停止する方法を含みうる。
【0096】
実施形態では、計算システム101は、物体認識の信頼度を決定するように構成されてもよく、決定は、テンプレートがテクスチャありまたはテクスチャなしのどちらであるかに基づいてもよい。例えば、物体(例えば、403)の外観が、テクスチャなしテンプレートのみに合致する場合、こうした合致は比較的低い信頼度に割り当てられうる。物体(例えば、404)の外観が、テクスチャありテンプレートに合致する場合、こうした合致は比較的高い信頼度に割り当てられうる。一部の事例では、計算システム101は、物体認識の頑健性向上を試みるために、別の技術に基づくか、または追加情報に基づく操作など、追加の物体認識操作を行うように構成されてもよい。一部の事例では、計算システム101によって、信頼度に基づいて動作計画を行ってもよい。例えば、信頼度が比較的低い場合、計算システム101は、ロボット(例えば、461)の相互作用が、より高いレベルの注意を払って進行しうるように、ロボットが物体を拾い上げるか、または他の方法で物体と相互作用しようと試みているとき、ロボットの速度を制限するように構成されうる。
【0098】
実施形態1は、画像分類の方法に関する。方法は、例えば、非一時的コンピュータ可読媒体上で命令を実行する計算システムによって行うことができる。この実施形態の方法は、計算システムによって画像を受信することを含み、計算システムは、画像取り込み装置と通信するように構成され、画像は、画像取り込み装置によって生成され、かつ、画像取り込み装置の視野の中にある一つ以上の物体を表すためのものである。方法はさらに、計算システムによって、画像の少なくとも一つの画像部分に基づいて、一つ以上のビットマップを生成することを含み、一つ以上のビットマップおよび少なくとも一つの画像部分は、一つ以上の物体のうちの第一の物体に関連付けられ、一つ以上のビットマップは、特徴検出用の一つ以上の視覚的特徴が少なくとも一つの画像部分の中に存在するかどうかを記述するか、または少なくとも一つの画像部分に渡って強度の変動があるかどうかを記述する。加えて、方法は、一つ以上のビットマップに基づいて、少なくとも一つの画像部分を、テクスチャありまたはテクスチャなしのどちらに分類するかを決定することと、少なくとも一つの画像部分がテクスチャありまたはテクスチャなしのどちらに分類されるかに基づいて、一つ以上の物体とのロボット相互作用のための動作計画を実行することとを含む。
【0099】
実施形態2は、実施形態1の方法を含む。この実施形態では、一つ以上のビットマップは、一つ以上の記述子が、少なくとも一つの画像部分の中に存在するかを示すための、または少なくとも一つの画像部分から検出された一つ以上のそれぞれの記述子を含む、少なくとも一つの画像部分のうちの一つ以上の領域を識別するための記述子ビットマップを含む。少なくとも一つの画像部分を、テクスチャありまたはテクスチャなしのどちらに分類するかを決定することは、記述子ビットマップによって識別される記述子の総数が、定義された記述子の数量閾値を超えるかどうかに基づく。
【0100】
実施形態3は、実施形態1または2の方法を含む。この実施形態では、一つ以上のビットマップは、第一のビットマップおよび第二のビットマップを有する、複数のビットマップを含む。第一のビットマップは、少なくとも一つの画像部分に基づいて生成され、かつ、第一の特徴タイプの一つ以上の視覚的特徴が少なくとも一つの画像部分の中に存在するかどうかを記述する。さらに、この実施形態では、第二のビットマップは、少なくとも一つの画像部分に基づいて生成され、かつ、第二の特徴タイプの一つ以上の視覚的特徴が少なくとも一つの画像部分の中に存在するかどうかを記述し、少なくとも一つの画像部分を、テクスチャありまたはテクスチャなしのどちらに分類するかを決定することは、複数のビットマップを組み合わせた融合ビットマップを生成することを含み、少なくとも一つの画像部分は、融合ビットマップに基づいて、テクスチャありまたはテクスチャなしに分類される。
【0101】
実施形態4は、実施形態3の方法を含む。この実施形態では、第一のビットマップは、少なくとも一つの画像部分から検出された一つ以上のそれぞれの記述子を含む、少なくとも一つの画像部分のうちの一つ以上の領域を識別するための、または記述子が少なくとも一つの画像部分の中で識別されないと示すための、記述子ビットマップであり、第二のビットマップは、少なくとも一つの画像部分から検出された一つ以上のそれぞれのエッジを含む、少なくとも一つの画像部分のうちの一つ以上の領域を識別するための、またはエッジが少なくとも一つの画像部分の中で検出されないと示すための、エッジビットマップである。
【0102】
実施形態5は、実施形態4の方法を含む。この実施形態では、複数のビットマップは、少なくとも一つの画像部分の各ピクセルについて、ピクセルの周りのピクセル強度値間の標準偏差を示すための標準偏差ビットマップである、第三のビットマップを含む。
【0103】
実施形態6は、実施形態3〜5のうちのいずれか一つの方法を含む。この実施形態では、少なくとも一つの画像部分を、テクスチャありまたはテクスチャなしのどちらに分類するかを決定することは、計算システムによって、融合ビットマップをテクスチャビットマップに変換することを含む。さらに、この実施形態では、テクスチャビットマップは、少なくとも一つの画像部分の一つ以上のテクスチャあり領域を識別するため、または少なくとも一つの画像部分にはテクスチャあり領域がないことを示すためのものであり、テクスチャビットマップは、少なくとも一つの画像部分の一つ以上のテクスチャなし領域をさらに識別するため、または少なくとも一つの画像部分にはテクスチャなし領域がないことを示すためのものであり、一つ以上のテクスチャあり領域は、少なくとも定義されたテクスチャレベルを有する、少なくとも一つの画像部分のうちの一つ以上の領域であり、一つ以上のテクスチャなし領域は、定義されたテクスチャレベルよりも低い、少なくとも一つの画像部分のうちの一つ以上の領域であり、少なくとも一つの画像部分を、テクスチャありまたはテクスチャなしのどちらに分類するかを決定することは、テクスチャビットマップに基づく。
【0104】
実施形態7は、実施形態6の方法を含む。この実施形態では、少なくとも一つの画像部分を、テクスチャありまたはテクスチャなしのどちらに分類するかを決定することは、テクスチャビットマップによって示されるテクスチャあり総面積のうちの少なくとも一つに基づき、テクスチャあり総面積は、一つ以上のテクスチャあり領域の総面積、またはテクスチャビットマップが少なくとも一つの画像部分にはテクスチャあり領域が全くないと示す場合にはゼロである。
【0105】
実施形態8は、実施形態3〜7のうちのいずれか一つの方法を含む。この実施形態では、少なくとも一つの画像部分を、テクスチャありまたはテクスチャなしのどちらに分類するかを決定することは、融合ビットマップに渡るピクセル強度値の変動の有無に基づくか、または融合ビットマップに渡るピクセル強度値の変動量に基づく。
【0106】
実施形態9は、実施形態2〜8のうちのいずれか一つの方法を含む。この実施形態では、少なくとも一つの画像部分を、テクスチャありまたはテクスチャなしのどちらに分類するかを決定することは、a)記述子ビットマップによって識別される記述子の数が、定義された記述子の数量閾値よりも大きい場合、少なくとも一つの画像部分をテクスチャありと分類すること、b)第一の割合と第二の割合との比率が、定義されたテクスチャとテクスチャなしとの比較閾値を超える場合、少なくとも一つの画像部分をテクスチャありと分類することであって、第一の割合は、一つ以上のテクスチャあり領域によって占められる、少なくとも一つの画像部分の割合であるか、もしくは少なくとも一つの画像部分にテクスチャあり領域がない場合にはゼロであり、第二の割合は、一つ以上のテクスチャなし領域によって占められる、少なくとも一つの画像部分の割合であること、c)第一の割合と少なくとも一つの画像部分のサイズとの比率が、定義されたテクスチャと画像サイズとの比較閾値よりも大きい場合、もしくは第二の割合と少なくとも一つの画像部分のサイズとの比率が、定義されたテクスチャなしと画像サイズとの比較閾値よりも小さい場合、少なくとも一つの画像部分をテクスチャありと分類すること、またはd)融合ビットマップのそれぞれのピクセルの局所領域に対する標準偏差の最大値もしくは最小値が、定義された標準偏差閾値よりも大きい場合、少なくとも一つの画像部分をテクスチャありと分類することのうちの少なくとも一つを含む。
【0107】
実施形態10は、実施形態1〜9のうちのいずれか一つの方法を含む。この実施形態では、方法はさらに、画像が生成された照明状態から少なくとも一つの画像部分への影響を記述する追加ビットマップを生成することをさらに含む。
【0108】
実施形態11は、実施形態10の方法を含む。この実施形態では、追加ビットマップは、照明状態の結果として、定義された輝度閾値を超える一つ以上の領域を、少なくとも一つの画像部分の中で識別するハイライトビットマップ、または少なくとも一つの画像部分で、影の中にある一つ以上の領域を識別するシャドウビットマップのうちの少なくとも一つを含む。
【0109】
実施形態12は、実施形態3〜11のうちのいずれか一つの方法を含む。この実施形態では、融合ビットマップの生成には、第一のビットマップおよび第二のビットマップに少なくとも基づいて、少なくとも一つの画像部分に渡るテクスチャレベルを記述するビットマップピクセル値を決定することと、ハイライトビットマップまたはシャドウビットマップに基づいて、決定されたビットマップピクセル値のサブセットを減少させることと、を含み、減少されるビットマップピクセル値のサブセットは、定義された輝度閾値を超えるとハイライトビットマップによって識別されるか、または影の中にあるとシャドウビットマップによって識別される、少なくとも一つの画像部分のうちの一つ以上の領域に対応する。
【0110】
実施形態13は、実施形態3〜12のうちのいずれか一つの方法を含む。この実施形態では、融合ビットマップの生成は、少なくとも第一のビットマップおよび第二のビットマップの加重和、ならびにハイライトビットマップおよびシャドウビットマップの加重和に基づいている。
【0111】
実施形態14は、実施形態3〜13のうちのいずれか一つの方法を含む。この実施形態では、計算システムによって受信される画像は、複数の色成分を含むカラー画像であり、第一のビットマップおよび第二のビットマップが、複数の色成分のうちの第一の色成分に関連付けられる、ビットマップの第一のセットに属し、方法は、複数の色成分のうちの第二の色成分に関連付けられる、ビットマップの第二のセットを生成することを含み、融合ビットマップは、少なくともビットマップの第一のセットおよびビットマップの第二のセットに基づいて生成される。
【0112】
実施形態15は、実施形態14の方法を含む。この実施形態では、方法はさらに、ビットマップの第一のセットを組み合わせた第一の中間融合ビットマップを生成することであって、第一の中間融合ビットマップが第一の色成分に関連付けられることと、ビットマップの第二のセットを組み合わせた第二の中間融合ビットマップを生成することであって、第二の中間融合ビットマップが第二の色成分に関連付けられることとを含み、融合ビットマップは、少なくとも第一の中間融合ビットマップおよび第二の中間融合ビットマップを組み合わせることによって生成される。
【0113】
実施形態16は、実施形態1〜15のうちのいずれか一つの方法を含む。この実施形態では、方法はさらに、一つ以上のビットマップが生成される前に、画像にスムージング操作を適用して、更新画像を生み出すことを含み、一つ以上のビットマップが生成された少なくとも一つの画像は、更新画像から抽出される。
【0114】
関連分野の当業者にとって、本明細書に記載する方法および用途への、その他の適切な修正ならびに適応が、実施形態のうちのいずれの範囲から逸脱することなく成すことができることは明らかであろう。上に記載する実施形態は、説明に役立つ実施例であり、本発明がこれらの特定の実施形態に限定されると解釈されるべきではない。本明細書に開示する様々な実施形態は、記載および添付の図に具体的に提示する組み合わせとは異なる組み合わせで、組み合わせてもよいことは理解されるべきである。実施例によって、本明細書に記載するプロセスもしくは方法のいずれのある特定の行為または事象は、異なる順番で行われてもよく、追加、統合、または完全に省略してもよいことも理解されるべきである(例えば、記載したすべての行為または事象は、方法またはプロセスを実施するのに必要ではない場合がある)。加えて、本明細書の実施形態のある特定の特徴を、明確にするために、単一の構成要素、モジュール、またはユニットにより行われていると記載しているものの、本明細書に記載する特徴および機能は、構成要素、モジュール、またはユニットのいかなる組み合わせによって行われてもよいことは理解されるべきである。したがって、添付の特許請求の範囲に定義するような、発明の精神または範囲から逸脱することなく、当業者によって様々な変更および修正に影響を与えうる。
【解決手段】画像の少なくとも一部分を、テクスチャありまたはテクスチャなしに分類するためのシステムは、画像取り込み装置によって生成される画像を受信する。画像は、画像取り込み装置の視野の中にある一つ以上の物体を表す。システムによって、画像の少なくとも一つの画像部分に基づいて、一つ以上のビットマップを生成する。一つ以上のビットマップによって、特徴検出用の一つ以上の特徴が、少なくとも一つの画像部分の中に存在するかを記述するか、もしくは特徴検出用の一つ以上の視覚的特徴が、少なくとも一つの画像部分の中に存在するかを記述するか、または少なくとも一つの画像部分に渡って強度の変動があるかを記述する。システムによって、一つ以上のビットマップに基づいて、少なくとも一つの画像部分を、テクスチャありまたはテクスチャなしのどちらに分類するかを決定する。