図1を説明する。
図1はネットワークカメラのPTZ値を自動で設定する自動設定システムのシステム構成図である。
図1の上図は、ビニールハウスである圃場500の天井等に固定設置されたネットワークカメラ300で、ビニールハウス内で生育中のいちごなどの畝400を天井から撮影している状況を示している。
ネットワークカメラ300から、畝400上の撮影対象までの直線距離をxとする。
いちごなどの畝400は、直線状の形状であり、1つの固定されたネットワークカメラ300のプリセット値を変えることで、直線状の畝400を広い領域で撮影することができる。また図1の点とは、畝400上にある任意の撮影対象(1カ所)を示したものである。
図18は、ネットワークカメラ300と通信可能に接続される自動設定システムを示したものである。
Webアプリケーションサーバ200は、図10〜図11に示したWeb画面をクライアント端末100のブラウザ内で表示するように表示制御するものであり、クライアント端末100からの処理リクエストに応じて、適宜、画面情報などを生成してクライアント端末100に送信するサーバである。
データベースサーバ201は、図10〜図11に示したWeb画面で表示される各種データを読み出し、書き出しするデータベースとして管理するサーバである。
クライアント端末100は、Webアプリケーションサーバ200から受信した図10〜図11に示したWeb画面情報をWebブラウザ等で表示するための表示端末である。
ネットワークカメラ300、Webアプリケーションサーバ200、データベースサーバ201、クライアント端末100は、インターネット回線またはLAN4000等の通信回線によりそれぞれ通信可能に接続されている。
図2を説明する。
以下、図2を用いて、図18に示したクライアント端末100、Webアプリケーションサーバ200、データベースサーバ201、ネットワークカメラ300に適用可能な情報処理装置のハードウェア構成について説明する。
図2において、CPU1は、システムバス4に接続される各デバイスやコントローラを統括的に制御する。また、ROM2あるいは外部メモリ11には、CPU1の制御プログラムであるBIOS(Basic Input / Output System)やオペレーティングシステムプログラム(以下、OS)や、各サーバ或いは各PCの実行する機能を実現するために必要な後述する各種プログラム等が記憶されている。
RAM3は、CPU1の主メモリ、ワークエリア等として機能する。CPU1は、処理の実行に際して必要なプログラム等をROM2あるいは外部メモリ11からRAM3にロードして、該ロードしたプログラムを実行することで各種動作を実現するものである。
また、5は入力コントローラで、キーボード(KB)9やカメラデバイス12(撮像装置)、不図示のマウス等のポインティングデバイス等からの入力を制御する。206はビデオコントローラで、CRTディスプレイ(CRT)10等の表示器への表示を制御する。なお、図2では、CRT10と記載しているが、表示器はCRTだけでなく、液晶ディスプレイ等の他の表示器であってもよい。これらは必要に応じて管理者が使用するものである。
メモリコントローラ7は、ブートプログラム,各種のアプリケーション,フォントデータ,ユーザファイル,編集ファイル,各種データ等を記憶する外部記憶装置(ハードディスク(HD))や、フレキシブルディスク(FD)、或いはPCMCIAカードスロットにアダプタを介して接続されるコンパクトフラッシュ(登録商標)メモリ等の外部メモリ11へのアクセスを制御する。
通信I/Fコントローラ8は、ネットワーク(例えば、図18に示したLAN400)を介して外部機器と接続・通信するものであり、ネットワークでの通信制御処理を実行する。例えば、TCP/IPを用いた通信等が可能である。
なお、CPU1は、例えばRAM3内の表示情報用領域へアウトラインフォントの展開(ラスタライズ)処理を実行することにより、CRT10上での表示を可能としている。また、CPU1は、CRT10上の不図示のマウスカーソル等でのユーザ指示を可能とする。
本発明を実現するための後述する各種プログラムは、外部メモリ11に記録されており、必要に応じてRAM3にロードされることによりCPU1によって実行されるものである。さらに、上記プログラムの実行時に用いられる定義ファイル及び各種情報テーブル等も、外部メモリ11に格納されており、これらについての詳細な説明も後述する。
図3〜図9を用いてネットワークカメラのPTZ値を自動で設定する際の流れを、ネットワークカメラ300と畝400との相対的な位置関係を用いて説明する。
図3では、ネットワークカメラの撮影方位がそれぞれ異なる2か所として、始点401と終点402を結ぶ直線上に存在する所定点である正面点(近傍位置)403の距離をユーザが手動で実測する。所定点である始点(遠方位置)401とは畝400上の撮影対象の開始点である。所定点である終点(遠方位置)402とは畝400上の撮影対象の終了点である。正面点403とは畝400上の撮影対象の最近傍点である。
ネットワークカメラ300から、畝400上の撮影対象(正面点403)までの垂直距離hを、メジャー等を使ってユーザが実測する。この時に得られた垂直距離hを図10の画面の設置高さ(単位mm)1015にユーザが手入力する(実測受付手段)。
同様に、ネットワークカメラ300から、畝400上の撮影対象(正面点403)までの水平距離dを、メジャー等を使ってユーザが実測する。この時に得られた水平距離dを図10の画面の畝までの距離(単位mm)1016にユーザが手入力する。
図4の(1)では、自動設定システムは、ネットワークカメラ300の見える範囲全域を写す複数箇所の撮影点のP(パン値)、T(チルト値)、Z(ズーム値)の値を自動計算し、自動撮影を行う。撮影が終わった後、撮影された複数画像を合わせて、一枚の全範囲撮影画像500を合成する。また、図4の(1)の処理は図12のフローチャートのS201〜S202のステップに対応する処理である。
ユーザは、図10の操作画面内の全範囲撮影画像500上で撮影対象(始点)の位置を手動設定し(始点受付手段)、自動設定システムは撮影対象(始点)を含む1枚の画像上での座標(u0,v0)を計算し、データベースサーバ201に保存する。
同様に、ユーザは全範囲撮影画像500上で撮影対象(終点)の位置を手動設定し(終点受付手段)、自動設定システムは撮影対象(終点)を含む1枚の画像上での座標(ue,ve)を計算し、データベースサーバ201に保存する。
同様に、ユーザは全範囲撮影画像500上で撮影対象(正面点)の位置を手動設定し、自動設定システムは撮影対象(正面点)を含む1枚の画像上での座標(uf,vf)を計算し、データベースサーバ201に保存する。
図4の(2)では、自動設定システムは、全範囲撮影画像500上で位置を指定された点のネットワークカメラ300から見た方位P(パン値)、T(チルト値)の値を自動計算する。
自動設定システムは、全範囲撮影画像500上で撮影対象(始点)の座標(u0,v0)から、ネットワークカメラ300から見た方位P(パン値)、T(チルト値)の値を自動計算し、データベースサーバ201に保存する。
同様に、自動設定システムは、全範囲撮影画像500上で撮影対象(終点)の座標(ue,ve)から、ネットワークカメラ300から見た方位P(パン値)、T(チルト値)の値を自動計算し、データベースサーバ201に保存する。
同様に、自動設定システムは、全範囲撮影画像500上で撮影対象(正面点)の座標(uf,vf)から、ネットワークカメラ300から見た方位P(パン値)、T(チルト値)の値を自動計算し、データベースサーバ201に保存する。また、図4の(2)の処理は図12のフローチャートのS203のステップに対応する処理である。
図5では自動設定システムは、図5に示した正面点までの直線距離a及び、撮影対象(始点)と正面点のP(パン値)、T(チルト値)の値の差分から、図5に示した撮影対象(始点)までの直線距離bを自動計算する。
同様に、自動設定システムは、図5に示した正面点までの直線距離a及び、撮影対象(終点)と正面点のP(パン値)、T(チルト値)の値の差分から、図5に示した撮影対象(終点)までの直線距離cを自動計算する。
図6では、自動設定システムは、直線距離aとP(パン値)、T(チルト値)の値から、ネットワークカメラ300を基準座標(0,0,0)とした場合の、撮影対象(始点)の相対座標(X0,Y0,Z0)を自動計算する。自動計算された後の相対座標(X0,Y0,Z0)は、データベースサーバ201に保存される。
同様に、自動設定システムは、直線距離bとP(パン値)、T(チルト値)の値から、ネットワークカメラ300を基準座標(0,0,0)とした場合の、撮影対象(終点)の相対座標(Xe,Ye,Ze)を自動計算する。自動計算された後の相対座標(Xe,Ye,Ze)は、データベースサーバ201に保存される。また、図6の処理は図12のフローチャートのS204のステップに対応する処理である。
図7では、図10の画面の撮影幅1018にユーザが任意の撮影幅(mm)を手入力する。ここで任意の撮影幅とは、畝400上の複数箇所での撮影対象において、畝400がそれぞれ撮影される畝の領域(尚、画像内における畝の幅や長さであってもよい)を、複数箇所において同じサイズに指定するための幅のことである。さらに任意の撮影幅毎に撮影方向がずれるので、撮影対象(各箇所)の画角の中心点も図7に示したように、設定された均等間隔でずれることになる。
尚、複数箇所の撮影において、撮影幅(mm)が略均等間隔になるようになれば良く、複数箇所の撮影において、撮影幅(mm)の間隔に±数%以内の違いがあっても誤差の範囲とみなしても問題ない。
さらに図10の画面の被り率1019にユーザが任意の被り率(0%〜99%)を手入力する。ここで任意の被り率とは、撮影対象(各箇所)の画角の中心点も図7に示したように、設定された間隔でずらす場合に、どの程度撮影される領域を重複させるかの度合いを設定するものである。0%に設定した場合重複させる撮影される領域が無い設定である。尚、撮影対象物を直線上でのどの程度重複させるかの度合いとして設定してもよい。
尚、図7、図9に示したように撮影対象(各箇所)の画角の複数の中心点が撮影点同士である。
自動設定システムは、任意の撮影幅(mm)、任意の被り率(0%〜99%)を用いて、始点の相対座標(X0,Y0,Z0)から隣に1カ所ずれた、次の撮影対象の相対座標(X1,Y1,Z1)を自動計算する。また、図7の処理は図12のフローチャートのS205のステップに対応する処理である。
次に自動設定システムは、自動計算した次の撮影対象の相対座標(X1,Y1,Z1)が画角の中心点になるように、P(パン値)、T(チルト値)を自動計算する。自動計算された後のP(パン値)、T(チルト値)は、データベースサーバ201に保存される。
ここで自動計算されたP(パン値)、T(チルト値)は、図11の畝1_1の表示されているものに対応する。尚、図11の畝1_0に表示されているP(パン値)、T(チルト値)は始点のP(パン値)、T(チルト値)である。また、図7の処理は図12のフローチャートのS206のステップに対応する処理である。
ここで自動設定システムは、任意の撮影幅(mm)、任意の被り率(0%〜99%)を用いて、始点の相対座標(X0,Y0,Z0)から隣に1カ所ずれた、次の撮影対象の画角の中心点の相対座標(X1,Y1,Z1)を自動計算できたので、始点の画角の中心点の相対座標(X0,Y0,Z0)から、相対座標(X1,Y1,Z1)にどの程度、中心点の相対座標が変動(増減)したかの変動比によって、次の撮影対象(畝1_1)で撮影される畝の領域を自動計算する。また、図8の処理は図12のフローチャートのS207のステップに対応する処理である。
自動計算した次の撮影対象(畝1_1)で撮影される畝の領域から、Z(ズーム)を自動計算する。自動計算された後のZ(ズーム)は、データベースサーバ201に保存される。
ここで自動計算されたZ(ズーム)は、図11の畝1_1の表示されているものに対応する。また、図8の処理は図12のフローチャートのS208のステップに対応する処理である。
図9に示すように、自動設定システムは、始点の相対座標(X0,Y0,Z0)と撮影幅から、隣の撮影対象の相対座標(X1,Y1,Z1)及び撮影される畝の領域(mm)の自動計算を、終点の相対座標(Xe,Ye,Ze)を超えるまで繰り返して行うことで、各点のP(パン値)、T(チルト値)、Z(ズーム)を自動計算している。
図10を説明する。
図10はネットワークカメラ300が撮影した全範囲撮影画像500の表示と、全範囲撮影画像500上でユーザが畝400上の撮影対象の始点401、終点402、正面点403の場所を設定するための対象設定画面1000の一例を示したものである。
カメラ1001は使用するネットワークカメラ300を設定する選択欄であり、例えば「カメラ1」という名前のネットワークカメラ300をユーザが選択する。
全範囲撮影画像500の横の大きさ1002は全範囲撮影画像500の横の長さを設定する選択欄であり、例えば「3840ピクセル」という長さをユーザが選択する。
全範囲撮影画像500のアスペクト比1003は全範囲撮影画像500のアスペクト比を設定する選択欄であり、例えば「32:9」というアスペクト比をユーザが選択する。
全範囲撮影画像500を構成する画像の枚数1004は全範囲撮影画像500を作るための画像の枚数を設定する選択欄であり、例えば「6枚×3枚=18枚」という画像の枚数をユーザが選択する。ここで設定された枚数によって、18枚の各画像の画像の中心点の向き(PT)と画角(Z)を示すPTZが自動で計算される。
全範囲を撮影1005は、カメラ1001〜全範囲撮影画像を構成する画像の枚数1004の設定値を使い、全範囲撮影画像500を撮影するための自動計算および自動撮影を指示するためのボタンである。
全範囲撮影画像500には、リアルタイムで全範囲を撮影した画像が表示されている。
ラジオボタン1006は、全範囲撮影画像500上での畝400上の撮影対象の始点401の位置10007の設定を開始する欄であり、ユーザがラジオボタン1006を選択することで全範囲撮影画像500上での畝400上の撮影対象の始点401の位置1007を選択できるようになる。(受付手段)
○のマーク1007は、全範囲撮影画像500上で、ユーザにより指定された畝400上の撮影対象の始点401の位置である。
始点の画像座標x:y1008は、全範囲撮影画像500上での畝400上の撮影対象の始点401の位置1007の画像座標であり、全画像での左端からの横向きの距離と上端からの縦向きの距離が表示されている。
同様に、ラジオボタン1009は、全範囲撮影画像500上での畝400上の撮影対象の終点402の位置1010の設定を開始する欄であり、ユーザが選択することで全範囲撮影画像500上での畝400上の撮影対象の終点402の位置1010を選択できるようになる。(受付手段)
同様に、○のマーク1010は、全範囲撮影画像500上で、ユーザにより指定された畝400上の撮影対象の終点402の位置である。
同様に、図の終点x:y1011には、全範囲撮影画像500上での畝400上の撮影対象の終点402の位置1010の座標であり、画像での左端からの横向きの距離と上端からの縦向きの距離が表示されている。
同様に、ラジオボタン1012は、全範囲撮影画像500上での畝400上の撮影対象の正面点403の位置1013の設定を開始する欄であり、ユーザが選択することで全範囲撮影画像500上での畝400上の撮影対象の正面点403の位置1013を選択できるようになる。(受付手段)
○のマーク1013は、全範囲撮影画像500上で、ユーザにより指定された畝400上の撮影対象の正面点403の位置である。
図の正面点x:y1014には、全範囲撮影画像500上での畝400上の撮影対象の正面点403の位置1013の座標であり、画像での左端からの横向きの距離と上端からの縦向きの距離が表示されている。
図の設置高さ(単位:mm)1015は、ネットワークカメラ300と畝400上の撮影対象との垂直距離(mm)を設定する欄であり、例えば「1700mm」とユーザが手入力する。更にネットワークカメラ内の基準点(0,0,0)と正面点(Xf,Yf,Zf)までの2点間の垂直距離hをユーザが実測して手入力する(受付手段)。
図の畝までの距離(単位:mm)1016は、ネットワークカメラ300と畝400上の撮影対象との水平距離(mm)を設定する欄であり、例えば「650mm」とユーザが手入力する。更にネットワークカメラ内の基準点(0,0,0)と正面点(Xf,Yf,Zf)までの2点間の水平距離dをユーザが実測して手入力する(受付手段)。
図の畝名称1017は、直線状の撮影対象の名称を入力する入力欄であり、例えば「畝1」とユーザが手入力する。
図の撮影幅(単位:mm)1018は、複数箇所を撮影する際に、複数箇所における撮影対象物の幅を均等サイズにするための撮影対象物の幅(mm)を設定する欄であり、例えば「2200mm」とユーザが手入力する(受付手段)。
図の被り率(単位:%)1019は、隣り合う2つの撮影される領域を0%〜99%の間で、どの程度被らせるかをユーザが任意に設定する欄であり、例えば「20%」とユーザが手入力する(受付手段)。
図のプリセット登録1020は、図10でカメラ1001〜被り率(単位:%)1019の設定値の手動設定が完了した後、カメラ1001〜被り率(単位:%)1019の設定値をデータベースサーバ201に保存指示及び、1つの畝(直線状の撮影対象領域)の中で、複数箇所に対応する各PTZ設定の一括生成を、Webアプリケーションサーバ200に指示及び、自動撮影指示するためのボタンである。
プリセット登録1020ボタンを押下することで、図10の画面の下に、図11の画面が表示される。
図11を説明する。
図11はこれまでにWebアプリケーションサーバ200において自動計算処理を行った、計算結果の一覧表示画面および、自動計算されたPTZ値を手動修正する場合に、図11の一覧結果の各撮影箇所単位で編集するための結果編集画面1100の一例を示したものである。
1101の畝1_0は、自動計算された各撮影箇所の中で最も始点に近い箇所のP(パン値)、T(チルト値)、Z(ズーム値)の計算結果を示したものである。
1104の畝1_1は、自動計算された各撮影箇所の中で畝1_0の次に始点に近い箇所であり、自動計算された各撮影箇所の最後撮影箇所のP(パン値)、T(チルト値)、Z(ズーム値)の計算結果を示したものである。
有効にチェックが入ると、その撮影箇所の設定を有効にして撮影が実行される。チェックがない場合、その撮影箇所の設定が無効となり撮影が実行されない。
1102は畝1_0のP(パン値)、T(チルト値)、Z(ズーム値)の箇所をリアルタイムで撮影した画像が表示されている。この畝1_0の画像ではユーザにより指定された任意の始点が畝1_0の画像の中心点になるように、P(パン値)、T(チルト値)、Z(ズーム値)が計算されていることになる。
1105は畝1_1のP(パン値)、T(チルト値)、Z(ズーム値)の箇所をリアルタイムで撮影した画像が表示されている。
1101は畝1_0のP(パン値)、T(チルト値)、Z(ズーム値)の結果を手動で修正するための修正欄であり、自動計算結果を微修正することができる。
図の修正ボタン1103は、1101で修正した後、畝1_0の修正値をデータベースサーバ201に修正指示するものである。
1104は畝1_1のP(パン値)、T(チルト値)、Z(ズーム値)の結果を手動で修正するための修正欄であり、自動計算結果を微修正することができる。
図の修正ボタン1106は、1104で修正した後、畝1_1の修正値をデータベースサーバ201に修正指示するものである。
図12を説明する。
以下、図12を参照して、本発明のPTZ値自動設定システムにおける、Webアプリケーションサーバ200、データベースサーバ201側で動作するPTZ値自動設定アプリケーションでの処理について説明する。
図12のフローチャートで示す処理は、Webアプリケーションサーバ200、データベースサーバ201のCPU1が所定の制御プログラムを読み出して実行する処理である。
図12は畝撮影手法のフローチャートである。図17(1)〜図17(3)は畝撮影手法で使用する数式を表す。以下、図12を参照して、本実施形態の畝撮影手法のロジックを説明する。
畝撮影手法全体の処理は、ユーザが入力した設定値から畝の相対位置を算出する処理と畝を撮影するプリセット自動算出の処理からなる。P(パン値)・T(チルト値)・Z(ズーム)(以下PTZ)の値の算出はプリセット自動算出の処理に含まれる。
畝の相対位置を算出する処理では、畝は直線上の物体と仮定し、畝上の点の相対位置は畝の始点・終点の相対位置から補間する。
ネットワークカメラは畝を撮影する場合、ネットワークカメラから見た畝の相対位置情報を知る必要がある。本発明ではこの相対位置をネットワークカメラを中心とした3次元ユークリッド空間の座標(XYZ座標)で考える。
ネットワークカメラは畝を撮影する場合、畝上に複数の点を算出し、それらの点を狙って撮影する。
ステップS201〜ステップS206では数式(1)〜数式(14)までの計算を行うことで、始点・終点の相対位置を自動計算することができる。
ステップS205〜ステップ210までは数式(15)〜(35)までの計算を行うことで、プリセット自動算出ができる。
これらの撮影点の相対位置から、ステップS207では数式(20)、数式(22)の計算を行うことで、P(パン値)を自動計算する。
ステップS206では数式(21)、数式(23)の計算を行うこと、撮影点でのT(チルト値)の自動計算を行う。
ステップS207では数式(24)〜数式(29)までの計算を行うことで、撮影点での撮影する領域の大きさを自動計算する。
ステップS208では数式(30)、数式(31)の計算を行うことで、撮影点でのZ(ズーム値)の自動計算を行う。
ネットワークカメラの点の狙い方は点が画像の中心に写るようにP(パン値)(水平方向の回転動作)とT(チルト値)(仰角又は俯角方向の回転動作)を変えることで行う。
図13を説明する。
図13では、ネットワークカメラ300の撮影対象とその画像への結像の位置関係を理想化したモデルのピンホールカメラモデルと、ピンホールカメラモデルの画像面を配置し直した透視投影モデルが示されており、これらのモデルから撮影対象と画像の対応を計算する。
本実施形態の畝撮影手法のロジックは、撮影対象が逆さまに写らない透視投影モデルを使う。
図14を説明する。
図14の(1)では、透視投影モデルを用いた時の、ネットワークカメラ300の水平画角γと画像面の対応関係が示されている。
水平画角はZ(ズーム値)から数式(1)で計算する。尚、水平画角とZ(ズーム値)の変換に±数%以内の違いがあっても誤差の範囲とみなしても問題ない。
同様に、図14(2)に示すように、透視投影モデルを用いた時の、ネットワークカメラ300の垂直画角δと画像面の対応関係が示されている。垂直画角はZ(ズーム値)から数式(2)で計算する。
尚、垂直画角とZ(ズーム値)の変換に±数%以内の違いがあっても誤差の範囲とみなしても問題ない。
数式(1)〜数式(2)までの計算を行うことで、ネットワークカメラ300から見える範囲全部を撮影するための、画像全て(例えば6×3=18枚)の撮影中心点1501のP(パン値)、T(チルト値)、Z(ズーム値)を自動で計算して取得することができる。
画像全て(例えば6×3=18枚)の撮影中心点1501のP(パン値)、T(チルト値)、Z(ズーム値)の取得処理は図12のステップS201で実行される。
ネットワークカメラ300のP(パン値)(水平方向の回転動作)は図14(1)の水平画角の方向と同じ方向であり、あるZ(ズーム値)でP(パン値)を変えながら撮影することで、水平方向を360度撮影することができる。
同様に、ネットワークカメラ300のT(チルト値)(仰角又は俯角方向の回転動作)は図14(2)の垂直画角の方向と同じ方向であり、あるZ(ズーム値)でT(チルト値)を変えながら撮影することで、仰角方向を90度撮影することができる。
数式(1)〜数式(2)までの計算を行い、自動で計算して取得したPTZで撮影した画像全て(例えば6×3=18枚)を縦横に並べることで、全範囲撮影画像500が合成できる。算出されたPTZで撮影した画像全てを並べ、全範囲撮影画像500を合成する処理は図12のステップS202で実行される。
図15を説明する。
図15の(1)には、全範囲撮影画像500を構成する画像全て(例えば6×3=18枚)の中の、1枚の範囲撮影画像1500内でユーザによって指定された任意の点のP(パン値)とT(チルト値)を計算する際の、一枚の範囲撮影画像1500内の中心点との位置関係が示されている。
以下、一枚の範囲撮影画像1500内の任意の点のP(パン値)、T(チルト値)を計算する方法を示す。
一枚の範囲撮影画像1500は、全範囲撮影画像500を構成する画像の中のある一枚の画像を示す。
この一枚の範囲撮影画像1500の中心点1501のP(パン値)、T(チルト値)、Z(ズーム値)は、ステップS201で既に取得できている。
この既に取得できている中心点1501のP(パン値)、T(チルト値)、Z(ズーム値)から、最終的に任意の点1502を中心に写すための、P(パン値)、T(チルト値)を計算することになる。
図15の(2)には、ネットワークカメラをある画角で固定した時のネットワークカメラを中心とした撮影対象の点の3次元ユークリッド空間の座標(xyz座標)(以下、カメラを固定した3次元空間の座標)と画像座標の対応関係が示されている。数式(3)より任意の点1502の画像座標(u,v)から任意の点1502のカメラを固定した3次元空間上の座標(xc,yc,zc)を計算する。
数式(3)は定数sを含んでおり、この定数sでカメラから任意の点1502までの距離(zc)の値が変わる。
本手法では3次元ユークリッド空間の座標と画像座標の変換の際に、レンズの歪み等による幾何計算の誤差を考慮しないため、数式(3)の計算で±数%以内の違いが起きるが、これは誤差の範囲とみなしても問題ない。
画像座標とは、図13の透視投影モデルで、画像面上に投影された撮影対象の点の位置を表す数値である。図14(1)に示されているように、数式(4)より焦点距離fは水平画角γから計算される。
図15の(3)、図15の(4)(a)、図15の(4)(b)には、ネットワークカメラを設置した際に最初にネットワークカメラが向いている方向(以下、カメラの初期方向)と点を指す方向をそれぞれネットワークカメラの真上、真横、立体的に見た図で表している。図15の(4)(b)ではネットワークカメラのレンズと点までの距離Dwを図で表している。
任意の点1502が中心に写るP(パン値)、T(チルト値)を任意の点1502の3次元ユークリッド空間座標(Xw´,Yw´,Zw´)から求める。
任意の点1502の3次元ユークリッド空間座標は、任意の点1502のカメラを固定した3次元空間の座標(xc´,yc´,zc´)から数式(5)を用いて、計算できる。
数式(5)のRyとRzは3次元ユークリッド空間の回転行列を示し、数式(5)のようにネットワークカメラの向いている方向を考慮した座標を計算できる。RyとRzは数式(6)のように表される。
数式(6)のαとβは数式(7)を用いて、P(パン値)、T(チルト値)から求めることができる。
この時の用いるP(パン値)、T(チルト値)は数式(3)を用いる際のネットワークカメラの撮影中心のP(パン値)、T(チルト値)であり、中心点1501のP(パン値)、T(チルト値)を使う。
また、数式(3)のfxとfyを求める数式(4)のγは、数式(1)でZ(ズーム値)から求められるが、この時用いるZ(ズーム値)は、ネットワークカメラの撮影中心のZ(ズーム値)であり、中心点1501のZ(ズーム値)を使う。
数式(3)では任意の点1502のカメラからの距離(zc)がわかると、定数sが求まり、計算することができる。計算された任意の点1502のカメラを固定した3次元空間上の座標(xc´,yc´,zc´)から任意の点1502の3次元ユークリッド空間座標(Xw´,Yw´,Zw´)が求まり、数式(9)〜数式(12)を用いて、任意の点1502が中心に写るP(パン値)、T(チルト値)が求まる。
この時、任意の点1502が中心に写るP(パン値)、T(チルト値)はネットワークカメラの水平方向と仰角方向の方位の数値であるので、数式(3)で任意の点1502のカメラの距離(zc)を任意の値にして計算しても、任意の点1502が中心に写るP(パン値)、T(チルト値)の値は変わらず、何ら問題はない。よって、図15(1)の任意の点1502の距離を1とし数式(3)を計算する。
数式(3)〜(12)までの計算を行うこと任意の点1502のP(パン値)、T(チルト値)が計算される。
以上の処理を、全範囲撮影画像500上で3か所指定されることで、全範囲撮影画像500上始点・終点・正面点を含んでいる各一枚の範囲撮影画像1500から、始点・終点・正面点のP(パン値)、T(チルト値)をそれぞれ計算することになる。この始点・終点・正面点のP(パン値)、T(チルト値)の計算はステップS203で計算される。図10の全範囲撮影画像500には、3か所(始点1010、正面点1013、終点1007)が指定されているイメージを示している。
図15(3)、図15(4)は、本発明のネットワークカメラとネットワークカメラから見た畝の相対位置関係を示す図である。一つのネットワークカメラと一つの畝、一つのネットワークカメラが狙う畝上のある撮影中心点から構成される。
図15(4)では、ネットワークカメラを設置した際に最初にネットワークカメラが向いている方向(以下、カメラの初期方向)と中心点を指す方向をそれぞれネットワークカメラの真上、真横、立体的に見た図で表している。図15(3)ではネットワークカメラのレンズと中心点までの距離Dwを図で表している。
以下、ネットワークカメラとネットワークカメラから見た畝の相対位置関係を説明する。
ネットワークカメラは畝を撮影する場合、ネットワークカメラから見た畝の相対位置情報を知る必要がある。本発明ではこの相対位置を、ネットワークカメラを中心とした3次元ユークリッド空間の座標(xyz座標)で考える。ネットワークカメラは畝を撮影する場合、畝上に複数の点を算出し、それらの点を狙って撮影する。畝上のある点の相対位置はカメラの初期方向とネットワークカメラの位置によって決まる。
ネットワークカメラの点の狙い方は点が画像の中心に写るようにP(パン値)(水平方向の回転動作)とT(チルト値)(仰角又は俯角方向の回転動作)を変えることで行う。
図15(4)に示すように、P(パン値)(角度αと対応)はネットワークカメラをカメラの初期方向から点に向かって水平方向に回転させて調整する。
図15(4)に示すように、T(チルト値)(角度βと対応)はネットワークカメラをカメラの初期方向から仰角又は俯角方向に回転させて調整する。
いちご等の畝を複数箇所で撮影した場合も、同じ基準で生育サイズを計測する必要があり、固定されて設置されたネットワークカメラから、畝400のどこを撮影しても畝400の撮影対象物の大きさが均等サイズになるようにZ(ズーム値)を自動計算して設定する必要がある。
尚、複数箇所の撮影において、撮影対象物の大きさが略均等サイズになるようになれば良く、複数箇所の撮影において、撮影対象物の大きさに±数%以内の違いがあっても誤差の範囲とみなしても問題ない。
ステップS201〜ステップS204では、自動設定システムはユーザが入力した設定値から畝の相対位置を算出する。
図16を説明する。
図16には、撮影対象の始点・終点・正面点のP(パン値)、T(チルト値)とカメラから正面点までの直線距離a、カメラから始点までの直線距離b、カメラから終点までの直線距離c、カメラを頂点とした正面点と始点を角度ab、カメラを頂点とした正面点と終点を角度acの対応関係が示されている。
図10の設置高さ(単位mm)1015と畝までの距離(単位mm)1016の数値を使って、三平方の定理より直線距離aを計算することができる。
正面点はカメラと畝の最近傍点であるので、カメラと正面点を結ぶ直線は畝と垂直に交わる。よって、角度abと角度acがわかれば、三角関数より直線距離bと直線距離cが計算できる。
始点と正面点の角度abを求める。角度abは直線距離aと直線距離bの長さに影響されず、始点と正面点のP(パン値)、T(チルト値)の差から計算できるものなので、カメラからの始点の距離を1、カメラからの正面点の距離を1として始点と正面点の3次元ユークリッド空間座標を計算し、角度abを求めても何ら問題はない。
距離Dwを1として撮影対象の始点・正面点の3次元ユークリッド空間座標を数式(11)〜数式(13)までの計算を行うことで求める。その後、数式(14)の計算を行うことで、θabが計算される。このθabが角度abに対応する。
同様に、終点と正面点の角度acを求める。角度acは直線距離aと直線距離cの長さに影響されず、終点と正面点のP(パン値)、T(チルト値)の差から計算できるものなので、カメラからの終点の距離を1、カメラからの正面点の距離を1として終点と正面点の3次元ユークリッド空間座標を計算し、角度acを求めても何ら問題はない。
距離Dwを1として撮影対象の終点・正面点の3次元ユークリッド空間座標を数式(11)〜数式(13)までの計算を行うことで求める。その後、数式(14)の計算を行うことで、θabが計算される。このθabが角度acに対応する。
計算された角度abと直線距離aから、直線距離bを三角関数で計算する。
計算された角度acと直線距離aから直線距離cを三角関数で計算する。
直線距離bと直線距離cが計算できたので、その後、数式(11)〜数式(14)までの計算を行うことで、始点・終点の3次元ユークリッド空間座標(X0,Y0,Z0)、(Xe,Ye,Ze)を自動計算することができる。
数式(15)〜数式(19)までの計算を行うことで、畝上の撮影点の相対位置を自動計算する。ΔTは撮影幅1018である。
数式(20)と数式(22)の計算を行うことで、P(パン値)を自動計算する。Pannは図9に示したn番目の箇所のP(パン値)の計算値である。
数式(21)と数式(23)の計算を行うこと、T(チルト値)の自動計算を行う。Tiltnは図9に示したn番目の箇所のT(チルト値)の計算値である。
数式(24)〜数式(29)までの計算を行うことで、各撮影点での撮影する領域の大きさを自動計算する。T´nは図9に示したn番目の箇所の撮影する領域の計算値である。
数式(30)と数式(31)の計算を行うことで、Z(ズーム値)の自動計算を行う。Zoomnは図9に示したn番目の箇所のZ(ズーム値)の計算値である。
数式(32)を満たすまで、ステップS205〜ステップS208を繰り返す。
数式(33)〜数式(35)を満たすPTZ値だけを結果として出力する。この時、Panmin、PanmaxはネットワークカメラのP(パン値)の最小で取りうる値と最大で取りうる値、すなわち水平方向に動ける限界値を示す。
同様に、Tiltmin、TiltmaxはネットワークカメラのT(チルト値)の最小で取りうる値と最大で取りうる値、すなわち仰角方向に動ける限界値を示す。
同様に、Zoommin、ZoommaxはネットワークカメラのZ(ズーム値)の最小で取りうる値と最大で取りうる値、すなわち拡大縮小の限界値を示す。
最後に、図17(1)〜図17(3)の各数式と各種値の求め方との関係を整理する。
(正面点の直線距離(a)の求め方の概要)
設置高さ(h)を実測する。
正面点までの水平距離(d)を実測する。
設置高さ(h)と水平距離(d)で、三平方の定理から、正面点までの直線距離(a)が計算できる。
このように、情報処理装置は、結果的に正面点までの直線距離(a)を受け付けている(距離受付手段)。
(全範囲撮影画像の作り方の概要)
全範囲を撮影するため、パン角の方向360度分、チルト角の方向90度分を漏れなく撮影できるパン角α、チルト角β、ズーム角γのPTZ群を計算する。数式(1)(2)
計算したPTZ群で撮影して得られた画像群を貼り合わせ、1枚の全範囲撮影画像500を作る。
(始点の空間座標の求め方の概要):終点も同じ求め方。
STEP1では
正面点のパン角αとチルト角βを求める。
画像内で正面点(任意の点)の座標をユーザが指定する。
数式(1)(3)(4)(5)(6)(7)(8)(9)(10)を用いて、画像内の正面点の画像座標(u、v)と画像内の中心点のパン角α、チルト角β、ズーム角γから、正面点のユーグリット空間座標(Xw´,Yw´,Zw´)を計算する。
この時計算された正面点のユーグリット空間座標(Xw´,Yw´,Zw´)は、カメラから中心点までの距離を1(Xw´^2+Yw´^2+Zw´^2=1)として計算した仮の座標である。
この計算で求めるものは「正面点(任意の点)のパン角αとチルト角β」といった方位の情報であり、このパン角αとチルト角βは正面点とカメラ間の距離が変わっても変化しない。よって、カメラから正面点までの距離を1としてユーグリット空間座標(Xw´,Yw´,Zw´)を計算し、そのユーグリット空間座標から正面点のパン角αとチルト角βを計算しても問題はない。
数式(7)(8)(9)(10)を用いて、計算した正面点の仮のユーグリット空間座標(Xw´,Yw´,Zw´)から、ユーザが画像内で指定した正面点のパン角α、チルト角βを計算する(正面点方位計算手段)。
STEP2の始点のパン角α、チルト角βの計算も、仮の座標を使って計算する。
STEP2では
始点のパン角α、チルト角βを求める。
画像内で始点(任意の点)の座標をユーザが指定する。
数式(1)(3)(4)(5)(6)(7)(8)(9)(10)を用いて、画像内の始点の画像座標(u、v)と画像内の中心点のパン角α、チルト角β、ズーム角γから、始点のユーグリット空間座標(Xw´,Yw´,Zw´)を計算する。
この時計算された始点のユーグリット空間座標(Xw´,Yw´,Zw´)は、カメラから中心点までの距離を1(Xw´^2+Yw´^2+Zw´^2=1)として計算した仮の座標である。
数式(7)(8)(9)(10)を用いて、計算した始点の仮のユーグリット空間座標(Xw´,Yw´,Zw´)から、ユーザが画像内で指定した始点のパン角α、チルト角βを計算する(始点方位計算手段)。
終点方位計算手段も、これまで説明した始点方位計算手段と求め方は同じ考えかたであり、数式(7)(8)(9)(10)を用いて、計算した終点の仮のユーグリット空間座標(Xw´,Yw´,Zw´)から、ユーザが指定した任意の終点のパン角α、チルト角βを計算する
STEP3では
数式(14)を用いて、計算した正面点(任意の点)のパン角α、チルト角βと計算した始点(任意の点)のパン角α、チルト角βとの差分から、正面点までの直線距離(a)と始点までの直線距離(b)がなす角度(ab)を計算する。
直線距離(a)と計算したなす角度(ab)で、三角関数を用いて、始点までの直線距離(b)が計算できる(始点距離計算手段)。
終点距離計算手段も直線距離(a)と計算したなす角度(ac)で計算できる。
数式(11)(12)(13)を用いて、計算した直線距離(b)、計算した始点(任意の点)のパン角α、チルト角βから、圃場内に設置されたカメラからの相対的な始点のユーグリット空間座標(X0、Y0、Z0)が計算できる。
また、本発明における実行可能なプログラムは、図12の処理をコンピュータに実行させるプログラムである。なお、本発明におけるプログラムは、図12の各処理ごとのプログラムであってもよい。
以上のように、前述した実施形態の機能を実現するプログラムを記録した記録媒体を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムを読み出し、実行することによっても本発明の目的が達成されることは言うまでもない。
この場合、記録媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した記録媒体は本発明を構成することになる。
プログラムを供給するための記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、磁気テープ、不揮発性のメモリカード、ROM、EEPROM、シリコンディスク等を用いることが出来る。
また、コンピュータが読み出したプログラムを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムの指示に基づき、コンピュータ上で稼働しているOS(オペレーティングシステム)等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
また、本発明は、複数の機器から構成されるシステムに適用しても、ひとつの機器から成る装置に適用しても良い。また、本発明は、システムあるいは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのプログラムを格納した記録媒体を該システムあるいは装置に読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。
さらに、本発明を達成するためのプログラムをネットワーク上のサーバ、データベース等から通信プログラムによりダウンロードして読み出すことによって、そのシステムあるいは装置が、本発明の効果を享受することが可能となる。なお、上述した各実施形態およびその変形例を組み合わせた構成も全て本発明に含まれるものである。