(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-01-04
(45)【発行日】2022-01-20
(54)【発明の名称】情報処理システム、情報処理装置、およびプログラム
(51)【国際特許分類】
A01K 29/00 20060101AFI20220113BHJP
G06T 7/215 20170101ALI20220113BHJP
【FI】
A01K29/00 A
G06T7/215
(21)【出願番号】P 2018028328
(22)【出願日】2018-02-20
【審査請求日】2021-02-09
(31)【優先権主張番号】P 2017148292
(32)【優先日】2017-07-31
(33)【優先権主張国・地域又は機関】JP
【新規性喪失の例外の表示】特許法第30条第2項適用 平成29年6月27日茨城県畜産センター(茨城県石岡市根小屋1234)において開催された第60回茨城県畜産研究会シンポジウムにて公開
【早期審査対象出願】
(73)【特許権者】
【識別番号】503326557
【氏名又は名称】株式会社コンピューター総合研究所
(74)【代理人】
【識別番号】110002147
【氏名又は名称】特許業務法人酒井国際特許事務所
(72)【発明者】
【氏名】根本 龍男
(72)【発明者】
【氏名】長谷川 量平
(72)【発明者】
【氏名】岩田 貴至
(72)【発明者】
【氏名】高崎 謙一
(72)【発明者】
【氏名】岡部 芳明
【審査官】吉田 英一
(56)【参考文献】
【文献】米国特許第05474085(US,A)
【文献】Du-Ming Tsai and Ching-Ying Huang,A motion and image analysis method for automatic detection of estrus and mating behavior in cattle,Computers and Electronics in Agriculture,2014年06月,Vol. 104,pp. 25 - 31
【文献】牛の行動 疾病や発情検知,日本農業新聞,日本,2016年10月12日
【文献】牛の監視システム開発,茨城新聞,日本,2016年09月02日
【文献】牛の状態 赤外線で把握,日本経済新聞,日本,2016年09月28日
(58)【調査した分野】(Int.Cl.,DB名)
A01K 29/00
A01K 1/00
G06T 7/215
JSTPlus(JDreamIII)
JST7580(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
監視領域の空間情報を出力する空間センサと、
前記空間センサから出力された前記空間情報から監視対象の複数の動く物体の物体情報を検出する第1の検出手段と、
前記第1の検出手段が検出した前記物体情報において前記複数の動く物体の内の互いに接触している動く物体の配置情報を検出する第2の検出手段と、
前記物体情報および前記配置情報
を前記動く物体の輪郭に近似した近似図形に変換し、前記空間センサから所定のフレームレートで出力される前記空間情報に対応する時系列順の前記近似図形に基づいて、前記複数の動く物体の行動情報を生成する生成手段と、
前記行動情報から前記動く物体の行動が異常行動であるかを判定する判定手段と、
前記動く物体の行動が異常行動であると判定された場合に異常を通知する通知手段と、
を有することを特徴とする情報処理システム。
【請求項2】
前記物体情報は、前記複数の動く物体の輪郭を示す輪郭情報であり、
前記第2の検出手段は、
前記空間センサから所定のフレームレートで出力される前記空間情報において、前記複数の動く物体の輪郭
上の隣り合う2点を結ぶ線分の内の隣接する線分のなす角が複数フレーム内で所定角度以内に変化する点である1組または複数組の特異点を検出し、前記互いに接触している動く物体のそれぞれの輪郭
を各組の特異点を結ぶ境界を境に区別する配置情報を検出する、
ことを特徴とする請求項1に記載の情報処理システム。
【請求項3】
前記複数の動く物体のステージ情報と前記異常行動の判定項目とを対応付ける対応情報を有し、
前記判定手段は、前記対応情報に基づき、前記複数の動く物体のステージ情報に該当する異常行動の判定項目について、前記行動情報から前記動く物体の行動が異常行動であるかを判定する、
ことを特徴とする請求項1
または2に記載の情報処理システム。
【請求項4】
前記判定手段は、前記複数の動く物体の直近の所定日数分の行動情報に基づいて決定した異常行動を示す閾値と、前記判定手段の判定当日の前記行動情報とを比較し、前記異常行動であるかを判定する、
ことを特徴とする請求項1乃至
3の内の何れか一項に記載の情報処理システム。
【請求項5】
前記判定手段は、前記近似図形の長軸の長さと短軸の長さの比に基づいて、前記複数の動く物体が起立不可の状態にあると判定する、
ことを特徴とする請求項
1に記載の情報処理システム。
【請求項6】
前記判定手段は、前記近似図形の輪郭面積に基づいて、前記複数の動く物体が起立不可の状態にあると判定する、
ことを特徴とする請求項
1に記載の情報処理システム。
【請求項7】
前記生成手段は、前記第2の検出手段による前記配置情報の検出に基づき、前記行動情報として接触回数情報を生成する、
ことを特徴とする請求項1乃至
6の内の何れか一項に記載の情報処理システム。
【請求項8】
前記生成手段または前記判定手段の一部に機械学習を行う機械学習手段を有する、
ことを特徴とする請求項1乃至
7の内の何れか一項に記載の情報処理システム。
【請求項9】
空間センサから出力された空間情報から監視対象の複数の動く物体の物体情報を検出する第1の検出手段と、
前記第1の検出手段が検出した前記物体情報において前記複数の動く物体の内の互いに接触している動く物体の配置情報を検出する第2の検出手段と、
前記物体情報および前記配置情報
を前記動く物体の輪郭に近似した近似図形に変換し、前記空間センサから所定のフレームレートで出力される前記空間情報に対応する時系列順の前記近似図形に基づいて、前記複数の動く物体の行動情報を生成する生成手段と、
前記行動情報から前記動く物体の行動が異常行動であるかを判定する判定手段と、
前記動く物体の行動が異常行動であると判定された場合に異常を通知する通知手段と、
を有する情報処理装置。
【請求項10】
コンピュータを、
空間センサから出力された空間情報から監視対象の複数の動く物体の物体情報を検出する第1の検出手段と、
前記第1の検出手段が検出した前記物体情報において前記複数の動く物体の内の互いに接触している動く物体の配置情報を検出する第2の検出手段と、
前記物体情報および前記配置情報
を前記動く物体の輪郭に近似した近似図形に変換し、前記空間センサから所定のフレームレートで出力される前記空間情報に対応する時系列順の前記近似図形に基づいて、前記複数の動く物体の行動情報を生成する生成手段と、
前記行動情報から前記動く物体の行動が異常行動であるかを判定する判定手段と、
前記動く物体の行動が異常行動であると判定された場合に異常を通知する通知手段と、
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理システム、情報処理装置、およびプログラムに関する。
【背景技術】
【0002】
従来、畜産農家で飼育されている家畜は出荷前までに起立不可状態や衰弱などにより数パーセントが死廃になる。畜産農家では人手不足などもあり厩舎内の家畜全てを24時間付きっ切りで見守ることはできず、家畜に行動の変化があってもそれを早期発見することが難しい。このため、家畜が厩舎内で起立不可状態のまま窒息により死廃に至ったり、病気などで衰弱が進行し死廃に至ったりする場合がある。経験の浅い新規就農者においては、熟練者と違い、家畜の行動の変化に気が付くことさえできないので、家畜の死廃率がより一層高まる。
【0003】
家畜の健康状態の異常を通報する通報システムを開示したものがある。この通報システムは、牛に歩数を検知するセンサを装着させ、各センサから歩数信号を受信して歩数から健康状態の異常を発見する。健康情報に異常があると、通報システムの利用者にその旨を報知する(特許文献1参照)。この他、牛の体内に体温を計測するセンサを埋め込み、そのセンサからの温度信号を受信して健康状態の異常を発見するものもある(特許文献2参照)。
【先行技術文献】
【特許文献】
【0004】
【文献】国際公開第2013/145329号
【文献】特開2007-296042号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、家畜にセンサを装着して家畜の異常を検出するこれまでの仕組みは、家畜への負担が大きく、家畜にストレスを与えかねない。そのため、装着するセンサの種類や数は限定的で、家畜から検出することのできる情報は特定の異常を検出するものに限られてしまうという問題がある。
【0006】
本発明は、上記に鑑みてなされたものであって、監視の対象となる家畜などへの負担をなくし、監視の対象からより多くの行動情報を読み取ることを可能にする情報処理システム、情報処理装置、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上述した課題を解決し、目的を達成するために、本発明にかかる情報処理システムは、監視領域の空間情報を出力する空間センサと、空間センサから出力された空間情報から監視対象の複数の動く物体の物体情報を検出する第1の検出手段と、第1の検出手段が検出した物体情報において複数の動く物体の内の互いに接触している動く物体の配置情報を検出する第2の検出手段と、物体情報および配置情報を動く物体の輪郭に近似した近似図形に変換し、空間センサから所定のフレームレートで出力される空間情報に対応する時系列順の近似図形に基づいて、複数の動く物体の行動情報を生成する生成手段と、行動情報から動く物体の行動が異常行動であるかを判定する判定手段と、動く物体の行動が異常行動であると判定された場合に異常を通知する通知手段と、を有することを特徴とする。
【発明の効果】
【0008】
本発明は、監視の対象の負担をなくし、監視の対象からより多くの行動情報を読み取ることが可能になるという効果を奏する。
【図面の簡単な説明】
【0009】
【
図1】
図1は、本発明にかかる情報処理システムの実施例について説明する図である。
【
図2】
図2は、牛房に設けた監視カメラを含む情報処理システムのシステム構成の一例を示す図である。
【
図3】
図3は、監視カメラユニットのハードウエア構成の一例を示す図である。
【
図4】
図4は、分析サーバ装置のハードウエア構成の一例を示す図である。
【
図5】
図5は、監視サービスに係る情報テーブルのテーブル構成の一例を示す図である。
【
図6】
図6は、異常行動の判定項目を育成ステージ別に設定した設定情報の一例を示す図である。
【
図7】
図7は、分析サーバ装置の機能の説明図である。
【
図8】
図8は、牛の輪郭を検出する方法の説明図である。
【
図10】
図10は、探索部と特定部とによる補助処理の説明図である。
【
図11】
図11は、牛の輪郭を図形に近似する場合の説明図である。
【
図12】
図12は、牛の輪郭画像の面積変化の一例を示す図である。
【
図14】
図14は、アラーム基本データの生成処理のフローの一例を示す図である。
【
図15】
図15は、閾値の決定処理のフローの一例を示す図である。
【
図16】
図16は、牛の異常行動判定処理のフローの一例を示す図である。
【発明を実施するための形態】
【0010】
以下に、本発明にかかる情報処理システム、情報処理装置、およびプログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。例えば、以下に示す実施例では、乳用牛や肉用牛である家畜の牛を監視対象として説明するが、「動く物体」であれば、その他の家畜や、家畜以外の動物や生物などに適用してもよい。また、以下に示す実施例では、監視領域内の各被写体の深度を示す深度画像を「空間情報」として出力する空間センサを一例として示すが、「空間情報」は深度画像に限らず、監視領域内の動く被写体の領域や輪郭などを特定することができるものであれば、その他のものでもよい。また、以下に示す実施例では、輪郭情報を「物体情報」の一例と示すが、「物体情報」は動く物体の領域そのものなどでもよい。また、以下に示す実施例では、個体輪郭情報を「配置情報」の一例と示すが、「配置情報」は物体情報において個体の領域を識別できる情報であれば、その他の情報でもよい。
【実施例】
【0011】
図1は、本発明にかかる情報処理システムの実施例について説明する図である。
図1には、牛舎内に設けられている牛房90と、牛房90内の牛91の行動を監視する監視カメラ(「空間センサ」の一例)10aとを示している。牛房90は柵90aにより仕切られている一つの牛房を表す。牛房90内には同時期に出生した牛91を収容している。
図1には一例として2頭の牛91を示しているが、牛91の数は1頭でも複数頭であってもよい。水飲み場やエサ場などは、図示を省略しているが、柵90aの内側にあっても、柵90aの外側にあってもよい。
【0012】
図1に示すように、牛房90の上方に監視カメラ10aを設置し、監視カメラ10aにより牛房90の育成エリア90bを撮影する。育成エリア90bが本実施例の監視領域である。監視カメラ10aを設置する高さHは、育成エリア90bが撮影の範囲に収まるように調節する。本実施例では幅W×奥行Lが5.0m×4.1mの広さの育成エリア90bに対して、監視カメラ10aを4.2m程度の高さに設置する。
【0013】
監視カメラ10aにより育成エリア90bがセンシングされ、監視カメラ10aから所定のフレームレートでフレーム画像が出力される。牛91の行動は、その連続するフレーム画像(後述する「連続フレーム画像」)に基づき、監視サービスの提供会社のサーバ装置がデータ解析する。そして、このデータ解析において牛91の異常行動を示す結果が得られると、当該サーバ装置は、その牛91の畜産農家へ異常信号を通知する。
【0014】
図2は、牛房90に設けた監視カメラ10aを含む情報処理システムのシステム構成の一例を示す図である。
図2に示すように、情報処理システム1は、複数の監視カメラユニット10や、クラウド20や、分析サーバ装置30や、管理PC40や、利用者端末50などを、ネットワーク60を介して接続する構成を有する。
【0015】
監視カメラユニット10は、監視サービスを利用する各畜産農家の牛舎の牛房90に設置する。
図2には、牛房90を一つのみ示しているが、監視カメラユニット10は、牛舎内の各牛房90に個別に設置する。なお、幾つかの牛房90に対して1台の監視カメラユニット10を設置するようにしてもよい。
【0016】
監視カメラユニット10は、監視カメラ10aとコントロールPC10bとを有する画像送信ユニットである。監視カメラ10aは、各牛房90の上方に撮影方向を下に向けて設置し、各牛房90の育成エリア90bを撮影する。監視カメラ10aのコントロールPC10bは、監視カメラ10aが出力する連続フレーム画像をWiFiなどによりアクセスポイントへとばし、そのアクセスポイントからネットワーク60を通じてクラウド20に送信させる。
【0017】
クラウド20は、ストレージネットワークを構築し、データストレージサービスを提供する。クラウド20は、ユーザの保管データ(本実施例では連続フレーム画像)をストレージネットワーク上のストレージ21に蓄積して保管する。
【0018】
分析サーバ装置30は、クラウド20から連続フレーム画像(コピー)を取得し、連続フレーム画像を対象に牛91の行動について分析処理を行う。分析サーバ装置30は、分析処理により牛91の異常行動を検知すると、その牛91の畜産農家の利用者端末50に牛91の異常行動についてお知らせする信号(異常信号70)を通知する。異常信号70の通知は、アラームや電子メールなどにより行う。
【0019】
管理PC40は、各畜産農家が管理棟80などに備えるパーソナルコンピュータである。管理PC40は、対応の設定プログラムにより、監視カメラユニット10の設定などを行う。
【0020】
利用者端末50は、各畜産農家が所持する携帯電話機や、スマートフォンや、タブレット端末などである。利用者端末50は、分析サーバ装置30からアラームなどによる異常信号70を受信し、報知音や、LED(Light Emitting Diode)の発光や、メッセージ画面の表示などにより、牛91に異常行動があることを利用者端末50の所持者に知らせる。また、利用者端末50は、牛91の異常行動の内容を知らせる電子メールを異常信号70として取得してもよい。
【0021】
更に、利用者端末50は、監視サービスを提供する会社が指定したURL(Uniform Resource Locator)にアクセスし、利用者の牛房90の監視カメラユニット10から出力された連続フレーム画像を再生して表示することも可能である。再生する連続フレーム画像は、監視カメラユニット10のカラーカメラ11c(
図3参照)から出力されたカラー連続フレーム画像である。
【0022】
ネットワーク60は、無線LAN(Local Area Network)ネットワークや公衆網やインターネットなどである。コントロールPC10bがWiFi接続するアクセスポイントはネットワーク60の無線LANネットワークに構成される。
【0023】
図3は、監視カメラユニット10のハードウエア構成の一例を示す図である。監視カメラユニット10の監視カメラ10aは、赤外線プロジェクタ11aや、赤外線カメラ11bや、カラーカメラ11cなどを有する。
【0024】
赤外線プロジェクタ11aは牛房90全体に赤外線を照射する。赤外線カメラ11bは牛房90内の各被写体までの深度を表す画像(「深度画像」と呼ぶ)を所定のフレームレートで連続的に出力する。具体的に赤外線カメラ11bは牛房90内の各被写体から反射される赤外光を基に所定のフレームレートで画素単位に深度を算出し、それぞれの深度を所定の画素値に対応付けた画像を連続的に出力する。例えば、赤外光を照射してから各被写体からの反射光を受光するまでの時間などにより、各被写体までの距離を深度として算出する。なお、本実施例では、深度を示す連続フレーム画像のことを、カラー連続フレーム画像と区別して単に「連続フレーム画像」と呼ぶ。
【0025】
カラーカメラ11cは、牛房90のカラー画像を所定のフレームレートで連続的に出力する。具体的にカラーカメラ11cは牛房90内の各被写体から照明光や太陽光により反射する光に基づき所定のフレームレートでカラー画像に変換し、それを連続的に出力する。なお、本実施例では、カラーのものについては「カラー」であることを明示する。
【0026】
監視カメラ10aは、USB(Universal Serial Bus)ケーブル10cを介してコントロールPC10bと接続される。監視カメラ10aは、コントロールPC10bから指示された設定で連続フレーム画像とカラー連続フレーム画像とを出力する。
【0027】
コントロールPC10bは、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)などのコンピュータ構成の制御部12を有する。制御部12にはUSBコントローラ13やWiFiの通信コントローラ14などが接続されている。
【0028】
制御部12では、CPUがROMのプログラムを実行し、例えば次のような処理を行う。制御部12は、USBコントローラ13の制御により、監視カメラ10aから連続フレーム画像とカラー連続フレーム画像とを取得し、取得した連続フレーム画像とカラー連続フレーム画像とを、通信コントローラ14の制御によりクラウド20へ送信する。
【0029】
USBコントローラ13は、USBケーブル10cを介して監視カメラ10aのターゲット(赤外線カメラ11bや、カラーカメラ11cなど)とUSB通信を行う。主にUSBコントローラ13は、監視カメラ10aから連続フレーム画像とカラー連続フレーム画像とを取得する。
【0030】
通信コントローラ14は、アクセスポイント60aにWiFi接続し、クラウド20に連続フレーム画像とカラー連続フレーム画像とを随時送信する。
【0031】
図4は、分析サーバ装置30のハードウエア構成の一例を示す図である。
図4に示す分析サーバ装置30は、CPU31、ROM32、RAM33、HDD(Hard Disk Drive)34、通信ボード35などがバス36を介して接続されたものである。
【0032】
CPU31は、プログラムを実行し、演算処理や各部の制御処理を行う。ROM32は、BIOSなどの固定プログラムを記憶する不揮発性メモリである。RAM33は、CPU31がワークエリアとして使用する揮発性メモリである。
【0033】
HDD34は、補助記憶装置である。HDD34には、OS(Operating System)などの基本プログラムC1や、監視サービスに係る分析プログラムC2や、情報テーブルTや、設定情報Dなどを格納する。基本プログラムC1には、Web(World Wide Web)サーバやデータベースサーバなどが含まれる。
【0034】
通信ボード35は、例えばイーサネット(登録商標)などの通信を行うための通信ボードである。通信ボード35は、例えばサービス提供会社の社内LANなどに通信ケーブルを介して接続されている。
【0035】
続いて、監視サービスに係る情報テーブルTのテーブル構成について説明する。
図5は、監視サービスに係る情報テーブルTのテーブル構成の一例を示す図である。
図5(a)は、監視サービスを開始する利用者の利用者情報を登録する利用者情報登録テーブルT1である。
図5(b)は、監視カメラ10aを設置する牛房90についての情報を登録する牛房情報登録テーブルT2である。
図5(c)は、牛房90内の牛91の個体情報を登録する個体情報登録テーブルT3である。
図5(d)は、牛91の行動を示す監視データを逐次記録する記録テーブルT4である。
図5(e)は、監視データから生成したアラーム基本データを設定するアラーム基本データ設定テーブルT5である。
【0036】
図5(a)に示す利用者情報登録テーブルT1は、項目として、利用者の「利用者ID(Identification)」t11や、利用者の「電話番号」t12や、利用者の「電子メールアドレス」t13や、利用者の「画像閲覧用のURL」t14などを有する。ここで、「電話番号」t12や「メールアドレス」t13は、利用者に牛91の異常を知らせるための通知先を示す情報の一例である。「画像閲覧用のURL」t14は、利用者の牛房90の様子を撮影して得たカラー連続フレーム画像の取得先のURLである。
【0037】
図5(b)に示す牛房情報登録テーブルT2は、項目として、「利用者ID」t11や、監視対象に設定する牛房90の「牛房ID」t21や、牛房90別の牛91の「出生日」t22などを有する。ここで、「牛房ID」t21には、牛房90に設置された監視カメラユニット10の監視カメラユニットID(コントロールPC10bのMACアドレス等)を登録する。「出生日」t22には、牛房90内の牛91の出生日を登録する。なお、この例では同日に生まれた牛91を同じ牛房90内に収容する場合について示す。出生日が異なる牛91を同じ牛房90内に収容する場合には、出生日を牛房90単位ではなく牛91の個体別に管理できるようにテーブル構成を変形してもよい。
【0038】
図5(c)に示す個体情報登録テーブルT3は、項目として、「牛房ID」t21や、牛房90内の牛91の「個体ID」t31などを有する。ここで、「個体ID」t31には、牛房90別に、牛房90内に収容されている全ての牛91の個体IDを登録する。個体IDは、互いに識別することができれば任意に設定してよい。
【0039】
図5(d)に示す記録テーブルT4は、項目として、「個体ID」t31や、「期間」t41や、「監視データ」t42や、「接触フラグ」t43などを有する。ここで、「期間」t41には、「監視データ」t42にデータを設定したときの設定日時の情報を設定する。「監視データ」t42と「接触フラグ」t43とには、それぞれ、後述する牛91の監視データと牛91同士の接触を表す接触フラグ(「接触回数情報」の一例)とを設定する。
【0040】
図5(e)に示すアラーム基本データ設定テーブルT5には、項目として、「個体ID」t31や、「期間」t51や、「行動情報(アラーム基本データ)」t52などを有する。ここで、「期間」t51には、監視データの設定日時を含む日付と朝、昼、夜の期間を設定する。「行動情報(アラーム基本データ)」t52には、牛91の「歩行距離」t521や、「立位時間」t522や、「座位時間」t523や、他の牛91との「接触回数」t524や、「横臥時間」t525や、その他牛91の行動を表す情報についてのアラーム基本データの設定項目を有する。ここで「アラーム基本データ」は、牛91の行動の中から牛91の異常行動を判定するための基本データである。なお、「行動情報(アラーム基本データ)」t52の各項目は一例であり、その他の項目に適宜変形してもよい。ここで、座位は、膝を下ろして胸を起こした姿勢をいう。横臥は、肢を投げ出して横倒しの姿勢をいう。
【0041】
図6は、異常行動の判定項目を育成ステージ別に設定した設定情報Dの一例を示す図である。育成ステージは「ステージ情報」の一例であり、設定情報Dは「対応情報」の一例である。
図6に示す設定情報Dには、育成ステージ情報d1として、第1ステージd11、第2ステージd12、第3ステージd13、第4ステージd14、第5ステージd15・・・を設けている。ここでは一例として、第1ステージd11を「初乳」、第2ステージd12を「哺乳」、第3ステージd13を「肥育、育成」、第4ステージd14を「発情」、第5ステージd15を「妊娠」、・・・などに設定したものを示している。育成ステージの各設定は、牛91の出生からの日数により分けたものであるため、牛91の出生からの日数や期間を示す情報を有する。例えば「初乳」には、出生から7日までの期間を示す情報が設定されている。
【0042】
また、設定情報Dには、育成ステージ情報d1に異常行動についての判定項目情報d2を対応付けている。一例として判定項目に「仲間外れ」d21や、「発情」d22や、「病気の兆候」d23や、「起立不可状態」d24などを設け、育成ステージに応じて、判定の対象にする項目にフラグ「1」を立てている。ここでは一例として、第1ステージd11と第2ステージd12については「仲間外れ」d21や「病気の兆候」d23にフラグを立て、第3ステージd13については「病気の兆候」d23と「起立不可状態」d24にフラグを立て、第4ステージd14については「発情」d22にフラグを立て、第5ステージd15については「起立不可状態」d24にフラグを立てたものを示している。
【0043】
なお、ここに一例として示す項目について追加や削除を適宜行ってよい。また、各育成ステージ(第1ステージd11、第2ステージd12、・・・)における判定の対象にする項目の変更も適宜行ってよい。
【0044】
また、設定情報Dの育成ステージを適宜変更してもよい。例えば、育成ステージを更に細かく分割してもよい。また、牛91の種別(肉用牛、乳用牛)により育成ステージを分け、それぞれに対応する個別の育成ステージを設定してもよい。
【0045】
図7~
図11は、分析サーバ装置30の機能の説明図である。分析サーバ装置30は、CPU31がHDD34の基本プログラムC1や分析プログラムC2などをRAM33に適宜読み出して実行することにより当該機能を実現する。なお、当該機能は、一つのCPUコアに割り当てて実現してもよいし、複数のCPUコアに分散して割り当てて実現してもよい。また、分析サーバ装置30を複数台設けて、それぞれのCPUに当該機能を振り分けて実現してもよい。
【0046】
以下、
図7に示す各種の機能について
図8~
図11を適宜参照しながら説明する。なお、各機能間は、プロセス間通信などにより処理の完了等の通知を行うものとする。
【0047】
図7には、分析処理にかかる主な機能として、テーブル操作部301と、読出部302と、検出部303と、補助部304と、監視データ生成部305と、対応付け部306と、設定部307と、アラーム基本データ生成部308と、閾値決定部309と、判定部310と、通知部311とを示している。
【0048】
テーブル操作部301は、情報テーブルTを対象に、データの登録や、更新や、削除や、抽出などを行う。
【0049】
読出部302は、監視カメラユニットID別に、当該IDの連続フレーム画像M0から1フレーム分のフレーム画像Mn(n=1,2,・・・)を撮影された順序で読み出す。例えば、連続フレーム画像M0は、クラウド20(
図2参照)から撮影された順序で順次送信され、通信ボード35の受信バッファ内に蓄積される。読出部302は、その受信バッファ内の連続フレーム画像M0を対象に1フレーム分のフレーム画像Mnを読み出す。
【0050】
検出部303は、読み出されたフレーム画像Mnから牛の輪郭(輪郭情報P1)を検出する。
【0051】
図8は、牛の輪郭を検出する方法の説明図である。
図8(a)には、深度画像であるフレーム画像Mnの説明のためのカラー画像を示している。
図8(b)には、深度画像であるフレーム画像Mnを示している。
図8(c)には、深度画像であるフレーム画像Mnから検出された輪郭情報P1を示している。
【0052】
図8(a)には、同じ生育期間の2頭の牛91が
図1に示す立位状態にある瞬間のカラー画像を示している。立位状態では、牛91と赤外線カメラ11bとの距離が近づくため深度が浅くなる。
図8(a)の画像では牛91が頭部を柵外のエサ箱などに出しているため画像から頭部が切れているが、牛91の頭部などは、胴体よりも低い位置にあるため、胴体より深度が深くなる。その他、地面は、赤外線カメラ11bとの距離が最も遠く、最も深い深度になる。
【0053】
図8(b)に示すように深度画像のフレーム画像Mnは、複数個の一定深度の領域E1、E2、・・・を示す画像になる。一定深度の領域E1、E2、・・・は、それぞれ、その領域内において各画素が同じ深度であることを表している。一定深度の領域E1、E2、・・・は、それぞれ、隣接する領域間では、被写体までの深さが異なり、互いに深度が異なる。なお、フレーム画像Mnに構成される各画素の画素値は、各画素の位置に対応する被写体との距離を表す深度に対応する。ここでは、説明のため、各領域E1、E2、・・・を深度に応じて斜線間隔を変えて表している。斜線間隔が狭いものほど、深度が浅いことを表している。また、一定深度の領域を領域E1~E8に分けているが、この領域の数は一例であり、深度の分解能力に応じて分割数は異なる。
【0054】
牛91が座位や横臥の状態にある場合は牛91の深度がより深くなり深度の値が大きくなる。地面は深度が最も深いため白で表している。この他、柵90aや、エサ場や水飲み場などは、連続するフレームに渡って固定の深度で表される。
【0055】
検出部303は、フレーム画像Mn内の複数個の一定深度の領域E1、E2、・・・の内から直前のフレーム画像Mn-1と比べて移動するなど変化があった一定深度の領域を牛の領域と特定し、その輪郭を検出する。隣接する一定深度の領域が連動して変化する場合には、その連動する一定深度の領域を含めて牛の領域とする。
図8(b)では、領域E1が変化するため、領域E1を牛の領域として特定する。更に、領域E2と、これに隣接する領域E3とが連動して変化するため、領域E2と領域E3とを、別の牛の領域として特定する。
【0056】
図8(c)には、特定した2つの牛の領域を矩形枠F1、F2で示している。検出部303は、特定した矩形枠F1、F2内の牛の領域から牛の輪郭f1、f2を輪郭情報P1として検出する。牛の輪郭f1、f2は、他の領域との深度情報の差などから検出する。
なお、牛の領域の特定は、この他の方法であってもよい。例えば、柵90a内には、監視対象の牛以外に、エサ箱や水飲み場などがあるが、これらは固定の位置にある。このため、フレーム画像Mn内のエサ箱や水飲み場などの座標で示される領域を除いた領域を、各牛の領域として特定する。
【0057】
補助部304は、検出部303が検出した輪郭(輪郭情報P1)を対象に、接触している場合のそれぞれの牛の輪郭(個体輪郭情報P2)を検出する補助処理を行う。補助処理は、検出部303により検出された牛の輪郭が複数の牛91の接触により一つの輪郭として検出された場合に各牛91のそれぞれの輪郭を検出できるようにする処理のことである。この処理により、連続フレーム画像M0の各フレーム画像Mnに渡り、追跡中の複数の牛91が接触によって一つの輪郭として検出された場合でも、その間の各牛91の個体識別を可能にする。
【0058】
図9は、補助部304の一例を示す図である。
図9に示すように、補助部304は探索部304aと特定部304bとを有する。探索部304aと特定部304bとによる補助処理について
図10を用いて説明する。
【0059】
図10は、探索部304aと特定部304bとによる補助処理の説明図である。
図10(a)には、フレーム画像Mnにおいて2頭の牛91が接触している場合の牛の輪郭f3を示している。
図10(b)には、
図10(a)の牛の輪郭f3に対する補助処理の一例を示している。
【0060】
探索部304aは、検出された牛の輪郭f3上の一点(開始点v0)から輪郭f3上を一方向(例えば走査方向V1)に走査して、開始点v0から順次、輪郭f3上を任意点数だけスキップした点(サーチ点v1、v2、・・・)をサーチし、隣り合うサーチ点を結ぶ線分(スキップ輪郭線g1、g2、・・・)を求める。例えば、開始点v0とサーチ点v1を結ぶ線分としてスキップ輪郭線g1を求める。
【0061】
特定部304bは、隣接するスキップ輪郭線(例えばスキップ輪郭線g1とスキップ輪郭線g2)のなす角(交差角)が所定の角度以内に急激に変化する特異点を求める。例えば、特定部304bは、開始点v0から走査方向V1に向けて、順次、隣接するスキップ輪郭線の交差角を求め、直前のフレームMn-1において求めた交差角との比較から所定角度以内に急激に変化する点かを判定する。求めた点が、所定角度以内に急激に変化する点に該当しない場合は、走査方向V1における次の隣接するスキップ輪郭線の交差角について判定する。この例では、サーチ点v5が所定角度以内に急激に変化する点として判定されて特異点の一つに特定される。なお、所定角度以内に急激に変化する点に該当するものがないまま開始点v0まで戻った場合は、当該輪郭に特異点はないものと判定し、当該補助処理を終了する。
【0062】
走査方向で特異点の一つが特定された場合、その走査方向V1における特異点の特定処理をストップし、開始点v0から、走査方向V1とは逆回りの方向に特異点の特定処理を開始する。逆回りの方向において、他の一つの特異点を特定すると、その方向への特異点の特定処理もストップする。この例では、サーチ点-v18が所定角度以内に急激に変化する点として判定され特異点の他の一つに特定される。
【0063】
補助部304は、特定部304bが特定した1組の特異点(この例では、サーチ点v5とサーチ点-v18)を線で結んだ境界線により、2頭の牛91の接触により一つで表される輪郭f3を2頭の牛91のそれぞれの輪郭f1、f2に分離し、区別する。個体輪郭情報P2は、輪郭情報P1に含まれる輪郭f3を、補助処理により分離した輪郭f1と輪郭f2に更新した情報である。
【0064】
なお、ここでは一例として、特定部304bが走査方向V1へ走査して特異点を特定し、続いて反対方向へ走査して特異点を特定する例を示したが、一方向のみの走査により1組の特異点を求めてもよい。また、接触の仕方に応じ、1組に限らず、複数組の特異点を求めてもよい。
【0065】
また、ここでは、一例として、2頭が接触している場合を例にしているが、3頭以上の接触においても、それぞれの境界を特異点の特定により求めて、輪郭を牛91ごとに分離する。
【0066】
監視データ生成部305は、各牛91の輪郭(個体輪郭情報P2)から、各牛91の行動を監視する監視データP3を生成する。本実施例では、監視データ生成部305は、監視データP3として牛の輪郭を図形に近似した近似図形(関数データ等)を生成する。具体的に、監視データ生成部305は、各牛の輪郭、補助部304により一つの領域が境界において複数の領域に分けられている場合にはそれぞれの輪郭を上記図形に近似する変換を行う。
【0067】
図11は、牛の輪郭を図形に近似する場合の説明図である。
図11(a)には、牛の輪郭が輪郭f3(
図10(a)参照)で示されるフレーム画像Mnの個体輪郭情報P2を示している。補助部304により輪郭f1、f2に分離した後、監視データ生成部305が、それぞれの輪郭f1、f2を、例えば最小二乗法による楕円近似に変換する。
図11(b)には、それぞれの輪郭f1、f2を最小二乗法により楕円に近似して得られる近似楕円の一例を示している。各近似楕円r1、r2は、フレーム画像Mnの2次平面座標系での配置を示す一意の楕円関数のデータとして求められる。
【0068】
なお、この例のように補助部304により牛91の輪郭が分離された場合は、それぞれの楕円関数のデータに対し、接触を示す接触フラグAを付加する。接触フラグAは、例えば先頭ビットに「1」または「0」を設ける。
【0069】
対応付け部306は、牛91の個体IDに監視データP3を対応付ける。具体的に、対応付け部306は、監視サービスの開始時などに利用者の牛房90の監視カメラユニットIDと、その牛房90内の牛91の個体IDとをテーブル操作部301により情報テーブルTから取得し、監視カメラユニットIDと個体IDとを対応付けた情報を追跡情報P4として設定する。その後、対応付け部306は、各牛を示す輪郭の数が個体IDの数と一致する場合に、各牛に対応する監視データP3(接触フラグAを含む)を各個体IDの内の一つに初期値として設定する。そして、連続フレーム画像から時系列順に求められる各牛91の監視データP3(接触フラグAを含む)を、随時、その追跡情報P4に設定する。個体IDに対する初期値以降の監視データP3の対応付けについては、例えば、個体IDに対応付けられている直前の監視データP3との差分(中心位置の差分等)が小さいものを優先するなどして行う。これにより、追跡情報P4において、各個体IDに各個体IDの時系列順の監視データP3が対応付けられる。
【0070】
設定部307は、監視データP3から接触フラグAを分離し、テーブル操作部301により、監視データP3と接触フラグAとを記録テーブルT4に設定する。例えば、設定部307は、追跡情報P4に設定されている監視データP3の設定数をトリガに、或いは所定時間間隔(例えば数秒置き)に、直近の監視データP3と接触フラグAとを除くすべての監視データP3と接触フラグAとを記録テーブルT4に設定する。なお、直近の監視データP3は、この例では、次に求められる監視データP3を何れの個体IDに対応付けるかの判定に用いるために残している。
【0071】
アラーム基本データ生成部308は、記録テーブルT4の監視データP3(接触回数をカウントする場合は接触フラグAも含む)を基に、アラーム基本データとする行動情報を生成する。例えば、アラーム基本データ生成部308は、設定部307による設定後、或いは所定時間置き(例えば数秒や、数分や、数時間置きなど)に、記録テーブルT4から各監視カメラユニットIDの各固体IDの監視データP3と接触フラグAとを、テーブル操作部301により抽出し、各監視カメラユニットIDの各固体IDを単位にその監視データP3と接触フラグAとから牛91の行動情報を生成する。行動情報は、例えば牛91の歩行距離や、立位時間、座位時間、横臥時間、他の牛91との接触回数などである。その他にも牛91の行動を表す情報を適宜設定してよい。
【0072】
一般に、牛91は、膝を下ろして胸を起こした姿勢(座位)と、肢を投げ出して横倒しの姿勢(横臥)とを繰り返す動作を行う。この繰り返し動作の際に、牛91は、横臥から座位に戻れなくなる起立不可の状態になることがある。起立不可の状態は、転倒事故によって起こるケースもある。このような起立不可の状態になって横臥状態が続くと、窒息死などによる事故の原因となる。そこで、本実施の形態においては、行動情報として横臥時間を設定している。
【0073】
各牛の行動情報は例えば所定期間(本例では、朝と昼と夜とする)を単位に次のように生成する。1頭の牛91の立位時間と座位時間については、期間内の当該牛91の時系列順の監視データP3から、立位や座位の状態を判定し、立位や座位の状態になってからの継続時間の累計を求める。立位や座位は、監視データP3である近似図形の面積などにより判定する。例えば、所定の面積よりも大きい場合を立位とし、小さい場合を座位とする。
【0074】
また、牛91の接触回数については、その牛91の時系列順の接触フラグAから、接触してから離れるまでを1回として求める。
【0075】
また、牛91の歩行距離については、牛91の近似図形の座標(近似楕円の中心座標など)の移動軌跡から求める。
【0076】
また、1頭の牛91の横臥時間については、期間内の当該牛91の時系列順の監視データP3から、横臥状態を判定し、その状態になってからの継続時間の累計を求める。横臥状態は、監視データP3である近似図形の縦横の長さの比などにより判定する。例えば、近似楕円の場合、長軸と短軸のそれぞれの長さ(長径と短径)の比から、牛91の横臥状態を判断する。牛91は、上方から見た場合、横臥状態になると、長径と短径との長さの比が大きく変化する。この長さの比の変化から牛91の横臥状態を判断している。
【0077】
また、横臥状態は、監視データP3である近似図形の輪郭面積などにより判定するようにしてもよい。ここで、
図12は牛の輪郭画像の面積変化の一例を示す図である。
図12において、縦軸は牛の輪郭画像の面積(ピクセル)、横軸は時刻を表している。
図12に示すように、座位状態における輪郭面積に比べて横臥状態における輪郭面積の方が大きくなるので、所定の面積よりも大きい場合を横臥とし、小さい場合を座位とする。
【0078】
その他牛91の行動を表す情報として、例えば水飲みの回数やエサの回数については、各牛91の近似図形上の頭部の座標(近似楕円であれば焦点座標の一つ)と水飲み場やエサ場の座標との距離などから求める。距離が所定の範囲内になり、所定範囲外に外れた場合を1回などとして求める。
【0079】
こうして、アラーム基本データ生成部308は、生成した行動情報をアラーム基本データ設定テーブルT5へ設定する。
【0080】
閾値決定部309は、牛91の行動を異常行動と見做す閾値を決定する。本例では、1日を朝の期間と昼の期間と夜の期間とに分け、期間ごとに最新の閾値(上限値と下限値)を決定する。また、各牛91について、行動情報の項目ごとに閾値を決定する。閾値は、該当する項目の所定日数分(ここでは直近数日分とする)のアラーム基本データを基に移動平均を行うなどして決定する。決定した閾値は、閾値情報P5に牛91の個体ID別、朝、昼、夜の期間別に設定する。
【0081】
判定部310は、判定当日などの判定時に含まれる期間の各牛91の行動情報からそれぞれの牛91の異常行動(仲間外れや、発情や、病気の兆候や、起立不可状態など)を判定する。
【0082】
具体的に、判定部310は、設定情報Dから、牛房情報登録テーブルT2(
図5(b)参照)の牛房90別の牛91の「出生日」t22の設定に該当するステージについてのフラグ「1」の判定項目を取得し、更に閾値情報P5から、判定時の期間の閾値(上限値と下限値)を取得する。そして、判定部310は、テーブル操作部301により、アラーム基本データ設定テーブルT5から、各牛房90の個体IDごとに、更に取得した判定項目ごとに、それぞれの閾値を超える個体IDを検索し、閾値を超える個体IDとその判定項目とを抽出する。
【0083】
判定部310は、抽出結果に閾値を超える個体IDが含まれる場合、その牛91に異常行動があると判定する。異常行動の種類は、共に抽出された判定項目などにより判断する。例えば、判定項目が「接触回数」の場合、他の牛91との接触回数が通常よりも多いので、「発情」を示す異常行動と判定される。判定項目が「横臥」の場合、横臥の時間が継続しているため、牛91の「起立不可状態」を示す異常と判定される。なお、判定方法は、これに限らず、適宜変更してもよい。例えば一つの個別IDに対して判定項目が複数抽出された場合、それらを組み合わせて異常行動を判定してもよい。
【0084】
通知部311は、判定部310により異常行動であると判定された場合に、利用者情報登録テーブルT1に設定されている該当する畜産農家のメールアドレス等の宛先を取得し、アラームや電子メールなどによりその宛先に異常信号を通知する。
【0085】
次に、分析サーバ装置30における処理について説明する。分析サーバ装置30は、監視サービスを開始する準備処理として、利用者の端末や管理者の端末などから利用者の登録情報を受け付け、その登録情報を利用者情報登録テーブルT1(
図5(a)参照)、牛房情報登録テーブルT2(
図5(b)参照)、および個体情報登録テーブルT3(
図5(c)参照)へ設定する。設定後、分析サーバ装置30は、利用者の端末や管理者の端末などから監視サービスの開始を示す信号を受け付けるなどして、その利用者の各牛房90の牛91の行動について分析処理を開始する。
【0086】
図13~
図16は、利用者の1台の監視カメラユニット10から出力される連続フレーム画像M0の牛房90内の牛91の行動を分析する分析処理の説明図である。分析処理には、追跡処理や、アラーム基本データの生成処理や、閾値の決定処理や、異常行動判定処理などが含まれる。以下に、各処理の一例を
図13~
図16により説明する。
【0087】
図13は、追跡処理のフローの一例を示す図である。先ず、読出部302が、牛房情報登録テーブルT2から、監視サービスの開始を受け付けた利用者の牛房90の「牛房ID」t21の値(監視カメラユニットID)をテーブル操作部301により取得する(S1)。
【0088】
続いて、読出部302は、当該監視カメラユニットIDが送信元の連続フレーム画像M0から撮影された順に1フレーム分のフレーム画像を読出す(S2)。
【0089】
続いて、検出部303が、読み出されたフレームの数が2つ以上かを判定する(S3)。読み出されたフレームの数が一つの場合(S3:No判定)、ステップS2に戻り、読出部302が、撮影された順序が次のフレーム画像を読み出す。
【0090】
フレームの数が2以上の場合(S3:Yes判定)、続いて、検出部303が、後に読み出された方のフレーム画像(フレーム画像M2)を対象に牛の輪郭を検出する(S4)。具体的に、検出部303は、フレーム画像M2内の深度の異なる各領域から直前のフレーム画像(フレーム画像M1)と比べて変化があった領域を牛の領域と特定し、その特定した領域の輪郭を検出する。
【0091】
続いて、補助部304が、検出された各輪郭を対象に、牛91の個別の輪郭を検出する補助処理を行う(S5)。具体的に、補助部304は、輪郭上に設けたスキップ輪郭線の交差角から2つの特異点を求め、2つの特異点が求まった場合に、当該2つの点を繋ぐ線を境界に2頭の牛91の個別の輪郭を検出する。
【0092】
続いて、監視データ生成部305が、検出された各牛の個別の輪郭から、各牛の行動を示す監視データP3を生成する(S6)。本実施例では監視データP3を近似図形として生成し、近似図形の中心位置や縦横比などにより各牛91の行動を監視できるようにする。
【0093】
続いて、対応付け部306が、個体情報登録テーブルT3から当該「牛房ID」t21の値(監視カメラユニットID)に対応付けられている「個体ID」t31の値をテーブル操作部301により取得し、取得した監視カメラユニットIDと個体IDとを対応付けた追跡情報P4をRAM33に設定する(S7)。
【0094】
続いて、対応付け部306は、追跡情報P4に設定した個体IDの数と、監視データの数とが一致するかを判定する(S8)。数が一致しない場合(S8:No判定)、ステップS2から、撮影された順序が次のフレーム画像を対象に残りの牛91の輪郭を検出して監視データを生成する。なお、既に検出済みの牛91の監視データについては、残りの牛91の監視データが生成されるまで、その間の各フレーム画像を対象に検出部303と、補助部304と、監視データ生成部305とが同様に処理を行い、対応付け部306が最新の監視データに更新して管理する。
【0095】
個体IDの数と監視データの数とが一致すると(S8:Yes判定)、設定部307が、追跡情報P4に対し、各個体IDに各牛91の監視データ(この場合、初期値となる)を割り当てて設定する(S9)。この場合、各個体IDに対し各牛91の監視データを任意に割り当てる。この他、各牛91に該当する個体IDを割り当てるようにしてもよい。各牛91に該当する個体IDを割り当てる場合は、例えば、カラー画像から画像解析により各牛の個体IDを抽出する。個体IDは、各牛91に監視カメラによる読み取りが可能な位置且つ解析可能な大きさで刻印などにより設けられている個体識別番号等を利用する。そして、各牛91の監視データが示す深度画像内の座標とカラー画像内の各個体IDの座標とから、座標が一致する個体IDと監視データとを対応付ける。カラー画像を使用しない場合には、例えば各牛91に取り付けられた個体ID別のICタグを、所定位置に固定した読取装置で読み取るなどして、その受信強度などから各ICタグの距離や配置などを特定し、その特定した情報に基づいて個体IDと監視データとを対応付ける。或いは、個体IDを任意に割り当てておき、後に、利用者や管理者が個体IDの対応付けを書き換えるなどしてもよい。ここに示す、各牛91に該当する個体IDを割り当てる方法は一例であり、その他の方法を用いてもよい。
【0096】
以上の初期値の設定処理後、各種機能は、次の処理を行う。先ず、読出部302が続く1フレームを読み出し(S10)、検出部303が、そのフレーム画像Mnを対象に牛の輪郭を検出する(S11)。検出部303は、直前のフレーム画像Mn-1と比べることにより牛の輪郭を検出する。
【0097】
続いて、補助部304が、各牛の輪郭を対象に、牛91の個別の輪郭を検出する補助処理を行う(S12)。この処理は、ステップS5の処理と同様である。
【0098】
続いて、監視データ生成部305が、検出された各牛91の輪郭から、各牛91の行動を示す監視データを生成する(S13)。この処理は、ステップS6の処理と同様である。
【0099】
続いて、対応付け部306が、各牛91の監視データを追跡情報P4の各個体IDに時系列順に設定する(S14)。
【0100】
続いて、対応付け部306が、追跡情報P4に対応付けた監視データが所定数に達したかを判定する(S15)。
【0101】
所定数に達していない場合(S15:No判定)、ステップS10から、続く1フレームに対して処理が行われる。
【0102】
所定数に達した場合(S15:Yes判定)、設定部307が、追跡情報P4の時系列順に並ぶ監視データをテーブル操作部301により記録テーブルT4に設定する(S16)。その後、ステップS10から、続く1フレームに対して処理が行われる。
【0103】
図14は、アラーム基本データの生成処理のフローの一例を示す図である。この処理は、所定のタイミングで開始される。例えば、設定部307がテーブル操作部301により監視データを記録テーブルT4に設定する回数が所定回数に達した場合などに開始される。なお、この処理は、各監視カメラユニットIDの個別ID単位の行われるものとする。
【0104】
先ず、アラーム基本データ生成部308が記録テーブルT4から個別IDの監視データをテーブル操作部301により取得し(S21)、監視データから当該牛91の行動情報を生成する(S22)。
【0105】
続いて、アラーム基本データ生成部308は、当該牛91の行動情報をテーブル操作部301によりアラーム基本データ設定テーブルT5に設定する(S23)。
【0106】
なお、行動情報に生成方法については説明済みであるため、ここでの説明を省略する。
【0107】
図15は、閾値の決定処理のフローの一例を示す図である。以下の処理は、各監視カメラユニットIDの個別ID単位に行われるものとする。先ず、閾値決定部309が、閾値の更新時間になったかを判定する(S31)。更新時間は、例えば1日の終わりの、夜と次の日の朝の切り替わり時刻(一例としてAM4:00)などとする。なお、朝と昼の切り替わり時刻や、昼と夜の切り替わり時刻などとしてもよい。また、各切り替わりの時刻を指定してもよい。
【0108】
更新時間になった場合(S31:Yes判定)、閾値決定部309が、テーブル操作部301によりアラーム基本データ設定テーブルT5から個別IDの直近数日分の項目別の行動情報を取得する(S32)。
【0109】
続いて、閾値決定部309は、朝と、昼と、夜の期間に分けて、当該個別IDの数日分の行動情報を項目別に移動平均などにより集計し、項目別の集計結果から、当該個別IDの閾値を、行動情報の項目別、期間別(朝の期間、昼の期間、夜の期間)に決定する(S33)。
【0110】
そして、閾値決定部309は、閾値情報P5の各個別IDの閾値のセットを、決定した値に更新する(S34)。なお、閾値の初期値には、所定のデフォルト値が設定されるものとする。
【0111】
更新時間になっていない場合には(S31:No判定)、更新時間になるまで待機する。
【0112】
図16は、牛91の異常行動判定処理のフローの一例を示す図である。判定部310は、所定の時間間隔(例えば5分置きなど)で次の異常行動判定処理を行う。
【0113】
先ず、判定部310は、設定情報Dから、異常行動を判定する牛房90の判定項目を取得する(S41)。
【0114】
続いて、判定部310は、取得した判定項目ごとに、閾値情報P5から、当該牛房90の牛91の固体IDに設定されている閾値を取得する(S42)。
【0115】
続いて、判定部310は、テーブル操作部301により、アラーム基本データ設定テーブルT5の当該判定時を含む期間(朝、昼、または夜)を対象に、アラーム基本データ設定テーブルT5における行動情報の項目別の集計値が、閾値情報P5から取得したそれぞれの項目の閾値を超える、牛91の個別IDを検索し、閾値を超える牛91の個別IDとその判定項目とを抽出する(S43)。ここで、集計値は、例えば、当該判定時が朝の期間のAM9:00である場合、判定当日の朝の期間(AM4:00~AM9:00)の集計値である。具体的に、テーブル操作部301では、各牛91について、判定項目毎に、行動情報の集計値と、対応する上限値および下限値を比較し、行動情報の集計値が上限値および下限値の範囲外となる異常行動を含むかを判定する。
【0116】
続いて、判定部310は、抽出結果から、牛91の異常行動を判定する(S44)。
【0117】
牛91の個別IDとその判定項目とが抽出された場合(S44:Yes判定)、通知部311が、利用者情報登録テーブルT1に設定されているメールアドレス等の宛先を取得し、その宛先に異常信号を通知する(S45)。この際に、異常行動と判定された牛91の個別IDや、判定項目が示す仲間外れや、発情や、病気の兆候や、起立不可状態などの異常行動の内容などをその宛先に通知してもよい。また、ベテランの対処方法をデータベース化しておき、異常行動の内容に該当する対処方法をデータベースから抽出して、その内容を通知してもよい。
【0118】
牛91の個別IDとその行動情報の項目名とが抽出されない場合は(S44:No判定)、本処理を終了する。
【0119】
異常行動を示す牛91の個別IDの検索は例えば次のように行う。例えば、行動情報の内の座位時間が継続中の個体IDを検索し、その個体IDの近似楕円など、最新の被写体の図形を取得する。そして、その図形の縦と横の比が所定の範囲から外れていたり、輪郭面積が所定の面積よりも大きかったりすると牛91が横臥状態であると判断する。一例として、図形が近似楕円の場合、長軸と短軸のそれぞれの長さ(長径と短径)の比から、牛91の横臥を判断する。牛91は、上方から見た場合、横臥状態になると、長径と短径との長さの比が大きく変化する。この長さの比の変化から牛91の横臥を判断する。そして、横臥状態が一定時間以上続いた場合、牛91は、横臥から座位に戻れなくなる起立不可の状態であると判断し、異常行動があるものと判定する。
【0120】
また、判定部310は、直近の所定期間の行動情報の内の接触回数が多い個体IDを検索し、その個体IDの直近の所定期間の移動距離が他の牛91と比べて多かったり、エサを食べる回数が少なかったり、他の牛91よりも立位時間が長かったりした場合に、発情と判断し、異常があるものと判定する。
【0121】
また、判定部310は、直近の所定期間の行動情報の内の接触回数が極端に少ない個体IDを検索し、その牛91を仲間外れと判断し、異常があるものと判定する。
【0122】
また、判定部310は、直近の所定期間の行動情報の内の移動距離が極端に少ない個体IDを検索し、その個体IDの直近の所定期間の水飲みやエサの回数などから病気の兆候を判断し、異常があるものと判定する。
【0123】
本実施例では、監視対象の牛を対象に監視データを生成し、その監視データを使用して異常行動を判定したが、当該監視データに、更に環境情報(例えば温度や天候などの情報)を含めてもよい。例えば、監視カメラ10aに温度センサを接続し、当該温度センサが検出した牛房内の温度情報をコントローラPCを通じてクラウドに出力する。また、天候情報については、例えば天候情報を時系列で提供する天候データベースなどから取得する。牛の行動を示す行動情報に、これらの環境情報を含めて異常行動を判定する。
【0124】
以上により、本実施例では、監視の対象となる牛へ直接センサを取り付ける必要がなくなるので、牛への負担を小さくする、或いはなくすことができる。また、牛の様々な情報を含む監視データを随時蓄積して、蓄積した監視データからリアルタイム或いは少ないタイムラグで牛のわずかな行動の変化を発見することができる。このため、牛に異常な行動が見られれば、直ちに、その牛の飼育者の畜産農家へ通知し、その牛の対応を早期に行わせることが可能になる。起立不可状態にある牛であれば、その牛の上体を起こし、病気の兆候が見られる牛であれば、早期に治療することにより、牛の死廃率を低下させることができる。
【0125】
また、経験の浅い新規就農者に対しても、牛の異常行動があれば、熟練者と等しく牛の異常を通知するため、牛の行動の変化に気が付かずに見過ごすことが減り、牛の死廃率を低下させることができる。また、設定により熟練者の対象方法をメールで通知することも可能であるため、熟練者と同様の対処を行うことが可能になる。
【0126】
本実施例では、主に検出部303が「第1の検出手段」に該当する。主に補助部304が「第2の検出手段」に該当する。主に監視データ生成部305や、対応付け部306や、設定部307や、アラーム基本データ生成部308などが「生成手段」に該当する。主に閾値決定部309や判定部310などが「判定手段」に該当する。主に通知部311が「通知手段」に該当する。なお、各手段と各機能との対応関係はこれに限らない。情報処理システムの構成に応じて適宜組み合わせを変えたり、一部の機能を他の機能に置き換えたり、一部の機能を削除したり、他の機能を追加したりしてもよい。
【0127】
本実施例では、CPUがHDDのプログラムをRAMにロードして機能を実現する例について示したが、当該機能の一部または全てをASIC(Application Specific Integrated Circuit)などのハードウエアで構成してもよい。
【0128】
(変形例)
また、当該機能の一部または全てを「機械学習手段」であるAI(人工知能)で行えるように変形してもよい。例えば、アラーム基本データ生成部308や、閾値決定部309や、判定部310などの処理をAIで行う。
【0129】
アラーム基本データ生成部308については、アラーム基本データ生成部308が取得した監視データから行動情報を生成する処理をAIで行う。例えばAIに入力値として監視データを与え、AIで機械学習を繰り返す。AIからは、異常行動についての判定の誤りが最小限に最適化された方法で算出された行動情報の出力値を得る。
【0130】
閾値決定部309については、閾値の決定処理をAIで行う。例えばAIに入力値として行動情報を与え、AIで機械学習を繰り返す。AIからは、異常行動についての判定の誤りが最小限に最適化された方法で算出された閾値の出力値を得る。
【0131】
判定部310については、異常行動の判定処理においてAIを利用する。AIに入力値として判定時の期間内の行動情報などを与え、機械学習を繰り返すことにより、異常行動の判定項目の結果等の誤りが最小限に最適化された算出方法で、判定項目の結果を示す出力値を得る。
【0132】
なお、アラーム基本データ生成部308、閾値決定部309、および判定部310の内の何れか2以上を組み合わせた一連の処理をAIで行なってもよい。
【符号の説明】
【0133】
1 情報処理システム
10 監視カメラユニット
10a 監視カメラ
10b コントロールPC
20 クラウド
21 ストレージ
30 分析サーバ装置
40 管理PC
50 利用者端末
60 ネットワーク
70 異常信号
80 管理棟
90 牛房
90b 育成エリア