(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-30
(45)【発行日】2023-11-08
(54)【発明の名称】特定装置、特定方法及びプログラム
(51)【国際特許分類】
A01K 29/00 20060101AFI20231031BHJP
【FI】
A01K29/00 A
(21)【出願番号】P 2019108946
(22)【出願日】2019-06-11
【審査請求日】2022-06-10
(73)【特許権者】
【識別番号】000102717
【氏名又は名称】NTTテクノクロス株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】佐々木 克敏
(72)【発明者】
【氏名】畠中 将徳
【審査官】吉原 健太
(56)【参考文献】
【文献】国際公開第2016/171077(WO,A1)
【文献】特開2017-060407(JP,A)
【文献】特開2017-201930(JP,A)
【文献】特開2003-310077(JP,A)
【文献】特開2007-124966(JP,A)
【文献】米国特許出願公開第2008/0204255(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
A01K 11/00 - 29/00
A01K 33/00 - 37/00
A01K 41/00 - 59/06
A01K 67/00 - 67/04
G16Y 10/00 - 40/60
A61B 5/06 - 5/22
G01P 15/00 - 15/18
(57)【特許請求の範囲】
【請求項1】
家畜の異常を特定する特定装置であって、
前記家畜に装着された加速度センサ及び気圧センサがそれぞれ測定した加速度データ及び気圧データを記憶する記憶手段と、
所定の時間の間における1以上の加速度データ及び1以上の気圧データを前記記憶手段から取得する取得手段と、
前記1以上の気圧データに基づいて、前記家畜の姿勢を推定する推定手段と、
推定された前記家畜の姿勢に応じて、前記1以上の加速度データに基づいて、
前記家畜が瞬間的に大きな動作を行ったことをスコア化した第1のスコアを算出する算出手段と、
前記第1のスコアが、予め設定された所定の閾値を超えている場合、前記家畜に異常が発生したことを特定する特定手段と、
を有することを特徴とする特定装置。
【請求項2】
前記推定手段は、
前記気圧データと、基準となる気圧センサが測定した基準気圧データとの差分を示す差分気圧データに基づいて、前記家畜の姿勢を推定する、ことを特徴とする請求項1に記載の特定装置。
【請求項3】
前記推定手段は、
前記差分気圧データと所定の閾値とを比較することで前記家畜の姿勢を推定する、ことを特徴とする請求項2に記載の特定装置。
【請求項4】
前記推定手段は、
前記差分気圧データの所定の期間毎の中央値に基づいて、前記期間毎の中央値の相対的な変化により前記家畜の姿勢を推定する、ことを特徴とする請求項2に記載の特定装置。
【請求項5】
前記推定手段は、
前記家畜の姿勢として、前記家畜が立っている状態であることを示す起立と、前記家畜が横たわっている状態であることを示す横臥とを少なくとも推定する、ことを特徴とする請求項1乃至4の何れか一項に記載の特定装置。
【請求項6】
前記算出手段は、
前記家畜の姿勢が起立と推定された場合、前記第1のスコアを0にリセットした後に、前記所定の時間の間の第2のスコアを算出し、前記第2のスコアを前記第1のスコアに加算することで、前記第1のスコアを算出し、
前記家畜の姿勢が横臥と推定された場合、前記第1のスコアを0にリセットせずに、前記所定の時間の間の第2のスコアを算出し、前記第2のスコアを前記第1のスコアに加算することで、前記第1のスコアを算出する、ことを特徴とする請求項5に記載の特定装置。
【請求項7】
前記推定手段は、
前記横臥として、前記家畜に異常が発生して横たわっている可能性がある状態を示す第1の横臥又は前記第1の横臥以外で前記家畜が横たわっている状態を示す第2の横臥のいずれかを推定し、
前記算出手段は、
前記家畜の姿勢が起立と推定された場合、前記第1のスコアを0にリセットした後に、前記所定の時間の間の第2のスコアを算出し、前記第2のスコアを前記第1のスコアに加算することで、前記第1のスコアを算出し、
前記家畜の姿勢が第1の横臥と推定された場合、前記第1のスコアを0にリセットせずに、前記所定の時間の間の第2のスコアを算出し、前記第2のスコアを前記第1のスコアに加算することで、前記第1のスコアを算出し、
前記家畜の姿勢が第2の横臥と推定された場合、前記第1のスコアのリセットと前記第2のスコアの算出及び加算とを行わずに、前記第1のスコアを算出する、ことを特徴とする請求項5に記載の特定装置。
【請求項8】
前記算出手段は、
前記1以上の加速度データに基づいて、前記家畜が異常行動でない通常の行動を行っているか否かを判定し、
前記家畜が通常の行動を行っていると判定した場合、前記通常の行動に応じて、前記第1のスコアを0にリセットした後に前記第1のスコアを算出する、又は、前記第1のスコアの算出を行わない、ことを特徴とする請求項6又は7に記載の特定装置。
【請求項9】
前記算出手段は、
前記所定の時間の間において前記加速度センサ及び前記気圧センサから受信した前記加速度データ及び前記気圧データのデータ受信数に応じて、算出した前記第1のスコアに対して所定の値を加算する、ことを特徴とする請求項6又は7に記載の特定装置。
【請求項10】
家畜の異常を特定する特定装置が、
前記家畜に装着された加速度センサ及び気圧センサがそれぞれ測定した加速度データ及び気圧データを記憶手段に記憶させる記憶手順と、
所定の時間の間における1以上の加速度データ及び1以上の気圧データを前記記憶手段から取得する取得手順と、
前記1以上の気圧データに基づいて、前記家畜の姿勢を推定する推定手順と、
推定された前記家畜の姿勢に応じて、前記1以上の加速度データに基づいて、
前記家畜が瞬間的に大きな動作を行ったことをスコア化した第1のスコアを算出する算出手順と、
前記第1のスコアが、予め設定された所定の閾値を超えている場合、前記家畜に異常が発生したことを特定する特定手順と、
を実行させることを特徴とする特定方法。
【請求項11】
コンピュータを、請求項1乃至9の何れか一項に記載の特定装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、特定装置、特定方法及びプログラムに関する。
【背景技術】
【0002】
肥育牛では、肥育後期に起立困難等の異常が発生し易いことが知られている。起立困難を放置すると、窒息等により牛が死亡することがあるため、牛を肥育する肥育農家では、牛舎の見回り等を行って、起立困難等の異常が牛に発生していないかを確認している。
【0003】
また、繁殖牛でも産前産後に起立困難等の異常が発生し易いことが知られており、繁殖農家は、同様に、牛舎の見回り等を行って、起立困難等の異常が牛に発生していないかを確認している。
【0004】
更に、鼓脹症等の異常によって牛が起立困難となる場合もある。鼓脹症とは、牛等の反芻動物の家畜に起こり得る病気であり、例えば、青草等の発酵性飼料を過食した際等に発症する場合がある。鼓脹症が発症した場合、牛の腹部が膨脹するため、牛は起立困難となる。
【先行技術文献】
【非特許文献】
【0005】
【文献】阿部 亮著、「農学基礎セミナー 家畜飼育の基礎」、新版、社団法人 農産漁村文化協会、2008 年 4 月, p.109, p.122-124.
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、例えば、飼養頭数が数百頭から数千頭にも及ぶ大規模な酪農場等では、牛舎の見回り等を行って、牛に異常(鼓脹症等を含む起立困難)が発生していないかを確認するのは困難である。
【0007】
本発明の実施の形態は、上記の点に鑑みてなされたもので、家畜の異常を特定することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明の実施の形態は、家畜の異常を特定する特定装置であって、前記家畜に装着された加速度センサ及び気圧センサがそれぞれ測定した加速度データ及び気圧データを記憶する記憶手段と、所定の時間の間における1以上の加速度データ及び1以上の気圧データを前記記憶手段から取得する取得手段と、前記1以上の気圧データに基づいて、前記家畜の姿勢を推定する推定手段と、推定された前記家畜の姿勢に応じて、前記1以上の加速度データに基づいて、所定の第1のスコアを算出する算出手段と、前記第1のスコアが、予め設定された所定の閾値を超えている場合、前記家畜に異常が発生したことを特定する特定手段と、を有することを特徴とする。
【発明の効果】
【0009】
家畜の異常を特定することができる。
【図面の簡単な説明】
【0010】
【
図1】本実施形態に係る特定システムの全体構成の一例を示す図である。
【
図2】測定データ記憶部に記憶されている測定データの一例を示す図である。
【
図3】本実施形態に係る特定処理部の機能構成の一例を示す図である。
【
図4】実施例1における異常特定処理の一例を示すフローチャートである。
【
図5】実施例1における姿勢推定処理の一例を示すフローチャートである。
【
図6】牛の姿勢推定の一例を説明するための図である。
【
図7】実施例1におけるスコア加算処理の一例を示すフローチャートである。
【
図8】スコア算出の一例を説明するための図である。
【
図10】実施例2における日次処理の一例を示すフローチャートである。
【
図11】実施例2における異常特定処理の一例を示すフローチャートである。
【
図12】実施例2におけるスコア加算処理の一例を示すフローチャートである。
【
図13】実施例2の効果を説明するための図である。
【
図14】実施例3における異常特定処理の一例を示すフローチャートである。
【
図15】実施例3における姿勢推定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態(以降、「本実施形態」とも表す。)について、図面を参照しながら説明する。本実施形態では、家畜の一例として、牛の異常を特定する場合について説明する。ただし、家畜は牛に限られない。
【0012】
<全体構成>
まず、牛の起立困難等の異常を特定する特定システム1の全体構成について、
図1を参照しながら説明する。
図1は、本実施形態に係る特定システム1の全体構成の一例を示す図である。
【0013】
図1に示すように、本実施形態に係る特定システム1には、牛の異常を特定する特定装置10と、牛に装着された1以上のタグ20と、基準となる気圧を測定する基準気圧センサ30とが含まれる。なお、タグ20は、ベルト等によって牛の首部分に固定して装着されることが好ましい。
【0014】
タグ20は、牛に装着される機器である。1頭の牛に対して1つのタグ20が装着されている。タグ20には、当該タグ20を装着している牛の加速度(x軸、y軸及びz軸の3軸の加速度)を測定する加速度センサと、気圧を測定する気圧センサとが含まれる。ここで、x軸、y軸及びz軸で構成される座標系はタグ20に固定されており、タグ20は、例えば、牛が起立し、かつ、首が曲がっていない(真っ直ぐの)状態で、当該牛の進行方向に対して右方向をx軸の正の方向、当該進行方向をy軸の正の方向、重力方向をz軸の正の方向となるように装着される。ただし、牛に対する各軸(x軸、y軸及びz軸)の方向はこれに限られず、座標系における各軸の相対的な位置関係は保ったままで各軸が任意の方向となるようにタグ20を牛に装着することが可能である。
【0015】
タグ20は、所定の時間毎(例えば2秒毎)に、加速度センサにより測定した加速度センサ値と、気圧センサにより測定された気圧センサ値とが含まれる測定データを特定装置10に送信する。特定装置10に送信された測定データは、後述する測定データ記憶部200に蓄積(記憶)される。
【0016】
基準気圧センサ30は、牛舎内の所定の位置(例えば、牛舎内の地面上等)に設置され、基準となる気圧を測定する。基準気圧センサ30は、所定の時間毎(例えば2秒毎)に、測定した気圧を示す基準気圧センサ値が含まれる基準気圧データを特定装置10に送信する。特定装置10に送信された基準気圧データは、後述する基準気圧データ記憶部300に蓄積(記憶)される。
【0017】
特定装置10は、牛の異常(例えば、肥育後期に発生する起立困難、産前産後に発生する起立困難、鼓脹症による起立困難等)を特定する1以上のコンピュータである。特定装置10は、特定処理部100と、測定データ記憶部200と、基準気圧データ記憶部300とを有する。
【0018】
特定処理部100は、測定データ記憶部200に記憶されている測定データと、基準気圧データ記憶部300に記憶されている基準気圧データとを用いて、牛の異常を特定する。特定処理部100は、特定装置10にインストールされた1以上のプログラムが、CPU(Central Processing Unit)等のプロセッサに実行させる処理により実現される。
【0019】
測定データ記憶部200は、タグ20から受信した測定データを記憶する。測定データ記憶部200は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等の記憶装置を用いて実現可能である。測定データ記憶部200には、所定の時間毎(例えば2秒毎)に、複数の測定データが記憶されている。なお、タグ20から受信した測定データは、例えば、特定処理部100により、測定データ記憶部200に記憶(蓄積)させればよい。
【0020】
基準気圧データ記憶部300は、基準気圧センサ30から受信した基準気圧データを記憶する。基準気圧データ記憶部300は、例えばHDDやSSD等の記憶装置を用いて実現可能である。基準気圧データ記憶部300には、所定の時間毎(例えば2秒毎)に、複数の基準気圧データが記憶されている。なお、基準気圧センサ30から受信した基準気圧データは、例えば、特定処理部100により、基準気圧データ記憶部300に記憶(蓄積)させればよい。
【0021】
なお、
図1に示す特定システム1の構成は一例であって、他の構成であってもよい。例えば、特定装置10は、複数台のコンピュータで構成されていてもよい。また、例えば、特定処理部100が有する機能の一部を、特定装置10と通信ネットワークを介して接続される装置(例えばクラウドサーバ等)が有していてもよい。また、例えば、測定データ記憶部200及び基準気圧データ記憶部300の少なくとも一方を、特定装置10と通信ネットワークを介して接続される記憶装置(例えば、DBサーバ等)が有していてもよい。
【0022】
<測定データ記憶部200に記憶されている測定データ>
次に、本実施形態に係る測定データ記憶部200に記憶されている測定データについて、
図2を参照しながら説明する。
図2は、測定データ記憶部200に記憶されている測定データの一例を示す図である。
【0023】
図2に示すように、測定データ記憶部200には、タグを識別する情報であるタグID毎に、1以上の測定データが記憶されている。なお、1頭の牛に対して1つのタグ20が装着されていることから、タグIDは、牛を識別する情報(例えば、牛の個体識別情報等)であってもよい。
【0024】
各測定データには、日時と、加速度センサ値と、気圧センサ値とが含まれる。日時は、例えば、タグ20が測定データを送信した日時である。なお、日時は、特定装置10が測定データを受信した日時であってもよい。
【0025】
加速度センサ値は、タグ20に含まれる加速度センサにより測定された加速度の値である。加速度センサ値には、x軸方向の加速度成分を示すx成分と、y軸方向の加速度成分を示すy成分と、z軸方向の加速度成分を示すz成分とが含まれる。例えば、日時「t1」の測定データには、加速度センサ値のx成分「x1」と、加速度センサ値のy成分「y1」と、加速度センサ値のz成分「z1」とが含まれる。同様に、例えば、日時「t2」の測定データには、加速度センサ値のx成分「x2」と、加速度センサ値のy成分「y2」と、加速度センサ値のz成分「z2」とが含まれる。なお、以降では、加速度センサ値のx成分を「x成分加速度センサ値」、加速度センサ値のy成分を「y成分加速度センサ値」、加速度センサ値のz成分を「z成分加速度センサ値」とも表す。
【0026】
また、気圧センサ値は、タグ20に含まれる気圧センサにより測定された気圧の値である。例えば、日時「t1」の測定データには、気圧センサ値「p1」が含まれる。同様に、例えば、日時「t2」の測定データには、気圧センサ値「p2」が含まれる。
【0027】
なお、例えば、各タグ20が2秒毎に測定データを特定装置10に送信する場合、Δt=ti+1-ti(iは1以上の整数)とすれば、Δt=2[秒]である。
【0028】
このように、測定データ記憶部200に記憶されている測定データには、タグID毎に、日時と、加速度センサ値と、気圧センサ値とが含まれている。
【0029】
<特定処理部100の機能構成>
次に、本実施形態に係る特定処理部100の機能構成について、
図3を参照しながら説明する。
図3は、本実施形態に係る特定処理部100の機能構成の一例を示す図である。
【0030】
図3に示すように、本実施形態に係る特定処理部100には、姿勢推定部101と、スコア算出部102と、異常特定部103とが含まれる。
【0031】
姿勢推定部101は、測定データに含まれる気圧センサ値と、基準気圧データに含まれる基準気圧センサ値とを用いて、牛の姿勢を推定する。ここで、牛の姿勢としては、例えば、牛が立っている状態の姿勢を示す「起立」、牛が横たわっている状態の姿勢を示す「横臥」等がある。
【0032】
スコア算出部102は、姿勢推定部101により推定された姿勢に応じて、測定データに含まれる加速度センサ値を用いて、牛の異常を特定するための所定のスコアを算出する。
【0033】
異常特定部103は、スコア算出部102により算出されたスコアを用いて、牛の異常を特定する。異常特定部103は、例えば、スコア算出部102により算出されたスコアが所定の閾値を超えている場合に、牛に異常が発生したと特定する。
【0034】
[実施例1]
以降では、牛の異常の特定する処理(異常特定処理)の実施例1について、
図4を参照しながら説明する。
図4は、実施例1における異常特定処理の一例を示すフローチャートである。
図4に示す異常特定処理は、所定の時間毎(例えば10分毎)に繰り返し実行される。なお、以降では、或る牛(つまり、或るタグIDのタグ20が装着された牛)の異常を特定する場合について説明する。
【0035】
まず、姿勢推定部101は、所定の時間の間(例えば、直近の過去10分間)の牛の姿勢を推定する(ステップS101)。ここで、本ステップにおける牛の姿勢を推定する処理(姿勢推定処理)について、
図5を参照しながら説明する。
図5は、実施例1における姿勢推定処理の一例を示すフローチャートである。
【0036】
姿勢推定部101は、該当の時間の間(例えば、直近の過去10分間)の気圧センサ値及び基準気圧センサ値を取得する(ステップS201)。すなわち、姿勢推定部101は、当該時間の間の測定データを測定データ記憶部200から取得した上で、これらの測定データから気圧センサ値を取得する。同様に、姿勢推定部101は、当該時間の間の基準気圧データを基準気圧データ記憶部300から取得した上で、これらの基準気圧データから基準気圧センサ値を取得する。
【0037】
次に、姿勢推定部101は、上記のステップS201で取得された気圧センサ値及び基準気圧センサ値を用いて、該当の時間の間における差分気圧センサ値を算出する(ステップS202)。差分気圧センサ値とは、気圧センサ値と、この気圧センサ値と同一日時(又は当該気圧センサ値の日時に対応する日時)の基準気圧センサ値との差(つまり、当該気圧センサ値から当該基準気圧センサ値を減算した値)である。これにより、例えば、2秒毎の測定データ及び基準気圧データが測定データ記憶部200及び基準気圧データ記憶部300にそれぞれ記憶されており、データの欠損が無い場合、直近の過去10分間の気圧センサ値及び基準気圧センサ値から300個の差分気圧センサ値が得られる。
【0038】
最後に、姿勢推定部101は、上記のステップS202で算出された差分気圧センサ値から牛の姿勢を推定する(ステップS203)。ここで、牛の姿勢を推定する場合の一例について、
図6を参照しながら説明する。
図6は、牛の姿勢推定の一例を説明するための図である。
【0039】
タグ20は牛の首の位置に装着されているため、差分気圧センサ値が相対的に高い場合は牛の首が低い位置にあることを示している。一方で、差分気圧センサ値が相対的に低い場合は牛の首が高い位置にあることを示している。このため、
図6に示すように、差分気圧センサ値が、所定の閾値よりも高い場合には牛の姿勢を「横臥」と推定し、所定の閾値よりも低い場合には牛の姿勢を「起立」と推定することができる。
【0040】
したがって、該当の時間の間(つまり、例えば、直近の過去10分間)における牛の姿勢は、例えば、当該時間の間における差分気圧センサ値の平均値等の指標値を用いて、この指標値が所定の閾値よりも高い場合には当該時間の間における牛の姿勢を「横臥」、所定の閾値よりも低い場合には当該時間の間における牛の姿勢を「起立」と推定することができる。又は、例えば、当該時間の間における差分気圧センサ値のうち、所定の閾値よりも高い差分気圧センサ値の個数を用いて、この個数が別の所定の閾値以上である場合には当該時間の間における牛の姿勢を「横臥」、当該別の所定の閾値未満である場合には当該時間の間における牛の姿勢を「起立」と推定してもよい。
【0041】
図4に戻る。ステップS101に続いて、スコア算出部102は、上記のステップS101で推定された牛の姿勢が「横臥」又は「起立」のいずれであるかを判定する(ステップS102)。
【0042】
上記のステップS102で牛の姿勢が「起立」であると判定された場合、スコア算出部102は、所定のスコアSを0にリセットする(ステップS103)。一方で、上記のステップS102で牛の姿勢が「横臥」であると判定された場合、特定処理部100は、スコアSを0にリセットせずに、ステップS103に進む。なお、スコアSは例えば補助記憶装置等の記憶領域に記憶されており、その値が保持されている。
【0043】
次に、異常特定部103は、該当の時間の間(つまり、例えば、直近の過去10分間)の加速度センサ値を取得する(ステップS104)。すなわち、異常特定部103は、当該時間の測定データを測定データ記憶部200から取得した上で、これらの測定データから加速度センサ値を取得する。これにより、例えば、2秒毎の測定データが測定データ記憶部200に記憶されており、データの欠損が無い場合、直近の過去10分間の測定データから300個の加速度センサ値が得られる。なお、本ステップでは、上記のステップS201で取得された測定データから加速度センサ値が取得されてもよい。
【0044】
次に、異常特定部103は、上記のステップS104で取得された加速度センサ値のL2ノルムを算出する(ステップS105)。なお、L2ノルムは、x成分加速度センサ値の2乗と、y成分加速度センサ値の2乗と、z成分加速度センサ値の2乗との和の平方根である。
【0045】
次に、異常特定部103は、上記のステップS105で算出されたL2ノルムについて、直前のL2ノルムとの差分を算出する(ステップS106)。例えば、日時t1,t2,・・・,tI(Iは、上記のステップS104で取得された加速度センサ値のデータ数)の加速度センサ値の各々から算出されたL2ノルムをL1,L2,・・・,LIとすれば、ΔLi=Li+1-Li(ただし、iは1≦i≦I-1を満たす整数)を算出する。このΔLiを「差分L2ノルム」とも表す。なお、上記のステップS104で取得された加速度センサ値にデータ欠損が無い場合、I=300である。
【0046】
次に、異常特定部103は、差分L2ノルムΔLiのうち、ΔLi>a1となるデータ数Dを算出する(ステップS107)。ここで、a1は予め設定されたパラメータであり、0以上の任意の値が設定される。一例として、a1=50等とすることが考えられる。
【0047】
次に、異常特定部103は、差分L2ノルムΔLiのデータ数I-1がI-1>a2で、かつ、D≦a3であるか否かを判定する(ステップS108)。ここで、a2及びa3は予め設定されたパラメータであり、0以上の任意の値が設定される。一例として、a2=100及びa3=10等とすることが考えられる。
【0048】
上記のステップS108でI-1>a2、かつ、D≦a3であると判定されなかった場合、特定処理部100は、異常特定処理を終了する。なお、この場合、当該時間の間(つまり、例えば、直近の過去10分間)は、後述するスコアSの加算処理は実行されない。
【0049】
一方で、上記のステップS108でI-1>a2、かつ、D≦a3であると判定された場合、異常特定部103は、上記のステップS105で算出されたL2ノルムLi(1≦i≦I)の平均値μ1と最小値minとを算出する(ステップS109)。
【0050】
次に、異常特定部103は、a4<μ1<a5、かつ、a4<min<a5であるか否かを判定する(ステップS110)。ここで、a4及びa5は予め設定されたパラメータであり、0以上の任意の値が設定される。一例として、a4=7及びa5=13等とすることが考えられる。
【0051】
上記のステップS110でa4<μ1<a5、かつ、a4<min<a5であると判定された場合、スコア算出部102は、スコアSを0にリセットする(ステップS111)。このように、L2ノルムの平均値μ1及び最小値minが或る範囲(a4より大きく、かつ、a5より小さい範囲)内に含まれる場合、スコアSを0にリセットする。
【0052】
一方で、上記のステップS110でa
4<μ
1<a
5、かつ、a
4<min<a
5であると判定されなかった場合、スコア算出部102は、スコアSの加算を行う(ステップS112)。ここで、本ステップにおけるスコアSの加算を行う処理(スコア加算処理)について、
図7を参照しながら説明する。
図7は、実施例1におけるスコア加算処理の一例を示すフローチャートである。
【0053】
スコア算出部102は、該当の時間の間(つまり、例えば、直近の過去10分間)の加速度センサ値に対して所定の前処理を行う(ステップS301)。前処理としては、例えば、欠損補完(リサンプリング)処理やノイズ除去処理等が挙げられる。なお、欠損補完処理とは、データ(加速度センサ値)の精度を上げるため、データが取得できなかった場合の欠損を補完する処理である。また、ノイズ除去処理とは、牛の瞬間的な動作(例えば、瞬間的に身体を震わせる動作や瞬間的に大きく身体をびくつかせる動作等)を示すデータを除去する処理である。
【0054】
次に、スコア算出部102は、上記のステップS301での前処理後の加速度センサ値のL2ノルムを算出する(ステップS302)。
【0055】
なお、上記のステップS301の前処理は必ずしも行われなくてもよい。この場合、上記のステップS302では、上記のステップS105で算出されたL2ノルムが取得されてもよい。
【0056】
又は、例えば、上記のステップS301の前処理を、上記のステップS105の前に行った上で、上記のステップS105では、前処理後の加速度センサ値からL2ノルムを算出してもよい。この場合、上記ステップS301の前処理は行わずに、上記のステップS302では、上記のステップS105で算出されたL2ノルムを取得すればよい。
【0057】
次に、スコア算出部102は、所定の時間(例えば1分)単位で、L2ノルムの標準偏差を算出する(ステップS303)。例えば、1分単位でL2ノルムの標準偏差を算出する場合、スコア算出部102は、1分間に含まれる30個のL2ノルムから1つの標準偏差が算出されるため、過去10分間では合計10個の標準偏差が得られる。なお、本ステップで算出された各標準偏差は、例えば補助記憶装置等の記憶領域に記憶される。
【0058】
次に、スコア算出部102は、上記のステップS303で算出された標準偏差を用いて、該当の時間の間(例えば、直近の過去10分間)のスコアsを算出する(ステップS304)。スコアsとは、当該時間の間に、標準偏差が所定の上限値を超えた後に所定の下限値を下回った回数と、標準偏差が所定の下限値を下回った後に所定の上限値を超えた回数との合計のことである。これらの上限値及び下限値は予め設定されたパラメータである。
【0059】
なお、上限値及び下限値は、例えば、経験則に基づいて決定されるが、下限値としては牛が横臥している状態の間における加速度センサ値から算出される標準偏差よりも高い値とすることが好ましい。また、上限値としては牛が採食している状態(餌を食べている状態)の間における加速度センサ値から算出される標準偏差と同等又は同等以上の値とすることが好ましい。上限値は、例えば、牛が採食している状態(又は、採食時と同程度の動きをしている状態)の間における加速度センサ値を正解データとして、機械学習の手法によって学習することで決定された標準偏差が設定されてもよい。
【0060】
また、上限値及び下限値は、牛毎に設定されてもよいし、全ての牛に対して共通に設定されてもよい。牛毎に設定することで、例えば、牛毎の行動の特徴を考慮した上限値及び下限値を設定することが可能となる。牛毎に設定する場合は、更に、牛の過去の動作データに基づいて上限値及び下限値が決定されてもよい。例えば、統計的に動きが多いと判断される牛には高めの上限値を設定する等である。言い換えれば、牛毎の特性に応じて、上限値及び下限値が設定されてもよい。
【0061】
ここで、一例として、6:00から6:10までの10分間のスコアsを算出する場合について、
図8を参照しながら説明する。
図8は、スコア算出の一例を説明するための図である。
【0062】
図8に示すように、6:00から6:10までの10分間において、標準偏差が所定の上限値を超えた後に所定の下限値を下回った回数は2回(Q
1及びQ
3)であり、標準偏差が所定の下限値を下回った後に所定の上限値を超えた回数は1回(Q
2)である。このため、この10分間のスコアsは、s=3となる。
【0063】
次に、スコア算出部102は、上記のステップS304で算出されたスコアsをスコアSに加算する(ステップS305)。これにより、当該時間の間(つまり、例えば、直近の過去10分間)のスコアSが得られる。
【0064】
図4に戻る。ステップS112に続いて、異常特定部103は、上記のステップS112のスコア加算処理で得られたスコアS(つまり、当該時間の間のスコアS)が、S>thであるか否かを判定する(ステップS113)。ここで、thは予め設定された閾値(パラメータ)である。一例として、閾値thは、15~35程度に設定することが考えられ、特に25程度にすることが好ましい。なお、特定対象とする異常の種別に応じて、閾値thの値を異ならせてもよい。例えば、或る病気に罹患した牛で上限値を超えたり下限値を下回ったりする動作が継続的に発生するような場合には、閾値thの値を高めに設定する。一方で、別の或る病気に罹患した牛では突発的に大きな動作が発生するような場合、閾値thの値を低めに設定する等である。
【0065】
上記のステップS113でS>thであると判定されなかった場合、特定処理部100は、異常特定処理を終了する。なお、この場合は該当の時間の間で牛に異常が特定されなかった場合である。
【0066】
一方で、上記のステップS113でS>thであると判定された場合、異常特定部103は、牛に異常が発生したと特定する(ステップS114)。これにより、牛に発生した異常(例えば、肥育後期に発生する起立困難、産前産後に発生する起立困難、鼓脹症による起立困難等)を特定することができる。なお、この場合、特定処理部100は、例えば、牛に異常が発生したことをアラートとして所定の端末(例えば、酪農家のスマートフォン等)に通知してもよい。
【0067】
<実施例1の効果>
ここで、実施例1の効果について説明する。実施例1では、加速度センサ値から牛が通常の行動(つまり、異常と特定される行動以外の行動)を行っていると判定された場合には、スコアSを加算しないか(
図4のステップS108でYES)又は0にリセットする(
図4のステップS110でYES)。
【0068】
より具体的には、
図9に示すように、動きが少ない時間帯ではスコアSを加算しないようにする(
図4のステップS108でYES)と共に、反芻のような落ち着いた動きをしている時間帯ではスコアSを0にリセットする(
図4のステップS110でYES)。
【0069】
これにより、例えば、牛が横臥状態で通常の行動を行っているが、時折強い動きがあり徐々にスコアが上がってしまうことで異常と誤って特定されてしまう事態を防止することができる。なお、横臥状態で時折強い動きがある場合とは、例えば、横臥状態で首を振ったり、他の牛にぶつかられたりする場合等が挙げられる。
【0070】
[実施例2]
上述したように、タグ20は牛の首部分に装着されているが、例えば、横臥中や起立困難時等にタグ20が牛の下敷きになってしまう場合も有り得る。このような場合、特定装置10は当該タグ20から測定データを十分に受信できず、例えば、牛に異常が発生したにも関わらずスコアSが閾値thを超えないことがある。そこで、実施例2として、タグ20からのデータ受信数が少ない場合にはスコアSに所定の値を上乗せすることで、牛の異常を特定可能とする場合について説明する。
【0071】
まず、実施例2では、特定装置10は、データ受信数の平均値を算出する処理を日次で実行する。この処理(日次処理)について、
図10を参照しながら説明する。
図10は、実施例2における日次処理の一例を示すフローチャートである。なお、データ受信数の平均値を日次で算出することは一例であって、必ずしも日次に限られず、例えば、12時間毎であってもよいし、2日に1回や週次等であってもよい。
【0072】
異常特定部103は、前日の24時間分の所定の時間毎(例えば、10分毎)における測定データのデータ受信数を取得する(ステップS401)。なお、これらのデータ受信数は、後述するように、補助記憶装置等の記憶領域に記憶されている。
【0073】
次に、異常特定部103は、上記のステップS401で取得されたデータ受信数(つまり、24時間の間における10分毎のデータ受信数)のうちの下位a6%を削除する(ステップS402)。ここで、a6は予め設定されたパラメータであり、0以上100未満の任意の値が設定される。一例として、a6=5等とすることが考えられる。a6=5とした場合、例えば、24時間の間における10分毎のデータ受信数(つまり、6×24=144個のデータ受信数)のうち、その値が小さい下位5%のデータ受信数が削除される。これは、前日のデータ受信数のうち、外れ値(この例では下位5%のデータ受信数)を削除することを意味する。
【0074】
次に、異常特定部103は、上記のステップS402での削除後のデータ受信数の平均値μ2を算出する(ステップS403)。なお、この平均値μ2は、例えば、補助記憶装置等の記憶領域に記憶される。
【0075】
以降では、実施例2における異常特定処理について、
図11を参照しながら説明する。
図11は、実施例2における異常特定処理の一例を示すフローチャートである。
図11に示す異常特定処理は、所定の時間毎(例えば10分毎)に繰り返し実行される。なお、以降では、或る牛(つまり、或るタグIDのタグ20が装着された牛)の異常を特定する場合について説明する。
【0076】
まず、姿勢推定部101は、
図4のステップS101と同様に、所定の時間の間(例えば、直近の過去10分間)の牛の姿勢を推定する(ステップS501)。なお、本ステップにおける姿勢推定処理については、
図5と同様であるため、その説明を省略する。
【0077】
続くステップS502~ステップS505は、
図4のステップS102~ステップS105とそれぞれ同様であるため、その説明を省略する。
【0078】
ステップS505に続いて、異常特定部103は、当該時間の間における加速度センサ値のデータ受信数Iと、ステップS505で算出されたL2ノルムの平均値μ
1と、ステップS505で算出されたL2ノルムの最大値maxと当該平均値μ
1との差分絶対値rとを算出する(ステップS506)。なお、データ受信数Iは、
図4のステップS106で説明したIと同様である。
【0079】
次に、異常特定部103は、前日のデータ受信数の平均値μ
2を取得する(ステップS507)。この平均値μ
2は、
図10に示す日次処理のステップS402で算出されたものである。
【0080】
次に、異常特定部103は、μ2<a7であるか否かを判定する(ステップS508)。ここで、a7は予め設定されたパラメータであり、0以上の任意の値が設定される。一例として、a7=200等とすることが考えられる。なお、μ2<a7である場合とは、前日のデータ受信数の平均値μ2がa7未満であり、例えば、日常的にデータ受信数が少ないことを意味する。一方で、μ2<a7でない場合とは、前日のデータ受信数の平均値μ2がa7以上であり、例えば、日常的にデータ受信数が或る程度得られている(言い換えれば、日常的にデータ欠損は少ない)ことを意味する。
【0081】
上記のステップS508でμ2<a7であると判定されなかった場合、異常特定部103は、I≧a8又はr≦a9であるか否かを判定する(ステップS509)。ここで、a8及びa9は予め設定されたパラメータであり、0以上の任意の値が設定される。一例として、a8=a7(=200)及びa9=120等とすることが考えられる。なお、I≧a8である場合とは、当該時間の間(例えば、直近の過去10分間)のデータ受信数Iが十分であり、データ欠損が少ないことを意味する。また、r≦a9である場合とは、当該時間の間におけるL2ノルムの振れ幅が少なく、例えば、牛が通常の行動を行っていると考えられることを意味する。
【0082】
上記のステップS509でI≧a8又はr≦a9であると判定されなかった場合、異常特定部103は、I/μ2≧a10であるか否かを判定する(ステップS510)。ここで、a10は予め設定されたパラメータであり、0以上の任意の値が設定される。一例として、a10=0.25等とすることが考えられる。なお、I/μ2≧a10である場合とは、当該時間の間(つまり、例えば、直近の過去10分間)のデータ受信数Iが、前日のデータ受信数の平均値μ2のa10×100[%]以上である(例えば、Iがμ2の25%以上である)ことを意味する。
【0083】
上記のステップS510でI/μ2≧a10であると判定されなかった場合、スコア算出部102は、当該時間の間(つまり、例えば、直近の過去10分間)を「スコア上乗せ対象期間」とする(ステップS511)。なお、このとき、スコア算出部102は、例えば、当該時間の間をスコア上乗せ対象期間とするか否かを示すフラグに「1」をセットすればよい。
【0084】
一方で、上記のステップS508でμ2<a7であると判定された場合、上記のステップS509でI≧a8又はr≦a9であると判定された場合、又は上記のステップS510でI/μ2≧a10であると判定された場合、スコア算出部102は、当該時間の間(つまり、例えば、直近の過去10分間)を「スコア上乗せ対象期間としない」とする(ステップS512)。なお、このとき、スコア算出部102は、例えば、当該時間の間をスコア上乗せ対象期間とするか否かを示すフラグに「0」をセットすればよい。
【0085】
ステップS511又はステップS512に続いて、スコア算出部102は、スコアSの加算を行う(ステップS513)。ここで、本ステップにおけるスコアSの加算を行う処理(スコア加算処理)について、
図12を参照しながら説明する。
図12は、実施例2におけるスコア加算処理の一例を示すフローチャートである。まず、ステップS601~ステップS605は、
図7のステップS301~ステップS305とそれぞれ同様であるため、その説明を省略する。
【0086】
ステップS605に続いて、スコア算出部102は、当該時間の間(つまり、例えば、直近の過去10分間)がスコア上乗せ対象期間であるか否かを判定する(ステップS606)。なお、スコア算出部102は、例えば、当該時間の間がスコア上乗せ対象期間であるか否かを示すフラグが「1」又は「0」のいずれであるかを判定することで、当該時間の間がスコア上乗せ対象期間であるか否かを判定すればよい。
【0087】
上記のステップS606で当該時間の間がスコア上乗せ対象期間であると判定された場合、スコア算出部102は、過去の所定の時間分(例えば、1時間分)のスコア上乗せ対象期間数Nを算出する(ステップS607)。例えば、
図11に示す異常特定処理が10分毎に繰り返し実行されており、上記の過去の所定の時間が1時間である場合、過去1時間の間におけるスコア上乗せ対象期間数Nを算出する。このとき、1≦N≦6である。
【0088】
次に、スコア算出部102は、スコアSがS=0であるか否かを判定する(ステップS608)。
【0089】
上記のステップS608でS=0であると判定されなかった場合、スコア算出部102は、N×CをスコアSに上乗せする(ステップS609)。すなわち、スコア算出部102は、S←N×C+Sとする。ここで、Cは予め設定された定数(パラメータ)であり、0より大きい値が設定される。一例として、C=5等とすることが考えられる。これにより、当該時間の間(つまり、例えば、直近の過去10分間)のスコアSが得られる。
【0090】
なお、例えば、スコアSの値が大きくなり過ぎることによる誤検知の発生を防止するため、N×Cには上限値が設定されてもよい。この場合、上記のステップS609では、N×Cの上限値をEとして、スコア算出部102は、S←min(N×C,E)+Sとすればよい。上限値Eとしては、例えば、15~25程度に設定することが考えられ、特に20程度とすることが好ましい。
【0091】
上記のステップS606で当該時間の間がスコア上乗せ対象期間であると判定されなかった場合、又は上記のステップS608でS=0であると判定された場合、スコア算出部102は、スコア加算処理を終了する。
【0092】
図11に戻る。ステップS513に続くステップS514~ステップS515は、
図4のステップS113~ステップS114とそれぞれ同様であるため、その説明を省略する。
【0093】
<実施例2の効果>
ここで、実施例2の効果について説明する。上述したように、例えば、タグ20が牛の下敷きになってしまうこと等により測定データが十分に受信できない場合がある。このとき、
図13(a)にように、測定データの受信数の低下(つまり、データ欠損)と、強い加速度センサ値の動きとが同時期に起きる場合がある。このような場合には、
図13(b)に示すように、実施例1のスコアSでは閾値thを下回ることがあり、異常特定ができない場合(つまり、検知漏れが発生する)がある。
【0094】
これに対して、実施例2では、測定データの受信数の低下に応じて、スコアSに所定の値を上乗せすることで、データ欠損が起きた場合であっても牛の異常特定が可能とし、検知漏れを防止することができる。
【0095】
[実施例3]
実施例1及び2では、差分気圧センサ値と所定の閾値とを用いて牛の姿勢が「横臥」又は「起立」のいずれであるかを推定したが、例えば、閾値が適切でなく、推定された姿勢が、実際の牛の姿勢と合わない場合がある。そこで、実施例3では、直近の差分気圧センサ値との相対値から牛の姿勢をより高精度に推定する場合について説明する。また、これに伴い、「横臥」を、スコアSの加算対象とする姿勢を示す「横臥(注意)」と、スコアSの加算対象としない(かつ、スコアSのリセットもしない)姿勢を示す「横臥(通常)」とに分割する。「横臥(注意)」とは、実施例1及び2と同様にスコアSの加算対象とする姿勢のことであり、牛に異常が発生している可能性がある横臥状態(つまり、起立困難によって牛が横臥状態となっている可能性がある状態)のことである。一方で、「横臥(通常)」とは、通常の横臥状態(つまり、起立困難ではない牛の横臥状態)のことである。これにより、より高い精度で牛の異常を特定することが可能となり、例えば、通常の横臥状態であるにも関わらず、牛に異常が発生したと特定されてしまう事態(つまり、誤検知)を防止することが可能となる。
【0096】
以降では、異常特定処理の実施例3について、
図14を参照しながら説明する。
図14は、実施例3における異常特定処理の一例を示すフローチャートである。
図14に示す異常特定処理は、所定の時間毎(例えば10分毎)に繰り返し実行される。なお、以降では、或る牛(つまり、或るタグIDのタグ20が装着された牛)の異常を特定する場合について説明する。
【0097】
まず、姿勢推定部101は、所定の時間の間(例えば、直近の過去10分間)の牛の姿勢を推定する(ステップS701)。ここで、本ステップにおける牛の姿勢を推定する処理(姿勢推定処理)については後述する。なお、本ステップでは、牛の姿勢が「横臥(通常)」、「横臥(注意)」、又は「起立」のいずれかに推定される。また、この姿勢推定結果は、例えば補助記憶装置等の記憶領域に記憶される。
【0098】
次に、スコア算出部102は、上記のステップS701で推定された牛の姿勢が「横臥(通常)」、「横臥(注意)」、又は「起立」のいずれであるかを判定する(ステップS702)。
【0099】
上記のステップS702で牛の姿勢が「起立」と判定された場合、スコア算出部102は、スコアSを0にリセットする(ステップS703)。
【0100】
上記のステップS702で牛の姿勢が「横臥(注意)」と判定された場合又はステップS703に続いて、特定処理部100は、
図4のステップS104~ステップS114又は
図11のステップS504~ステップS515を実行する(ステップS704)。このように、牛の姿勢が「横臥(注意)」である場合は、スコアSをリセットせずに、ステップS704が実行される(つまり、スコアSの加算(及び異常判定)が行われる。)。
【0101】
一方で、上記のステップS702で牛の姿勢が「横臥(通常)」と判定された場合は、特定処理部100は、異常特定処理を終了する。すなわち、この場合、スコアSのリセットも加算(及び異常判定)も行われない。
【0102】
ここで、上記のステップS701における姿勢推定処理について、
図15を参照しながら説明する。
図15は、実施例3における姿勢推定処理の一例を示すフローチャートである。まず、ステップS801~ステップS802は、
図5のステップS201~ステップS202とそれぞれ同様であるため、その説明を省略する。
【0103】
ステップS802に続いて、姿勢推定部101は、ステップS802で算出された差分気圧センサ値の所定の時間毎(例えば1分毎)の中央値を示す第1の中央値を算出する(ステップS803)。例えば、ステップS802で直近の過去10分間における2秒毎の差分気圧センサ値が算出された場合、1分間毎の第1の中央値が合計10個算出される。なお、この第1の中央値は、例えば補助記憶装置等の記憶領域に記憶される。
【0104】
次に、姿勢推定部101は、過去の所定の時間分(例えば、過去12時間分)の第1の中央値を取得する(ステップS804)。例えば、1分間毎に第1の中央値が算出された場合、過去12時間分の第1の中央値として、60×12=720個の第1の中央値が取得される。
【0105】
次に、姿勢推定部101は、直前の姿勢推定結果(つまり、例えば、過去20分前から10分前までの10分間における姿勢推定結果)を取得する(ステップS805)。直前の姿勢推定結果は、例えば補助記憶装置等の記憶領域に記憶されている。なお、本ステップは、必ずしもステップS804の次に実行される必要はなく、少なくとも、後述するステップS818の前に実行されればよい。
【0106】
次に、姿勢推定部101は、上記のステップS804で取得された第1の中央値の所定の時間毎(例えば10分間毎)の中央値を示す第2の中央値を算出する(ステップS806)。例えば、上記のステップS804で取得された720個の第1の中央値の10分間毎の中央値を算出する場合、72個の第2の中央値が得られる。
【0107】
次に、姿勢推定部101は、上記のステップS806で算出された第2の中央値の中から、該当の時間の間(つまり、例えば、直近の過去10分間)における第2の中央値を取得する(ステップS807)。本ステップで取得された第2の中央値を「第2の中央値M」とする。
【0108】
次に、姿勢推定部101は、上記のステップS804で取得された第2の中央値全体の中で、第2の中央値Mが上位b1%以上であるか否かを判定する(ステップS808)。ここで、b1は予め設定されたパラメータであり、0より大きい任意の値が設定される。一例として、b1=35等とすることが考えられる。
【0109】
上記のステップS808で第2の中央値Mが上位b1%以上であると判定された場合、姿勢推定部101は、牛の姿勢を「横臥(注意)」と推定する(ステップS809)。これは、該当の時間の間(つまり、例えば、直近の過去10分間)では相対的に差分気圧センサ値が高く、起立困難によって牛が横臥状態となっている可能性があると考えられるためである。
【0110】
一方で、上記のステップS808で第2の中央値Mが上位b1%以上であると判定されなかった場合、姿勢推定部101は、直近の所定の時間の間(例えば、直近の過去30分間)の第2の中央値を取得する(ステップS810)。なお、直近の過去30分間は一例であって、直近の過去20分間や直近の過去40分間等であってもよい。例えば、直近の過去30分間の第2の中央値を取得する場合、直近の過去10分間における第2の中央値M1(=M)、直近の過去20分前から10分前までの10分間における第2の中央値M2、直近の過去30分前から20分前までの10分間における第2の中央値M3が取得される。
【0111】
次に、姿勢推定部101は、上記のステップS810で取得された第2の中央値の全てが、上記のステップS804で取得された第2の中央値全体の下位b2%未満であるか否かを判定する(ステップS811)。ここで、b2は予め設定されたパラメータであり、0より大きい値が予め設定される。一例として、b2=25等とすることが考えられる。
【0112】
なお、b
1<(100-b
2)とすることが好ましい。これは、第2の中央値Mが上位b
1%以上と判定された場合は横臥(注意)と推定され、スコアSはリセットされないのに対して、上記のステップS810で取得された第2の中央値の全てが下位b
2%未満と判定された場合には、後述するステップS812で起立と推定され、スコアSがリセットされる(
図14のステップS702)ためである。
【0113】
上記ステップS811で、上記のステップS810で取得された第2の中央値の全てが第2の中央値全体の下位b2%未満であると判定された場合、姿勢推定部101は、牛の姿勢を「起立」と推定する(ステップS812)。これは、該当の時間の間(つまり、例えば、直近の過去10分間)では相対的に差分気圧センサ値が低く、牛が起立状態であると考えられるためである。
【0114】
一方で、ステップS811で、上記のステップS810で取得された第2の中央値の全てが第2の中央値全体の下位b2%未満であると判定されなかった場合、姿勢推定部101は、当該時間の間の直前の所定の時間の間(つまり、過去20分前から10分前までの10分間)の第2の中央値(つまり、第2の中央値M2)を取得する(ステップS813)。
【0115】
次に、姿勢推定部101は、ΔM=M-M2=M1-M2を算出する(ステップS814)。
【0116】
次に、姿勢推定部101は、ΔM<b3であるか否かを判定する(ステップS815)。ここで、b3は予め設定されたパラメータであり、任意の値が設定される。一例として、b3=-0.03等とすることが考えられる。
【0117】
上記のステップS815でΔM<b3であると判定された場合、姿勢推定部101は、ステップS812に進む。これにより、牛の姿勢が「起立」と推定される。この場合、例えば、過去20分前から10分前の10分間の差分気圧センサ値よりも、過去10分前から現在までの10分間の差分気圧センサ値の方が相対的に低く、牛が起立状態になったと考えられるためである。
【0118】
一方で、上記のステップS815でΔM<b3であると判定されなかった場合、姿勢推定部101は、ΔM>b4であるか否かを判定する(ステップS816)。ここで、b4は予め設定されたパラメータであり、任意の値が設定される。一例として、b4=0.025等とすることが考えられる。
【0119】
上記のステップS816でΔM>b4であると判定された場合、姿勢推定部101は、牛の姿勢を「横臥(通常)」と推定する(ステップS817)。これは、該当の時間の間(つまり、例えば、直近の過去10分間)では、その1つ前の時間の間(つまり、例えば、過去20分前から10分前までの10分間)よりも相対的に差分気圧センサ値が高く、牛が通常の行動として横臥状態になったと考えられるためである。
【0120】
一方で、上記のステップS816でΔM>b4であると判定されなかった場合、姿勢推定部101は、直前の姿勢推定結果(つまり、上記のステップS805で取得された姿勢推定結果)を、今回の姿勢推定結果とする(ステップS818)。
【0121】
<実施例3の効果>
ここで、実施例3の効果について説明する。上述したように、実施例3では、「横臥」を、スコアSの加算対象とする姿勢を示す「横臥(注意)」と、スコアSの加算対象としない(かつ、スコアSのリセットもしない)姿勢を示す「横臥(通常)」とに分割する。そして、牛の姿勢が「横臥(注意)」と推定された場合にはスコアSの加算を行う一方で、牛の姿勢が「横臥(通常)」と推定された場合にはスコアSの加算は行わない。これにより、実施例3では、牛が通常の横臥状態であるにも関わらず、牛に異常が発生したと特定されてしまう事態を防止することが可能となる。
【0122】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【0123】
1 特定システム
10 特定装置
20 タグ
30 基準気圧センサ
100 特定処理部
101 姿勢推定部
102 スコア算出部
103 異常特定部
200 測定データ記憶部
300 基準気圧データ記憶部