(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024145248
(43)【公開日】2024-10-15
(54)【発明の名称】異常検知装置、異常検知方法、及びプログラム
(51)【国際特許分類】
A01K 29/00 20060101AFI20241004BHJP
【FI】
A01K29/00 A
【審査請求】有
【請求項の数】5
【出願形態】OL
(21)【出願番号】P 2023057521
(22)【出願日】2023-03-31
(71)【出願人】
【識別番号】000102717
【氏名又は名称】NTTテクノクロス株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】佐々木 克敏
(72)【発明者】
【氏名】吉野 航矢
(72)【発明者】
【氏名】赤野間 信行
(72)【発明者】
【氏名】大家 眸美
(57)【要約】 (修正有)
【課題】家畜の異常を精度良く検知できる技術を提供する。
【解決手段】異常検知装置は、家畜に装着された加速度センサ及び気圧センサが測定した加速度データ及び気圧データを記憶する記憶部と、気圧データに基づいて、所定の時間幅毎に、家畜が立っている状態を表す起立状態、又は、家畜が寝ている状態を表す寝状態、のいずれであるかを推定する第1の推定部と、寝状態であると推定された場合、四肢を投げ出し横倒しになっている状態を表す横臥状態、又は、横臥と、膝を下ろし、胸を起こした状態を表す伏臥とを繰り返している状態を表すゴロゴロ状態、のいずれであるかを推定する第2の推定部と、起立状態、横臥状態、又はゴロゴロ状態のいずれであると推定されたかに応じて、加速度データに基づいて、時間幅毎に、家畜の暴れ具合を表す第1のスコアを算出するスコア算出部と、第1のスコアに基づいて、家畜に異常が発生したことを検知する検知部と、を有する。
【選択図】
図8
【特許請求の範囲】
【請求項1】
家畜の異常を検知する異常検知装置であって、
前記家畜に装着された機器が備える加速度センサ及び気圧センサがそれぞれ測定した加速度データ及び気圧データを記憶する記憶部と、
1以上の前記気圧データに基づいて、所定の時間幅毎に、前記家畜が、前記家畜が立っている状態を表す起立状態、又は、前記家畜が寝ている状態を表す寝状態、のいずれであるかを推定する第1の推定部と、
前記家畜が寝状態であると推定された場合、前記家畜が、前記家畜が四肢を投げ出し横倒しになっている状態を表す横臥状態、又は、前記横臥状態と、前記家畜が膝を下ろし、胸を起こした状態を表す伏臥状態とを繰り返している状態を表すゴロゴロ状態、のいずれであるかを推定する第2の推定部と、
前記家畜が、前記起立状態、前記横臥状態、又は前記ゴロゴロ状態のいずれであると推定されたかに応じて、1以上の前記加速度データに基づいて、前記時間幅毎に、前記家畜の暴れ具合を表す第1のスコアを算出するスコア算出部と、
前記第1のスコアに基づいて、前記家畜に異常が発生したことを検知する検知部と、
を有する異常検知装置。
【請求項2】
前記スコア算出部は、
前記家畜が前記起立状態であると推定された場合、現在の前記時間幅における前記第1のスコアを0と算出し、
前記家畜が横臥状態であると推定された場合、1以上の前記加速度データに基づいて、現在の前記時間幅における前記家畜の暴れ具合を表す第2のスコアを算出し、1つ前の前記時間幅における前記第1のスコアに対して前記第2のスコアを加算することで、現在の前記時間幅における前記第1のスコアを算出し、
前記家畜が前記ゴロゴロ状態であると推定された場合、1つ前の前記時間幅における前記第1のスコアを、現在の前記時間幅における前記第1のスコアとして算出する、請求項1に記載の異常検知装置。
【請求項3】
前記加速度センサは、前記家畜が起立した状態で前記家畜の進行方向に対して右方向をx軸の正の方向、前記進行方向をy軸の正の方向、重力方向をz軸の方向とする3軸加速度センサであり、
前記第2の推定部は、
1以上の前記加速度データそれぞれに含まれる1以上のx成分加速度値及び1以上のz成分加速度値に基づいて、前記ゴロゴロ状態を表す所定の特徴が1以上の前記x成分加速度値又は1以上の前記z成分加速度値に現れる場合は前記家畜が前記ゴロゴロ状態であると推定し、前記ゴロゴロ状態であると推定されなかった場合は前記家畜が前記横臥状態であると推定する、請求項1又は2に記載の異常検知装置。
【請求項4】
家畜の異常を検知する異常検知装置が、
前記家畜に装着された機器が備える加速度センサ及び気圧センサがそれぞれ測定した加速度データ及び気圧データを記憶部に記憶する記憶手順と、
1以上の前記気圧データに基づいて、所定の時間幅毎に、前記家畜が、前記家畜が立っている状態を表す起立状態、又は、前記家畜が寝ている状態を表す寝状態、のいずれであるかを推定する第1の推定手順と、
前記家畜が寝状態であると推定された場合、前記家畜が、前記家畜が四肢を投げ出し横倒しになっている状態を表す横臥状態、又は、前記横臥状態と、前記家畜が膝を下ろし、胸を起こした状態を表す伏臥状態とを繰り返している状態を表すゴロゴロ状態、のいずれであるかを推定する第2の推定手順と、
前記家畜が、前記起立状態、前記横臥状態、又は前記ゴロゴロ状態のいずれであると推定されたかに応じて、1以上の前記加速度データに基づいて、前記時間幅毎に、前記家畜の暴れ具合を表す第1のスコアを算出するスコア算出手順と、
前記第1のスコアに基づいて、前記家畜に異常が発生したことを検知する検知手順と、
を実行する異常検知方法。
【請求項5】
家畜の異常を検知する異常検知装置に、
前記家畜に装着された機器が備える加速度センサ及び気圧センサがそれぞれ測定した加速度データ及び気圧データを記憶部に記憶する記憶手順と、
1以上の前記気圧データに基づいて、所定の時間幅毎に、前記家畜が、前記家畜が立っている状態を表す起立状態、又は、前記家畜が寝ている状態を表す寝状態、のいずれであるかを推定する第1の推定手順と、
前記家畜が寝状態であると推定された場合、前記家畜が、前記家畜が四肢を投げ出し横倒しになっている状態を表す横臥状態、又は、前記横臥状態と、前記家畜が膝を下ろし、胸を起こした状態を表す伏臥状態とを繰り返している状態を表すゴロゴロ状態、のいずれであるかを推定する第2の推定手順と、
前記家畜が、前記起立状態、前記横臥状態、又は前記ゴロゴロ状態のいずれであると推定されたかに応じて、1以上の前記加速度データに基づいて、前記時間幅毎に、前記家畜の暴れ具合を表す第1のスコアを算出するスコア算出手順と、
前記第1のスコアに基づいて、前記家畜に異常が発生したことを検知する検知手順と、
を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、異常検知装置、異常検知方法、及びプログラムに関する。
【背景技術】
【0002】
肥育牛では、肥育後期に起立困難等の異常が発生し易いことが知られている。起立困難を放置すると、窒息等により牛が死亡することがあるため、牛を肥育する肥育農家では、牛舎の見回り等を行って、起立困難等の異常が牛に発生していないかを確認している。
【0003】
また、繁殖牛でも産前産後に起立困難等の異常が発生し易いことが知られており、繁殖農家は、同様に、牛舎の見回り等を行って、起立困難等の異常が牛に発生していないかを確認している。
【0004】
更に、鼓脹症等の異常によって牛が起立困難となる場合もある。鼓脹症とは、牛等の反芻動物の家畜に起こり得る病気であり、例えば、青草等の発酵性飼料を過食した際等に発症する場合がある。鼓脹症が発症した場合、牛の腹部が膨脹するため、牛は起立困難となる。
【0005】
上記のような起立困難な状態を異常として特定する技術が従来から知られている(例えば、特許文献1等)。
【先行技術文献】
【特許文献】
【0006】
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、従来技術では、起立困難といった異常を検知する際の検知精度が高くない場合があり、誤検知が発生することがあった。例えば、牛が横臥と呼ばれる状態と伏臥と呼ばれる状態とを繰り返す動きを行っている場合、これを起立困難な状態であると誤って検知されることがある。
【0008】
本開示は、上記の点に鑑みてなされたもので、家畜の異常を精度良く検知できる技術を提供する。
【課題を解決するための手段】
【0009】
本開示の一態様による異常検知装置は、家畜の異常を検知する異常検知装置であって、前記家畜に装着された機器が備える加速度センサ及び気圧センサがそれぞれ測定した加速度データ及び気圧データを記憶する記憶部と、1以上の前記気圧データに基づいて、所定の時間幅毎に、前記家畜が、前記家畜が立っている状態を表す起立状態、又は、前記家畜が寝ている状態を表す寝状態、のいずれであるかを推定する第1の推定部と、前記家畜が寝状態であると推定された場合、前記家畜が、前記家畜が四肢を投げ出し横倒しになっている状態を表す横臥状態、又は、前記横臥状態と、前記家畜が膝を下ろし、胸を起こした状態を表す伏臥状態とを繰り返している状態を表すゴロゴロ状態、のいずれであるかを推定する第2の推定部と、前記家畜が、前記起立状態、前記横臥状態、又は前記ゴロゴロ状態のいずれであると推定されたかに応じて、1以上の前記加速度データに基づいて、前記時間幅毎に、前記家畜の暴れ具合を表す第1のスコアを算出するスコア算出部と、前記第1のスコアに基づいて、前記家畜に異常が発生したことを検知する検知部と、を有する。
【発明の効果】
【0010】
家畜の異常を精度良く検知できる技術が提供される。
【図面の簡単な説明】
【0011】
【
図1】本実施形態に係る異常検知システムの全体構成の一例を示す図である。
【
図2】測定データ記憶部に記憶されている測定データの一例を示す図である。
【
図3】牛の横臥状態及び伏臥状態の一例を示す図である。
【
図4】ゴロゴロ状態における加速度センサ値の特徴を説明するための図である。
【
図5】本実施形態に係る異常検知処理部の機能構成の一例を示す図である。
【
図6】本実施形態に係る異常検知処理の一例を示すフローチャートである。
【
図7】本実施形態に係る姿勢推定処理の一例を示すフローチャートである。
【
図8】本実施形態に係るゴロゴロ状態推定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、本発明の一実施形態について説明する。以下の実施形態では、家畜の一例として牛を想定し、牛の起立困難な状態を異常として精度良く検知できる異常検知システム1について説明する。ここで、起立困難な状態とは、例えば、牛等の家畜が脚を上に向けて藻掻いている状態のことである。起立困難な状態が続くと、牛では第一胃にガスが溜まり窒息死してしまうことがある。
【0013】
ただし、牛は家畜の一例であって、以下の実施形態が適用可能な家畜は牛に限られるものではない。
【0014】
<異常検知システム1の全体構成例>
本実施形態に係る異常検知システム1の全体構成例を
図1に示す。
図1に示すように、本実施形態に係る異常検知システム1には、牛の起立困難状態を異常として検知する異常検知装置10と、1頭以上の牛にそれぞれ装着された1以上のタグ20と、基準となる気圧を測定する基準気圧センサ30とが含まれる。なお、タグ20は、ベルト等によって牛の首部分に固定して装着されることが好ましい。
【0015】
タグ20は、牛に装着される機器である。1頭の牛に対して1つのタグ20が装着されている。タグ20には、当該タグ20を装着している牛の加速度(x軸、y軸及びz軸の3軸の加速度)を測定する加速度センサと、気圧を測定する気圧センサとが含まれる。ここで、x軸、y軸及びz軸で構成される座標系はタグ20に固定されており、タグ20は、例えば、牛が起立し、かつ、首が曲がっていない(真っ直ぐの)状態で、当該牛の進行方向に対して右方向をx軸の正の方向、当該進行方向をy軸の正の方向、重力方向をz軸の正の方向となるように装着される。ただし、牛に対する各軸(x軸、y軸及びz軸)の方向はこれに限られず、座標系における各軸の相対的な位置関係は保ったままで各軸が任意の方向となるようにタグ20を牛に装着することが可能である。
【0016】
タグ20は、所定の時間幅Δs毎に、加速度センサにより測定した加速度センサ値と、気圧センサにより測定された気圧センサ値とが含まれる測定データを異常検知装置10に送信する。異常検知装置10に送信された測定データは、後述する測定データ記憶部200に蓄積(記憶)される。ここで、Δsは加速度センサと気圧センサのセンシング周期であり、例えば、Δs=2〔秒〕等である。
【0017】
基準気圧センサ30は、牛舎内の所定の位置(例えば、牛舎内の地面上等)に設置され、基準となる気圧を測定する。基準気圧センサ30は、所定の時間幅Δs'毎に、測定した気圧を示す基準気圧センサ値が含まれる基準気圧データを異常検知装置10に送信する。異常検知装置10に送信された基準気圧データは、後述する基準気圧データ記憶部300に蓄積(記憶)される。ここで、Δs'は基準気圧センサ30のセンシング周期であり、例えば、Δs'=Δsである。以下、Δs'=Δsであるものとして説明するが、Δs'≠Δsであってもよい。
【0018】
異常検知装置10は、牛の起立困難状態(例えば、肥育後期に発生する起立困難状態、産前産後に発生する起立困難状態、鼓脹症による起立困難状態等)を異常として検知する汎用サーバ等のコンピュータ又はコンピュータシステムである。異常検知装置10は、異常検知処理部100と、測定データ記憶部200と、基準気圧データ記憶部300とを有する。
【0019】
異常検知処理部100は、測定データ記憶部200に記憶されている測定データと、基準気圧データ記憶部300に記憶されている基準気圧データとを用いて、牛の異常を検知する。異常検知処理部100は、例えば、異常検知装置10にインストールされた1以上のプログラムが、CPU(Central Processing Unit)等のプロセッサに実行させる処理により実現される。
【0020】
測定データ記憶部200は、タグ20から受信した測定データを記憶する。測定データ記憶部200は、例えば、HDD(Hard Disk Drive)、SSD(Solid State Drive)、フラッシュメモリ等の記憶装置を用いて実現可能である。測定データ記憶部200には、時間幅Δs毎に、複数の測定データが記憶(言い換えれば、測定データの時系列データが記憶)されている。なお、タグ20から受信した測定データは、例えば、異常検知処理部100により、測定データ記憶部200に記憶(蓄積)させればよい。
【0021】
基準気圧データ記憶部300は、基準気圧センサ30から受信した基準気圧データを記憶する。基準気圧データ記憶部300は、例えば、HDD、SSD、フラッシュメモリ等の記憶装置を用いて実現可能である。基準気圧データ記憶部300には、時間幅Δs'毎に、複数の基準気圧データが記憶(言い換えれば、基準気圧データの時系列データが記憶)されている。なお、基準気圧センサ30から受信した基準気圧データは、例えば、異常検知処理部100により、基準気圧データ記憶部300に記憶(蓄積)させればよい。
【0022】
なお、
図1に示す異常検知システム1の全体構成例は一例であって、他の構成であってもよい。例えば、異常検知装置10が有する異常検知処理部100、測定データ記憶部200及び基準気圧データ記憶部300は、複数のサーバ(クラウドサーバも含む。)上に分散して配置されていてもよい。
【0023】
<測定データ記憶部200に記憶されている測定データ>
測定データ記憶部200に記憶されている測定データの一例を
図2に示す。
図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】
このように、測定データ記憶部200に記憶されている測定データには、タグID毎に、日時と、加速度センサ値と、気圧センサ値とが含まれている。なお、Δs=ti+1-ti(iは1以上の整数)である。
【0028】
なお、一般に、測定データには欠損が生じたり、ノイズが生じたりする場合もあり得るが、以下では、測定データ記憶部200には、欠損補完(リサンプリング)やノイズ除去処理等が行われた測定データが記憶されているものとする。同様に、基準気圧データ記憶部300も、欠損補完(リサンプリング)やノイズ除去処理等が行われた基準気圧データが記憶されているものとする。
【0029】
<牛の姿勢分類>
以下、牛の姿勢分類について説明する。牛の姿勢は、牛が立っている状態を表す「起立状態」と牛が寝ている状態を表す「寝状態」に大別できる。
【0030】
・起立状態
牛が立っている状態のことであり、起立状態では起立困難状態が生じることはない。
【0031】
・寝状態
牛が寝ている状態のことであり、一般に、横臥状態と伏臥状態に大別できる。横臥状態と伏臥状態の一例を
図3に示す。横臥状態及び伏臥状態はいずれも牛が寝ている状態(寝姿勢)のことであるが、横臥状態は牛が四肢を投げ出して横倒しになっている状態のことであり(
図3(a))、伏臥状態は牛が膝を下ろし、胸を起こした状態のことである(
図3(b))。
【0032】
横臥状態が長き、牛の脚が天井方向を向き始めると起立困難な状態に陥る可能性がある。このため、横臥状態が或る程度の時間継続した場合、牛に起立困難状態が生じる危険性があるといえる。一方で、伏臥状態では牛に起立困難状態が生じる危険性はない。
【0033】
本件発明者は、起立困難を異常として検知する従来技術(例えば、特開2019-97475号公報等に記載されている従来技術)では、横臥状態と伏臥状態を繰り返す動きを行っている場合に起立困難状態と誤検知されることがあることを見出した。そこで、以下、牛が横臥状態と伏臥状態を繰り返す動き(つまり、横臥状態から伏臥状態への遷移と伏臥状態から横臥状態への遷移とを繰り返す動き)を行っている場合でも誤検知を抑制することができる異常検知手法について提案する。
【0034】
以下、牛が横臥状態と伏臥状態を繰り返す動き行っている状態のことを「ゴロゴロ状態」と呼ぶことにする。また、以下、牛の姿勢は「起立状態」と「寝状態」に大別され、「寝状態」は更に「横臥状態」と「ゴロゴロ状態」に分類されるものとする。「寝状態」には「伏臥状態」も含まれ得るが、伏臥状態では牛に起立困難状態が生じる危険性はないため、「寝状態」としては、牛に起立困難状態が生じる危険性がある「横臥状態」と従来技術では誤検知の恐れある「ゴロゴロ状態」の2つのみを考えるものとする。なお、本実施形態では、姿勢とは静的な姿勢(起立状態、横臥状態、伏臥状態)だけでなく、動的な姿勢(ゴロゴロ状態)も含むことに留意されたい。
【0035】
<異常検知手法>
本異常検知手法では、起立困難を異常として検知する従来技術(例えば、特開2019-97475号公報等に記載されている従来技術)と同様に、現在までの或る時間幅Δにおける測定データに含まれる加速度センサ値を用いて、或る時間幅Δ1(<Δ)毎にL2ノルムの標準偏差を算出した上で、その標準偏差からスコアと呼ぶ指標値を算出する。そして、このスコアの合計が或る閾値を超えた場合は異常、そうでない場合は正常とする。また、このとき、牛の姿勢が「起立状態」である場合はスコアを0にリセットし、「横臥状態」である場合はスコアを加算し、「ゴロゴロ状態」である場合はスコアのリセット及び加算のいずれも行わないようにする。
【0036】
ここで、牛の姿勢が「起立状態」又は「寝状態」のいずれであるかは、従来技術(例えば、特開2019-97475号公報等に記載されている従来技術)と同様に、気圧センサ値と基準気圧センサ値を利用した気圧分析により推定することができる。一方で、牛の姿勢が「寝状態」であると推定された場合であっても、「ゴロゴロ状態」であるか否かは気圧分析では推定することができない。これに対して、本件発明者は、ゴロゴロ状態では加速度センサ値のx成分及びz成分に特徴的な傾向が見られることを見出した。以下、一例として、ゴロゴロ状態におけるx成分加速度センサ値の特徴について、
図4を参照しながら説明する。なお、z成分加速度センサ値についても同様の特徴が見られる。
【0037】
図4に示すように、ゴロゴロ状態では、x成分加速度センサ値の変動幅が大きいという特徴が見られる(特徴1)。また、ゴロゴロ状態では、動きが弱い時間帯が多いという特徴が見られる(特徴2)。これらの特徴はゴロゴロ状態における牛を観察して得られる経験的事実と合致する。すなわち、ゴロゴロ状態ではタグ20が装着されている首部分の角度が変化するため(つまり、x軸に作用する重力加速度成分が変化するため)、x軸のレンジが変化するという経験的事実と特徴1が合致する。また、横臥状態と伏臥状態との間の遷移(姿勢変化)は頻繁には行われないという経験的事実と特徴2が合致する。このため、上記の特徴1及び2は、ゴロゴロ状態の特徴を表しているといえる。
【0038】
したがって、気圧分析により牛の姿勢が「寝状態」であると推定された場合に、上記の特徴1及び2が加速度センサ値に現れるか否かを判定することにより、牛がゴロゴロ状態であるか否か推定することができる。
【0039】
なお、起立困難状態では牛が脚を上に向けて藻掻いているため、各軸の重力加速度成分はあまり変化せず、上記の特徴1は現れない。また、牛が藻掻くことにより継続的に強い動きが行われ、上記の特徴2も現れない。
【0040】
<異常検知処理部100の機能構成例>
本実施形態に係る異常検知処理部100の機能構成例を
図5に示す。
図5に示すように、本実施形態に係る異常検知処理部100には、姿勢推定部101と、スコア算出部102と、異常検知部103とが含まれる。
【0041】
姿勢推定部101は、異常検知対象の牛の過去Δ前から現在までの測定データに含まれる気圧センサ値と、過去Δ前から現在までの基準気圧データに含まれる基準気圧センサ値とに基づいて、気圧分析により当該牛の姿勢が起立状態又は寝状態のいずれであるかを推定する。また、姿勢推定部101は、当該牛の姿勢が寝状態であると推定された場合、当該測定データに含まれる加速度センサ値に基づいて、当該牛の姿勢が横臥状態又はゴロゴロ状態のいずれであるかを推定する。ここで、Δは後述する異常検知処理の実行間隔を表す時間幅であり、例えば、Δ=600〔秒〕=10〔分〕等である。
【0042】
スコア算出部102は、姿勢推定部101によって推定された姿勢に応じて、当該牛が起立困難状態であるか否かを判定するためのスコアSを算出する。
【0043】
異常検知部103は、スコア算出部102によって算出されたスコアSを用いて、当該牛が起立困難状態であることを異常として検知する。異常検知部103は、例えば、当該スコアSが所定の閾値を超えている場合に牛に異常が発生したものとして、これを検知する。
【0044】
<異常検知処理>
以下、本実施形態に係る異常検知処理について、
図6を参照しながら説明する。以下のステップS101~ステップS107は、時間幅Δ毎に繰り返し実行される。なお、以下では、簡単のため、或る1頭の牛の異常検知を行う場合について説明する。複数の牛の異常検知を行う場合には、各牛に関して以下のステップS101~ステップS107の異常検知処理をそれぞれ実行すればよい。
【0045】
異常検知処理部100の姿勢推定部101は、異常検知対象の牛の現在の姿勢を推定する(ステップS101)。なお、本ステップの処理(姿勢推定処理)の詳細については後述する。
【0046】
異常検知処理部100は、上記のステップS101で推定された姿勢が「起立状態」、「横臥状態」、「ゴロゴロ状態」のいずれであるかを判定する(ステップS102)。
【0047】
上記のステップS102で「ゴロゴロ状態」であると判定された場合、異常検知処理部100は、何もしない(つまり、スコアSのリセットも加算もしない。)。
【0048】
上記のステップS102で「起立状態」であると判定された場合、異常検知処理部100のスコア算出部102は、スコアSを0にリセットする(ステップS103)。
【0049】
上記のステップS102で「横臥状態」であると判定された場合、又は、ステップS103に続いて、異常検知処理部100のスコア算出部102は、スコアsを算出する(ステップS104)。例えば、スコア算出部102は、以下の手順1~手順4によりスコアsを算出する。
【0050】
手順1:スコア算出部102は、測定データ記憶部200に記憶されている測定データのうち、異常検知対象の牛に装着されているタグ20を識別するタグIDの測定データであって、かつ、過去Δ前から現在までの測定データに含まれる加速度センサ値(x成分加速度センサ値、y成分加速度センサ値及びz成分加速度センサ値)を取得する。以下、簡単のため、過去Δ前から現在までの日時を表すインデックス(時刻インデックス)をt=1,・・・,Tとして、手順1で取得された加速度センサ値の集合を{(xt,yt,zt)|t=1,・・・,T}とする。なお、例えば、Δ=600〔秒〕、Δs=2〔秒〕である場合、T=300である。
【0051】
なお、後述するゴロゴロ状態推定処理のステップS301(
図8)でも加速度センサ値の集合{(x
t,y
t,z
t)|t=1,・・・,T}が取得されるため、この集合が記憶領域に保持されている場合には上記の手順1は実行されなくてもよい。
【0052】
手順2:スコア算出部102は、各加速度センサ値(xt,yt,zt)のL2ノルムを算出する。すなわち。スコア算出部102は、各t=1,・・・,Tに対して、Lt=(|xt|2+|yt|2+|zt|2)1/2を算出する。
【0053】
手順3:スコア算出部102は、時間幅Δ1(ただし、Δ1<Δ)毎に、L2ノルムの標準偏差を算出する。ここで、Δ1は標準偏差の算出対象となる時間幅であり、所定の整数Nに対してΔ1=Δ/Nとなる時間幅である。例えば、Δ=600〔秒〕のとき、N=10として、Δ1=60〔秒〕等とすればよい。以下、手順2で算出されたL2ノルムの標準偏差をσdとして、L2ノルムの標準偏差の集合を{σd|d=1,・・・,D}とする。なお、Δ=600〔秒〕、Δs=2〔秒〕、Δ1=60〔秒〕である場合、D=10である。
【0054】
手順4:そして、スコア算出部102は、L2ノルムの標準偏差の集合{σd|d=1,・・・,D}を用いて、過去Δ前から現在までの間において、L2ノルムの標準偏差が所定の上限値を超えた後に所定の下限値を下回った回数と、L2ノルムの標準偏差が当該下限値を下回った後に当該上限値を超えた回数とをカウントし、その合計をスコアsとして算出する。なお、これらの上限値及び下限値は予め設定されたパラメータであり、例えば、経験則等に基づいて決定される。
【0055】
例えば、上限値をsup、下限値をinfとして、L2ノルムの標準偏差を時系列順に並べるとσ1,・・・,σDであるものとする。このとき、例えば、或るdでsup<σdとなった後に、或るd'(>d)でσd'<infとなった場合、これを1回とカウントする。同様に、例えば、或るdでσd<infとなった後に、或るd'(>d)でsup<σd'となった場合、これを1回とカウントする。
【0056】
なお、上記のスコアsは、加速度センサ値のL2ノルムの時間幅Δの間の標準偏差が上限値を超えた後に下限値を下回った回数と、下限値を下回った後に上限値を超えた回数との合計であるため、牛が継続的に強い動きを行っている場合にその値が高くなる。これは、一般に、起立困難状態では牛が藻掻くため、継続的に強い動きを行う傾向(言い換えれば、寝状態で、継続的に暴れる傾向)があるためである。この意味で、スコアsは、直近の過去Δの間における牛の暴れ具合を表す指標値であるとも言える。
【0057】
ステップS104に続いて、異常検知処理部100のスコア算出部102は、上記のステップS104で算出したスコアsをスコアSに加算する(ステップS105)。
【0058】
異常検知処理部100の異常検知部103は、スコアSが所定の閾値th1を超えたか否かを判定する(ステップS106)。なお、閾値th1は予め設定されたパラメータであり、その値は、適宜、任意の値に設定され得るが、例えば、15~35程度に設定することが考えられ、特に25程度に設定することが好ましい。
【0059】
上記のステップS106でスコアSが閾値th1を超えたと判定された場合、異常検知処理部100の異常検知部103は、異常検知対象の牛に異常が発生(つまり、当該牛が起立困難状態である)ことを検知する(ステップS107)。なお、異常検知部103は、例えば、異常検知装置10と通信ネットワークを介して接続される端末(例えば、牧場主が利用するスマートフォン等)に対して、この異常検知結果を通知してもよい。このとき、当該異常検知結果には、例えば、異常の発生日時、異常が発生した牛を識別する情報(例えば、タグID等)、異常の種別を示す情報(例えば、起立困難を示すコード等)といった情報が含まれる。これにより、当該端末では、例えば、牛に異常が発生したことを示すアラートを発報する、といったことが可能となる。
【0060】
なお、上記のステップS107でスコアSが閾値th1を超えたと判定されなかった場合、異常検知処理部100は、何もしない。
【0061】
≪姿勢推定処理≫
以下、
図6のステップS101における姿勢推定処理の詳細について、
図7を参照しながら説明する。
【0062】
姿勢推定部101は、測定データ記憶部200に記憶されている測定データのうち、異常検知対象の牛に装着されているタグ20を識別するタグIDの測定データであって、かつ、過去Δ前から現在までの測定データに含まれる気圧センサ値と、過去Δ前から現在までの基準気圧データに含まれる基準気圧センサ値とを取得する(ステップS201)。以下、簡単のため、過去Δ前から現在までの日時を表すインデックス(時刻インデックス)をt=1,・・・,Tとして、本ステップで取得された気圧センサ値の集合を{pt|t=1,・・・,T}、基準気圧センサ値の集合を{qt|t=1,・・・,T}とする。
【0063】
姿勢推定部101は、上記のステップS201で取得した気圧センサ値及び基準気圧センサ値を用いて、差分気圧センサ値を算出する(ステップS202)。差分気圧センサ値とは、同一日時における気圧センサ値から基準気圧センサ値を減算したものである。すなわち、姿勢推定部101は、t=1,・・・,Tに対して、rt:=pt-qtにより差分気圧センサ値rtを算出する。
【0064】
姿勢推定部101は、上記のステップS202で算出した差分気圧センサ値rt(t=1,・・・,T)を用いて、異常検知対象の牛の現在の姿勢が「起立状態」又は「寝状態」のいずれであるかを推定する(ステップS203)。すなわち、姿勢推定部101は、例えば、差分気圧センサ値rt(t=1,・・・,T)の平均値等といった指標値を算出した上で、この指標値が所定の閾値th2(<0)よりも大きい場合は当該牛の姿勢を「寝状態」、そうでない場合は当該牛の姿勢を「起立状態」と推定する。なお、閾値th2は予め設定されたパラメータであり、その値は、適宜、任意の値に設定され得る。
【0065】
姿勢推定部101は、上記のステップS203で推定した姿勢が「起立状態」又は「寝状態」のいずれであるかを判定する(ステップS204)。
【0066】
上記のステップS203で「起立状態」であると判定された場合、姿勢推定部101は、当該牛の現在の姿勢の推定結果として「起立状態」を出力する(ステップS205)。
【0067】
一方で、上記のステップS203で「寝状態」であると判定された場合、姿勢推定部101は、当該牛の現在の姿勢が「ゴロゴロ状態」又は「ゴロゴロ状態でない」のいずれであるかを推定する(ステップS206)。なお、本ステップの処理(ゴロゴロ状態推定処理)の詳細については後述する。
【0068】
姿勢推定部101は、上記のステップS206で「ゴロゴロ状態」であると推定されたか否かを判定する(ステップS207)。
【0069】
上記のステップS207で「ゴロゴロ状態」であると推定されなかった場合(つまり、「ゴロゴロ状態でない」と推定された場合)、姿勢推定部101は、当該牛の現在の姿勢の推定結果として「横臥状態」を出力する(ステップS208)。
【0070】
一方で、上記のステップS207で「ゴロゴロ状態」であると推定された場合、姿勢推定部101は、当該牛の現在の姿勢の推定結果として「ゴロゴロ状態」を出力する(ステップS209)。
【0071】
≪ゴロゴロ状態推定処理≫
以下、
図7のステップS206におけるゴロゴロ状態推定処理の詳細について、
図8を参照しながら説明する。
【0072】
姿勢推定部101は、測定データ記憶部200に記憶されている測定データのうち、異常検知対象の牛に装着されているタグ20を識別するタグIDの測定データであって、かつ、過去Δ前から現在までの測定データに含まれる加速度センサ値(x成分加速度センサ値、y成分加速度センサ値及びz成分加速度センサ値)を取得する(ステップS301)。以下、簡単のため、過去Δ前から現在までの日時を表すインデックス(時刻インデックス)をt=1,・・・,Tとして、本ステップで取得された加速度センサ値の集合を{(xt,yt,zt)|t=1,・・・,T}とする。
【0073】
姿勢推定部101は、上記のステップS301で取得された各加速度センサ値(xt,yt,zt)からx成分加速度センサ値xt及びz成分加速度センサ値ztを抽出する(ステップS302)。これにより、x成分及びz成分加速度センサ値の集合{(xt,zt)|t=1,・・・,T}が得られる。
【0074】
姿勢推定部101は、時間幅Δ1毎に、x成分加速度センサ値xtの標準偏差(以下、x成分標準偏差ともいう。)と、z成分加速度センサ値ztの標準偏差(以下、z成分標準偏差ともいう。)とを算出する(ステップS303)。以下、x成分標準偏差をσx,d、z成分標準偏差をσz,dとして、x成分標準偏差の集合を{σx,d|d=1,・・・,D}、z成分標準偏差の集合を{σz,d|d=1,・・・,D}とする。
【0075】
姿勢推定部101は、ゴロゴロ状態の特徴1及び2がx成分加速度センサ値xt(t=1,・・・,T)に現れているか否かを判定する(ステップS304)。ここで、姿勢推定部101は、以下の条件1-1及び1-2の両方を満たす場合はゴロゴロ状態の特徴1及び2がx成分加速度センサ値xt(t=1,・・・,T)に現れていると判定し、そうでない場合はゴロゴロ状態の特徴1及び2がx成分加速度センサ値xt(t=1,・・・,T)に現れていないと判定する。なお、特徴1が現れているか否かを判定するための条件が条件1-1に該当し、特徴2が現れているか否かを判定するための条件が条件1-2に該当する。
【0076】
条件1-1:xt(t=1,・・・,T)を降順に並べたときに大きい方からax1%目に該当する値(又は、それに最も近い値)をX1、小さい方からax2%目に該当する値(又は、それに最も近い値)をX2とする。すなわち、xt(t=1,・・・,T)の上位ax1%目に該当する値(又は、それに最も近い値)をX1、下位ax2%目に該当する値(又は、それに最も近い値)をX2とする。このとき、X1-X2≧bxである。ここで、ax1、ax2、bxは予め設定されたパラメータであり、その値は、適宜、任意の値に設定され得るが、例えば、ax1=5、ax2=5、bx=1500程度に設定することが好ましい。
【0077】
条件1-2:σx,d(d=1,・・・,D)のうち、σx,d≦cx1を満たすものの個数がcx2個以上である。ここで、cx1、cx2は予め設定されたパラメータであり、その値は、適宜、任意の値に設定され得るが、例えば、cx1=100、cx2=7程度に設定することが好ましい。
【0078】
上記のステップS304でゴロゴロ状態の特徴1及び2がx成分加速度センサ値xt(t=1,・・・,T)に現れていると判定されなかった場合、姿勢推定部101は、ゴロゴロ状態の特徴1及び2がz成分加速度センサ値zt(t=1,・・・,T)に現れているか否かを判定する(ステップS305)。ここで、姿勢推定部101は、以下の条件2-1及び2-2の両方を満たす場合はゴロゴロ状態の特徴1及び2がz成分加速度センサ値zt(t=1,・・・,T)に現れていると判定し、そうでない場合はゴロゴロ状態の特徴1及び2がz成分加速度センサ値zt(t=1,・・・,T)に現れていないと判定する。なお、特徴1が現れているか否かを判定するための条件が条件2-1に該当し、特徴2が現れているか否かを判定するための条件が条件2-2に該当する。
【0079】
条件2-1:zt(t=1,・・・,T)を降順に並べたときに大きい方からaz1%目に該当する値(又は、それに最も近い値)をZ1、小さい方からaz2%目に該当する値(又は、それに最も近い値)をZ2とする。すなわち、zt(t=1,・・・,T)の上位az1%目に該当する値(又は、それに最も近い値)をZ1、下位az2%目に該当する値(又は、それに最も近い値)をZ2とする。このとき、Z1-Z2≧bzである。ここで、az1、az2、bzは予め設定されたパラメータであり、その値は、適宜、任意の値に設定され得るが、例えば、az1=5、az2=5、bz=1500程度に設定することが好ましい。
【0080】
条件2-2:σz,d(d=1,・・・,D)のうち、σz,d≦cz1を満たすものの個数がcz2個以上である。ここで、cz1、cz2は予め設定されたパラメータであり、その値は、適宜、任意の値に設定され得るが、例えば、cz1=100、cz2=7程度に設定することが好ましい。
【0081】
上記のステップS305でゴロゴロ状態の特徴1及び2がz成分加速度センサ値zt(t=1,・・・,T)に現れていると判定されなかった場合、姿勢推定部101は、推定結果として「ゴロゴロ状態でない」を出力する(ステップS306)。
【0082】
一方で、上記のステップS304でゴロゴロ状態の特徴1及び2がx成分加速度センサ値xt(t=1,・・・,T)に現れていると判定された場合、又は、上記のステップS305でゴロゴロ状態の特徴1及び2がz成分加速度センサ値zt(t=1,・・・,T)に現れていると判定された場合、姿勢推定部101は、推定結果として「ゴロゴロ状態」を出力する(ステップS307)。
【0083】
なお、上記のゴロゴロ状態推定処理では、ステップS304の処理でNOとなった場合にステップS305の処理を実行したが、例えば、ステップS305の処理のNOとなった場合にステップS304の処理を実行してもよい。
【0084】
<検証>
上記の実施形態に係る異常検知システム1について、従来技術と比較して「検知漏れが増えないか」と「誤検知が減るか」という2つの観点で検証した。
【0085】
・「検知漏れが増えないか」について
過去に起立困難状態が発生した161件の事例の測定データを用いて、従来技術と比較して検知漏れが増えないかを検証した。なお、閾値th1は、th1=20と設定した。この検証の結果、従来技術と同数の異常が検知できており、検知漏れが増えないことが確認できた。
【0086】
・「誤検知が減るか」について
従来技術で過去に起立困難状態が誤検知された240件の事例の測定データを用いて、誤検知が減るかを検証した。この検証の結果、誤検知の件数が118件となり、誤検知数が122件削減されたことが確認できた。
【0087】
<変形例>
上記の実施形態では、異常検知処理、姿勢推定処理及びゴロゴロ状態推定処理で用いられているパラメータはすべての異常検知対象で共通したが、例えば、全部又は一部のパラメータが牛毎や牛舎毎に異なっていてもよい。例えば、ゴロゴロ状態推定処理で用いられるパラメータax1、ax2、bx、cx1、cx2、az1、az2、bz、cz1、cz2が牛毎や牛舎毎に異なっていてもよい。このとき、例えば、牛毎に異なるものとした場合、牛に装着されているタグ20のタグIDを「Tag」として、各パラメータはax1
(Tag)、ax2
(Tag)、bx
(Tag)、cx1
(Tag)、cx2
(Tag)、az1
(Tag)、az2
(Tag)、bz
(Tag)、cz1
(Tag)、cz2
(Tag)と表される。同様に、例えば、牛舎毎に異なるものとした場合、牛舎を識別する情報を「ID」として、各パラメータはax1
(ID)、ax2
(ID)、bx
(ID)、cx1
(ID)、cx2
(ID)、az1
(ID)、az2
(ID)、bz
(ID)、cz1
(ID)、cz2
(ID)と表される。これにより、例えば、牛の個体差や牛舎の環境等に応じて、より精度の良い異常検知が可能になることが期待できる。なお、牛の個体差としては、例えば、気性が荒い等といった性格の個体差が挙げられる。また、牛舎の環境としては、例えば、牛舎内の地面の凹凸やぬかるみの度合い等が挙げられる。
【0088】
<まとめ>
以上のように、本実施形態に係る異常検知システム1では、家畜が横臥状態と伏臥状態とを繰り返している状態(ゴロゴロ状態)を加速度センサ値から捉え、ゴロゴロ状態である場合には家畜の暴れ具合を表す指標値であるスコアsの算出を抑制する。これにより、家畜がゴロゴロ状態である場合を起立困難状態であると誤検知される事態を防止することが可能となり、その結果、家畜の異常を高精度に検知することが可能となる。
【0089】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲の記載から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。
【符号の説明】
【0090】
1 異常検知システム
10 異常検知装置
20 タグ
100 異常検知処理部
101 姿勢推定部
102 スコア算出部
103 異常検知部
200 測定データ記憶部
300 基準気圧データ記憶部