【文献】
下田 和 Wataru SHIMODA,変化領域の推測による弱教師あり領域分割の精度向上,電子情報通信学会技術研究報告 Vol.118 No.513 [online] IEICE Technical Report,日本,一般社団法人電子情報通信学会 The Institute of Electronics,Information and Communication Engineers,2019年 3月10日,第118巻,p.119-124
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0009】
以下に、本発明の実施の形態について図面を参照して説明する。
(第1の実施の形態)
【0010】
図1は、本発明の計数システムの第1の実施の形態を示す図である。本形態における計数システムは
図1に示すように、計数装置100と、流路200とを有する。流路200は、対象となる個体が移動する流路である。計数装置100は、流路200を移動する個体の数をカウントする。
【0011】
図2は、
図1に示した計数装置100の内部構成の一例を示す図である。
図1に示した計数装置100は
図2に示すように、撮像部110と、検出部120と、学習モデル130と、計数部140と、出力部150とを有する。なお、
図2には、
図1に示した計数装置100が有する構成要素のうち、本形態に関わる主要な構成要素のみを示す。
【0012】
撮像部110は、流路200を撮像するカメラ等の撮像手段である。具体的には、撮像部110は、流路200上の対象となる個体が移動する面を撮像する。撮像部110は、流路200を移動する個体を十分な回数撮像可能なフレームレートで、例えば、個体が撮像範囲を通過する間にその個体を5回以上撮像できるフレームレートで撮像を行う。検出部120は、撮像部110が撮像した画像とあらかじめ多数の個体の特徴を深層学習した学習モデル130とを用いて、個体を検出する。つまり、検出部120は、撮像部110が撮像した画像と、多数の個体の特徴を学習した深層学習モデルを用いて、個体を認識する。計数部140は、検出部120が検出した個体の数をカウントする。出力部150は、計数部140がカウントした数を出力する。
【0013】
図3は、
図1に示した計数システムの外観の一例を示す図である。
図1に示した計数システムは
図3に示すように、流路200の一部を撮像できる位置に撮像部110が位置するように計数装置100が設置されている。なお、計数装置100の筐体の外側に出力部150が設けられ、計数部140と出力部150との間が無線または有線を用いて接続されているものであっても良い。また、撮像部110と他の構成要素とが互いに別個の筐体に収容されているものであっても良い。この場合、撮像部110と検出部120との間は、無線または有線で接続されている。筐体には、防塵・防水加工が施されている。また、計数装置100および流路200は、例えば、船上に設けられ、船上にて魚の計数を行うことができる態様となっている。この計数作業に用いられる船としては、船上で計数作業が行うことができる船であれば特に制限されないが、例えば、作業船を用いることが好ましい。
【0014】
以下に、
図1に示した計数システムにおける計数方法について説明する。
図4は、
図1に示した計数システムにおける計数方法の一例を説明するためのフローチャートである。
【0015】
まず、計測を開始するために、計数装置100は、外部からの所定の操作に基づいて計測開始の入力を受け付けると、撮像部110が流路200の撮像を開始する(ステップS1)。続いて、検出部120が、撮像部110が撮像した画像とあらかじめ多数の個体の特徴を深層学習した学習モデル130とを用いて、個体の検出を行う(ステップS2)。検出部120が個体を検出すると、計数部140がカウンタ値をカウントアップする(ステップS3)。その後、計数装置100は、計測が終了するかどうかを判定する(ステップS4)。ここで、計数装置100は、外部からの所定の操作に基づいて計測終了の入力を受け付けたかどうかを判定することにより、ステップS4の判定が行われる。計数装置100が計測を終了すると判定した場合、出力部150は、計数部140が計測した個体の数を出力する(ステップS5)。一方、計数装置100が計測を終了しないと判定した場合は、ステップS2の処理が行われる。
【0016】
このように、計数装置100は、流路200の撮像画像から、深層学習モデルを用いて対象となる個体を検出し、検出した個体の数をカウントして出力する。そのため、対象物の正確な数を計測できる。
(第2の実施の形態)
【0017】
図5は、本発明の計数システムの第2の実施の形態を示す図である。本形態における計数システムは
図5に示すように、計数装置101と、流路201とを有する。本形態においては、対象物となる個体が魚類(以下、魚と称する)である場合を例に挙げて説明する。また、魚は養殖魚や天然魚であって、その魚種は、例えばブリ属に属するものである。また、その魚のサイズは特に規定しない。
【0018】
図6は、
図5に示した計数装置101の内部構成の一例を示す図である。
図5に示した計数装置101は
図6に示すように、撮像部110と、検出部121と、学習モデル131と、計数部141と、出力部150と、追跡部161と、距離測定部171とを有する。なお、
図6には、
図5に示した計数装置101が有する構成要素のうち、本形態に関わる主要な構成要素のみを示す。計数装置101には、防塵・防水加工が施されている。なお、撮像部110および出力部150は、第1の実施の形態におけるものと同じものである。
【0019】
検出部121は、第1の実施の形態における検出部120が有する機能に以下の機能が追加されている。検出部121は、撮像部110が撮像した画像と、あらかじめ魚の尾鰭を除く多数の個体の特徴を深層学習した学習モデル131とを用いて、魚を検出する。このとき、検出部121は、深層学習の量子化・枝刈り等を適用した深層学習圧縮技術を用いても良い。なお、検出部121は、尾鰭以外の鰭部分(例えば、胸鰭等)を除く部位の画像を用いて魚を検出するものであっても良い。このように、変化の大きな鰭部分などをアノテーション対象から除外したものを教師データとして用いて深層学習モデルを作成することで、学習モデルの複雑化を回避し、より正確な検出を行うことができる。なお、変化の大きな鰭部分とは、可動域が大きな部分であって、撮像された形状が撮像のタイミングに応じて変化する部分のことである。また、検出部121は、魚を検出すると、検出した魚をBounding Boxと称する枠で囲み、囲んだ枠を検出結果として用いるものであっても良い。このように、枠を用いて検出結果を表示することで、魚を検知した結果を作業者が認識しやすくすることができる。
【0020】
追跡部161は、検出部121が検出した個体を追跡する。追跡部161は、いわゆるトラッキング処理を行うが、このトラッキング処理は、検出された個体を追跡できるものであればどのようなトラッキング処理であっても良く、特に限定しない。距離測定部171は、追跡部161が追跡した個体の移動距離を測定する。計数部141は、追跡部161が追跡した個体のうち、距離測定部171が測定した移動距離が所定の距離閾値を超え、かつその個体が撮像範囲に存在する時間が所定の時間を超えた個体の数を魚の数としてカウントする。例えば、計数部141は、追跡部161が追跡した個体のうち、撮像部110が撮像したフレームの一定数のフレーム以上に撮像されており、かつ撮像部110の撮像範囲(フレーム内)の3分の1以上の距離を移動した個体をカウントの対象とする。計数部141は、追跡部161が追跡した個体のうち、距離測定部171が測定した移動距離が所定の距離閾値を超えないものや、移動距離が所定の距離閾値を超えてもその個体が撮像範囲内に存在する時間が所定の時間以内であるものについては、その個体をカウント対象から外すものであっても良い。この移動距離と比較する距離閾値や所定の時間については、外部から設定可能である。また、計数部141は、計測ごとにカウント値をリセット可能なものであっても良い。
【0021】
図7は、
図5に示した流路201の外観の一例を示す図である。
図5に示した流路201は
図7に示すように、底面211と2つの側壁221,231とから構成される流路である。底面211の表面は、魚が移動しやすいように、例えば、エンボス加工が施されているものが好ましいが、これに限定しない。流路201の内側の素材は、錆びにくいステンレスや繊維強化プラスチック(FRP:Fiber−Reinforced Plastics)等が好ましい。流路201の幅、つまり、側壁221と側壁231との間の距離は、魚が底面211に触れながら移動できるサイズであって、1〜100cm程度が好ましい。側壁221と側壁231との間の距離は、例えば、対象となる魚の体幅または体高と同等かそれ以上が好ましい。また、側壁221および側壁231の高さは、1〜100cm程度が好ましい。側壁221および側壁231の高さは、例えば、対象となる魚の体幅と同等かそれ以上が好ましいが、流路201を移動する魚が流路201から外れない(外に飛び出さない)高さであれば良い。
【0022】
図8は、
図5に示した計数システムの外観の一例を示す図である。
図5に示した計数システムは
図8に示すように、流路201を移動する個体を撮像できる位置に撮像部110が位置するように計数装置101が設置されている。流路201は、船上に設けられ、水中に設けられるものではない。なお、計数装置101の筐体の外側に出力部150が設けられ、計数部141と出力部150との間が無線または有線を用いて接続されているものであっても良い。また、撮像部110と他の構成要素とが互いに別個の筐体に収容されているものであっても良い。この場合、撮像部110と検出部121との間は、無線または有線で接続されている。筐体には、防塵・防水加工が施されている。また、計数装置101および流路201は、例えば、船上に設けられ、船上にて魚の計数を行うことができる態様となっている。また、計数装置101は、内部にバッテリー(例えば、充放電可能な蓄電池等)を具備しており、計数装置101に設けられた各構成要素は、このバッテリーから電源が供給されて動作する。魚は、大型の網を用いて生簀から流路201の上流へ放たれる。なお、流路201は、複数の小流路に分かれているものであっても良い。その場合、複数の小流路それぞれを互いに異なるサイズ(幅)に形成し、流路201上に放たれた魚をそのサイズに応じてカウント対象であるか対象外であるかを選別できるようにしても良い。
【0023】
図8に示すように、流路201は、流路201の底面に沿って魚が上流から下流へ滑って移動するように水平面301に対して傾斜して配置されている。流路201を移動する魚が複数である場合、流路201の上流側では複数の魚が互いに重なり合っている場合も考えられる。複数の魚が互いに重なり合っていると、撮像部110が撮像した画像からは、その重なりの下側に存在する魚を検出部121が検出することが困難となってしまう。そのため、流路201を水平面に対して傾斜させ、重なりを防止する。なお、この傾斜角度は4〜6度が好ましいが、魚の量や、底面の素材・加工・構造、流路201上を魚が滑りやすくするために魚とともに上流から下流へ流す水の量等に応じて、適宜設定(例えば、1〜30度程度の範囲内で設定)されるものであっても良い。
【0024】
また、上述したように流路201を水平面に対して傾斜させているため、魚が移動し始める流路201の上流よりも下流の方が複数の魚が互いに重なる可能性は低くなる。そのため、撮像部110は、できるだけ下流側の流路201を撮像するように設置されている。例えば、撮像部110は、流路201の上流と下流との中間点よりも下流側の流路201を撮像するように設置されている。
【0025】
また、撮像部110と流路201との間に、親水性シート(親水性被膜)401が設けられている。親水性シート401は、親水性処理が施された透明な板やシート等の部材(親水性部材)であって、撮像部110のレンズを覆うように張られているものであっても良い。親水性シート401を設けることで、水飛沫や水滴が画像撮像の妨げになることを防ぐことができる。さらに、撮像部110と親水性シート401との間に、偏光フィルタと減光フィルタとの少なくとも一方をフィルタ402として設けても良い。フィルタ402を設けることで、撮像部110において撮像した画像の強い光の影響による不鮮明化を回避することができる。
【0026】
図9は、
図6に示した検出部121が検出した魚を囲む枠の一例を示す図である。
図9に示すように、検出部121は尾鰭511を除く魚501を検出枠521で囲む処理を行う。検出枠521は、上述したBounding Boxである。検出枠521は、撮像部110が撮像した魚501を出力部150が表示する際に表示される。検出枠521で魚501を囲むことで、撮像部110が撮像した画像を出力部150が表示するときに、出力部150が表示した画像を見た利用者がその画像の中から魚501を識別することが容易になる。
【0027】
図10は、
図6に示した計数部141が行う計数処理を説明するための図である。
図10に示すように、計数部141は、流路201上、検出部121が魚であると検出した物体が所定の距離閾値を超えて移動した場合、その個体をカウント対象の魚であるとカウントする。一方、計数部141は、検出部121が魚であると検出した個体の移動が距離閾値以下である場合、その個体をカウント対象外としてカウントしない。
【0028】
以下に、
図6に示した計数装置101における計数方法について説明する。
図11は、
図6に示した計数装置101における計数方法の一例を説明するためのフローチャートである。
【0029】
まず、計測を開始するために、計数装置101は、外部からの所定の操作に基づいて計測開始の入力を受け付けると、撮像部110が流路201の撮像を開始する(ステップS11)。続いて、検出部121が、撮像部110が撮像した画像と、あらかじめ多数の個体の特徴を深層学習した学習モデル131とを用いて、個体の検出を行う(ステップS12)。このとき検出部121は、上述したように、変化の大きな鰭の部分を除いて検出を行うものであっても良い。検出部121が個体を検出すると、追跡部161は、検出部121が検出した個体を追跡する(ステップS13)。続いて、距離測定部171は、追跡部161が追跡した個体の移動距離を測定する(ステップS14)。
【0030】
すると、計数部141は、追跡部161が追跡した個体について、距離測定部171が測定した移動距離があらかじめ設定された距離閾値を超えたかどうかを判定する(ステップS15)。計数部141は、追跡部161が追跡した個体について、距離測定部171が測定した移動距離があらかじめ設定された距離閾値を超えた場合、その個体が撮像範囲内に存在する時間を測定する(ステップS16)。計数部141は、その個体が撮像範囲内に存在する時間があらかじめ設定された時間を超えているかどうかを判定する(ステップS17)。その個体が撮像範囲内に存在する時間があらかじめ設定された時間を超えている場合、計数部141はカウンタ値をカウントアップする(ステップS18)。一方、計数部141は、追跡部161が追跡した個体について、距離測定部171が測定した移動距離があらかじめ設定された距離閾値を超えない場合や、移動距離が所定の距離閾値を超えてもその個体が撮像範囲内に存在する時間が所定の時間以内での移動である場合は、カウンタ値をカウントアップしない。
【0031】
ここで、流路201内の単なる光の反射や流路201の汚れ、模様、作業者の一部等、対象となる個体ではないノイズを検出部121が個体(魚)であると誤検出した場合、それを魚として計数してしまうことを防止するために、計数部141は、検出部121が検出した個体の移動距離や個体が撮像範囲内に存在する時間を魚であるかどうかの判定(計数)に用いる。検出部121が検出した個体が流路201内の単なる光の反射である場合、その個体は移動しない。もしくは、そのような光の反射等を誤検出したとしてもその存在時間はわずかである場合が多い。一方、検出部121が検出した個体が魚である場合、その個体(魚)は流路201上をある程度の時間をかけて移動する。計数部141は、この移動の有無や個体が撮像範囲内に存在する時間を、個体が魚であるかどうかの判定に用いる。また、移動の判定に用いる距離閾値は、このような検出部121が検出した個体が、移動している魚であるのか、移動しない光の反射等なのかを判定できる距離であって、流路201の形状や傾斜角度、設置位置、魚が流路201へ投入される速度や数量、または計測を行う時間帯等に応じてあらかじめ設定される。また、あらかじめ設定された時間は、魚が流路201を移動したことを検出するための時間であって、流路201の形状や傾斜角度、設置位置、魚が流路201へ投入される速度や数量等に応じてあらかじめ設定される。
【0032】
その後、検出部121が検出した個体が複数であるかどうかを検出部121が判定する(ステップS19)。検出部121が検出した個体が複数ではない場合、計数装置101は、計測が終了するかどうかを判定する(ステップS20)。ここで、計数装置101は、外部からの所定の操作に基づいて計測終了の入力を受け付けたかどうかを判定することにより、ステップS20の判定が行われる。計数装置101が計測を終了すると判定した場合、出力部150は、計数部141が計測した個体の数を出力する(ステップS21)。出力部150は、計数部141が計測した個体の数をディスプレイに表示するものであっても良いし、計数部141が計測した個体の数を示す情報を他の装置へ送信するものであっても良い。個体の数を表示するディスプレイは、計数装置101に具備されたディスプレイであっても良いし、計数装置101と接続された専用のディスプレイや、通信端末に具備されたディスプレイであっても良い。一方、計数装置101が計測を終了しないと判定した場合は、ステップS12の処理が行われる。
【0033】
一方、ステップS19にて、検出部121が検出した個体が複数であると判定された場合、追跡部161は、未処理の個体があるかどうかを判定する(ステップS22)。追跡部161は、ステップS13〜S18までの処理を完了した個体と、ステップS13〜S18までの処理をまだ行っていない個体とを識別可能に分別しておく。例えば、追跡部161は、検出部121が検出した個体それぞれに互いに区別できるマーカーを付しておき、そのマーカーを処理済みかどうかが識別できるように変更していくものであっても良い。また、この追跡部161の処理を、距離測定部171が行っても良い。未処理の個体がある場合、未処理の個体についてステップS13〜S18の処理が行われる。また、未処理の個体がない場合は、ステップS20の処理が行われる。なお、ステップS12にて検出部121が複数の個体を検出した場合、検出された個体ごとにステップS13〜S178の処理がそれぞれに並行して行われるものであっても良い。
【0034】
なお、出力部150は、計数部141が計測した個体の数をリアルタイムで出力するものであっても良いし、計数部141が個体の数を計測中の所定のタイミングで出力するものであっても良い。この場合の所定のタイミングとは、例えば、計数部141が個体をカウントする度、または所定の数(例えば、10)をカウントする度のタイミングや、計測開始からあらかじめ設定された単位時間(例えば、1分間)経過ごとのタイミングであっても良い。
【0035】
図6に示した学習モデル131は、メモリカード等の移設可能な記録媒体に記憶しておき、計数装置101に装着して用いられるものであっても良い。その場合、複数のメモリカードそれぞれに互いに異なる学習モデルを記憶おけば、装着するメモリカードの差し替えだけで、計測の対象となる個体に適した学習モデルを計数装置101にて即座に実行することができる。または、1つのメモリカードに互いに異なる複数の学習モデルを記憶させておき、計測対象に応じて使用する学習モデルを切り替えて実行するような形態であっても良い。
【0036】
このように、計数装置101は、船上に設置された流路201の撮像画像から、深層学習モデルを用いて対象となる個体を検出し、検出した個体の移動距離が距離閾値を超えたものを魚としてカウントする。そのため、船上において対象物である魚の正確な数を計測できる。
【0037】
以上、各構成要素に各機能(処理)それぞれを分担させて説明したが、この割り当ては上述したものに限定しない。また、構成要素の構成についても、上述した形態はあくまでも例であって、これに限定しない。
【0038】
上述した各構成要素が行う処理は、目的に応じてそれぞれ作製された論理回路で行うようにしても良い。また、処理内容を手順として記述したコンピュータプログラム(以下、プログラムと称する)を各構成要素を具備した装置(例えば、計数装置100,101。以下、情報処理装置と称する)にて読取可能な記録媒体に記録し、この記録媒体に記録されたプログラムを情報処理装置に読み込ませ、実行するものであっても良い。情報処理装置にて読取可能な記録媒体とは、フロッピー(登録商標)ディスク、光磁気ディスク、DVD(Digital Versatile Disc)、CD(Compact Disc)、Blu−ray(登録商標) Disc、USB(Universal Serial Bus)メモリなどの移設可能な記録媒体の他、情報処理装置に内蔵されたROM(Read Only Memory)、RAM(Random Access Memory)等のメモリやHDD(Hard Disc Drive)等を指す。この記録媒体に記録されたプログラムは、情報処理装置に設けられたCPUにて読み込まれ、CPUの制御によって、上述したものと同様の処理が行われる。ここで、CPUは、プログラムが記録された記録媒体から読み込まれたプログラムを実行するコンピュータとして動作するものである。なお、FPGA(Field Programmable Gate Array)を用いて上述した論理回路を実現するものであっても良い。
【解決手段】流路を移動する個体を撮像可能な位置に設置された撮像部110と、撮像部110が撮像した画像から、学習モデル130を用いて、個体を検出する検出部120と、検出部120が検出した個体の数をカウントする計数部140と、計数部140がカウントした数を出力する出力部150とを有する。