以下、本発明の各実施の形態(以降、「実施形態」とも表す。)について、図面を参照しながら説明する。以降の各実施形態では、家畜の一例として牛の行動を特定する行動特定システム1について説明する。なお、家畜は牛に限られない。
[第一の実施形態]
まず、本実施形態に係る行動特定システム1の全体構成について、図1を参照しながら説明する。図1は、第一の実施形態に係る行動特定システム1の全体構成の一例を示す図である。
図1に示すように、本実施形態に係る行動特定システム1には、牛の行動を特定する行動特定装置10と、牛に装着された1以上のタグ20と、基準となる気圧を測定する基準気圧センサ30とが含まれる。なお、タグ20は、ベルト等によって牛の首部分に固定して装着されることが好ましい。
タグ20は、牛に装着される機器である。1頭の牛に対して1つのタグ20が装着されている。タグ20には、当該タグ20を装着している牛の加速度(x軸、y軸及びz軸の3軸の加速度)を測定する加速度センサが含まれている。ここで、x軸、y軸及びz軸から構成される座標系はタグ20に固定されており、タグ20は、例えば、牛が起立し、かつ、首が曲がっていない(真っ直ぐの)状態で、当該牛の進行方向に対して右方向をx軸の正の方向、当該進行方向をy軸の正の方向、重力方向をz軸の正の方向となるように装着される。
タグ20は、所定の時間毎(例えば2秒毎)に、加速度センサにより測定した加速度センサ値が含まれる測定データを行動特定装置10に送信する。行動特定装置10に送信された測定データは、後述する測定データ記憶部200に蓄積(記憶)される。
基準気圧センサ30は、牛舎内の所定の位置(例えば、牛舎内の地面上)に設置され、基準となる気圧を測定する。基準気圧センサ30は、所定の時間毎(例えば2秒毎)に、測定した気圧を示す基準気圧センサ値を含む基準気圧データを行動特定装置10に送信する。行動特定装置10に送信された基準気圧データは、後述する基準気圧データ記憶部400に蓄積(記憶)される。
行動特定装置10は、牛の行動を特定する1以上のコンピュータである。行動特定装置10は、行動特定処理部100と、測定データ記憶部200と、行動特定モデル300と、基準気圧データ記憶部400と、行動データ記憶部500とを有する。
行動特定処理部100は、測定データ記憶部200に記憶されている測定データと、行動特定モデル300とに基づいて、動作強度分析により、牛の行動を特定する。また、行動特定処理部100は、動作強度分析により所定の行動が特定された場合、測定データ記憶部200に記憶されている測定データと、基準気圧データ記憶部400に記憶されている基準気圧データと、行動データ記憶部500に記憶されている行動データとに基づいて、補正気圧分析により、より正確な牛の行動を特定する。行動特定処理部100は、行動特定装置10にインストールされた1以上のプログラムが、CPU(Central Processing Unit)等に実行させる処理により実現される。
測定データ記憶部200は、タグ20から受信した測定データを記憶する。測定データ記憶部200は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等の補助記憶装置等を用いて実現可能である。測定データ記憶部200には、所定の時間毎(例えば2秒毎)に、複数の測定データが記憶されている。
行動特定モデル300は、測定データに含まれる加速度センサ値から行動を特定するためのモデルである。行動特定モデル300は、例えば、家畜の種類や特定したい行動の種類に応じて、SVM(Support Vector Machine)等の機械学習の手法により予め作成される。行動特定モデル300は、例えばHDDやSSD等の補助記憶装置等に記憶されている。
基準気圧データ記憶部400は、基準気圧センサ30から受信した基準気圧データを記憶する。基準気圧データ記憶部400は、例えばHDDやSSD等の補助記憶装置等を用いて実現可能である。基準気圧データ記憶部400には、所定の時間毎(例えば2秒毎)に、複数の基準気圧データが記憶されている。
行動データ記憶部500は、行動特定処理部100により特定された行動を示す行動データを記憶する。行動データ記憶部500は、例えばHDDやSSD等の補助記憶装置等を用いて実現可能である。行動データ記憶部500には、所定の時間毎(例えば10分毎)に、行動特定処理部100により特定された行動を示す行動データが記憶されている。
なお、図1に示す行動特定システム1の構成は一例であって、他の構成であっても良い。例えば、行動特定装置10は、複数台のコンピュータで構成されていても良い。また、例えば、行動特定処理部100が有する機能の全部又は一部を、行動特定装置10とネットワークを介して接続される装置(クラウドサーバ等)が有していても良い。更に、例えば、タグ20の代わりに、加速度センサと、気圧センサとがそれぞれ別体で牛に装着されていても良い。
<牛の行動の特定>
ここで、本実施形態に係る行動特定システム1により特定される牛の行動と、特定方法の概要とについて、図2を参照しながら説明する。図2は、牛の行動特定の一例を説明するための図である。
まず、本実施形態に係る行動特定システム1が特定する牛の行動には、動作が小さい順に、「起立」、「横臥」、「反芻」及び「活動」の4つがあるものとする。したがって、本実施形態では、「起立」、「横臥」、「反芻」及び「活動」の4つの行動のうち、いずれの行動を牛が行っているかを特定するものとする。なお、「起立」及び「横臥」の動作の大きさは逆であっても良い。すなわち、動作が小さい順に、「横臥」、「起立」、「反芻」及び「活動」としても良い。
「起立」とは、牛が立っている状態を示す行動のことである。「横臥」とは、牛が横たわっている状態を示す行動のことである。なお、「起立」及び「横臥」は、いずれも牛が動作を行っていない状態(言い換えれば、牛が立って静止している状態又は牛が横たわった静止している状態)である。
「反芻」とは、牛が反芻(一度飲み込んだ食物を口に戻して咀嚼し直す動作)を行っている状態を示す行動のことである。「活動」とは、牛が所定の動作を行っている状態を示す行動のことであり、例えば、牛が歩いている状態や牛が食物を食べている状態、牛が水を飲んでいる状態等を示す行動のことである。
「起立」、「横臥」、「反芻」及び「活動」のいずれの行動を牛が行っているかは、動作強度分析により特定される。動作強度分析では、測定データに含まれる加速度センサ値と、行動特定モデル300とに基づいて、牛の行動が、「起立」、「横臥」、「反芻」及び「活動」のいずれであるかを特定する。より具体的には、動作強度分析では、所定の時間(例えば10分)の間における加速度センサ値から所定の指標値(当該所定の時間の間における加速度センサ値のL2ノルムの振れ幅の最大値及び加速度センサ値のL2ノルムの標準偏差)を算出する。なお、L2ノルムの振れ幅の最大値とは、当該所定の時間の間における加速度センサ値のL2ノルムの平均値と、当該所定の時間の間における各加速度センサ値のL2ノルムの値との差の絶対値が最大となる値である。
そして、「起立」、「横臥」、「反芻」及び「活動」の4つの領域に分類される行動特定モデル300において、算出した指標値を示す点がこれら4つの領域のいずれに含まれるかにより行動を特定する。
また、動作強度分析により「起立」、「横臥」又は「反芻」と特定された場合には、補正気圧分析により、より正確な行動が特定される。これは、動作強度分析では、行動特定モデル300を用いて特定した行動中における牛の姿勢を正確に特定できない場合があるためである。
補正気圧分析では、所定の時間(例えば20分)の間における各測定データに含まれる加速度センサ値及び気圧センサ値と、各基準気圧データに含まれる基準気圧センサ値とを用いて第1の補正気圧差分最小値及び第2の補正気圧差分最小値を算出した上で、この補正気圧差分最小値と、所定の閾値とに基づいて、牛の行動を特定する。補正気圧差分最小値とは、基準気圧センサ値と気圧センサ値との差を加速度センサ値で補正した補正気圧差分値の所定の時間の間における最小値(例えば10分間における最小値)である。
より具体的には、例えば、10分前の行動(すなわち、1つ前の行動)が「横臥」であった場合、10分前から現在までの間における第1の補正気圧差分最小値が、20分前から10分前までの間における第2の補正気圧差分最小値から所定の閾値以上減少した否かを判定する。そして、第1の補正気圧差分最小値が第2の補正気圧差分最小値から所定の閾値以上減少した場合、「起立」と特定する。一方で、第1の補正気圧差分最小値が第2の補正気圧差分最小値から所定の閾値以上減少していない場合、1つ前と同じ行動(すなわち、「横臥」)であると特定する。
また、例えば、10分前の行動(すなわち、1つ前の行動)が「横臥」以外であった場合(すなわち、「起立」又は「反芻」であった場合)、第1の補正気圧差分最小値が、第2の補正気圧差分最小値から所定の閾値以上増加した否かを判定する。そして、第1の補正気圧差分最小値が第2の補正気圧差分最小値から所定の閾値以上増加した場合、「横臥」と特定する。一方で、第1の補正気圧差分最小値が第2の補正気圧差分最小値から所定の閾値以上増加していない場合、1つ前と同じ行動(すなわち、「起立」又は「反芻」)であると特定する。
以上のように、本実施形態に係る行動特定システム1は、牛に装着されたタグ20から受信した加速度センサ値から、「起立」、「横臥」、「反芻」及び「活動」の4つの行動を特定する。また、本実施形態に係る行動特定システム1は、牛の行動が「起立」、「横臥」又は「反芻」であると特定された場合に、加速度センサ値と、気圧センサ値と、基準気圧センサ値とから、より正確な行動を特定する。
これにより、動作強度分析により、牛の行動が「起立」、「横臥」、「反芻」又は「活動」のいずれであるかを特定することができる。また、動作強度分析により「起立」、「横臥」又は「反芻」と特定された場合には、補正気圧分析により、牛の行動が「起立」、「横臥」又は「1つ前の行動」のいずれであるかをより高い精度で特定することができる。
そして、これら特定した牛の行動を、例えば、行動特定装置10の表示装置(ディスプレイ)等に表示することで、牛の行動確認を容易に行うことができるようになる。このため、例えば、牛の発情時に多く見られる行動や、病気やケガ等による異常行動等を早期に発見することができ、牛の発情時期の管理や健康管理等を容易に行うことができるようになる。
<測定データ記憶部200に記憶されている測定データ>
次に、本実施形態に係る測定データ記憶部200に記憶されている測定データについて、図3を参照しながら説明する。図3は、測定データ記憶部200に記憶されている測定データの一例を示す図である。なお、行動特定装置10は、タグ20から測定データを受信した場合、行動特定処理部100により、受信した測定データを測定データ記憶部200に記憶(蓄積)させれば良い。
図3に示すように、測定データ記憶部200には、タグを識別するタグID毎に、1以上の測定データが記憶されている。なお、1頭の牛に対して1つのタグ20が装着されていることから、タグIDは、牛を識別する情報(牛の個体識別情報等)であっても良い。
各測定データには、日時と、加速度センサ値と、気圧センサ値とが含まれる。日時は、例えば、タグ20が測定データを送信した日時である。なお、日時は、行動特定装置10が測定データを受信した日時であっても良い。
加速度センサ値は、タグ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成分加速度センサ値」とも表す。
また、気圧センサ値は、タグ20に含まれる気圧センサにより測定された気圧の値である。日時「t1」の測定データには、気圧センサ値「p1」が含まれる。同様に、例えば、日時「t2」の測定データには、気圧センサ値「p2」が含まれる。
なお、例えば、各タグ20が2秒毎に測定データを行動特定装置10に送信する場合、Δt=ti+1−ti(iは1以上の整数)とすれば、Δt=2[秒]である。
このように、測定データ記憶部200に記憶されている測定データには、タグID毎に、日時と、加速度センサ値と、気圧センサ値とが含まれる。
<行動特定モデル300>
次に、測定データに含まれる加速度センサ値から行動を特定するための行動特定モデル300について、図4を参照しながら説明する。図4は、行動特定モデル300の一例を示す図である。
図4に示すように、行動特定モデル300は、所定の時間(例えば10分)の間における加速度センサ値のL2ノルムの振れ幅の最大値を横軸、当該L2ノルムの標準偏差を縦軸とした場合に、これら振れ幅の最大値及び標準偏差の値と、行動との関係を示す関係グラフとして表される。
例えば、或る10分間における加速度センサ値のL2ノルムの振れ幅の最大値と標準偏差とが領域D1に含まれる場合、当該10分間における牛の行動は「起立」と特定される。また、例えば、或る10分間における加速度センサ値のL2ノルムの振れ幅の最大値と標準偏差とが領域D2に含まれる場合、当該10分間における牛の行動は「横臥」と特定される。
同様に、例えば、或る10分間における加速度センサ値のL2ノルムの振れ幅の最大値と標準偏差とが領域D3に含まれる場合、当該10分間における牛の行動は「反芻」と特定される。なお、「反芻」と特定される領域D3は、更に、牛が立っている状態で反芻動作を行う場合(この場合を「起立中反芻」と表す。)と、牛が横たわっている状態で反芻動作(この場合を「横臥中反芻」と表す。)を行う場合とに分けられても良い。
また、同様に、例えば、或る10分間における加速度センサ値のL2ノルムの振れ幅の最大値と標準偏差とが領域D4に含まれる場合、当該10分間における牛の行動は「活動」と特定される。
なお、図4に示す例では、行動特定モデル300の各領域D1〜D4が互いに重なっていない場合を示しているが、各領域D1〜D4のうちの2以上の領域が互いに重なっている部分が存在しても良い。
このように、行動特定モデル300は、所定の時間(例えば10分)の間における加速度センサ値のL2ノルムの最大値及び標準偏差と、牛の行動との関係を表す領域が定義されたモデルである。このような行動特定モデル300は、SVM等の機械学習の手法により予め作成される。なお、SVMは一例であって、例えば、ニューラルネットワーク等の種々の機械学習の手法により作成されても良い。また、例えば、牛が同一の動作を行った場合であっても、加速度センサの種類等によって、具体的な加速度センサ値は異なる。ただし、各行動をそれぞれ示す領域D1〜D4の位置関係は、略一定に定まっている。なお、以降では、L2ノルムの振れ幅の最大値を、「L2ノルムの最大値」とも表す。
<行動特定処理部100の機能構成>
次に、本実施形態に係る行動特定処理部100の機能構成について、図5を参照しながら説明する。図5は、第一の実施形態に係る行動特定処理部100の機能構成の一例を示す図である。
図5に示すように、本実施形態に係る行動特定処理部100には、取得部101と、前処理部102と、指標値算出部103と、補正差分最小値算出部104と、行動特定部105とが含まれる。
取得部101は、測定データ記憶部200から測定データを取得する。このとき、取得部101は、例えば、タグID毎に、所定の時間(例えば10分)の間の測定データを測定データ記憶部200から取得する。
また、取得部101は、基準気圧データ記憶部400から基準気圧データを取得する。このとき、取得部101は、当該所定の時間の間の基準気圧データを取得する。
更に、取得部101は、行動データ記憶部500に記憶されている行動データのうち、最新の行動データ(すなわち、1つ前に特定された行動を示す行動データ)を取得する。
前処理部102は、取得部101により取得された測定データに対して前処理を行う。前処理とは、例えば、測定データの欠損補完(リサンプリング)処理やノイズ除去処理、所定の間隔毎の代表値(例えば、当該所定の間隔毎の平均値)の算出処理等である。
指標値算出部103は、前処理部102による前処理後の測定データに含まれる加速度センサ値から指標値を算出する。例えば、指標値算出部103は、指標値として、前処理後の測定データに含まれる加速度センサ値のL2ノルムの最大値と標準偏差とを算出する。
補正差分最小値算出部104は、測定データに含まれる気圧センサ値及び加速度センサ値と、基準気圧データに含まれる基準気圧センサ値とから補正気圧差分最小値を算出する。例えば、補正差分最小値算出部104は、20分間における測定データに含まれる気圧センサ値及び加速度センサ値と、当該20分間における基準気圧データに含まれる基準気圧データとから、当該20分間のうちの後半10分間における第1の補正気圧差分最小値と、前半10分間における第2の補正気圧差分最小値とを算出する。なお、前半及び後半とは、日時を昇順(古い順)に並べた場合における前半及び後半である。
補正気圧差分最小値とは、所定の時間(例えば10分)の間における補正気圧差分値の最小値のことである。また、補正気圧差分値とは、当該所定の時間(例えば10分間)における各測定データに含まれる気圧センサ値の1分間隔毎の平均値と、当該10分間における各基準気圧データに含まれる各基準気圧センサ値の1分間隔毎の平均値との各々の差である気圧差分を、当該各測定データに含まれる所定の成分(例えばy成分)の加速度センサ値の1分間隔毎の平均値で補正したものである。
行動特定部105は、指標値算出部103により算出されたL2ノルムの最大値及び標準偏差と、行動特定モデル300とから4つの行動(「起立」、「横臥」、「反芻」及び「活動」)を特定(動作強度分析により行動を特定)する。
そして、行動特定部105は、特定した行動を示す行動データを行動データ記憶部500に記憶させる。また、行動特定部105は、特定した行動を示す情報を、例えば、ディスプレイ等の表示装置に表示しても良いし、行動特定装置10に接続される他の装置(例えば、PCやスマートフォン、タブレット端末等)に出力しても良い。
なお、行動特定部105は、当該L2ノルムの最大値及び標準偏差と、行動特定モデル300と同等のデータを生成するプログラム等の処理結果とから上記4つの行動を特定しても良い。
また、行動特定部105は、更に、上記で「起立」、「横臥」又は「反芻」が特定された場合に、取得部101により取得された行動データが示す行動(すなわち、1つ前に特定された行動)に応じて、補正差分最小値算出部104により算出された第1の補正気圧差分最小値と第2の補正気圧差分最小値とから、より正確な行動を特定(補正気圧分析により行動を特定)する。
すなわち、行動特定部105は、1つ前の行動が「横臥」であり、かつ、第1の補正気圧差分最小値が第2の補正気圧差分最小値から所定の閾値以上減少した場合、「起立」と特定する。一方で、行動特定部105は、1つ前の行動が「横臥」であり、かつ、第1の補正気圧差分最小値が第2の補正気圧差分最小値から所定の閾値以上減少してない場合、1つ前の行動と同じであると特定する。
また、行動特定部105は、1つ前の行動が「横臥」以外であり、かつ、第1の補正気圧差分最小値が第2の補正気圧差分最小値から所定の閾値以上増加した場合、「横臥」と特定する。一方で、行動特定部105は、1つ前の行動が「横臥」以外であり、かつ、第1の補正気圧差分最小値が第2の補正気圧差分最小値から所定の閾値以上増加してない場合、1つ前の行動と同じであると特定する。
所定の閾値は、例えば、ユーザにより予め設定される値である。このような閾値は、例えば、牛の行動特定に関する経験則により決定される。
<行動特定処理>
次に、本実施形態に係る行動特定処理について説明する。
≪動作強度分析による行動特定処理≫
まず、動作強度分析による行動特定処理について、図6を参照しながら説明する。図6は、第一の実施形態に係る動作強度分析による行動特定処理の一例を示すフローチャートである。なお、図6に示す行動特定処理は、例えば、10分間毎に繰り返し実行される。ただし、図6に示す行動特定処理は、例えば、予め設定された日時に実行されても良いし、予め決められた所定の時間毎に実行されても良い。
まず、取得部101は、タグID毎に、過去の所定の時間の間(例えば過去10分間)の測定データを測定データ記憶部200から取得する(ステップS11)。このように、取得部101は、牛(タグID)毎に、所定の時間単位(例えば10分単位)の測定データを測定データ記憶部200から取得する。なお、このような所定の時間は、10分に限られず、例えば行動特定装置10のユーザが任意の時間に設定することができる。
以降では、タグID「Tag1」の過去10分間の測定データs1,s2,・・・,sMが取得部101により取得されたものとして説明を続ける。
次に、前処理部102は、取得部101により取得された測定データs1,s2,・・・,sMに対して前処理を行う(ステップS12)。すなわち、前処理部102は、測定データの欠損補完(リサンプリング)処理やノイズ除去処理等を行う。なお、欠損補完処理とは、測定データの精度を上げるため、データが取得できなかった場合の欠損を補完する処理である。また、ノイズ除去処理は、牛の瞬間的な動作(例えば、瞬間的に身体を震わせる動作や瞬間的に大きく身体をびくつかせる動作等)を示すデータを除去する処理である。
これにより、前処理後の測定データをリナンバリングして、測定データs1,s2,・・・,sNが得られる。ここで、2秒間隔でリサンプリングが行われた場合、N=300である。
次に、指標値算出部103は、前処理部102による前処理後の各測定データs1,s2,・・・,sNに含まれる加速度センサ値から指標値(L2ノルムの最大値及び標準偏差)を算出する(ステップS13)。すなわち、前処理後の測定データs1,s2,・・・,sNに含まれる加速度センサ値のL2ノルムをそれぞれa1,a2,・・・aNとした場合、指標値算出部103は、これらa1,a2,・・・aNの標準偏差σ及び最大値mを算出する。ここで、当該最大値mは、L2ノルムa1,a2,・・・aNの平均値と、各L2ノルムai(i=1,・・・,N)との差の最大値のことである。
次に、行動特定部105は、指標値算出部103により算出された標準偏差σ及び最大値mと、行動特定モデル300とから4つの行動(「起立」、「横臥」、「反芻」及び「活動」)を特定する(ステップS14)。すなわち、行動特定部105は、指標値算出部103により算出された標準偏差σ及び最大値mが、行動特定モデル300上の領域D1〜D4のいずれの領域に含まれるかを特定することで、行動を特定する。
次に、行動特定部105は、上記のステップS14で特定した行動が「起立」、「横臥」又は「反芻」であるか否かを判定する(ステップS15)。
ステップS15において、特定した行動が「起立」、「横臥」又は「反芻」であると判定された場合、行動特定処理部100は、補正気圧分析により、より正確な行動を特定する(ステップS16)。本ステップの処理(補正気圧分析による行動特定処理)の詳細については後述する。
一方で、ステップS15において、特定した行動が「起立」、「横臥」又は「反芻」でないと判定された場合(すなわち、特定した行動が「活動」である場合)、又はステップS16に続いて、行動特定部105は、特定した行動を示す行動データを行動データ記憶部500に記憶させる(ステップS17)。このとき、行動特定部105は、例えば、特定した行動と現在日時と関連付けた行動データを作成した上で、作成した行動データを行動データ記憶部500に記憶させる。
すなわち、ステップS15において、特定した行動が「起立」、「横臥」又は「反芻」でないと判定された場合、行動特定部105は、行動「活動」と、現在日時とを関連付けた行動データを行動データ記憶部500に記憶させる。同様に、ステップS16に続いて、行動特定部105は、ステップS16で特定された行動と、現在日時とを関連付けた行動データを行動データ記憶部500に記憶させる。
≪補正気圧分析による行動特定処理≫
次に、上記のステップS16の処理(補正気圧分析による行動特定処理)の詳細について、図7を参照しながら説明する。図7は、第一の実施形態に係る補正気圧分析による行動特定処理の一例を示すフローチャートである。
ここで、上述したように、「反芻」は、「起立中反芻」と「横臥中反芻」とに分けられる。そこで、図7では、「起立」には「起立中反芻」が含まれ、「横臥」には「横臥中反芻」が含まれるものとして説明する。
まず、補正差分最小値算出部104は、第1の補正気圧差分最小値と、第2の補正気圧差分最小値とを算出する(ステップS21)。ここで、第1の補正気圧差分最小値は、例えば、過去20分前から過去10分前までの間における補正気圧差分最小値であり、第2の補正気圧差分最小値は、例えば、過去10分前間(すなわち、過去10分前から現在時刻までの間)における補正気圧差分最小値である。本ステップの処理(補正気圧差分最小値の算出処理)の詳細については後述する。
次に、取得部101は、行動データ記憶部500に記憶されている行動データのうち、最新の行動データ(すなわち、1つ前に特定された行動を示す行動データ)を取得する(ステップS22)。
次に、行動特定部105は、上記のステップS22で取得した行動データが示す行動が「横臥」であるか否かを判定する(ステップS23)。すなわち、行動特定部105は、1つ前に特定された行動が「横臥」であるか否かを判定する。
ステップS23において、1つ前の行動が「横臥」であると判定された場合、行動特定部105は、第1の補正気圧差分最小値が第2の補正気圧差分最小値から所定の閾値TH1(>0)以上減少したか否かを判定する(ステップS24)。言い換えれば、行動特定部105は、第2の補正気圧差分最小値に対する第1の補正気圧差分最小値の変化量が、所定の閾値TH1´(<0)以下であるか否かを判定する。なお、閾値TH1´は、閾値TH1の正負を逆にしたものである。
ステップS24において、第1の補正気圧差分最小値が第2の補正気圧差分最小値から所定の閾値TH1以上減少したと判定された場合、行動特定部105は、該当の10分間(すなわち、過去10分前から現在時刻までの間)における牛の行動を「起立」と特定する(ステップS25)。この場合、第2の補正気圧差分最小値に対する第1の補正気圧差分最小値の変化量が所定の閾値TH1´以下であり、牛に装着されたタグ20の高度が所定の閾値TH1以上、上昇している。したがって、牛が「横臥」状態から「起立」状態になったと考えられるためである。
一方で、ステップS24において、第1の補正気圧差分最小値が第2の補正気圧差分最小値から所定の閾値TH1以上減少したと判定されなかった場合、行動特定部105は、当該10分間における牛の行動を1つ前の行動と同じ(すなわち、「横臥」)と特定する(ステップS26)。この場合、第2の補正気圧差分最小値に対する第1の補正気圧差分最小値の変化量が所定の閾値TH1´以下であり、牛に装着されたタグ20の高度が所定の閾値TH1以上は上昇していない。したがって、牛は引き続き「横臥」状態のままであると考えられるためである。
ステップS23において、1つ前の行動が「横臥」以外(すなわち、「起立」)であると判定された場合、行動特定部105は、第1の補正気圧差分最小値が第2の補正気圧差分最小値から所定の閾値TH2(<0)以上増加したか否かを判定する(ステップS27)。言い換えれば、行動特定部105は、第2の補正気圧差分最小値に対する第1の補正気圧差分最小値の変化量が、所定の閾値TH2´(>0)以上であるか否かを判定する。なお、閾値TH2´は、閾値TH2の正負を逆にしたものである。
ステップS27において、第1の補正気圧差分最小値が第2の補正気圧差分最小値から所定の閾値TH2以上増加したと判定された場合、行動特定部105は、当該10分間における牛の行動を「横臥」と特定する(ステップS28)。この場合、第2の気圧差分最小値に対する第1の補正気圧差分最小値の変化量が所定の閾値TH2´以上であり、牛に装着されたタグ20の高度が所定の閾値TH2´以上、下降している。したがって、牛が「起立」状態から「横臥」状態になったと考えられるためである。
一方で、ステップS27において、第1の補正気圧差分最小値が第2の補正気圧差分最小値から所定の閾値TH2以上増加したと判定されなかった場合、行動特定部105は、当該10分間における牛の行動を1つ前の行動と同じ(すなわち、「起立」)と特定する(ステップS29)。この場合、第2の気圧差分最小値に対する第1の補正気圧差分最小値の変化量が所定の閾値TH2´以上であり、牛に装着されたタグ20の高度が所定の閾値TH2´以上は下降していない。したがって、牛は引き続き「起立」の状態のままであると考えられるためである。
≪補正気圧差分最小値の算出処理≫
次に、上記のステップS21の処理(補正気圧差分最小値の算出処理)の詳細について、図8を参照しながら説明する。図8は、第一の実施形態に係る補正気圧差分最小値の算出処理の一例を示すフローチャートである。
まず、取得部101は、該当のタグID(すなわち、タグID「Tag1」)の過去20分間の測定データに含まれる気圧センサ値及びy成分加速度センサ値を測定データ記憶部200から取得すると共に、過去20分間の基準気圧データに含まれる基準気圧センサ値を基準気圧データ記憶部400から取得する(ステップS31)。
なお、取得部101は、過去10分前までの気圧センサ値及びy成分加速度センサ値を測定データ記憶部200から取得しなくても良い。この場合、過去10分前までの気圧センサ値及びy成分加速度センサ値として、図6のステップS11で取得された測定データに含まれる気圧センサ値及びy成分加速度センサ値が用いられれば良い。
また、上記のステップS31で過去20分間の測定データを取得することは一例であって、これに限られない。例えば、所定の時間幅をΔTとして、図6のステップS11で過去ΔT前までの測定データが取得された場合、上記のステップS31では、過去2ΔT前までの気圧センサ値、y成分加速度センサ値及び基準気圧センサ値が取得されれば良い。
また、上記のステップS31でy成分加速度センサ値を取得するのは、牛が起立し、かつ、首が曲がっていない状態で、y軸の正の方向が牛の進行方向となるようにタグ20が装着されているためである。当該進行方向が他の軸(例えば、x軸又はz軸)の正の方向となるようにタグ20が装着されている場合には、当該他の軸の成分の加速度センサ値が取得されれば良い。
以降では、上記のステップS31で過去20分間の気圧センサ値p1,・・・,pM´及びy成分加速度センサ値y1,・・・,yM´と、当該過去20分間の基準気圧センサ値q1,・・・,qLとが取得部101により取得されたものとして説明を続ける。
次に、前処理部102は、取得部101により取得された気圧センサ値p1,・・・,pM´と、y成分加速度センサ値y1,・・・,yM´と、基準気圧センサ値q1,・・・,qLとに対して前処理を行う(ステップS32)。すなわち、前処理部102は、以下の(前処理1)及び(前処理2)の2つの前処理を行う。ただし、(前処理2)を行わずに、(前処理1)のみを行っても良い。
(前処理1)気圧センサ値p1,・・・,pM´と、y成分加速度センサ値y1,・・・,yM´と、基準気圧センサ値q1,・・・,qLとをリサンプリングする。これにより、リサンプリング後の気圧センサ値、y成分加速度センサ値及び基準気圧センサ値をリナンバリングして、気圧センサ値p1,・・・,pN´と、y成分加速度センサ値y1,・・・,yN´と、基準気圧センサ値q1,・・・,qN´とが得られる、ここで、2秒間隔でリサンプリングが行われた場合、N´=600である。
(前処理2)所定の間隔(例えば1分間隔)毎に、気圧センサ値p1,・・・,pN´の平均値と、y成分加速度センサ値y1,・・・,yN´の平均値と、基準気圧センサ値q1,・・・,qN´の平均値とを算出する。これにより、当該所定の間隔毎の気圧センサ値の平均値μp1,・・・,μpRと、当該所定の間隔毎のy成分加速度センサ値の平均値μy1,・・・,μyRと、当該所定の間隔毎の基準気圧センサ値の平均値μq1,・・・,μqRとが得られる。ここで、1分間隔で平均値の算出が行われた場合、R=20である。
以降では、1分間隔で平均値の算出が行われたものとして、1分間における気圧センサ値の平均値を「平均気圧センサ値」、1分間におけるy成分加速度センサ値の平均値を「平均y成分加速度センサ値」、1分間における基準気圧センサ値の平均値を「平均基準気圧センサ値」とも表す。
次に、補正差分最小値算出部104は、平均気圧センサ値μp1,・・・,μpRと、平均基準気圧センサ値μq1,・・・,μqRとから気圧差分値を算出する(ステップS33)。気圧差分値をui(i=1,・・・,R)として、気圧差分値uiは、例えば、ui=μpi−μqiにより算出される。ただし、ui=μqi−μpiと算出されても良い。
次に、補正差分最小値算出部104は、気圧差分値u1,・・・,uRと、平均y成分加速度センサ値μy1,・・・,μyRとから補正気圧差分値を算出する(ステップS34)。補正気圧差分値をvi(i=1,・・・,R)として、補正気圧差分値viは、vi=ui+μyi×Cにより算出される。ここで、Cは予め設定される定数(パラメータ)である。このように、気圧差分値uiを平均y成分加速度センサ値μyiにより補正することで、補正気圧差分値viが算出される。
次に、補正差分最小値算出部104は、補正気圧差分値vi(i=1,・・・,R)から第1の補正差分最小値と第2の補正差分最小値とを算出する(ステップS35)。すなわち、補正差分最小値算出部104は、補正気圧差分値vi(i=1,・・・,R)のうち、現在から過去10分前までの時間幅に含まれる補正気圧差分値viの最小値を第1の補正気圧差分最小値とし、過去10分前から過去20分前までの時間幅に含まれる補正気圧差分値viの最小値を第2の補正気圧差分最小値とする。
なお、補正差分最小値算出部104は、例えば、上記の最小値の代わりに、平均値又は最大値を用いることもできる。すなわち、例えば、現在から過去10分前までの時間幅に含まれる補正気圧差分値viの平均値を「第1の補正気圧差分平均値」、過去10分前から過去20分前までの時間幅に含まれる補正気圧差分値viの平均値を「第2の補正気圧差分平均値」として、第1の補正気圧差分最小値及び第2の補正気圧差分最小値の代わりに用いても良い。同様に、例えば、現在から過去10分前までの時間幅に含まれる補正気圧差分値viの最大値を「第1の補正気圧差分最大値」、過去10分前から過去20分前までの時間幅に含まれる補正気圧差分値viの最大値を「第2の補正気圧差分最大値」として、第1の補正気圧差分最小値及び第2の補正気圧差分最小値の代わりに用いても良い。
<第一の実施形態のまとめ>
以上のように、本実施形態に係る行動特定システム1は、牛が装着するタグ20から受信した測定データから当該牛の行動を特定することができる。このとき、本実施形態に係る行動特定システム1では、測定データに含まれる加速度センサ値から算出された指標値と、機械学習の手法により予め作成された行動特定モデル300とを用いることで、牛の行動を特定することができる(動作強度分析による行動特定)。特に、指標値として、L2ノルムの最大値と標準偏差とを用いることで、牛に特有の行動である「反芻」を高い精度で特定することができる。言い換えれば、牛に特有の行動である「反芻」を、「起立」や「横臥」等の行動と高い精度で区別することができるようになる。
また、本実施形態に係る行動特定システム1は、動作強度分析による行動特定で牛の行動が「起立」、「横臥」又は「反芻」と特定された場合には、所定の成分(例えばy成分)の加速度センサ値と、気圧センサ値と、基準気圧センサ値とから、より正確な行動を特定することができる(気圧分析による行動特定)。これにより、「起立」(「起立中反芻」も含む)又は「横臥」(「横臥中反芻」も含む)を高い精度で特定することができる。特に、y成分の加速度センサ値により気圧差分値が補正されることによって、例えば、起立中に首を下げるような動作を行った場合であっても、誤って「横臥」と特定されてしまう事態を防止し、高い精度で「起立」を特定することができるようになる。
そして、このように特定された牛の行動を、例えば行動特定装置10の表示装置(ディスプレイ等)に表示して、酪農家等に提供することで、牛の発情時に多く見られる行動の確認を容易に行うことができるようになると共に、病気やケガ等による異常行動を早期に発見することができるようにもなり、牛の発情時期の管理や健康管理等を容易に行うことができるようになる。
[第二の実施形態]
次に、第二の実施形態について説明する。第一の実施形態では、牛が起立し、かつ、首が曲がっていない状態で、当該牛の進行方向に対して右方向をx軸の正の方向、当該進行方向をy軸の正の方向、重力方向をz軸の正の方向となるようにタグ20が装着される場合について説明した。しかしながら、例えば、タグ20を前後逆に装着してしまったり、ベルトのねじれ(以降、単に「ねじれ」とも表す。)等によりタグ20が上下逆になってしまったりする場合がある。この場合、y成分加速度センサ値の符号が反転するため、補正気圧分析において、y成分加速度センサ値により気圧差分値を適切に補正できないことがある。
そこで、第二の実施形態では、タグ20の前後を示すタグ向きやねじれ等を考慮して、補正気圧分析による行動特定を行う場合について説明する。
なお、第二の実施形態では、主に、第一の実施形態との相違点について説明し、第一の実施形態と同様の構成要素については、その説明を省略する。
<タグ向きとねじれとの関係>
ここで、タグ20のタグ向きと、当該タグ20を牛に装着するためのベルトのねじれとの関係について、図9を参照しながら説明する。図9は、タグ向きとねじれとの関係を説明するための図である。なお、以降では、牛が起立し、かつ、首が曲がっていない状態で、当該牛の進行方向に対して右方向がx軸の正の方向、当該進行方向がy軸の正の方向、重力方向がz軸の正の方向となるように装着されたタグ20のタグ向きを「+1」(正の方向)とする。一方で、タグ向きが「+1」であるタグ20に対して前後が逆に装着されたタグ20のタグ向きを「−1」(負の方向)とする。
図9(a)は、タグ向きが「+1」で、ねじれが発生していない場合である。この場合、牛の進行方向に対して右方向がx軸の正の方向、当該進行方向がy軸の正の方向、重力方向がz軸の正の方向となる。
図9(b)は、タグ向きが「−1」で、ねじれが発生していない場合である。この場合、牛の進行方向に対して左方向がx軸の正の方向、当該進行方向に対して逆方向がy軸の正の方向、重力方向がz軸の正の方向となる。
図9(c)は、タグ向きが「+1」で、ねじれが発生している場合である。この場合、牛の進行方向に対して右方向がx軸の正の方向、当該進行方向に対して逆方向がy軸の正の方向、重力方向に対して逆方向がz軸の正の方向となる。
図9(d)は、タグ向きが「−1」で、ねじれが発生している場合である。この場合、牛の進行方向に対して左方向がx軸の正の方向、当該進行方向がy軸の正の方向、重力方向に対して逆方向がz軸の正の方向となる。
<行動特定処理部100の機能構成>
次に、本実施形態に係る行動特定処理部100の機能構成について、図10を参照しながら説明する。図10は、第二の実施形態に係る行動特定処理部100の機能構成の一例を示す図である。
図10に示すように、本実施形態に係る行動特定処理部100には、更に、タグ向き算出部106が含まれる。
タグ向き算出部106は、牛に装着されているタグ20のタグ向きが「+1」又は「−1」のいずれであるかを算出する。
また、本実施形態に係る補正差分最小値算出部104は、タグ向き算出部106により算出されたタグ向きと、タグ20のねじれの発生有無とを考慮して、補正気圧差分最小値を算出する。
<行動特定処理>
次に、本実施形態に係る行動特定処理について説明する。本実施形態に係る行動特定処理では、補正気圧差分最小値の算出処理が第一の実施形態と異なるため、以降では、補正気圧差分最小値の算出処理について説明する。
≪補正気圧差分最小値の算出処理≫
本実施形態に係る補正気圧差分最小値の算出処理(図7のステップS21の詳細)について、図11を参照しながら説明する。図11は、第二の実施形態に係る補正気圧差分最小値の算出処理の一例を示すフローチャートである。
まず、取得部101は、該当のタグID(すなわち、タグID「Tag1」)の過去20分間の測定データに含まれる気圧センサ値、y成分加速度センサ値及びz成分加速度センサ値を測定データ記憶部200から取得すると共に、過去20分間の基準気圧データに含まれる基準気圧センサ値を基準気圧データ記憶部400から取得する(ステップS41)。
なお、取得部101は、過去10分前までの気圧センサ値、y成分加速度センサ値及びz成分加速度センサ値を測定データ記憶部200から取得しなくても良い。この場合、過去10分前までの気圧センサ値、y成分加速度センサ値及びz成分加速度センサ値として、図6のステップS11で取得された測定データに含まれる気圧センサ値、y成分加速度センサ値及びz成分加速度センサ値が用いられれば良い。
また、上記のステップS41で過去20分間の測定データを取得することは一例であって、これに限られない。例えば、所定の時間幅をΔTとして、図6のステップS11で過去ΔT前までの測定データが取得された場合、上記のステップS41では、過去2ΔT前までの気圧センサ値、y成分加速度センサ値、z成分加速度センサ値及び基準気圧センサ値が取得されれば良い。
以降では、上記のステップS41で過去20分間の気圧センサ値p1,・・・,pM´、y成分加速度センサ値y1,・・・,yM´及びz成分加速度センサ値z1,・・・,zM´と、当該過去20分間の基準気圧センサ値q1,・・・,qLとが取得部101により取得されたものとして説明を続ける。
次に、前処理部102は、取得部101により取得された気圧センサ値p1,・・・,pM´と、y成分加速度センサ値y1,・・・,yM´と、z成分加速度センサ値z1,・・・,zM´と、基準気圧センサ値q1,・・・,qLとに対して前処理を行う(ステップS42)。すなわち、前処理部102は、以下の(前処理1)及び(前処理2)の2つの前処理を行う。ただし、(前処理2)を行わずに、(前処理1)のみを行っても良い。
(前処理1)気圧センサ値p1,・・・,pM´と、y成分加速度センサ値y1,・・・,yM´と、z成分加速度センサ値z1,・・・,zM´と、基準気圧センサ値q1,・・・,qLとをリサンプリングする。これにより、リサンプリング後の気圧センサ値、y成分加速度センサ値、z成分加速度センサ値及び基準気圧センサ値をリナンバリングして、気圧センサ値p1,・・・,pN´と、y成分加速度センサ値y1,・・・,yN´と、z成分加速度センサ値z1,・・・,zN´と、基準気圧センサ値q1,・・・,qN´とが得られる、ここで、2秒間隔でリサンプリングが行われた場合、N´=600である。
(前処理2)所定の間隔(例えば1分間隔)毎に、気圧センサ値p1,・・・,pN´の平均値と、y成分加速度センサ値y1,・・・,yN´の平均値と、z成分加速度センサ値z1,・・・,zN´の平均値と、基準気圧センサ値q1,・・・,qN´の平均値とを算出する。これにより、当該所定の間隔毎の気圧センサ値の平均値μp1,・・・,μpRと、当該所定の間隔毎のy成分加速度センサ値の平均値μy1,・・・,μyRと、当該所定の間隔毎のy成分加速度センサ値の平均値μz1,・・・,μzRと、当該所定の間隔毎の基準気圧センサ値の平均値μq1,・・・,μqRとが得られる。ここで、1分間隔で平均値の算出が行われた場合、R=20である。
以降では、1分間隔で平均値の算出が行われたものとして、1分間における気圧センサ値の平均値を「平均気圧センサ値」、1分間におけるy成分加速度センサ値の平均値を「平均y成分加速度センサ値」、1分間におけるz成分加速度センサ値の平均値を「平均z成分加速度センサ値」、1分間における基準気圧センサ値の平均値を「平均基準気圧センサ値」とも表す。
次に、補正差分最小値算出部104は、平均気圧センサ値μp1,・・・,μpRと、平均基準気圧センサ値μq1,・・・,μqRとから気圧差分値を算出する(ステップS43)。気圧差分値をui(i=1,・・・,R)として、気圧差分値uiは、例えば、ui=μpi−μqiにより算出される。ただし、ui=μqi−μpiと算出されても良い。
次に、タグ向き算出部106は、当該タグ20(すなわち、タグID「Tag1」のタグ20)のタグ向き(「+1」又は「−1」)を算出する(ステップS44)。本ステップの処理(タグ向きの算出処理)の詳細については後述する。
次に、補正差分最小値算出部104は、気圧差分値u1,・・・,uRと、平均y成分加速度センサ値μy1,・・・,μyRと、平均z成分加速度センサ値μz1,・・・,μzRと、上記のステップS44で算出されたタグ向きとから補正気圧差分値を算出する(ステップS45)。補正気圧差分値をvi(i=1,・・・,R)、タグ向きをeとして、補正気圧差分値viは、vi=ui+e×sign(μzi)×μyi×Cにより算出される。ここで、Cは予め設定される定数(パラメータ)、signは符号関数である。ただし、sign(0)は正を返すものとする。
このように、気圧差分値uiを、タグ向きと平均z成分加速度センサ値μziの符号とを考慮した平均y成分加速度センサ値μyiにより補正することで、補正気圧差分値viが算出される。これにより、タグ20の装着方法により前後が異なる場合やベルトにねじれが発生した場合等であっても、y成分加速度センサ値により適切に気圧差分値を補正することができる。ここで、タグ向きeによってタグ20の前後が異なることによる影響が補正され、sign(μzi)によってねじれが発生したことによる影響が補正される。
次に、補正差分最小値算出部104は、補正気圧差分値vi(i=1,・・・,R)から第1の補正差分最小値と第2の補正差分最小値とを算出する(ステップS46)。すなわち、補正差分最小値算出部104は、補正気圧差分値vi(i=1,・・・,R)のうち、現在から過去10分前までの時間幅に含まれる補正気圧差分値viの最小値を第1の補正気圧差分最小値とし、過去10分前から過去20分前までの時間幅に含まれる補正気圧差分値viの最小値を第2の補正気圧差分最小値とする。
なお、第一の実施形態と同様に、補正差分最小値算出部104は、例えば、上記の最小値の代わりに、平均値又は最大値を用いることもできる。
≪タグ向きの算出処理≫
次に、上記のステップS44の処理(タグ向きの算出処理)の詳細について、図12を参照しながら説明する。図12は、第二の実施形態に係るタグ向きの算出処理の一例を示すフローチャートである。
まず、取得部101は、該当のタグID(すなわち、タグID「Tag1」)の過去24時間のy成分加速度センサ値とz成分加速度センサ値とを測定データ記憶部200から取得する(ステップS51)。なお、過去24時間は一例であって、任意の時間の間のy成分加速度センサ値とz成分加速度センサ値とが取得されても良い。
次に、タグ向き算出部106は、10分毎に、以下の指標値を計算する(ステップS51)。
・yz値=平均y成分加速度センサ値×sign(平均z成分加速度センサ値)
・y成分標準偏差
ここで、平均y成分加速度センサ値は、10分間におけるy成分加速度センサ値の平均値である。同様に、平均z成分加速度センサ値は、10分間におけるz成分加速度センサ値の平均値である。また、z成分標準偏差は、10分間におけるy成分加速度センサ値の標準偏差である。
これにより、10分毎に、互いに対応するyz値とy成分標準偏差とが得られる。なお、上記の10分毎に上記の指標値を計算することは一例であって、任意の時間幅毎に上記の指標値を計算しても良い。
次に、タグ向き算出部106は、上記のステップS52で計算したyz値のうち、対応するy成分標準偏差が所定の閾値SAを超えているyz値の中央値yaを算出する(ステップS53)。ここで、閾値SAは任意の値に設定することができるが、例えば、SA=150等とすれば良い。
次に、タグ向き算出部106は、上記のステップS52で計算したyz値のうち、対応するy成分標準偏差が所定の閾値SBを下回っているyz値の中央値ybを算出する(ステップS54)。ここで、閾値SBは任意の値に設定することができるが、例えば、SB=40等とすれば良い。
最後に、タグ向き算出部106は、e=sign(ya−yb)によりタグ向きeを算出する(ステップS55)。
なお、上記のステップS54は実行されなくても良い。この場合、上記のステップS555では、e=sign(ya)によりタグ向きを算出すれば良い。
<第二の実施形態のまとめ>
以上のように、本実施形態に係る行動特定システム1は、タグ20のタグ向きが異なる場合やねじれが発生した場合であっても、第一の実施形態と同様に、補正気圧分析により牛の「起立」又は「横臥」を高い精度で特定することができるようになる。
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。