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

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

▶ エックス デベロップメント エルエルシーの特許一覧

<>
  • 特許-魚の現在量、形状、及びサイズの決定 図1A
  • 特許-魚の現在量、形状、及びサイズの決定 図1B
  • 特許-魚の現在量、形状、及びサイズの決定 図2
  • 特許-魚の現在量、形状、及びサイズの決定 図3A
  • 特許-魚の現在量、形状、及びサイズの決定 図3B
  • 特許-魚の現在量、形状、及びサイズの決定 図4
  • 特許-魚の現在量、形状、及びサイズの決定 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-05-16
(45)【発行日】2022-05-24
(54)【発明の名称】魚の現在量、形状、及びサイズの決定
(51)【国際特許分類】
   G06T 7/00 20170101AFI20220517BHJP
【FI】
G06T7/00 350C
【請求項の数】 17
(21)【出願番号】P 2020531477
(86)(22)【出願日】2018-12-05
(65)【公表番号】
(43)【公表日】2021-04-30
(86)【国際出願番号】 US2018064008
(87)【国際公開番号】W WO2019147346
(87)【国際公開日】2019-08-01
【審査請求日】2020-07-14
(31)【優先権主張番号】15/879,851
(32)【優先日】2018-01-25
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】516326438
【氏名又は名称】エックス デベロップメント エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100126480
【弁理士】
【氏名又は名称】佐藤 睦
(72)【発明者】
【氏名】ジェームズ,バーナビー ジョン
(72)【発明者】
【氏名】ラパポート,エヴァン ダグラス
(72)【発明者】
【氏名】メッサーナ,マシュー
(72)【発明者】
【氏名】キンボール,ピーター
【審査官】小池 正彦
(56)【参考文献】
【文献】国際公開第2018/061925(WO,A1)
【文献】米国特許第09298978(US,B1)
【文献】米国特許出願公開第2011/0196661(US,A1)
【文献】国際公開第2016/192853(WO,A1)
【文献】D. Chan et al,Image processing for underwater measurement of salmon biomass,IEE Colloquium on Underwater Applications of Image Processing (Ref. No. 1998/217),米国,IET,1998年03月25日,https://ieeexplore.ieee.org/document/677002/metrics#metrics
【文献】Prospero C. Naval et al,FishDrop: Estimation of reef fish population density and biomass using stereo cameras,2016 Techno-Ocean (Techno-Ocean),米国,IEEE,2016年10月08日,527-531,https://ieeexplore.ieee.org/document/7890710
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
1つ以上のプロセッサによって、魚の1つ以上の画像を取得することと、
前記1つ以上の画像内の前記魚の1つ以上の特徴と関連付けられている1つ以上のキーポイントを決定することと、
前記魚の前記1つ以上の特徴と関連付けられている前記1つ以上のキーポイントに基づいて、前記1つ以上のプロセッサによって、前記魚のモデルを生成することと、
前記魚の前記モデルを使用して、前記魚の予想重量を決定することと、
前記1つ以上のプロセッサに接続された装置における表示又は格納のために前記魚の前記予想重量を出力することと、
前記1つ以上の画像から単一画像を生成することと、
前記単一画像に関する深度マップを生成することと、
再帰型畳み込みニューラルネットワークを使用して対象物検出を実行することによって、前記単一画像内の前記魚及び1つ以上の関心領域を識別することと、をむ、ンピュータ利用方法。
【請求項2】
前記魚の前記1つ以上の特徴と関連付けられている前記1つ以上のキーポイントが、姿勢推定を使用して前記1つ以上の関心領域の各々に対して決定され、
前記1つ以上の画像が、左カメラ及び右カメラを含む1つ以上の画像獲得装置を使用して取得され、
前記1つ以上の画像が、左画像及び右画像を含む、請求項1に記載のコンピュータ利用方法。
【請求項3】
前記決定された1つ以上のキーポイントが、1つ以上の2次元キーポイントを含み、
前記魚の前記モデルを生成することが、
前記決定された1つ以上の2次元キーポイント、及び前記深度マップを使用することによって、前記魚のための3次元キーポイントを決定すること、を含む、請求項1に記載のコンピュータ利用方法。
【請求項4】
1つ以上のプロセッサによって、魚の1つ以上の画像を取得することと、
前記1つ以上の画像内の前記魚の1つ以上の特徴と関連付けられている1つ以上のキーポイントを決定することと、
前記魚の前記1つ以上の特徴と関連付けられている前記1つ以上のキーポイントに基づいて、前記1つ以上のプロセッサによって、前記魚のモデルを生成することと、
前記魚の前記モデルを使用して、前記魚の予想重量を決定することと、
前記1つ以上のプロセッサに接続された装置における表示又は格納のために前記魚の前記予想重量を出力することと、
前記魚の1つ以上の二次画像を取得することと、
前記取得された前記魚の1つ以上の二次画像に基づいて、前記魚の予想二次重量を決定することと、
前記取得された前記魚の1つ以上の二次画像に基づいて、前記魚の前記モデル、及び前記決定された前記魚の予想二次重量を使用して、前記決定された前記魚の予想重量に基づく平均予想重量を決定することと、をむ、ンピュータ利用方法。
【請求項5】
1つ以上のプロセッサによって、魚の1つ以上の画像を取得することと、
前記1つ以上の画像内の前記魚の1つ以上の特徴と関連付けられている1つ以上のキーポイントを決定することと、
前記魚の前記1つ以上の特徴と関連付けられている前記1つ以上のキーポイントに基づいて、前記1つ以上のプロセッサによって、前記魚のモデルを生成することと、
前記魚の前記モデルを使用して、前記魚の予想重量を決定することと、
前記1つ以上のプロセッサに接続された装置における表示又は格納のために前記魚の前記予想重量を出力することと、
前記魚の予想キーポイントを予測するための姿勢推定モデルを使用して、ニューラルネットワーク分類器を訓練すること、をむ、ンピュータ利用方法。
【請求項6】
前記魚の前記モデルを使用して前記魚の予想重量を決定することが、
前記魚の前記モデルに線形回帰モデルを適用することによって前記魚の前記重量を推定することであって、前記魚の前記モデルが、前記魚の3次元モデルである、推定すること、を含む、請求項1、4又は5に記載のコンピュータ利用方法。
【請求項7】
1つ以上の計算装置、及び命令を格納する1つ以上の記憶装置を備え、前記命令が、前記1つ以上の計算装置によって実行されるときに、前記1つ以上の計算装置に、
魚の1つ以上の画像を取得することと、
前記1つ以上の画像内の前記魚の1つ以上の特徴と関連付けられている1つ以上のキーポイントを決定することと、
前記魚の前記1つ以上の特徴と関連付けられている前記1つ以上のキーポイントに基づいて、前記魚のモデルを生成することと、
前記魚の前記モデルを使用して、前記魚の予想重量を決定することと、
前記1つ以上の計算装置に接続された装置における表示及び格納のために、前記魚の前記予想重量を出力することと、
前記1つ以上の画像から単一画像を生成することと、
前記単一画像に関する深度マップを生成することと、
再帰型畳み込みニューラルネットワークを使用して対象物検出を実行することによって、前記単一画像内の前記魚及び1つ以上の関心領域を識別することと、を動作を実行させるシステム。
【請求項8】
前記魚の前記1つ以上の特徴と関連付けられている前記1つ以上のキーポイントが、姿勢推定を使用して前記1つ以上の関心領域の各々に対して決定され、
前記1つ以上の画像が、左カメラ及び右カメラを含む1つ以上の画像獲得装置を使用して取得され、
前記1つ以上の画像が、左画像及び右画像を含む、請求項に記載のシステム。
【請求項9】
前記決定された1つ以上のキーポイントが、1つ以上の2次元キーポイントを含み、
前記魚の前記モデルを生成することが、
前記決定された1つ以上の2次元キーポイント、及び前記深度マップを使用することによって、前記魚のための3次元キーポイントを決定すること、を含む、請求項に記載のシステム。
【請求項10】
1つ以上の計算装置、及び命令を格納する1つ以上の記憶装置を備え、前記命令が、前記1つ以上の計算装置によって実行されるときに、前記1つ以上の計算装置に、
魚の1つ以上の画像を取得することと、
前記1つ以上の画像内の前記魚の1つ以上の特徴と関連付けられている1つ以上のキーポイントを決定することと、
前記魚の前記1つ以上の特徴と関連付けられている前記1つ以上のキーポイントに基づいて、前記魚のモデルを生成することと、
前記魚の前記モデルを使用して、前記魚の予想重量を決定することと、
前記1つ以上の計算装置に接続された装置における表示及び格納のために、前記魚の前記予想重量を出力することと、
前記魚の1つ以上の二次画像を取得することと、
前記取得された前記魚の1つ以上の二次画像に基づいて、前記魚の予想二次重量を決定することと、
前記取得された前記魚の1つ以上の二次画像に基づいて、前記魚の前記モデル、及び前記決定された前記魚の二次重量を使用して、前記決定された前記魚の予想重量に基づく平均予想重量を決定することと、を含む動作を実行させるシステム。
【請求項11】
前記魚の前記モデルを使用して前記魚の予想重量を決定することが、
前記魚の前記モデルに線形回帰モデルを適用することによって前記魚の前記重量を推定することであって、前記魚の前記モデルが、前記魚の3次元モデルである、推定すること、を含む、請求項7又は10に記載のシステム。
【請求項12】
命令を含む1つ以上の非一過性コンピュータ可読記憶媒体であって、前記命令が、1つ以上の計算装置によって実行されるときに、前記1つ以上の計算装置に、
魚の1つ以上の画像を取得することと、
前記1つ以上の画像内の前記魚の1つ以上の特徴と関連付けられている1つ以上のキーポイントを決定することと、
前記魚の前記1つ以上の特徴と関連付けられている前記1つ以上のキーポイントに基づいて、前記魚のモデルを生成することと、
前記魚の前記モデルを使用して、前記魚の予想重量を決定することと、
前記1つ以上の計算装置に接続された装置における表示及び格納のために、前記魚の前記予想重量を出力することと、
前記1つ以上の画像から単一画像を生成することと、
前記単一画像に関する深度マップを生成することと、
再帰型畳み込みニューラルネットワークを使用して対象物検出を実行することによって、前記単一画像内の前記魚及び1つ以上の関心領域を識別することと、を動作を実行させる、1つ以上の非一過性コンピュータ可読記憶媒体。
【請求項13】
前記魚の前記1つ以上の特徴と関連付けられている前記1つ以上のキーポイントが、姿勢推定を使用して前記1つ以上の関心領域の各々に対して決定され、
前記1つ以上の画像が、左カメラ及び右カメラを含む1つ以上の画像獲得装置を使用して取得され、
前記1つ以上の画像が、左画像及び右画像を含む、請求項12に記載の1つ以上の非一過性コンピュータ可読記憶媒体。
【請求項14】
前記決定された1つ以上のキーポイントが、1つ以上の2次元キーポイントを含み、
前記魚の前記モデルを生成することが、
前記決定された1つ以上の2次元キーポイント、及び前記深度マップを使用することによって、前記魚のための3次元キーポイントを決定すること、を含む、請求項12に記載の1つ以上の非一過性コンピュータ可読記憶媒体。
【請求項15】
命令を含む1つ以上の非一過性コンピュータ可読記憶媒体であって、前記命令が、1つ以上の計算装置によって実行されるときに、前記1つ以上の計算装置に、
魚の1つ以上の画像を取得することと、
前記1つ以上の画像内の前記魚の1つ以上の特徴と関連付けられている1つ以上のキーポイントを決定することと、
前記魚の前記1つ以上の特徴と関連付けられている前記1つ以上のキーポイントに基づいて、前記魚のモデルを生成することと、
前記魚の前記モデルを使用して、前記魚の予想重量を決定することと、
前記1つ以上の計算装置に接続された装置における表示及び格納のために、前記魚の前記予想重量を出力することと、
前記魚の1つ以上の二次画像を取得することと、
前記取得された前記魚の1つ以上の二次画像に基づいて、前記魚の予想二次重量を決定することと、
前記取得された前記魚の1つ以上の二次画像に基づいて、前記魚の前記モデル、及び前記決定された前記魚の予想二次重量を使用して、前記決定された前記魚の予想重量に基づく平均予想重量を決定することと、を動作を実行させる、非一過性コンピュータ可読記憶媒体。
【請求項16】
前記動作が、
前記魚の予想キーポイントを予測するように、姿勢推定モデルを使用してニューラルネットワーク分類器を訓練すること、をさらに含む、請求項12に記載の1つ以上の非一過性コンピュータ可読記憶媒体。
【請求項17】
前記魚の前記モデルを使用して前記魚の予想重量を決定することが、
前記魚の前記モデルに線形回帰モデルを適用することによって前記魚の前記重量を推定することであって、前記魚の前記モデルが、前記魚の3次元モデルである、推定すること、を含む、請求項12又は15に記載の1つ以上の非一過性コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
[0001] 本開示は、一般に、海洋モニタリングシステムに関する。
【背景技術】
【0002】
[0002] 研究者は、たびたび、魚の重量及びサイズを決定することが難しいことを見出した。魚のサンプルセットを手作業で捕獲及び計量するプロセスは、多くの場合、ある区域内の多くの魚のサイズ及び重量を推定するために使用される。しかしながら、このようなプロセスは、時間がかかり、不正確であり、大幅な金銭上、運搬上、及び人的上の資源を必要とする。
【発明の概要】
【0003】
[0003] 一般に、本明細書に記載される主題の革新的な態様は、魚の形状、サイズ、及び重量を決定することに関する。いくつかの実施態様では、一対のステレオカメラを利用して、画定された区域内の魚の右画像及び左画像を取得することができる。右画像及び左画像は、処理、強調、及び組み合わせをすることができる。対象物検出を使用して、画像内の魚を検出及び追跡することができる。姿勢推定器を使用して、検出された魚のキーポイント及び特徴を決定することができる。キーポイントに基づいて、魚の3次元(3-D)モデルが生成され、魚のサイズ及び形状の推定値を提供する。回帰モデル又はニューラルネットワークモデルを3-Dモデルに適用して、魚の重量を決定することができる。
【0004】
[0004] いくつかの実施態様では、上述した動作を繰り返すことができ、魚のための複数の3-Dモデル及び重量が、決定され得る。複数のモデル及び重量を平均して、より信頼性の高い結果をもたらすことができる。いくつかの実施態様では、魚の各3-Dモデルは、評価され得、スコアが生成されて3-Dモデルの精度をランク付けする。閾値スコアよりも大きいスコアを有する3-Dモデルのみを利用して、魚の重量を決定することができる。
【0005】
[0005] 本明細書に記載されている主題の態様が、コンピュータ利用方法で具現化されることができる。この方法は、1つ以上のプロセッサによって、魚の1つ以上の画像を取得することと、1つ以上の画像内の魚の1つ以上の特徴と関連付けられている1つ以上のキーポイントを決定することと、魚の1つ以上の特徴と関連付けられている1つ以上のキーポイントに基づいて、1つ以上のプロセッサによって、魚のモデルを生成することと、魚のモデルを使用して魚の予想重量を決定することと、1つ以上のプロセッサに接続された装置における表示又は格納のために魚の予想重量を出力することと、を含む。
【0006】
[0006] いくつかの実施態様では、この方法は、1つ以上の画像から単一画像を生成することと、単一画像のための深度マップを生成することと、回帰畳み込みニューラルネットワークを使用して対象物検出を実行することによって、単一画像内の魚及び1つ以上の関心領域を識別することと、をさらに含む。
【0007】
[0007] いくつかの実施態様では、魚の1つ以上の特徴と関連付けられている1つ以上のキーポイントは、姿勢推定を使用して1つ以上の関心領域の各々に対して決定される。1つ以上の画像は、左カメラ及び右カメラを含む1つ以上の画像獲得装置を使用して取得され、1つ以上の画像は、左画像及び右画像を含む。
【0008】
[0008] いくつかの実施態様では、決定された1つ以上のキーポイントは、1つ以上の2次元キーポイントを含み、魚のモデルを生成することは、決定された1つ以上の2次元キーポイント、及び深度マップを使用することによって、魚のための3次元キーポイントを決定すること、を含む。
【0009】
[0009] いくつかの実施態様では、魚のモデルを使用して魚の予想重量を決定することは、魚のモデルに線形回帰モデルを適用することによって魚の重量を推定することを含む。魚のモデルは、魚の3次元モデルである。
【0010】
[0010] いくつかの実施態様では、この方法は、魚の1つ以上の二次画像を取得することと、取得された魚の1つ以上の二次画像に基づいて、魚の予想二次重量を決定することと、取得された魚の1つ以上の二次画像に基づいて、魚のモデル、及び決定された魚の予想二次重量を使用して、決定された魚の予想重量に基づく平均予想重量を決定することと、をさらに含む。
【0011】
[0011] いくつかの実施態様では、この方法は、魚の予想キーポイントを予測するための姿勢推定モデルを使用してニューラルネットワーク分類器を訓練すること、をさらに含む。
【0012】
[0012] 他の態様は、方法、システム、装置、コンピュータ可読記憶媒体、及び上述した方法の動作を実施するように構成されるコンピュータプログラムを含む。
【0013】
[0013] 上述した態様、及び本明細書にさらに記載されている実施態様は、いくつかの利点を提供することができる。例えば、魚の重量の決定が、カメラから取得された画像に依拠するため、このシステムは、多数の画像が比較的高価に取得され得るため、重量を決定するために画像が選択される際に、選択可能であり得る。これにより、重量決定における、より高い精度を選択的に提供する。さらに、正確な結果を取得するために、より少ない画像を処理するだけでよく、それによってまた、必要とされる処理時間及びリソースを削減する利点も提供することができる。
【0014】
[0014] いくつかの実施態様では、単一の魚、又は多数の魚の集団が継続的にモニタリングされ得、各魚に対するプロファイルを作り出すことができる。したがって、魚の年齢、履歴、又は品質を検証することに関心のあるユーザにとって、このシステムは、魚についての包括的な情報、並びにその物理的な変化及び品質を提供する。魚プロファイルは、関心のある任意のグループに提供することができる。
【0015】
[0015] さらに、姿勢推定及び特徴識別を実装するために使用されるニューラルネットワーク及び機械学習技術は、適応システムを提供し、この適応システムは、以前の結果及び訓練データを使用して継続的に訓練され得、特徴識別、並びに魚のサイズ及び重量の推定の精度を向上させることができる。カメラ及び画像処理技術を使用して魚を識別し、そしてそれらの重量及びサイズを推定するため、ヒトが魚を捕獲し、魚の特性を決定することに関する依存性が低減される。本明細書に記載されている実施態様はまた、魚のサイズ及び重量を決定する際の、より高い精度及び一貫性も提供する。さらに、このシステムは、より多くのカメラを追加の場所に追加することによって、倍率を変更して魚のより広い区域を比較的容易にカバーすることができる。
【0016】
[0016] 本明細書に記載されている1つ以上の態様の詳細は、添付図面、及び以下の説明に記述されている。主題の他の特徴、態様、及び利点は、明細書、図面、及び特許請求の範囲から、明らかになるであろう。
【図面の簡単な説明】
【0017】
図1A】魚モニタリングシステムを備える典型的な魚タンクの側面図を示す。
図1B】魚モニタリングシステムを備える典型的な魚タンクの、空中からの図を示す。
図2】魚タンク内の魚の画像を取り込む画像獲得システムの上面図を示す。
図3A】魚のサイズ、形状、及び重量を決定するための方法の典型的なフロー図を示す。
図3B】魚のサイズ、形状、及び重量を決定するための方法の典型的なフロー図を示す。
図4】魚のサイズ、形状、及び重量を決定するための典型的システムを示す。
図5】魚の特徴に対応するラベルの付いた例示的な魚の画像を示す。
【0018】
[0023] 様々な図面の中の同様の参照番号及び名称は、同様の要素を示す。
【発明を実施するための形態】
【0019】
[0024] 開示される主題の態様は、各図に関してさらに詳細に説明される。
【0020】
[0025] 図1A及び図1Bは、魚モニタリングシステムを備える魚タンク180の側面図、及び空中からの図を、それぞれ示す。タンク180は、様々な形状及びサイズを有してもよい。図1A及び図1Bは、タンクが、円形又は円筒形の上部を有する円錐ベースを含む、典型的な実施態様を示す。タンク180は、異なる種類の水、例えば、淡水、塩水、異なる塩分レベルの水を含み得、1つ以上の種の魚を含み得る。タンク180は、ガラス、コンクリート、アクリル樹脂、プラスチック、又はそれらの組み合わせなどの任意の好適な材料で作製することができる。空気ポンプ、水ポンプ、照明システム、加熱及び冷却システム、並びに濾過システムなどの追加の装置を使用して、タンク180内の条件を調整することができる。
【0021】
[0026] この魚モニタリングシステムは、複数の装置、及び光センサなどのセンサ、温度計、フィルタ、塩分センサ、並びに画像獲得システムを含むことができる。この画像獲得システムは、タンク180内の魚の画像及びビデオを取得するように構成された1つ以上のカメラを含むカメラシステム185を含むことができる。
【0022】
[0027] 以下でさらに詳細に説明されているように、カメラシステム185は、タンク180の外側に配置されたコンピュータシステムに接続され得る。このコンピュータシステムは、位置、レンズの焦点距離、又はズームなどの、カメラの複数のパラメータを制御することができ、魚の静止画像又は動画像を取得するためのカメラシステム185を制御することができる。カメラシステム185は、コンピュータシステムから受信した命令に基づいて、カメラを特定の方向に操縦するように構成されたモータを含むことができる。コンピュータシステムは、さらなる処理のためにカメラシステム185から画像を受信することができる。
【0023】
[0028] カメラシステム185は、タンク180内の異なる場所に配備することができる。一般に、カメラシステム185は、タンク180内のある位置に配置され得、それにより、良質の画像、例えば、ぼやけのない鮮明な魚の画像、並びに最適な取り込み角度及び視界がカメラシステム185により取り込まれるのを可能にする。例えば、図1A及び1Bに示すように、カメラシステム185は、タンク180の比較的中央の場所に配置され得る。カメラシステム185は、水面ブイ、水面直下ブイ、固定構造体、又はケーブル線を使用することによるなどの様々な方法で、タンク180内の適所に保持することができる。
【0024】
[0029] 様々な要因が、魚タンク180内のカメラシステム185の位置を決定し得る。例えば、場合によっては、タンク180内の魚が、流れに逆らって遊泳する種類の魚である場合、図2に示してあるように、カメラシステム185は、実質的に流れに平行に位置決めされ得る。他の魚は、流れに伴って遊泳することができ、流れに依存する遊泳パターンを有さない場合がある。場合によっては、魚タンク180/280内の特定の種の魚は、特定の温度又は光量を有する特定の深度又は区域で遊泳することがあり、カメラシステム185/285は、タンク180/280内に位置決めされて、カメラ285A及び285Bがこれらの特定の深度又は区域内の魚に焦点を合わせるのを可能にする。
【0025】
[0030] 図2に示すように、魚タンク280内のカメラシステム285は、左ステレオカメラ285A及び右ステレオカメラ285B、又は上部カメラ及び下部カメラなどの複数のカメラを含むことができる。一般に、様々なカメラ構成が使用され得る。カメラ285A及び285Bの各々は、魚タンク280内の魚の画像及びビデオを取得するように位置決めされ得る。いくつかの実施態様では、カメラ285A及び285Bは、魚に対してほぼ直角の角度で魚の画像を取得するように位置決めされ得、その結果、1つ以上の魚の側面図を取得することができる。複数のカメラ285A及び285Bは、わずかに異なる角度から特定の魚に対して2つ以上の画像を提供することができる。図3A及び図3Bに関して以下に説明されているように、複数の画像を使用して、魚の特徴付けを向上させることができる。
【0026】
[0031] いくつかの実施態様では、カメラシステム285内のカメラ285A及び285Bは、魚画像を取得する前に、較正される。カメラ285A及び285Bを較正するために、カメラ285A及び285Bは、カメラレンズに対して異なる角度及び距離において基準パターンの画像を取り込むことができ、空間平均二乗(RMS)誤差が、取り込まれた画像パターンと基準パターンとの間の差を決定することによって計算することができる。RMS誤差が誤差閾値を満たす場合、カメラ285A及び285Bの設定値を調整して、カメラ285A及び285Bを再較正することができる。カメラ285A及び285Bの設定値を調整することには、取り込まれた基準画像を変更する任意の動作が含まれ得る。それらの動作には、カメラの位置を調整すること、カメラ285A及び285Bのレンズ位置を調整すること、並びにカメラ285A及び285Bのズーム量を調整することのうちの1つ以上を含むことができるが、これらに限定されない。
【0027】
[0032] カメラ285A及び285Bの設定値を調整した後、別の画像のセットが取り込まれ、第2のRMS誤差が計算され得る。この較正プロセスは、RMS誤差がもはや誤差閾値を満たさなくなるまで繰り返すことができる。
【0028】
[0033] 図3A及び図3Bは、魚のサイズ、形状、及び重量を決定するための方法の典型的なフロー図を示す。この方法は、図4を参照してさらに説明されるシステムによって実施することができる。そのシステムは、カメラを含むことができ、上述したように、そのカメラは、較正され、魚タンク内の魚の1つ以上の画像を取得するように構成されている(S305)。それらの画像は、左ステレオカメラ及び右ステレオカメラから、それぞれ取得される左ステレオ画像305A及び右ステレオ画像305Bを含み得る。
【0029】
[0034] 取り込まれた画像305A、305Bは、前処理され得る(S310)。この前処理は、画像の強調及び矯正を含むことがある。例えば、画像305A、305Bは、画像品質を向上させるために、ヒストグラム等化、フィルタリング、まだら除去、ぼやけ除去、又はノイズ除去のうちの1つ以上を実行することによって、強調することができる。場合によっては、光レベルが、例えば、バーストモードで取得された複数の画像を合成することによって、増強され得る。場合によっては、画像内の色が、適応ヒストグラム等化を実行することによって、強調され得る。
【0030】
[0035] 場合によっては、貧弱な画像品質を有する画像305A、305Bを取り込むことに応答して、カメラは、上述したように、再較正され得る。例えば、取り込まれた画像305A又は305Bを評価して、画像の品質、又は画像内の魚の描写を決定することができる。画像305A又は305Bが著しくぼやけている、オクルージョンを有する、又は魚がカメラに対して望ましくない角度にある(例えば、魚の長手方向軸が、カメラに対して垂直でない)場合、カメラは、再較正され、別の画像が取り込まれ得る。
【0031】
[0036] いくつかの実施態様では、前処理の一部として、取得された画像内の魚の識別が、決定され得る。例えば、形態学的マーク、遺伝学的マーク、マイクロタブ、受動一体形トランスポンダタグ、ワイヤタグ、無線タグなどの方法を使用して、タグ付け又はマーク付けされた魚が、そのタグ又はマーカーによって識別され得る。いくつかの実施態様では、取得された画像が、検査されて、魚の独特のスポットパターンを識別することができる。この独特のドットパターンは、魚の特色に対応し得、これを使用して、後続の画像と以前の画像で魚を識別することができる。
【0032】
[0037] いくつかの実施態様では、前処理の一部として、左右ステレオ画像305A及び305Bを組み合わせて、任意の好適な画像の組み合わせ、又はステレオ対応技術などの併合技術を使用して単一の画像を形成することができる。対象物検出が実行されて、複数の前処理された画像、又は単一の前処理された画像310A内で魚を検出することができる(S310)。いくつかの実施態様では、より高速な再帰型畳み込みニューラルネットワーク(RCNN)を利用して対象物検出を実行することができる。
【0033】
[0038] いくつかの実施態様では、セマンティックセグメンテーションを実行して、画像内の背景から画像内の魚をセグメント化することができる。セマンティックセグメンテーションにより、魚の詳細な特徴をより容易に分析することができる。一般に、様々な好適な対象物検出技術を使用して、単一の前処理された画像310A内の魚を検出することができる。
【0034】
[0039] 図3Aに示すように、境界ボックスを使用して、画像310A内の検出された対象物を識別することができる。境界ボックスは、深度測定、及び測定された寸法の誤差のマージンに基づいて、測定された寸法を含み得る。境界ボックス、又は検出された対象物は、画像310A内の魚の画像などの、画像310A内の関心領域に対応することができる。複数のフレームが処理されている場合、最近傍アルゴリズムを使用して、フレーム間で合致が最も予想される対象物を見つけることができる。
【0035】
[0040] いくつかの実施態様では、深度マップを生成して、カメラからの魚の距離を決定することができる。深度マップは、任意の好適な技術を使用して生成することができる。例えば、レイリー散乱又は画像アレイ深度再構成を使用して、深度マップを作成することができる。さらに、立体カメラ、ソナー、音響カメラ、又はレーザのうちの1つ以上を利用して、カメラレンズからの魚の距離を決定することができる。
【0036】
[0041] 1つ以上の画像、例えば、組み合わされた単一画像、ステレオ画像ペア、又は一連の画像内の魚を検出し、境界ボックスを使用して関心領域を識別した後に、姿勢推定器を使用して、各関心領域内のキーポイントを識別することができる(S315)。この姿勢推定器は、図4を参照してさらに説明される。いくつかの実施態様では、この姿勢推定器は、DeepPose動作、マルチ魚姿勢推定動作、又は畳み込みニューラルネットワーク動作を実行することができる。画像315A(拡大版が、図5に示されている)に示すように、キーポイントは、目、鼻孔、えら板、えら蓋、補助骨、胸びれ、側線、背びれ、あぶらびれ、腹びれ、尻びれ、及び尾びれなどの魚の特徴と関連付けられ得る。キーポイントは、画像内の画素位置を反映する数値座標によってラベル付けされ得、魚の特定の特徴と関連つけられ得る。
【0037】
[0042] いくつかの実施態様では、キーポイント及び関連付けられている特徴が画像内で部分的に表示されず、又は視認不可能であり得る場合であっても、姿勢推定器は、キーポイント及び関連付けられている特徴の確率が特定の場所に存在することに基づいて、キーポイント及び関連付けられている特徴らしきものを依然として識別することができる。キーポイント場所の確率は、画像内の魚の予想形状、サイズ、もしくは種類、又は魚の他の特徴の場所、のうちの1つ以上に基づくことができる。例えば、基準として図5を使用すると、あぶらびれが画像内に示すことができなくても、あぶらびれの場所は、画像内の尾びれ及び背びれの位置に基づいて、確率モデルを使用して推定することができる。
【0038】
[0043] 次に、魚の3-Dモデル320Aが、魚の特徴に関連付けられている識別されたキーポイントを使用して、生成され得る(S320)。一般に、様々な2-Dの、3-Dへの変換技術を使用することができる。例えば、いくつかの実施態様では、2-D画像内のキーポイントは、深度マップを使用して魚の3-Dモデル320Aにマッピングすることができる。この深度マップは、ブロックマッチングアルゴリズム、運動からの深度、又はセミグローバルマッチング及び相互情報量による立体処理などの様々な技術を使用して決定され得る。対象物、すなわち、ステレオ画像(例えば、左及び右画像)内の魚が検出され得、決定されたカメラからの深度、及び画像と検出された対象物との間の不一致を使用して、3-Dモデル320Aを使用することができる。3-Dモデル320Aは、撮像された魚の推定された形状及びサイズを提供する。
【0039】
[0044] いくつかの実施態様では、生成された3-Dモデル320Aは、スコア化及びランク付けされ得る。スコア及びランクは、生成された3-Dモデルの品質係数、及び魚の取り込まれた画像を反映する。モデル320Aのスコアは、カメラに対する魚の仰角、カメラに対する魚の平坦度、カメラに対する魚の姿勢又は垂直性、カメラに対する魚の距離、又は特定の姿勢をスコア化するためのニューラルネットワークモデル、のうちの1つ以上を含む多くのパラメータに基づいて決定され得る。魚の仰角、平坦度、及び垂直性、並びにカメラからの魚の距離の値は、深度マップを決定するとき、及びキーポイントの場所を決定するときなどの、以前の動作の中で決定され得る。場合によっては、様々なパラメータが、様々な重みに割り当てられ得る。
【0040】
[0045] 例えば、場合によっては、より大きい仰角を有する魚、又はカメラからより大きい距離にある魚は、低いスコアを有し得る。場合によっては、魚がカメラに対して比較的垂直又は水平には見えない魚の画像は、より低いスコアが付けられ得る。場合によっては、決定されたキーポイントの数を使用して、スコアを計算することができる。例えば、より多くのキーポイント数が画像から決定された画像に対して、又はより少ないキーポイントが、画像内で視認できる1つ以上のキーポイントの不足に起因して、確率モデルを使用して決定された画像に対しては、より高いスコアが与えられ得る。一般に、スコアが高いほど、画像及び3-Dモデルの品質は、より良好である。
【0041】
[0046] 3-Dモデル320Aのスコアは、利用可能である場合、同じ魚に対する3-Dモデルの他のスコアと並行してランク付けされ得る。例えば、図3Bの項目325Aに示すように、A312などの識別表示を割り当てられた魚の3-Dモデル320Aは、86のスコアを有し、23にランク付けされている。一般に、上で説明した基準を使用する、様々な種類のスコアシステム及びランク付けシステムが利用され得る。
【0042】
[0047] スコア又はランク付けが閾値を満たす場合、3-Dモデル320Aを利用して、魚の重量を決定することができる(S330)。例えば、閾値がスコア85以上、又はランク25以上である場合、3-Dモデル320Aは、項目325Aに示されたスコア及びランクに基づいて、閾値を満たすことができる。閾値は、異なる魚、環境、又は魚タンクの場合に、異なるように設定することができる。
【0043】
[0048] 魚の重量を決定するために、線形回帰モデルを使用して、3-Dモデル320Aを重量にマッピングすることができる。例えば、3-Dモデル320A内のキーポイントの座標を使用して、2つのキーポイント間の距離を決定することができ、決定された距離、及びキーポイントを線形回帰モデルに入力して魚の推定重量を決定することができる。図3Bの項目330Aに示すように、A312のIDを有する撮像された魚は、23ポンドの推定重量を有し得る。
【0044】
[0049] 次いで、画像内に取り込まれた魚の推定された重量、形状、サイズ、及び3-Dモデルは、結果として出力することができる(S335)。この結果は、いくつかの方法で出力され得る。例えば、場合によっては、3-Dモデル320A、並びに推定された重量、形状、及びサイズは、コンピュータ装置のディスプレイ335A上に表示することができる。場合によっては、それらの結果は、データベース内の、その魚のための魚プロファイルに保存することができる。それらの結果は、その魚と関連付けられている以前の結果に追加又は集約することができる。重量及びサイズ寸法に対する新しい平均値が、定期的に決定され得、又は各時間に新しい結果が、生成される。
【0045】
[0050] いくつかの実施態様では、保存された魚データは、魚の追跡記録を提供することができる。例えば、魚は、魚タンク内で、その魚の終生にわたって追跡され得る。魚は、誕生からその成長を通じて、完全に育った成魚になるまで、追跡することができる。したがって、魚が経験した変化の詳細なタイミング及び種類が、記録され得る。研究者又は魚購入者などのグループが魚の履歴についてより多くを学ぶことに興味を持った場合、魚データベースに照会して、魚の履歴に関する情報を検索することができる。
【0046】
[0051] いくつかの実施態様では、その結果を提供して、姿勢推定器を訓練することができる。例えば、魚の画像及び当該決定された3-Dモデル、推定された重量、形状、及びサイズを基準として提供して、訓練データとして姿勢推定器を訓練するか、又は全体的な魚重量計算のための加重平均として使用することができる。それらの結果に対するフィードバックが利用可能である場合、そのフィードバックもまた、訓練データとして提供することもできる。例えば、批評者が、その結果を閲覧した後に、その結果が貧弱な推定であることを示した場合、批評者のフィードバックは、姿勢推定器への訓練データとして提供され得る。
【0047】
[0052] 一般に、魚は、長期間にわたって、また短期間にわたって追跡され得る。短期間の追跡の場合、魚の継続的なビデオが、カメラシステムを制御することによって得ることができ、その結果、カメラシステム内のカメラは、魚が移動するときに、魚の画像を継続的に取り込むことができる。場合によっては、カメラシステムは、魚の動きを自動的に追跡するようにプログラム動作され得る。場合によっては、カメラシステムを、ユーザ、例えば、システム管理者によって手動で制御して、魚の動きを追跡することができる。
【0048】
[0053] 長期間の追跡の場合、定期的な魚画像が、例えば、数日毎、数週間毎、又は数ヶ月毎に取得することができる。魚を識別するための方法を利用して、画像内の魚が同一物であることを確認し、識別された魚のプロファイルを更新することができる。例えば、場合によっては、魚を識別するための方法は、表現学習を介して魚の画像から特徴を抽出することを含むことができ、その表現学習は、メトリック損失を使用して、当該魚のポジティブ画像サンプル、すなわち同じ魚、及びネガティブ画像サンプル、すなわち異なる魚に基づいて、特徴抽出器を学習させるものである。場合によっては、ハンドエンジニアリングを使用して、魚の画像から特徴を抽出することができる。
【0049】
[0054] 特徴抽出の結果は、魚画像を高次元ベクトル空間内のベクトルにマッピングする関数である。画像内の魚の各検出は、新しい観察(最初の光景)であるか、又は他の例のクラスター(繰り返し訪問)に近いものかのどちらかである。クラスタリングアルゴリズム(例えば、K平均法又は混合ガウス)を使用して、クラスターを計算することができる。魚が成熟するに従って時間の経過と共に、クラスターは、ドリフト又は拡張し得、この進展を追跡することができる。
【0050】
[0055] 図3Bに戻って参照すると、いくつかの実施態様では、撮像された魚の重量を決定した後、システムは、魚のさらなるデータがユーザによって要求されるのか、又は必要とされているかどうかを判定することができる。魚のさらなるデータが要求又は必要とされる場合、システムは、動作S305から始まる、図3A及び図3Bの動作を繰り返すことになる。魚のデータがもはや要求又は必要とされない場合、魚の重量、形状、及びサイズを決定するための方法は、終了され得る。
【0051】
[0056] 魚に対する追加のデータのための要求は、明示的又は暗黙的であってもよい。例えば、場合によっては、システムは、プログラムされて、魚の平均重量を決定するための複数のデータセットを取得することができ、測定は、データセットの必要数が得られるまで、繰り返され得る。場合によっては、システムは、ユーザからの要求を受信して、特定の魚のための追加データを取得することができる。
【0052】
[0057] 図4は、魚のサイズ、形状、及び重量を決定するための典型的なシステム400を示す。このシステム400は、魚タンク480、計算装置490、及びサーバ475を備えることができる。魚タンク480は、図1A図1B、及び図2を参照して説明した魚タンクに対応する。魚タンク480は、魚モニタリングシステムを含むことができ、その魚モニタリングシステムは、光センサ、温度計、塩分センサ、運動センサ、流れセンサ、及びカメラシステム401などの複数のセンサを含む。
【0053】
[0058] カメラシステム401は、画像を取り込むように構成されている1つ以上のビデオ/写真カメラ、ステレオカメラ、又は光学感知装置を含むことができる。例えば、カメラシステム401は、タンク480内の様々な深度及び照明条件で1つ以上の魚の画像を取り込むように構成され得る。カメラシステム401は、魚の単一の静止画像、及びまた複数の魚画像が定期的に取り込むことができる魚のビデオ画像も取り込むように構成することができる。カメラシステム401は、計算装置490から受信したコマンドに基づいて、制御され得る。
【0054】
[0059] カメラシステム401は、いくつかの異なる種類の技術によって起動させることができる。例えば、運動センサは、カメラシステム401に組み込まれてもよく、それを使用して運動が検出されたときに、カメラシステム401を起動させて1つ以上の画像を取り込むことができる。いくつかの実施態様では、カメラシステム401は、計算装置490又はセンサから画像を取り組むためのコマンドを受信するように構成されている。
【0055】
[0060] いくつかの例では、カメラシステム401は、一体型又は外部の照明器、例えば、赤外線、ゼットウェーブ制御式「白色」ライト、計算装置490により制御されるライトを起動させて、光が不足しているときに画像品質を向上させることができる。一体型又は個別の光センサを使用して、照明が必要とされるかどうかを判定することができる。照明器を作動させることにより、画像品質の向上をもたらすことができる。
【0056】
[0061] カメラシステム401は、時間/日付スケジュール、システム作動コマンド、又は他の変数の任意の組み合わせと共にプログラムされて、画像がいつ取り込まれるべきかを決定することができる。カメラシステム401は、画像を取り込まないときは、低電力モードに入ることができる。場合によっては、カメラシステム401は、内部の交換可能なバッテリーによって電力供給されてもよい。場合によっては、カメラシステム401は、光が利用可能であるときに、小型太陽光電池を使用してバッテリーを再充電することができる。
【0057】
[0062] カメラシステム401は、ケーブルを介して計算装置490に接続され得、画像405Aなどのデータは、ケーブルを介して計算装置490と通信することができる。計算装置490は、姿勢推定器492、メモリ494、プロセッサ496、及び入力/出力装置498を含むことができる。姿勢推定器492は、ニューラルネットワークを含むことができ、訓練データ及び様々な機械学習方法を使用して訓練され得る。訓練データには、特徴の位置及び種類が異なる魚の多数の画像が含まれる場合がある。訓練に基づいて、姿勢推定器492は、魚の特徴の確度の高い場所、並びに特徴の形状、サイズ、及び色などの特徴の特性の相違を決定することができる。姿勢推定器492を訓練して、魚の形状及びサイズ、並びにその魚の特徴の場所の相違が、魚の重量にどのように影響を及ぼすかを決定することができる。
【0058】
[0063] メモリ494は、1つ以上の大容量記憶装置、例えば、磁気ディスク、光磁気ディスク、光学ディスク、EPROM、EEPROM、フラッシュメモリデバイスとして実装されてもよく、またデータを格納するための内蔵ハードディスク、取り外し可能ディスク、光磁気ディスク、CDROM、又はDVD-ROMディスクとして実装されてもよい。いくつかの実施態様では、メモリ494は、魚プロファイルデータを格納することができ、この魚プロファイルデータには、サイズ、形状、重量、スコア、及び各プロファイルされた魚と関連付けられたランク付けデータが含まれ得る。魚プロファイルデータはまた、その魚の1つ以上の画像及び3-Dモデルも含むことができる。いくつかの実施態様では、メモリ494は、姿勢推定器492を訓練するための訓練データ、及びRCNNを訓練するためのデータを格納することができる。
【0059】
[0064] 入力/出力装置498は、キーボード、ポインティングデバイス、マウス、入力用ペン、及び/又はタッチセンシティブパネル、例えば、タッチパッド又はタッチスクリーンなどの入力装置を含み得る。出力装置は、ディスプレイ、スクリーン、スピーカー、及び一般にデジタルデータを出力することができる任意のデバイスを含み得る。入力/出力装置498はまた、送受信機も含むことができ、その送受信機は、送信機及び受信機を含み、サーバ475と通信するために利用されることができる。この送受信機は、増幅器、変調器、復調器、アンテナ、及び各種の他のコンポーネントを含み得る。送受信機は、サーバ475に接続された装置間でデータを転送又はルーティングすることができる。送受信機は、タンク480とサーバ475との間、及び計算装置490とサーバ475との間で通信されるデータをルーティングすることができる。例えば、魚の重量、形状、サイズ、及び3-Dモデルを決定した後、計算装置490は、送受信機を介して、魚の識別表示、スコア、ランク、及び重量情報などの魚プロファイル情報430Aをサーバ475に送信することができる。
【0060】
[0065] プロセッサ496は、本明細書で説明された方法を実施するための命令を実行するための姿勢推定器492、メモリ494、及び入力/出力装置498に結合され得る。いくつかの実施態様では、実行可能な命令が、メモリ装置110内に格納され得る。プロセッサ496は、1つ以上の実行可能な命令として動作を符号化し、そしてメモリ装置110内に実行可能な命令を提供することによって、プログラムされ得る。プロセッサ496は、例えば、マルチコア構成で、1つ以上の処理ユニットを含み得るが、これに限定されない。処理ユニットという用語は、本明細書で使用されるとき、マイクロプロセッサ、マイクロコントローラ、縮小命令セット回路(RISC)、特定用途向け集積回路(ASIC)、論理回路、及び本明細書に記載されている動作を実行するための命令を実行することができる任意の他の回路又はデバイスを指す。姿勢推定器492は、プロセッサ496の一部として実装され得るか、又はプロセッサ496に電気的に接続され得る。
【0061】
[0066] いくつかの実施態様では、サーバ475は、複数のサーバとして実装され得、サーバ475の様々なコンポーネントが、複数のサーバにわたって分散配置され得る。サーバ475は、1つ以上のネットワークを介して、計算装置490に接続され得る。図3A及び図3Bに図示された方法の1つ以上の動作は、計算装置490又はサーバ475で実施され得、その結果、方法の一部分は、計算装置490によって実行され、他の部分は、サーバ475によって実行され得る。
【0062】
[0067] サーバ475は、1つ以上のネットワークに結合された任意の好適な計算装置を含み得、それらには、パーソナルコンピュータ、サーバコンピュータ、一連のサーバコンピュータ、ミニコンピュータ、及びメインフレームコンピュータ、並びにそれらの組み合わせが含まれるが、これらに限定されない。例えば、サーバ475は、ネットワークオペレーティングを実行するウェブサーバ(又は一連のサーバ)を含んでもよい。いくつかの実施態様では、サーバ475は、魚プロファイルデータベースなどの1つ以上のデータベースに接続されるか、又はこれらと統合されてもよい。
【0063】
[0068] サーバ475はまた、セキュアソケットレイヤ(SSL)で保護されたファイル転送プロトコル、セキュアシェルファイル転送プロトコル(SFTP)ベースの鍵管理、及びNaCI暗号化ライブラリなどの共通かつ標準のプロトコル及びライブラリも実装することができる。サーバ475は、クラウド及び/又はネットワークコンピューティングのために使用及び/又は提供され得る。図には示されていないが、サーバ475は、電子メール、SMSメッセージング、テキストメッセージングなどのメッセージング機能性、及び暗号化/復号化サービス、サイバーアラートなどの他の機能性を提供する外部システムへの接続を有してもよい。
【0064】
[0069] 1つ以上のネットワークは、ネットワークアクセス、データ伝送、及び他のサービスをサーバ475に提供することができる。1つ以上のネットワークは、任意の一般的に規定されたネットワークアーキテクチャを包含及び実装してもよく、そのアーキテクチャには、グローバルシステムフォーモバイルコミュニケーションズ(GSM)アソシエーション、インターネットエンジニアリングタスクフォース(IETF)、及びワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMAX)フォーラムなどの標準化団体により規定されたネットワークアーキテクチャが含まれる。例えば、1つ以上のネットワークは、GSMアーキテクチャ、汎用パケット無線サービス(GPRS)アーキテクチャ、及びユニバーサルモバイルテレコミュニケーションシステム(UMTS)アーキテクチャのうちの1つ以上を実装してもよい。1つ以上のネットワークは、WiMAXフォーラム又はワイヤレスフィディリティ(WiFi)アーキテクチャにより規定されたWiMAXアーキテクチャを実装してもよい。1つ以上のネットワークは、例えば、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、仮想LAN(VLAN)、企業LAN、レイヤ3仮想プライベートネットワーク(VPN)、企業IPネットワーク、企業ネットワーク、又はこれらの組み合わせを含んでもよい。いくつかの実施態様では、1つ以上のネットワークは、インターネット接続、及び他のネットワーク関連機能を提供するクラウドシステムを含んでもよい。
【0065】
[0070] サーバ475は、魚プロファイルデータベースなどの1つ以上のデータベースと接続又は統合され得る。1つ以上のデータベースは、クラウドデータベース、又はデータベース管理システム(DBMS)により管理されたデータベースを含み得る。DBMSは、データベース内のデータの編成、保存、管理、及び検索を制御するエンジンとして実装され得る。DBMSは、クエリー、バックアップ及び複製、規則の励行、セキュリティの提供、計算の実行、変更の実行、及びログへのアクセス、並びに自動最適化の機能を頻繁に提供する。DBMSの例としては、Oracle(登録商標)データベース、IBM(登録商標)DB2、Adaptive Server Enterprise、FileMaker(登録商標)、Microsoft(登録商標)Access(登録商標)、Microsoft(登録商標)Structured Query Language(SQL)Server、MySQL(登録商標)、PostgreSQL(登録商標)、MongoDB、Mondo/ES JavaScript Object Notification(JSON)、及びNoSQL実装が含まれる。DBMSは、通常、モデリング言語、データ構造、データベースクエリー言語、及びトランザクションメカニズムを含む。モデリング言語は、データベースモデルに応じて、DBMS内の各データベースのスキーマを定義するために使用され得、階層モデル、ネットワークモデル、リレーショナルモデル、オブジェクトモデル、又はいくつかの他の適用可能な既知の、又は簡便な構成を含み得る。データ構造は、フィールド、レコード、ファイル、オブジェクト、及びデータを格納するための任意の他の適用可能な既知の、又は簡便な構造を含み得る。DBMSはまた、格納されるデータについてのメタデータも含むことができる。
【0066】
[0071] 本明細書に記載された実施形態、並びに機能的動作及び/又は操作は、デジタル式電子回路内に、もしくは、本明細書に開示された構造体、及びそれらの構造上の等価物を含むコンピュータソフトウェア、ファームウェア、もしくはハードウェア内に、又はそれらのうちの1つ以上を組み合わせて、実装することができる。実施形態は、1つ以上のコンピュータプログラム製品、例えば、データ処理装置により実行するための、又はデータ処理装置の動作を制御するための、コンピュータ可読媒体上に符号化されたコンピュータプログラム命令の1つ以上のモジュールとして、実装されてもよい。コンピュータ可読媒体は、機械可読記憶装置、機械可読記憶基板、メモリ装置、機械可読伝播信号を引き起こす物質の組成物、又はこれらのうちの1つ以上の組み合わせであってもよい。「データ処理装置」という用語は、データを処理するためのすべての装置、デバイス、及び機械を包含し、それらには、例として、プログラマブルプロセッサ、コンピュータ、又は複数のプロセッサもしくはコンピュータが含まれる。それらの装置は、ハードウェアに加えて、当該コンピュータプログラムのための実行環境を作り出すコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、又はそれらのうちの1つ以上の組み合わせを構成するコードを含んでもよい。伝播信号は、人工的に生成された信号、例えば、好適な受信機装置に伝送するための情報を符号化するように生成される、機械で生成された電気的、光学的、又は電気磁気的信号である。
【0067】
[0072] コンピュータプログラムはまた、プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプト、又はコードとしても知られており、コンパイル式又はインタープリット式言語を含む、任意の形式のプログラミング言語で記述することができ、独立型プログラムとして、又はモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境で使用するために好適な他のユニットとして含まれる任意の形式で導入されてもよい。コンピュータプログラムは、必ずしもファイルシステム内のファイルに対応する必要はない。プログラムは、他のプログラム又はデータを保持するファイルの一部に、問題のプログラム専用の単一のファイル、又は複数の調整ファイルに格納することができる。コンピュータプログラムは、1つのサイトに配置されるか、又は複数のサイトにわたって分散、かつ通信ネットワークにより相互接続された、1つのコンピュータ上又は複数のコンピュータ上で、実行され得る。
【0068】
[0073] 本明細書に記載されたプロセス及びロジックフローは、1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行され得、そのコンピュータプログラムは、入力データ上で動作し、出力を生成することによって動作を実行する。プロセス及びロジックフローはまた、専用論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)又はASIC(特定用途向け集積回路)によって実行され得、装置もまた、それらのものとして実装され得る。
【0069】
[0074] コンピュータプログラムの実行のために好適なプロセッサとしては、例として、汎用及び専用の両用マイクロプロセッサ、並びに任意の種類のデジタルコンピュータのうちの任意の1つ以上のプロセッサが含まれる。一般に、プロセッサは、読み取り専用メモリもしくはランダムアクセスメモリ、又はその両方から命令及び/又はデータを受信することになる。プロセッサは、ハードウェア及びソフトウェアの任意の好適な組み合わせを含むことができる。
【0070】
[0075] コンピュータの要素には、命令を実行するためのプロセッサ、並びに命令及びデータを格納するための1つ以上のメモリ装置が含まれ得る。一般に、コンピュータはまた、データを格納するための1つ以上の大容量記憶装置、例えば、磁気ディスク、光磁気ディスク、もしくは光ディスクを含み、又は大容量記憶装置からデータを受信もしくは転送又はその両方を行うように動作可能に大容量記憶装置に結合されることになる。さらに、コンピュータは、別の装置、例えば、ユーザ装置内に内蔵されてもよい。コンピュータプログラム命令及びデータを格納するための好適なコンピュータ可読媒体は、不揮発性メモリ、媒体、及びメモリ装置のすべての形態を含み、例として、EPROM、EEPROM、及びフラッシュメモリ装置などの半導体メモリ装置、磁気ディスク、例えば、内蔵ハードディスク又は取り外し可能ディスク、光磁気ディスク、並びにCD-ROM及びDVD-ROMディスクが含まれる。プロセッサ及びメモリは、専用ロジック回路によって補足され、又はそれに組み込まれ得る。
【0071】
[0076] 本明細書は多くの特定例を含んでいるが、これらは、本開示、又は請求され得る事項の範囲に限定したもとして解釈されるべきではなく、逆に特定の実施形態に特有の特徴に関する説明として解釈されるべきである。別々の実施形態の文脈で、本明細書に記載されている特定の特徴はまた、単一の実施形態の中に組み込んで実施することもできる。逆に、単一の実施形態の文脈で、本明細書に記載されている様々な特徴はまた、複数の実施形態の中で、別々に、又は任意の好適な副組み合わせで実施することもできる。さらに、各特徴は、特定の組み合わせで動作するものとして上記に説明され得、同様に特許請求の範囲にも記載されているが、特許請求された組み合わせからの1つ以上の特徴が、場合によっては、その組み合わせから削除され得、特許請求された組み合わせは、副組み合わせ、又は副組み合わせの変形例に向かわせる場合がある。
【0072】
[0077] 同様に、動作が特定の順番で図面に図示されているが、これは、係る動作がその示された特定の順番、もしくは一連の順番で実行されるべきであること、又は例証したすべての動作が、所望の結果を達成するために実行されるべきであることを要求するものとして理解されるべきではない。さらに、上述した実施形態中の様々なシステムコンポーネントの分離は、すべての実施形態において係る分離を必要とするものとして理解されるべきではなく、記載されたプログラムコンポーネント及びシステムは、一般に、単一のソフトウェア製品内に共に一体化されてもよく、又は複数のソフトウェア製品にパッケージ化されてもよい。
【0073】
[0078] 1つ以上という成句、及び少なくとも1つという成句は、任意の要素の組み合わせを含むことを理解されたい。例えば、A及びBのうちの1つ以上という表現は、A、B、又はA及びBの両方を含む。同様に、A及びBのうちの少なくとも1つ以上という表現は、A、B、又はA及びBの両方を含む。
【0074】
[0079] したがって、特定の実施態様が説明されてきた。他の実施態様は、以下の特許請求の範囲内に存在する。例えば、特許請求の範囲に記載された動作は、異なる順番で実行されてもよく、依然として望ましい結果を達成することができる。
図1A
図1B
図2
図3A
図3B
図4
図5