(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023128093
(43)【公開日】2023-09-14
(54)【発明の名称】情報処理装置、補正処理方法、および補正処理プログラム
(51)【国際特許分類】
G06T 3/00 20060101AFI20230907BHJP
H04N 23/60 20230101ALI20230907BHJP
【FI】
G06T3/00
H04N5/232 290
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2022032192
(22)【出願日】2022-03-02
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100104190
【弁理士】
【氏名又は名称】酒井 昭徳
(72)【発明者】
【氏名】一場 利幸
【テーマコード(参考)】
5B057
5C122
【Fターム(参考)】
5B057AA19
5B057CA08
5B057CA12
5B057CA16
5B057CB08
5B057CB12
5B057CB16
5B057CD12
5B057CE06
5B057CH07
5B057CH09
5B057DA17
5B057DB02
5B057DB09
5C122EA31
5C122EA33
5C122EA68
5C122FA18
5C122FH06
5C122GA34
5C122GC14
5C122GC52
5C122GC77
5C122HB01
(57)【要約】
【課題】帯域使用量の低減化を図ること。
【解決手段】情報処理装置100は、複数の画像撮像装置のうち、同一の型番を有する2つの画像撮像装置をグループ化する。情報処理装置100は、グループ化した2つの画像撮像装置のそれぞれの画像撮像装置から受信済みの付随データに含まれる補正パラメータに基づいて、リマップテーブル820を生成し、FPGA306がアクセス可能に、メモリのDRAMに記憶する。FPGA306は、グループ化した2つの画像撮像装置が有する同一の型番に対応付けられたリマップテーブル820を、バッファ1002に読み込む。FPGA306は、グループ化した2つの画像撮像装置のそれぞれの画像撮像装置で撮像された画像を受け付けると、バッファ1002に一時保存されたリマップテーブル820を読み出し、受け付けた画像に対してリマップ処理を実施する。
【選択図】
図10
【特許請求の範囲】
【請求項1】
画像に対してひずみ補正を行うための補正情報を記憶する記憶部と、
それぞれ異なる画像を撮像する複数の撮像部のそれぞれの撮像部の特性に基づいて、前記複数の撮像部のうち、前記補正情報に基づいて画像に対してひずみ補正を行うことが可能であるとそれぞれ判断された2以上の撮像部をグループ化し、
前記記憶部に記憶された前記補正情報に基づいて、グループ化した前記2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を行う、制御部と、
を有することを特徴とする情報処理装置。
【請求項2】
前記制御部は、
前記複数の撮像部のそれぞれの撮像部から取得した、当該撮像部で撮像された画像に関するパラメータに基づいて、2以上の撮像部をグループ化する、ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記制御部は、
前記記憶部の帯域使用量が閾値を超える場合、前記記憶部に記憶された前記補正情報の一部に基づいて、前記補正情報を推定した第2の補正情報を生成し、
生成した前記第2の補正情報に基づいて、グループ化した前記2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を行う、ことを特徴とする請求項1または2に記載の情報処理装置。
【請求項4】
前記制御部は、
前記複数の撮像部のうち、前記記憶部に記憶された前記補正情報に類似の補正情報に基づいて画像に対してひずみ補正を行うことが可能であるとそれぞれ判断された2以上の撮像部をグループ化し、
前記記憶部に記憶された前記補正情報に基づいて、グループ化した前記2以上の撮像部のそれぞれの撮像部について、当該撮像部で撮像された画像に対してひずみ補正を行うための、前記補正情報に類似の第3の補正情報を生成し、
グループ化した前記2以上の撮像部のそれぞれの撮像部について、生成した前記第3の補正情報に基づいて、当該撮像部で撮像された画像に対してひずみ補正を行う、ことを特徴とする請求項1~3のいずれか一つに記載の情報処理装置。
【請求項5】
前記記憶部は、
異なる画像に対してひずみ補正を行うための複数の補正情報のそれぞれの補正情報を特定可能にする、前記それぞれの補正情報と、特定のパラメータから生成可能な基準の補正情報との差分情報を記憶し、
前記制御部は、
前記複数の撮像部のうち、前記複数の補正情報に含まれる補正情報に基づいて画像に対してひずみ補正を行うことが可能であるとそれぞれ判断された2以上の撮像部をグループ化し、
グループ化した前記2以上の撮像部のそれぞれの撮像部について、前記特定のパラメータから生成された前記基準の補正情報と、前記記憶部に記憶された前記差分情報とに基づいて、前記複数の補正情報のうち、当該撮像部で撮像された画像に対してひずみ補正を行うための第4の補正情報を生成し、
グループ化した前記2以上の撮像部のそれぞれの撮像部について、生成した前記第4の補正情報に基づいて、当該撮像部で撮像された画像に対してひずみ補正を行う、ことを特徴とする請求項1~4のいずれか一つに記載の情報処理装置。
【請求項6】
前記制御部は、
前記記憶部に記憶された、グループ化した前記2以上の撮像部のいずれかの撮像部に対応する前記補正情報を特定し、
特定した前記記憶部に記憶された前記補正情報に基づいて、グループ化した前記2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を行う、ことを特徴とする請求項1~5のいずれか一つに記載の情報処理装置。
【請求項7】
前記制御部は、
グループ化した前記2以上の撮像部の少なくともいずれかの撮像部の属性情報に基づいて、前記記憶部に記憶された前記補正情報を特定し、
特定した前記記憶部に記憶された前記補正情報に基づいて、グループ化した前記2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を行う、ことを特徴とする請求項1~6のいずれか一つに記載の情報処理装置。
【請求項8】
前記制御部は、
グループ化した前記2以上の撮像部の少なくともいずれかの撮像部で撮像された画像の属性情報に基づいて、前記記憶部に記憶された前記補正情報を特定し、
特定した前記記憶部に記憶された前記補正情報に基づいて、グループ化した前記2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を行う、ことを特徴とする請求項1~7のいずれか一つに記載の情報処理装置。
【請求項9】
グループ化した前記2以上の撮像部の特性に基づいて、前記それぞれの撮像部で撮像された画像に対してひずみ補正を行うための前記補正情報を生成し、前記記憶部に格納する格納部、
をさらに有することを特徴とする請求項1~8のいずれか一つに記載の情報処理装置。
【請求項10】
それぞれ異なる画像を撮像する複数の撮像部のそれぞれの撮像部の特性に基づいて、前記複数の撮像部のうち、画像に対してひずみ補正を行うための補正情報に基づいて画像に対してひずみ補正を行うことが可能であるとそれぞれ判断された2以上の撮像部をグループ化し、
前記補正情報を記憶する記憶部に記憶された前記補正情報に基づいて、グループ化した前記2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を行う、
処理をコンピュータが実行することを特徴とする補正処理方法。
【請求項11】
それぞれ異なる画像を撮像する複数の撮像部のそれぞれの撮像部の特性に基づいて、前記複数の撮像部のうち、画像に対してひずみ補正を行うための補正情報に基づいて画像に対してひずみ補正を行うことが可能であるとそれぞれ判断された2以上の撮像部をグループ化し、
前記補正情報を記憶する記憶部に記憶された前記補正情報に基づいて、グループ化した前記2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を行う、
処理をコンピュータに実行させることを特徴とする補正処理プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、補正処理方法、および補正処理プログラムに関する。
【背景技術】
【0002】
従来、カメラで撮像された画像に対してひずみ補正を実施する技術がある。例えば、カメラごとに、当該カメラで撮像された画像に対してひずみ補正を実施可能にするリマップテーブルを対応付けて記憶する主記憶装置を参照して、複数のカメラのそれぞれのカメラで撮像された画像に対してひずみ補正を実施することが考えられる。
【0003】
先行技術としては、例えば、複数の入力レジスタの入力画像データに対して並列的に画像処理を行うものがある。また、例えば、フレームの領域に応じて、参照する参照パラメータを削減するよう、予め選択して参照パラメータテーブルメモリに格納する技術がある。また、例えば、2セットの画像データごとに特性値の複数の差分パラメータを計算し、所定の時間内に差分パラメータを累積し、累積した差分パラメータに従って、ピクセルに対応する複数の重み付け値を決定する技術がある。また、例えば、センサ固有の補正マトリックスの1つに含まれる要素の数よりも少ない、カラーイメージセンサの製造に使用されるIC(Integrated Circuit)製造プロセスの変動をモデル化したパラメータを保存する技術がある。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2001-92949号公報
【特許文献2】特表2013-187630号公報
【特許文献3】米国特許出願公開第2020/0204728号明細書
【特許文献4】米国特許第6430313号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、従来技術では、主記憶装置に対する帯域使用量の増大化を招くという問題がある。例えば、カメラが複数存在すると、主記憶装置からそれぞれのカメラに対応するリマップテーブルを読み出すことになり、カメラの数が増大するほど、主記憶装置に対する帯域使用量が増大してしまうという問題がある。このため、カメラで撮像された画像に対するひずみ補正を実施する際にかかる処理時間が増大してしまう傾向がある。
【0006】
1つの側面では、本発明は、帯域使用量の低減化を図ることを目的とする。
【課題を解決するための手段】
【0007】
1つの実施態様によれば、それぞれ異なる画像を撮像する複数の撮像部のそれぞれの撮像部の特性に基づいて、前記複数の撮像部のうち、画像に対してひずみ補正を行うための補正情報に基づいて画像に対してひずみ補正を行うことが可能であるとそれぞれ判断された2以上の撮像部をグループ化し、前記補正情報を記憶する記憶部に記憶された前記補正情報に基づいて、グループ化した前記2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を行う情報処理装置、補正処理方法、および補正処理プログラムが提案される。
【発明の効果】
【0008】
一態様によれば、帯域使用量の低減化を図ることが可能になる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、実施の形態にかかる補正処理方法の一実施例を示す説明図である。
【
図2】
図2は、情報処理システム200の一例を示す説明図である。
【
図3】
図3は、情報処理装置100のハードウェア構成例を示すブロック図である。
【
図4】
図4は、画像撮像装置201のハードウェア構成例を示すブロック図である。
【
図5】
図5は、情報処理装置100の機能的構成例を示すブロック図である。
【
図6】
図6は、リマップ処理の内容を示す説明図である。
【
図7】
図7は、補正パラメータの具体例を示す説明図である。
【
図8】
図8は、ひずみ補正を実施する状況の一例を示す説明図である。
【
図9】
図9は、管理テーブル900とリマップテーブル910との一例を示す説明図である。
【
図10】
図10は、情報処理装置100の動作例1を示す説明図である。
【
図11】
図11は、情報処理装置100による効果の一例を示す説明図である。
【
図12】
図12は、動作例1における全体処理手順の一例を示すフローチャートである。
【
図14】
図14は、情報処理装置100の動作例2を示す説明図である。
【
図15】
図15は、リマップテーブル1402を推定する一例を示す説明図である。
【
図16】
図16は、動作例2における全体処理手順の一例を示すフローチャートである。
【
図17】
図17は、補正パラメータの関係性を示す説明図である。
【
図18】
図18は、情報処理装置100の動作例3を示す説明図である。
【
図19】
図19は、動作例3における全体処理手順の一例を示すフローチャートである。
【
図20】
図20は、基準テーブル2010と差分テーブル2020との一例を示す説明図である。
【
図21】
図21は、情報処理装置100の動作例4を示す説明図である。
【
図22】
図22は、動作例4における全体処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下に、図面を参照して、本発明にかかる情報処理装置、補正処理方法、および補正処理プログラムの実施の形態を詳細に説明する。
【0011】
(実施の形態にかかる補正処理方法の一実施例)
図1は、実施の形態にかかる補正処理方法の一実施例を示す説明図である。情報処理装置100は、画像に対してひずみ補正を実施するコンピュータである。
【0012】
従来、カメラで撮像された画像に対してひずみ補正を実施することがある。ひずみ補正は、画像のリマップによって実現される。リマップは、ひずみ補正前の画像に含まれる画素情報を、ひずみ補正後の画像に含まれる特定の位置の画素情報に設定することにより、ひずみ補正後の画像を生成する処理である。
【0013】
例えば、カメラで撮像された画像に対してひずみ補正を実施可能にするリマップテーブルに基づいて、当該カメラで撮像された画像に対してひずみ補正を実施することが考えられる。リマップテーブルは、ひずみ補正前の画像に含まれるそれぞれの画素情報の位置と、当該画素情報の位置に対応する、ひずみ補正後の画像に含まれる画素情報の位置との対応関係を示す補正情報である。リマップテーブルは、例えば、カメラの特性に対応する。リマップテーブルは、対応関係により、ひずみ補正前の画像から、ひずみ補正後の画像を生成可能にすることにより、ひずみ補正を実施可能にする。
【0014】
カメラは、例えば、画像を連続的に撮像する場合がある。カメラは、具体的には、いずれかの地点の画像を連続的に撮像する監視カメラである場合が考えられる。この場合、例えば、カメラで画像が撮像される都度、当該画像に対してひずみ補正をリアルタイムに実施していくことが考えられる。
【0015】
画像のデータ量が大きくなる傾向があり、ひずみ補正を実施する際にかかる処理時間の低減化が望まれることがある。このため、ひずみ補正は、例えば、FPGA(Field Programmable Gate Array)によって実施される場合がある。
【0016】
ここで、FPGAの内蔵メモリは、記憶容量が比較的小さい傾向がある。内蔵メモリは、例えば、オンチップメモリとも呼ばれる。内蔵メモリは、例えば、30MB(Mega Byte)程度である。一方で、FPGA外部の主記憶装置は、記憶容量が比較的大きい傾向がある。主記憶装置は、例えば、オフチップメモリとも呼ばれる。主記憶装置は、例えば、32GB(Giga Byte)程度である。
【0017】
従って、内蔵メモリに、画像を一部ずつ読み出すラインバッファを用意することにより、内蔵メモリのひっ迫を抑制することが考えられる。また、画像のサイズが増大するほど、当該画像に対してひずみ補正を実施可能にするリマップテーブルのデータ量が増大するため、リマップテーブルは、主記憶装置に記憶される傾向がある。
【0018】
しかしながら、主記憶装置に対する帯域使用量の増大化を招くという問題がある。このため、FPGAが、カメラで撮像された画像に対するひずみ補正を実施する際にかかる処理時間が増大してしまうことがある。例えば、リマップテーブルのデータ量が増大するほど、主記憶装置に対する帯域使用量が増大することになる。例えば、FPGAが、リマップテーブルを一度で読み出すことができず、カメラで撮像された画像に対するひずみ補正を実施する際にかかる処理時間が増大してしまうことがある。
【0019】
これに対し、FPGAが、リマップテーブルの一部を読み出し、リマップテーブルを推定することにより、推定したリマップテーブルに基づいて、カメラで撮像された画像に対するひずみ補正を実施する手法が考えられる。この手法でも、主記憶装置に対する帯域使用量の増大化を抑制することが難しい場合がある。
【0020】
例えば、カメラが、複数存在する場合がある。この場合、複数のカメラのそれぞれのカメラで撮像された画像に対してひずみ補正を実施することになる。例えば、FPGAは、それぞれのカメラで撮像された画像に対してひずみ補正を実施可能にするリマップテーブルに基づいて、それぞれのカメラで撮像された画像に対してひずみ補正を実施する。
【0021】
ここで、カメラの数が増大するほど、主記憶装置から読み出すリマップテーブルの数が増大するため、主記憶装置に対する帯域使用量が増大してしまうことになる。同様に、カメラの数が増大するほど、内蔵メモリが、ひっ迫し易くなってしまうと考えられる。また、カメラの数が増大するほど、ひずみ補正を実施する画像の数が増大してしまう。
【0022】
このため、FPGAが、カメラで撮像された画像に対するひずみ補正を実施する際にかかる処理時間が増大してしまう傾向がある。結果として、FPGAは、カメラで画像が撮像される都度、画像に対するひずみ補正を実施しようとしても、次の画像が撮像されるまでに、現在の画像に対するひずみ補正を実施しきれなくなることがある。
【0023】
そこで、本実施の形態では、帯域使用量の低減化を図ることができる補正処理方法について説明する。
【0024】
図1において、それぞれ異なる画像101を撮像する複数の撮像部が存在する。
図1の例では、2つの撮像部が存在するとする。撮像部は、例えば、カメラである。情報処理装置100は、それぞれのカメラで撮像された画像101に対してひずみ補正を実施することが望まれる。
【0025】
情報処理装置100は、記憶部110を有する。記憶部110は、画像101に対してひずみ補正を実施可能にする補正情報を特定可能に記憶する。記憶部110は、例えば、画像101に対してひずみ補正を実施可能にする補正情報そのものを記憶する。補正情報は、具体的には、リマップテーブルである。記憶部110は、例えば、撮像部が有し得る特性に対応付けて、当該特性を有する撮像部で撮像された画像101に対してひずみ補正を実施可能にする補正情報を記憶する。記憶部110は、例えば、主記憶装置である。
【0026】
情報処理装置100は、制御部120を有する。制御部120は、例えば、FPGAを用いて実現される。制御部120は、内蔵メモリを有する。内蔵メモリは、例えば、バッファを有する。バッファは、例えば、画像101が一時記憶される。バッファは、例えば、補正情報が一時記憶される。
【0027】
(1-1)情報処理装置100は、制御部120により、それぞれの撮像部の特性に基づいて、複数の撮像部のうち、第1の補正情報111に基づいて画像101に対してひずみ補正を実施可能であるとそれぞれ判断された2以上の撮像部をグループ化する。情報処理装置100は、例えば、それぞれの撮像部の特性に基づいて、記憶部110に記憶された第1の補正情報111に対応する同一の特性を有する2以上の撮像部をグループ化する。
【0028】
(1-2)情報処理装置100は、制御部120により、記憶部110の記憶内容から特定された第1の補正情報111に基づいて、グループ化した2以上の撮像部のそれぞれの撮像部で撮像された画像101に対してひずみ補正を実施する。情報処理装置100は、例えば、グループ化した2以上の撮像部が有する同一の特性に対応付けて記憶部110に記憶された第1の補正情報111を特定し、記憶部110から読み出す。情報処理装置100は、例えば、読み出した第1の補正情報111に基づいて、グループ化した2以上の撮像部のそれぞれの撮像部で撮像された画像101に対してひずみ補正を実施する。
【0029】
情報処理装置100は、具体的には、読み出した第1の補正情報111に基づいて、グループ化した2以上の撮像部の一方の撮像部で撮像された画像101に対してひずみ補正処理Aを実施する。情報処理装置100は、具体的には、読み出した第1の補正情報111に基づいて、グループ化した2以上の撮像部の他方の撮像部で撮像された画像101に対してひずみ補正処理Bを実施する。
【0030】
これにより、情報処理装置100は、記憶部110の帯域使用量の低減化を図ることができる。また、情報処理装置100は、制御部120の内蔵メモリの使用量の低減化を図ることができ、内蔵メモリのひっ迫を抑制することができる。このため、情報処理装置100は、複数の画像101に対してひずみ補正を実施する際にかかる処理時間の増大化を抑制することができる。
【0031】
ここでは、記憶部110が、画像101に対してひずみ補正を実施可能にする補正情報そのものを記憶する場合について説明したが、これに限らない。例えば、記憶部110が、画像101に対してひずみ補正を実施可能にする補正情報を特定可能にするパラメータなどを記憶する場合があってもよい。
【0032】
ここでは、記憶部110に、第1の補正情報111が記憶済みである場合について説明したが、これに限らない。そして、情報処理装置100が、第1の補正情報111に基づいて画像101に対してひずみ補正を実施可能であるとそれぞれ判断された2以上の撮像部をグループ化する場合について説明したが、これに限らない。例えば、情報処理装置100が、同一の補正情報に基づいて画像101に対してひずみ補正を実施可能であるとそれぞれ判断された2以上の撮像部をグループ化した後、当該補正情報を生成する場合があってもよい。この場合、情報処理装置100は、生成した補正情報を、第1の補正情報111として記憶部110に格納することになる。
【0033】
ここでは、情報処理装置100が、単独で動作する場合について説明したが、これに限らない。例えば、複数のコンピュータが、協働して情報処理装置100としての機能を実現する場合があってもよい。
【0034】
(情報処理システム200の一例)
次に、
図2を用いて、
図1に示した情報処理装置100を適用した、情報処理システム200の一例について説明する。
【0035】
図2は、情報処理システム200の一例を示す説明図である。
図2において、情報処理システム200は、情報処理装置100と、複数の画像撮像装置201とを含む。
【0036】
情報処理システム200において、情報処理装置100と画像撮像装置201とは、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
【0037】
情報処理装置100は、画像に対してひずみ補正を実施するコンピュータである。情報処理装置100は、FPGAを有する。情報処理装置100は、画像に対してひずみ補正を実施可能にする補正情報を特定可能に記憶する。情報処理装置100は、例えば、画像撮像装置201が有し得る型番ごとに、当該画像撮像装置201で撮像された画像に対してひずみ補正を実施可能にする補正情報を対応付けて記憶する。情報処理装置100は、それぞれの画像撮像装置201から、当該画像撮像装置201で撮像された画像を受信する。
【0038】
情報処理装置100は、それぞれの画像撮像装置201の特性に基づいて、それぞれの画像撮像装置201をグループ分けする。特性は、例えば、画像撮像装置201の属性である。属性は、例えば、型番などである。特性は、例えば、画像撮像装置201が有するカメラのレンズの属性であってもよい。特性は、例えば、画像撮像装置201で撮像された画像の属性であってもよい。属性は、例えば、解像度、または、サイズなどである。情報処理装置100は、例えば、複数の画像撮像装置201のうち、同一の型番を有する2以上の画像撮像装置201をグループ化する。
【0039】
情報処理装置100は、グループ化した2以上の画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像に対してひずみ補正を実施するよう、FPGAを書き換える。情報処理装置100は、FPGAにより、グループ化した2以上の画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像に対してひずみ補正を実施する。
【0040】
情報処理装置100は、例えば、FPGAにより、グループ化した2以上の画像撮像装置201が有する同一の型番に対応する補正情報を読み出す。情報処理装置100は、例えば、FPGAにより、読み出した補正情報に基づいて、グループ化した2以上の画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像に対してひずみ補正を実施する。
【0041】
情報処理装置100は、FPGAにより、ひずみ補正を実施後の画像を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、他のコンピュータへの送信、または、記憶領域への記憶などである。情報処理装置100は、例えば、サーバ、または、PC(Personal Computer)などである。
【0042】
画像撮像装置201は、画像を撮像するコンピュータである。画像撮像装置201は、撮像した画像を、情報処理装置100に送信する。画像撮像装置201は、撮像した画像と共に、自装置の型番などを、情報処理装置100に送信してもよい。画像撮像装置201は、例えば、監視カメラなどである。画像撮像装置201は、例えば、スマートフォンなどであってもよい。
【0043】
ここでは、情報処理装置100が、画像撮像装置201とは異なる装置である場合について説明したが、これに限らない。例えば、情報処理装置100が、画像撮像装置201としての機能を有し、画像撮像装置201としても動作する場合があってもよい。
【0044】
(情報処理装置100のハードウェア構成例)
次に、
図3を用いて、情報処理装置100のハードウェア構成例について説明する。
【0045】
図3は、情報処理装置100のハードウェア構成例を示すブロック図である。
図3において、情報処理装置100は、CPU(Central Processing Unit)301と、メモリ302と、ネットワークI/F(Interface)303と、記録媒体I/F304と、記録媒体305と、FPGA306とを有する。また、各構成部は、バス300によってそれぞれ接続される。
【0046】
ここで、CPU301は、情報処理装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。RAMは、例えば、DRAM(Dynamic RAM)である。
【0047】
具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることにより、コーディングされている処理をCPU301に実行させる。
【0048】
ネットワークI/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F303は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F303は、例えば、モデムやLANアダプタなどである。
【0049】
記録媒体I/F304は、CPU301の制御に従って記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体305は、情報処理装置100から着脱可能であってもよい。
【0050】
FPGA306は、動的に処理内容を変更可能な演算回路である。FPGA306は、SRAM(Static RAM)を有する。FPGA306は、メモリ302にアクセス可能である。FPGA306は、例えば、メモリ302が有するDRAMにアクセス可能である。
【0051】
情報処理装置100は、上述した構成部の他、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を複数有していてもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を有していなくてもよい。
【0052】
(画像撮像装置201のハードウェア構成例)
次に、
図4を用いて、画像撮像装置201のハードウェア構成例について説明する。
【0053】
図4は、画像撮像装置201のハードウェア構成例を示すブロック図である。
図4において、画像撮像装置201は、CPU401と、メモリ402と、ネットワークI/F403と、記録媒体I/F404と、記録媒体405と、カメラ406とを有する。また、各構成部は、バス400によってそれぞれ接続される。
【0054】
ここで、CPU401は、画像撮像装置201の全体の制御を司る。メモリ402は、例えば、ROM、RAMおよびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU401のワークエリアとして使用される。メモリ402に記憶されるプログラムは、CPU401にロードされることにより、コーディングされている処理をCPU401に実行させる。
【0055】
ネットワークI/F403は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F403は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F403は、例えば、モデムやLANアダプタなどである。
【0056】
記録媒体I/F404は、CPU401の制御に従って記録媒体405に対するデータのリード/ライトを制御する。記録媒体I/F404は、例えば、ディスクドライブ、SSD、USBポートなどである。記録媒体405は、記録媒体I/F404の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体405は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体405は、画像撮像装置201から着脱可能であってもよい。カメラ406は、複数の撮像素子を有し、複数の撮像素子によって画像を撮像する。カメラ406は、例えば、監視カメラである。
【0057】
画像撮像装置201は、上述した構成部の他、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、画像撮像装置201は、記録媒体I/F404や記録媒体405を複数有していてもよい。また、画像撮像装置201は、記録媒体I/F404や記録媒体405を有していなくてもよい。
【0058】
(情報処理装置100の機能的構成例)
次に、
図5を用いて、情報処理装置100の機能的構成例について説明する。
【0059】
図5は、情報処理装置100の機能的構成例を示すブロック図である。情報処理装置100は、記憶部500と、取得部501と、分類部502と、補正部503と、格納部504と、出力部505とを含む。
【0060】
記憶部500は、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。記憶部500は、具体的には、メモリ302が有するDRAMの記憶領域によって実現される。以下では、記憶部500が、情報処理装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部500が、情報処理装置100とは異なる装置に含まれ、記憶部500の記憶内容が情報処理装置100から参照可能である場合があってもよい。
【0061】
取得部501~出力部505は、制御部の一例として機能する。取得部501~出力部505は、具体的には、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、ネットワークI/F303により、その機能を実現する。少なくとも補正部503は、具体的には、例えば、FPGA306により、その機能を実現してもよい。各機能部の処理結果は、例えば、
図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
【0062】
記憶部500は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部500は、例えば、画像に対してひずみ補正を実施可能にする補正情報を特定可能に記憶する。画像は、撮像部によって撮像される。撮像部は、例えば、画像撮像装置201である。撮像部は、具体的には、画像撮像装置201が有するカメラ406である。実施可能は、例えば、ひずみ補正前の画像から、ひずみ補正後の画像を生成することができることである。
【0063】
記憶部500は、具体的には、画像に対してひずみ補正を実施可能にする補正情報そのものを記憶する。記憶部500は、より具体的には、2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を実施可能にする第1の補正情報を記憶する。記憶部500は、具体的には、画像に対してひずみ補正を実施可能にする補正情報を特定可能にするパラメータを記憶してもよい。特定可能は、例えば、パラメータから補正情報を形成する値を算出することができることである。
【0064】
第1の補正情報は、具体的には、2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を直接的に実施可能にする補正情報である。第1の補正情報は、具体的には、2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を間接的に実施可能にする補正情報であってもよい。第1の補正情報は、より具体的には、2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を直接的に実施可能にする他の補正情報を特定可能にする元の補正情報であってもよい。特定可能は、例えば、元の補正情報から、他の補正情報を生成することができることである。
【0065】
記憶部500は、具体的には、異なる画像に対してひずみ補正を実施可能にする複数の補正情報のそれぞれの補正情報を特定可能に、それぞれの補正情報と、基準の補正情報との差分情報を記憶してもよい。基準の補正情報は、例えば、特定のパラメータから生成可能である。特定のパラメータは、例えば、補正部503が有していてもよい。生成可能は、例えば、パラメータから補正情報を形成する値を算出することができることである。
【0066】
取得部501は、各機能部の処理に用いられる各種情報を取得する。取得部501は、取得した各種情報を、記憶部500に記憶し、または、各機能部に出力する。また、取得部501は、記憶部500に記憶しておいた各種情報を、各機能部に出力してもよい。取得部501は、例えば、利用者の操作入力に基づき、各種情報を取得する。取得部501は、例えば、情報処理装置100とは異なる装置から、各種情報を受信してもよい。
【0067】
取得部501は、撮像部で撮像された画像を取得する。取得部501は、例えば、撮像部で撮像された画像を、撮像部から受信することにより取得する。
【0068】
取得部501は、撮像部の特性を取得してもよい。特性は、例えば、撮像部の属性などである。取得部501は、例えば、撮像部の特性として、撮像部の属性を取得する。属性は、例えば、型番などである。取得部501は、例えば、撮像部の特性として、撮像部が有するレンズの属性を取得する。属性は、例えば、曲率などである。取得部501は、例えば、撮像部の特性として、撮像部で撮像された画像の属性を、当該画像と共に取得する。属性は、例えば、画像に関するパラメータである。属性は、例えば、解像度、または、サイズなどである。
【0069】
取得部501は、いずれかの機能部の処理を開始する開始トリガーを受け付けてもよい。開始トリガーは、例えば、利用者による所定の操作入力があったことである。開始トリガーは、例えば、他のコンピュータから、所定の情報を受信したことであってもよい。開始トリガーは、例えば、いずれかの機能部が所定の情報を出力したことであってもよい。
【0070】
取得部501は、例えば、画像を取得したことを、補正部503の処理を開始する開始トリガーとして受け付ける。取得部501は、例えば、特性を取得したことを、分類部502の処理を開始する開始トリガーとして受け付けてもよい。
【0071】
分類部502は、それぞれの撮像部をグループ分けする。分類部502は、例えば、それぞれの撮像部の特性に基づいて、複数の撮像部のうち、同一の補正情報に基づいて画像に対してひずみ補正を実施可能であるとそれぞれ判断された2以上の撮像部をグループ化する。同一の補正情報は、記憶部500に記憶されたいずれかの補正情報である。
【0072】
分類部502は、具体的には、同一の特性を有する2以上の撮像部を、第1の補正情報に基づいて画像に対してひずみ補正を直接的に実施可能であると判断してグループ化する。これにより、分類部502は、記憶部500からの補正情報の読み出し処理を共通化可能な、2以上の撮像部のグループを特定することができる。
【0073】
分類部502は、具体的には、それぞれの撮像部から取得した、当該撮像部の属性に基づいて、2以上の撮像部をグループ化する。分類部502は、より具体的には、同一または類似の属性を有する2以上の撮像部を、同一の第1の補正情報に基づいて画像に対してひずみ補正を直接的に実施可能であると判断してグループ化する。これにより、分類部502は、記憶部500からの補正情報の読み出し処理を共通化可能な、2以上の撮像部のグループを特定することができる。
【0074】
分類部502は、具体的には、それぞれの撮像部から取得した、当該撮像部で撮像された画像の属性に基づいて、2以上の撮像部をグループ化する。分類部502は、より具体的には、同一または類似の属性を有する異なる画像を撮像する2以上の撮像部を、同一の第1の補正情報に基づいて画像に対してひずみ補正を直接的に実施可能であると判断してグループ化する。これにより、分類部502は、記憶部500からの補正情報の読み出し処理を共通化可能な、2以上の撮像部のグループを特定することができる。
【0075】
分類部502は、例えば、複数の撮像部のうち、同一の補正情報に基づいて画像に対してひずみ補正を間接的に実施可能であるとそれぞれ判断された2以上の撮像部をグループ化してもよい。分類部502は、具体的には、複数の撮像部のうち、同一の補正情報に類似の補正情報に基づいて画像に対してひずみ補正を実施可能であるとそれぞれ判断された2以上の撮像部をグループ化する。類似の補正情報は、例えば、同一の補正情報から生成可能な2以上の補正情報に含まれる補正情報である。
【0076】
分類部502は、より具体的には、同一または類似の属性を有する2以上の撮像部を、同一の補正情報に類似の補正情報に基づいて画像に対してひずみ補正を実施可能であると判断してグループ化する。これにより、分類部502は、記憶部500からの補正情報の読み出し処理を共通化可能な、2以上の撮像部のグループを特定することができる。
【0077】
分類部502は、より具体的には、同一または類似の属性を有する異なる画像を撮像する2以上の撮像部を、同一の補正情報に類似の補正情報に基づいて画像に対してひずみ補正を実施可能であると判断してグループ化する。これにより、分類部502は、記憶部500からの補正情報の読み出し処理を共通化可能な、2以上の撮像部のグループを特定することができる。
【0078】
分類部502は、例えば、複数の撮像部のうち、複数の補正情報に含まれる補正情報に基づいて画像に対してひずみ補正を実施可能であるとそれぞれ判断された2以上の撮像部をグループ化してもよい。複数の補正情報は、基準の補正情報と、記憶部500に記憶されたいずれかの差分情報とに基づいて生成可能な補正情報を含む。
【0079】
分類部502は、より具体的には、同一または類似の属性を有する2以上の撮像部を、複数の補正情報に含まれる補正情報に基づいて画像に対してひずみ補正を実施可能であると判断してグループ化する。これにより、分類部502は、記憶部500からの補正情報の読み出し処理を共通化可能な、2以上の撮像部のグループを特定することができる。
【0080】
分類部502は、より具体的には、同一または類似の属性を有する異なる画像を撮像する2以上の撮像部を、複数の補正情報に含まれる補正情報に基づいて画像に対してひずみ補正を実施可能であると判断してグループ化する。これにより、分類部502は、記憶部500からの補正情報の読み出し処理を共通化可能な、2以上の撮像部のグループを特定することができる。
【0081】
補正部503は、グループ化した2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を実施する。補正部503は、例えば、記憶部500の記憶内容を参照して、グループ化した2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を直接的に実施可能にする第1の補正情報を取得する。
【0082】
補正部503は、具体的には、記憶部500の記憶内容のうち、グループ化した2以上の撮像部のいずれかの撮像部に対応する補正情報を、第1の補正情報として特定して取得する。補正部503は、より具体的には、グループ化した2以上の撮像部の少なくともいずれかの撮像部の属性に基づいて、記憶部500の記憶内容を参照して、第1の補正情報を特定して取得する。補正部503は、より具体的には、グループ化した2以上の撮像部の少なくともいずれかの撮像部で撮像された画像の属性情報に基づいて、記憶部500の記憶内容を参照して、第1の補正情報を特定して取得する。
【0083】
補正部503は、例えば、取得した第1の補正情報に基づいて、グループ化した2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を実施する。これにより、補正部503は、2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を実施する際にかかる記憶部500の帯域使用量の低減化を図ることができる。帯域使用量は、例えば、記憶部500となるメモリ302が有するDRAMと、補正部503となるFPGA306との帯域使用量である。
【0084】
補正部503は、例えば、記憶部500の帯域使用量が閾値を超えるか否かを判定してもよい。補正部503は、例えば、記憶部500の帯域使用量が閾値を超える場合、記憶部500の記憶内容を参照して、グループ化した2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を直接的に実施可能にする第1の補正情報の一部を取得する。補正部503は、例えば、取得した第1の補正情報の一部に基づいて、第1の補正情報を推定した第2の補正情報を生成する。補正部503は、例えば、生成した第2の補正情報に基づいて、グループ化した2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を実施する。これにより、補正部503は、2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を実施する際にかかる記憶部500の帯域使用量の低減化を図ることができる。
【0085】
補正部503は、例えば、記憶部500の記憶内容を参照して、グループ化した2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を実施可能にする第3の補正情報を生成可能にする第1の補正情報を取得してもよい。補正部503は、例えば、グループ化した2以上の撮像部のそれぞれの撮像部について、当該撮像部で撮像された画像に対してひずみ補正を実施可能にする、取得した第1の補正情報に類似の第3の補正情報を生成する。補正部503は、例えば、グループ化した2以上の撮像部のそれぞれの撮像部について、生成した第3の補正情報に基づいて、当該撮像部で撮像された画像に対してひずみ補正を実施する。これにより、補正部503は、グループ化した2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を精度よく実施可能にすることができる。
【0086】
補正部503は、例えば、特定のパラメータから、基準の補正情報を生成してもよい。補正部503は、例えば、記憶部500の記憶内容を参照して、グループ化した2以上の撮像部のそれぞれの撮像部について、当該撮像部に対応する差分情報を取得する。補正部503は、例えば、グループ化した2以上の撮像部のそれぞれの撮像部について、生成した基準の補正情報と、取得した差分情報とに基づいて、当該撮像部で撮像された画像に対してひずみ補正を実施可能にする第4の補正情報を生成する。補正部503は、例えば、グループ化した2以上の撮像部のそれぞれの撮像部について、生成した第4の補正情報に基づいて、当該撮像部で撮像された画像に対してひずみ補正を実施する。これにより、補正部503は、グループ化した2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を精度よく実施可能にすることができる。
【0087】
格納部504は、グループ化した2以上の撮像部の特性に基づいて、第1の補正情報を生成し、記憶部500に格納する。これにより、格納部504は、補正部503でグループ化した2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を実施可能にすることができる。
【0088】
出力部505は、少なくともいずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F303による外部装置への送信、または、メモリ302や記録媒体305などの記憶領域への記憶である。これにより、出力部505は、少なくともいずれかの機能部の処理結果を利用者に通知可能にし、情報処理装置100の利便性の向上を図ることができる。
【0089】
出力部505は、例えば、補正部503で補正した補正後の画像を出力する。出力部505は、具体的には、補正後の画像を、利用者が参照可能に出力する。出力部505は、具体的には、補正後の画像を、画像を解析する解析部(不図示)などに出力してもよい。これにより、出力部505は、有用な画像を出力することができる。出力部505は、例えば、利用者が、有用な画像を利用可能にすることができる。出力部505は、例えば、画像に基づく解析精度の向上を図ることができる。
【0090】
(情報処理装置100の動作例1)
次に、
図6~
図12を用いて、情報処理装置100の動作例1について説明する。まず、例えば、
図6を用いて、ひずみ補正を実施するリマップ処理の内容について説明する。
【0091】
図6は、リマップ処理の内容を示す説明図である。
図6に示すように、リマップ処理は、ひずみ補正前の画像601のいずれの画素が、ひずみ補正後の画像602のいずれの画素に対応するかの対応関係を特定し、画像601に対してひずみ補正を実施することにより画像602を生成する処理である。
【0092】
例えば、画像601の座標(u,v)の画素Q5と、画像602の座標(u’,v’)の画素P5との対応関係が特定されることが考えられる。対応関係は、例えば、リマップテーブルによって規定される。ひずみ補正については、例えば、下記参考文献1、下記参考文献2、および、下記参考文献3などを参照することができる。
【0093】
参考文献1 : Zhang, Zhengyou. “A flexible new technique for camera calibration.” IEEE Transactions on pattern analysis and machine intelligence 22.11 (2000): 1330-1334.
【0094】
参考文献2 : 門田仁, and 藤田悟. “3D キャプチャリングの歪み補正方式.” 第 76 回全国大会講演論文集 2014.1 (2014): 215-216.
【0095】
参考文献3 : “カメラキャリブレーションと3次元再構成”、[online]、2010年、[令和4年2月25日検索]、インターネット < URL : http://opencv.jp/opencv-2.1/cpp/camera_calibration_and_3d_reconstruction.html>
【0096】
例えば、座標(u,v)と、座標(u’,v’)との対応関係は、下記式(1)~下記式(6)によって特定され、リマップテーブルとして管理される。
【0097】
x=(u’-cx)/fx ・・・(1)
【0098】
y=(u’-cy)/fy ・・・(2)
【0099】
x’=x(1+k1r2+k2r4)+2p1xy+p2(r2+2x2) ・・・(3)
【0100】
y’=y(1+k1r2+k2r4)+p1(r2+2x2)+2p2xy ・・・(4)
【0101】
u=(fxx’)+cx ・・・(5)
【0102】
v=(fyy’)+cy ・・・(6)
【0103】
f
x,f
yは、ピクセル単位の焦点距離である。c
x,c
yは、主点である。主点は、例えば、画像の中心点である。k
1,k
2は、半径方向のひずみ係数である。p
1,p
2は、円周方向のひずみ係数である。f
x,f
y,c
x,c
y,k
1,k
2,p
1,p
2は、補正パラメータと呼ばれる。次に、
図7を用いて、補正パラメータの具体例について説明する。
【0104】
図7は、補正パラメータの具体例を示す説明図である。
図7の表700は、Kinect(登録商標)の3つの画像撮像装置201のそれぞれの画像撮像装置201の補正パラメータの具体例を示す。それぞれの画像撮像装置201は、便宜上、Kinect1、Kinect2、および、Kinect3と表記する場合がある。次に、
図8を用いて、ひずみ補正を実施する状況の一例について説明する。
【0105】
図8は、ひずみ補正を実施する状況の一例を示す説明図である。
図8において、例えば、2つの画像撮像装置201のそれぞれの画像装置で撮像された画像801に対してひずみ補正を実施し、ひずみ補正後の画像802を生成することが望まれる状況が考えられる。
【0106】
従来では、この状況に対して、
図8に示すように、画像撮像装置201ごとに、当該画像撮像装置201で撮像された画像801を一部ずつ格納するラインバッファ810と、リマップテーブル820とが用意される。ラインバッファ810は、例えば、従来のFPGA800内に用意される。リマップテーブルは、画像撮像装置201に対応し、当該画像撮像装置201で撮像された画像801に対してひずみ補正を実施可能にする。リマップテーブル820は、例えば、従来のFPGA800外に用意される。リマップテーブル820は、具体的には、主記憶装置に記憶される。
【0107】
従来のFPGA800は、画像撮像装置201ごとに、当該画像撮像装置201に対応するリマップテーブル820を読み出して、ラインバッファ810に読み出した、当該画像撮像装置201で撮像された画像801の一部ずつに対してひずみ補正を実施する。従来では、画像撮像装置201ごとに、当該画像撮像装置201に対応するリマップテーブル820を読み出すため、リマップテーブル820を記憶する主記憶装置に対する帯域使用量の増大化を招く。
【0108】
この状況に対して、情報処理装置100を適用することが考えられる。次に、
図9および
図10を用いて、この状況に対して、情報処理装置100を適用した場合における動作例1について説明する。まず、例えば、
図9を用いて、動作例1において、メモリ302のDRAMに用意する管理テーブル900とリマップテーブル910との一例について説明する。
【0109】
図9は、管理テーブル900とリマップテーブル910との一例を示す説明図である。管理テーブル900は、例えば、
図3に示した情報処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。リマップテーブル910は、例えば、
図3に示した情報処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。
【0110】
図9に示すように、管理テーブル900は、特性と、リマップテーブルとのフィールドを有する。管理テーブル900は、特性ごとに各フィールドに情報を設定することにより、管理情報がレコード900-aとして記憶される。aは、任意の整数である。
【0111】
特性のフィールドには、画像撮像装置201の特性が設定される。特性は、例えば、画像撮像装置201の属性である。属性は、例えば、型番などである。特性は、例えば、画像撮像装置201が有するカメラのレンズの属性であってもよい。特性は、例えば、画像撮像装置201で撮像された画像の属性であってもよい。リマップテーブルのフィールドには、上記画像撮像装置201に対応するリマップテーブルの識別情報が設定される。
【0112】
図9に示すように、リマップテーブル910は、前座標と、後座標とのフィールドを有する。リマップテーブル910は、座標ペアごとに各フィールドに情報を設定することにより、リマップ情報がレコード910-bとして記憶される。bは、任意の整数である。
【0113】
前座標のフィールドには、ひずみ補正前の画像に含まれる画素の座標を示す前座標が設定される。後座標のフィールドには、上記前座標に対応する、ひずみ補正後の画像に含まれる画素の座標を表す後座標が設定される。上記前座標と、上記後座標との座標ペアにより、画像に対してひずみ補正を実施可能にすることができる。次に、
図10を用いて、情報処理装置100の動作例1について説明する。
【0114】
図10は、情報処理装置100の動作例1を示す説明図である。
図10において、情報処理装置100は、情報処理システム200の実運用開始前に、複数の画像撮像装置201のそれぞれの画像撮像装置201から、当該画像撮像装置201で撮像された画像と、当該画像に関する付随データとを受信する。複数の画像撮像装置201は、例えば、情報処理システム200に含まれ、または、情報処理システム200に含める予定である。付随データは、例えば、画像撮像装置201の属性と、ひずみ補正に関する補正パラメータとを含む。属性は、例えば、型番などである。
【0115】
情報処理装置100は、受信した付随データに基づいて、複数の画像撮像装置201のうち、同一のリマップテーブル820に基づいて画像に対するひずみ補正が直接的に実施可能であるとそれぞれ判断される2以上の画像撮像装置201をグループ化する。情報処理装置100は、例えば、同一の型番を有する2以上の画像撮像装置201をグループ化する。これにより、情報処理装置100は、画像に対してひずみ補正を実施するにあたってリマップテーブル820の読み出し処理を共通化可能な2以上の画像撮像装置201をグループ化することができる。
【0116】
図10の例では、情報処理装置100は、同一の型番を有する2つの画像撮像装置201をグループ化したとする。情報処理装置100は、グループ化した2つの画像撮像装置201のそれぞれの画像撮像装置201から受信済みの付随データに含まれる補正パラメータに基づいて、リマップテーブル820を生成する。情報処理装置100は、例えば、それぞれの画像撮像装置201から受信済みの付随データに含まれる補正パラメータの平均値に基づいて、リマップテーブル820を生成してもよい。リマップテーブル820は、例えば、
図9に示したリマップテーブル910に対応する。情報処理装置100は、生成したリマップテーブル820を、グループ化した2つの画像撮像装置201が有する同一の型番に対応付けて、
図9に示した管理テーブル900(不図示)を生成しておいてもよい。
【0117】
情報処理装置100は、生成したリマップテーブル820を、FPGA306がアクセス可能に、メモリ302のDRAMに記憶する。情報処理装置100は、情報処理システム200の実運用開始後に、FPGA306によって、リマップテーブル820を参照して、グループ化した2つの画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像に対してひずみ補正を実施する。
【0118】
FPGA306は、グループ化した2つの画像撮像装置201のそれぞれの画像撮像装置201について、当該画像撮像装置201で撮像された画像を一部ずつ格納するラインバッファ1001を有する。FPGA306は、グループ化した2つの画像撮像装置201に共通で、リマップテーブル820を格納するバッファ1002を有する。
【0119】
FPGA306は、グループ化した2つの画像撮像装置201が有する同一の型番に対応付けられたリマップテーブル820を、バッファ1002に読み込む。FPGA306は、グループ化した2つの画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像を受け付けると、バッファ1002に一時保存されたリマップテーブル820を読み出し、受け付けた画像に対してリマップ処理を実施する。
【0120】
FPGA306は、例えば、グループ化した2つの画像撮像装置201のうち一方の画像撮像装置201で撮像された画像に対してリマップ処理Aを実施する。FPGA306は、例えば、グループ化した2つの画像撮像装置201のうち他方の画像撮像装置201で撮像された画像に対してリマップ処理Bを実施する。
【0121】
これにより、情報処理装置100は、2つの画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像に対するひずみ補正を実施するにあたって、リマップテーブル820の読み出し処理を共通化することができる。このため、情報処理装置100は、メモリ302のDRAMに対する帯域使用量の増大化を抑制することができる。また、情報処理装置100は、2つの画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像に対するひずみ補正を実施する際にかかる処理時間の低減化を図ることができる。次に、
図11を用いて、情報処理装置100による効果の一例について説明する。
【0122】
図11は、情報処理装置100による効果の一例を示す説明図である。
図11において、従来のFPGA800は、帯域使用量の観点で、外部にあるリマップテーブル820を一度に1つずつ読み出すことにする。このため、
図11のグラフ1101に示すように、従来のFPGA800は、あるリマップテーブル820を読み出しながらリマップ処理Aを実施した後、別のリマップテーブル820を読み出しながらリマップ処理Bを実施することになる。従って、複数の画像に対してひずみ補正を実施する際にかかる処理時間が増大し易いという問題がある。
【0123】
同様に、情報処理装置100のFPGA306は、帯域使用量の観点で、リマップテーブル820を一度に1つずつ読み出すことにする。FPGA306は、リマップテーブル820を読み出して、バッファ1002に一時保存しながら、リマップ処理Aとリマップ処理Bとを並列に実施することができる。FPGA306は、リマップテーブル820を一部ずつ読み出してバッファ1002に一時保存しながら、リマップ処理Aとリマップ処理Bとを並列に実施する際には、リマップ処理Aとリマップ処理Bとを同期することになる。
【0124】
これにより、FPGA306は、従来のFPGA800に比べて、複数の画像に対してひずみ補正を実施する際にかかる処理時間の低減化を図ることができる。また、FPGA306は、複数の画像に対してひずみ補正を実施する場合について、リマップテーブル820の読み出し処理にかかる帯域使用量の増大化を抑制することができる。
【0125】
例えば、5ch分の画像撮像装置201が存在し、それぞれの画像撮像装置201が、30fpsで1280×720の画像を撮像するという場合が考えられる。リマップテーブル820は、5.53MBであるとする。この場合、従来のFPGA800は、5.53MB×30fps×5ch=829.4MB/sの帯域を使用することとなる。
【0126】
一方で、情報処理装置100は、例えば、5ch分の画像撮像装置201を、2groupにグループ分けしたとする。このため、FPGA306は、5.53MB×30fps×2group=331.8MB/sの帯域を使用することとなる。このように、情報処理装置100は、従来に比べて、リマップテーブル820の読み出し処理にかかる帯域使用量の低減化を図ることができる。
【0127】
ここでは、FPGA306が、リマップテーブル820の全体をそのまま読み出す場合について説明したが、これに限らない。例えば、FPGA306が、リマップテーブル820の一部を読み出し、リマップテーブル820の全体を推定して利用する場合があってもよい。この場合、FPGA306は、リマップテーブル820の読み出し処理にかかる帯域使用量の更なる低減化を図ることができる。この場合の具体例については、例えば、
図13~
図15を用いて後述する動作例2を参照することができる。
【0128】
ここでは、情報処理装置100が、同一のリマップテーブル820に基づいて画像に対してひずみ補正を実施可能とそれぞれ判断された2以上の画像撮像装置201をグループ化する場合について説明したが、これに限らない。例えば、情報処理装置100が、異なるリマップテーブル820に基づいて画像に対してひずみ補正を実施可能とそれぞれ判断された2以上の画像撮像装置201をグループ化する場合があってもよい。
【0129】
具体的には、情報処理装置100が、あるリマップテーブル820から生成可能な2以上のリマップテーブル820それぞれに基づいて画像に対するひずみ補正を実施可能と判断された画像撮像装置201を、同一のグループに含める場合があってもよい。この場合の具体例については、例えば、
図17および
図18を用いて後述する動作例3、または、
図20および
図21を用いて後述する動作例4などを参照することができる。
【0130】
(動作例1における全体処理手順)
次に、
図12を用いて、動作例1において情報処理装置100が実行する全体処理手順の一例について説明する。全体処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303と、FPGA306とによって実現される。
【0131】
図12は、動作例1における全体処理手順の一例を示すフローチャートである。
図12において、情報処理装置100は、予め、設置される画像撮像装置201のキャリブレーションを実施し、画像撮像装置201の型番に対応付けられたリマップテーブル820を生成する(ステップS1201)。情報処理装置100は、例えば、情報処理システム200の稼働前に、画像撮像装置201の型番に対応付けられたリマップテーブル820を生成する。
【0132】
次に、情報処理装置100は、設置された複数の画像撮像装置201のそれぞれの画像撮像装置201の型番に基づいて、同一の型番の2以上の画像撮像装置201をグループ化する(ステップS1202)。情報処理装置100は、例えば、情報処理システム200の稼働後に、同一の型番の2以上の画像撮像装置201をグループ化する。
【0133】
そして、情報処理装置100は、グループ化した2以上の画像撮像装置201で撮像された画像に対して、当該2以上の画像撮像装置201で同一の型番に対応するリマップテーブル820に基づいて、リマップ処理を実施する(ステップS1203)。
【0134】
次に、情報処理装置100は、情報処理システム200に、画像撮像装置201が追加または削除されたか否かを判定する(ステップS1204)。ここで、画像撮像装置201が追加または削除された場合(ステップS1204:Yes)、情報処理装置100は、ステップS1202の処理に戻る。一方で、画像撮像装置201が追加されず、かつ、画像撮像装置201が削除されない場合(ステップS1204:No)、情報処理装置100は、ステップS1203の処理に戻る。
【0135】
(情報処理装置100の動作例2)
次に、
図13~
図15を用いて、情報処理装置100の動作例2について説明する。まず、
図13を用いて、ひずみ補正を含む画像処理の一例について説明する。
【0136】
図13は、画像処理の一例を示す説明図である。
図13に示すように、FPGA306は、例えば、ローパスフィルタと、ひずみ補正とを実施することがある。FPGA306は、例えば、動的に処理内容が変更され、背景除去をさらに実施するようになることがある。従って、FPGA306による、メモリ302のDRAMに対する帯域使用量は、動的に変化することが考えられる。このため、情報処理装置100が、動的に変化する帯域使用量に対処することが望まれる。動作例2は、情報処理装置100が、動的に変化する帯域使用量に対処可能にする動作例である。次に、
図14を用いて、情報処理装置100の動作例2について説明する。
【0137】
図14は、情報処理装置100の動作例2を示す説明図である。
図14において、情報処理装置100は、情報処理システム200の実運用開始前に、複数の画像撮像装置201のそれぞれの画像撮像装置201から、当該画像撮像装置201で撮像された画像と、当該画像に関する付随データとを受信する。複数の画像撮像装置201は、例えば、情報処理システム200に含まれ、または、情報処理システム200に含める予定である。付随データは、例えば、画像撮像装置201の属性と、ひずみ補正に関する補正パラメータとを含む。属性は、例えば、型番などである。
【0138】
情報処理装置100は、受信した付随データに基づいて、複数の画像撮像装置201のうち、同一のリマップテーブル1402に基づいて画像に対するひずみ補正が直接的に実施可能であるとそれぞれ判断される2以上の画像撮像装置201をグループ化する。情報処理装置100は、例えば、同一の型番を有する2以上の画像撮像装置201をグループ化する。これにより、情報処理装置100は、画像に対してひずみ補正を実施するにあたってリマップテーブル1402の読み出し処理を共通化可能な2以上の画像撮像装置201をグループ化することができる。
【0139】
図14の例では、情報処理装置100は、同一の型番を有する2つの画像撮像装置201をグループ化したとする。情報処理装置100は、グループ化した2つの画像撮像装置201のそれぞれの画像撮像装置201から受信済みの付随データに含まれる補正パラメータに基づいて、リマップテーブル1402を生成する。情報処理装置100は、例えば、それぞれの画像撮像装置201から受信済みの付随データに含まれる補正パラメータの平均値に基づいて、リマップテーブル1402を生成してもよい。情報処理装置100は、生成したリマップテーブル1402を、グループ化した2つの画像撮像装置201が有する同一の型番に対応付けて、
図9に示した管理テーブル900(不図示)を生成しておいてもよい。
【0140】
情報処理装置100は、生成したリマップテーブル1402を、FPGA306がアクセス可能に、メモリ302のDRAMに記憶する。情報処理装置100は、情報処理システム200の実運用開始後に、FPGA306によって、リマップテーブル1402を参照して、グループ化した2つの画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像に対してひずみ補正を実施する。
【0141】
FPGA306は、グループ化した2つの画像撮像装置201のそれぞれの画像撮像装置201について、当該画像撮像装置201で撮像された画像を一部ずつ格納するラインバッファ1401を有する。FPGA306は、グループ化した2つの画像撮像装置201に共通で、リマップテーブル1402を格納するバッファ1403を有する。
【0142】
ここで、FPGA306は、メモリ302のDRAMに対する帯域使用量が閾値を超えたか否かを判定し、帯域使用量が閾値以下であれば、リマップテーブル1402をそのまま読み出して利用する。一方で、FPGA306は、帯域使用量が閾値以下であれば、リマップテーブル1402の一部を読み出して、リマップテーブル1402の一部に対して補間処理を実施し、元のリマップテーブル1402を推定して利用する。
【0143】
FPGA306は、例えば、帯域使用量が閾値以下であれば、動作例1と同様に、グループ化した2つの画像撮像装置201が有する同一の型番に対応付けられたリマップテーブル1402を、バッファ1403に読み込む。FPGA306は、動作例1と同様に、それぞれの画像撮像装置201で撮像された画像を受け付けると、バッファ1403に一時保存されたリマップテーブル1402を読み出し、当該画像に対してリマップ処理を実施する。
【0144】
一方で、FPGA306は、例えば、帯域使用量が閾値を超えていれば、グループ化した2つの画像撮像装置201が有する同一の型番に対応付けられたリマップテーブル1402の一部を読み出す。一部は、例えば、リマップテーブル1402の1/nである。nは、2以上の整数である。一部は、例えば、リマップテーブル1402が示す連続する一連の座標に関する情報のうち、所定の幅ごとの座標に関する情報を抜き出して得られる。
【0145】
FPGA306は、例えば、読み出した一部に対して補間処理を実施することにより、リマップテーブル1402を推定する。FPGA306が、リマップテーブル1402を推定する一例については、
図15を用いて後述する。
【0146】
FPGA306は、例えば、推定したリマップテーブル1402を、バッファ1403に格納する。FPGA306は、例えば、それぞれの画像撮像装置201で撮像された画像を受け付けると、バッファ1403に一時保存されたリマップテーブル1402を読み出し、当該画像に対してリマップ処理を実施する。
【0147】
FPGA306は、具体的には、グループ化した2つの画像撮像装置201のうち一方の画像撮像装置201で撮像された画像に対してリマップ処理Aを実施する。FPGA306は、具体的には、グループ化した2つの画像撮像装置201のうち他方の画像撮像装置201で撮像された画像に対してリマップ処理Bを実施する。
【0148】
これにより、情報処理装置100は、2つの画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像に対するひずみ補正を実施するにあたって、リマップテーブル1402の読み出し処理を共通化することができる。このため、情報処理装置100は、メモリ302のDRAMに対する帯域使用量の増大化を抑制することができる。また、情報処理装置100は、2つの画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像に対するひずみ補正を実施する際にかかる処理時間の低減化を図ることができる。
【0149】
情報処理装置100は、動的に変化する帯域使用量に対処することができる。情報処理装置100は、例えば、帯域使用量が閾値を超えたことに応じて、帯域使用量の低減化を図ることができる。このため、情報処理装置100は、メモリ302のDRAMに対する帯域使用量の増大化を抑制することができる。また、情報処理装置100は、2つの画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像に対するひずみ補正を実施する際にかかる処理時間の低減化を図ることができる。
【0150】
例えば、5ch分の画像撮像装置201が存在し、それぞれの画像撮像装置201が、30fpsで1280×720の画像を撮像するという場合が考えられる。動作例2では、情報処理装置100は、補間処理により、165.9MB/sの帯域を使用すれば済むようにすることができる。次に、
図15を用いて、FPGA306が、リマップテーブル1402を推定する一例について説明する。
【0151】
図15は、リマップテーブル1402を推定する一例を示す説明図である。
図15に示すように、リマップテーブル1402は、ひずみ補正実施前の画像における画素の座標を表す前座標と、当該画素に対応するひずみ補正実施後の画像における画素の座標を表す後座標との対応関係を示す。
図15の例では、(i,j)は、後座標を示す。i,jは、自然数である。(i,j)が記述された矩形の位置は、前座標を示す。
【0152】
FPGA306は、例えば、帯域使用量が閾値を超えていれば、リマップテーブル1402の全体に代わり、間引きテーブル1500を読み出す。間引きテーブル1500は、ひずみ補正実施前の画像のうち、列方向の奇数個目に存在する画素それぞれについて、前座標と後座標との対応関係を示す。FPGA306は、例えば、間引きテーブル1500に対して補間処理を実施し、リマップテーブル1402を推定する。
【0153】
FPGA306は、具体的には、線形補間により、間引きテーブル1500に基づいて、リマップテーブル1402を推定する。FPGA306は、より具体的には、ひずみ補正実施前の画像のうち、列方向の奇数個目に存在する画素それぞれについての前座標と後座標との対応関係に基づいて、偶数個目に存在する画素それぞれについての前座標と後座標との対応関係を推定する。これにより、FPGA306は、リマップテーブル1402を精度よく推定することができる。
【0154】
(動作例2における全体処理手順)
次に、
図16を用いて、動作例2において情報処理装置100が実行する全体処理手順の一例について説明する。全体処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303と、FPGA306とによって実現される。
【0155】
図16は、動作例2における全体処理手順の一例を示すフローチャートである。
図16において、情報処理装置100は、予め、設置される画像撮像装置201のキャリブレーションを実施し、補正パラメータを特定する(ステップS1601)。
【0156】
次に、情報処理装置100は、特定した補正パラメータに基づいて、設置される画像撮像装置201の型番に対応付けられたリマップテーブル1402を生成する(ステップS1602)。情報処理装置100は、例えば、情報処理システム200の稼働前に、画像撮像装置201の型番に対応付けられたリマップテーブル1402を生成する。
【0157】
次に、情報処理装置100は、設置された複数の画像撮像装置201のそれぞれの画像撮像装置201の型番に基づいて、同一の型番の2以上の画像撮像装置201をグループ化する(ステップS1603)。情報処理装置100は、例えば、情報処理システム200の稼働後に、同一の型番の2以上の画像撮像装置201をグループ化する。
【0158】
そして、情報処理装置100は、グループ化した2以上の画像撮像装置201で撮像された画像に対して、当該2以上の画像撮像装置201で同一の型番に対応するリマップテーブル1402に基づいて、リマップ処理を実施する(ステップS1604)。リマップ処理は、動作開始前の補間処理を含む。リマップ処理は、補間処理が動作開始前であれば、リマップテーブル1402の全体を読み出して、ひずみ補正を実施する。
【0159】
次に、情報処理装置100は、画像撮像装置201が追加または削除されたか否かを判定する(ステップS1605)。ここで、画像撮像装置201が追加または削除された場合(ステップS1605:Yes)、情報処理装置100は、ステップS1603の処理に戻る。一方で、画像撮像装置201が追加されず、かつ、画像撮像装置201が削除されない場合(ステップS1605:No)、情報処理装置100は、ステップS1606の処理に移行する。
【0160】
ステップS1606では、情報処理装置100は、帯域使用量の削減条件を満たすか否かを判定する(ステップS1606)。削減条件は、帯域使用量が閾値を超えることである。ここで、削減条件を満たさない場合(ステップS1606:No)、情報処理装置100は、ステップS1604の処理に戻る。一方で、削減条件を満たす場合(ステップS1606:Yes)、情報処理装置100は、ステップS1607の処理に移行する。
【0161】
ステップS1607では、情報処理装置100は、リマップ処理に含まれる補間処理を動作開始する(ステップS1607)。リマップ処理は、補間処理が動作開始後であれば、リマップテーブル1402の一部を読み出して、リマップテーブル1402の全体を推定し、ひずみ補正を実施する。情報処理装置100は、ステップS1604の処理に戻る。
【0162】
(情報処理装置100の動作例3)
次に、
図17および
図18を用いて、情報処理装置100の動作例3について説明する。
【0163】
ここで、同一の型番の複数の画像撮像装置201それぞれで撮像された画像のひずみ具合が同一であるとは限らない。例えば、画像撮像装置201の製造ばらつきなどにより、画像のひずみ具合が変化する状況が考えられる。このため、同一の型番の複数の画像撮像装置201それぞれに共通ではなく、固有の補正パラメータが存在する。
【0164】
動作例3は、FPGA306が、上述した状況などを考慮して、グループ化した2以上の画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像に対してひずみ補正を実施する場合に対応する動作例である。まず、
図17を用いて、それぞれ異なる画像撮像装置201に対応する補正パラメータの関係性について説明する。
【0165】
図17は、補正パラメータの関係性を示す説明図である。
図17のグラフ1701は、Kinect1、Kinect2、および、Kinect3について、補正パラメータのうちのk
1とk
2との関係性を示す。グラフ1701に示すように、k
1とk
2とについて、画像撮像装置201の個体差は比較的小さいという性質があると考えられる。
【0166】
図17のグラフ1702は、Kinect1、Kinect2、および、Kinect3について、補正パラメータのうちのp
1とp
2との関係性を示す。グラフ1702に示すように、p
1とp
2とについて、画像撮像装置201の個体差は比較的大きいという性質があると考えられる。次に、
図18を用いて、情報処理装置100の動作例3について説明する。
【0167】
図18は、情報処理装置100の動作例3を示す説明図である。上述した性質を考慮すると、メモリ302のDRAMに、k
1とk
2とに基づくリマップテーブル1802を記憶した上で、FPGA306が、リマップテーブル1802を読み出して、p
1とp
2とに基づいて補正することが考えられる。
【0168】
例えば、情報処理装置100は、情報処理システム200の実運用開始前に、複数の画像撮像装置201のそれぞれの画像撮像装置201から、当該画像撮像装置201で撮像された画像と、当該画像に関する付随データとを受信する。複数の画像撮像装置201は、例えば、情報処理システム200に含まれ、または、情報処理システム200に含める予定である。付随データは、例えば、画像撮像装置201の属性と、ひずみ補正に関する補正パラメータとを含む。
【0169】
情報処理装置100は、受信した付随データに基づいて、複数の画像撮像装置201のうち、同一のリマップテーブル1802に基づいて画像に対するひずみ補正が間接的に実施可能であるとそれぞれ判断される2以上の画像撮像装置201をグループ化する。情報処理装置100は、例えば、同一のリマップテーブル1802を補正して生成可能なリマップテーブル1802’(不図示)のいずれかに基づいてひずみ補正が直接的に実施可能であるとそれぞれ判断される2以上の画像撮像装置201をグループ化する。
【0170】
情報処理装置100は、具体的には、同一の型番を有する2以上の画像撮像装置201をグループ化する。これにより、情報処理装置100は、画像に対してひずみ補正を実施するにあたってリマップテーブル1802の読み出し処理を共通化可能な2以上の画像撮像装置201をグループ化することができる。
【0171】
図18の例では、情報処理装置100は、同一の型番を有する2つの画像撮像装置201をグループ化したとする。情報処理装置100は、グループ化した2つの画像撮像装置201のそれぞれの画像撮像装置201から受信済みの付随データに含まれる補正パラメータに基づいて、リマップテーブル1802を生成する。
【0172】
情報処理装置100は、例えば、上記式(3)および上記式(4)を、下記式(7)および下記式(8)に置き換えて、座標(u,v)と、座標(u’,v’)との対応関係を特定し、リマップテーブル1802を生成する。
【0173】
下記式(7)は、上記式(3)の一部である。下記式(7)は、上記式(3)のうちk1とk2とに関する一部である。下記式(8)は、上記式(4)の一部である。下記式(8)は、上記式(4)のうちk1とk2とに関する一部である。k1とk2とは、平均値であってもよい。
【0174】
x’=x(1+k1r2+k2r4) ・・・(7)
【0175】
y’=y(1+k1r2+k2r4) ・・・(8)
【0176】
情報処理装置100は、生成したリマップテーブル1802を、グループ化した2つの画像撮像装置201が有する同一の型番に対応付けて、
図9に示した管理テーブル900(不図示)を生成しておいてもよい。
【0177】
情報処理装置100は、生成したリマップテーブル1802を、FPGA306がアクセス可能に、メモリ302のDRAMに記憶する。情報処理装置100は、情報処理システム200の実運用開始後に、FPGA306によって、リマップテーブル1802を参照して、グループ化した2つの画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像に対してひずみ補正を実施する。
【0178】
FPGA306は、グループ化した2つの画像撮像装置201のそれぞれの画像撮像装置201について、当該画像撮像装置201で撮像された画像を一部ずつ格納するラインバッファ1801を有する。FPGA306は、グループ化した2つの画像撮像装置201に共通で、リマップテーブル1802を格納するバッファ1803を有する。
【0179】
FPGA306は、グループ化した2つの画像撮像装置201が有する同一の型番に対応付けられたリマップテーブル1802を、バッファ1803に読み込む。FPGA306は、グループ化した2つの画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像と、補正パラメータとを受け付けると、バッファ1803に一時保存されたリマップテーブル1802を読み出す。
【0180】
FPGA306は、それぞれの画像撮像装置201で撮像された画像について、受け付けた補正パラメータに基づいて、読み出したリマップテーブル1802を補正し、当該画像に対してひずみ補正を実施可能にするリマップテーブル1802’を生成する。
【0181】
FPGA306は、具体的には、上記式(1)、上記式(2)、および下記式(9)~下記式(11)に従って、リマップテーブル1802が示す座標(u’,v’)に対応する座標(u”,v”)を特定し、リマップテーブル1802’を生成する。下記式(9)~下記式(11)は、個体差が比較的大きいp1とp2とに関する。
【0182】
r2=x2+y2 ・・・(9)
【0183】
u”=u’+fx(2p1xy+p2(r2+2x2)) ・・・(10)
【0184】
v”=v’+fy(p1(r2+2x2)+2p2xy) ・・・(11)
【0185】
FPGA306は、受け付けた画像について、生成したリマップテーブル1802’に基づいて、当該画像に対してリマップ処理を実施する。FPGA306は、例えば、グループ化した2つの画像撮像装置201のうち一方の画像撮像装置201で撮像された画像に対してリマップ処理Aを実施する。FPGA306は、例えば、グループ化した2つの画像撮像装置201のうち他方の画像撮像装置201で撮像された画像に対してリマップ処理Bを実施する。
【0186】
これにより、情報処理装置100は、2つの画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像に対するひずみ補正を実施するにあたって、リマップテーブル1802の読み出し処理を共通化することができる。このため、情報処理装置100は、メモリ302のDRAMに対する帯域使用量の増大化を抑制することができる。
【0187】
例えば、5ch分の画像撮像装置201が存在し、それぞれの画像撮像装置201が、30fpsで1280×720の画像を撮像するという場合が考えられる。動作例3では、情報処理装置100は、それぞれ異なるリマップテーブル1802’に対応する複数の画像撮像装置201をグループ化可能である。このため、情報処理装置100は、例えば、5ch分の画像撮像装置201を、1groupにグループ分けしたとする。このため、情報処理装置100は、165.9MB/sの帯域を使用すれば済むようにすることができる。
【0188】
また、情報処理装置100は、2つの画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像に対するひずみ補正を実施する際にかかる処理時間の低減化を図ることができる。情報処理装置100は、リマップテーブル1802を基に、それぞれの画像撮像装置201に適したリマップテーブル1802’を生成可能であるため、それぞれの画像撮像装置201で撮像された画像に対するひずみ補正を精度よく実施可能にすることができる。情報処理装置100は、それぞれ異なるリマップテーブル1802’に対応する複数の画像撮像装置201をグループ化可能であるため、メモリ302のDRAMに対する帯域使用量の増大化を抑制し易くすることができる。
【0189】
ここでは、情報処理装置100が、同一の型番を有する2以上の画像撮像装置201をグループ化する場合について説明したが、これに限らない。例えば、情報処理装置100が、異なる型番を有する2以上の画像撮像装置201をグループ化する場合があってもよい。情報処理装置100は、それぞれの画像撮像装置201に適したリマップテーブル1802’を生成可能であるため、この場合に対しても適用可能である。
【0190】
(動作例3における全体処理手順)
次に、
図19を用いて、動作例3において情報処理装置100が実行する全体処理手順の一例について説明する。全体処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303と、FPGA306とによって実現される。
【0191】
図19は、動作例3における全体処理手順の一例を示すフローチャートである。
図19において、情報処理装置100は、予め、設置される画像撮像装置201のキャリブレーションを実施し、画像撮像装置201の型番に対応付けられたリマップテーブル1802を生成する(ステップS1901)。情報処理装置100は、例えば、情報処理システム200の稼働前に、画像撮像装置201の型番に対応付けられたリマップテーブル1802を生成する。
【0192】
次に、情報処理装置100は、設置された複数の画像撮像装置201のそれぞれの画像撮像装置201の型番に基づいて、同一の型番の2以上の画像撮像装置201をグループ化する(ステップS1902)。情報処理装置100は、例えば、情報処理システム200の稼働後に、同一の型番の2以上の画像撮像装置201をグループ化する。
【0193】
次に、情報処理装置100は、グループ化した2以上の画像撮像装置201で同一の型番に対応するリマップテーブル1802に基づいて、それぞれの画像撮像装置201に対応するリマップテーブル1802を生成する(ステップS1903)。そして、情報処理装置100は、それぞれの画像撮像装置201で撮像された画像に対して、生成した当該画像撮像装置201に対応するリマップテーブル1802に基づいて、リマップ処理を実施する(ステップS1904)。
【0194】
次に、情報処理装置100は、画像撮像装置201が追加または削除されたか否かを判定する(ステップS1905)。ここで、画像撮像装置201が追加または削除された場合(ステップS1905:Yes)、情報処理装置100は、ステップS1902の処理に戻る。一方で、画像撮像装置201が追加されず、かつ、画像撮像装置201が削除されない場合(ステップS1905:No)、情報処理装置100は、ステップS1904の処理に戻る。
【0195】
(情報処理装置100の動作例4)
次に、
図20および
図21を用いて、情報処理装置100の動作例4について説明する。
【0196】
ここで、上述したように、同一の型番の複数の画像撮像装置201それぞれで撮像された画像のひずみ具合が同一であるとは限らない。例えば、画像撮像装置201の製造ばらつきなどにより、画像のひずみ具合が変化する状況が考えられる。このため、同一の型番の複数の画像撮像装置201それぞれに共通ではなく、固有の補正パラメータが存在する。
【0197】
動作例4は、動作例3と同様に、FPGA306が、上述した状況などを考慮して、グループ化した2以上の画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像に対してひずみ補正を実施する場合に対応する動作例である。
【0198】
動作例4では、具体的には、
図20に後述する基準テーブル2010と、
図20に後述する差分テーブル2020とに基づいて、画像撮像装置201に固有のリマップテーブルを生成可能にする。まず、
図20を用いて、動作例4における、基準テーブル2010と差分テーブル2020との一例について説明する。
【0199】
図20は、基準テーブル2010と差分テーブル2020との一例を示す説明図である。
図20において、管理テーブル2000が存在する。管理テーブル2000は、例えば、
図3に示した情報処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。
【0200】
図20において、基準テーブル2010と、差分テーブル2020とが存在する。基準テーブル2010は、例えば、
図3に示した情報処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。差分テーブル2020は、例えば、
図3に示した情報処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。
【0201】
図20に示すように、管理テーブル2000は、特性と、差分テーブルとのフィールドを有する。管理テーブル2000は、特性ごとに各フィールドに情報を設定することにより、管理情報がレコード2000-cとして記憶される。cは、任意の整数である。
【0202】
特性のフィールドには、画像撮像装置201の特性が設定される。特性は、例えば、画像撮像装置201の属性である。属性は、例えば、画像撮像装置201に固有の識別情報などである。特性は、例えば、画像撮像装置201が有するカメラのレンズの属性であってもよい。特性は、例えば、画像撮像装置201で撮像された画像の属性であってもよい。差分テーブルのフィールドには、基準テーブル2010と組み合わせて、上記画像撮像装置201に対応するリマップテーブルを生成可能にする差分テーブル2020の識別情報が設定される。
【0203】
図20に示すように、基準テーブル2010は、前座標と、後座標とのフィールドを有する。基準テーブル2010は、座標ペアごとに各フィールドに情報を設定することにより、基準情報がレコード2010-dとして記憶される。dは、任意の整数である。基準テーブル2010は、リマップテーブル910と同様の記憶内容である。
【0204】
前座標のフィールドには、ひずみ補正前の画像に含まれる画素の座標を示す前座標が設定される。後座標のフィールドには、上記前座標に対応する、ひずみ補正後の画像に含まれる画素の座標を表す後座標が設定される。後座標は、例えば、補正パラメータの平均値によって特定される。後座標は、具体的には、補正パラメータの平均値を用いた上記式(3)および上記式(4)によって規定される。
【0205】
図20に示すように、差分テーブル2020は、差分のフィールドを有する。差分テーブル2020は、座標ペアごとに各フィールドに情報を設定することにより、差分情報がレコード2020-eとして記憶される。eは、任意の整数である。
【0206】
差分のフィールドには、上記後座標に足し合わせて、上記後座標を補正するための差分値が設定される。差分値は、例えば、後座標と、それぞれの画像撮像装置201の補正パラメータを用いた上記式(3)および上記式(4)との差分によって規定される。次に、
図10を用いて、情報処理装置100の動作例4について説明する。
【0207】
図21は、情報処理装置100の動作例4を示す説明図である。情報処理装置100は、情報処理システム200の実運用開始前に、情報処理システム200に含まれる複数の画像撮像装置201のそれぞれの画像撮像装置201から、当該画像撮像装置201で撮像された画像と、当該画像に関する付随データとを受信する。付随データは、例えば、画像撮像装置201の属性と、ひずみ補正に関する補正パラメータとを含む。
【0208】
情報処理装置100は、受信した付随データに基づいて、複数の画像撮像装置201のうち、同一の基準テーブル2010に基づいて画像に対するひずみ補正が間接的に実施可能であるとそれぞれ判断される2以上の画像撮像装置201をグループ化する。情報処理装置100は、例えば、同一の基準テーブル2010を基に生成可能なリマップテーブル2102のいずれかに基づいて画像に対するひずみ補正が直接的に実施可能であるとそれぞれ判断される2以上の画像撮像装置201をグループ化する。情報処理装置100は、具体的には、同一の型番を有する2以上の画像撮像装置201をグループ化する。
【0209】
図21の例では、情報処理装置100は、同一の型番を有する2つの画像撮像装置201をグループ化したとする。情報処理装置100は、グループ化した2つの画像撮像装置201のそれぞれの画像撮像装置201から受信済みの付随データに含まれる補正パラメータに基づいて、基準テーブル2010を生成する。
【0210】
情報処理装置100は、例えば、グループ化した2つの画像撮像装置201のそれぞれの画像撮像装置201から受信済みの付随データに含まれる補正パラメータのうち、k1とk2との平均値に基づいて、基準テーブル2010を生成する。情報処理装置100は、具体的には、上記式(7)および上記式(8)に従って、座標(u,v)と、座標(u’,v’)との対応関係を特定し、基準テーブル2010を生成する。
【0211】
情報処理装置100は、グループ化した2つの画像撮像装置201のそれぞれの画像撮像装置201から受信済みの付随データに含まれる補正パラメータに基づいて、当該画像撮像装置201に対応するリマップテーブル2102を生成する。情報処理装置100は、具体的には、上記式(3)および上記式(4)に従って、座標(u,v)と、座標(u’,v’)との対応関係を特定し、リマップテーブル2102を生成する。
【0212】
情報処理装置100は、それぞれの画像撮像装置201に対応するリマップテーブル2102と、生成した基準テーブル2010との差分を算出し、差分テーブル2112を生成する。差分テーブル2112は、
図20に示した差分テーブル2020に対応する。
【0213】
以下の説明では、グループ化した2つの画像撮像装置201のうち、一方の画像撮像装置201に対応する差分テーブル2112を「差分テーブルA2112」と表記する場合がある。また、他方の画像撮像装置201に対応する差分テーブル2112を「差分テーブルB2112」と表記する場合がある。
【0214】
情報処理装置100は、それぞれの画像撮像装置201に固有の識別情報に対応付けて、生成した当該画像撮像装置201に対応する差分テーブル2112を記憶した、
図20に示した管理テーブル2000(不図示)を生成しておいてもよい。
【0215】
情報処理装置100は、生成した差分テーブル2112を、FPGA306がアクセス可能に、メモリ302のDRAMに記憶する。情報処理装置100は、基準テーブル2010を生成可能にするパラメータ2111を、FPGA306の内蔵メモリに記憶する。パラメータ2111は、例えば、k1とk2との平均値を含む。これにより、情報処理装置100は、FPGA306が、基準テーブル2010を生成可能にすることができる。
【0216】
情報処理装置100は、情報処理システム200の実運用開始後に、FPGA306によって、差分テーブル2112を参照して、グループ化した2つの画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像に対してひずみ補正を実施する。FPGA306は、グループ化した2つの画像撮像装置201のそれぞれの画像撮像装置201について、当該画像撮像装置201で撮像された画像を一部ずつ格納するラインバッファ2101を有する。
【0217】
FPGA306は、グループ化した2つの画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像と、補正パラメータと、当該画像撮像装置201に固有の識別情報とを受け付ける。FPGA306は、受け付けたそれぞれの画像撮像装置201に固有の識別情報に基づいて、当該画像撮像装置201に対応する差分テーブル2112を、メモリ302のDRAMから読み出す。
【0218】
FPGA306は、パラメータ2111に基づいて、基準値計算処理を実施し、基準テーブル2010を生成する。FPGA306は、グループ化した2つの画像撮像装置201のそれぞれの画像撮像装置201について、当該画像撮像装置201に対応する差分テーブル2112と、基準テーブル2010とを合成し、リマップテーブル2102を生成する。
【0219】
FPGA306は、受け付けたそれぞれの画像撮像装置201で撮像された画像について、生成した当該画像撮像装置201に対応するリマップテーブル2102に基づいて、当該画像に対してリマップ処理を実施する。ここで、ラインバッファ2101をそれぞれ区別可能に、「ラインバッファA2101」および「ラインバッファB2101」と表記する。グループ化した2つの画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像を区別可能に、「入力画像A」および「入力画像B」と表記する。
【0220】
FPGA306は、例えば、グループ化した2つの画像撮像装置201のうち一方の画像撮像装置201で撮像された入力画像AをラインバッファA2101に読み出しながら、ラインバッファA2101に読み出した部分ごとにリマップ処理Aを実施する。そして、FPGA306は、例えば、リマップ処理Aにより得られた出力画像Aを出力する。FPGA306は、例えば、グループ化した2つの画像撮像装置201のうち他方の画像撮像装置201で撮像された入力画像BをラインバッファB2101に読み出しながら、ラインバッファA2101に読み出した部分ごとにリマップ処理Bを実施する。そして、FPGA306は、例えば、リマップ処理Bにより得られた出力画像Bを出力する。
【0221】
これにより、情報処理装置100は、2つの画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像に対するひずみ補正を実施するにあたって、メモリ302のDRAMに対する帯域使用量の増大化を抑制することができる。例えば、差分テーブル2112のデータ量は、リマップテーブル2102のデータ量に比べて小さくなる傾向がある。
【0222】
具体的には、リマップテーブル2102のデータ量は、画像のサイズに応じて大きくなる傾向があり、リマップテーブル2102の各軸の座標値は、例えば、整数部12bitで表現される。一方で、差分テーブル2112の各軸の差分値は、例えば、整数部4bitで表現可能である。このため、情報処理装置100は、メモリ302のDRAMに対する帯域使用量の増大化を抑制することができる。
【0223】
また、情報処理装置100は、2つの画像撮像装置201のそれぞれの画像撮像装置201で撮像された画像に対するひずみ補正を実施する際にかかる処理時間の低減化を図ることができる。情報処理装置100は、差分テーブル2112を基に、それぞれの画像撮像装置201に適したリマップテーブル2102を精度よく再現可能である。このため、情報処理装置100は、それぞれの画像撮像装置201で撮像された画像に対するひずみ補正を精度よく実施可能にすることができる。
【0224】
情報処理装置100は、それぞれ異なるリマップテーブル2102に対応する複数の画像撮像装置201をグループ化可能であるため、メモリ302のDRAMに対する帯域使用量の増大化を抑制し易くすることができる。
【0225】
ここでは、情報処理装置100が、同一の型番を有する2以上の画像撮像装置201をグループ化する場合について説明したが、これに限らない。例えば、情報処理装置100が、異なる型番を有する2以上の画像撮像装置201をグループ化する場合があってもよい。情報処理装置100は、それぞれの画像撮像装置201に適したリマップテーブル2102を生成可能であるため、この場合に対しても適用可能である。
【0226】
(動作例4における全体処理手順)
次に、
図22を用いて、動作例4において情報処理装置100が実行する全体処理手順の一例について説明する。全体処理は、例えば、
図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303と、FPGA306とによって実現される。
【0227】
図22は、動作例4における全体処理手順の一例を示すフローチャートである。
図22において、情報処理装置100は、予め、設置される画像撮像装置201のキャリブレーションを実施し、補正パラメータを特定する(ステップS2201)。
【0228】
次に、情報処理装置100は、同一の型番を有する画像撮像装置201それぞれについて特定した補正パラメータの平均値を、基準パラメータに設定する(ステップS2202)。
【0229】
そして、情報処理装置100は、基準パラメータに基づいて、同一の型番に対応付けられた基準テーブル2010を生成する(ステップS2203)。情報処理装置100は、例えば、情報処理システム200の稼働前に、画像撮像装置201の型番に対応付けられた基準テーブル2010を生成する。
【0230】
次に、情報処理装置100は、設置される画像撮像装置201それぞれに対応付けられた、当該型番の画像撮像装置201に対応するリマップテーブル2102と、基準テーブル2010との差分を表す差分テーブル2020を生成する(ステップS2204)。差分テーブル2020は、例えば、メモリ302のDRAMに記憶される。
【0231】
次に、情報処理装置100は、設置された複数の画像撮像装置201のそれぞれの画像撮像装置201の型番に基づいて、同一の型番の2以上の画像撮像装置201をグループ化する(ステップS2205)。情報処理装置100は、例えば、情報処理システム200の稼働後に、同一の型番の2以上の画像撮像装置201をグループ化する。
【0232】
そして、情報処理装置100は、グループ化した2以上の画像撮像装置201で同一の型番に対応する基準テーブル2010を読み出す。情報処理装置100は、読み出した基準テーブル2010と、それぞれの画像撮像装置201に対応する差分テーブル2020とに基づいて、当該画像撮像装置201に対応するリマップテーブル2102を生成する(ステップS2206)。
【0233】
次に、情報処理装置100は、それぞれの画像撮像装置201で撮像された画像に対して、生成した当該画像撮像装置201に対応するリマップテーブル2102に基づいて、リマップ処理を実施する(ステップS2207)。
【0234】
そして、情報処理装置100は、画像撮像装置201が追加または削除されたか否かを判定する(ステップS2208)。ここで、画像撮像装置201が追加または削除された場合(ステップS2208:Yes)、情報処理装置100は、ステップS2205の処理に戻る。一方で、画像撮像装置201が追加されず、かつ、画像撮像装置201が削除されない場合(ステップS2208:No)、情報処理装置100は、ステップS2206の処理に戻る。
【0235】
以上説明したように、情報処理装置100によれば、画像に対してひずみ補正を実施可能にする補正情報を特定可能に、記憶部500に記憶することができる。情報処理装置100によれば、複数の撮像部のそれぞれの撮像部の特性に基づいて、複数の撮像部のうち、第1の補正情報に基づいて画像に対してひずみ補正を実施可能であるとそれぞれ判断された2以上の撮像部をグループ化することができる。情報処理装置100によれば、記憶部500の記憶内容から特定された第1の補正情報に基づいて、グループ化した2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を実施することができる。これにより、情報処理装置100は、記憶部500に対する帯域使用量の増大化を抑制することができる。
【0236】
情報処理装置100によれば、複数の撮像部のそれぞれの撮像部から取得した、当該撮像部で撮像された画像に関するパラメータに基づいて、2以上の撮像部をグループ化することができる。これにより、情報処理装置100は、補正情報を共通して利用可能な2以上の撮像部を適切にグループ化し易くすることができる。
【0237】
情報処理装置100によれば、記憶部500の帯域使用量が閾値を超える場合、記憶部500の記憶内容から特定された第1の補正情報の一部に基づいて、第1の補正情報を推定した第2の補正情報を生成することができる。情報処理装置100によれば、生成した第2の補正情報に基づいて、グループ化した2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を実施することができる。これにより、情報処理装置100は、記憶部500に対する帯域使用量の低減化を図ることができる。
【0238】
情報処理装置100によれば、複数の撮像部のうち、第1の補正情報に類似の補正情報に基づいて画像に対してひずみ補正を実施可能であるとそれぞれ判断された2以上の撮像部をグループ化することができる。情報処理装置100によれば、第1の補正情報に基づいて、グループ化した2以上の撮像部のそれぞれの撮像部について、当該撮像部で撮像された画像に対してひずみ補正を実施可能にする、第1の補正情報に類似の第3の補正情報を生成することができる。情報処理装置100によれば、グループ化した2以上の撮像部のそれぞれの撮像部について、生成した第3の補正情報に基づいて、当該撮像部で撮像された画像に対してひずみ補正を実施することができる。これにより、情報処理装置100は、グループ化する撮像部の数の増大化を図ることができ、記憶部500に対する帯域使用量の低減化を図ることができる。
【0239】
情報処理装置100によれば、異なる画像に対してひずみ補正を実施可能にする複数の補正情報のそれぞれの補正情報を特定可能に、それぞれの補正情報と、特定のパラメータから生成可能な基準の補正情報との差分情報を記憶することができる。情報処理装置100によれば、複数の撮像部のうち、複数の補正情報に含まれる補正情報に基づいて画像に対してひずみ補正を実施可能であるとそれぞれ判断された2以上の撮像部をグループ化することができる。情報処理装置100によれば、それぞれの撮像部について、基準の補正情報と、記憶部500の記憶内容から特定された差分情報とに基づいて、当該撮像部で撮像された画像に対してひずみ補正を実施可能にする第4の補正情報を生成することができる。情報処理装置100によれば、グループ化した2以上の撮像部のそれぞれの撮像部について、生成した第4の補正情報に基づいて、当該撮像部で撮像された画像に対してひずみ補正を実施することができる。これにより、情報処理装置100は、グループ化する撮像部の数の増大化を図ることができ、記憶部500に対する帯域使用量の低減化を図ることができる。
【0240】
情報処理装置100によれば、記憶部500の記憶内容のうち、グループ化した2以上の撮像部のいずれかの撮像部に対応する補正情報を、第1の補正情報として特定することができる。これにより、情報処理装置100は、画像に対してひずみ補正を実施可能にすることができる。
【0241】
情報処理装置100によれば、グループ化した2以上の撮像部の少なくともいずれかの撮像部の属性情報に基づいて、記憶部500の記憶内容を参照して、第1の補正情報を特定することができる。これにより、情報処理装置100は、画像に対してひずみ補正を実施可能にすることができる。
【0242】
情報処理装置100によれば、グループ化した2以上の撮像部の少なくともいずれかの撮像部で撮像された画像の属性情報に基づいて、記憶部500の記憶内容を参照して、第1の補正情報を特定することができる。これにより、情報処理装置100は、画像に対してひずみ補正を実施可能にすることができる。
【0243】
情報処理装置100によれば、グループ化した2以上の撮像部の特性に基づいて、第1の補正情報を生成し、記憶部500に格納することができる。これにより、情報処理装置100は、画像に対してひずみ補正を実施可能に、記憶部500の記憶内容を更新することができる。
【0244】
情報処理装置100によれば、外部の記憶部500にアクセス可能なFPGA306を用いて、少なくともひずみ補正を実施することができる。これにより、情報処理装置100は、画像に対してひずみ補正を実施する際にかかる処理時間の低減化を図ることができる。
【0245】
情報処理装置100によれば、異なる画像に対してひずみ補正を実施可能にする複数の補正情報のそれぞれの補正情報を特定可能に、それぞれの補正情報と、特定のパラメータから生成可能な基準の補正情報との差分情報を、記憶部500に記憶することができる。情報処理装置100によれば、複数の撮像部のうち、複数の補正情報に含まれる補正情報に基づいて画像に対してひずみ補正を実施可能であるとそれぞれ判断された2以上の撮像部をグループ化することができる。情報処理装置100によれば、それぞれの撮像部について、基準の補正情報と、記憶部500の記憶内容から特定された差分情報とに基づいて、当該撮像部で撮像された画像に対してひずみ補正を実施可能にする第4の補正情報を生成することができる。情報処理装置100によれば、グループ化した2以上の撮像部のそれぞれの撮像部について、生成した第4の補正情報に基づいて、当該撮像部で撮像された画像に対してひずみ補正を実施することができる。これにより、情報処理装置100は、グループ化する撮像部の数の増大化を図ることができ、記憶部500に対する帯域使用量の低減化を図ることができる。
【0246】
なお、本実施の形態で説明した補正処理方法は、予め用意されたプログラムをPCやワークステーションなどのコンピュータで実行することにより実現することができる。本実施の形態で説明した補正処理プログラムは、コンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。記録媒体は、ハードディスク、フレキシブルディスク、CD(Compact Disc)-ROM、MO(Magneto Optical disc)、DVD(Digital Versatile Disc)などである。また、本実施の形態で説明した補正処理プログラムは、インターネットなどのネットワークを介して配布してもよい。
【0247】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0248】
(付記1)画像に対してひずみ補正を行うための補正情報を記憶する記憶部と、
それぞれ異なる画像を撮像する複数の撮像部のそれぞれの撮像部の特性に基づいて、前記複数の撮像部のうち、前記補正情報に基づいて画像に対してひずみ補正を行うことが可能であるとそれぞれ判断された2以上の撮像部をグループ化し、
前記記憶部に記憶された前記補正情報に基づいて、グループ化した前記2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を行う、制御部と、
を有することを特徴とする情報処理装置。
【0249】
(付記2)前記制御部は、
前記複数の撮像部のそれぞれの撮像部から取得した、当該撮像部で撮像された画像に関するパラメータに基づいて、2以上の撮像部をグループ化する、ことを特徴とする付記1に記載の情報処理装置。
【0250】
(付記3)前記制御部は、
前記記憶部の帯域使用量が閾値を超える場合、前記記憶部に記憶された前記補正情報の一部に基づいて、前記補正情報を推定した第2の補正情報を生成し、
生成した前記第2の補正情報に基づいて、グループ化した前記2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を行う、ことを特徴とする付記1または2に記載の情報処理装置。
【0251】
(付記4)前記制御部は、
前記複数の撮像部のうち、前記記憶部に記憶された前記補正情報に類似の補正情報に基づいて画像に対してひずみ補正を行うことが可能であるとそれぞれ判断された2以上の撮像部をグループ化し、
前記記憶部に記憶された前記補正情報に基づいて、グループ化した前記2以上の撮像部のそれぞれの撮像部について、当該撮像部で撮像された画像に対してひずみ補正を行うための、前記補正情報に類似の第3の補正情報を生成し、
グループ化した前記2以上の撮像部のそれぞれの撮像部について、生成した前記第3の補正情報に基づいて、当該撮像部で撮像された画像に対してひずみ補正を行う、ことを特徴とする付記1~3のいずれか一つに記載の情報処理装置。
【0252】
(付記5)前記記憶部は、
異なる画像に対してひずみ補正を行うための複数の補正情報のそれぞれの補正情報を特定可能にする、前記それぞれの補正情報と、特定のパラメータから生成可能な基準の補正情報との差分情報を記憶し、
前記制御部は、
前記複数の撮像部のうち、前記複数の補正情報に含まれる補正情報に基づいて画像に対してひずみ補正を行うことが可能であるとそれぞれ判断された2以上の撮像部をグループ化し、
グループ化した前記2以上の撮像部のそれぞれの撮像部について、前記特定のパラメータから生成された前記基準の補正情報と、前記記憶部に記憶された前記差分情報とに基づいて、前記複数の補正情報のうち、当該撮像部で撮像された画像に対してひずみ補正を行うための第4の補正情報を生成し、
グループ化した前記2以上の撮像部のそれぞれの撮像部について、生成した前記第4の補正情報に基づいて、当該撮像部で撮像された画像に対してひずみ補正を行う、ことを特徴とする付記1~4のいずれか一つに記載の情報処理装置。
【0253】
(付記6)前記制御部は、
前記記憶部に記憶された、グループ化した前記2以上の撮像部のいずれかの撮像部に対応する前記補正情報を特定し、
特定した前記記憶部に記憶された前記補正情報に基づいて、グループ化した前記2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を行う、ことを特徴とする付記1~5のいずれか一つに記載の情報処理装置。
【0254】
(付記7)前記制御部は、
グループ化した前記2以上の撮像部の少なくともいずれかの撮像部の属性情報に基づいて、前記記憶部に記憶された前記補正情報を特定し、
特定した前記記憶部に記憶された前記補正情報に基づいて、グループ化した前記2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を行う、ことを特徴とする付記1~6のいずれか一つに記載の情報処理装置。
【0255】
(付記8)前記制御部は、
グループ化した前記2以上の撮像部の少なくともいずれかの撮像部で撮像された画像の属性情報に基づいて、前記記憶部に記憶された前記補正情報を特定し、
特定した前記記憶部に記憶された前記補正情報に基づいて、グループ化した前記2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を行う、ことを特徴とする付記1~7のいずれか一つに記載の情報処理装置。
【0256】
(付記9)グループ化した前記2以上の撮像部の特性に基づいて、前記それぞれの撮像部で撮像された画像に対してひずみ補正を行うための前記補正情報を生成し、前記記憶部に格納する格納部、
をさらに有することを特徴とする付記1~8のいずれか一つに記載の情報処理装置。
【0257】
(付記10)前記制御部は、外部の前記記憶部にアクセス可能なField Programmable Gate Arrayを用いて、少なくとも前記ひずみ補正を行う、ことを特徴とする付記1~9のいずれか一つに記載の情報処理装置。
【0258】
(付記11)異なる画像に対してひずみ補正を行うための複数の補正情報のそれぞれの補正情報を特定可能にする、前記それぞれの補正情報と、特定のパラメータから生成可能な基準の補正情報との差分情報を記憶する記憶部と、
それぞれ異なる画像を撮像する複数の撮像部のうち、前記複数の補正情報に含まれる補正情報に基づいて画像に対してひずみ補正を行うことが可能であるとそれぞれ判断された2以上の撮像部をグループ化し、
グループ化した前記2以上の撮像部のそれぞれの撮像部について、前記特定のパラメータから生成された前記基準の補正情報と、前記記憶部に記憶された前記差分情報とに基づいて、前記複数の補正情報のうち、当該撮像部で撮像された画像に対してひずみ補正を行うための補正情報を生成し、
グループ化した前記2以上の撮像部のそれぞれの撮像部について、生成した前記補正情報に基づいて、当該撮像部で撮像された画像に対してひずみ補正を行う、制御部と、
を有することを特徴とする情報処理装置。
【0259】
(付記12)それぞれ異なる画像を撮像する複数の撮像部のそれぞれの撮像部の特性に基づいて、前記複数の撮像部のうち、画像に対してひずみ補正を行うための補正情報に基づいて画像に対してひずみ補正を行うことが可能であるとそれぞれ判断された2以上の撮像部をグループ化し、
前記補正情報を記憶する記憶部に記憶された前記補正情報に基づいて、グループ化した前記2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を行う、
処理をコンピュータが実行することを特徴とする補正処理方法。
【0260】
(付記13)それぞれ異なる画像を撮像する複数の撮像部のそれぞれの撮像部の特性に基づいて、前記複数の撮像部のうち、画像に対してひずみ補正を行うための補正情報に基づいて画像に対してひずみ補正を行うことが可能であるとそれぞれ判断された2以上の撮像部をグループ化し、
前記補正情報を記憶する記憶部に記憶された前記補正情報に基づいて、グループ化した前記2以上の撮像部のそれぞれの撮像部で撮像された画像に対してひずみ補正を行う、
処理をコンピュータに実行させることを特徴とする補正処理プログラム。
【符号の説明】
【0261】
100 情報処理装置
101,601,602,801,802 画像
110,500 記憶部
111 第1の補正情報
120 制御部
200 情報処理システム
201 画像撮像装置
210 ネットワーク
300,400 バス
301,401 CPU
302,402 メモリ
303,403 ネットワークI/F
304,404 記録媒体I/F
305,405 記録媒体
306,800 FPGA
406 カメラ
501 取得部
502 分類部
503 補正部
504 格納部
505 出力部
700 表
710,1001,1401,1801,2101 ラインバッファ
720,820,910,1402,1802,2102 リマップテーブル
900,2000 管理テーブル
1002,1403,1803 バッファ
1101,1701,1702 グラフ
1500 間引きテーブル
2010 基準テーブル
2020,2112 差分テーブル
2111 パラメータ