(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-29
(45)【発行日】2023-12-07
(54)【発明の名称】撮像装置、撮像方法及びプログラム
(51)【国際特許分類】
H04N 23/60 20230101AFI20231130BHJP
G08G 1/16 20060101ALI20231130BHJP
H04N 23/67 20230101ALI20231130BHJP
H04N 23/69 20230101ALI20231130BHJP
H04N 23/54 20230101ALI20231130BHJP
H04N 25/50 20230101ALI20231130BHJP
【FI】
H04N23/60 500
G08G1/16 C
H04N23/67
H04N23/69
H04N23/60 300
H04N23/54
H04N25/50
(21)【出願番号】P 2019103387
(22)【出願日】2019-05-31
【審査請求日】2022-05-13
【国等の委託研究の成果に係る記載事項】(出願人による申告)国等の委託研究の成果に係る特許出願(独立行政法人情報処理推進機構2018年度未踏アドバンスト事業(イベントカメラ用高速画像処理ライブラリとアプリケーション開発)に関する委託契約、産業技術力強化法第19条の適用を受ける特許出願)
(73)【特許権者】
【識別番号】519197549
【氏名又は名称】芝 慎太朗
(74)【代理人】
【識別番号】100127384
【氏名又は名称】坊野 康博
(72)【発明者】
【氏名】芝 慎太朗
(72)【発明者】
【氏名】荒川 陸
【審査官】高野 美帆子
(56)【参考文献】
【文献】特表2008-547071(JP,A)
【文献】米国特許出願公開第2014/0320706(US,A1)
【文献】特開2020-182122(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 23/60
G08G 1/16
H04N 23/67
H04N 23/69
H04N 23/54
H04N 25/50
(57)【特許請求の範囲】
【請求項1】
被写体を撮像する撮像センサに備えられた撮像素子の出力の変化に基づいて、前記撮像素子に対応する画素の状態の変化を表すデータを送信する撮像手段と、
前記撮像手段によって送信された前記画素の状態の変化を表すデータを、画素毎に非同期的に受信するデータ受信手段と、
前記画素の状態の変化を表すデータと、当該画素の状態の変化を表すデータに関する時刻情報及び画素のアドレスとが、予め設定された保存形式で記憶される記憶手段と、
前記データ受信手段によって受信された前記画素の状態の変化を表すデータを、前記保存形式のデータとして前記記憶手段に記憶させる記憶制御手段と、
を備え
、
前記記憶手段は、前記画素の状態の変化を表すデータが増加を表している場合に当該データを記憶する増加時用記憶領域と、前記画素の状態の変化を表すデータが減少を表している場合に当該データを記憶する減少時用記憶領域とを備え、
前記記憶制御手段は、前記画素の状態の変化を表すデータが増加を表している場合、当該データを前記記憶手段における前記増加時用記憶領域に記憶させ、前記画素の状態の変化を表すデータが減少を表している場合、当該データを前記記憶手段における前記減少時用記憶領域に記憶させることを特徴とする撮像装置。
【請求項2】
前記撮像手段から送信されるデータ量に基づいて、前記撮像素子の出力の変化を判定するための閾値が変更されることを特徴とする請求項
1に記載の撮像装置。
【請求項3】
前記記憶制御手段は、前記撮像素子に対応する画素の状態の変化を表すデータと、当該データについて前記撮像素子の出力の変化を判定するために用いられた閾値とを対応付けて前記記憶手段に記憶させることを特徴とする請求項
1または2に記載の撮像装置。
【請求項4】
前記撮像手段から送信される前記撮像素子に対応する画素の状態の変化を表すデータの分布に応じて、前記撮像手段におけるフォーカスまたはズームの制御を行う撮像制御手段を備えることを特徴とする請求項1から
3のいずれか1項に記載の撮像装置。
【請求項5】
前記撮像センサは、前記撮像素子にカラーフィルタを備え、
前記撮像素子に対応する画素の状態の変化を表すデータは、前記撮像素子に備えられた前記カラーフィルタが透過する光の波長に対応する画素の状態を表すことを特徴とする請求項1から
4のいずれか1項に記載の撮像装置。
【請求項6】
風景を表す画像のデータを取得する画像取得手段と、
前記撮像手段から送信された前記撮像素子に対応する画素の状態の変化を表すデータと、前記画像取得手段によって取得された前記画像のデータとを対応付けて、アプリケーションによる処理を実行する処理手段と、
を備えることを特徴とする請求項1から
5のいずれか1項に記載の撮像装置。
【請求項7】
前記処理手段は、前記記憶手段に記憶された前記撮像素子に対応する画素の状態の変化を表すデータを画像として読み出すか、または、画素データとして読み出すかを切り替えることを特徴とする請求項
6に記載の撮像装置。
【請求項8】
被写体を撮像する撮像センサに備えられた撮像素子の出力の変化に基づいて、前記撮像素子に対応する画素の状態の変化を表すデータを送信する撮像ステップと、
前記撮像ステップにおいて送信された前記画素の状態の変化を表すデータを、画素毎に非同期的に受信するデータ受信ステップと、
前記画素の状態の変化を表すデータと、当該画素の状態の変化を表すデータに関する時刻情報及び画素のアドレスとが、予め設定された保存形式で記憶される記憶手段に、前記データ受信ステップにおいて受信された前記画素の状態の変化を表すデータを、前記保存形式のデータとして記憶させる記憶制御ステップと、
を含
み、
前記記憶手段は、前記画素の状態の変化を表すデータが増加を表している場合に当該データを記憶する増加時用記憶領域と、前記画素の状態の変化を表すデータが減少を表している場合に当該データを記憶する減少時用記憶領域とを備え、
前記記憶制御ステップは、前記画素の状態の変化を表すデータが増加を表している場合、当該データを前記記憶手段における前記増加時用記憶領域に記憶させ、前記画素の状態の変化を表すデータが減少を表している場合、当該データを前記記憶手段における前記減少時用記憶領域に記憶させることを特徴とする撮像方法。
【請求項9】
コンピュータに、
被写体を撮像する撮像センサに備えられた撮像素子の出力の変化に基づいて、前記撮像素子に対応する画素の状態の変化を表すデータを送信する撮像手段によって送信された前記画素の状態の変化を表すデータを、画素毎に非同期的に受信するデータ受信機能と、
前記画素の状態の変化を表すデータと、当該画素の状態の変化を表すデータに関する時刻情報及び画素のアドレスとが、予め設定された保存形式で記憶される記憶手段に、前記データ受信機能によって受信された前記画素の状態の変化を表すデータを、前記保存形式のデータとして記憶させる記憶制御機能と、
を実現させ
、
前記記憶手段は、前記画素の状態の変化を表すデータが増加を表している場合に当該データを記憶する増加時用記憶領域と、前記画素の状態の変化を表すデータが減少を表している場合に当該データを記憶する減少時用記憶領域とを備え、
前記記憶制御機能は、前記画素の状態の変化を表すデータが増加を表している場合、当該データを前記記憶手段における前記増加時用記憶領域に記憶させ、前記画素の状態の変化を表すデータが減少を表している場合、当該データを前記記憶手段における前記減少時用記憶領域に記憶させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮像装置、撮像方法及びプログラムに関する。
【背景技術】
【0002】
近年、自動車の自動運転やAI(Artificial Inteligence)等の幅広い分野において、デジタル画像が活用されるようになっている。
デジタル画像としては、一般に、実世界をカラー画像として撮像した静止画像または動画像等が用いられている。
なお、特許文献1には、デジタル画像を用いて車両等の物体を認識する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、デジタル画像を用いてアプリケーションを構築する場合、従来用いられているデジタル画像(実世界をカラー画像として撮像した静止画像または動画像等)では、目的とする機能に適さない場合がある。
例えば、自動車の自動運転等において障害物を検出しようとする場合、カメラに近い物体ほど動きが速くなることから、撮像されたデジタル画像にはブレが生じる可能性が高くなる。そのため、カメラに近く、注目度が高い物体ほど、正確に検出することが困難になり、障害物の検出を適切に行えない事態が生じ得る。
また、従来用いられているデジタル画像は、撮像センサから出力されたデータを基に1フレームの画像を生成する処理を経て出力されるため、高速な処理が要求されるアプリケーション等において、充分な処理速度を確保することが困難な場合がある。
即ち、従来のデジタル画像を用いた情報処理技術では、適切な機能を実現できない場合があった。
【0005】
本発明の課題は、デジタル画像を用いた情報処理技術において、より適切な機能を実現可能とすることである。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明の一実施形態に係る撮像装置は、
被写体を撮像する撮像センサに備えられた撮像素子の出力の変化に基づいて、前記撮像素子に対応する画素の状態の変化を表すデータを送信する撮像手段と、
前記撮像手段によって送信された前記画素の状態の変化を表すデータを、画素毎に非同期的に受信するデータ受信手段と、
前記画素の状態の変化を表すデータと、当該画素の状態の変化を表すデータに関する時刻情報及び画素のアドレスとが、予め設定された保存形式で記憶される記憶手段と、
前記データ受信手段によって受信された前記画素の状態の変化を表すデータを、前記保存形式のデータとして前記記憶手段に記憶させる記憶制御手段と、
を備えることを特徴とする。
【発明の効果】
【0007】
本発明によれば、デジタル画像を用いた情報処理技術において、より適切な機能を実現することが可能となる。
【図面の簡単な説明】
【0008】
【
図1】本実施形態に係る撮像装置1全体の構成を示す模式図である。
【
図2】出力データ記憶部24の記憶領域の構成を示す模式図である。
【
図3】撮像ユニット10の動き量に対する単位時間当たりの受信データ量(撮像デバイス12の出力データ量)の基準範囲を示す模式図である。
【
図4】情報処理ユニット20で実行されるデータ受信処理の流れを説明するフローチャートである。
【
図5】情報処理ユニット20で実行される閾値調整処理の流れを説明するフローチャートである。
【
図6】情報処理ユニット20で実行されるデータ格納処理の流れを説明するフローチャートである。
【
図7】情報処理ユニット20で実行されるアプリケーション実行処理の流れを説明するフローチャートである。
【
図8】撮像素子に特定波長の光を透過するフィルタが配置された撮像センサの構成例を示す模式図である。
【
図9】1次元の連続アドレスを有する記憶領域に保存形式1の画素データが記憶された状態の一例を示す模式図である。
【
図10】具体的適用例1における撮像装置1全体の構成を示す模式図である。
【
図11】情報処理ユニット20の機能的構成を示すブロック図である。
【
図12】撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データにより物体の形状を補間する概念を示す模式図である。
【
図13】自動運転のシミュレーションが行われる経路の一例を示す模式図である。
【
図14】撮像装置1が実行する環境構築処理の流れを説明するフローチャートである。
【
図15】撮像装置1が実行するシミュレーション処理の流れを説明するフローチャートである。
【
図16】撮像装置1が実行する解析処理の流れを説明するフローチャートである。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について、図面を参照して説明する。
[第1実施形態]
[構成]
図1は、本実施形態に係る撮像装置1全体の構成を示す模式図である。
撮像装置1は、撮像素子が配列された撮像センサを有する撮像ユニット10において、画素毎の状態(ここでは輝度値の変化とする)を検出し、情報処理ユニット20において、その検出結果のデータ(以下、適宜「画素データ」と称する。)を受信し、所定の保存形式で記憶領域に格納する。また、情報処理ユニット20は、記憶領域に格納された撮像ユニット10の検出結果のデータ(画素データ)を読み出し、各種アプリケーションで用いると共に、アプリケーションの要求等に応じて、撮像ユニット10における撮像パラメータ(画素毎の状態を検出するための閾値等)を変更する。
そのため、撮像装置1においては、画角における被写体の変化を画素毎に検出し、変化が生じた画素について、変化が生じていることを示す画素データとして出力することができる。
これにより、撮像装置1は、画角における被写体の変化を少ないデータ量で高速に検出することを可能としている。
また、撮像装置1は、所定の保存形式で格納された画素データを読み出し、各種アプリケーションに用いることができる。
したがって、撮像装置1によれば、デジタル画像を用いた情報処理技術において、より適切な機能を実現することが可能となる。
以下、撮像装置1の構成を具体的に説明する。
【0010】
図1に示すように、撮像装置1は、撮像ユニット10と、情報処理ユニット20と、センサユニット30とを備え、情報処理ユニット20は、撮像ユニット10及びセンサユニット30と有線または無線の通信ネットワークによって接続されている。なお、撮像ユニット10、情報処理ユニット20及びセンサユニット30のうちの2つあるいは全てを一体として構成することも可能である。
【0011】
撮像ユニット10は、レンズ11と、撮像デバイス12とを備えている。
レンズ11は、画角内の被写体からの光線を集束させ、撮像デバイス12の撮像センサ上に被写体像を結像させる。
撮像デバイス12は、複数の撮像素子が配列された撮像センサ及び撮像センサの出力信号を処理する処理回路を含んで構成される。撮像デバイス12は、撮像素子に対応する画素毎に、レンズ11によって結像された被写体像の各部の状態を表す信号を出力する。即ち、被写体像の各部の状態を表す信号により、撮像デバイス12から各画素の状態を表すデータを含む画素データが出力される。本実施形態においては、各画素の状態を表すパラメータの一例として、各画素の輝度値の変化が用いられている。即ち、撮像デバイス12は、撮像素子毎に蓄積される電荷の変化量が設定された閾値に達した場合に、各画素の状態を表すデータ(polarity)として、増加を表す「+1」または減少を表す「-1」を出力する。具体的には、撮像デバイス12は、画素毎に検出される輝度の増加が設定された閾値Th1以上となった場合に、増加を表すデータ(+1)を出力し、画素毎に検出される輝度の減少が設定された閾値Th1以上となった場合に、減少を表すデータ(-1)を出力する。なお、輝度の増加及び減少の判定に用いられる閾値Th1は、情報処理ユニット20によって設定される。
上述のような構成により、撮像デバイス12は、画素毎に、非同期的に画素の状態を表すデータ(+1または-1)を含む画素データを出力することとなる。
【0012】
情報処理ユニット20は、PC(Personal Computer)、マイクロコンピュータあるいはスマートフォン等の情報処理装置によって構成され、プロセッサ20Aと、記憶部20Bとを備えている。
プロセッサ20Aは、CPU(Central Processing Unit)等の演算処理装置によって構成される。プロセッサ20Aが情報処理のためのプログラムを実行することにより、プロセッサ20Aには、機能的構成として、データ受信部21と、データ格納制御部22と、処理部23とが実現される。
【0013】
記憶部20Bは、ハードディスクあるいは半導体メモリ等の記憶装置によって構成され、その記憶領域の一部に、出力データ記憶部24が形成される。
出力データ記憶部24には、撮像ユニット10から出力された画素データが記憶される。
図2は、出力データ記憶部24の記憶領域の構成を示す模式図である。
図2に示すように、出力データ記憶部24には、撮像ユニット10が撮像する画像のアドレスに対応したアドレスを有する2次元メモリ(フレームメモリ)が形成される。具体的には、出力データ記憶部24には、各画素の状態を表すデータが増加している場合に用いられるフレームメモリ(増加時用フレームメモリ24a)と、各画素の状態を表すデータが減少している場合に用いられるフレームメモリ(減少時用フレームメモリ24b)とが独立して形成される。
【0014】
これら増加時用フレームメモリ24a及び減少時用フレームメモリ24bには、後述するように、データ格納制御部22によって、撮像ユニット10から出力された画素データが記憶される。
なお、出力データ記憶部24(増加時用フレームメモリ24a及び減少時用フレームメモリ24b)の記憶内容は、所定時間毎(例えば、10[ms]毎)にリセットされる。ただし、リセット後にも過去の画素データを参照可能とするため、バックアップ用の増加時用フレームメモリ24a及び減少時用フレームメモリ24bを別の記憶領域に形成することとしてもよい。
【0015】
データ受信部21は、撮像ユニット10の撮像デバイス12から出力される画素データを非同期的に受信し、受信した画素データを受信データ用のバッファに一時的に記憶する。また、データ受信部21は、情報処理ユニット20の内部動作を規定する所定のタイミングで(例えば、1[ms]毎に)、受信データ用のバッファ内に記憶された画素データをデータ格納制御部22に出力する。具体的には、データ受信部21は、撮像デバイス12から画素データを受信すると、受信した時刻情報と共に、画素のアドレス、各画素の状態を表すデータ(+1または-1)を受信データ用のバッファに記憶する。そして、データ受信部21は、所定のタイミングで、受信データ用のバッファ内に記憶されている時刻情報、画素のアドレス、各画素の状態を表すデータ(+1または-1)を対応付けて、データ格納制御部22に出力する。
【0016】
また、本実施形態において、データ受信部21は、単位時間あたりの受信データ量及び撮像ユニット10の動き量に基づいて、撮像デバイス12における輝度の増加及び減少の判定に用いられる閾値Th1を変更する。
図3は、撮像ユニット10の動き量に対する単位時間当たりの受信データ量(撮像デバイス12の出力データ量)の基準範囲を示す模式図である。
図3に示すように、撮像ユニット10の動き量(回転運動及び並進運動)が大きくなるほど、単位時間当たりの受信データ量の基準値(
図3中の破線)が大きくなる。また、単位時間当たりの受信データ量の基準範囲は、基準値から一定のデータ量以内に設定されている。
図3によれば、撮像ユニット10の動き量に応じて、単位時間当たりの受信データ量として適正な範囲(基準範囲)が定まり、基準範囲から逸脱している場合、撮像デバイス12における輝度の増加及び減少の判定に用いられる閾値Th1が不適切な値(過大または過小)になっていると考えられる。
【0017】
即ち、単位時間当たりの受信データ量が、基準範囲を超えている場合、撮像デバイス12における輝度の増加及び減少の判定に用いられる閾値Th1を増加させることが適切であると考えられる。そのため、データ受信部21は、閾値Th1を増加させる指示を撮像デバイス12に出力する。また、単位時間当たりの受信データ量が、基準範囲を下回っている場合、撮像デバイス12における輝度の増加及び減少の判定に用いられる閾値Th1を減少させることが適切であると考えられる。そのため、データ受信部21は、閾値Th1を減少させる指示を撮像デバイス12に出力する。
なお、単位時間当たりの受信データ量として適正な範囲(基準範囲)は、撮像ユニット10の動きがない状態、動きが小さい状態、動きが大きい状態等において、各種被写体を撮像することにより、キャリブレーションを行って具体的な数値を設定することができる。
【0018】
また、データ受信部21は、処理部23から撮像デバイス12における輝度の増加及び減少の判定に用いられる閾値Th1の変更指示が入力された場合にも、変更指示の内容に応じて、閾値Th1を増加または減少させる指示を撮像デバイス12に出力する。
なお、データ受信部21は、撮像デバイス12から出力される受信データの分布(アドレスの偏り等)に基づいて、画角内の特定の領域にフォーカスしたり、ズームアップしたりすることとしてもよい。例えば、監視カメラにおける物体検出等を行う場合、侵入者が写された領域において画素の状態を表すデータが集中して出力されると考えられるため、データ受信部21が受信した画素データのアドレスが偏在している場合には、データ受信部21(または情報処理ユニット20の他の機能ブロック)が撮像ユニット10に対して、当該アドレス付近にズームアップする指示等を出力することができる。
【0019】
データ格納制御部22は、データ受信部21から入力された画素データ(時刻情報、画素のアドレス、各画素の状態を表すデータ(+1または-1))を出力データ記憶部24に記憶する。
データ格納制御部22は、データ受信部21から入力された画素データにおいて、画素の状態を表すデータが増加を表す「+1」である場合、増加時用フレームメモリ24aにおいて、画素データの画素のアドレスと対応するアドレスに、時刻情報を格納する。また、データ格納制御部22は、データ受信部21から入力された画素データにおいて、画素の状態を表すデータが減少を表す「-1」である場合、減少時用フレームメモリ24bにおいて、画素データの画素のアドレスと対応するアドレスに、時刻情報を格納する。なお、本実施形態において、画素データが同一の画素において複数回出力された場合、増加時用フレームメモリ24aまたは減少時用フレームメモリ24bにおいて、当該画素の時刻情報が上書きされる。
【0020】
これにより、増加時用フレームメモリ24aには、画素の輝度値の増加量が閾値Th1以上となった画素のアドレスに、その時刻情報が逐次書き込まれ、減少時用フレームメモリ24bには、画素の輝度値の減少量が閾値Th1以上となった画素のアドレスに、その時刻情報が逐次書き込まれることとなる。
なお、データ格納制御部22は、画素データが出力された際に判定に用いられた閾値Th1の値を取得し、時刻情報に加えて、閾値Th1の値を画素のアドレスに格納することとしてもよい。
【0021】
処理部23は、出力データ記憶部24に記憶された画素データを読み出し、アプリケーションに応じた各種処理を実行する。処理部23においては、撮像ユニット10によって出力された画素データを用いる種々のアプリケーションを実行することが可能であり、例えば、自動運転における環境認識のためのアプリケーションや、監視カメラにおける物体検出のためのアプリケーション、さらに、これらに関連する機械学習やデータ処理等を実行することができる。
【0022】
また、処理部23は、実行中のアプリケーションの要求等に応じて、撮像デバイス12における輝度の増加及び減少の判定に用いられる閾値Th1の変更指示をデータ受信部21に適宜出力することができる。
なお、処理部23は、出力データ記憶部24に記憶された画素データを読み出し、種々の加工を施して利用することができる。
例えば、増加時用フレームメモリ24a及び減少時用フレームメモリ24bに記憶された画素データ全体を対象として、所定時間内における各画素の輝度値の変化の回数分、撮像デバイス12における輝度の増加及び減少の判定に用いられた閾値Th1を符号付きで積分することにより、各画素における輝度値の実際の変化量を算出することができる。
【0023】
また、増加時用フレームメモリ24a及び減少時用フレームメモリ24bそれぞれに記憶された画素データを対象として、所定時間内における各画素の輝度値の変化の回数分、撮像デバイス12における輝度の増加及び減少の判定に用いられた閾値Th1を積分することにより、各画素における輝度値の累積増加量及び累積減少量をそれぞれ算出することができる。
このように算出された画素のデータによってフレームのデータを構成することにより、被写体における状態の変化がマッピングされた画像(ここでは輝度の変化を表す画像)を生成することができる。
このように生成された画像を単独で、または、カラー画像と併用して用いることで、環境認識や物体検出等の性能を向上させることが可能となる。
【0024】
なお、処理部23は、アプリケーションを実行する場合、シングルスレッド及びマルチスレッドのいずれによって処理を行うことも可能である。スレッドとは、並列で動作する異なるプロセスを意味する。
例えば、処理部23は、シングルスレッドによる処理を行っている場合に、そのスレッド内(同一のプロセス内)で、撮像ユニット10からの画素データの取得と、出力データ記憶部24からの画素データの読み出し等を同時に行うことができる。
また、処理部23は、マルチスレッドによる処理を行っている場合に、異なるスレッド間(異なるプロセス間)で、メモリ等を介して画素データの受け渡しを行いながら、第1のスレッドによる撮像ユニット10からの画素データの取得と、第2のスレッドによる出力データ記憶部24からの画素データの読み出し等を行うことができる。
【0025】
センサユニット30は、加速度センサあるいはジャイロセンサ等、動きを検出するための各種センサを備えている。センサユニット30は、撮像ユニット10に取り付けること、または、撮像ユニット10と一体とされた情報処理ユニット20に取り付けることが可能となっており、撮像ユニット10の動きを検出するために設置される。センサユニット30の検出結果は、情報処理ユニット20に出力される。
【0026】
[動作]
次に、撮像装置1の動作を説明する。
[データ受信処理]
図4は、情報処理ユニット20で実行されるデータ受信処理の流れを説明するフローチャートである。
データ受信処理は、撮像装置1の起動と共に開始され、繰り返し実行される。
ステップS1において、データ受信部21は、撮像デバイス12から画素データを受信したか否かの判定を行う。
撮像デバイス12から画素データを受信していない場合、ステップS1においてNOと判定されて、ステップS1の処理が繰り返される。
一方、撮像デバイス12から画素データを受信した場合、ステップS1においてYESと判定されて、処理はステップS2に移行する。
【0027】
ステップS2において、データ受信部21は、受信した画素データを受信データ用のバッファに記憶する。
ステップS3において、データ受信部21は、データ格納制御部22への出力タイミングとなっているか否かの判定を行う。
データ格納制御部22への出力タイミングとなっていない場合、ステップS3においてNOと判定されて、処理はステップS1に移行する。
一方、データ格納制御部22への出力タイミングとなっている場合、ステップS3においてYESと判定されて、処理はステップS4に移行する。
【0028】
ステップS4において、データ受信部21は、受信データ用のバッファ内に記憶された画素データをデータ格納制御部22に出力する。
ステップS4の後、データ受信処理が繰り返される。
【0029】
[閾値調整処理]
図5は、情報処理ユニット20で実行される閾値調整処理の流れを説明するフローチャートである。
閾値調整処理は、撮像装置1の起動と共に開始され、繰り返し実行される。
ステップS11において、データ受信部21は、センサユニット30の検出結果が表す撮像ユニット10の動き量に対して、単位時間あたりの受信データ量が基準範囲内であるか否かの判定を行う。
センサユニット30の検出結果が表す撮像ユニット10の動き量に対して、単位時間あたりの受信データ量が基準範囲内でない場合、ステップS11においてNOと判定されて、処理はステップS13に移行する。
一方、センサユニット30の検出結果が表す撮像ユニット10の動き量に対して、単位時間あたりの受信データ量が基準範囲内である場合、ステップS11においてYESと判定されて、処理はステップS12に移行する。
【0030】
ステップS12において、データ受信部21は、処理部23から撮像デバイス12における輝度の増加及び減少の判定に用いられる閾値Th1の変更指示が入力されたか否かの判定を行う。
処理部23から撮像デバイス12における輝度の増加及び減少の判定に用いられる閾値Th1の変更指示が入力されていない場合、ステップS12においてNOと判定されて、処理はステップS11に移行する。
一方、処理部23から撮像デバイス12における輝度の増加及び減少の判定に用いられる閾値Th1の変更指示が入力された場合、ステップS12においてYESと判定されて、処理はステップS13に移行する。
【0031】
ステップS13において、データ受信部21は、閾値Th1を増加または減少させる指示を撮像デバイス12に出力する。
ステップS13の後、閾値調整処理が繰り返される。
【0032】
[データ格納処理]
図6は、情報処理ユニット20で実行されるデータ格納処理の流れを説明するフローチャートである。
データ格納処理は、撮像装置1の起動と共に開始され、繰り返し実行される。
ステップS21において、データ格納制御部22は、データ受信部21から画素データが入力されたか否かの判定を行う。
データ受信部21から画素データが入力されていない場合、ステップS21においてNOと判定されて、ステップS21の処理が繰り返される。
一方、データ受信部21から画素データが入力された場合、ステップS21においてYESと判定されて、処理はステップS22に移行する。
【0033】
ステップS22において、データ格納制御部22は、入力された画素データのうち画素の状態を表すデータが増加(+1)を表しているか否かの判定を行う。
入力された画素データのうち画素の状態を表すデータが増加を表していない(即ち、減少(-1)を表している)場合、ステップS22においてNOと判定されて、処理はステップS24に移行する。
一方、入力された画素データのうち画素の状態を表すデータが増加を表している場合、ステップS22においてYESと判定されて、処理はステップS23に移行する。
【0034】
ステップS23において、データ格納制御部22は、入力された画素データのうち時刻情報を増加時用フレームメモリ24aに格納する。
ステップS24において、データ格納制御部22は、入力された画素データのうち時刻情報を減少時用フレームメモリ24bに格納する。
ステップS23及びステップS24の後、データ格納処理が繰り返される。
【0035】
[アプリケーション実行処理]
図7は、情報処理ユニット20で実行されるアプリケーション実行処理の流れを説明するフローチャートである。
アプリケーション実行処理は、アプリケーション実行処理の開始を指示する操作が行われることにより開始される。
ステップS31において、処理部23は、指定されたアプリケーションプログラムを読み出す。なお、アプリケーションプログラムは、記憶部20Bあるいは不図示のリムーバブルメディア等の記憶媒体に記憶されている。
【0036】
ステップS32において、処理部23は、指定されたアプリケーションプログラムに基づく処理(以下、「指定アプリケーション処理」と称する。)を実行する。
ステップS32の後、アプリケーション実行処理は終了となる。
【0037】
以上のように、本実施形態に係る撮像装置1は、撮像ユニット10によって、画素の状態を表すデータを含む画素データを画素毎に、非同期的に出力し、情報処理ユニット20によって、画素データを出力データ記憶部24に格納する。
そして、情報処理ユニット20は、指定アプリケーション処理において、出力データ記憶部24に格納された画素データを読み出して利用することにより、画角における被写体の変化を検出しながら、種々のアプリケーションを実行する。
これにより、画素毎に変化が検出され次第、非同期的に画素の状態を表すデータが出力されることから、撮像された1フレーム毎のデジタル画像を出力して物体検出等のアプリケーションに用いる従来の技術に比べ、画角における被写体の変化を少ないデータ量で高速に検出することが可能となる。
また、撮像装置1は、所定の保存形式で格納された画素データを読み出し、各種アプリケーションに用いることができる。
したがって、撮像装置1によれば、デジタル画像を用いた情報処理技術において、より適切な機能を実現することが可能となる。
【0038】
また、出力データ記憶部24には、撮像ユニット10が撮像する画像のアドレスに対応したアドレスを有する2次元メモリ(増加時用フレームメモリ24a及び減少時用フレームメモリ24b)が形成される。そして、情報処理ユニット20は、画素の状態を表すデータが増加を表すものであるか減少を表すものであるかに応じて、増加時用フレームメモリ24aまたは減少時用フレームメモリ24bにおける当該画素のアドレスと対応するアドレスに、画素データにおける時刻情報を格納する。
これにより、必要なデータを参照しやすい形態で画素データを保存することができる。また、画素データ(時刻情報、画素のアドレス、各画素の状態を表すデータ(+1または-1))のうち、時刻情報のみを所定のアドレスに格納すればよいため、これら全てを保存する場合に比べ、保存するデータ量を削減することができる。さらに、増加時用フレームメモリ24a及び減少時用フレームメモリ24bのサイズは予め決まることから、画素データを保存するために必要な記憶容量を容易に見積もることが可能となる。
【0039】
[変形例1]
上述の実施形態において、撮像デバイス12が備える撮像センサは、複数の撮像素子が配列されたものであれば採用可能であるが、撮像センサに更なる機能を備えることも可能である。
例えば、撮像センサにおける各撮像素子に特定波長の光を透過するフィルタ(カラーフィルタ等)を配置し、撮像ユニット10が、特定波長の光に対応する画素の状態を表すデータを出力することとしてもよい。
【0040】
図8は、撮像素子に特定波長の光を透過するフィルタが配置された撮像センサの構成例を示す模式図である。
なお、
図8におけるRは赤色フィルタ、Gは緑色フィルタ、Bは青色フィルタを示している。
図8に示す撮像センサにおいて、撮像素子毎に蓄積される電荷の変化量が設定された閾値に達した場合、上述の撮像装置1における場合と同様に、画素データとして、増加を表す「+1」または減少を表す「-1」が出力される。
情報処理ユニット20のデータ格納制御部22では、撮像ユニット10が撮像する画像のアドレスと、そのアドレスの撮像センサに配置されているフィルタの種類(透過する光の波長)とが対応付けて登録されており、フィルタの種類と対応付けた画素データの格納及び読み出しを行うことが可能である。
【0041】
このような撮像センサの構成とすることにより、例えば、画素の状態を表すフレームをカラー毎に生成すること等が可能となる。
一例として、光源の波長が偏っている場合に、その補色系の波長の光を透過するフィルタが配置された画素データを選択して、被写体の変化を検出することができる。この場合、被写体の変化がより明確にフレームに現れることから、より適切に被写体の変化を検出することが可能となる。
即ち、変形例1の構成により、光の波長を反映させた処理が有効なアプリケーションにおいて、より利便性の高い技術を提供することができる。
【0042】
[変形例2]
上述の実施形態において、出力データ記憶部24には、撮像ユニット10が撮像する画像のアドレスに対応したアドレスを有する2次元メモリ(増加時用フレームメモリ24a及び減少時用フレームメモリ24b)が形成され、画素の状態を表すデータが増加を表すものであるか減少を表すものであるかに応じて、増加時用フレームメモリ24aまたは減少時用フレームメモリ24bにおける当該画素のアドレスと対応するアドレスに、画素データに付された時刻情報を格納するものとした。
【0043】
これに対し、以下のような画素データの保存形式とすることが可能である。
(保存形式1)
画素データの保存形式を(時刻t、画像のアドレス(x,y)、polarity)の形式とする。
なお、「polarity」は、画素の状態として増加または減少を示す値(+1または-1等)である。
保存形式1とした場合、出力データ記憶部24の記憶領域は2次元メモリとする必要がなく、1次元の連続アドレスとすることができる。
【0044】
図9は、1次元の連続アドレスを有する記憶領域に保存形式1の画素データが記憶された状態の一例を示す模式図である。
図9に示すように、1次元の連続アドレスとして、記憶領域には0番地から1ずつ増加するメモリアドレスが付与されており、データ受信部21が受信した順に、番地の小さいメモリアドレスに保存形式1の画素データが記憶される。
保存形式1で画素データを保存した場合、データの保持管理が容易になると共に、受信データの量に応じて、柔軟に記憶領域を拡大または縮小することができる。
【0045】
(保存形式2)
画素データの保存形式を、画素毎に用意された記憶領域に最新の画素データ(例えば、アドレス以外のデータ)を記憶する形式とする。
例えば、画素毎に用意された記憶領域(即ち、各画素専用の記憶領域)に、画素データが受信された時刻及びpolarityを上書きして保存することができる。
なお、保存形式2においては、出力データ記憶部24の記憶領域を上述の実施形態のように2次元メモリとする必要はなく、
図9に示す記憶領域と同様に、1次元の連続アドレスとすることができる。
ただし、上述の実施形態と同様に、増加時用の記憶領域と減少時用の記憶領域とを独立して形成し、polarityの値に応じて、いずれかの記憶領域に時刻情報のみを格納することとしてもよい。
【0046】
(保存形式3)
画素データを記憶する1つの領域に、複数回分の画素データを、再構築可能なデータ構造で保存する形式とする。
具体的には、画素データを記憶する1つの領域のデータ幅に対して、複数回分の画素データを割り付けて保存する。例えば、画素データを記憶する1つの領域が64ビットを有する場合に、時刻情報が16ビットで表されているものとすると、64ビットの記憶領域には、4回分の時刻情報を保存することができる。
【0047】
このようなデータの保存形式とする場合、新たに受信された画素データの時刻情報を保存する際には、例えば、対象となる記憶領域のデータを64ビット分読み出し、削除対象の時刻情報(最も古いもの等)を除外した上で、新たな時刻情報を追加した64ビットのデータを構成し、対象となる記憶領域に書き戻すこととする。
なお、記憶領域の上位の桁ほど古い時刻情報を保存するようにすることで、時刻情報の入れ替えを容易に行うことができる。
【0048】
(保存形式4)
画素データを記憶する領域に、時刻情報に代えて、一定時間内に画素データが何回出力されたかの回数情報を保存する。
具体的には、上述の実施形態及び本変形例における各保存形式において、時刻情報を保存せずに、一定時間内に画素の状態が変化した回数(即ち、画素データが出力された回数)を保存する。
一定時間として設定された時間がごく短時間であり、具体的な時刻情報までは必要でない場合、画素データが出力された回数で設定時間を除算すれば、おおよその時刻情報が取得できる。
また、保存すべきデータは、回数を表す数値(所定範囲の整数)のみであることから、時刻情報を保存する場合に比べ、必要な記憶容量を低減することができる。
したがって、保存形式4を用いることで、記憶容量及び数値演算の負荷の低減を図ることができるため、撮像装置1として必要な装置スペックを抑制することができる。
【0049】
[変形例3]
上述の実施形態及び各変形例において、出力データ記憶部24に記憶された画素データを保持するか否かを所定方針に従って制御することができる。
所定方針としては、主として、時間を基準として保持の要否を判定すること、及び、画素データのアドレスを基準として保持の要否を判定することが可能である。
具体的には、以下の保持方針とすることができる。
【0050】
(保持方針1)
一定時間(設定された閾値時間)以上、過去のデータを削除する。
即ち、画素データが現在時刻から設定された閾値時間以上、古いものとなった場合、そのデータを削除する。
これにより、画素の状態に変化がない場合に、過度に古い画素データが保持され続けることを防止できる。
【0051】
(保持方針2)
一定要素数(設定された画素データの数)以上、過去のデータを削除する。
即ち、画素データが直近の一定要素数(設定された画素データの数)以上、古いものとなった場合、そのデータを削除する。
これにより、画素の状態が変化し、画素データが逐次受信される場合に、不要と考えられる過去の画素データを削除することができる。
【0052】
(保持方針3)
同一のアドレスに過去一定時間以内の画素データが存在する場合、その画素データを保持し、その他の画素データは削除する。
画素データに変化が生じた場合、一定時間内に、その変化とは逆の変化が生じる可能性が高いため、その画素データは保持することが適当である。
例えば、監視カメラにおける物体検出等において、侵入者が画角内を通過する場合、夜間であれば、侵入者の身体に該当する画素は従前よりも暗くなり、侵入者が通過すると再び明るくなるといった状況が発生し得る。
そのため、物体が検出された際に画素データからフレームを生成する場合等において、有用な画素データを保持しておくことが可能となる。
【0053】
(保持方針4)
近傍のアドレスに保持されている画素データが存在する場合、中心の画素データを保持し、近傍のアドレスに保持されている画素データが存在しない場合、その画素データを削除する。
この場合、被写体に実際に変化があったと考えられる画素データを保持すると共に、ノイズ等で離散的に発生した画素データを削除することができる。
即ち、有効な画素データを保持すると共に、不要な画素データを削除することが可能となる。
【0054】
[変形例4]
上述の実施形態及び各変形例において、単位時間当たりの受信データ量が基準範囲内であるか否かの判定を行う周期を、予め設定された条件に応じて変更することとしてもよい。
撮像デバイス12における輝度の増加及び減少の判定に用いられる閾値Th1が不適切な場合、被写体の変化を適切に検出できないことから、閾値Th1を変更(補正)することが有用である。
一方、閾値Th1を逐次補正するため、単位時間当たりの受信データ量が基準範囲内であるか否かの判定を高頻度に行うと、処理負荷の増大やシステムの不安定化を招く可能性がある。
そこで、撮像装置1に入力される各種情報を基に、単位時間当たりの受信データ量が基準範囲内であるか否かの判定を行う周期に関する条件を設定しておき、この条件に従って判定を行うことで、より効率的に閾値Th1を補正することができる。
なお、単位時間当たりの受信データ量が基準範囲内であるか否かの判定を画素毎に行い、閾値Th1も画素毎に設定することとしてもよい。
これにより、画素毎に、画素の状態に応じた判定周期で、位時間当たりの受信データ量が基準範囲内であるか否かを判定し、より適切な閾値Th1を設定することができる。
【0055】
[具体的適用例1]
次に、撮像装置1の具体的な適用例について説明する。
本適用例では、撮像装置1を自動車に設置し、自動運転を行うための撮像装置として用いるものとする。
この場合、撮像装置1は、実世界を撮像した撮像結果及び仮想空間を仮想的な撮像装置1で撮像した撮像結果を取得し、自動車が走行する空間のデータを生成する機能を実現する。また、撮像装置1は、生成した空間において自動車の自動運転のシミュレーションを行い、シミュレーションの結果を解析する機能を実現する。
これらの機能を実現するにあたり、撮像装置1において、目的とする処理を簡単に実行するためのライブラリが用意され、各種処理を実行する際に、必要なライブラリが適宜用いられる。
【0056】
[構成]
図10は、具体的適用例1における撮像装置1全体の構成を示す模式図である。
図10に示す構成は、
図1に示す全体構成に対し、デジタル画像(実世界をカラー画像として撮像した静止画像または動画像等)を撮像する撮像ユニット100が備えられている点が異なっている。
撮像ユニット100は、画角内の被写体を2次元のカラー画像として撮像する既存のデジタルビデオカメラによって構成することができる。
撮像ユニット100は、レンズ111と、撮像デバイス112とを備えている。
レンズ111は、画角内の被写体からの光線を集束させ、撮像デバイス112の撮像センサ上に被写体像を結像させる。
【0057】
撮像デバイス112は、複数の撮像素子が配列された撮像センサ及び撮像センサの出力信号を処理する処理回路を含んで構成される。
なお、撮像ユニット10及び撮像ユニット100の画角(撮影範囲)は一致(または重複)されており、撮像ユニット100で撮像された被写体の変化を表す画素データが、撮像ユニット10によって出力される。
また、撮像ユニット100が備えられていることに伴い、情報処理ユニット20のデータ受信部21は、撮像ユニット10から出力される画素データを受信する機能に加え、撮像ユニット100から出力される画素データ(フレーム毎の画素データ群)を所定周期(例えば、100[ms]周期)で受信する機能を備えている。データ受信部21は、撮像ユニット100から受信した画素データをデータ格納制御部22に出力し、フレームを表すデータとして出力データ記憶部24に記憶する。
【0058】
[機能的構成]
次に、情報処理ユニット20の機能的構成について説明する。
図11は、情報処理ユニット20の機能的構成を示すブロック図である。
図11においては、情報処理ユニット20のうち、処理部23及び記憶部20Bに形成される機能的構成を示している。
図11に示すように、本適用例における撮像装置1は、処理部23において、空間データ取得部23aと、シミュレーション処理部23bと、解析処理部23cとを備えている。また、記憶部20Bには、出力データ記憶部24に加え、ライブラリ記憶部25と、3Dモデルデータベース(3DモデルDB)26とが形成される。
【0059】
ライブラリ記憶部25には、撮像装置1において使用される頻度が高い各種機能をまとめた複数のライブラリが記憶されている。本実施形態において、ライブラリが用いられる場合、実行中のアプリケーションからAPI(Application Program Interface)として必要なライブラリが呼び出され、呼び出されたライブラリの機能による応答がアプリケーションに返される。
【0060】
例えば、ライブラリ記憶部25には、以下の機能を実現するライブラリが記憶されている。
(ライブラリ1)出力データを画像として読み出すか、出力データを画素データのまま読み出すかを切り替えるライブラリ
(ライブラリ2)画素データにおけるpolarityがマイナスである画素を青、画素データにおけるpolarityがプラスである画素を赤として、出力データが表す画像を表示するライブラリ
(ライブラリ3)出力データの保存形式(2次元メモリあるいは保存形式1~4のいずれか等)を切り替えるライブラリ
(ライブラリ4)撮像時に輝度の増加及び減少の判定に用いられた閾値Th1に応じたデータの正規化を行うライブラリ
なお、ライブラリ4は、撮像装置1の出力データを後に解析する場合等に用いられる。
(ライブラリ5)撮影中に特定領域(変化が大きい領域等)にズームアップ(あるいはフォーカス)して撮像するか否かを切り替えるライブラリ
(ライブラリ6)被写体の動きに合わせて出力データ量が基準範囲となるように閾値Th1を変更するか否かを切り替えるライブラリ
(ライブラリ7)3D空間内を撮像する仮想カメラのパラメータ(視点位置、絞り値、感度等)を設定するライブラリ
【0061】
アプリケーションのプログラムにおいては、これらのライブラリを呼び出すことで、上位の命令を記述しておけば、撮像装置1における各種機能を実現するための下位の制御を容易に実行することができる。
なお、撮像装置1において使用される頻度が高い各種機能をまとめる形態としては、ライブラリの他、ミドルウェアあるいはアプリケーションの形態とすることも可能である。
【0062】
3DモデルDB26には、自動運転のシミュレーションを行うための仮想空間の3次元モデルデータが記憶される。本実施形態において、3DモデルDB26には、自動運転のシミュレーションが行われる実空間(走行環境を構成する実空間)を表す3次元モデルデータが記憶されている。これにより、実空間を走行できない場合であっても、3DモデルDB26に記憶された3次元モデルデータを用いて、仮想空間を仮想的な撮像装置1で撮像した撮像結果を取得することが可能となる。
なお、3DモデルDB26には、自動運転のシミュレーションが行われる実空間(走行環境を構成する実空間)を表す3次元モデルデータに限らず、架空の走行環境を構成する仮想空間の3次元モデルデータを記憶することも可能である。この場合、実空間に限らず、各種走行環境を仮想的に走行した場合のシミュレーションを行うことができる。
【0063】
空間データ取得部23aは、自動運転のシミュレーション環境を表す空間のデータを構築する処理(環境構築処理)を実行する。
即ち、空間データ取得部23aは、自動車に設置された撮像ユニット10及び撮像ユニット100によって自動車の走行範囲における実空間を撮像した画素データ(以下、適宜「実データ」と称する。)を取得して出力データ記憶部24に記憶する。また、空間データ取得部23aは、3DモデルDB26に記憶された3次元モデルデータを用いて、仮想空間内に設定された走行範囲を仮想的な撮像装置1で撮像した画素データ(以下、適宜「仮想データ」と称する。)を画素毎に非同期的に取得して出力データ記憶部24に記憶する。このとき、空間データ取得部23aは、上述のライブラリ7を呼び出し、3D空間内を撮像する仮想カメラのパラメータ(視点位置、絞り値、感度等)を設定することができる。また、空間データ取得部23aは、上述のライブラリ3を呼び出し、出力データの保存形式を適宜切り替えることができる。
【0064】
そして、空間データ取得部23aは、取得した実データ及び仮想データを合成し、自動運転のシミュレーション環境を表す空間のデータを構築する。このとき、空間データ取得部23aは、上述のライブラリ1を呼び出し、撮像ユニット10によって出力されたデータを画像として読み出すことにより、自動運転のシミュレーション環境を表す空間のデータを構築する。さらに、空間データ取得部23aは、構築した空間のデータを不図示のメモリまたは記憶部20Bの記憶領域に記憶する。
【0065】
ここで、自動運転のシミュレーション環境を表す空間のデータを構成する実データは、撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データと、撮像ユニット100によって撮像された風景を表す画素データとを構成要素としている。撮像ユニット10は、撮像ユニット100よりも早い周期で画素データを出力することから、撮像ユニット100によって撮像された風景を表す画素データ及び撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データが併せて取得されているタイミングと、撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データのみが取得されているタイミングとが存在する。そこで、空間データ取得部23aが自動運転のシミュレーション環境を表す空間のデータを構築する場合、撮像ユニット100によって撮像された風景を表す画素データ及び撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データが併せて取得されているタイミング以外において、撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データにより物体の形状を補間し、自動運転のシミュレーション環境を表す空間のデータをより高精度なものに変換する。
【0066】
具体的には、以下の手順に従って、自動運転のシミュレーション環境を表す空間のデータを構成することができる。
(手順1)併せて取得された撮像ユニット100によって撮像された風景を表す画素データと撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データとを対象として、撮像ユニット10によって撮像された風景を表す画素データを基に算出される物体の形状に、撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データから算出される形状を対応付ける。
(手順2)撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データのみが取得されているタイミングにおいて、撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データを過去の所定期間において積分し、物体の形状を時間的に補間する。
(手順3)手順1及び手順2の結果を基に、撮像ユニット100によって撮像された風景を表す画素データ及び撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データが併せて取得されているタイミングの物体の形状のデータ及び撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データのみが取得されているタイミングの物体の形状のデータを合成し、自動運転のシミュレーション環境を表す空間のデータを構築する。
【0067】
図12は、撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データにより物体の形状を補間する概念を示す模式図である。
なお、
図12は、撮像装置1が設置された自動車が、時刻ta→時刻tb→時刻tc→時刻tdの順に進行し、道路に隣接する建物を撮像する様子を示している。
図12において、撮像ユニット100は、その撮像周期に従い、時刻ta及び時刻tdで撮像を行うものとする。このとき、被写体となる建物は、時刻taで撮像された画像に全体が含まれているものの、時刻tdで撮像された画像には、ほぼ撮像されていない。
一方、撮像ユニット10は、撮像ユニット10に比べて短い撮像周期で撮像を行う(画素データを出力する)ことができるため、時刻taと時刻tdの間にも、建物を撮像した画素の状態の変化を表す画素データを逐次出力することができる。
そのため、時刻taと時刻tdの間における時刻tb及び時刻tcにおいて、撮像ユニット10によって出力された画素データを用いて、物体(建物)の形状のデータを合成して補間し、自動運転のシミュレーション環境を表す空間のデータを構築することができる。
【0068】
シミュレーション処理部23bは、空間データ取得部23aによって構築された自動運転のシミュレーション環境を表す空間のデータを参照し、設定された自動運転のアルゴリズムに従って、この空間における自動運転のシミュレーションを行う処理(シミュレーション処理)を実行する。このとき、シミュレーション処理部23bは、上述のライブラリ1を呼び出し、撮像ユニット10によって出力されたデータを画素データのまま読み出す。これにより、シミュレーション処理部23bは、画素の状態を表すデータを非同期的に取得しながら、自動運転のシミュレーションを行う。また、シミュレーション処理部23bは、自動運転のシミュレーションを行うにあたり、上述のライブラリ5を呼び出し、撮影中に特定領域(変化が大きい領域等)にズームアップ(あるいはフォーカス)して撮像するか否かを切り替えることができる。また、シミュレーション処理部23bは、自動運転のシミュレーションを行うにあたり、上述のライブラリ6を呼び出し、被写体の動きに合わせて出力データ量が基準範囲となるように閾値Th1を変更するか否かを切り替えることができる。さらに、シミュレーション処理部23bは、自動運転のシミュレーションを行うにあたり、上述のライブラリ3を呼び出し、出力データの保存形式を適宜切り替えることができる。
【0069】
また、シミュレーション処理部23bは、自動運転のシミュレーションによって取得された運転履歴(シミュレーション結果)のデータを不図示のメモリまたは記憶部20Bの記憶領域に記憶する。自動運転のアルゴリズムとして、テスト等の対象となる種々のものを設定することにより、自動運転のシミュレーション結果を基に、自動運転のアルゴリズムの性能評価等を行うことができる。
さらに、シミュレーション処理部23bは、自動運転のシミュレーション結果を解析処理部23cによって解析した結果がより適切なものになるように、自動運転のアルゴリズムに対する機械学習を行うことができる。
【0070】
解析処理部23cは、シミュレーション処理部23bによって取得されたシミュレーション結果のデータを基に、自動運転のアルゴリズムの性能評価等のために解析を行う処理(解析処理)を実行する。
このとき、解析処理部23cは、上述のライブラリ2を呼び出すことにより、撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データにおいて、polarityがマイナスである画素を青、polarityがプラスである画素を赤として、出力データが表す画像を表示することができる。また、解析処理部23cは、上述のライブラリ4を呼び出すことにより、撮像時に輝度の増加及び減少の判定に用いられた閾値Th1に応じたデータの正規化を行い、自動運転のシミュレーションにおいて検出された画素の状態の変化を時系列にグラフ化して表示することができる。
【0071】
[動作]
次に、本適用例の撮像装置1の動作を説明する。
図13は、自動運転のシミュレーションが行われる経路の一例を示す模式図である。
図13に示す経路は、自宅(地点A)を出発し、住宅街を通過して地点Bにおいて右折して国道に入り、さらに、地点Cにおいて左折して商店街に進入すると共に、踏切を通過して公園(地点D)に至るものである。ただし、地点Cから地点Dの区間は、工事中等の理由により、実際の走行ができない区間である。
以下、
図13に例示される経路を対象として、自動運転のシミュレーション環境を表す空間のデータを構築し、その経路における自動運転のシミュレーション及びシミュレーション結果の解析を行う場合を想定して、撮像装置1の動作を説明する。
【0072】
[環境構築処理]
図14は、撮像装置1が実行する環境構築処理の流れを説明するフローチャートである。
環境構築処理は、環境構築処理の開始を指示する操作が行われることにより開始される。
ステップS41において、空間データ取得部23aは、自動車に設置された撮像ユニット10及び撮像ユニット100によって自動車の走行範囲における実空間を撮像した画素データ(実データ)を取得して出力データ記憶部24に記憶する。このとき、空間データ取得部23aは、撮像ユニット100によって撮像された風景を表す画素データ及び撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データを併せて取得できるタイミングでは、これらの画素データを併せて取得する。また、空間データ取得部23aは、撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データのみを取得できるタイミングでは、撮像ユニット10が出力する画素データのみを取得する。
【0073】
ステップS42において、空間データ取得部23aは、3DモデルDB26に記憶された3次元モデルデータを用いて、仮想空間内に設定された走行範囲を仮想的な撮像装置1で撮像した画素データ(仮想データ)を取得して出力データ記憶部24に記憶する。このとき、空間データ取得部23aは、撮像ユニット100の撮像周期と同一のタイミングで撮像ユニット10からの出力となる画素データを算出し、仮想的な撮像ユニット10及び撮像ユニット100が出力する画素データを併せて取得する。
なお、ステップS42において、空間データ取得部23aは、上述のライブラリ7を呼び出し、3D空間内を撮像する仮想カメラのパラメータ(視点位置、絞り値、感度等)を設定することができる。また、ステップS41及びステップS42において、空間データ取得部23aは、上述のライブラリ3を呼び出し、出力データの保存形式を適宜切り替えることができる。
【0074】
ステップS43において、空間データ取得部23aは、取得した実データ及び仮想データを合成し、自動運転のシミュレーション環境を表す空間のデータを構築する。このとき、空間データ取得部23aは、上述のライブラリ1を呼び出し、撮像ユニット10によって出力されたデータを画像として読み出すことにより、自動運転のシミュレーション環境を表す空間のデータを構築する。なお、自動運転のシミュレーション環境を表す空間の実データには、撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データと、撮像ユニット100によって撮像された風景を表す画素データとが含まれている。ステップS43の処理では、空間データ取得部23aは、撮像ユニット100によって撮像された風景を表す画素データ及び撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データが併せて取得されているタイミング以外において、撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データにより物体の形状を補間し、自動運転のシミュレーション環境を表す空間のデータをより高精度なものに変換する。
【0075】
ステップS44において、空間データ取得部23aは、構築した空間のデータを不図示のメモリまたは記憶部20Bの記憶領域に記憶する。
ステップS44の後、環境構築処理は終了となる。
【0076】
[シミュレーション処理]
図15は、撮像装置1が実行するシミュレーション処理の流れを説明するフローチャートである。
シミュレーション処理は、シミュレーション処理の開始を指示する操作が行われることにより開始される。
ステップS51において、シミュレーション処理部23bは、自動運転のシミュレーション環境を表す空間のデータを取得する。
ステップS52において、シミュレーション処理部23bは、自動運転のシミュレーション環境を表す空間内で、出発地点からの移動(シミュレーション)を開始する。
【0077】
ステップS53において、シミュレーション処理部23bは、設定された自動運転アルゴリズムに従い、自動運転のシミュレーション環境を表す空間内を移動し、自動車の応答(運転履歴)をシミュレーション結果として記録する。
ステップS54において、シミュレーション処理部23bは、自動運転のシミュレーション環境を表す空間内で、目的地へ到達したか否かの判定を行う。
自動運転のシミュレーション環境を表す空間内で、目的地へ到達していない場合、ステップS54においてNOと判定されて、処理はステップS53に移行する。
一方、自動運転のシミュレーション環境を表す空間内で、目的地へ到達した場合、ステップS54においてYESと判定されて、シミュレーション処理は終了となる。
【0078】
[解析処理]
図16は、撮像装置1が実行する解析処理の流れを説明するフローチャートである。
解析処理は、解析処理の開始を指示する操作が行われることにより開始される。
ステップS61において、解析処理部23cは、自動車の運転履歴(シミュレーション結果)のデータを読み出す。
【0079】
ステップS62において、解析処理部23cは、撮像装置1を視点とする画像を時系列に読み出し、風景の画像として表示する。解析処理部23cは、上述のライブラリ2を呼び出すことにより、撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データにおいて、polarityがマイナスである画素を青、polarityがプラスである画素を赤として、出力データが表す画像を表示することができる。なお、ステップS62においては、自動運転のシミュレーションにおいて検出された画素の状態の変化を時系列にグラフ化する等、解析の内容に応じて、異なる解析結果を表示させることとしてもよい。
【0080】
ステップS63において、解析処理部23cは、解析処理の終了が指示されたか否かの判定を行う。
解析処理の終了が指示されていない場合、ステップS63においてNOと判定されて、処理はステップS62に移行する。
一方、解析処理の終了が指示された場合、ステップS63においてYESと判定されて、解析処理は終了となる。
【0081】
以上のように、本適用例における撮像装置1は、自動車に設置された撮像ユニット10及び撮像ユニット100によって自動車の走行範囲における実空間を撮像した実データを取得すると共に、3DモデルDB26に記憶された3次元モデルデータを用いて、仮想空間内に設定された走行範囲を仮想的な撮像装置1で撮像した仮想データを取得する。そして、撮像装置1は、取得した実データ及び仮想データを合成し、自動運転のシミュレーション環境を表す空間のデータを構築する。
そのため、撮像ユニット100によって撮像された風景を表す画素データ及び撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データが併せて取得されているタイミング以外において、撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データにより物体の形状を補間し、自動運転のシミュレーション環境を表す空間のデータをより高精度なものに変換することができる。
さらに、撮像装置1は、構築した空間のデータを参照し、設定された自動運転のアルゴリズムに従って、この空間におけるシミュレーション処理を実行する。
したがって、自動運転のアルゴリズムとして、テスト等の対象となる種々のものを設定し、自動運転のシミュレーション結果を取得することができる。
【0082】
また、撮像装置1は、シミュレーション結果のデータを基に、自動運転のアルゴリズムの性能評価等のための解析処理を実行する。
これにより、構築した空間を利用して、設定された自動運転のアルゴリズムによる自動運転の結果を解析することができ、自動運転のアルゴリズムに対する機械学習を行うことが可能となる。
また、機械学習により適切化された自動運転のアルゴリズムを実際の自動車における自動運転に用いることが可能となる。
【0083】
また、シミュレーション結果のデータを可視化して解析し、自動運転のアルゴリズムの高性能化に反映させることができる。
また、本適用例の撮像装置1により、撮像ユニット10が出力する画素データにより被写体の変化を早期に検出できると共に、撮像ユニット10及び撮像ユニット100が出力する画素データを併せて用いることにより、被写体となる物体の形状をより正確に把握し、構築することができる。さらに、撮像装置1により、自動運転時の状況把握及び応答を迅速化することができる。
【0084】
また、本適用例の撮像装置1には、使用される頻度が高い各種機能をまとめたライブラリが用意されている。
これにより、アプリケーションにおいては、ライブラリを呼び出すことで、上位の命令を記述しておけば、撮像装置1における各種機能を実現するための下位の制御を容易に実行することができる。
【0085】
なお、撮像装置1は、自動車に限らず、移動可能な装置の自律的な移動または手動操作による移動において、撮像ユニット10が出力する画素データを取得し、被写体の変化を検出することができる。例えば、撮像装置1を用いることにより、歩行可能なロボット、ドローン等の飛行体、船舶、潜水艇等の移動において、撮像ユニット10が出力する画素データを取得し、被写体の変化を検出することができる。また、撮像装置1は、自動車の自動運転を始め、これら移動可能な装置の自律制御のシミュレーションあるいは実働に用いることが可能である。
また、解析処理における解析の対象は、自動運転のシミュレーション結果に限らず、実際の自動運転の運転履歴のデータとすることも可能である。
【0086】
また、上述の実施形態において撮像装置1が実行するものとして説明した各種処理を、撮像装置1以外の情報処理装置で行うこととしてもよい。
また、上述の実施形態において撮像装置1が実行するものとして説明した各種処理の一部を撮像装置1以外の情報処理装置で実行し、撮像装置1は、その実行結果を取得することとしてもよい。
また、上述の実施形態において、撮像装置1が用いる各種データ(実空間の3次元モデルデータ等)は、撮像装置1以外の情報処理装置に記憶しておき、必要なデータを適宜ダウンロードして撮像装置1に記憶することとしてもよい。
【0087】
以上のように構成される撮像装置1は、撮像ユニット10と、情報処理ユニット20と、を備える。情報処理ユニット20は、データ受信部21と、データ格納制御部22と、処理部23と、記憶部20Bと、を備える。
撮像ユニット10は、被写体を撮像する撮像センサに備えられた撮像素子の出力の変化に基づいて、撮像素子に対応する画素の状態の変化を表すデータを送信する。
データ受信部21は、撮像ユニット10によって送信された画素の状態の変化を表すデータを、画素毎に非同期的に受信する。
記憶部20Bは、画素の状態の変化を表すデータと、当該画素の状態の変化を表すデータに関する時刻情報及び画素のアドレスとが、予め設定された保存形式で記憶される。
データ格納制御部22は、データ受信部21によって受信された画素の状態の変化を表すデータを、予め設定された保存形式のデータとして記憶部20Bに記憶させる。
これにより、画素毎に変化が検出され次第、非同期的に画素の状態を表すデータが出力されることから、撮像された1フレーム毎のデジタル画像を出力して物体検出等のアプリケーションに用いる従来の技術に比べ、画角における被写体の変化を少ないデータ量で高速に検出することが可能となる。
また、撮像装置1は、所定の保存形式で格納された画素データを読み出し、各種アプリケーションに用いることができる。
したがって、撮像装置1によれば、デジタル画像を用いた情報処理技術において、より適切な機能を実現することが可能となる。
【0088】
また、記憶部20Bは、画素の状態の変化を表すデータが増加を表している場合に当該データを記憶する増加時用フレームメモリ24aと、画素の状態の変化を表すデータが減少を表している場合に当該データを記憶する減少時用フレームメモリ24bとを備える。
これにより、必要なデータを参照しやすい形態で画素データを保存することができる。また、例えば、画素データ(時刻情報、画素のアドレス、各画素の状態を表すデータ等)のうち、時刻情報のみを所定のアドレスに格納すればよいため、これら全てを保存する場合に比べ、保存するデータ量を削減することができる。さらに、増加時用フレームメモリ24a及び減少時用フレームメモリ24bのサイズは予め決まることから、画素データを保存するために必要な記憶容量を容易に見積もることが可能となる。
【0089】
また、撮像ユニット10から送信されるデータ量に基づいて、撮像素子の出力の変化を判定するための閾値が変更される。
これにより、撮像ユニット10から送信されるデータ量を設定された範囲に収束させることができる。
【0090】
データ格納制御部22は、撮像素子に対応する画素の状態の変化を表すデータと、当該データについて撮像素子の出力の変化を判定するために用いられた閾値とを対応付けて記憶部20Bに記憶させる。
これにより、撮像素子の出力の変化を判定する際に用いられた閾値を参照することで、画素の状態の変化量を算出することが可能となる。
【0091】
また、情報処理ユニット20は、撮像ユニット10から送信される撮像素子に対応する画素の状態の変化を表すデータの分布に応じて、撮像ユニット10におけるフォーカスまたはズームの制御を行う。
これにより、画角内において変化が大きい領域等に着目して被写体の状態を検出することができる。
【0092】
また、撮像センサは、撮像素子にカラーフィルタを備える。
撮像素子に対応する画素の状態の変化を表すデータは、撮像素子に備えられたカラーフィルタが透過する光の波長に対応する画素の状態を表す。
これにより、光の波長を反映させた処理が有効なアプリケーションにおいて、より利便性の高い技術を提供することができる。
【0093】
また、撮像装置1は、撮像ユニット100を備える。
撮像ユニット100は、風景を表す画像のデータを取得する。
処理部23は、撮像ユニット10から送信された撮像素子に対応する画素の状態の変化を表すデータと、撮像ユニット100によって取得された画像のデータとを対応付けて、アプリケーションによる処理を実行する。
これにより、撮像ユニット100によって取得された画像のデータから物体の形状を構築することに加え、撮像ユニット10によって撮像された画素の状態を表すデータを含む画素データにより物体の形状を補間し、より高精度な空間のデータを構築することができる。
【0094】
処理部23は、記憶部20Bに記憶された撮像素子に対応する画素の状態の変化を表すデータを画像として読み出すか、または、画素データとして読み出すかを切り替える。
これにより、処理内容に応じて、画素の状態の変化を表すデータを適切な形式で読み出すことが可能となる。
【0095】
また、情報処理装置としての撮像装置1は、情報処理ユニット20に空間データ取得部23aを備える。
空間データ取得部23aは、3次元仮想空間において、被写体を仮想的に撮像した際の仮想的な撮像素子に対応する画素の状態の変化を表すデータを、画素毎に非同期的に取得する。
これにより、実空間を実際に撮像できない場合であっても、仮想的に被写体の状態を検出したデータを取得することができる。
【0096】
また、撮像装置1は、撮像ユニット10と、データ受信部21と、データ格納制御部22と、処理部23と、記憶部20Bと、を備える。
撮像ユニット10は、被写体を撮像する撮像センサに備えられた撮像素子の出力の変化に基づいて、撮像素子に対応する画素の状態の変化を表すデータを送信する。
データ受信部21は、撮像ユニット10によって送信された画素の状態の変化を表すデータを、画素毎に非同期的に受信する。
記憶部20Bは、空間データ取得部23aによって取得された画素の状態の変化を表すデータ及びデータ受信部21によって受信された画素の状態の変化を表すデータと、当該画素の状態の変化を表すデータに関する時刻情報及び画素のアドレスとが、予め設定された保存形式で記憶される。
データ格納制御部22は、空間データ取得部23aによって取得された画素の状態の変化を表すデータ及びデータ受信部21によって受信された画素の状態の変化を表すデータを、予め設定された保存形式のデータとして記憶部20Bに記憶させる。
これにより、画素毎に変化が検出され次第、非同期的に画素の状態を表すデータが出力されることから、撮像された1フレーム毎のデジタル画像を出力して物体検出等のアプリケーションに用いる従来の技術に比べ、画角における被写体の変化を少ないデータ量で高速に検出することが可能となる。
また、撮像装置1は、所定の保存形式で格納された画素データを読み出し、各種アプリケーションに用いることができる。
また、仮想的に被写体の状態を検出したデータと、撮像により検出した画素の状態の変化を表すデータとを相互に補間させて、より適切な処理を行うことができる。
したがって、撮像装置1によれば、デジタル画像を用いた情報処理技術において、より適切な機能を実現することが可能となる。
【0097】
空間データ取得部23aは、取得した画素の状態の変化を表すデータ及びデータ受信部21によって受信された画素の状態の変化を表すデータの少なくともいずれかに基づいて、3次元空間を表す空間データを構築する。
これにより、仮想的に被写体の状態を検出したデータと、撮像により検出した画素の状態の変化を表すデータとを相互に補間させて、3次元空間のデータをより高精度なものとすることができる。
【0098】
また、撮像装置1は、シミュレーション処理部23bを備える。
シミュレーション処理部23bは、空間データ取得部23aによって構築された空間データに基づいて、移動可能な装置から視認される被写体の変化を検出し、移動を制御するためのシミュレーションを行う。
これにより、移動可能な装置を制御するための種々のアルゴリズムを設定し、シミュレーション結果を取得することができる。
【0099】
また、撮像装置1は、解析処理部23cを備える。
解析処理部23cは、シミュレーション処理部23bによるシミュレーションの結果に基づいて、移動を制御するためのアルゴリズムに関する学習を行う。
これにより、構築された空間データを用いてシミュレーションを繰り返し行うことで、より適切なアルゴリズムを生成することができる。
【0100】
解析処理部23cは、空間データ取得部23aによって取得された画素の状態の変化を表すデータ及びデータ受信部21によって受信された画素の状態の変化を表すデータを、当該データについて撮像素子の出力の変化を判定するために用いられた閾値に基づいて正規化し、画素の変化を表示する。
これにより、取得された画素の状態の変化を客観的に解析可能な形態で表示することができる。
【0101】
なお、本発明は、上述の実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
即ち、本発明は、撮像機能を備える各種電子機器、あるいは、情報処理機能を備える各種電子機器に対して適用することができる。
【0102】
上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。
換言すると、
図1及び
図10の構成、
図11の機能的構成は例示に過ぎず、特に限定されない。即ち、上述した一連の処理を全体として実行できる機能が撮像装置1に備えられていれば足り、この機能を実現するためにどのような機能ブロックを用いるのかは特に限定されない。
また、1つの機能ブロックは、ハードウェア単体で構成してもよいし、ソフトウェア単体で構成してもよいし、それらの組み合わせで構成してもよい。
本実施形態における機能的構成は、演算処理を実行するプロセッサによって実現され、本実施形態に用いることが可能なプロセッサには、シングルプロセッサ、マルチプロセッサ及びマルチコアプロセッサ等の各種処理装置単体によって構成されるものの他、これら各種処理装置と、ASIC(Application Specific Integrated Circuit)やFPGA(Field‐Programmable Gate Array)等の処理回路とが組み合わせられたものを含む。
【0103】
一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、コンピュータ等にネットワークや記録媒体からインストールされる。
コンピュータは、専用のハードウェアに組み込まれているコンピュータであってもよい。また、コンピュータは、各種のプログラムをインストールすることで、各種の機能を実行することが可能なコンピュータ、例えば汎用のパーソナルコンピュータであってもよい。
【0104】
このようなプログラムを含む記録媒体は、ユーザにプログラムを提供するために装置本体とは別に配布されるリムーバブルメディアにより構成されるだけでなく、装置本体に予め組み込まれた状態でユーザに提供される記録媒体等で構成される。リムーバブルメディアは、例えば、磁気ディスク(フロッピディスクを含む)、光ディスク、または光磁気ディスク等により構成される。光ディスクは、例えば、CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk),Blu-ray(登録商標) Disc(ブルーレイディスク)等により構成される。光磁気ディスクは、MD(Mini-Disk)等により構成される。また、装置本体に予め組み込まれた状態でユーザに提供される記録媒体は、例えば、プログラムが記録されているROM(Read Only Memory)や、記憶部20Bに含まれる半導体メモリ等で構成される。
【0105】
以上、本発明のいくつかの実施形態について説明したが、これらの実施形態は、例示に過ぎず、本発明の技術的範囲を限定するものではない。本発明はその他の様々な実施形態を取ることが可能であり、さらに、本発明の要旨を逸脱しない範囲で、省略や置換等種々の変更を行うことができる。これら実施形態やその変形は、本明細書等に記載された発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【0106】
1 撮像装置、10,100 撮像ユニット、11,111 レンズ、12,112 撮像デバイス、20 情報処理ユニット、20A プロセッサ、20B 記憶部、21 データ受信部、22 データ格納制御部、23 処理部、23a 空間データ取得部、23b シミュレーション処理部、23c 解析処理部、24 出力データ記憶部、24a 増加時用フレームメモリ、24b 減少時用フレームメモリ、25 ライブラリ記憶部、26 3Dモデルデータベース、30 センサユニット