(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-09
(45)【発行日】2024-12-17
(54)【発明の名称】異常検知装置、異常検知方法、及びプログラム
(51)【国際特許分類】
A01K 29/00 20060101AFI20241210BHJP
【FI】
A01K29/00 A
(21)【出願番号】P 2022008211
(22)【出願日】2022-01-21
【審査請求日】2024-03-29
(73)【特許権者】
【識別番号】000102717
【氏名又は名称】NTTテクノクロス株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】大家 眸美
(72)【発明者】
【氏名】畠中 将徳
【審査官】家田 政明
(56)【参考文献】
【文献】特開2020-198829(JP,A)
【文献】国際公開第2019/039118(WO,A1)
【文献】米国特許出願公開第2019/0150406(US,A1)
【文献】米国特許出願公開第2021/0251195(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
A01K 29/00
(57)【特許請求の範囲】
【請求項1】
家畜の異常を検知する異常検知装置であって、
前記家畜に装着された機器が備える加速度センサ及び気圧センサがそれぞれ測定した加速度データ及び気圧データを記憶する記憶部と、
1以上の前記気圧データに基づいて、所定の時間幅毎に、前記家畜の姿勢が、前記家畜が立っている状態の姿勢を表す起立、又は、前記家畜が寝ている状態の姿勢を表す寝姿勢、のいずれであるかを推定する第1の姿勢推定部と、
前記家畜の姿勢が寝姿勢であると推定された場合、前記家畜の姿勢が、前記家畜が膝を下ろし、胸を起こした姿勢を表す伏臥、又は、前記家畜が四肢を投げ出し横倒しになっている姿勢を表す横臥、のいずれであるかを推定する第2の姿勢推定部と、
前記家畜の姿勢が、起立、伏臥、又は横臥のいずれであると推定されたかに応じて、1以上の前記加速度データに基づいて、所定の時間幅毎に、前記家畜の暴れ具合を表す第1のスコアを算出するスコア算出部と、
前記第1のスコアに基づいて、前記家畜に異常が発生したことを検知する検知部と、
前記家畜に異常が発生したことが検知された場合、前記異常の発生を所定の端末に通知する通知部と、
を有する異常検知装置。
【請求項2】
前記スコア算出部は、
前記家畜の姿勢が起立であると推定された場合、現在の時間幅における第1のスコアを0と算出し、
前記家畜の姿勢が横臥であると推定された場合、1以上の前記加速度データに基づいて、現在の時間幅における前記家畜の暴れ具合を表す第2のスコアを算出し、1つ前の時間幅における第1のスコアに対して前記第2のスコアを加算することで、現在の時間幅における第1のスコアを算出し、
前記家畜の姿勢が伏臥であると推定された場合、1つ前の時間幅における第1のスコアを、現在の時間幅における第1のスコアとして算出する、請求項1に記載の異常検知装置。
【請求項3】
前記検知部は、
前記第1のスコアが、予め設定された所定の閾値を超えている場合、前記家畜に異常が発生したことを検知する、請求項1又は2に記載の異常検知装置。
【請求項4】
前記検知部は、
前記家畜の姿勢が横臥であると継続的に推定された時間の長さが、予め設定された所定の閾値を超えている場合、前記家畜に異常が発生したことを検知する、請求項1乃至3の何れか一項に記載の異常検知装置。
【請求項5】
前記機器は、前記家畜の首部分に固定的に装着されており、
前記第2の姿勢推定部は、
重力方向を基準とした前記機器の角度に基づいて、前記家畜の姿勢が、前記伏臥又は前記横臥のいずれであるかを推定する、請求項1乃至4の何れか一項に記載の異常検知装置。
【請求項6】
前記第2の姿勢推定部は、
前記家畜の姿勢が前記起立であると推定されたときの前記機器の過去の角度の平均値を基本角度として算出し、
前記機器の現在の角度と前記基本角度との差が所定の閾値よりも小さい場合、前記家畜の姿勢が前記伏臥であると推定し、
前記機器の現在の角度と前記基本角度との差が所定の閾値よりも小さくない場合、前記家畜の姿勢が前記横臥であると推定する、請求項5に記載の異常検知装置。
【請求項7】
前記第2の姿勢推定部は、
前記家畜の姿勢が前記起立であると推定されたときであって、かつ、前記時間幅における前記機器の角度の変動量が所定の範囲内に収まっているときの前記機器の過去の角度の平均値を基本角度として算出する、請求項6に記載の異常検知装置。
【請求項8】
前記第2の姿勢推定部は、
前記機器の現在の角度と前記基本角度との差が所定の閾値よりも小さい場合、更に、現在の時間幅における前記機器の角度の分散又は標準偏差が所定の閾値よりも大きくない場合に、前記家畜の姿勢が前記伏臥であると推定し、前記分散又は標準偏差が所定の閾値よりも大きい場合は、前記家畜の姿勢が横臥であると推定する、請求項7に記載の異常検知装置。
【請求項9】
家畜の異常を検知する異常検知装置が、
前記家畜に装着された機器が備える加速度センサ及び気圧センサがそれぞれ測定した加速度データ及び気圧データを記憶部に記憶する記憶手順と、
1以上の前記気圧データに基づいて、所定の時間幅毎に、前記家畜の姿勢が、前記家畜が立っている状態の姿勢を表す起立、又は、前記家畜が寝ている状態の姿勢を表す寝姿勢、のいずれであるかを推定する第1の姿勢推定手順と、
前記家畜の姿勢が寝姿勢であると推定された場合、前記家畜の姿勢が、前記家畜が膝を下ろし、胸を起こした姿勢を表す伏臥、又は、前記家畜が四肢を投げ出し横倒しになっている姿勢を表す横臥、のいずれであるかを推定する第2の姿勢推定手順と、
前記家畜の姿勢が、起立、伏臥、又は横臥のいずれであると推定されたかに応じて、1以上の前記加速度データに基づいて、所定の時間幅毎に、前記家畜の暴れ具合を表す第1のスコアを算出するスコア算出手順と、
前記第1のスコアに基づいて、前記家畜に異常が発生したことを検知する検知手順と、
前記家畜に異常が発生したことが検知された場合、前記異常の発生を所定の端末に通知する通知手順と、
を実行する異常検知方法。
【請求項10】
コンピュータを、請求項1乃至8の何れか一項に記載の異常検知装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【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】
<異常検知システム1の全体構成>
本実施形態に係る異常検知システム1の全体構成を
図1に示す。
図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は、所定の時間Δ1(例えば、Δ1=2[s]等)毎に、加速度センサにより測定した加速度センサ値と、気圧センサにより測定された気圧センサ値とが含まれる測定データを異常検知装置10に送信する。異常検知装置10に送信された測定データは、後述する測定データ記憶部300に蓄積(記憶)される。
【0016】
基準気圧センサ30は、牛舎内の所定の位置(例えば、牛舎内の地面上等)に設置され、基準となる気圧を測定する。基準気圧センサ30は、所定の時間Δ2(例えば、Δ2=2[s]等)毎に、測定した気圧を示す基準気圧センサ値が含まれる基準気圧データを異常検知装置10に送信する。異常検知装置10に送信された基準気圧データは、後述する基準気圧データ記憶部400に蓄積(記憶)される。以下では、簡単のため、Δ2=Δ1であり、基準気圧センサ値と気圧センサ値のサンプリング時刻は同期しているものとする。なお、Δ2≠Δ1であるか、又はΔ2=Δ1であっても基準気圧センサ値と気圧センサ値のサンプリング時刻が同期していない場合は、適宜、リサンプリング等を行えばよい。
【0017】
異常検知装置10は、牛の起立困難を異常として検知する1以上のコンピュータである。異常検知装置10は、姿勢推定処理部100と、異常検知処理部200と、測定データ記憶部300と、基準気圧データ記憶部400と、タグ角度データ記憶部500と、姿勢データ記憶部600とを有する。
【0018】
姿勢推定処理部100は、測定データ記憶部300に記憶されている測定データと、基準気圧データ記憶部400に記憶されている基準気圧データとを用いて、牛の姿勢を推定する。ここで、本願の発明者は、実際の牛を観察した結果、牛の姿勢は大きく「起立」と「寝姿勢」に分類され、寝姿勢は更に横臥と伏臥に分類される、という知見を得た。また、伏臥と横臥の違いは、特に、顔の前方方向を軸とする首の回転角度に顕著に現れるという知見も得た。すなわち、起立及び伏臥時には首は曲がっておらず、真っ直ぐの状態であることが多いのに対して、横臥時には首が真っ直ぐではなく、顔の前方方向を軸として首が或る程度回転していることが多い、という知見を得た。そこで、本実施形態に係る姿勢推定処理部100は、これらの知見に基づいて、牛の姿勢が寝姿勢である場合は首の回転角度から牛の姿勢が伏臥又は横臥のいずれであるかを推定する。
【0019】
なお、起立とは、牛が立っている状態の姿勢のことである。一方で、伏臥と横臥はいずれも牛の寝姿勢のことであるが、一般的に、伏臥は膝を下ろし、胸を起こした姿勢(いわゆる座っている姿勢)であるのに対して、横臥は四肢を投げ出して横倒しになっている姿勢のことである。
【0020】
異常検知処理部200は、姿勢推定処理部100によって推定された姿勢と、測定データ記憶部300に記憶されている測定データとを用いて、牛の異常(起立困難)を検知する。ここで、本願の発明者は、実際の牛を観察した結果、同じ寝姿勢であっても伏臥は起立困難となっている可能性がほぼ無いのに対して、横臥は起立困難となっている可能性があるという知見を得た。そこで、異常検知処理部200は、この知見に基づいて、牛の姿勢が横臥である場合にのみ所定のスコアを増大させ、このスコアが或る閾値を超えた場合に牛が起立困難となっていることを検知する。
【0021】
なお、姿勢推定処理部100及び異常検知処理部200は、例えば、異常検知装置10にインストールされた1以上のプログラムが、CPU(Central Processing Unit)等のプロセッサに実行させる処理により実現される。ただし、姿勢推定処理部100及び異常検知処理部200の全部又は一部の機能が、異常検知装置10と通信ネットワークを介して接続されるクラウドサーバ等により実現されていてもよい。
【0022】
測定データ記憶部300は、各タグ20から受信した測定データを記憶する。測定データ記憶部300には、タグ20毎に、時間Δ1毎の測定データが記憶されている。なお、タグ20から受信した測定データは、例えば、姿勢推定処理部100又は異常検知処理部200により、測定データ記憶部300に蓄積(記憶)される。
【0023】
基準気圧データ記憶部400は、基準気圧センサ30から受信した基準気圧データを記憶する。基準気圧データ記憶部400には、時間Δ2毎の基準気圧データが記憶されている。なお、基準気圧センサ30から受信した基準気圧データは、例えば、姿勢推定処理部100又は異常検知処理部200により、基準気圧データ記憶部400に蓄積(記憶)される。
【0024】
タグ角度データ記憶部500は、牛の姿勢が伏臥又は横臥のいずれであるかを推定するためのタグ角度データを記憶する。なお、タグ角度データの詳細については後述する。
【0025】
姿勢データ記憶部600は、姿勢推定処理部100によって推定された姿勢を示す姿勢データを記憶する。
【0026】
なお、測定データ記憶部300、基準気圧データ記憶部400、タグ角度データ記憶部500及び姿勢データ記憶部600は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の記憶装置を用いて実現可能である。ただし、測定データ記憶部300、基準気圧データ記憶部400、タグ角度データ記憶部500及び姿勢データ記憶部600の全部又は一部の記憶部が、異常検知装置10と通信ネットワークを介して接続されるデータベースサーバ等により実現されていてもよい。
【0027】
<測定データ記憶部300に記憶されている測定データ>
本実施形態に係る測定データ記憶部300に記憶されている測定データの一例を
図2に示す。
図2に示すように、測定データ記憶部300には、タグを識別する情報であるタグID毎に、1以上の測定データが記憶されている。なお、1頭の牛に対して1つのタグ20が装着されていることから、タグIDは、牛を識別する情報(例えば、牛の個体識別情報等)であってもよい。以下では、タグIDと牛を識別する情報とを同一視し、タグIDにより牛を識別することができるものとする。
【0028】
各測定データには、日時と、加速度センサ値と、気圧センサ値とが含まれる。日時は、例えば、タグ20が測定データを送信した日時である。なお、日時は、異常検知装置10が測定データを受信した日時であってもよい。
【0029】
加速度センサ値は、タグ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成分加速度センサ値」とも表す。
【0030】
また、気圧センサ値は、タグ20に含まれる気圧センサにより測定された気圧の値である。例えば、日時「t1」の測定データには、気圧センサ値「p1」が含まれる。同様に、例えば、日時「t2」の測定データには、気圧センサ値「p2」が含まれる。
【0031】
このように、測定データ記憶部300に記憶されている測定データには、タグID毎に、日時と、加速度センサ値と、気圧センサ値とが含まれている。なお、Δ1=ti+1-ti(iは1以上の整数)である。
【0032】
<姿勢推定処理部100の機能構成>
本実施形態に係る姿勢推定処理部100の機能構成を
図3に示す。
図3に示すように、本実施形態に係る姿勢推定処理部100には、タグ角度算出部101と、基本角度算出部102と、姿勢推定部103とが含まれる。
【0033】
タグ角度算出部101は、所定の時間Δ3(例えば、Δ3=1[m]等)毎に、各牛のタグ角度をそれぞれ算出する。このとき、タグ角度算出部101は、当該牛の現在の測定データに含まれるx成分加速度センサ値及びz成分加速度センサ値のそれぞれから重力加速度成分のみを抽出し、x軸方向の重力加速度成分とz軸方向の重力加速度成分からタグ角度を算出する。そして、タグ角度算出部101は、日時とタグIDとタグ角度とが含まれるタグ角度データをタグ角度データ記憶部500に記憶する。以下では、x軸方向の重力加速度成分を「x成分重力加速度値」、z軸方向の重力加速度成分を「z成分重力加速度値」とも表す。
【0034】
ここで、タグ角度とは、重力方向を基準(つまり、0)に、y軸を回転軸としてz軸がどの程度回転しているかを表す角度のことである。理想的には、
図4に示すように、起立、伏臥時には、x軸の正の方向は重力方向と逆方向であり、z軸の正の方向は牛の前方に対して右方向である。したがって、この場合、タグ角度をθ、x成分重力加速度値をg
x、z成分重力加速度値をg
zとすれば、θ=tan
-1(g
x/g
z)=-π/2となる。一方で、横臥時には、x軸の正の方向は牛の前方に対して右方向(又は左方向)であり、z軸の正の方向は重力方向(又は重力方向と逆方向)である。したがって、この場合、θ=tan
-1(g
x/g
z)=nπ(ただし、n=-1,0,1)となる。
【0035】
ただし、上記の
図4は、各タグ20が各牛の首部分の同一位置に装着され、タグ20を装着するための首輪やベルト等のずれが発生しない(又は、それらの影響を無視できる)理想的な状況を表したものである。実際には個体によってタグ20の装着位置が微妙に異なり得ると共に、牛の動作によって首輪やベルト等のずれが発生し得る。そこで、本実施形態では、基本角度と呼ぶ角度を導入し、所定の時間Δ
4(例えば、Δ
4=10[m]等)毎に、各牛の基本角度をそれぞれ算出した上で、タグ角度と基本角度との差から牛の姿勢が伏臥又は横臥のいずれであるかを推定する。なお、Δ
4≧Δ
3である必要があり、特に、或る自然数N
1に対してΔ
4=N
1×Δ
3と表現できることが好適である。
【0036】
基本角度算出部102は、所定の時間Δ4毎に、各牛の基本角度を算出する。このとき、基本角度算出部102は、タグ角度データ記憶部500に記憶されているタグ角度データのうちの当該牛の過去のタグ角度データと、姿勢データ記憶部600に記憶されている姿勢データのうちの当該牛の過去の姿勢データとを用いて、当該牛の基本角度を算出する。具体的には、基本角度算出部102は、当該牛の過去T1時間(例えば、T1=12[h]やT1=24[h]等)分のタグ角度のうち、所定の条件を満たすタグ角度の平均値を、当該牛の基本角度として算出する。ここで、所定の条件を満たすタグ角度としては、例えば、当該牛の姿勢が起立である時間のタグ角度とするが、これに加えて、タグ角度の変動量が少ないことを条件としてもよい。
【0037】
姿勢推定部103は、所定の時間Δ4毎に、気圧分析により当該牛の姿勢が起立又は寝姿勢のいずれであるかを推定する。ここで、気圧分析とは、当該牛の測定データに含まれる気圧センサ値と、それと同一日時の基準気圧データに含まれる基準気圧センサ値との差分から当該牛の姿勢が起立又は寝姿勢のいずれであるかを推定する手法のことである。気圧分析の詳細については、例えば、特開2019-97475号公報、特開2019-103442号公報、特開2020-198828号公報、特開2020-198829号公報等を参照されたい。
【0038】
また、姿勢推定部103は、当該牛の姿勢が寝姿勢であると推定された場合は、更に、当該牛の現在のタグ角度と基本角度とを用いて、伏臥又は横臥のいずれであるかを推定する。そして、姿勢推定部103は、日時とタグIDと推定した姿勢とが含まれる姿勢データを姿勢データ記憶部600に記憶する。
【0039】
<異常検知処理部200の機能構成>
本実施形態に係る異常検知処理部200の機能構成を
図5に示す。
図5に示すように、本実施形態に係る異常検知処理部200には、スコア算出部201と、異常検知部202とが含まれる。
【0040】
スコア算出部201は、所定の時間Δ5(例えば、Δ5=Δ4等)に、姿勢データ記憶部600に記憶されている姿勢データのうちの当該牛の最新の姿勢データが表す姿勢に応じて、測定データ記憶部300に記憶されている測定データのうちの当該牛の測定データを用いて所定のスコアを算出する。なお、Δ5≧Δ4であることが好ましく、また或る自然数N2に対してΔ5=N2×Δ4と表現できることがより好ましいが、特に、Δ5=Δ4が最も好適である。
【0041】
異常検知部202は、スコア算出部201により算出されたスコアを用いて、当該牛の異常(つまり、起立困難)を検知する。このとき、異常検知部202は、例えば、当該スコアが所定の閾値を超えている場合に牛に異常が発生したものとして、これを検知する。
【0042】
<タグ角度算出処理>
本実施形態に係るタグ角度算出処理について、
図6を参照しながら説明する。なお、以下のステップS101~ステップS103は、各牛に対して所定の時間Δ
3毎に繰り返し実行される。以下では、或る牛を対象として、その牛に関するタグ角度を算出する場合について説明する。
【0043】
まず、タグ角度算出部101は、測定データ記憶部300に記憶されている測定データのうち、当該牛の最新の測定データ(つまり、当該牛に装着されているタグ20のタグIDが含まれる最新の測定データ)に含まれるx成分加速度センサ値及びz成分加速度センサ値からx成分重力加速度値及びz成分重力加速度値をそれぞれ取得する(ステップS101)。
【0044】
ここで、各成分の加速度センサ値は、牛の動作による加速度センサ値と、重力加速度による加速度センサ値とを合成した値となる。また、牛の動作による加速度センサ値と重力加速度による加速度センサ値とを周波数スペクトルに変換した場合、牛の動作による加速度センサ値は高周波成分に現れる一方で、重力加速度による加速度センサ値は低周波成分に現れる。このため、タグ角度算出部101は、例えば、所定の周波数以上の周波数の加速度センサ値を減衰させるローパスフィルタを用いることで、x成分加速度センサ値からx成分重力加速度値、z成分加速度センサ値からz成分重力加速度値をそれぞれ取得(抽出)することができる。
【0045】
次に、タグ角度算出部101は、上記のステップS101で取得されたx成分重力加速度値及びz成分重力加速度値を用いて、タグ角度を算出する(ステップS102)。すなわち、タグ角度をθ、x成分重力加速度値をgx、z成分重力加速度値をgzとすれば、タグ角度算出部101は、θ=tan-1(gx/gz)によりタグ角度θを算出する。
【0046】
そして、タグ角度算出部101は、現在の日時と、当該牛に装着されているタグ20のタグIDと、上記のステップS102で算出されたタグ角度θとが含まれるタグ角度データを作成し、このタグ角度データをタグ角度データ記憶部500に格納する(ステップS103)。これにより、所定の時間Δ3毎に、各牛のタグ角度データがタグ角度データ記憶部500に記憶されることになる。
【0047】
<姿勢推定処理>
本実施形態に係る姿勢推定処理について、
図7を参照しながら説明する。なお、以下のステップS201~ステップS211は、各牛に対して所定の時間Δ
4毎に繰り返し実行される。以下では、或る牛を対象として、その牛の姿勢を推定する場合について説明する。
【0048】
まず、基本角度算出部102は、タグ角度データ記憶部500に記憶されているタグ角度データのうちの当該牛の過去のタグ角度データと、姿勢データ記憶部600に記憶されている姿勢データのうちの当該牛の過去の姿勢データとを用いて、当該牛の基本角度を算出する(ステップS201)。
【0049】
具体的には、基本角度算出部102は、当該牛の過去T1時間分のタグ角度データに含まれるタグ角度のうち、所定の条件を満たすタグ角度を抽出し、抽出したタグ角度の平均値を、当該牛の基本角度として算出する。ここで、上述したように、所定の条件を満たすタグ角度としては、例えば、当該牛の姿勢が起立である時間のタグ角度としてもよいし、これに加えて、Δ4の各時間幅における変動量が少ないタグ角度(つまり、例えば、変動量が或る所定の範囲内に収まっているタグ角度)としてもよい。以下では、当該牛の基本角度をφで表す。
【0050】
次に、姿勢推定部103は、気圧分析により当該牛の姿勢が起立又は寝姿勢のいずれであるかを推定する(ステップS202)。すなわち、姿勢推定部103は、以下の(1-1)~(1-3)により当該牛の姿勢が起立又は寝姿勢のいずれであるかを推定する。なお、以下では、簡単のため、データの欠損等は無く、ノイズ除去等も不要であるものとする。より詳細については、例えば、特開2019-97475号公報、特開2019-103442号公報、特開2020-198828号公報、特開2020-198829号公報等を参照されたい。
【0051】
(1-1)測定データ記憶部300に記憶されている測定データのうち、当該牛の過去Δ4前から現在までの測定データに含まれる気圧センサ値と、基準気圧データ記憶部400に記憶されている基準気圧データのうち、過去Δ4前から現在までの基準気圧データに含まれる基準気圧センサ値とを取得する。以下、過去Δ4前から現在までの日時を表すインデックスをj=1,・・・,Jとして、ここで取得した気圧センサ値の集合を{Pj;j=1,・・・,J}、基準気圧センサ値の集合を{Qj;j=1,・・・,J}とする。
【0052】
(1-2)同一日時における気圧センサ値から基準気圧センサ値を減算して、差分気圧センサ値を算出する。すなわち、差分気圧センサ値の集合{Rj:=Pj-Qj;j=1,・・・,J}を算出する。
【0053】
(1-3)差分気圧センサ値Rj(j=1,・・・,J)の平均値等といった指標値を算出し、この指標値が所定の閾値th1(<0)よりも高い場合は当該牛の姿勢を寝姿勢と推定し、そうでない場合は当該牛の姿勢を起立と推定する。
【0054】
次に、姿勢推定部103は、上記のステップS202で推定された姿勢が寝姿勢であるか否かを判定する(ステップS203)。
【0055】
上記のステップS203で寝姿勢であると判定されなかった場合、姿勢推定部103は、当該牛の姿勢を起立と推定する(ステップS204)。
【0056】
一方で、上記のステップS203で寝姿勢であると判定された場合、姿勢推定部103は、タグ角度データ記憶部500に記憶されているタグ角度データのうちの当該牛の最新のタグ角度データに含まれるタグ角度θと、上記のステップS201で算出された基本角度φとを比較する(ステップS205)。すなわち、姿勢推定部103は、Δθ:=|θ-φ|を算出する。
【0057】
次に、姿勢推定部103は、上記のステップS205の比較の結果、タグ角度θが基本角度φに十分近いか否かを判定する(ステップS206)。すなわち、姿勢推定部103は、Δθが所定の閾値εよりも小さいか否かを判定する。
【0058】
上記のステップS206でタグ角度θが基本角度φに十分近いと判定された場合、姿勢推定部103は、過去の一定期間T2(例えば、T2=Δ4等)におけるタグ角度の暴れ具合を算出する(ステップS207)。タグ角度の暴れ具合を表す指標値としては様々なものが挙げられ、任意のものを算出すればよいが、例えば、分散や標準偏差等を用いることが可能である。
【0059】
例えば、Δ3=1[m]、Δ4=10[m]、T2=Δ4である場合、過去の一定期間T2のタグ角度として、10個のタグ角度θ1(=θ),θ2,・・・,θ10が得られる。したがって、この場合、これら10個のタグ角度θ1,θ2,・・・,θ10の分散や標準偏差等をタグ角度の暴れ具合として算出すればよい。
【0060】
次に、姿勢推定部103は、上記のステップS207で算出された暴れ具合が大きいか否かを判定する(ステップS208)。すなわち、姿勢推定部103は、タグ角度の暴れ具合が所定の閾値th2よりも大きいか否かを判定する。
【0061】
上記のステップS208でタグ角度の暴れ具合が大きいと判定されなかった場合、姿勢推定部103は、当該牛の姿勢を伏臥と推定する(ステップS209)。
【0062】
一方で、上記のステップS206でタグ角度θが基本角度φに十分近いと判定されなかった場合、又は、上記のステップS208でタグ角度の暴れ具合が大きいと判定された場合、姿勢推定部103は、当該牛の姿勢を横臥と推定する(ステップS210)。このように、タグ角度θが基本角度φに十分近い場合であっても、タグ角度の暴れ具合が大きい場合には、当該牛の姿勢を横臥と推定する。これは、起立困難な状態であっても首だけ何度も起き上がる場合があり、この場合にはタグ角度θが基本角度φに十分近くなり得るためである。
【0063】
そして、姿勢推定部103は、現在の日時と、タグIDと、上記のステップS204、ステップS209又はステップS210で推定された姿勢とが含まれる姿勢データを姿勢データ記憶部600に格納する(ステップS211)。これにより、所定の時間Δ4毎に、各牛の姿勢データが姿勢データ記憶部600に記憶されることになる。
【0064】
なお、ステップS207~ステップS208は必ずしも実行される必要はなく、例えば、ステップS206でタグ角度θが基本角度φに十分近いと判定された場合は、牛の姿勢を伏臥と推定してもよい。ただし、ステップS207~ステップS208を実行した方が、起立困難の検知精度をより向上させることができる。
【0065】
<異常検知処理>
本実施形態に係る異常検知処理について、
図8を参照しながら説明する。なお、以下のステップS301~ステップS306は、各牛に対して所定の時間Δ
5毎に繰り返し実行される。以下では、或る牛を対象として、その牛の異常を検知する場合について説明する。
【0066】
まず、スコア算出部201は、姿勢データ記憶部600に記憶されている姿勢データのうちの当該牛の最新の姿勢データが表す姿勢(つまり、当該牛の現在の姿勢)が、起立、伏臥、横臥のいずれであるかを判定する(ステップS301)。
【0067】
上記のステップS301で当該牛の現在の姿勢が伏臥であると判定された場合、スコア算出部201は、何もしない。上記のステップS301で当該牛の現在の姿勢が起立であると判定された場合は、スコア算出部201は、スコアSを0にリセットする(ステップS302)。
【0068】
一方で、上記のステップS301で当該牛の現在の姿勢が横臥であると判定された場合、又は、ステップS302に続いて、スコア算出部201は、スコアsを算出する(ステップS303)。すなわち、スコア算出部201は、以下の(2-1)~(2-4)によりスコアsを算出する。ここで、スコアsは牛の異常を検知するための指標値であり、当該牛の過去Δ5前から現在までの測定データに含まれる加速度センサ値から算出される。なお、以下では、簡単のため、データの欠損等は無く、ノイズ除去等も不要であるものとする。スコアsの算出方法の詳細については、例えば、特開2019-97475号公報、特開2020-198828号公報、特開2020-198829号公報等を参照されたい。
【0069】
(2-1)測定データ記憶部300に記憶されている測定データのうち、当該牛の過去Δ5前から現在までの測定データに含まれる加速度センサ値(x成分加速度センサ値、y成分加速度センサ値及びz成分加速度センサ値)を取得する。以下、過去Δ5前から現在までの日時を表すインデックスをk=1,・・・,Kとして、ここで取得した加速度センサ値の集合を{(Xk,Yk,Zk);k=1,・・・,K}とする。なお、Xkはx成分加速度センサ値、Ykはy成分加速度センサ値、Zkはz成分加速度センサ値を表す。
【0070】
(2-2)各加速度センサ値(Xk,Yk,Zk)のL2ノルムを算出する。すなわち、各k=1,・・・,Kに対して、Lk=(|Xk|2+|Yk|2+|Zk|2)1/2を算出する。
【0071】
(2-3)所定の時間Δ6(ただし、Δ6<Δ5)単位でL2ノルムの標準偏差を算出する。以下では、ここで算出された標準偏差をσdとして、標準偏差の集合{σd;d=1,・・・,D}が得られたものとする。なお、Δ6は、或る自然数N3に対してΔ5=N3×Δ6と表現できることが好適である。
【0072】
例えば、Δ1=2[s]、Δ5=10[m]、Δ6=1[m]である場合、上記の(2-2)では300個のL2ノルムLk(k=1,・・・,300)が得られ、1分間あたり30個のL2ノルムLkが含まれる。このため、30個のL2ノルムLkから1つの標準偏差σdが算出され、その結果、10個の標準偏差の集合{σd;d=1,・・・,10}が得られる。
【0073】
(2-4)そして、標準偏差の集合{σd;d=1,・・・,D}を用いて、過去Δ5前から現在までの間において、標準偏差が所定の上限値を超えた後に所定の下限値を下回った回数と、標準偏差が所定の下限値を下回った後に所定の上限値を超えた回数とをカウントし、その合計をスコアsとして算出する。なお、これらの上限値及び下限値は予め設定されたパラメータであり、例えば、経験則等に基づいて決定される。
【0074】
例えば、上限値をsup、下限値をinfとして、標準偏差を時系列順に並べるとσ1,・・・,σDであるものとする。このとき、例えば、或るdでsup<σdとなった後に、或るd'(>d)でσd'<infとなった場合、これを1回とカウントする。同様に、例えば、或るdでσd<infとなった後に、或るd'(>d)でsup<σd'となった場合、これを1回とカウントする。
【0075】
なお、上記のスコアsは、加速度センサ値のL2ノルムのΔ6の間の標準偏差が上限値を超えた後に下限値を下回った回数と、下限値を下回った後に上限値を超えた回数との合計であるため、牛が継続的に強い動きを行っている場合にその値が高くなる。これは、一般に、起立困難時には牛がもがくため、継続的に強い動きを行う傾向(言い換えれば、寝た状態で、継続的に暴れる傾向)があるためである。この意味で、スコアsは、直近の過去Δ5の間における牛の暴れ具合を表す指標値であるとも言える。
【0076】
次に、スコア算出部201は、上記のステップS303で算出したスコアsをスコアSに加算する(ステップS304)。
【0077】
次に、異常検知部202は、スコアSが所定の閾値th3を超えたか否かを判定する(ステップS305)。なお、閾値th3は予め設定されたパラメータであり、その値は、適宜、任意の値に設定され得るが、例えば、15~35程度に設定することが考えられ、特に25程度に設定することが好ましい。
【0078】
上記のステップS305でスコアSが所定の閾値th3を超えたと判定された場合、異常検知部202は、当該牛に異常(つまり、起立困難)が発生したことを検知する(ステップS306)。なお、異常検知部202は、例えば、異常検知装置10と通信ネットワークを介して接続される端末(例えば、牧場主が利用するスマートフォン等)に対して、この異常検知結果を通知してもよい。このとき、当該異常検知結果には、例えば、異常の発生日時、異常が発生した牛を識別する情報(例えば、タグID等)、異常の種別を示す情報(例えば、起立困難を示すコード等)といった情報が含まれる。これにより、当該端末では、例えば、牛に異常が発生したことを示すアラートを発報する、といったことが可能となる。
【0079】
なお、上記のステップS305でスコアSが所定の閾値th3を超えたと判定されなかった場合、異常検知部202は、何もしない。
【0080】
<本実施形態の効果>
以上のように、本実施形態に係る異常検知システム1では、牛の姿勢を起立と寝姿勢に分類すると共に、寝姿勢を更に伏臥と横臥に分類し、牛の姿勢が横臥のときにのみ、牛の継続的な強い動き(つまり、継続的な牛の暴れ具合)を捉えたスコアSを増加させる。一方で、牛の姿勢が起立のときにはスコアSをリセットし、伏臥のときにはスコアSの値を維持する。これにより、寝姿勢の状態で行われる通常動作(例えば、首を振ったり、体をかいたりする動作等)ではスコアSが増加されないため、誤検知の発生を防止し、その結果、高精度な異常検知を実現することが可能となる。
【0081】
<変形例>
上記の実施形態では、起立困難時には、一般に、牛は継続的に強い動きを行っている(つまり、牛が寝姿勢の状態で暴れている)、という知見に基づいて、起立困難を検知している。しかしながら、異常が検知されたにも関わらず、起立困難状態が放置されてしまった場合には、牛はぐったりし、その後は異常が検知されない、という事態が生じ得る、また、ごくまれに、ぐったりした状態のまま起立困難になる牛も存在し得る。
【0082】
そこで、上記のようなぐったりした状態の起立困難も異常として検知可能とするため、異常検知部202は、例えば、牛の姿勢が横臥となっている継続時間が所定の閾値th4を超える場合、異常を検知してもよい。なお、牛の姿勢が横臥となっている継続時間は、姿勢データ記憶部600に記憶されている姿勢データのうちの当該牛の姿勢データに含まれる日時と姿勢から算出すればよい。
【0083】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲の記載から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。
【符号の説明】
【0084】
1 異常検知システム
10 異常検知装置
100 姿勢推定処理部
101 タグ角度算出部
102 基本角度算出部
103 姿勢推定部
200 異常検知処理部
201 スコア算出部
202 異常検知部
300 測定データ記憶部
400 基準気圧データ記憶部
500 タグ角度データ記憶部
600 姿勢データ記憶部