(58)【調査した分野】(Int.Cl.,DB名)
前記プロセスデータ検索部は、前記カメラの仕様を識別するID番号を前記カメラから取得することで、前記データベースに格納されたプロセスデータから、前記カメラの仕様に応じたプロセスデータを検索し、取得する
請求項3に記載のカメラのキャリブレーション装置。
【発明を実施するための形態】
【0014】
以下、本発明のカメラのキャリブレーション装置、カメラシステム及びカメラのキャリブレーション方法の実施の形態例について、
図1〜
図11を参照して説明する。なお、各図において共通の部材には、同一の符号を付している。
【0015】
1.第1の実施の形態例
1−1.カメラシステムの構成例
まず、本発明の第1の実施の形態例(以下、「本例」という。)にかかるカメラシステムの構成について、
図1を参照して説明する。
図1は、本例のカメラシステムの全体構成を示すブロック図である。
【0016】
図1に示すカメラシステム1は、2つのカメラを用いて距離や立体映像を撮影するステレオカメラである。
図1に示すように、カメラシステム1は、2つのカメラ11A、11Bと、キャリブレーション装置2と、画像認識部40と、端末装置50とを有している。2つのカメラ11A、11B、キャリブレーション装置2、画像認識部40及び端末装置50は、無線又は有線のネットワーク7(LAN(Local Area Network)、インターネット、専用線等)を介して接続され、互いにデータの送受信が可能である。
【0017】
2つのカメラ11A、11Bには、それぞれカメラの仕様を識別するID番号11aが設けられている。2つのカメラ11A、11Bが撮影した画像データ及びID番号11aは、ネットワーク7を介してキャリブレーション装置2、画像認識部40及び端末装置50に送信される。
【0018】
キャリブレーション装置2は、キャリブレーション部20と、各種データが格納されているデータベース30とを有している。キャリブレーション部20は、画像取得部21と、基準データ格納部22と、補正パラメータ算出部23と、評価部24と、指示部25と、プロセスデータ検索部26とを有している。
【0019】
画像取得部21は、キャリブレーションを行う際に、カメラ11A、11Bが撮影した画像データを取得する。そして、画像取得部21は、取得した画像データからキャリブレーション作業時に用いる基準データを抜き出し、基準データ格納部22に出力する。また、画像取得部21は、取得した画像データを評価部24に出力する。
【0020】
基準データ格納部22には、画像取得部21から出力された基準データが格納される。なお、本例では、画像取得部21が画像データから基準データを抜き出した例を説明したが、これに限定されるものではない。例えば、画像取得部21から基準データ格納部22に画像データを出力し、基準データ格納部22が出力された画像データから基準データを抜き出し、格納するようにしてもよい。さらに、画像取得部21が取得した画像データから基準データを抜き出す基準データ取得部を別に設けてもよい。
【0021】
基準データ格納部22は、補正パラメータ算出部23に接続されている。補正パラメータ算出部23は、基準データ格納部22に格納された基準データに基づいて補正パラメータを算出する。
【0022】
補正パラメータ算出部23は、算出した補正パラメータを後述するデータベース30の補正パラメータ格納部32に出力する。
【0023】
評価部24には、画像取得部21が取得した画像データと、補正パラメータ算出部23が算出し、補正パラメータ格納部32に格納された補正パラメータが出力される。評価部24は、画像データと補正パラメータを用いて評価用補正画像を生成する。また、評価部24には、補正画像を評価するための評価データが格納されている。そして、評価部24は、生成した評価用補正画像を評価データに基づいて評価する。評価部24は、評価した情報を指示部25に出力する。
【0024】
なお、本例では、評価部24が評価用補正画像を生成する例を説明したが、これに限定されるものではない。例えば、補正パラメータと画像データに基づいて評価用補正画像を生成する補正部をキャリブレーション部20に設けてもよく、或いは後述する画像認識部40の補正部42が生成した補正画像を用いてもよい。
【0025】
指示部25は、評価部24が評価した情報、又は後述するプロセスデータ検索部26が検索したプロセスデータを受信する。そして、指示部25は、受信した情報を端末装置50に出力する。
【0026】
プロセスデータ検索部26は、後述するデータベース30のプロセスデータ格納部31及びカメラ設置データ格納部33に接続されている。プロセスデータ検索部26は、カメラ11A、11BのID番号11aに基づいてプロセスデータ格納部31及びカメラ設置データ格納部33からキャリブレーションを行うためのプロセスデータを検索し、取得する。そして、プロセスデータ検索部26は、取得したプロセスデータを指示部25に出力する。
【0027】
次に、データベース30について説明する。データベース30は、プロセスデータ格納部31と、補正パラメータ格納部32と、カメラ設置データ格納部33とを有している。
【0028】
プロセスデータ格納部31には、カメラの仕様毎に、キャリブレーションの作業を行うための作業データが格納されている。また、カメラ設置データ格納部33には、カメラ11A、11Bを設置するための、座標位置やカメラの向き等を示すカメラ設置データが格納されている。そして、この作業データとカメラ設置データによりキャリブレーションの作業を行うための作業工程であるプロセスデータが構成される。
【0029】
図2は、プロセスデータ格納部31及びカメラ設置データ格納部33に格納されているプロセスデータのテーブルの一例を示す説明図である。
図3は、プロセスデータの詳細を説明する模式図である。
【0030】
図2に示すように、プロセスデータは、例えば、ID番号11aと、基線長300と、カメラ11A、11Bの焦点距離301に基づいて、チャートサイズ302、距離303、撮影位置304、出荷時基準画像の有無305が設定されている。
【0031】
図3に示すように、基線長300は、2つのカメラ11A、11Bにおけるレンズ間の距離を示している。また、焦点距離301は、カメラ11Aのレンズの主点から焦点までの距離、すなわちピントを合わせたときのレンズから撮像素子までの距離である。そして、焦点距離301は、
図3に示すカメラ11A、11Bで撮影される画像に写される光景の範囲の角度である画角306に対応している。例えば、焦点距離301が短くなるほど、画角306が広くなり、焦点距離301が長くなるほど、画角306が狭くなる。
【0032】
プロセスデータにおける距離303は、カメラ11A、11Bと、キャリブレーションを行う際にカメラ11A、11Bで撮影する基準チャート201との距離を示している。
【0033】
また、チャートサイズ302は、キャリブレーションを行う際にカメラ11A、11Bで撮影する基準チャート201の大きさを示している。チャートサイズ302は、カメラ11A、11Bの画角306及び基線長300が決定された場合、距離303で2つのカメラ11A、11Bの共通視野308に収まる範囲のものが設定される。
【0034】
次に、プロセスデータに示す撮影位置304の詳細について
図4及び
図5を参照して説明する。
図4及び
図5は、撮影位置の詳細を示す説明図である。
【0035】
撮影位置304は、例えば、
図4に示すように基準チャート201を固定し、カメラ11Aを動かし、基準データを取得する位置を設定している。
図4に示す例では、地点Q1、Q2、Q3、Q4の4方向から基準チャート201を撮影する例を示している。
【0036】
また、撮影位置304は、キャリブレーションによって要求される補正精度によって適宜設定されるものであり、基準チャート201に対して上下左右4箇所と正面の5箇所以上設定されることが好ましい。
【0037】
なお、
図4に示す例では、カメラ11Aを動かす例を説明したが、これに限定されるものではない。例えば、カメラ11Aが固定されている場合では、
図5A及び
図5Bに示すように、基準チャート201をカメラ11Aに対して移動させてもよい。この際、カメラ11Aと基準チャート201の距離は、距離303で設定された距離で作業が行われる。
【0038】
出荷時基準画像の有無305は、カメラ11A、11Bを出荷する際に、基準チャート201をキャリブレーション作業時と同じ条件で撮影した画像(以下、「出荷時基準画像」)を有しているか否かを設定している。初期基準画像の一例を示す出荷時基準画像を有する場合、この出荷時基準画像とキャリブレーション作業時に撮影した画像データ、いわゆる基準データとを比較することで、カメラパラメータのズレを推定することができる。
【0039】
また、評価部24が補正パラメータを評価する際に、出荷時基準画像を用いて評価を行ってもよい。
【0040】
そして、上述したカメラの仕様毎の複数のプロセスデータは、キャリブレーション部20のプロセスデータ検索部26によりキャリブレーションを行うカメラに応じたプロセスデータが検索される。そして、検索されたプロセスデータは、プロセスデータ検索部26を介して指示部25に出力される。
【0041】
補正パラメータ格納部32には、補正パラメータ算出部23が算出した補正パラメータが格納される。補正パラメータ格納部32は、格納された補正パラメータを、評価部24又は後述する画像認識部40の補正部42に出力する。また、補正パラメータ格納部32には、上述する画像認識部40で補正された補正画像が出力されてもよい。
【0042】
画像認識部40は、画像取得部41と、補正部42と、画像処理部43とを有している。画像取得部41は、2つのカメラ11A、11Bから画像データを取得する。補正部42は、画像取得部41が取得した画像データを、補正パラメータ格納部32から出力された補正パラメータに基づいて補正し、補正画像を生成する。補正部42が、生成した補正画像を補正パラメータ格納部32、又は画像処理部43に出力する。
【0043】
画像処理部43は、補正部42から出力された補正画像を処理し、2つのカメラ11A、11Bの左右の視差を演算する。なお、本例では、画像処理部43においてステレオカメラの処理について説明したが、これに限定されるものではない。画像処理部43は、例えば、補正部42から出力された補正画像から立体映像用に画像を処理してもよい。
【0044】
端末装置50は、例えば、液晶表示画面やCRT(Cathode Ray Tube)表示画面等からなる表示画面50Aと、入力部を有する表示装置である。表示画面50Aには、カメラ11A、11Bが撮影した画像や、指示部25から出力された指示情報が表示される。なお、端末装置50の表示画面50Aに表示される指示情報の詳細については、後述する。
【0045】
なお、本例のカメラシステム1では、2つのカメラ11A、11Bと、キャリブレーション部20、データベース30、画像認識部40及び端末装置50を、ネットワーク7を介して接続し、それぞれ別々の構成として説明したが、これに限定されるものではない。例えば、カメラ11A内にキャリブレーション部20、データベース30、画像認識部40及び端末装置50を内蔵させてもよい。
【0046】
また、端末装置50を設ける代わりに、PC(パーソナルコンピュータ)等の外部装置の液晶表示装置やCRT表示装置にRGB(Red Green Blue)モニタ出力や、ネットワーク経由でのデータ出力を行う構成としてもよい。
【0047】
1−2.カメラのキャリブレーション方法
次に、
図6から
図8を参照して本例のカメラシステム1におけるカメラ11A、11Bのキャリブレーション方法について説明する。
図6は、キャリブレーション作業を示すフローチャートである。
【0048】
まず、
図6に示すように、キャリブレーション部20は、データベース30からキャリブレーション作業を行うためのプロセスデータを取得する(ステップS1)。具体的には、まずキャリブレーション部20は、カメラ11A、11Bからカメラの仕様を識別するID番号11aを取得する。そして、プロセスデータ検索部26は、取得したID番号11aに基づいて、プロセスデータ格納部31及びカメラ設置データ格納部33からプロセスデータを検索し、プロセスデータを取得する。
【0049】
次に、プロセスデータ検索部26は、取得したプロセスデータを指示部25に出力する。そして、指示部25は、出力されたプロセスデータに基づいて、端末装置50の表示画面50Aに作業指示を出力する(ステップS2)。例えば、指示部25は、
図2に示すプロセスデータのテーブルを端末装置50の表示画面50Aに出力する。
【0050】
これにより、作業者は、キャリブレーションを行うための作業内容を容易に判別することができ、キャリブレーション作業の簡略化を図ることができる。
【0051】
また、指示部25は、後述するステップS3で取得した画像データに基づいて、端末装置50に作業指示を出力するようにしてもよい。
【0052】
ここで、表示画面50Aに表示される指示内容の一例を
図7及び
図8を参照して説明する。
図7及び
図8は、指示部によって表示画面50Aに出力される指示の表示例を示す説明図である。
【0053】
図7に示すように、表示画面50Aには、カメラ11Aが撮影した画像が表示される第1表示部51Aと、カメラ11Bが撮影した画像が表示される第2表示部51Bとが設けられている。なお、端末装置50は、カメラ11A、11Bが撮影した画像データを取得する画像取得部を有している。第1表示部51Aには、第1ガイド52Aが表示されており、第2表示部51Bには、第2ガイド52Bが表示されている。第1ガイド52A及び第2ガイド52Bは、プロセスデータに基づいて適宜変更されるものである。
【0054】
さらに、表示画面50Aには、作業者に対する作業内容を表示する作業指示ウィンドウ53が表示される。
【0055】
作業者は、表示画面50Aに表示された第1ガイド52A及び第2ガイド52Bの枠と基準チャート201の外縁が合うように、基準チャート201又はカメラ11A、11Bを移動させる。また、指示部25は、第1表示部51A及び第2表示部51Bに表示された基準チャート201の位置に応じて、作業指示を作業指示ウィンドウ53に出力させる。
【0056】
指示部25は、第1表示部51A及び第2表示部51Bに表示された基準チャート201の四隅と、第1ガイド52A、第2ガイド52Bの四隅の距離を測定する。そして、指示部25は、測定した距離に応じて、作業指示を作業指示ウィンドウ53に出力する。なお、第1表示部51A及び第2表示部51Bに表示された基準チャート201と、第1ガイド52A、第2ガイド52Bとの比較は、4辺の長さの誤差を最小化するように判定してもよい。
【0057】
または、
図8に示すように、指示部25は、取得した画像データに基づいて、カメラ11A、11B及び基準チャート201における実空間での位置を算出し、表示画面50Aに出力するようにしてもよい。そして、指示部25は、矢印54やガイド55等を表示画面50Aに表示させ、作業者に基準チャート201が所定の位置になるように指示するようにしてもよい。
【0058】
上述したように、キャリブレーション作業における作業手順を指示部25が指示することで、作業者に作業内容を正確に伝えることができ、作業者に応じてキャリブレーション作業の精度が変化することを防ぐことができる。これにより、キャリブレーションの精度を高めることが可能となる。
【0059】
次に、キャリブレーション部20は、画像取得部21を用いて、カメラ11A、11Bが撮影した画像データを取得する(ステップS3)。そして、画像取得部21は、取得した複数の画像データの中からキャリブレーションに必要な基準データを取得する(ステップS4)。なお、基準データは、複数の画像データのうちプロセスデータの条件に合った画像データである。そして、画像取得部21は、取得した基準データを、基準データ格納部22に出力する。
【0060】
次に、補正パラメータ算出部23は、基準データ格納部22に格納された基準データに基づいて補正パラメータを算出する(ステップS5)。
【0061】
詳細には、補正パラメータ算出部23は、まず基準データに基づいてカメラ11A,11Bの内部パラメータKと、外部パラメータDからなるカメラパラメータCを推定する。そして、補正パラメータ算出部23は、推定したカメラパラメータCと、予め設定された基準パラメータとのズレ量を算出する。次に、補正パラメータ算出部23は、このズレ量が最小、又は0となるような補正パラメータを算出する。なお、補正パラメータの算出は、演算処理を所定の回数繰り返すことで算出される。
【0062】
ここで、カメラパラメータCについて説明する。
まず、内部パラメータKは、下記の数1に示す行列で表される。数1におけるfは、焦点距離、aはアスペクト比、sは画像の歪度を示すスキュー、(v
c、u
c)はカメラ11A、11Bが撮影した画像内の座標(画像座標)の中心座標を示している。
【数1】
【0063】
また、外部パラメータDは、下記の数2に示す行列で表される。数2における(r
11、r
12、r
13、r
21、r
22、r
23、r
31、r
32、r
33)は、カメラ11A、11Bの向きを示している。また、数2における(t
X、t
Y、t
Z)は、カメラ11A、11Bが設置された位置の座標、いわゆる世界座標を示している。
【数2】
【0064】
そして、内部パラメータKと外部パラメータDにより、画像座標(u、v)と、世界座標(X
W、Y
W、Z
W)は、下記の数3に示す関係式で表すことができる。なお、数3におけるλは、定数である。
【数3】
【0065】
なお、外部パラメータDにおけるカメラ11A、11Bの向きを示す(r
11、r
12、r
13、r
21、r
22、r
23、r
31、r
32、r
33)は、オイラー角により定義すると、カメラ11A、11Bの設置角度であるパンθ、チルトφ、ロールψの3つのパラメータにより表される。そのため、画像座標と世界座標を対応付けるために必要なカメラパラメータ数は、5個の内部パラメータ数と、6個の外部パラメータ数を合計した11固となる。
【0066】
また、数3においてカメラパラメータCの行列は、定数倍しても意味が不変であることが分かる。そのため、定数λと、内部パラメータKと、外部パラメータDを1つの行列に整理して、下記の数4に示すように表すことができる。
【数4】
【0067】
さらに、数4において、c
34=1と固定すると未知のパラメータ数は、11個となる。そして、この11個のパラメータの値を求めることは、数3における5個の内部パラメータ数と、6個の外部パラメータ数を求めることと同義である。そのため、数3は、下記に示す数5に変換することができる。そして、数5における行列CがカメラパラメータCとなる。
【数5】
【0068】
なお、補正パラメータ算出部23が算出する補正パラメータは、数5に示すカメラパターンCでもよく、あるいは数1に示すような内部パラメータKだけでもよい。
【0069】
次に、補正パラメータ算出部23は、算出した補正パラメータを補正パラメータ格納部32に格納させる。そして、評価部24又は補正部42は、格納された補正パラメータに基づいて画像データを補正する(ステップS6)。このステップS6での補正処理は、カメラシステム1のアプリケーションに応じた処理が選択される。
【0070】
次に、評価部24は、評価用補正画像を、予め格納されている評価データに基づいて評価する。すなわち、評価部24は、補正画像が評価データの範囲内か否かの判断を行う(ステップS7)。評価部24が行う評価方法としては、例えば、補正画像から算出された距離データと実測値とを比較したり、出荷時基準画像を有している場合には出荷時基準画像と補正画像とのズレを評価したりする。
【0071】
または、評価部24は、評価表補正画像の中からエッジ点数Eを検出し、有効視差数dから視差密度Dを算出する。視差密度Dは、下記式1から算出される。
[式1]
D=d/E
【0072】
式1は、エッジ点数に対する有効な視差の数を表し、補正パラメータの精度、ステレオ処理における平行かの評価値として用いることができる。そして、評価部24は、算出した視差密度Dがしきい値の範囲内か否かを判断することで、補正画像の評価を行うようにしてもよい。
【0073】
ステップS7の処理において、評価部24が補正した画像が評価データの範囲内であると判断した場合(ステップS7のYES判定)、評価部24は、評価結果を指示部25に出力する。そして、キャリブレーション部20は、評価した補正パラメータを補正パラメータ格納部32に格納させる。これにより、キャリブレーション作業が終了する。
【0074】
また、ステップS7の処理において、評価部24が補正した画像が評価データの範囲内でないと判断した場合(ステップ7のNO判定)、評価部24は、評価結果を指示部25に出力する。そして、キャリブレーション部20は、ステップS2の処理に戻り再度、キャリブレーション作業を行う。
【0075】
このように、本例のカメラシステム1では、評価部24によって算出した補正パラメータを評価することで、キャリブレーションの精度が低下しても、評価部24によって判断することができる。そして、評価部24が評価した情報は、指示部25を介して出力される。その結果、作業者は、キャリブレーションの精度が低下したことを素早く認知することができ、キャリブレーションの精度を向上させることができる。
【0076】
また、キャリブレーション作業が間違っていた場合、評価部24で検出することもできる。
【0077】
なお、本例では、キャリブレーション部20がカメラ11A、11Bに設けたID番号11aを取得する例を説明したが、これに限定されるものではない。例えば、キャリブレーション作業を行う際に、作業者が端末装置50にカメラ11A、11BのID番号や、基線長、焦点距離等のカメラの識別情報を入力する。そして、端末装置50は、入力されたカメラの識別情報をキャリブレーション装置2に送信するようにしてもよい。
【0078】
2.第2の実施の形態例
次に、
図9を参照して本発明の第2の実施の形態例にかかるカメラシステムについて説明する。
図9は、第2の実施の形態例にかかるカメラシステムにおける指示部の指示内容を示す説明図である。
【0079】
第2の実施の形態例にかかるカメラシステムが、第1の実施の形態例にかかるカメラシステム1とことなる点は、指示部25が端末装置50に出力する指示内容である。そのため、ここでは、端末装置50の表示画面50Aに表示される内容について説明し、第1の実施の形態例にかかるカメラシステム1と共通する部分には同一の符号を付して重複した説明を省略する。
【0080】
ここで、ある物体に対してカメラ11A、11Bまでの距離が予め分かっている場合、2つのカメラ11A、11Bの視差の期待値を求めることができる。例えば、物体がカメラ11A、11Bに対して生対する平面であれば視差は一定となる。さらに、物体がカメラ11A、11Bに対して斜めに配置されている場合、その平面に対しても、物体とカメラ11A、11Bの角度を検出することで、算出された視差の結果を最適化することができる。
【0081】
図9は、表示画面50Aに表示される表示内容を示す説明図である。
図9に示すように、表示画面50Aには、2つのカメラ11A、11Bが撮影した画像が表示される。また、表示画面50Aには、カメラ11A、11Bから選択した物体までの実測値を入力する距離入力ウィンドウ56が表示されている。
【0082】
指示部25は、作業者に対して予めカメラ11A、11Bまでの距離が分かっている、いわゆる既知の物体の平面400、401、402を、カーソル50Bを介して選択するように指示する。また、指示部25は、作業者に対してカメラA、11Bから選択した平面400、401、402までの距離を距離入力ウィンドウ56に入力するように指示する。
【0083】
ここで、距離Zに対する視差dは、下記式2から算出することができる。なお、Bは、基線長であり、fは、焦点距離である。
[式2]
d=Bxf/Z
【0084】
そして、キャリブレーション部20は、入力された領域と、距離に基づいて、数1に示す内部パラメータKや数5に示すカメラパラメータCの値を変化さえることで、視差が期待値に近づくように、補正する。また、測量分野で使用されるバンドル調整法、すなわち誤差の二乗和を最小化させて、視差のキャリブレーションを行う。
【0085】
図10は、キャリブレーションの一例を説明図である。
また、平面に限らず、床面や天井面等において得られた線状データ1001が理想的な線状データ1000となるように、直線などのフィッティングによってキャリブレーションの補正値を求めてもよい。
【0086】
3.第3の実施の形態例
次に、
図11を参照して本発明の第3の実施の形態例にかかるカメラシステムについて説明する。
図11は、第3の実施の形態例にかかるカメラシステムにおける指示部の指示内容を示す説明図である。
【0087】
第2の実施の形態例にかかるカメラシステムが、第1の実施の形態例にかかるカメラシステム1とことなる点は、指示部25が端末装置50に出力する指示内容及び評価部24の評価データの範囲である。そのため、ここでは、端末装置50の表示画面50Aに表示される内容について説明し、第1の実施の形態例にかかるカメラシステム1と共通する部分には同一の符号を付して重複した説明を省略する。
【0088】
図11に示すように、表示画面50Aには、2つのカメラ11A、11Bが撮影した画像が表示される。そして、この画像は、9つの領域401A、401B、401C、401D、401E、401F、401G、401H、401Iに分割されている。
【0089】
そして、評価部24の評価データは、領域401A、401B、401C、401D、401E、401F、401G、401H、401I毎にその値が変化している。例えば、重要な人や物が通行する領域は、他の領域に比べて評価データの範囲を厳しくなるように設定する。
【0090】
また、指示部25は、作業者に対してカーソル50Bを介して画像を評価する領域を選択するように促してもよい。
【0091】
これにより、2つのカメラ11A、11Bが撮影した画像において特定の領域のみの性能を向上させることもできる。
【0092】
なお、分割する領域は、9つに限定されるものではなく、8つ以下、あるいは10つ以上に画像を分割し、評価部24の評価データが異なるように設定してもよい。
【0093】
なお、本発明は上述しかつ図面に示した実施の形態に限定されるものではなく、特許請求の範囲に記載した発明の要旨を逸脱しない範囲内で種々の変形実施が可能である。
【0094】
上述した実施の形態例では、カメラシステムとして2つのカメラを有するステレオカメラを適用した例を説明したが、これに限定されるものではない。カメラシステムとしては、例えば、3つ以上のカメラを有するカメラシステムや、1台のカメラからなる監視カメラ等にも適用できるものである。さらに、カメラシステムとしては、立体映像を撮影する立体映像用カメラや、車載カメラ、人や物を感知する対物対人感知カメラ、自動運転システム、人流計測システム、映像セキュリティシステム等その他各種のカメラシステムに適用できるものである。