(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-30
(45)【発行日】2024-05-10
(54)【発明の名称】個体検出システム、撮影ユニット、個体検出方法、およびコンピュータプログラム
(51)【国際特許分類】
G06T 7/60 20170101AFI20240501BHJP
A01K 61/95 20170101ALI20240501BHJP
G06M 7/00 20060101ALI20240501BHJP
【FI】
G06T7/60 110
A01K61/95
G06M7/00 301Q
(21)【出願番号】P 2020053104
(22)【出願日】2020-03-24
【審査請求日】2023-02-28
【新規性喪失の例外の表示】特許法第30条第2項適用 研究集会名 :情報処理学会第82回全国大会 主催者 :一般社団法人情報処理学会 開催日 :2020年3月5日~7日 〔刊行物等〕 刊行物名 :情報処理学会第82回全国大会講演論文集 発行者 :一般社団法人情報処理学会 発行日 :2020年2月20日
(73)【特許権者】
【識別番号】504147254
【氏名又は名称】国立大学法人愛媛大学
(74)【代理人】
【識別番号】100125117
【氏名又は名称】坂田 泰弘
(74)【代理人】
【識別番号】100086933
【氏名又は名称】久保 幸雄
(72)【発明者】
【氏名】小林 真也
【審査官】千葉 久博
(56)【参考文献】
【文献】特開2007-263913(JP,A)
【文献】特開2002-8040(JP,A)
【文献】特開平5-108822(JP,A)
【文献】国際公開第2019/172363(WO,A1)
【文献】国際公開第2019/045091(WO,A1)
【文献】新地辰朗, 外2名,“魚行動モデルによる群行動パターンのフラクタル性評価”,情報処理学会論文誌,日本,社団法人情報処理学会,2001年06月15日,第42巻, 第6号,p.1592-1600
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/60
A01K 61/95
G06M 7/00
(57)【特許請求の範囲】
【請求項1】
N台(N≧3)のカメラそれぞれが特定の区域を撮影した画像を取得する取得手段と、
前記N台のカメラのうちの第u
(1≦u≦N)のカメラそれぞれが
同時に前記区域を撮影することによって得られた第uの画像に写っている第uの被写体それぞれの、前記第uの画像における位置である第uの画像内位置を検出する画像内位置検出手段と、
前記第uの画像内位置と、前記第uのカメラの、前記N台のカメラの存在する三次元空間における位置である第uの配置位置と、に基づいて、前記第uの配置位置と、前記第uの被写体の、前記三次元空間における位置であると推定される第uの推定位置と、を通過する第uの直線を算出し、算出した第1ないし第Nの直線それぞれの任意の1本ずつからなる1つまたは複数の組合せ
のうちの、構成要素である前記第1ないし第Nの直線の任意の2本のペアのうち最短距離が所定の長さ未満であるものの数が所定の数以上である組合せを、前記区域に存在する個体
として検出する、個体検出手段と、
を有することを特徴とする個体検出システム。
【請求項2】
前記個体は、同じ時期に孵化した同じ種類の魚であり、
前記所定の長さは、前記魚の行動の特性に基づいて定められる、
請求項
1に記載の個体検出システム。
【請求項3】
前記特性は、前記魚の2匹同士の距離が前記魚の体長の0.3倍未満にならないように間隔を空ける特性であり、
前記所定の長さは、前記体長の0.3倍である、
請求項
2に記載の個体検出システム。
【請求項4】
正三角形状に組まれたフレームと、
前記フレームの各辺の中点の位置に、当該フレームの重心が撮影方向になるように1台ずつ配置される3台のカメラ
それぞれが特定の区域を撮影した画像を取得する取得手段と、
前記3台のカメラのうちの第u
(1≦u≦3)のカメラそれぞれが
同時に前記区域を撮影することによって得られた第uの画像に写っている第uの被写体それぞれの、前記第uの画像における位置である第uの画像内位置を検出する画像内位置検出手段と、
前記第uの画像内位置と、前記第uのカメラの、前記
3台のカメラの存在する三次元空間における位置である第uの配置位置と、に基づいて、前記第uの配置位置と、前記第uの被写体の、前記三次元空間における位置であると推定される第uの推定位置と、を通過する第uの直線を算出し、算出した第1ないし第
3の直線それぞれの任意の1本ずつからなる1つまたは複数の組合せに基づいて、前記区域に存在する個体を検出する、個体検出手段と、
を有することを特徴とする個体検出システム。
【請求項5】
正四面体状に組まれたフレームと、
前記フレームの各辺の中点の位置に、当該フレームの重心が撮影方向になるように1台ずつ配置される6台のカメラ
それぞれが特定の区域を撮影した画像を取得する取得手段と、
前記
6台のカメラのうちの第u
(1≦u≦6)のカメラそれぞれが
同時に前記区域を撮影することによって得られた第uの画像に写っている第uの被写体それぞれの、前記第uの画像における位置である第uの画像内位置を検出する画像内位置検出手段と、
前記第uの画像内位置と、前記第uのカメラの、前記
6台のカメラの存在する三次元空間における位置である第uの配置位置と、に基づいて、前記第uの配置位置と、前記第uの被写体の、前記三次元空間における位置であると推定される第uの推定位置と、を通過する第uの直線を算出し、算出した第1ないし第
6の直線それぞれの任意の1本ずつからなる1つまたは複数の組合せに基づいて、前記区域に存在する個体を検出する、個体検出手段と、
を有することを特徴とする個体検出システム。
【請求項6】
正四面体の各辺の中点の位置に、当該正四面体の重心が撮影方向になるように1台ずつ配置される6台のカメラ
それぞれが特定の区域を撮影した画像を取得する取得手段と、
前記6台のカメラのうちの第u(1≦u≦6)のカメラの撮影範囲の中心と、前記撮影範囲における、当該第uのカメラ以外の1台の位置と、のズレに基づいて、当該第uのカメラそれぞれが同時に前記区域を撮影することによって得られた第uの画像を調整する調整手段と、
調整された前記第uの画像に写っている第uの被写体それぞれの、
当該調整された第uの画像における位置である第uの画像内位置を検出する画像内位置検出手段と、
前記第uの画像内位置と、前記第uのカメラの、前記
6台のカメラの存在する三次元空間における位置である第uの配置位置と、に基づいて、前記第uの配置位置と、前記第uの被写体の、前記三次元空間における位置であると推定される第uの推定位置と、を通過する第uの直線を算出し、算出した第1ないし第
6の直線それぞれの任意の1本ずつからなる1つまたは複数の組合せに基づいて、前記区域に存在する個体を検出する、個体検出手段と、
を有することを特徴とする個体検出システム。
【請求項7】
N台(N≧3)のカメラそれぞれが、飼育領域の一部分である特定の区域を同時に撮影した画像を取得する取得手段と、
前記N台のカメラによって前記区域が撮影されるごとに、当該N台のカメラのうちの第uのカメラそれぞれが前記区域を撮影することによって得られた第uの画像に写っている第uの被写体それぞれの、前記第uの画像における位置である第uの画像内位置を検出する画像内位置検出手段と、
前記N台のカメラによって前記区域が撮影されるごとに、前記第uの画像内位置と、前記第uのカメラの、
当該N台のカメラの存在する三次元空間における位置である第uの配置位置と、に基づいて、前記第uの配置位置と、前記第uの被写体の、前記三次元空間における位置であると推定される第uの推定位置と、を通過する第uの直線を算出し、算出した第1ないし第Nの直線それぞれの任意の1本ずつからなる1つまたは複数の組合せに基づいて、
当該区域に存在する個体を検出する、個体検出手段と、
前記N台のカメラによって前記区域が撮影されるごとの、前記個体検出手段によって検出された前記個体の数と、前記飼育領域と前記区域との比と、に基づいて算出される前記飼育領域に存在すると推定される個体の総数の平均値を算出し、(K-1)回目までの前記平均値とK回目までの前記平均値との比が所定の値以下になったら、当該K回目までの前記平均値を推定総数に決定する、個体数推定手段と、
を有することを特徴とする個体検出システム。
【請求項8】
正四面体状に組まれたフレームと、
前記フレームの各辺の中点の位置に、前記フレームの重心が撮影方向になるように取り付けられた6台のカメラと、
を有することを特徴とする撮影ユニット。
【請求項9】
特定の区域をN台(N≧3)のカメラ
それぞれが同時に撮影した画像を取得し、
前記N台のカメラのうちの第u(1≦u≦N)のカメラによって得られた第uの画像に写っている第uの被写体それぞれの、前記第uの画像における位置である第uの画像内位置を検出し、
前記第uの画像内位置と、前記第uのカメラの、前記N台のカメラの存在する三次元空間における位置である第uの配置位置と、に基づいて、前記第uの配置位置と、前記第uの被写体の、前記三次元空間における位置であると推定される第uの推定位置と、を通過する第uの直線を算出し、算出した第1ないし第Nの直線それぞれの任意の1本ずつからなる1つまたは複数の組合せ
のうちの、構成要素である前記第1ないし第Nの直線の任意の2本のペアのうち最短距離が所定の長さ未満であるものの数が所定の数以上である組合せを、前記区域に存在する個体
として検出する、
ことを特徴とする個体検出方法。
【請求項10】
正三角形状に組まれたフレームと、前記フレームの各辺の中点の位置に当該フレームの重心が撮影方向になるように1台ずつ配置される3台のカメラと、を用意し、
特定の区域を
前記3台のカメラによって同時に撮影し、
前記
3台のカメラのうちの第u(1≦u≦
3)のカメラによって得られた第uの画像に写っている第uの被写体それぞれの、前記第uの画像における位置である第uの画像内位置を検出し、
前記第uの画像内位置と、前記第uのカメラの、前記
3台のカメラの存在する三次元空間における位置である第uの配置位置と、に基づいて、前記第uの配置位置と、前記第uの被写体の、前記三次元空間における位置であると推定される第uの推定位置と、を通過する第uの直線を算出し、算出した第1ないし第
3の直線それぞれの任意の1本ずつからなる1つまたは複数の組合せに基づいて、前記区域に存在する個体を検出する、
ことを特徴とする個体検出方法。
【請求項11】
正四面体状に組まれたフレームと、前記フレームの各辺の中点の位置に当該フレームの重心が撮影方向になるように1台ずつ配置される6台のカメラと、を用意し、
特定の区域を
前記6台のカメラによって同時に撮影し、
前記6台のカメラのうちの第u(1≦u≦
6)のカメラによって得られた第uの画像に写っている第uの被写体それぞれの、前記第uの画像における位置である第uの画像内位置を検出し、
前記第uの画像内位置と、前記第uのカメラの、前記
6台のカメラの存在する三次元空間における位置である第uの配置位置と、に基づいて、前記第uの配置位置と、前記第uの被写体の、前記三次元空間における位置であると推定される第uの推定位置と、を通過する第uの直線を算出し、算出した第1ないし第
6の直線それぞれの任意の1本ずつからなる1つまたは複数の組合せに基づいて、前記区域に存在する個体を検出する、
ことを特徴とする個体検出方法。
【請求項12】
正四面体の各辺の中点の位置に、当該正四面体の重心が撮影方向になるように1台ずつ配置される6台のカメラ
それぞれが特定の区域を撮影した画像を取得し、
前記6台のカメラのうちの第u(1≦u≦6)のカメラの撮影範囲の中心と、前記撮影範囲における、当該第uのカメラ以外の1台の位置と、のズレに基づいて、当該第uのカメラそれぞれが同時に前記区域を撮影することによって得られた第uの画像を調整し、
調整された前記第uの画像に写っている第uの被写体それぞれの、
当該調整された第uの画像における位置である第uの画像内位置を検出し、
前記第uの画像内位置と、前記第uのカメラの、前記
6台のカメラの存在する三次元空間における位置である第uの配置位置と、に基づいて、前記第uの配置位置と、前記第uの被写体の、前記三次元空間における位置であると推定される第uの推定位置と、を通過する第uの直線を算出し、算出した第1ないし第
6の直線それぞれの任意の1本ずつからなる1つまたは複数の組合せに基づいて、前記区域に存在する個体を検出する、
ことを特徴とする個体検出方法。
【請求項13】
N台(N≧3)のカメラ
それぞれが、飼育領域の一部分である特定の区域を同時に撮影した画像を取得し、
前記N台のカメラによって前記区域が撮影されるごとに、当該N台のカメラのうちの第u(1≦u≦N)のカメラによって得られた第uの画像に写っている第uの被写体それぞれの、前記第uの画像における位置である第uの画像内位置を検出し、
前記N台のカメラによって前記区域が撮影されるごとに、前記第uの画像内位置と、前記第uのカメラの、
当該N台のカメラの存在する三次元空間における位置である第uの配置位置と、に基づいて、前記第uの配置位置と、前記第uの被写体の、前記三次元空間における位置であると推定される第uの推定位置と、を通過する第uの直線を算出し、算出した第1ないし第Nの直線それぞれの任意の1本ずつからなる1つまたは複数の組合せに基づいて、前記区域に存在する個体を検出
し、
前記N台のカメラによって前記区域が撮影されるごとの、検出された前記個体の数と、前記飼育領域と前記区域との比と、に基づいて算出される当該区域を含む飼育領域に存在すると推定される個体の総数の平均値を算出し、(K-1)回目までの前記平均値とK回目までの前記平均値との比が所定の値以下になったら、当該K回目までの前記平均値を推定総数に決定する、
ことを特徴とする個体検出方法。
【請求項14】
特定の区域に存在する個体を検出するためのコンピュータに用いられるコンピュータプログラムであって、
前記コンピュータに、
前記区域を同時に撮影するためのN台(N≧3)のカメラのうちの第u(1≦u≦N)のカメラそれぞれが前記区域を撮影することによって得られた第uの画像に写っている第uの被写体それぞれの、前記第uの画像における位置である第uの画像内位置を検出する処理を実行させ、
前記第uの画像内位置と、前記第uのカメラの、前記N台のカメラの存在する三次元空間における位置である第uの配置位置と、に基づいて、前記第uの配置位置と、前記第uの被写体の、前記三次元空間における位置であると推定される第uの推定位置と、を通過する第uの直線を算出し、算出した第1ないし第Nの直線それぞれの任意の1本ずつからなる1つまたは複数の組合せ
のうちの、構成要素である前記第1ないし第Nの直線の任意の2本のペアのうち最短距離が所定の長さ未満であるものの数が所定の数以上である組合せを、前記個体
として検出する処理を実行させる、
ことを特徴とするコンピュータプログラム。
【請求項15】
特定の区域に存在する個体を検出するためのコンピュータに用いられるコンピュータプログラムであって、
前記コンピュータに、
正四面体の各辺の中点の位置に、当該正四面体の重心が撮影方向になるように1台ずつ配置される6台のカメラそれぞれが前記区域を撮影した画像を取得する処理を実行させ、
前記6台のカメラのうちの第u(1≦u≦6)のカメラの撮影範囲の中心と、前記撮影範囲における、当該第uのカメラ以外の1台の位置と、のズレに基づいて、当該第uのカメラそれぞれが同時に前記区域を撮影することによって得られた第uの画像を調整する処理を実行させ、
調整された前記第uの画像に写っている第uの被写体それぞれの、
当該調整された第uの画像における位置である第uの画像内位置を検出する処理を実行させ、
前記第uの画像内位置と、前記第uのカメラの、前記
6台のカメラの存在する三次元空間における位置である第uの配置位置と、に基づいて、前記第uの配置位置と、前記第uの被写体の、前記三次元空間における位置であると推定される第uの推定位置と、を通過する第uの直線を算出し、算出した第1ないし第
6の直線それぞれの任意の1本ずつからなる1つまたは複数の組合せに基づいて前記個体を検出する処理を実行させる、
ことを特徴とするコンピュータプログラム。
【請求項16】
飼育領域に存在する個体
の数を
推定するためのコンピュータに用いられるコンピュータプログラムであって、
前記コンピュータに、
N台(N≧3)のカメラ
それぞれが前記飼育領域の一部分である特定の区域を同時に撮影した画像を取得する処理を実行させ、
前記N台のカメラによって前記区域が撮影されるごとに、当該N台のカメラのうちの第u(1≦u≦N)のカメ
ラによって得られた第uの画像に写っている第uの被写体それぞれの、前記第uの画像における位置である第uの画像内位置を検出する処理を実行させ、
前記N台のカメラによって前記区域が撮影されるごとに、前記第uの画像内位置と、前記第uのカメラの、前記N台のカメラの存在する三次元空間における位置である第uの配置位置と、に基づいて、前記第uの配置位置と、前記第uの被写体の、前記三次元空間における位置であると推定される第uの推定位置と、を通過する第uの直線を算出し、算出した第1ないし第Nの直線それぞれの任意の1本ずつからなる1つまたは複数の組合せに基づいて個体を検出する処理を実行さ
せ、
前記N台のカメラによって前記区域が撮影されるごとの、検出された個体の数と、前記飼育領域と前記区域との比と、に基づいて算出される前記飼育領域に存在すると推定される個体の総数の平均値を算出し、(K-1)回目までの前記平均値とK回目までの前記平均値との比が所定の値以下になったら、当該K回目までの前記平均値を推定総数に決定する処理を実行させる、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、生簀または水槽などで飼育されている稚魚などの個体を検出する技術に関する。
【背景技術】
【0002】
近年、世界的な魚食ブームの影響で、世界の水産物の消費量が年々増加している。消費量の増加に伴って、水産資源の減少および枯渇が危惧されている。そこで、漁船漁業と比べて天然資源への影響が小さく安定して魚を供給することのできる養殖漁業への期待が高まっている。
【0003】
養殖漁業を効率的に行うためには、給餌の量を適切に決定する必要がある。給餌の量が少なすぎると、魚が十分に成長しないことがある。魚種によっては、共食いが発生することもある。一方、給餌の量が多すぎると、食べ残しの餌によって水質が悪化しやすくなる。また、餌代の増加にも繋がる。養殖漁業で掛かる支出のうち6~7割が餌代であり、給餌の量を適切にすることで養殖漁業で掛かる支出を抑えることができる.
給餌の量をより適切にするには、生簀または水槽などの飼育領域で飼っている魚の固体数を正確に把握する必要がある。従来は、漁業者自身が飼育領域を目視し、経験および勘で判断している。よって、手間が掛かるし、誤差が生まれやすい。
【0004】
または、次のような、魚の固体を計数する技術が提案されている。非特許文献1に記載される技術によると、稚魚の水槽への投入時または沖だし時に、パイプを流れる魚を計数する。
【先行技術文献】
【非特許文献】
【0005】
【文献】NECソリューションイノベータ株式会社,「NECソリューションイノベータ、水産養殖業向け「NECフィッシュカウンター」のサービス提供を開始」,https://www.nec-solutioninnovators.co.jp/press/20150317/index.html,2020年3月10日検索
【発明の概要】
【発明が解決しようとする課題】
【0006】
ところで、特に、稚魚は、成魚に比べて育成が安定せず、かつ、共食いが発生しやすいので、個体数が変動しやすい。さらに、成魚よりも成長が早く、1匹当たりの餌の量の変化が大きい。そのため,生簀または水槽などの飼育領域で稚魚が飼育されている場合は、個体数をより正確にかつ頻繁に把握することが重要である。
【0007】
しかし、非特許文献1に記載される技術によると、飼育領域への稚魚の投入時または沖だし時にしか計数することができないので、給餌の量を適切に決定するための情報を十分に得ることができない。
【0008】
本発明は、このような問題点に鑑み、飼育領域から取り出すことなく稚魚などの個体の数を従来よりも正確に把握できるようにすることを目的とする。
【課題を解決するための手段】
【0009】
本発明の一形態に係る個体検出システムは、N台(N≧3)のカメラそれぞれが特定の区域を撮影した画像を取得する取得手段と、前記N台のカメラのうちの第u(1≦u≦N)のカメラそれぞれが同時に前記区域を撮影することによって得られた第uの画像に写っている第uの被写体それぞれの、前記第uの画像における位置である第uの画像内位置を検出する画像内位置検出手段と、前記第uの画像内位置と、前記第uのカメラの、前記N台のカメラの存在する三次元空間における位置である第uの配置位置と、に基づいて、前記第uの配置位置と、前記第uの被写体の、前記三次元空間における位置であると推定される第uの推定位置と、を通過する第uの直線を算出し、算出した第1ないし第Nの直線それぞれの任意の1本ずつからなる1つまたは複数の組合せのうちの、構成要素である前記第1ないし第Nの直線の任意の2本のペアのうち最短距離が所定の長さ未満であるものの数が所定の数以上である組合せを、前記区域に存在する個体として検出する、個体検出手段と、を有する。
【0010】
好ましくは、前記個体は、同じ時期に孵化した同じ種類の魚であり、前記所定の長さは、前記魚の行動の特性に基づいて定められる。
【0011】
または、前記特性は、前記魚の2匹同士の距離が前記魚の体長の0.3倍未満にならないように間隔を空ける特性であり、前記所定の長さは、前記体長の0.3倍である。
【発明の効果】
【0012】
本発明によると、飼育領域の特定の区域にいる稚魚などの個体の数を、飼育領域から取り出すことなく従来よりも正確に把握することができる。したがって、飼育領域にいる個体の数を、飼育領域の体積および特定の区域の体積に基づいて従来よりも正確にすることができる。
【図面の簡単な説明】
【0013】
【
図1】計数システムの全体的な構成の例を示す図である。
【
図2】メインコンピュータのハードウェア構成の例を示す図である。
【
図3】メインコンピュータの機能的構成の例を示す図である。
【
図4】水中を撮影した入力画像およびその二値画像の例を示す図である。
【
図7】水槽およびデジタルカメラの配置の例を示す斜視図である。
【
図8】デジタルカメラの位置関係の例を示す平面図である。
【
図12】2つの直線の最短距離に対応する線分の例を示す図である。
【
図13】デジタルカメラから見て2匹の稚魚が重なった場合の例を示す図である。
【
図14】2台のデジタルカメラを用いて稚魚の三次元位置を検出する場合の例を説明するための図である。
【
図15】稚魚の配置のバリエーションの例を示す図である。
【
図16】3台のデジタルカメラを用いて稚魚の三次元位置を検出する場合のメリットを説明するための図である。
【
図17】キャリブレーションの例を説明するための図である。
【
図18】3台のデジタルカメラと稚魚計数領域との位置関係の例を示す図である。
【
図19】メインコンピュータの全体的な処理の流れの例を説明するフローチャートである。
【発明を実施するための形態】
【0014】
<1> 概要
図1は、計数システム1の全体的な構成の例を示す図である。
図2は、メインコンピュータ10のハードウェア構成の例を示す図である。
図3は、メインコンピュータ10の機能的構成の例を示す図である。
【0015】
計数システム1は、生簀または水槽などの飼育領域で飼育されている稚魚を計数するシステムであって、
図1に示すように、メインコンピュータ10、3台以上のデジタルカメラ12、および通信回線14などによって構成される。
【0016】
メインコンピュータ10および各デジタルカメラ12は、通信回線14を介して通信することができる。通信回線14として、イーサネット規格またはUSB(Universal Serial Bus)規格などの有線回線が用いられる。または、Wi-Fi規格またはBluetooth規格などの無線回線が用いられる。イーサネットおよびBluetoothは、登録商標である。
【0017】
デジタルカメラ12は、通信機能を有する水中用のデジタルカメラ(水中カメラ)であって、飼育領域の様子を撮影し画像データを生成するために用いられる。生成された画像データは、通信回線14を介してメインコンピュータ10へ送信される。デジタルカメラ12の視野角は、縦横ともにθであり、デジタルカメラ12の解像度は、px×pyである。以下、各デジタルカメラ12を「デジタルカメラ12A」、「デジタルカメラ12B」、「デジタルカメラ12C」、…、と区別して記載することがある。
【0018】
メインコンピュータ10は、デジタルカメラ12から送信されてきた画像データに基づいて稚魚を計数する。メインコンピュータ10として、デスクトップコンピュータまたはラップトップ型コンピュータが用いられる。以下、メインコンピュータ10としてラップトップ型コンピュータが用いられる場合を例に説明する。
【0019】
メインコンピュータ10は、
図2に示すように、メインプロセッサ10a、RAM10b、ROM10c、補助記憶装置10d、ディスプレイ10e、入出力インタフェース10f、キーボード10g、およびポインティングデバイス10hなどによって構成される。
【0020】
ROM10cまたは補助記憶装置10dには、オペレーティングシステムのほか種々のプログラムがインストールされている。特に、本実施形態では、プログラムの1つとして稚魚計数プログラム10Pがインストールされている。補助記憶装置10dとして、ハードディスクまたはSSD(Solid State Drive)などが用いられる。
【0021】
稚魚計数プログラム10Pは、
図3に示す学習データ記憶部101、機械学習部102、学習済モデル記憶部103、稚魚検出部104、三次元位置算出部105、三次元位置記憶部106、画像補正部107、および個体数推定部108などの機能を実現するためのプログラムである。各機能については、後に順次、説明する。
【0022】
RAM10bは、メインコンピュータ10のメインメモリである。RAM10bには、オペレーティングシステムのほか稚魚計数プログラム10Pなどのプログラムがロードされる。
【0023】
メインプロセッサ10aは、RAM10bにロードされたプログラムを実行する。メインプロセッサ10aとして、GPU(Graphics Processing Unit)またはCPU(Central Processing Unit)などが用いられる。
【0024】
ディスプレイ10eは、液晶ディスプレイまたは有機EL(Electro Luminescence)ディスプレイなどのフラット型ディスプレイであって、メインプロセッサ10aによる演算結果などを表示する。
【0025】
入出力インタフェース10fは、デジタルカメラ12との間でデータをやり取りするための通信装置である。入出力インタフェース10fとして、デジタルカメラ12との通信の規格に応じた通信装置が用いられる。例えば、デジタルカメラ12との通信の規格がイーサネット規格であれば、入出力インタフェース10fとしてNIC(Network Interface Card)が用いられる。
【0026】
キーボード10gおよびポインティングデバイス10hは、作業者がメインコンピュータ10に対してコマンドまたはデータを入力するために用いられる。
【0027】
計数システム1によると、飼育領域から取り出すことなく稚魚の個体数を従来よりも正確に求めることができる。以下、この仕組みについて説明する。
【0028】
<2> 準備
〔学習済モデルの生成〕
図4は、水中を撮影した入力画像およびその二値画像の例を示す図である。
図5は、学習データ40の例を示す図である。
図6は、機械学習の例を示す図である。
【0029】
従来、デジタルカメラで水槽内の様子を撮影した画像(入力画像)から稚魚を計数する技術として、稚魚数計数システムが提案されている(横田蓮, 藤橋卓也, 遠藤慶一, 黒田久泰, 小林真也, “養殖漁業の生産量安定化を目的とした稚魚数計数システムに関する研究”, 情報処理学会第81 回全国大会講演論文集(4), pp.711-712, (2019).)。
【0030】
稚魚数計数システムは、デジタルカメラとして1台の水中カメラを水槽内に設置し、背景差分およびラベリングを使用して稚魚を認識し計数する。背景差分の処理において、背景モデル推定アルゴリズムとして採用されている混合ガウス分布(島田敬士,有田大作,谷口倫一郎,“混合ガウス分布による動的背景モデルの分布数増減法”,http://hdl.handle.net/2324/5948)を用いて一定時間ごとに背景モデルを更新する。
【0031】
しかし、稚魚数計数システムによると、入力画像内の一部の稚魚を検出することができないことがある。検出することができないケースとして、稚魚がデジタルカメラから遠い場合、および、デジタルカメラから見て稚魚が他の稚魚と重なる場合が挙げられる。
【0032】
具体的には、
図4(A)の入力画像を稚魚数計数システムによって処理を施すと、
図4(B)のような二値画像が得られる。二値画像の黒い部分が稚魚の画像であり、白い部分が背景である。
【0033】
しかし、デジタルカメラから遠い稚魚は、部分画像E1のように小さく表われるので、検出される動体が稚魚なのかノイズなのかを判定することが難しい。また、稚魚数計数システムではラベリングを使用しているため、部分画像E2のように、デジタルカメラから見て複数の稚魚が重なっている場合は、これらの稚魚が1匹の稚魚であると判定されてしまう。
【0034】
そこで、計数システム1は、人工知能の技術を用いて稚魚の検出を行う。稚魚の検出のために、予め学習済モデルを準備する必要がある。本実施形態において、学習済モデルは、CNN(Convolutional Neural Network)であって、次のように生成される。
【0035】
作業者は、稚魚が飼育されている飼育領域の中にデジタルカメラ12を設置し、複数回、デジタルカメラ12に飼育領域の中を撮影させることによって、
図5のような、複数の入力画像を入力データ(例題)として取得する。さらに、作業者は、それぞれの入力画像に写っている稚魚の位置Q1、Q2、…を教師データ(正解)として指定する。そして、これらの入力画像および位置Q1、Q2、…のデータを学習データ40として学習データ記憶部101(
図3参照)に記憶させる。
【0036】
機械学習部102は、学習データ40に基づいて機械学習を実行することによって、つまり、
図6のように、例題(入力画像)に対して畳み込み処理およびプーリングなどを行うことによって特徴マップ41を生成し、特徴マップ41および正解(稚魚の位置)に基づいて全結合層の処理などを繰り返し行うことによって、学習済モデル(学習済CNNモデル)42を生成する。なお、機械学習用のサーバへ学習データ40を送信し、このサーバに機械学習を実行させてもよい。また、例えばGoogle社のTensorFlow1.12.0などの既存の数値計算用ライブラリを使用してCNNの機械学習を実行してもよい。
【0037】
そして、学習済モデル記憶部103は、機械学習部102によって生成された学習済モデル42を記憶する。
【0038】
〔デジタルカメラ12の配置〕
図7は、水槽3およびデジタルカメラ12の配置の例を示す斜視図である。
図8は、デジタルカメラ12の位置関係の例を示す平面図である。
【0039】
デジタルカメラ12は、飼育領域の中に配置される。以下、
図7に示すような円柱状の水槽3で飼育されている稚魚を、3台のデジタルカメラ12A、12B、および12Cを用いて計数する場合を例に説明する。
【0040】
作業者は、デジタルカメラ12A、12B、および12Cそれぞれを水槽3の中の所定の位置Pa、Pb、およびPcに、水槽3の中の所定の位置Poの方向を撮影するように配置する。これらのデジタルカメラ12を、天井から棒で吊り下げてもよいし、水槽3の中に設けた棒に取り付けてもよい。
【0041】
位置Pa、Pb、およびPcは、
図8に示すように正三角形の頂点をなし、位置Poは、この正三角形の重心に一致する。この三角形は水平であり、重心から各頂点までの距離は、Lである。位置Poを原点(0,0,0)に定め、位置PaをX軸のマイナス側に配置すると、位置Pa、Pb、およびPcそれぞれの座標は、次のように定められる。
【0042】
【0043】
<3> 稚魚の位置の検出
〔撮影のフェーズ〕
図9は、入力画像5の例を示す図である。
【0044】
デジタルカメラ12A、12B、および12Cは、同時にかつ所定の時間(例えば、10秒)ごとに撮影を行い、撮影によって得られた画像をメインコンピュータ10へ送信する。
【0045】
以下、撮影によって得られた画像を「入力画像5」と記載する。また、デジタルカメラ12A、12B、および12Cそれぞれによって得られた入力画像5を「入力画像5A」、「入力画像5B」、および「入力画像5C」と区別して記載する。さらに、k回目の撮影の時刻を「撮影時刻Tk」と記載し、k回目の撮影によって得られた入力画像5A、入力画像5B、および入力画像5Cをそれぞれ「入力画像5Ak」、「入力画像5Bk」、および「入力画像5Ck」と記載する。なお、デジタルカメラ12A、12B、および12Cそれぞれからメインコンピュータ10へ動画像が送信され、メインコンピュータ10において動画像から所定の時刻ごとの静止画像がキャプチャされ入力画像5として用いられるように計数システム1を構成してもよい。
【0046】
〔平面位置検出フェーズ〕
メインコンピュータ10において、稚魚検出部104は、学習済モデル記憶部103に記憶されている学習済モデル42に基づいて各入力画像5に対して推論処理を行うことによって、各入力画像5の中から稚魚の位置を検出する。
【0047】
〔三次元位置特定フェーズ〕
図10は、平面A’の例を示す図である。
図11は、平面B’の例を示す図である。
図12は、2つの直線の最短距離に対応する線分の例を示す図である。
図13は、デジタルカメラ12Bから見て2匹の稚魚が重なった場合の例を示す図である。
【0048】
三次元位置算出部105は、撮影時刻Tkにおける稚魚の位置Piの座標を、入力画像5Ak、5Bk、および5Ckそれぞれから検出された稚魚の位置によって算出する。以下、位置Piの算出方法について説明する。
【0049】
入力画像5Akは、デジタルカメラ12Aの撮影範囲の全体を撮影したものである。この撮影範囲には、
図10に示すように、デジタルカメラ12Aから位置Po(原点)へのベクトルPaPoに垂直でありかつ位置Poを含む平面A’が一部分として含まれている。上述の通り、デジタルカメラ12Aの視野角が縦横ともにθであり、位置Paと位置Poとの距離がLであるので、平面A’は、次の(2A)~(2C)式によって表わすことができる。
x=0 … (2A)
Ltan(-θ/2)≦y≦Ltan(θ/2) … (2B)
Ltan(-θ/2)≦z≦Ltan(θ/2) … (2C)
そして、デジタルカメラ12Aの解像度が上述の通りp
x×p
yなので、検出された稚魚の、平面A’における位置の座標を(A
x,A
y)とすると、デジタルカメラ12Aから見たこの稚魚の位置(位置Pi)の方向ベクトルPaPiは、次の(3)式のように表わすことができる。
【0050】
【0051】
同様に、入力画像5Bkは、デジタルカメラ12Bの撮影範囲の全体を撮影したものである。この撮影範囲には、
図11に示すように、デジタルカメラ12Bから位置Po(原点)へのベクトルPbPoに垂直でありかつ位置Poを含む平面B’が含まれている。上述の通り、デジタルカメラ12Bの視野角が縦横ともにθであり、位置Pbと位置Poとの距離がLであるので、平面B’は、次の(4A)~(4C)式によって表わすことができる。
【0052】
【0053】
そして、デジタルカメラ12Bの解像度が上述の通りpx×pyなので、検出された稚魚の、平面B’における位置の座標を(Bx,By)とすると、デジタルカメラ12Bから見た位置Piの方向ベクトルPbPiは、次の(5)式のように表わすことができる。
【0054】
【0055】
デジタルカメラ12Cから見た位置Piの方向ベクトルPcPiを表わす式も同様の方法で立てることができる。
【0056】
稚魚は、直線PaPiと直線PbPiとの交点に存在すると考えられる。つまり、位置Piは、この交点に一致するはずである。したがって、この交点を(3)式および(5)式に基づいて算出すれば、位置Piが求められるはずである。
【0057】
しかし、稚魚の実際の中心と稚魚検出部104によって検出された位置とのズレまたはデジタルカメラ12の設置の精度の低さなどが原因で、2つの直線が交わらないことがある。
【0058】
そこで、2つの直線が交わらない場合であっても、2つの直線同士の最短距離が所定の範囲内であれば、2つの直線が交わっているとみなす。この最短距離は、次の方法によって算出することができる。
【0059】
図12に示す、直線PaPi上の点mと直線PbPi上の点nとの距離が、2つの直線同士の最短距離である。
【0060】
点mおよび点nそれぞれの位置ベクトルは、次の(6A)式および(6B)式のように変数sおよび変数tを用いて表わすことができる。
【0061】
【0062】
また、これらの位置ベクトルからベクトルmnを次の(7)式のように求めることができる。
【0063】
【0064】
線分mnが直線PaPiおよび直線PbPiの共通垂線なので、次の(8A)式および8B)式が成り立つ。よって、次の(9)式で表わされる連立方程式が成り立つ。
【0065】
【0066】
この連立方程式を解くと、変数sおよび変数tそれぞれの値が算出される。算出された各値を(6A)式の変数sおよび(6B)式の変数tに代入ことによって、点mおよび点nそれぞれの位置ベクトルが求められる。そして、点mと点nとの距離が求められる。この距離が、直線PaPiと直線PbPiとの最短距離である。以下、この最短距離を「距離Rab」と記載する。
【0067】
同様の方法によって、直線PbPiと直線PcPiとの最短距離(以下、「距離Rbc」と記載する。)、および、直線PcPiと直線PaPiとの最短距離(以下、「距離Rca」と記載する。)が求められる。
【0068】
以上の仕組みに従って、三次元位置算出部105は、距離Rab、Rbc、およびRcaを算出する。距離Rab、Rbc、およびRcaがいずれも閾値Rt以下であれば、直線PaPiと直線PbPiとの最短距離の線分の中点、直線PbPiと直線PcPiとの最短距離の線分の中点、および直線PcPiと直線PaPiとの最短距離の線分の中点を頂点とする三角形の中に稚魚がいると判定する。そして、この三角形の重心を算出する。この重心の座標が、位置Piの座標である。距離Rab、Rbc、およびRcaのいずれかが閾値Rtを超える場合は、この三角形の領域には稚魚がいないと判定する。
【0069】
ところで、閾値Rtが大きいほど、デジタルカメラ12の設置の誤差などが吸収されやすくなるが、異なる複数の魚を1匹の魚であると誤認識するおそれがある。そのため、閾値Rtを大きくし過ぎるのは好ましくない。一方、閾値Rtを小さくし過ぎると、誤認識が減少するが、デジタルカメラ12をより正確な位置に設置しなければならない。
【0070】
そこで、発明者は、好適な指標を探求した結果、魚の回避特性に着目することができた。魚の行動モデルであるAokiモデル(Aoki, I.: A Simulation Study on Schooling Mechanism in Fish, Bulletin of the Japanese Society of Scientific Fisheries, 48(8), pp.1081-1088 (1982).)によると、2匹の魚は、互いの距離Rが所定の距離R1以下になると、衝突しないように進行方向を変えようとすることが確認されている。さらに、Huthらの報告(Huth, A. and Wissel, C.: The Simulation of the Movement of Fish Schools, J. Theor. Biol, 156, pp.365-385 (1992).)によると、集団が極性化しやすい、つまり、集団の魚たちが同一の方向に進路を取りやすいのは、0.3F≦R1≦0.5F、を満たす場合である。なお、Fは、魚の体長である。
【0071】
これらの特性に鑑み、三次元位置算出部105は、閾値Rtとして0.3Fiを用いて、稚魚がいるか否かを判定する。Fiは、水槽3の中の稚魚の標準的な体長である。つまり、水槽3の中の稚魚の体長を0.3倍した値が閾値Rtとして用いられる。
【0072】
位置Piの座標は、三次元位置算出部105によって算出されると、撮影時刻Tkまたはシーケンス番号kと対応付けられて三次元位置記憶部106に記憶される。
【0073】
ところで、入力画像5Ak、入力画像5Bk、および入力画像5Ckのうちのいずれかから複数の稚魚および位置が検出されることが多い。つまり、入力画像5Ak、入力画像5Bk、および入力画像5CkそれぞれからNa匹の稚魚、Nb匹の稚魚、およびNc匹の稚魚および位置が検出され得る。ただし、Na、Nb、およびNcのうちの少なくとも1つが2以上である。
【0074】
三次元位置算出部105は、このような場合に、入力画像5Ak、入力画像5Bk、および入力画像5Ckそれぞれから稚魚検出部104によって検出された平面位置に基づいて、デジタルカメラ12Aから見たNa本の方向ベクトルの直線、デジタルカメラ12Bから見たNb本の方向ベクトルの直線、およびデジタルカメラ12Cから見たNc本の方向ベクトルの直線を算出する。そして、3種類の直線すべての組合せ(つまり、Na×Nb×Ncの組合せ)について、距離Rab、Rbc、およびRcaを算出し、稚魚がいるか否かを閾値Rtに基づいて算出する。そして、稚魚がいる場合は、その位置(位置Ri)の座標を算出する。
【0075】
例えば、
図13に示す位置に2匹の稚魚がいる場合は、稚魚検出部104は、入力画像5Ak、入力画像5Bk、および入力画像5Ckそれぞれから2匹の稚魚、1匹の稚魚、および2匹の稚魚を検出する。三次元位置算出部105は、入力画像5Ak、入力画像5Bk、および入力画像5Ckそれぞれから2本の直線、1本の直線、および2本の直線を算出し、2×1×2組つまり4組の距離R
ab、R
bc、およびR
caを算出し、稚魚がいるか否かを算出する。そして、稚魚がいる位置の座標を算出する。
【0076】
図14は、2台のデジタルカメラ12を用いて稚魚の三次元位置を検出する場合の例を説明するための図である。
図15は、稚魚の配置のバリエーションの例を示す図である。
図16は、3台のデジタルカメラ12を用いて稚魚の三次元位置を検出する場合のメリットを説明するための図である。
【0077】
3台のデジタルカメラ12ではなく2台のデジタルカメラ12によって稚魚の三次元位置を検出することも可能である。ところが、この方法によると、稚魚の三次元位置を誤って検出することがある。例えば、
図14に示すように、デジタルカメラ12Aの入力画像から2本の方向ベクトルが求められ、デジタルカメラ12Bの入力画像から2本の方向ベクトルが求められた場合に、稚魚の三次元位置の可能性として、
図15(A)~(G)に示す7通りが考えられるからである。
【0078】
しかし、上述の通り3台のデジタルカメラ12を用いると、
図16に示すように、デジタルカメラ12A、12B、および12Cそれぞれの位置Pa、Pb、およびPcからの3本の方向ベクトルの直線が交わりまたは近接する位置に稚魚がいると判定することができる。したがって、2台のデジタルカメラ12を用いる場合よりも確実に稚魚の三次元位置を検出することができる。
【0079】
〔キャリブレーション〕
図17は、キャリブレーションの例を説明するための図である。
【0080】
ところで、デジタルカメラ12A、12B、および12Cは、いずれも、位置Poの方向を撮影するように配置されている。したがって、理想的には、入力画像5A、5B、および5Cそれぞれの中心がいずれも位置Poすなわち水槽3の中の特定の1つの位置に対応するはずである。
【0081】
しかし、1ドットのズレも生じさせることもなくデジタルカメラ12A、12B、および12Cを配置することは、難しい。そこで、入力画像5のキャリブレーションを行った後で、上述の平面位置検出フェーズおよび三次元位置特定フェーズを行ってもよい。以下、キャリブレーションの方法の一例について説明する。
【0082】
作業者は、マーカ6を、水槽3の中の位置Poまたはその近隣に配置する。マーカ6に棒または紐を付けて天井から吊り下げてもよいし竿などを用いてぶら下げてもよい。マーカ6として、例えば、赤色の鉄球が用いられる。
【0083】
この状態で、デジタルカメラ12A、12B、および12Cは、同時に撮影を行い、得られた画像をそれぞれキャリブレーション用画像5A’、5B’、および5C’としてメインコンピュータ10へ送信する。
【0084】
メインコンピュータ10において、画像補正部107は、キャリブレーション用画像5A’の中からマーカ6の位置Qeを検出し、
図17(a)に示すように、位置Qeとキャリブレーション用画像5A’の中心QoとのズレをベクトルQeQoとして算出する。
【0085】
そして、画像補正部107は、その後にデジタルカメラ12Aから受信した入力画像5Aを、
図17(b)に示すようにベクトルQeQoだけシフトさせることによって、
図17(c)に示すように補正する。
【0086】
画像補正部107は、同様に、キャリブレーション用画像5B’および5C’それぞれについてもズレを算出し、デジタルカメラ12Bおよび12Cそれぞれから受信した入力画像5Bおよび5Cを、算出したズレに応じて補正する。
【0087】
入力画像5A、5B、および5Cをこのように補正することは、デジタルカメラ12A、12B、および12Cそれぞれから平面A’、B’、およびC’それぞれの中心へ向かうベクトルの交点にマーカ6が配置され、かつ、マーカ6の位置が原点(0,0,0)つまり位置Poに設定されるように、キャリブレーションを行うことに等しい。
【0088】
このようにキャリブレーションを行うことにより、デジタルカメラ12A、12B、および12Cそれぞれから稚魚へ向かうベクトルをより正確に測定することができる。
【0089】
<4> 稚魚数の推定
図18は、3台のデジタルカメラ12と稚魚計数領域Spとの位置関係の例を示す図である。
【0090】
稚魚検出部104および三次元位置算出部105による上述の処理によって、三次元位置記憶部106には、各撮影時刻T
k(T
1、T
2、…)における稚魚の位置が記憶される。しかし、これらの位置は、すべて、3台のデジタルカメラ12によって得られた入力画像に基づいて検出されたものなので、
図18に示す球形の稚魚計数領域Spにいる稚魚のものである。つまり、上述の処理によると、稚魚計数領域Spにいる稚魚の数しか計数することができない。
【0091】
そこで、個体数推定部108は、水槽3の中にいるすべての稚魚の数(個体数)を次のように推定する。
【0092】
デジタルカメラ12A、12B、および12Cそれぞれの位置Pa、Pb、およびPcと原点つまり位置Poとの距離は、上述の通り、いずれもLである。また、デジタルカメラ12A、12B、および12Cそれぞれの縦横の視野角は、上述の通り、いずれもθである。したがって、稚魚計数領域Spの半径rpは、次の(10)式のように表わされる。
rp=Lsin(θ/2) … (10)
よって、稚魚計数領域Spの体積Vpは、球の体積の公式および(10)式に基づいて、次の(11)式のように表わされる。
Vp=4πr3/3
=4πrp
3/3
=4π(Lsin(θ/2))3/3 … (11)
また、水槽3は、上述の通り円柱状なので、水槽3の水の体積Vwは、円柱の体積の公式、水槽3の底面の半径rw、および水槽3の水深hwに基づいて、次の(12)式によって求められる。
Vw=πr2×h
=πrw
2×hw … (12)
個体数推定部108は、稚魚の密度が水槽3全体で均一であるとみなし、次の(13)式によって、水槽3の中にいる稚魚の総数を算出する。
Nwk=Npk×(Vw/Vp) … (13)
ただし、Nwkは、撮影時刻Tkにおける、水槽3の中の稚魚の総数Nwである。Npkは、撮影時刻Tkにおける、稚魚計数領域Spの中の稚魚の総数Npである。なお、個体数推定部108は、Npkを、三次元位置記憶部106に記憶されている、撮影時刻Tkまたはシーケンス番号kに対応付けられて記憶されている位置の個数を計数することによって算出する。
【0093】
ところで、稚魚計数領域Spにいる稚魚の数は、稚魚が泳いでいるので短時間の間でも増減する。よって、上述の方法によると、撮影時刻Tkごとの総数Nwのバラツキが大きい。
【0094】
そこで、個体数推定部108は、一定の期間(例えば、1分間)、撮影時刻T
1、T
2、T
3、…ごとの総数N
pを計数し、これらの総数N
pの平均値N
pvを次の式(14)に代入することによって総数N
wを算出してもよい。
N
w=N
pv×(V
w/V
p) … (14)
式(14)は、稚魚計数領域Spを疑似的に広げることによって水槽3の水の体積V
wと稚魚計数領域Spの体積V
pとの比を小さくすることを意味するので、精度の向上が期待できる.
<5> まとめ
図19は、メインコンピュータ10の全体的な処理の流れの例を説明するフローチャートである。
【0095】
次に、メインコンピュータ10が稚魚計数プログラム10Pに基づいて実行する処理の流れを、
図19のフローチャートを参照しながら説明する。
【0096】
メインコンピュータ10は、機械学習によって予め学習済モデル42を生成し記憶しておく(#71、#72)。
【0097】
メインコンピュータ10は、デジタルカメラ12A、12B、12Cそれぞれから入力画像5を受信する(#73)。すると、各撮影時刻の各入力画像5から稚魚およびその平面位置を検出する(#75)。そして、平面位置に基づいて稚魚の三次元位置の座標を算出し(#76)、撮影時刻またはシーケンス番号と対応付けて記憶する(#77)。
【0098】
メインコンピュータ10は、受信したすべての撮影時刻における稚魚の三次元位置の座標の算出および記憶が終わったら(#78でYes)、稚魚計数領域Spの中の稚魚の総数Npを算出し(#80)、水槽3の中の稚魚の総数Nwを推定する(#81)。
【0099】
本実施形態によると、水槽3から取り出すことなく稚魚の数を従来よりも正確に把握することができる。特に、本実施形態では、機械学習によって事前に取得した学習済モデル42を用いて入力画像5の中の稚魚を検出するので、従来の稚魚数計数システムよりも正確に稚魚を検出することができる。さらに、3台のデジタルカメラ12のそれぞれによって取得した入力画像5によって稚魚の三次元位置を算出するので、2台のデジタルカメラ12を用いた場合よりも稚魚の三次元位置を正確に算出することができる。
【0100】
<6> 適用例
計数システム1は、例えば、次のように使用することができる。水槽3の底面の半径rwは、68cmであり、水槽3の水深hwは、62cmである。したがって、水槽3の体積は、約90万cm3である。距離L(原点Poから各デジタルカメラ12までの距離)は、約43.3cmであり、デジタルカメラ12の補正後の視野角θは、35度である。したがって、稚魚計数領域Spの半径rpは、13cmであり、体積Vpは、約9200cm3である。デジタルカメラ12の解像度は約320×320である。
【0101】
このような条件の下で真鯛の稚魚、約300匹を飼育する。これらの稚魚は、同じ時期に孵化したものなので、ほぼ同じ大きさであり、約3~5cmである。閾値Rtは、3cmの稚魚に合わせるならば、3cm×0.3、なので、0.9cmとすべきである。しかし、約300匹の稚魚の中に3cmを下回るものが含まれている可能性があることに鑑み、閾値Rtを0.85cmに設定する。
【0102】
そして、各デジタルカメラ12によって撮影を行い、上述の方法でメインコンピュータ10によって水槽3の中の稚魚の総数Nwを推定する。
【0103】
<7> 変形例
図20は、撮影ユニット21の例を示す図である。
図21は、撮影ユニット22の例を示す図である。
【0104】
本実施形態では、3台のデジタルカメラ12A、12B、および12Cを天井から棒で吊り下げまたは水槽3の中に設けた棒に取り付けるなどして水槽3の中の所定の位置に配置したが、他の方法で配置してもよい。例えば、
図20のような撮影ユニット21を作成し、撮影ユニット21を水槽3の中の所定の位置に配置してもよい。撮影ユニット21は、正三角形状に組んだフレーム211の各辺の中点の位置に1台ずつデジタルカメラ12を、フレームの重心が撮影方向になるように備え付けたものである。なお、撮影ユニット21は、これらのデジタルカメラ12同士の相対的な位置関係が保たれていれば、水槽3の中で動いても構わない。
【0105】
フレーム211は、三角形状に組まれているので、四角形などに組まれている場合よりも歪みにくい。なお、フレーム211の素材として、塩化ビニール管またはアルミニウム管など合成樹脂または金属が用いられる。後述するフレーム221(
図21参照)も同様である。
【0106】
本実施形態では、3台のデジタルカメラ12によって水槽3の中の様子を撮影したが、4台以上のデジタルカメラ12によって水槽3の中の様子を撮影し、これらのデジタルカメラ12によって得られた入力画像5に基づいて稚魚の三次元位置を特定してもよい。この場合における稚魚の三次元位置の特定方法は、3台のデジタルカメラ12を使用する場合の特定方法と基本的に同じである。
【0107】
すなわち、作業者は、共通の位置へ撮影方向が向くようにM台(M≧4)のデジタルカメラ12を配置し、適宜、キャリブレーションのための処理を実行しておく。
【0108】
稚魚検出部104は、M台のデジタルカメラ12それぞれによって得られた入力画像5から、その入力画像5における稚魚の位置を検出する。
【0109】
三次元位置算出部105は、u番目(1≦u≦M)のデジタルカメラ12の入力画像5から稚魚検出部104によって検出された位置に基づいて、u番目のデジタルカメラ12から見たときの、稚魚の三次元位置の方向ベクトルを算出する(
図10、
図11参照)。つまり、u番目のデジタルカメラ12の三次元位置を位置Puと定義し、稚魚の三次元位置をPiと定義すると、ベクトルPuPiを算出する。
【0110】
さらに、三次元位置算出部105は、直線PuPiおよび直線PvPi(u≠v、1≦v≦M)のすべての(MC2組の)組合せについて、両直線同士の最短距離を算出する。そして、MC2すべての最短距離が閾値Rt以下であれば、最短距離の線分の中点付近に稚魚がいると判定する。
【0111】
3台のデジタルカメラ12を用いる場合は、3つの中点からなる三角形の重心を稚魚の三次元位置として検出したが、M台のデジタルカメラ12を用いる場合は、MC2個の中点を頂点として有する多面体の内部の任意の点(例えば、重心)を稚魚の三次元位置として検出すればよい。
【0112】
なお、MC2の最短距離のうちの所定の個数以上の最短距離が閾値Rt以下であれば、これらの最短距離の線分の中点付近に稚魚がいると判定してもよい。例えば、M=6であれば、15の最短距離のうちの12以上の最短距離が閾値Rt以下であれば、稚魚がいると判定してもよい。そして、これら12以上の最短距離の線分それぞれの中点を頂点とする多面体の重心に稚魚がいると判定してもよい。
【0113】
M台のデジタルカメラ12を水槽3の中に独立して配置してもよいし、1つの構造体として構成してもよい。
【0114】
例えば、正四面体状に組んだフレーム221および6台のデジタルカメラ12によって、
図21のような撮影ユニット22を構成してもよい。フレーム221の各辺の中点にデジタルカメラ12を1台ずつ、撮影方向が正四面体の重心になるように備え付ける。
【0115】
このように撮影ユニット22を構成することによって、ねじれの位置にある2つの辺に備え付けられた2台のデジタルカメラ12同士が、キャリブレーションの際のマーカとして機能し合う。つまり、デジタルカメラ12Aによって得られた入力画像5のちょうど真ん中には本来、デジタルカメラ12Bが写っているはずである。そこで、デジタルカメラ12Bの写っている位置に基づいて、デジタルカメラ12Aによって得られた入力画像5のキャリブレーションを行えばよい。
【0116】
同様に、デジタルカメラ12Aの写っている位置に基づいて、デジタルカメラ12Bによって得られた入力画像5のキャリブレーションを行えばよい。他の組(デジタルカメラ12Cおよび12Dの組、デジタルカメラ12Eおよび12Fの組)についても同様である。
【0117】
撮影ユニット22によると、作業者がマーカ6を垂らしたりすることなく、メインコンピュータ10および各デジタルカメラ12が自動的にキャリブレーションのための処理を行うことができる。また、フレーム221が四面体状すなわち三角錐状に組まれているので、三角柱または四角錐などに組まれている場合よりも歪みにくい。
【0118】
そのほか、フレーム221として、正二十面体状、正八面体、正十二面体、または立方体に組まれたフレームを用いてもよい。
【0119】
本実施形態では、個体数推定部108は、一定の期間の撮影時刻T1、T2、T3、…ごとの総数Npを計数しこれらの平均値Npvを算出し、式(14)に基づいて水槽3全体の稚魚の固体数(総数Nw)を算出したが、次のように総数Nwを算出してもよい
個体数推定部108は、撮影時刻T1、T2、T3、…ごとに、それまでの総数Npの平均値Npvを算出する。そして、平均値Npvの変化が収束したら、収束した時点の平均値Npvを式(14)に代入することによって総数Nwを算出する。
【0120】
例えば、次の(15)式を満たした場合に、平均値Npvの変化が収束したと判定することができる。
f(i)≦ft
f(i)=|Npvi-Npv(i-1)|/Npvi … (15)
ftは閾値であり、例えば、0.02である。Npviは、撮影時刻Tiにおける平均値Npvであり、Npv(i-1)は、撮影時刻T(i-1)における平均値Npvである。つまり、隣り合う2回の平均値Npvの変動割合が閾値以下である状態になったら、収束したと判定すればよい。または、このような状態が10回連続したら、収束したと判定してもよい。
【0121】
水槽3で飼育する稚魚の種類および体長の組合せごとに学習済モデル42を用意し、稚魚検出部104において使い分けてもよい。例えば、スマ、タイ、モジャコ、マグロ、サケ、フグ、…それぞれについて1cm未満、1cm以上2cm未満、2cm以上3cm未満、…ごとの学習済モデル42を用意し、使い分けてもよい。閾値Rtも同様に、組合せごとに使い分けられる。
【0122】
本実施形態では、魚類の稚魚を計数する場合を例に説明したが、魚類以外の生物を計数するために計数システム1を使用してもよい。例えば、養殖のエビを計数するために使用してもよい。
【0123】
入力画像5として、夜間に撮影した画像を用いてもよい。この場合は、近赤外線のライトで水槽3の中を照らして撮影すればよい。
【0124】
本実施形態では、入力画像5は、通信回線14を介してデジタルカメラ12からメインコンピュータ10へ提供されたが、フラッシュメモリなどの記録媒体を介して提供されるようにしてもよい。
【0125】
本実施形態では、計数システム1は、水槽3の中の稚魚の総数Npを計数するために用いられたが、稚魚の動きの状態を検出し、病気の発生および空腹の具合などを判別するために用いてもよい。
【0126】
その他、計数システム1、メインコンピュータ10の全体または各部の構成、処理の順序などは、本発明の趣旨に沿って適宜変更することができる。
【符号の説明】
【0127】
1 計数システム(個体検出システム)
104 稚魚検出部(画像内位置検出手段)
105 三次元位置算出部(個体検出手段)
107 画像補正部(調整手段)
108 個体数推定部(個体数推定手段)
12 デジタルカメラ(カメラ)
22 撮影ユニット
5 入力画像(第uの画像)
Sp 稚魚計数領域(特定の区域)