本発明に係る水中生物の分析装置、分析方法、プログラムおよび水中生物監視システムについて、添付図面を参照して、実施形態とともに説明する。図1は、本発明による一実施形態に係る分析装置1を備えた水中生物監視システム100を示すシステム構成図である。水中生物監視システム100は、分析装置1、ステレオカメラ2、及び端末3を備える。ステレオカメラ2は、海中に設置された生簀4内で育成される水中生物を撮影できる位置に設置される。例えば、ステレオカメラ2は、直方体形状の生簀4の角に設置されており、生簀4の中心に撮影方向を向けて配置される。本実施形態では、生簀4内で魚を育成するものとして水中生物監視システム100の機能及び動作を説明する。
生簀4の水中に設置されるステレオカメラ2は、端末3と通信接続される。ステレオカメラ2は、撮影方向の画像を撮影して、撮影画像を端末3へ送信する。端末3は、分析装置1と通信接続される。端末3は、ステレオカメラ2から受信した撮影画像を分析装置1へ送信する。分析装置1は、例えば、インターネットなどの通信ネットワークに接続されたサーバ装置である。また、分析装置1は、サービス提供先端末5(以下、「端末5」と称する)と通信接続される。
分析装置1は、端末3を介してステレオカメラ2から受信した撮影画像と、その撮影画像に映る水中生物の形状特徴を特定するための特徴点と、に基づいて機械学習を行う。分析装置1は、機械学習により生成された学習データを用いて自動認識処理を行い、撮影画像内における水中生物の形状特徴を特定する特徴点を推定する。分析装置1は、撮影画像に映る水中生物の特徴点に基づいて、水中生物の大きさに関する報告を端末5へ送出する。一例として、分析装置1は、生簀4で育成する魚の特徴点に基づいて、魚体サイズを推定する。分析装置1は、魚体サイズの統計情報を含む監視報告を生成する。
上記の監視報告を生成するにあたり、分析装置1は、事前分析を行い、事前分析において撮影画像内の水中生物の特定度合を含む分析開始の判断資料情報を生成する。分析装置1は、判断資料情報を端末5へ送出する。端末5の利用者(又は、作業者)は、判断資料情報に含まれる水中生物(魚)の特定度合を確認して、本分析の開始を指示するか判断する。作業者は、端末5を操作して、本分析を開始するか否かを示す本分析開始指示を分析装置1へ送信する。分析装置1は、端末5から受信した本分析開始指示に従って本分析を開始する。
図2は、分析装置1のハードウェア構成図である。分析装置1は、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、データベース104、及び通信モジュール105を具備する。分析装置1は、通信モジュール105を介して端末3と通信する。なお、端末3及び5も分析装置1と同様のハードウェア構成を備える。
図3は、分析装置1の機能ブロック図である。分析装置1の起動後、CPU101はROM102などの記憶部に予め記憶されたプログラムを実行することにより、図2に示す機能部を実現する。
具体的には、分析装置1の起動後、記憶部に予め記憶された情報取得プログラムを実行することにより、分析装置1には、撮影画像取得部11及び特徴指定受付部12が実装される。また、分析装置1の起動後に、記憶部に予め記憶された機械学習プログラムを実行することにより、分析装置1には、学習部13が実装される。さらに、分析装置1の起動後に、記憶部に予め記憶された特徴推定プログラムを実行することにより、分析装置1には、学習データ取得部14、事前分析部101、特徴点推定部15、同一個体特定部16、データ破棄部17、大きさ推定部18、報告書情報生成部102、及び出力部19が実装される。
撮影画像取得部11は、端末3を介してステレオカメラ2から撮影画像を取得する。特徴指定受付部12は、撮影画像に映る魚体一体が収まる矩形範囲や魚体一体における複数の特徴点の入力を受け付ける。学習部13は、ステレオカメラ2から受信した撮影画像と、撮影画像に映る水中生物の形状特徴を特定するための特徴点とに基づいて機械学習を行う。なお、機械学習については後述する。学習データ取得部14は、学習部13により生成された学習データを取得する。特徴点推定部15は、学習データを用いた自動認識処理により撮影画像に映る魚の形状特徴を特定する特徴点を推定する。事前分析部101は、撮影画像における魚の特定度合に基づいて分析開始の判断資料情報を生成し、その判断資料情報を端末5へ送出する。同一個体特定部16は、ステレオカメラ2から得られた2つの撮影画像それぞれに映る同一個体の魚を特定する。データ破棄部17は、自動認識処理により推定した魚の複数の特徴点の関係が異常である場合に、その推定結果を破棄する。大きさ推定部18は、撮影画像内の魚の特徴点に基づいて魚の大きさを推定する。なお、魚の大きさは、本実施形態においては、魚の体長、体高、重量などである。報告書情報生成部102は、撮影画像から特定された魚の尾叉長、体高、重量、並びにそれらの数値の統計情報を用いて監視報告情報を生成する。出力部19は、大きさ推定部18の推定した魚の大きさに基づいて出力情報を生成し、その出力情報を所定の出力先へ送出する。
図4は、ステレオカメラ2により撮影された画像の一例を示す。ステレオカメラ2は、所定間隔を隔てて配置された2つのレンズ21、22を備え、左右のレンズ21、22に入射した光を撮像素子で捉えて2つの撮影画像を同一タイミングで撮影する。また、ステレオカメラ2は、所定の時間間隔で画像を撮影する。ここで、右側レンズ21に対応して第一撮影画像を生成し、左側レンズ22に対応して第二撮影画像を生成するものとする。図4は、第一撮影画像と第二撮影画像のうちの一方の撮影画像を示す。第一撮影画像と第二撮影画像の映る同一の魚の個体の位置は、レンズ21、22の位置に応じて画像中の位置に僅かな差異が生じる。ステレオカメラ2は、例えば、1秒間に数枚又は数十枚の撮影画像を生成する。ステレオカメラ2は、撮影画像を分析装置1へ順次送信する。分析装置1は、撮影画像の取得時刻、撮影時刻、第一撮影画像、第二撮影画像を紐づけてデータベース104へ順次記録する。
図5は、分析装置1の情報取得処理を示すフローチャートである(ステップS101~S106)。図6は、第一入力画像と第入力二画像の例を示す。
次に、分析装置1の情報取得処理について説明する。分析装置1は、起動後に、端末3を介してステレオカメラ2から撮影画像を順次取得する(S101)。このとき、撮影画像取得部11は、ステレオカメラ2により同時刻に撮影された第一撮影画像と第二撮影画像との組み合わせを順次取得する。分析装置1は、新たに入力した撮影画像に映る魚体一体が収まる第一矩形範囲A1や特徴点P1、P2、P3、P4が自動認識できる程度の学習データが生成できる数量の撮影画像を順次取得する。撮影画像取得部11は、第一撮影画像と第二撮影画像のそれぞれに識別情報(ID)を付与する。撮影画像取得部11は、第一撮影画像とID、第二撮影画像とIDをそれぞれ紐づけるとともに、同時刻に生成された第一撮影画像と第二撮影画像とを紐づけてデータベース104に記録する(S102)。
そして、作業者の操作に応じて特徴指定受付部12が処理を開始する。特徴指定受付部12は、ステレオカメラ2から得た撮影画像に映る魚体一体が収まる第一矩形範囲A1と、魚体一体の複数の特徴点P1、P2、P3、P4の入力を受け付ける(S103)。具体的には、特徴指定受付部12は、作業者により指定された撮影画像において第一矩形範囲A1と、特徴点P1、P2、P3、P4の入力を受付けるための第一入力画像G1、第二入力画像G2を含む入力アプリケーション画面を生成してモニタに表示する(S104)。このとき、特徴指定受付部12は、ステレオカメラ2の左右のレンズ21、22で撮影された第一撮影画像と第二撮影画像のそれぞれについて、第一矩形範囲A1と、特徴点P1、P2、P3、P4の入力を受け付けるための入力アプリケーション画面を生成してモニタに表示してもよい。
特徴指定受付部12は、入力アプリケーション画面上で作業者により指定された撮影画像を示す第一入力画像G1をモニタに表示する。作業者は、第一入力画像G1において魚体が含まれるようマウスなどの入力装置を用いて、第一矩形範囲A1を指定する。特徴指定受付部12は、第一矩形範囲A1を拡大した第二入力画像G2を示す入力アプリケーション画面を生成してモニタに表示する。
作業者は、第二入力画像G2において、魚の形状特徴を特定するための特徴点P1、P2、P3、P4を指定する。なお、特徴点P1、P2、P3、P4は、複数の画素を含む所定の円形範囲であってもよい。特徴点P1は、魚の口先端位置を示す円形範囲である。特徴点P2は、魚の尾ひれが二股に分かれる中央凹み部分の外縁の位置を示す円形範囲である。特徴点P3は、魚の背ひれ前方の付根位置を示す円形範囲である。特徴点P4は、魚の腹ひれ前方の付根位置を示す円形範囲である。作業者は、これらの位置に対応する特徴点P1、P2、P3、P4の円形範囲を指定する必要があることを認識しているものとする。また、入力アプリケーション画面において、作業者が指摘できる円形範囲の大きさは予め規定されている。特徴指定受付部12は、入力アプリケーション画面におけるマウスポインタの位置や、作業者のマウスボタンのクリック操作に応じて、第一入力画像G1から指定された第一矩形範囲A1を示す座標と、特徴点P1、P2、P3、P4の円形範囲を示す座標と、をRAM103などの記憶部に一時的に記憶する。これらの座標は、撮影画像の基準位置(例えば、撮影画像の矩形範囲の左上角の画素位置)を原点として決めてもよい。
特徴指定受付部12は、入力アプリケーション画面において指定された第一矩形範囲A1の座標と、特徴点P1、P2、P3、P4の円形範囲の座標と、撮影画像のIDと、魚体一体に関する情報を識別するための魚体IDとを紐づけてデータベース104に記録する(S105)。
特徴指定受付部12は、第一撮影画像と第二撮影画像のそれぞれについて上述の処理を行うようにしてもよい。このとき、特徴指定受付部12は、魚体に関する情報を識別するための魚体IDと、第一撮影画像IDと第一撮影画像の第一矩形範囲A1及び特徴点P1、P2、P3、P4の組み合わせと、同一魚体に関する情報を識別するための魚体IDと、第二撮影画像IDと第二撮影画像の第一矩形範囲A1及び特徴点P1、P2、P3、P4の組み合わせと、が紐づくようにデータベース104に記録する。通常、撮影画像には複数の魚が撮影されている。作業者は、1つの撮影画像に映る複数の魚のうち魚体全体が写っている魚について、第一矩形範囲A1及び特徴点P1、P2、P3、P4を指定することにより、特徴指定受付部12がそれらの情報を取得して、データベース104に記録する。
特徴指定受付部12は、作業者による撮影画像の指定が終了したか判定する(S106)。作業者が、次の撮影画像を指定した場合、特徴指定受付部12は、上述のステップS103乃至S105を繰り返す。
次に、分析装置1の学習処理について説明する。図7は、分析装置1の学習処理を示すフローチャートである(ステップS201~S205)。作業者が指定した全ての撮影画像について上述の情報取得処理を終了すると、作業者の操作に応じて学習部13が学習処理を開始する(S201)。学習部13は、データベース104に記録されている1つの魚体IDを選択し、その魚体IDに紐づく情報を取得する(S202)。この情報は、撮影画像、第一矩形範囲Aの座標、特徴点P1、P2、P3、P4の円形範囲の座標を含む。学習部13は、撮影画像における第一矩形範囲A1内の座標における画素値と、特徴点P1、P2、P3、P4の円形範囲内の座標における画素値を正解データとして、AlexNetなどの畳み込みニューラルネットワークを用いた機械学習を行う(S203)。学習部13は、第一矩形範囲A1における特徴点P1、P2、P3、P4の位置、特徴点P1、P2、P3、P4の位置関係、特徴点P1、P2、P3、P4の円形範囲内の座標における画素値、及び第一矩形範囲A1内の座標における画素値などに基づいて機械学習を行う。その後、学習部13は、次の魚体IDに紐づく情報がデータベース104に記録されているか否かを判定する(S204)。学習部13は、次の魚体IDが存在する場合には、その魚体IDについてステップS202乃至S203を繰り返す。
そして、学習部13は、撮影画像に映る魚体一体が収まる矩形範囲を自動特定するための第一学習データを生成する。また、学習部13は、撮影画像に映る魚体一体の特徴点P1、P2、P3、P4を自動特定するための第二学習データを生成する。第一学習データは、例えば、新たに取得した撮影画像内に設定した矩形範囲が魚体一体のみを含む矩形範囲であるか否かの判定結果を出力するためのニューラルネットワークを決定するためのデータである。第二学習データは、例えば、撮影画像内に設けた範囲が特徴点P1を含む範囲か、撮影画像内に設けた範囲が特徴点P2を含む範囲か、撮影画像内に設けた範囲が特徴点P3を含む範囲か、撮影画像内に設けた範囲が特徴点P4を含む範囲か、撮影画像内に設けた範囲が特徴点P1、P2、P3、P4を含まない範囲かの判定結果を出力するためのニューラルネットワークを決定するためのデータである。学習部13は、第一学習データと第二学習データとをデータベース104に記録する(S205)。
上述の学習処理により、分析装置1は、撮影画像に映る魚体一体が収まる第一矩形範囲A1と、魚体一体の複数の特徴点P1、P2、P3、P4と、を自動認識するための学習データを生成することができる。
上述の機械学習処理において、学習部13は、データベース104に記録されている正解データとなる撮影画像に対して増殖処理(Data Augmentation)を行って、増殖された多くの正解データを用いて第一学習データや第二学習データを生成するようにしてもよい。なお、正解データの増殖処理につては、公知の手法を用いることができる。例えば、Random Crop手法、Horizontal Flip手法、第一Color Augmentation手法、第二Color Augmentation手法、第三Color Augmentation手法などを利用することができる。
Random Crop手法では、学習部13は、例えば、撮影画像を256画素×256画素の画像にリサイズし、そのリサイズ画像から224画素×224画素の画像をランダムに複数取り出して、新たな撮影画像とする。学習部13は、新たな撮影画像を用いて上述の機械学習処理を行う。Horizontal Flip手法では、学習部13は、撮影画像の画素を水平方向に反転して新たな撮影画像とする。学習部13は、新たな撮影画像を用いて上述の機械学習処理を行う。
第一Color Augmentation手法は、撮影画像内の画素のRGB値を3次元ベクトルの集合とみなして、分析装置1が3次元ベクトルの主成分分析(PCA:Principal Component Analysis)を行う。そして、学習部13は、ガウス分布を用いてノイズを生成し、撮影画像の画素に対して主成分分析によるRGBの3次元ベクトルの固有ベクトル方向にノイズを加えて新たな画像を生成する。学習部13は、新たな画像を用いて機械学習処理を行う。この手法は、学習部13が、撮影画像の色情報の主成分分析により定めた色空間における色情報の主成分の分散が最大となる方向(軸方向)に撮影画像の色情報を変化させた複数の撮影画像を用いて学習データを生成する手法の一態様である。学習部13により、撮影画像の色の主成分の傾向に応じて正解データの増殖を行い、その増殖後の正解データを用いて学習処理を行うので、増殖後の色成分について増殖前の色成分と離れた正解データを用いることなく、学習処理を行うことができる。これにより、分析装置1は、学習処理により得られた学習データによる自動認識処理の精度を高めることができる。
第二Color Augmentation手法では、学習部13は、撮影画像の画素のコントラスト、明度、及びRGB値を例えば0.5倍乃至1.5倍の範囲でランダムに変更する。その後、学習部13は、第一Color Augmentation手法と同様の手法により、新たな画像を生成する。学習部13は、新たな画像を用いて機械学習処理を行う。
第三Color Augmentationでは、学習部13は、異なる撮影環境条件下において撮影された異なる色味の撮影画像を、基準撮影条件下における撮影画像の色彩に補正する。そして、学習部13は、その補正を施した後の撮影画像における第一矩形範囲と複数の特徴点とに基づいて、第一学習データと第二学習データを生成するよう機械学習処理を行う。水中で魚を撮影する場合、撮影場所や水質、季節、天候によって、撮影画像の色彩が変化することがある。正解データがカラー映像の場合、分析装置1は、色味が異なる撮影画像に基づいて学習データを生成すると、その学習データを用いて特徴点を正確に認識できないことが想定される。従って、学習部13は、正解データとして、撮影場所や水質、季節、天候などについて様々な撮影条件下で撮影された撮影画像を取得する。そして、学習部13は、それらの撮影画像を用いて学習処理を行う際に、全ての正解データの撮影画像における水の色が同じ色になるように、撮影画像全体に色補正を行う。分析装置1の特徴点推定部15は、色補正に係る情報(例えば、色補正係数など)を撮影条件とともに記憶する。その後、特徴点推定部15は新たな撮影画像から魚体を含む矩形範囲や魚体の特徴点を認識する際に、撮影条件ンと色補正情報の組み合わせを取得する。特徴点推定部15は、複数の撮影条件から最も撮影画像に近い撮影条件を選択し、その撮影条件に対応する色補正情報を用いて撮影画像に色補正を施す。特徴点推定部15は、その色補正後の撮影画像を用いて自動認識処理を行う。上述のように、学習部13は、異なる色味に対応する異なる撮影条件下で撮影された撮影画像について色彩を統一することにより、正解データとなる撮影画像の撮影条件を仮想的に統一して正解データを生成し、その正解データを用いて適切に学習処理を行うことができる。このため、分析装置1は、学習処理により得られた学習データによる自動認識処理の精度を高めることができる。
学習部13は、撮影画像に対する複数の増殖処理手法のうち1つを用いてもよく、或いは、複数の増殖処理を用いてもよい。作業者は、複数の増殖処理手法の全部を組み合わせて一度に用いずに、1つの手法、2つの手法、3つの手法のように徐々に複数の手法の組み合わせ数を増加して生成した学習データに基づく評価を行う。なお、作業者は、増殖処理手法を追加して撮影画像の第一矩形範囲A1や特徴点を特定しても、その認識精度が改善しない場合には、複数の手法の組み合わせにより生成した学習データの採用を中止する。
学習部13は、増殖した正解データとなる複数の撮影画像を記憶し、複数の撮影画像中に類似度が一致する撮影画像が含まれる場合には、類似度の高い撮影画像を学習処理に使用しないようにしてもよい。例えば、学習部13は、増殖した正解データとなる複数の撮影画像それぞれに対してスコア(例えば、スカラー値、ベクトル値)を生成して、撮影画像間のスコアを比較する。学習部13は、スコアの近い撮影画像のうちの一方を不要な画像と判定する。学習部13は、不要と判定した撮影画像の傾向を捉えるために、それらの撮影画像の画素のRGB値について主成分分析を行う。学習部13は、主成分分析により算出した主成分(固有ベクトル)とその閾値を記憶する。学習部13は、新たに増殖処理により生成された撮影画像に対して固有ベクトルを用いて主成分得点(固有ベクトルとRGB値の内積)を画素毎に求めて集計する。その集計値と閾値とを比較して、集計値が閾値を超える場合には、新たに生成した撮影画像を学習処理に利用しないと判定する。上述の処理により、無駄な撮影画像の増殖を抑えることができる。
次に、分析装置1の事前分析処理について説明する。図8は、分析装置1の事前分析処理を示すフローチャートである(ステップS801~S815)。分析装置1は、生簀4で育成される魚のサイズの統計情報を生成する前に、事前分析処理を行う。事前分析処理を行う前に、分析装置1は、ステレオカメラ2が所定時間中に生成した撮影画像データを受信する(S801)。分析装置1は、撮影画像データに含まれる所定時間間隔で撮影した撮影画像を順次取得する。このとき、撮影画像取得部11は、同時刻に撮影された第一撮影画像と第二撮影画像とを取得する。撮影画像取得部11は、第一撮影画像と第二撮影画像にそれぞれ識別情報(ID)を付与する。撮影画像取得部11は、第一撮影画像とID、第二撮影画像とID、を紐づけるとともに、第一撮影画像と第二撮影画像とを紐づけて、新たな自動認識処理対象の撮影画像としてデータベース104に記録する(S802)。ステレオカメラ2は、撮影開始から所定の撮影時間経過後に撮影を終了する。所定の撮影時間は、例えば、撮影対象である魚が生簀4の中心を軸として一方向に連続して回遊する場合、一個体が生簀4内を一回転回遊する時間であってもよい。なお、所定の撮影時間は、予め定めてもよい。撮影画像取得部11は、撮影画像データの受信が停止すると、撮影画像取得処理を停止する。これにより、所定の時間間隔で生成された第一撮影画像と第二撮影画像との組み合わせが複数データベース104に記録される。なお、撮影画像データは、動画像データを構成する撮影画像であってもよく、或いは、静止画像データを構成する撮影画像であってもよい。
撮影画像取得部11は、ステレオカメラ2の左右のレンズ21、22に対応する動画像データを取得した場合、動画像データを構成する複数の撮影画像のうち所定時間間隔の撮影時刻に対応する撮影画像を魚の特徴点の自動認識対象として、順次取得してもよい。所定時間間隔は、例えば、魚が矩形範囲の撮影画像の左右の一端から他端まで通り過ぎる時間としてもよい。分析装置1は、所定時間間隔で取得した撮影画像を用いて、その撮影画像に映る一体又は複数体の魚体の特徴点を推定する。
そして、作業者の事前分析開始指示又は撮影画像の取得完了を検出して、事前分析部101は事前分析処理を開始する(S803)。事前分析部101は、学習データ取得部14に学習データの取得を指示する。学習データ取得部14は、データベース104に記録されている第一学習データと第二学習データとを取得して、事前分析部101へ送出する。事前分析部101は、データベース104から1つ目の対の第一撮影画像と第二撮影画像とをそれらの画像IDに応じて取得する(S804)。事前分析部101は、撮影画像に対して第一学習データに基づいて特定されたニューラルネットワークを用いて自動認識処理を開始し、撮影画像において魚体一体が含まれる第二矩形範囲A2(図9参照)を特定する(S805)。
次に、事前分析部101は、第二矩形範囲A2の画素と、第二学習データに基づいて特定されるニューラルネットワークとを用いて自動認識処理を開始し、第二矩形範囲A2における特徴点P1、P2、P3、P4の円形範囲を特定する(S806)。このとき、事前分析部101は、第二矩形範囲A2の中心座標を基準に上下左右に例えば数ピクセルから数十ピクセル程度拡大して第三矩形範囲A3を設定するか、或いは、第二矩形範囲A2の大きさを数十パーセント拡大した第三矩形範囲A3を設定し、その第三矩形範囲A3の画素と、第二学習データに基づいて特定されたニューラルネットワークとを用いて自動認識処理を行う。第二矩形範囲A2を第三矩形範囲A3に拡大することにより、背景画像をより多く取り込むことができるので、特徴点P1、P2、P3、P4の円形範囲の認識精度を向上することができる。
図9は、上述の自動認識処理を施した撮影画像の一例を示す。事前分析部101は、撮影画像に映る複数の魚体のうち何れかの魚体を囲む第二矩形範囲A2、又は第二矩形範囲A2を拡大した第三矩形範囲A3を特定する。なお、事前分析部101は、撮影画像の上下左右の端部において魚の頭や尾ひれなどが切れているような撮影画像についても推定処理により特徴点を特定する。しかし、データ破棄部17は、撮影画像の端部の外に推定された特徴点を含む推定結果を特徴点の座標に基づいて検出し、その推定結果に係るデータを破棄するようにしてもよい。
事前分析部101は、同時刻に撮影された第一撮影画像と第二撮影画像のそれぞれについて、特徴点P1、P2、P3、P4の円形範囲を特定する。第一撮影画像に映る魚体と第二撮影画像に映る魚体とが同一個体を示す魚体となるよう機械学習によって調整されるため、第一学習データは、学習部13によって生成された学習データである。これにより、ステレオカメラ2から取得した2つの撮影画像における同一魚体を示す第二矩形範囲A2を特定するための学習データを生成することができる。また、事前分析部101は、第一撮影画像と第二撮影画像のそれぞれに映る魚の同一個体を囲む第二矩形範囲A2を特定する。事前分析部101は、第一撮影画像と第二撮影画像それぞれにおいて特定した第二矩形範囲A2に含まれる魚体の魚体IDを生成し、その魚体IDと撮影画像において特定した特徴点P1、P2、P3、P4の円形範囲の代表座標(例えば、中心の座標)を、魚の特徴点の自動認識結果としてデータベース104に記録する(S807)。
事前分析部101は、同一撮影画像において他の魚体を含む第二矩形範囲A2又は、第二矩形範囲A2を拡大した第三矩形範囲A3を特定できるか判定する(S808)。事前分析部101は、同一撮影画像において他の魚体を含む第二矩形範囲A2又は第三矩形範囲A3を特定できる場合、上述のステップS805乃至S807を繰り返す。他の魚体を含む第二矩形範囲A2又は第三矩形範囲A3を特定できない場合、事前分析部101は、事前分析処理に必要な数の撮影画像の処理を終了したか判定する(S809)。事前分析処理に必要な数の撮影画像は、一例としては、ステップS801で取得した撮影画像データに含まれる複数の撮影画像のうち、所定の割合の数の撮影画像や、所定のデータ量に含まれる数の撮影画像であってもよい。例えば、事前分析部101は、ステップS801で取得した撮影画像データが動画像データである場合、最初の5分間の動画像データに含まれる撮影画像の枚数を、事前分析処理の対象と特定する。
事前分析部101は、事前分析処理に必要な数の撮影画像の処理を終了していない場合、ステップS804乃至S808を繰り返す。特徴点推定部15は、事前分析処理に必要な数の撮影画像の処理を終了した場合には、本分析開始の判断資料情報の生成を開始する(S810)。
事前分析部101は、判断資料情報の生成にあたり、ステップS807により繰り返しデータベース104に記録された自動認識処理結果の情報を取得する(S811)。事前分析部101は、自動認識処理結果の情報に含まれる複数の魚体IDの数をカウントする。事前分析部101は、事前分析処理に用いた撮影画像の数と、それら撮影画像から特定した魚体を示す魚体IDの数を処置の特定度合算出式に入力し、撮影画像における魚の特定度合を算出してもよい。事前分析部101は、魚体IDの数に応じた魚の特定数などを示す特定度合(又は、特定度数)を含む本分析開始の判断資料情報を生成する(S812)。事前分析部101は、判断資料情報を、ステップS801にて受信した撮影画像データの送信元のステレオカメラ2に対応して予め定められたサービス提供先端末5へ送信する(S813)。
サービス提供先端末5を利用して生簀4を回遊する魚を監視する利用者は、判断資料情報に含まれる魚の特定数などの特定度合に基づいて、本分析の開始を依頼するか判定する。利用者は、本分析の開始を依頼する場合、端末5へ本分析開始指示を入力する。端末5は、本分析開始指示を分析装置1へ送信する。分析装置1の事前分析部101は、本分析開始指示を受信すると(S814)、特徴点推定部15へ本分析開始の指示を行う(S815)。本分析開始指示には、事前分析を行った撮影画像の送信元のステレオカメラ2の情報や、ステレオカメラ2が設置されている生簀4の魚を監視する利用者の識別情報(ID)などが含まれている。
上述の処理により、端末5の利用者は、生簀4で育成される魚などの水中生物を撮影した撮影画像における魚体の特定度合を本分析の開始前に事前に知ることができる。利用者は、特定度合に応じて本分析開始の指示を分析装置1に行い、分析装置1は、生簀4の魚などの水中生物の大きさに関する統計情報を含む監視報告情報を生成することができる。
なお、事前分析部101は、魚体IDの数の代わりに、撮影画像の画素のRGB値から撮影画像の色味の統計値を判定し、その色味を示すRGB値の統計値の色空間における座標に基づいて、魚体の特定度合を示す数値を算出してもよい。例えば、撮影画像のRGB値の統計値による特定度合の数値が水質や撮影画像の明度が十分であることを示す所定範囲内である場合には、利用者は、魚などの水中生物の形態特徴が撮影画像に基づいて十分に特定できる環境であると判断することができる。この場合、事前分析部101は、1つ又は複数の撮影画像の画素のRGB値の統計値を特定度合算出式に入力して、魚体の特定度合を示す数値を算出することができる。
次に、分析装置1の本分析処理について説明する。図10は、分析装置1の本分析処理を示すフローチャートである(ステップS901~S914)。
特徴点推定部15は、事前分析部101から本分析開始指示を受信すると、学習データ取得部14に学習データの取得を指示する。学習データ取得部14は、データベース104に記録されている第一学習データと第二学習データとを取得して、特徴点推定部15へ送出する。特徴点推定部15は、1つ目の対の第一学習データと第二学習データを、それらの画像IDやステレオカメラ2のIDや利用者識別情報(ユーザID)に応じてデータベース104から取得する(S901)。特徴点推定部15は、撮影画像に対して、第一学習データに基づいて特定されたニューラルネットワークを用いた自動認識処理を開始し、撮影画像において魚体一体が含まれる第二矩形範囲A2を特定する(S902)。
なお、学習部13により第三Color Augmentation手法により基準撮影条件における色彩に補正した撮影画像を用いて学習処理が行われていることを前提として特徴点推定部15の処理を説明する。この場合、特徴点推定部15は、ステップS901で取得した撮影画像を第三Color Augmentation手法と同様に補正し、その補正後の撮影画像に映る水中生物の特徴点を推定する。このように、特徴点推定部15により第三Color Augmentation手法を用いて生成された学習データを用いて自動認識処理を行うことにより、水中生物の特徴点の自動認識精度を高めることができる。
次に、特徴点推定部15は、第二矩形範囲A2の画素と、第二学習データに基づいて特定されるニューラルネットワークとを用いて自動認識処理を開始し、第二矩形範囲A2における特徴点P1、P2、P3、P4の円形範囲を特定する(S903)。なお、第二矩形範囲A2の中心座標を基準に上下左右に数ピクセルから数十ピクセル程度拡大して第三矩形範囲A3を設定するか、或いは、第二矩形範囲A2の大きさを数十パーセント拡大して第三矩形範囲A3を設定してもよい。すなわち、特徴点推定部15は、第三矩形範囲A3の画素について自動認識処理を行って、特徴点P1、P2、P3、P4の円形範囲を特定してもよい。第三矩形範囲A3を用いることで、特徴点P1、P2、P3、P4の円形範囲の認識精度を向上することができる。
特徴点推定部15は、同時刻に撮影された第一撮影画像と第二撮影画像とのそれぞれについて、特徴点P1、P2、P3、P4の円形範囲を特定する。第一学習データは、第一撮影画像に映る魚体と第二撮影画像に映る魚体とが同一個体の魚体を示すように機械学習により調整されているため、学習部13により生成された学習データである。これにより、特徴点推定部15は、第一撮影画像と第二撮影画像のそれぞれに映る同一個体の魚体を含む第二矩形範囲A2を特定する。特徴点推定部15は、第一撮影画像と第二撮影画像のそれぞれについて特定した第二矩形範囲A2に含まれる魚体に魚体IDを付して、その魚体IDと撮影画像において特定した特徴点P1、P2、P3、P4の円形範囲の代表座標(例えば、中心座標)を、魚の特徴点の自動認識処理の結果としてデータベース104に記録する(S904)。特徴点推定部15は、同一撮影画像において他の魚体を含む第二矩形範囲A2又は第三矩形範囲A3を特定できるか判定する(S905)。特徴点推定部15は、他の魚体を含む第二矩形範囲A2又は第三矩形範囲A3を特定できる場合には、ステップS902乃至S904を繰り返す。他の魚体を含む第二矩形範囲A2又は第三矩形範囲A3を特定できない場合には、特徴点推定部15は、次の未処理の自動認識処理に供する撮影画像の画像IDがデータベース104に記録されているか否か判定する(S906)。次の未処理の自動認識処理に供する撮影画像の画像IDがデータベース104に記録されている場合、特徴点推定部15は、ステップS901乃至S905を繰り返す。一方、次の未処理の自動認識処理に供する撮影画像の画像IDがデータベース104に記録されていない場合、特徴点推定部15は、自動認識処理を終了する。
図11は、自動認識処理の結果に基づく自動認識画像の一例を示す。図11に示すように、特徴点推定部15は、第一撮影画像(例えば、右側レンズ21により撮影された画像)において、第二矩形範囲A2-R1又は第三矩形範囲A3-R1を特定する。特徴点推定部15は、第二矩形範囲A2-R1又は第三矩形範囲A3-R1において、特徴点P1-R1、P2-R2、P3-R1、P4-R1を特定する。また、特徴点推定部15は、第二撮影画像(例えば、左側レンズ22により撮影された画像)において、第二矩形範囲A2-L1又は第三矩形範囲A3-L1を特定する。特徴点推定部15は、第二矩形範囲A2-L1又は第三矩形範囲A3-L1において、特徴点P1-L1、P2-L2、P3-L1、P4-L1を特定する。
図12は、自動認識処理の結果に基づく自動認識画像の他の例を示す。特徴点推定部15は、第一撮影画像に映る他の魚の特徴点も特定する。具体的には、特徴点推定部15は、第一撮影画像において他の第二矩形範囲A2―R2又は他の第三矩形範囲A3―R2を特定する。特徴点推定部15は、第二矩形範囲A2-R2又は第三矩形範囲A3-R2において、特徴点P1-R2、P2-R2、P3-R2、P4-R2を特定する。また、特徴点推定部15は、第一撮影画像においてさらに第二矩形範囲A2―R3又は他の第三矩形範囲A3―R3を特定する。特徴点推定部15は、第二矩形範囲A2-R3又は第三矩形範囲A3-R3において、特徴点P1-R3、P2-R3、P3-R3、P4-R3を特定する。
特徴点推定部15は、第二撮影画像に映る他の魚の特徴点も特定する。具体的には、特徴点推定部15は、第二撮影画像において他の第二矩形範囲A2―L2又は他の第三矩形範囲A3―L2を特定する。特徴点推定部15は、第二矩形範囲A2-L2又は第三矩形範囲A3-L2において、特徴点P1-L2、P2-L2、P3-L2、P4-L2を特定する。また、特徴点推定部15は、第二撮影画像においてさらに第二矩形範囲A2―L3又は他の第三矩形範囲A3―L3を特定する。特徴点推定部15は、第二矩形範囲A2-L3又は第三矩形範囲A3-L3において、特徴点P1-L3、P2-L3、P3-L3、P4-L3を特定する。
特徴点推定部15は、撮影画像に含まれる魚体の特徴点や第二矩形範囲A2や第三矩形範囲A3に係る情報を魚体IDに紐づけてデータベース104に記録する。出力部19は、自動認識処理の結果に基づく自動認識画像(図12)を作業者が利用する端末3(又は、端末5)のモニタに表示してもよい。この場合、作業者が選択した画像IDに対応する第一撮影画像と第二撮影画像において、それぞれ対応する魚体を含む第二矩形範囲A2や第三矩形範囲A3と、特徴点P1、P2、P3、P4をモニタに表示する。第一撮影画像や第二撮影画像において、複数の魚体を認識できた場合は、出力部19は、例えば、同一個体に係る魚体を含む第二矩形範囲A2や第三矩形範囲A3の枠の色を同じ色に設定するか、或いは、魚体の個体毎に異なる色を設定して、モニタに表示してもよい。
特徴点推定部15は、全ての自動認識処理対象の撮影画像について魚の特徴点の自動認識処理を終了すると、大きさ推定部18に魚体の大きさの推定処理の開始を指示する。大きさ推定部18は、魚の特徴点の自動認識処理の結果から、未選択の魚体IDに紐づく第一撮影画像から抽出した特徴点P1、P2、P3、P4の代表座標と、第二撮影画像から抽出した特徴点P1、P2、P3、P4の代表座標を読み取る(S907)。大きさ推定部18は、一例として、DLT(Direct Linear Transformation)手法などの公知の3次元座標換算手法を用いて、特徴点P1、P2、P3、P4に対応する3次元空間における3次元座標を算出する(S908)。DLT手法では、撮影画像中の点の座標と実際の2次元座標及び3次元座標との関係を表す較正係数を予め計算しておき、較正係数を用いて撮影画像内の点から3次元座標を求める。
大きさ推定部18は、特徴点P1、P2、P3、P4の3次元座標に基づいて、特徴点P1に対応する3次元座標と特徴点P2に対応する3次元座標とを結ぶ尾叉長と、特徴点P3に対応する3次元座標と特徴点P4に対応する3次元座標とを結ぶ体高とを算出する(S909)。大きさ推定部18は、尾叉長と体高を変数として魚の重量を算出する重量算出式に、尾叉長と体高とを代入して、魚の重量を算出する(S910)。大きさ推定部18は、魚の特徴点の自動認識処理の結果から全ての魚体IDを選択して魚の大きさを算出したか判定する(S911)。魚の特徴点の自動認識処理の結果から全ての魚体IDを選択して魚の大きさを算出していない場合には、大きさ推定部18はステップS907乃至S910を繰り返す。
報告書情報生成部102は、魚体IDに対応する尾叉長、体高、及び重量に基づいて、生簀4で育成されている魚の統計情報を算出する(S912)。報告書情報生成部102は、魚体IDに対応する尾叉長、体高、重量やそれらの統計情報を示す監視報告情報を生成する(S913)。出力部19は、監視報告情報をサービス提供先端末5へ送信する(S914)。サービス提供先端末5の利用者は、監視報告情報に含まれる魚の尾叉長、体高、重量やそれらの統計情報を確認し、生簀4で育成される魚の状態を確認して出荷時期を決定する。
上述のように、第一学習データや第二学習データを用いた自動認識処理により、撮影画像に映る魚などの水中生物の形状特徴を特定する特徴点を推定する。分析装置1は、第一学習データや第二学習データを予め生成しておくことで、認識処理対象である多数の魚のテンプレート画像をデータベースに記録することなく、学習データを用いた自動認識処理により、魚の特徴点を高い精度で特定することができる。また、分析装置1は、撮影画像に映る多数の魚の特徴に基づいて魚の大きさの統計情報を生成することができる。これにより、魚などの水中生物の統計情報の提供サービスを受ける利用者は、監視対象となる水中生物の育成状態を統計情報の取得する度に知ることができる。
なお、事前分析処理は、ステレオカメラ2や端末3に事前分析処理部101を備えて行うようにしてもよい。また、事前分析処理によって生成される本分析開始の判断資料情報は、統計情報提供サービスの対価を課金する前に利用者に提供される。そのため、利用者は、無償で数回の判断資料情報の提供を受けてもよい。
上述の処理において、同一個体特定部16は、第一撮影画像と第二撮影画像に映る同一個体の魚体を認識する。具体的には、同一個体特定部16は、特徴点推定部15からの要求に応じて、第一撮影画像と第二撮影画像のそれぞれにおいて特定された第二矩形範囲A2の座標を特徴点推定部15から取得する。同一個体特定部16は、第一撮影画像から特定した第二矩形範囲A2と、第二撮影画像から特定した第二矩形範囲A2のいずれか一方において、他方と重なる範囲が、所定閾値(例えば、70%)以上であるか判定する。第一撮影画像の第二矩形範囲A2と、第二撮影画像の第二矩形範囲A2のいずれか一方において、他方と重なる範囲が所定閾値以上である場合、同一個体特定部16は、2つの第二矩形範囲A2に含まれる魚体は同一個体であると判定する。なお、第一撮影画像と第二撮影画像の何れか一方において認識した複数の第二矩形範囲A2が、他方において認識した一つ又は複数の第二矩形範囲A2と、所定閾値(例えば、70%)以上で重なっていることがある。この場合、同一個体特定部16は、第一撮影画像と第二撮影画像との間で最も重なる範囲が広い第二矩形範囲A2の組み合せを特定し、その組み合わせに係る第二矩形範囲A2に映る魚体は同一個体であると判定してもよい。
また、同一個体特定部16は、第一撮影画像から特定した特徴点と、第二撮影画像か特定した特徴点との位置のずれに基づいて、第一撮影画像と第二撮影画像における第二矩形範囲A2に映る魚体が同一個体であると判定してもよい。具体的には、同一個体特定部16は、第一撮影画像の第二矩形範囲A2から特定した特徴点それぞれについて、第二撮影画像の第二矩形範囲A2から特定した特徴点との位置ずれを算出する。同一個体特定部16は、この位置ずれが所定値未満である場合、2つの第二矩形範囲A2に映る魚体は同一個体であると判定する。或いは、同一個体特定部16は、第一撮影画像と第二撮影画像とにおいて選択した第二矩形範囲A2内に占める魚体の面積を算出する。同一個体特定部16は、2つの第二矩形範囲A2に占める魚体の面積の差が所定閾値(例えば、10%)以内であれば、それらの第二矩形範囲A2に映る魚体は同一個体であると判定する。
上記の説明においては、魚の特徴点を推定する事例について分析装置1の処理を説明したが、水中生物は魚に限定されるものではなく、他の水中生物(例えば、イカ、イルカ、クラゲなど)であってもよい。すなわち、分析装置1は、所定の水中生物に応じた特徴点を推定してもよい。
データ破棄部17は、大きさ推定部18により算出された魚の尾叉長、体高、及び重量の推定値が正確でないと判定できる所定条件に合致する場合には、それらの推定値を破棄してもよい。例えば、データ破棄部17は、推定値が「推定値の平均値+標準偏差×2」の範囲に含まれない場合には、その推定値は正確ではないと判定してもよい。
また、データ破棄部17は、魚などの水中生物に対する自動認識処理の結果の特徴点P1、P2、P3、P4の位置関係が、特徴点の平均位置関係や事前に登録されている基準位置関係と比較して著しく乖離している場合には、その自動認識処理の結果の特徴点P1、P2、P3、P4に係る情報を破棄してもよい。例えば、特徴点P1とP2を結ぶ尾叉長の線より腹ひれの特徴点P4が撮影画像において上方に位置する場合には、データ破棄部17は、自動認識処理の結果の特徴点P1、P2、P3、P4に係る情報を破棄する。また、尾叉長と体高との比が、平均値や基準値と比較して20%以上乖離している場合には、データ破棄部17は、自動認識処理の結果の特徴点P1、P2、P3、P4に係る情報を破棄する。
データ破棄部17は、情報が正確でないと判定できる所定条件に関する基準スコア値を記憶し、所定条件に応じた自動認識処理の結果のスコア値を算出して、そのスコア値が基準スコア値以上或いは未満の場合に、自動認識処理の結果の特徴点P1、P2、P3、P4に係る情報を自動的に破棄してもよい。また、データ破棄部17は、データ破棄の判定がなされた自動認識処理の結果の情報を含む確認情報をモニタに表示し、作業者からデータ破棄了承の操作を受け付けた場合に、データ破棄の判定がなされた自動認識処理の結果の情報を破棄してもよい。上記のデータ破棄部17の処理により、水中生物の特徴点に基づいて算出する水中生物の大きさの統計情報の精度を高めることができる。
図13は、分析装置1の最小構成を示す。分析装置1は、撮影画像取得部11と事前分析部101とを備える。撮影画像取得部11は、ステレオカメラ2などの撮影装置から水中生物の撮影画像を取得し、事前分析部101は、撮影画像における水中生物の特定度合に基づく分析開始お判断資料情報を生成する。
図3において、分析装置1は、学習データ取得部14と、特徴点推定部15とを備えればよい。学習データ取得部14は、水中生物の撮影画像と、撮影画像に映る水中生物の形状特徴を特定するための特徴点とに基づいて機械学習により生成された学習データを取得する。特徴点推定部15は、学習データを用いた自動認識処理により撮影画像に映る水中生物の形状特徴を特定する特徴点を推定する。
分析装置1は、内部にコンピュータシステムを有しており、上述の処理過程はコンピュータプログラムとしてコンピュータ読取可能な記憶媒体に記憶されており、コンピュータがコンピュータプログラムを読み出して実行することにより、上述の処理過程を実現する。ここで、コンピュータ読取可能な記憶媒体とは、磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリなどを意味する。また、コンピュータプログラムを通信回線経由でコンピュータに配信し、コンピュータがコンピュータプログラムを実行するようにしてもよい。
上記のコンピュータプログラムは、前述の分析装置1の機能の一部を実現するものであってもよい。また、前述の機能をコンピュータシステムに既に記録されているプリインストールプログラムとの組み合わせで実現するような差分ファイル(差分プログラム)であってもよい。
最後に、本発明について上述の実施形態を用いて詳細に説明したが、本発明は実施形態に限定されるものではなく、添付した特許請求の範囲に規定される発明の範囲内における種々の改造や設計変更をも包含するものである。
本願は、2018年4月13日に、日本国に出願された特願2018-77853号に基づき優先権を主張し、その内容をここに援用する。