(57)【要約】【課題】監視の対象となる家畜などへの負担をなくし、監視の対象からより多くの行動情報を読み取ることを可能にする。【解決手段】本発明にかかる情報処理システムは、監視領域の空間情報を出力する空間センサと、空間センサから出力された空間情報から監視対象の複数の動く物体の物体情報を検出する第１の検出手段と、第１の検出手段が検出した物体情報において複数の動く物体の内の互いに接触している動く物体の配置情報を検出する第２の検出手段と、物体情報および配置情報から複数の動く物体の行動情報を生成する生成手段と、行動情報から動く物体の行動が異常行動であるかを判定する判定手段と、動く物体の行動が異常行動であると判定された場合に異常を通知する通知手段と、を有することを特徴とする。【選択図】図２
2019024482.tif 000002
【特許請求の範囲】
【請求項１】
監視領域の空間情報を出力する空間センサと、
前記空間センサから出力された前記空間情報から監視対象の複数の動く物体の物体情報を検出する第１の検出手段と、
前記第１の検出手段が検出した前記物体情報において前記複数の動く物体の内の互いに接触している動く物体の配置情報を検出する第２の検出手段と、
前記物体情報および前記配置情報から前記複数の動く物体の行動情報を生成する生成手段と、
前記行動情報から前記動く物体の行動が異常行動であるかを判定する判定手段と、
前記動く物体の行動が異常行動であると判定された場合に異常を通知する通知手段と、
を有することを特徴とする情報処理システム。
【請求項２】
前記物体情報は、前記複数の動く物体の輪郭を示す輪郭情報であり、
前記第２の検出手段は、前記複数の動く物体の輪郭に含まれている１組または複数組の特異点を検出し、前記互いに接触している動く物体のそれぞれの輪郭を前記各組の特異点を結ぶ境界を境に区別する配置情報を検出する、
ことを特徴とする請求項１に記載の情報処理システム。
【請求項３】
前記特異点は、前記空間センサから所定のフレームレートで出力される前記空間情報において、前記輪郭上の隣り合う２点を結ぶ線分の内の隣接する線分のなす角が複数フレーム内で所定角度以内に変化する点とする、
ことを特徴とする請求項２に記載の情報処理システム。
【請求項４】
前記複数の動く物体のステージ情報と前記異常行動の判定項目とを対応付ける対応情報を有し、
前記判定手段は、前記対応情報に基づき、前記複数の動く物体のステージ情報に該当する異常行動の判定項目について、前記行動情報から前記動く物体の行動が異常行動であるかを判定する、
ことを特徴とする請求項１乃至３の内の何れか一項に記載の情報処理システム。
【請求項５】
前記判定手段は、前記複数の動く物体の直近の所定日数分の行動情報に基づいて決定した異常行動を示す閾値と、前記判定手段の判定当日の前記行動情報とを比較し、前記異常行動であるかを判定する、
ことを特徴とする請求項１乃至４の内の何れか一項に記載の情報処理システム。
【請求項６】
前記生成手段は、前記物体情報および前記配置情報を前記動く物体の輪郭に近似した近似図形に変換し、前記空間センサから所定のフレームレートで出力される前記空間情報に対応する時系列順の前記近似図形に基づいて前記行動情報を生成する、
ことを特徴とする請求項１乃至５の内の何れか一項に記載の情報処理システム。
【請求項７】
前記判定手段は、前記近似図形の長軸の長さと短軸の長さの比に基づいて、前記複数の動く物体が起立不可の状態にあると判定する、
ことを特徴とする請求項６に記載の情報処理システム。
【請求項８】
前記判定手段は、前記近似図形の輪郭面積に基づいて、前記複数の動く物体が起立不可の状態にあると判定する、
ことを特徴とする請求項６に記載の情報処理システム。
【請求項９】
前記生成手段は、前記第２の検出手段による前記配置情報の検出に基づき、前記行動情報として接触回数情報を生成する、
ことを特徴とする請求項１乃至８の内の何れか一項に記載の情報処理システム。
【請求項１０】
前記生成手段または前記判定手段の一部に機械学習を行う機械学習手段を有する、
ことを特徴とする請求項１乃至９の内の何れか一項に記載の情報処理システム。
【請求項１１】
空間センサから出力された空間情報から監視対象の複数の動く物体の物体情報を検出する第１の検出手段と、
前記第１の検出手段が検出した前記物体情報において前記複数の動く物体の内の互いに接触している動く物体の配置情報を検出する第２の検出手段と、
前記物体情報および前記配置情報から前記複数の動く物体の行動情報を生成する生成手段と、
前記行動情報から前記動く物体の行動が異常行動であるかを判定する判定手段と、
前記動く物体の行動が異常行動であると判定された場合に異常を通知する通知手段と、
を有する情報処理装置。
【請求項１２】
コンピュータを、
空間センサから出力された空間情報から監視対象の複数の動く物体の物体情報を検出する第１の検出手段と、
前記第１の検出手段が検出した前記物体情報において前記複数の動く物体の内の互いに接触している動く物体の配置情報を検出する第２の検出手段と、
前記物体情報および前記配置情報から前記複数の動く物体の行動情報を生成する生成手段と、
前記行動情報から前記動く物体の行動が異常行動であるかを判定する判定手段と、
前記動く物体の行動が異常行動であると判定された場合に異常を通知する通知手段と、
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム、情報処理装置、およびプログラムに関する。
【背景技術】
【０００２】
従来、畜産農家で飼育されている家畜は出荷前までに起立不可状態や衰弱などにより数パーセントが死廃になる。畜産農家では人手不足などもあり厩舎内の家畜全てを２４時間付きっ切りで見守ることはできず、家畜に行動の変化があってもそれを早期発見することが難しい。このため、家畜が厩舎内で起立不可状態のまま窒息により死廃に至ったり、病気などで衰弱が進行し死廃に至ったりする場合がある。経験の浅い新規就農者においては、熟練者と違い、家畜の行動の変化に気が付くことさえできないので、家畜の死廃率がより一層高まる。
【０００３】
家畜の健康状態の異常を通報する通報システムを開示したものがある。この通報システムは、牛に歩数を検知するセンサを装着させ、各センサから歩数信号を受信して歩数から健康状態の異常を発見する。健康情報に異常があると、通報システムの利用者にその旨を報知する（特許文献１参照）。この他、牛の体内に体温を計測するセンサを埋め込み、そのセンサからの温度信号を受信して健康状態の異常を発見するものもある（特許文献２参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１３／１４５３２９号
【特許文献２】特開２００７−２９６０４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、家畜にセンサを装着して家畜の異常を検出するこれまでの仕組みは、家畜への負担が大きく、家畜にストレスを与えかねない。そのため、装着するセンサの種類や数は限定的で、家畜から検出することのできる情報は特定の異常を検出するものに限られてしまうという問題がある。
【０００６】
本発明は、上記に鑑みてなされたものであって、監視の対象となる家畜などへの負担をなくし、監視の対象からより多くの行動情報を読み取ることを可能にする情報処理システム、情報処理装置、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本発明にかかる情報処理システムは、監視領域の空間情報を出力する空間センサと、空間センサから出力された空間情報から監視対象の複数の動く物体の物体情報を検出する第１の検出手段と、第１の検出手段が検出した物体情報において複数の動く物体の内の互いに接触している動く物体の配置情報を検出する第２の検出手段と、物体情報および配置情報から複数の動く物体の行動情報を生成する生成手段と、行動情報から動く物体の行動が異常行動であるかを判定する判定手段と、動く物体の行動が異常行動であると判定された場合に異常を通知する通知手段と、を有することを特徴とする。
【発明の効果】
【０００８】
本発明は、監視の対象の負担をなくし、監視の対象からより多くの行動情報を読み取ることが可能になるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】図１は、本発明にかかる情報処理システムの実施例について説明する図である。
【図２】図２は、牛房に設けた監視カメラを含む情報処理システムのシステム構成の一例を示す図である。
【図３】図３は、監視カメラユニットのハードウエア構成の一例を示す図である。
【図４】図４は、分析サーバ装置のハードウエア構成の一例を示す図である。
【図５】図５は、監視サービスに係る情報テーブルのテーブル構成の一例を示す図である。
【図６】図６は、異常行動の判定項目を育成ステージ別に設定した設定情報の一例を示す図である。
【図７】図７は、分析サーバ装置の機能の説明図である。
【図８】図８は、牛の輪郭を検出する方法の説明図である。
【図９】図９は、補助部の一例を示す図である。
【図１０】図１０は、探索部と特定部とによる補助処理の説明図である。
【図１１】図１１は、牛の輪郭を図形に近似する場合の説明図である。
【図１２】図１２は、牛の輪郭画像の面積変化の一例を示す図である。
【図１３】図１３は、追跡処理のフローの一例を示す図である。
【図１４】図１４は、アラーム基本データの生成処理のフローの一例を示す図である。
【図１５】図１５は、閾値の決定処理のフローの一例を示す図である。
【図１６】図１６は、牛の異常行動判定処理のフローの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下に、本発明にかかる情報処理システム、情報処理装置、およびプログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。例えば、以下に示す実施例では、乳用牛や肉用牛である家畜の牛を監視対象として説明するが、「動く物体」であれば、その他の家畜や、家畜以外の動物や生物などに適用してもよい。また、以下に示す実施例では、監視領域内の各被写体の深度を示す深度画像を「空間情報」として出力する空間センサを一例として示すが、「空間情報」は深度画像に限らず、監視領域内の動く被写体の領域や輪郭などを特定することができるものであれば、その他のものでもよい。また、以下に示す実施例では、輪郭情報を「物体情報」の一例と示すが、「物体情報」は動く物体の領域そのものなどでもよい。また、以下に示す実施例では、個体輪郭情報を「配置情報」の一例と示すが、「配置情報」は物体情報において個体の領域を識別できる情報であれば、その他の情報でもよい。
【実施例】
【００１１】
図１は、本発明にかかる情報処理システムの実施例について説明する図である。図１には、牛舎内に設けられている牛房９０と、牛房９０内の牛９１の行動を監視する監視カメラ（「空間センサ」の一例）１０ａとを示している。牛房９０は柵９０ａにより仕切られている一つの牛房を表す。牛房９０内には同時期に出生した牛９１を収容している。図１には一例として２頭の牛９１を示しているが、牛９１の数は１頭でも複数頭であってもよい。水飲み場やエサ場などは、図示を省略しているが、柵９０ａの内側にあっても、柵９０ａの外側にあってもよい。
【００１２】
図１に示すように、牛房９０の上方に監視カメラ１０ａを設置し、監視カメラ１０ａにより牛房９０の育成エリア９０ｂを撮影する。育成エリア９０ｂが本実施例の監視領域である。監視カメラ１０ａを設置する高さＨは、育成エリア９０ｂが撮影の範囲に収まるように調節する。本実施例では幅Ｗ×奥行Ｌが５．０ｍ×４．１ｍの広さの育成エリア９０ｂに対して、監視カメラ１０ａを４．２ｍ程度の高さに設置する。
【００１３】
監視カメラ１０ａにより育成エリア９０ｂがセンシングされ、監視カメラ１０ａから所定のフレームレートでフレーム画像が出力される。牛９１の行動は、その連続するフレーム画像（後述する「連続フレーム画像」）に基づき、監視サービスの提供会社のサーバ装置がデータ解析する。そして、このデータ解析において牛９１の異常行動を示す結果が得られると、当該サーバ装置は、その牛９１の畜産農家へ異常信号を通知する。
【００１４】
図２は、牛房９０に設けた監視カメラ１０ａを含む情報処理システムのシステム構成の一例を示す図である。図２に示すように、情報処理システム１は、複数の監視カメラユニット１０や、クラウド２０や、分析サーバ装置３０や、管理ＰＣ４０や、利用者端末５０などを、ネットワーク６０を介して接続する構成を有する。
【００１５】
監視カメラユニット１０は、監視サービスを利用する各畜産農家の牛舎の牛房９０に設置する。図２には、牛房９０を一つのみ示しているが、監視カメラユニット１０は、牛舎内の各牛房９０に個別に設置する。なお、幾つかの牛房９０に対して１台の監視カメラユニット１０を設置するようにしてもよい。
【００１６】
監視カメラユニット１０は、監視カメラ１０ａとコントロールＰＣ１０ｂとを有する画像送信ユニットである。監視カメラ１０ａは、各牛房９０の上方に撮影方向を下に向けて設置し、各牛房９０の育成エリア９０ｂを撮影する。監視カメラ１０ａのコントロールＰＣ１０ｂは、監視カメラ１０ａが出力する連続フレーム画像をＷｉＦｉなどによりアクセスポイントへとばし、そのアクセスポイントからネットワーク６０を通じてクラウド２０に送信させる。
【００１７】
クラウド２０は、ストレージネットワークを構築し、データストレージサービスを提供する。クラウド２０は、ユーザの保管データ（本実施例では連続フレーム画像）をストレージネットワーク上のストレージ２１に蓄積して保管する。
【００１８】
分析サーバ装置３０は、クラウド２０から連続フレーム画像（コピー）を取得し、連続フレーム画像を対象に牛９１の行動について分析処理を行う。分析サーバ装置３０は、分析処理により牛９１の異常行動を検知すると、その牛９１の畜産農家の利用者端末５０に牛９１の異常行動についてお知らせする信号（異常信号７０）を通知する。異常信号７０の通知は、アラームや電子メールなどにより行う。
【００１９】
管理ＰＣ４０は、各畜産農家が管理棟８０などに備えるパーソナルコンピュータである。管理ＰＣ４０は、対応の設定プログラムにより、監視カメラユニット１０の設定などを行う。
【００２０】
利用者端末５０は、各畜産農家が所持する携帯電話機や、スマートフォンや、タブレット端末などである。利用者端末５０は、分析サーバ装置３０からアラームなどによる異常信号７０を受信し、報知音や、ＬＥＤ（Light  Emitting  Diode）の発光や、メッセージ画面の表示などにより、牛９１に異常行動があることを利用者端末５０の所持者に知らせる。また、利用者端末５０は、牛９１の異常行動の内容を知らせる電子メールを異常信号７０として取得してもよい。
【００２１】
更に、利用者端末５０は、監視サービスを提供する会社が指定したＵＲＬ（Uniform  Resource  Locator）にアクセスし、利用者の牛房９０の監視カメラユニット１０から出力された連続フレーム画像を再生して表示することも可能である。再生する連続フレーム画像は、監視カメラユニット１０のカラーカメラ１１ｃ（図３参照）から出力されたカラー連続フレーム画像である。
【００２２】
ネットワーク６０は、無線ＬＡＮ（Local  Area  Network）ネットワークや公衆網やインターネットなどである。コントロールＰＣ１０ｂがＷｉＦｉ接続するアクセスポイントはネットワーク６０の無線ＬＡＮネットワークに構成される。
【００２３】
図３は、監視カメラユニット１０のハードウエア構成の一例を示す図である。監視カメラユニット１０の監視カメラ１０ａは、赤外線プロジェクタ１１ａや、赤外線カメラ１１ｂや、カラーカメラ１１ｃなどを有する。
【００２４】
赤外線プロジェクタ１１ａは牛房９０全体に赤外線を照射する。赤外線カメラ１１ｂは牛房９０内の各被写体までの深度を表す画像（「深度画像」と呼ぶ）を所定のフレームレートで連続的に出力する。具体的に赤外線カメラ１１ｂは牛房９０内の各被写体から反射される赤外光を基に所定のフレームレートで画素単位に深度を算出し、それぞれの深度を所定の画素値に対応付けた画像を連続的に出力する。例えば、赤外光を照射してから各被写体からの反射光を受光するまでの時間などにより、各被写体までの距離を深度として算出する。なお、本実施例では、深度を示す連続フレーム画像のことを、カラー連続フレーム画像と区別して単に「連続フレーム画像」と呼ぶ。
【００２５】
カラーカメラ１１ｃは、牛房９０のカラー画像を所定のフレームレートで連続的に出力する。具体的にカラーカメラ１１ｃは牛房９０内の各被写体から照明光や太陽光により反射する光に基づき所定のフレームレートでカラー画像に変換し、それを連続的に出力する。なお、本実施例では、カラーのものについては「カラー」であることを明示する。
【００２６】
監視カメラ１０ａは、ＵＳＢ（Universal  Serial  Bus）ケーブル１０ｃを介してコントロールＰＣ１０ｂと接続される。監視カメラ１０ａは、コントロールＰＣ１０ｂから指示された設定で連続フレーム画像とカラー連続フレーム画像とを出力する。
【００２７】
コントロールＰＣ１０ｂは、ＣＰＵ（Central  Processing  Unit）、ＲＯＭ（Read  Only  Memory）、ＲＡＭ（Random  Access  Memory）などのコンピュータ構成の制御部１２を有する。制御部１２にはＵＳＢコントローラ１３やＷｉＦｉの通信コントローラ１４などが接続されている。
【００２８】
制御部１２では、ＣＰＵがＲＯＭのプログラムを実行し、例えば次のような処理を行う。制御部１２は、ＵＳＢコントローラ１３の制御により、監視カメラ１０ａから連続フレーム画像とカラー連続フレーム画像とを取得し、取得した連続フレーム画像とカラー連続フレーム画像とを、通信コントローラ１４の制御によりクラウド２０へ送信する。
【００２９】
ＵＳＢコントローラ１３は、ＵＳＢケーブル１０ｃを介して監視カメラ１０ａのターゲット（赤外線カメラ１１ｂや、カラーカメラ１１ｃなど）とＵＳＢ通信を行う。主にＵＳＢコントローラ１３は、監視カメラ１０ａから連続フレーム画像とカラー連続フレーム画像とを取得する。
【００３０】
通信コントローラ１４は、アクセスポイント６０ａにＷｉＦｉ接続し、クラウド２０に連続フレーム画像とカラー連続フレーム画像とを随時送信する。
【００３１】
図４は、分析サーバ装置３０のハードウエア構成の一例を示す図である。図４に示す分析サーバ装置３０は、ＣＰＵ３１、ＲＯＭ３２、ＲＡＭ３３、ＨＤＤ（Hard  Disk  Drive）３４、通信ボード３５などがバス３６を介して接続されたものである。
【００３２】
ＣＰＵ３１は、プログラムを実行し、演算処理や各部の制御処理を行う。ＲＯＭ３２は、ＢＩＯＳなどの固定プログラムを記憶する不揮発性メモリである。ＲＡＭ３３は、ＣＰＵ３１がワークエリアとして使用する揮発性メモリである。
【００３３】
ＨＤＤ３４は、補助記憶装置である。ＨＤＤ３４には、ＯＳ（Operating  System）などの基本プログラムＣ１や、監視サービスに係る分析プログラムＣ２や、情報テーブルＴや、設定情報Ｄなどを格納する。基本プログラムＣ１には、Ｗｅｂ（World  Wide  Web）サーバやデータベースサーバなどが含まれる。
【００３４】
通信ボード３５は、例えばイーサネット（登録商標）などの通信を行うための通信ボードである。通信ボード３５は、例えばサービス提供会社の社内ＬＡＮなどに通信ケーブルを介して接続されている。
【００３５】
続いて、監視サービスに係る情報テーブルＴのテーブル構成について説明する。
図５は、監視サービスに係る情報テーブルＴのテーブル構成の一例を示す図である。図５（ａ）は、監視サービスを開始する利用者の利用者情報を登録する利用者情報登録テーブルＴ１である。図５（ｂ）は、監視カメラ１０ａを設置する牛房９０についての情報を登録する牛房情報登録テーブルＴ２である。図５（ｃ）は、牛房９０内の牛９１の個体情報を登録する個体情報登録テーブルＴ３である。図５（ｄ）は、牛９１の行動を示す監視データを逐次記録する記録テーブルＴ４である。図５（ｅ）は、監視データから生成したアラーム基本データを設定するアラーム基本データ設定テーブルＴ５である。
【００３６】
図５（ａ）に示す利用者情報登録テーブルＴ１は、項目として、利用者の「利用者ＩＤ（Identification）」ｔ１１や、利用者の「電話番号」ｔ１２や、利用者の「電子メールアドレス」ｔ１３や、利用者の「画像閲覧用のＵＲＬ」ｔ１４などを有する。ここで、「電話番号」ｔ１２や「メールアドレス」ｔ１３は、利用者に牛９１の異常を知らせるための通知先を示す情報の一例である。「画像閲覧用のＵＲＬ」ｔ１４は、利用者の牛房９０の様子を撮影して得たカラー連続フレーム画像の取得先のＵＲＬである。
【００３７】
図５（ｂ）に示す牛房情報登録テーブルＴ２は、項目として、「利用者ＩＤ」ｔ１１や、監視対象に設定する牛房９０の「牛房ＩＤ」ｔ２１や、牛房９０別の牛９１の「出生日」ｔ２２などを有する。ここで、「牛房ＩＤ」ｔ２１には、牛房９０に設置された監視カメラユニット１０の監視カメラユニットＩＤ（コントロールＰＣ１０ｂのＭＡＣアドレス等）を登録する。「出生日」ｔ２２には、牛房９０内の牛９１の出生日を登録する。なお、この例では同日に生まれた牛９１を同じ牛房９０内に収容する場合について示す。出生日が異なる牛９１を同じ牛房９０内に収容する場合には、出生日を牛房９０単位ではなく牛９１の個体別に管理できるようにテーブル構成を変形してもよい。
【００３８】
図５（ｃ）に示す個体情報登録テーブルＴ３は、項目として、「牛房ＩＤ」ｔ２１や、牛房９０内の牛９１の「個体ＩＤ」ｔ３１などを有する。ここで、「個体ＩＤ」ｔ３１には、牛房９０別に、牛房９０内に収容されている全ての牛９１の個体ＩＤを登録する。個体ＩＤは、互いに識別することができれば任意に設定してよい。
【００３９】
図５（ｄ）に示す記録テーブルＴ４は、項目として、「個体ＩＤ」ｔ３１や、「期間」ｔ４１や、「監視データ」ｔ４２や、「接触フラグ」ｔ４３などを有する。ここで、「期間」ｔ４１には、「監視データ」ｔ４２にデータを設定したときの設定日時の情報を設定する。「監視データ」ｔ４２と「接触フラグ」ｔ４３とには、それぞれ、後述する牛９１の監視データと牛９１同士の接触を表す接触フラグ（「接触回数情報」の一例）とを設定する。
【００４０】
図５（ｅ）に示すアラーム基本データ設定テーブルＴ５には、項目として、「個体ＩＤ」ｔ３１や、「期間」ｔ５１や、「行動情報（アラーム基本データ）」ｔ５２などを有する。ここで、「期間」ｔ５１には、監視データの設定日時を含む日付と朝、昼、夜の期間を設定する。「行動情報（アラーム基本データ）」ｔ５２には、牛９１の「歩行距離」ｔ５２１や、「立位時間」ｔ５２２や、「座位時間」ｔ５２３や、他の牛９１との「接触回数」ｔ５２４や、「横臥時間」ｔ５２５や、その他牛９１の行動を表す情報についてのアラーム基本データの設定項目を有する。ここで「アラーム基本データ」は、牛９１の行動の中から牛９１の異常行動を判定するための基本データである。なお、「行動情報（アラーム基本データ）」ｔ５２の各項目は一例であり、その他の項目に適宜変形してもよい。ここで、座位は、膝を下ろして胸を起こした姿勢をいう。横臥は、肢を投げ出して横倒しの姿勢をいう。
【００４１】
図６は、異常行動の判定項目を育成ステージ別に設定した設定情報Ｄの一例を示す図である。育成ステージは「ステージ情報」の一例であり、設定情報Ｄは「対応情報」の一例である。図６に示す設定情報Ｄには、育成ステージ情報ｄ１として、第１ステージｄ１１、第２ステージｄ１２、第３ステージｄ１３、第４ステージｄ１４、第５ステージｄ１５・・・を設けている。ここでは一例として、第１ステージｄ１１を「初乳」、第２ステージｄ１２を「哺乳」、第３ステージｄ１３を「肥育、育成」、第４ステージｄ１４を「発情」、第５ステージｄ１５を「妊娠」、・・・などに設定したものを示している。育成ステージの各設定は、牛９１の出生からの日数により分けたものであるため、牛９１の出生からの日数や期間を示す情報を有する。例えば「初乳」には、出生から７日までの期間を示す情報が設定されている。
【００４２】
また、設定情報Ｄには、育成ステージ情報ｄ１に異常行動についての判定項目情報ｄ２を対応付けている。一例として判定項目に「仲間外れ」ｄ２１や、「発情」ｄ２２や、「病気の兆候」ｄ２３や、「起立不可状態」ｄ２４などを設け、育成ステージに応じて、判定の対象にする項目にフラグ「１」を立てている。ここでは一例として、第１ステージｄ１１と第２ステージｄ１２については「仲間外れ」ｄ２１や「病気の兆候」ｄ２３にフラグを立て、第３ステージｄ１３については「病気の兆候」ｄ２３と「起立不可状態」ｄ２４にフラグを立て、第４ステージｄ１４については「発情」ｄ２２にフラグを立て、第５ステージｄ１５については「起立不可状態」ｄ２４にフラグを立てたものを示している。
【００４３】
なお、ここに一例として示す項目について追加や削除を適宜行ってよい。また、各育成ステージ（第１ステージｄ１１、第２ステージｄ１２、・・・）における判定の対象にする項目の変更も適宜行ってよい。
【００４４】
また、設定情報Ｄの育成ステージを適宜変更してもよい。例えば、育成ステージを更に細かく分割してもよい。また、牛９１の種別（肉用牛、乳用牛）により育成ステージを分け、それぞれに対応する個別の育成ステージを設定してもよい。
【００４５】
図７〜図１１は、分析サーバ装置３０の機能の説明図である。分析サーバ装置３０は、ＣＰＵ３１がＨＤＤ３４の基本プログラムＣ１や分析プログラムＣ２などをＲＡＭ３３に適宜読み出して実行することにより当該機能を実現する。なお、当該機能は、一つのＣＰＵコアに割り当てて実現してもよいし、複数のＣＰＵコアに分散して割り当てて実現してもよい。また、分析サーバ装置３０を複数台設けて、それぞれのＣＰＵに当該機能を振り分けて実現してもよい。
【００４６】
以下、図７に示す各種の機能について図８〜図１１を適宜参照しながら説明する。なお、各機能間は、プロセス間通信などにより処理の完了等の通知を行うものとする。
【００４７】
図７には、分析処理にかかる主な機能として、テーブル操作部３０１と、読出部３０２と、検出部３０３と、補助部３０４と、監視データ生成部３０５と、対応付け部３０６と、設定部３０７と、アラーム基本データ生成部３０８と、閾値決定部３０９と、判定部３１０と、通知部３１１とを示している。
【００４８】
テーブル操作部３０１は、情報テーブルＴを対象に、データの登録や、更新や、削除や、抽出などを行う。
【００４９】
読出部３０２は、監視カメラユニットＩＤ別に、当該ＩＤの連続フレーム画像Ｍ０から１フレーム分のフレーム画像Ｍｎ（ｎ＝１，２，・・・）を撮影された順序で読み出す。例えば、連続フレーム画像Ｍ０は、クラウド２０（図２参照）から撮影された順序で順次送信され、通信ボード３５の受信バッファ内に蓄積される。読出部３０２は、その受信バッファ内の連続フレーム画像Ｍ０を対象に１フレーム分のフレーム画像Ｍｎを読み出す。
【００５０】
検出部３０３は、読み出されたフレーム画像Ｍｎから牛の輪郭（輪郭情報Ｐ１）を検出する。
【００５１】
図８は、牛の輪郭を検出する方法の説明図である。図８（ａ）には、深度画像であるフレーム画像Ｍｎの説明のためのカラー画像を示している。図８（ｂ）には、深度画像であるフレーム画像Ｍｎを示している。図８（ｃ）には、深度画像であるフレーム画像Ｍｎから検出された輪郭情報Ｐ１を示している。
【００５２】
図８（ａ）には、同じ生育期間の２頭の牛９１が図１に示す立位状態にある瞬間のカラー画像を示している。立位状態では、牛９１と赤外線カメラ１１ｂとの距離が近づくため深度が浅くなる。図８（ａ）の画像では牛９１が頭部を柵外のエサ箱などに出しているため画像から頭部が切れているが、牛９１の頭部などは、胴体よりも低い位置にあるため、胴体より深度が深くなる。その他、地面は、赤外線カメラ１１ｂとの距離が最も遠く、最も深い深度になる。
【００５３】
図８（ｂ）に示すように深度画像のフレーム画像Ｍｎは、複数個の一定深度の領域Ｅ１、Ｅ２、・・・を示す画像になる。一定深度の領域Ｅ１、Ｅ２、・・・は、それぞれ、その領域内において各画素が同じ深度であることを表している。一定深度の領域Ｅ１、Ｅ２、・・・は、それぞれ、隣接する領域間では、被写体までの深さが異なり、互いに深度が異なる。なお、フレーム画像Ｍｎに構成される各画素の画素値は、各画素の位置に対応する被写体との距離を表す深度に対応する。ここでは、説明のため、各領域Ｅ１、Ｅ２、・・・を深度に応じて斜線間隔を変えて表している。斜線間隔が狭いものほど、深度が浅いことを表している。また、一定深度の領域を領域Ｅ１〜Ｅ８に分けているが、この領域の数は一例であり、深度の分解能力に応じて分割数は異なる。
【００５４】
牛９１が座位や横臥の状態にある場合は牛９１の深度がより深くなり深度の値が大きくなる。地面は深度が最も深いため白で表している。この他、柵９０ａや、エサ場や水飲み場などは、連続するフレームに渡って固定の深度で表される。
【００５５】
検出部３０３は、フレーム画像Ｍｎ内の複数個の一定深度の領域Ｅ１、Ｅ２、・・・の内から直前のフレーム画像Ｍｎ−１と比べて移動するなど変化があった一定深度の領域を牛の領域と特定し、その輪郭を検出する。隣接する一定深度の領域が連動して変化する場合には、その連動する一定深度の領域を含めて牛の領域とする。図８（ｂ）では、領域Ｅ１が変化するため、領域Ｅ１を牛の領域として特定する。更に、領域Ｅ２と、これに隣接する領域Ｅ３とが連動して変化するため、領域Ｅ２と領域Ｅ３とを、別の牛の領域として特定する。
【００５６】
図８（ｃ）には、特定した２つの牛の領域を矩形枠Ｆ１、Ｆ２で示している。検出部３０３は、特定した矩形枠Ｆ１、Ｆ２内の牛の領域から牛の輪郭ｆ１、ｆ２を輪郭情報Ｐ１として検出する。牛の輪郭ｆ１、ｆ２は、他の領域との深度情報の差などから検出する。
なお、牛の領域の特定は、この他の方法であってもよい。例えば、柵９０ａ内には、監視対象の牛以外に、エサ箱や水飲み場などがあるが、これらは固定の位置にある。このため、フレーム画像Ｍｎ内のエサ箱や水飲み場などの座標で示される領域を除いた領域を、各牛の領域として特定する。
【００５７】
補助部３０４は、検出部３０３が検出した輪郭（輪郭情報Ｐ１）を対象に、接触している場合のそれぞれの牛の輪郭（個体輪郭情報Ｐ２）を検出する補助処理を行う。補助処理は、検出部３０３により検出された牛の輪郭が複数の牛９１の接触により一つの輪郭として検出された場合に各牛９１のそれぞれの輪郭を検出できるようにする処理のことである。この処理により、連続フレーム画像Ｍ０の各フレーム画像Ｍｎに渡り、追跡中の複数の牛９１が接触によって一つの輪郭として検出された場合でも、その間の各牛９１の個体識別を可能にする。
【００５８】
図９は、補助部３０４の一例を示す図である。図９に示すように、補助部３０４は探索部３０４ａと特定部３０４ｂとを有する。探索部３０４ａと特定部３０４ｂとによる補助処理について図１０を用いて説明する。
【００５９】
図１０は、探索部３０４ａと特定部３０４ｂとによる補助処理の説明図である。図１０（ａ）には、フレーム画像Ｍｎにおいて２頭の牛９１が接触している場合の牛の輪郭ｆ３を示している。図１０（ｂ）には、図１０（ａ）の牛の輪郭ｆ３に対する補助処理の一例を示している。
【００６０】
探索部３０４ａは、検出された牛の輪郭ｆ３上の一点（開始点ｖ０）から輪郭ｆ３上を一方向（例えば走査方向Ｖ１）に走査して、開始点ｖ０から順次、輪郭ｆ３上を任意点数だけスキップした点（サーチ点ｖ１、ｖ２、・・・）をサーチし、隣り合うサーチ点を結ぶ線分（スキップ輪郭線ｇ１、ｇ２、・・・）を求める。例えば、開始点ｖ０とサーチ点ｖ１を結ぶ線分としてスキップ輪郭線ｇ１を求める。
【００６１】
特定部３０４ｂは、隣接するスキップ輪郭線（例えばスキップ輪郭線ｇ１とスキップ輪郭線ｇ２）のなす角（交差角）が所定の角度以内に急激に変化する特異点を求める。例えば、特定部３０４ｂは、開始点ｖ０から走査方向Ｖ１に向けて、順次、隣接するスキップ輪郭線の交差角を求め、直前のフレームＭｎ−１において求めた交差角との比較から所定角度以内に急激に変化する点かを判定する。求めた点が、所定角度以内に急激に変化する点に該当しない場合は、走査方向Ｖ１における次の隣接するスキップ輪郭線の交差角について判定する。この例では、サーチ点ｖ５が所定角度以内に急激に変化する点として判定されて特異点の一つに特定される。なお、所定角度以内に急激に変化する点に該当するものがないまま開始点ｖ０まで戻った場合は、当該輪郭に特異点はないものと判定し、当該補助処理を終了する。
【００６２】
走査方向で特異点の一つが特定された場合、その走査方向Ｖ１における特異点の特定処理をストップし、開始点ｖ０から、走査方向Ｖ１とは逆回りの方向に特異点の特定処理を開始する。逆回りの方向において、他の一つの特異点を特定すると、その方向への特異点の特定処理もストップする。この例では、サーチ点−ｖ１８が所定角度以内に急激に変化する点として判定され特異点の他の一つに特定される。
【００６３】
補助部３０４は、特定部３０４ｂが特定した１組の特異点（この例では、サーチ点ｖ５とサーチ点−ｖ１８）を線で結んだ境界線により、２頭の牛９１の接触により一つで表される輪郭ｆ３を２頭の牛９１のそれぞれの輪郭ｆ１、ｆ２に分離し、区別する。個体輪郭情報Ｐ２は、輪郭情報Ｐ１に含まれる輪郭ｆ３を、補助処理により分離した輪郭ｆ１と輪郭ｆ２に更新した情報である。
【００６４】
なお、ここでは一例として、特定部３０４ｂが走査方向Ｖ１へ走査して特異点を特定し、続いて反対方向へ走査して特異点を特定する例を示したが、一方向のみの走査により１組の特異点を求めてもよい。また、接触の仕方に応じ、１組に限らず、複数組の特異点を求めてもよい。
【００６５】
また、ここでは、一例として、２頭が接触している場合を例にしているが、３頭以上の接触においても、それぞれの境界を特異点の特定により求めて、輪郭を牛９１ごとに分離する。
【００６６】
監視データ生成部３０５は、各牛９１の輪郭（個体輪郭情報Ｐ２）から、各牛９１の行動を監視する監視データＰ３を生成する。本実施例では、監視データ生成部３０５は、監視データＰ３として牛の輪郭を図形に近似した近似図形（関数データ等）を生成する。具体的に、監視データ生成部３０５は、各牛の輪郭、補助部３０４により一つの領域が境界において複数の領域に分けられている場合にはそれぞれの輪郭を上記図形に近似する変換を行う。
【００６７】
図１１は、牛の輪郭を図形に近似する場合の説明図である。図１１（ａ）には、牛の輪郭が輪郭ｆ３（図１０（ａ）参照）で示されるフレーム画像Ｍｎの個体輪郭情報Ｐ２を示している。補助部３０４により輪郭ｆ１、ｆ２に分離した後、監視データ生成部３０５が、それぞれの輪郭ｆ１、ｆ２を、例えば最小二乗法による楕円近似に変換する。図１１（ｂ）には、それぞれの輪郭ｆ１、ｆ２を最小二乗法により楕円に近似して得られる近似楕円の一例を示している。各近似楕円ｒ１、ｒ２は、フレーム画像Ｍｎの２次平面座標系での配置を示す一意の楕円関数のデータとして求められる。
【００６８】
なお、この例のように補助部３０４により牛９１の輪郭が分離された場合は、それぞれの楕円関数のデータに対し、接触を示す接触フラグＡを付加する。接触フラグＡは、例えば先頭ビットに「１」または「０」を設ける。
【００６９】
対応付け部３０６は、牛９１の個体ＩＤに監視データＰ３を対応付ける。具体的に、対応付け部３０６は、監視サービスの開始時などに利用者の牛房９０の監視カメラユニットＩＤと、その牛房９０内の牛９１の個体ＩＤとをテーブル操作部３０１により情報テーブルＴから取得し、監視カメラユニットＩＤと個体ＩＤとを対応付けた情報を追跡情報Ｐ４として設定する。その後、対応付け部３０６は、各牛を示す輪郭の数が個体ＩＤの数と一致する場合に、各牛に対応する監視データＰ３（接触フラグＡを含む）を各個体ＩＤの内の一つに初期値として設定する。そして、連続フレーム画像から時系列順に求められる各牛９１の監視データＰ３（接触フラグＡを含む）を、随時、その追跡情報Ｐ４に設定する。個体ＩＤに対する初期値以降の監視データＰ３の対応付けについては、例えば、個体ＩＤに対応付けられている直前の監視データＰ３との差分（中心位置の差分等）が小さいものを優先するなどして行う。これにより、追跡情報Ｐ４において、各個体ＩＤに各個体ＩＤの時系列順の監視データＰ３が対応付けられる。
【００７０】
設定部３０７は、監視データＰ３から接触フラグＡを分離し、テーブル操作部３０１により、監視データＰ３と接触フラグＡとを記録テーブルＴ４に設定する。例えば、設定部３０７は、追跡情報Ｐ４に設定されている監視データＰ３の設定数をトリガに、或いは所定時間間隔（例えば数秒置き）に、直近の監視データＰ３と接触フラグＡとを除くすべての監視データＰ３と接触フラグＡとを記録テーブルＴ４に設定する。なお、直近の監視データＰ３は、この例では、次に求められる監視データＰ３を何れの個体ＩＤに対応付けるかの判定に用いるために残している。
【００７１】
アラーム基本データ生成部３０８は、記録テーブルＴ４の監視データＰ３（接触回数をカウントする場合は接触フラグＡも含む）を基に、アラーム基本データとする行動情報を生成する。例えば、アラーム基本データ生成部３０８は、設定部３０７による設定後、或いは所定時間置き（例えば数秒や、数分や、数時間置きなど）に、記録テーブルＴ４から各監視カメラユニットＩＤの各固体ＩＤの監視データＰ３と接触フラグＡとを、テーブル操作部３０１により抽出し、各監視カメラユニットＩＤの各固体ＩＤを単位にその監視データＰ３と接触フラグＡとから牛９１の行動情報を生成する。行動情報は、例えば牛９１の歩行距離や、立位時間、座位時間、横臥時間、他の牛９１との接触回数などである。その他にも牛９１の行動を表す情報を適宜設定してよい。
【００７２】
一般に、牛９１は、膝を下ろして胸を起こした姿勢（座位）と、肢を投げ出して横倒しの姿勢（横臥）とを繰り返す動作を行う。この繰り返し動作の際に、牛９１は、横臥から座位に戻れなくなる起立不可の状態になることがある。起立不可の状態は、転倒事故によって起こるケースもある。このような起立不可の状態になって横臥状態が続くと、窒息死などによる事故の原因となる。そこで、本実施の形態においては、行動情報として横臥時間を設定している。
【００７３】
各牛の行動情報は例えば所定期間（本例では、朝と昼と夜とする）を単位に次のように生成する。１頭の牛９１の立位時間と座位時間については、期間内の当該牛９１の時系列順の監視データＰ３から、立位や座位の状態を判定し、立位や座位の状態になってからの継続時間の累計を求める。立位や座位は、監視データＰ３である近似図形の面積などにより判定する。例えば、所定の面積よりも大きい場合を立位とし、小さい場合を座位とする。
【００７４】
また、牛９１の接触回数については、その牛９１の時系列順の接触フラグＡから、接触してから離れるまでを１回として求める。
【００７５】
また、牛９１の歩行距離については、牛９１の近似図形の座標（近似楕円の中心座標など）の移動軌跡から求める。
【００７６】
また、１頭の牛９１の横臥時間については、期間内の当該牛９１の時系列順の監視データＰ３から、横臥状態を判定し、その状態になってからの継続時間の累計を求める。横臥状態は、監視データＰ３である近似図形の縦横の長さの比などにより判定する。例えば、近似楕円の場合、長軸と短軸のそれぞれの長さ（長径と短径）の比から、牛９１の横臥状態を判断する。牛９１は、上方から見た場合、横臥状態になると、長径と短径との長さの比が大きく変化する。この長さの比の変化から牛９１の横臥状態を判断している。
【００７７】
また、横臥状態は、監視データＰ３である近似図形の輪郭面積などにより判定するようにしてもよい。ここで、図１２は牛の輪郭画像の面積変化の一例を示す図である。図１２において、縦軸は牛の輪郭画像の面積（ピクセル）、横軸は時刻を表している。図１２に示すように、座位状態における輪郭面積に比べて横臥状態における輪郭面積の方が大きくなるので、所定の面積よりも大きい場合を横臥とし、小さい場合を座位とする。
【００７８】
その他牛９１の行動を表す情報として、例えば水飲みの回数やエサの回数については、各牛９１の近似図形上の頭部の座標（近似楕円であれば焦点座標の一つ）と水飲み場やエサ場の座標との距離などから求める。距離が所定の範囲内になり、所定範囲外に外れた場合を１回などとして求める。
【００７９】
こうして、アラーム基本データ生成部３０８は、生成した行動情報をアラーム基本データ設定テーブルＴ５へ設定する。
【００８０】
閾値決定部３０９は、牛９１の行動を異常行動と見做す閾値を決定する。本例では、１日を朝の期間と昼の期間と夜の期間とに分け、期間ごとに最新の閾値（上限値と下限値）を決定する。また、各牛９１について、行動情報の項目ごとに閾値を決定する。閾値は、該当する項目の所定日数分（ここでは直近数日分とする）のアラーム基本データを基に移動平均を行うなどして決定する。決定した閾値は、閾値情報Ｐ５に牛９１の個体ＩＤ別、朝、昼、夜の期間別に設定する。
【００８１】
判定部３１０は、判定当日などの判定時に含まれる期間の各牛９１の行動情報からそれぞれの牛９１の異常行動（仲間外れや、発情や、病気の兆候や、起立不可状態など）を判定する。
【００８２】
具体的に、判定部３１０は、設定情報Ｄから、牛房情報登録テーブルＴ２（図５（ｂ）参照）の牛房９０別の牛９１の「出生日」ｔ２２の設定に該当するステージについてのフラグ「１」の判定項目を取得し、更に閾値情報Ｐ５から、判定時の期間の閾値（上限値と下限値）を取得する。そして、判定部３１０は、テーブル操作部３０１により、アラーム基本データ設定テーブルＴ５から、各牛房９０の個体ＩＤごとに、更に取得した判定項目ごとに、それぞれの閾値を超える個体ＩＤを検索し、閾値を超える個体ＩＤとその判定項目とを抽出する。
【００８３】
判定部３１０は、抽出結果に閾値を超える個体ＩＤが含まれる場合、その牛９１に異常行動があると判定する。異常行動の種類は、共に抽出された判定項目などにより判断する。例えば、判定項目が「接触回数」の場合、他の牛９１との接触回数が通常よりも多いので、「発情」を示す異常行動と判定される。判定項目が「横臥」の場合、横臥の時間が継続しているため、牛９１の「起立不可状態」を示す異常と判定される。なお、判定方法は、これに限らず、適宜変更してもよい。例えば一つの個別ＩＤに対して判定項目が複数抽出された場合、それらを組み合わせて異常行動を判定してもよい。
【００８４】
通知部３１１は、判定部３１０により異常行動であると判定された場合に、利用者情報登録テーブルＴ１に設定されている該当する畜産農家のメールアドレス等の宛先を取得し、アラームや電子メールなどによりその宛先に異常信号を通知する。
【００８５】
次に、分析サーバ装置３０における処理について説明する。分析サーバ装置３０は、監視サービスを開始する準備処理として、利用者の端末や管理者の端末などから利用者の登録情報を受け付け、その登録情報を利用者情報登録テーブルＴ１（図５（ａ）参照）、牛房情報登録テーブルＴ２（図５（ｂ）参照）、および個体情報登録テーブルＴ３（図５（ｃ）参照）へ設定する。設定後、分析サーバ装置３０は、利用者の端末や管理者の端末などから監視サービスの開始を示す信号を受け付けるなどして、その利用者の各牛房９０の牛９１の行動について分析処理を開始する。
【００８６】
図１３〜図１６は、利用者の１台の監視カメラユニット１０から出力される連続フレーム画像Ｍ０の牛房９０内の牛９１の行動を分析する分析処理の説明図である。分析処理には、追跡処理や、アラーム基本データの生成処理や、閾値の決定処理や、異常行動判定処理などが含まれる。以下に、各処理の一例を図１３〜図１６により説明する。
【００８７】
図１３は、追跡処理のフローの一例を示す図である。先ず、読出部３０２が、牛房情報登録テーブルＴ２から、監視サービスの開始を受け付けた利用者の牛房９０の「牛房ＩＤ」ｔ２１の値（監視カメラユニットＩＤ）をテーブル操作部３０１により取得する（Ｓ１）。
【００８８】
続いて、読出部３０２は、当該監視カメラユニットＩＤが送信元の連続フレーム画像Ｍ０から撮影された順に１フレーム分のフレーム画像を読出す（Ｓ２）。
【００８９】
続いて、検出部３０３が、読み出されたフレームの数が２つ以上かを判定する（Ｓ３）。読み出されたフレームの数が一つの場合（Ｓ３：Ｎｏ判定）、ステップＳ２に戻り、読出部３０２が、撮影された順序が次のフレーム画像を読み出す。
【００９０】
フレームの数が２以上の場合（Ｓ３：Ｙｅｓ判定）、続いて、検出部３０３が、後に読み出された方のフレーム画像（フレーム画像Ｍ２）を対象に牛の輪郭を検出する（Ｓ４）。具体的に、検出部３０３は、フレーム画像Ｍ２内の深度の異なる各領域から直前のフレーム画像（フレーム画像Ｍ１）と比べて変化があった領域を牛の領域と特定し、その特定した領域の輪郭を検出する。
【００９１】
続いて、補助部３０４が、検出された各輪郭を対象に、牛９１の個別の輪郭を検出する補助処理を行う（Ｓ５）。具体的に、補助部３０４は、輪郭上に設けたスキップ輪郭線の交差角から２つの特異点を求め、２つの特異点が求まった場合に、当該２つの点を繋ぐ線を境界に２頭の牛９１の個別の輪郭を検出する。
【００９２】
続いて、監視データ生成部３０５が、検出された各牛の個別の輪郭から、各牛の行動を示す監視データＰ３を生成する（Ｓ６）。本実施例では監視データＰ３を近似図形として生成し、近似図形の中心位置や縦横比などにより各牛９１の行動を監視できるようにする。
【００９３】
続いて、対応付け部３０６が、個体情報登録テーブルＴ３から当該「牛房ＩＤ」ｔ２１の値（監視カメラユニットＩＤ）に対応付けられている「個体ＩＤ」ｔ３１の値をテーブル操作部３０１により取得し、取得した監視カメラユニットＩＤと個体ＩＤとを対応付けた追跡情報Ｐ４をＲＡＭ３３に設定する（Ｓ７）。
【００９４】
続いて、対応付け部３０６は、追跡情報Ｐ４に設定した個体ＩＤの数と、監視データの数とが一致するかを判定する（Ｓ８）。数が一致しない場合（Ｓ８：Ｎｏ判定）、ステップＳ２から、撮影された順序が次のフレーム画像を対象に残りの牛９１の輪郭を検出して監視データを生成する。なお、既に検出済みの牛９１の監視データについては、残りの牛９１の監視データが生成されるまで、その間の各フレーム画像を対象に検出部３０３と、補助部３０４と、監視データ生成部３０５とが同様に処理を行い、対応付け部３０６が最新の監視データに更新して管理する。
【００９５】
個体ＩＤの数と監視データの数とが一致すると（Ｓ８：Ｙｅｓ判定）、設定部３０７が、追跡情報Ｐ４に対し、各個体ＩＤに各牛９１の監視データ（この場合、初期値となる）を割り当てて設定する（Ｓ９）。この場合、各個体ＩＤに対し各牛９１の監視データを任意に割り当てる。この他、各牛９１に該当する個体ＩＤを割り当てるようにしてもよい。各牛９１に該当する個体ＩＤを割り当てる場合は、例えば、カラー画像から画像解析により各牛の個体ＩＤを抽出する。個体ＩＤは、各牛９１に監視カメラによる読み取りが可能な位置且つ解析可能な大きさで刻印などにより設けられている個体識別番号等を利用する。そして、各牛９１の監視データが示す深度画像内の座標とカラー画像内の各個体ＩＤの座標とから、座標が一致する個体ＩＤと監視データとを対応付ける。カラー画像を使用しない場合には、例えば各牛９１に取り付けられた個体ＩＤ別のＩＣタグを、所定位置に固定した読取装置で読み取るなどして、その受信強度などから各ＩＣタグの距離や配置などを特定し、その特定した情報に基づいて個体ＩＤと監視データとを対応付ける。或いは、個体ＩＤを任意に割り当てておき、後に、利用者や管理者が個体ＩＤの対応付けを書き換えるなどしてもよい。ここに示す、各牛９１に該当する個体ＩＤを割り当てる方法は一例であり、その他の方法を用いてもよい。
【００９６】
以上の初期値の設定処理後、各種機能は、次の処理を行う。先ず、読出部３０２が続く１フレームを読み出し（Ｓ１０）、検出部３０３が、そのフレーム画像Ｍｎを対象に牛の輪郭を検出する（Ｓ１１）。検出部３０３は、直前のフレーム画像Ｍｎ−１と比べることにより牛の輪郭を検出する。
【００９７】
続いて、補助部３０４が、各牛の輪郭を対象に、牛９１の個別の輪郭を検出する補助処理を行う（Ｓ１２）。この処理は、ステップＳ５の処理と同様である。
【００９８】
続いて、監視データ生成部３０５が、検出された各牛９１の輪郭から、各牛９１の行動を示す監視データを生成する（Ｓ１３）。この処理は、ステップＳ６の処理と同様である。
【００９９】
続いて、対応付け部３０６が、各牛９１の監視データを追跡情報Ｐ４の各個体ＩＤに時系列順に設定する（Ｓ１４）。
【０１００】
続いて、対応付け部３０６が、追跡情報Ｐ４に対応付けた監視データが所定数に達したかを判定する（Ｓ１５）。
【０１０１】
所定数に達していない場合（Ｓ１５：Ｎｏ判定）、ステップＳ１０から、続く１フレームに対して処理が行われる。
【０１０２】
所定数に達した場合（Ｓ１５：Ｙｅｓ判定）、設定部３０７が、追跡情報Ｐ４の時系列順に並ぶ監視データをテーブル操作部３０１により記録テーブルＴ４に設定する（Ｓ１６）。その後、ステップＳ１０から、続く１フレームに対して処理が行われる。
【０１０３】
図１４は、アラーム基本データの生成処理のフローの一例を示す図である。この処理は、所定のタイミングで開始される。例えば、設定部３０７がテーブル操作部３０１により監視データを記録テーブルＴ４に設定する回数が所定回数に達した場合などに開始される。なお、この処理は、各監視カメラユニットＩＤの個別ＩＤ単位の行われるものとする。
【０１０４】
先ず、アラーム基本データ生成部３０８が記録テーブルＴ４から個別ＩＤの監視データをテーブル操作部３０１により取得し（Ｓ２１）、監視データから当該牛９１の行動情報を生成する（Ｓ２２）。
【０１０５】
続いて、アラーム基本データ生成部３０８は、当該牛９１の行動情報をテーブル操作部３０１によりアラーム基本データ設定テーブルＴ５に設定する（Ｓ２３）。
【０１０６】
なお、行動情報に生成方法については説明済みであるため、ここでの説明を省略する。
【０１０７】
図１５は、閾値の決定処理のフローの一例を示す図である。以下の処理は、各監視カメラユニットＩＤの個別ＩＤ単位に行われるものとする。先ず、閾値決定部３０９が、閾値の更新時間になったかを判定する（Ｓ３１）。更新時間は、例えば１日の終わりの、夜と次の日の朝の切り替わり時刻（一例としてＡＭ４：００）などとする。なお、朝と昼の切り替わり時刻や、昼と夜の切り替わり時刻などとしてもよい。また、各切り替わりの時刻を指定してもよい。
【０１０８】
更新時間になった場合（Ｓ３１：Ｙｅｓ判定）、閾値決定部３０９が、テーブル操作部３０１によりアラーム基本データ設定テーブルＴ５から個別ＩＤの直近数日分の項目別の行動情報を取得する（Ｓ３２）。
【０１０９】
続いて、閾値決定部３０９は、朝と、昼と、夜の期間に分けて、当該個別ＩＤの数日分の行動情報を項目別に移動平均などにより集計し、項目別の集計結果から、当該個別ＩＤの閾値を、行動情報の項目別、期間別（朝の期間、昼の期間、夜の期間）に決定する（Ｓ３３）。
【０１１０】
そして、閾値決定部３０９は、閾値情報Ｐ５の各個別ＩＤの閾値のセットを、決定した値に更新する（Ｓ３４）。なお、閾値の初期値には、所定のデフォルト値が設定されるものとする。
【０１１１】
更新時間になっていない場合には（Ｓ３１：Ｎｏ判定）、更新時間になるまで待機する。
【０１１２】
図１６は、牛９１の異常行動判定処理のフローの一例を示す図である。判定部３１０は、所定の時間間隔（例えば５分置きなど）で次の異常行動判定処理を行う。
【０１１３】
先ず、判定部３１０は、設定情報Ｄから、異常行動を判定する牛房９０の判定項目を取得する（Ｓ４１）。
【０１１４】
続いて、判定部３１０は、取得した判定項目ごとに、閾値情報Ｐ５から、当該牛房９０の牛９１の固体ＩＤに設定されている閾値を取得する（Ｓ４２）。
【０１１５】
続いて、判定部３１０は、テーブル操作部３０１により、アラーム基本データ設定テーブルＴ５の当該判定時を含む期間（朝、昼、または夜）を対象に、アラーム基本データ設定テーブルＴ５における行動情報の項目別の集計値が、閾値情報Ｐ５から取得したそれぞれの項目の閾値を超える、牛９１の個別ＩＤを検索し、閾値を超える牛９１の個別ＩＤとその判定項目とを抽出する（Ｓ４３）。ここで、集計値は、例えば、当該判定時が朝の期間のＡＭ９：００である場合、判定当日の朝の期間（ＡＭ４：００〜ＡＭ９：００）の集計値である。具体的に、テーブル操作部３０１では、各牛９１について、判定項目毎に、行動情報の集計値と、対応する上限値および下限値を比較し、行動情報の集計値が上限値および下限値の範囲外となる異常行動を含むかを判定する。
【０１１６】
続いて、判定部３１０は、抽出結果から、牛９１の異常行動を判定する（Ｓ４４）。
【０１１７】
牛９１の個別ＩＤとその判定項目とが抽出された場合（Ｓ４４：Ｙｅｓ判定）、通知部３１１が、利用者情報登録テーブルＴ１に設定されているメールアドレス等の宛先を取得し、その宛先に異常信号を通知する（Ｓ４５）。この際に、異常行動と判定された牛９１の個別ＩＤや、判定項目が示す仲間外れや、発情や、病気の兆候や、起立不可状態などの異常行動の内容などをその宛先に通知してもよい。また、ベテランの対処方法をデータベース化しておき、異常行動の内容に該当する対処方法をデータベースから抽出して、その内容を通知してもよい。
【０１１８】
牛９１の個別ＩＤとその行動情報の項目名とが抽出されない場合は（Ｓ４４：Ｎｏ判定）、本処理を終了する。
【０１１９】
異常行動を示す牛９１の個別ＩＤの検索は例えば次のように行う。例えば、行動情報の内の座位時間が継続中の個体ＩＤを検索し、その個体ＩＤの近似楕円など、最新の被写体の図形を取得する。そして、その図形の縦と横の比が所定の範囲から外れていたり、輪郭面積が所定の面積よりも大きかったりすると牛９１が横臥状態であると判断する。一例として、図形が近似楕円の場合、長軸と短軸のそれぞれの長さ（長径と短径）の比から、牛９１の横臥を判断する。牛９１は、上方から見た場合、横臥状態になると、長径と短径との長さの比が大きく変化する。この長さの比の変化から牛９１の横臥を判断する。そして、横臥状態が一定時間以上続いた場合、牛９１は、横臥から座位に戻れなくなる起立不可の状態であると判断し、異常行動があるものと判定する。
【０１２０】
また、判定部３１０は、直近の所定期間の行動情報の内の接触回数が多い個体ＩＤを検索し、その個体ＩＤの直近の所定期間の移動距離が他の牛９１と比べて多かったり、エサを食べる回数が少なかったり、他の牛９１よりも立位時間が長かったりした場合に、発情と判断し、異常があるものと判定する。
【０１２１】
また、判定部３１０は、直近の所定期間の行動情報の内の接触回数が極端に少ない個体ＩＤを検索し、その牛９１を仲間外れと判断し、異常があるものと判定する。
【０１２２】
また、判定部３１０は、直近の所定期間の行動情報の内の移動距離が極端に少ない個体ＩＤを検索し、その個体ＩＤの直近の所定期間の水飲みやエサの回数などから病気の兆候を判断し、異常があるものと判定する。
【０１２３】
本実施例では、監視対象の牛を対象に監視データを生成し、その監視データを使用して異常行動を判定したが、当該監視データに、更に環境情報（例えば温度や天候などの情報）を含めてもよい。例えば、監視カメラ１０ａに温度センサを接続し、当該温度センサが検出した牛房内の温度情報をコントローラＰＣを通じてクラウドに出力する。また、天候情報については、例えば天候情報を時系列で提供する天候データベースなどから取得する。牛の行動を示す行動情報に、これらの環境情報を含めて異常行動を判定する。
【０１２４】
以上により、本実施例では、監視の対象となる牛へ直接センサを取り付ける必要がなくなるので、牛への負担を小さくする、或いはなくすことができる。また、牛の様々な情報を含む監視データを随時蓄積して、蓄積した監視データからリアルタイム或いは少ないタイムラグで牛のわずかな行動の変化を発見することができる。このため、牛に異常な行動が見られれば、直ちに、その牛の飼育者の畜産農家へ通知し、その牛の対応を早期に行わせることが可能になる。起立不可状態にある牛であれば、その牛の上体を起こし、病気の兆候が見られる牛であれば、早期に治療することにより、牛の死廃率を低下させることができる。
【０１２５】
また、経験の浅い新規就農者に対しても、牛の異常行動があれば、熟練者と等しく牛の異常を通知するため、牛の行動の変化に気が付かずに見過ごすことが減り、牛の死廃率を低下させることができる。また、設定により熟練者の対象方法をメールで通知することも可能であるため、熟練者と同様の対処を行うことが可能になる。
【０１２６】
本実施例では、主に検出部３０３が「第１の検出手段」に該当する。主に補助部３０４が「第２の検出手段」に該当する。主に監視データ生成部３０５や、対応付け部３０６や、設定部３０７や、アラーム基本データ生成部３０８などが「生成手段」に該当する。主に閾値決定部３０９や判定部３１０などが「判定手段」に該当する。主に通知部３１１が「通知手段」に該当する。なお、各手段と各機能との対応関係はこれに限らない。情報処理システムの構成に応じて適宜組み合わせを変えたり、一部の機能を他の機能に置き換えたり、一部の機能を削除したり、他の機能を追加したりしてもよい。
【０１２７】
本実施例では、ＣＰＵがＨＤＤのプログラムをＲＡＭにロードして機能を実現する例について示したが、当該機能の一部または全てをＡＳＩＣ（Application  Specific  Integrated  Circuit）などのハードウエアで構成してもよい。
【０１２８】
（変形例）
また、当該機能の一部または全てを「機械学習手段」であるＡＩ（人工知能）で行えるように変形してもよい。例えば、アラーム基本データ生成部３０８や、閾値決定部３０９や、判定部３１０などの処理をＡＩで行う。
【０１２９】
アラーム基本データ生成部３０８については、アラーム基本データ生成部３０８が取得した監視データから行動情報を生成する処理をＡＩで行う。例えばＡＩに入力値として監視データを与え、ＡＩで機械学習を繰り返す。ＡＩからは、異常行動についての判定の誤りが最小限に最適化された方法で算出された行動情報の出力値を得る。
【０１３０】
閾値決定部３０９については、閾値の決定処理をＡＩで行う。例えばＡＩに入力値として行動情報を与え、ＡＩで機械学習を繰り返す。ＡＩからは、異常行動についての判定の誤りが最小限に最適化された方法で算出された閾値の出力値を得る。
【０１３１】
判定部３１０については、異常行動の判定処理においてＡＩを利用する。ＡＩに入力値として判定時の期間内の行動情報などを与え、機械学習を繰り返すことにより、異常行動の判定項目の結果等の誤りが最小限に最適化された算出方法で、判定項目の結果を示す出力値を得る。
【０１３２】
なお、アラーム基本データ生成部３０８、閾値決定部３０９、および判定部３１０の内の何れか２以上を組み合わせた一連の処理をＡＩで行なってもよい。
【符号の説明】
【０１３３】
１      情報処理システム
１０    監視カメラユニット
１０ａ  監視カメラ
１０ｂ  コントロールＰＣ
２０    クラウド
２１    ストレージ
３０    分析サーバ装置
４０    管理ＰＣ
５０    利用者端末
６０    ネットワーク
７０    異常信号
８０    管理棟
９０    牛房
９０ｂ  育成エリア
【図１】
2019024482.tif 000003
【図２】
2019024482.tif 000004
【図３】
2019024482.tif 000005
【図４】
2019024482.tif 000006
【図５】
2019024482.tif 000007
【図６】
2019024482.tif 000008
【図７】
2019024482.tif 000009
【図８】
2019024482.tif 000010
【図９】
2019024482.tif 000011
【図１０】
2019024482.tif 000012
【図１１】
2019024482.tif 000013
【図１２】
2019024482.tif 000014
【図１３】
2019024482.tif 000015
【図１４】
2019024482.tif 000016
【図１５】
2019024482.tif 000017
【図１６】
2019024482.tif 000018