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

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

▶ リールデータ,インコーポレイテッドの特許一覧

特表2024-512320陸上養魚場でAIをベースにした給餌を行うためのシステムおよび方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-03-19
(54)【発明の名称】陸上養魚場でAIをベースにした給餌を行うためのシステムおよび方法
(51)【国際特許分類】
   A01K 61/85 20170101AFI20240312BHJP
   A01K 61/10 20170101ALI20240312BHJP
   G06T 7/00 20170101ALI20240312BHJP
   G06V 10/82 20220101ALI20240312BHJP
   G06T 7/62 20170101ALN20240312BHJP
【FI】
A01K61/85
A01K61/10
G06T7/00 350C
G06V10/82
G06T7/62
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023553479
(86)(22)【出願日】2022-03-07
(85)【翻訳文提出日】2023-09-26
(86)【国際出願番号】 CA2022050323
(87)【国際公開番号】W WO2022187940
(87)【国際公開日】2022-09-15
(31)【優先権主張番号】63/157,759
(32)【優先日】2021-03-07
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ブルートゥース
2.PYTHON
3.JAVASCRIPT
(71)【出願人】
【識別番号】523333397
【氏名又は名称】リールデータ,インコーポレイテッド
(74)【代理人】
【識別番号】100114775
【弁理士】
【氏名又は名称】高岡 亮一
(74)【代理人】
【識別番号】100121511
【弁理士】
【氏名又は名称】小田 直
(74)【代理人】
【識別番号】100202751
【弁理士】
【氏名又は名称】岩堀 明代
(74)【代理人】
【識別番号】100208580
【弁理士】
【氏名又は名称】三好 玲奈
(74)【代理人】
【識別番号】100191086
【弁理士】
【氏名又は名称】高橋 香元
(72)【発明者】
【氏名】ストーン,ウィリアム
(72)【発明者】
【氏名】アディビ,ペドラム
【テーマコード(参考)】
2B104
5L096
【Fターム(参考)】
2B104AA01
2B104CA01
2B104CB04
2B104CF07
2B104CF12
2B104CF17
2B104CF22
2B104CF28
5L096BA02
5L096BA18
5L096DA02
5L096DA03
5L096FA16
5L096FA52
5L096GA06
5L096GA51
5L096HA02
5L096HA08
5L096HA11
5L096KA04
(57)【要約】
陸上養魚場における飼料監視のためのAIベースのシステムおよび方法に関する実施形態が説明され、システムは、放流管に取り付けられた、各画像の取得時に飼料カメラの視野を横切る物体の画像を有するビデオフィードを捕捉するための飼料カメラと、少なくとも食べ残しの飼料ペレットをカウントするために関心領域(ROI)提案モジュール、ROI分類モジュール、ROI追跡モジュール、および軌跡分類モジュールを用いるペレット追跡アルゴリズムを実行する専用コンピュータとを含んでよい。少なくとも1つの実施形態において、物体エンハンサは、取得画像内の物体が定義可能な周囲を有するように背景を提供するために、飼料カメラに対向して、かつ飼料カメラの視野内で放流管に取り付けられ得る。
【選択図】図5
【特許請求の範囲】
【請求項1】
魚が入った水槽と、前記水槽に結合された放流管とを有し、食べ残しの飼料ペレットおよび非ペレット物体が前記放流管を通って出口ポートに流れる陸上養魚場における飼料監視のためのシステムであって、
各画像の取得時に飼料カメラの視野を横切る、食べ残しの飼料ペレットおよび非ペレット物体を備える物体を含む、前記放流管の内部の画像を備えるビデオフィードを捕捉するように構成された飼料カメラと、
前記飼料カメラに背景を提供するために前記飼料カメラに対向し、前記飼料カメラの前記視野内にある物体エンハンサであって、前記飼料カメラと前記物体エンハンサとの間を通過し、前記ビデオフィードの少なくとも1つの取得画像に捕捉される前記物体が、前記少なくとも1つの取得画像内で定義可能な周囲を有するようにする、物体エンハンサと、
少なくとも1つのプロセッサと、実行されると前記少なくとも1つのプロセッサに、
所与の時間間隔で前記ビデオフィードからいくつかの画像を取得するステップと、
前記画像を前処理し、前記物体が飼料ペレットである可能性のある、各々が前記画像内の固有物体に対応する候補関心領域(ROI)を取得するステップと、
前記候補ROIに分類を行い、前記候補ROIに対応する前記物体が飼料ペレットクラスに属する確率を表すペレットネススコアを取得するステップと、
保持された候補ROIが前記飼料ペレットクラスに属する可能性が高いという見込みに基づいて、前記候補ROIを保持するかを決定するステップと、
前記保持された候補ROIの各々を軌跡に割り当てるステップと、
前記軌跡をペレット軌跡または非ペレット軌跡に分類するステップと、
前記ペレット軌跡に基づいて、前記水槽内の前記魚によって消費されなかった前記食べ残しの飼料ペレットの所定の割合を表すペレットカウントをリアルタイムで生成するステップと
を行わせる命令が格納された非一時的コンピュータ可読媒体とを備えるコンピューティングデバイスと
を備えるシステム。
【請求項2】
前記少なくとも1つのプロセッサは更に、前記ペレットカウントを前記養魚場に送信するように構成され、前記ペレットカウントは、前記ペレットカウントに少なくとも部分的に基づいて前記水槽に供給する魚用飼料の新たな量を生成するために魚用給餌器によって用いられる、請求項1に記載のシステム。
【請求項3】
前記少なくとも1つのプロセッサは更に、前記ペレットカウントに基づいて制御信号を生成し、前記水槽に供給する魚用飼料の新たな量を生成するために前記養魚場の魚用給餌機に前記制御信号を送信するように構成される、請求項1に記載のシステム。
【請求項4】
前記少なくとも1つのプロセッサは更に、前記時間間隔における前記食べ残しの飼料ペレットの勾配を決定し、前記勾配が勾配閾値よりも大きい場合に警告を生成するように構成される、請求項1~3のいずれか1項に記載のシステム。
【請求項5】
前記物体エンハンサは、前記飼料カメラと前記物体エンハンサとの間を通過する前記物体に対してコントラストをもたらす背景を提供する高密度ポリエチレン(HDPE)シートである、請求項1~4のいずれか1項に記載のシステム。
【請求項6】
前記少なくとも1つのプロセッサは、後続の画像フレームにおいて位置が変わる可能性が高い任意の物体を識別するために所与の画像フレームに背景減算を行い、識別された各物体に潜在的ROIである境界を画定するために前記識別された物体に輪郭検出を行い、前記候補ROIを取得するために前記潜在的ROIをフィルタすることによって、前記所与の画像フレームにおける前記候補ROIを取得するように構成される、請求項1~5のいずれか1項に記載のシステム。
【請求項7】
前記少なくとも1つのプロセッサは、各候補ROIについて、所与のサンプルが対応する候補ROIの画像データを含むサンプルを生成し、前記サンプルを前処理し、前記サンプルが異なるクラスに属する確率を有する確率分布を生成するために前処理された各サンプルにROI分類器を適用することによって、前記候補ROIの分類を行うように構成される、請求項1~6のいずれか1項に記載のシステム。
【請求項8】
前記クラスは、ペレットクラス、非ペレットクラス、および曖昧クラスを含む、請求項7に記載のシステム。
【請求項9】
前記ペレットネススコアは、前記サンプルが前記ペレットクラスに属する確率を表す、請求項8に記載のシステム。
【請求項10】
前記少なくとも1つのプロセッサは、同じ行列サイズを有するように前記サンプルをリサイズし、平均中心正規化を行うことによって、前記サンプルを前処理するように構成される、請求項7~9のいずれか1項に記載のシステム。
【請求項11】
前記少なくとも1つのプロセッサは、(a)アクティブな軌跡がない場合、前記候補ROIを別の新たな軌跡に割り当て、(b)アクティブな軌跡がある場合、前記候補ROIの位置と最も近いアクティブな軌跡内の最後のROIの位置との間の距離が距離閾値よりも小さい場合は、前記候補ROIを前記最も近いアクティブな軌跡に割り当て、または(c)アクティブな軌跡がある場合、前記候補ROIの位置と前記最も近いアクティブな軌跡内の最後のROIの位置との間の距離が距離閾値よりも大きい場合は、前記候補ROIを新たなアクティブな軌跡に割り当てることによって、1つの画像フレーム内の前記候補ROIの各々を前記軌跡の1つに割り当てるように構成される、請求項1~10のいずれか1項に記載のシステム。
【請求項12】
前記少なくとも1つのプロセッサは、前記所与の期間に前記画像の1つに関して更新されていない軌跡を含む終了した軌跡を識別し、前記終了した軌跡の各々について少なくとも1つの軌跡測定値を決定し、前記少なくとも1つの軌跡測定値に基づいて、どの終了した軌跡が前記ペレット軌跡クラスに属するかを決定することによって、前記軌跡をペレット軌跡または非ペレット軌跡に分類するように構成される、請求項1~11のいずれか1項に記載のシステム。
【請求項13】
前記少なくとも1つのプロセッサは、前記少なくとも1つの軌跡測定値を閾値と比較すること、または前記少なくとも1つの軌跡測定値を軌跡分類器に提供することによって、どの終了した軌跡が前記ペレット軌跡クラスに属するかを決定するように構成される、請求項12に記載のシステム。
【請求項14】
前記少なくとも1つの軌跡測定値は、前記終了した軌跡の長さ、前記終了した軌跡を備えるROIのペレットネススコアの分布、および/または1または複数の他のフィルタ値の統計分布の少なくとも1つの測度を含む、請求項12または請求項13に記載のシステム。
【請求項15】
前記飼料カメラは、前記物体エンハンサの下側に連結され、前記取得画像が前記物体エンハンサの少なくとも一部を示すように前記物体エンハンサとの間隔を有する、請求項1~14のいずれか1項に記載のシステム。
【請求項16】
前記放流管に取り付けられたブラケットを更に備え、前記物体エンハンサは、使用中に前記物体エンハンサおよび前記飼料カメラの回転性を制限するために2つ以上の位置で前記ブラケットに取り付けられる、請求項1~15のいずれか1項に記載のシステム。
【請求項17】
前記物体エンハンサは、前記放流管から増加した量の水流が出る時に前記物体エンハンサが前記出口ポートから移動可能であるように、前記放流管の前記出口ポートに隣接して摺動可能に取り付けられる、請求項1~16のいずれか1項に記載のシステム。
【請求項18】
前記飼料カメラは、前記放流管に隣接したブラケットに固定され、前記物体エンハンサは、前記ブラケットの上で支柱に摺動可能に取り付けられる、請求項1~14のいずれか1項に記載のシステム。
【請求項19】
前記飼料カメラは、前記放流管に固定され、前記物体エンハンサは、前記放流管から異なる量の水流が出る場合に上下に動くことができるように、前記放流管に隣接して摺動可能に取り付けられる、請求項1~14のいずれか1項に記載のシステム。
【請求項20】
前記物体エンハンサは、前記放流管に隣接して摺動可能に取り付けられ、前記飼料カメラは、前記放流管から異なる量の水流が出る場合に前記物体エンハンサが上下に動くことができ、前記飼料カメラが前記物体エンハンサから一定の距離に保たれるように、前記物体エンハンサから前記一定の距離離れて前記物体エンハンサに結合される、請求項1~14のいずれか1項に記載のシステム。
【請求項21】
陸上養魚場の水槽における飼料監視のためのコンピュータ実装方法であって、
所与の時間間隔で飼料カメラから取得されたビデオフィードから画像フレームおよび関連メタデータを読み取ることであって、前記飼料カメラによって取得された前記画像フレームは、前記水槽から排出される食べ残しの飼料ペレットおよび非ペレット物体の画像であることと、
前記画像フレームを前処理し、前記物体が飼料ペレットである可能性のある、各々が前記画像内の固有物体に対応する候補関心領域(ROI)を取得することと、
前記候補ROIに分類を行い、前記候補ROIに対応する前記物体が飼料ペレットクラスに属する確率を表すペレットネススコアを取得することと、
前記候補ROIが前記飼料ペレットクラスに属する可能性の程度に基づいて、前記候補ROIを保持するかを決定することと、
前記保持された候補ROIの各々を軌跡に割り当てることと、
前記軌跡をペレット軌跡または非ペレット軌跡に分類することと、
前記ペレット軌跡に基づいて、前記水槽内の前記魚によって消費されなかった前記食べ残しの飼料ペレットの所定の割合を表すペレットカウントをリアルタイムで生成することと
を備える方法。
【請求項22】
前記方法は更に、前記ペレットカウントを前記養魚場に送信することを備え、前記ペレットカウントは、前記ペレットカウントに少なくとも部分的に基づいて前記水槽に供給する魚用飼料の新たな量を生成するために魚用給餌器によって用いられる、請求項21に記載の方法。
【請求項23】
前記方法は更に、前記ペレットカウントに基づいて制御信号を生成することと、前記水槽に供給する魚用飼料の新たな量を生成するために前記養魚場の魚用給餌機に前記制御信号を送信することとを備える、請求項21に記載の方法。
【請求項24】
前記方法は更に、前記所与の時間間隔における前記食べ残しの飼料ペレットの勾配を決定することと、前記勾配の1つが勾配閾値よりも大きい場合に警告を生成することとを備える、請求項21~23のいずれか1項に記載の方法。
【請求項25】
所与の画像フレーム内の前記候補ROIを取得することは、後続の画像フレームにおいて位置が変わる可能性が高い任意の物体を識別するために前記所与の画像フレームに背景減算を行うことと、識別された各物体に潜在的ROIである境界を画定するために前記識別された物体に輪郭検出を行うことと、前記候補ROIを取得するために前記潜在的ROIをフィルタすることとを備える、請求項21~23のいずれか1項に記載の方法。
【請求項26】
前記候補ROIに分類を行うことは、各候補ROIについて、所与のサンプルが対応する候補ROIの画像データを含むサンプルを生成することと、前記サンプルを前処理することと、前記サンプルが異なるクラスに属する確率を有する確率分布を生成するために前処理された各サンプルにROI分類器を適用することとを備える、請求項21~24のいずれか1項に記載の方法。
【請求項27】
前記クラスは、ペレットクラス、非ペレットクラス、および曖昧クラスを含む、請求項26に記載の方法。
【請求項28】
前記ペレットネススコアは、前記サンプルが前記ペレットクラスに属する確率を表す、請求項27に記載の方法。
【請求項29】
前記方法は、同じ行列サイズを有するように前記サンプルをリサイズし、平均中心正規化を行うことによって、前記サンプルを前処理することを備える、請求項21~27のいずれか1項に記載の方法。
【請求項30】
1つの画像フレーム内の前記候補ROIの各々を前記軌跡の1つに割り当てることは、(a)アクティブな軌跡がない場合、前記候補ROIを別の新たな軌跡に割り当てること、(b)アクティブな軌跡がある場合、前記候補ROIの位置と最も近いアクティブな軌跡内の最後のROIの位置との間の距離が距離閾値よりも小さい場合は、前記候補ROIを前記最も近いアクティブな軌跡に割り当てること、または(c)アクティブな軌跡がある場合、前記候補ROIの位置と前記最も近いアクティブな軌跡内の最後のROIの位置との間の距離が距離閾値よりも大きい場合は、前記候補ROIを新たなアクティブな軌跡に割り当てることを備える、請求項21~28のいずれか1項に記載の方法。
【請求項31】
前記軌跡をペレット軌跡または非ペレット軌跡に分類することは、前記所与の期間に前記画像の1つに関して更新されていない軌跡を含む終了した軌跡を識別することと、前記終了した軌跡の各々について少なくとも1つの軌跡測定値を決定することと、前記少なくとも1つの軌跡測定値に基づいて、どの終了した軌跡が前記ペレット軌跡クラスに属するかを決定することとを備える、請求項21~29のいずれか1項に記載の方法。
【請求項32】
どの終了した軌跡が前記ペレット軌跡クラスに属するかを決定することは、前記少なくとも1つの軌跡測定値を閾値と比較すること、または前記少なくとも1つの軌跡測定値を軌跡分類器に提供することを備える、請求項30に記載の方法。
【請求項33】
前記少なくとも1つの軌跡測定値は、前記終了した軌跡の長さ、前記終了した軌跡を備えるROIのペレットネススコアの分布、および/または1または複数のフィルタ値の統計分布の少なくとも1つの測度を含む、請求項30または請求項31に記載の方法。
【請求項34】
前記方法は、前記取得画像内の前記物体が定義可能な周囲を有するように前記飼料カメラに背景を提供するために、前記飼料カメラに対向し、かつ前記飼料カメラの視野内で、前記放流管の出口に隣接して物体エンハンサを取り付けることと、前記飼料カメラによって取得された前記ビデオフィードが、前記物体エンハンサの画像であり、前記画像の取得時に前記飼料カメラの前記視野を横切る物体を含む画像フレームを備えるように、前記飼料カメラを前記物体エンハンサに固定することとを備える、請求項21~32のいずれか1項に記載の方法。
【請求項35】
前記方法は、前記飼料カメラと前記物体エンハンサとの間を通過する前記物体に対して増加したコントラストをもたらす背景を提供するために、前記物体エンハンサに高密度ポリエチレン(HDPE)シートを用いることを備える、請求項34に記載の方法。
【請求項36】
魚が入った水槽を有する陸上養魚場における飼料監視のためのシステムであって、
前記水槽に結合された放流管に取り付けられた飼料カメラであって、各画像の取得時に飼料カメラの視野を横切るペレットおよび非ペレット物体を備える物体の画像を備えるビデオフィードを捕捉するように構成された飼料カメラと、
少なくとも1つのプロセッサと、実行されると前記少なくとも1つのプロセッサに請求項21~35のいずれか1項に記載の方法を行わせる命令が格納された非一時的コンピュータ可読媒体とを備えるコンピューティングデバイスと
を備えるシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2021年3月7日に出願された米国仮特許出願第63/157,759号の利益を主張するものであり、米国仮特許出願第63/157,759号の全内容は、参照によってその全体が本明細書に組み込まれている。
【0002】
本明細書において、一般に、人工知能(AI)を用いて養魚場で自動給餌を行うためのシステムおよび方法に関する様々な実施形態が説明される。
【背景技術】
【0003】
以下の段落は、本開示に対する背景として記載される。ただし、以下は、そこに記載されるものが先行技術または当業者の知識の一部であることを認めるものではない。
【0004】
陸上養殖は、魚を生産するための新たなアプローチである。海中の魚の自然な生息地を利用し、海中ケージ内で魚を生育するのではなく、陸上養殖は、水槽の中に魚の自然環境を再現することによって魚を陸上に持ち込む。このシステムは、常に水を循環させ、濾過し、魚の健康および成長を保証するための環境パラメータの最適なバランスを得ようと試みる。このクローズドシステムアプローチには、汚染、環境最適化、寄生虫、捕食者、および脱出に関する問題の消滅を含む多くの利点がある。また、養殖場が消費者市場の近くにあることが可能になり、輸送距離が短くなることによって排気量が低減する。
【0005】
これらの陸上システムを作り出すためには高度な知識が必要であるにもかかわらず、給餌の実施はさほど進化のないままである。各養殖場が異なる給餌に取り組んでいるが、どの陸上養殖場のオペレータも、廃棄飼料のレベルを理解しておくことに最善を尽くしている。多くは、廃棄物の定性的監視を基準として用いる(非常に不正確である)が、フィルタにかかった廃棄飼料ペレットを物理的にカウントする場合もある(不正確、離散的、および/または時間がかかる)。これらの方法によって個体群の食欲を測定した後、オペレータは、廃棄飼料の所見に基づいて機械給餌システムを調整する。上述した方法の非効率性により、廃棄が誤って判断された場合、養殖場のオペレータは、(1)魚に過剰に餌を与えることにより、大量の魚用飼料が無駄になり、コストおよび環境への悪影響が増大する、または(2)魚個体群に与える餌が少ないことによって成長が抑制され、収益が上がらないという、2つの明確な問題を抱える。最終的に、飼料廃棄物の絶え間ない動きは、環境および水質パラメータを変動させ、魚および濾過システムにストレスを与える。
【0006】
自動給餌技術の開発には数多くの課題がある。最も顕著なものは、精度が肝心であるという点である。小さな範囲の誤差が、大量廃棄や飢餓の例をもたらし得る。海中分野では、いくつかの解決策が提案されてきたが、その全てにおいて、ペレット強度の測度または空間および時間のインスタンスにおける一貫性のない断面の正確な測度を用いても、それらはどちらも廃棄物の大まかな推定値しか提供しないという現実は無視されている。また、精度を上げるために試みられた方法はいずれも、活用する計算リソースを増加させることによるものであり、産業的に実現可能な範囲を超えてコストを膨らませる。
【0007】
上述した課題および/または欠点に対処する、養魚場における自動給餌のためのシステムおよび方法が必要とされている。
【発明の概要】
【0008】
養魚場におけるAIベースの給餌のためのシステムおよび方法、およびそれとともに用いるコンピュータ製品の様々な実施形態が、本明細書の教示に従って提供される。
【0009】
本発明の1つの態様によると、魚が入った水槽を有する陸上養魚場における飼料監視のためのシステムが開示され、システムは、水槽に結合された放流管に固定された飼料カメラであって、食べ残しの飼料ペレットおよび非ペレット物体が放流管を通って出口ポートに流れ、各画像の取得時に飼料カメラの視野を横切るペレットおよび非ペレット物体を備える物体を含む放流管の内部の画像を備えるビデオフィードを捕捉するように構成された飼料カメラと、飼料カメラに背景を提供するために飼料カメラに対向して飼料カメラの視野内にあるように放流管に取り付けられ、飼料カメラと物体エンハンサとの間を通過しビデオフィードの取得画像の少なくとも1つに捕捉される物体が、少なくとも1つの取得画像内で定義可能な周囲を有するようにする、物体エンハンサと、少なくとも1つのプロセッサ、および実行されると前記少なくとも1つのプロセッサに、所与の時間間隔でビデオフィードからいくつかの画像を取得するステップと、画像を前処理し、物体が飼料ペレットである可能性のある、各々が画像内の固有物体に対応する候補関心領域(ROI)を取得するステップと、候補ROIに分類を行い、候補ROIに対応する物体が飼料ペレットクラスに属する確率を表すペレットネススコアを取得するステップと、保持された候補ROIが飼料ペレットクラスに属する可能性が高いという見込みに基づいて、候補ROIを保持するかを決定するステップと、保持された候補ROIの各々を軌跡に割り当てるステップと、軌跡をペレット軌跡または非ペレット軌跡に分類するステップと、ペレット軌跡に基づいて、水槽内の前記魚によって消費されなかった食べ残しの飼料ペレットの所定の割合を表すペレットカウントをリアルタイムで生成するステップとを行わせる命令が格納された非一時的コンピュータ可読媒体を備えるコンピューティングデバイスとを備える。
【0010】
少なくとも1つの実施形態において、少なくとも1つのプロセッサは更に、ペレットカウントを養魚場に送信するように構成され、ペレットカウントは、ペレットカウントに少なくとも部分的に基づいて水槽に供給する魚用飼料の新たな量を生成するために魚用給餌器によって用いられる。
【0011】
少なくとも1つの実施形態において、少なくとも1つのプロセッサは更に、ペレットカウントに基づいて制御信号を生成し、水槽に供給する魚用飼料の新たな量を生成するために養魚場の魚用給餌機に制御信号を送信するように構成される。
【0012】
少なくとも1つの実施形態において、少なくとも1つのプロセッサは更に、時間間隔における食べ残しの飼料ペレットの勾配を決定し、勾配が勾配閾値よりも大きい場合に警告を生成するように構成される。
【0013】
少なくとも1つの実施形態において、物体エンハンサは、飼料カメラと物体エンハンサとの間を通過する物体に対してコントラストをもたらす背景を提供する高密度ポリエチレン(HDPE)シートである。
【0014】
少なくとも1つの実施形態において、少なくとも1つのプロセッサは、後続の画像フレームにおいて位置が変わる可能性が高い任意の物体を識別するために所与の画像フレームに背景減算を行い、識別された各物体に潜在的ROIである境界を画定するために識別された物体に輪郭検出を行い、候補ROIを取得するために潜在的ROIをフィルタすることによって、所与の画像フレームにおける候補ROIを取得するように構成される。
【0015】
少なくとも1つの実施形態において、少なくとも1つのプロセッサは、各候補ROIについて、所与のサンプルが対応する候補ROIの画像データを含むサンプルを生成し、サンプルを前処理し、サンプルが異なるクラスに属する確率を有する確率分布を生成するために前処理された各サンプルにROI分類器を適用することによって、候補ROIの分類を行うように構成される。
【0016】
少なくとも1つの実施形態において、クラスは、ペレットクラス、非ペレットクラス、および曖昧クラスを含む。
【0017】
少なくとも1つの実施形態において、ペレットネススコアは、サンプルがペレットクラスに属する確率を表す。
【0018】
少なくとも1つの実施形態において、少なくとも1つのプロセッサは、同じ行列サイズを有するようにサンプルをリサイズし、平均中心正規化を行うことによって、サンプルを前処理するように構成される。
【0019】
少なくとも1つの実施形態において、少なくとも1つのプロセッサは、(a)アクティブな軌跡がない場合、候補ROIを別の新たな軌跡に割り当て、(b)アクティブな軌跡がある場合、候補ROIの位置と最も近いアクティブな軌跡内の最後のROIの位置との間の距離が距離閾値よりも小さい場合は、候補ROIを最も近いアクティブな軌跡に割り当て、または(c)アクティブな軌跡がある場合、候補ROIの位置と最も近いアクティブな軌跡内の最後のROIの位置との間の距離が距離閾値よりも大きい場合は、候補ROIを新たなアクティブな軌跡に割り当てることによって、1つの画像フレーム内の候補ROIの各々を軌跡の1つに割り当てるように構成される。
【0020】
少なくとも1つの実施形態において、少なくとも1つのプロセッサは、所与の期間に画像の1つに関して更新されていない軌跡を含む終了した軌跡を識別し、終了した軌跡の各々について少なくとも1つの軌跡測定値を決定し、少なくとも1つの軌跡測定値に基づいて、どの終了した軌跡がペレット軌跡クラスに属するかを決定することによって、軌跡をペレット軌跡または非ペレット軌跡に分類するように構成される。
【0021】
少なくとも1つの実施形態において、少なくとも1つのプロセッサは、少なくとも1つの軌跡測定値を閾値と比較すること、または少なくとも1つの軌跡測定値を軌跡分類器に提供することによって、どの終了した軌跡がペレット軌跡クラスに属するかを決定するように構成される。
【0022】
少なくとも1つの実施形態において、少なくとも1つの軌跡測定値は、終了した軌跡の長さ、終了した軌跡を備えるROIのペレットネススコアの分布、および/または1または複数の他のフィルタ値の統計分布の少なくとも1つの測度を含む。
【0023】
少なくとも1つの実施形態において、飼料カメラは、物体エンハンサの下側に連結され、取得画像が物体エンハンサの少なくとも一部を示すように物体エンハンサとの間隔を有する。
【0024】
少なくとも1つの実施形態において、システムは更に、放流管に取り付けられたブラケットを備え、物体エンハンサは、使用中に物体エンハンサおよび飼料カメラの回転性を制限するために2つ以上の位置でブラケットに取り付けられる。
【0025】
少なくとも1つの実施形態において、物体エンハンサは、放流管から増加した量の水流が出る時に物体エンハンサが出口ポートから移動可能であるように、放流管の出口ポートに隣接して摺動可能に取り付けられる。
【0026】
少なくとも1つの実施形態において、飼料カメラは、放流管に隣接したブラケットに固定され、物体エンハンサは、ブラケットの上で支柱に摺動可能に取り付けられる。
【0027】
少なくとも1つの実施形態において、飼料カメラは、放流管に固定され、物体エンハンサは、放流管から異なる量の水流が出る場合に上下に動くことができるように、放流管に隣接して摺動可能に取り付けられる。
【0028】
少なくとも1つの実施形態において、物体エンハンサは、放流管に隣接して摺動可能に取り付けられ、飼料カメラは、放流管から異なる量の水流が出る場合に物体エンハンサが上下に動くことができ、飼料カメラが物体エンハンサから一定の距離に保たれるように、物体エンハンサから一定の距離離れて物体エンハンサに結合される。
【0029】
本明細書の教示に係る別の広範な態様において、陸上養魚場の水槽における飼料監視のためのコンピュータ実装方法が提供され、方法は、所与の時間間隔で飼料カメラから取得されたビデオフィードから画像フレームおよび関連メタデータを読み取ることであって、飼料カメラによって取得された画像フレームは、水槽から排出される食べ残しの飼料ペレットおよび非ペレット物体の画像であることと、画像フレームを前処理し、物体が飼料ペレットである可能性のある、各々が画像内の固有物体に対応する候補関心領域(ROI)を取得することと、候補ROIに分類を行い、候補ROIに対応する物体が飼料ペレットクラスに属する確率を表すペレットネススコアを取得することと、候補ROIが飼料ペレットクラスに属する可能性の程度に基づいて、候補ROIを保持するかを決定することと、保持された候補ROIの各々を軌跡に割り当てることと、軌跡をペレット軌跡または非ペレット軌跡に分類することと、ペレット軌跡に基づいて、水槽内の魚によって消費されなかった食べ残しの飼料ペレットの所定の割合を表すペレットカウントをリアルタイムで生成することとを備える。
【0030】
少なくとも1つの実施形態において、方法は更に、ペレットカウントを養魚場に送信することを備え、ペレットカウントは、ペレットカウントに少なくとも部分的に基づいて水槽に供給する魚用飼料の新たな量を生成するために魚用給餌器によって用いられる。
【0031】
少なくとも1つの実施形態において、方法は更に、ペレットカウントに基づいて制御信号を生成することと、水槽に供給する魚用飼料の新たな量を生成するために養魚場の魚用給餌機に制御信号を送信することとを備える。
【0032】
少なくとも1つの実施形態において、方法は更に、所与の時間間隔における食べ残しの飼料ペレットの勾配を決定することと、勾配の1つが勾配閾値よりも大きい場合に警告を生成することとを備える。
【0033】
少なくとも1つの実施形態において、所与の画像フレーム内の候補ROIを取得することは、後続の画像フレームにおいて位置が変わる可能性が高い任意の物体を識別するために所与の画像フレームに背景減算を行うことと、識別された各物体に潜在的ROIである境界を画定するために識別された物体に輪郭検出を行うことと、候補ROIを取得するために潜在的ROIをフィルタすることとを備える。
【0034】
少なくとも1つの実施形態において、候補ROIに分類を行うことは、各候補ROIについて、所与のサンプルが対応する候補ROIの画像データを含むサンプルを生成することと、サンプルを前処理することと、サンプルが異なるクラスに属する確率を有する確率分布を生成するために前処理された各サンプルにROI分類器を適用することとを備える。
【0035】
少なくとも1つの実施形態において、クラスは、ペレットクラス、非ペレットクラス、および曖昧クラスを含む。
【0036】
少なくとも1つの実施形態において、ペレットネススコアは、サンプルがペレットクラスに属する確率を表す。
【0037】
少なくとも1つの実施形態において、方法は、同じ行列サイズを有するようにサンプルをリサイズし、平均中心正規化を行うことによって、サンプルを前処理することを備える。
【0038】
少なくとも1つの実施形態において、1つの画像フレーム内の候補ROIの各々を軌跡の1つに割り当てることは、(a)アクティブな軌跡がない場合、候補ROIを別の新たな軌跡に割り当てること、(b)アクティブな軌跡がある場合、候補ROIの位置と最も近いアクティブな軌跡内の最後のROIの位置との間の距離が距離閾値よりも小さい場合は、候補ROIを前記最も近いアクティブな軌跡に割り当てること、または(c)アクティブな軌跡がある場合、候補ROIの位置と最も近いアクティブな軌跡内の最後のROIの位置との間の距離が距離閾値よりも大きい場合は、候補ROIを新たなアクティブな軌跡に割り当てることを備える。
【0039】
少なくとも1つの実施形態において、軌跡をペレット軌跡または非ペレット軌跡に分類することは、所与の期間に画像の1つに関して更新されていない軌跡を含む終了した軌跡を識別することと、終了した軌跡の各々について少なくとも1つの軌跡測定値を決定することと、少なくとも1つの軌跡測定値に基づいて、どの終了した軌跡がペレット軌跡クラスに属するかを決定することとを備える。
【0040】
少なくとも1つの実施形態において、どの終了した軌跡がペレット軌跡クラスに属するかを決定することは、少なくとも1つの軌跡測定値を閾値と比較すること、または少なくとも1つの軌跡測定値を軌跡分類器に提供することを備える。
【0041】
少なくとも1つの実施形態において、少なくとも1つの軌跡測定値は、終了した軌跡の長さ、終了した軌跡を備えるROIのペレットネススコアの分布、および/または1または複数のフィルタ値の統計分布の少なくとも1つの測度を含む。
【0042】
少なくとも1つの実施形態において、方法は、取得画像内の物体が定義可能な周囲を有するように飼料カメラに背景を提供するために、飼料カメラに対向し、かつ飼料カメラの視野内で、放流管の出口に隣接して物体エンハンサを取り付けることと、飼料カメラによって取得されたビデオフィードが、物体エンハンサの画像であり、画像の取得時に飼料カメラの前記視野を横切る物体を含む画像フレームを備えるように、飼料カメラを物体エンハンサに固定することとを備える。
【0043】
少なくとも1つの実施形態において、方法は、飼料カメラと物体エンハンサとの間を通過する物体に対して増加したコントラストをもたらす背景を提供するために、物体エンハンサに高密度ポリエチレン(HDPE)シートを用いることを備える。
【0044】
本明細書の教示に係る別の広範な態様において、魚が入った水槽を有する陸上養魚場における飼料監視のためのシステムが提供され、システムは、水槽に結合された放流管に取り付けられた飼料カメラであって、各画像の取得時に飼料カメラの視野を横切るペレットおよび非ペレット物体を備える物体の画像を備えるビデオフィードを捕捉するように構成された飼料カメラと、少なくとも1つのプロセッサと、実行されると少なくとも1つのプロセッサに、本明細書の教示に従って説明された方法のいずれかを行わせる命令が格納された非一時的コンピュータ可読媒体とを備えるコンピューティングデバイスとを備える。
【0045】
本願の他の特徴および利点は、添付図面とともに示される以下の詳細な説明から明らかになる。ただし、理解すべき点として、この詳細な説明から本願の主旨および範囲における様々な変更および修正が当業者には明らかであるため、詳細な説明および特定の例は、本願の好適な実施形態を示すものであるが、単に例示として記載される。
【0046】
本明細書で説明される様々な実施形態をより良く理解するため、また、これらの様々な実施形態がどのように実施され得るかを明確に示すために、例として、少なくとも1つの例示的な実施形態を示し、次に説明される添付図面が参照される。図面は、本明細書で説明される教示の範囲を限定することを意図されていない。
【図面の簡単な説明】
【0047】
図1】養魚場におけるAIベースの給餌のためのシステムの例示的な実施形態の概略図を示す。
図2A】物体エンハンサの例示的な実施形態の概略図を示す。
図2B図2Aの物体エンハンサに対する例示的な画像の概略図を示す。
図3図1のシステムとともに用いるAPIの例示的なスクリーンショットの概略図を示す。
図4図4Aおよび図4B。ブラケット構成が図2Aの背景エンハンサに結合される放流管の一部におけるブラケット構成(たとえば取付けアセンブリ)の例示的な実施形態の斜視図および断面図を示す。
図5図1のシステムのプロセスフローの概略図を示す。
図6図6A図6F。魚が食べ残した魚用飼料(すなわち食べ残しの飼料ペレット)を自動的に決定するために図1のシステムによって用いられる方法の例示的な実施形態のフローチャートを示す。
図7図7Aおよび図7B。ブラケット構成が図2Aの背景エンハンサに結合される放流管の一部における拡張可能および固定可能なブラケット構成(たとえば取付けアセンブリ)の別の例示的な実施形態の斜視図および断面図を示す。
図7C図2Aの背景エンハンサとともに用いるためのブラケット構成の例示的な実施形態の斜視図を示す。
図7D図2Aの背景エンハンサを組み込む図7Cのブラケット構成の正面斜視図を示す。
【発明を実施するための形態】
【0048】
本明細書で説明される例示的な実施形態の更なる態様および特徴は、添付図面とともに示される以下の説明から明らかになる。
【0049】
本明細書の教示に係る様々な実施形態は、特許請求の範囲に記載の主題事項の少なくとも1つの実施形態の例を提供するために以下で説明される。本明細書で説明される実施形態はいずれも、特許請求の範囲に記載の主題事項を限定するものではない。特許請求の範囲に記載の主題事項は、以下で説明されるデバイス、システム、または方法のいずれか1つの特徴の全て、あるいは本明細書で説明されるデバイス、システム、または方法の複数または全てに共通の特徴を有するデバイス、システム、または方法に限定されない。特許請求の範囲に記載の主題事項の実施形態ではないデバイス、システム、または方法が本明細書で説明され得る場合がある。本明細書で説明されるが本文書において特許請求の範囲に記載されない任意の主題事項は、たとえば継続特許出願などの別の保護文書の主題事項であってよく、出願人、発明者、または所有者は、本文書の開示によって任意のそのような主題事項を放棄、否認、または公衆に供することを意図していない。
【0050】
図示の簡潔性および明確性のために、適宜、対応する要素や類似の要素を示すために参照番号が図面間で繰り返され得ることが理解される。また、本明細書で説明される実施形態の完全な理解を提供するために、多数の具体的詳細が記載される。しかしながら、本明細書で説明される実施形態は、これらの具体的詳細なしでも実施され得ることが当業者には理解される。他の例では、周知の方法、手順、および構成要素は、本明細書で説明される実施形態を不明瞭にしないように詳細には説明されない。また、この説明は、本明細書で説明される実施形態の範囲を限定するものと見なされるべきではない。
【0051】
また、留意すべき点として、本明細書で使用される「結合された」または「結合する」という用語は、これらの用語が使用される文脈に依存していくつかの異なる意味を有し得る。たとえば、結合されたまたは結合するという用語は、機械的意味または電気的意味を有し得る。たとえば、本明細書で使用される場合、結合されたまたは結合するという用語は、2つの要素またはデバイスが互いに直接連結され得ること、または特定の文脈に依存して1または複数の中間要素またはデバイスや電気信号、電気接続、または機械要素を介して互いに連結されることを示してよい。
【0052】
また、留意すべき点として、本明細書で使用される場合、「および/または」という言葉は、包括的なorを表すことが意図される。すなわち、「Xおよび/またはY」は、たとえばXまたはYまたは両方を意味することが意図される。更なる例として、「X、Y、および/またはZ」は、XまたはYまたはZまたはそれらの任意の組み合わせを意味することが意図される。
【0053】
留意すべき点として、本明細書で使用される、たとえば「実質的に」、「約」、および「概ね」などの程度を示す用語は、最終結果が著しく変化しないように、修飾された用語の妥当な逸脱量を意味する。これらの程度を示す用語は、たとえばこの逸脱が、この用語が修飾する用語の意味を否定しない場合、たとえば1%、2%、5%、または10%などの修飾された用語の逸脱を含むものとして解釈されてもよい。
【0054】
また、本明細書における終了点による数値範囲の記載は、その範囲内に包含される全ての数値および端数を含む(たとえば1~5は、1、1.5、2、2.75、3、3.90、4、および5を含む)。また、理解すべき点として、全ての数値およびその端数は、たとえば1%、2%、5%、または10%など、最終結果が著しく変化しない場合、参照される数値の一定量までの変動を意味する「約」という用語で修飾されることが仮定される。
【0055】
留意すべき点として、本明細書で説明される任意のシステムまたは方法の動作の説明に関連して「ウィンドウ」という用語を使用することは、初期化、較正、または他のユーザ操作を実行するための、たとえばグラフィカルユーザインタフェース(GUI)などのユーザインタフェースを説明するものとして理解されることが意図される。
【0056】
本明細書の教示に従って説明されるデバイス、システム、または方法の例示的な実施形態は、一般に、ハードウェアとソフトウェアとの組み合わせとして実装される。たとえば、本明細書で説明される実施形態は、少なくとも部分的に、少なくとも1つの処理要素および少なくとも1つの記憶要素(すなわち、少なくとも1つの揮発性メモリ要素および少なくとも1つの不揮発性メモリ要素)を備える1または複数のプログラマブルデバイス上で実行する1または複数のコンピュータプログラムを用いて実施され得る。ハードウェアは、タッチスクリーン、キーボード、マウス、ボタン、キー、スライダなどの少なくとも1つを含む入力デバイスと、ハードウェアの実装に依存して、ディスプレイ、プリンタ、1または複数のセンサなどの1または複数とを備えてよい。
【0057】
また、留意すべき点として、本明細書で説明される実施形態の少なくとも一部を実装するために用いられるいくつかの要素は、たとえばオブジェクト指向プログラミングなどの高レベルの手続き型言語で書かれたソフトウェアを介して実装され得る。プログラムコードは、C++、C#、JavaScript、Python、または他の任意の適切なプログラミング言語で書かれてよく、オブジェクト指向プログラミングの当業者には知られているように、モジュールまたはクラスを備えてよい。あるいは、それらの代替または追加として、ソフトウェアを介して実装されるこれらの要素のいくつかは、必要に応じてアセンブリ言語、機械言語、またはファームウェアで書かれてもよい。いずれの場合も、言語はコンパイル型言語またはインタプリタ型言語であってよい。
【0058】
これらのソフトウェアプログラムの少なくともいくつかは、プロセッサ、オペレーティングシステム、および本明細書で説明される実施形態の少なくとも1つの機能を実施するために必要な関連ハードウェアおよびソフトウェアを有するデバイスによって読取り可能な、たとえばROM、磁気ディスク、光ディスク、USBキーなどであるがこれらに限定されないコンピュータ可読媒体に格納され得る。ソフトウェアプログラムコードは、デバイスによって読み取られると、本明細書で説明される方法の少なくとも1つを実行するために(たとえば特定用途向けコンピュータとして)新たな特定の予め定義された方法で動作するようにデバイスを構成する。
【0059】
本明細書で説明される実施形態のデバイス、システム、および方法に関連するプログラムの少なくともいくつかは、1または複数の処理ユニットのための、たとえばプログラムコードなどのコンピュータ使用可能命令を担持するコンピュータ可読媒体を備えるコンピュータプログラム製品に分散されることが可能であってよい。媒体は、たとえば1または複数のディスケット、コンパクトディスク、テープ、チップ、および磁気ストレージおよび電子ストレージなどであるがこれらに限定されない、非一時的形式を含む様々な形式で提供され得る。代替実施形態において、媒体は、本質的に一時的であってよく、たとえばワイヤライン送信、衛星送信、インターネット送信(たとえばダウンロード)、メディア、デジタル、およびアナログ信号などであるがこれらに限定されない。コンピュータ使用可能命令は、コンパイル型および非コンパイル型コードを含む様々なフォーマットであってもよい。
【0060】
本明細書の教示によると、養魚場におけるAIベースの給餌のためのシステムおよび方法、およびそれとともに用いるコンピュータ製品に関する様々な実施形態が提供される。
【0061】
最初に図1を参照すると、養魚場におけるAIベースの給餌のための飼料カウントシステム100の例示的な実施形態の概略図が示される。飼料カウントシステム100は、水槽110、放流管112、放流管112に固定された飼料カメラ114、物体エンハンサ116、イーサネットケーブル118、イーサネットスイッチ120、およびコンピュータ140を含む。放流管112は、出口管とも称され得る。物体エンハンサ116は、プロファイルエンハンサまたは背景エンハンサとも称され得る。留意すべき点として、代替実施形態において、いくつかの要素は、たとえば他のネットワーキング要素を用いて実装され得るイーサネットケーブル118およびイーサネットスイッチ120などの他の要素を用いて実装され得る。
【0062】
(単一のIPカメラであってよい)飼料カメラ114および物体エンハンサ116は、互いに概ね対向して放流管112内に設置される。カメラ技術は年々発展を続けているため、飼料カメラ114の技術仕様は経時的に進化し得る。ただし、考慮され得る飼料カメラ114の特定の仕様は、解像度および露出である。たとえば、576×704の解像度および1/250の露出がシステム100での使用に適し得る。これにより、飼料カメラ114と物体エンハンサ116との間を通過し、飼料カメラ114によって取得される画像に捕捉される物体が、ビデオフィード内の取得画像の少なくとも1つにおいて定義可能な境界を有するように、物体エンハンサ116が飼料カメラ114の視野に背景を提供するので、高品質データの収集が可能である。
【0063】
物体エンハンサ116の形状は、放流管112内で(たとえば図2Aに示すように)定位置に固定するための固定具を受容する溝を有する略円形であってよい。飼料カウントシステム100は、(たとえば図2Bに示すように)ペレット210、糞220、および他の要素を区別することによって水槽110から放流管112を通って流出する廃棄飼料の量をリアルタイムで追跡するペレットカウントアルゴリズム(または「ペレットトラッカ」)を利用する。飼料カウントシステム100は、ペレットトラッカによって決定された食べ残し飼料(たとえば食べ残しの飼料ペレットの数)に基づいて、水槽110内の魚の食欲に従って(たとえば図3に示すように)飼料カウントシステム100によって用いられる魚用給餌機320によって投与される飼料の量を自動的に更新するために、既存の給餌システムのAPI310に直接結び付けることができる。魚用給餌機320は、当業者に知られているように、特定の時間間隔で魚に魚用飼料(すなわちペレット)を供給するために養魚場で利用されるシステムである。
【0064】
コンピューティングデバイスと称され得るコンピュータ140は、単一のコンピューティングデバイス(たとえばデスクトップ、ラップトップ、またはノートパッド)として実装されてよく、(1または複数のプロセッサを有するものとして称され、または容易な例示のために単にプロセッサと称され得る)プロセッサユニット144、ディスプレイ146、インタフェースユニット148、入力/出力(I/O)ハードウェア150、通信ユニット152、電源ユニット154、および(「データストア」とも称される)メモリユニット156を含む。メモリユニット156は、プロセッサユニット144によって用いるためのコンピュータ命令が格納されるように設計され得る非一時的コンピュータ可読媒体であってよい。他の実施形態において、コンピュータ140は、より多いまたは少ない数の構成要素を有し得るが、一般に同様に機能してよい。たとえば、コンピュータ140は、複数のコンピューティングデバイスおよび/またはプロセッサユニット144を用いて実装され得る。たとえば、コンピュータ140は、サーバまたはサーバクラスタとして機能するように実装され得る。
【0065】
プロセッサユニット144は、システム100の動作を制御し、システム100の構成および動作要件に依存して十分な処理能力を提供することが可能な1つのプロセッサを含んでよい。たとえば、プロセッサユニット144は、場合によっては高性能プロセッサまたはGPUを含んでよい。あるいは、プロセッサユニット144によって用いられる複数のプロセッサが存在してよく、これらのプロセッサは、並列して機能し、特定の機能を行ってよい。
【0066】
ディスプレイ146は、たとえばタブレットデバイスまたはデスクトップコンピュータ用のコンピュータモニタまたはLCDディスプレイであってよいが、これらに限定されない。
【0067】
インタフェースユニット148は、プロセッサユニット144がシステム100内の他のデバイスと通信することを可能にする任意のインタフェースであってよい。いくつかの実施形態において、インタフェースユニット148は、シリアルバスまたはパラレルバスの少なくとも1つと、たとえばパラレルポート、シリアルポート、USBポート、および/またはネットワークポートなどの対応するポートとを含んでよい。たとえば、ネットワークポートは、プロセッサユニット144が、インターネット、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、無線ローカルエリアネットワーク(WLAN)、仮想プライベートネットワーク(VPN)、またはピアツーピアネットワークを介して、直接、あるいはモデム、ルータ、スイッチ、ハブ、または他のルーティングデバイスや変換デバイスを介して通信することができるように用いられ得る。
【0068】
I/Oハードウェア150は、たとえばマイクロフォン、スピーカ、キーボード、マウス、タッチパッド、ディスプレイデバイス、およびプリンタを含んでよいが、これらに限定されない。
【0069】
電源ユニット154は、当業者には周知であるように、システム100の様々な構成要素に電力を供給するために接続された1または複数の電源(不図示)を含んでよい。
【0070】
通信ユニット152は、プロセッサユニット144が他のデバイスと通信することを可能にするための様々な通信ハードウェアを含む。たとえば、通信ユニット152は、たとえばイーサネットまたは802.11xアダプタなどのネットワークアダプタ、ブルートゥース無線または他の短距離通信デバイス、またはたとえばIEEE802.11a、802.11b、802.11g、または802.11nなどの規格を用いるCDMA、GSM、またはGPRSプロトコルに準拠した無線通信のための無線トランシーバの少なくとも1つを含む。
【0071】
メモリユニット156は、オペレーティングシステム158、ペレットトラッカ159、関心領域(ROI)提案モジュール160、ROI分類モジュール162、ROI追跡モジュール164、軌跡分類モジュール166、およびデータファイル168のためのプログラム命令を格納する。ペレットトラッカ159またはモジュール160~166のいずれかに関するプログラム命令のいずれかが、プロセッサユニット144または別のコンピューティングデバイスのプロセッサの少なくとも1つのプロセッサによって実行されると、少なくとも1つのプロセッサは、本教示の教示に係る特定の機能を行うために構成される。留意すべき点として、代替実施形態において、ペレットトラッカ159およびモジュール160~166は、同じ機能が提供される限り、異なるソフトウェアプログラミング構造を用いて他の方法で編成され得る。オペレーティングシステム158は、特定のモジュールおよび他のプログラムを実行するためにどの物理プロセッサが用いられるかを選択することが可能である。たとえば、オペレーティングシステム158は、たとえばプロセッサ内の異なるコアを用いて、またはマルチプロセッササーバ上の異なるプロセッサを用いて、使用される物理ハードウェアの異なる部分で実行するようにプロセスを切り換えることができる。
【0072】
ペレットトラッカ159は、ペレットカウントをリアルタイムで行うためのプログラム命令を含み、たとえば食べ残しの飼料ペレットの量および/または食べ残しの飼料ペレットの急上昇に関する任意の勾配魚用飼料データなどの飼料データを生成し、これは、水槽110内の魚に供給される魚用飼料の量を調整するために魚用給餌機320への制御信号を生成するためにAPI310に提供される。ペレットトラッカ159は、ペレット追跡中に特定の動作を行うために、ROI提案モジュール160、ROI分類モジュール162、ROI追跡モジュール164、および軌跡分類モジュール166を呼び出す。ペレットトラッカ159の動作は、図6Aに関して一般に説明される。
【0073】
あるいは、少なくとも1つの実施形態において、様々なモジュールは、メッセージパッシングを介して通信する、たとえばイベントベース形式で通信するスタンドアロンプログラムとして機能してよい。たとえば、ROI提案モジュール160は、ビデオフィードに通信可能に結合されてよく、新たな画像フレームが取得されると、ROI提案モジュール160はその処理を行う。画像フレームに関するROIが更なる処理のために準備されると、ROI分類モジュール162は、それらを受け入れるために待機する。同様に、ROI分類モジュール162は、ROIトラッカモジュール164のためのイベントを生成し、処理すべきデータがあることをROIトラッカモジュール164に通知する。これにより、ソフトウェアアーキテクチャがスケーラブルになり、安全かつスケーラブルな方法で多数のプロセッサおよび/またはコンピューティングデバイスに分散されることが可能である。
【0074】
データファイル168は、たとえばペレットトラッカ159およびモジュール160~166によって用いられる、たとえば特定の分類器および他の変数などの動作パラメータを格納するために用いられ得る。データファイル168は、飼料トラッカによって決定される食べ残しの飼料ペレットの履歴、ならびに、品質管理および/またはモジュール160~166によって用いられるアルゴリズムの更なる訓練に用いられ得る、たとえば識別された物体および軌跡などの他のデータを格納するためにも用いられ得る。
高次の概観
【0075】
高次では、ペレットカウントアルゴリズム機能は、関心領域(ROI)提案、ROI分類、ROI追跡、および軌跡分類という4つの異なるステップに分解され得る。
【0076】
ROI提案モジュール160は、ビデオフレームを読み込み、離散物体を大まかに表す各フレームのセグメントを発見する。ROI提案モジュール160は、提案されたROIのセットを生成するために、明らかにペレットではないROIを除外するフィルタリングの初期ラウンドにおいて、コンピュータビジョン技術を用いる。ROI提案モジュール160の出力は、提案されたROIとともに、ROI分類モジュール162に提供され得る任意の必要なメタデータを含む。ROI提案モジュール160の動作は、図6Bに関して一般に説明される。
【0077】
ROI分類モジュール162は、ROI提案モジュール160によって決定された各ROIに、ROIが実際に飼料ペレットである物体を表す確率を表す「ペレットネス」の確率スコアを割り当てる役割を担う。各ROIにペレットネススコアを割り当てるために、ROI分類モジュール162は、たとえばROIの生画素上で動作する畳み込みニューラルネットワーク(CNN)などであるがこれに限定されない深層学習(DL)ベースの技術、またはたとえばROI提案モジュール160において抽出された特定の特徴(たとえば画素色分布、キャニーまたはソボルエッジ検出を用いて発見されたエッジなど)を用いて動作する、より「古典的な」機械学習技術(たとえば極端勾配ブーストツリー(XGB)、サポートベクトルマシン(SVM)などのツリーベースの方法など)を用いてよい。ROI分類モジュール162は、より一般的に「分類器」とも称され得る。ROI分類モジュール162の出力は、各ROIのペレットネススコアとともに、ROI追跡モジュールに提供され得る任意の必要なメタデータを含む。ROI分類モジュール162の動作は、図6Cに関して一般に説明される。
【0078】
ROI追跡モジュール164は、カスタム設計された追跡アルゴリズムを用いて、関連するペレットネススコアを有するROIが(1)新たな軌跡に追加され得るか、(2)既存の軌跡に追加され得るか、または(3)無視され得るかを決定することによってペレットの軌跡を決定および更新する。各軌跡は、軌跡を備える各ROIのデカルト座標および対応するペレットネススコアを含む。ROI追跡モジュール164は、所与のフレームに出現した各ROIに対し何を行うかを決定した後、1または複数の終了した軌跡に追加される新たなROIで更新されていない任意の軌跡を終了させる。ROI追跡モジュール164の出力は、終了した軌跡を含み、これは軌跡分類モジュール166に送信され得る。ROI追跡モジュール164の動作は、図6D~6Eに関して一般に説明される。
【0079】
軌跡分類モジュール166は、終了した軌跡がペレットとしてカウントされるか非ペレット物体としてカウントされるかの最終決定を行う。そのために、軌跡分類モジュール166は、たとえば軌跡の長さ、軌跡を構成する物体のペレットネススコアの分布、およびROI提案モジュール160によって決定された他のROIメタデータの分布などのデータを用いてよい。軌跡分類モジュール166は、確率的機械学習モデルを用いて、または単に慎重に選択された閾値および条件付き規則を用いて上述したデータを処理し、終了した軌跡が飼料ペレットに対応するか他の物体に対応するかを決定し得る。軌跡分類モジュール166の動作は、図6Fに関して一般に説明される。
データ収集のための物理的セットアップ
【0080】
ペレットカウントアルゴリズムが効果的に機能するために、後述する特定のハードウェアセットアップにより、改善された効率および精度が実現される。
【0081】
物体エンハンサ116は、飼料カメラ114の背景を作成する任意の材料で作られ得る。たとえば、物体エンハンサ116は、高密度ポリエチレンシート(HDPE)または他の材料を用いて作られた高耐久性かつ半透明のプラスチックであってよいが、これらに限定されない。この物体エンハンサ116は、高コントラストの背景を作成することにより、飼料カメラ114と物体エンハンサ116との間を通過する任意の物体が、ビデオフィードからの画像フレームに適用されるアルゴリズムによってより容易に識別可能であるようにする。好適には、物体エンハンサは、一貫した色を有し、半透明である。たとえば、色は(たとえば高コントラストの背景を提供するために)白色または淡色であってよいが、これらに限定されない。
【0082】
図4Aは、放流管112において用いられるハードウェアセットアップ400の例示的な実施形態の斜視図を示す。図4Bは、図4Aに示す例示的な実施形態の断面図を示す。飼料カメラ114は、飼料カメラ114の視野が物体エンハンサ116の全体または大部分を捕捉し得るように、かつ飼料カメラ114と物体エンハンサ116の下面との間に一定の距離があるように、物体エンハンサ116の下側に連結され得る。たとえば、ブラケット408は、物体エンハンサ116の下面に取り付けられた上端部と、脚部を介して上端部に連結された中間部とを有してよく、飼料カメラ114は、中間部に取り付けられ、その視野が物体エンハンサ116に向けられ得る。支柱410pを有するたとえばU字形ブラケットなどの第2のブラケットは、物体エンハンサ116および飼料カメラ114が回転する能力を制限するが、放流管112内の水圧の変化により水流460が放流管112から出る際に物体エンハンサ116および飼料カメラ114が上下することを可能にするような方法で、放流管112に取り付けられ得る。ブラケット408および/または第2のブラケット410は、ブラケット408および/または第2のブラケット410が放流管112に隣接し、飼料カメラ114および物体エンハンサ116が一定の距離を保つ、または所定の範囲内で距離を変化させることを可能にするために、放流管112に対する位置を維持するような他の方法で放流管112に結合されてもよい。代替または追加として、飼料カメラ114は、ブラケット408または第2のブラケット410に連結され得る。代替または追加として、飼料カメラ114は、放流管112に連結され得る。飼料カメラ114は、ネットワーク接続(たとえばイーサネットケーブル118)に接続するためのワイヤ420を有してよい。あるいは、飼料カメラ114は、イーサネットスイッチ120への無線接続を有してよい。
【0083】
たとえば、ブラケット410は、物体エンハンサ116が放流管112の出口ポートより上に位置し、放流管112内で水圧が上昇した場合に水流460が放流管112から出ることを可能にするために、上方に移動することによって物体エンハンサ116の下面と出口ポートの上面との間に隙間を提供し得るように、放流管112の出口ポートまたは開口部に取り付けられ得る。これを実現するために、ブラケット410は、物体エンハンサ116のエッジの2つの部分に存在する溝116gによって摺動可能に係合された支柱410pの形式の摺動機構を含む。水圧が低下すると、物体エンハンサ116は下方に移動し得る。水圧が上昇すると、物体エンハンサ116は上方に移動し得る。その結果、飼料カメラ114が放流管112に固定され、物体エンハンサ116が放流管112に隣接して摺動可能に取り付けられることにより、異なる量の水流が放流管112から出る場合に物体エンハンサ116が上下に移動し得る構成が生じ得る。
【0084】
図示されていないが、保持要素は、物体エンハンサ116がブラケット410の支柱410pから外れ、放流管112の出口ポートから浮き上がるのを防ぐために用いられ得る。たとえば、支柱410pの端部は、水流460が物体エンハンサ116を支柱410pの上端まで持ち上げるほど強い場合に物体エンハンサ116の上面に係合し、物体エンハンサ116が放流管112の出口ポートで取付け台(たとえばブラケット410の支柱410p)から外れることを防ぐように、球状の端部を有してよく、または外側に開いた形状であってよい。
【0085】
任意選択的に、少なくとも1つの実施形態において、物体エンハンサ116に向けられた光を生成するために光源450が取り付けられ得る。そのような場合、光源450は、ブラケット410に固定され得る。
【0086】
ブラケット408、ブラケット410、および支柱410pは、まとめてブラケット構成または取付けアセンブリと称され得る。
【0087】
留意すべき点として、少なくとも1つの実施形態において、ブラケット410は下側水平部材410m1および410m2を含み、それらは互いに隣接し、互いに対し可動であることにより、ブラケット構成が異なる径を有する放流管112に適合し得るようにブラケット構成の幅を摺動可能に拡大または縮小することを可能にする。したがって、下側水平部材410m1および410m2は、支柱410pが配置されたブラケット410の上側横方向タブが放流管112の側壁の上縁部に重なるように位置するように2つの水平部材410m1および410m2が位置する場合にそれらを互いに固定するための固定具を受容し得る、互いに位置合わせされたチャネルを含む。
【0088】
図5は、動作環境におけるシステム100の例示的な実施形態の概略図を示す。水槽110は、ペレット210を食す魚510をその中に有する。また魚510は糞220を排泄する。食べ残しの飼料ペレット210および糞220は、放流管112を通って水槽110から出される。これらの離散物体(食べ残しの飼料ペレット210および糞220)は、水圧および水流460によって物体エンハンサ116の方向に移動する。物体エンハンサ116は水面に浮遊し、水流460を遮断しないように管ブラケット410の支柱410pに移動可能に係合する。飼料カメラ114は、半透明または透明である物体エンハンサ116に向けられ、光源450が物体エンハンサ116を照明する。少なくとも1つの実装において、光源450は、動作環境における周囲光が、飼料カメラ114によって取得されたビデオフィード530の画像フレーム内に物体(たとえば食べ残しの飼料ペレット210、糞220、および他の要素)が捕捉されることを可能にするために不十分である場合のみ、物体エンハンサ116を照明する。飼料カメラ114は、たとえばイーサネットケーブル118などの通信リンクを介して、または飼料カメラ114がトランシーバ(不図示)を含む少なくとも1つの実施形態において無線で、ビデオフィード530をコンピュータ140に提供する。コンピュータ140は、食べ残しの飼料ペレットをカウントするペレットトラッカ159を動作させ、たとえばペレット数などのデータ出力を魚用給餌機320に提供する。少なくとも1つの実施形態において、コンピュータ140は、ペレット数および任意選択的に食べ残しの飼料ペレットにおける任意の過剰な勾配を今後の使用または追跡のために養魚場のオペレータに提供してよい。コンピュータ140は、この出力を後述する様々なモジュールを用いて作成してよい。
【0089】
図6Aは、システム100によって用いるためにペレットトラッカ159によって実装され得るペレットカウントアルゴリズム600の例示的な実施形態のフローチャートを示す。
【0090】
610において、コンピュータ140は、飼料カメラ114によって取得されるビデオフィード530から結果として生じる画像フレームを得る。たとえば、コンピュータ140は、たとえば予め定められたフレームレートで飼料カメラ114によって取得された順序で画像フレームを取得する。少なくとも1つの実装において、飼料カメラ114は、毎秒25フレームのフレームレートを用い、フレームレートが低すぎる場合、フレーム間で物体が移動する距離が大きくなりすぎ、正確な物体追跡ができない場合がある。画像フレームは、データストア156に格納され得る。理解すべき点として、各画像フレームは、フレームが取得された時に飼料カメラ114の視野内にあったものを表すデータを含む。
【0091】
620において、コンピュータ140は、ROI提案モジュール160を用いて画像フレームを前処理し、提案されたROIおよび任意の関連メタデータ(たとえばそれらが由来する飼料カメラ114の一意の識別子など)を取得する。提案されたROIおよびメタデータは、たとえばRedisまたはApache Kafkaなどであるがこれらに限定されないメッセージングツールを介してROI分類モジュール162に提供される。用いられるメッセージングツールは、たとえば、各モジュールがクラスタ内の異なるプロセッサまたは異なるコンピューティングデバイスで実行された場合に異なるモジュール間でのデータ転送を容易にし得る。ROI提案モジュール160の動作は、図6Bに関してより詳細に説明される。
【0092】
630において、コンピュータ140は、ROI分類モジュール162を用いてROI分類を行い、任意の関連メタデータとともに各ROIのペレットネススコアを取得する。メタデータは、たとえば、ROIがどのカメラに由来するかを下流のモジュールの1または複数に通知する一意のID、および各フレームを一意に識別するタイムスタンプであってよい。ペレットネススコアおよびメタデータは、再度メッセージングツールを介して追跡モジュール164に提供される。ROI分類モジュール162の動作は、図6Cに関してより詳細に説明される。
【0093】
640において、コンピュータ140は、ROI追跡モジュール164を用いて、ROI、関連するペレットネススコア、および任意の適用可能なメタデータにROI追跡を行う。ROI追跡モジュール164は、新たな軌跡を生成し、軌跡を更新し、および/または終了した軌跡(更新が不可能な軌跡)を決定する。ROI軌跡モジュール164の出力は、終了した軌跡である。ROI追跡モジュール164の動作は、図6Dおよび図6Eに関してより詳細に説明される。
【0094】
650において、コンピュータ140は、軌跡分類モジュール166を用いて終了した軌跡に軌跡分類を行う。軌跡分類モジュール166の出力は、終了した軌跡がペレットとしてカウントされるか非ペレット物体としてカウントされるかである。軌跡分類モジュール166の動作は、図6Fに関してより詳細に説明される。
【0095】
660において、軌跡分類の結果は、養魚場に提供され、それについて養魚場で決定が下され得るデータを決定するために処理される。たとえば、軌跡分類の結果は、たとえば1分、5分、10分、15分、またはそれ以上などの特定の時間間隔にわたる食べ残しの飼料ペレットの量または食べ残しの飼料ペレットに大きな勾配が存在するかが、給餌機320によって水槽110内の魚に供給される魚用飼料の量を制御するために作用するAPI310または給餌機320に直接提供されるように、660において処理され得る。少なくとも1つの実装において、時間間隔は、予めプログラムされ得る。あるいは、少なくとも1つの実装において、時間間隔は、たとえばAPI310を介してエンドユーザによって提供された入力に基づいて使用中に修正され得る。
【0096】
少なくとも1つの実施形態において、ペレットカウントアルゴリズム600は、放流管112を通って出る廃棄ペレットの総数の所定の割合(たとえば10%、15%、20%、または別の割合)として、飼料カメラ114の視野を通過する廃棄ペレットの数を決定する。この所定の割合は、たとえば、放流管112を通って出される物体の総数と比較した飼料カメラ114の視野を通過する物体の既知の比率をもたらす物体エンハンサ116の視野および/またはサイズを選択することなどによって、様々な方法で確立されてよく、カウントされた物体および物体の総数が食べ残しの飼料ペレットである。代替または追加として、この所定の割合は、たとえば、飼料カメラ114の視野を通過する物体を測定/計数し、網/容器を用いて放流管112を通って出る全ての物体を収集し、網/容器内の物体をカウントすることなどによって、測定によって検証され得る。この所定の割合は、その後、放流管112を通って出る廃棄ペレットの総数を外挿するために用いられ得るスケール係数(たとえば所定の割合が10%である場合は10、または所定の割合が20%である場合は5、あるいは飼料カメラ、物体エンハンサ、および放流管の実際の物理的セットアップに依存した他のスケール係数)を提供する。
【0097】
あるいは、少なくとも1つの実装において、コンピュータ140は、軌跡分類の結果を、データベースを管理し、エンドユーザに結果を表示し、エンドユーザによって更新され得る規則のフレームワークを用いてAPI310と統合するシステム100の一部であってよいバックエンドサービスに提供する。たとえば、そのような更新規則は、「最後の10分間にカウントされたペレットの数が特定の数未満であった場合、供給率を5%増加させ、特定の数を超えた場合、5%減少させる」ことであってよい。いくつかの実装において、カウントされたペレットの数が廃棄ペレットの理想的な数(すなわち設定値)からどの程度離れているかに依存して、供給率の増減率は可変であってよい。
ROI提案モジュールの詳細
【0098】
図6Bは、ROI提案モジュール160によって行われる前処理620を実行するための方法の例示的な実施形態のフローチャートを示す。ROI提案モジュール160は、物体エンハンサ116によって、2つの連続した画像フレーム間で大幅に変化する画素のみが廃棄飼料ペレットまたは他の移動物体を潜在的に表す環境において動作する。この環境特性は、更なる検討の根拠を与える各画像フレームの領域(たとえば関心領域ROI)を識別するために用いられる。
【0099】
622において、コンピュータ140は、背景減算を実行する。背景減算を実行するために用いられる技術は、後続フレーム間で移動し得る物体を識別することが可能なものである。たとえば、新たな画像フレームを読み込むと、ROI提案モジュール160は、たとえばK最近傍(KNN)ベースのアルゴリズムなどであるがこれに限定されない背景減算アルゴリズムを用いて、新たな画像フレームのための二値画素マスクを生成してよい。このマスクにおいて、値0を有する画素は、移動しない背景の一部であると見なされ、値1を有する画素は、移動する前景の一部であり、そのような画素は移動物体に関連し得る。
【0100】
624において、コンピュータ140は、潜在的なROIを決定するために、輪郭検出を実行する。たとえば、ROI提案モジュール160は、輪郭検出アルゴリズムを用いて、二値画素マスクにおける前景画素の各「島」の境界を抽出する。輪郭検出アルゴリズムは、たとえば、画素追従、頂点追従、またはランデータベースの追従技術を含むがこれらに限定されない様々な適切な技術を用いて実装され得る。使用され得る画素追従輪郭検出アルゴリズムの例は、OpenCVライブラリによって提供されるfindContours法である。x方向およびy方向の両方における各輪郭の最小点および最大点を発見することによって、ROI提案モジュール160は、各前景物体の周囲に境界ボックスを画定し得る。元画像におけるこれらの境界ボックスの中身がROIと称される。
【0101】
実際には、所与の画像において、飼料ペレットに対応しない変化する画素のパッチが多数存在する。そのような画素パッチは、排泄物、気泡、または移動装置などの他の物体を表し得るが、多くの場合、水/空気界面の揺らぎなどの視覚アーチファクトに由来し得る。計算リソースの浪費を防ぐために、ROI提案モジュール160は、626においてフィルタリングを実行することによって、追加の処理のためにそれらを送信する前にペレット以外のROIを除去するように構成され得る。
【0102】
626において、コンピュータ140は、飼料ペレットに対応しない任意のROIを識別および除去するためにROIフィルタリング626を行う。たとえば、(1)各ROIから特徴を抽出するために1または複数のコンピュータビジョンベースのフィルタが用いられてよく、(2)その後、これらの特徴は、経験的に決定された閾値と比較され、上述した特徴に基づいてどのROIが省略され得るかを決定することができる。使用され得るフィルタの例は、飼料ペレットとするには小さすぎる物体およびアーチファクトに対応するROIをフィルタするための最小輪郭サイズ要件を含むが、これに限定されない。あるいは、別の種類のフィルタは、たとえば円形度またはアスペクト比などの形状要件に基づいてよい。
【0103】
あるいは、より複雑な特別に設計されたフィルタのセットは、たとえば気泡および水の揺らぎのアーチファクトといった特定の種類の不所望の物体を除去するために効果的である。1つのアプローチとして、ROIの輪郭内の画素と輪郭外の画素との強度を比較することがある。飼料ペレットを画定する輪郭内の画素は、周囲の画素よりも暗いことが予想される。対照的に、水のアーチファクトおよび気泡を画定する輪郭は、一般にこの仮定を満たさない。
【0104】
使用され得るまた別のROIフィルタリング方法は、輪郭と、その対となる「強調輪郭」との比較測定に基づく。前景マスク(たとえば背景減算の出力)から生成されたROI輪郭とは対照的に、少なくとも1つの実施形態において、ROI提案モジュール160は、物体の境界が存在する場所に関する第2の推定を得るために元画像に閾値処理を行うことによって「強調輪郭」を生成してよい。この閾値処理は、たとえば、暗い色であるという物体の特性および明るい色であるという物体エンハンサ116の特性を用いて、物体の境界を発見してよい。第1および第2の推定において得られた2つの異なる種類の輪郭の形状は、飼料ペレットについては同様であるが、気泡、水のアーチファクト、および不規則なエッジおよび押出しを有する他の物体(たとえば排泄物など)については著しく異なっている。したがって、第1および第2の推定から互いに対応する(たとえば同じ潜在的物体を表す)物体の輪郭に関して形状測定値を取得することができ、形状測定値の差が形状測定値閾値レベル未満である場合、それらのROIは同じ物体(たとえば飼料ペレット)に関する可能性が高く、保持され得るが、形状測定値閾値より大きい形状測定値の差を有する他のROIは、除去され得る。
【0105】
これらのフィルタリング方法は、高精度でペレットROIを識別するためには不十分な場合があり、「ペレットネス」確率を提供するものではないが、非飼料ペレットROIの大部分を除去するために役立つ。この段階でこれらの非飼料ペレットROIを除去することにより、ペレットカウントアルゴリズムの下流の計算効率が全体として大幅に改善される。
【0106】
少なくとも1つの実施形態において、複数のフィルタが、非飼料ペレットROIを除去するために直列方式で用いられ得る。たとえば、第1のフィルタステージは、候補ROIから測定される第1の特徴に基づいてよく、フィルタされなかった各ROIは、第2の測度または強調輪郭フィルタリングに基づく第2のフィルタステージに提供され、場合によっては追加のフィルタステージについても以下同様である。
【0107】
また、少なくとも1つの実施形態において、ROIフィルタは、放流管における物理的セットアップ(たとえば図4Aおよび図4Bのハードウェアセットアップ)に何か異常がある場合にそれを識別し、たとえば、気泡を識別可能なフィルタの使用に基づいて異常な量の気泡が存在する場合、エンドユーザに通知するために用いられ得る。
【0108】
628において、コンピュータ140は、所与の画像フレームにおいて、626でフィルタされなかったROIに基づいて、処理される候補ROIのセットを決定する。またコンピュータ140は、たとえば飼料カメラ114の一意の識別子、および飼料カメラ114によって取得される画像フレームの各々を一意に識別するタイムスタンプなどのメタデータも生成する。
ROI分類モジュールの詳細
【0109】
図6Cは、ROI分類モジュール162によって実行され得るROI分類方法630の例示的な実施形態のフローチャートを示す。ROI分類モジュール162の主な目的は、各ROIに、そのROIがペレットである確率(「ペレットネス」スコア)を割り当てることである。方法630が実施され得る方法はいくつか存在するが、畳み込みニューラルネットワーク(CNN)を用いてペレットネススコアを取得することが好適である。
【0110】
CNNモデルに基づく多数の分類器は、複雑なデータセットに対して優れた結果を達成している。ただし、ペレットか非ペレットかの二値分類タスクの性質により、オーバーフィッティングや不必要に大きな計算フットプリントを防ぐために、比較的複雑性の低いCNNモデルを用いることが好ましい。ROI分類器の可能な実装の1つとして、特徴抽出ネットワークとして0.25に設定されたアルファパラメータを有するMobileNet v2モデルを使用し、その後、ReLU活性化関数を有する64個の隠れユニットを有する高密度結合層、および3つの出力ノードとソフトマックス活性化関数とを有する最終的な高密度結合層を使用することがある。ただし、留意すべき点として、別の実装では他の分類器が用いられ得る。
【0111】
訓練または推論のためにROI分類器にサンプル(たとえば、各サンプルは、処理中の現在の画像フレームからの所与のROIに対応し、その画像フレームからのROI内の画像データを含む)を入力する前に、ROIが64×64画素のサイズに再形成され、平均中心正規化も受けるように、ROIに前処理が行われる。これらの64×64のRGB画像入力データセットは、ROI分類器への唯一の入力である。訓練中、回転および水平/垂直フリップの形式でのランダムな増強が用いられる。ニューラルネットワークは完全なペレットを認識することだけが意図されるため、ペレット全体が示されることを妨げる可能性のある補強(たとえばランダムなクロッピングや剪断)は用いられない。事前訓練された重みも用いられない(すなわち転移学習はない)。
【0112】
ニューラルネットワークに伴う共通の問題は、較正が不十分なことであり、これは、確信的な予測のみを行う傾向を意味する。これは、所与のCNNモデルが誤った決定をする場合、それが高い信頼度を伴うという点で、望ましくない品質である。ROI分類器による処理のためにデータセットが取得される生産環境における画像の分布において、人間のラベラでもサンプルがペレットであるか非ペレット物体であるかの決定に確信を持てない多数の物体が存在する。そのような場合、ペレット分類モデルは、この不確実性を反映する確率(すなわち0または1よりも0.5に近い確率)を生成することが望ましい。
【0113】
不十分なモデル較正の問題を緩和するために、ペレット、非ペレット、および曖昧という3つのクラスにあるオブジェクトで訓練データセットを構築することが役立つ。人間のラベラは、ROI提案モジュール160によって提供されたROIを、これら3つのクラスの1つとしてラベル付けし、ペレット/非ペレットの予測に完全な確信がない場合は常に曖昧クラスを用いるように指示された。
【0114】
人間のラベラとCNNとがROIデータを見る方法の重要な違いの1つは、人間は、周囲の(たとえば前後の)画像フレームからの文脈情報を利用できる点である。ROIがペレットとしてラベル付けされ得るか否かに関して不確実である場合、人間は、前後両方のフレームを見て判断の助けとすることができる。そのような場合、周囲のフレームからの情報(たとえば前のフレームにおける見え方、またはフレーム間での動き方など)によってROIが明らかにペレットであるが、個々のフレームから物体を見るだけではペレットが何であるかが明らかではない場合、ラベラは、文脈情報を忘れ、曖昧ラベルを用いるように指示された。
【0115】
曖昧クラスの追加により、各サンプルについてROI分類器が出力した確率分布の有意義性が高められた。ここで、サンプルはただ1つの物体であり、確率分布は、この物体が(a)ペレット、(b)非ペレット、および(c)曖昧である確率として定義され、これら3つの確率の合計は1に等しい(すなわち、これはソフトマックス分布である)。いくつかのシナリオでは、本物のペレットの軌跡は、非ペレット物体(たとえば気泡または排泄物の一部)とわずかに重なる1つのROIを中間部に有してよく、これによりそのROIに0.0のペレットネススコアが割り当てられ、そのROIはトラッカによって省略される。この方法を採用することにより、分類モデルは、そのROIに低いスコアを付与し得るが、トラッカによって無視されるほど低いスコアではない。この技術の採用により、軌跡分類モジュール166がペレット軌跡と非ペレット物体軌跡とを効果的に分離する能力も改善される。
【0116】
十分な性能を実現するために、ROI分類モデルを訓練するために各クラスに少なくとも5000個のサンプルが用いられ得る。これらのサンプルは、可能な限り多くのシナリオ(たとえば異なる照明条件または放流管流量)から得られ得る。新たな環境に移動する場合、分類モデルの微調整が必要になり得る。
【0117】
632において、コンピュータ140は、処理中である現在の画像フレームおよびROIの座標を取得する。各ROIの画像データを表すサンプルが取得される。634において、サンプルは前処理され、これは、各々が同じサイズを有する行列によって表されるように再形成および平均中心正規化を実行することによって上述したように行われ得る。
【0118】
636において、前処理された各サンプルは、各サンプルの確率分布を生成するROI分類器に適用される。ROI分類器は、上述したようなCNNベースの分類器であってよい。これは、たとえばソフトマックス分布などの離散確率分布であってよい。たとえば、各サンプルについて、確率分布は、合計すると1になり、潜在的物体がROI分類器によって用いられるクラスの1つに属する見込みを表す確率スコアを含む。所与のサンプルの確率分布は、サンプルに対応する物体がペレットである第1の確率、この物体が非ペレットである第2の確率、および物体が曖昧である第3の確率を含む。たとえば、CNN分類器は、所与のサンプルについて、ペレットクラスに0.8、曖昧クラスに0.15、および非ペレットクラスに0.05として確率分布を提供してよい。
【0119】
638において、各サンプルの最も高い確率が、サンプルに対応する物体のROIをペレット、非ペレット、または曖昧のいずれかとしてラベル付けするために用いられる。データファイル168は、ROI分類モジュール164によって処理される各ROIの分類を追跡し続けるために更新され得る。
ROI追跡モジュールの詳細
【0120】
図6Dは、ペレットであると分類されたROIに基づいてROI追跡モジュール164によって実行され得るROI追跡方法640の例示的な実施形態のフローチャートを示す。目的はペレットのカウントであり、ビデオフィードの複数の画像フレーム内にペレットが存在するため、ペレットトラッカ159は、連続した画像フレームにわたりペレットを複数回カウントすることを避けるために、識別される各ペレットを追跡してよい。
【0121】
OpenCVのような追跡アルゴリズムのオープンソース実装の多くは、不十分または非効果的である。通常、これらのアルゴリズムは、画像パッチ(たとえばROI)で初期化され、次の画像(たとえばビデオ内の次のフレーム)内で同様の画像パッチを探索することによって動作する。これらの方法は、画像パッチに対して動作するので、現代の陸上養魚場の規模では計算上の処理が不可能である。また、これらは、既存の軌跡にROIを追加するか否かを決定する場合にペレットネススコアを用いる機会をもたらさない。
【0122】
しかし、本明細書の教示によると、ペレットカウントアルゴリズムは、画像パッチを用いるのではなく、ペレットネススコアおよび各ROIの重心の座標を用いて動作する。一般に、ペレットネススコアは、ROIが追跡に値するかを決定し、そうである場合、(1)処理中である現在のROIを有する新たな軌跡を開始するか、または(2)ROIを既存の軌跡に追加するかを決定するために用いられる。
【0123】
642において、ROI追跡モジュール164は、ペレットとして分類された所与のROI(すなわち「ペレットROI」)に関する単一の画像フレームからROIデータを受信する。このROIデータは、ROIの位置(たとえばROIの座標)と、ROI分類モジュール162によって決定されたROIがペレットに対応する確率である「ペレットネスROIスコア」とを含み得る。このROIデータは、たとえば飼料カメラ114の識別子、および現在処理中である画像フレームが取得された時間を表すタイムスタンプなどのメタデータも含んでよい。
【0124】
644において、コンピュータ140は、ROIスコアが閾値スコアを満たすかを決定し、これは、ROI分類器によって行われた分類の後、ROIが別のクラスに属するよりもペレットである可能性が高いという別の試験である。この比較が真である(すなわちイエス、ROIスコアが閾値スコアを満たしている)場合、ROIは候補ROIと称することができ、方法640は645に進む。
【0125】
644での比較が偽である(すなわちノー、ROIスコアが閾値スコアを満たさない)場合、方法640は646に進み、この時点で物体は破棄され、それ以上追跡されない。閾値スコアは、経験的に決定され得る。
【0126】
645において、コンピュータ140は、どの軌跡が候補ROIを含むかを決定し、これは、ROIペレットに対応する物体の位置と、現在追跡中である軌跡とを比較することを含んでよい。たとえば、評価中である候補ROIと、評価中である候補ROIに最も近い既存の軌跡の「末尾」(たとえば最後のROI)との間の距離が、(たとえばユークリッド距離の観点から)所定の距離閾値よりも大きい場合、現在のROIを有する新たな軌跡が、評価中である現在のROIを開始点として用いて開始され得る。あるいは、上述の距離が距離閾値未満である場合、ROI追跡モジュール164は、評価中である現在のROIを、その既存の最も近い軌跡に追加する。646での評価は、たとえば図6Eの方法700を用いて行われ得る。
【0127】
647において、現在の画像フレームについて評価すべき他のROIが存在するかが決定される。評価すべきROIが更に存在する場合、方法600は642に戻る。
【0128】
現在の画像について全てのROIが処理された場合、方法640は648に進み、ROI追跡モジュール164は、処理中である現在の画像フレームより前に存在した任意の軌跡が、現在の画像フレーム内のROIのいずれかで更新されていないかを決定する。これらの軌跡の各々は、「終了した軌跡」と称される。ROI追跡モジュール164は、任意の終了した軌跡を識別し、これらはその後、軌跡分類モジュール166に提供され得る。
【0129】
図6Eは、ROIを既存の軌跡または新たな軌跡に割り当てるための方法650の例示的な実施形態のフローチャートを示す。方法650は、コンピュータ140によって実行されるとROI追跡モジュール164によって行われ得る。この例示的な実施形態において、方法650は、現在の画像フレームにおいて図6Dに関して上述したようなROIペレットネススコアに基づいて破棄されなかった全てのROIに対して動作するとともに、いくつかの画像フレームを連続的に処理することができるバッチ処理法として実施される。少なくとも1つの実装において、方法650は、画像フレームごとにコンピュータ140によって実行され、コンピュータ140は、特定の画像フレーム内で発見された全てのROIを入力として受信する。
【0130】
652において、コンピュータ140は、現在の画像フレームに関する候補ROIおよびペレットネススコアを取得する。654において、候補ROIが存在しないかが決定される。この決定が真である場合、方法650は656に進み、次の画像フレームがロードされてよく、その後、方法650は652に戻り、次の画像フレームの候補ROIに関するデータが取得される。あるいは、654での決定が偽である場合、方法650は658に進む。
【0131】
658において、候補ROIが存在せず、アクティブな軌跡が存在するかが決定される。この決定が真である場合は、アクティブな軌跡に追加すべきROIが存在しないことを意味し、その場合、方法650は660に進む。658での決定が偽である場合、方法650は662に進む。
【0132】
660において、アクティブな軌跡は終了され、その後、終了した軌跡として識別され得る。アクティブな軌跡は、前の画像フレームにおいてROIが追加されたものである。この時点で、方法650は656に進み、次の画像フレームの候補ROIを処理してよく、または方法650は終了してよい(不図示)。
【0133】
662において、候補ROIが存在し、アクティブな軌跡が存在しないかが決定される。この決定が真である場合は、候補ROIを追加するアクティブな軌跡が存在せず、候補ROIが新たな軌跡に追加され得ることを意味し、この場合、方法650は664に進む。662での決定が偽である場合、方法650は666に進む。
【0134】
664において、各候補ROIのために新たなアクティブな軌跡が作成され、候補ROIは、新たな軌跡のための開始ノードまたはオブジェクトである。この時点で、方法650は666に進み、次の画像フレームの候補ROIを処理してよく、または方法650は終了してよい(不図示)。
【0135】
666において、最初はいくつかの(すなわち少なくとも1つの)候補ROIおよび少なくとも1つのアクティブな軌跡が存在する状況である。方法650は、666、668、670、および672を繰り返し、666が実行される度、評価の必要がある候補ROIが存在するかが決定される。この決定が真である場合、方法650は668に進む。この決定が偽である場合、方法650は660に進む。
【0136】
668において、方法650は、候補ROIがアクティブな軌跡に属するか、または1または複数の新たなアクティブな軌跡が作成されるべきかを決定することを含む。これは、候補ROIからアクティブな軌跡までの距離と距離閾値との比較に基づいて、アクティブな軌跡に一致または対応する候補ROIの位置を特定することによって決定され得る。これは、現在の候補ROIの位置(たとえば重心)およびアクティブな軌跡の末尾位置(たとえば直近で追加されたROIの位置)からの(たとえばユークリッド)距離に関するペア距離を決定し、最小ペア距離を決定することによって行われ得る。
【0137】
方法650は670に進み、各候補ROIと対応する最も近いアクティブな軌跡との最小ペア距離が距離閾値と比較される。ペア距離が距離閾値よりも小さい場合、方法650は672に進む。
【0138】
672において、候補ROIは、最も近いアクティブな軌跡に追加される。その後、候補ROIおよびその最も近いアクティブな軌跡は検討から外され、方法650は666に進み、評価が必要な他の候補ROIが存在するかが決定される。
【0139】
670での決定が偽である場合、方法650は664に進み、この時点で、現在の候補ROIについて新たな軌跡が作成される。その後、方法650は666に進み、評価すべき候補ROIが更に存在するかが決定される。方法650が666に進む前に、コンピュータ140は、最後に作成された軌跡およびROIを次のループ反復における検討から除外する。評価すべき他の候補ROIが存在しない場合、方法650は660に進む。
軌跡分類モジュールの詳細
【0140】
図6Fは、コンピュータ140によって実行されると軌跡分類モジュール166によって行われ得る軌跡分類方法680の例示的な実施形態のフローチャートを示す。少なくとも1つの実施形態において、方法680は、軌跡が「アクティブ」状態から「終了した」状態に移行する度に行われる。代替実装において、方法680は、処理要件を低減するために可能な軌跡のサブセットにわたり行われる。
【0141】
この時点で十分に高いペレットネススコアを有する全てのROIが軌跡の一部であるが、これらの軌跡の全てが必ずしもペレットではない。個々の物体は異なる画像フレームで著しく異なって見え得るので、物体は、1または複数の画像フレームにおいてペレットのように見え、1または複数の他の画像フレームでは非ペレット物体のように見える場合がある。たとえば軌跡の長さ、軌跡内で追跡中である物体のROIに関するペレットネススコアの分布、および1または複数の他のフィルタ値の統計分布の少なくとも1つの測度(たとえば平均値、標準偏差、特定のパーセンタイルなど)であるがこれらに限定されない軌跡全体の特性を考慮することによって、軌跡分類モジュール166は、各軌跡が、ペレットまたは非ペレット物体に関連する可能性が最も高い軌跡であるという最終分類を行うことができる。
【0142】
681において、方法は、現在の軌跡内のROIに関するデータを取得することを含む。682において、現在の軌跡内のROIに基づいて、軌跡の長さ、軌跡内のROIに関するペレットネススコアの分布、および/または1または複数の他のフィルタ値の統計分布の少なくとも1つの尺度を含む軌跡測定値が生成される。少なくとも1つの実施形態において、ペレットネススコアの平均値のみが用いられる。あるいは、少なくとも1つの実施形態において、平均値ならびに25/50/75パーセンタイルが用いられ、その結果、ペレット分類モデルによって見られる画像が大幅に明確になり得る。
【0143】
683において、軌跡測定値は、それらが取得された軌跡がペレット軌跡として分類され得るかを決定するために評価される。少なくとも1つの実施形態において、この評価は、軌跡測定値を、軌跡がペレット軌跡クラスまたは非ペレット軌跡クラスに属する確率を提供する軌跡分類器に提供することによって行われ得る。これは、たとえばロジスティック回帰や、たとえばランダムフォレストなどの線形モデル、またはランダムフォレストやXGBoostなどのツリーベースのモデルを用いて行われ得る。あるいは、少なくとも1つの実施形態において、この評価は、少なくとも1つの軌跡測定値と、経験的データを用いて決定された対応する軌跡測定値閾値とを比較することによって行われ得る。そのような実施形態において、軌跡測定値閾値を通過する軌跡測定値が多い場合、現在の軌跡は、食べ残しの飼料ペレットの軌跡である可能性が高いことが示され、方法は685に進み、軌跡はペレット軌跡と分類される。その後、方法680は686に進む。
【0144】
683での決定が偽である場合、方法680は684に進み、対応する物体の軌跡および対応するROIは破棄される。その後、方法680は686に進む。
【0145】
686において、分類すべき軌跡が他にあるかが決定される。この決定が真である場合、方法680は681に戻る。この決定が真でない場合、方法680は687に進み、終了する。
【0146】
少なくとも1つの実施形態において、方法600またはそのサブセットは、取得画像内の物体が定義可能な周囲を有するように飼料カメラ114に背景を提供するために、飼料カメラ114に対向する放流管112の出口に隣接して、かつ飼料カメラ114の視野内に物体エンハンサ116を取り付けることと、飼料カメラ114によって取得されたビデオフィードが、物体エンハンサ116の画像である画像フレームを備え、画像の取得時に飼料カメラ114の視野を横切る物体を含むように、飼料カメラ114を物体エンハンサ116に固定することとを更に備える。
【0147】
少なくとも1つの実施形態において、魚が入った水槽110を有する陸上養魚場における飼料監視のためのシステム100は、水槽110に結合された放流管112に取り付けられた飼料カメラ114であって、各画像の取得時に飼料カメラ114の視野を横切る、ペレットおよび非ペレット物体を備える物体の画像を備えるビデオフィードを捕捉するように構成された飼料カメラ114と、プロセッサユニット144および実行されるとプロセッサユニット144に方法600または方法600のサブセットを行わせる命令が格納されたメモリユニット156を備えるコンピュータ140とを備える。
【0148】
図7Aは、放流管112において用いられるハードウェアセットアップ700の例示的な実施形態の斜視図を示す。図7Bは、図7Aに示す例示的な実施形態の断面図を示す。飼料カメラ114は、飼料カメラ114の視野が物体エンハンサ116の全体または大部分を捕捉し、かつ飼料カメラ114と物体エンハンサ116の下面との間に一定の距離があるように、2つの部材708m1および708m2から形成されたブラケット708に連結され得る。ブラケット708の部材708m1および708m2は、外側に延び、物体エンハンサ116の下面が可動に結合された支柱710pを有する第2のブラケット710に連結された横方向タブである上端を有してよい。部材708m1および708m2の下部は、部材708m1および708m2が互いに対して摺動可能であるようなチャネル708c(そのうちの1つだけが可視)を有し、対応する横方向タブは伸縮可能であり、様々な径を有する放流管112にブラケット708が適合することを可能にする。横方向に延びるタブが放流管112のエッジに重なるように部材708m1および708m2が正確に配置されると、部材708m1および708m2を互いに固定するためにチャネル708cに固定具が適用され得る。飼料カメラ114は、飼料カメラ114の視野が物体エンハンサ116に向けられるように、部材708m1および708m2の下側水平部に取付けられ得る。ハードウェアセットアップ700の少なくとも1つの実装において、物体エンハンサ116は、放流管112に隣接して摺動可能に取り付けられ、飼料カメラ114は、放流管112から異なる量の水流が出る場合に物体エンハンサ116が上下に動くことができ、飼料カメラ114が物体エンハンサ116から一定の距離に保たれるように、物体エンハンサ116から一定の距離を置いて物体エンハンサ116に結合される。少なくとも1つの実施形態において、チャネル708cは、飼料カメラ114をブラケット708に固定するために、たとえばねじなどの固定具によって係合されてもよい。
【0149】
第2のブラケット710は、U字形のブラケットであってよく、各々が横方向に延び支柱710pに結合されたタブを有する2つの垂直部材710v1および710v2を有する。部材710v1および710v2の上側横方向タブは、固定具を介してブラケット708の上側タブに固定される。ブラケット710は、垂直部材710v1および710v2の下側端部に結合された下側部材710m1および710m2も含む。部材710m1および710m2は、互いに対して可動であり、図4A~4Bのブラケット構成に関して説明したのと同様の方法で互いに係合される。
【0150】
第2のブラケット710の上側横方向タブは、物体エンハンサ116および飼料カメラ114が回転する能力を制限するが、放流管112内の水圧が変化することにより放流管112から水流が出る際に物体エンハンサ116が上下することを可能にするような方法で、放流管112に固定され、定位置に保持され得る。ブラケット708、ブラケット710、および支柱710は、まとめてブラケット構成740または取付けアセンブリと称されてよく、図7Cに分離して示される。図7Dは、物体エンハンサ116が配置されたブラケット構成740を示す。飼料カメラ114は、ネットワーク接続(たとえばイーサネットケーブル)に接続するためのワイヤを有してよい。あるいは、飼料カメラ114は、イーサネットスイッチ120への無線接続を有してよい。
【0151】
たとえば、ブラケット710は、物体エンハンサ116が放流管112の出口ポートより上に位置し、上方に動くことによって物体エンハンサ116の下面と出口ポートの上面との間に隙間を設け、放流管112内で水圧が上昇した場合に放流管112から水流が出ることを可能にし得るように、放流管112の出口ポートまたは開口部に取り付けられ得る。これを実現するために、ブラケット710は、物体エンハンサ116のエッジの2つの部分に存在する溝116gによって摺動可能に係合された支柱710pの形式の摺動機構を含む。水圧が低下すると、物体エンハンサ116は下方に動き得る。水圧が上昇すると、物体エンハンサ116は上方に動き得る。
【0152】
図示されていないが、保持要素は、物体エンハンサ116がブラケット710の支柱710pから外れ、放流管112の出口ポートから浮き上がることを防ぐために用いられ得る。たとえば、支柱710pの端部は、水流が物体エンハンサ116を支柱710pの上端まで持ち上げるほど強い場合に物体エンハンサ116の上面を係合し、物体エンハンサ116が放流管112の出口ポートで取付け台(たとえばブラケット710の支柱710p)から外れることを防ぐように、球状の端部を有し、または外側に開いた形状であってよい。
【0153】
任意選択的に、少なくとも1つの実施形態において、物体エンハンサ116に向けられる光を生成するように光源が取り付けられ得る。そのような場合、光源は、ブラケット710に固定され得る。
【0154】
本明細書で説明される実施形態の少なくとも1つにおいて実現される技術的利点の1つは、ペレットカウントアルゴリズムが、個々の廃棄(すなわち食べ残しの)ペレットをカウントおよび追跡することである。これは、他のアプローチが、(1)ペレットの活動の強度を測定する(たとえば、相対的な廃棄レベルを表すために所与の画像フレーム内のペレットの数を検出し、廃棄されるペレットの数を実際に測定しようと試みるわけではない)か、または(2)ペレットの小さな断面のみを追跡する(その結果、場合によっては不正確な推定値を提供する)ためである。対照的に、本明細書の教示に係るペレットカウントアルゴリズムは、特定の時間間隔にわたり飼料カメラの視野を通過する個々の廃棄ペレットをリアルタイムで正確にカウントし、推定値ではなく正確な測度を提供する。放流管内の流体力学に依存して、飼料カメラを通過する際に放流管の側面に付着することにより飼料カメラの視野外にある少数の(場合によっては無視できる数の)ペレットが存在する可能性がある。そのような場合、ペレット数は、上述したようなスケーリングの後、放流管の出口を通過するペレットの100%にはならないが、たとえば95%または99%など、わずかに低くなり得るだけである。飼料カメラの視野を通過する廃棄ペレット(たとえば食べ残しのペレット)の数は、放流管から出る廃棄ペレットの総数の所定の割合(たとえば10%または20%)であってよく、これはその後、放流管を通って水槽から出る廃棄ペレットの総数を外挿するためにスケール係数(たとえば、所定の割合が10%の場合は10、所定の割合が20%の場合は5)によってスケールアップすることができ、所定の割合は、上述したような検証によって決定される。
【0155】
本明細書で説明される実施形態の少なくとも1つにおいて実現される別の技術的利点は、AIベースの魚用給餌システムが、陸上再循環養殖システムのインフラストラクチャを活用し、最小の計算要件で廃棄ペレットの大幅に正確な数をもたらすことである。これは、従来のシステムに適用される他のアプローチはいずれも、全体的な水中環境における廃棄ペレットの数の(正確な数ではなく)推定値を作成しようと試みるためである。より小さな物理的領域内で魚用飼料を監視するために環境を利用/操作(具体的には陸上システムの出口管を使用)することに加えてペレットカウントアルゴリズムを用いることは、本明細書の教示に固有であり、計算要件を抑えながら(たとえば、大きなデータセットを処理するCNNに通常必要な高い計算能力を有する1または複数のGPUを必要とせず)全ての廃棄飼料ペレットをカウントすることができるという点で有用である。
【0156】
本明細書で説明される実施形態の少なくとも1つにおいて実現される別の技術的利点は、ペレットカウントアルゴリズムが廃棄飼料の連続測定を可能にする一方で、他の方法が離散測度を作成することである。これは、ペレットカウントアルゴリズムが、結果的に今後の飼料要件を決定するために用いられ得る現在の飼料要件をリアルタイムで理解するために他のリアルタイムデータソースとの統合を可能にするためである。
【0157】
留意すべき点として、少なくとも1つの実施形態において、コンピュータが、たとえばGPUのように十分に高い処理能力を有するプロセッサを用いる場合、物体エンハンサは用いられなくてよい。そのような実施形態において、ROI提案モジュールおよびROI分類モジュールは、たとえばYOLOなどのシングルショット検出器(SSD)や、Faster-RCNNなどのマルチステージモデルといった、エンドツーエンドの様々な物体検出ニューラルネットワークに置き換えられ得る。
【0158】
留意すべき点として、少なくとも1つの実施形態において、ペレットカウンタアルゴリズムは更に、ペレット数に基づいて制御信号を生成し、水槽に供給する魚用飼料の新たな量を生成するために養魚場の魚用給餌機に制御信号を送信するように構成され得る。制御信号は、ペレットのカウントに用いられる間隔に比例した間隔で更新されてよく、あるいは制御信号は、養魚場の水槽に最近発生した問題が存在し得ることを示すために設定された閾値を超過する変化が食べ残しの魚用飼料(すなわち食べ残しの飼料ペレット)の勾配に生じると、瞬時に更新され得る。
【0159】
本明細書で説明される出願人の教示は、例示の目的で様々な実施形態に関連するが、本明細書で説明される実施形態は例示であることが意図されるため、出願人の教示はそのような実施形態に限定されないことが意図されている。逆に、本明細書で説明および図示される出願人の教示は、本明細書で説明される実施形態から逸脱することなく様々な代替例、修正例、および等価物を包含しており、その一般範囲は、添付の特許請求の範囲において定義される。
図1
図2A
図2B
図3
図4A
図4B
図5
図6A
図6B
図6C
図6D
図6E
図6F
図7A
図7B
図7C
図7D
【国際調査報告】