(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-13
(45)【発行日】2024-02-21
(54)【発明の名称】撮影装置、撮影方法及びプログラム
(51)【国際特許分類】
G01G 17/08 20060101AFI20240214BHJP
G01G 9/00 20060101ALI20240214BHJP
G01B 11/24 20060101ALI20240214BHJP
【FI】
G01G17/08
G01G9/00
G01B11/24 A
G01B11/24 K
(21)【出願番号】P 2022510657
(86)(22)【出願日】2021-03-25
(86)【国際出願番号】 JP2021012516
(87)【国際公開番号】W WO2021193816
(87)【国際公開日】2021-09-30
【審査請求日】2022-09-21
(31)【優先権主張番号】P 2020055979
(32)【優先日】2020-03-26
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000102717
【氏名又は名称】NTTテクノクロス株式会社
(74)【代理人】
【識別番号】100107766
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】青柳 慎一
(72)【発明者】
【氏名】今井 康平
(72)【発明者】
【氏名】畠中 将徳
【審査官】岡田 卓弥
(56)【参考文献】
【文献】米国特許出願公開第2020/0077667(US,A1)
【文献】特許第6637169(JP,B2)
【文献】中国特許出願公開第110836715(CN,A)
【文献】米国特許出願公開第2016/0012278(US,A1)
【文献】米国特許出願公開第2014/0029808(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G01G 1/00-23/48
G01F17/00-22/02
G01B11/00-11/30
A01K29/00
(57)【特許請求の範囲】
【請求項1】
ユーザが所持可能で、かつ、撮影対象
である家畜の体重推定に用いられる3次元点群データを生成する撮影装置であって、
前記撮影対象と前記撮影装置との相対的な位置関係が所定の条件を満たすか否かを動的に判定する判定手段と、
前記位置関係が前記所定の条件を満たすと判定された場合、ユーザに対して前記撮影対象の撮影を促す通知を行う、又は、前記撮影対象を撮影する制御手段と、
を有することを特徴とする撮影装置。
【請求項2】
前記撮影対象は豚であり、
前記判定手段は、
前記豚を上方から前記撮影装置によって撮影する際に、前記豚の肩と背中との境界の近傍に設定された第1の位置までの第1の深度と、前記豚の背中と臀部との境界の近傍に設定された第2の位置までの第2の深度との比が少なくとも所定の第1の範囲内である場合に、前記所定の条件を満たすと判定する、ことを特徴とする請求項1に記載の撮影装置。
【請求項3】
前記第1の位置及び前記第2の位置は、前記豚の左右を等分する中心線上に設定される、ことを特徴とする請求項2に記載の撮影装置。
【請求項4】
前記判定手段は、
更に、前記中心線に対して対称な第3の位置及び第4の位置であって、かつ、前記豚の背中上に設定された第3の位置及び第4の位置の各々までの第3の深度及び第4の深度の比が所定の第2の範囲内である場合に、前記所定の条件を満たすと判定する、ことを特徴とする請求項3に記載の撮影装置。
【請求項5】
前記撮影対象は豚であり、
前記判定手段は、
前記豚を上方から前記撮影装置によって撮影する際に、前記豚の境界の内側に設定された第5の位置までの第5の深度と、前記豚の境界の外側に設定された第6の位置までの第6の深度との差が少なくとも所定の閾値以上である場合に、前記所定の条件を満たすと判定する、ことを特徴とする請求項1に記載の撮影装置。
【請求項6】
前記撮影対象は豚であり、
前記所定の条件には、前記豚の尻尾の付け根部分の境界が検知されたことを表す第1の条件と、前記豚の側面の境界が検知されたことを表す第2の条件と、前記豚に対して前記撮影装置の傾きが所定の傾き以下であることを表す第3の条件とが含まれ、
前記判定手段は、
前記第1の条件を満たすか否かと、前記第2の条件を満たすか否かと、前記第3の条件を満たすか否かとを順に判定し、
前記第1の条件と前記第2の条件と前記第3の条件とを満たすと判定された場合、前記撮影対象を撮影する、ことを特徴とする請求項1に記載の撮影装置。
【請求項7】
前記豚の側面の境界が検知されなかった箇所に、前記豚の側面の境界が検知できなかったことを表す第1の表示部品を表示する表示手段を有する、ことを特徴とする請求項6に記載の撮影装置。
【請求項8】
前記表示手段は、
前記豚の側面の境界が検知された箇所に、前記豚の側面の境界が検知できたことを表す第2の表示部品を表示する、ことを特徴とする請求項7に記載の撮影装置。
【請求項9】
ユーザが所持可能で、かつ、撮影対象
である家畜の体重推定に用いられる3次元点群データを生成する撮影装置が、
前記撮影対象と前記撮影装置との相対的な位置関係が所定の条件を満たすか否かを動的に判定する判定手順と、
前記位置関係が前記所定の条件を満たすと判定された場合、ユーザに対して前記撮影対象の撮影を促す通知を行う、又は、前記撮影対象を撮影する制御手順と、
を実行することを特徴とする撮影方法。
【請求項10】
コンピュータを、請求項1乃至8の何か一項に記載の撮影装置における各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮影装置、撮影方法及びプログラムに関する。
【背景技術】
【0002】
畜産農家では、飼育している家畜の体重を把握することが従来から行われている。これは、例えば、豚等の家畜では、或る体重を超えると食肉としての価値が下がってしまうことがあるためである。
【0003】
ところで、畜産農家で飼育されている家畜は数百頭(又は数百匹、数百羽等)を超える場合がある。このため、体重計等を用いる場合、家畜の体重の把握には手間を要する。これに対して、赤外線カメラ等で構成される3次元計測器を用いて、この3次元計測器により家畜を撮影することで得られた3次元点群データから家畜の体重を推定する技術が知られている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、同一の家畜を撮影する場合であっても、様々な原因(例えば、撮影者のカメラの持ち方や家畜が動くこと等に起因するカメラの傾き等)により、撮影者間で、撮影によって得られる3次元点群データにばらつきが生じる場合がある。このため、家畜の体重の推定結果にもばらつきが生じる場合があり、正確な体重が得られないことがある。
【0006】
本発明の一実施形態は、上記の点に鑑みてなされたもので、体重推定のための3次元点群データのばらつきを抑制することを目的とする。
【課題を解決するための手段】
【0007】
上記目的を達成するため、一実施形態に係る撮影装置は、撮影対象の体重推定に用いられる3次元点群データを生成する撮影装置であって、前記撮影対象と前記撮影装置との相対的な位置関係が所定の条件を満たすか否かを動的に判定する判定手段と、前記位置関係が前記所定の条件を満たすと判定された場合、ユーザに対して前記撮影対象の撮影を促す通知を行う、又は、前記撮影対象を撮影する制御手段と、を有することを特徴とする。
【発明の効果】
【0008】
体重推定のための3次元点群データのばらつきを抑制することができる。
【図面の簡単な説明】
【0009】
【
図1】第一の実施形態に係る体重推定システムの全体構成の一例を示す図である。
【
図3】撮影タイミングの通知の一例を示す図である。
【
図4】第一の実施形態に係る撮影装置の機能構成の一例を示す図である。
【
図5】撮影タイミングの通知処理の一例を示すフローチャートである。
【
図6】撮影タイミング条件の判定の一例を説明するための図(その1)である。
【
図7】撮影タイミング条件の判定の一例を説明するための図(その2)である。
【
図8】撮影タイミング条件の判定の一例を説明するための図(その3)である。
【
図9】撮影タイミング条件の判定の一例を説明するための図(変形例1)である。
【
図10】撮影タイミング条件の判定の一例を説明するための図(変形例2)である。
【
図11】第二の実施形態に係る撮影装置の機能構成の一例を示す図である。
【
図12】自動撮影処理の一例を示すフローチャートである。
【
図13】自動撮影条件の判定の一例を説明するための図(その1)である。
【
図14】自動撮影条件の判定の一例を説明するための図(その2)である。
【
図15】自動撮影条件の判定の一例を説明するための図(その3)である。
【
図16】障害物表示及び輪郭検知表示の一例を説明するための図である。
【発明を実施するための形態】
【0010】
以下、本発明の一実施形態について説明する。以下では、家畜の一例として豚の体重推定のための3次元点群データを撮影により生成(取得)する際に、撮影の結果として得られる3次元点群データの撮影者間でのばらつきを抑制することが可能な体重推定システム1について説明する。ここで、3次元点群データの撮影者間でのばらつきの抑制とは、同一の豚を複数の異なる撮影者が撮影した場合に、これらの撮影によって得られる複数の3次元点群データ間のばらつきが或る所定の許容誤差の範囲内に収まっていることをいう。また、後述するように3次元点群データは{(x,y,z)}と表され、複数の3次元点群データ間のばらつきとは、同一(x,y)におけるzの値の各3次元点群データ間でのばらつき(例えば、分散等)をσxyとして、(x,y)に関するσxyの平均又は合計等のことである。
【0011】
[第一の実施形態]
まず、第一の実施形態について説明する。
【0012】
<全体構成>
まず、本実施形態に係る体重推定システム1の全体構成について、
図1を参照しながら説明する。
図1は、第一の実施形態に係る体重推定システム1の全体構成の一例を示す図である。
【0013】
図1に示すように、本実施形態に係る体重推定システム1には、体重の推定対象である豚Pを撮影して3次元点群データを生成する撮影装置10と、3次元点群データから豚Pの体重を推定する体重推定装置20とが含まれる。撮影装置10と体重推定装置20は、例えば、無線若しくは有線又はその両方により通信可能に接続されている。
【0014】
撮影装置10は、豚Pを撮影する撮影者Mが利用するデジタルカメラ、スマートフォン、タブレット端末等である。撮影装置10には深度センサが備えられており、撮影範囲内における各位置の深度を測定し、これら各位置とその深度とを表す3次元点群データを生成する。3次元点群データは、撮影範囲内の各位置を(x,y)、これらの各位置における深度値をzとして、(x,y,z)の集合{(x,y,z)}で表される。なお、撮影装置10によって生成された3次元点群データは、体重推定装置20に送信される。
【0015】
ここで、本実施形態では、撮影者Mは、撮影装置10を用いて豚Pの上方から当該豚Pを撮影するものとする。このとき、撮影装置10は、当該撮影装置10と豚Pとの相対的な位置関係により最適な撮影タイミング(つまり、撮影者間でばらつきの少ない3次元点群データが得られる位置関係)であるか否かを動的に判定し、最適な撮影タイミングとなった場合にその旨を撮影者Mに通知する。したがって、この撮影タイミングで豚Pを撮影することで、撮影者Mは、撮影者間でばらつきの少ない3次元点群データを得ることができる。
【0016】
体重推定装置20は、撮影装置10によって生成された3次元点群データから豚Pの体重を推定するコンピュータ又はコンピュータシステムである。なお、体重推定装置20が体重を推定する手法は限定されず、既知の任意の手法により、3次元点群データから豚Pの体重を推定すればよい。一例として、体重推定装置20は、上記の特許文献1に記載されている手法により、3次元点群データから豚Pの体重を推定することができる。
【0017】
なお、
図1に示す体重推定システム1の全体構成は一例であって、他の構成であってもよい。例えば、体重推定システム1には体重推定装置20が含まれず、3次元点群データから豚Pの体重を推定する機能を撮影装置10が有していてもよい。また、3次元点群データから豚Pの体重を推定する機能の一部又は全部が、クラウドサービス等により提供されるものであってもよい。
【0018】
<撮影画面及び撮影タイミングの通知>
ここで、撮影者Mが豚Pを撮影する際に撮影装置10のディスプレイ等に表示される撮影画面と最適な撮影タイミングとなった場合の通知とについて説明する。
【0019】
例えば、撮影者Mが撮影装置10に対して撮影開始操作を行うと、当該撮影装置10のディスプレイ上には、
図2に示す撮影画面1000が表示される。
【0020】
図2に示す撮影画面1000には、豚Pの撮影位置を合わせるための撮影ガイド1100が含まれている。撮影ガイド1100は豚を上方から見た場合の輪郭を表す形状であり、撮影画面1000の下方向が頭方向、上方向が尻尾方向となっている。
【0021】
また、撮影画面1000には、撮影範囲1200の中心を示す中心ガイド1110が含まれている。ここで、本実施形態では、3次元点群データの原点(つまり、(x,y,z)=(0,0,0)となる位置)は撮影装置10のカメラ位置であるものとする。したがって、中心ガイド1110が示す位置は、3次元点群データの任意のxy平面における原点(つまり、(x,y)=(0,0))である。また、撮影方向をz軸の正の方向、撮影画面1000の下方向をx軸の正の方向、撮影画面1000の右方向をy軸の正の方向とする。なお、x軸は撮影ガイド1100が表す形状を左右に二分(等分)する中心線でもある。
【0022】
撮影者Mは豚Pの上方に撮影装置10を移動させて、撮影ガイド1100に豚Pの輪郭が合致するように調整した上で、撮影ボタン1300を押下することで当該豚Pを撮影することができる。これにより、撮影範囲1200内の各位置(x,y)における深度zを表す3次元点群データ{(x,y,z)}が生成される。
【0023】
ところで、上述したように、同一の豚Pを撮影する場合であっても、様々な原因(例えば、撮影者Mの撮影装置10の持ち方や豚Pが動くこと等に起因する撮影装置10の傾き等)により、撮影者間で、撮影によって得られる3次元点群データにばらつきが生じる場合がある。そこで、本実施形態に係る撮影装置10は、撮影画面1000がディスプレイ等に表示されている間、当該撮影装置10と豚Pとの相対的な位置関係が所定の条件(以下、この条件を「撮影タイミング条件」と表す。)を満たすか否かを動的に判定(つまり、所定の時間毎に繰り返し判定)し、撮影タイミング条件を満たすと判定された場合に、
図3に示す撮影タイミング枠1500を撮影画面1000上に表示する。このように、撮影タイミング枠1500が撮影画面1000上に表示されることで、最適な撮影タイミングとなったこと(つまり、撮影装置10と豚Pとの相対的な位置関係が、撮影者間でばらつきの少ない3次元点群データが得られる位置関係となったこと)が撮影者Mに通知される。なお、撮影タイミング枠1500は所定の時間経過後(例えば、1~2秒経過後など)又は撮影タイミング条件を満たさないと判定された場合に非表示となる。
【0024】
これにより、撮影タイミング枠1500が表示された時に撮影者Mが撮影ボタン1300を押下することで、撮影者間でばらつきの少ない3次元点群データを得ることができるようになる。なお、
図3に示す例では、撮影タイミング枠1500を撮影画面1000上に表示することで撮影タイミングとなったことを撮影者Mに通知したが、これは一例であって、これに限られない。例えば、撮影装置10から所定の音を出力する、撮影装置10を振動させる、撮影画面1000を点滅させる等により撮影タイミングとなったことが撮影者Mに通知されてもよい。
【0025】
なお、反転ボタン1400を押下することで、撮影者Mは、撮影ガイド1100の上下が反転させることができる(つまり、撮影画面1000の下方向が尻尾方向、上方向が頭方向となるように撮影ガイド1100を反転させることができる。)。これにより、豚Pの実際の向きに合わせて、撮影ガイド1100が表す形状(豚を上方から見た場合の輪郭を表す形状)の上下を変更することができる。
【0026】
<機能構成>
次に、本実施形態に係る撮影装置10の機能構成について、
図4を参照しながら説明する。
図4は、第一の実施形態に係る撮影装置10の機能構成の一例を示す図である。
【0027】
図4に示すように、本実施形態に係る撮影装置10は、UI制御部101と、通知部102と、撮影部103とを有する。これら各部は、撮影装置10にインストールされた1以上のプログラムが、CPU(Central Processing Unit)等のプロセッサに実行させる処理により実現される。
【0028】
UI制御部101は、撮影装置10のディスプレイ上に撮影画面1000を表示する。通知部102は、撮影画面1000が表示されている間、撮影装置10と豚Pとの相対的な位置関係が撮影タイミング条件を満たすか否かを所定の時間毎(例えば、深度の測定周期毎)に判定し、撮影タイミング条件を満たすと判定された場合に撮影タイミングとなったことを撮影者Mに通知する。撮影部103は、撮影ボタン1300が押下された場合、撮影範囲1200内の各位置(x,y)における深度zを表す3次元点群データ{(x,y,z)}を生成する。なお、撮影部103により生成された3次元点群データは、体重推定装置20に送信される。
【0029】
<撮影タイミングの通知処理>
以降では、撮影装置10のディスプレイ上には撮影画面1000がUI制御部101によって表示されているものとして、当該撮影装置10と豚Pとの相対的な位置関係が撮影タイミング条件を満たすか否か動的に判定し、この判定結果に応じて撮影タイミングを撮影者Mに通知する処理について、
図5を参照しながら説明する。
図5は、撮影タイミングの通知処理の一例を示すフローチャートである。
【0030】
通知部102は、撮影装置10と豚Pとの相対的な位置関係が撮影タイミング条件を満たすか否かを判定する(ステップS101)。なお、この判定の詳細については後述する。
【0031】
そして、撮影装置10と豚Pとの相対的な位置関係が撮影タイミング条件を満たすと判定された場合(ステップS102でYES)、通知部102は、撮影タイミングとなったことを撮影者Mに通知する(ステップS103)。すなわち、通知部102は、例えば、撮影タイミング枠1500を撮影画面1000上に表示する。ただし、これに限られず、例えば、撮影装置10と豚Pとの相対的な位置関係が撮影タイミング条件を満たすと判定された場合、撮影部103によって自動的に撮影されてもよい(つまり、撮影範囲1200内の各位置(x,y)における深度zを表す3次元点群データ{(x,y,z)}が自動的に生成されてもよい。)。
【0032】
一方で、撮影装置10と豚Pとの相対的な位置関係が撮影タイミング条件を満たすと判定されなかった場合(ステップS102でNO)、通知部102は、上記のステップS101に戻る。
【0033】
≪撮影タイミング条件の判定≫
ここで、上記のステップS101における判定の詳細について説明する。本実施形態では、
図6に示すように、撮影画面1000の撮影範囲1200内に設定された4点Q
11,Q
12,Q
21及びQ
22における深度の値を用いて、撮影装置10と豚Pとの相対的な位置関係が撮影タイミング条件を満たすか否かを判定する。
【0034】
Q11は、x軸上であって、かつ、撮影ガイド1100が表す形状の豚の肩と背中の境界付近に設定された点である。また、Q12は、x軸上であって、かつ、撮影ガイド1100が表す形状の豚の背中と臀部の境界付近に設定された点である。Q21は、y軸上の正の範囲であって、かつ、撮影ガイド1100が表す形状の豚の背中上に設定された点である。Q22は、y軸上の負の範囲であって、かつ、撮影ガイド1100が表す形状の豚の背中上に設定された点である。これは、豚の肩と背中との境界付近の深度や背中と臀部との境界付近の深度、豚の背中上の深度は、豚の姿勢の変化(例えば、豚が前屈みになる等)に対する影響が少ない(つまり、豚の姿勢の変化に対してロバスト性がある)ためである。なお、Q21及びQ22は、x軸に対して対称となる位置に設定されることが好ましい。
【0035】
図7に示すように、Q
11における深度z
11は、撮影装置10から豚Pの肩と背中の境界付近までの距離を表す。同様に、Q
12における深度z
12は、撮影装置10から豚Pの背中と臀部の境界付近までの距離を表す。また、
図8に示すように、Q
21における深度z
21は、撮影装置10から豚Pの背中の左側にある位置までの距離を表す。同様に、Q
22における深度z
22は、撮影装置10から豚Pの背中の右側にある位置までの距離を表す。
【0036】
このとき、予め設定された閾値をth1~th4として、th1≦z12/z11≦th2かつth3≦z22/z21≦th4を満たす場合に、撮影装置10と豚Pとの相対的な位置関係が撮影タイミング条件を満たすと判定する。一方で、th1≦z12/z11≦th2及びth3≦z22/z21≦th4の少なくとも一方を満たさない場合は、撮影装置10と豚Pとの相対的な位置関係が撮影タイミング条件を満たさないと判定する。ここで、th1~th4は適切な値に設定され得るが、一例として、th1は0.80~0.90程度、th2は1.00~1.10程度、th3は0.85~0.95程度、th4は1.05~1.15程度と設定することが考えられる。
【0037】
なお、本実施形態では、撮影範囲1200内に4点Q11,Q12,Q21及びQ22を設定したが、必ずしもQ21及びQ22は設定されなくてもよい。この場合、th1≦z12/z11≦th2を満たすか否かにより、撮影装置10と豚Pとの相対的な位置関係が撮影タイミング条件を満たすか否かを判定すればよい。
【0038】
≪撮影タイミング条件の判定(変形例1)≫
次に、上記のステップS101における判定の変形例1について説明する。変形例1では、
図9に示すように、撮影画面1000の撮影範囲1200内に設定された8点Q
11,Q
12,Q
13,Q
14,Q
21,Q
22,Q
23及びQ
24のそれぞれおける深度の値z
11,z
12,z
13,z
14,z
21,z
22,z
23及びz
24を用いて、撮影装置10と豚Pとの相対的な位置関係が撮影タイミング条件を満たすか否かを判定する。
【0039】
Q11及びQ13は、x軸上であって、かつ、撮影ガイド1100が表す形状の豚の肩と背中の境界付近に設定された点である。また、Q12及びQ14は、x軸上であって、かつ、撮影ガイド1100が表す形状の豚の背中と臀部の境界付近に設定された点である。Q21及びQ23は、y軸上の正の範囲であって、かつ、撮影ガイド1100が表す形状の豚の背中上に設定された点である。Q22及びQ24は、y軸上の負の範囲であって、かつ、撮影ガイド1100が表す形状の豚の背中上に設定された点である。
【0040】
このとき、予め設定された閾値をth1~th4として、th1≦z12/z11≦th2かつth3≦z22/z21≦th4かつth1≦z14/z13≦th2かつth3≦z24/z23≦th4を満たす場合に、撮影装置10と豚Pとの相対的な位置関係が撮影タイミング条件を満たすと判定する。一方で、th1≦z12/z11≦th2,th3≦z22/z21≦th4,th1≦z14/z13≦th2及びth3≦z24/z23≦th4の少なくとも1つを満たさない場合は、撮影装置10と豚Pとの相対的な位置関係が撮影タイミング条件を満たさないと判定する。
【0041】
なお、上記と同様に、必ずしもQ21,Q22,Q23及びQ24は設定されなくてもよい。また、変形例1では撮影範囲1200内に8点を設定したが、これは一例であって、更に多くの点(9つ以上の点)が設定されてもよい。
【0042】
≪撮影タイミング条件の判定(変形例2)≫
次に、上記のステップS101における判定の変形例2について説明する。変形例2では、
図10に示すように、撮影ガイド1100の内側及び外側にそれぞれ設定された2点の組(Q
11,Q
12),(Q
21,Q
22),(Q
31,Q
32)及び(Q
41,Q
42)の深度の値を用いて、撮影装置10と豚Pとの相対的な位置関係が撮影タイミング条件を満たすか否かを判定する。なお、Q
11,Q
12,Q
21,Q
22,Q
31,Q
32,Q
41及びQ
42のそれぞれおける深度の値をz
11,z
12,z
21,z
22,z
31,z
32,z
41及びz
42とする。
【0043】
Q11及びQ12は、撮影ガイド1100が表す形状の豚の左肩と背中の境界付近であって、当該撮影ガイド1100の内側及び外側にそれぞれ設定された点である。また、Q21及びQ22は、撮影ガイド1100が表す形状の豚の右肩と背中の境界付近であって、当該撮影ガイド1100の内側及び外側にそれぞれ設定された点である。同様に、Q31及びQ32は、撮影ガイド1100が表す形状の豚の背中と右臀部との境界付近であって、当該撮影ガイド1100の内側及び外側にそれぞれ設定された点である。Q41及びQ42は、撮影ガイド1100が表す形状の豚の背中と左臀部との境界付近であって、当該撮影ガイド1100の内側及び外側にそれぞれ設定された点である。
【0044】
このとき、予め設定された閾値をthとして、z12-z11≧thかつz22-z21≧thかつz32-z31≧thかつz42-z41≧thを満たす場合に、撮影装置10と豚Pとの相対的な位置関係が撮影タイミング条件を満たすと判定する。一方で、z12-z11≧th,z22-z21≧th,z32-z31≧th及びz42-z41≧thの少なくとも1つを満たさない場合は、撮影装置10と豚Pとの相対的な位置関係が撮影タイミング条件を満たさないと判定する。これは、z12-z11≧thかつz22-z21≧thかつz32-z31≧thかつz42-z41≧thを満たす場合は、豚Pの輪郭が、撮影ガイド1100に合致していると考えられるためである。ここで、thは、豚の体高よりもやや低い程度の適切な値に設定され得るが、例えば、豚の品種等に応じて、30cm~50cm程度を表す値に設定することが考えられる。
【0045】
なお、変形例2では、撮影ガイド1100の内側及び外側にそれぞれ設定された2点の組を4つ((Q11,Q12),(Q21,Q22),(Q31,Q32)及び(Q41,Q42))設定したが、これは一例であって、更に多くの2点の組(5つ以上の組)が設定されてもよい。
【0046】
[第二の実施形態]
次に、第二の実施形態について説明する。
図5のステップS103では、撮影タイミングとなったことを撮影者Mに通知することに限られず、撮影部103によって自動的に撮影されてもよい旨を説明した。そこで、本実施形態では、このような自動撮影を行う場合のより好適な実施形態について説明する。なお、本実施形態では、撮影タイミングの通知は行われず、撮影装置10と豚Pとの相対的な位置関係が所定の条件(以下、この条件を「自動撮影条件」と表す。)を満たす場合に自動で撮影を行うものである。
【0047】
<機能構成>
まず、本実施形態に係る撮影装置10の機能構成について、
図11を参照しながら説明する。
図11は、第二の実施形態に係る撮影装置10の機能構成の一例を示す図である。
【0048】
図11に示すように、本実施形態に係る撮影装置10は、UI制御部101と、判定部104と、撮影部103とを有する。これら各部は、撮影装置10にインストールされた1以上のプログラムが、CPU等のプロセッサに実行させる処理により実現される。
【0049】
UI制御部101は、撮影装置10のディスプレイ上に撮影画面1000を表示する。判定部104は、撮影画面1000が表示されている間、撮影装置10と豚Pとの相対的な位置関係が自動撮影条件を満たすか否かを所定の時間毎(例えば、深度の測定周期毎)に判定する。撮影部103は、自動撮影条件を満たすと判定された場合、撮影範囲1200内の各位置(x,y)における深度zを表す3次元点群データ{(x,y,z)}を生成する。なお、撮影部103により生成された3次元点群データは、体重推定装置20に送信される。
【0050】
<自動撮影処理>
以降では、撮影装置10のディスプレイ上には撮影画面1000がUI制御部101によって表示されているものとして、当該撮影装置10と豚Pとの相対的な位置関係が自動撮影条件を満たすか否かを動的に判定し、この判定結果に応じて自動的に撮影する処理について、
図12を参照しながら説明する。
図12は、自動撮影処理の一例を示すフローチャートである。なお、この自動撮影処理の実行が開始される前に、例えば、露光調整等の事前処理が撮影部103によって行われてもよい。
【0051】
判定部104は、撮影装置10と豚Pとの相対的な位置関係が自動撮影条件を満たすか否かを判定する(ステップS201)。なお、この判定の詳細については後述する。
【0052】
そして、撮影装置10と豚Pとの相対的な位置関係が自動撮影条件を満たすと判定された場合(ステップS202でYES)、撮影部103は、撮影範囲1200内を撮影する(ステップS203)。これにより、撮影範囲1200内の各位置(x,y)における深度zを表す3次元点群データ{(x,y,z)}が生成される。
【0053】
一方で、撮影装置10と豚Pとの相対的な位置関係が自動撮影条件を満たすと判定されなかった場合(ステップS202でNO)、判定部104は、上記のステップS201に戻る。
【0054】
≪自動撮影条件の判定≫
ここで、上記のステップS201における判定の詳細について説明する。本実施形態では、以下の条件1~条件3を順に判定し、全ての条件を満たす場合に自動撮影条件を満たすと判定する。
【0055】
条件1:豚Pの尻(尻尾の付け根部分)の輪郭が検知されたこと
条件2:豚Pの側面の輪郭が検知されたこと
条件3:豚Pに対して撮影装置10の傾きが小さいこと
以下、上記の条件1~条件3とそれらの条件を満たした場合の表示例について説明する。
【0056】
・条件1
本実施形態では、
図13の左図に示すように、撮影画面1000の撮影範囲1200内に設定された直線Lの端点における深度の値を用いて、豚Pの尻(尻尾の付け根部分)の輪郭を検知する。
【0057】
直線Lは、x軸上であって、かつ、撮影ガイド1100が表す形状の尻部分の境界を跨ぐように設定される。なお、直線Lの中点が撮影ガイド1100上にあることが好ましいが、必ずしも撮影ガイド1100上にあることを要しない。また、直線Lの長さは適宜設定されるが、例えば、撮影ガイド1100が表す豚の体長の1/10~1/8程度の長さが好ましい。これは、直線Lの長さが長すぎると誤検知が発生しやすくなる一方で、短すぎると検知漏れが発生しやすくなるためである。
【0058】
直線Lの端点のうち、x座標値が大きい方の端点(つまり、撮影ガイド1100の内側にある端点)における深度の値をz
1、x座標値が小さい方の端点(つまり、撮影ガイド1100の外側にある端点)における深度の値をz
2とする。このとき、予め設定された閾値をthとして、z
2-z
1≧thを満たす場合に、豚Pの尻(尻尾の付け根部分)の輪郭が検知されたと判定する。ここで、この閾値thは、
図10で説明した閾値thと同様としてよい。
【0059】
なお、
図13の左図では、直線Lを設定したが、これに限られず、例えば、直線Lの端点に相当する点の組を設定し、これらの点における深度の値を用いて豚Pの尻の輪郭を検知してもよい。
【0060】
また、
図13の左図では直線Lを1本のみ設定したが、複数の直線を設定し、これらの各直線の端点における深度の値を用いて豚Pの尻の輪郭を検知してもよい。この場合、例えば、所定の割合以上の本数の直線で輪郭が検知されたとき(つまり、所定の割合以上の直線で、撮影ガイド1100の外側にある端点と内側にある端点との深度差が閾値以上であると判定されたとき)に、豚Pの尻の輪郭が検知されたとしてもよい。
【0061】
そして、豚Pの尻の輪郭が検知された場合、
図13の右図に示すように、UI制御部101は、撮影範囲1200内の豚Pの尻に相当する位置に点1600を表示する。この点1600により、撮影者Mは、豚Pの尻(尻尾の付け根部分)の輪郭が検知されたことを知ることができる。
【0062】
・条件2
本実施形態では、
図14の左図に示すように、撮影画面1000の撮影範囲1200内に設定された複数の直線L
1,1~L
1,23及びL
2,1~L
2,23の端点における深度の値を用いて、豚Pの側面の輪郭を検知する。
【0063】
直線L
1,1~L
1,23は、y軸と平行であって、かつ、少なくとも一部の直線が、撮影ガイド1100が表す形状の右側面部分の境界を跨ぐように設定される。同様に、直線L
2,1~L
2,23は、y軸と平行であって、かつ、少なくとも一部の直線が、撮影ガイド1100が表す形状の左側面部分の境界を跨ぐように設定される。なお、
図14の左図では左側面及び右側面にそれぞれ23本の直線が設定されているが、これは一例であって、任意の本数の直線を設定することができる。また、各直線の長さは適宜設定されるが、例えば、撮影ガイド1100が表す豚の体幅の1/5~1/3程度の長さが好ましい。これは、直線の長さが長すぎると誤検知が発生しやすくなる一方で、短すぎると検知漏れが発生しやすくなるためである。
【0064】
直線L1,k(k=1,・・・,23)の端点のうち、y座標値が大きい方の端点(つまり、撮影ガイド1100の内側にある端点)における深度の値をz1,k
(1)、y座標値が小さい方の端点(つまり、撮影ガイド1100の外側にある端点)における深度の値をz2,k
(1)とする。このとき、予め設定された閾値をthとして、z2,k
(1)-z1,k
(1)≧thを満たすkの割合が所定の割合以上である場合に、豚Pの右側面の輪郭が検知されたと判定する。
【0065】
同様に、直線L2,k(k=1,・・・,23)の端点のうち、y座標値が小さい方の端点(つまり、撮影ガイド1100の内側にある端点)における深度の値をz1,k
(2)、y座標値が大きい方の端点(つまり、撮影ガイド1100の外側にある端点)における深度の値をz2,k
(2)とする。このとき、予め設定された閾値をthとして、z2,k
(2)-z1,k
(2)≧thを満たすkの割合が所定の割合以上である場合に、豚Pの左側面の輪郭が検知されたと判定する。
【0066】
ここで、上記の閾値thは、
図10で説明した閾値thと同様としてよい。また、上記の所定の割合は任意に設定することが可能であるが、少なくとも0.5以上(つまり、5割以上)の値が設定されることが好ましい(より好ましくは、0.6~0.8程度)。
【0067】
そして、豚Pの左側面の輪郭と右側面の輪郭とが検知された場合、豚Pの側面の輪郭が検知されたものとして、
図14の右図に示すように、UI制御部101は、撮影範囲1200内に枠1700を表示する。この枠1700により、撮影者Mは、豚Pの側面の輪郭が検知されたことを知ることができる。
【0068】
なお、
図14の左図では一部の直線が撮影ガイド1100の境界を跨いでないが、これは、必ずしも豚Pが撮影ガイド1100内に収まらないことを考慮したものである。ただし、全ての直線が撮影ガイド1100を跨ぐように設定されてもよい。
【0069】
・条件3
この条件3は、
図6で説明した撮影タイミング条件に相当する。したがって、
図6で説明した撮影タイミング条件を満たす場合、豚Pに対して撮影装置10の傾きが小さいと判定する。これは、
図6で説明した閾値th
1~th
4が適切に設定されることで、豚Pに対して撮影装置10の傾きは所定の傾き以下となるためである。
【0070】
そして、豚Pに対して撮影装置10の傾きが小さいと判定された場合、
図15に示すように、UI制御部101は、撮影範囲1200内に枠1800を表示する。この枠1800により、撮影者Mは、豚Pに対して撮影装置10の傾きが小さいことを知ることができると共に間もなく自動的に撮影されることを知ることができる。
【0071】
<障害物表示及び輪郭>
ここで、上記の条件1及び2では豚Pの輪郭を検知したが、例えば、障害物(壁等も含む)と豚Pとが接触等しているため輪郭が検知でないことがある。このため、このような場合には、輪郭が検知できなかった箇所に所定の表示を行い、障害物があることを撮影者Mに通知してもよい。例えば、
図16に示すように、輪郭が検知できなかった箇所に「×」印1900を表示し、障害物があることを撮影者Mに通知してもよい。
【0072】
一方で、輪郭が検知できた箇所にも所定の表示を行い、輪郭が検知できたことを撮影者Mに通知してもよい。例えば、
図16に示すように、輪郭が検知できた箇所に点2101~2105及び2201~2209を表示し、輪郭が検知できたことを撮影者Mに通知してもよい。
【0073】
これにより、撮影者Mは、障害物があるために輪郭が検知できなかった箇所と問題なく輪郭が検知できた箇所とを知ることが可能となる。
【0074】
<まとめ>
以上のように、第一の実施形態に係る撮影装置10は、豚Pの体重推定に用いられる3次元点群データを得ることを目的として当該豚Pを撮影する際に、当該撮影装置10と当該豚Pとの相対的な位置関係が所定の条件を満たすか否かを動的に判定し、当該所定の条件を満たす場合は最適な撮影タイミングである旨を撮影者Mに通知する(又は、自動的に撮影する)。これにより、第一の実施形態に係る撮影装置10は、撮影者間でばらつきの少ない3次元点群データを得ることが可能となる。したがって、体重推定装置20で豚Pの体重を推定する際に、その推定結果のばらつきも抑制することが可能となり、再現性の高い体重推定を実現することが可能となる。
【0075】
また、第二の実施形態に係る撮影装置10は、豚Pの体重推定に用いられる3次元点群データを得ることを目的として当該豚Pを撮影する際に、当該撮影装置10と当該豚Pとの相対的な位置関係が所定の条件を満たすか否かを動的に判定し、当該所定の条件を満たす場合は自動的に撮影する。これにより、第二の実施形態に係る撮影装置10は、第一の実施形態よりも簡便に、撮影者間でばらつきの少ない3次元点群データを得ることが可能となる。したがって、第一の実施形態と同様に、体重推定装置20で豚Pの体重を推定する際に、その推定結果のばらつきも抑制することが可能となり、再現性の高い体重推定を実現することが可能となる。
【0076】
本発明は、具体的に開示された上記の実施形態に限定されるものではなく、特許請求の範囲の記載から逸脱することなく、種々の変形や変更、既知の技術との組み合わせ等が可能である。
【0077】
本願は、日本国に2020年3月26日に出願された基礎出願2020-055979号に基づくものであり、その全内容はここに参照をもって援用される。
【符号の説明】
【0078】
1 体重推定システム
10 撮影装置
20 体重推定装置
101 UI制御部
102 通知部
103 撮影部
104 判定部