(57)【要約】【課題】高い精度で体重を推定すること。【解決手段】体重推定装置は、体重の推定対象を撮影した第１の画像を取得する取得手段と、前記取得手段により取得された前記第１の画像における前記推定対象の姿勢が、予め定義された複数の姿勢のうちのいずれの姿勢であるかを分類する分類手段と、前記分類手段により分類された姿勢に対応する推定モデルを用いて、前記第１の画像から前記推定対象の体重を推定する推定手段と、を有することを特徴とする。【選択図】図５
2020106422.tif 000002
【特許請求の範囲】
【請求項１】
体重の推定対象を撮影した第１の画像を取得する取得手段と、
前記取得手段により取得された前記第１の画像における前記推定対象の姿勢が、予め定義された複数の姿勢のうちのいずれの姿勢であるかを分類する分類手段と、
前記分類手段により分類された姿勢に対応する推定モデルを用いて、前記第１の画像から前記推定対象の体重を推定する推定手段と、
を有することを特徴とする体重推定装置。
【請求項２】
前記姿勢毎に、該姿勢に対応する推定モデルを作成するモデル作成手段を有し、
前記取得手段は、
体重が既知の対象を撮影した第２の画像の集合を学習データとして取得し、
前記分類手段は、
前記取得手段により取得された前記学習データに含まれる各第２の画像における前記対象の姿勢が、前記複数の姿勢のうちのいずれの姿勢であるかを分類し、
前記モデル作成手段は、
前記姿勢毎に、該姿勢と分類された前記第２の画像と、該第２の画像における前記対象の体重とを用いて、前記姿勢に対応する推定モデルを作成する、ことを特徴とする請求項１に記載の体重推定装置。
【請求項３】
前記モデル作成手段は、
前記姿勢毎に、該姿勢と分類された前記第２の画像から抽出した特徴量と、前記第２の画像における前記対象の体重とを用いて、回帰分析の手法により、回帰モデルとして、前記姿勢に対応する推定モデルを作成する、ことを特徴とする請求項２に記載の体重推定装置。
【請求項４】
前記特徴量は、前記第２の画像における前記対象の投影面積又は表面積である、ことを特徴とする請求項３に記載の体重推定装置。
【請求項５】
体重の推定対象を撮影した第１の画像を取得する取得手順と、
前記取得手順で取得された前記第１の画像における前記推定対象の姿勢が、予め定義された複数の姿勢のうちのいずれの姿勢であるかを分類する分類手順と、
前記分類手順で分類された姿勢に対応する推定モデルを用いて、前記第１の画像から前記推定対象の体重を推定する推定手順と、
をコンピュータが実行することを特徴とする体重推定方法。
【請求項６】
コンピュータを、請求項１乃至４の何れか一項に記載の体重推定装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、体重推定装置、体重推定方法及びプログラムに関する。
【背景技術】
【０００２】
畜産農家では、飼育している家畜の体重を把握することが従来から行われている。これは、例えば、豚等の家畜では、ある体重を超えると食肉としての価値が下がってしまうことがあるためである。
【０００３】
ところで、畜産農家で飼育されている家畜は数百頭（又は数百匹、数百羽等）を超える場合がある。このため、体重計等を用いる場合、家畜の体重の把握には手間を要する。これに対して、家畜をビデオカメラで撮影し、撮影した画像中における家畜の面積から体重を推定する技術が知られている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平６−３１８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、例えば、家畜が動くことで撮影時の家畜の姿勢が様々となるため、上記の従来技術では、推定された体重と真の体重との誤差が大きくなり、推定精度が低下する場合があった。
【０００６】
本発明の実施の形態は、上記の点に鑑みてなされたもので、高い精度で体重を推定することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の実施の形態における体重推定装置は、体重の推定対象を撮影した第１の画像を取得する取得手段と、前記取得手段により取得された前記第１の画像における前記推定対象の姿勢が、予め定義された複数の姿勢のうちのいずれの姿勢であるかを分類する分類手段と、前記分類手段により分類された姿勢に対応する推定モデルを用いて、前記第１の画像から前記推定対象の体重を推定する推定手段と、を有することを特徴とする。
【発明の効果】
【０００８】
高い精度で体重を推定することができる。
【図面の簡単な説明】
【０００９】
【図１】本実施形態に係る体重推定システムの全体構成の一例を示す図である。
【図２】縦横比の一例を説明するための図である。
【図３】対称性の一例を説明するための図である。
【図４】近似曲線の一例を説明するための図である。
【図５】本実施形態に係る体重推定処理部の機能構成の一例を示す図である。
【図６】本実施形態に係る学習処理の一例を示すフローチャートである。
【図７】前処理の一例を説明するための図（その１）である。
【図８】前処理の一例を説明するための図（その２）である。
【図９】分類結果の一例を説明するための図である。
【図１０】回帰式の一例を説明するための図である。
【図１１】本実施形態に係る体重推定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態（以降、「本実施形態」とも表す。）について、図面を参照しながら説明する。本実施形態では、豚の姿勢をいくつかに分類し、これらの姿勢毎に体重を推定するための回帰式を予め作成した上で、これらの回帰式を用いて豚の体重を推定する場合について説明する。ただし、体重を推定する対象（以降、「推定対象」とも表す。）は、豚に限られず、例えば、牛、馬、羊、鶏等の種々の家畜であっても良い。また、体重の推定対象は、家畜だけでなく、例えば、野生の動物であっても良い。
【００１１】
＜全体構成＞
まず、本実施形態に係る体重推定システム１の全体構成について、図１を参照しながら説明する。図１は、本実施形態に係る体重推定システム１の全体構成の一例を示す図である。
【００１２】
図１に示すように、本実施形態に係る体重推定システム１には、体重の推定を行う体重推定装置１０と、体重の推定対象である豚Ｐを撮影するカメラ装置２０とが含まれる。体重推定装置１０とカメラ装置２０とは、例えば、無線若しくは有線又はその両方により通信可能に接続されている。
【００１３】
カメラ装置２０は、豚Ｐを撮影するための撮影エリアＡの真上に設置されている撮影装置である。カメラ装置２０は、撮影エリアＡ内の豚Ｐを真上から撮影することで、撮影画像を生成する。また、カメラ装置２０には深度センサが備えられており、豚Ｐの各点の深度を測定し、これら各点の高さを得ることができる。なお、撮影画像は、画素値や深度値の点群で表される。
【００１４】
なお、カメラ装置２０は必ずしも撮影エリアＡの真上に設置されている必要はなく、豚Ｐを上方から撮影可能な位置に設置されていれば良い。また、カメラ装置２０は、例えば、１頭の豚Ｐを所定の回数連続して撮影（又は、所定の時間の間、連続して撮影）して複数の撮影画像を生成しても良い。
【００１５】
体重推定装置１０は、カメラ装置２０が生成した撮影画像から豚Ｐの体重を推定するコンピュータ又はコンピュータシステムである。体重推定装置１０は、豚Ｐの体重を推定する際に、豚の姿勢毎に予め作成した回帰式のうち、豚Ｐの姿勢に対応する回帰式を用いて、当該豚Ｐの体重を推定する。なお、回帰式は回帰モデル等と称されても良く、推定対象の体重を推定するための推定モデルの一例である。
【００１６】
ここで、体重推定装置１０には、体重推定処理部１００と、記憶部１１０とが含まれる。体重推定処理部１００は、体重推定装置１０にインストールされた１以上のプログラムが、ＣＰＵ（Central Processing Unit）に実行させる処理により実現される。また、記憶部１１０は、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等を用いて実現可能である。
【００１７】
体重推定装置１０は、体重推定処理部１００により、予め準備された学習データを用いて豚Ｐの体重を推定するための回帰式を算出する「学習処理」と、豚Ｐの姿勢に対応する回帰式を用いて当該豚Ｐの体重を推定する「体重推定処理」とを実行する。また、記憶部１１０は、学習処理及び体重推定処理の実行に必要な情報や各種処理結果（例えば、学習データや回帰式、体重の推定結果等）を記憶する。
【００１８】
＜豚の姿勢＞
ここで、豚の姿勢について説明する。本実施形態では、豚の姿勢は、横方向（つまり、豚の左右方向）の曲がり有無と、豚の首部分、体部分及び尻部分のそれぞれにおける所定の各点の高さの順位との組み合わせで定義されるものとする。本実施形態では、例えば、横方向の曲がり有無を「有」（曲がっている）又は「無」（曲がっていない）で表し、首部分、体部分及び尻部分のそれぞれにおける所定の各点の高さ（つまり、ｚ座標値）をｚａ，ｚｂ及びｚｃとして、高さが高い順（つまり、ｚ座標値が大きい順）に「１」、「２」、「３」と順位付けするものとする。なお、これら各点の高さは、例えば、カメラ装置２０が備える深度センサで深度を測定することで得られる。
【００１９】
本実施形態では、横方向の曲がり有無と、首部分、体部分及び尻部分のそれぞれにおける所定の各点の高さの順位とを用いて、豚の姿勢は以下の１２パターンの姿勢Ｑ１〜Ｑ１２に分類されるものとする。なお、以降では、便宜上、横方向の曲がり有無を単に「曲がり有無」とも表す。また、以降では、首部分における所定の点の高さｚａの順位を「首順位」、体部分における所定の点の高さｚｂの順位を「体順位」、尻部分における所定の点の高さｚｃの順位を「尻順位」とも表す。
【００２０】
・姿勢Ｑ１：曲がり有無＝無、かつ、（首順位，体順位，尻順位）＝（１，２，３）
・姿勢Ｑ２：曲がり有無＝無、かつ、（首順位，体順位，尻順位）＝（１，３，２）
・姿勢Ｑ３：曲がり有無＝無、かつ、（首順位，体順位，尻順位）＝（２，１，３）
・姿勢Ｑ４：曲がり有無＝無、かつ、（首順位，体順位，尻順位）＝（２，３，１）
・姿勢Ｑ５：曲がり有無＝無、かつ、（首順位，体順位，尻順位）＝（３，１，２）
・姿勢Ｑ６：曲がり有無＝無、かつ、（首順位，体順位，尻順位）＝（３，２，１）
・姿勢Ｑ７：曲がり有無＝有、かつ、（首順位，体順位，尻順位）＝（１，２，３）
・姿勢Ｑ８：曲がり有無＝有、かつ、（首順位，体順位，尻順位）＝（１，３，２）
・姿勢Ｑ９：曲がり有無＝有、かつ、（首順位，体順位，尻順位）＝（２，１，３）
・姿勢Ｑ１０：曲がり有無＝有、かつ、（首順位，体順位，尻順位）＝（２，３，１）
・姿勢Ｑ１１：曲がり有無＝有、かつ、（首順位，体順位，尻順位）＝（３，１，２）
・姿勢Ｑ１２：曲がり有無＝有、かつ、（首順位，体順位，尻順位）＝（３，２，１）
ここで、上記の曲がり有無は、豚が左又は右にどの程度曲がっているかを表す値（これを「曲がり度合い」と表す。）を用いて、曲がり度合いが大きい場合（例えば、所定の閾値以上である場合）に「有」、曲がり度合いが小さい場合（例えば、所定の閾値未満である場合）に「無」となる。このような曲がり度合いは、例えば、以下の（１）〜（４）のいずれかのように定義されれば良い。
【００２１】
（１）縦横比を用いた定義
図２に示すように、豚をカメラ装置２０で撮影した撮影画像において、豚部分の外接矩形の縦の長さと横の長さとを用いて縦横比を以下で定義し、この縦横比を曲がり度合いとする。
【００２２】
縦横比＝横の長さ／縦の長さ
このとき、縦横比が１に近いほど豚が左方向又は右方向に曲がっていることを表す。したがって、例えば、或る閾値ｔｈ１（０＜ｔｈ１＜１）を用いて、縦横比（曲がり度合い）がｔｈ１未満である場合は曲がり有無＝無、縦横比がｔｈ１以上である場合は曲がり有無＝有とすれば良い。
【００２３】
（２）対称性を用いた定義
図３（ａ）に示すように、豚をカメラ装置２０で撮影した撮影画像に対して、ｘｙｚ座標系を設定する。また、当該撮影画像において、豚部分の外接矩形を設定した上で、この外接矩形を横に２等分する分割線を設定する。ここで、便宜上、分割線はｙ＝０と平行であるものとする。なお、外接矩形が撮影画像に対して傾いている場合には、傾きが無くなるように当該外接矩形を回転させる。
【００２４】
このとき、各ｘ座標値に対して、分割線よりもｙ座標値が大きい点の数と、分割線よりもｙ座標値が小さい点の数との差分を計算する。言い換えれば、各ｘ座標値毎に、豚部分の上端のｙ座標値（上端値）と、豚部分の下端のｙ座標値（下端値）との差の絶対値を計算する。この計算結果を図３（ｂ）に示す。図３（ｂ）は、ｘ座標値毎の上端値と下端値との差分（差の絶対値）を表す。そして、これらの差分の合計（差分合計）を曲がり度合いとする。
【００２５】
このとき、差分合計が大きいほど豚の対称性が小さく、左方向又は右方向に曲がっていることを表す。したがって、或る閾値ｔｈ２を用いて、差分合計（曲がり度合い）がｔｈ２未満である場合は曲がり有無＝無、差分合計がｔｈ２以上である場合は曲がり有無＝有とすれば良い。
【００２６】
（３）近似曲線を用いた定義
図４に示すように、豚をカメラ装置２０で撮影した撮影画像に対して、ｘｙｚ座標系を設定する。このとき、各ｘ座標値に対して、豚部分の上端のｙ座標値（上端値）と、豚部分の下端のｙ座標値（下端値）との中点を特定し、これらの中点を通る曲線を中心曲線とする。そして、例えば、中心曲線を近似する２次曲線（近似曲線）を求めて、近似曲線の２次の係数（つまり、近似曲線をｙ＝ａｘ２＋ｂｘ＋ｃと表した場合の係数ａ）を曲がり度合いとする。
【００２７】
このとき、２次の係数の絶対値が大きいほど左方向又は右方向に曲がっていることを表す。したがって、或る閾値ｔｈ３を用いて、２次の係数の絶対値がｔｈ３未満である場合は曲がり有無＝無、２次の係数の絶対値がｔｈ３以上である場合は曲がり有無＝有とすれば良い。
【００２８】
（４）上記の（１）〜（３）のうちの２以上の組み合わせによる定義
例えば、上記の（１）の縦横比、上記の（２）の差分合計、及び上記の（３）の２次の係数の絶対値のうちの任意の２以上の和又は重み付き和を曲がり度合いとする。
【００２９】
＜機能構成＞
次に、本実施形態に係る体重推定処理部１００の機能構成について、図５を参照しながら説明する。図５は、本実施形態に係る体重推定処理部１００の機能構成の一例を示す図である。
【００３０】
図５に示すように、本実施形態に係る体重推定処理部１００には、取得部１０１と、前処理部１０２と、姿勢クラス分類部１０３と、回帰式算出部１０４と、体重推定部１０５とが含まれる。
【００３１】
取得部１０１は、学習処理において、記憶部１１０に記憶されている複数の撮影画像（撮影画像群）を学習データとして取得する（読み込む）。ここで、学習データとして取得される撮影画像は、少なくとも体重が既知である豚を撮影した画像である。なお、学習データとして取得される撮影画像は、更に、例えば、当該豚の姿勢が、姿勢Ｑ１〜姿勢Ｑ１２のうちのいずれであるかが既知であっても良い。
【００３２】
また、取得部１０１は、体重推定処理において、推定対象の豚Ｐを撮影した撮影画像を記憶部１１０又はカメラ装置２０から取得する。
【００３３】
前処理部１０２は、学習処理及び体重推定処理において、取得部１０１により取得された撮影画像に対して所定の前処理を行う。なお、前処理は、豚の体重の推定精度を向上させるための処理であり、必ずしも行われなくても良い。
【００３４】
姿勢クラス分類部１０３は、学習処理において、撮影画像群（取得部１０１により取得された撮影画像群又は前処理部１０２による前処理後の撮影画像群）を複数のクラス（以降、「姿勢クラス」とも表す。）に分類（本実施形態では１２個の姿勢クラスに分類）する。以降では、これらの１２個の姿勢クラスをＣ１〜Ｃ１２とも表し、ｉ＝１，・・・，１２として、姿勢クラスＣｉには姿勢Ｑｉが対応するものとする。
【００３５】
また、姿勢クラス分類部１０３は、体重推定処理において、撮影画像（取得部１０１により取得された撮影画像又は前処理部１０２による前処理後の撮影画像）を姿勢クラスＣ１〜Ｃ１２のいずれかに分類する。
【００３６】
回帰式算出部１０４は、学習処理において、姿勢クラスＣ１〜Ｃ１２の各々（つまり、姿勢Ｑ１〜姿勢Ｑ１２の各々）に対して、回帰式を算出する。これらの回帰式は、姿勢クラスＣ１〜Ｃ１２の各々に分類された撮影画像を用いて、回帰分析をそれぞれ行うことで算出される。
【００３７】
体重推定部１０５は、体重推定処理において、撮影画像（取得部１０１により取得された撮影画像又は前処理部１０２による前処理後の撮影画像）が分類された姿勢クラスに対応する回帰式を用いて、推定対象の豚Ｐの体重を算出する。これにより、推定対象の豚Ｐの体重が推定される。
【００３８】
＜学習処理＞
次に、学習データを用いて、姿勢毎の回帰式を算出するための学習処理について、図６を参照しながら説明する。図６は、本実施形態に係る学習処理の一例を示すフローチャートである。なお、以降では、少なくとも体重が既知である豚を撮影した複数の撮影画像（撮影画像群）が記憶部１１０に記憶されているものとする。なお、これらの複数の撮影画像（撮影画像群）は、更に、例えば、当該豚の姿勢が、姿勢Ｑ１〜姿勢Ｑ１２のうちのいずれであるかが既知であっても良い。
【００３９】
ステップＳ１０１：取得部１０１は、記憶部１１０から撮影画像群を学習データとして取得する。
【００４０】
なお、後述するステップＳ１０２で説明する前処理を予め行った撮影画像群を記憶部１１０に記憶させておき、取得部１０１によって前処理後の撮影画像群が取得されても良い。この場合、後述するステップＳ１０２の処理は実行しなくても良い。
【００４１】
ステップＳ１０２：次に、前処理部１０２は、撮影画像群に含まれる撮影画像の各々に対して所定の前処理を行う。ここで、前処理としては、例えば、「豚の抽出処理」と、「頭部分及び尻尾部分の除外処理」とがある。なお、前処理として、「豚の抽出処理」及び「頭部分及び尻尾部分の除外処理」の両方を行っても良いし、いずれか一方のみを行っても良い。また、前処理自体を行わなくても良い。前処理自体を行わない場合は、ステップＳ１０２の処理は実行されない。
【００４２】
（豚の抽出処理）
豚の抽出処理とは、例えば、撮影画像において、豚と壁とが密着していたり、当該豚と他の豚とが密着していたりする場合等に、当該豚の境界を特定することで、当該豚部分の画像領域のみを抽出する処理である。
【００４３】
図７（ａ）に示すように、撮影画像に対して、ｘｙｚ座標系を設定する。そして、当該撮影画像の各ｘ座標値において、各ｙ座標値におけるｚ座標値を取得する。図７（ａ）に示す例では、ｘ＝９４０において、ｙ≧０である各ｙ座標値におけるｚ座標値を取得する場合を示している。このように取得されたｚ座標値のグラフ（断面グラフ）を図７（ｂ）に示す。
【００４４】
このとき、ｚ座標値が局所的に小さい点を境界上の点とする。図７（ｂ）に示す例では、ｙ＝６８０が境界上の点となる。これを各ｘ座標値に対して行うことで、境界が特定される。そして、境界内の画像領域を、当該豚部分の画像領域として抽出する。
【００４５】
なお、ｚ座標値が局所的に小さい点を境界上の点としたのは、一般に、１つのｘ座標値に対して、境界上の点は２つ存在するためである。このため、ｚ座標値が局所的に小さい点の代わりに、ｚ座標値が最も小さい点と、次にｚ座標値が小さい点とを境界上の点としても良い。
【００４６】
（頭部分及び尻尾部分の除外処理）
頭部分及び尻尾部分は撮影中に動く場合があるため、体重の推定精度に影響を及ぼすことが多い。このため、頭部分及び尻尾部分の画像領域を除外（削除）することで、体重の推定精度を向上させることができる。なお、頭部分又は尻尾部分のいずれか一方の画像領域のみを除外することでも、体重の推定精度を向上させることは可能であるが、頭部分及び尻尾部分の両方の画像領域を除外した方が体重の推定精度をより向上させることが可能である。
【００４７】
まず、上記の豚の抽出処理と同様の方法により、撮影画像における豚の境界を特定する。そして、次のようにして、頭部分及び尻尾部分を除外（削除）する。
【００４８】
すなわち、例えば、境界上の隣接点同士を結ぶ線分を用いて、隣り合う線分間の角度が所定の閾値以下となる箇所（つまり、境界の凹部のうちの所定の角度以下の凹部）を首の付け根部分と特定する。そして、首の付け根部分を直線で結んで境界とすることで、頭部分を除外する。
【００４９】
また、例えば、豚部分（豚全体の画像領域）の幅（つまり、ｙ軸方向の幅）に対して１／３〜１／５以下の幅の画像領域を尻尾部分として除外する。なお、豚部分の幅は、ｘ座標値によって異なるため、例えば、予め決められたｘ座標値（例えば、ｘ＝０等）における豚部分の幅とすれば良い。
【００５０】
以降では、前処理部１０２により、撮影画像群に含まれる各撮影画像に対して、上記の前処理（「豚の抽出処理」及び「頭部分及び尻尾部分の除外処理」）が行われたものとして説明をする。
【００５１】
ステップＳ１０３：姿勢クラス分類部１０３は、前処理部１０２による前処理後の撮影画像群に含まれる各撮影画像を姿勢クラスに分類する。姿勢クラスに分類するための手法としては、例えば、ｋ−ｍｅａｎｓ法を用いれば良い。又は、例えば、ＳＶＭ（Support Vector Machine）等が用いられても良い。なお、このとき、姿勢クラス数は１２として分類する。
【００５２】
ここで、姿勢クラス分類部１０３は、各撮影画像から任意の特徴量（これを、以降では「第１の特徴量」と表す。）を抽出して、この第１の特徴量を用いて各撮影画像を姿勢クラスのいずれかに分類する。
【００５３】
一例として、Ｘを曲がり度合い、Ｙをｚｂ−ｚｃ、Ｚをｚｂ−ｚａ、第１の特徴量を（Ｘ，Ｙ，Ｚ）とした場合の分類結果を図９に示す。この場合、各撮影画像は、ＸＹＺの３次元空間内で分類される。なお、図９中のデータ点は、撮影画像群に含まれる各撮影画像を表す。
【００５４】
これにより、撮影画像群に含まれる各撮影画像が１２個の姿勢クラスのいずれかに分類される。ここで、１２個の姿勢クラスの各々が姿勢Ｑ１〜Ｑ１２のいずれに対応するかは、例えば、姿勢クラスに属する各撮影画像に写っている豚の姿勢からユーザが判断しても良いし、撮影画像群に含まれる各撮影画像に対して姿勢Ｑ１〜Ｑ１２のいずれかを示すラベルが付与されている場合は姿勢クラスに属する各撮影画像に付与されているラベルの分布から判定しても良い。以降では、上述したように、ｉ＝１，・・・，１２として、姿勢クラスＣｉには姿勢Ｑｉが対応するものとする。
【００５５】
ステップＳ１０４：次に、回帰式算出部１０４は、姿勢クラスＣ１〜Ｃ１２の各々（つまり、姿勢Ｑ１〜姿勢Ｑ１２の各々）に対して、回帰式をそれぞれ算出する。ここで、回帰式算出部１０４は、各撮影画像から任意の特徴量（これを、以降では「第２の特徴量」と表す。）を抽出して、回帰分析の手法により、第２の特徴量と体重との関係を表す回帰式を算出する。なお、上述したように、各撮影画像に対応する体重は既知である。
【００５６】
第２の特徴量としては、例えば、撮影画像中の豚部分の投影面積であっても良いし、撮影画像中の豚部分の表面積であっても良い。なお、前処理において頭部分又は／及び尻尾部分が除外されている場合は、豚部分とは、当該除外後の画像領域のことである。
【００５７】
これにより、図１０に示すように、ｉ＝１，・・・．１２として、姿勢Ｑｉ（つまり、姿勢クラスＣｉ）に対応する回帰式ｆｉが算出される。そして、回帰式算出部１０４により算出された回帰ｆｉ（ｉ＝１，・・・．１２）は、記憶部１１０に記憶される。なお、図１０では、回帰式ｆｉによって表される回帰曲線を図示している。
【００５８】
＜体重推定処理＞
次に、推定対象の豚Ｐの体重を推定するための体重推定処理について、図１１を参照しながら説明する。図１１は、本実施形態に係る体重推定処理の一例を示すフローチャートである。
【００５９】
ステップＳ２０１：取得部１０１は、推定対象の豚Ｐを撮影した撮影画像を記憶部１１０又はカメラ装置２０から取得する。
【００６０】
ステップＳ２０２：次に、前処理部１０２は、図６のステップＳ１０２と同様に、撮影画像に対して前処理を行う。なお、学習処理で前処理が行われた場合（前処理後の撮影画像を学習データとして取得した場合も含む）は当該撮影画像に対しても前処理を行う一方で、学習処理で前処理が行われなかった場合は当該撮影画像に対しても前処理を行わない。
【００６１】
ステップＳ２０３：次に、姿勢クラス分類部１０３は、図６のステップＳ１０３と同様の手法により、当該撮影画像を姿勢クラスに分類する。このとき、姿勢クラス分類部１０３は、当該撮影画像から第１の特徴量を抽出して、この第１の特徴量を用いて当該撮影画像を姿勢クラスのいずれかに分類する。これにより、当該撮影画像が姿勢クラスＣ１〜Ｃ１２のいずれかの姿勢クラスに分類される。
【００６２】
ステップＳ２０４：次に、体重推定部１０５は、上記のステップＳ２０３で分類された姿勢クラスに対応する回帰式を用いて、豚Ｐの体重を算出する。すなわち、体重推定部１０５は、当該撮影画像から第２の特徴量を抽出して、この第２の特徴量を用いて当該回帰式により豚Ｐの体重を算出する。これにより、豚Ｐの体重が推定される。
【００６３】
なお、体重推定部１０５により推定された体重は、例えば、記憶部１１０に記憶されても良いし、ディスプレイ等の表示装置に出力されても良い。これ以外にも、例えば、体重推定装置１０とネットワークを介して接続される他の装置等に出力されても良い。
【００６４】
＜まとめ＞
以上のように、本実施形態に係る体重推定システム１は、予め準備した学習データを用いて、豚の姿勢毎に回帰式（推定モデル）を作成する。そして、本実施形態に係る体重推定システム１は、豚の体重の推定する場合に、推定対象の豚の姿勢に対応する推定モデルを用いて、体重を推定する。これにより、推定対象の豚の姿勢が様々であったとしても、その姿勢に応じて、高い精度で当該豚の体重を推定することができるようになる。
【００６５】
なお、本実施形態では、豚の姿勢を１２の姿勢に分類したが、これは一例であって、分類の方法や分類数が異なっていても良い。特に、例えば、豚の種別（例えば、ヨークシャー種、ランドレース種等）によって分類の仕方や分類数が異なっていても良いし、推定対象の種類（例えば、豚、牛、馬、羊、鶏等）によって分類の仕方や分類数が異なっていても良い。
【００６６】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【００６７】
１        体重推定システム
１０      体重推定装置
２０      カメラ装置
１００    体重推定処理部
１０１    取得部
１０２    前処理部
１０３    姿勢クラス分類部
１０４    回帰式算出部
１０５    体重推定部
１１０    記憶部
【図１】
2020106422.tif 000003
【図２】
2020106422.tif 000004
【図３】
2020106422.tif 000005
【図４】
2020106422.tif 000006
【図５】
2020106422.tif 000007
【図６】
2020106422.tif 000008
【図７】
2020106422.tif 000009
【図８】
2020106422.tif 000010
【図９】
2020106422.tif 000011
【図１０】
2020106422.tif 000012
【図１１】
2020106422.tif 000013