(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-04-04
(45)【発行日】2025-04-14
(54)【発明の名称】魚個体識別方法、該装置および該プログラム
(51)【国際特許分類】
A01K 61/95 20170101AFI20250407BHJP
G06T 7/00 20170101ALI20250407BHJP
【FI】
A01K61/95
G06T7/00 350B
(21)【出願番号】P 2023124104
(22)【出願日】2023-07-31
【審査請求日】2024-04-25
【早期審査対象出願】
(73)【特許権者】
【識別番号】000192590
【氏名又は名称】株式会社神鋼環境ソリューション
(74)【代理人】
【識別番号】100115381
【氏名又は名称】小谷 昌崇
(74)【代理人】
【識別番号】100111453
【氏名又は名称】櫻井 智
(72)【発明者】
【氏名】片山 亮
(72)【発明者】
【氏名】河井 啓介
【審査官】小林 謙仁
(56)【参考文献】
【文献】国際公開第2017/134812(WO,A1)
【文献】特開2022-013910(JP,A)
【文献】特開2018-132870(JP,A)
【文献】特表2023-515240(JP,A)
【文献】特開2018-045483(JP,A)
【文献】韓国公開特許第10-2023-0083421(KR,A)
【文献】国際公開第2019/198611(WO,A1)
【文献】特開2021-061782(JP,A)
【文献】池 玲一郎 他,白黒斑紋を用いたホルスタイン種の3次元点群データのクラスタリング-模様で牛の個体識別できるかも-,ロボティクス・メカトロニクス講演会2019 講演論文集,2019年06月05日,2A1-S05
(58)【調査した分野】(Int.Cl.,DB名)
A01K 11/00
A01K 61/00-63/10
G06T 7/00
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
体表面に文様を備える魚を個体別に識別する魚個体識別方法であって、
前記魚の体表面の画像を
第1魚画像として取得する
第1魚画像取得工程と、
画像に基づいて魚を個体別に識別する機械学習モデルの疑似空間を用いることによって、前記第1魚画像取得工程で取得した複数の第1魚画像を個体ごとのグループ別に分類する分類工程と、
前記分類工程で分類した各グループから選抜した各魚のうちのいずれかの魚の体表面の画像を第2魚画像として取得する第2魚画像取得工程と、
前記機械学習モデルを用いることによって、前記
第2魚画像取得工程で取得した
第2魚画像に写り込んだ魚を個体別に識別する魚個体識別工程と
を備え、
前記文様は、縞模様を含む、
魚個体識別方法。
【請求項2】
学習データで前記機械学習モデルを機械学習する機械学習工程をさらに備え、
前記魚個体識別工程で用いる機械学習モデルは、前記機械学習工程で機械学習した機械学習済みの機械学習モデルである、
請求項1に記載の魚個体識別方法。
【請求項3】
前記学習データは、背景を単色にした前記魚の画像を含む、
請求項2に記載の魚個体識別方法。
【請求項4】
前記学習データは、1個のカメラによる1回の撮像で生成された前記魚の一方側面の画像と、前記魚の他方側面の画像とを含む、
請求項2に記載の魚個体識別方法。
【請求項5】
前記魚個体識別工程は、前記識別した個体の個体名をさらに出力し、
前記魚個体識別工程で出力した個体名を修正する個体名修正工程をさらに備える、
請求項1に記載の魚個体識別方法。
【請求項6】
学習データで前記機械学習モデルを機械学習する機械学習工程と、
前記学習データおよび前記機械学習モデルのうちの少なくとも一方を共用可能に管理する管理サーバ装置に、前記学習データおよび前記機械学習モデルのうちの少なくとも一方を送信する送信処理工程とをさらに備える、
請求項1に記載の魚個体識別方法。
【請求項7】
体表面に文様を備える魚を個体別に識別する魚個体識別装置であって、
前記魚の体表面の画像を
第1魚画像として取得する
第1魚画像取得部と、
画像に基づいて魚を個体別に識別する機械学習モデルの疑似空間を用いることによって、前記第1魚画像取得部で取得した複数の第1魚画像を個体ごとのグループ別に分類する分類部と、
前記分類部で分類した各グループから選抜した各魚のうちのいずれかの魚の体表面の画像を第2魚画像として取得する第2魚画像取得部と、
前記機械学習モデルを用いることによって、前記
第2魚画像取得部で取得した
第2魚画像に写り込んだ魚を個体別に識別する魚個体識別部と
を備え、
前記文様は、縞模様を含む、
魚個体識別装置。
【請求項8】
学習データで前記機械学習モデルを機械学習する機械学習部をさらに備え、
前記魚個体識別部で用いる機械学習モデルは、前記機械学習部で機械学習した機械学習済みの機械学習モデルである、
請求項7に記載の魚個体識別装置。
【請求項9】
前記学習データは、背景を単色にした前記魚の画像を含む、
請求項8に記載の魚個体識別装置。
【請求項10】
前記学習データは、1個のカメラによる1回の撮像で生成された前記魚の一方側面の画像と、前記魚の他方側面の画像とを含む、
請求項8に記載の魚個体識別装置。
【請求項11】
前記魚個体識別部は、前記識別した個体の個体名をさらに出力し、
前記魚個体識別部で出力した個体名を修正する個体名修正部をさらに備える、
請求項7に記載の魚個体識別装置。
【請求項12】
学習データで前記機械学習モデルを機械学習する機械学習部と、
前記学習データおよび前記機械学習モデルのうちの少なくとも一方を共用可能に管理する管理サーバ装置に、前記学習データおよび前記機械学習モデルのうちの少なくとも一方を送信する送信処理部とをさらに備える、
請求項7に記載の魚個体識別装置。
【請求項13】
コンピュータを、請求項7ないし請求項12のいずれか1項に記載の魚個体識別装置として機能させるための魚個体識別プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、体表面に文様を備える魚を個体別に識別する魚個体識別方法、魚個体識別装置および魚個体識別プログラムに関する。
【背景技術】
【0002】
従来、医学研究や生物研究等に、生物が用いられることがある。前記生物として、飼育の容易性、多産性、短世代交代性および胚の観察容易性等の、前記研究に好ましい観点から、ゼブラフィッシュ(学名;Danio rerio)が用いられることがある。前記研究では、個々の個体を観察する必要があることから、個体識別が必要である。人手による個体識別は、手間や時間がかかることから自動化が望まれ、その技術の1つとして、例えば特許文献1に開示された個体識別方法がある。
【0003】
前記特許文献1に開示されたゼブラフィッシュの個体識別方法は、水槽中を遊泳する複数のゼブラフィッシュ(Danio rerio)の個体識別方法であって、水槽側部からゼブラフィッシュの各個体の側面画像を撮影して側面画像データを取得し、得られた各個体の側面画像データから、各個体の尻びれおよび尾ひれの縞模様の特徴を決定して各個体の特徴データを得、得られた特徴データに基づき、複数のゼブラフィッシュから各個体を識別する方法である。このゼブラフィッシュの個体識別方法において、前記尻びれおよび尾ひれの縞模様の特徴データが、縞の枝分かれの有無、縞の分断の有無、縞の本数、縞の湾曲の有無、及び縞の幅の変化の有無からなる群より選ばれる少なくとも1つのデータである。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2016-253724号公報(特許第6679474号公報)
【発明の概要】
【発明が解決しようとする課題】
【0005】
前記特許文献1に開示されたゼブラフィッシュの個体識別方法は、従前の人による縞模様の識別方法を、画像の生成および前記画像の画像処理で自動化したものであり、縞の枝分かれの有無、縞の分断の有無、縞の本数、縞の湾曲の有無および縞の幅の変化の有無だけでは、個体識別ができない場合がある。特に、遺伝的に近い個体同士では、縞模様が類似するため、個体識別が容易ではなく、誤判定の虞がある。
【0006】
本発明は、上述の事情に鑑みて為された発明であり、その目的は、人の識別方法とは異なる手法を用いて魚を個体別に識別する魚個体識別方法、魚個体識別装置および魚個体識別プログラムを提供することである。
【課題を解決するための手段】
【0007】
本発明者は、種々検討した結果、上記目的は、以下の本発明により達成されることを見出した。すなわち、本発明の一態様にかかる魚個体識別方法は、体表面に文様を備える魚を個体別に識別する方法であって、前記魚の体表面の画像を取得する魚画像取得工程と、画像に基づいて魚を個体別に識別する機械学習モデルを用いることによって、前記魚画像取得工程で取得した画像に写り込んだ魚を個体別に識別する魚個体識別工程とを備える。本発明の他の一態様にかかる魚個体識別装置は、体表面に文様を備える魚を個体別に識別する装置であって、前記魚の体表面の画像を取得する魚画像取得部と、画像に基づいて魚を個体別に識別する機械学習モデルを用いることによって、前記魚画像取得部で取得した画像に写り込んだ魚を個体別に識別する魚個体識別部とを備える。好ましくは、上述の魚個体識別方法および魚個体識別装置それぞれにおいて、前記文様は、縞模様を含む。好ましくは、上述の魚個体識別方法および魚個体識別装置それぞれにおいて、前記文様は、縦の縞模様を含む。好ましくは、上述の魚個体識別方法および魚個体識別装置それぞれにおいて、前記文様は、横の縞模様を含む。好ましくは、上述の魚個体識別方法および魚個体識別装置それぞれにおいて、前記魚は、ゼブラフィッシュである。
【0008】
このような魚個体識別方法および魚個体識別装置は、画像に基づいて魚を個体別に識別する機械学習モデルを用いることによって、魚を個体別に識別する。したがって、これによれば、人の識別方法とは異なる手法を用いて魚を個体別に識別する魚個体識別方法および魚個体識別装置が提供できる。
【0009】
他の一態様では、上述の魚個体識別方法において、学習データで前記機械学習モデルを機械学習する機械学習工程をさらに備え、前記魚個体識別工程で用いる機械学習モデルは、前記機械学習工程で機械学習した機械学習済みの機械学習モデルである。他の一態様では、上述の魚個体識別装置において、学習データで前記機械学習モデルを機械学習する機械学習部をさらに備え、前記魚個体識別部で用いる機械学習モデルは、前記機械学習部で機械学習した機械学習済みの機械学習モデルである。好ましくは、上述の魚個体識別方法および魚個体識別装置それぞれにおいて、前記学習データは、魚が写り込んだ画像と、教師として、前記画像に写り込んでいる魚を特定し識別するための識別子(例えば個体名等)とを備える教師ありの学習データである。
【0010】
これによれば、機械学習によって機械学習済みの機械学習モデルを生成する魚個体識別方法および魚個体識別装置が提供できる。
【0011】
他の一態様では、上述の魚個体識別方法において、前記学習データは、背景を単色にした前記魚の画像を含む。他の一態様では、上述の魚個体識別装置において、前記学習データは、背景を単色にした前記魚の画像を含む。
【0012】
このような魚個体識別方法および魚個体識別装置は、背景を単色にした前記魚の画像を含む学習データで前記機械学習モデルを機械学習するので、ノイズとなる背景を除去して魚だけで機械学習できるから、より正確に個体識別できるように機械学習モデルを機械学習できる。
【0013】
他の一態様では、これら上述の魚個体識別方法において、前記学習データは、前記魚の一方側面の画像と、前記魚の他方側面の画像とを含む。他の一態様では、これら上述の魚個体識別装置において、前記学習データは、前記魚の一方側面の画像と、前記魚の他方側面の画像とを含む。好ましくは、上述の魚個体識別方法および魚個体識別装置それぞれにおいて、前記魚の一方側面の画像と前記魚の他方側面の画像とは、1個の画像で構成されている。好ましくは、上述の魚個体識別方法および魚個体識別装置それぞれにおいて、前記魚の一方側面の画像と前記魚の他方側面の画像とは、個別の画像で構成されている。
【0014】
このような魚個体識別方法および魚個体識別装置は、前記魚の一方側面の画像と、前記魚の他方側面の画像とを含む学習データで前記機械学習モデルを機械学習するので、両側面の文様で機械学習できるから、より正確に個体識別できるように機械学習モデルを機械学習できる。
【0015】
他の一態様では、これら上述の魚個体識別方法において、前記魚個体識別工程は、前記識別した個体の個体名をさらに出力し、前記魚個体識別工程で出力した個体名を修正する個体名修正工程をさらに備える。他の一態様では、これら上述の魚個体識別装置において、前記魚個体識別部は、前記識別した個体の個体名をさらに出力し、前記魚個体識別部で出力した個体名を修正する個体名修正部をさらに備える。
【0016】
このような魚個体識別方法および魚個体識別装置は、個体識別で個体名を誤った場合でも、個体名を修正できる。
【0017】
他の一態様では、これら上述の魚個体識別方法において、前記機械学習モデルの疑似空間を用いることによって、複数の前記魚をグループ別に分類する分類工程をさらに備える。他の一態様では、これら上述の魚個体識別装置において、前記機械学習モデルの疑似空間を用いることによって、複数の前記魚をグループ別に分類する分類処理部をさらに備える。
【0018】
このような魚個体識別方法および魚個体識別装置は、複数の魚をグループ別に分類するので、各グループから魚を選抜することにより、個体識別がし易くなり、個体識別の誤判定を低減することが可能となる。
【0019】
他の一態様では、これら上述の魚個体識別方法において、学習データで前記機械学習モデルを機械学習する機械学習工程と、前記学習データおよび前記機械学習モデルのうちの少なくとも一方を共用可能に管理する管理サーバ装置に、前記学習データおよび前記機械学習モデルのうちの少なくとも一方を送信する送信工程とをさらに備える。他の一態様では、これら上述の魚個体識別装置において、学習データで前記機械学習モデルを機械学習する機械学習部と、前記学習データおよび前記機械学習モデルのうちの少なくとも一方を共用可能に管理する管理サーバ装置に、前記学習データおよび前記機械学習モデルのうちの少なくとも一方を送信する送信処理部とをさらに備える。
【0020】
このような魚個体識別方法および魚個体識別装置は、共用可能な、前記学習データおよび前記機械学習モデルのうちの少なくとも一方を利用できるので、前記機械学習モデルの高精度化を可能とする。
【0021】
本発明の他の一態様にかかる魚個体識別プログラムは、コンピュータを、これら上述のいずれかの魚個体識別装置として機能させるためのプログラムである。
【0022】
これによれば、魚個体識別プログラムが提供でき、この魚個体識別プログラムは、これら上述の魚個体識別装置と同様な作用効果を奏する。
【発明の効果】
【0023】
本発明によれば、人の識別方法とは異なる手法を用いて魚を個体別に識別する魚個体識別方法、魚個体識別装置および魚個体識別プログラムが提供できる。
【図面の簡単な説明】
【0024】
【
図1】実施形態における魚個体識別装置の構成を示すブロック図である。
【
図2】前記魚個体識別装置を用いた薬剤投与実験系の構成を示す模式図である。
【
図3】一例として、前記魚個体識別装置を用いる第1態様における学習データの魚画像を示す図である。
【
図4】一例として、前記魚個体識別装置を用いる第2態様における学習データの魚画像を示す図である。
【
図5】一例として、前記魚個体識別装置を用いる第3態様における学習データの魚画像を示す図である。
【
図6】一例として、前記魚個体識別装置を用いる第4態様における学習データの魚画像を示す図である。
【
図7】一例として、前記魚個体識別装置を用いる第5態様における学習データの魚画像を示す図である。
【
図8】一例として、魚情報テーブルを示す図である。
【
図9】機械学習に関する前記魚個体識別装置の動作を示すフローチャートである。
【
図10】一例として、前記魚個体識別装置に表示される第1画面を示す図である。
【
図11】一例として、前記魚個体識別装置に表示される第2画面を示す図である。
【
図12】一例として、前記魚個体識別装置に表示される第3画面を示す図である。
【
図13】一例として、前記魚個体識別装置に表示される第4画面を示す図である。
【
図14】一例として、前記魚個体識別装置に表示される第5画面を示す図である。
【
図15】一例として、前記魚個体識別装置に表示される第6画面を示す図である。
【
図16】一例として、前記魚個体識別装置に表示される第7画面を示す図である。
【
図17】一例として、前記魚個体識別装置に表示される第8画面を示す図である。
【
図18】一例として、前記魚個体識別装置に表示される第9画面を示す図である。
【
図19】個体識別に関する前記魚個体識別装置の動作を示すフローチャートである。
【
図20】一例として、前記魚個体識別装置に表示される第10画面を示す図である。
【
図21】一例として、前記魚個体識別装置に表示される第11画面を示す図である。
【
図22】一例として、前記魚個体識別装置に表示される第12画面を示す図である。
【
図23】一例として、前記魚個体識別装置に表示される第13画面を示す図である。
【
図24】一例として、前記魚個体識別装置に表示される第14画面を示す図である。
【
図25】第1変形形態における魚個体識別装置を説明するための図である。
【
図26】第2変形形態における魚個体識別装置を説明するための図である。
【発明を実施するための形態】
【0025】
以下、本発明にかかる実施の一形態を図面に基づいて説明する。なお、各図において同一の符号を付した構成は、同一の構成であることを示し、適宜、その説明を省略する。なお、本明細書において、総称する場合には添え字を省略した参照符号で示し、個別の構成を指す場合には添え字を付した参照符号で示す。
【0026】
実施形態における魚個体識別装置は、体表面に文様を備える魚を個体別に識別する装置である。この魚個体識別装置は、魚画像取得部と、魚個体識別部とを備える。前記魚画像取得部は、前記魚の体表面の画像を取得するものである。前記魚個体識別部は、画像に基づいて魚を個体別に識別する機械学習モデルを用いることによって、前記魚画像取得部で取得した画像に写り込んだ魚を個体別に識別するものである。以下、このような魚個体識別装置、ならびに、これに実装された魚個体識別方法および魚個体識別プログラムについて、より具体的に説明する。
【0027】
図1は、実施形態における魚個体識別装置の構成を示すブロック図である。
図2は、前記魚個体識別装置を用いた薬剤投与実験系の構成を示す模式図である。
図3は、一例として、前記魚個体識別装置を用いる第1態様における学習データの魚画像を示す図である。
図4は、一例として、前記魚個体識別装置を用いる第2態様における学習データの魚画像を示す図である。
図5は、一例として、前記魚個体識別装置を用いる第3態様における学習データの魚画像を示す図である。
図6は、一例として、前記魚個体識別装置を用いる第4態様における学習データの魚画像を示す図である。
図2ないし
図6において、
図Aは、魚画像の一例を示し、
図Bは、
図Aに示す魚画像に写り込んだ魚の輪郭線をトレースした魚画像の模式図を示す。
図7は、一例として、前記魚個体識別装置を用いる第5態様における学習データの魚画像を示す図である。
図7において、
図Aは、魚画像の一例を示し、
図Bは、
図Aに示す魚画像に写り込んだ魚の輪郭線をトレースした魚画像の模式図を示し、
図Cは、魚画像の一例を示し、
図Dは、
図Cに示す魚画像に写り込んだ魚の輪郭線をトレースした魚画像の模式図を示す。
図Aは、魚の一方側面を示し、
図Cは、前記魚の他方側面を示す。
図8は、一例として、魚情報テーブルを示す図である。
【0028】
実施形態における魚個体識別装置1000は、例えば、
図1に示すように、魚画像取得部1と、制御処理部2と、入力部3と、出力部4と、インターフェース部(IF部)5と、記憶部6とを備える。
【0029】
魚個体識別装置1000は、体表面に文様を備える魚Obを個体別に識別する装置である。識別対象の魚Obは、体表面に文様を備えれば、任意の種類の魚であってよい。前記文様は、例えば、縞模様を含む。あるいは、例えば、前記文様は、縦の縞模様を含む。あるいは、例えば、前記文様は、横の縞模様を含む。ここで、魚の場合、縦方向は、体長方向である。すなわち、魚の頭を上にして尾ひれを下にした場合において、縞模様の方向が判別され、上下方向が縦方向であり、左右方向が横方向である。前記魚は、前記研究に好ましい観点から、ゼブラフィッシュ(学名;Danio rerio)である。
【0030】
このような魚個体識別装置1000は、例えば、薬剤投与実験に用いられ、この薬剤投与実験を行う薬剤投与実験系SYは、例えば、
図2に示すように、薬剤投与前の魚Obを収容する投与前水槽TBと、魚画像を生成するために魚Obを収容する撮像用水槽TSと、薬剤を投与するために魚Obを保定する保定装置HDと、薬剤投与後の魚Obを飼育するために魚Obを収容する投与後水槽TAと、魚個体識別装置1000とを備える。撮像用水槽TSは、比較的一方向に長い中空な直方体形状であり、上面には、前記魚Obを投入する投入口ENおよび前記魚Obを取り出す取出し口EXが設けられ、前記魚Obを撮像する際には、水面による反射を防止する観点から、撮像用水槽TSには、天面まで一杯に水が満たされる。
図2に示す例では、魚画像取得部1の一例としての撮像部1で、魚Obの背面(上面)、その一方側面およびその他方側面を1回の撮像で撮像できるように、撮像用水槽TSの両側それぞれには、45度に傾けられた各反射鏡ML、MRが配置されている。各反射鏡ML、MRの各反射面における各法線が撮像部1の光軸で90度で交差するように、各反射鏡ML、MRは、配置される。これにより、撮像部1の光軸に沿った光軸方向から、魚Obの一方側面および他方側面が視認可能となり、撮像部1は、魚Obの背面、その一方側面およびその他方側面を1回の撮像で撮像できる。
【0031】
図1に戻って、魚画像取得部1は、制御処理部2に接続され、制御処理部2の制御に従って魚Obの体表面の画像(魚画像)を取得するものである。
図2に示す例では、魚画像取得部1は、上述したように、その一例である、画像を生成する撮像部1である。撮像部1は、例えば、モノクロのデジタルカメラを備えて構成されてよいが、本実施形態では、カラーのデジタルカメラを備えて構成される。なお、魚画像取得部1は、例えば、外部の機器との間でデータを入出力するインターフェース回路を備えて構成されてもよい。前記外部の機器は、前記魚画像を記憶した、例えばUSB(Universal Serial Bus)メモリおよびSDカード(登録商標)等の記憶媒体である。あるいは、前記外部の機器は、前記魚画像を記録した、例えばCD-ROM(Compact Disc Read Only Memory)、CD-R(Compact Disc Recordable)、DVD-ROM(Digital Versatile Disc Read Only Memory)およびDVD-R(Digital Versatile Disc Recordable)等の記録媒体からデータを読み込むドライブ装置である。あるいは、魚画像取得部1は、例えば、外部の機器と通信信号を送受信する通信インターフェース回路であって、前記外部の機器は、ネットワーク(WAN(Wide Area Network、公衆通信網を含む))あるいはLAN(Local Area Network)を介して前記通信インターフェース回路に接続され、魚画像を管理するサーバ装置である。ここで、魚画像取得部1がインターフェース回路や通信インターフェース回路である場合では、魚画像取得部1は、IF部5と兼用されてもよい(すなわち、IF部5が魚画像取得部1として用いられてもよい)。
【0032】
なお、上述では、1個の撮像部1で、魚Obの背面、その一方側面およびその他方側面それぞれを撮像して1個の魚画像が生成されたが、魚Obの背面の魚画像を生成する撮像部(第1撮像部)、魚Obの一方側面の魚画像を生成する撮像部(第2撮像部)、および、魚Obの他方側面の魚画像を生成する撮像部(第3撮像部)で個別に各魚画像が生成されてもよい。
【0033】
入力部3は、制御処理部2に接続され、例えば、機械学習の開始を指示するコマンドや個体識別の開始を指示するコマンド等の各種コマンド、および、実験名や魚の個体名等の、魚個体識別装置1000を動作させる上で必要な各種データを前記魚個体識別装置1000に入力する機器であり、例えば、キーボード、マウス、および、所定の機能を割り付けられた複数の入力スイッチ等である。出力部4は、制御処理部2に接続され、制御処理部2の制御に従って、入力部3から入力されたコマンドやデータおよび魚画像や個体識別結果等を出力する機器であり、例えばCRTディスプレイ、LCD(液晶表示装置)および有機ELディスプレイ等の表示装置やプリンタ等の印刷装置等である。
【0034】
なお、入力部3および出力部4は、タッチパネルより構成されてもよい。このタッチパネルを構成する場合において、入力部3は、例えば抵抗膜方式や静電容量方式等の操作位置を検出して入力する位置入力装置であり、出力部4は、表示装置である。このタッチパネルでは、表示装置の表示面上に位置入力装置が設けられ、表示装置に入力可能な1または複数の入力内容の候補が表示され、ユーザが、入力したい入力内容を表示した表示位置に触れると、位置入力装置によってその位置が検出され、検出された位置に表示された表示内容がユーザの操作入力内容として魚個体識別装置1000に入力される。このようなタッチパネルでは、ユーザは、入力操作を直感的に理解し易いので、ユーザにとって取り扱い易い魚個体識別装置1000が提供される。
【0035】
IF部5は、制御処理部2に接続され、制御処理部2の制御に従って、例えば、外部の機器との間でデータを入出力する回路であり、例えば、シリアル通信方式であるRS-232Cのインターフェース回路、Bluetooth(登録商標)規格を用いたインターフェース回路、および、USB規格を用いたインターフェース回路等である。また、IF部5は、例えば、データ通信カードや、IEEE802.11規格等に従った通信インターフェース回路等の、外部の機器と通信信号を送受信する通信インターフェース回路であってもよい。
【0036】
記憶部6は、制御処理部2に接続され、制御処理部2の制御に従って、各種の所定のプログラムおよび各種の所定のデータを記憶する回路である。前記各種の所定のプログラムには、例えば、制御処理プログラムが含まれ、前記制御処理プログラムには、例えば、制御プログラム、機械学習プログラム、魚個体識別プログラムおよび記録処理プログラム等が含まれる。前記制御プログラムは、魚個体識別装置1000の各部1、3~6を当該各部の機能に応じてそれぞれ制御するプログラムである。前記機械学習プログラムは、画像に基づいて魚を個体別に識別する機械学習モデル(魚個体識別モデル)を学習データで機械学習するプログラムである。前記魚個体識別プログラムは、前記機械学習モデルを用いることによって、魚画像取得部1で取得した画像に写り込んだ魚を個体別に識別するプログラムである。前記記録処理プログラムは、魚Obに関する所定の情報(魚情報)を記憶部6に記憶するプログラムである。前記各種の所定のデータには、例えば、学習データ、魚画像取得部1で取得した魚画像、魚情報および各画面等の、これら各プログラムを実行する上で必要なデータが含まれる。
【0037】
このような記憶部6は、例えば不揮発性の記憶素子であるROM(Read Only Memory)や書き換え可能な不揮発性の記憶素子であるEEPROM(Electrically Erasable Programmable Read Only Memory)等を備える。そして、記憶部6は、前記所定のプログラムの実行中に生じるデータ等を記憶するいわゆる制御処理部2のワーキングメモリとなるRAM(Random Access Memory)等を含む。また、記憶部6は、比較的記憶容量の大きいハードディスク装置を備えて構成されてもよい。
【0038】
記憶部6は、学習データおよび魚情報それぞれを記憶するために、学習データ記憶部61および魚情報記憶部62を機能的に備える。
【0039】
学習データ記憶部61は、複数の学習データを備える学習データセットを記憶するものである。前記学習データは、魚Obを写し込んだ魚画像と、前記魚画像に写り込んでいる魚の識別子とを備えた教師ありの学習データである。前記魚の識別子(ID)は、魚Obを特定し識別するための符号(記号、1または複数の文字等)であり、例えば、個々の魚Obに付与した魚名等である。前記学習データにおける第1態様の魚画像PCaは、例えば、
図3に示すように、撮像部1で生成したカラー画像そのものであって、前記魚画像PCaには、魚Obの背面(上面)、その一方側面およびその他方側面が写り込んでいる。あるいは、例えば、前記学習データにおける第2態様の魚画像PCbは、
図4に示すように、撮像部1で生成したカラー画像そのものであって、前記魚画像PCbには、魚Obの一方側面およびその他方側面が写り込んでいる。すなわち、魚画像PCbは、魚画像PCaから、魚Obの背面を写し込んだ画像領域を矩形で削除した画像である。あるいは、例えば、前記学習データにおける第3態様の魚画像PCcは、
図5に示すように、背景を単色(例えば黒色や白色等)にした魚画像であって、前記魚画像PCcには、魚Obの背面(上面)、その一方側面およびその他方側面が写り込んでいる。このような魚画像PCcは、例えば、撮像部1で生成した魚画像の背景を単色に塗り潰す画像処理によって作成されてよく、あるいは、例えば、単色の背景部材を魚Obに対して配置して撮像部1で魚画像を生成することによって作成されてもよい。あるいは、例えば、前記学習データにおける第4態様の魚画像PCdは、
図6に示すように、背景を単色にした魚画像であって、前記魚画像PCdには、魚Obの一方側面およびその他方側面が写り込んでいる。これら第1ないし第4態様のように、魚Obの一方側面の画像と前記魚Obの他方側面の魚画像とは、1個の魚画像PCa~PCdで構成されてよい。あるいは、例えば、前記学習データにおける第5態様の魚画像PCeは、
図7に示すように、背景を単色にした1対の魚画像PCe1、PCe2であって、一方の魚画像PCe1には、魚Obの一方側面が写り込み、他方の魚画像PCe2は、前記魚Obの他方側面が写り込んでいる。この第5態様のように、魚Obの一方側面の画像と前記魚Obの他方側面の画像とは、個別の画像PCe1、PCe2で構成されてよい。
【0040】
本実施形態では、少なくとも識別対象の魚Obそれぞれについて、学習データが用意され、1個(匹)の魚Obの個体に対し、複数の学習データが用意される。
【0041】
魚情報記憶部62は、魚情報を記憶するものである。前記魚情報は、魚Obに関する所定の情報であり、魚Obの使用用途等に応じて適宜な項目(属性)を備えて構成される。例えば、薬剤投与の経過観察では、前記魚情報は、魚ObのID、体重、体長およびその測定日等を備えて構成される。
【0042】
この魚情報は、本実施形態では、テーブル形式で魚情報記憶部62に記憶されている。この魚情報を登録する魚情報テーブルLTは、例えば、
図8に示すように、魚ObのIDを登録する個体IDフィールド621と、個体IDフィールド621に登録されたIDの魚Obに対して体重および体長を測定した測定日を登録する日付フィールド622と、個体IDフィールド621に登録されたIDの魚Obを、日付フィールド622に登録された測定日に測定した体重を登録する体重フィールド623と、個体IDフィールド621に登録されたIDの魚Obを、日付フィールド622に登録された測定日に測定した体長を登録する体長フィールド624とを備え、IDおよび測定日ごとにレコードを持つ。
【0043】
制御処理部2は、魚個体識別装置1000の各部1、3~6を当該各部の機能に応じてそれぞれ制御し、前記機械学習モデルを機械学習し、魚Obを個体別に識別するための回路である。制御処理部2は、例えば、CPU(Central Processing Unit)およびその周辺回路を備えて構成される。制御処理部2には、前記制御処理プログラムが実行されることによって、制御部21、機械学習部22、魚個体識別部23および記録処理部24が機能的に構成される。
【0044】
制御部21は、魚個体識別装置1000の各部1、3~6を当該各部の機能に応じてそれぞれ制御し、魚個体識別装置1000の全体の制御を司るものである。
【0045】
機械学習部22は、画像に基づいて魚を個体別に識別する未機械学習の機械学習モデルを学習データで機械学習するものである。本実施形態では、機械学習部22は、学習データ記憶部61に記憶されている学習データセットで前記機械学習モデルを機械学習する。前記機械学習モデルは、本実施形態では、例えば、魚画像PCを入力すると、前記魚画像PCに写り込んだ魚の個体別に識別し、魚ObのIDおよび確信度[%]を出力する。前記機械学習モデルには、例えば深層学習(ディープラーニング、Deep Learning)の畳み込みニューラルネットワーク((Convolutional Neural Network、CNN)が用いられる。より具体的には、本実施形態では、CNNの一種である、物体認識精度の比較的高い公知のVGG16が用いられた。前記VGG16は、13層の第1ないし第13畳込み層と、3層の第1ないし第3結合層とを備える。より詳しくは、第1および第2畳込み層と第3および第4畳込み層との間に、第1および第2畳込み層に対する第1プーリング層(max pooling)を備え、第3および第4畳込み層と第5ないし第7畳込み層との間に、第3および第4畳込み層に対する第2プーリング層を備え、第5ないし第7畳込み層と第8ないし第10畳込み層との間に、第5ないし第7畳込み層に対する第3プーリング層を備え、第8ないし第10畳込み層と第11ないし第13畳込み層との間に、第8ないし第10畳込み層に対する第4プーリング層を備えている。最終層には、ソフトマックス(softmax)が用いられている。
【0046】
機械学習部22は、本実施形態では、さらに、前記機械学習の前に、学習データセットを作成し、前記作成した学習データセットを学習データ記憶部61に記憶する。より具体的には、機械学習部22は、本実施形態では、識別対象の魚Obそれぞれについて、当該魚Obを撮像部1で、複数、撮像し、前記撮像した複数の魚画像PCそれぞれから、例えば複数の第5態様の魚画像PCe(PCe1、PCe2)を生成し、前記生成した複数の第5態様の魚画像PCeそれぞれに当該魚ObのIDを対応付けることによって、当該魚Obに対する複数の学習データを作成し、前記識別対象の魚Obそれぞれについて作成した複数の学習データを学習データセットとして学習データ記憶部61に記憶する。ここで、撮像部1で生成した魚画像PCが例えば胴体部位が曲がって魚Obが写り込んでいる等の、学習データの魚画像PCとして不適当な魚画像は、廃棄され、排除される。なお、撮像部1で生成した魚画像PCから、魚Obの写り込んでいる画像領域の位置を変更する等によって、複数の魚画像PCeが生成され、水増しされてもよい。
【0047】
魚個体識別部23は、画像に基づいて魚を個体別に識別する機械学習モデルを用いることによって、前記魚画像取得部1で取得した画像に写り込んだ魚Obを個体別に識別するものである。魚個体識別部23で用いる機械学習モデルは、前記機械学習部22で機械学習した機械学習済みの機械学習モデルである。より具体的には、撮像部1で取得した1個の魚画像PCに基づいて機械学習済みの機械学習モデルで前記魚画像PCに写り込んだ魚Obの個体を識別してもよいが、より正確に個体を識別するために、本実施形態では、魚個体識別部23は、撮像部1で取得した複数の魚画像PCに基づいて機械学習済みの機械学習モデルで前記魚画像PCに写り込んだ魚Obの個体を識別している。より詳しくは、魚個体識別部23は、機械学習済みの機械学習モデルとしてのVGG16(不図示)と、複数の魚画像PCそれぞれで識別した魚Obの各IDおよび各確信度に基づいて各IDの最終的な確信度を求める確信度演算部(不図示)とを備える。魚個体識別部23は、まず、撮像部1によって1個の個体に対し、複数の魚画像PCを生成させ、取得する。続いて、魚個体識別部23は、前記VGG16によって複数の魚画像PCそれぞれについて、その出力として魚ObのIDとその確信度を求める。そして、魚個体識別部23は、前記確信度演算部によって、前記求めた魚ObのIDそれぞれについて、当該魚ObのIDに対応する各確信度の平均値を最終的な確信度として求める。このため、本実施形態では、このように求めた魚ObのIDとその最終的な確信度が魚個体識別部23から出力される。
【0048】
記録処理部24は、前記魚情報を記憶部6の魚情報記憶部62に記憶するものである。本実施形態では、記録処理部24は、魚個体識別部23から出力された個体名、本実施形態では魚ObのIDを修正する個体名修正部として機能する。より具体的には、記録処理部24は、上述のように機械学習部22で学習データセットを作成する際に、各個体それぞれについて、当該魚ObにIDを付与し、当該魚Obにおける体重と体長とを求め、魚情報記憶部62に記憶されている魚情報テーブルLTに新たにレコードを作成し、この新たに作成したレコードにおける個体IDフィールド621、体重フィールド623、体長フィールド624および日付フィールド622それぞれに、当該魚Obの魚情報として、前記付与したID、前記求めた体重、前記求めた体長およびこの測定日それぞれを登録する。これによって、例えば、薬剤投与の経過観察を始める初期値が各個体ごとに魚情報記憶部62に記憶(記録)される。前記測定日を登録するために、本実施形態では、記録処理部24は、年月日を計時する時計機能を備える。前記体重および体長の測定は、オペレータ(ユーザ)による手動で求められてもよいが、本実施形態では、魚画像PCに基づいて魚Obの体重および体長が求められる。例えば、記録処理部24は、まず、機械学習済みのセマンティックセグメンテーションによって背びれ、腹ひれおよび尾ひれの各画像領域を除去し、魚Obの胴体部位の画像領域を抽出することによって、胴体部位を判定する。続いて、記録処理部24は、背面の胴体部位を囲む矩形領域を求め、前記求めた矩形領域の長尺な長さを魚Obの体長として求める。そして、前記抽出した魚Obの胴体部位の画像に基づいて魚Obの体重を求めるモデル(魚体重推定モデル)が予め生成され、記録処理部24は、この魚体重推定モデルによって、前記抽出した魚Obの胴体部位の画像に基づいて前記魚Obの体重を求める。前記魚体重推定モデルは、例えば、機械学習モデル等であってよいが、目的変数を魚Obの体重とし、説明変数を胴体部位における背面の面積、胴体部位における一方側面および他方側面の各面積、および、背面(上面)から見た、魚画像PCの上下方向に対する胴体の傾きとした線形重回帰解析で求められた。そして、前記機械学習モデルの機械学習が終了し、個体識別の際には、記録処理部24は、個体識別に用いた魚画像PCに基づいて魚Obにおける体重および体長を求める。続いて、記録処理部24は、魚情報記憶部62に記憶されている魚情報テーブルLTに新たにレコードを作成し、この新たに作成したレコードにおける個体IDフィールド621、体重フィールド623、体長フィールド624および日付フィールド622それぞれに、前記個体識別に用いた魚画像PCに写り込んでいる魚Obの魚情報として、前記個体名としてのID、前記求めた体重、前記求めた体長およびこの測定日それぞれを登録する。前記個体名には、魚個体識別部23から出力された個体名(この例では魚ObのID)が修正された場合には、修正後の個体名を、一方、魚個体識別部23から出力された個体名が修正されなかった場合には、魚個体識別部23から出力された個体名が用いられる。これにより、例えば薬剤投与の経過観察中における魚情報が魚情報記憶部62に記憶(記録)される。
【0049】
これら制御処理部2、入力部3、出力部4、IF部5および記憶部6は、例えば、デスクトップ型やノート型等のコンピュータによって構成可能である。上述したように、魚画像取得部1がインターフェース回路や通信インターフェース回路である場合では、魚画像取得部1がIF部5と兼用可能であるので、魚画像取得部1も含めてコンピュータによって構成可能である。
【0050】
次に、本実施形態の動作について説明する。
図9は、機械学習に関する前記魚個体識別装置の動作を示すフローチャートである。
図10ないし
図18は、一例として、前記魚個体識別装置に表示される第1ないし第9画面を示す図である。
図19は、個体識別に関する前記魚個体識別装置の動作を示すフローチャートである。
図20ないし
図24は、一例として、前記魚個体識別装置に表示される第10ないし第14画面を示す図である。
【0051】
このような構成の魚個体識別装置1000は、その電源が投入されると、必要な各部の初期化を実行し、その稼働を始める。制御処理部2には、その制御処理プログラムの実行によって、制御部21、機械学習部22、魚個体識別部23および記録処理部24が機能的に構成される。
【0052】
まず、機械学習に関する魚個体識別装置1000の動作について説明する。機械学習では、まず、学習データセットを作成するために、
図9において、魚個体識別装置1000は、制御処理部2の機械学習部22によって、撮像部1で魚画像PCを取得する(S11、魚画像取得工程)。より具体的には、制御処理部2の制御部21は、例えば
図10に示す第1画面(魚個体識別トップ画面)SC1を出力部4に表示する。前記第1画面SC1は、撮像部1の撮像を魚個体識別装置1000に指示する「撮像」ボタン41と、魚情報の閲覧を魚個体識別装置1000に指示する「データ閲覧」ボタン42とを備える。前記データ閲覧ボタン42がオペレータによって入力操作されると、制御処理部2の記録処理部24は、魚情報記憶部62から魚情報テーブルLTに登録されている魚情報を読み込み、前記読み込んだ魚情報を例えば一覧表形式で出力部4に出力する。ここでは、「撮像」ボタン41がオペレータによって入力操作される。「撮像」ボタン41が入力操作されると、制御部21は、例えば
図11に示す第2画面(学習個体識別選択画面)SC2を出力部4に表示する。前記第2画面SC2は、学習データセットの作成、および、未機械学習の機械学習モデルの機械学習を魚個体識別装置1000に指示する「初回(学習)」ボタン43と、個体識別および魚情報の取得を魚個体識別装置1000に指示する「2回目以降(判別)」ボタン44と、第1画面SCの表示を魚個体識別装置1000に指示する「TOPに戻る」ボタン45とを備える。「TOPに戻る」ボタン45がオペレータによって入力操作されると、第1画面SC1が出力部4に表示される。ここでは、「初回(学習)」ボタン43がオペレータによって入力操作される。「初回(学習)」ボタン43が入力操作されると、制御部21は、例えば
図12に示す第3画面(案件名入力画面)SC3を出力部4に表示する。前記第3画面SC3は、入力部3で入力された案件名を表示する案件名表示領域46と、次の画面の遷移を魚個体識別装置1000に指示する「次へ」ボタン47とを備える。ここでは、案件名;「XX案件」がオペレータによって入力され、「次へ」ボタン47がオペレータによって入力操作される。「次へ」ボタン47が入力操作されると、制御部21は、例えば
図13に示す第4画面(第1撮像開始指示画面)SC4を出力部4に表示する。前記第4画面SC3は、入力部3で入力された魚ObのIDを表示するID表示領域48と、撮像の開始を魚個体識別装置1000に指示する「撮像開始」ボタン49とを備える。魚ObのIDは、制御処理部2によって自動的に生成されてよいが、本実施形態では、オペレータによって生成され、入力される。
図13に示す例では、撮像部1によって撮像されている動画(モニタ動画)も第4画面SC4に表示される。ここでは、「撮像開始」ボタン49がオペレータによって入力操作される。「撮像開始」ボタン49が入力操作されると、機械学習部22は、撮像部1で魚画像PCを取得する。この魚画像PCの取得中、本実施形態では、制御部21は、例えば
図14に示す第5画面(撮像中通知画面)SC5を出力部4に表示する。前記第5画面SC5は、撮像の中止を魚個体識別装置1000に指示する「撮像中止」ボタン50を備える。前記「撮像中止」ボタン50が入力操作されると、撮像が中止され、第1画面SC1が出力部4に表示される。
図13に示す例では、前記第5画面SC5には、撮像の処理の進捗状況が表示され、撮像中の魚画像PCが表示される。
【0053】
続いて、魚個体識別装置1000は、機械学習部22によって、前記取得した魚画像PCが学習データとして利用可能か否かを判定するために、適正姿勢であるか否かを判定する(S12)。この判定の結果、適正姿勢ではないと判定した場合(No)には、機械学習部22は、処理S12で取得した魚画像PCを破棄し(S14)、処理を処理S11に戻す。一方、前記判定の結果、適正姿勢である判定した場合(Yes)には、機械学習部22は、次に、処理S12で取得した魚画像PCを記憶部6に記憶する(S13)。
【0054】
処理S12の判定は、オペレータによる手動で判定されてよいが、本実施形態では、例えば適正姿勢のパターンが予め用意され、パターンマッチングによって、あるいは例えば画像に基づいて適正姿勢であるか否かを判別する機械学習済みの機械学習モデル(適正姿勢判別モデル)によって、実施される。
【0055】
処理S13に続いて、魚個体識別装置1000は、制御処理部2の記録処理部24によって、体重および体長を求めるために、処理S12で取得した魚画像PCに対し部位判定し(S15)、続いて、魚個体識別装置1000は、記録処理部24によって、処理S12で取得した魚画像PCに写り込んだ魚Obの体重および体長を求めて魚情報を魚情報記憶部62に記憶する(S16)。本実施形態では、魚情報は、案件名を対応付けて記憶される。より具体的には、前記魚情報を登録した魚情報テーブルLTに案件名が対応付けられる。
【0056】
続いて、魚個体識別装置1000は、機械学習部22によって、処理S12で取得した魚画像PCを学習データ用に加工し、魚ObのIDと対応付けて記憶部6に記憶する(S17)。機械学習部22は、例えば、第2ないし第5態様の魚画像PCb~PCeのうちのいずれかに、例えば、第5態様の魚画像PCeに、処理S12で取得した魚画像PCを加工し、前記加工した第5態様の魚画像PCeを魚ObのIDと対応付けて記憶部6に記憶する。
【0057】
続いて、魚個体識別装置1000は、機械学習部22によって、予め設定された所定の個数(第1個数、例えば300個や400個等)の魚画像PCを取得したか否かを判定する(S18)。この判定の結果、所定の個数の魚画像PCを取得していない場合(No)には、魚個体識別装置1000は、処理を処理S11に戻す。前記判定の結果、所定の個数の魚画像PCを取得している場合(Yes)には、魚個体識別装置1000は、前記処理S17で記憶部6に仮に記憶(保存)していた学習データ用に加工した魚画像PCとそのIDとを学習データセットの学習データとして学習データ記憶部61に記憶(保存)する(S19)。
【0058】
処理S19に続いて、魚個体識別装置1000は、機械学習部22によって、魚Obの全ての個体について学習データセットの学習データを作成したか否かを判定する(S20)。この判定は、オペレータの指示入力によって実施される。機械学習部22は、例えば
図15に示す第6画面(第1判定指示画面)SC6を出力部4に表示する。前記第6画面SC6は、次の個体に対する学習データセットの作成を魚個体識別装置1000に指示する「次の個体を撮像」ボタン51と、全ての個体についての学習データセットの作成完了を魚個体識別装置1000に指示する「全個体完了」ボタン52とを備える。「次の個体を撮像」ボタン51がオペレータによって入力操作され、「次の個体を撮像」ボタン51が入力操作されると、全ての個体について前記学習データを作成していない、と判定し(No)、魚個体識別装置1000は、処理を処理S11に戻す。一方、「全個体完了」ボタン52がオペレータによって入力操作され、「全個体完了」ボタン52が入力操作されると、全ての個体について前記学習データを作成している、と判定し(Yes)、魚個体識別装置1000は、機械学習部22によって、学習データ記憶部61に記憶されている学習データセットで未機械学習の前記機械学習モデルを機械学習し(S21、機械学習工程)、この機械学習済みの前記機械学習モデルを、魚個体識別部23で用いる機械学習モデルとして記憶部6に記憶し(S22)、本処理を終了する。
【0059】
なお、上述では、処理S21は、自動的に開始されたが、オペレータの指示によって開始されてもよい。この場合、機械学習部22は、例えば
図16に示す第7画面(学習指示画面)SC7を出力部4に表示する。前記第7画面SC7は、機械学習の開始を魚個体識別装置1000に「学習開始」ボタン53と、第1画面SC1の表示を個体識別装置1000に指示する「TOPに戻る」ボタン54とを備える。
【0060】
また、処理S22の実行中に、例えば
図17に示す第8画面(学習実行中通知画面)SC8が出力部4に表示され、機械学習が終了すると、例えば
図18に示す第9画面(学習終了通知画面)SC9が出力部4に表示されてもよい。前記第8画面SC8は、学習の中止を魚個体識別装置1000に指示する「学習中止」ボタン55と、機械学習の進捗状況を表示する進捗状況表示バー56とを備える。「学習中止」ボタン55がオペレータによって入力操作されると、第7画面SC7が出力部4に表示される。前記第9画面SC9は、第1画面SC1の表示を個体識別装置1000に指示する「TOPに戻る」ボタン57と、機械学習の終了を表示する学習終了表示領域58とを備える。
【0061】
このように動作することで、学習データセットが作成され、これを用いて機械学習モデルが機械学習される。
【0062】
次に、個体識別に関する魚個体識別装置1000の動作について説明する。個体識別では、
図19において、まず、魚個体識別装置1000は、制御処理部2の魚個体識別部23によって、撮像部1で魚画像PCを取得する(S31、魚画像取得工程)。より具体的には、制御処理部2の制御部21は、第1画面SC1を出力部4に表示する。ここでは、「撮像」ボタン41がオペレータによって入力操作される。「撮像」ボタン41が入力操作されると、制御部21は、第2画面SC2を出力部4に表示する。ここでは、「2回目以降(判別)」ボタン44がオペレータによって入力操作される。「2回目以降(判別)」ボタン44が入力操作されると、制御部21は、例えば
図20に示す第10画面(案件選択画面)SC10を出力部4に表示する。前記第10画面SC10は、魚情報記憶部62に記憶されている魚情報の案件名を選定するための画面である。
図20に示す例の第10画面SCには、案件名、前記案件名での個体数および測定日の各項目が案件名ごとに一覧表形式で表示される。前記案件名での個体数は、案件名に対応する魚情報テーブルLTに登録されている、互いに異なるIDの個数を計数することによって求められる。前記測定日は、案件名に対応する魚情報テーブルLTに登録されている測定日を、異なる日付ごとに抽出することによって求められる。第10画面SC10は、一覧表形式で表示されている案件名ごとに、当該案件名の指定を魚個体識別装置1000に指示する「選択」ボタン71(71-1、71-2、71-3)と、一覧表形式で表示されている案件名のスクロールを魚個体識別装置1000に指示する縦スクロールスライダー72-1と、一覧表形式で表示されている各項目のスクロールを魚個体識別装置1000に指示する横スクロールスライダー72-2と、1つ前の画面SCの表示を魚個体識別装置1000に指示する「戻る」ボタン73と備える。ここでは、「選択」ボタン71(例えば「選択」ボタン71-1)がオペレータによって入力操作される。「選択」ボタン71が入力操作されると、制御部21は、例えば
図21に示す第11画面(第2撮像開始指示画面)SC11を出力部4に表示する。前記第11画面SC11は、撮像の開始を魚個体識別装置1000に指示する「撮像開始」ボタン74を備える。
図21に示す例では、「撮像対象の準備が出来たら撮像開始ボタンを押してください」というメッセージ、および、撮像部1によって撮像されている動画(モニタ動画)も第11画面SC11に表示される。「撮像開始」ボタン74が入力操作されると、魚個体識別部23は、撮像部1で魚画像PCを取得する。この魚画像PCの取得中、本実施形態では、制御部21は、例えば
図22に示す第12画面(撮像中通知画面)SC12を出力部4に表示する。前記第12画面SC12は、撮像の中止を魚個体識別装置1000に指示する「撮像中止」ボタン75を備える。
図22に示す例では、前記第12画面SC12には、撮像の処理の進捗状況が表示され、撮像中の魚画像PCが表示される。
【0063】
続いて、魚個体識別装置1000は、上述した処理S12ないし処理S18の各処理と同様な処理S32ないし処理S38の各処理を実行する。
【0064】
処理S38の判定の結果、予め設定された所定の個数(第2個数、例えば100個や200個等)の魚画像PCを取得した場合に実行される処理S39(魚個体識別工程)では、魚個体識別装置1000は、魚個体識別部23によって、上述の各処理で取得した複数の魚画像PCを機械学習済みの機械学習モデルに用いることで前記魚画像PCに写り込んだ魚Obの個体を識別し、識別結果の魚ObのIDと最終的な確信度とを記憶部6に記憶する。
【0065】
処理S39に続いて、魚個体識別装置1000は、魚個体識別部23によって、魚Obの全ての個体について個体識別を実施したか否かを判定する(S40)。この判定は、オペレータの指示入力によって実施される。魚個体識別部23は、例えば
図23に示す第13画面(第2判定指示画面)SC13を出力部4に表示する。前記第13画面SC13は、次の個体に対する個体識別の実施を魚個体識別装置1000に指示する「次の個体を撮像」ボタン76と、全ての個体についての個体識別の実施完了を魚個体識別装置1000に指示する「全個体完了」ボタン77とを備える。「次の個体を撮像」ボタン76がオペレータによって入力操作され、「次の個体を撮像」ボタン76が入力操作されると、全ての個体について前記個体識別を実施していない、と判定し(No)、魚個体識別装置1000は、処理を処理S31に戻す。一方、「全個体完了」ボタン77がオペレータによって入力操作され、「全個体完了」ボタン77が入力操作されると、全ての個体について前記個体識別を実施している、と判定し(Yes)、魚個体識別装置1000は、記録処理部24によって、識別結果の個体名(ID)を修正する個体名修正処理を実行する(S41、個体名修正工程)。
【0066】
前記個体名修正処理では、より具体的には、記録処理部24は、例えば
図24に示す第14画面(個体名修正指示画面)SC14を出力部4に出力する。前記第14画面SC14は、識別結果を表示し、識別結果の個体名(ID)の修正を魚個体識別装置1000に指示するための画面である。
図24に示す例の第14画面SC14は、識別結果の個体名(ID)とその確信度とを識別対象の個体ごとに一覧表形式で表示する識別結果表示領域78を備える。この識別結果表示領域78に表示される識別結果の個体名(ID)とその確信度とは、機械学習モデルで識別した個体ごとに表示される。例えば、1個の個体に対する複数の魚画像PCに基づいて機械学習モデルで個体識別した結果、個体名;「A」、個体名;「B」および個体名;「C」が識別された場合、この識別対象の1個の個体に対する識別結果として、個体名;「A」とその確信度、個体名;「B」とその確信度、および、個体名;「C」とその確信度が識別結果表示領域78に表示される。そして、第14画面SC14は、一覧表形式で表示されている識別対象の個体のスクロールを魚個体識別装置1000に指示する縦スクロールスライダー79-1と、個体名とその確信度との組のスクロールを魚個体識別装置1000に指示する横スクロールスライダー79-2と、オペレータによって入力部3で入力された修正内容を表示する修正内容表示領域80と、修正内容表示領域80に表示されている修正内容での修正を魚個体識別装置1000に指示する「修正」ボタン81と、処理S39で個体識別した識別結果での魚情報の記憶(保存)または前記修正後の識別結果での魚情報の記憶(保存)を魚個体識別装置1000に指示する「結果登録」ボタン82とを備える。修正内容表示領域80は、
図24に示す例では、個体名(ID)を修正する識別対象の個体を表示する修正対象表示領域80-1と、オペレータによって入力部3で入力された修正後の個体名(ID)を表示する修正個体名表示領域80-2とを備える。
【0067】
「結果登録」ボタン82がオペレータによって入力操作されると、魚個体識別装置1000は、記録処理部24によって、魚情報を魚情報記憶部62に記憶(保存)し(S42)。本処理を終了する。この魚情報の記憶では、記録処理部24は、修正内容表示領域80が空欄で「結果登録」ボタン82が入力操作された場合には、処理S39で個体識別した識別結果での魚情報を魚情報記憶部62に記憶し、一方、修正内容表示領域80に修正内容を表示した状態で「結果登録」ボタン82が入力操作された場合には、前記修正後の識別結果での魚情報を魚情報記憶部62に記憶する。なお、前記識別結果が重複している場合(例えば複数の個体の識別結果がいずれも「A」となっている場合等)、修正内容表示領域80が空欄では、「結果登録」ボタン82が入力操作できないようになっている。
【0068】
このように動作することで、識別対象の魚Obが個体識別され、魚情報が魚情報記憶部62に記憶(保存)される。
【0069】
なお、上述において、個体名(ID)が修正された場合には、学習データセットに、名が修正された魚画像PCと修正後のIDとを学習データとして加え、この学習データを加えた学習データセットで前記機械学習モデルが機械学習部22によって再機械学習されてもよい。この場合では、前記第14画面SC14には、
図24に破線で示すように、前記再機械学習を魚個体識別装置1000に指示する「モデル更新」ボタン83がさらに設けられてよい。これにより経過観察の時間経過に従って魚Obが成長し、確信度が低下する場合でも、確信度を回復できる。
【0070】
以上説明したように、本実施形態における魚個体識別装置1000ならびにこれに実装された魚個体識別方法および魚個体識別プログラムは、画像に基づいて魚を個体別に識別する機械学習モデルを用いることによって、魚Obを個体別に識別する。したがって、これによれば、人の識別方法とは異なる手法を用いて魚を個体別に識別する魚個体識別装置1000、魚個体識別方法および魚個体識別プログラムが提供できる。
【0071】
本実施形態によれば、機械学習によって機械学習済みの機械学習モデルを生成する魚個体識別装置1000、魚個体識別方法および魚個体識別プログラムが提供できる。
【0072】
上記魚個体識別装置1000、魚個体識別方法および魚個体識別プログラムは、背景を単色にした前記魚の画像を含む学習データで前記機械学習モデルを機械学習する場合には、ノイズとなる背景を除去して魚だけで機械学習できるから、より正確に個体識別できるように機械学習モデルを機械学習できる。
【0073】
上記魚個体識別装置1000、魚個体識別方法および魚個体識別プログラムは、前記魚の一方側面の画像と、前記魚の他方側面の画像とを含む学習データで前記機械学習モデルを機械学習する場合には、両側面の文様で機械学習できるから、より正確に個体識別できるように機械学習モデルを機械学習できる。
【0074】
上記魚個体識別装置1000、魚個体識別方法および魚個体識別プログラムは、個体識別で個体名を誤った場合でも、個体名を修正できる。
【0075】
なお、上述の実施形態において、魚個体識別装置1000は、
図1に破線で示すように、前記機械学習モデルの疑似空間を用いることによって、複数の魚Obをグループ別に分類する分類部25をさらに備えてもよい(第1変形形態)。
図1に示す例では、記憶部6は、前記制御処理プログラムに含まれるプログラムとして、前記機械学習モデルの疑似空間を用いることによって、複数の魚Obをグループ別に分類する分類プログラムをさらに記憶し、分類部25は、制御処理部2に機能的に構成される。このような魚個体識別装置1000、魚個体識別方法および魚個体識別プログラムは、複数の魚Obをグループ別に分類するので、各グループから魚Obを選抜することにより、個体識別がし易くなり、個体識別の誤判定を低減することが可能となる。
【0076】
図25は、第1変形形態における魚個体識別装置を説明するための図である。
図25Aは、前記機械学習モデルの一例として機械学習済みのVGG16における第1結合層の各ノードから成る疑似空間での分類結果を示し、
図25Bは、前記機械学習モデルの一例として機械学習済みのVGG16における第1プーリング層の各ノードから成る疑似空間での分類結果を示す。
図25Aおよび
図25Bは、作図の都合上、n次元の疑似空間が2次元に平坦化されている。
【0077】
図25Aおよび
図25Bは、9個(匹)の各個体における288個の魚画像PC(例えば一側面を撮像した無加工の魚画像PC、1個体当たりおおよそ30個前後の魚画像PC)を機械学習済みの機械学習モデルに用いて得られた結果である。
図25Aと
図25Bとを比較すると分かるように、VGG16の初段付近(入力側付近、この例では前記第1プーリング層)では、その疑似空間で9個の各個体を分類できていないが、VGG16の終段付近(出力側付近、この例では前記第1結合層)では、9個のグループGr1~Gr9に略纏まっていることから、9個の各個体を分類できている。したがって、例えば、10個目の個体における魚画像PCを機械学習済みの機械学習モデルに用いて9個のグループGr1~Gr9のうちのいずれに属するかを判定することで、前記10個目の個体の属するグループGrが判定できる。もちろん、前記10個目の個体が9個のグループGr1~Gr9のいずれにも属しない場合もあり得る。前記判定は、例えば、公知のクラスタリング手法を用いることができる。例えば、分類部25によって、各グループGrの各中心位置が求められ、10個目の個体における魚画像PCを機械学習済みの機械学習モデルに用いて得られた結果と、各グループGrの各中心位置それぞれとの各距離が求められ、これら各距離のうち、予め設定された閾値(グループ判定閾値)以下の距離がある場合には、分類部25は、その距離に対応するグループGrに、10個目の個体が属すると、判定する。なお、複数の距離がグループ判定閾値以下である場合には、分類部25は、最も短い距離に対応するグループGrに、10個目の個体が属すると、判定すればよい。オペレータは、分類部25の分類結果を参照して識別対象(観察対象)の魚Obを選抜する。より具体的には、疑似空間を複数の所定サイズの区画に区分けし、分類部25の分類結果が前記複数の各区画に分散するように、識別対象の魚Obが選抜される。なお、選抜対象の魚Obにおける分類結果が区画の周辺部に位置する場合には、予め設定された閾値(選抜判定閾値)以下の距離に、既に選抜した他の魚Obにおける分類結果が位置する場合には、前記選抜対象の魚Obは、選抜しない。前記区画のサイズを調整することで、個体識別の容易性が調整できる。
【0078】
なお、上述の実施形態(前記第1変形形態を含む)において、魚個体識別装置1000は、
図1に破線で示すように、前記学習データおよび前記機械学習モデルのうちの少なくとも一方を共用可能に管理する管理サーバ装置に、前記学習データおよび前記機械学習モデルのうちの少なくとも一方を送信する送信処理部26をさらに備えてもよい(第2変形形態)。
図1に示す例では、記憶部6は、前記制御処理プログラムに含まれるプログラムとして、前記学習データおよび前記機械学習モデルのうちの少なくとも一方を共用可能に管理する管理サーバ装置に、前記学習データおよび前記機械学習モデルのうちの少なくとも一方を送信する送信処理プログラムをさらに記憶し、送信処理部26は、制御処理部2に機能的に構成される。このような魚個体識別装置1000、魚個体識別方法および魚個体識別プログラムは、共用可能な、前記学習データおよび前記機械学習モデルのうちの少なくとも一方を利用できるので、前記機械学習モデルの高精度化を可能とする。
【0079】
図26は、第2変形形態における魚個体識別装置を説明するための図である。この第2変形形態では、例えば、
図26に示すように、前記学習データおよび前記機械学習モデルのうちの少なくとも一方を共用可能に管理する管理サーバ装置SVと、通信ネットワークNWを介して、前記管理サーバ装置SVと通信可能に接続される、複数の第2変形形態における魚個体識別装置1000(1000-1、1000-2、1000-3、・・・、1000-n)とを備えるデータモデル共用システムMSが構成される。
【0080】
例えば魚個体識別装置1000-1において、オペレータによって入力部3から、学習データの送信が指示されると、送信処理部26は、学習データ記憶部61に記憶されている学習データセットを収容した通信信号(学習データ送信信号)を生成し、前記生成した学習データ送信信号を管理サーバ装置VSへIF部5および通信ネットワークNWを介して送信する。管理サーバ装置SVは、学習データ送信信号を受信すると、前記受信した学習データ送信信号に収容された学習データセットを記憶(保存)し、共用可能に管理する。管理サーバ装置SVは、例えば魚個体識別装置1000-2から、学習データセットの送信を要求する通信信号(学習データ要求信号)を受信すると、管理している学習データセットを収容した通信信号(学習データ返信信号)を生成し、返信する。この学習データ返信信号を受信すると、魚個体識別装置1000-2は、自機の機械学習済みの機械学習モデルを、この受信した学習データセットで再機械学習する。これにより、より正確に個体識別できるように前記自機の機械学習モデルが機械学習できる。あるいは、魚個体識別装置1000-2は、自機でゼブラフィッシュではない別の個体識別する機械学習済み他の機械学習モデルを、前記受信した学習データセットで転移学習する。これにより、前記機械学習済み他の機械学習モデルがゼブラフィッシュを個体識別する機械学習モデルに転用でき、より短時間でゼブラフィッシュを個体識別する機械学習モデルが生成できる。あるいは、魚個体識別装置1000-2は、自機で生成した複数の魚画像PCを、前記受信した学習データセットで未機械学習の機械学習モデルを機械学習する。この際に、前記受信した学習データセットに教師ありの学習データが含まれていれば(必ずしも全部の学習データが教師ありの学習データでなくてもよい)、前記自機で生成した複数の魚画像PCには、必ずしも教師データが付与されていなくても、半教師学習で、未機械学習の機械学習モデルが機械学習できる。
【0081】
また、例えば、管理サーバ装置SVと魚個体識別装置1000との間で、相互に、機械学習済みの機械学習モデルを送受信することで、連合学習が実施されてもよい。まず、管理サーバ装置SVは、複数の魚個体識別装置1000に機械学習済みの機械学習モデルを配布(送信)する。この配布する機械学習済みの機械学習モデルは、管理サーバ装置SVが新たに生成してよく、あるいは、魚個体識別装置1000で生成し、管理サーバ装置SVに送信されたものでもよい。この機械学習済みの機械学習モデルの配布を受けると、魚個体識別装置1000は、自機の学習データセットで機械学習し、前記配布を受けた機械学習済みの機械学習モデルをアップデートする。このアップデートした機械学習済みの機械学習モデルを、管理サーバ装置SVに、魚個体識別装置1000は、返信する。この際に、前記アップデートした機械学習済みの機械学習モデルそのものが返信されてよく、あるいは、前記アップデートによって変更された変更内容のみが返信されてよい。この返信を受けた管理サーバ装置SVは、前記配布した機械学習済みの機械学習モデルと、前記返信された機械学習済みの機械学習モデルとの差分(すなわち、前記変更内容)で、前記配布した機械学習済みの機械学習モデルをアップデートする。この際に、複数の魚個体識別装置1000それぞれから返信を受け得るので、複数の変更内容で前記アップデートが可能となる。そして、このアップデートした機械学習済みの機械学習モデルを、管理サーバ装置SVは、複数の魚個体識別装置1000に、再度、配布(送信)する。必要に応じて、これを繰り返す。これによって、魚個体識別装置1000は、学習データセットの学習データが比較的少なくても、より正確に個体識別できる機械学習済みの機械学習モデルが得られる。
【0082】
本発明を表現するために、上述において図面を参照しながら実施形態を通して本発明を適切且つ十分に説明したが、当業者であれば上述の実施形態を変更および/または改良することは容易に為し得ることであると認識すべきである。したがって、当業者が実施する変更形態または改良形態が、請求の範囲に記載された請求項の権利範囲を離脱するレベルのものでない限り、当該変更形態または当該改良形態は、当該請求項の権利範囲に包括されると解釈される。
【符号の説明】
【0083】
1000 魚個体識別装置
SV 管理サーバ装置
1 魚画像取得部
2 制御処理部
3 入力部
4 出力部
5 インターフェース部(IF部)
6 記憶部
21 制御部
22 機械学習部
23 魚個体識別部
24 記録処理部(修正部を含む)
25 分類部
26 送信処理部