以下、図面を参照しながら本発明の実施形態を詳細に説明する。本発明の実施形態の動物行動推定装置は、行動推定の対象となる動物について検出した特徴点に基づいて、その動物の行動を推定する。この特徴点として、動物の姿勢を表すことが可能な標本点を用いる。本実施形態による行動推定の対象となる動物は、人間以外の動物であり、例えば、牛等の四肢動物である。以下では、行動推定の対象となる動物が牛である場合を例に説明する。行動の推定は、どのような行動であるかの行動の種別の推定、又は、正常な行動であるか否かの推定である。
従来技術として、動画像全体を分析することによって、動物の中でも牛などの家畜の異常行動を検知するシステムがある。しかし、この従来技術では、例えば黒毛和牛のように全身が黒色の動物の場合、色により識別能力が低下して精度の点で問題があった。加えて、牛が複数重なっている場合に、各個体を分離して認識することは困難であった。また、四肢動物は人間より動作が複雑である事に加え、牛のように胴体が大きい場合は、視点の反対側の肢体の動きが遮蔽され、肢体の動きが観測できないことが多々ある。そのため、動画像全体を分析して行動を推定する従来技術や、動画像から検出された関節等を利用して行動を時系列推定する従来技術などを適用しても、可視的に見えない部分が多く存在する動物の行動推定は困難であった。
本実施形態では、肢体の動きが複雑な動物の行動(動作)を推定するために用いる標本点を、見えにくい、あるいは見えない位置にある肢体の標本点を含めて決める。そして、ユーザが動物の画像上で、各標本点の注釈(アノテーション)を加える。見えている部分の標本点に、見えていない部分の標本点を加えることによって、動物の姿勢を透過的に二次元又は三次元で表することができる。本実施形態では、このように注釈が加えられた標本点を学習データに用いて機械学習することによって、標本点となる特徴点を画像から検出するための特徴点検出モデルを学習する。同様の学習データを用いて機械学習することによって、さらに、一部の特徴点の位置から他の特徴点の位置を推定するための特徴点位置推定モデルを学習してもよい。また、各特徴点に対応する標本点の注釈を用いることによって、画像に複数頭の動物が撮影されている場合でも、個体ごとに特徴点を分離して、個々の行動の表現を得る。本実施形態では、時系列の各特徴点の位置により表される動物の動きと、正解の行動とを学習データに用いて、時系列の各特徴点の位置から行動を推定するための行動推定モデルを学習する。例えば、1つの静止画から得られた各特徴点の位置からは、牛が座った結果その姿勢になったのか、転んだ結果その姿勢になったのかを判定することは困難である。時系列の各特徴点の位置の変化を入力に用いることによって、牛が座る正常行動であるか、転んでしまった異常行動であるのかを判定可能とする。
各モデルの学習後、本実施形態の動物行動推定装置は、行動推定対象の動物(以下、推定対象動物と記載する)が撮影された画像から特徴点検出モデルを用いて見えている部分の特徴点を検出し、検出した特徴点と特徴点位置推定モデルとを用いて見えない部分の特徴点を推定する。本実施形態の動物行動推定装置は、見えている部分の特徴点に、推定した特徴点を加え、それら特徴点の時系列の位置の変化と行動推定モデルとを用いて動物の行動推定を行う。
四肢動物の場合、人間とは異なり、左右や前後の動きは対象ではないために人間よりも動作が複雑なため、本実施形態のでは、上述したように、見える部分だけでなく、見えない部分についても特徴点により表されるスケルトンで学習を行い、行動推定に用いる。また、特徴点として用いる標本点には、舌や尻尾など人間にない部分の標本点や、背のように人間の行動推定には重要ではない標本点を含む。これにより、動物固有の行動を含め、動物の行動の推定精度を飛躍的に向上させることができる。
図1は、本発明の一実施形態による動物行動推定システム1の全体構成例を示す図である。動物行動推定システム1は、学習装置100と、第一動物行動推定装置200と、第二動物行動推定装置300と、カメラ400と、利用者装置500とを有する。学習装置100と、第一動物行動推定装置200と、第二動物行動推定装置300と、利用者装置500とは、ネットワーク600に接続される。同図では、第一動物行動推定装置200、カメラ400及び利用者装置500を1台ずつ示しているが、第一動物行動推定装置200、カメラ400及び利用者装置500の数は任意である。例えば、動物の異常行動の検出を行うサービスを提供する事業者が学習装置100及び第二動物行動推定装置300を保有し、サービスの利用者が第一動物行動推定装置200、カメラ400及び利用者装置500を保有する。なお、学習装置100と第二動物行動推定装置300とが物理的に同一の装置でもよい。また、第一動物行動推定装置200が利用者装置500を兼ねてもよい。
学習装置100は、推定対象動物の行動の推定に用いる各種モデルを学習する。第一動物行動推定装置200は、推定対象動物が撮影された動画又は静止画から推定対象動物の時系列の特徴点の位置を取得し、推定対象動物の行動が正常であるか否かを推定する。第二動物行動推定装置300は、第一動物行動推定装置200が正常な行動ではないと推定した推定対象動物の行動の種別を推定する。
カメラ400は、動画又は静止画を撮像する撮像装置である。カメラ400は、例えば、ウェブカメラでもよく、ToF(Time of Flight)カメラやデプスカメラなどのセンシングカメラでもよい。ToFカメラやデプスカメラは、奥行き距離を画素ごとに計測できるセンシングカメラである。また、カメラ400は、可視光で観測した動画又は静止画を撮影してもよく、可視光以外の波長で観測した動画又は静止画を撮影してもよい。カメラ400は、推定対象動物を撮影した動画データを第一動物行動推定装置200に出力する。例えば、牛などの家畜の場合、カメラ400は、畜舎内や放牧場内に設置される。動画データは、時系列のフレームからなる。各フレームは、静止画のデータである。動画データに含まれる各フレームには、撮影時刻又は撮影順序を表す情報が付加されているか、動画データに各フレームの撮影時刻又は撮影順序を取得可能な情報が付加されている。カメラ400は、異なるタイミングで撮影した静止画のデータを第一動物行動推定装置200に出力してもよい。以下では、動画データに含まれるフレームと、静止画のデータとを総称して画像データと記載する。また、以下では、カメラ400が動画データを撮影する場合を例に説明する。利用者装置500は、例えば、利用者のパーソナルコンピュータ、スマートフォン、タブレット端末などである。利用者装置500は、第二動物行動推定装置300から受信した通知を画面に表示したり、音声により出力したりする。
図2は、学習装置100の構成を示すブロック図である。学習装置100は、例えば、1台以上のコンピュータ装置により実現される。学習装置100は、通信部110と、入力部120と、表示部130と、記憶部140と、学習部150とを有する。
通信部110は、ネットワーク600を介して他の装置とデータを送受信する。入力部120は、キーボード、ポインティングデバイス(マウス、タブレット等)、ボタン、タッチパネル等の既存の入力装置を用いて構成される。入力部120は、ユーザの指示を学習装置100に入力する際にユーザによって操作される。入力部120は、ネットワークを介して接続される図示しないユーザのコンピュータ装置からユーザの指示を受信してもよい。表示部130は、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等の画像表示装置である。表示部130は、データを表示する。表示部130は、ネットワークを介して接続される図示しないユーザのコンピュータ装置にデータを送信し、表示させてもよい。
記憶部140は、学習用画像記憶部141と、学習データ記憶部142と、特徴点検出モデル記憶部143と、特徴点位置推定モデル記憶部144と、行動推定モデル記憶部145とを備える。
学習用画像記憶部141は、動物が撮影された学習用の動画、又は、静止画のデータを記憶する。学習データ記憶部142は、学習データを記憶する。学習データは、特徴点学習データと、行動推定学習データとを含む。特徴点学習データは、画像データと、画像データにおける特徴点の種類及び位置とを対応付けたデータである。行動推定学習データは、時系列の各種類の特徴点それぞれの位置と、正解の動物の行動とを対応付けたデータである。特徴点として、動物の行動の推定に用いられる標本点を使う。
特徴点検出モデル記憶部143は、特徴点検出モデルを記憶する。特徴点検出モデルは、画像データから得られる特徴量を入力として、画像データに含まれている動物の特徴点の位置を検出するためのモデルである。特徴量として、例えば、画素値、輝度などを用いることができる。特徴点位置推定モデル記憶部144は、特徴点位置推定モデルを記憶する。特徴点検出モデルは、予め決められた複数種類の特徴点のうち一部の種類の特徴点それぞれの位置を入力として、他の種類の特徴点の位置を同定するためのモデルである。
行動推定モデル記憶部145は、行動推定モデルを記憶する。行動推定モデルは、時系列特徴点位置情報を入力として、動物の行動の推定結果を出力するためのモデルである。時系列特徴点位置情報は、時系列の特徴点位置情報を示す。特徴点位置情報は、各種類の特徴点それぞれの位置を示す。時系列特徴点位置情報の記述には、テンソル、JSON(JavaScript(登録商標) Object Notation)、行列などを用いることができる。本実施形態の行動推定モデルには、正常行動判定モデルと行動種別推定モデルとがある。正常行動判定モデルは、時系列特徴点位置情報を入力として、行動が正常か否かの推定結果を出力する。行動種別推定モデルは、時系列特徴点位置情報を入力として、行動の種別の推定結果を出力する。
学習部150は、学習データ生成部151と、特徴点検出モデル学習部152と、特徴点位置推定モデル学習部153と、行動推定モデル学習部154と、配信部155とを備える。
学習データ生成部151は、学習用画像記憶部141から読み出した画像データに、入力部120を用いたユーザの入力に従って特徴点の種類と位置の情報を付加して特徴点学習データを生成し、学習データ記憶部142に書き込む。また、学習データ生成部151は、入力部120を用いたユーザの入力に従って、時系列特徴点位置情報と、その時系列特徴点位置情報が得られた動物の正解の行動とを対応付けた行動推定学習データを生成し、学習データ記憶部142に書き込む。
特徴点検出モデル学習部152は、学習データ記憶部142に記憶される特徴点学習データを用いて、機械学習により各種類の特徴点ごとに特徴点検出モデルを学習して特徴点検出モデル記憶部143に書き込む。特徴点位置推定モデル学習部153は、学習データ記憶部142に記憶される特徴点学習データから得られる動物の個体ごとの特徴点位置情報を用いて、機械学習により特徴点位置推定モデルを学習して特徴点位置推定モデル記憶部144に書き込む。行動推定モデル学習部154は、学習データ記憶部142に記憶される行動推定学習データを用いて、機械学習により正常行動判定モデル及び行動種別推定モデルを学習して行動推定モデル記憶部145に書き込む。配信部155は、学習された特徴点検出モデル、特徴点位置推定モデル、正常行動判定モデルを第一動物行動推定装置200に配信し、学習された行動種別推定モデルを第二動物行動推定装置300に配信する。
なお、学習装置100として、従来技術のアノテーションツールを用いることができる。例えば、人間の特徴点に関するアノテーションを行うための既存のアプリケーションを実装したコンピュータ装置を、学習装置100として用いてもよい。
図3は、第一動物行動推定装置200の構成を示すブロック図である。第一動物行動推定装置200は、例えば、ASIC(Application Specific Integrated Circuit)、PLD(Programmable Logic Device)、FPGA(Field Programmable Gate Array)等のハードウェア、又は、タブレット端末、パーソナルコンピュータ等のコンピュータ装置により実現される。第一動物行動推定装置200は、通信部210と、記憶部220と、画像入力部230と、処理部240と、表示部250とを備える。
通信部210は、ネットワーク600を介して他の装置とデータを送受信する。記憶部220は、特徴点検出モデル記憶部221と、特徴点位置推定モデル記憶部222と、正常行動判定モデル記憶部223と、画像記憶部224と、分析情報記憶部225とを備える。特徴点検出モデル記憶部221は、学習装置100が学習した特徴点検出モデルを記憶する。特徴点位置推定モデル記憶部222は、学習装置100が学習した特徴点位置推定モデルを記憶する。正常行動判定モデル記憶部223は、学習装置100が学習した正常行動判定モデルを記憶する。画像記憶部224は、推定対象動物が撮影された動画データを記憶する。分析情報記憶部225は、動物行動の推定を行う対象の時系列特徴点位置情報や、時系列特徴点位置情報を生成するための情報を記憶する。
画像入力部230は、カメラ400が撮影した動画データを入力し、画像記憶部224に書き込む。動画データに含まれるフレームに撮影時刻又は撮影順序が付加されていない場合、画像入力部230は、動画データに設定されている情報を用いて算出した撮影時刻又は撮影順序の情報をフレームに付加する。なお、画像入力部230は、カメラ400から異なるタイミングにおいて撮影された静止画のデータを順次入力し、画像記憶部224に書き込んでもよい。
処理部240は、更新部241と、特徴点検出部242と、特徴点位置推定部243と、判定部244と、推定要求部245と、状況表示処理部246とを備える。
更新部241は、学習装置100から配信された特徴点検出モデル、特徴点位置推定モデル、正常行動判定モデルをそれぞれ、特徴点検出モデル記憶部221、特徴点位置推定モデル記憶部222、正常行動判定モデル記憶部223に書き込む。なお、特徴点検出モデル記憶部221、特徴点位置推定モデル記憶部222及び正常行動判定モデル記憶部223のそれぞれに、学習装置100が学習した特徴点検出モデル、特徴点位置推定モデル及び正常行動判定モデルが予め記憶され、更新されない場合、処理部240は更新部241を備えなくてもよい。
特徴点検出部242は、特徴点検出モデル記憶部221に記憶されている特徴点検出モデルを用いて各画像データにおける推定対象動物の特徴点を検出し、その特徴点の位置を得る。特徴点検出部242が検出した特徴点を検出特徴点と記載する。特徴点検出部242は、画像データに複数の推定対象動物が撮影されている場合、検出特徴点の種類及び位置に基づいて、検出特徴点を個体別に分類する。
特徴点位置推定部243は、個体ごとに、特徴点検出部242が検出した検出特徴点の位置と特徴点位置推定モデル記憶部222に記憶されている特徴点位置推定モデルとに基づいて、特徴点検出部242において検出されなかった種類の特徴点の位置を推定する。特徴点位置推定部243が位置を推定した特徴点を推定特徴点と記載する。特徴点位置推定部243は、特徴点検出部242が検出した検出特徴点の位置の情報に、推定特徴点の位置の情報を加えて特徴点位置情報を生成し、分析情報記憶部225に書き込む。
判定部244は、行動推定モデルを用いて動物の行動を推定する行動推定部の一例である。判定部244は、行動推定モデルとして、正常行動判定モデル記憶部223に記憶されている正常行動判定モデルを用いる。判定部244は、所定数の時系列の画像データそれぞれについて生成された特徴点位置情報を時刻順に並べた時系列特徴点位置情報を個体ごとに生成する。判定部244は、時系列特徴点位置情報と正常行動判定モデルとに基づいて、推定対象動物の行動が正常であるか否か、又は、推定対象動物の行動が正常か異常かを個体ごとに判定する。
推定要求部245は、判定部244が正常ではない、又は、異常であると判定した時系列特徴点位置情報を第二動物行動推定装置300に送信し、行動の種別の推定を要求する。状況表示処理部246は、第一動物行動推定装置200の稼働状態や、第二動物行動推定装置300から通知された情報などを表示部250に表示する。第二動物行動推定装置300から通知される情報は、第二動物行動推定装置300が異常行動と推定した推定対象動物に関する情報を含む。この情報は、例えば、時系列特徴点位置情報や推定された異常行動の種別などを示す数値やテキスト等のデータである。
表示部250は、液晶ディスプレイ、有機ELディスプレイ、CRTディスプレイ等の画像表示装置である。表示部250は、データを表示する。
図4は、第二動物行動推定装置300の構成を示すブロック図である。第二動物行動推定装置300は、例えば、1台以上のサーバコンピュータにより実現される。第二動物行動推定装置300は、通信部310と、記憶部320と、処理部330とを有する。
通信部310は、ネットワーク600を介して他の装置とデータを送受信する。記憶部320は、行動種別推定モデル記憶部321と、利用者情報記憶部322と、分析対象情報記憶部323とを備える。行動種別推定モデル記憶部321は、学習装置100が学習した行動種別推定モデルを記憶する。利用者情報記憶部322は、利用者情報を記憶する。利用者情報は、サービス利用者の識別情報と、利用者アドレスとを含む。利用者アドレスは、通知の出力先となる利用者装置500のアドレスである。サービス利用者の識別情報として、第一動物行動推定装置200のアドレス等の識別子を用いてもよい。分析対象情報記憶部323は、第一動物行動推定装置200から受信した時系列特徴点位置情報を記憶する。
処理部330は、更新部331と、行動種別推定部332と、通知部333と、異常データ送信部334とを備える。更新部331は、学習装置100から配信された行動種別推定モデルを、行動種別推定モデル記憶部321に書き込む。なお、行動種別推定モデル記憶部321に、学習装置100が学習した行動種別推定モデルが予め記憶され、更新されない場合、処理部330は更新部331を備えなくてもよい。行動種別推定部332は、行動推定モデルを用いて動物の行動を推定する行動推定部の一例である。行動種別推定部332は、行動推定モデルとして、行動種別推定モデル記憶部321に記憶された行動種別推定モデルを用いる。すなわち、行動種別推定部332は、第一動物行動推定装置200から受信した時系列特徴点位置情報と、行動種別推定モデルとを用いて、推定対象動物の行動の種別を判定する。通知部333は、行動種別推定部332が推定した行動の種別が異常行動である場合、利用者装置500に異常行動の検出と推定した行動の種別とを通知する。異常データ送信部334は、行動種別推定部332が推定した行動の種別が異常行動である場合、異常行動と推定された時系列特徴点位置情報や異常行動の種別などを含む数値やテキスト等のデータを第一動物行動推定装置200に送信する。
図5は、四肢動物のうち、例として牛の標本点を示す図である。本実施形態では、頭頂、右耳、左耳、右目、左目、鼻、口元、牛舌中腹、牛舌先端、右肘頭、左肘頭、右前膝、左前膝、右前繋、左前繋、右後膝、左後膝、右飛節、左飛節、右後繋、左後繋、背、尾根部、尻尾付根、尻尾中部、尻尾先端の26種類の標本点を用いた例であるが、標本点は26種類でなくてもよい。頭頂、右耳、左耳、右目、左目、鼻、口元は、顔の特徴点である。なお、図5において、標本点の種類の名称の前に付加された数字は、標本点の種類を特定する識別子である。
人間の場合、肩の位置は姿勢を表すために重要な標本点であるが、牛の場合は肩の位置は重要ではないため、標本点に用いていない。一方で、背は牛にとって重要な標本点の一つである。背から頭頂への方向によって、頭がどちらに向いているのかがわかる。また、背と尾根部とを結ぶ背筋のラインは牛の方向を表す。さらに、背と足の付け根である右肘頭及び左肘頭のそれぞれとを結ぶラインにより、肢体の方向がわかる。また、牛の異常行動として、例えば、舌遊びがある。このような特有の異常行動は、舌の標本点を特徴点として用いることに検出が可能である。また、尻尾の部分の標本点も、人間にはない標本点である。
図6は、学習データの生成時に学習装置100が表示部130に表示する画面の例である。牛の構造の知識を有するユーザが、入力部120により、牛の画像における標本点の位置と、その標本点の位置を各牛について入力する。ユーザは、外観から見えている標本点を入力することに加え、外観から見えない特徴点、例えば、左右の部分のうち陰になっている部分の標本点や、他の牛と重なっている部分における標本点、胴体の中にある標本点の位置については、画像から推定可能な限り入力する。各牛について全種類の標本点の位置を入力する必要はない。牛が正面を向いている場合と側面を向いている場合とでは標本点の数が異なるが、できる限り標本点を入力する。標本点の位置をなるべく正確に入力することによって、推定の精度が高くなる。人間の場合、目の高さは左右バランスを考慮する等の注意を要するが、牛についても同様に正確性を要する。学習データ生成部151は、図6に示すように、個体ごとに、入力された所定の種類の標本点間を直線で結んでスケルトン化して表示する。なお、画像内で1頭の牛が含まれる領域を矩形で示している。
図7は、時系列特徴点位置情報を示す図である。同図に示すように、時系列特徴点位置情報は、時刻と、個体識別情報(ID)と、各特徴点の位置とを対応付けた情報である。個体識別情報は、推定対象動物を特定する情報である。図7においては、特徴点の位置を2次元平面上の座標によって示している。なお位置の情報は、相対位置でもよく、絶対位置でもよく、極座標でもよい。相対位置の場合、画像の所定の画素を原点とするx−y座標における座標値により位置が表される。例えば、カメラ400が画像の深度の情報を含んだ映像データ又は画像データを生成する場合、特徴点の位置を三次元座標上の座標値により表してもよい。
図8は、第一動物行動推定装置200が検出及び推定した特徴点を示す図である。図8に示すように、牛の個体ごとに特徴点を結んだ線により、牛の姿勢がわかる。特に、背や尾根部の標本点を起点として頭頂や肢体の部分などの他の標本点とが結ばれることにより、牛の姿勢や向きが分かり易くなっている。図9は、第一動物行動推定装置200が検出及び推定した特徴点を時系列で並べた図である。図9では、個体ごとに、検出した特徴点を結んで姿勢を示している。時系列でそれらの姿勢を並べることにより、各個体の動きがわかる。
続いて、動物行動推定システム1の動作について説明する。
図10は、学習装置100における学習処理を示す処理フローである。まず、学習装置100の学習データ生成部151は、特徴点学習データを生成する(ステップS110)。学習データ生成部151は、ユーザが入力部120により入力した指示に従って、学習用画像記憶部141から学習データとして用いる画像データを読み出し、表示部130に表示する。ユーザは、入力部120により、特徴点の種類及び位置を個体単位で入力する。学習データ生成部151は、画像データに、ユーザが入力した各牛の特徴点の種類及び位置の情報を示す特徴点位置情報を付加して特徴点学習データを生成し、学習データ記憶部142に書き込む。
続いて、学習データ生成部151は、行動推定学習データを生成する(ステップS120)。学習データ生成部151は、ユーザが入力部120により指定した時系列の特徴点学習データそれぞれから、ユーザが入力部120により指定した個体の特徴点位置情報を取得する。学習データ生成部151は、各特徴点学習データから得られた時系列の特徴点位置情報を設定した時系列特徴点位置情報と、ユーザが入力部120により入力した動物の正解の行動とを対応付けた行動推定学習データを生成する。正常行動判定モデルの学習に用いる行動推定学習データ(以下、第一行動推定学習データと記載)の場合、正解の行動は、正常な行動であるか否か、又は、正常な行動と異常な行動とのいずれであるかであり、行動種別推定モデルに用いる行動推定学習データ(以下、第二行動推定学習データと記載)の場合、正解の行動は、行動の種別である。行動の種別には、例えば、牛の怪我、牛の喧嘩、牛の虐待、牛の病気、牛の発情、牛の出産、牛の転倒、牛の舌遊びなどの異常行動や、歩行している、餌を食べている、などの正常行動がある。学習データ生成部151は、生成した行動推定学習データを学習データ記憶部142に書き込む。
入力部120により特徴点検出モデルの学習開始指示が入力されると、特徴点検出モデル学習部152は、学習データ記憶部142から特徴点学習データを読み出し、特徴点学習データに含まれる画像データから得られる画像の特徴量と、その画像データに付加されている特徴点位置情報とを用いて、特徴点検出モデルを機械学習する。特徴点検出モデルとして、画像データから人間の目や関節等の特徴点を検出する任意の従来技術を用いることができる。例えば、特徴点検出モデルは、CNN(畳み込みニューラルネットワーク、Convolutional neural network)である。特徴点検出モデル学習部152は、機械学習した特徴点検出モデルを、特徴点検出モデル記憶部143に書き込む(ステップS130)。
入力部120により特徴点位置推定モデルの学習開始指示が入力されると、特徴点位置推定モデル学習部153は、学習データ記憶部142から特徴点学習データに付加されている特徴点位置情報を読み出し、個体ごとの特徴点位置情報を複数用いて、特徴点位置推定モデルの機械学習を行う。特徴点位置推定モデル学習部153は、学習した特徴点位置推定モデルを特徴点位置推定モデル記憶部144に書き込む(ステップS140)。なお、特徴点位置推定モデルの学習には、画像データにおいて見えている特徴点の位置と、画像データにおいて見えていない特徴点の位置との両方が含まれる特徴点位置情報を用いてもよく、画像データにおいて見えている特徴点の位置のみを用いて特徴点位置推定モデルを学習してもよい。画像データにおいて見えている特徴点の位置のみを用いて特徴点位置推定モデルを学習する場合、ユーザは、ステップS110において、特徴点の種類及び位置に加えて、画像において欠落あるいは背景上、判別しにくい特徴点であるか否かの情報も入力する。
入力部120により正常行動判定モデルの学習開始指示が入力されると、行動推定モデル学習部154は、学習データ記憶部142から第一行動推定学習データを読み出す。行動推定モデル学習部154は、読み出した第一行動推定学習データを用いて、正常行動判定モデルを機械学習する(ステップS150)。正常行動判定モデルとして、例えば、SVM(サポートベクターマシン)が用いられる。行動推定モデル学習部154は、学習した正常行動判定モデルを行動推定モデル記憶部145に書き込む。
入力部120により行動種別推定モデルの学習開始指示が入力されると、行動推定モデル学習部154は、学習データ記憶部142から第二行動推定学習データを読み出す。行動推定モデル学習部154は、読み出した第二行動推定学習データ用いて、行動種別推定モデルを機械学習する(ステップS160)。例えば、行動推定モデル学習部154は、行動の種別ごとにSVMを用いた行動種別推定モデルを作成する。あるいは、行動推定モデル学習部154は、時系列特徴点位置情報を入力する入力ノードと、行動の種別それぞれに対応し、その種別の行動であることを定量的に表す値を出力する出力ノードとを有するDNN(Deep Neural Network)等を行動種別推定モデルとして学習してもよい。行動推定モデル学習部154は、学習した行動種別推定モデルを行動推定モデル記憶部145に書き込む。
配信部155は、入力部120により配信が指示された特徴点検出モデル、特徴点位置推定モデル及び正常行動判定モデルを第一動物行動推定装置200に配信し、入力部120により配信が指示された行動種別推定モデルを第二動物行動推定装置300に配信する(ステップS170)。第一動物行動推定装置200の更新部241は、受信した特徴点検出モデルを特徴点検出モデル記憶部221に、特徴点位置推定モデルを特徴点位置推定モデル記憶部222に、正常行動判定モデルを正常行動判定モデル記憶部223に書き込む。第二動物行動推定装置300の更新部331は、行動種別推定モデルを行動種別推定モデル記憶部321に書き込む。
なお、学習装置100は、図10に示す各ステップの処理の順序を可能なものについては入れ替えて実行してもよい。図10に示す学習処理を繰り返し行うことによって各種モデルを更新することができる。
図11は、動物行動推定システム1における動物行動推定処理を示すフロー図である。第一動物行動推定装置200の画像入力部230は、カメラ400が撮影した行動推定対象の動画データをリアルタイムで入力し、あるいは異なるタイミングで撮影された静止画のデータを順次入力し、画像記憶部224に書き込んでいる。第一動物行動推定装置200は、所定周期で図11の処理を起動する。
特徴点検出部242は、撮影時刻が現在時刻と現在時刻から所定時間だけ遡った時刻との間である複数の画像データを画像記憶部224から読み出す。特徴点検出部242は、読み出した画像データごとに、画像データから得られた特徴量と、各特徴点の特徴点検出モデルとを用いて、画像データにおける推定対象動物の各特徴点を検出する。検出される特徴点には、画像データにおいて推定対象動物の外観から視認できる特徴点に加え、外観から視認できない特徴点が含まれ得る。特徴点検出部242は、検出された特徴点、すなわち、検出特徴点の種類と位置とに基づいて、個体ごとの検出特徴点の集合に分類する。この分類には、複数人が撮影されている画像データから個人別の特徴点を得るための任意の従来技術を用いることができる。例えば、特徴点検出部242は、同じ種類の検出特徴点がある場合、それらはそれぞれ別の個体の特徴点と判定する。また、特徴点検出部242は、ある種類の検出特徴点から1又は複数の他の種類の検出特徴点への方向や距離が1個体の特徴点であると判定される所定の範囲内にあるか否かに基づいて、それら検出特徴点が同じ個体の特徴点であるか否かを判定する。これらの判定を組み合わせることによって、特徴点検出部242は検出特徴点を個体ごとに分類する。特徴点検出部242は、画像データの撮影時刻と、個体ごとの各検出特徴点の種類及び位置の情報とを対応付けた特徴点位置情報を生成し、画像データ又は画像データの識別情報と対応付けて分析情報記憶部225に書き込む(ステップS210)。
さらに特徴点検出部242は、画像データを解析して、各個体の識別情報を得てもよい。例えば、各個体の右耳及び左耳に個体識別番号が表示された耳標が付けられている場合、個体識別番号を予め記憶部220に記憶しておく。特徴点検出部242は、画像データの右耳及び左耳それぞれの検出特徴点の近傍の領域の文字認識を行う。特徴点検出部242は、認識した文字が個体識別番号と一致した場合、その検出特徴点の位置が設定されている特徴点位置情報に個体識別番号を付加する。
特徴点位置推定部243は、各画像データの個体ごとに、特徴点位置情報に設定されている各検出特徴点の位置と特徴点位置推定モデルとを用いて、特徴点検出部242において検出されなかった種類の特徴点である推定特徴点の位置を算出する。特徴点位置推定部243は、特徴点位置情報に各推定特徴点の種類及び位置を追加する(ステップS220)。
判定部244は、ステップS210において読み出された画像データに対応付けられた特徴点位置情報を時系列で並べた時系列特徴点位置情報を個体ごとに生成する(ステップS230)。判定部244は、時系列特徴点位置情報と正常行動判定モデルとを用いて、行動が正常であるか否かを個体ごとに判定する(ステップS240)。判定部244は、行動が正常であるか異常であるかを判定してもよい。推定要求部245は、判定部244が正常ではない又は異常と判定した時系列特徴点位置情報に利用者識別及びカメラ識別情報を付加して第二動物行動推定装置300に送信し、推定を要求する(ステップS250)。カメラ識別情報は、時系列特徴点位置情報が得られた画像データを撮影したカメラ400を識別する情報である。
第二動物行動推定装置300の処理部330は、第一動物行動推定装置200から時系列特徴点位置情報を受信し、分析対象情報記憶部323に記憶する(ステップS310)。行動種別推定部332は、時系列特徴点位置情報と、行動種別推定モデルとを用いて行動の種別を推定する(ステップS320)。行動種別推定部332は、推定した行動の種別が正常である又は異常ではないと判定した場合(ステップS330:NO)、処理を終了する。
行動種別推定部332は、推定した行動の種別が異常行動であると判定した場合(ステップS330:YES)、通知部333に時系列特徴点位置情報から読み出した利用者識別、個体識別情報及びカメラ識別情報と、推定した異常行動の種別を出力する。通知部333は、利用者識別に対応して読み出した利用者アドレス宛に、個体識別情報及びカメラ識別情報と推定した異常行動の種別の情報とを設定したアラーム情報を送信する(ステップS340)。利用者装置500は、通知部333から受信したアラーム情報を画面に表示したり、音声により出力したりする。なお、ユーザが、通知対象の異常行動の種類を選択し、選択された異常行動の種類を示す通知対象異常行動情報を利用者識別と対応付けて利用者情報記憶部322に登録しておいてもよい。通知部333は、推定された異常行動の種類が、利用者識別に対応して読み出した通知対象異常行動情報に通知対象として設定されている場合に、アラーム情報を送信する。
異常データ送信部334は、異常行動と判定された時系列特徴点位置情報の送信元の第一動物行動推定装置200に、その時系列特徴点位置情報と異常行動の種別とを数値やテキストで記述した異常データ情報を送信する(ステップ350)。第一動物行動推定装置200の状況表示処理部246は、第二動物行動推定装置300から送信された異常データ情報を、表示部250に表示する(ステップS260)。
上記実施形態によれば、画像からは検出された標本点に加えて、画像からは検出できない標本点を用いることにより、精度の高い動物行動推定が可能となる。また、第二動物行動推定装置300は、少ない情報量で動物の異常な行動だけを抽出できるため、負荷が軽い。よって、多くの利用者に対して動物の異常な行動を抽出して利用者に通知するサービスを提供することが可能となる。さらに、第一動物行動推定装置200から第二動物行動推定装置300へ送信するデータ量を低減できるため、サービス利用者の通信費が低減することが可能となる。また、第一動物行動推定装置200が行う動物行動推定は正常であるか否かの判定であるために、第一動物行動推定装置200に必要な処理能力を低減することができる。
なお、動物行動推定システム1は、特徴点位置推定モデルを使用しなくてもよい。この場合、学習装置100は、特徴点位置推定モデル記憶部144及び特徴点位置推定モデル学習部153を備えなくてもよく、第一動物行動推定装置200は、特徴点位置推定モデル記憶部222及び特徴点位置推定部243を備えてなくてもよい。学習装置100は、図10のステップS140の処理を行わず、配信部155は、ステップS170において、特徴点位置推定モデルの配信を行わない。また、第一動物行動推定装置200は、図11のステップS220の処理を行わず、判定部244は、ステップS230において、推定特徴点の種類及び位置が含まれない時系列特徴点位置情報を生成する。
また、第一動物行動推定装置200が正常行動判定モデル記憶部223及び判定部244を有さない構成としてもよい。この場合、第一動物行動推定装置200は、図11のステップS240の処理を行わない。推定要求部245は、図11のステップS250において、全ての時系列特徴点位置情報について第二動物行動推定装置300に推定要求を行う。学習装置100は、正常行動判定モデルを学習しなくてもよい。
また、第一動物行動推定装置200及び第二動物行動推定装置300を図12に示すように統合した動物行動推定装置としてもよい。図12は、動物行動推定装置700の構成を示すブロック図である。同図において、図3に示す第一動物行動推定装置200及び図4に示す第二動物行動推定装置300と同一の部分には同一の符号を付し、その説明を省略する。
動物行動推定装置700は、通信部210と、記憶部720と、画像入力部230と、処理部740と、表示部250とを備える。記憶部720は、特徴点検出モデル記憶部221と、特徴点位置推定モデル記憶部222と、正常行動判定モデル記憶部223と、画像記憶部224と、分析情報記憶部225と、行動種別推定モデル記憶部321と、利用者情報記憶部322と、分析対象情報記憶部323とを備える。処理部740は、更新部741と、特徴点検出部242と、特徴点位置推定部243と、判定部244と、推定要求部745と、行動種別推定部332と、通知部333と、状況表示処理部746とを備える。更新部741は、図10のステップS170において学習装置100から配信された特徴点検出モデル、特徴点位置推定モデル、正常行動判定モデル及び行動種別推定モデルをそれぞれ、特徴点検出モデル記憶部221、特徴点位置推定モデル記憶部222、正常行動判定モデル記憶部223及び行動種別推定モデル記憶部321に書き込む。推定要求部745は、図11のステップS250において、判定部244が正常ではない又は異常と判定した時系列特徴点位置情報を行動種別推定部332に出力し、行動の推定を要求する。これにより、正常ではない又は異常と判定された時系列特徴点位置情報についてのみ行動の種別を推定するため、動物行動推定装置700の負荷を軽減することができる。状況表示処理部746は、動物行動推定装置700の稼働状態を表示する。また、状況表示処理部746は、図11のステップS350において、行動種別推定部332が異常行動と判定した時系列特徴点位置情報と異常行動の種別とを数値やテキストで記述した異常データ情報を表示部250に表示する。
なお、動物行動推定装置700が、特徴点位置推定モデル記憶部222及び特徴点位置推定部243を有さない構成としてもよい。動物行動推定装置700は、図11のステップS220の処理を行わず、判定部244は、ステップS230において、推定特徴点の種類及び位置が含まれない時系列特徴点位置情報を生成する。
なお、動物行動推定装置700が、正常行動判定モデル記憶部223及び判定部244を有さない構成としてもよい。この場合、動物行動推定装置700は、図11のステップS240の処理を行わない。推定要求部745は、図11のステップS250において、全ての時系列特徴点位置情報を行動種別推定部332に出力し、行動の推定を要求する。
また、動物行動推定装置700が、推定要求部745、行動種別推定部332及び行動種別推定モデル記憶部321を有さない構成としてもよい。この場合、動物行動推定装置700は、図11のステップS250、S310〜S340の処理を行わない。通知部333は、ステップS240の処理の後、判定部244が正常ではない又は異常と判断した推定対象動物の個体識別を動物行動推定装置700が備える図示しない表示部に表示する、又は、利用者装置500に通知する。
また、図13に示すように、1台の装置によりモデルの学習と対象推定動物の行動の種別の推定を行ってもよい。図13は、動物行動推定装置800の構成を示すブロック図である。動物行動推定装置800は、全ての時系列特徴点位置情報について行動の種別を推定する。図13において、図2に示す学習装置100、図3に示す第一動物行動推定装置200及び図4に示す第二動物行動推定装置300と同一の部分には同一の符号を付し、その説明を省略する。
動物行動推定装置800は、入力部120と、表示部130と、記憶部840と、学習部850と、画像入力部230と、推定処理部860とを備える。記憶部840は、学習用画像記憶部141と、学習データ記憶部142と、特徴点検出モデル記憶部143と、特徴点位置推定モデル記憶部144と、行動推定モデル記憶部145と、画像記憶部224と、分析情報記憶部225と、利用者情報記憶部322とを備える。学習部850が、図2に示す学習部150と異なる点は、配信部155を備えていない点である。なお、行動推定モデル学習部154は、行動推定モデルとして、行動種別推定モデルを学習する。
推定処理部860は、特徴点検出部242と、特徴点位置推定部243と、行動種別推定部332と、通知部861と、状況表示処理部862とを備える。特徴点検出部242は、特徴点の検出に、特徴点検出モデル記憶部143に記憶されている特徴点検出モデルを用いる。特徴点位置推定部243は、特徴点の位置の推定に、特徴点位置推定モデル記憶部144に記憶されている特徴点位置推定モデルを用いる。行動種別推定部332は、時系列特徴点位置情報を生成し、行動推定モデル記憶部145に記憶される行動種別推定モデルを用いて行動の種別の推定を行う。通知部861は、行動種別推定部332が推定した行動の種別を、利用者装置500に通知してもよく、表示部130に表示してもよい。画像入力部230が、各利用者のカメラ400から利用者識別が付与された動画データや静止画の画像データを受信する場合、通知部861は、動画データや静止画のデータにより特定される利用者識別に基づいて通知先を判断する。状況表示処理部862は、動物行動推定装置800の稼働状態や、行動種別推定部332により行動が異常であると推定された時系列特徴点位置情報と異常行動の種別とを数値やテキストで記述した異常データ情報を表示部250に表示する。
上記構成により、動物行動推定装置800の学習部850は、図10に示す学習処理のステップS110〜ステップS160の処理を行う。動物行動推定装置800は、以下のように動物行動推定処理を行う。
図14は、動物行動推定装置800における動物行動推定処理を示すフロー図である。動物行動推定装置800の画像入力部230は、カメラ400が撮影した行動推定対象の動画データをリアルタイムで入力し、あるいは、異なるタイミングで撮影した静止画のデータを順次入力し、画像記憶部224に書き込んでいる。なお、動物行動推定装置800の画像入力部230は、複数の利用者のカメラ400それぞれから行動推定対象を撮影した動画データを、ネットワーク600を介して入力し、画像記憶部224に書き込んでもよい。この場合、動画データには、カメラ識別情報及び利用者識別が設定される。カメラ識別情報を利用者識別として用いてもよい。動物行動推定装置800は、所定周期で図14の処理を起動する。
ステップS810及びステップS820の処理は、図11に示すステップS210及びステップS220の処理と同様である。すなわち、特徴点検出部242は、撮影時刻が現在時刻と現在時刻から所定時間だけ遡った時刻との間である複数の画像データを画像記憶部224から読み出す。特徴点検出部242は、読み出した画像データごとに、画像データから得られた特徴量と、各特徴点の特徴点検出モデルとを用いて、画像データにおける推定対象動物の各特徴点を検出する。特徴点検出部242は、画像データの撮影時刻と、個体ごとの各検出特徴点の種類及び位置の情報とを対応付けた特徴点位置情報を生成し、画像データ又は画像データの識別情報と対応付けて分析情報記憶部225に書き込む(ステップS810)。さらに特徴点検出部242は、画像データを解析して得た個体の識別情報を、特徴点位置情報に付加する。特徴点位置推定部243は、各画像データの個体ごとに、特徴点位置情報に設定されている各検出特徴点の位置と特徴点位置推定モデルとを用いて、推定特徴点の位置を算出する。特徴点位置推定部243は、特徴点位置情報に各推定特徴点の種類及び位置を追加する(ステップS820)。
行動種別推定部332は、ステップS810において読み出された画像データに対応づけられた特徴点位置情報を時系列で並べた時系列特徴点位置情報を個体ごとに生成する(ステップS830)。行動種別推定部332は、時系列特徴点位置情報と、行動種別推定モデルとを用いて行動の種別を推定する(ステップS840)。行動種別推定部332は、推定した行動の種別が正常である、又は、異常ではないと判定した場合(ステップS850:NO)、処理を終了する。
行動種別推定部332は、推定した行動の種別が異常行動であると判定した場合(ステップS850:YES)、通知部861に時系列特徴点位置情報から読み出した利用者識別、個体識別情報及びカメラ識別情報と、推定した異常行動の種別を出力する。通知部861は、時系列特徴点位置情報が得られた画像データに付加された利用者識別に対応して利用者情報記憶部322から利用者アドレスを読み出す。通知部861は、この利用者アドレス宛に、個体識別情報及びカメラ識別情報と推定した異常行動の種別の情報とを設定したアラーム情報を送信する(ステップS860)。利用者装置500は、通知部333から受信したアラーム情報を画面に表示したり、音声により出力したりする。なお、利用者が動物行動推定装置800を保有する場合、通知部861は、アラーム情報を表示部130に表示してもよい。状況表示処理部862は、行動種別推定部332が異常行動と判定した時系列特徴点位置情報と異常行動の種別とを数値やテキストで記述した異常データ情報を表示部250に表示する(ステップS870)。ステップS870の処理が、ステップS860において表示部130にアラーム情報を表示する処理を兼ねてもよい。
なお、動物行動推定装置800の推定処理部860は、判定部244と推定要求部245をさらに備えるようにしてもよい。この場合、記憶部840は、正常行動判定モデル記憶部223をさらに備える。そして、行動推定モデル学習部154は、さらに正常行動判定モデルを学習して行動推定モデル学習部154に書き込む。判定部244は、行動推定モデル学習部154に記憶されている正常行動判定モデルを用いて推定対象動物の行動が正常であるか否か、又は、行動が正常か異常かを判定する。推定要求部245は、判定部244が正常ではない又は異常と判定した推定対象動物の時系列特徴点位置情報についてのみ、行動の種別の推定を行動種別推定部332に要求する。
なお、動物行動推定装置800の推定処理部860は、行動種別推定部332に代えて判定部244を備えるようにしてもよい。この場合、行動推定モデル学習部154は、行動推定モデルとして、正常行動判定モデルを学習し、行動推定モデル学習部154に書き込む。判定部244は、行動推定モデル学習部154に記憶されている正常行動判定モデルを用いて推定対象動物の行動が正常であるか否か、又は、行動が正常か異常かを判定する。通知部861は、判定部244が正常ではない又は異常と判断した推定対象動物の個体識別情報及びカメラ識別情報を設定したアラーム情報を、動物行動推定装置800が備える表示部130に表示する、又は、利用者装置500に通知する。
なお、動物行動推定装置800が、特徴点位置推定モデル記憶部144、特徴点位置推定モデル学習部153及び特徴点位置推定部243を備えない構成としてもよい。学習部850は、図10のステップS140の処理を行わず、行動種別推定部332は、ステップS830において、推定特徴点の種類及び位置が含まれない時系列特徴点位置情報を生成する。
上述した学習装置100、第一動物行動推定装置200、第二動物行動推定装置300、動物行動推定装置700及び動物行動推定装置800は、バスで接続されたCPU(Central Processing Unit)、GPU(Graphics Processing Unit)等のプロセッサやメモリや補助記憶装置などを備え、プロセッサがプログラムを実行することによって上記の機能を実現する。なお、学習装置100、第一動物行動推定装置200、第二動物行動推定装置300、動物行動推定装置700及び動物行動推定装置800の各機能の全て又は一部は、ASICやPLDやFPGA等のハードウェアを用いて実現されてもよい。プログラムは、コンピュータ読み取り可能な記録媒体に記録されても良い。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD−ROM、USBメモリ、SSD等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。プログラムは、電気通信回線を介して送信されてもよい。
また、学習装置100、第一動物行動推定装置200、第二動物行動推定装置300、動物行動推定装置700及び動物行動推定装置800をそれぞれ複数のコンピュータ装置により実現してもよい。この場合、学習装置100、第一動物行動推定装置200、第二動物行動推定装置300、動物行動推定装置700及び動物行動推定装置800の各機能部を、これら複数のコンピュータ装置のいずれにより実現するかは任意とすることができる。また、同一の機能部を複数のコンピュータ装置により実現してもよい。例えば、学習装置100の記憶部140、動物行動推定装置700の記憶部720、動物行動推定装置800の記憶部840を他の機能部とは別のコンピュータ装置により実現してもよく、第二動物行動推定装置300、動物行動推定装置700、動物行動推定装置800の行動種別推定部332を複数のコンピュータ装置により実現し、分散処理を行ってもよい。
以上説明した実施形態によれば、動物行動推定装置は、特徴点検出部と、行動推定部と備える。特徴点検出部は、行動推定対象の動物である推定対象動物が撮影された画像データから、画像データにおいて推定対象動物の外観から視認できる特徴点及び画像データにおいて推定対象動物の外観から視認できない特徴点を検出する。画像データは、動画データに含まれるフレーム又は静止画のデータのいずれでもよい。特徴点は、動物の行動の推定に用いられ、動物が四肢動物である場合、特徴点の種類は、顔、舌、背、尾及び関節を含む。行動推定部は、時系列の画像データそれぞれについて特徴点検出部が検出した特徴点の位置を示す時系列特徴点位置情報に基づいて推定対象動物の行動を推定する。
また、動物行動推定装置は、特徴点位置推定部をさらに備えてもよい。特徴点位置推定部は、特徴点検出部が検出した特徴点の位置に基づいて、動物の行動の推定に用いられる複数種類の特徴点のうち特徴点検出部において検出されなかった種類の特徴点の位置を推定する。行動推定部は、時系列の画像データそれぞれについて特徴点検出部が検出した特徴点の位置及び特徴点位置推定部が推定した特徴点の位置を示す時系列特徴点位置情報に基づいて推定対象動物の行動を推定する。
なお、特徴点検出部は、画像データに複数の推定対象動物が撮影されている場合、検出した特徴点の種類及び位置に基づいて、画像データから検出された特徴点が属する推定対象動物を判定する。
行動推定部は、時系列の複数種類の特徴点の位置の情報及び正解の行動の情報を学習データとして機械学習された行動推定モデルと時系列特徴点位置情報とに基づいて推定対象動物の行動を推定してもよい。正解の行動の情報は、行動の種別を示す情報、正常な行動であるか否かを示す情報、又は、正常であるか異常であるかを示す情報である。
特徴点位置推定部は、動物が撮影された画像データにおいてユーザが指定した特徴点の種類及び位置の情報を学習データとして機械学習された特徴点位置推定モデルと特徴点検出部が検出した特徴点の位置とに基づいて、特徴点検出部において検出されなかった種類の特徴点の位置を推定してもよい。
特徴点検出部は、動物が撮影された画像データと当該画像データにおいてユーザにより指定された特徴点の種類及び位置とを学習データとして機械学習された特徴点検出モデルを用いて、画像データから特徴点を検出する。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。