(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-11-15
(54)【発明の名称】水産養殖のための画像処理に基づく重量推定
(51)【国際特許分類】
G06T 7/20 20170101AFI20231108BHJP
A01K 63/02 20060101ALI20231108BHJP
【FI】
G06T7/20
A01K63/02 Z
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023520288
(86)(22)【出願日】2021-10-29
(85)【翻訳文提出日】2023-06-02
(86)【国際出願番号】 US2021057359
(87)【国際公開番号】W WO2022103604
(87)【国際公開日】2022-05-19
(32)【優先日】2020-11-10
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】516326438
【氏名又は名称】エックス デベロップメント エルエルシー
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100126480
【氏名又は名称】佐藤 睦
(72)【発明者】
【氏名】ジェームズ,バーナビー ジョン
【テーマコード(参考)】
2B104
5L096
【Fターム(参考)】
2B104AA02
2B104AA08
2B104CA01
2B104CB41
2B104CG20
5L096AA06
5L096CA02
5L096DA02
5L096FA32
5L096FA33
5L096FA64
5L096FA66
5L096HA05
5L096KA04
(57)【要約】
【課題】 魚の重量を正確に推定することである。
【解決手段】 画像内で識別された魚の軌道に基づく魚の重量の推定のための、コンピュータ記憶媒体上に符号化されたコンピュータプログラムを含む、方法、システム、及び装置。いくつかの実装形態では、方法は、魚囲いに囲まれた魚の画像を取得することと、魚の画像内に示された魚の軌道を識別することと、魚の軌道の各々についての品質スコアを決定することと、品質スコアに基づいて、魚の軌道のサブセットを選択することと、魚の軌道のサブセット内に示された魚の重量に基づいて、魚囲い内の魚の代表的な重量を決定することと、1つ以上のプロセッサに接続されたデバイスにおける表示又は記憶のために、代表的な重量を出力することと、を含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
コンピュータ実装方法であって、
魚囲いに囲まれた魚の画像を取得することと、
1つ以上のプロセッサによって、前記魚の前記画像内に示された魚の軌道を識別することと、
前記1つ以上のプロセッサによって、前記魚の軌道の各々についての品質スコアを、
前記魚の軌道の最小カメラ距離、
前記魚の軌道の最大カメラ距離、
前記魚の軌道の画像長、
前記魚の軌道のステレオ一貫性、
前記魚の軌道の検出信頼度、又は
前記魚の軌道の深度のばらつき、のうちの少なくとも1つに基づいて決定することと、
前記1つ以上のプロセッサによって、前記品質スコアに基づいて、前記魚の軌道のサブセットを選択することと、
前記1つ以上のプロセッサによって、前記魚の軌道の前記サブセット内に示された前記魚の重量に基づいて、前記魚囲い内の前記魚の代表的な重量を決定することと、
前記1つ以上のプロセッサに接続されたデバイスにおける表示又は記憶のために、前記代表的な重量を出力することと、を含む、コンピュータ実装方法。
【請求項2】
1つ以上のプロセッサによって、前記魚の前記画像内に示された魚の軌道を識別することが、
前記画像のうちの第1の画像内に示された魚が前記画像のうちのその後に捕捉された第2の画像内に示されていると決定することを含む、請求項1に記載のコンピュータ実装方法。
【請求項3】
魚囲いに囲まれた魚の画像を取得することが、
水中カメラに命令して、前記魚囲い内の異なる深度において前記画像を捕捉することと、
前記水中カメラから前記画像を受信することと、を含む、請求項1に記載のコンピュータ実装方法。
【請求項4】
前記1つ以上のプロセッサによって、前記魚の軌道の前記サブセット内に示された前記魚の重量に基づいて、前記魚囲い内の前記魚の代表的な重量を決定することが、
前記画像内の前記魚の見かけのサイズに基づいて、前記魚の前記重量を決定することを含む、請求項1に記載のコンピュータ実装方法。
【請求項5】
前記代表的な重量が捕獲基準を満たすと決定することと、
前記魚囲い内の前記魚の捕獲を引き起こすことと、
を含む、請求項1に記載のコンピュータ実装方法。
【請求項6】
前記1つ以上のプロセッサによって、前記魚の軌道の前記サブセット内に示された前記魚の重量に基づいて、前記魚囲い内の前記魚の代表的な重量を決定することが、
前記1つ以上のプロセッサによって、前記品質スコアに基づいて前記魚の軌道から第2のサブセットを選択することであって、前記第2のサブセット内で選択された前記魚の軌道が、前記魚の軌道の前記サブセット内にある、前記第2のサブセットを選択することと、
前記1つ以上のプロセッサによって、前記第2のサブセット内の前記魚の軌道の前記サブセット内に示された魚の重量から、前記囲い内の前記魚の第2の代表的な重量を決定することと、
前記1つ以上のプロセッサによって、前記代表的な重量と前記第2の代表的な重量との間の差が安定基準を満たすと決定することと、を含む、請求項1に記載のコンピュータ実装方法。
【請求項7】
前記1つ以上のプロセッサによって、前記代表的な重量と前記第2の代表的な重量との間の差が安定基準を満たすと決定することが、
前記代表的な重量と前記第2の代表的な重量との間の前記差が閾値重量を下回ると決定することを含む、請求項6に記載のコンピュータ実装方法。
【請求項8】
前記1つ以上のプロセッサによって、前記代表的な重量と前記第2の代表的な重量との間の差が安定基準を満たすと決定することが、
前記サブセット内の前記魚の軌道内に示された魚の前記重量の第1の分布が、前記第2のサブセット内の前記魚の軌道内に示された魚の前記重量の第2の分布に対して安定していると決定することを含む、請求項6に記載のコンピュータ実装方法。
【請求項9】
前記1つ以上のプロセッサによって、前記品質スコアに基づいて、前記魚の軌道から第2のサブセットを選択することが、
前記品質スコアに基づいて、前記魚の軌道のランク付けを決定することと、
前記ランク付けに基づいて、所定の数の前記魚の軌道を前記第2のサブセットとして選択することと、を含む、請求項1に記載のコンピュータ実装方法。
【請求項10】
前記1つ以上のプロセッサによって、前記品質スコアに基づいて、前記魚の軌道のサブセットを選択することが、
前記ランク付けに基づく前記魚の軌道のうちの、第2の所定の数の残りの魚の軌道、及び前記第2のサブセット内の前記魚の軌道の両方を選択することを含む、請求項9に記載のコンピュータ実装方法。
【請求項11】
前記代表的な重量が、平均重量を含む、請求項1に記載のコンピュータ実装方法。
【請求項12】
システムであって、
1つ以上のプロセッサと、前記1つ以上のプロセッサによって実行されたときに、前記1つ以上のプロセッサに、動作を実行させるように動作可能である命令を記憶する1つ以上の記憶デバイスとを備え、前記動作が、
魚囲いに囲まれた魚の画像を取得することと、
前記1つ以上のプロセッサによって、前記魚の前記画像内に示された魚の軌道を識別することと、
前記1つ以上のプロセッサによって、前記魚の軌道の各々についての品質スコアを決定することと、
前記1つ以上のプロセッサによって、前記品質スコアに基づいて、前記魚の軌道のサブセットを選択することと、
前記1つ以上のプロセッサによって、前記魚の軌道の前記サブセット内に示された前記魚の重量に基づいて、前記魚囲い内の前記魚の代表的な重量を決定することと、
前記1つ以上のプロセッサに接続されたデバイスにおける表示又は記憶のために、前記代表的な重量を出力することと、を含む、システム。
【請求項13】
前記1つ以上のプロセッサによって、前記魚の軌道の各々についての品質スコアを決定することが、
前記魚の軌道の最小カメラ距離、
前記魚の軌道の最大カメラ距離、
前記魚の軌道の画像長、
前記魚の軌道のステレオ一貫性、
前記魚の軌道の検出信頼度、又は
前記魚の軌道の深度のばらつき、のうちの少なくとも1つに基づく、請求項12に記載のシステム。
【請求項14】
1つ以上のプロセッサによって、前記魚の前記画像内に示された魚の軌道を識別することが、
前記画像のうちの第1の画像内に示された魚が前記画像のうちのその後に捕捉された第2の画像内に示されていると決定することを含む、請求項12に記載のシステム。
【請求項15】
魚囲いに囲まれた魚の画像を取得することが、
水中カメラに命令して、前記魚囲い内の異なる深度において前記画像を捕捉することと、
前記水中カメラから前記画像を受信することと、を含む、請求項12に記載のシステム。
【請求項16】
前記1つ以上のプロセッサによって、前記魚の軌道の前記サブセット内に示された前記魚の重量に基づいて、前記魚囲い内の前記魚の代表的な重量を決定することが、
前記画像内の前記魚の見かけのサイズに基づいて、前記魚の前記重量を決定することを含む、請求項12に記載のシステム。
【請求項17】
前記動作が、
前記代表的な重量が捕獲基準を満たすと決定することと、
前記魚囲い内の前記魚の捕獲を引き起こすことと、を含む、請求項12に記載のシステム。
【請求項18】
前記1つ以上のプロセッサによって、前記魚の軌道の前記サブセット内に示された前記魚の重量に基づいて、前記魚囲い内の前記魚の代表的な重量を決定することが、
前記1つ以上のプロセッサによって、前記品質スコアに基づいて、前記魚の軌道から第2のサブセットを選択することであって、前記第2のサブセット内で選択された前記魚の軌道が、前記魚の軌道の前記サブセット内にある、前記第2のサブセットを選択することと、
前記1つ以上のプロセッサによって、前記第2のサブセット内の前記魚の軌道の前記サブセット内に示された魚の重量から、前記囲い内の前記魚の第2の代表的な重量を決定することと、
前記1つ以上のプロセッサによって、前記代表的な重量と前記第2の代表的な重量との間の差が安定基準を満たすと決定することと、を含む、請求項12に記載のシステム。
【請求項19】
前記1つ以上のプロセッサによって、前記代表的な重量と前記第2の代表的な重量との間の差が安定基準を満たすと決定することが、
前記代表的な重量と前記第2の代表的な重量との間の前記差が閾値重量を下回ると決定することを含む、請求項18に記載のシステム。
【請求項20】
コンピュータプログラムを用いて符号化されたコンピュータ可読記憶デバイスであって、前記プログラムが、1つ以上のプロセッサによって実行されたときに、前記1つ以上のプロセッサに、動作を実行させる命令を含み、前記動作が、
魚囲いに囲まれた魚の画像を取得することと、
前記1つ以上のプロセッサによって、前記魚の前記画像内に示された魚の軌道を識別することと、
前記1つ以上のプロセッサによって、前記魚の軌道の各々についての品質スコアを決定することと、
前記1つ以上のプロセッサによって、前記品質スコアに基づいて、前記魚の軌道のサブセットを選択することと、
前記1つ以上のプロセッサによって、前記魚の軌道の前記サブセット内に示された前記魚の重量に基づいて、前記魚囲い内の前記魚の代表的な重量を決定することと、
前記1つ以上のプロセッサに接続されたデバイスにおける表示又は記憶のために、前記代表的な重量を出力することと、を含む、コンピュータ可読記憶デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年11月10日に出願された米国特許出願第17/094,275号に対する優先権の利益を主張し、その内容全体は、参照により、本明細書に組み込まれる。
【0002】
本明細書は、高度なコンピュータビジョン技法に関し、例えば、水産養殖システムによって生成される推定値の精度を向上させるために使用されるものを含む。
【背景技術】
【0003】
水産養殖には、魚、甲殻類動物、又は水生植物などの水生生物の養殖が含まれる。水産養殖において、商業的な漁業とは対照的に、淡水魚及び海水魚の個体群が、管理された環境内で養殖される。例えば、魚の養殖には、タンク、養魚池、又は海洋囲いの中で魚を飼育することが含まれ得る。
【0004】
水産養殖従事者は、捕獲前に、魚の重量を正確に推定することが難しい場合があることを見出している。多くの場合、魚のサンプルセットを捕獲及び秤量する手動プロセスを使用して、囲い又はおりの中の多数の魚の重量を推定するが、そのようなプロセスは、時間がかかり、不正確であり、かつかなりの経済的、物流的、及び人的資源を必要とする場合がある。
【発明の概要】
【0005】
概して、本明細書に記載される主題の革新的な態様は、画像内で識別される魚の軌道に基づく魚の重量推定に関する。魚の軌道とは、1つ以上の画像にわたる、カメラに対する魚の経路を指し得る。例えば、単一の魚の軌道とは、10個の画像における、カメラの近くで泳いでいる単一の魚の様子であり得る。別の例では、単一の魚の軌道とは、2つの画像についての、カメラ視界内に泳いでいる単一の魚の様子であってもよい。
【0006】
魚囲い内の魚の画像を水中カメラによって捕捉することができ、その画像から魚の重量を推定することができる。画像から推定された重量を使用して、魚囲い内の魚の代表的な重量、例えば、平均値、中央値などを推定することができる。この代表的な重量を使用して、魚が予想通りに成長しているかどうか、又は魚に何らかの問題があるかどうかを判定することができる。例えば、代表的な重量が、予想よりも小さい場合があり、これは、その魚がより多くの餌を与えられるべきであるか、又はその魚が成長するためにより多くの時間をかけるべきであることを示している場合がある。
【0007】
魚囲い内の魚の代表的な重量は、画像から推定された重量のランダムなサブセットをサンプリングし、そのサブセットの代表的な重量が安定するまで、より多くの重量をサブセットにランダムに追加し続けることによって決定することができる。例えば、魚の推定される重量が3000であると仮定すると、ランダムな順序で魚の重量の平均推定値を取ることは、魚の1700の重量を平均化した後に、安定した平均値を得ることができる。
【0008】
しかしながら、魚囲い内の魚の代表的な重量を決定するためのより効率的な手法は、より高品質の推定重量をサンプリングすることを優先することがあり得る。例えば、各重量の推定値の品質が決定され得、次いで、1200の魚の重量を平均化した後にサブセットの平均重量が安定するまで、重量は、品質の降順で平均化するために選択されてもよい。したがって、代表的な重量を決定するためのより効率的な手法により、必要な計算がより少なくなり、かつ計算のための電力消費が低減される結果となり得る。更に、より高品質な重量推定値のサブセットから決定された代表的な重量は、重量推定値のランダムなサブセットから決定される平均重量よりも正確であり得る。
【0009】
いくつかの実装形態では、代表的な重量が予想よりも少ないことに応答して、自動式魚給餌器を制御して、魚の餌が供給される割合を増加させること、及び/又は魚の餌が供給される時間を増加させることによって、魚により多く給餌することができる。いくつかの実装形態では、代表的な重量が捕獲閾値に到達することに応答して、自動式魚捕獲機を制御して、魚の捕獲を開始することができる。
【0010】
本明細書に記載される主題の1つの革新的な態様は、魚囲いに囲まれた魚の画像を取得することと、1つ以上のプロセッサによって、魚の画像内に示された魚の軌道を識別することと、1つ以上のプロセッサによって、魚の軌道の各々についての品質スコアを、魚の軌道の最小カメラ距離、魚の軌道の最大カメラ距離、魚の軌道の画像長、魚の軌道のステレオ一貫性、魚の軌道の検出信頼度、又は魚の軌道の深度のばらつき、のうちの少なくとも1つに基づいて決定することと、1つ以上のプロセッサによって、品質スコアに基づいて、魚の軌道のサブセットを選択することと、1つ以上のプロセッサによって、魚の軌道のサブセット内に示された魚の重量に基づいて、魚囲い内の魚の代表的な重量を決定することと、1つ以上のプロセッサに接続されたデバイスにおける表示又は記憶のために、代表的な重量を出力することと、を含む方法において具現化される。
【0011】
本態様及び他の態様の他の実装形態は、対応するシステム、装置、及びコンピュータプログラムを含み、それらは、方法の動作を実行するように構成され、コンピュータ記憶デバイス上で符号化される。1つ以上のコンピュータのシステムは、動作中にシステムに動作を実行させる、そのシステム上にインストールされたソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせによって、そのように構成され得る。1つ以上のコンピュータプログラムは、データ処理装置によって実行されるときに、装置に動作を実行させる命令を有することによって、そのように構成され得る。
【0012】
上記及び他の実施形態は、各々、以下の特徴のうちの1つ以上を、単独で又はそれらを組み合わせて、任意選択的に含み得る。例えば、いくつかの態様では、1つ以上のプロセッサによって、魚の画像内に示された魚の軌道を識別することは、画像のうちの第1の画像内に示された魚が画像のうちのその後に捕捉された第2の画像内に示されていると決定することを含む。ある特定の態様では、魚囲いに囲まれた魚の画像を取得することは、水中カメラに命令して、魚囲い内の異なる深度において画像を捕捉することと、水中カメラから画像を受信することと、を含む。いくつかの実装形態では、1つ以上のプロセッサによって、魚の軌道のサブセット内に示された魚の重量に基づいて、魚囲い内の魚の代表的な重量を決定することは、画像内の魚の見かけのサイズに基づいて、魚の重量を決定することを含む。
【0013】
ある特定の態様では、動作は、代表的な重量が捕獲基準を満たすと決定することと、魚囲い内の魚の捕獲を引き起こすことと、を含む。いくつかの態様では、魚の軌道のサブセット内に示された魚の重量に基づいて、魚囲い内の魚の代表的な重量を決定することは、1つ以上のプロセッサによって、品質スコアに基づいて、魚の軌道から第2のサブセットを選択することであって、第2のサブセット内で選択された魚の軌道は、魚の軌道のサブセット内にある、選択することと、1つ以上のプロセッサによって、第2のサブセット内の魚の軌道のサブセット内に示された魚の重量から囲い内の魚の第2の代表的な重量を決定することと、1つ以上のプロセッサによって、代表的な重量と第2の代表的な重量との間の差が安定基準を満たすと決定することと、を含む。
【0014】
いくつかの実装形態では、1つ以上のプロセッサによって、代表的な重量と第2の代表的な重量との間の差が安定基準を満たすと決定することは、代表的な重量と第2の代表的な重量との間の差が閾値重量を下回ると決定すること、を含む。ある特定の態様では、1つ以上のプロセッサによって、代表的な重量と第2の代表的な重量との間の差が安定基準を満たすと決定することは、サブセット内の魚の軌道内に示された魚の重量の第1の分布が、第2のサブセット内の魚の軌道内に示された魚の重量の第2の分布に対して安定していると決定することを含む。
【0015】
いくつかの態様では、1つ以上のプロセッサによって、品質スコアに基づいて魚の軌道から第2のサブセットを選択することは、品質スコアに基づいて、魚の軌道のランク付けを決定することと、ランク付けに基づいて所定の数の魚の軌道を第2のサブセットとして選択することと、を含む。いくつかの実装形態では、1つ以上のプロセッサによって、品質スコアに基づいて、魚の軌道のサブセットを選択することは、ランク付けに基づく魚の軌道のうちの、第2の所定の数の残りの魚の軌道、及び第2のサブセット内の魚の軌道の両方を選択することを含む。ある特定の態様では、代表的な重量は、平均重量を含む。
【0016】
1つ以上の実装形態の詳細は、添付の図面及び以下の説明に記載される。本開示の他の潜在的な特徴及び利点は、説明及び図面から、並びに特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0017】
【
図1】画像内で識別された魚の軌道に基づく魚の重量推定のための例示的なシステムの図である。
【
図3】画像内で識別された魚の軌道に基づく魚の重量推定の例示的なプロセスのためのフロー図である。
【0018】
様々な図面における同様の参照番号及び名称は、同様の要素を示す。ここで示される構成要素、それらの接続及び関係、並びにそれらの機能は、例示的なものに過ぎず、本明細書で記載及び/又は特許請求される実装形態を限定するものではない。
【発明を実施するための形態】
【0019】
図1は、画像内で識別された魚の軌道に基づく魚の重量推定のための例示的なシステム100の図である。囲い110は、家畜120を収容する。家畜120は、囲い110の範囲内で自由に泳ぐ水生生物であり得る。いくつかの実装形態では、囲い110内に貯蔵される水生家畜120には、鰭のある魚又は他の水性生物が含まれ得る。家畜120には、例えば、少数の例を挙げると、稚魚、コイ、サメ、サケ、及びバスが含まれ得る。家畜120が魚である場合、囲い110は、魚囲いと称される場合がある。
【0020】
水生家畜に加えて、囲い110は、水、例えば、海水、淡水、又は雨水を収容するが、この囲いは、水生家畜にとって生息可能な環境を維持することができる任意の流体を収容することができる。いくつかの実装形態では、システム100は、囲い110内に制限される代わりに、桟橋、ドック、又はブイなどの構造物にアンカー止めされる。例えば、家畜120は、囲い110内に制限される代わりに、水域を自由に泳ぎ回ることができ、システム100は、その水域のある特定の領域内の家畜を監視することができる。
【0021】
システム100は、センサデータを生成するセンササブシステム102、センサデータに基づいて家畜120の平均重量を決定する重量サブシステム104、及びセンササブシステム102を移動させる巻き上げ機サブシステム108を含む。センササブシステム102は、囲い110内に完全に水没させることができるカメラを含む。囲い110内のセンササブシステム102の位置は、重量サブシステム104によって生成される命令によって決定される。
【0022】
センササブシステム102は、防水加工され得、破損することなく、典型的な海流などの外力の影響に耐えることができる。システム100は、センササブシステム102によって捕捉されたセンサデータをセンサデータ記憶装置内に更に記憶することができる。いくつかの実装形態では、システム100は、少数の例を挙げると、ビデオ及び画像などの媒体、並びに超音波データ、熱データ、及び圧力データなどのセンサデータを記憶することができる。更に、センサデータは、センササブシステムがセンサデータを捕捉した地理的位置に対応するGPS情報を含むことができる。
【0023】
巻き上げ機サブシステム108は、命令を受信し、1つ以上のモータを作動させて、センササブシステム102をその命令に対応する位置に移動させる。巻き上げ機サブシステム108は、1つ以上のモータ、1つ以上の電源、及び、センササブシステム102を吊り下げるコードが取り付けられている1つ以上の滑車を含むことができる。巻き上げ機サブシステム108は、単一のコードを含むが、本明細書に説明されるように、センササブシステム102が移動及び回転することを可能にする1つ以上のコード及び1つ以上の滑車の任意の構成を使用することができる。
【0024】
巻き上げ機サブシステム108は、重量サブシステム104から命令を受信し、1つ以上のモータを作動させてコードを移動させる。コード、及び取り付けられたセンササブシステム102は、x、y、及びz方向に沿って、命令に対応する位置に移動させることができる。
【0025】
巻き上げ機サブシステム108のモータを使用し、センササブシステム102を回転させて、センササブシステムの水平角度及び垂直角度を調節することができる。電源は、どちらかのサブシステムの個々の構成要素に電力供給することができる。この電源は、様々な電圧レベル及び電流レベルでAC及びDC電力を構成要素の各々に提供することができる。いくつかの実装形態では、巻き上げ機サブシステムは、x、y、及びz方向の運動を可能にするための、複数の巻き上げ機又は複数のモータを含むことができる。
【0026】
センササブシステム102及び巻き上げ機サブシステム108の一方又は両方は、加速度計、ジャイロスコープ、及び磁力計などの、センササブシステム102の動きを追跡し、かつその位置を決定するための慣性測定デバイスを含むことができる。巻き上げ機サブシステム108はまた、繰り出され、かつ巻き取られたコードの量を常時監視して、センササブシステム102の位置を推定するための別の入力も提供することができる。いくつかの実装形態では、巻き上げ機サブシステム108はまた、コードに印可されるトルクを提供して、センササブシステム102の位置及び状態に関する入力を提供することもできる。いくつかの実装形態では、センササブシステム102は、自律型水中車両(autonomous underwater vehicle、AUV)、例えば、係留式AUVに取り付けることができる。
【0027】
重量サブシステム104は、センササブシステム102からのセンサデータに基づいて、家畜120の代表的な重量を決定する。例えば、センササブシステム102は、センササブシステム102によって捕捉された魚132の500個の画像に基づいて、魚当たりの平均重量1.2キログラム(kilogram、KG)を決定する。
【0028】
重量サブシステム104は、魚の画像内に示された魚の軌道130A~Fを識別することによって、代表的な重量を決定する。例えば、重量サブシステム104は、単一の魚が、センササブシステム102によって連続して捕捉された5つの画像内で、カメラの近くで泳いだことを認識することによって、第1の魚の軌道である、魚の軌道C130Cを識別することができる。別の例では、重量サブシステム104は、2つの連続して捕捉された画像内で、単一の魚がセンササブシステム102のカメラの視界の左縁部から、センササブシステム102のカメラの視界の右縁部に素早く泳いだことを認識することによって、第2の魚の軌道である、魚の軌道A130Aを識別することができる。
【0029】
重量サブシステム104は、品質スコアに基づいて識別された魚の軌道をランク付けすることができる。例えば、重量サブシステム104は、魚の軌道Cについては品質スコア90%、魚の軌道Aについては品質スコア80%、及び魚の軌道Dについては品質スコア5%であると決定し、それらの魚の軌道を、品質の降順で上から下にランク付けすることができ、その結果、魚の軌道Cは、魚の軌道Aの上にあり、魚の軌道Aは、魚の軌道Dの上にある。品質スコアを生成する様々な方法が、以下でより完全に考察される。
【0030】
重量サブシステム104は、代表的な重量が安定するまで、魚の軌道のサブセットを拡張する際に示された魚の代表的な重量を決定することができる。例えば、重量サブシステム104は、上位にランク付けされた400個の魚の軌道からの平均重量が1.2KGで安定していると決定することができる。
【0031】
いくつかの実装形態では、重量サブシステム104は、代表的な重量が安定化したときに、センササブシステム102が魚の軌道のサブセットに基づいて、センサデータを捕捉するパターンを学習することができる。例えば、重量サブシステム104は、センササブシステム102が、上位にランク付けされた魚の軌道について、魚囲い110のどこに位置したかを学習し、次いで、センササブシステム102に、それらの位置でより多くの画像を捕捉し、かつ他の位置でより少ない画像を捕捉するように命令することができる。別の例では、重量サブシステム104は、センササブシステム102が、上位にランク付けされた魚の軌道の画像を捕捉した時刻を学習し、次いで、センササブシステム102に、それらの時刻においてより多くの画像を捕捉するように命令することができる。更に別の例では、重量サブシステム104は、より少ない画像が必要とされることを学習し、代表的な重量を決定し、それに応答して、センササブシステム102に、より少ない画像を捕捉するように命令することができる。
【0032】
重量サブシステム104は、デバイスにおける表示又は記憶のために、代表的な重量を出力することができる。例えば、重量サブシステム104は、1.2KGの平均重量を、人が使用するコンピュータに出力することができる。別の例では、重量サブシステム104は、1.2KGの平均重量を捕獲デバイスに出力することができ、その捕獲デバイスは、平均重量に基づいて魚の一部又は全部を捕獲するべきかどうかを判定する。
【0033】
いくつかの実装形態では、重量サブシステム104は、代表的な重量が捕獲閾値に到達したと決定することができ、それに応答して、魚の捕獲を開始することができる自動式魚捕獲機に、代表的な重量を出力することができる。いくつかの実装形態では、重量サブシステム104は、その代表的な重量を自動式魚給餌器に出力することができ、その自動式魚給餌器は、代表的な重量が予想よりも少ないと決定することができ、それに応答して、魚の餌が供給される割合を増加させることができ、かつ/又は魚の餌が供給される時間を増加させることができる。追加的に又は代替的に、重量サブシステム104、又は代表的な重量が出力されるデバイスは、成長速度を経時的に推定して、捕獲時期を予測し、成長不足若しくは重量分布の形状に基づいて病気を検出し、又は魚の健康状態を評価するための状態要因を推定することができる。
【0034】
図2A及び
図2Bは、例示的な重量サブシステム200の図である。重量サブシステム200は、
図1に示された重量サブシステム104であってもよい。重量サブシステム200は、魚の画像内に示された魚の軌道を識別する魚の軌道識別器210、魚の軌道の品質スコアを決定する品質スコアエンジン220、品質スコアに基づいて魚の軌道のサブセットを選択する魚の軌道サブセットセレクタ230、及び魚の軌道のサブセットに基づいて代表的な重量を決定する重量エンジン240を含む。
【0035】
魚の軌道識別器210は、魚の画像に示された魚の軌道を識別する。例えば、魚の軌道識別器210は、500個の魚の画像を受信し、800個の魚の軌道を識別することができる。各魚の軌道は、1つ以上の画像における魚の様子に対応し得る。例えば、第1の画像は、5匹の魚を示すことができ、したがって、第1の画像に対応する5つの魚の軌道が存在し得る。この例では、単一の画像の直後に捕捉された第2の画像は、わずかに異なる場所でその5匹の魚のうちの3匹を示すことができ、1匹は、新たな魚であり、その5匹の魚のうちの残りの2匹を示さない場合がある。したがって、この例では、第1及び第2の画像は、6つの魚の軌道をともに示すことができ、この場合、3つの魚の軌道が、両方の画像内に示されており、2つの魚の軌道が、第1の画像内に示されているが、第2の画像内には示されておらず、1つの魚の軌道は、第2の画像内に示されているが、第1の画像内には示されていない。
【0036】
品質スコアエンジン220は、魚の軌道識別器210によって識別された魚の軌道の指示を受信し、各魚の軌道についての品質スコアを決定することができる。例えば、品質スコアエンジン220は、第1、第2、及び第3の魚の軌道について、それぞれ90%、5%、及び80%の品質スコアを決定することができる。概して、品質スコアエンジン220は、とりわけ、複数の魚、同じ魚の複数の姿勢、及び、画像にわたって高信頼度で特定の魚を追跡するための能力に影響を及ぼし得る、画像内の困難な照明条件が存在し得ることを前提として、魚の軌道識別器210が複数の画像にわたって同じ特定の魚を実際に追跡することができたという信頼度に基づいて、品質スコアを決定することができる。
【0037】
品質スコアエンジン220は、魚の軌道識別器210から分離して示されているが、いくつかの実装形態では、魚の軌道識別器210は、品質スコア決定器について説明された機能を実行し、その代わりに、魚の軌道についての品質スコアを決定して、魚の軌道からのスコア及び推定重量を魚の軌道サブセットセレクタ230に提供することができる。
【0038】
品質スコアエンジン220は、魚の軌道の最小カメラ距離、魚の軌道の最大カメラ距離、魚の軌道の画像長、魚の軌道のステレオ一貫性、魚の軌道の検出信頼度、又は魚の軌道の深度のばらつきのうちの1つ以上に基づいて、品質スコアを決定することができる。例えば、品質スコアエンジン220は、それらの要因のうちの1つ、2つ、全て、又は何らかの他の組み合わせに基づいて、各魚の軌道についての品質スコアを決定することができる。品質スコアエンジン220は、追加的に又は代替的に、様々な要因を考慮することができる。
【0039】
最小カメラ距離とは、魚の軌道の任意の画像に示されるように、魚がセンササブシステム102から最も近い距離を指し得る。例えば、魚が魚の軌道の画像において3~10フィート離れた範囲に現れる場合、最小カメラ距離は、3フィートであり得る。別の例では、魚が魚の軌道の画像において4~7フィート離れた範囲に現れる場合、最小カメラ距離は、4フィートであり得る。魚のより多くの詳細が見え得るときに、視覚的な重量推定がより正確になると仮定することができる場合、より短い最小カメラ距離を有する魚の軌道は、より高品質のスコアに対応し得る。
【0040】
最大カメラ距離とは、魚の軌道の任意の画像に示されるように、魚がセンササブシステム102から最も遠い距離を指し得る。例えば、魚が、魚の軌道の画像において3~10フィート離れた範囲に現れる場合、最大カメラ距離は、10フィートであり得る。別の例では、魚が魚の軌道の画像において4~7フィート離れた範囲に現れる場合、最大カメラ距離は、7フィートであり得る。魚の詳細が見え得るときに、視覚的な重量推定がより不正確になると仮定することができる場合、より長い最大カメラ距離を有する魚の軌道は、より高品質のスコアに対応し得る。
【0041】
画像長とは、特定の魚の軌道が示される画像の数を指し得る。例えば、魚が5つの連続した画像において現れる場合、画像長は、5であり得る。別の例では、魚が2つの連続した画像において現れる場合、画像長は、2であり得る。推定がより多くの画像から行われるときに、視覚的な重量推定がより正確になると仮定することができる場合、より長い画像長を有する魚の軌道は、より高品質のスコアに対応し得る。
【0042】
ステレオ一貫性とは、左カメラと右カメラとの間の、深度推定値の差を指し得る。例えば、左カメラ及び右カメラが、魚の目の距離がそれぞれ5フィート及び6フィート離れていることを示す場合、ステレオ一貫性は、1フィートであり得る。別の例では、左カメラ及び右カメラが、魚の目の距離がそれぞれ4フィート及び4フィート半離れていることを示す場合、ステレオ一貫性は、半フィートであり得る。差が魚の特徴の認識における誤りを反映することができるため、より高いステレオ一貫性画像長を有する魚の軌道は、より低い品質スコアに対応し得る。
【0043】
魚の軌道の検出信頼度とは、魚の軌道が正しく検出された信頼度を指し得る。例えば、魚の軌道識別器210が、2つの連続した画像に示された魚が同じ魚であるかどうか確かではない場合、検出信頼度スコアは、10%であり得る。別の例では、魚の軌道識別器210が、2つの連続した画像に示された魚が同じ魚であることがかなり確実である場合、検出信頼度スコアは、90%であり得る。
【0044】
追加的に又は代替的に、魚の軌道の検出信頼度とは、魚、又は魚の姿勢が正しく検出された信頼度を指し得る。例えば、魚の軌道識別器210が、魚が実際に示されているかどうか、又は魚が実際にカメラに面していることについて、確かではない場合、検出信頼度スコアは、10%であり得る。別の例では、魚の軌道識別器210が、魚が示されていること、又はその顔がカメラに面していることについて、かなり確実である場合、検出信頼度スコアは、90%であり得る。より高い検出信頼度を有する魚の軌道は、重量推定値がより正確であると仮定することができるため、より高い品質スコアに対応し得る。
【0045】
魚の軌道の深度のばらつきとは、特定の深度、例えば、魚の軌道が識別される平均深度からの標準偏差距離を指し得る。例えば、魚の軌道の深度のばらつきは、魚の軌道が魚囲い120の上部又は底部の近くで識別された場合、より大きくなり得、魚の軌道が魚囲い120の中央部の近くで識別された場合、より小さくなり得る。選択された魚の軌道におけるより大きな深度のばらつきは、そのばらつきが、様々なサイズの魚が代表的な重量を決定するために使用されるよりも高い尤度に対応し得るため、望ましい場合がある。
【0046】
品質スコアエンジン220は、魚の軌道の各々について、魚の軌道の最小カメラ距離、魚の軌道の最大カメラ距離、魚の軌道の画像長、魚の軌道のステレオ一貫性、魚の軌道の検出信頼度、又は魚の軌道の深度のばらつきのうちの1つ以上を決定することができる。例えば、品質スコアエンジン220は、魚の軌道が5つの画像に示されていると決定することに基づいて、特定の魚の軌道についての5つの画像長を決定することができる。
【0047】
魚の軌道サブセットセレクタ230は、品質スコアに基づいて、魚の軌道のサブセットを選択することができる。例えば、魚の軌道サブセットセレクタ230は、最も高い品質スコアを有する400個の魚の軌道を選択することができる。魚の軌道サブセットセレクタ230は、初期の数の魚の軌道を選択し、次いで、選択された魚の軌道の代表的な重量が安定基準を満たすまで、より多くの魚の軌道を連続して選択することができる。例えば、魚の軌道サブセットセレクタ230は、初期に300個の魚の軌道を選択し、次いで、選択された魚の軌道の平均が安定基準を満たすまで、更に50個の魚の軌道を連続して選択することができる。
【0048】
より詳細な例では、魚の軌道サブセットセレクタ230は、上位300個の魚の軌道を選択して、1.19KGの平均に到達し、次いで、上位350個の魚の軌道を選択して、1.197KGに到達し、次いで、上位400個の魚の軌道を選択して、安定基準を満たす1.2KGに到達することができる。
【0049】
いくつかの実装形態では、安定基準は、先行のサブセットからの代表的な重量と、現在のサブセットからの代表的な重量との間の差が閾値を下回ることであり得る。例えば、この閾値は、5グラム、10グラム、20グラム、又は何らかの他の量であってもよい。追加的に又は代替的に、安定基準は、重量の分布の形状が同様であってもよい。例えば、コルモゴロフスミルノフ統計量又はカルバックライブラー情報量が、先行のサブセット及び現在のサブセットについて決定され、次いで、安定基準が満たされているかどうかを判定するための閾値と比較されてもよい。いくつかの実装形態では、反復毎にサブセットに追加される魚の軌道の閾値及び/又は数は、調整可能であり得る。例えば、追加される魚の軌道の閾値及び数は、より高い精度が所望される場合に増加されてもよく、追加される魚の軌道の閾値及び数は、より低い精度が所望される場合に減少されてもよい。
【0050】
重量エンジン240は、魚の軌道のサブセットから代表的な重量を決定することができる。例えば、重量エンジン240は、1.2KGの平均重量を決定することができる。重量エンジン240は、サブセット内の魚の軌道に示された魚の重量から代表的な重量を決定することができる。例えば、重量エンジン240は、サブセット内の400個の魚の軌道に対する、400個の重量の平均を取ることができる。
【0051】
いくつかの実装形態では、重量エンジン240は、サブセット内の魚の軌道の各々についての単一の推定重量を決定することができるが、まだ選択されていない魚の軌道についての重量を決定することができない。例えば、重量エンジン240は、魚の軌道の5つの画像における魚の様子から魚の単一の3Dモデルを生成し、次いで、その3Dモデルから重量を推定することができる。魚の軌道についての重量を推定することは、計算コストが高くなる場合があり、したがって、重量エンジン240は、選択されなかった魚の軌道についての重量を推定しないことによって、全ての魚の軌道についての重量を推定することを回避することができる。
【0052】
上述したように、重量エンジン240は、現在のサブセットの代表的な重量が先行のサブセットに対して安定したと決定することによって、重量を決定することができる。例えば、
図2Aに示すように、平均重量エンジン240は、上位400個の魚の軌道の現在のサブセットについての平均重量1.2KGと、上位350個の魚の軌道の先行のサブセットについての平均重量1.197KGとの間の差0.003KGが、5グラム未満という安定基準を満たすと決定することができる。
【0053】
別の例では、
図2Bに示すように、重量エンジン240は、上位400個の魚の軌道の現在のサブセットについての平均重量1.2KGと、上位350個の魚の軌道の先行のサブセットについての平均重量1.194KGとの間の差0.006KGが、5グラム未満の安定基準を満たさないと決定し、これに応答して、次いで、上位450個の魚の軌道を選択して、上位450個の魚の軌道についての平均重量1.2KGと、上位400個の魚の軌道についての平均重量1.194KGとの間の差0.004KGが、5グラム未満の安定基準を満たすと決定し得る。
【0054】
図3は、画像内で識別された魚の軌道に基づく魚の重量推定の例示的なプロセス300のためのフロー図である。この例示的なプロセス300は、
図1に示された重量サブシステム104、又は
図2に示された重量サブシステム200を含む、様々なシステムによって実行され得る。
【0055】
簡単に、かつ以下で更に説明されるように、プロセス300は、魚囲いに囲まれた魚の画像を取得すること(310)と、魚の画像内に示された魚の軌道を識別すること(320)と、魚の軌道の各々についての品質スコアを決定すること(330)と、その品質スコアに基づいて魚の軌道のサブセットを選択すること(340)と、魚の軌道のサブセット内に示された魚の代表的な重量を決定すること(350)と、代表的な重量を出力すること(360)と、を含む。
【0056】
プロセス300は、魚囲いに囲まれた魚の画像を取得すること(310)を含む。例えば、魚の軌道識別器210は、魚の200個の画像を受信することができる。いくつかの実装形態では、魚囲いに囲まれた魚の画像を取得することは、水中カメラに、魚囲い内の異なる深度において画像を捕捉するように命令して、水中カメラからその画像を受信することを含む。例えば、重量サブシステム104は、センササブシステム102に、毎秒画像を捕捉するように命令し、巻き上げ機サブシステム108に、センササブシステム102を魚囲い110の上部から底部までゆっくり移動させるように命令し、次いで、センササブシステム102によって捕捉された魚の画像を受信することができる。異なる重量の魚は、異なる深度を好む場合がある。例えば、小さくて軽い魚は、大きくて重い魚よりも浅い水を好む場合がある。したがって、異なる深度を通してカメラを移動させることは、様々なサイズの魚をより良好に表す画像を提供することができる。
【0057】
プロセス300は、魚の画像内に示された魚の軌道を識別すること(320)を含む。例えば、魚の軌道識別器210は、単一の魚が、センササブシステム102によって連続して捕捉された5の画像において、カメラの近くで泳いだことを認識することによって、第1の魚の軌道である、魚の軌道Cを識別することができる。別の例では、重量サブシステム104は、2つの連続して捕捉された画像において、単一の魚が、センササブシステム102のカメラの視界の左縁部から、センササブシステム102のカメラの視界の右縁部に素早く泳いだことを認識することによって、第2の魚の軌道である、魚の軌道Aを識別することができる。
【0058】
いくつかの実装形態では、魚の画像内に示された魚の軌道を識別することは、それらの画像のうちの第1の画像内に示された魚が、それらの画像のうちの、その後に捕捉された第2の画像内に示されていると決定することを含む。例えば、魚の軌道識別器210は、魚の上の白点、魚の場所、魚の姿勢、又は魚の動きの方向などを認識することのうちの1つ以上に基づいて、第1の画像内に示された魚が、第2の画像内に示された魚と同じであると決定することができる。
【0059】
プロセス300は、魚の軌道の各々についての品質スコアを決定すること(330)を含む。例えば、品質スコアエンジン220は、魚の軌道Cについての品質スコア90%、魚の軌道Aについての品質スコア80%、及び魚の軌道Dについての品質スコア5%を決定することができる。いくつかの実装形態では、魚の軌道の各々についての品質スコアを決定することは、魚の軌道の最小カメラ距離、魚の軌道の最大カメラ距離、魚の軌道の画像長、魚の軌道のステレオ一貫性、魚の軌道の検出信頼度、又は魚の軌道の深度のばらつきのうちの少なくとも1つに基づく。
【0060】
例えば、品質スコアエンジン220は、魚の軌道Cについて、最小カメラ距離が1フィートであり、最大カメラ距離が10フィートであり、画像長が5画像であり、ステレオ一貫性が高いマッチングを示し、検出信頼度が高く、かつ深度のばらつきが高いと決定することができる。別の例では、品質スコアエンジン220は、魚の軌道Dについて、最小カメラ距離が15フィートであり、最大カメラ距離が20フィートであり、画像長が2画像であり、ステレオ一貫性が低いマッチングを示し、検出信頼度が低く、かつ深度のばらつきが低いと決定することができる。
【0061】
プロセス300は、品質スコアに基づいて魚の軌道のサブセットを選択すること(340)を含む。例えば、魚の軌道サブセットセレクタ230は、上位にランク付けされた400個の魚の軌道を選択することができる。いくつかの実装形態では、品質スコアに基づいて魚の軌道から第2のサブセットを選択することは、品質スコアに基づいて、魚の軌道のランク付けを決定し、そのランク付けに基づいて、所定の数の魚の軌道を第2のサブセットとして選択することを含む。例えば、魚の軌道サブセットセレクタ230は、品質スコアに基づいて、2000個の魚の軌道を降順でランク付けし、次いで、上位から300個の魚の軌道を選択することができる。
【0062】
いくつかの実装形態では、品質スコアに基づいて魚の軌道のセットを選択することは、ランク付けに基づいて、魚の軌道の第2の所定の数の残りの魚の軌道、及び第2のサブセット内の魚の軌道の両方を選択することを含む。例えば、魚の軌道サブセットセレクタ230は、サブセットの代表が安定するまで、次の上位の魚の軌道のうちの更に50個を連続して選択して、そのサブセットに追加することができる。
【0063】
プロセス300は、魚の軌道のサブセット内に示された魚の代表的な重量を決定すること(340)を含む。例えば、重量エンジン240は、1.2KGの平均重量を決定することができる。いくつかの実装形態では、魚の軌道のサブセット内に示された魚の重量に基づいて魚囲い内の魚の代表的な重量を決定することは、画像内の魚の見かけのサイズに基づいて、魚の重量を決定することを含む。例えば、重量エンジン240は、魚の画像内に示されるように、魚について視覚的に推定された重量の平均を取ることに基づいて、1.2KGの平均重量を決定することができる。
【0064】
いくつかの実装形態では、魚の軌道のサブセット内に示された魚の重量に基づいて魚囲い内の魚の代表的な重量を決定することは、品質スコアに基づいて魚の軌道から第2のサブセットを選択することであって、第2のサブセット内で選択された魚の軌道が、魚の軌道のサブセット内にある、選択することと、第2のサブセット内の魚の軌道のサブセット内に示された魚の重量から、囲い内の魚の第2の代表的な重量を決定することと、代表的な重量と第2の代表的な重量との間の差が安定基準を満たすと決定することと、を含む。例えば、魚の軌道サブセットセレクタ230は、上位350個の上位魚の軌道を選択し、平均重量1.197KGを決定し、平均重量1.197KGと、上位400個の魚の軌道からの平均重量1.2KGとの間の差3グラムが、5グラム未満の安定基準を満たすと決定することができる。
【0065】
いくつかの実装形態では、代表的な重量と第2の代表的な重量との間の差が安定基準を満たすと決定することは、代表的な重量と第2の代表的な重量との間の差が閾値重量を下回ると決定することを含む。例えば、安定基準は、5、10、20、又はその差が下回る必要がある何らかの他のグラム量であってもよい。
【0066】
いくつかの実装形態では、代表的な重量と第2の代表的な重量との間の差が安定基準を満たすと決定することは、サブセット内の魚の軌道に示された魚の重量の第1の分布が、第2のサブセット内の魚の軌道に示された魚の重量の第2の分布に対して安定していると決定することを含む。例えば、重量エンジン240は、上位350個の魚の軌道内の重量分布と、上位400個の魚の軌道内の重量分布との間のコルモゴロフスミルノフ統計量が閾値を下回るかどうかを判定することができる。
【0067】
プロセス300は、代表的な重量を出力すること(340)を含む。例えば、重量エンジン240は、人に表示するために人によって使用されるコンピュータに、平均重量1.2KGを出力することができる。別の例では、重量サブシステム104は、平均重量に基づいて魚を捕獲するべきかどうかを判定する捕獲デバイスに、平均重量1.2KGを出力することができる。
【0068】
いくつかの実装形態では、プロセス300は、代表的な重量が捕獲基準を満たすと決定し、魚囲い内の魚の捕獲を引き起こすことを含む。例えば、捕獲デバイスは、平均重量1.2KGが閾値1.19KGを満たすことを決定し、それに応答して、かつ人を介入させないで、魚がその後捕獲され得る別のより浅いおりの中に魚を誘導する捕獲デバイスを電源オンすることができる。
【0069】
いくつかの実装形態について記載してきた。それにもかかわらず、本開示の趣旨及び範囲から逸脱することなく、様々な修正が行われ得ることが理解されるであろう。例えば、上で示されたフローの様々な形態は、ステップが再順序付けされ、追加され、又は除去されて使用され得る。
【0070】
本明細書に記載された本発明及び機能的動作の全ての実施形態は、デジタル電子回路の中、又は、コンピュータソフトウェア、ファームウェア、若しくは本明細書に開示された構造物及びそれらの構造上の等価物を含むハードウェアの中、あるいはそれらのうちの1つ以上の組み合わせの中に実装することができる。本発明の実施形態は、1つ以上のコンピュータプログラム製品、例えば、データ処理装置によって実行するために、又はデータ処理装置の動作を制御するために、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして実装することができる。コンピュータ可読媒体は、機械可読記憶デバイス、機械可読記憶基板、メモリデバイス、機械可読伝搬信号に影響を及ぼす組成物質、又はそれらのうちの1つ以上の組み合わせとすることができる。「データ処理装置」という用語は、データを処理するための全ての装置、デバイス、及びマシンを包含し、例として、プログラム可能なプロセッサ、コンピュータ、又は複数のプロセッサ若しくはコンピュータが含まれる。装置は、ハードウェアに加えて、問題となるコンピュータプログラムのための実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はこれらのうちの1つ以上の組み合わせを構成するコードを含むことができる。伝搬信号は、人工的に生成された信号、例えば、好適な受信機装置への送信のために情報を符号化するために生成された機械生成電気信号、光信号、又は電磁信号である。
【0071】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られる)は、コンパイラ型言語若しくはインタープリタ型言語を含む、任意の形態のプログラミング言語で記述することができ、それは、独立型プログラムとして、又はモジュール、コンポーネント、サブルーチン、若しくはコンピューティング環境で使用するために好適な他のユニットとして含む、任意の形態で展開することができる。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応する必要はない。プログラムは、他のプログラム又はデータ(例えば、マークアップ言語文書内に記憶され得る1つ以上のスクリプト)を保持するファイルの一部内に、問題のプログラム専用の単一のファイル内に、又は連携して働く複数のファイル(例えば、1つ以上のモジュール、サブプログラム、若しくは、コードの部分を記憶するファイル)内に記憶することができる。コンピュータプログラムは、1つのコンピュータ上で、又は、1つのサイトに配置されるか若しくは複数のサイトにわたって分散されて、かつ通信ネットワークにより相互接続されている、複数のコンピュータ上で実行されるように展開することができる。
【0072】
本明細書に説明されたプロセス及びロジックのフローは、1つ以上のコンピュータプログラムを実行する1つ以上のプログラム可能なプロセッサによって実行され、入力データに対して動作し、出力を生成することによって機能を実行することができる。プロセス及びロジックのフローはまた、専用ロジック回路、例えば、FPGA(field programmable gate array)(フィールドプログラマブルゲートアレイ)又はASIC(application specific integrated circuit)(特定用途向け集積回路)によって実行され得、装置もまた、これらのものとして実装され得る。
【0073】
コンピュータプログラムの実行に適したプロセッサは、例として、汎用マイクロプロセッサ及び専用マイクロプロセッサの両方、並びに任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。概して、プロセッサは、読み出し専用メモリ若しくはランダムアクセスメモリ又はその両方から命令及びデータを受信する。コンピュータの必須要素は、命令を実施するためのプロセッサ、並びに命令及びデータを記憶するための1つ以上のメモリデバイスである。概して、コンピュータはまた、データを記憶するための1つ以上の大容量記憶デバイス、例えば、磁気ディスク、光磁気ディスク、又は光ディスクを含むか、又は1つ以上の大容量記憶デバイスからデータを受信するか若しくは1つ以上の大容量記憶デバイスにデータを転送するか、又はその両方を行うように動作可能に結合される。しかしながら、コンピュータは、そのようなデバイスを有する必要はない。更に、コンピュータは、別のデバイス、例えば、少数の例を挙げると、タブレットコンピュータ、携帯電話、携帯情報端末(personal digital assistant、PDA)、携帯オーディオプレーヤー、全地球測位システム(Global Positioning System、GPS)受信機内に組み込むことができる。コンピュータプログラム命令及びデータを記憶するのに適したコンピュータ可読媒体は、例として、半導体メモリデバイス、例えば、EPROM、EEPROM、及びフラッシュメモリデバイスを含む、全ての形態の不揮発性メモリ、媒体、及びメモリデバイスと、磁気ディスク、例えば、内蔵ハードディスク又はリムーバブルディスクと、光磁気ディスクと、CD-ROM及びDVD-ROMディスクと、を含む。プロセッサ及びメモリは、専用論理回路によって補完され得るか、又は専用論理回路に組み込まれ得る。
【0074】
ユーザとの対話を提供するために、本発明の実施形態は、ユーザに対して情報を表示するための表示デバイス、例えば、CRT(cathode ray tube)(陰極線管)又はLCD(liquid crystal display)(液晶ディスプレイ)モニタ、並びにキーボード及びポインティングデバイス、例えば、ユーザがコンピュータに入力を提供することができるマウス又はトラックボールを有するコンピュータ上に実装することができる。他の種類のデバイスが、ユーザとの相互作用を提供するために同様に使用することができ、例えば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック、例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバックであり得、ユーザからの入力は、音響、音声、又は触覚入力を含む、任意の形態で受信され得る。
【0075】
本発明の実施形態は、コンピューティングシステム内に実装され得、そのコンピューティングシステムは、例えば、データサーバとしてバックエンド構成要素を含むか、又は、ミドルウエア構成要素、例えば、アプリケーションサーバを含むか、又は、フロントエンド構成要素、例えば、グラフィカルユーザインターフェース、若しくは、ユーザが本発明の実装形態と対話することができるウェブブラウザを有するクライアントコンピュータを含むか、あるいは、1つ以上のそのようなバックエンド構成要素、ミドルウエア構成要素、又はフロントエンド構成要素の任意の組み合わせを含む。システムのコンポーネントは、デジタルデータ通信の任意の形態又は媒体、例えば、通信ネットワークによって相互接続することができる。通信ネットワークの例としては、ローカルエリアネットワーク(local area network、「LAN」)及びワイドエリアネットワーク(wide area network、「WAN」)、例えば、インターネットが挙げられる。
【0076】
コンピューティングシステムは、クライアント及びサーバを含むことができる。クライアント及びサーバは概して互いに離れており、典型的には通信ネットワークを介して対話する。クライアント及びサーバの関係は、それぞれのコンピュータ上で実行され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【0077】
本明細書は、多くの特定のものを包含するが、これらは、本発明又は特許請求の範囲で主張され得るものの範囲に限定されるものとして解釈されるべきではなく、むしろ、本発明の特定の実施形態に特有の特徴の説明として解釈されるべきである。別個の実施形態の文脈において本明細書に記載されるある特定の特徴はまた、単一の実施形態において組み合わせて実装することもできる。逆に、単一の実施形態の文脈で説明されている様々な特徴は、複数の実施形態で別個に、又は任意の好適な部分的組み合わせで実装することもできる。更に、上記の特徴は、ある特定の組み合わせで動作するものとして、したがって、更には当初そのように特許請求されたものとして説明される場合があるが、特許請求された組み合わせからの1つ以上の特徴は、場合によっては、その組み合わせから削除することができ、その特許請求された組み合わせは、副組み合わせ、又は副組み合わせの変形例を対象とすることができる。
【0078】
同様に、動作は特定の順序で図面に描写されているが、これは、所望の結果を達成するために、そのような動作が示された特定の順序で若しくは連続的な順序で実行されること、又は全ての例示された動作が実行されることを必要とすると理解されるべきではない。ある特定の状況では、マルチタスキング及び並列処理が有利であり得る。更に、上述した実施形態における様々なシステム構成要素の分離は、全ての実施形態においてそのような分離を必要とするものと理解されるべきではなく、説明されたプログラムコンポーネント及びシステムは、概して、単一のソフトウェア製品にともに統合され得るか、又は複数のソフトウェア製品の中にパッケージ化され得ることを理解されたい。
【0079】
本発明の特定の実施形態が、説明されてきた。他の実施形態は、以下の特許請求の範囲内である。例えば、特許請求の範囲に列挙されたステップは、異なる順序で実行することができ、依然として望ましい結果を達成することができる。
【国際調査報告】