(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-08-07
(45)【発行日】2023-08-16
(54)【発明の名称】活動量管理プログラム、活動量管理システム、及び活動量管理方法
(51)【国際特許分類】
A01K 29/00 20060101AFI20230808BHJP
G06T 7/00 20170101ALI20230808BHJP
【FI】
A01K29/00
G06T7/00 Z
(21)【出願番号】P 2019174225
(22)【出願日】2019-09-25
【審査請求日】2022-06-09
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】110003649
【氏名又は名称】弁理士法人真田特許事務所
(74)【代理人】
【識別番号】100092978
【氏名又は名称】真田 有
(74)【代理人】
【識別番号】100189201
【氏名又は名称】横田 功
(72)【発明者】
【氏名】滋野 信二
【審査官】大澤 元成
(56)【参考文献】
【文献】国際公開第2014/118788(WO,A1)
【文献】国際公開第2019/058752(WO,A1)
【文献】特開2018-099098(JP,A)
【文献】特開2018-148843(JP,A)
【文献】米国特許出願公開第2012/0238912(US,A1)
【文献】国際公開第2017/130736(WO,A1)
【文献】国際公開第2017/061031(WO,A1)
【文献】特開2011-062112(JP,A)
【文献】特開2005-000074(JP,A)
【文献】特表2015-529663(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
A01K 29/00
G06T 7/00
(57)【特許請求の範囲】
【請求項1】
撮像された第1画像における複数の個体の各々と、前記第1画像よりも時間的に前後して撮像された第2画像における前記複数の個体の各々とに基づき
算出される、前記第1画像と前記第2画像との間におけ
る前記複数の個体の各々の移動量を
、前記複数の個体の各々のサイズに応じて補正し、
前記
補正した
移動量の総和を前記複数の個体の数で除算することで、前記複数の個体の群全体としての
動きを定量的に評価するための指標である活動量を出力する、
処理をコンピュータに実行させる、活動量管理プログラム。
【請求項2】
前記補正は、
前記移動
量が同じ2以上の個体のうちのサイズが小さい個体ほど、前記2以上の個体のうちの他の個体よりも相対的に移動
量が大きくなるように補正する、
請求項
1に記載の活動量管理プログラム。
【請求項3】
前記第1画像及び前記第2画像に基づく画像解析により、前記複数の個体の各々のサイズを特定する、
処理を前記コンピュータに実行させる、請求項1
または2に記載の活動量管理プログラム。
【請求項4】
過去に撮像された第1画像及び第2画像に基づき
前記補正した移動量
の総和を前記複数の個体の数で除算することで出力した
過去の活動量を、前記過去に撮像された第1画像又は第2画像の撮像日時ごとに、記憶領域に格納し、
前記出力した活動量と、前記記憶領域に記憶された複数の前記
過去の活動量とに基づき、前記複数の個体の異変に関するアラートを出力する、
処理を前記コンピュータに実行させる、請求項1~
3のいずれか1項に記載の活動量管理プログラム。
【請求項5】
前記複数の個体の各々は、前記第1画像及び前記第2画像に基づき識別された観察対象の飼育動物を示す画像領域であり、
前記第1画像及び前記第2画像は、複数の前記飼育動物を収容する畜舎内を、所定の時間間隔で定点撮像して得られる画像である、
請求項1~
4のいずれか1項に記載の活動量管理プログラム。
【請求項6】
撮像された第1画像における複数の個体の各々と、前記第1画像よりも時間的に前後して撮像された第2画像における前記複数の個体の各々とに基づき
算出される、前記第1画像と前記第2画像との間におけ
る前記複数の個体の各々の移動量を
、前記複数の個体の各々のサイズに応じて補正する補正部と、
前記
補正した
移動量の総和を前記複数の個体の数で除算することで、前記複数の個体の群全体としての
動きを定量的に評価するための指標である活動量を出力する出力部と、を備える、
活動量管理システム。
【請求項7】
撮像された第1画像における複数の個体の各々と、前記第1画像よりも時間的に前後して撮像された第2画像における前記複数の個体の各々とに基づき
算出される、前記第1画像と前記第2画像との間におけ
る前記複数の個体の各々の移動量を
、前記複数の個体の各々のサイズに応じて補正し、
前記
補正した
移動量の総和を前記複数の個体の数で除算することで、前記複数の個体の群全体としての
動きを定量的に評価するための指標である活動量を出力する、
処理をコンピュータが実行する、活動量管理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、活動量管理プログラム、活動量管理システム、及び活動量管理方法に関する。
【背景技術】
【0002】
畜舎(「家畜小屋」と称されてもよい)内の画像を撮像し、撮像された画像内の複数の動物の分布に基づいて、複数の動物の異常度を判定する技術が知られている。例えば、この技術では、撮像された動物の分布と、基準画像における動物の分布とが類似していない場合に、異常度が高いと判定する。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2017-192316号公報
【文献】国際公開第2018/179219号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【0004】
集団で飼育される動物の異変を早期に検出する、例えば、複数の動物の異変の検出に利用される情報を早期に算出することは、動物を安全かつ健康に飼育する上で重要である。
【0005】
上述した、複数の動物の分布に基づいて異常度を判定する技術では、異変に起因して(換言すれば異変の発生後に)複数の動物の分布が変化し、異常度が高いと判定される場合があり、異変の早期検出には不十分である可能性がある。
【0006】
1つの側面では、本発明は、複数の動物の異変を早期に検出するための情報を出力することを目的とする。
【課題を解決するための手段】
【0007】
1つの側面では、活動量管理プログラムは、コンピュータに、以下の処理を実行させてよい。前記処理は、撮像された第1画像における複数の個体の各々と、前記第1画像よりも時間的に前後して撮像された第2画像における前記複数の個体の各々とに基づき算出される、前記第1画像と前記第2画像との間における前記複数の個体の各々の移動量を、前記複数の個体の各々のサイズに応じて補正してよい。また、前記処理は、前記補正した移動量の総和を前記複数の個体の数で除算することで、前記複数の個体の群全体としての動きを定量的に評価するための指標である活動量を出力してよい。
【発明の効果】
【0008】
1つの側面では、複数の動物の異変を早期に検出するための情報を出力することができる。
【図面の簡単な説明】
【0009】
【
図1】一実施形態に係るシステムの構成例を示すブロック図である。
【
図3】床平面上を移動する動物の移動の軌跡の一例を示す図である。
【
図4】t=Nの撮像画像における個体の識別結果の一例を示す図である。
【
図5】t=N+1の撮像画像における個体の識別結果の一例を示す図である。
【
図6】t=N、N+1の撮像画像間の個体移動量の一例を示す図である。
【
図7】t=N、N+1の撮像画像間の個体移動量の一例を示す図である。
【
図9】1日ごとの活動量の計測結果をプロットしたグラフの一例を示す図である。
【
図10】1秒あたりの複数の個体の活動量の総和の一例を示す図である。
【
図11】1秒あたり且つ1頭あたりの個体の活動量の一例を示す図である。
【
図13】サーバの動作例を示すフローチャートである。
【
図14】サーバの機能を実現するコンピュータのハードウェア構成例を示すブロック図である。
【発明を実施するための形態】
【0010】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【0011】
〔1〕一実施形態
〔1-1〕一実施形態の構成例
図1は、一実施形態に係るシステム1の構成例を示すブロック図である。システム1は、畜舎内を撮像した撮像画像に基づき、撮像画像内の複数の動物の活動量を算出する情報処理システムの一例である。活動量は、複数の動物の異変の検出に利用されてよい。
【0012】
システム1は、
図1に示すように、例示的に、1以上(
図1の例では複数)の監視カメラ2と、サーバ4と、を備えてよい。なお、監視カメラ2及びサーバ4は、例えば、ネットワーク5により相互に通信可能に接続されてよい。
【0013】
ネットワーク5は、例えば、LAN(Local Area Network)或いはWAN(Wide Area Network)、又はこれらの組み合わせを含む、インターネット及びイントラネットの少なくとも一方であってよい。また、ネットワーク5は、VPN(Virtual Private Network)等の仮想ネットワークを含んでもよい。なお、ネットワーク5は、有線ネットワーク及び無線ネットワークの一方又は双方により形成されてよい。
【0014】
監視カメラ2は、撮影方向における空間を撮影(撮像)し、画像系列、例えば、動画像等の、時系列に連続する複数の画像(「フレーム」と称されてもよい)を取得してよい。監視カメラ2は、例えば、複数の飼育動物(以下、単に「動物」と表記する場合がある)30を収容する畜舎3の内部又は外部を、所定の時間間隔Tで定点撮像することで、画像系列を取得してよい。一実施形態において、動物30としては「豚」を例に挙げる。
【0015】
監視カメラ2は、例えば、複数の動物30を収容する畜舎3に設置されてよく、一例として、畜舎3の内部又は外部に存在する飼育スペースを撮像範囲に含むように、飼育スペースにレンズ面を向けて、畜舎3の天井面又は壁面等に配置されてよい。監視カメラ2による撮像画像は、飼育スペースを上空から見下ろした俯瞰画像であってもよい。
【0016】
飼育スペースの全体を撮像範囲に含めるために、例えば、複数の監視カメラ2が互いの死角を補完できる(或いは一部の撮像範囲が重なる)位置に設置されてもよいし、1以上の可動式の監視カメラ2が設置されてもよく、或いは、これらを組み合わせてもよい。
【0017】
監視カメラ2は、取得した映像をネットワーク5経由でサーバ4に送信してよい。例えば、監視カメラ2は、取得した映像を図示しないレコーダ等に蓄積し、所定のタイミングで、レコーダ内のデータをサーバ4に送信してもよい。所定のタイミングとしては、所定の時刻の到来、所定時間の経過、レコーダへの蓄積容量、蓄積フレーム数、等の種々の条件が用いられてよい。又は、監視カメラ2は、レコーダを介さずに、撮影した映像をサーバ4に送信してもよい。レコーダを介さない場合、例えば、監視カメラ2は、1~数フレームごとに(略リアルタイムに)映像を送信してもよい。
【0018】
監視カメラ2としては、例えば、ボックス型カメラ、ドームカメラ、ネットワークカメラ等が挙げられる。なお、ネットワークカメラとしては、IP(Internet Protocol)カメラ等が挙げられる。また、監視カメラ2として赤外線カメラ等の暗視カメラが用いられてもよい。監視カメラ2は、例えば、防犯カメラ、監視カメラ、定点カメラ等の種々の用途のカメラが用いられてよい。
【0019】
サーバ4は、監視カメラ2が撮影した映像に基づき、畜舎3の飼育スペースにおける観察対象の飼育動物30の個体位置を識別し、撮像画像間における、各飼育動物30の位置の変化量を算出し、各変化量を用いて、飼育動物30の群全体としての活動量を出力する。サーバ4の詳細については後述する。
【0020】
なお、サーバ4が出力する「活動量」、又は、活動量を利用して検出された「飼育動物の異変に関する情報」は、例えば、
図1に示すように、端末装置6に提供されてよい。一例として、サーバ4は、Webサーバの機能(例えば、後述する情報提示部18)を有してよく、Webサーバの機能により、ネットワーク5を介して、「活動量」又は「異変に関する情報」を表すWebページを端末装置6に表示させてもよい。
【0021】
端末装置6は、サーバ4が出力した活動量又は異変に関する情報を受け取るコンピュータであってよく、例えば、畜舎3を所有又は運営する酪農事業者が有するコンピュータであってよい。端末装置6としては、例えば、デスクトップ、ラップトップ又はモバイル等のPC(Personal Computer)、タブレット、スマートホン、携帯電話等の各種情報処理装置が挙げられる。端末装置6は、例示的に、ユーザからの情報(操作要求)の入力手段、ユーザへの情報の出力手段、及び、サーバ4との間の通信手段、等を備えてよい。
【0022】
なお、
図1に例示するように、端末装置6が無線通信を行なうPC、タブレット、スマートホン、携帯電話等である場合、ネットワーク5との接続は、基地局7を介したモバイルネットワーク経由で行なわれてもよい。
【0023】
〔1-2〕サーバの構成例
次に、サーバ4の構成例について説明する。サーバ4は、畜舎3、酪農事業者、又はデータセンタ等に設置される1以上の情報処理装置又はコンピュータの一例である。サーバ4としては、例えば、種々の物理サーバ装置及び/又は仮想サーバ装置が挙げられる。サーバ4の少なくとも一部の機能は、例えばクラウドサービスにより提供されるリソース、フレームワーク、及び/又は、アプリケーション等を利用して実現されてもよい。また、サーバ4の少なくとも一部の機能は、複数のコンピュータに分散又は冗長化して配置されてもよい。1以上の物理サーバ装置及び/又は仮想サーバ装置により実現されるサーバ4は、活動量管理システムの一例である。
【0024】
図1に示すように、サーバ4は、例示的に、メモリ部11、撮像データ取得部12、個体識別部13、移動量算出部14、正規化部15、活動量算出部16、判定部17、及び、情報提示部18を備えてよい。
【0025】
メモリ部11は、サーバ4の処理に用いられる種々の情報を格納する。メモリ部11が格納する情報については、サーバ4の機能の説明において後述する。なお、メモリ部11としては、メモリ、例えばDRAM等の揮発性メモリやPM等の不揮発性メモリ、並びに、記憶部、例えばHDD(Hard Disk Drive)又はSSD(Solid State Drive)等の記憶装置、の一方又は双方が挙げられる。DRAMは、Dynamic Random Access Memoryの略称であり、PMは、Persistent Memoryの略称である。
【0026】
撮像データ取得部12は、撮像データを取得する。例えば、撮像データ取得部12は、監視カメラ2から送信された撮像データをネットワーク5経由で受信し、メモリ部11に撮像データ111としてメモリ部11に格納してよい。
【0027】
図2は、時刻t=N(Nは整数であり撮像画像のフレーム番号を表現する)のときの撮像データ111の一例を示す図である。
図2に示すように、撮像データ111には、監視カメラ2の撮影方向における空間内に位置する複数の動物30の画像が含まれる。
【0028】
なお、一実施形態に係るサーバ4で利用される撮像データ111は、所定の時間間隔Tで撮影された撮像画像(フレーム)の画像系列であってよい。所定の時間間隔Tとは、一例として、0.1秒程度の時間間隔が挙げられる。換言すれば、撮像データ111は、10FPS(Frame Per Second)程度の画像系列であってよい。所定の時間間隔Tは、これに限定されるものではなく、飼育動物30の種類、観察の目的、時間帯、等の種々の条件によって適宜変更されてよい。
【0029】
撮像データ取得部12は、受信した撮像データを加工して、メモリ部11に格納してもよい。例えば、撮像データ取得部12は、受信した撮像データの撮影間隔が、上述した所定の時間間隔Tよりも短い時間間隔である場合、撮影間隔が所定の時間間隔Tとなるように撮像データから余剰フレームを間引いたデータを、撮像データ111として保存してよい。
【0030】
なお、撮像データ取得部12は、監視カメラ2により撮影された各撮像画像(フレーム)の撮影時刻をメモリ部11等に記録してよい。例えば、撮像データ取得部12は、以下のように、フレームごとに撮影時刻を記録し管理してよい。
【0031】
1画像目の撮影時刻:2019/07/01 10:00:00.000
2画像目の撮影時刻:2019/07/01 10:00:00.100
・・・
【0032】
個体識別部13、移動量算出部14、正規化部15、及び、活動量算出部16は、撮像データ取得部12が取得した撮像データ111を利用して、複数の飼育動物30の集団としての「活動量」を算出する。活動量は、集団の活動の程度を定量的に表す情報であり、複数の飼育動物30の異変の検出に利用される情報の一例である。
【0033】
図3は、床平面上を移動する動物30の移動の軌跡の一例を示す図である。
図3に示すように、撮像データ111の撮影範囲に相当する領域kにおいて、複数の動物30の各々が床平面上を移動する。例えば、動物30-1~30-4の一定時間内の移動の軌跡を、それぞれ、符号S1~S4の実線(及び領域k外の破線)で示す。また、複数の動物30-5は、実線で示すように、一定時間内において一定の領域に留まっている。なお、一定時間とは、例えば、所定の時間間隔Tよりも大きくてよい。
【0034】
ここで、集団で飼育される動物30の異変は、感染症の蔓延等により動物30の分布等に変化が発生したことで検出されることがある。このため、複数の動物の異変を早期に検出するための情報を出力することは、動物を安全に飼育する上で重要である。
【0035】
例えば、一実施形態に係るサーバ4は、畜舎3の定点観測で得られる撮像データ111のフレーム間を比較することにより、複数の飼育動物30の各々の移動の軌跡、例えば移動量を算出する。各飼育動物30の移動量は、例えば、飼育動物30の活動の程度、換言すれば活動量、を把握するのに利用可能なパラメータの1つである。
【0036】
図4及び
図5は、それぞれ、t=N、N+1の撮像画像(フレーム)における個体31の識別結果の一例を示す図である。サーバ4は、撮像データ111の各画像において、複数の動物30の各々を個体31として識別してよい。個体31は、例えば、矩形領域で表されてよい。なお、
図4では、t=Nの第1画像で識別された個体31を破線で示し、
図5では、t=N+1の第2画像で識別された個体31を実線で示す。
【0037】
第1画像及び第2画像は、時系列に連続して撮像された2つの画像であり、第2画像は、第1画像よりも時間的に前後して(例えば後に)撮像された画像を意味してよい。
【0038】
図6は、t=N、N+1の撮像画像間の個体移動量の一例を示す図である。サーバ4は、識別した個体31について、t=N、N+1の画像間での移動量32を、動物30ごとに算出する。移動量32の算出は、種々の手法により行なわれてよい。一例として、移動量32は、t=N、N+1のそれぞれの画像における、或る個体31の(例えば重心や中心等の)変化量として算出されてよい。
【0039】
図3の領域kに位置する動物30の活動量Akは、例示的に、下記式(1)により算出されてよい。下記式(1)において、Si(iは1以上の整数)は、飼育動物30-iの一定時間内の平面上の移動距離を示す。Siは、所定の時間間隔Tごとの各動物30の移動量を一定時間分に亘って総和することで算出されてよい。なお、S1、S3、S4の破線で示す部分は、領域k外、すなわち監視カメラ2の撮影範囲外であるため、これらの破線で示す部分の移動量は算出されない。
【0040】
Ak = Σi(Si) (1)
【0041】
一実施形態に係るサーバ4は、集団の飼育動物30に対して継続的に活動量を計測する。例えば、サーバ4により、集団としての飼育動物30の動き(活動量)の解析を継続的に行なう。これにより、サーバ4は、活動量の変化によって、集団としての飼育動物30における病気の広がりの前兆、給餌機の故障、害獣の侵入等の、通常とは違う状態の検知が可能となり、早期の対策が可能となる。
【0042】
以下、個体識別部13、移動量算出部14、正規化部15、活動量算出部16、判定部17、及び、情報提示部18について説明する。なお、個体識別部13、移動量算出部14、正規化部15及び活動量算出部16による一連の処理は、所定の算出間隔で実行されてよい。所定の算出間隔としては、例えば、数分~数十分、一時間~数時間、一日~数日等が挙げられるが、これらに限定されるものではなく、飼育動物30の種類、観察の目的、等の種々の条件によって適宜変更されてよい。
【0043】
個体識別部13は、撮像データ111に含まれる複数の画像の各々から、複数の個体31の各々を識別し、識別結果をメモリ部11の活動量算出情報112に登録する。
【0044】
識別結果は、例えば、各個体31の画像内のサイズを含んでよい。上述のように、個体31が存在する領域は、矩形領域で囲われてよい。このため、サイズとしては、矩形領域の長辺及び短辺のそれぞれの長さ、例えば、ピクセル(pixel)数又は画素数が挙げられる。また、識別結果には、各個体31の位置、例えば、矩形領域の重心、中心、又は4隅のいずれかについての、絶対座標又は画像の基準点からの相対座標等の座標が含まれてもよい。
【0045】
図7は、t=N、N+1の撮像画像間の個体移動量の一例を示す図である。
図7では、0.1秒の撮影間隔で撮影された2画像において、3頭の動物30A~30Cの移動が確認された場合を示す。
図7に例示するように、個体識別部13は、動物30Aの個体31A、動物30Bの個体31B、並びに、動物30Cの個体31Cを識別してよい。なお、
図7では、撮像データ111のt=Nの撮像画像内の個体31A~31Cを破線で示し、t=N+1の撮像画像内の移動後の個体31A~31Cを実線で示す。
【0046】
例えば、個体識別部13は、
図7に示す動物30A~30Cのサイズを以下のように識別した場合を想定する。
【0047】
・動物30A:矩形幅100ピクセル、矩形高さ30ピクセル
・動物30B:矩形幅 50ピクセル、矩形高さ30ピクセル
・動物30C:矩形幅 70ピクセル、矩形高さ30ピクセル
【0048】
図8は、活動量算出情報112の一例を示す図である。
図8に示すように、個体識別部13は、活動量算出情報112における、個体識別を行なった日時に対応するエントリに対して、「矩形幅」、「矩形高さ」及び「体長」を個体31ごとに登録してよい。
【0049】
図8の例では、個体識別部13は、“2019/07/01 10:00:00”のエントリに対して、“2019/07/01 10:00:00.000”の撮像画像に基づき識別した
図7に示す動物30A~30Cのそれぞれのサイズを登録する(
図8の符号Aの領域参照)。なお、「体長」には、幅及び高さのうちの大きい方が登録されてよい。
【0050】
個体識別部13による個体31の識別には、種々の画像解析技術が用いられてよく、一実施形態では、例示的に、ニューラルネットワーク(NN;Neural Network)を用いたディープラーニング(DL;Deep Learning)による検出モデルが用いられるものとする。
【0051】
移動量算出部14は、個体31ごとに、所定の時間間隔Tの移動量32を算出し、算出結果をメモリ部11の活動量算出情報112に登録する。
【0052】
図7に示す例では、移動量算出部14は、t=N、N+1の2画像間における個体31A~31Cの移動量32A~32Cが、それぞれ10ピクセル、5ピクセル、8ピクセルであると算出する。移動量32A~32Cは、t=N、N+1の2画像間における個体31A~31Cの重心、中心、4隅のいずれかの座標の変化量を算出することで得られてもよい。或いは、移動量32A~32Cの算出には、NNを用いたDLによる算出モデルが用いられてもよく、その他、種々の画像解析技術が用いられてよい。
【0053】
移動量算出部14は、
図8に例示するように、活動量算出情報112における、移動量算出を行なった日時に対応するエントリに対して、「移動量」を個体31ごとに登録してよい。
【0054】
図8の例では、移動量算出部14は、“2019/07/01 10:00:00”のエントリに対して、“2019/07/01 10:00:00.000”及び“2019/07/01 10:00:00.100”の撮像画像に基づき算出した
図7に示す動物30A~30Cのそれぞれの移動量32を登録する。なお、移動量算出部14は、所定の時間間隔Tの間の移動量32(
図8の符号Bの領域参照)、例えば、
図8の例では、0.1秒間の移動量32を活動量算出情報112に登録してよい。
【0055】
正規化部15は、活動量算出情報112に登録された個体31の「移動量」(換言すれば移動距離)を、各個体31のサイズに応じて正規化(換言すれば補正)し、正規化した値を活動量算出情報112に登録する。
【0056】
例えば、正規化部15は、移動量算出部14が算出した「移動量」を、所定の時間間隔Tで除算することで、1秒あたりの移動量を算出してよい。
【0057】
また、正規化部15は、1秒あたりの移動量を、個体識別部13が識別した「体長」で除算することで、正規化した体長の動物30による、1秒あたりの移動量(正規化移動量)を算出してよい。
【0058】
正規化部15による、体長による移動量の正規化は、移動距離が同じ2以上の個体31のうちのサイズが小さい個体31ほど、2以上の個体31のうちの他の個体31よりも相対的に移動距離が大きくなるように補正するといえる。
【0059】
図8の例では、正規化部15は、“2019/07/01 10:00:00”のエントリに対して、動物30A~30Cの移動量10、5、8ピクセルを、所定の時間間隔T=0.1で除算することで、1秒あたりの移動量としてそれぞれ100、50、80ピクセルを算出する。また、正規化部15は、1秒あたりの移動量を、動物30A~30Cの体長100、50、70ピクセルでそれぞれ除算することで、正規化移動量としてそれぞれ1.00、1.00、1.14を算出する。正規化部15が算出した各移動量は、
図8の符号Cの領域に示すように、活動量算出情報112に登録されてよい。
【0060】
このように、移動量算出部14及び正規化部15は、t=N、N+1のそれぞれの撮像画像における複数の個体31の各々に基づき、複数の個体31の各々の移動量を算出する算出部の一例である。
【0061】
活動量算出部16は、正規化された移動量に基づき、複数の動物30の群全体としての活動量を算出する。複数の動物30の群全体としての活動量とは、撮影された複数の動物30全体の動き量を体長で正規化したものである。また、複数の動物30の群全体としての活動量は、複数の動物30の活動量を、1秒あたり且つ1頭あたりの活動量に正規化したものである。
【0062】
例えば、活動量算出部16は、活動量算出情報112の正規化を行なった日時に対応するエントリごとに、正規化移動量の総和を算出し、当該総和を、識別された動物30の数(頭数)で除算することで、活動量を算出してよい。
【0063】
図8の例では、活動量算出部16は、“2019/07/01 10:00:00”のエントリに対して、動物30A~30Cの正規化移動量1.00、1.00、1.14の総和3.14を算出し、当該総和を動物30の頭数(=3)で除算することで、活動量1.05を取得する。活動量算出部16が算出した、正規化移動量の総和、及び、活動量は、
図8の符号Dの領域に示すように、活動量算出情報112に登録されてよい。なお、活動量は、動物30が1秒間に体長に対してどの程度の割合だけ移動したかを示し、例えば、活動量が1.00の場合、動物30が自身の体長分だけ移動したことを示す。
【0064】
なお、
図8に示す例では、1時間ごとの活動量が算出されているが、これに限定されるものではなく、例えば、1日ごとに活動量が算出されてもよい。また、活動量算出部16は、1時間ごとに算出した活動量を1日単位で平均化又は合計し、平均値又は合計値を1日ごとの活動量として活動量算出情報112に登録してもよい。
【0065】
以上のように、活動量算出部16は、算出した複数の個体31の各々の移動量を用いて、複数の個体31の群全体としての活動量を出力する出力部の一例である。
【0066】
判定部17は、活動量算出部16が算出した、複数の動物30の群全体の活動量に基づき、複数の動物30に異変が発生しているか否かを判定する。
【0067】
図9は、1日ごとの活動量の計測結果をプロットしたグラフの一例を示す図である。
図9に示すように、日の経過とともに、換言すれば、動物30の成長とともに、活動量が小さくなる傾向がある。これは、動物30の成長により動きが少なくなり、活動範囲が狭まることが関係していると考えられる。
【0068】
図9に例示するように、活動量には、動物30の成長とともに小さくなる傾向があることから、判定部17は、活動量算出部16により、このような傾向から外れる活動量が算出された場合に、複数の動物30に異変が発生していると判定してよい。
【0069】
上述した判定のために、サーバ4(例えば活動量算出部16)は、過去の飼育サイクルにおいて算出された活動量算出情報112を、生育結果、換言すれば比較データとしてメモリ部11に格納(蓄積)してよい。過去の1以上の飼育サイクルにおいて算出された活動量算出情報112を比較データとして用いることで、複数の動物30に異変が発生している、又は、正常である、ことを適切に又は容易に判定することができる。
【0070】
また、動物30の飼育時期(季節等)、畜舎3の温度や湿度、時間帯等の条件に応じて、活動量が変動する可能性がある。比較データとして、過去の様々な条件で算出された活動量算出情報112を利用することで、判定部17は、現在の条件と一致する比較データに基づき、動物30の異変の発生有無を適切に判定することができる。
【0071】
一例として、メモリ部11は、過去の複数の飼育サイクル(飼育シーズン)の生育結果であって、動物30の異変が発生していない活動量算出情報112を記憶してよい。過去の活動量算出情報112は、例えば、活動量の理想の遷移情報としてグラフ化されてもよい。このグラフには、例えば活動量の上限及び下限を含む「幅」を持たせてよく、また、撮像画像の撮影時間帯や、動物30の日齢又は月齢等の情報を含ませてもよい。
【0072】
このように、活動量算出部16は、過去に撮像された第1画像及び第2画像に基づき算出した移動量を用いて出力した活動量を、過去に撮像された第1画像又は第2画像の撮像日時ごとに、メモリ部11に格納する格納部の一例である。
【0073】
情報提示部18は、判定部17により複数の動物30に異変が発生していると判定された場合、判定された異変に関する情報を提示する(アラートを出力する)。異変に関する情報には、異変が発生している可能性がある旨の通知、活動量算出情報112の少なくとも一部、活動量の増大又は減少の傾向から推定される原因、のうちの少なくとも一種類が含まれてよい。
【0074】
例えば、活動量の異常な増大は、害獣や、盗難目的による人の畜舎3への侵入が考えられる。また、例えば、活動量の異常な低下は、感染症の蔓延や、給餌器、給水器の故障等による飼育動物30の体調悪化等が考えられる。従って、情報提示部18は、活動量の増大又は減少の傾向から推定される原因として、畜舎3への害獣や人の侵入、飼育動物30の体調悪化、等を提示してよい。
【0075】
例えば、情報提示部18は、酪農事業者やシステム1の管理者等に対して、電子メール、プッシュ通知、SMS(Short Message Service)、或いはその他の種々の手法により、情報を通知してよい。なお、情報提示部18は、サーバ4が備えるモニタ、プロジェクタ、又はプリンタ等の種々の出力装置に対して、上述した情報の表示又は出力を行なってもよい。
【0076】
このように、情報提示部18は、活動量算出部16が出力した活動量と、メモリ部11に記憶された複数の活動量(過去の活動量算出情報112)とに基づき、複数の個体31の異変に関するアラートを出力するアラート出力部の一例である。
【0077】
活動量算出部16により出力された活動量に基づけば、酪農事業者は、複数の動物30に感染症の蔓延等が発生していないか、餌や水が不足していないか、等の飼育動物30の通常とは違う変化にいち早く気付くことができる。また、このような活動量に基づけば、酪農事業者は、害獣の侵入や、盗難目的の人の侵入にいち早く気付くことができる。従って、酪農事業者は、24時間体制による監視、例えば、見回りによる監視や、監視カメラ2の映像のモニタリング等を行なわずに済み、利便性が高い。
【0078】
以上のように、一実施形態に係るサーバ4によれば、2つの撮像画像から、例えばDLにより個体31を認識し、各個体31の移動量を計測し、これらの移動量を用いて、複数の個体31の群全体としての活動量を出力する。
【0079】
サーバ4は、複数の個体31の群全体としての活動量を用いることで、複数の動物30の異変を適切に検出することができる。また、複数の個体31の移動量を用いた演算により、複数の個体31の群全体としての活動量を容易に算出できるため、複数の動物30の異変を早期に検出するための情報を出力することができる。また、サーバ4は、所定の周期で連続して活動量を計測することにより、活動量の増大や低減等の通常とは異なる状況の発生を早期に検出することができる。
【0080】
さらに、撮像データ111を用いて定期的に演算処理を行なうことで、容易に活動量を出力することができるため、監視カメラ2で撮影している範囲内の動物30の集団の活動量の計測を可能にしつつ、サーバ4における処理負荷の増大を抑制することができる。
【0081】
また、サーバ4は、活動量の算出の際に、個体31のサイズ、例えば体長を考慮した正規化処理を行なうため、個体31のサイズを基準とした活動量を算出でき、監視カメラ2の設置位置やカメラ解像度に依存しない活動量を出力できる。
【0082】
ここで、例えば、1秒あたりの複数の個体31の活動量の総和を用いて、異変の発生を判定する場合を考える。
図10は、1秒あたりの複数の個体31の活動量の総和の一例を示す図である。
図10に例示するように、1秒あたりの複数の個体31の活動量の総和は、日の経過によっても変化しない(横ばい)に見えるが、飼育スペースの撮像範囲に入る動物30の数の増減に応じて、活動量の総和も増減する可能性がある。従って、活動量の総和は、飼育対象の動物30全体を定量的に評価する指標としては不十分である。
【0083】
図11は、1秒あたり且つ1頭あたりの個体31の活動量の一例を示す図であり、
図12は、個体31の体長の変化の一例を示す図である。
図11の縦軸には、
図10に示す活動量の総和を、撮像範囲に入っている(個体識別部13により識別された)動物30の数で除算した活動量を示す。
【0084】
図11に例示するように、活動量の範囲が1.04~1.06前後となっており、動物30の成長に伴い若干の低下傾向が見られる。しかし、サーバ4は、動物30の移動量をピクセル数で計測しているため、動物30の成長(
図12参照)に伴って移動量が大きく計測される可能性がある。従って、1秒あたり且つ1頭あたりの個体31の活動量は、飼育対象の動物30全体を定量的に評価する指標としては不十分である。
【0085】
以上の理由から、一実施形態に係るサーバ4は、1秒あたり且つ1頭あたりの個体31の活動量を、体長により正規化することで、複数の個体31の群全体としての活動量を出力するのである(
図9参照)。
【0086】
〔1-3〕一実施形態の動作例
次に、上述した一実施形態に係るサーバ4の動作例を説明する。
図13は、サーバ4の動作例を示すフローチャートである。
【0087】
図13に例示するように、サーバ4は、活動量算出タイミングの到来を待ち合わせる(ステップS1、ステップS1でNo)。活動量算出タイミングは、例えば、1時間等の所定の算出間隔で到来してよい。
【0088】
活動量算出タイミングが到来すると(ステップS1でYes)、撮像データ取得部12は、監視カメラ2により撮像された撮像データから複数の撮像画像及び撮影日時を取得し、撮像データ111としてメモリ部11に記憶する(ステップS2)。複数の撮像画像は、撮像された第1画像と、第1画像よりも時間的に前後して(例えば所定の時間間隔Tで)撮像された第2画像とを含んでよい。
【0089】
なお、ステップS2は、ステップS1の判定よりも前に、監視カメラ2から撮像データを受信する都度実行されてもよい。
【0090】
撮像データ取得部12は、撮像データ111に基づき、複数の撮像画像の各々から、複数の個体31の位置及びサイズを識別し(ステップS3)、識別結果を活動量算出情報112に登録する。
【0091】
移動量算出部14は、識別結果に基づき、個体31ごとに移動量32を算出し(ステップS4)、算出結果を活動量算出情報112に登録する。
【0092】
正規化部15は、移動量32を1秒あたりの移動量に正規化し(ステップS5)、1秒あたりの移動量を体長により正規化して(ステップS6)、正規化した移動量を活動量算出情報112に登録する。なお、ステップS5及びS6は、逆順で実行されてもよい。
【0093】
活動量算出部16は、複数の個体31の移動量を総和し(ステップS7)、総和した移動量を活動量算出情報112に登録する。また、活動量算出部16は、移動量の総和を個体数で除算することで活動量を算出し(ステップS8)、算出した活動量を活動量算出情報112に登録する。
【0094】
判定部17は、ステップS3~S8で登録した活動量算出情報112の活動量と、活動量算出部16によりメモリ部11に格納された過去の活動量算出情報112、すなわち過去の生育結果(比較データ)とを比較する(ステップS9)。
【0095】
判定部17は、比較により、複数の動物30の異変の発生を検出したか否かを判定する(ステップS10)。異変の発生を検出していないと判定した場合(ステップS10でNo)、処理がステップS1に移行する。
【0096】
一方、異変の発生を検出したと判定した場合(ステップS10でYes)、情報提示部18は、検出した異変に関する情報を提示し(ステップS11)、処理がステップS1に移行する。
【0097】
〔1-4〕ハードウェア構成例
図14は、サーバ4の機能を実現するコンピュータ10のハードウェア(HW)構成例を示すブロック図である。サーバ4の機能を実現するHWリソースとして、複数のコンピュータが用いられる場合は、各コンピュータが
図14に例示するHW構成を備えてよい。
【0098】
図14に示すように、コンピュータ10は、HW構成として、例示的に、プロセッサ10a、メモリ10b、記憶部10c、IF(Interface)部10d、I/O(Input / Output)部10e、及び読取部10fを備えてよい。
【0099】
プロセッサ10aは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ10aは、コンピュータ10内の各ブロックとバス10iで相互に通信可能に接続されてよい。なお、プロセッサ10aは、複数のプロセッサを含むマルチプロセッサであってもよいし、複数のプロセッサコアを有するマルチコアプロセッサであってもよく、或いは、マルチコアプロセッサを複数有する構成であってもよい。
【0100】
プロセッサ10aとしては、例えば、CPU、MPU、GPU、APU、DSP、ASIC、FPGA等の集積回路(IC;Integrated Circuit)が挙げられる。なお、プロセッサ10aとして、これらの集積回路の2以上の組み合わせが用いられてもよい。CPUはCentral Processing Unitの略称であり、MPUはMicro Processing Unitの略称である。GPUはGraphics Processing Unitの略称であり、APUはAccelerated Processing Unitの略称である。DSPはDigital Signal Processorの略称であり、ASICはApplication Specific ICの略称であり、FPGAはField-Programmable Gate Arrayの略称である。
【0101】
メモリ10bは、種々のデータやプログラム等の情報を格納するHWの一例である。メモリ10bとしては、例えばDRAM等の揮発性メモリやPM等の不揮発性メモリが挙げられる。
【0102】
記憶部10cは、種々のデータやプログラム等の情報を格納するHWの一例である。記憶部10cとしては、HDD等の磁気ディスク装置、SSD等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、SCM(Storage Class Memory)、ROM(Read Only Memory)等が挙げられる。
【0103】
また、記憶部10cは、コンピュータ10の各種機能の全部若しくは一部を実現するプログラム10g(活動量管理プログラム)を格納してよい。例えば、サーバ4のプロセッサ10aは、記憶部10cに格納されたプログラム10gをメモリ10bに展開して実行することにより、サーバ4としての機能を実現できる。
【0104】
IF部10dは、ネットワークとの間の接続及び通信の制御等を行なう通信IFの一例である。例えば、IF部10dは、LAN、或いは、光通信(例えばFC(Fibre Channel))等に準拠したアダプタを含んでよい。当該アダプタは、無線及び有線の一方又は双方の通信方式に対応してよい。例えば、プログラム10gは、当該通信IFを介して、ネットワークからコンピュータ10にダウンロードされ、記憶部10cに格納されてもよい。
【0105】
I/O部10eは、入力装置、及び、出力装置、の一方又は双方を含んでよい。入力装置としては、例えば、キーボード、マウス、タッチパネル等が挙げられる。出力装置としては、例えば、モニタ、プロジェクタ、プリンタ等が挙げられる。
【0106】
読取部10fは、記録媒体10hに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部10fは、記録媒体10hを接続可能又は挿入可能な接続端子又は装置を含んでよい。読取部10fとしては、例えば、USB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体10hにはプログラム10gが格納されてもよく、読取部10fが記録媒体10hからプログラム10gを読み出して記憶部10cに格納してもよい。
【0107】
記録媒体10hとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。
【0108】
上述したコンピュータ10のHW構成は例示である。従って、コンピュータ10内でのHWの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、又は、バスの追加若しくは削除等は適宜行なわれてもよい。例えば、サーバ4において、I/O部10e及び読取部10fの少なくとも一方は、省略されてもよい。
【0109】
〔2〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
【0110】
例えば、
図7に示す各機能ブロックは、それぞれ任意の組み合わせで併合してもよく、分割してもよい。
【0111】
また、サーバ4は、算出した活動量を他のサーバに出力(送信)してもよい。この場合、サーバ4が、
図7に例示する情報提示部18、又は、判定部17及び情報提示部18を備えない構成も許容されてよい。
【0112】
さらに、一実施形態では、飼育動物30として豚を例に挙げて説明したが、これに限定されるものではなく、飼育動物30は、牛や鶏等の種々の動物であってもよい。
【0113】
また、一実施形態では、活動量を用いて、複数の動物30の異変の検出を行なう手法について説明したが、これに限定されるものではない。上述のように、動物30は、成長するにつれて、活動量が減少する傾向にある。この傾向を利用して、サーバ4は、活動量を過去の比較データと比較することで、動物30の成長状態を判定することができる。
【0114】
例えば、判定部17は、活動量を、動物30の出荷時期に相当する過去の比較データと比較することで、動物30の適切な出荷時期を決定してもよい。一例として、判定部17は、活動量算出部16により算出された活動量が、比較データにおいて出荷時期を迎えた動物30の活動量以上となった場合に、動物30が出荷可能であると判定してよい。この場合、情報提示部18は、動物30が出荷可能である旨を酪農事業者に通知してもよい。
【0115】
〔3〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
【0116】
(付記1)
撮像された第1画像における複数の個体の各々と、前記第1画像よりも時間的に前後して撮像された第2画像における前記複数の個体の各々とに基づき、前記第1画像と前記第2画像との間における、前記複数の個体の各々の移動量を算出し、
前記算出した前記複数の個体の各々の移動量を用いて、前記複数の個体の群全体としての活動量を出力する、
処理をコンピュータに実行させる、活動量管理プログラム。
【0117】
(付記2)
前記算出は、前記第1画像と前記第2画像との間における前記複数の個体の各々の移動距離を前記複数の個体の各々のサイズに応じて補正した結果を、前記複数の個体の各々の移動量とする、
付記1に記載の活動量管理プログラム。
【0118】
(付記3)
前記補正は、移動距離が同じ2以上の個体のうちのサイズが小さい個体ほど、前記2以上の個体のうちの他の個体よりも相対的に移動距離が大きくなるように補正する、
付記2に記載の活動量管理プログラム。
【0119】
(付記4)
前記出力は、前記複数の個体の各々の移動量の総和を、前記複数の個体の数で除算した結果を前記活動量として出力する、
付記2又は付記3に記載の活動量管理プログラム。
【0120】
(付記5)
前記第1画像及び前記第2画像に基づく画像解析により、前記複数の個体の各々のサイズを特定する、
処理を前記コンピュータに実行させる、付記1~4のいずれか1項に記載の活動量管理プログラム。
【0121】
(付記6)
過去に撮像された第1画像及び第2画像に基づき算出した移動量を用いて出力した活動量を、前記過去に撮像された第1画像又は第2画像の撮像日時ごとに、記憶領域に格納し、
前記出力した活動量と、前記記憶領域に記憶された複数の前記活動量とに基づき、前記複数の個体の異変に関するアラートを出力する、
処理を前記コンピュータに実行させる、付記1~5のいずれか1項に記載の活動量管理プログラム。
【0122】
(付記7)
前記複数の個体の各々は、前記第1画像及び前記第2画像に基づき識別された観察対象の飼育動物を示す画像領域であり、
前記第1画像及び前記第2画像は、複数の前記飼育動物を収容する畜舎内を、所定の時間間隔で定点撮像して得られる画像である、
付記1~6のいずれか1項に記載の活動量管理プログラム。
【0123】
(付記8)
撮像された第1画像における複数の個体の各々と、前記第1画像よりも時間的に前後して撮像された第2画像における前記複数の個体の各々とに基づき、前記第1画像と前記第2画像との間における、前記複数の個体の各々の移動量を算出する算出部と、
前記算出した前記複数の個体の各々の移動量を用いて、前記複数の個体の群全体としての活動量を出力する出力部と、を備える、
活動量管理システム。
【0124】
(付記9)
前記算出部は、前記第1画像と前記第2画像との間における前記複数の個体の各々の移動距離を前記複数の個体の各々のサイズに応じて補正した結果を、前記複数の個体の各々の移動量とする、
付記8に記載の活動量管理システム。
【0125】
(付記10)
前記算出部は、移動距離が同じ2以上の個体のうちのサイズが小さい個体ほど、前記2以上の個体のうちの他の個体よりも相対的に移動距離が大きくなるように補正する、
付記9に記載の活動量管理システム。
【0126】
(付記11)
前記出力部は、前記複数の個体の各々の移動量の総和を、前記複数の個体の数で除算した結果を前記活動量として出力する、
付記9又は付記10に記載の活動量管理システム。
【0127】
(付記12)
過去に撮像された第1画像及び第2画像に基づき算出した移動量を用いて出力した活動量を、前記過去に撮像された第1画像又は第2画像の撮像日時ごとに、記憶領域に格納する格納部と、
前記出力した活動量と、前記記憶領域に記憶された複数の前記活動量とに基づき、前記複数の個体の異変に関するアラートを出力するアラート出力部と、を備える、
付記8~11のいずれか1項に記載の活動量管理システム。
【0128】
(付記13)
撮像された第1画像における複数の個体の各々と、前記第1画像よりも時間的に前後して撮像された第2画像における前記複数の個体の各々とに基づき、前記第1画像と前記第2画像との間における、前記複数の個体の各々の移動量を算出し、
前記算出した前記複数の個体の各々の移動量を用いて、前記複数の個体の群全体としての活動量を出力する、
処理をコンピュータが実行する、活動量管理方法。
【0129】
(付記14)
前記算出は、前記第1画像と前記第2画像との間における前記複数の個体の各々の移動距離を前記複数の個体の各々のサイズに応じて補正した結果を、前記複数の個体の各々の移動量とする、
付記13に記載の活動量管理方法。
【0130】
(付記15)
前記補正は、移動距離が同じ2以上の個体のうちのサイズが小さい個体ほど、前記2以上の個体のうちの他の個体よりも相対的に移動距離が大きくなるように補正する、
付記14に記載の活動量管理方法。
【0131】
(付記16)
前記出力は、前記複数の個体の各々の移動量の総和を、前記複数の個体の数で除算した結果を前記活動量として出力する、
付記14又は付記15に記載の活動量管理方法。
【0132】
(付記17)
過去に撮像された第1画像及び第2画像に基づき算出した移動量を用いて出力した活動量を、前記過去に撮像された第1画像又は第2画像の撮像日時ごとに、記憶領域に格納し、
前記出力した活動量と、前記記憶領域に記憶された複数の前記活動量とに基づき、前記複数の個体の異変に関するアラートを出力する、
処理を前記コンピュータが実行する、付記13~16のいずれか1項に記載の活動量管理方法。
【符号の説明】
【0133】
1 システム
10 コンピュータ
11 メモリ部
111 撮像データ
112 活動量算出情報
12 撮像データ取得部
13 個体識別部
14 移動量算出部
15 正規化部
16 活動量算出部
17 判定部
18 情報提示部
2 監視カメラ
3 畜舎
30、30-1~30-5、30A~30C 飼育動物
31、31A~31C 個体
32、32A~32C 移動量
4 サーバ
5 ネットワーク
6 端末装置
7 基地局