IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エヌ・ティ・ティ・ソフトウェア株式会社の特許一覧

特許7481550体重推定装置、体重推定方法及びプログラム
<>
  • 特許-体重推定装置、体重推定方法及びプログラム 図1
  • 特許-体重推定装置、体重推定方法及びプログラム 図2
  • 特許-体重推定装置、体重推定方法及びプログラム 図3
  • 特許-体重推定装置、体重推定方法及びプログラム 図4
  • 特許-体重推定装置、体重推定方法及びプログラム 図5
  • 特許-体重推定装置、体重推定方法及びプログラム 図6
  • 特許-体重推定装置、体重推定方法及びプログラム 図7
  • 特許-体重推定装置、体重推定方法及びプログラム 図8
  • 特許-体重推定装置、体重推定方法及びプログラム 図9
  • 特許-体重推定装置、体重推定方法及びプログラム 図10
  • 特許-体重推定装置、体重推定方法及びプログラム 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-30
(45)【発行日】2024-05-10
(54)【発明の名称】体重推定装置、体重推定方法及びプログラム
(51)【国際特許分類】
   G01G 17/08 20060101AFI20240501BHJP
   G01G 9/00 20060101ALI20240501BHJP
【FI】
G01G17/08
G01G9/00
【請求項の数】 4
(21)【出願番号】P 2023120539
(22)【出願日】2023-07-25
(62)【分割の表示】P 2018246095の分割
【原出願日】2018-12-27
(65)【公開番号】P2023129574
(43)【公開日】2023-09-14
【審査請求日】2023-07-25
(73)【特許権者】
【識別番号】000102717
【氏名又は名称】NTTテクノクロス株式会社
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】神谷 英樹
(72)【発明者】
【氏名】只野 奈津生
【審査官】大森 努
(56)【参考文献】
【文献】特開2019-211364(JP,A)
【文献】米国特許出願公開第2010/0289879(US,A1)
【文献】特開2014-044078(JP,A)
【文献】特開2016-59300(JP,A)
【文献】特開2002-243527(JP,A)
【文献】特開2002-286421(JP,A)
【文献】特開平6-3181(JP,A)
【文献】特表2012-519277(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G01G 9/00,17/08
G01B 11/00-11/30
(57)【特許請求の範囲】
【請求項1】
体重の推定対象を撮影した第1の画像を取得する取得手段と、
前記取得手段により取得された前記第1の画像における前記推定対象の姿勢が、予め定義された複数の姿勢のうちのいずれの姿勢であるかを分類する分類手段と、
前記分類手段により分類された姿勢に対応する推定モデルを用いて、前記第1の画像から前記推定対象の体重を推定する推定手段と、
を有し、
前記複数の姿勢は、左右方向の曲り有無と、首部分の高さと体部分の高さと尻部分の高さの順位との組み合わせ毎に定義された姿勢であり、
前記分類手段は、
前記第1の画像に基づいて、前記推定対象の左右方向の曲り有無と、首部分の高さと体部分の高さと尻部分の高さの順位とから前記複数の姿勢のうちのいずれの姿勢であるかを分類する、ことを特徴とする体重推定装置。
【請求項2】
前記姿勢毎に、該姿勢に対応する推定モデルを作成するモデル作成手段を有し、
前記取得手段は、
体重が既知の対象を撮影した第2の画像の集合を学習データとして取得し、
前記分類手段は、
前記取得手段により取得された前記学習データに含まれる各第2の画像における前記対象の姿勢が、前記複数の姿勢のうちのいずれの姿勢であるかを分類し、
前記モデル作成手段は、
前記姿勢毎に、該姿勢と分類された前記第2の画像と、該第2の画像における前記対象の体重とを用いて、前記姿勢に対応する推定モデルを作成する、ことを特徴とする請求項1に記載の体重推定装置。
【請求項3】
体重の推定対象を撮影した第1の画像を取得する取得手順と、
前記取得手順で取得された前記第1の画像における前記推定対象の姿勢が、予め定義された複数の姿勢のうちのいずれの姿勢であるかを分類する分類手順と、
前記分類手順で分類された姿勢に対応する推定モデルを用いて、前記第1の画像から前記推定対象の体重を推定する推定手順と、
をコンピュータが実行し、
前記複数の姿勢は、左右方向の曲り有無と、首部分の高さと体部分の高さと尻部分の高さの順位との組み合わせ毎に定義された姿勢であり、
前記分類手順は、
前記第1の画像に基づいて、前記推定対象の左右方向の曲り有無と、首部分の高さと体部分の高さと尻部分の高さの順位とから前記複数の姿勢のうちのいずれの姿勢であるかを分類する、ことを特徴とする体重推定方法。
【請求項4】
コンピュータを、請求項1又は2に記載の体重推定装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、体重推定装置、体重推定方法及びプログラムに関する。
【背景技術】
【0002】
畜産農家では、飼育している家畜の体重を把握することが従来から行われている。これは、例えば、豚等の家畜では、ある体重を超えると食肉としての価値が下がってしまうことがあるためである。
【0003】
ところで、畜産農家で飼育されている家畜は数百頭(又は数百匹、数百羽等)を超える場合がある。このため、体重計等を用いる場合、家畜の体重の把握には手間を要する。これに対して、家畜をビデオカメラで撮影し、撮影した画像中における家畜の面積から体重を推定する技術が知られている(例えば特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【文献】特開平6-3181号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、例えば、家畜が動くことで撮影時の家畜の姿勢が様々となるため、上記の従来技術では、推定された体重と真の体重との誤差が大きくなり、推定精度が低下する場合があった。
【0006】
本発明の実施の形態は、上記の点に鑑みてなされたもので、高い精度で体重を推定することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するため、本発明の実施の形態における体重推定装置は、体重の推定対象を撮影した第1の画像を取得する取得手段と、前記取得手段により取得された前記第1の画像における前記推定対象の姿勢が、予め定義された複数の姿勢のうちのいずれの姿勢であるかを分類する分類手段と、前記分類手段により分類された姿勢に対応する推定モデルを用いて、前記第1の画像から前記推定対象の体重を推定する推定手段と、を有し、前記複数の姿勢は、左右方向の曲り有無と、首部分の高さと体部分の高さと尻部分の高さの順位との組み合わせ毎に定義された姿勢であり、前記分類手段は、前記第1の画像に基づいて、前記推定対象の左右方向の曲り有無と、首部分の高さと体部分の高さと尻部分の高さの順位とから前記複数の姿勢のうちのいずれの姿勢であるかを分類する、ことを特徴とする。
【発明の効果】
【0008】
高い精度で体重を推定することができる。
【図面の簡単な説明】
【0009】
図1】本実施形態に係る体重推定システムの全体構成の一例を示す図である。
図2】縦横比の一例を説明するための図である。
図3】対称性の一例を説明するための図である。
図4】近似曲線の一例を説明するための図である。
図5】本実施形態に係る体重推定処理部の機能構成の一例を示す図である。
図6】本実施形態に係る学習処理の一例を示すフローチャートである。
図7】前処理の一例を説明するための図(その1)である。
図8】前処理の一例を説明するための図(その2)である。
図9】分類結果の一例を説明するための図である。
図10】回帰式の一例を説明するための図である。
図11】本実施形態に係る体重推定処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、本発明の実施の形態(以降、「本実施形態」とも表す。)について、図面を参照しながら説明する。本実施形態では、豚の姿勢をいくつかに分類し、これらの姿勢毎に体重を推定するための回帰式を予め作成した上で、これらの回帰式を用いて豚の体重を推定する場合について説明する。ただし、体重を推定する対象(以降、「推定対象」とも表す。)は、豚に限られず、例えば、牛、馬、羊、鶏等の種々の家畜であっても良い。また、体重の推定対象は、家畜だけでなく、例えば、野生の動物であっても良い。
【0011】
<全体構成>
まず、本実施形態に係る体重推定システム1の全体構成について、図1を参照しながら説明する。図1は、本実施形態に係る体重推定システム1の全体構成の一例を示す図である。
【0012】
図1に示すように、本実施形態に係る体重推定システム1には、体重の推定を行う体重推定装置10と、体重の推定対象である豚Pを撮影するカメラ装置20とが含まれる。体重推定装置10とカメラ装置20とは、例えば、無線若しくは有線又はその両方により通信可能に接続されている。
【0013】
カメラ装置20は、豚Pを撮影するための撮影エリアAの真上に設置されている撮影装置である。カメラ装置20は、撮影エリアA内の豚Pを真上から撮影することで、撮影画像を生成する。また、カメラ装置20には深度センサが備えられており、豚Pの各点の深度を測定し、これら各点の高さを得ることができる。なお、撮影画像は、画素値や深度値の点群で表される。
【0014】
なお、カメラ装置20は必ずしも撮影エリアAの真上に設置されている必要はなく、豚Pを上方から撮影可能な位置に設置されていれば良い。また、カメラ装置20は、例えば、1頭の豚Pを所定の回数連続して撮影(又は、所定の時間の間、連続して撮影)して複数の撮影画像を生成しても良い。
【0015】
体重推定装置10は、カメラ装置20が生成した撮影画像から豚Pの体重を推定するコンピュータ又はコンピュータシステムである。体重推定装置10は、豚Pの体重を推定する際に、豚の姿勢毎に予め作成した回帰式のうち、豚Pの姿勢に対応する回帰式を用いて、当該豚Pの体重を推定する。なお、回帰式は回帰モデル等と称されても良く、推定対象の体重を推定するための推定モデルの一例である。
【0016】
ここで、体重推定装置10には、体重推定処理部100と、記憶部110とが含まれる。体重推定処理部100は、体重推定装置10にインストールされた1以上のプログラムが、CPU(Central Processing Unit)に実行させる処理により実現される。また、記憶部110は、例えばHDD(Hard Disk Drive)やSSD(Solid State Drive)等を用いて実現可能である。
【0017】
体重推定装置10は、体重推定処理部100により、予め準備された学習データを用いて豚Pの体重を推定するための回帰式を算出する「学習処理」と、豚Pの姿勢に対応する回帰式を用いて当該豚Pの体重を推定する「体重推定処理」とを実行する。また、記憶部110は、学習処理及び体重推定処理の実行に必要な情報や各種処理結果(例えば、学習データや回帰式、体重の推定結果等)を記憶する。
【0018】
<豚の姿勢>
ここで、豚の姿勢について説明する。本実施形態では、豚の姿勢は、横方向(つまり、豚の左右方向)の曲がり有無と、豚の首部分、体部分及び尻部分のそれぞれにおける所定の各点の高さの順位との組み合わせで定義されるものとする。本実施形態では、例えば、横方向の曲がり有無を「有」(曲がっている)又は「無」(曲がっていない)で表し、首部分、体部分及び尻部分のそれぞれにおける所定の各点の高さ(つまり、z座標値)をz,z及びzとして、高さが高い順(つまり、z座標値が大きい順)に「1」、「2」、「3」と順位付けするものとする。なお、これら各点の高さは、例えば、カメラ装置20が備える深度センサで深度を測定することで得られる。
【0019】
本実施形態では、横方向の曲がり有無と、首部分、体部分及び尻部分のそれぞれにおける所定の各点の高さの順位とを用いて、豚の姿勢は以下の12パターンの姿勢Q~Q12に分類されるものとする。なお、以降では、便宜上、横方向の曲がり有無を単に「曲がり有無」とも表す。また、以降では、首部分における所定の点の高さzの順位を「首順位」、体部分における所定の点の高さzの順位を「体順位」、尻部分における所定の点の高さzの順位を「尻順位」とも表す。
【0020】
・姿勢Q:曲がり有無=無、かつ、(首順位,体順位,尻順位)=(1,2,3)
・姿勢Q:曲がり有無=無、かつ、(首順位,体順位,尻順位)=(1,3,2)
・姿勢Q:曲がり有無=無、かつ、(首順位,体順位,尻順位)=(2,1,3)
・姿勢Q:曲がり有無=無、かつ、(首順位,体順位,尻順位)=(2,3,1)
・姿勢Q:曲がり有無=無、かつ、(首順位,体順位,尻順位)=(3,1,2)
・姿勢Q:曲がり有無=無、かつ、(首順位,体順位,尻順位)=(3,2,1)
・姿勢Q:曲がり有無=有、かつ、(首順位,体順位,尻順位)=(1,2,3)
・姿勢Q:曲がり有無=有、かつ、(首順位,体順位,尻順位)=(1,3,2)
・姿勢Q:曲がり有無=有、かつ、(首順位,体順位,尻順位)=(2,1,3)
・姿勢Q10:曲がり有無=有、かつ、(首順位,体順位,尻順位)=(2,3,1)
・姿勢Q11:曲がり有無=有、かつ、(首順位,体順位,尻順位)=(3,1,2)
・姿勢Q12:曲がり有無=有、かつ、(首順位,体順位,尻順位)=(3,2,1)
ここで、上記の曲がり有無は、豚が左又は右にどの程度曲がっているかを表す値(これを「曲がり度合い」と表す。)を用いて、曲がり度合いが大きい場合(例えば、所定の閾値以上である場合)に「有」、曲がり度合いが小さい場合(例えば、所定の閾値未満である場合)に「無」となる。このような曲がり度合いは、例えば、以下の(1)~(4)のいずれかのように定義されれば良い。
【0021】
(1)縦横比を用いた定義
図2に示すように、豚をカメラ装置20で撮影した撮影画像において、豚部分の外接矩形の縦の長さと横の長さとを用いて縦横比を以下で定義し、この縦横比を曲がり度合いとする。
【0022】
縦横比=横の長さ/縦の長さ
このとき、縦横比が1に近いほど豚が左方向又は右方向に曲がっていることを表す。したがって、例えば、或る閾値th(0<th<1)を用いて、縦横比(曲がり度合い)がth未満である場合は曲がり有無=無、縦横比がth以上である場合は曲がり有無=有とすれば良い。
【0023】
(2)対称性を用いた定義
図3(a)に示すように、豚をカメラ装置20で撮影した撮影画像に対して、xyz座標系を設定する。また、当該撮影画像において、豚部分の外接矩形を設定した上で、この外接矩形を横に2等分する分割線を設定する。ここで、便宜上、分割線はy=0と平行であるものとする。なお、外接矩形が撮影画像に対して傾いている場合には、傾きが無くなるように当該外接矩形を回転させる。
【0024】
このとき、各x座標値に対して、分割線よりもy座標値が大きい点の数と、分割線よりもy座標値が小さい点の数との差分を計算する。言い換えれば、各x座標値毎に、豚部分の上端のy座標値(上端値)と、豚部分の下端のy座標値(下端値)との差の絶対値を計算する。この計算結果を図3(b)に示す。図3(b)は、x座標値毎の上端値と下端値との差分(差の絶対値)を表す。そして、これらの差分の合計(差分合計)を曲がり度合いとする。
【0025】
このとき、差分合計が大きいほど豚の対称性が小さく、左方向又は右方向に曲がっていることを表す。したがって、或る閾値thを用いて、差分合計(曲がり度合い)がth未満である場合は曲がり有無=無、差分合計がth以上である場合は曲がり有無=有とすれば良い。
【0026】
(3)近似曲線を用いた定義
図4に示すように、豚をカメラ装置20で撮影した撮影画像に対して、xyz座標系を設定する。このとき、各x座標値に対して、豚部分の上端のy座標値(上端値)と、豚部分の下端のy座標値(下端値)との中点を特定し、これらの中点を通る曲線を中心曲線とする。そして、例えば、中心曲線を近似する2次曲線(近似曲線)を求めて、近似曲線の2次の係数(つまり、近似曲線をy=ax+bx+cと表した場合の係数a)を曲がり度合いとする。
【0027】
このとき、2次の係数の絶対値が大きいほど左方向又は右方向に曲がっていることを表す。したがって、或る閾値thを用いて、2次の係数の絶対値がth未満である場合は曲がり有無=無、2次の係数の絶対値がth以上である場合は曲がり有無=有とすれば良い。
【0028】
(4)上記の(1)~(3)のうちの2以上の組み合わせによる定義
例えば、上記の(1)の縦横比、上記の(2)の差分合計、及び上記の(3)の2次の係数の絶対値のうちの任意の2以上の和又は重み付き和を曲がり度合いとする。
【0029】
<機能構成>
次に、本実施形態に係る体重推定処理部100の機能構成について、図5を参照しながら説明する。図5は、本実施形態に係る体重推定処理部100の機能構成の一例を示す図である。
【0030】
図5に示すように、本実施形態に係る体重推定処理部100には、取得部101と、前処理部102と、姿勢クラス分類部103と、回帰式算出部104と、体重推定部105とが含まれる。
【0031】
取得部101は、学習処理において、記憶部110に記憶されている複数の撮影画像(撮影画像群)を学習データとして取得する(読み込む)。ここで、学習データとして取得される撮影画像は、少なくとも体重が既知である豚を撮影した画像である。なお、学習データとして取得される撮影画像は、更に、例えば、当該豚の姿勢が、姿勢Q~姿勢Q12のうちのいずれであるかが既知であっても良い。
【0032】
また、取得部101は、体重推定処理において、推定対象の豚Pを撮影した撮影画像を記憶部110又はカメラ装置20から取得する。
【0033】
前処理部102は、学習処理及び体重推定処理において、取得部101により取得された撮影画像に対して所定の前処理を行う。なお、前処理は、豚の体重の推定精度を向上させるための処理であり、必ずしも行われなくても良い。
【0034】
姿勢クラス分類部103は、学習処理において、撮影画像群(取得部101により取得された撮影画像群又は前処理部102による前処理後の撮影画像群)を複数のクラス(以降、「姿勢クラス」とも表す。)に分類(本実施形態では12個の姿勢クラスに分類)する。以降では、これらの12個の姿勢クラスをC~C12とも表し、i=1,・・・,12として、姿勢クラスCには姿勢Qが対応するものとする。
【0035】
また、姿勢クラス分類部103は、体重推定処理において、撮影画像(取得部101により取得された撮影画像又は前処理部102による前処理後の撮影画像)を姿勢クラスC~C12のいずれかに分類する。
【0036】
回帰式算出部104は、学習処理において、姿勢クラスC~C12の各々(つまり、姿勢Q~姿勢Q12の各々)に対して、回帰式を算出する。これらの回帰式は、姿勢クラスC~C12の各々に分類された撮影画像を用いて、回帰分析をそれぞれ行うことで算出される。
【0037】
体重推定部105は、体重推定処理において、撮影画像(取得部101により取得された撮影画像又は前処理部102による前処理後の撮影画像)が分類された姿勢クラスに対応する回帰式を用いて、推定対象の豚Pの体重を算出する。これにより、推定対象の豚Pの体重が推定される。
【0038】
<学習処理>
次に、学習データを用いて、姿勢毎の回帰式を算出するための学習処理について、図6を参照しながら説明する。図6は、本実施形態に係る学習処理の一例を示すフローチャートである。なお、以降では、少なくとも体重が既知である豚を撮影した複数の撮影画像(撮影画像群)が記憶部110に記憶されているものとする。なお、これらの複数の撮影画像(撮影画像群)は、更に、例えば、当該豚の姿勢が、姿勢Q~姿勢Q12のうちのいずれであるかが既知であっても良い。
【0039】
ステップS101:取得部101は、記憶部110から撮影画像群を学習データとして取得する。
【0040】
なお、後述するステップS102で説明する前処理を予め行った撮影画像群を記憶部110に記憶させておき、取得部101によって前処理後の撮影画像群が取得されても良い。この場合、後述するステップS102の処理は実行しなくても良い。
【0041】
ステップS102:次に、前処理部102は、撮影画像群に含まれる撮影画像の各々に対して所定の前処理を行う。ここで、前処理としては、例えば、「豚の抽出処理」と、「頭部分及び尻尾部分の除外処理」とがある。なお、前処理として、「豚の抽出処理」及び「頭部分及び尻尾部分の除外処理」の両方を行っても良いし、いずれか一方のみを行っても良い。また、前処理自体を行わなくても良い。前処理自体を行わない場合は、ステップS102の処理は実行されない。
【0042】
(豚の抽出処理)
豚の抽出処理とは、例えば、撮影画像において、豚と壁とが密着していたり、当該豚と他の豚とが密着していたりする場合等に、当該豚の境界を特定することで、当該豚部分の画像領域のみを抽出する処理である。
【0043】
図7(a)に示すように、撮影画像に対して、xyz座標系を設定する。そして、当該撮影画像の各x座標値において、各y座標値におけるz座標値を取得する。図7(a)に示す例では、x=940において、y≧0である各y座標値におけるz座標値を取得する場合を示している。このように取得されたz座標値のグラフ(断面グラフ)を図7(b)に示す。
【0044】
このとき、z座標値が局所的に小さい点を境界上の点とする。図7(b)に示す例では、y=680が境界上の点となる。これを各x座標値に対して行うことで、境界が特定される。そして、境界内の画像領域を、当該豚部分の画像領域として抽出する。
【0045】
なお、z座標値が局所的に小さい点を境界上の点としたのは、一般に、1つのx座標値に対して、境界上の点は2つ存在するためである。このため、z座標値が局所的に小さい点の代わりに、z座標値が最も小さい点と、次にz座標値が小さい点とを境界上の点としても良い。
【0046】
(頭部分及び尻尾部分の除外処理)
頭部分及び尻尾部分は撮影中に動く場合があるため、体重の推定精度に影響を及ぼすことが多い。このため、頭部分及び尻尾部分の画像領域を除外(削除)することで、体重の推定精度を向上させることができる。なお、頭部分又は尻尾部分のいずれか一方の画像領域のみを除外することでも、体重の推定精度を向上させることは可能であるが、頭部分及び尻尾部分の両方の画像領域を除外した方が体重の推定精度をより向上させることが可能である。
【0047】
まず、上記の豚の抽出処理と同様の方法により、撮影画像における豚の境界を特定する。そして、次のようにして、頭部分及び尻尾部分を除外(削除)する。
【0048】
すなわち、例えば、境界上の隣接点同士を結ぶ線分を用いて、隣り合う線分間の角度が所定の閾値以下となる箇所(つまり、境界の凹部のうちの所定の角度以下の凹部)を首の付け根部分と特定する。そして、首の付け根部分を直線で結んで境界とすることで、頭部分を除外する。
【0049】
また、例えば、豚部分(豚全体の画像領域)の幅(つまり、y軸方向の幅)に対して1/3~1/5以下の幅の画像領域を尻尾部分として除外する。なお、豚部分の幅は、x座標値によって異なるため、例えば、予め決められたx座標値(例えば、x=0等)における豚部分の幅とすれば良い。
【0050】
以降では、前処理部102により、撮影画像群に含まれる各撮影画像に対して、上記の前処理(「豚の抽出処理」及び「頭部分及び尻尾部分の除外処理」)が行われたものとして説明をする。
【0051】
ステップS103:姿勢クラス分類部103は、前処理部102による前処理後の撮影画像群に含まれる各撮影画像を姿勢クラスに分類する。姿勢クラスに分類するための手法としては、例えば、k-means法を用いれば良い。又は、例えば、SVM(Support Vector Machine)等が用いられても良い。なお、このとき、姿勢クラス数は12として分類する。
【0052】
ここで、姿勢クラス分類部103は、各撮影画像から任意の特徴量(これを、以降では「第1の特徴量」と表す。)を抽出して、この第1の特徴量を用いて各撮影画像を姿勢クラスのいずれかに分類する。
【0053】
一例として、Xを曲がり度合い、Yをz-z、Zをz-z、第1の特徴量を(X,Y,Z)とした場合の分類結果を図9に示す。この場合、各撮影画像は、XYZの3次元空間内で分類される。なお、図9中のデータ点は、撮影画像群に含まれる各撮影画像を表す。
【0054】
これにより、撮影画像群に含まれる各撮影画像が12個の姿勢クラスのいずれかに分類される。ここで、12個の姿勢クラスの各々が姿勢Q~Q12のいずれに対応するかは、例えば、姿勢クラスに属する各撮影画像に写っている豚の姿勢からユーザが判断しても良いし、撮影画像群に含まれる各撮影画像に対して姿勢Q~Q12のいずれかを示すラベルが付与されている場合は姿勢クラスに属する各撮影画像に付与されているラベルの分布から判定しても良い。以降では、上述したように、i=1,・・・,12として、姿勢クラスCには姿勢Qが対応するものとする。
【0055】
ステップS104:次に、回帰式算出部104は、姿勢クラスC~C12の各々(つまり、姿勢Q~姿勢Q12の各々)に対して、回帰式をそれぞれ算出する。ここで、回帰式算出部104は、各撮影画像から任意の特徴量(これを、以降では「第2の特徴量」と表す。)を抽出して、回帰分析の手法により、第2の特徴量と体重との関係を表す回帰式を算出する。なお、上述したように、各撮影画像に対応する体重は既知である。
【0056】
第2の特徴量としては、例えば、撮影画像中の豚部分の投影面積であっても良いし、撮影画像中の豚部分の表面積であっても良い。なお、前処理において頭部分又は/及び尻尾部分が除外されている場合は、豚部分とは、当該除外後の画像領域のことである。
【0057】
これにより、図10に示すように、i=1,・・・.12として、姿勢Q(つまり、姿勢クラスC)に対応する回帰式fが算出される。そして、回帰式算出部104により算出された回帰f(i=1,・・・.12)は、記憶部110に記憶される。なお、図10では、回帰式fによって表される回帰曲線を図示している。
【0058】
<体重推定処理>
次に、推定対象の豚Pの体重を推定するための体重推定処理について、図11を参照しながら説明する。図11は、本実施形態に係る体重推定処理の一例を示すフローチャートである。
【0059】
ステップS201:取得部101は、推定対象の豚Pを撮影した撮影画像を記憶部110又はカメラ装置20から取得する。
【0060】
ステップS202:次に、前処理部102は、図6のステップS102と同様に、撮影画像に対して前処理を行う。なお、学習処理で前処理が行われた場合(前処理後の撮影画像を学習データとして取得した場合も含む)は当該撮影画像に対しても前処理を行う一方で、学習処理で前処理が行われなかった場合は当該撮影画像に対しても前処理を行わない。
【0061】
ステップS203:次に、姿勢クラス分類部103は、図6のステップS103と同様の手法により、当該撮影画像を姿勢クラスに分類する。このとき、姿勢クラス分類部103は、当該撮影画像から第1の特徴量を抽出して、この第1の特徴量を用いて当該撮影画像を姿勢クラスのいずれかに分類する。これにより、当該撮影画像が姿勢クラスC~C12のいずれかの姿勢クラスに分類される。
【0062】
ステップS204:次に、体重推定部105は、上記のステップS203で分類された姿勢クラスに対応する回帰式を用いて、豚Pの体重を算出する。すなわち、体重推定部105は、当該撮影画像から第2の特徴量を抽出して、この第2の特徴量を用いて当該回帰式により豚Pの体重を算出する。これにより、豚Pの体重が推定される。
【0063】
なお、体重推定部105により推定された体重は、例えば、記憶部110に記憶されても良いし、ディスプレイ等の表示装置に出力されても良い。これ以外にも、例えば、体重推定装置10とネットワークを介して接続される他の装置等に出力されても良い。
【0064】
<まとめ>
以上のように、本実施形態に係る体重推定システム1は、予め準備した学習データを用いて、豚の姿勢毎に回帰式(推定モデル)を作成する。そして、本実施形態に係る体重推定システム1は、豚の体重の推定する場合に、推定対象の豚の姿勢に対応する推定モデルを用いて、体重を推定する。これにより、推定対象の豚の姿勢が様々であったとしても、その姿勢に応じて、高い精度で当該豚の体重を推定することができるようになる。
【0065】
なお、本実施形態では、豚の姿勢を12の姿勢に分類したが、これは一例であって、分類の方法や分類数が異なっていても良い。特に、例えば、豚の種別(例えば、ヨークシャー種、ランドレース種等)によって分類の仕方や分類数が異なっていても良いし、推定対象の種類(例えば、豚、牛、馬、羊、鶏等)によって分類の仕方や分類数が異なっていても良い。
【0066】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
【符号の説明】
【0067】
1 体重推定システム
10 体重推定装置
20 カメラ装置
100 体重推定処理部
101 取得部
102 前処理部
103 姿勢クラス分類部
104 回帰式算出部
105 体重推定部
110 記憶部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11