(57)【特許請求の範囲】
【請求項１】
家畜を撮影した画像データを使い機械学習を行うことで生成された第１の学習済みモデルを利用し推定を行う推定装置と、前記推定装置に推定の要求を送信するクライアント端末とから構成されるシステムであって、
前記推定装置は、
前記クライアント端末が送信する識別情報から特定された家畜の活動データと給餌データを取得する取得手段と、
家畜を撮影した画像データと活動データと給餌データとを基に機械学習を行うことで生成された第２の学習済みモデル、および受信した識別情報に対応する家畜の画像データと前記取得手段により取得された当該家畜の活動データと給餌データを基に推定を行い、推定結果を提供する推定手段を有し、
前記クライアント端末は、
推定家畜を識別する識別情報とともに推定要求を送信し、前記推定結果を受信し推定の対象となる家畜の体重データをユーザーに提示する提示手段を有し、
前記推定手段は、再推定の必要があると判断した場合は前記第２の学習済みモデルを利用して推定することを特徴とすることを特徴とするシステム。
【請求項２】
前記第１の学習済みモデルは、前記第２の学習済みモデルの生成に使用していた活動データと給餌データを使わず生成された学習済みモデルであることを特徴とする請求項１に記載のシステム。
【請求項３】
前記推定手段は、推定要求を受信した場合は、前記第１の学習済みモデルを利用し推定を行い、推定要求を再び受信した場合は、前記第２の学習済みモデルを利用し推定を行うことを特徴とする請求項２に記載のシステム。
【請求項４】
前記提示手段は、
前記第１の学習済みモデルを利用し推定された前記推定結果を受信し推定の対象となる家畜の体重データをユーザーに提示し、前記ユーザーから再推定が指示されたことに応じて推定要求を再び送信し、前記第２の学習済みモデルを利用し推定された前記推定結果を受信し推定の対象となる家畜の体重データをユーザーに提示することを特徴とする請求項２または３に記載のシステム。
【請求項５】
前記推定手段は、
家畜の過去の体重データと、前記第１の学習済みモデルを利用し推定を行った推定結果との差異が閾値を超えていると判定した場合は、前記第２の学習済みモデルを利用し推定を行うことを特徴とする請求項２または３に記載のシステム。
【請求項６】
前記閾値は、推定の対象となる家畜の種別によって異なることを特徴とする請求項５に記載のシステム。
【請求項７】
家畜を撮影した前記画像データは、飼育場に設定された複数台のカメラで家畜を撮影した画像データであり、家畜を撮影した前記画像データも前記クライアント端末が送信する識別情報から特定されることを特徴とする請求項１乃至６の何れか１項に記載のシステム。
【請求項８】
飼育場に設定された複数台のカメラで撮影した画像データには複数の家畜が撮影されており、
前記推定手段は、複数の家畜に対して推定を行い、
前記提示手段は、複数の家畜の体重データをユーザーに提示することを特徴とする請求項７に記載のシステム。
【請求項９】
家畜を撮影した画像データを使い機械学習を行うことで生成された第１の学習済みモデルで推定を行い、再推定の必要があると判断した場合は家畜を撮影した画像データと家畜の活動データと給餌データとを基に機械学習を行うことで生成された第２の学習済みモデルで再推定を行う推定装置と、前記推定装置に推定の要求を送信するクライアント端末とから構成されるシステムにおける前記クライアント端末であって、
推定の対象となる家畜を識別する識別情報とともに推定要求を送信し、前記識別情報で特定される家畜の推定結果を受信し推定の対象となる家畜の体重データをユーザーに提示する提示手段を有することを特徴とするクライアント端末。
【請求項１０】
家畜の体重データを推定しユーザーに提示する方法であって、
ユーザーから提供された家畜の識別情報で特定される家畜のデータと、
家畜を撮影した画像データを使い機械学習を行うことで生成された第１の学習済みモデルで推定を行い、再推定の必要があると判断した場合は、家畜を撮影した画像データと家畜の活動データと給餌データとを基に機械学習を行うことで生成された第２の学習済みモデルで再推定を行う推定ステップと、
推定結果から推定の対象となる家畜の体重データをユーザーに提示する提示ステップと、を含む制御方法。
【請求項１１】
家畜を撮影した画像データを使い機械学習を行うことで生成された第１の学習済みモデルで家畜の体重データを推定しユーザーに提示するシステムであって、
家畜の識別情報から特定された家畜のデータを取得する取得手段と、
家畜を撮影した画像データと家畜の活動データと給餌データとを基に生成された第２の学習済みモデルを基に再推定を行い、前記取得手段により取得された家畜の体重の推定結果を提供する推定手段と、
前記推定結果を基に推定の対象となる家畜の体重データをユーザーに提示する提示手段を有することを特徴とするシステム。
【請求項１２】
家畜を撮影した画像データと家畜の活動データと給餌データを収集する収集手段と、
収集手段により収集されたデータを基に学習モデルに順次データ入力していくことで複数回に渡り学習を行う学習手段と、
前記学習手段による学習することにより得られた第２の学習済みモデルを、家畜を撮影した画像データを使い機械学習を行うことで得られた第１の学習済みモデルで推定を行った結果再推定の必要があると判断した場合に利用する第２の学習済みモデルとして提供する提供手段と、を有する学習システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、家畜の体重推定を行うシステム、クライアント端末、その制御方法に関する。
【背景技術】
【０００２】
家畜の健康管理は、畜産農家にとって商品としての品質に直結する作業である。例えば、日本において牛の場合は１回でも病気に罹れば等級を下げられてしまう。また、豚の場合は商品出荷時の体重が規定の範囲内におさまっていないと、いくら他の要素が良くても等級を下げられてしまう。家畜の商品としての品質を定める基準は国によって異なるが、家畜の健康状態の品質への影響は国を問わず大きく、その管理は畜産農家にとって重要な関心事となっている。
【０００３】
家畜の健康状態の測る重要な指標として体重が挙げられる。しかし、通常多数の個体を飼育する畜産農家にとって、家畜を１頭ずつ体重計に乗せて体重を測定する作業は重労働であり、相当の時間を要する。また、畜産農家は体重計測以外にも給餌作業、飼育施設の掃除等、家畜の健康状態に密接に関与する作業を合わせて毎日行わなければならない作業も多い。こうした背景のもと、毎日家畜の体重を計測することは、畜産農家にとって多大な負担となってしまう。
【０００４】
これに対して、特許文献１に記載の手法は３次元スキャナ装置を用いて撮像した動物の３次元画像から動物の体表面を統計的に分析することで、直接動物に触れることなく、客観的な体重を推定する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−５９３００
【発明の概要】
【発明が解決しようとする課題】
【０００６】
一般的に筋肉と脂肪では比重が異なる。そのため、動物の体表面の大きさが同一であっても、体表面の内側の肉質には個体差が存在し、推定される体重の精度に影響する。また、骨や血液などの動物の体表面画像からは判別できない要素も他に存在する。特許文献１に記載の手法は、それらの体表面からは把握できない要素の影響を加味していない。
【課題を解決するための手段】
【０００７】
本発明の一実施形態に係るシステムは、家畜を撮影した画像データを使い機械学習を行うことで生成された第１の学習済みモデルを利用し推定を行う推定装置と、前記推定装置に推定の要求を送信するクライアント端末とから構成されるシステムであって、前記推定装置は、前記クライアント端末が送信する識別情報から特定された家畜の活動データと給餌データを取得する取得手段と、家畜を撮影した画像データと前記活動データと給餌データとを基に機械学習を行うことで生成された第２の学習済みモデル、および受信した識別情報に対応する家畜の画像データと前記取得手段により取得された当該家畜の活動データと給餌データを基に推定を行い、推定結果を提供する推定手段を有し、前記クライアント端末は、推定家畜を識別する識別情報とともに推定要求を送信し、前記推定結果を受信し推定の対象となる家畜の体重データをユーザーに提示する提示手段を有し、前記推定手段は、再推定の必要があると判断した場合は前記第２の学習済みモデルを利用して推定することを特徴とする。
【発明の効果】
【０００８】
家畜の画像データから得られる解析データを、それに加えて体重と関連性の高い活動データと飼育データとも合わせて再度機械学習を行い体重推定することで、画像データだけでは判断しにくい体重の増減要素を反映し、体重の推定を行う際の精度が向上する。
【図面の簡単な説明】
【０００９】
【図１】システム全体図
【図２】ハードウェア構成図
【図３】ソフトウェア構成図
【図４】学習モデル４０２、４１２
【図５】学習の一連の流れを示したフロー図
【図６】体重推定システムの動作シーケンス図
【図７】実施例１における体重推定サーバー１１４における体重推定処理の詳細を示したフローチャート
【図８】実施例１におけるクライアント端末１４１に表示されるユーザーインターフェースである。
【図９】実施例２における体重推定サーバー１１４における体重推定処理の詳細を示したフローチャート
【図１０】実施例３における体重推定システムの動作シーケンス図
【図１１】実施例３における体重推定サーバー１１４における体重推定処理の詳細を示したフローチャート
【図１２】実施例３におけるクライアント端末１４１に表示されるユーザーインターフェースである。
【発明を実施するための形態】
【００１０】
以下、本発明を実施するための形態について図面を用いて説明する。
【実施例１】
【００１１】
図１は、本実施例に係る家畜体重推定システムの全体構成を示す図である。図１において、サーバー１１１〜１１４、カメラ１２１〜１２２、識別タグ１３１、クライアント端末１４１はネットワーク１００〜１０３を介して接続されている。ネットワーク１００〜１０３は、例えば、インターネット等のＬｏｃａｌ  Ａｒｅａ  Ｎｅｔｏｗｒｋ（以降、ＬＡＮと略称する）、ＷＩＤｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ（以降、ＷＡＮと略称する）、専用デジタル回線、ＡＴＭやフレームリレー回線、ケーブルテレビ回線、データ放送用無線回線等により実現される。ネットワーク１００〜１０３は、データの送受信が可能であればその種類を問わない。本提案書では、ネットワーク１００はインターネット、ネットワーク１０１、１０２、１０３はローカルネットワークとして説明する。
【００１２】
カメラ１２１は、ネットワーク接続機能を有し、撮影した画像データを画像データ管理サーバー１１３に送信する。ビデオカメラ１２２は、ネットワーク接続機能を有し、撮影した映像データを画像データ管理サーバー１１３に送信する。なお、本構成要素については画像データあるいは映像データを撮影するハードウェアおよびソフトウェアを有していればカメラ以外の機器であっても構わないものとする。例えば、スマートフォンのようにカメラ機能を有するクライアント端末であってもよい。また、カメラ１２１、あるいはビデオカメラ１２２がネットワーク接続機能を有していなくても、別途、クライアント端末１４１を介して画像データ管理サーバーに画像データあるいは映像データを送信することができれば本システムの対象とする。
【００１３】
識別タグ１３１は、ＲＦＩＤなどの技術によって装着した家畜を識別することのできるタグ情報を保持し、タグ情報を個体識別データとして送信可能な装置である。また、識別タグ１３１はＧＰＳなどの技術によって装着した対象の位置情報を取得し、活動データ管理サーバー１１１に送信することができる。
【００１４】
クライアント端末１４１はプログラム実行環境が内蔵された情報機器である。例えば、デスクトップパソコン、ノートパソコン、Ｐｅｒｓｏｎａｌ  Ｄａｔａ  Ａｓｓｉｓｔａｎｔ（以降、ＰＤＡと略称する）やスマートフォン等である。クライアント端末１４１は、Ｗｅｂブラウザ（インターネットブラウザ、ＷＷＷブラウザ、Ｗｏｒｌｄ  ＷＩＤｅ  Ｗｅｂの利用に供するソフトウェア）等のプログラムを実行する環境が内蔵されている。
【００１５】
活動データ管理サーバー１１１は、識別タグ１３１から受信した家畜のタグ情報と位置情報を受信し、関連付けて保存、管理するサーバーである。活動データ管理サーバー１１１は、識別タグ１３１から受信した家畜それぞれの位置情報から移動距離や移動ルート等の活動データを生成し、体重推定サーバー１１４やクライアント端末１４１に提供する。なお、活動データ管理サーバー１１１が受信した位置情報から活動データを生成する手順は本発明内容とは直接の関係はないため、説明を省略する。
【００１６】
飼育データ管理サーバー１１２は、家畜に与えた餌の量等の情報や毎日の気温や湿度といった天候情報等をクライアント端末１４１から受信し、識別タグ１３１から受信した家畜のタグ情報と関連付けて保存、管理するサーバーである。また、飼育データ管理サーバー１１２は体重推定サーバー１１４から家畜の推定体重データ、クライアント端末１４１から実測した家畜の体重データを受信してタグ情報と関連付けて保存、管理するサーバーである。
【００１７】
画像データ管理サーバー１１３は、カメラ１２１、ビデオカメラ１２２、あるいはクライアント端末１４１から受信した画像データおよび映像データを、識別タグ１３１から受信したタグ情報と関連付けて保存、管理するサーバーである。
【００１８】
体重推定サーバー１１４は、画像データ管理サーバー１１３から受信した画像データ、活動データ管理サーバー１１１から受信した活動データ、飼育データ管理サーバー１１２から受信した飼育データをもとに家畜の体重を推定する機能を持つサーバーである。体重推定サーバー１１４は、推定した結果の体重データを飼育データ管理サーバー１１２およびクライアント端末１４１に送信する。
【００１９】
図１において、本実施例での説明を簡略化するためサーバー１１１〜１１４をそれぞれ１台構成として図示しているが、その台数を限定する意図はない。それぞれのサーバーは複数台の物理サーバーコンピューター、複数台の仮想サーバーコンピューター、あるいはその両方によって構成されていても構わない。
【００２０】
図２は、本実施例に係る家畜体重推定システムの各構成要素のハードウェア構成の一例を示す図である。図２（ａ）は、サーバー１１１〜１１４のサーバーコンピューターのハードウェア構成の一例を示す図である。システムバス２０１は、サーバーの各構成要素を接続するシステムバスである。
【００２１】
ＣＰＵ２０２は、装置全体の制御を行うＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔであり、システムバス２０１に接続する各構成要素のアクセスを統括的に制御する。
【００２２】
ＲＯＭ２０３は、記憶手段であるＲｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙであり、内部には基本Ｉ／Ｏプログラム等の各種データを記憶する。ＲＡＭ２０４は、一時記憶手段であるＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙであり、ＣＰＵ２０２やＧＰＵ２０９の主メモリ、ワークエリア等として機能する。記憶装置２０５は、外部記憶手段の一つで、大容量メモリとして機能し、本発明に係るプログラム等を格納する。例えば、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（以降、ＨＤＤと略称する）である。
【００２３】
ＮＩＣ２０６は、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄであり、ネットワーク１００を介して、図１に示す各構成要素とのデータのやり取りを行う。入力部２０７は、キーボード（不図示）やマウス（不図示）等の入力機器を介した指示入力手段である。表示部２０８は、ディスプレイ（不図示）等の出力機器を介した表示手段である。ＧＰＵ２０９は、ディープラーニングのような学習モデルを用いて、複数回に渡り学習を行う場合の処理を行うＧｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔである。ＧＰＵ２０９を利用することで、データをより多く並列処理することが可能となり、効率的な演算を行うことができる。
【００２４】
なお、上記サーバーコンピューターの構成は、あくまでも一例であり図２（ａ）に示す組み合わせに限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてＲＯＭ２０３、ＲＡＭ２０４、記憶装置２０５のいずれかに変更することも可能である。
【００２５】
図２（ｂ）は、カメラ１２１およびビデオカメラ１２２のハードウェア構成の一例を示す図である。システムバス２１１は、カメラの各構成要素を接続するシステムバスである。ＣＰＵ２１２は、装置全体の制御を行うＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔであり、システムバス２１１に接続する各構成要素のアクセスを統括的に制御する。
【００２６】
ＲＯＭ２１３は、記憶手段であるＲｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙであり、内部には基本Ｉ／Ｏプログラム等の各種データを記憶する。ＲＡＭ２１４は、一時記憶手段であるＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙであり、ＣＰＵ２１２の主メモリ、ワークエリア等として機能する。
【００２７】
記憶装置２１５は、外部記憶手段の一つで、大容量メモリとして機能し、本発明に係るプログラム、イメージセンサー２２０が読み取った画像データおよび映像データ等を格納する。例えば、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（以降、ＨＤＤと略称する）やＳＤメモリーカードである。
【００２８】
ＮＩＣ２１６は、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄであり、ネットワーク１０１を介して、図１に示す各構成要素とのデータのやり取りを行う。入力部２１７は、ハードウェアボタン（不図示）等の入力機器を介した指示入力手段である。表示部２１８は、ディスプレイ（不図示）等の出力機器を介した表示手段である。
【００２９】
レンズ２１９は、画像および映像を撮影するためのレンズである。レンズを介して入力された光をイメージセンサー２２０で読み取り、その結果を記憶装置２１５に格納することで画像データおよび映像データを撮影することが可能となる。
【００３０】
なお、上記カメラの構成は、あくまでも一例であり図２（ｂ）に示す組み合わせに限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてＲＯＭ２１３、ＲＡＭ２１４、記憶装置２１５のいずれかに変更することも可能である。また、記憶装置２１５に格納した画像データおよび映像データはＮＩＣ２１６を介して画像データ管理サーバー１１３やクライアント端末１４１に送信される。しかし、構成要素としてＮＩＣ２１６を持たないカメラの場合にはＳＤメモリーカード等の記憶装置を介して直接、接続しても構わない。
【００３１】
図２（ｃ）は、識別タグ１３１のハードウェア構成の一例を示す図である。システムバス２２１は、識別タグ１３１の各構成要素を接続するシステムバスである。ＣＰＵ２２２は、装置全体の制御を行うＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔであり、システムバス２２１に接続する各構成要素のアクセスを統括的に制御する。ＲＯＭ２２３は、記憶手段であるＲｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙであり、内部には基本Ｉ／Ｏプログラムや識別タグ１３１を一意に識別するための識別コード等の各種データを記憶する。ＲＡＭ２２４は、一時記憶手段であるＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙであり、ＣＰＵ２２２の主メモリ、ワークエリア等として機能する。記憶装置２２５は、外部記憶手段の一つで、大容量メモリとして機能し、ＧＰＳ２２７が取得した位置情報データ等を格納する。例えば、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（以降、ＨＤＤと略称する）やＳＤメモリーカードである。
【００３２】
ＮＩＣ２２６は、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄであり、ネットワーク１０２を介して、図１に示す各構成要素とのデータのやり取りを行う。ＧＰＳ２２７は、Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍであり、識別タグ１３１を装着した家畜の位置情報を定期的に取得する。
【００３３】
なお、上記識別タグの構成は、あくまでも一例であり図２（ｃ）に示す組み合わせに限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてＲＯＭ２２３、ＲＡＭ２２４、記憶装置２２５のいずれかに変更することも可能である。また、ＧＰＳ２２７が取得する位置情報と合わせて識別タグを装着した家畜の体温、心拍などの生体情報を取得する場合には、それら生体情報取得のためのハードウェアを接続しても構わない。
【００３４】
図２（ｄ）はクライアント端末１４１のハードウェア構成の一例を示す図である。システムバス２３１は、クライアント端末１４１の各構成要素を接続するシステムバスである。ＣＰＵ２３２は、装置全体の制御を行うＣｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔであり、システムバス２３１に接続する各構成要素のアクセスを統括的に制御する。
【００３５】
ＲＯＭ２３３は、記憶手段であるＲｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙであり、内部には基本Ｉ／Ｏプログラム等の各種データを記憶する。ＲＡＭ２３４は、一時記憶手段であるＲａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙであり、ＣＰＵ２３２の主メモリ、ワークエリア等として機能する。記憶装置２３５は、外部記憶手段の一つで、大容量メモリとして機能し、本発明に係るプログラム等を格納する。例えば、Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ（以降、ＨＤＤと略称する）である。
【００３６】
ＮＩＣ２３６は、Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄであり、ネットワーク１０３を介して、図１に示す各構成要素とのデータのやり取りを行う。入力部２３７は、キーボード（不図示）やマウス（不図示）等の入力機器を介した指示入力手段である。表示部２３８は、ディスプレイ（不図示）等の出力機器を介した表示手段である。なお、本実施例においては、入力部２３７と表示部２３８が一体化したタッチディスプレイを備えたスマートフォン、タブレットとして説明を行う。
【００３７】
カメラ２３９は、画像データおよび映像データを取得し、記憶装置２３５に格納するカメラモジュールである。なお、上記クライアント端末の構成は、あくまでも一例であり図２（ｄ）に示す組み合わせに限定されるものではない。例えば、データやプログラムの格納先は、その特徴に応じてＲＯＭ２０３、ＲＡＭ２０４、記憶装置２０５のいずれかに変更することも可能である。また、カメラ２３９が備わっていないクライアント端末であっても、画像データおよび映像データをＳＤメモリーカード等の記憶装置から取得することができれば、本発明の対象とする。
【００３８】
図３は、本実施例に係る家畜体重推定システムの各構成要素のソフトウェア構成の一例を示す図である。カメラ１２１およびビデオカメラ１２２は、データ記憶部３０１、データ送信部３０２、データ受信部３０３、撮影部３０４から構成される。撮影部３０４は、レンズ２１９を介して入力される光をイメージセンサー２２０により信号に変換する。
【００３９】
データ記憶部３０１は、撮影部３０４が変換した信号を、画像データあるいは映像データとして記憶装置２１５に格納して管理する。データ受信部３０３は、ＮＩＣ２１６を介して撮影部３０４の被写体である家畜に装着された識別タグ１３１と接続し、データ送信部３１２から識別ＩＤを受信する。受信した識別ＩＤは、記憶装置２１５に格納された画像データあるいは映像データと関連付けてデータ記憶部３０１が記憶装置２１５に格納する。データ送信部３０２は、記憶装置に格納された画像データあるいは映像データと、そのデータに関連付けられた識別ＩＤを画像データ管理サーバー１１３に送信する。
【００４０】
識別タグ１３１は、データ記憶部３１１、データ送信部３１２、位置情報管理部３１３から構成される。データ記憶部３１１は、識別タグ１３１を一意に識別するための識別ＩＤを記憶装置２２５に格納して管理する。表１は、識別タグ１３１のデータ記憶部３１１が管理する識別ＩＤのデータテーブルの一例を示したものである。
【００４１】
【表１】
0006942764.tif 000002
【００４２】
識別ＩＤカラムは、識別タグ１つ１つに割り当てられた一意のＩＤを格納するカラムである。識別タグから一意に家畜を特定する識別情報として識別ＩＤを用いるが、識別情報の形態に制限はなく、識別情報として運用できる情報であれば識別ＩＤに限定されるものではない。識別ＩＤのフォーマットは、利用する識別タグの数に応じて一意性が確保できるのであればそのフォーマットを限定する意図はない。本実施例に係る家畜体重推定システムにおいて、生成および管理される家畜の各種データは識別ＩＤに関連付けられ各構成要素で管理される。
【００４３】
データ送信部３１２は、ＮＩＣ２２６を介して接続されるカメラ１２１、ビデオカメラ１２２、飼育データ管理サーバー１１２に識別ＩＤを送信する。また、データ送信部３１２は、活動データ管理サーバー１１１に位置情報管理部３１３がＧＰＳから取得した位置情報を適宜、識別ＩＤと関連付けて送信する。
【００４４】
位置情報管理部３１３は、ＧＰＳから現在の位置情報を取得する。取得した位置情報は、データ記憶部３１１によって記憶装置２２５に格納される。なお、位置情報のフォーマットについては本発明内容とは直接の関係はないため、説明を省略する。位置情報管理部３１３は最低限、時刻情報と位置座標情報を関連付けて取得するものとしその他の付随情報について、その取得の可否を限定する意図は本発明にはない。
【００４５】
活動データ管理サーバー１１１は、データ記憶部３５１、データ送信部３５２、データ受信部３５３、活動データ解析部３５４から構成される。データ受信部３５３は、ＮＩＣ２０６を介して識別タグ１３１から識別ＩＤおよび位置情報を受信する。データ記憶部３５１は、データ受信部３５３が受信した識別ＩＤと位置情報を関連付けて記憶装置２０５に格納して管理する。また、データ記憶部３５１は活動データ解析部３５４が位置情報を解析して生成した活動データも識別ＩＤと関連付けて記憶装置２０５に格納して管理する。
【００４６】
データ送信部３５２は、ＮＩＣ２０６を介してデータ記憶部３５１が管理する活動データを体重推定サーバー１１４からの要求に従って送信する。活動データ解析部３５４は、データ記憶部３５１が管理する識別タグ１３１から受信した位置情報を解析して、識別タグが装着された家畜の個体ごとの活動データを生成する。表２は、活動データ解析部３５４が生成した活動データのデータテーブルの一例を示したものである。
【００４７】
【表２】
0006942764.tif 000003
【００４８】
活動データ解析部３５４は、識別タグ１３１から受信した位置情報を識別ＩＤごと、１日単位で集計し、識別タグを装着した家畜の移動距離を活動データとして生成し、活動データテーブルで管理する。識別ＩＤカラムは、識別ＩＤを格納するカラムである。
【００４９】
生成日カラムは、位置情報から活動データを生成した日付を格納するカラムである。午前の移動距離カラムは、識別タグから受信した位置情報から生成した午前の移動距離を格納するカラムである。午後の移動距離カラムは、識別タグから受信した位置情報から生成した午後の移動距離を格納するカラムである。総移動距離カラムは、識別タグから受信した位置情報から生成した１日の総移動距離を格納するカラムである。
【００５０】
飼育データ管理サーバー１１２は、データ記憶部３６１、データ送信部３６２、データ受信部３６３から構成される。データ受信部３６３は、ＮＩＣ２０６を介して識別タグ１３１から識別ＩＤを受信する。また、データ受信部３６３は、クライアント端末１４１から飼育データを受信する。
【００５１】
データ記憶部３６１は、データ受信部３６３が受信した識別ＩＤと飼育データを関連付けて記憶装置２０５に格納して管理する。また、データ記憶部３６１は体重推定サーバー１１４の推定部３４３あるいは再推定部３４４が推定し、格納するのに十分な精度と判断された体重データを受信し、識別ＩＤと関連付けて記憶装置２０５に格納して管理する。
【００５２】
データ送信部３６２は、ＮＩＣ２０６を介してデータ記憶部３６１が管理する飼育羽データを体重推定サーバー１１４からの要求に従って送信する。表３、４、５は、データ記憶部３６１が管理する飼育データのデータテーブルの一例を示したものである。
【００５３】
【表３】
0006942764.tif 000004
【００５４】
飼育データ管理テーブルは、クライアント端末１４１を介して入力された家畜の実測体重あるいは体重推定サーバーから受信した推定体重を別途給餌データテーブルで管理する給餌データと関連付けて管理する。
【００５５】
識別ＩＤカラムは、識別ＩＤを格納するカラムである。記録日カラムは、対象の家畜の体重と給餌データとを関連付けた日付を格納するカラムである。体重カラムは、家畜の体重カラムを格納するカラムである。測定カラムは、データ受信部３６３が受信した家畜の体重データが実測によって行われクライアント端末１４１を介して入力されたのか、体重推定サーバー１１４によって推定されたのかどうかを判別する値が入る。実測された値の場合には「実測」、体重推定サーバー１１４によって推定された値の場合には「推定」が格納される。本実施例に示すシステムにおいて登録される飼育データの内、体重が実測された家畜以外の飼育データについては体重カラムの値と測定タイプカラムの値は体重推定サーバー１１４による推定処理が行われるまでは空の状態である。
【００５６】
動物タイプカラムは、対象の家畜の動物の種類を格納するカラムである。給餌ＩＤカラムは、後述する給餌データテーブルで管理される給餌データを一意に識別するＩＤを格納するカラムである。画像ＩＤカラムは、後述する画像データテーブルで管理される画像データを一意に識別するＩＤを格納するカラムである。
【００５７】
【表４】
0006942764.tif 000005
【００５８】
給餌データテーブルは、家畜に対して与えた餌の種類と量を管理するテーブルである。なお、給餌データの各項目は、クライアント端末１４１を介したユーザー操作によって飼育データ管理サーバー１１２に入力されるものであり、その手順は本発明とは直接の関係はないため説明を省略する。
【００５９】
給餌ＩＤカラムは、給餌データを一意に識別するＩＤを格納するカラムである。給餌日カラムは、家畜に餌を与えた日付を格納するカラムである。給餌記録カラム１〜Ｎは、給餌内容の詳細情報を格納するカラムであり、与えた餌の種類の数だけ存在する。給餌記録カラムは給餌種カラムと給餌量カラムで構成される。給餌種カラムは、家畜に与えた餌の種類を示す情報を格納するカラムである。後述する餌マスタテーブルで管理される餌マスタデータを一意に識別する給餌種の値を格納する。給餌量カラムは、家畜に与えた餌の量を格納するカラムである。
【００６０】
【表５】
0006942764.tif 000006
【００６１】
餌マスタテーブルは、家畜に与えた餌の詳細情報を管理するテーブルである。一般的に家畜に与える餌は１種類以上の材料を混合した形で提供されるためその内訳を餌マスタテーブルで管理する。給餌種カラムは、家畜に与える餌の種類を示す情報を格納するカラムである。構成物カラム１〜Ｎは、餌を構成する材料の詳細情報を格納するカラムである。構成物カラムは材料カラムと含有率カラムで構成される。材料カラムは、餌の構成材料を示す情報を格納するカラムである。含有率カラムは、餌全体に含まれる材料カラムが示す材料の割合を格納するカラムである。
【００６２】
画像データ管理サーバー１１３は、データ記憶部３３１、データ送信部３３２、データ受信部３３３、画像データ解析部３３４から構成される。データ受信部３３３は、ＮＩＣ２０６を介してカメラ１２１およびビデオカメラ１２２から画像データ、映像データ、識別ＩＤを受信する。あるいは、データ受信部３３３は、クライアント端末１４１を介して画像データ、映像データ、識別ＩＤを受信する。
【００６３】
データ記憶部３３１は、データ受信部３３３が受信した画像データ、映像データ、識別ＩＤを関連付けて記憶装置２０５に格納して管理する。表６は、データ記憶部３３１が管理する画像データテーブルの一例を示したものである。
【００６４】
【表６】
0006942764.tif 000007
【００６５】
画像ＩＤカラムは、画像データを一意に識別するために画像データ管理サーバー１１３が生成した識別子である。登録日カラムは、画像データを画像データ管理サーバー１１３が受信した日時情報を格納するカラムである。保存パスカラムは、画像データを保存している画像データ管理サーバー１１３の記憶装置２０５の論理パスを格納するカラムである。識別ＩＤカラムは、画像データに関連付けられた識別ＩＤを格納するカラムである。
【００６６】
データ送信部３３２は、ＮＩＣ２０６を介してデータ記憶部３３１が管理する画像データ、映像データを体重推定サーバー１１４からの要求に従って送信する。画像データ解析部３３４は、データ記憶部３３１で管理される画像データ、映像データを解析し、映っている家畜の画像を抽出する。さらに抽出した家畜の体全体の体長、表面積、家畜の特定部位ごとの大きさ等を抽出し、データ記憶部３３１で管理する。
【００６７】
表７は、データ記憶部３３１が管理する画像解析データテーブルの一例を示したものである。なお、表６においては、本実施例における家畜として牛を対象とした場合の解析データの一例を示している。
【００６８】
【表７】
0006942764.tif 000008
【００６９】
識別ＩＤカラムは、解析した画像データに関連付けられた識別ＩＤを格納するカラムである。解析日カラムは、画像データ解析部３３４が、画像データを解析した日付を格納するカラムである。動物タイプカラムは、対象の家畜の動物の種類を格納するカラムである。全長カラムカラムは、画像データから抽出した家畜画像から算出した全長を格納するカラムである。
【００７０】
体表面積カラムは、画像データから抽出した家畜画像から算出した体表面積を格納するカラムである。臀部カラムは、画像データから抽出した家畜画像から算出した臀部に限った体長を格納するカラムである。腰骨カラムは、画像データから抽出した家畜画像から算出した腰骨に限った体長を格納するカラムである。
【００７１】
画像解析データテーブルに格納される画像解析結果は、後述する体重推定サーバー１１４の学習部３４２で用いられる学習モデルに合わせて変動するため、その解析結果の内容は表６に示した項目に限定されることはない。なお、画像データ、映像データから家畜を抽出する手順と方法、また家畜画像から体表面積や特定領域の長さ等を算出する手順と方法については、本発明内容とは直接の関係はないため説明を省略する。
【００７２】
体重推定サーバー１１４は、データ記憶部３４１、学習部３４２、推定部３４３、再推定部３４４、データ受信部３４５、データ送信部３４６から構成される。データ受信部３４５は、ＮＩＣ２０６を介してクライアント端末１４１のデータ送信部３２２から体重推定要求を受信する。また、データ受信部３４５は、クライアント端末１４１から受信した体重推定要求に応じて、活動データ管理サーバー１１１、飼育データ管理サーバー１１２、画像データ管理サーバー１１３から体重推定に必要な各種データを受信する。
【００７３】
データ記憶部３４１は、学習部３４２によって生成される後述する学習モデル４０２および４１２を用いて推定部３４３、再推定部３４４で実行される各体重推定プログラムを格納して管理する。学習部３４２は、データ受信部３４５を介して受信した活動データ、飼育データ、画像解析データを使用して学習を行い、学習モデル４０２、４１２を生成および教育する。
【００７４】
推定部３４３は、学習モデル４０２を用いた体重推定プログラムを実行することで、データ受信部３４５が受信した家畜の画像解析データから、体重データを推測する。再推定部３４４は、学習モデル４１２を用いた体重推定プログラムを実行することで、データ受信部３４５が受信した家畜の画像解析データ、飼育データ、活動データから、体重データを推測する。データ送信部３４６は、ＮＩＣ２０６を介して体重推定要求を受信したクライアント端末１４１に対して推定体重データを送信する。また、データ送信部３４６は、推定体重データを飼育データ管理サーバー１１２に送信し、飼育データテーブルの識別ＩＤが一致するデータの体重カラムに推定体重データを格納する。
【００７５】
図４は、学習部３４２および推定部３４３、再推定部３４４で使用される学習モデルと、入出力の関係を示した概念図である。図４（ａ）は推定部３４３で実行される体重推定プログラムが使用する学習モデルと、入出力の関係を示した概念図である。学習モデル４０２は、学習部３４２が生成する学習モデルである。入力データ４０１は、データ受信部３４５で受信した家畜の画像解析データをベクトル化したデータである。出力データ４０３は、入力された画像解析データに対応する家畜の個体の推定体重データである。
【００７６】
図４（ｂ）は再推定部３４４で実行される体重再推定プログラムが使用する学習モデルと、入出力の関係を示した概念図である。学習モデル４１２は、学習部３４２が生成する学習モデルである。入力データ４１１は、データ受信部３４５で受信した家畜の画像解析データ、再推定を行う時点までの飼育データと活動データをベクトル化したデータである。出力データ４１３は、入力された各データに対応する家畜の個体の再推定体重データである。
【００７７】
学習モデル４０２、４１２を用いた家畜の体重推定プログラムの実行タイミングはクライアント端末１４１から体重推定要求に応じて実施してもよい。また、画像データ管理サーバー１１３が画像データを受信したタイミングを体重推定サーバー１１４が検知して、クライアント端末１４１からの要求を受ける前に予め実施してもよい。
【００７８】
図５は、学習部３４２が学習モデルを生成する一連の処理を示したフローの詳細である。ステップＳ５０１において、体重推定サーバー１１４のデータ受信部３４５は画像データ管理サーバー１１３から画像解析データテーブルで管理される画像解析データを取得する。
【００７９】
ステップＳ５０２において、データ受信部３４５は、飼育データ管理サーバー１１２から飼育データテーブルで管理される飼育データのうちステップＳ５０１で受信したデータの識別ＩＤカラムの値が一致し、かつ測定タイプの値が「実測」であるデータを取得する。加えて、取得した飼育データの給餌ＩＤカラムの値と一致する給餌データを給餌データテーブルから、給餌データの給餌種カラムの値と一致する餌マスタデータを餌マスタデータテーブルからそれぞれ合わせて取得する。また、データ受信部３４５は、活動データ管理サーバー１１１から活動データテーブルで管理活動データのうちステップＳ５０１で受信したデータの識別ＩＤカラムの値が一致するデータを取得する。ステップＳ５０３において、データ受信部３４５はステップＳ５０１およびＳ５０２で受信した各学習データを学習部３４２における入力データと正解データに分類する。
【００８０】
表８は学習モデル４０２における入力データと正解データの一例を示したデータテーブルである。
【００８１】
【表８】
0006942764.tif 000009
【００８２】
学習モデル４０２の学習には、入力データとして画像解析データのデータ項目を使用する。なお、本実施例においては入力データとして、家畜の画像データから得ることができる各解析結果を限定するものではない。体重推定方法に応じて、適した解析結果を入力データとして適用可能である。例えば、体重を特許文献１に記載の動物の体表面積によって推定する方法であれば、入力データとしては画像解析データの体表面積のデータ項目のみを入力データとして選択しても良い。
【００８３】
表９は学習モデル４１２における入力データと正解データの一例を示したデータテーブルである。
【００８４】
【表９】
0006942764.tif 000010
【００８５】
学習モデル４１２の学習には、入力データとして画像解析データ、給餌データ、活動データのデータ項目を使用する。なお給餌データについては、給餌種カラムの値が示す餌において実際に与えた材料の量を算出して、入力データとする。例えば、表４に示す給餌データで説明すると、粗資料Ａを１０ｋｇ家畜に与えた場合、入力データとしてはその材料である生草１０ｋｇ（１０ｋｇｘ１００％）を採用する。
【００８６】
ステップＳ５０４において、学習部３４２はステップＳ５０３で分類した学習データをそれぞれ入力ベクトルと正解ベクトルに変換する。ステップＳ５０５において、学習部３４２は、ステップＳ５０４でベクトルに変換した学習データを１項目ずつ、全項目に学習処理を施す。全項目に対する学習処理が完了したら、フローに示す一連の処理を終了する。
【００８７】
ステップＳ５０６において、学習部３４２は表７に示す学習データを用いて学習モデル４０２の学習処理を行う。ステップＳ５０７において、学習部３４２は表８に示す学習データを用いて学習モデル４１２の学習処理を行う。ＧＰＵ２０９はデータをより多く並列処理することで効率的な演算を行うことができるので、ディープラーニングのような学習モデルを用いて複数回に渡り学習を行う場合にはＧＰＵ２０９で処理を行うことが有効である。そこで実施形態１では、学習部３４２による処理にはＣＰＵ２０２に加えてＧＰＵ２０９を用いる。具体的には、学習モデルを含む学習プログラムを実行する場合に、ＣＰＵ２０２とＧＰＵ２０９が協働して演算を行うことで学習を行う。なお、学習部３４２の処理はＣＰＵ２０２またはＧＰＵ２０９のみにより演算が行われても良い。また、推定部３４３も学習部３４２と同様にＧＰＵ２０９を用いても良い。
【００８８】
学習部３４２はステップＳ５０６、Ｓ５０７において変換した入力ベクトルと正解ベクトルの１設定項目をもって、入力ベクトルから正解ベクトルが得られるようにＳＶＭ（Ｓｕｐｐｏｒｔ  Ｖｅｃｔｏｒ  Ｍａｃｈｉｎｅ）を利用して学習する。ＳＶＭは公知の機械学習アルゴリズムであり本実施例では、ＲＢＦ（Ｒａｄｉａｌ  Ｂａｓｉｓ  Ｆｕｎｃｔｉｏｎ  Ｋｅｒｎｅｌ）による非線形ソフトマージンＳＶＭを利用する。学習では、学習データをランダムに解析データと検証データに分割する交差検証によって学習結果を評価する。またＲＢＦを用いたＳＶＭのハイパーパラメータにコストパラメータ（Ｃ）とガンマ（γ）があり推定性能に影響を及ぼすので、それぞれ複数の値を網羅的に試すグリッドサーチを行い推定性能が高いものを学習結果とする。ＳＶＭは分類と回帰のどちらの学習も行うことができる。
【００８９】
本実施例においては家畜の体重を推定するものであるので回帰を行う。ここで機械学習アルゴリズムにはパーセプトロンやロジスティック回帰、ニューラルネットワーク、ｋ近傍法、ナイーブベイズ、ニューラルネットワーク、畳み込みニューラルネットワークがある。また、決定木、ランダムフォレスト、線形回帰、多項式回帰、Ｌａｓｓｏ回帰、Ｒｉｄｇｅ回帰など他にも様々なものがある。またＳＶＭにもハードマージンＳＶＭや多項式カーネルＳＶＭなどの種類がある。機械学習アルゴリズムのハイパーパラメータも機械学習アルゴリズムによって異なる。
【００９０】
また学習結果の評価手法には交差検証法以外に代替推定法やテストサンプル法などがある。さらに機械学習アルゴリズムのハイパーパラメータの最適化手法にはグリッドサーチ以外にランダムサーチ、ラテン超方格サンプリング法、ベイズ最適化などがある。本実施例において機械学習アルゴリズムや学習結果を評価手法、機械学習アルゴリズムのハイパーパラメータの最適化手法などの学習手法は変更してもよい。
【００９１】
ステップＳ５０８において、データ記憶部３４１は学習した学習済みモデルを記憶装置２０５に格納する。クライアント端末１４１は、データ記憶部３２１、データ送信部３２２、データ受信部３２３、推定結果表示部３２４から構成される。データ記憶部３２１は、クライアント端末１４１がスマートフォンのように構成要素としてカメラ２３９を持っていた場合に、撮影した画像データ、映像データを格納して管理する。また、データ記憶部３２１は、格納した画像データ、映像データをＮＩＣ２３６を介して接続した被写体の家畜に装着された識別タグ１３１の識別ＩＤと関連付けて管理する。
【００９２】
データ送信部３２２は、画像データ管理サーバー１１３にデータ記憶部３２１が管理する画像データ、映像データ、識別ＩＤを指定して、体重推定サーバー１１４に体重推定要求を送信する。また、既に推定すべき画像データがカメラ１２１、ビデオカメラ１２２を介して画像データ管理サーバー１１３に送信済みの場合には、データ送信部３２２は体重推定対象の識別ＩＤのみを体重推定サーバー１１４に送信する。
【００９３】
データ受信部３２３は、体重推定サーバー１１４のデータ送信部３４６から推定体重データを受信する。受信した推定体重データは、推定結果表示部３２４によってクライアント端末１４１の表示部２３８に表示される。
【００９４】
図６は、図４で示した学習モデルを利用した本発明の体重推定システムの動作シーケンスを表す図である。活動データ管理サーバー１１１において、活動データ解析部３５４が識別タグ１３１から受信した位置情報から活動データを生成する処理、飼育データ管理サーバー１１２がクライアント端末１４１から給餌データを受信する処理については定期的に行われる。また、これらの処理は、体重推定システムの動作とは独立して行われる。なお、図６においてはクライアント端末１４１がカメラ２３９を備えたスマートフォンを前提として本発明の体重システムの動作を説明する。
【００９５】
ステップＳ６０１において、クライアント端末１４１は、まず被写体となる家畜に装着された識別タグ１３１にＮＩＣ２３６を介して接続し、データ送信部３１２から識別ＩＤを受信する。次いで、クライアント端末１４１はカメラ２３９を使用して家畜の画像を撮影する。なお、ＮＩＣ２３６を使わず、識別ＩＤは撮影した家畜の画像から識別タグ１３１を認識し、識別ＩＤを特定する方法であっても良い。ステップＳ６０２において、クライアント端末１４１は、ステップＳ６０１において撮影した画像データと識別ＩＤとをＮＩＣ２３６を介して、画像データ管理サーバー１１３に送信する。
【００９６】
ステップＳ６０３において、クライアント端末１４１は、体重推定サーバー１１４にステップＳ６０２で画像データ管理サーバー１１３に送信した画像データに映る家畜の体重推定要求を送信する。このタイミングで識別情報である識別タグから特定される識別ＩＤを送るものとするが、これ以外のタイミングで送っても良い。この推定要求は１回目に送信される推定要求である。
【００９７】
ステップＳ６０４において、体重推定サーバー１１４は、画像データ管理サーバー１１３から画像データ解析部３３４がクライアント端末１４１から受信した画像データから生成した画像解析データを受信する。ステップＳ６０５において、体重推定サーバー１１４の推定部３４３は、ステップＳ６０４において受信した画像解析データの各カラムから入力データを抽出し、学習モデル４０２に入力して体重を推定する。
【００９８】
ステップＳ６０６において、体重推定サーバー１１４はステップＳ６０３でクライアント端末１４１から受信した識別ＩＤに一致する飼育データのなかから体重カラムに値が格納されたデータのうち、記録日が最新の飼育データを取得する。そして、体重推定サーバー１１４のデータ送信部３４６はステップＳ６０５で推定した体重データの値と、飼育データ管理サーバー１１２から取得した最新の体重データと推定した体重データとの差異データをクライアント端末１４１に送信する。
【００９９】
この時、体重推定サーバー１１４が推定した体重データの値が納得のいく精度ではなかった場合、本システムの利用者はクライアント端末１４１を介してステップＳ６０７において、体重推定サーバー１１４に推定のやり直しを要求することができる。これを再推定要求と呼び、推定要求を再び送信するものである。具体的には、ステップＳ６０６で受信した推定体重データと最新の体重データとの差異データが現実的な値ではなかった場合、例えば現実的にはありえないほど体重が増加していた場合等である。
【０１００】
ステップＳ６０８において、体重推定のやり直し要求を受信した体重推定サーバー１１４は、活動データ管理サーバー１１１と飼育データ管理サーバー１１２からそれぞれステップＳ６０３で受信した識別ＩＤと一致する活動データと飼育データを受信する。
【０１０１】
ステップＳ６０９において、体重推定サーバー１１４の再推定部３４４は、ステップＳ６０４で受信した画像解析データ、ステップＳ６０８で受信した活動データ、飼育データの各カラムから入力データを抽出し、学習モデル４１２に入力して体重を推定する。なお、Ｓ６０９は再推定の際に実行するものとして実施例１では説明するが、必ずしもＳ６０５の推定を行った後にＳ６０９を実行する必要はない。Ｓ６０３乃至Ｓ６０６の処理を行わずに、最初からＳ６０７の推定の要求を行う形態であっても良い。
【０１０２】
ステップＳ６１０において、体重推定サーバー１１４はクライアント端末１４１に再推定した体重データを送信する。なお、仮にステップＳ６０９で再推定した体重データもまた納得がいく精度のデータでなかった場合には、本システムの利用者は被写体の家畜の体重を実測し、飼育データ管理サーバー１１２にその値を直接入力する。また、そこで入力された体重データの実測値は学習モデル４０２、学習モデル４１２の学習データとして利用する。
【０１０３】
図７は、ステップＳ６０６およびステップＳ６０８で概略を説明した体重推定サーバー１１４における体重推定処理の詳細を示したフローチャートである。ステップＳ７０１において、体重推定サーバー１１４のデータ受信部３４５は画像データ管理サーバー１１３にステップＳ６０３で受信した識別ＩＤの値と一致する画像解析データの送信を要求する。画像データ管理サーバー１１３のデータ記憶部３３１は、画像解析データテーブルを参照し、要求を受けた識別ＩＤと一致し、要求を受けた日付に一致する画像解析データの有無を確認する。この時、画像データ解析部３３４がステップＳ６０２で受信した画像データの解析処理を完了していない場合、所望のデータは画像解析データテーブルに登録されていない。その場合は、体重推定サーバー１１４は画像データ解析部３３４の処理が完了するまで待機する。
【０１０４】
画像データ解析部３３４の解析処理が完了すると、ステップＳ７０２において、データ受信部３４５は画像データ管理サーバー１１３から画像解析データを取得する。ステップＳ７０３において、推定部３４３は、ステップＳ７０２で取得した画像解析データから入力データを抽出し、学習モデル４０２に入力し、体重の推定処理を実行する。この時、入力データとして画像解析データから抽出する項目については、学習モデル４０２が学習した体重推定ロジックに依存し、必ずしも画像解析データの全ての項目を入力する必要はない。
【０１０５】
ステップＳ７０４において、データ受信部３４５はステップＳ６０３でクライアント端末１４１から受信した識別ＩＤに一致する飼育データのなかから体重カラムに値が格納されたデータのうち、記録日が最新の飼育データを取得する。ステップＳ７０５において、データ送信部３４６はステップＳ７０３で推定した推定体重データと、推定体重データとステップＳ７０４で受信した前回の体重データとの差異データをクライアント端末１４１に送信する。データ受信部３２３は体重推定サーバー１１４から受信した推定体重データと差異データを推定結果表示部３２４に表示する。なお、前回の体重データとしているが、過去の体重データであれば必ずしも前回である必要はない。だが、過去の体重データがあまりにも古すぎると意味が薄れる可能性があると付け加えておく。
【０１０６】
ステップＳ７０６において、クライアント端末１４１の入力部２３７を介して体重推定サーバー１１４が体重の再推定要求を受信した場合にはステップＳ７０７に進む。体重推定サーバー１１４が体重の再推定要求を受信しなかった場合は、データ送信部３４６は、飼育データ管理サーバー１１２にステップＳ７０３で推定した体重データの値を送信する。データ受信部３６３は、受信した推定体重データの値を体重カラムに、測定タイプカラムに「推定」の値をそれぞれ格納した飼育データをデータ記憶部３６１が管理する飼育データテーブルに登録する。
【０１０７】
ステップＳ７０７において、データ受信部３４５は活動データ管理サーバー１１１からステップＳ６０３で受信した識別ＩＤと一致する活動データを受信する。ステップＳ７０８において、データ受信部３４５は飼育データ管理サーバー１１２からステップＳ６０３で受信した識別ＩＤと一致する飼育データを受信する。
【０１０８】
ステップＳ７０９において、再推定部３４４は、ステップＳ７０２で取得した画像解析データ、ステップＳ７０７から受信した活動データ、ステップＳ７０８で受信した飼育データからそれぞれ入力データを抽出する。そして、学習モデル４１２に入力し、体重の再推定処理を実行する。家畜の一日の移動距離や与えた餌の量と質などの要素と画像の解析データとは異なる観点の体重に影響を与える要素を複数含めた学習モデル４１２を利用することで、画像の解析データよりも精度の高い推定処理を見込むことができる。
【０１０９】
ステップＳ７１０において、データ送信部３４６はステップＳ７０９で推定した再推定体重データをクライアント端末１４１に送信する。データ受信部３２３は体重推定サーバー１１４から受信した再推定体重データを推定結果表示部３２４に表示する。なお、前述した通り、Ｓ７０９の推定は再推定要求を受信した場合にのみ実施される形態でなくても良く、Ｓ７０１の処理を実行した後Ｓ７０２〜Ｓ７０６の処理を実行せずにＳ７０７の処理を実行する別の形態であっても良い。
【０１１０】
図８は、本実施例に示す体重推定システムにおいて、クライアント端末１４１に表示されるユーザーインターフェースの一例を示した図であり、ユーザーへの提示方法の一例でもある。図８（ａ）は、ステップＳ６０１、Ｓ６０２においてクライアント端末１４１の表示部２３８に表示されるユーザーインターフェースの一例を示した図である。
【０１１１】
識別ＩＤ表示ラベル８０１は、クライアント端末１４１に家畜の識別タグ１３１がＮＩＣ２３６を介して接続されている場合に、その識別ＩＤの値を表示するラベルである。また、後述する画像選択ボタン８０３を押下して、画像データを選択した場合には画像データに関連付く識別ＩＤの値を表示する。
【０１１２】
画像撮影ボタン８０２が押下されると、表示部２３８にはカメラ２３９を操作するためのユーザーインターフェース（不図示）が表示され、ステップＳ６０１において家畜の画像を撮影することが可能となる。画像選択ボタン８０３が押下されると、クライアント端末１４１の記憶装置２３５に格納されている家畜の画像データから体重の推定対象の画像データを選択するためのユーザーインターフェース（不図示）が表示される。
【０１１３】
体重の推定を行う画像データを撮影、あるいは選択すると画像データ表示エリア８０４に、その画像データが表示される。体重推定ボタン８０５が押下されると、画像データ表示エリア８０４に表示されているが画像データと識別ＩＤ表示ラベル８０１に表示されている識別ＩＤがステップＳ６０２において画像データ管理サーバー１１３に送信される。また同時に識別ＩＤ表示ラベル８０１に表示されている識別ＩＤがステップＳ６０３において体重推定要求として、体重推定サーバー１１４に送信される。
【０１１４】
図８（ｂ）は、ステップＳ６０６においてクライアント端末１４１の表示部２３８に表示されるユーザーインターフェースの一例を示した図である。推定結果表示ダイアログ８１１は、ステップＳ６０６において、推定結果表示部３２４が表示するダイアログである。推定結果表示ダイアログ８１１は推定体重データ表示ラベル８１２、差異体重データ表示ラベル８１３、再推定依頼ボタン８１４、推定依頼終了ボタン８１５から構成される。
【０１１５】
推定体重データ表示ラベル８１２は、ステップＳ６０６において受信した推定体重データを表示するラベルである。差異体重データ表示ラベル８１３は、ステップＳ６０６において受信した差異体重データを表示するラベルである。再推定依頼ボタン８１４が押下されると、データ送信部３２２はステップＳ６０７において、再推定要求を体重推定サーバー１１４に送信する。推定依頼終了ボタン８１５が押下されると、ステップＳ６０５で推定した体重データが飼育データ管理サーバー１１２に登録され、体重の推定処理が完了する。
【０１１６】
図８（ｃ）は、ステップＳ６１０において、クライアント端末１４１の表示部２３８に表示されるユーザーインターフェースの一例を示した図である。ステップＳ６１０において、推定結果表示ダイアログ８１１は再推定体重データ表示ラベル８２１、差異体重データ表示ラベル８２２、再推定依頼終了ボタン８２３、推定中断ボタン８２４から構成される。
【０１１７】
再推定体重データ表示ラベル８２１は、ステップＳ６１０において受信した再推定体重データを表示するラベルである。差異体重データ表示ラベル８２２は、ステップＳ６１０において受信した差異体重データを表示するラベルである。再推定依頼終了ボタン８２３が押下されると、ステップＳ６０９で推定した体重データが飼育データ管理サーバー１１２に登録され、体重の推定処理が完了する。推定中断ボタン８２４が押下されると、一連の推定処理を中断し、表示部２３８はユーザーインターフェースの表示を終了する。
【０１１８】
なお、ユーザーへの提示方法の一例としてユーザーインターフェースを提供する形としたが、メールの他、音声などの提示方法であっても良い。いずれにせよ、体重推定の結果がユーザーに伝わる提示方法であるならが、どのような提示方法であっても良い。
【０１１９】
以上のように、家畜の画像データから解析したデータを収集および学習した結果を学習モデル４０２として体重推定サーバー１１４で利用することで、家畜の体重データを家畜に触れることなく推測することができる。また、家畜の日々の活動データと給餌データを収集および学習した結果を学習モデル４１２として体重推定サーバー１１４で利用し、画像からの解析データ単体で推定した体重データを検証し、再推定することで推定結果の精度を高めることが可能となる。また、実施例１の変化形として、活動データと飼育データも利用し学習した学習済みモデルを、再推定での利用ではなく最初の推定要求のタイミングで利用する形態も説明した。これにより、二度の推定を行わずとも精度の高い体重データを取得することができる。
【実施例２】
【０１２０】
実施例１において、画像解析データによる家畜の体重推定結果に対して、システムの利用者が前回の体重データの差異を確認したうえで、再推定の要不要を判断する形態を説明した。しかしながら、動物の体重の１日の増減値はある程度想定することが可能である。例えば、差異が極端に大きい場合には学習モデル４０２に入力した画像解析データの精度が疑われる。このような場合には、ステップＳ６０７において敢えて利用者から再推定依頼要求を待つまでもなく再推定処理を実行すべきである。
【０１２１】
本実施例では、学習モデル４０２を用いた体重推定処理の結果の精度が低かった場合に、システムの利用者が再推定依頼要求を送信することなく、学習モデル４１２を用いた再推定処理を行う例を示す。なお、以降の説明はこれまでの実施例との差分のみを説明するものであり、説明がなかった部分は実施例１もしくはその変化例と同一であるものとする。
【０１２２】
図９は、本実施例において体重推定サーバー１１４における体重推定処理の詳細を示したフローチャートである。なお、図９に示した本実施例における推定処理のフローチャートにより、図６に示した体重推定システムのシーケンス図においてステップＳ６０６、Ｓ６０７は実行されなくなる。
【０１２３】
ステップＳ９０１からＳ９０４まではステップＳ７０１からＳ７０４までと同様の処理のため、説明を省略する。ステップＳ９０５において、推定部３４３はステップＳ９０３で推定した推定体重データとステップＳ９０４で取得した前回の体重データの差分を計算する。そして、データ記憶部３４１で管理される再推定閾値テーブルを参照し、その差分結果が閾値を超えているかどうかを確認し、ステップＳ９０３で行った推定処理の精度を判断する。
【０１２４】
表１０は、データ記憶部３４１が管理する再推定閾値テーブルの一例を示したデータテーブルである。
【０１２５】
【表１０】
0006942764.tif 000011
【０１２６】
推定対象動物タイプカラムは、体重の推定対象の動物の種別を格納するカラムである。再推定閾値テーブルでは動物に応じてそれぞれの閾値を格納する。閾値カラムは、推定結果の体重データと前回体重データとの許容できる差分値を格納するカラムである。
【０１２７】
ステップＳ９０５において、画像解析データを学習モデル４０２に入力して得られた結果がここに格納する閾値の値の範囲を超えた体重データであった場合、再推定の必要ありと判断しステップＳ９０６に進む。ステップＳ９０６からＳ９０９まではステップＳ７０７からＳ７１０までの処理と同様のため、説明を省略する。
【０１２８】
以上のように、画像解析データを入力データとした体重推定処理の精度をあらかじめ定められた閾値で判断することで、本システムの利用者が敢えて要求を出さずとも体重の再推定処理を実行して、精度の高い推定体重データを提供することが可能となる。
【実施例３】
【０１２９】
実施例１、２において、画像データ、そして活動データと飼育データを活用して家畜に触れることなく体重を推定するシステムについて説明した。飼育する家畜の数によっては画像データから体重を推定することができても、１匹ずつ撮影することがなお作業負担となる場合がある。
【０１３０】
本実施例においては、そのような背景のもと家畜の画像を１匹ずつ手動で撮影するのではなく、飼育場に設置されたビデオカメラ１２２を介して定期的に家畜の画像を撮影し、複数の家畜の体重を一括で推定するシステムの例を示す。なお、以降の説明はこれまでの実施例との差分のみを説明するものであり、説明がなかった部分は実施例１および２もしくはそれらの変化例と同一であるものとする。
【０１３１】
図１０は、複数の家畜の体重一括推定システムの動作シーケンスを表す図である。ステップＳ１００１において、ビデオカメラ１２２は、データ受信部３０３を介して接続した識別タグ１３１を装着した家畜の映像データを撮影する。データ記憶部３０１は、映像データと映像データに映る家畜の識別タグ１３１が示す識別ＩＤとを関連づけて管理する。
【０１３２】
ステップＳ１００２において、データ送信部３０２は画像データ管理サーバー１１３にステップＳ１００１で撮影した映像データと識別ＩＤを画像データ管理サーバー１１３に送信する。なお、映像データの撮影と送信は定期的に実行される。その頻度は例えば、数時間間隔や、定刻、リアルタイム等が想定され、本発明においてはその頻度を限定しない。画像データ管理サーバー１１３の画像データ解析部３３４は、受信した映像データを映っている被写体ごとに画像データにまず分割し、それぞれの画像データから画像解析データを生成してデータ記憶部３３１に格納する。なお、映像データから画像データを抽出する手順については本発明とは直接の関係がないため、説明を省略する。データ記憶部３３１は画像解析データを識別ＩＤ単位でまとめて管理する。
【０１３３】
ステップＳ１００３において、体重推定サーバー１１４のデータ受信部３４５は画像データ管理サーバー１１３から、推定処理を行っていない画像解析データを一括で取得してする。ステップＳ１００４において、学習部３４２はステップＳ１００３で取得した画像解析データ全てに対して学習モデル４０２に入力して、体重の推定処理を行う。また、識別ＩＤが共通の推定体重データが複数存在する場合には、その中から一番精度の高い推定値を決定する。
【０１３４】
ステップＳ１００５、Ｓ１００６において、体重推定サーバー１１４は、活動データ管理サーバー１１１と飼育データ管理サーバー１１２からそれぞれステップＳ１００３で画像解析データと共に受信した識別ＩＤと一致する活動データと飼育データを受信する。
【０１３５】
ステップＳ１００７において、再推定部３４４は、ステップＳ１００３で受信した各画像解析データ、ステップＳ１００５、Ｓ１００６で受信した活動データ、飼育データの各カラムから入力データを抽出し、学習モデル４１２に入力して体重を推定する。また、識別ＩＤが共通の推定体重データが複数存在する場合には、その中から一番精度の高い推定値を決定する。ステップＳ１００８において、体重推定サーバー１１４はステップＳ１００４および、Ｓ１００７で推定した各体重データを、識別ＩＤごとに全てクライアント端末１４１に送信する。
【０１３６】
図１１は、ステップＳ１００４およびステップＳ１００７で概略を説明した体重推定サーバー１１４における映像データから生成した複数画像解析データを用いた体重推定処理の詳細を示したフローチャートである。
【０１３７】
ステップＳ１１０１において、体重推定サーバー１１４のデータ受信部３４５は画像データ管理サーバー１１３にステップＳ１００３で受信した識別ＩＤの値と一致する画像解析データのうち推定処理を実施していない全ての画像解析データの送信を要求する。
【０１３８】
画像データ管理サーバー１１３のデータ記憶部３３１は、画像解析データテーブルを参照し、要求を受けた識別ＩＤと一致し、要求を受けた日付に一致する画像解析データの有無を確認する。この時、画像データ解析部３３４がステップＳ１００２で受信した画像データの解析処理を完了していない場合、所望のデータは画像解析データテーブルに登録されていない。その場合は、体重推定サーバー１１４は画像データ解析部３３４の処理が完了しているデータのみをステップＳ１１０２で取得する。ステップＳ１１０３において、推定部３４３は、ステップＳ１１０２で取得した画像解析データから推定処理を実施していない画像解析データを選択する。
【０１３９】
ステップＳ１１０４において、画像解析データから入力データを抽出し、学習モデル４０２に入力し、体重の推定処理を実行する。この時、入力データとして画像解析データから抽出する項目については、学習モデル４０２が学習した体重推定ロジックに依存し、必ずしも画像解析データの全ての項目を入力する必要はない。例えば、学習モデル４０２の体推定ロジックが特許文献１に記載の家畜の体表面積に基づくものであれば動物タイプカラムと体表面積カラムの値を入力データとして抽出する。
【０１４０】
ステップＳ１１０５において、データ記憶部３３１は推定結果を識別ＩＤと関連付けて管理する。識別ＩＤが同一で異なる解析結果の画像解析データに対して推定処理を行った場合には、それらをひとまとめにして管理する。ステップＳ１１０６において、データ受信部３４５は活動データ管理サーバー１１１からステップＳ１００３で受信した識別ＩＤと一致する活動データを全て受信する。
【０１４１】
ステップＳ１１０７において、データ受信部３４５は飼育データ管理サーバー１１２からステップＳ１００３で受信した識別ＩＤと一致する飼育データを全て受信する。ステップＳ１１０８において、再推定部３４４は、ステップＳ１１０２で取得した画像解析データから再推定処理を実施していない画像解析データを選択する。
【０１４２】
ステップＳ１１０９において、再推定部３４４は、ステップＳ１１０２で取得した画像解析データ、ステップＳ１１０６から受信した活動データ、ステップＳ１１０７で受信した飼育データからそれぞれ入力データを抽出する。そして、学習モデル４１２に入力し、体重の再推定処理を実行する。家畜の一日の移動距離や与えた餌の量と質などの要素と画像の解析データとは異なる観点の体重に影響を与える要素を複数含めた学習モデル４１２を利用することで、画像の解析データよりも精度の高い推定処理を見込むことができる。ステップＳ１１１０において、データ記憶部３３１は再推定結果を識別ＩＤと関連付けて管理する。識別ＩＤが同一で異なる解析結果の画像解析データに対して推定処理を行った場合には、それらをひとまとめにして管理する。
【０１４３】
ステップＳ１１１１において、推定部３４３は、ステップＳ１１０５で識別ＩＤごとにまとめた推定結果のなかから、それぞれ精度が一番高い結果を選択する。同様に再推定部３４４は、ステップＳ１１１０で識別ＩＤごとにまとめた推定結果のなかから、それぞれ精度が一番高い結果を選択する。画像データ管理サーバー１１３の画像データ解析部３３４が映像データから生成した画像データに映る家畜の画像は全てが同じアングルの画像とは限らない。画像データを生成した映像データの録画タイミングによっては全体が映っているかもしれないし、体の一部しか映っていない場合もある。
【０１４４】
推定部３４３および再推定部３４４はそれらの画像データから得られた画像解析データに最適な推定プログラムを利用する学習モデル４０２，４１２を選択して体重の推定処理を行う。しかしながら、それら推定プログラム間でも精度差が想定されるため、ステップＳ１１１１でそれぞれ最も精度が高いと思われる結果を選択する。代表となる推定結果の選択の方法については、例えばステップＳ９０５で用いたようなそれぞれの家畜の前回の体重データの差異を求めて、その差分値が最小のものを代表の推定結果とする。
【０１４５】
ステップＳ１１１２において、データ送信部３４６はステップＳ１１１１で決定したス推定体重データ、再推定体重データ、それらを推定するのに使用された画像データを全てクライアント端末１４１に送信する。データ受信部３２３は体重推定サーバー１１４から受信した再推定体重データを推定結果表示部３２４に表示する。
【０１４６】
図１２は、本実施例に示す体重推定システムにおいて、クライアント端末１４１に表示されるユーザーインターフェースの一例を示した図である。図１２（ａ）は、ステップＳ１１１２においてクライアント端末１４１の表示部２３８に表示されるユーザーインターフェースの一例を示した図である。
【０１４７】
推定結果表示画面１２０１は、クライアント端末１４１がステップＳ１１１２で受信した全ての識別ＩＤごとに推定体重データ、再推定体重データを表示する画面である。推定結果表示画面１２０１には識別ＩＤの数だけ１２０２から１２０７までの各構成要素が表示される。画像データ表示部１２０２には、ステップＳ１１１１で代表の推定体重を推定するのに使用した画像データが表示される。
【０１４８】
識別ＩＤ表示ラベル１２０４には、ステップＳ１１１１で代表の推定体重を推定するのに使用した画像データに関連付く識別ＩＤの値が表示される。記録日表示ラベル１２０３には、ステップＳ１１１１で代表の推定体重を推定するのに使用した画像データが画像データ管理サーバー１１３に登録された日付情報が表示される。具体的には画像データテーブルの登録日カラムの値が表示される。
【０１４９】
代表推定体重表示ラベル１２０５には、ステップＳ１１０４で推定された画像解析データから抽出した入力データを学習モデル４０２に入力して推定した体重データのうちステップＳ１１１１で最も精度が高いと判定された値が表示される。
【０１５０】
代表再推定体重表示ラベル１２０６には、ステップＳ１１０９で推定された画像解析データから抽出した入力データを学習モデル４１２に入力して推定した体重データのうちステップＳ１１１１で最も精度が高いと判定された値が表示される。推定結果参照ボタン１２０７を押下すると、ステップＳ１１０４、Ｓ１１０９で推定された他の推定体重データ、再推定体重データが推定結果表示画面１２０１に表示される。
【０１５１】
図１２（ｂ）は推定結果参照ボタン１２０７が押下された場合に表示される画面の一例を示した図である。他推定結果表示エリア１２１１は、ステップＳ１１１１で精度がもっとも高いと判定されなかった画像データ、推定体重データ、再推定体重データを表示する領域である。本システムの利用者は、他推定結果表示エリア１２１１に表示される画像データ内の家畜のアングルとそこから推定される体重の精度を参照することで、体重の推定に最適なアングルを知ることができる。
【０１５２】
なお、推定結果参照ボタン１２０７は、他推定結果表示エリア１２１１が表示されている間は推定結果参照取り消しも単１２１２に切り替わり、利用者の任意のタイミングで他推定結果表示エリア１２１１を非表示にすることができる。
【０１５３】
以上により、映像データから得ることのできる同一個体の家畜の異なるアングル画像から推定した各体重データを選別することで、家畜を１匹ずつ撮影することなく、精度の高い推定体重データを得ることができる。
【０１５４】
〔その他の実施例〕
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワークまたは記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータがプログラムを読出し実行する処理でも実現可能である。コンピュータは、１または複数のプロセッサーまたは回路を有し、コンピュータ実行可能命令を読み出し実行するために、分離した複数のコンピュータまたは分離した複数のプロセッサーまたは回路のネットワークを含みうる。
【０１５５】
プロセッサーまたは回路は、中央演算処理装置（ＣＰＵ）、マイクロプロセッシングユニット（ＭＰＵ）、グラフィクスプロセッシングユニット（ＧＰＵ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートウェイ（ＦＰＧＡ）を含みうる。また、プロセッサーまたは回路は、デジタルシグナルプロセッサ（ＤＳＰ）、データフロープロセッサ（ＤＦＰ）、またはニューラルプロセッシングユニット（ＮＰＵ）を含みうる。
【符号の説明】
【０１５６】
１１１  活動データ管理サーバー
１１２  飼育データ管理サーバー
１１３  画像データ管理サーバー
１１４  体重推定サーバー
１２１  カメラ
１２２  ビデオカメラ
１３１  識別タグ
１４１  クライアント端末
【図１】
0006942764.tif 000012
【図２】
0006942764.tif 000013
【図３】
0006942764.tif 000014
【図４】
0006942764.tif 000015
【図５】
0006942764.tif 000016
【図６】
0006942764.tif 000017
【図７】
0006942764.tif 000018
【図８】
0006942764.tif 000019
【図９】
0006942764.tif 000020
【図１０】
0006942764.tif 000021
【図１１】
0006942764.tif 000022
【図１２】
0006942764.tif 000023