ハイパースペクトル画像処理用のシステム及び方法の態様は、ハイパースペクトル画像内の対象領域を訓練セット内の複数の画像と比較するための物体の画像のセットを含む、物体のハイパースペクトル画像に対するハイパースペクトル画像処理のための画像処理アプリケーションを実行する、コンピューティングデバイスを提供する。これは、1つまたは複数の要因またはパラメータに関して物体の品質を分類するために使用されてもよく、食品サプライチェーンプロセスの間に、食品の種類など腐敗しやすい品物の品質を分類するために使用されてもよい。1つの実施例において、物体は、アボカドなどの食品であってもよい。その結果、アプリケーションは、ハイパースペクトル画像内の対象領域を訓練セット内の複数の画像と比較することによって、物体の特性を判断し得る。コンピューティングデバイスは、物体のハイパースペクトル画像をキャプチャする撮像デバイスと通信してもよい。物体は、少なくとも1つの照明デバイスによって照明され、撮像デバイスを通過して移動する、コンベヤベルト上に位置する複数の物体のうちの1つの物体であってもよい。
物体は、物体の中でも、アボカド、バナナ、オレンジ、桃、玉ねぎ、梨、キウイフルーツ、マンゴー、ベリー、トマト、リンゴ、砂糖、豚肉、羊肉、牛肉、または魚の1つなどの食品または農産物であってもよい。さらに、撮像デバイスが、画像内に混入物質または異物があると判断してもよい。
システムは、メモリと、少なくとも1つのプロセッサであって、撮像デバイスによって物体のハイパースペクトル画像を取得し、物体のハイパースペクトル画像が、物体の画像の3次元セットを含み、画像のセット内の各画像が、電磁スペクトルの波長範囲において物体を表し、物体のハイパースペクトル画像を正規化し、ハイパースペクトル画像内で対象領域を選択し、対象領域が、画像のセット内の少なくとも1つの画像のサブセットを含み、ハイパースペクトル画像内の対象領域からスペクトル特徴を抽出し、物体の特定の特性を判断するために、対象領域からのスペクトル特徴を訓練セット内の複数の画像と比較する、少なくとも1つのプロセッサと、を含む。
1つの態様において、システムは、ハイパースペクトル撮像を使用して、アボカドまたは別の腐敗しやすい品物などの物体の乾物含量を判断するために提供される。別の態様において、システムは、ハイパースペクトル撮像を使用して、アボカドまたは別の腐敗しやすい品物などの物体の硬度を判断するために提供される。別の態様において、システムは、ハイパースペクトル撮像を使用して、アボカドまたは別の腐敗しやすい品物などの物体の熟度を判断するために提供される。
別の態様において、システムは、ハイパースペクトル撮像を使用して、コンベアベルト上に位置するべきでない物体などの混入物質の存在を判断するために提供される。これは、異物であってもよい。混入物質は、プラスチック、紙、金属フック、タバコの吸殻、厚紙、布地、または別の種類の混入物質のうちの1つであってもよい。実施例として、プラスチックの混入物質が、ケーブルタイなどのプラスチック部品であってもよい。
システムは、物体の少なくとも一部のハイパースペクトル画像を取得するための撮像モジュールと、処理され得るデータを生成するためにハイパースペクトル画像を分析するための事前処理モジュールと、ハイパースペクトル画像の分析に関する出力を提供するための出力モジュールと、を含み得る。1つの実施例において、ハイパースペクトル画像は、システムによって処理されるべきハイパースペクトルデータキューブを一緒に形成する、画像のセットであってもよい。画像のセットは、それぞれがハイパースペクトル画像内の波長範囲を表す、物体の224個の画像を含んでもよい。代替的には、画像のセットは、それぞれがハイパースペクトル画像内の波長範囲を表す、異なる数の画像を含んでもよい。
システムは、追加的に、物体の特性を判断するための訓練セットを生成するために使用され、データのデータベースまたはデータのライブラリを生成し得る、合成データ生成モジュールを含んでもよい。撮像モジュールによってキャプチャされたハイパースペクトル画像は、ハイパースペクトル画像を分析するために、データのデータベースと比較され得る。
本明細書で述べたように、従来の食品の品質及び安全制御は、圧倒的にアナログであり、食品会社間で著しく異なる。食品会社は、無数の異なる旧式の方法論を使用している。品質制御及び品質保証は、目視検査、破壊試験、及び標本に極めて依存しており、その結果、高いレベルの廃棄物をもたらし、不正及び汚染のレベルを増大させる。
さらに、食品生産者及び小売業者にとって、品質制御及び品質保証プロセスは、今日、時間のかかる目視検査、標本試験、ならびに費用がかかり長期にわたる試験所中心の微生物学サンプリングを伴い、その結果、検査済み食品製品においてプラスチック、金属、繊維、及び他の混入物質などの混入物質が見つかることが、回収、売上の損失、ならびにブランド及び評判の損傷に繋がる。グローバルな食品産業は、サプライチェーンのセキュリティ及び透明性を増大させるために、処理中に混入物質を検出するための、迅速で非侵襲的かつ正確なシステムを必要としている。
腐敗しやすい食品などの物体の破壊試験及び従来型の試験に関連する問題は、物体を破壊することなく物体の特性を判断するために物体のハイパースペクトル画像分析を実行するコンピューティングデバイスによって、解決され得る。したがって、本明細書で論じられる解決策は、食品産業に効率性及び財政的利益をもたらす。コンピューティングデバイスは、人間の目視検査では提供できない解決策をもたらす、ハイパースペクトル画像処理アプリケーションを実行し得る。コンピューティングデバイスは、腐敗しやすい食品のハイパースペクトル画像を画像のライブラリまたはデータベースと比較すること、及び機械学習を使用して分析を改良することによって、複数の腐敗しやすい食品を素早く効率的に分析することが可能である。
画像のライブラリまたはデータベースは、実際の物体に基づいてもよく、及び/またはコンピューティングデバイスによってレンダリングされてもよい。レンダリングされた画像は、コンピューティングデバイスによって画像に挿入された、またはコンピューティングデバイスによって修正されたデータで拡張され得る、実際の物体に基づいてもよい。実施例として、画像内に挿入されるデータは、色データであってもよい。代替的には、物体は、画像内の物体の向き及び/または位置を修正するようにして修正されてもよい。画像のライブラリまたはデータベース内の各画像は、物体の特性などの関連情報を有し得る。
図1は、例としての実施形態による、異物を識別するため、及び物体の品質パラメータを分類するためのハイパースペクトル画像処理用システム100のブロック図を示す。ハイパースペクトル画像処理用システム100は、コンベヤベルトデバイス102の移動トレイまたはコンベヤベルトに沿って進む1つまたは複数の物体104を有する、移動トレイまたはコンベヤベルトデバイス102を含み得る。1つまたは複数の物体は、それらの上に異物103または混入物質を有することがある。さらに、ハイパースペクトル画像処理用システム100は、少なくとも1つの照明デバイス106を含み得る、照明システムを含んでもよい。
追加的に、ハイパースペクトル画像処理用システム100は、少なくとも1つの撮像デバイス108を含んでもよい。1つの実施例において、撮像デバイス108は、センサ上に入射する電磁エネルギーを検出するように構成された1つまたは複数の光センサを含み得るハイパースペクトルカメラなどの、化学的マシンビジョンカメラであってもよい。任意の数の様々な光センサは、1つまたは複数の物体104のプロパティの分析に使用する、多様なスペクトル領域における画像を取得するために使用され得る。実施例として、撮像デバイス104は、400〜1000ナノメータ(nm)の波長領域において画像を収集するように構成されてもよく、その波長領域は、可視光及び近赤外光に対応する。
したがって、撮像デバイス108は、画像のセット105としてセンサ上に入射する情報を収集してもよく、それによって、画像のセット内の各画像は、電磁スペクトルの波長範囲を表す。画像のセット105内の各画像は、スペクトル帯を表し得る。図1に示されるように、画像のセット105は、コンピューティングデバイス110による処理及び分析のための3次元データキューブを形成するように結合され得る。画像のセット内の各画像のx次元及びy次元は、コンベヤベルトデバイス102上の物体104の2つの空間次元を表してもよく、キューブ内の波長次元は、画像内の波長範囲を含むスペクトル次元を表してもよい。
物体104は、移動トレイまたはコンベヤベルトデバイス102上に置かれてもよく、移動トレイまたはコンベヤベルトデバイス102は、撮像デバイス108を通過して各物体104を移動させるためのリニアスライドを含んでもよい。安定した一直線の連続的な動きでセンサの下を一定速度で物体を移動させることによって、撮像デバイス108が画像を取得し得るように、撮像デバイス108は、ラインスキャナカメラであってもよい。実施例として、物体104が一片の冷凍魚である場合、撮像デバイス108の下でコンベヤベルト上の冷凍魚を移動させることによって、撮像デバイスが冷凍魚全体をスキャンすることが可能となり得る。
代替的には、撮像デバイス108は、プッシュブルームスキャナまたはスナップショット撮像素子であってもよい。1つの実施例において、移動トレイまたはコンベヤベルトデバイス102は、ステッパモータなどのモータを含んでもよい。
追加的には、ハイパースペクトル画像処理用システム100は、少なくとも1つの撮像デバイス108によってキャプチャされたハイパースペクトル画像105に対してハイパースペクトル画像処理を実行するためのコンピューティングデバイス110を含んでもよい。追加的には、コンピューティングデバイス110は、撮像デバイス108の動作を、移動トレイまたはコンベヤベルトデバイス102の動作と同期させるために使用されてもよい。
照明デバイス106は、1つまたは複数の物体104に電磁エネルギーを向け得る集中光源であってもよい。集中光源は、特定の波長の光を物体に向けるように構成されてもよく、その後で、少なくとも1つの撮像デバイス108が、少なくとも1つの照明デバイス106からの反射光を検出し得る。少なくとも1つの照明デバイスは、ハロゲンライトまたは別の光源などの光源であってもよい。さらには、少なくとも1つの光源106は、物体の均一照明を提供するように、物体104に向かって光を向けてもよい。1つの実施例において、撮像されている物体104に、45°の角度で光を向ける2つの光源106があってもよい。2つの光源106は、互いに向かい合ってもよい。光源106の他の配列も可能である。
コンピューティングデバイス110は、撮像デバイス108によってキャプチャされる各ハイパースペクトル画像105を処理及び分析する、画像処理アプリケーション112を含み得る。コンピューティングデバイス110は、ハイパースペクトル画像処理用システム100に関連するデータ及び画像を記憶し得るデータベース114を含んでもよく、及び/またはデータベース114と通信してもよい。1つの実施例において、データベース114は、物体104の複数の画像を含み得るデータの訓練セットなどの情報を記憶し得る。複数の画像は、コンピューティングデバイス110によって合成して生成されてもよく、及び/または別のソースから取得されてもよい。さらに、複数の画像は、撮像デバイス108によってキャプチャされてもよく、データの訓練セットの一部として含まれてもよい。追加的に、データベースは、複数の画像のそれぞれにおける物体の特性を記憶してもよい。これらの特性は、物体についてのラベルまたは名前、及び物体の測定値などの他の情報を含んでもよい。測定値は、コンピューティングデバイス110のユーザによって手動で割り当てられてもよく、及び/またはハイパースペクトル画像105の分析中にコンピューティングデバイス110によって自動的に判断されてもよい。実施例として、測定値は、物体104のグランドトゥルース測定値であってもよい。追加的に、画像処理アプリケーション112は、通信ネットワーク116を介して他のコンピューティングデバイスと通信してもよい。
少なくとも1つのコンピューティングデバイス110は、通信ネットワーク116を通して他のコンピューティングデバイスからデータを受信し、及び/または他のコンピューティングデバイスにデータを送信するように構成される。実施例として、撮像デバイス108は、分析のために各ハイパースペクトル画像105をコンピューティングデバイス110に送信してもよい。少なくとも1つのコンピューティングデバイス110は、単一のコンピューティングデバイスとして示されているが、少なくとも1つのコンピューティングデバイスは、例えば、クラウドコンピューティング構成における、複数のコンピューティングデバイスを含んでもよいと考えられる。追加的に、少なくとも1つのコンピューティングデバイス110は、通信ネットワーク116を通してデータを受信し、及び/またはデータを送信するように構成される。
通信ネットワーク116は、インターネット、イントラネット、または別の有線もしくは無線通信ネットワークであってもよい。例えば、通信ネットワーク106は、GSM(登録商標)(Global System for Mobile Communications)ネットワーク、符号分割多重アクセス(CDMA)ネットワーク、第3世代パートナーシッププロジェクト(GPP)、インターネットプロトコル(IP)ネットワーク、ワイヤレスアプリケーションプロトコル(WAP)ネットワーク、WiFiネットワーク、またはIEEE802.11標準ネットワーク、及びこれらの様々な通信を含んでもよい。他の従来の、及び/または後に開発される、有線及び無線ネットワークもまた、使用され得る。
少なくとも1つのコンピューティングデバイス110は、データを処理するための少なくとも1つのプロセッサ111、及びデータを記憶するためのメモリ113を含む。プロセッサ111は、通信を処理し、通信を構築し、メモリ113からデータを取り出し、メモリ113にデータを記憶する。プロセッサ111及びメモリ113は、ハードウェアである。メモリ113は、揮発性及び/または不揮発性メモリ、例えば、キャッシュ、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、フラッシュメモリ、もしくはデータを記憶するための他のメモリなどのコンピュータ可読記憶媒体、及び/または画像処理アプリケーション112の一部もしくはコンポーネントなどのコンピュータ可読実行可能命令を含んでもよい。さらに、少なくとも1つのコンピューティングデバイス110は、通信、メッセージ、及び/または信号を送信及び受信するための少なくとも1つの通信インタフェースをさらに含む。
少なくとも1つのコンピューティングデバイス110は、グラフィカルユーザインタフェース(すなわち、GUI)をディスプレイ上に表示して、ディスプレイ上にグラフィカルユーザインタフェースを生成し得る。グラフィカルユーザインタフェースは、画像処理アプリケーション112によって提供されてもよい。グラフィカルユーザインタフェースは、少なくとも1つのコンピューティングデバイス110のユーザが、少なくとも1つのコンピューティングデバイス110及び画像処理アプリケーション112と対話することを可能にする。
GUIは、少なくとも1つのコンピューティングデバイス110によって実行可能なアプリケーション及び/またはサービスのコンポーネントであってもよい。例えば、画像処理アプリケーション112は、展開可能な実行可能コードの単一ユニット、または展開可能な実行可能コードの複数ユニットであってもよい。1つの態様によれば、画像処理アプリケーション112は、ウェブアプリケーション、ネイティブアプリケーション、及び/または、特に、App Store及びGOOGLE PLAY(登録商標)を含むソフトウェア開発キット(SDK)で開発されたアプリケーションをユーザが閲覧し、ダウンロードすることを可能にする、デジタル配信アプリケーションプラットフォームからダウンロードされたモバイルアプリケーション(例えば、app)であってもよい。画像処理アプリケーション112または少なくともその一部は、少なくとも1つのコンピューティングデバイス110に常駐し、実行され得る。コンピューティングデバイス110は、オペレーティングシステムの中でも、WINDOWS(登録商標)オペレーティングシステム、Linux(登録商標)ベースのオペレーティングシステム、OS X(登録商標)オペレーティングシステム、iOSオペレーティングシステム、またはANDROID(登録商標)オペレーティングシステムを有し得る。
図2は、例としての実施形態による、コンピューティングデバイス110のブロック図を示す。コンピューティングデバイス110は、ラップトップ、デスクトップ、タブレットコンピュータ、モバイルコンピューティングデバイス(例えば、スマートフォン)、ウェアラブルデバイス、またはプロセッサ及びメモリを有する専用電子デバイスなどの、プロセッサ202を有するコンピュータであってもよい。1つまたは複数のプロセッサ202は、機械/コンピュータ可読実行可能命令及びデータを処理し、メモリは、画像処理アプリケーション112を含む1つまたは複数のアプリケーションを含む、機械/コンピュータ可読実行可能命令及びデータを記憶する。プロセッサ202及びメモリは、ハードウェアである。メモリは、ランダムアクセスメモリ(RAM)及び非一時的メモリ、例えば、1つまたは複数のフラッシュストレージまたはハードドライブなどの非一時的コンピュータ可読記憶媒体を含む。非一時的メモリは、例えば、磁気及び/または光学ディスク、フラッシュドライブなどを含む任意の有形コンピュータ可読媒体を含んでもよい。追加的に、メモリは、コンポーネントの中でも、1つまたは複数の専用プロセッサを有する専用ファイルサーバ、ランダムアクセスメモリ(RAM)、RAID(Redundant Array of Inexpensive/Independent Disks)ハードドライブ構成、及びイーサネット(登録商標)インタフェース、または他の通信インタフェースも含み得る。
コンピューティングデバイス110は、画像処理アプリケーション112または他のユーザインタフェースもしくはアプリケーションが記憶されるメモリ内に、コンピュータ可読媒体(CRM)204を含む。コンピュータ可読媒体は、揮発性媒体、不揮発性媒体、リムーバブル媒体、非リムーバブル媒体、及び/またはプロセッサ202によってアクセスされ得る別の利用可能媒体を含み得る。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体及び通信媒体を含む。コンピュータ記憶媒体は、コンピュータ/機械可読/実行可能命令、データ構造、プログラムモジュール、または他のデータなどの情報の記憶のための方法または技術において実施される、非一時的記憶メモリ、揮発性媒体、不揮発性媒体、リムーバブル媒体、及び/または非リムーバブル媒体を含む。通信媒体は、コンピュータ/機械可読/実行可能命令、データ構造、プログラムモジュール、または他のデータを具現化してもよく、情報配信媒体またはシステムを含んでもよく、その両方がハードウェアである。
図2に示されるように、画像処理アプリケーション112は、撮像デバイス108から画像を受信し、画像に対して事前処理を実行し得る、事前処理モジュール206を含んでもよい。まず、事前処理モジュール206が、1つまたは複数のサブモジュールを使用して、画像に対する事前処理を実行し得る。サブモジュールは、画像に対する正規化、物体認識モジュールを用いた物体認識、特徴抽出モジュールを用いた特徴抽出、及びデータ低減モジュールを用いたデータ低減を実行し得る、正規化モジュールを含み得る。
画像の正規化は、異なるレベルの照明を有し得る画像を比較するために実行され得る。キャプチャされたスペクトルデータの正規化は、白レベル正規化と組み合わせた黒レベル減算を含み得る。線形プッシュブルームセンサアレイを使用するとき、正規化は、空間的に異なるスタティックノイズを考慮するようにサンプリング要素単位で実行されてもよい。他のセンサタイプは、それらの設計に固有の正規化を使用し得る。正規化は、また、別個の感知装置からの発光体の推定に基づいて、発光体スペクトルを除去することを含み得る。特徴抽出モジュールは、最大安定極値領域(maximally stable extremal region)、Haralickテクスチャ特徴、FAST(Features from Accelerated Segment Test)コーナー特徴、ならびに次元数減少スペクトル、選択したスペクトル範囲、及び内挿スペクトル値を含むスペクトル特徴を含む、空間特徴を含むがこれらに限定されない、多くの特徴を抽出し得る。特徴抽出モジュールは、特定の品質パラメータ分類を判断するために、空間特徴とスペクトル特徴を結合し得る。物体認識モジュールは、ニューラルネットワークを含むがこれに限定されない機械学習を利用して、画像内の物体を検出し、分類し得る。
データ低減モジュールは、画像内のデータの次元数を減少させ得る。これは、主成分(PC)分析または他の種類の分析を実行することによって行われ得る。言い換えると、事前処理モジュール206は、画像内の冗長性を低下させてもよく、画像処理を実行するために不必要な、撮像デバイス108によってキャプチャされた画像のセット内の画像のうちのいくつかを除去してもよい。ある波長範囲は、それ以外のものよりも、画像処理及び分析に有用であり得る。実施例として、それぞれが物体の異なる波長範囲を表す224個の異なる画像を、画像のセットが含む場合、事前処理モジュール206は、224個の異なる画像のうちの10個を、画像のセット内の物体を最もよく表す画像として選択し得る。言い換えると、事前処理モジュール206は、画像のセット内の物体及び/または物体のスペクトル特徴を最もよく表す画像のセットのサブセットを選択し得る。
追加的に、画像処理アプリケーション112は、データ内のコンテンツを表し得る数学モデルを導出するために複数の訓練データを生成し得る、合成データセット生成モジュール208を含み得る。ニューラルネットワークモデルは、データに過剰適合する傾向がある。言い換えると、ニューラルネットワークモデルは、訓練データに影響を受けやすい場合があり、モデルの挙動は、新たな/初見のデータに汎化できない。過剰適合を回避する1つの方法が、大量のデータを収集することである。典型的なニューラルネットワークは、最大100万個のパラメータを有する場合があり、これらのパラメータを調整することは、数百万の無相関データの訓練インスタンスを必要とし得る。それは、常に可能であるとは限らず、場合によってはソフトウェア開発にはコストが高すぎる可能性がある。これらの問題は、数千の形状及び形態の物体及び異物に関連する異なる物質を分類することによって、合成データセット生成モジュール208の使用を通して対処され得る。大量のデータを収集する以外の過剰適合を回避するそのような1つの方法は、データ拡張を利用することであり得る。拡張は、新たなデータセットが実際に使用されると見え得る実世界データを表すように、新たな訓練データをより小さなデータセットから生成するプロセスをいう。
出力モジュール210が、撮像デバイス108によってキャプチャされた特定の画像を特定のグランドトゥルース測定値と相関させ得るように、合成データセット生成モジュール208に、各物体についてのグランドトゥルース測定値が提供され得る。グランドトゥルース測定値は、pHまたは物体の柔らかさなどの特性の化学的または物理的テストであり得る。したがって、コンピューティングデバイス110は、画像を改良し、比較し続けるために、合成データセット生成モジュール208からの画像、及び撮像デバイス108によって取得された画像に対して機械学習を使用することができる。
データミラーリング及びクロッピングは、コンピュータビジョン及び画像処理におけるデータ拡張についての特定技術として使用され得る。画像データは、多様な異なる向きで表され得る。言い換えると、同一画像のコピーが、異なる視点または視角から生成され得る。
実施例として、合成データセット生成モジュール208に関連する訓練データは、物体の中でもアボカド、バナナ、オレンジ、桃、玉ねぎ、梨、キウイフルーツ、マンゴー、ベリー、トマト、リンゴ、砂糖、豚肉、羊肉、牛肉、または魚などの農業に関する物体の画像を取得すること、及び/またはシミュレートすることによって構築され得る。訓練データは、場所の中でも、データベース114及び/またはコンピューティングデバイス110のメモリ内に記憶され得る。
異なる色のバナナは、異なる硬度レベルを示し得る。バナナは、色分けされた景観として表されてもよく、例えば、緑のフィールドは、硬いバナナを示し得る。異なる色のアボカドは、異なる硬度レベルを指し得る。
さらに、画像処理アプリケーション112は、オレンジに関連する傷または欠陥を判断することが可能であってもよい。画像処理アプリケーション112は、桃の寒冷障害、または玉ねぎのsour skin病を判断することが可能であり得る。
追加的に、画像処理アプリケーション112は、キウイフルーツまたは梨に関連する傷または欠陥を判断することが可能であり得る。さらに、画像処理アプリケーション112は、柑橘潰瘍病などの他の種類の柑橘類に関連する問題を判断することが可能であり得る。
さらに、画像処理アプリケーション112は、魚の目の分析を提供することによって、魚の鮮度を判断することが可能であり得る。画像処理アプリケーション112は、豚肉、羊肉、牛肉、または別の種類の肉製品の柔らかさを判断することが可能であり得る。
実施例として、合成データセット生成モジュール208は、牛肉の柔らかさについての合成データセットを生成し得る。牛肉の筋肉内脂肪は、牛肉ステーキの柔らかさに強い影響を有し得る。筋肉内脂肪は、異なる高度を有する景観内の川またはデルタと見える場合がある。合成データセットは、異なる柔らかさクラスのステーキを有する、川及びデルタとともにレンダリングされた景観(画像)を含み得る。レンダリングされた画像は、コンピューティングデバイス110または別のコンピューティングデバイスによって作成されたハイパースペクトル画像として見えることがある。合成の牛肉画像を用いて、コンピューティングデバイス110は、牛肉ステーキの画像からスペクトル特徴を抽出し得る。訓練データをさらに改良及び開発するために、合成スペクトル特徴が、合成データセット生成モジュール208の分類器に投入されてもよく、それによって、予測精度がより良くなる。
実施例として、300切れの牛肉を取得すること、及び牛肉の切片に対してグランドトゥルース測定を実行することは、牛肉生産者にはほぼ1か月かかる可能性がある。これは、1人の人にとってフルタイムの仕事である場合がある。牛肉の各切片に$10.00のコストがかかり、かつ生産者に支払うコストが$4,700であり得る場合、これには、$7,700のコストがかかる。これは、1つの種類の牛肉片についてのコストのみであり、システムは、複数の異なる筋肉からの複数の異なる牛肉片に適用可能でなければならない。従って、システムに適したモデルを提供するために、システムは、異なる牛肉生産者からの異なる画像を利用しなければならない。
牛肉の柔らかさについての最良のモデルを作成するためには、理論上、10,000個の牛肉の画像があることが望ましい。したがって、これは、データを収集及び取得するためだけに、$78,000のコストがかかる。一方、合成データセット生成モジュール208は、財政上及び効率性の問題を解決するために、より小さなデータのセットから訓練データを生成し得る。これは、データベース記憶上に保存されてもよく、計算効率の節減をもたらし得る。一度初期訓練用の標本がテストされると、合成データセット生成モジュール208は、コストをゼロの近くまで著しく減少させ得ると推定され得る。
別の実施例として、合成データセット生成モジュール208は、果物などの物体104の異なる品質パラメータと相関され得る、画像セットから画素を取得し得る。ある茶色及び黄色の画素が、バナナの特定の熟度レベルを判断するために使用され得る。合成データセット生成モジュール208は、バナナについての異なる段階の熟度を示す画像をシミュレートし、生成するために、複数の異なる位置における茶色及び黄色の画素を操作し、複製することが可能であり得る。実施例として、合成データセット生成モジュール208は、複数の茶色の画素を有する非常に熟したバナナのハイパースペクトル画像を使用してもよい。さらに、合成データセット生成モジュール208は、黄色及び緑色の画素を有する、熟していないバナナの別のハイパースペクトル画像を有してもよい。合成データセット生成モジュール208は、非常に熟したバナナと熟していないバナナのこれらの画像に基づいて、2つの画像のやや中間にある新たな画像を生成し得る。
合成データセット生成モジュール208は、撮像デバイス108によってキャプチャされた画像、または別のソースからの画像を受信してもよく、画像を拡張することによって画像に情報及びデータを追加してもよい。実施例として、合成データセット生成モジュール208は、画像に対する画素に色を追加することによって画像を操作してもよい。アボカドは、ある色の画素を有し得る。画像に対する画素に追加の真緑色を加えることによって、合成データセット生成モジュール208は、アボカドの熟度レベルを変更し得る。撮像デバイスによってキャプチャされた各画像は、複数のチャネルを有してもよく、したがって、各画素が、複数の関連データポイントを有し得る。
別の実施例として、合成データセット生成モジュール208は、スペクトル情報を画像に挿入することによって、画像内の物体をデジタルに追加及び/または修正し得る。合成データセット生成モジュール208は、異なる位置及び/または向きで物体をレンダリングするために、物体を自動的に操作し得る。
さらに、合成データセット生成モジュール208は、物体104上に異物を挿入することによって、異物を画像内に挿入し得る。異物質または異物が、既知の場所において画像内に導入され得る。次いで、物体によって影響を受ける領域/画素からスペクトルをサンプリングすることは、異物質を示す周波数テーブルを提供し得る。合成データセット生成モジュール208は、既知のデータ(「汚染された」)ポイントをシードすることによって、データマトリックスのサイズを増加させ得る。これによって、合成データセット生成モジュール208が、収集された実数と小さな区別を有する多くのデータポイントを生成することが可能となり得る。マトリクスは、そのとき、シミュレートされた隠れた異物体の領域を作成するために使用されてもよく、ニューラルネットワークが、訓練されてもよい。
実施例として、物体が1つまたは複数の異物または異物質を有するように見せるために、プラスチックまたは紙物体の異なる色が、物体上または物体内にレンダリングされてもよい。合成データセット生成モジュール208は、1つまたは複数の異物を操作してもよく、複数の異なる位置及び/または向きで異物を操作してもよい。したがって、合成データセット生成モジュール208は、画像を拡張することによって画像を自動的に生成及び修正し得る。
1つの実施例において、合成データセット生成モジュール208は、検出されるべき1つまたは複数の物体の3次元モデルを生成し得る。実世界の物体が、参照として使用されてもよい。物体のアニメーションは、サイズ、向き、視界、遮蔽、変形、及び背景(ノイズ)の変化とともにレンダリングされ得る。合成データセット生成モジュール208は、より高い精密性を取得し、使用されるコンピュータリソース量を減少させるために、事前訓練されたネットワークを利用し得る。サンプリングされた画素の分布の形状は、関連周波数テーブルの一般的な形状を乱さない、より多くの画素データを「埋めること」による新たな画素を生成することによって、「大まかに」判断され得る。これによって、合成データセット生成モジュール208が、実データに基づいて学習/ネットワークモデルを正確にパラメータ化し、拡張されたデータを含むことが可能となり得る。ネットワークの堅牢性が、ネットワークのパラメータを調整することと併せて、生成されたマトリックスをシードすることにおいて使用され得る正規化された確率変数の範囲を修正することによって、ユーザにより手動で調整されてもよい。
さらに、画像処理アプリケーション112は、出力モジュール210を含み得る。出力モジュール210は、物体の機械学習分類を実行し、品質パラメータを予測し、物体に割り当て得る。出力モジュール210は、事前処理されている事前処理モジュール206からのハイパースペクトル画像105を受信してもよく、合成データセット生成モジュール208から合成データセットを受信してもよい。出力モジュール210は、ハイパースペクトル画像105内の対象領域を、合成データセットを含み得る、物体104の複数の画像を含み得るデータの訓練セットと比較し得る。出力モジュール210は、多くの特徴を分類するために敵対的生成ニューラルネットワーク及び/またはディープラーニングニューラルネットワークを利用し得る機械学習分類モジュールを含み得る、1つまたは複数のサブモジュールを含んでもよい。機械学習分類モジュールは、多くの特徴を分類するために、部分的最小二乗回帰も利用してもよい。さらには、多くの特徴を分類するために、他の分類モデルが使用されてもよい。
出力モジュール210は、物体ラベルを追加してもよく、ハイパースペクトル画像内の画素が品質情報を示すスペクトル情報を有すると判断してもよい。出力モジュール210は、画像内の選択された対象領域に対して物体認識を実行し得る。対象領域は、物体の品質を判断するための値の情報を含み得る、画像の特定領域であってもよい。実施例として、対象領域は、撮像デバイス108から物体のハイパースペクトル画像105を取得することによって、選択されてもよい。物体は、アボカド、または別の物体であってもよい。対象領域は、グレイスケーリングまたはエッジ検出を用いて自動的に判断され得る。実施例として、グレイスケーリングでは、画像全体が、0と1との間のグレイカラー値を有する画素に変換され得る。出力モジュール210は、コンピューティングデバイス110が物体とコンベヤベルトとを区別することを可能にするために、閾値を設定し得る。
対象領域が識別されると、出力モジュール210は、全てのスペクトル情報を対象領域内の画素から抽出し得る。スペクトル情報は、対象領域内の各画素、及び対象領域内の各画素を判断するためのスペクトル情報から抽出されてもよく、画像に関連付けられたテーブルとして記憶されてもよい。画素の全てが分類されると、出力モジュール210は、画素が同一分類の近隣画素を有するかどうかを判断するために、各画素を近隣と比較し得る。画素が、1つ以上の近隣を有する場合、画素は、異物として分類され得る。代替的には、画素が、少なくとも3つの近隣、または少なくともN個の近隣を有する場合に、画素が、異物として分類されてもよい。さらに、出力モジュール210は、近隣である画素の数をカウントすることによって、画素についての空間値を判断してもよい。これは、次元数を判断するために使用されてもよい。言い換えると、画素が、コンベヤベルト上で1インチずつ表すことが分かっている場合、分類され、近隣である画素の数を判断することによって、出力モジュール210は、物体の次元数を測定し得る。
画素が、出力モジュール210を訓練するため、及び/または物体の品質属性を認識するために使用され得る。機械学習分類モジュールに提供される全てのスペクトルデータは、特徴の実用最小限のセットに合致するように減少されてもよく、それによって、正確な仕様を共有しない可能性がある撮像システムを許容する。実施例として、特徴の実用最小限のセットが、異なるハイパースペクトル撮像システムによって判断され得る特徴であってもよい。1つのハイパースペクトルシステムは、400ナノメートルと600ナノメートルとの間のスペクトル値を抽出し得る。第2のハイパースペクトルシステムは、400ナノメートルと1000ナノメートルとの間のスペクトル値を抽出し得る。第1のハイパースペクトルシステムと第2のハイパースペクトルシステムとの間の特徴の実用最小限のセットは、400ナノメートルから600ナノメートルまでであってもよい。それによって、コンピューティングデバイス110が、スペクトル値とアボカドなどの物体の熟度品質との間のパターンを検出することが可能となり得る。出力モジュール210は、物体からのスペクトルデータの抽出をさらに実行し得る。
さらに、ある品質を有する特定の物体を表すとして画像を分類する前に、出力モジュール210は、画像に関連付けられたデータを圧縮することによって画像内のデータを減少させ得る。これは、対象領域内のスペクトル値の平均値を生成することを含み得る。平均は、全対象領域の平均または画素毎のスペクトル平均であってもよい。
機械学習分類は、1つの入力層、2つの隠れ層、及び1つの出力層を含む4つの層を有し得る。1つの態様において、機械学習分類は、3つのオートエンコーダ層を有し得るニューラルネットワークを利用してもよく、それによって、第1の層は、入力層として機能してもよく、残りの層は、隠れ層であってもよい。オートエンコーダ層は、積層オートエンコーダ(SAE)を共に形成してもよい。オートエンコーダ層は、ロジスティック回帰層及びクラス確率を返し得る出力層をさらに含み得る。
システム100のユーザは、ラベル(例えば、アボカド)及び品質パラメータ情報(例えば、硬度、乾物含量、糖分量)を画像の1つまたは複数のセットに割り当てることによって、機械学習分類モジュールを最初に訓練し得る。品質パラメータ情報は、画像の1つまたは複数のセットにおいてキャプチャされた物体のグランドトゥルース測定値に基づき得る。機械学習分類モジュールは、この初期訓練データを使用して、機械学習分類モジュールが、訓練データ内の各画像と入力データを比較することによって、特定のラベル及び品質パラメータ情報を入力画像に割り当てることを可能にする数学モデルを開発し得る。機械学習分類モジュールは、次いで、ラベル及び品質パラメータ情報のより精密な割り当てを実行し続けるために、入力画像を訓練データに追加し、この入力画像から学習し得る。
1つの実施例において、機械学習分類モジュールは、TENSORFLOW(商標)または別の機械学習フレームワークなどの機械学習フレームワークに関連付けられたライブラリを利用し得る。別の実施例において、機械学習分類モジュールは、1つまたは複数のサポートベクトルマシン(SVM)を利用して、画像内の物体104を分類し得る。
図3は、例としての実施形態による、ハイパースペクトル画像105に対して機械学習分類を実行することの例としてのプロセス300を示す。図3に示されるように、出力モジュール210は、画像内にn個の画素が存在すると判断し得る。画像内のn個の画素の各画素について、出力モジュール210は、v個のスペクトル値が存在すると判断し得る。画素についてのv個のスペクトル値のそれぞれが、出力モジュール210によって提供される分類器に投入され得る。分類器は、v個のスペクトル値がk個のクラスに関連付けられると判断し得る。k個のクラスの各クラスについて、出力モジュール210は、画素のスペクトル値のそれぞれとクラスとのドット積を判断してもよい。最高値を有するクラスは、画像105についての予測クラスであると判断される。
出力モジュール210は、各物体についてのラベルを識別及び判断し、画像セットの分析に基づいて品質パラメータを物体に割り当て得る。出力モジュール210は、ハイパースペクトル画像105内の対象領域を訓練セット内の複数の画像と比較することによって、物体104の特性を判断し得る。画像の分析は、画像セットと機械学習分類モジュールによって提供されるデータとの比較に基づき得る。実施例として、出力モジュール210は、物体についてのおおよその測定値を判断し得る。物体が、アボカドなどの果物である場合、測定値は、硬度、乾物含量、及び糖度を含み得る。分析されるべき物体104に基づいて、他の測定値が可能である。
硬度は、Anderson Firmometer測定を用いて測定されてもよい。収穫後すぐのアボカドの典型的な硬度値は、10〜15であってもよく、その程度は0〜110の範囲で変動する。硬度は、熟度レベルを示し得る。
乾物含量は、アボカドなどの物体の熟度についての指標であり得る。乾物は、アボカドのパーセンテージとして測定されてもよく、典型的な値は、21パーセントであり得る。
アボカドなどの物体の糖分量は、高速液体クロマトグラフィテスト(HPLC)を用いて推定されてもよい。高速液体クロマトグラフィテスト(HPLC)は、分析的化学ツールである。糖分量は、果物の熟度を示し得る。果物内の糖分の濃度が高いほど、果物が熟していることを示し得る。糖度は、100グラム当たりの糖分量として測定され得る。アボカドにおける糖度の典型的な値は、アボカド100グラム当たり糖分0.9グラムであり得る。
図4は、異なるスペクトルプロファイルを有する3つの異なる画素を表す、3つの異なる直線を有するグラフ400を示している。各直線は、ハイパースペクトル画像の異なる画素に関連付けられている。実施例として、各直線は、バナナの画像に関連付けられた画素を示し得る。直線は、画素の種類の中でも、茶色の画素、緑の画素、及び黄色の画素を表し得る。図4に示されるように、グラフは、反射率レベル及び関連する波長を示す。
図5は、例としての実施形態による、物体104に対してハイパースペクトル画像処理を実行するためのプロセス500のフローチャートを示す。ステップ502において、少なくとも1つのコンピューティングデバイス110は、撮像デバイス108から物体104のハイパースペクトル画像105を取得する。物体104のハイパースペクトル画像105は、物体の画像の3次元セットであってもよく、画像のセット内の各画像が、電磁スペクトルの波長範囲において物体を表す。次に、ステップ504において、少なくとも1つのコンピューティングデバイス110の画像処理アプリケーション112は、物体104のハイパースペクトル画像を正規化する。さらに、少なくとも1つのコンピューティングデバイス110の画像処理アプリケーション112は、物体104のハイパースペクトル画像105を圧縮し得る。
ステップ506において、少なくとも1つのコンピューティングデバイス110の画像処理アプリケーション112は、ハイパースペクトル画像105内で対象領域を選択する。実施例として、対象領域は、画像の3次元のうちの少なくとも2つにおいて選択されてもよい。1つの実施例では、ハイパースペクトル画像105内の対象領域は、少なくとも1つの波長範囲における物体104の表現を含み得る。ステップ508において、少なくとも1つのコンピューティングデバイス110の画像処理アプリケーション112は、物体104のハイパースペクトル画像内の対象領域からスペクトル特徴を抽出し得る。
ステップ510において、少なくとも1つのコンピューティングデバイス110の画像処理アプリケーション112は、対象領域のスペクトル特徴を分析し、ハイパースペクトル画像105を合成データセット内の画像及びデータと比較すること、ならびに機械学習を使用することによって、スペクトル特徴を分類する。これは、物体の特定の特性を判断するために、対象領域からのスペクトル特徴を訓練セット内の複数の画像と比較することを含み得る。これによって、画像処理アプリケーション112が、画像105内の物体(例えば、アボカド)を分類し、及び/またはラベル付けすることが可能となり得る。さらに、これは、物体についての少なくとも1つの品質パラメータのための値を判断することを含み得る。その結果、画像処理アプリケーション112は、特に、乾物、硬度、及び熟度などの、物体104の関連品質パラメータに値を割り当て得る。
実施例として、画像処理アプリケーション112は、スペクトル特徴の分類に基づいて、物体104の乾物含量、物体104の硬度、及び物体104の熟度を含み得る少なくとも1つの品質パラメータを判断し得る。品質パラメータのそれぞれは、少なくとも1つのレベルの分類を有し得る。乾物含量は、乾物含量が21%より低いときに第1のレベルの分類を含み、乾物含量が21%であるときに第2のレベルの分類を含み、乾物含量が21%より高いときに第3のレベルの分類を含み得る。画像処理アプリケーション112は、対象領域内の画素毎の分類の各レベルに対して、0と1との間の値を割り当て得る。
代替的に、これは、混入物質の存在を判断するために、対象領域からのスペクトル特徴を訓練セット内の複数の画像と比較することを含み得る。これは、プラスチック、紙、金属フック、タバコの吸殻、厚紙、布地、または別の種類の混入物質などの混入物質であってもよい。したがって、これは、見つけられたスペクトル特徴を物体上の異物として分類することを含み得る。
ステップ512において、少なくとも1つのコンピューティングデバイス110の画像処理アプリケーション112は、分類されたスペクトル特徴、ならびにハイパースペクトル画像105と合成データセット内の画像及びデータとの比較に基づいて、物体104及び/または異物103を識別し得る。これは、ハイパースペクトル画像105のハイパースペクトル指紋を合成データセット内の画像及びデータと比較することに類似し得る。これは、物体を食品として分類すること及び識別することを含み得る。食品または農産物は、アボカド、バナナ、オレンジ、桃、玉ねぎ、梨、キウイフルーツ、マンゴー、ベリー、トマト、リンゴ、砂糖、豚肉、羊肉、牛肉、または魚のうちの1つであってもよい。さらに、これは、冷凍魚上のプラスチックを分類すること及び識別すること、アボカドなどの果物上のプラスチックを分類すること、ならびに砂糖の中の繊維またはプラスチックを分類することを含んでもよい。
図6は、コンピューティングデバイス110などの多様なシステムを実施し得る例としてのコンピューティングシステム600、ならびにプロセス300及びプロセス500などの本明細書で論じられた方法を示す。汎用コンピュータシステム600は、コンピュータプロセスを実行するためのコンピュータプログラム製品を実行することが可能である。データ及びプログラムファイルは、コンピュータシステム600に入力されてもよく、コンピュータシステム600は、ファイルを読み出し、その中の画像処理アプリケーション112などのプログラムを実行する。汎用コンピュータシステム600の要素のうちのいくつかが、図6に示されており、プロセッサ602は、入力/出力(I/O)セクション604、中央処理装置(CPU)606、及びメモリセクション608を有して、示される。コンピュータシステム600のプロセッサ602が、単一の中央処理装置606、または一般的に並列処理環境と呼ばれる複数の処理ユニットを含むように、1つまたは複数のプロセッサ602があってもよい。コンピュータシステム600は、従来型コンピュータ、サーバ、分散型コンピュータ、またはクラウドコンピューティングアーキテクチャにより利用可能となる1つまたは複数の外部コンピュータなどの、任意の他の種類のコンピュータであってもよい。ここで説明される技術は、メモリ608内にロードされたソフトウェアデバイスにおいて任意選択的に実施され、構成済みDVD/CD−ROM610もしくはストレージユニット612上に記憶され、及び/または有線もしくは無線ネットワークリンク614を介して通信される。それによって、図6のコンピュータシステム600を、説明された動作を実施するための専用機械に変換する。
メモリセクション608は、揮発性媒体、不揮発性媒体、リムーバブル媒体、非リムーバブル媒体、及び/または汎用または専用コンピューティングデバイスによってアクセスされ得る他の媒体であってもよい。例えば、メモリセクション608は、非一時的コンピュータ記憶媒体及び通信媒体を含み得る。非一時的コンピュータ記憶媒体は、コンピュータ/機械可読/実行可能命令、データ及びデータ構造、エンジン、プログラムモジュール、及び/または他のデータなどの、情報の記憶(及び検索)のための方法または技術において実装される揮発性、不揮発性、リムーバブル、及び/または非リムーバブル媒体をさらに含んでもよい。通信媒体は、例えば、コンピュータ/機械可読/実行可能なデータ構造、プログラムモジュール、アルゴリズム、及び/または他のデータを具現化してもよい。通信媒体は、情報配信技術も含んでもよい。通信媒体は、有線及び/または無線接続及び技術を含んでもよく、有線及び/または無線通信を送信及び/または受信するために使用されてもよい。
I/Oセクション604は、1つまたは複数のユーザインタフェースデバイス(例えば、キーボード616及びディスプレイユニット618)、ディスクストレージユニット612、ならびにディスクドライブユニット620に接続される。概して、ディスクドライブユニット620は、DVD/CD−ROM媒体610を読み出し可能なDVD/CD−ROMドライブユニットである。DVD/CD−ROM媒体610は、典型的には、プログラム及びデータ622を含む。ここで説明される技術によるシステム及び方法を実現するためのメカニズムを含むコンピュータプログラム製品は、メモリセクション604内、ディスクストレージユニット612上、コンピュータシステム600のDVD/CD−ROM媒体610上、またはこのようなコンピュータプログラム製品を有するクラウドコンピューティングアーキテクチャを介して利用可能にされる外部記憶デバイス上に常駐してもよく、1つまたは複数のデータベース管理製品、ウェブサーバ製品、アプリケーションサーバ製品、及び/または他の追加ソフトウェアコンポーネントを含む。代替的には、ディスクドライブユニット620は、テープドライブユニット、または他の記憶媒体ドライブユニットによって置換され、または補足され得る。ネットワークアダプタ624は、コンピュータシステム600を、ネットワークリンク614を介してネットワークに接続可能である。ネットワークリンク614を通して、コンピュータシステムは、命令及びデータを受信し得る。そのようなシステムの実施例は、パーソナルコンピュータ、IntelまたはPowerPCベースのコンピューティングシステム、AMDベースのコンピューティングシステム、ARMベースのコンピューティングシステム、及びWindows(登録商標)ベース、UNIX(登録商標)ベース、または他のオペレーティングシステムを実行する他のシステムを含む。コンピューティングシステムもまた、携帯情報端末(PDA)、携帯電話、タブレットまたはスレート、マルチメディアコンソール、ゲーミングコンソール、セットトップボックスなどのデバイスを具現化し得ることを理解されたい。
LANネットワーキング環境において使用されるとき、コンピュータシステム600は、ネットワークインタフェースまたはアダプタ624を通してローカルネットワークに(有線接続及び/または無線で)接続される。ネットワークインタフェースまたはアダプタ624は、通信デバイスの一種である。WANネットワーキング環境において使用されるとき、コンピュータシステム600は、典型的には、モデム、ネットワークアダプタ、またはワイドエリアネットワーク上で通信を確立するための任意の他の種類の通信デバイスを含む。ネットワーク化環境において、コンピュータシステム600またはその一部に関連して示されるプログラムモジュールは、リモートメモリストレージデバイスに記憶されてもよい。図示されるネットワーク接続は、使用され得るコンピュータ間の通信リンクを確立するための通信デバイス及び他の手段の実施例であると理解される。
例としての実施態様において、コンピューティングデバイス110、複数の内部及び外部データベース、ソースデータベース、及び/またはサーバ上にキャッシュされたデータによって実行されるソースコードは、コンピューティングデバイス110のメモリ、またはディスクストレージユニット612もしくはDVD/CD−ROM媒体610、及び/またはネットワークアーキテクチャを介して利用可能及びアクセス可能にされた他の外部ストレージデバイスなどの、他のストレージシステムに記憶される。コンピューティングデバイス110によって実行されるソースコードは、そのようなストレージシステム上に記憶され、プロセッサ602によって実行される命令によって具現化されてもよい。
本明細書で説明される動作のうちのいくつかまたは全てが、プロセッサ602によって実行され得る。プロセッサ602は、ハードウェアである。さらに、ローカルコンピューティングシステム、リモートデータソース及び/またはサービス、ならびに他の関連ロジックは、ハイパースペクトル画像処理システム100及び/または他のコンポーネントの動作を制御するように構成されたファームウェア、ハードウェア、及び/またはソフトウェアを表す。このようなサービスは、汎用コンピュータ及び専門ソフトウェア(サービスソフトウェアを実行するサーバなど)、専用コンピューティングシステム及び専門ソフトウェア(サービスソフトウェアを実行するモバイルデバイスまたはネットワーク機器など)、または他のコンピューティング構成を使用して実施されてもよい。さらに、本明細書で開示された1つまたは複数の機能性が、プロセッサ602によって生成されてもよく、ユーザは、オンラインソース及びデータストアから直接来る、使用するデータのいくつかとともに、1つまたは複数のユーザインタフェースデバイス(例えば、キーボード616、ディスプレイユニット618、及びユーザデバイス604)を用いてグラフィカルユーザインタフェース(GUI)と対話し得る。図6に記載されたシステムは、本開示の態様に従って採用し、または構成され得るコンピュータシステムの1つの可能な実施例である。
本開示において、開示された方法は、デバイスによって読み出し可能な命令またはソフトウェアのセットとして実施され得る。さらに、開示された方法におけるステップの特定の順序または階層は、例としての手法のインスタンスであると理解される。設計の嗜好に基づいて、方法におけるステップの特定の順序または階層が、開示された主題の範囲内に留まりつつ、再配列され得ると理解される。付随する方法クレームは、サンプル順序で様々なステップの要素を提示し、必ずしも提示された特定の順序または階層に限定されるように意味されない。
説明された開示は、実行可能な命令をその上に記憶した非一時マシン可読媒体を含み得るコンピュータプログラム製品、またはソフトウェアとして提供されてもよく、命令は、本開示に従ってプロセスを実行するコンピュータシステム(または他の電子デバイス)をプログラムするために使用されてもよい。非一時的マシン可読媒体は、機械(例えば、コンピュータ)によって可読の形式(例えば、ソフトウェア、処理アプリケーション)で、情報を記憶するための任意の機構を含む。非一時的機械可読媒体は、磁気記憶媒体(例えば、フロッピー(登録商標)ディスケット)、光学記憶媒体(例えば、CD−ROM)、光磁気記憶媒体、読み出し専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、消去可能プログラマブルメモリ(例えば、EPROM及びEEPROM)、フラッシュメモリ、または電子実行可能命令を記憶するのに適した他の種類の媒体を含み得るが、これらに限定されない。
上記説明は、本開示の技術を具現化する、例としてのシステム、方法、技術、命令シーケンス、及び/またはコンピュータプログラム製品を含む。しかしながら、説明された開示は、これらの特定の詳細なしに実施され得ると理解される。
本開示及びその付随する利点の多くが、前述の説明によって理解されると信じられる。開示された主題から逸脱することなく、またはその具体的利点の全てを犠牲にすることなく、コンポーネントの形式、構成、及び配列において、多様な変更が行われ得ることは明らかである。説明された形式は、単なる例示であり、そのような変更を包含し含むことが、以下の特許請求の範囲の意図である。
本開示は、多様な実施形態を参照して説明されてきたが、これらの実施形態は、例示的であり、開示の範囲は、それらに限定されないと理解されるであろう。多くの変形、修正、追加、及び改良が可能である。さらに概して、本開示による実施形態は、特定の実施態様の状況において説明されている。機能性は、開示の多様な実施形態において異なるようにブロックを分離し、または結合してもよく、異なる技術を用いて説明されてもよい。これらの、及び他の変形、修正、追加、及び改良が、以下の特許請求の範囲において定義される開示の範囲内に入り得る。