以下、本発明の実施の形態を添付図面を参照して説明する。
図1は本発明の液中物の測定システムに用いる測定装置の形態の一例を示している。測定装置1は、撮像装置2と、該撮像装置2の撮像範囲A内に標識光3を照射する照射装置4とを備えている。撮像装置2と照射装置4は棒状の支持部5に互いに離間して取り付けられており、撮像装置2は光軸が支持部5の軸線に対して略直角となるように固定されると共に、照射装置4は標識光3が撮像装置2の撮像範囲A内に照射されるよう、支持部5の軸線に対して斜めに取り付けられる。撮像装置2と照射装置4からはそれぞれ外部へケーブル2a,4aが延びており、該ケーブル2a,4aは制御装置6や、図示しない電源装置に接続されている。撮像装置2、照射装置4に対しては、ケーブル2a,4aを通じて図示しない前記電源装置から電力が供給されるほか、制御装置6から入力される操作信号2b,4bによって動作が制御されるようになっている。また、撮像装置2からは、取得した画像データがデータ信号2cとして制御装置6へ送信されるようになっている。
制御装置6において取得された画像データは、さらに解析装置12へ入力され、該解析装置12において、後述する対象物10の測定工程が実行される。解析装置12は、例えばパーソナルコンピュータ等の情報処理装置であり、画像データの処理や解析を行うことができる。尚、制御装置6および解析装置12の構成はここに示した例に限定されず、画像に基づく対象物10の寸法の測定を好適に実行できる限りにおいて適宜変更することができる。例えば、制御装置6と解析装置12を一体に構成しても良いし、あるいは制御装置を撮像装置2や照射装置4に個別に備え、撮像装置2で取得した画像データを手動で解析装置12に移すようにしてもよい。
撮像装置2は、例えば防水機能を備えた水中カメラである。照射装置4は、例えばラインレーザ装置であり、先端の照射口4cを中心として標識光3を扇状に放射するようになっている。標識光3は、撮像装置2の画角の頂点から離れた位置から撮像範囲Aへ、撮像装置2の光軸方向に対して斜めの面をなして照射される。この際、標識光3は、扇状の標識光3のなす面が、撮像装置2の光軸と、照射装置4の照射口4cとを含む平面(以下、面B1と称する。尚、図示は省略する)に直交するよう照射することが好ましい。照射装置4は、支持部5に対し決まった角度で据え付けても良いし、標識光3の照射角を調整できるよう、支持部5に対し首振り可能に取り付けても良い。
尚、撮像装置2と照射装置4とは、支持部5を介さず、例えばワイヤや骨組み等により別々に支持することも可能であるが、撮像装置2と照射装置4とを互いに適切な位置関係で支持するには、上述の如く棒状あるいはパイプ状の支持部5を用いるのが最も簡便であり、構成面でも簡単である。
測定装置1を使用する際には、例えば図2に示す如く、支持部5の適宜箇所に浮具7を取り付ける(尚、図2では説明の便宜上、ケーブル2a,4aや制御装置6、解析装置12の図示を省略している。図5、図6についても同様である)。液8に浮具7を浮かべると、撮像装置2と照射装置4を支持部5によって支持した装置の全体が、浮力によって液8に対し保持される。浮具7による支持部5の支持点を適宜位置(撮像装置2に加わる重力と浮力の合力によるモーメントと、照射装置4に加わる重力と浮力の合力によるモーメントが釣り合う位置)に設定しておけば、支持部5は液8中に略水平に支持される。そして、撮像装置2は下方の液8中を撮像範囲Aに収めるよう、下向きに配置されると共に、照射装置4は撮像範囲Aに対して標識光3を照射するように斜めに配置される。尚、支持部5の角度や、撮像装置2と照射装置4との位置関係は必ずしも特に水平を保つ必要はなく、撮像装置2により適当な空間を撮像範囲Aに収め、且つ該撮像範囲A内に照射装置4から標識光3を照射できるような配置となっていれば足りる。
測定装置1の適宜位置(ここに示した例では浮具7)には索9を取り付け、該索9を介して測定装置1を移動できるようにすると好適である。
以上の如く設置した測定装置1を用い、液8中の対象物10を撮像装置2により撮像し、取得された画像に基づいて対象物10の寸法を測定する。対象物10は、例えば水や海水である液8中を遊泳する魚介類等の生物であり、ここでは魚を想定しているが、生物以外の構造物や物体、あるいは構造物の一部等を対象物としても良い。
魚等である対象物10を、液面付近に位置する撮像装置2により上方から撮像すると共に、撮像範囲Aに対し照射装置4から標識光3を照射する。撮像範囲A内、且つ標識光3の光路上に対象物10があれば、標識光3が照射された対象物10を撮像装置2により撮像することができる。取得した画像データは、データ信号2cとして制御装置6(図1参照)へ送られ、さらに解析装置12(図1参照)における測定に供される。解析装置12では、画像内に映り込んだ対象物10の実寸を求めることができるようになっており、特に、長手方向の実寸を精度よく得ることができる。
以上の如き測定システムにより、以下に説明する測定方法を用いて、対象物10の寸法を測定する。画像に基づいて対象物10の実寸を得るには、1)画像内における寸法と実寸の対応関係を把握し、2)画像内における対象物10の形状を把握し、3)求める対象物10の寸法を画像内において測定し、4)画像内における寸法と実寸の対応関係から実寸を求める、という手順を踏む。本発明は、このうち特に手順3に特徴を有しているが、以下では手順1から順番に説明する。
・手順1)画像内における寸法と実寸の対応関係の把握
画像内における寸法と実寸の対応関係を決定するための方法として、以下の2例(方法i、方法ii)を説明する。尚、ここに例示した方法i、iiはそれぞれ一例であって、これ以外の方法によって画像内における寸法と実寸の対応関係を求めても良い。
・方法i)撮像装置2から対象物10までの距離を求め、その距離に基づき、画像内における寸法と実寸の対応関係を求める。
・方法ii)撮像範囲A内に設置されたスケールに基づき、画像内における寸法と実寸の対応関係を求める。
まず、方法iについて説明する。図3は、撮像装置2により取得される画像の一例を示している。ここに示した例では、画像外の左手前の位置から右奥に向かって標識光3を照射しており、撮像範囲Aないし画像内における標識光3の照射位置は、対象物10と撮像装置2との距離に対応している。すなわち、標識光3の照射された対象物10が画像内の左寄りの位置にあれば撮像装置2に近く、右寄りの位置にあれば撮像装置2から遠いと判断できる。
図4を用いてさらに具体的に説明する。図4(A)に示す如く、標識光3の照射された対象物10と、撮像装置2との光軸方向の距離(より詳しくは、撮像装置2における画角の頂点から対象物10までの光軸方向における距離)をL、面B1(照射装置4の照射口4cとを含む平面)に沿い且つ光軸と直交する方向(以下、左右方向とする。また、光軸方向および左右方向に直交する方向を前後方向とする)の距離をMとする。また、撮像装置2の光軸と直交し且つ撮像装置2における画角の頂点が位置する面(面B2とする。図示は省略する)において、面B2と標識光3のなす面との交線と、撮像装置2との距離をPとする。尚、ここでは照射装置4の照射口4cが撮像装置2の画角の頂点と共に面B2に位置しているので、照射口4cと撮像装置2との間の距離が距離Pである。さらに、撮像装置2の光軸と直交し、標識光3の照射された対象物10のある平面において、撮像範囲Aの幅(すなわち、左右方向の寸法)をWとし、また、撮像範囲Aの光軸に関して照射装置4とは反対側の端部から、対象物10における標識光3の照射点までの左右方向の距離をXとする。撮像装置2の左右方向における画角をθ、標識光3のなす面が撮像装置2の光軸に対してなす角度をαとする。
撮像装置2においては、実空間における左右方向と前後方向をそれぞれ幅方向および高さ方向とする画像が取得される(図4(B)参照)。この画像の幅方向の画素数をWpix、高さ方向の画素数をHpixとする。また、撮像装置2の光軸に関して照射装置4の設置位置とは反対側の端部(図の右端)から、画像内の対象物10における標識光3の照射点までの画素数をXpixとする。
このとき、以下の式が成り立つ。
[式1]
tanα=(P-M)/L
tan(θ/2)=W/2L
M=X-W/2
X/W=Xpix/Wpix
これを整理すると、以下の式が得られる。
[式2]
L=P/{tanα+(2Xpix/Wpix-1)tan(θ/2)}
P、tan(θ/2)、tanα、Wpixは撮像装置2や照射装置4の配置や仕様により決まる定数であり、Xpixは画像から読み取れるので、上記式2より、画像から撮像装置2と対象物10との光軸方向における距離Lを求めることができる。このように、本実施例の液中物測定装置1によれば、上述の如き簡単な構成(図1、図2参照)と単純な計算(上記式2参照)によって簡便に対象物10の距離Lを割り出すことができる。手動によっても簡単な数式で距離Lを導出でき、自動で計算する場合も処理に要する時間は最少限で済む。
一方、図3に示す画像において、目的の対象物10の実寸あたりの寸法、すなわち、対象物10における単位実長あたりの画素数は、撮像装置2と対象物10との光軸方向における距離Lによって決まり、且つ距離Lと対象物10における単位長さあたりの画素数との関係は、撮像装置2の仕様や設定によって決まる。したがって、上述の如き計算式により距離Lを求めることで、標識光3の照射された対象物10の寸法を画像から把握することができる。
ここで、本実施例では上述の如く、標識光3のなす面が面B1(照射装置4の照射口4cとを含む平面)に直交するように標識光3を照射している。このため、例えば図3に示す如き画像が得られた場合において、標識光3の照射された部分(以下、「照射部」とする)の撮像装置2に対する光軸方向における距離Lは、画像内における幅方向の位置(Xpix)によって決まり、高さ方向の位置を考慮する必要はない。つまり、画像の左右端から一定の距離にある照射部に関し、高さ方向の位置にかかわらず距離Lが決定されることになり、距離Lを算出するにあたって計算が簡便である。標識光3のなす面が面B1に直交しない場合でも距離Lを求めることは可能であるが、その場合、標識光3の照射部の高さ方向の位置等も加味して距離Lを計算する必要があり、計算式はより複雑となる。
尚、上に説明した計算式はあくまで一例である。例えば、画像内における距離を表す値として画素数(WpixやXpix)を用いているが、これらの代わりに例えば図3の如き対象物10を映した画像における寸法や、印刷した紙面における寸法を採用しても良い。上記の如き算出方法では、画像に対する対象物10の位置、言い換えれば画像における寸法比(ここではXpix/Wpix)が問題なのであり、画像内における距離の絶対値は重要ではない。
また、ここでは標識光3を撮像装置2の光軸に対し、角度αをなす向きで斜めに照射する場合を例示したが、この角度α自体は本発明の原理上、さほど重要ではなく、例えば標識光3のなす面を光軸に対して平行としても、上と同様の手順で距離Lを割り出すことができる(このとき、P=M、tanα=0となる)。原理的には、標識光3は光路が撮像装置2の画角の頂点を通らず、且つ撮像範囲A内に照射されていれば足りるのである。ただし、対象物10の測定を効率よく行うためには、標識光3は被照射点が撮像装置2から離れすぎない範囲で(標識光3の照射された対象物10が撮像装置2から離れていると、その分だけ前記対象物10と撮像装置2との間に別の対象物10やその他の障害物等が入ったり、目的の対象物10の映りが不鮮明になるなどし、目的の対象物10の外形を把握することが困難になる可能性がある)、撮像範囲A内のなるべく広範囲に照射されることが好ましい。よって、撮像装置2に対する照射装置4の位置(図4(A)における距離P)や、照射装置4から照射する標識光3の角度(図4(A)における角度α)といった条件は、実際の使用において得られる画像の内容等に鑑みてその都度調整しながら設定すると良い。
尚、距離Lを求める際に用いる計算式の具体的な内容は、ここに説明した以外にも、各機器の配置やその他の条件によって種々変動し得る。
続いて、スケールを用いる方法iiについて説明する。例えば図5(A)中に示す如く、撮像装置2の撮像範囲A内に、所定の寸法を有する複数のスケール11を配置する。ここに示した例では、一辺の長さが所定の寸法(例えば、10cm)である2つのスケール11を、撮像装置2からの距離が互いに異なるように設置する。例えば、一方のスケール11aは撮像装置2から1m離れた位置に配置し、他方のスケール11aは、撮像装置2から2m離れた位置に配置する。
この状態で、撮像装置2により画像を取得する。スケール11は、画像内に図5(B)に示す如く映り込むので、画像内におけるこれらのスケール11の寸法を測定すれば、撮像装置2からの距離が互いに異なる複数箇所(ここでは2箇所)について、画像内における単位実長あたりの寸法を把握することができる。すなわち、撮像装置2から1m離れた場所における単位実寸(10cm)あたりの画像内の画素数、および、撮像装置2から2m離れた場所における単位実寸あたりの画像内での寸法(画素数)が、画像内における各スケール11a,11bの一辺の長さとして把握できる。こうして、互いに撮像装置2からの光軸方向における距離が異なる2箇所以上において対応付けられた距離と、画像内における単位実寸あたりの寸法のデータに基づき、以下に説明する原理により、撮像装置2からの距離と、画像内における寸法(画素数)あたりの実寸を求めることができる。
所定の寸法(10cm)を有する2つのスケール11a,11bを図5(A)中に示す如く撮像範囲A内に配置した場合、各スケール11a,11bの撮像装置2からの光軸方向における距離がそれぞれl1,l2であるとする。そして、図5(B)中に示す如く、画像内に映り込んだ各スケール11a,11bの長さ方向の画素数がそれぞれs1,s2であるとする。この場合、実空間における撮像装置2からの距離(撮像装置2の画角の頂点からの光軸方向における距離)がLである地点において、10cmの実寸に対応する画像内の画素数をSpixとすると、Spixは距離Lに応じて以下の式に従い決定される。
[式3]
Spix=a/(L-b)
ただし、
a=s1s2×(l2-l1)/(s1-s2)
b=(l1s1-l2s2)/(s1-s2)
すなわち、LとSpixはaを係数とする双曲線をなし、bは画角の頂点と焦点との距離に相当する。焦点の位置(L=b)ではSpix=∞、無限遠(L=∞)ではSpix=0となる。
こうして、標識光3の照射された対象物10の画像内における位置(図3、図4参照)から、上記式2により撮像装置2からの距離Lを求め、さらに上記式3を用いて距離Lに応じた単位実長あたりの画像内における寸法(ここでは、実長10cmあたりの画素数Spix)を求める。目的の対象物10の画像内における寸法(画素数)に10/Spixを乗じれば、対象物10の実寸をcm単位にて求めることができる。
尚、上述の如き計算はあくまで原理に基づくものであって、実際上、距離Lと実寸あたりの画像内における寸法との関係を求めるにあたっては別の方法を採用しても良い。例えば、撮像装置2からの距離がl1mの地点と、l2mの地点において、それぞれ単位実寸(10cm)あたりの画像内における画素数がs1、s2であったとした場合、撮像装置2からl1m~l2mの距離に位置する対象物10については、単位実寸あたりの画像内における画素数が、s1~s2の間で直線的に変化すると見なす。具体的な数値に基づいて述べれば、例えば撮像装置2からの距離が1mの地点に設置されたスケール11の一辺(10cm)あたりの画素数が1000pix、2mの地点に設置されたスケール11の一辺あたりの画素数が400pixであったとした場合(図5(A)中の一点鎖線参照)、撮像装置2からの距離が1m~2mの間では、単位実寸(10cm)あたりの画素数が、撮像装置2からの距離が1cm増す毎に(1000-400)/(200-100)=6pixずつ減少すると見なすのである。この場合、例えば撮像装置2からの距離が1.3mの位置にある対象物10では、単位実寸(10cm)あたりの画素数は820pixと見なし、寸法を決定することができる。勿論、こうした方法は厳密に正確ではないが、魚介類である対象物10の寸法を測定するような用途においては実用に十分耐え得る近似値を得ることができる。また、例えばスケール11の設置数を増やして撮像装置2からの距離に対する単位実寸あたりの画像内における寸法(画素数)を多く(3点以上)の測定点で取得し、該3点以上の測定点同士の間で上述の如き近似を行うようにすれば、精度を向上させることもできる。
このようなキャリブレーションを最低一度実行しておけば、撮像装置2に関し、撮像装置2からの対象物10の距離Lと、単位実寸あたりの画像内における寸法(画素数)の関係を求めることができ、上述の如き画像(図3参照)から対象物10の寸法を求める際に利用することができる。無論、スケール11によるキャリブレーションは、撮像の条件や用途等が異なる条件下で液中物測定装置1を使用する場合等には、その都度やり直しても良い。
また、ここでは複数(2つ)のスケール11を一度に撮像する場合を例示したが、例えば1つのスケールをある位置に設置して撮像した後、撮像装置2からの距離Lが異なる別の位置に設置して撮像しても良い。撮像装置2からの対象物10の距離Lと、単位実寸あたりの画像内における寸法(画素数)の関係を求めることができる限りにおいて、スケール11の撮像に際し手順等は問わない。
あるいは、上記式3の如き計算を経ず、画像内において対象物10をスケール11と比較することにより直接寸法を求めることも可能である。例えばスケール11として、図6(A)に示す如く、所定の幅(例えば10cm)の帯状の面を有するスケール11cを撮像範囲A内に設置し、撮像装置2で撮像する。スケール11cは、照射装置4から照射される標識光3のなす面に沿って配置する。
このようにすると、図6(B)の画像内に示す如く、スケール11cの幅(画像における高さ方向の寸法)は画像外の照射装置4(図6(A)参照)から離れるほど狭く映る。画像内の各所におけるスケール11cの幅は無論、撮像装置2からの光軸方向の距離に応じた実長10cm分の画素数を表す。一方、上記式2に説明したように、本実施例では、画像内の幅方向における標識光3の照射位置(Xpix)が、該標識光3の照射された対象物10の撮像装置2からの距離Lに対応している(図3、図4参照)。そして、スケール11cは帯状の面が標識光3の照射される面に沿うように配置されるので、標識光3が照射されたある地点の撮像装置2からの距離(図4(A)における距離L)は、スケール11cのうち、前記地点と撮像範囲Aないし画像内における左右方向(幅方向)の位置(図4および図6におけるX,Xpix)が同じである部分の距離(図6(A)における距離L)に合致する。距離Lが合致すれば、単位実長あたりの画像内における寸法(画素数)も一致するので、その部分におけるスケール11cの幅を、所定の実長(ここでは10cm)に相当するとして扱うことができる。
つまり、図3に示す如く、ある対象物10に標識光3が照射されている場合、この対象物10における標識光3の照射部が画像の右端からXpixの距離にあるとすると(図4(B)参照)、図6(B)に示す画像において、画像の右端からXpixの距離にあたるスケール11cの幅(Spixとする)を取得すれば、このSpixの値を、図3内に映った目的の対象物10における単位実長(10cm)あたりの画素数と扱うことができる。よって、図3に示す画像内における対象物10の寸法に10/Spixを乗じれば、対象物10の実寸を得ることができる。このように、図6に示す如きスケール11cの配置によれば、距離Lを算出する手順を踏むことなく、画像内におけるスケール11cの寸法から対象物10の寸法を直接把握することができ、より簡便である。
図5(B)や図6(B)に示す如きスケール11を映した画像を取得するにあたっては、図5(A)や図6(A)に示す如くスケール11を配置した液中物測定装置1を液8中等に設置し、スケール11と共に対象物10を撮像することができる。ただし、スケール11と対象物10が互いに視界の妨げになったり、対象物10が魚類等である場合にはスケール11のような構造物を警戒して液中物測定装置1に近寄らない可能性もある。よって、スケール11の撮像は対象物10の撮像とは別に行い、後から対象物10を映した画像(図3参照)とスケール11を映した画像を適宜並べ、もしくは重ねるようにして寸法を取得する方式がより好適である。
尚、スケール11の形状や配置はここに示した例に限定されない。例えば図5や図6に示す如きスケール11a,11b,11cの代わりに、多段の梯子型のスケール11を用いることもできるし、その他、画像内において単位実長あたりの寸法を把握できる限り、スケール11としては種々の形状の物体を採用し得る。あるいは、スケール11に実寸を示す目盛りを付しても良い。また、図6に示す帯状のスケール11cは、標識光3に沿って配置するのが好適であると上に説明したが、ここでいう「標識光3に沿って配置」とは、必ずしもスケール11cのなす面が標識光3のなす面と一致している必要はない。測定精度の面からは、スケール11cのなす面が標識光3のなす面と一致し、且つ帯状の面をなすスケール11cの中心線が、B1(撮像装置2の光軸と照射装置4の照射口4cを含む面)と標識光3のなす面との交線と一致するのが理想であるが、実際的には、スケール11cのなす面が標識光3のなす面に対して多少傾いていたり、スケール11cの中心線が前記交線からずれていたとしても十分な測定精度を得ることができる。
以上に説明した方法iまたは方法ii、あるいはその他の方法により、対象物10の単位実長あたりの画像内における寸法を取得することができる。
・手順2)画像内における対象物10の形状の把握
画像内における対象物10の形状は、例えば人力で特定することができる。その場合、例えば図3に示す如き元画像を解析装置12のディスプレイ上に映し、標識光3が照射された各対象物10の形状を目視により確認し、解析装置12に備えたマウスを用いて輪郭をなぞるといった操作により、対象物10の画像内における位置、大きさ、形状を特定すれば良い。その他に、例えば人工知能による機械学習等を用い、自動的に形状を検出するようにしても良い。
次に、画像内において特定された対象物10の輪郭に基づき、対象物10が画像内に占める領域が判別できるようにした画像データを、元の画像とは別に生成する。例えば、図3に示す如き画像から図7に示す如く、画像内において特定の対象物10の占める領域の画素を一の値(ここでは白)に、それ以外の領域の画素を他の値(ここでは黒)に設定した二値画像を生成する。このようにすると、画像において対象物10の占める領域とそれ以外の領域を自動的に判別するにあたって簡便である(尚、以下では、撮像装置2により取得された画像を「元画像」、該元画像から生成された対象物10の占める領域を判別可能な画像を「対象物判別画像」と称することとする)。
・手順3)求める対象物10の寸法の画像内における測定
対象物判別画像を生成したら、該対象物判別画像内における対象物10の寸法を測定する。ここで、上述の通り、対象物10の形状等によっては、寸法を測定するにあたり、点と点の間の直線距離を単純に測定する方法では適切でない場合がある。
正しい長さを測定するためには、例えば直線的な姿勢で画像に映り込んでいる魚(対象物10)のみを選択して測定するようにしても良いが、その場合、測定対象として採用できる対象物10の割合が少なくなるので、十分な数のサンプルを測定するために必要な画像の枚数が多くなり、撮像装置2による元画像の取得に手間がかかってしまう。また、測定対象として適当な姿勢の対象物を選定する手間も生じる。
そこで、本実施例では、画像内における対象物10の中心線に沿って長さを測定する方法により、曲線的な姿勢を取った対象物10であっても、長さを精度よく測定できるようにしている。具体的には、まず対象物判別画像内において対象物10の占める領域のうち、X方向に関して端部にあたる点(ここでは「端点」と称する)の座標を取得する。次に、両端点P1,P2同士の間の複数のX座標において、対象物10の占める領域のY方向に関する中央にあたる点(ここでは「中間点」と称する。また、端点と中間点をまとめて「計測点」と称することとする)の座標を複数取得する。X方向に隣接する計測点同士を線分で繋いでいくと、その線(「計測線」と称する)は目標とする対象物10の中心線に概ね沿った線であり、該計測線の長さは、対象物10の長さと見なすことができる。こうすることで、X方向に隣接する計測点間の距離の合計値を、計測線の長さとして簡便に取得することができる。尚、「中心線」とは、対象物10の長手方向に沿い、且つ対象物10の短手方向に関して中央の位置を通る線を指す。
対象物判別画像に基づく対象物10の長さの測定手順の一例を、図8、図9のフローチャート、および図10の模式図を参照しながら説明する。
ステップS1として、上記手順2の如く自動または手動により対象物判別画像を生成する。対象物判別画像が図7に示す如き二値画像である場合、一の値(白)に設定された画素は対象物10の占める領域にあたり、他の値(黒)に設定された画素はそれ以外の領域であると判別することができる。
続いて、対象物判別画像について、対象物10の占める領域のX方向に関して両端にあたる端点(図10中にP1、P2として示す)の座標を検出し、記録する(ステップS2)。ステップS3~S11では、一方の端点P1から他方の端点P2に向かってX座標をDxずつずらしながら、各X座標ごとに中間点(図10中にQ1,Q2,……Qnとして示す)のY座標を取得していく。
ここで、Dxとは各計測点の座標を取得するにあたり、計測点同士のX方向における間隔として設定される値である。Dxの具体的な数値は任意に設定することができ、例えば固定値とすることもできるし、あるいは両端点同士のX方向に関する距離を適当な数(例えば、100)に等分した値を用しても良い。その他、Dxとしては適当な値を適宜採用することができるが、計測線が対象物10の中心線に概ね沿う程度には、対象物10の長さに対して十分に小さい値とすることが望ましい。
ステップS5~S11では、特定のX座標における中間点のY座標を取得していくが、ステップS3ではそれに先立ち、座標を取得する中間点のX座標を決定する。ステップS2で端点P1の座標を検出した直後のステップS3では、端点P1のX座標から端点P2に向かってDxだけずらしたX座標を、S5以降の操作を行うX座標と定める。
ステップS4では、ステップS3で定めたX座標が、対象物10の占める領域の範囲内か否かを判定する。端点P1,P2の画像内における座標がそれぞれ(X1,Y1)、(X2,Y2)であるとすると、ステップS4では、ステップS3で定めたX座標(X)がX1≦X≦X2であるか否かを判定する。ステップS3で定めたX座標(X)がX1以上、X2以下であるとステップS4で判定された場合には、ステップS5に移る。
ステップS5~S10では、ステップS3で定めたX座標において、対象物10の占める領域のY方向における両端(「始点」および「終点」と称する)を検出する。そして、ステップS11で、始点と終点の中央のY座標を中間点のY座標として記録する。
ステップS5では、ステップS3で定めたX座標において、始点のY座標が記録されているか否かを判定する。記録されていなければステップS6に進み、まずY方向における一方の端にあたる画素に関し、当該画素が対象物10の占める領域内にあたるか否かを判定する。輪郭判別画像が図7に示す如き二値画像の場合、対象の画素が白と定義されていれば、当該画素は対象物10の占める領域内、黒と定義されていれば領域外と判定できる。
ステップS6において、対象とする画素が領域外(黒)と判定された場合には、同じX座標における次の画素に移る。先のステップS6で判定を行った画素から、Y座標を他端に向かってDyだけずらした座標を、次に判定を行う座標として決定し(ステップS7)、ステップS5に戻る。
Dyは、あるX座標にある各画素が、対象物10の占める領域内にあるか否かをY方向に沿って順次判定していく際に、判定対象となる画素同士の間隔に相当する値である。Dyの値は任意に設定することができるが、始点、終点および中間点の座標を実用上、十分な精度で取得できる程度に小さく設定することが望ましい。例えば、1画素~数画素程度とすることができる。あるいは、対象物判別画像のY方向における画素数を適当な数に等分した値をDyとして用いても良い。
このように、現在のX座標に始点の記録がない状態でステップS5~S7を繰り返すと、ステップS3で定めたX座標において、Y方向における一方の端から他方の端に向け、Y座標をDyずつずらしながら、各画素が対象物10の占める領域外(黒)か領域内(白)かを判定していくことになる。現在のX座標において、対象物10の占める領域がY方向に関して中間部に位置している場合、ステップS5~S7を一方の端から他方の端へ向けて繰り返していくと、はじめは領域外(黒)の判定が続くが、いずれは領域内(白)の画素に到達し、ステップS6において対象の画素が領域内であると判定される。この画素は、現在のX座標において一方の端から順に各画素が対象物10の占める領域内か否かを判定していったときに初めて「領域内」と判定された画素であり、現在のX座標において対象物10の占める領域のうち、一方の端にあたる画素である。
こうして、現在のX座標において初めて「領域内」と判定される画素がステップS6で検出されたら、当該画素の座標を、現在のX座標における「始点」および「終点」の座標として記録する(ステップS8)。記録したら、さらにY座標を他端に向かってDyずらした座標の画素を次の画素に設定し(ステップS7)、ステップS5へ戻る。
ステップS6で「領域内」の画素が検出された後は、ステップS8で始点の座標が記録されているので、ステップS5では「始点の座標が記録されている」と判定される。その場合は、ステップS9に進み、対象の画素が対象物10の占める領域内か否かを判定する。対象の画素が領域内(白)であればステップS10に進み、「終点」の座標を更新する。更新したら、さらにY座標を他端に向かってDyずらした座標の画素を次の画素に設定し(ステップS7)、ステップS5へ戻る。ステップS9において「領域内」との判定が続いている間は、ステップS5からステップS9,S10,S7が繰り返され、終点の座標が更新されていく(つまり、Y座標がDyずつ加算されていく)。
このように、始点の座標の記録があり、且つステップS9で「領域内」との判定が続いている間は、Y座標をDyずつずらしながらY方向の一方から他方に向かってステップS9の判定を繰り返すことになる。現在のX座標において対象物10の占める領域がY方向に関して中間部に位置している場合、Y座標を他方へずらしながらステップS9,S10の処理を続けていくと、いずれ対象物10の占める領域の外の画素に到達する。このとき、ステップS9で対象の画素が対象物10の占める領域外(黒)であると判定される。この場合は、終点のY座標を更新するステップS10は行わず、ステップS11に進む。
ステップS11に進んだ時点で記録されている始点および終点の座標は、現在のX座標において、対象物10の占める領域のY方向に関し両端にあたる点の座標である。ステップS11では、この始点と終点を結ぶ線分の中点にあたる座標を、現在のX座標における中間点の座標として記録する。中間点の座標を記録したらステップS3に戻り、対象のX座標をDxだけずらす。ずらしたX座標が対象物10の占める領域の範囲内であれば(ステップS4)、次のX座標についてステップS5~S11を実行する。
このようにステップS3~S11を繰り返していくと、対象物10の一方の端点P1から他方の端点P2に向け、X座標をDxずつずらしながら、図10に示す如く、各X座標ごとに始点(R1,R2,……Rn)、終点(S1,S2,……Sn)および中間点(Q1,Q2,……Qn)の座標を取得していくことになる。処理対象のX座標が対象物10の占める領域外へ到達し、それがステップS4で判定されると、計測点(端点P1,P2および中間点Q1,Q2,……Qn)の取得は終了する。こうして、各中間点Q1,Q2,……Qnの座標を簡便に取得することができる。
隣接する計測点同士を線分で繋いだ計測線(図10中にMLの符号で示す)は、対象物10の中心線に概ね沿っている。そこで次に、各計測点の座標に基づき、この計測線MLの長さを算出する。
まず、一方の端点P1の座標を取得する(図9、ステップS21)。続いて、現在のX座標から、他方に向かってDxだけずらしたX座標までの間に計測点(次の計測点)が存在するか否かを判定する(ステップS22)。次の計測点が存在する場合は、該次の計測点の座標を取得し、現在の計測点から次の計測点までの距離を算出する(ステップS23)。算出した距離を、現在の累積距離に加算する(ステップS24)。尚、最初のステップS24においては、累積距離はゼロであるので、端点P1と、その隣の中間点Q1との距離が累積距離として記録される。累積距離を加算したら、対象のX座標を他方へDxだけずらし(ステップS25)、ステップS22へ戻る。
こうして、一方の端点P1から他方の端点P2に向かい、各計測点同士の距離を算出し、順次積算していく。端点P2まで距離の算出および積算が済むと、ステップS22において「次の計測点が存在しない」との判定がなされるので、そこで処理を終了する。処理が終了した時点における累積距離が、対象物判別画像における計測線MLの長さである。
・手順4)画像内における寸法と実寸の対応関係からの実寸の算出
対象物判別画像内における計測線MLの長さが算出されたら、手順1で取得した画像内における寸法と実寸との対応関係に基づき、対象物10の実長を算出することができる。すなわち、手順1において取得された「対象物10の単位実長あたりの画像内における寸法」の逆数を計測線MLの長さに乗じた値が、対象物10の実際の長さである。
元画像(図3参照)に、標識光3が照射された計測可能な対象物10が複数映っている場合は、各対象物10ごとに対象物判別画像を生成し、計測線の長さを算出する。
以上の如き測定方法によれば、対象物10が画像内において曲線的な形状を取っていても、対象物10の長さを精度よく測定することができる。この際、対象物10の長手方向がX方向に対してある程度傾斜していても、取得される中間点の座標は対象物10の中心線に概ね沿ったものと見なすことができるので、実用上、さして支障はない。
尤も、対象物10がX方向に対して大きく傾斜していたり、対象物10の形状が著しく湾曲していると、端点や中間点の正確な取得が難しくなることが想定される。そういった場合は、撮像装置2により取得された元画像を適当な角度に回転させて対象物判別画像を生成したり、幾つかに分割して対象物判別画像を生成し、それぞれについて計測線の長さを測定し、それらを合計する、といった方法で対応することができる。
また、対象物10が養殖槽内の魚である場合には、魚は限られた空間を概ね一定の向きに遊泳しており、しかも遊泳中の魚であれば計測の取得が困難なほど湾曲した姿勢を取ることは少ないので、適当な場所と角度を選んで撮像装置2を設置すれば、はじめから計測に適した元画像および対象物判別画像を取得することが可能である。
尚、対象物10が魚等の水中生物である場合、撮像装置2の設置位置は、対象物10の運動方向に合わせて設定することが好ましい。すなわち、対象物10が例えばタイやアジ等、横方向にくねるような動きをする生物であれば、対象物10の上方または下方に撮像装置2を設置し、対象物10を上方または下方から撮像した画像として元画像を取得すると良い。また、対象物10がヒラメ等の場合は、縦方向に波打つように動くので、対象物10の横に撮像装置2を設置し、横方向から撮像すると良い。このようにすると、対象物10のくねり方向に沿った計測線の長さを好適に取得することができる。
以上のように、上記本実施例においては、画像内に映り込んだ液8中の対象物10の中心線に沿った計測線MLの長さを、対象物10の長さとして算出するようにしている。このようにすれば、画像内において対象物10が曲線的な形状を取っていたとしても、対象物10の長さを精度よく取得することができる。
また、本実施例の液中物の測定方法においては、画像内における対象物10の占める領域のうち、X方向に関する端部にあたる端点P1,P2の座標を計測点の座標として取得すると共に、端点P1,P2同士の間の複数のX座標において、対象物10の占める領域のY方向に関する中央にあたる中間点Q1,Q2,……Qnの座標を計測点の座標として取得し、X方向に隣接する前記計測点間の距離の合計値として、計測線MLの長さを取得するようにしている。このようにすれば、対象物10の中心線に沿った計測線MLの長さを簡便に取得することができる。
また、本実施例の液中物の測定方法においては、各X座標における対象物10の占める領域のY方向に関する両端の座標をそれぞれ始点R1,R2,……Rnの座標および終点S1,S2,……Snの座標として取得し、始点R1,R2,……Rnと終点S1,S2,……Snを結ぶ線分の中点にあたる座標を各中間点Q1,Q2,……Qnの座標として取得するようにしている。このようにすれば、中間点Q1,Q2,……Qnの座標を取得するにあたって簡便である。
また、本実施例の液中物の測定方法においては、対象物10を撮像した元画像から、対象物10の占める領域の画素を一の値に、それ以外の領域の画素を他の値に設定した二値画像を対象物判別画像として生成するようにしている。このようにすれば、画像において対象物10の占める領域とそれ以外の領域を判別するにあたって簡便である。
また、本実施例の液中物の測定方法においては、対象物10を水中生物としており、このようにすれば、水中生物の長さを好適に取得することができる。
また、本実施例の液中物の測定システムは、上述の液中物の測定方法を実行可能に構成されている。
したがって、上記本実施例によれば、対象物の寸法を画像に基づいて精度よく簡便に取得し得る。
尚、本発明の液中物の測定方法およびシステムは、上述の実施例にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。