(57)【要約】      （修正有）【課題】飼養頭数が数百頭から数千頭にも及ぶ大規模な酪農場等においても、家畜の異常を特定することが出来る特定装置、特定方法及びプログラムの提供。【解決手段】家畜の異常を特定する特定装置１０であって、前記家畜に装着された加速度センサ及び気圧センサがそれぞれ測定した加速度データ及び気圧データを記憶する記憶手段と、所定の時間の間における１以上の加速度データ及び１以上の気圧データを前記記憶手段から取得する取得手段と、前記１以上の気圧データに基づいて、前記家畜の姿勢を推定する推定手段と、推定された前記家畜の姿勢に応じて、前記１以上の加速度データに基づいて、所定の第１のスコアを算出する算出手段と、前記第１のスコアが、予め設定された所定の閾値を超えている場合、前記家畜に異常が発生したことを特定する特定手段と、を有することを特徴とする。【選択図】図１
2020198828.tif 000002
【特許請求の範囲】
【請求項１】
家畜の異常を特定する特定装置であって、
前記家畜に装着された加速度センサ及び気圧センサがそれぞれ測定した加速度データ及び気圧データを記憶する記憶手段と、
所定の時間の間における１以上の加速度データ及び１以上の気圧データを前記記憶手段から取得する取得手段と、
前記１以上の気圧データに基づいて、前記家畜の姿勢を推定する推定手段と、
推定された前記家畜の姿勢に応じて、前記１以上の加速度データに基づいて、所定の第１のスコアを算出する算出手段と、
前記第１のスコアが、予め設定された所定の閾値を超えている場合、前記家畜に異常が発生したことを特定する特定手段と、
を有することを特徴とする特定装置。
【請求項２】
前記推定手段は、
前記気圧データと、基準となる気圧センサが測定した基準気圧データとの差分を示す差分気圧データに基づいて、前記家畜の姿勢を推定する、ことを特徴とする請求項１に記載の特定装置。
【請求項３】
前記推定手段は、
前記差分気圧データと所定の閾値とを比較することで前記家畜の姿勢を推定する、ことを特徴とする請求項２に記載の特定装置。
【請求項４】
前記推定手段は、
前記差分気圧データの所定の期間毎の中央値に基づいて、前記期間毎の中央値の相対的な変化により前記家畜の姿勢を推定する、ことを特徴とする請求項２に記載の特定装置。
【請求項５】
前記推定手段は、
前記家畜の姿勢として、前記家畜が立っている状態であることを示す起立と、前記家畜が横たわっている状態であることを示す横臥とを少なくとも推定する、ことを特徴とする請求項１乃至４の何れか一項に記載の特定装置。
【請求項６】
前記算出手段は、
前記家畜の姿勢が起立と推定された場合、前記第１のスコアを０にリセットした後に、前記所定の時間の間の第２のスコアを算出し、前記第２のスコアを前記第１のスコアに加算することで、前記第１のスコアを算出し、
前記家畜の姿勢が横臥と推定された場合、前記第１のスコアを０にリセットせずに、前記所定の時間の間の第２のスコアを算出し、前記第２のスコアを前記第１のスコアに加算することで、前記第１のスコアを算出する、ことを特徴とする請求項５に記載の特定装置。
【請求項７】
前記推定手段は、
前記横臥として、前記家畜に異常が発生して横たわっている可能性がある状態を示す第１の横臥又は前記第１の横臥以外で前記家畜が横たわっている状態を示す第２の横臥のいずれかを推定し、
前記算出手段は、
前記家畜の姿勢が起立と推定された場合、前記第１のスコアを０にリセットした後に、前記所定の時間の間の第２のスコアを算出し、前記第２のスコアを前記第１のスコアに加算することで、前記第１のスコアを算出し、
前記家畜の姿勢が第１の横臥と推定された場合、前記第１のスコアを０にリセットせずに、前記所定の時間の間の第２のスコアを算出し、前記第２のスコアを前記第１のスコアに加算することで、前記第１のスコアを算出し、
前記家畜の姿勢が第２の横臥と推定された場合、前記第１のスコアのリセットと前記第２のスコアの算出及び加算とを行わずに、前記第１のスコアを算出する、ことを特徴とする請求項５に記載の特定装置。
【請求項８】
前記算出手段は、
前記１以上の加速度データに基づいて、前記家畜が異常行動でない通常の行動を行っているか否かを判定し、
前記家畜が通常の行動を行っていると判定した場合、前記通常の行動に応じて、前記第１のスコアを０にリセットした後に前記第１のスコアを算出する、又は、前記第１のスコアの算出を行わない、ことを特徴とする請求項６又は７に記載の特定装置。
【請求項９】
前記算出手段は、
前記所定の時間の間において前記加速度センサ及び前記気圧センサから受信した前記加速度データ及び前記気圧データのデータ受信数に応じて、算出した前記第１のスコアに対して所定の値を加算する、ことを特徴とする請求項６又は７に記載の特定装置。
【請求項１０】
家畜の異常を特定する特定装置が、
前記家畜に装着された加速度センサ及び気圧センサがそれぞれ測定した加速度データ及び気圧データを記憶手段に記憶させる記憶手順と、
所定の時間の間における１以上の加速度データ及び１以上の気圧データを前記記憶手段から取得する取得手順と、
前記１以上の気圧データに基づいて、前記家畜の姿勢を推定する推定手順と、
推定された前記家畜の姿勢に応じて、前記１以上の加速度データに基づいて、所定の第１のスコアを算出する算出手順と、
前記第１のスコアが、予め設定された所定の閾値を超えている場合、前記家畜に異常が発生したことを特定する特定手順と、
を実行させることを特徴とする特定方法。
【請求項１１】
コンピュータを、請求項１乃至９の何れか一項に記載の特定装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、特定装置、特定方法及びプログラムに関する。
【背景技術】
【０００２】
肥育牛では、肥育後期に起立困難等の異常が発生し易いことが知られている。起立困難を放置すると、窒息等により牛が死亡することがあるため、牛を肥育する肥育農家では、牛舎の見回り等を行って、起立困難等の異常が牛に発生していないかを確認している。
【０００３】
また、繁殖牛でも産前産後に起立困難等の異常が発生し易いことが知られており、繁殖農家は、同様に、牛舎の見回り等を行って、起立困難等の異常が牛に発生していないかを確認している。
【０００４】
更に、鼓脹症等の異常によって牛が起立困難となる場合もある。鼓脹症とは、牛等の反芻動物の家畜に起こり得る病気であり、例えば、青草等の発酵性飼料を過食した際等に発症する場合がある。鼓脹症が発症した場合、牛の腹部が膨脹するため、牛は起立困難となる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】阿部 亮著、「農学基礎セミナー  家畜飼育の基礎」、新版、社団法人  農産漁村文化協会、2008 年 4 月, p.109, p.122-124.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、例えば、飼養頭数が数百頭から数千頭にも及ぶ大規模な酪農場等では、牛舎の見回り等を行って、牛に異常（鼓脹症等を含む起立困難）が発生していないかを確認するのは困難である。
【０００７】
本発明の実施の形態は、上記の点に鑑みてなされたもので、家畜の異常を特定することを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明の実施の形態は、家畜の異常を特定する特定装置であって、前記家畜に装着された加速度センサ及び気圧センサがそれぞれ測定した加速度データ及び気圧データを記憶する記憶手段と、所定の時間の間における１以上の加速度データ及び１以上の気圧データを前記記憶手段から取得する取得手段と、前記１以上の気圧データに基づいて、前記家畜の姿勢を推定する推定手段と、推定された前記家畜の姿勢に応じて、前記１以上の加速度データに基づいて、所定の第１のスコアを算出する算出手段と、前記第１のスコアが、予め設定された所定の閾値を超えている場合、前記家畜に異常が発生したことを特定する特定手段と、を有することを特徴とする。
【発明の効果】
【０００９】
家畜の異常を特定することができる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係る特定システムの全体構成の一例を示す図である。
【図２】測定データ記憶部に記憶されている測定データの一例を示す図である。
【図３】本実施形態に係る特定処理部の機能構成の一例を示す図である。
【図４】実施例１における異常特定処理の一例を示すフローチャートである。
【図５】実施例１における姿勢推定処理の一例を示すフローチャートである。
【図６】牛の姿勢推定の一例を説明するための図である。
【図７】実施例１におけるスコア加算処理の一例を示すフローチャートである。
【図８】スコア算出の一例を説明するための図である。
【図９】実施例１の効果を説明するための図である。
【図１０】実施例２における日次処理の一例を示すフローチャートである。
【図１１】実施例２における異常特定処理の一例を示すフローチャートである。
【図１２】実施例２におけるスコア加算処理の一例を示すフローチャートである。
【図１３】実施例２の効果を説明するための図である。
【図１４】実施例３における異常特定処理の一例を示すフローチャートである。
【図１５】実施例３における姿勢推定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態（以降、「本実施形態」とも表す。）について、図面を参照しながら説明する。本実施形態では、家畜の一例として、牛の異常を特定する場合について説明する。ただし、家畜は牛に限られない。
【００１２】
＜全体構成＞
まず、牛の起立困難等の異常を特定する特定システム１の全体構成について、図１を参照しながら説明する。図１は、本実施形態に係る特定システム１の全体構成の一例を示す図である。
【００１３】
図１に示すように、本実施形態に係る特定システム１には、牛の異常を特定する特定装置１０と、牛に装着された１以上のタグ２０と、基準となる気圧を測定する基準気圧センサ３０とが含まれる。なお、タグ２０は、ベルト等によって牛の首部分に固定して装着されることが好ましい。
【００１４】
タグ２０は、牛に装着される機器である。１頭の牛に対して１つのタグ２０が装着されている。タグ２０には、当該タグ２０を装着している牛の加速度（ｘ軸、ｙ軸及びｚ軸の３軸の加速度）を測定する加速度センサと、気圧を測定する気圧センサとが含まれる。ここで、ｘ軸、ｙ軸及びｚ軸で構成される座標系はタグ２０に固定されており、タグ２０は、例えば、牛が起立し、かつ、首が曲がっていない（真っ直ぐの）状態で、当該牛の進行方向に対して右方向をｘ軸の正の方向、当該進行方向をｙ軸の正の方向、重力方向をｚ軸の正の方向となるように装着される。ただし、牛に対する各軸（ｘ軸、ｙ軸及びｚ軸）の方向はこれに限られず、座標系における各軸の相対的な位置関係は保ったままで各軸が任意の方向となるようにタグ２０を牛に装着することが可能である。
【００１５】
タグ２０は、所定の時間毎（例えば２秒毎）に、加速度センサにより測定した加速度センサ値と、気圧センサにより測定された気圧センサ値とが含まれる測定データを特定装置１０に送信する。特定装置１０に送信された測定データは、後述する測定データ記憶部２００に蓄積（記憶）される。
【００１６】
基準気圧センサ３０は、牛舎内の所定の位置（例えば、牛舎内の地面上等）に設置され、基準となる気圧を測定する。基準気圧センサ３０は、所定の時間毎（例えば２秒毎）に、測定した気圧を示す基準気圧センサ値が含まれる基準気圧データを特定装置１０に送信する。特定装置１０に送信された基準気圧データは、後述する基準気圧データ記憶部３００に蓄積（記憶）される。
【００１７】
特定装置１０は、牛の異常（例えば、肥育後期に発生する起立困難、産前産後に発生する起立困難、鼓脹症による起立困難等）を特定する１以上のコンピュータである。特定装置１０は、特定処理部１００と、測定データ記憶部２００と、基準気圧データ記憶部３００とを有する。
【００１８】
特定処理部１００は、測定データ記憶部２００に記憶されている測定データと、基準気圧データ記憶部３００に記憶されている基準気圧データとを用いて、牛の異常を特定する。特定処理部１００は、特定装置１０にインストールされた１以上のプログラムが、ＣＰＵ（Central Processing Unit）等のプロセッサに実行させる処理により実現される。
【００１９】
測定データ記憶部２００は、タグ２０から受信した測定データを記憶する。測定データ記憶部２００は、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の記憶装置を用いて実現可能である。測定データ記憶部２００には、所定の時間毎（例えば２秒毎）に、複数の測定データが記憶されている。なお、タグ２０から受信した測定データは、例えば、特定処理部１００により、測定データ記憶部２００に記憶（蓄積）させればよい。
【００２０】
基準気圧データ記憶部３００は、基準気圧センサ３０から受信した基準気圧データを記憶する。基準気圧データ記憶部３００は、例えばＨＤＤやＳＳＤ等の記憶装置を用いて実現可能である。基準気圧データ記憶部３００には、所定の時間毎（例えば２秒毎）に、複数の基準気圧データが記憶されている。なお、基準気圧センサ３０から受信した基準気圧データは、例えば、特定処理部１００により、基準気圧データ記憶部３００に記憶（蓄積）させればよい。
【００２１】
なお、図１に示す特定システム１の構成は一例であって、他の構成であってもよい。例えば、特定装置１０は、複数台のコンピュータで構成されていてもよい。また、例えば、特定処理部１００が有する機能の一部を、特定装置１０と通信ネットワークを介して接続される装置（例えばクラウドサーバ等）が有していてもよい。また、例えば、測定データ記憶部２００及び基準気圧データ記憶部３００の少なくとも一方を、特定装置１０と通信ネットワークを介して接続される記憶装置（例えば、ＤＢサーバ等）が有していてもよい。
【００２２】
＜測定データ記憶部２００に記憶されている測定データ＞
次に、本実施形態に係る測定データ記憶部２００に記憶されている測定データについて、図２を参照しながら説明する。図２は、測定データ記憶部２００に記憶されている測定データの一例を示す図である。
【００２３】
図２に示すように、測定データ記憶部２００には、タグを識別する情報であるタグＩＤ毎に、１以上の測定データが記憶されている。なお、１頭の牛に対して１つのタグ２０が装着されていることから、タグＩＤは、牛を識別する情報（例えば、牛の個体識別情報等）であってもよい。
【００２４】
各測定データには、日時と、加速度センサ値と、気圧センサ値とが含まれる。日時は、例えば、タグ２０が測定データを送信した日時である。なお、日時は、特定装置１０が測定データを受信した日時であってもよい。
【００２５】
加速度センサ値は、タグ２０に含まれる加速度センサにより測定された加速度の値である。加速度センサ値には、ｘ軸方向の加速度成分を示すｘ成分と、ｙ軸方向の加速度成分を示すｙ成分と、ｚ軸方向の加速度成分を示すｚ成分とが含まれる。例えば、日時「ｔ１」の測定データには、加速度センサ値のｘ成分「ｘ１」と、加速度センサ値のｙ成分「ｙ１」と、加速度センサ値のｚ成分「ｚ１」とが含まれる。同様に、例えば、日時「ｔ２」の測定データには、加速度センサ値のｘ成分「ｘ２」と、加速度センサ値のｙ成分「ｙ２」と、加速度センサ値のｚ成分「ｚ２」とが含まれる。なお、以降では、加速度センサ値のｘ成分を「ｘ成分加速度センサ値」、加速度センサ値のｙ成分を「ｙ成分加速度センサ値」、加速度センサ値のｚ成分を「ｚ成分加速度センサ値」とも表す。
【００２６】
また、気圧センサ値は、タグ２０に含まれる気圧センサにより測定された気圧の値である。例えば、日時「ｔ１」の測定データには、気圧センサ値「ｐ１」が含まれる。同様に、例えば、日時「ｔ２」の測定データには、気圧センサ値「ｐ２」が含まれる。
【００２７】
なお、例えば、各タグ２０が２秒毎に測定データを特定装置１０に送信する場合、Δｔ＝ｔｉ＋１−ｔｉ（ｉは１以上の整数）とすれば、Δｔ＝２［秒］である。
【００２８】
このように、測定データ記憶部２００に記憶されている測定データには、タグＩＤ毎に、日時と、加速度センサ値と、気圧センサ値とが含まれている。
【００２９】
＜特定処理部１００の機能構成＞
次に、本実施形態に係る特定処理部１００の機能構成について、図３を参照しながら説明する。図３は、本実施形態に係る特定処理部１００の機能構成の一例を示す図である。
【００３０】
図３に示すように、本実施形態に係る特定処理部１００には、姿勢推定部１０１と、スコア算出部１０２と、異常特定部１０３とが含まれる。
【００３１】
姿勢推定部１０１は、測定データに含まれる気圧センサ値と、基準気圧データに含まれる基準気圧センサ値とを用いて、牛の姿勢を推定する。ここで、牛の姿勢としては、例えば、牛が立っている状態の姿勢を示す「起立」、牛が横たわっている状態の姿勢を示す「横臥」等がある。
【００３２】
スコア算出部１０２は、姿勢推定部１０１により推定された姿勢に応じて、測定データに含まれる加速度センサ値を用いて、牛の異常を特定するための所定のスコアを算出する。
【００３３】
異常特定部１０３は、スコア算出部１０２により算出されたスコアを用いて、牛の異常を特定する。異常特定部１０３は、例えば、スコア算出部１０２により算出されたスコアが所定の閾値を超えている場合に、牛に異常が発生したと特定する。
【００３４】
［実施例１］
以降では、牛の異常の特定する処理（異常特定処理）の実施例１について、図４を参照しながら説明する。図４は、実施例１における異常特定処理の一例を示すフローチャートである。図４に示す異常特定処理は、所定の時間毎（例えば１０分毎）に繰り返し実行される。なお、以降では、或る牛（つまり、或るタグＩＤのタグ２０が装着された牛）の異常を特定する場合について説明する。
【００３５】
まず、姿勢推定部１０１は、所定の時間の間（例えば、直近の過去１０分間）の牛の姿勢を推定する（ステップＳ１０１）。ここで、本ステップにおける牛の姿勢を推定する処理（姿勢推定処理）について、図５を参照しながら説明する。図５は、実施例１における姿勢推定処理の一例を示すフローチャートである。
【００３６】
姿勢推定部１０１は、該当の時間の間（例えば、直近の過去１０分間）の気圧センサ値及び基準気圧センサ値を取得する（ステップＳ２０１）。すなわち、姿勢推定部１０１は、当該時間の間の測定データを測定データ記憶部２００から取得した上で、これらの測定データから気圧センサ値を取得する。同様に、姿勢推定部１０１は、当該時間の間の基準気圧データを基準気圧データ記憶部３００から取得した上で、これらの基準気圧データから基準気圧センサ値を取得する。
【００３７】
次に、姿勢推定部１０１は、上記のステップＳ２０１で取得された気圧センサ値及び基準気圧センサ値を用いて、該当の時間の間における差分気圧センサ値を算出する（ステップＳ２０２）。差分気圧センサ値とは、気圧センサ値と、この気圧センサ値と同一日時（又は当該気圧センサ値の日時に対応する日時）の基準気圧センサ値との差（つまり、当該気圧センサ値から当該基準気圧センサ値を減算した値）である。これにより、例えば、２秒毎の測定データ及び基準気圧データが測定データ記憶部２００及び基準気圧データ記憶部３００にそれぞれ記憶されており、データの欠損が無い場合、直近の過去１０分間の気圧センサ値及び基準気圧センサ値から３００個の差分気圧センサ値が得られる。
【００３８】
最後に、姿勢推定部１０１は、上記のステップＳ２０２で算出された差分気圧センサ値から牛の姿勢を推定する（ステップＳ２０３）。ここで、牛の姿勢を推定する場合の一例について、図６を参照しながら説明する。図６は、牛の姿勢推定の一例を説明するための図である。
【００３９】
タグ２０は牛の首の位置に装着されているため、差分気圧センサ値が相対的に高い場合は牛の首が低い位置にあることを示している。一方で、差分気圧センサ値が相対的に低い場合は牛の首が高い位置にあることを示している。このため、図６に示すように、差分気圧センサ値が、所定の閾値よりも高い場合には牛の姿勢を「横臥」と推定し、所定の閾値よりも低い場合には牛の姿勢を「起立」と推定することができる。
【００４０】
したがって、該当の時間の間（つまり、例えば、直近の過去１０分間）における牛の姿勢は、例えば、当該時間の間における差分気圧センサ値の平均値等の指標値を用いて、この指標値が所定の閾値よりも高い場合には当該時間の間における牛の姿勢を「横臥」、所定の閾値よりも低い場合には当該時間の間における牛の姿勢を「起立」と推定することができる。又は、例えば、当該時間の間における差分気圧センサ値のうち、所定の閾値よりも高い差分気圧センサ値の個数を用いて、この個数が別の所定の閾値以上である場合には当該時間の間における牛の姿勢を「横臥」、当該別の所定の閾値未満である場合には当該時間の間における牛の姿勢を「起立」と推定してもよい。
【００４１】
図４に戻る。ステップＳ１０１に続いて、スコア算出部１０２は、上記のステップＳ１０１で推定された牛の姿勢が「横臥」又は「起立」のいずれであるかを判定する（ステップＳ１０２）。
【００４２】
上記のステップＳ１０２で牛の姿勢が「起立」であると判定された場合、スコア算出部１０２は、所定のスコアＳを０にリセットする（ステップＳ１０３）。一方で、上記のステップＳ１０２で牛の姿勢が「横臥」であると判定された場合、特定処理部１００は、スコアＳを０にリセットせずに、ステップＳ１０３に進む。なお、スコアＳは例えば補助記憶装置等の記憶領域に記憶されており、その値が保持されている。
【００４３】
次に、異常特定部１０３は、該当の時間の間（つまり、例えば、直近の過去１０分間）の加速度センサ値を取得する（ステップＳ１０４）。すなわち、異常特定部１０３は、当該時間の測定データを測定データ記憶部２００から取得した上で、これらの測定データから加速度センサ値を取得する。これにより、例えば、２秒毎の測定データが測定データ記憶部２００に記憶されており、データの欠損が無い場合、直近の過去１０分間の測定データから３００個の加速度センサ値が得られる。なお、本ステップでは、上記のステップＳ２０１で取得された測定データから加速度センサ値が取得されてもよい。
【００４４】
次に、異常特定部１０３は、上記のステップＳ１０４で取得された加速度センサ値のＬ２ノルムを算出する（ステップＳ１０５）。なお、Ｌ２ノルムは、ｘ成分加速度センサ値の２乗と、ｙ成分加速度センサ値の２乗と、ｚ成分加速度センサ値の２乗との和の平方根である。
【００４５】
次に、異常特定部１０３は、上記のステップＳ１０５で算出されたＬ２ノルムについて、直前のＬ２ノルムとの差分を算出する（ステップＳ１０６）。例えば、日時ｔ１，ｔ２，・・・，ｔＩ（Ｉは、上記のステップＳ１０４で取得された加速度センサ値のデータ数）の加速度センサ値の各々から算出されたＬ２ノルムをＬ１，Ｌ２，・・・，ＬＩとすれば、ΔＬｉ＝Ｌｉ＋１−Ｌｉ（ただし、ｉは１≦ｉ≦Ｉ−１を満たす整数）を算出する。このΔＬｉを「差分Ｌ２ノルム」とも表す。なお、上記のステップＳ１０４で取得された加速度センサ値にデータ欠損が無い場合、Ｉ＝３００である。
【００４６】
次に、異常特定部１０３は、差分Ｌ２ノルムΔＬｉのうち、ΔＬｉ＞ａ１となるデータ数Ｄを算出する（ステップＳ１０７）。ここで、ａ１は予め設定されたパラメータであり、０以上の任意の値が設定される。一例として、ａ１＝５０等とすることが考えられる。
【００４７】
次に、異常特定部１０３は、差分Ｌ２ノルムΔＬｉのデータ数Ｉ−１がＩ−１＞ａ２で、かつ、Ｄ≦ａ３であるか否かを判定する（ステップＳ１０８）。ここで、ａ２及びａ３は予め設定されたパラメータであり、０以上の任意の値が設定される。一例として、ａ２＝１００及びａ３＝１０等とすることが考えられる。
【００４８】
上記のステップＳ１０８でＩ−１＞ａ２、かつ、Ｄ≦ａ３であると判定されなかった場合、特定処理部１００は、異常特定処理を終了する。なお、この場合、当該時間の間（つまり、例えば、直近の過去１０分間）は、後述するスコアＳの加算処理は実行されない。
【００４９】
一方で、上記のステップＳ１０８でＩ−１＞ａ２、かつ、Ｄ≦ａ３であると判定された場合、異常特定部１０３は、上記のステップＳ１０５で算出されたＬ２ノルムＬｉ（１≦ｉ≦Ｉ）の平均値μ１と最小値ｍｉｎとを算出する（ステップＳ１０９）。
【００５０】
次に、異常特定部１０３は、ａ４＜μ１＜ａ５、かつ、ａ４＜ｍｉｎ＜ａ５であるか否かを判定する（ステップＳ１１０）。ここで、ａ４及びａ５は予め設定されたパラメータであり、０以上の任意の値が設定される。一例として、ａ４＝７及びａ５＝１３等とすることが考えられる。
【００５１】
上記のステップＳ１１０でａ４＜μ１＜ａ５、かつ、ａ４＜ｍｉｎ＜ａ５であると判定された場合、スコア算出部１０２は、スコアＳを０にリセットする（ステップＳ１１１）。このように、Ｌ２ノルムの平均値μ１及び最小値ｍｉｎが或る範囲（ａ４より大きく、かつ、ａ５より小さい範囲）内に含まれる場合、スコアＳを０にリセットする。
【００５２】
一方で、上記のステップＳ１１０でａ４＜μ１＜ａ５、かつ、ａ４＜ｍｉｎ＜ａ５であると判定されなかった場合、スコア算出部１０２は、スコアＳの加算を行う（ステップＳ１１２）。ここで、本ステップにおけるスコアＳの加算を行う処理（スコア加算処理）について、図７を参照しながら説明する。図７は、実施例１におけるスコア加算処理の一例を示すフローチャートである。
【００５３】
スコア算出部１０２は、該当の時間の間（つまり、例えば、直近の過去１０分間）の加速度センサ値に対して所定の前処理を行う（ステップＳ３０１）。前処理としては、例えば、欠損補完（リサンプリング）処理やノイズ除去処理等が挙げられる。なお、欠損補完処理とは、データ（加速度センサ値）の精度を上げるため、データが取得できなかった場合の欠損を補完する処理である。また、ノイズ除去処理とは、牛の瞬間的な動作（例えば、瞬間的に身体を震わせる動作や瞬間的に大きく身体をびくつかせる動作等）を示すデータを除去する処理である。
【００５４】
次に、スコア算出部１０２は、上記のステップＳ３０１での前処理後の加速度センサ値のＬ２ノルムを算出する（ステップＳ３０２）。
【００５５】
なお、上記のステップＳ３０１の前処理は必ずしも行われなくてもよい。この場合、上記のステップＳ３０２では、上記のステップＳ１０５で算出されたＬ２ノルムが取得されてもよい。
【００５６】
又は、例えば、上記のステップＳ３０１の前処理を、上記のステップＳ１０５の前に行った上で、上記のステップＳ１０５では、前処理後の加速度センサ値からＬ２ノルムを算出してもよい。この場合、上記ステップＳ３０１の前処理は行わずに、上記のステップＳ３０２では、上記のステップＳ１０５で算出されたＬ２ノルムを取得すればよい。
【００５７】
次に、スコア算出部１０２は、所定の時間（例えば１分）単位で、Ｌ２ノルムの標準偏差を算出する（ステップＳ３０３）。例えば、１分単位でＬ２ノルムの標準偏差を算出する場合、スコア算出部１０２は、１分間に含まれる３０個のＬ２ノルムから１つの標準偏差が算出されるため、過去１０分間では合計１０個の標準偏差が得られる。なお、本ステップで算出された各標準偏差は、例えば補助記憶装置等の記憶領域に記憶される。
【００５８】
次に、スコア算出部１０２は、上記のステップＳ３０３で算出された標準偏差を用いて、該当の時間の間（例えば、直近の過去１０分間）のスコアｓを算出する（ステップＳ３０４）。スコアｓとは、当該時間の間に、標準偏差が所定の上限値を超えた後に所定の下限値を下回った回数と、標準偏差が所定の下限値を下回った後に所定の上限値を超えた回数との合計のことである。これらの上限値及び下限値は予め設定されたパラメータである。
【００５９】
なお、上限値及び下限値は、例えば、経験則に基づいて決定されるが、下限値としては牛が横臥している状態の間における加速度センサ値から算出される標準偏差よりも高い値とすることが好ましい。また、上限値としては牛が採食している状態（餌を食べている状態）の間における加速度センサ値から算出される標準偏差と同等又は同等以上の値とすることが好ましい。上限値は、例えば、牛が採食している状態（又は、採食時と同程度の動きをしている状態）の間における加速度センサ値を正解データとして、機械学習の手法によって学習することで決定された標準偏差が設定されてもよい。
【００６０】
また、上限値及び下限値は、牛毎に設定されてもよいし、全ての牛に対して共通に設定されてもよい。牛毎に設定することで、例えば、牛毎の行動の特徴を考慮した上限値及び下限値を設定することが可能となる。牛毎に設定する場合は、更に、牛の過去の動作データに基づいて上限値及び下限値が決定されてもよい。例えば、統計的に動きが多いと判断される牛には高めの上限値を設定する等である。言い換えれば、牛毎の特性に応じて、上限値及び下限値が設定されてもよい。
【００６１】
ここで、一例として、６：００から６：１０までの１０分間のスコアｓを算出する場合について、図８を参照しながら説明する。図８は、スコア算出の一例を説明するための図である。
【００６２】
図８に示すように、６：００から６：１０までの１０分間において、標準偏差が所定の上限値を超えた後に所定の下限値を下回った回数は２回（Ｑ１及びＱ３）であり、標準偏差が所定の下限値を下回った後に所定の上限値を超えた回数は１回（Ｑ２）である。このため、この１０分間のスコアｓは、ｓ＝３となる。
【００６３】
次に、スコア算出部１０２は、上記のステップＳ３０４で算出されたスコアｓをスコアＳに加算する（ステップＳ３０５）。これにより、当該時間の間（つまり、例えば、直近の過去１０分間）のスコアＳが得られる。
【００６４】
図４に戻る。ステップＳ１１２に続いて、異常特定部１０３は、上記のステップＳ１１２のスコア加算処理で得られたスコアＳ（つまり、当該時間の間のスコアＳ）が、Ｓ＞ｔｈであるか否かを判定する（ステップＳ１１３）。ここで、ｔｈは予め設定された閾値（パラメータ）である。一例として、閾値ｔｈは、１５〜３５程度に設定することが考えられ、特に２５程度にすることが好ましい。なお、特定対象とする異常の種別に応じて、閾値ｔｈの値を異ならせてもよい。例えば、或る病気に罹患した牛で上限値を超えたり下限値を下回ったりする動作が継続的に発生するような場合には、閾値ｔｈの値を高めに設定する。一方で、別の或る病気に罹患した牛では突発的に大きな動作が発生するような場合、閾値ｔｈの値を低めに設定する等である。
【００６５】
上記のステップＳ１１３でＳ＞ｔｈであると判定されなかった場合、特定処理部１００は、異常特定処理を終了する。なお、この場合は該当の時間の間で牛に異常が特定されなかった場合である。
【００６６】
一方で、上記のステップＳ１１３でＳ＞ｔｈであると判定された場合、異常特定部１０３は、牛に異常が発生したと特定する（ステップＳ１１４）。これにより、牛に発生した異常（例えば、肥育後期に発生する起立困難、産前産後に発生する起立困難、鼓脹症による起立困難等）を特定することができる。なお、この場合、特定処理部１００は、例えば、牛に異常が発生したことをアラートとして所定の端末（例えば、酪農家のスマートフォン等）に通知してもよい。
【００６７】
＜実施例１の効果＞
ここで、実施例１の効果について説明する。実施例１では、加速度センサ値から牛が通常の行動（つまり、異常と特定される行動以外の行動）を行っていると判定された場合には、スコアＳを加算しないか（図４のステップＳ１０８でＹＥＳ）又は０にリセットする（図４のステップＳ１１０でＹＥＳ）。
【００６８】
より具体的には、図９に示すように、動きが少ない時間帯ではスコアＳを加算しないようにする（図４のステップＳ１０８でＹＥＳ）と共に、反芻のような落ち着いた動きをしている時間帯ではスコアＳを０にリセットする（図４のステップＳ１１０でＹＥＳ）。
【００６９】
これにより、例えば、牛が横臥状態で通常の行動を行っているが、時折強い動きがあり徐々にスコアが上がってしまうことで異常と誤って特定されてしまう事態を防止することができる。なお、横臥状態で時折強い動きがある場合とは、例えば、横臥状態で首を振ったり、他の牛にぶつかられたりする場合等が挙げられる。
【００７０】
［実施例２］
上述したように、タグ２０は牛の首部分に装着されているが、例えば、横臥中や起立困難時等にタグ２０が牛の下敷きになってしまう場合も有り得る。このような場合、特定装置１０は当該タグ２０から測定データを十分に受信できず、例えば、牛に異常が発生したにも関わらずスコアＳが閾値ｔｈを超えないことがある。そこで、実施例２として、タグ２０からのデータ受信数が少ない場合にはスコアＳに所定の値を上乗せすることで、牛の異常を特定可能とする場合について説明する。
【００７１】
まず、実施例２では、特定装置１０は、データ受信数の平均値を算出する処理を日次で実行する。この処理（日次処理）について、図１０を参照しながら説明する。図１０は、実施例２における日次処理の一例を示すフローチャートである。なお、データ受信数の平均値を日次で算出することは一例であって、必ずしも日次に限られず、例えば、１２時間毎であってもよいし、２日に１回や週次等であってもよい。
【００７２】
異常特定部１０３は、前日の２４時間分の所定の時間毎（例えば、１０分毎）における測定データのデータ受信数を取得する（ステップＳ４０１）。なお、これらのデータ受信数は、後述するように、補助記憶装置等の記憶領域に記憶されている。
【００７３】
次に、異常特定部１０３は、上記のステップＳ４０１で取得されたデータ受信数（つまり、２４時間の間における１０分毎のデータ受信数）のうちの下位ａ６％を削除する（ステップＳ４０２）。ここで、ａ６は予め設定されたパラメータであり、０以上１００未満の任意の値が設定される。一例として、ａ６＝５等とすることが考えられる。ａ６＝５とした場合、例えば、２４時間の間における１０分毎のデータ受信数（つまり、６×２４＝１４４個のデータ受信数）のうち、その値が小さい下位５％のデータ受信数が削除される。これは、前日のデータ受信数のうち、外れ値（この例では下位５％のデータ受信数）を削除することを意味する。
【００７４】
次に、異常特定部１０３は、上記のステップＳ４０２での削除後のデータ受信数の平均値μ２を算出する（ステップＳ４０３）。なお、この平均値μ２は、例えば、補助記憶装置等の記憶領域に記憶される。
【００７５】
以降では、実施例２における異常特定処理について、図１１を参照しながら説明する。図１１は、実施例２における異常特定処理の一例を示すフローチャートである。図１１に示す異常特定処理は、所定の時間毎（例えば１０分毎）に繰り返し実行される。なお、以降では、或る牛（つまり、或るタグＩＤのタグ２０が装着された牛）の異常を特定する場合について説明する。
【００７６】
まず、姿勢推定部１０１は、図４のステップＳ１０１と同様に、所定の時間の間（例えば、直近の過去１０分間）の牛の姿勢を推定する（ステップＳ５０１）。なお、本ステップにおける姿勢推定処理については、図５と同様であるため、その説明を省略する。
【００７７】
続くステップＳ５０２〜ステップＳ５０５は、図４のステップＳ１０２〜ステップＳ１０５とそれぞれ同様であるため、その説明を省略する。
【００７８】
ステップＳ５０５に続いて、異常特定部１０３は、当該時間の間における加速度センサ値のデータ受信数Ｉと、ステップＳ５０５で算出されたＬ２ノルムの平均値μ１と、ステップＳ５０５で算出されたＬ２ノルムの最大値ｍａｘと当該平均値μ１との差分絶対値ｒとを算出する（ステップＳ５０６）。なお、データ受信数Ｉは、図４のステップＳ１０６で説明したＩと同様である。
【００７９】
次に、異常特定部１０３は、前日のデータ受信数の平均値μ２を取得する（ステップＳ５０７）。この平均値μ２は、図１０に示す日次処理のステップＳ４０２で算出されたものである。
【００８０】
次に、異常特定部１０３は、μ２＜ａ７であるか否かを判定する（ステップＳ５０８）。ここで、ａ７は予め設定されたパラメータであり、０以上の任意の値が設定される。一例として、ａ７＝２００等とすることが考えられる。なお、μ２＜ａ７である場合とは、前日のデータ受信数の平均値μ２がａ７未満であり、例えば、日常的にデータ受信数が少ないことを意味する。一方で、μ２＜ａ７でない場合とは、前日のデータ受信数の平均値μ２がａ７以上であり、例えば、日常的にデータ受信数が或る程度得られている（言い換えれば、日常的にデータ欠損は少ない）ことを意味する。
【００８１】
上記のステップＳ５０８でμ２＜ａ７であると判定されなかった場合、異常特定部１０３は、Ｉ≧ａ８又はｒ≦ａ９であるか否かを判定する（ステップＳ５０９）。ここで、ａ８及びａ９は予め設定されたパラメータであり、０以上の任意の値が設定される。一例として、ａ８＝ａ７（＝２００）及びａ９＝１２０等とすることが考えられる。なお、Ｉ≧ａ８である場合とは、当該時間の間（例えば、直近の過去１０分間）のデータ受信数Ｉが十分であり、データ欠損が少ないことを意味する。また、ｒ≦ａ９である場合とは、当該時間の間におけるＬ２ノルムの振れ幅が少なく、例えば、牛が通常の行動を行っていると考えられることを意味する。
【００８２】
上記のステップＳ５０９でＩ≧ａ８又はｒ≦ａ９であると判定されなかった場合、異常特定部１０３は、Ｉ／μ２≧ａ１０であるか否かを判定する（ステップＳ５１０）。ここで、ａ１０は予め設定されたパラメータであり、０以上の任意の値が設定される。一例として、ａ１０＝０．２５等とすることが考えられる。なお、Ｉ／μ２≧ａ１０である場合とは、当該時間の間（つまり、例えば、直近の過去１０分間）のデータ受信数Ｉが、前日のデータ受信数の平均値μ２のａ１０×１００［％］以上である（例えば、Ｉがμ２の２５％以上である）ことを意味する。
【００８３】
上記のステップＳ５１０でＩ／μ２≧ａ１０であると判定されなかった場合、スコア算出部１０２は、当該時間の間（つまり、例えば、直近の過去１０分間）を「スコア上乗せ対象期間」とする（ステップＳ５１１）。なお、このとき、スコア算出部１０２は、例えば、当該時間の間をスコア上乗せ対象期間とするか否かを示すフラグに「１」をセットすればよい。
【００８４】
一方で、上記のステップＳ５０８でμ２＜ａ７であると判定された場合、上記のステップＳ５０９でＩ≧ａ８又はｒ≦ａ９であると判定された場合、又は上記のステップＳ５１０でＩ／μ２≧ａ１０であると判定された場合、スコア算出部１０２は、当該時間の間（つまり、例えば、直近の過去１０分間）を「スコア上乗せ対象期間としない」とする（ステップＳ５１２）。なお、このとき、スコア算出部１０２は、例えば、当該時間の間をスコア上乗せ対象期間とするか否かを示すフラグに「０」をセットすればよい。
【００８５】
ステップＳ５１１又はステップＳ５１２に続いて、スコア算出部１０２は、スコアＳの加算を行う（ステップＳ５１３）。ここで、本ステップにおけるスコアＳの加算を行う処理（スコア加算処理）について、図１２を参照しながら説明する。図１２は、実施例２におけるスコア加算処理の一例を示すフローチャートである。まず、ステップＳ６０１〜ステップＳ６０５は、図７のステップＳ３０１〜ステップＳ３０５とそれぞれ同様であるため、その説明を省略する。
【００８６】
ステップＳ６０５に続いて、スコア算出部１０２は、当該時間の間（つまり、例えば、直近の過去１０分間）がスコア上乗せ対象期間であるか否かを判定する（ステップＳ６０６）。なお、スコア算出部１０２は、例えば、当該時間の間がスコア上乗せ対象期間であるか否かを示すフラグが「１」又は「０」のいずれであるかを判定することで、当該時間の間がスコア上乗せ対象期間であるか否かを判定すればよい。
【００８７】
上記のステップＳ６０６で当該時間の間がスコア上乗せ対象期間であると判定された場合、スコア算出部１０２は、過去の所定の時間分（例えば、１時間分）のスコア上乗せ対象期間数Ｎを算出する（ステップＳ６０７）。例えば、図１１に示す異常特定処理が１０分毎に繰り返し実行されており、上記の過去の所定の時間が１時間である場合、過去１時間の間におけるスコア上乗せ対象期間数Ｎを算出する。このとき、１≦Ｎ≦６である。
【００８８】
次に、スコア算出部１０２は、スコアＳがＳ＝０であるか否かを判定する（ステップＳ６０８）。
【００８９】
上記のステップＳ６０８でＳ＝０であると判定されなかった場合、スコア算出部１０２は、Ｎ×ＣをスコアＳに上乗せする（ステップＳ６０９）。すなわち、スコア算出部１０２は、Ｓ←Ｎ×Ｃ＋Ｓとする。ここで、Ｃは予め設定された定数（パラメータ）であり、０より大きい値が設定される。一例として、Ｃ＝５等とすることが考えられる。これにより、当該時間の間（つまり、例えば、直近の過去１０分間）のスコアＳが得られる。
【００９０】
なお、例えば、スコアＳの値が大きくなり過ぎることによる誤検知の発生を防止するため、Ｎ×Ｃには上限値が設定されてもよい。この場合、上記のステップＳ６０９では、Ｎ×Ｃの上限値をＥとして、スコア算出部１０２は、Ｓ←ｍｉｎ（Ｎ×Ｃ，Ｅ）＋Ｓとすればよい。上限値Ｅとしては、例えば、１５〜２５程度に設定することが考えられ、特に２０程度とすることが好ましい。
【００９１】
上記のステップＳ６０６で当該時間の間がスコア上乗せ対象期間であると判定されなかった場合、又は上記のステップＳ６０８でＳ＝０であると判定された場合、スコア算出部１０２は、スコア加算処理を終了する。
【００９２】
図１１に戻る。ステップＳ５１３に続くステップＳ５１４〜ステップＳ５１５は、図４のステップＳ１１３〜ステップＳ１１４とそれぞれ同様であるため、その説明を省略する。
【００９３】
＜実施例２の効果＞
ここで、実施例２の効果について説明する。上述したように、例えば、タグ２０が牛の下敷きになってしまうこと等により測定データが十分に受信できない場合がある。このとき、図１３（ａ）にように、測定データの受信数の低下（つまり、データ欠損）と、強い加速度センサ値の動きとが同時期に起きる場合がある。このような場合には、図１３（ｂ）に示すように、実施例１のスコアＳでは閾値ｔｈを下回ることがあり、異常特定ができない場合（つまり、検知漏れが発生する）がある。
【００９４】
これに対して、実施例２では、測定データの受信数の低下に応じて、スコアＳに所定の値を上乗せすることで、データ欠損が起きた場合であっても牛の異常特定が可能とし、検知漏れを防止することができる。
【００９５】
［実施例３］
実施例１及び２では、差分気圧センサ値と所定の閾値とを用いて牛の姿勢が「横臥」又は「起立」のいずれであるかを推定したが、例えば、閾値が適切でなく、推定された姿勢が、実際の牛の姿勢と合わない場合がある。そこで、実施例３では、直近の差分気圧センサ値との相対値から牛の姿勢をより高精度に推定する場合について説明する。また、これに伴い、「横臥」を、スコアＳの加算対象とする姿勢を示す「横臥（注意）」と、スコアＳの加算対象としない（かつ、スコアＳのリセットもしない）姿勢を示す「横臥（通常）」とに分割する。「横臥（注意）」とは、実施例１及び２と同様にスコアＳの加算対象とする姿勢のことであり、牛に異常が発生している可能性がある横臥状態（つまり、起立困難によって牛が横臥状態となっている可能性がある状態）のことである。一方で、「横臥（通常）」とは、通常の横臥状態（つまり、起立困難ではない牛の横臥状態）のことである。これにより、より高い精度で牛の異常を特定することが可能となり、例えば、通常の横臥状態であるにも関わらず、牛に異常が発生したと特定されてしまう事態（つまり、誤検知）を防止することが可能となる。
【００９６】
以降では、異常特定処理の実施例３について、図１４を参照しながら説明する。図１４は、実施例３における異常特定処理の一例を示すフローチャートである。図１４に示す異常特定処理は、所定の時間毎（例えば１０分毎）に繰り返し実行される。なお、以降では、或る牛（つまり、或るタグＩＤのタグ２０が装着された牛）の異常を特定する場合について説明する。
【００９７】
まず、姿勢推定部１０１は、所定の時間の間（例えば、直近の過去１０分間）の牛の姿勢を推定する（ステップＳ７０１）。ここで、本ステップにおける牛の姿勢を推定する処理（姿勢推定処理）については後述する。なお、本ステップでは、牛の姿勢が「横臥（通常）」、「横臥（注意）」、又は「起立」のいずれかに推定される。また、この姿勢推定結果は、例えば補助記憶装置等の記憶領域に記憶される。
【００９８】
次に、スコア算出部１０２は、上記のステップＳ７０１で推定された牛の姿勢が「横臥（通常）」、「横臥（注意）」、又は「起立」のいずれであるかを判定する（ステップＳ７０２）。
【００９９】
上記のステップＳ７０２で牛の姿勢が「起立」と判定された場合、スコア算出部１０２は、スコアＳを０にリセットする（ステップＳ７０３）。
【０１００】
上記のステップＳ７０２で牛の姿勢が「横臥（注意）」と判定された場合又はステップＳ７０３に続いて、特定処理部１００は、図４のステップＳ１０４〜ステップＳ１１４又は図１１のステップＳ５０４〜ステップＳ５１５を実行する（ステップＳ７０４）。このように、牛の姿勢が「横臥（注意）」である場合は、スコアＳをリセットせずに、ステップＳ７０４が実行される（つまり、スコアＳの加算（及び異常判定）が行われる。）。
【０１０１】
一方で、上記のステップＳ７０２で牛の姿勢が「横臥（通常）」と判定された場合は、特定処理部１００は、異常特定処理を終了する。すなわち、この場合、スコアＳのリセットも加算（及び異常判定）も行われない。
【０１０２】
ここで、上記のステップＳ７０１における姿勢推定処理について、図１５を参照しながら説明する。図１５は、実施例３における姿勢推定処理の一例を示すフローチャートである。まず、ステップＳ８０１〜ステップＳ８０２は、図５のステップＳ２０１〜ステップＳ２０２とそれぞれ同様であるため、その説明を省略する。
【０１０３】
ステップＳ８０２に続いて、姿勢推定部１０１は、ステップＳ８０２で算出された差分気圧センサ値の所定の時間毎（例えば１分毎）の中央値を示す第１の中央値を算出する（ステップＳ８０３）。例えば、ステップＳ８０２で直近の過去１０分間における２秒毎の差分気圧センサ値が算出された場合、１分間毎の第１の中央値が合計１０個算出される。なお、この第１の中央値は、例えば補助記憶装置等の記憶領域に記憶される。
【０１０４】
次に、姿勢推定部１０１は、過去の所定の時間分（例えば、過去１２時間分）の第１の中央値を取得する（ステップＳ８０４）。例えば、１分間毎に第１の中央値が算出された場合、過去１２時間分の第１の中央値として、６０×１２＝７２０個の第１の中央値が取得される。
【０１０５】
次に、姿勢推定部１０１は、直前の姿勢推定結果（つまり、例えば、過去２０分前から１０分前までの１０分間における姿勢推定結果）を取得する（ステップＳ８０５）。直前の姿勢推定結果は、例えば補助記憶装置等の記憶領域に記憶されている。なお、本ステップは、必ずしもステップＳ８０４の次に実行される必要はなく、少なくとも、後述するステップＳ８１８の前に実行されればよい。
【０１０６】
次に、姿勢推定部１０１は、上記のステップＳ８０４で取得された第１の中央値の所定の時間毎（例えば１０分間毎）の中央値を示す第２の中央値を算出する（ステップＳ８０６）。例えば、上記のステップＳ８０４で取得された７２０個の第１の中央値の１０分間毎の中央値を算出する場合、７２個の第２の中央値が得られる。
【０１０７】
次に、姿勢推定部１０１は、上記のステップＳ８０６で算出された第２の中央値の中から、該当の時間の間（つまり、例えば、直近の過去１０分間）における第２の中央値を取得する（ステップＳ８０７）。本ステップで取得された第２の中央値を「第２の中央値Ｍ」とする。
【０１０８】
次に、姿勢推定部１０１は、上記のステップＳ８０４で取得された第２の中央値全体の中で、第２の中央値Ｍが上位ｂ１％以上であるか否かを判定する（ステップＳ８０８）。ここで、ｂ１は予め設定されたパラメータであり、０より大きい任意の値が設定される。一例として、ｂ１＝３５等とすることが考えられる。
【０１０９】
上記のステップＳ８０８で第２の中央値Ｍが上位ｂ１％以上であると判定された場合、姿勢推定部１０１は、牛の姿勢を「横臥（注意）」と推定する（ステップＳ８０９）。これは、該当の時間の間（つまり、例えば、直近の過去１０分間）では相対的に差分気圧センサ値が高く、起立困難によって牛が横臥状態となっている可能性があると考えられるためである。
【０１１０】
一方で、上記のステップＳ８０８で第２の中央値Ｍが上位ｂ１％以上であると判定されなかった場合、姿勢推定部１０１は、直近の所定の時間の間（例えば、直近の過去３０分間）の第２の中央値を取得する（ステップＳ８１０）。なお、直近の過去３０分間は一例であって、直近の過去２０分間や直近の過去４０分間等であってもよい。例えば、直近の過去３０分間の第２の中央値を取得する場合、直近の過去１０分間における第２の中央値Ｍ１（＝Ｍ）、直近の過去２０分前から１０分前までの１０分間における第２の中央値Ｍ２、直近の過去３０分前から２０分前までの１０分間における第２の中央値Ｍ３が取得される。
【０１１１】
次に、姿勢推定部１０１は、上記のステップＳ８１０で取得された第２の中央値の全てが、上記のステップＳ８０４で取得された第２の中央値全体の下位ｂ２％未満であるか否かを判定する（ステップＳ８１１）。ここで、ｂ２は予め設定されたパラメータであり、０より大きい値が予め設定される。一例として、ｂ２＝２５等とすることが考えられる。
【０１１２】
なお、ｂ１＜（１００−ｂ２）とすることが好ましい。これは、第２の中央値Ｍが上位ｂ１％以上と判定された場合は横臥（注意）と推定され、スコアＳはリセットされないのに対して、上記のステップＳ８１０で取得された第２の中央値の全てが下位ｂ２％未満と判定された場合には、後述するステップＳ８１２で起立と推定され、スコアＳがリセットされる（図１４のステップＳ７０２）ためである。
【０１１３】
上記ステップＳ８１１で、上記のステップＳ８１０で取得された第２の中央値の全てが第２の中央値全体の下位ｂ２％未満であると判定された場合、姿勢推定部１０１は、牛の姿勢を「起立」と推定する（ステップＳ８１２）。これは、該当の時間の間（つまり、例えば、直近の過去１０分間）では相対的に差分気圧センサ値が低く、牛が起立状態であると考えられるためである。
【０１１４】
一方で、ステップＳ８１１で、上記のステップＳ８１０で取得された第２の中央値の全てが第２の中央値全体の下位ｂ２％未満であると判定されなかった場合、姿勢推定部１０１は、当該時間の間の直前の所定の時間の間（つまり、過去２０分前から１０分前までの１０分間）の第２の中央値（つまり、第２の中央値Ｍ２）を取得する（ステップＳ８１３）。
【０１１５】
次に、姿勢推定部１０１は、ΔＭ＝Ｍ−Ｍ２＝Ｍ１−Ｍ２を算出する（ステップＳ８１４）。
【０１１６】
次に、姿勢推定部１０１は、ΔＭ＜ｂ３であるか否かを判定する（ステップＳ８１５）。ここで、ｂ３は予め設定されたパラメータであり、任意の値が設定される。一例として、ｂ３＝−０．０３等とすることが考えられる。
【０１１７】
上記のステップＳ８１５でΔＭ＜ｂ３であると判定された場合、姿勢推定部１０１は、ステップＳ８１２に進む。これにより、牛の姿勢が「起立」と推定される。この場合、例えば、過去２０分前から１０分前の１０分間の差分気圧センサ値よりも、過去１０分前から現在までの１０分間の差分気圧センサ値の方が相対的に低く、牛が起立状態になったと考えられるためである。
【０１１８】
一方で、上記のステップＳ８１５でΔＭ＜ｂ３であると判定されなかった場合、姿勢推定部１０１は、ΔＭ＞ｂ４であるか否かを判定する（ステップＳ８１６）。ここで、ｂ４は予め設定されたパラメータであり、任意の値が設定される。一例として、ｂ４＝０．０２５等とすることが考えられる。
【０１１９】
上記のステップＳ８１６でΔＭ＞ｂ４であると判定された場合、姿勢推定部１０１は、牛の姿勢を「横臥（通常）」と推定する（ステップＳ８１７）。これは、該当の時間の間（つまり、例えば、直近の過去１０分間）では、その１つ前の時間の間（つまり、例えば、過去２０分前から１０分前までの１０分間）よりも相対的に差分気圧センサ値が高く、牛が通常の行動として横臥状態になったと考えられるためである。
【０１２０】
一方で、上記のステップＳ８１６でΔＭ＞ｂ４であると判定されなかった場合、姿勢推定部１０１は、直前の姿勢推定結果（つまり、上記のステップＳ８０５で取得された姿勢推定結果）を、今回の姿勢推定結果とする（ステップＳ８１８）。
【０１２１】
＜実施例３の効果＞
ここで、実施例３の効果について説明する。上述したように、実施例３では、「横臥」を、スコアＳの加算対象とする姿勢を示す「横臥（注意）」と、スコアＳの加算対象としない（かつ、スコアＳのリセットもしない）姿勢を示す「横臥（通常）」とに分割する。そして、牛の姿勢が「横臥（注意）」と推定された場合にはスコアＳの加算を行う一方で、牛の姿勢が「横臥（通常）」と推定された場合にはスコアＳの加算は行わない。これにより、実施例３では、牛が通常の横臥状態であるにも関わらず、牛に異常が発生したと特定されてしまう事態を防止することが可能となる。
【０１２２】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【０１２３】
１        特定システム
１０      特定装置
２０      タグ
３０      基準気圧センサ
１００    特定処理部
１０１    姿勢推定部
１０２    スコア算出部
１０３    異常特定部
２００    測定データ記憶部
３００    基準気圧データ記憶部
【図１】
2020198828.tif 000003
【図２】
2020198828.tif 000004
【図３】
2020198828.tif 000005
【図４】
2020198828.tif 000006
【図５】
2020198828.tif 000007
【図６】
2020198828.tif 000008
【図７】
2020198828.tif 000009
【図８】
2020198828.tif 000010
【図９】
2020198828.tif 000011
【図１０】
2020198828.tif 000012
【図１１】
2020198828.tif 000013
【図１２】
2020198828.tif 000014
【図１３】
2020198828.tif 000015
【図１４】
2020198828.tif 000016
【図１５】
2020198828.tif 000017