(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-15
(45)【発行日】2024-10-23
(54)【発明の名称】画像復元装置、画像復元方法、画像復元プログラム
(51)【国際特許分類】
G06T 7/215 20170101AFI20241016BHJP
【FI】
G06T7/215
(21)【出願番号】P 2020180824
(22)【出願日】2020-10-28
【審査請求日】2023-07-11
(31)【優先権主張番号】P 2019207197
(32)【優先日】2019-11-15
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】502324066
【氏名又は名称】株式会社デンソーアイティーラボラトリ
(73)【特許権者】
【識別番号】501428545
【氏名又は名称】株式会社デンソーウェーブ
(74)【代理人】
【氏名又は名称】矢作 和行
(74)【代理人】
【識別番号】100121991
【氏名又は名称】野々部 泰平
(74)【代理人】
【識別番号】100145595
【氏名又は名称】久保 貴則
(72)【発明者】
【氏名】関川 雄介
(72)【発明者】
【氏名】時 洋
【審査官】▲広▼島 明芳
(56)【参考文献】
【文献】国際公開第2019/067731(WO,A1)
【文献】長田 惇,外4名,イベントカメラを用いた照明条件やぶれに頑健なQRコード認識,SSII2019 [USB] ,日本,画像センシング技術研究会,2019年06月12日
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00 - 7/90
(57)【特許請求の範囲】
【請求項1】
撮影期間内に相対運動する白黒被写体(4)を撮影したイベントカメラ(2)から、少なくとも一つのカメラ画素において輝度が変化したイベントの発火時刻(t)と関連付けて出力される、前記イベントの画素座標(x,y)及び極性値(p)に基づきバイナリ画像(B)を復元する画像復元装置(3)であって、
前記白黒被写体は、所定幅の白色セルと所定幅の黒色セルとを所定位置に配置した前記バイナリ画像であって、前記白色セルと前記黒色セルとの境界部にセルのエッジ部を有しており、
一対の前記極性値及びそれらの中間値のうち、いずれかの値を前記画素座標毎の輝度値として保存する輝度配列リスト(L)において、各前記画素座標の輝度値を
前記白色セルより明度が暗く前記黒色セルより明度が明るく前記白色セルの極性値とも前記黒色セルの極性値とも異なる前記中間値に初期化する初期化部(100)と、
前記初期化部により初期化された前記輝度配列リストを、前記イベント毎の前記画素座標及び前記極性値に応じて更新する更新部(120)と、
前記更新部により前記撮影期間に亘って更新された前記輝度配列リストを、前記バイナリ画像として出力する出力部(160)とを、備え、
前記更新部による更新は、前記輝度配列リストにおいて前記イベントの発火した前記画素座標である発火座標の輝度値を、前記イベントの前記極性値により上書き演算する一方、前記輝度配列リストにおいて前記発火座標を除いた前記画素座標である非発火座標の輝度値を、保持
し、前記中間値から前記極性値への変化に基づいて前記セルのエッジ部を検知して、検知した前記セルのエッジ部に基づいて前記バイナリ画像を出力する画像復元装置。
【請求項2】
撮影期間内に相対運動する白黒被写体(4)を撮影したイベントカメラ(2)から、少なくとも一つのカメラ画素において輝度が変化したイベントの発火時刻(t)と関連付けて出力される、前記イベントの画素座標(x,y)及び極性値(p)に基づきバイナリ画像(B)を復元する画像復元装置(3)であって、
一対の前記極性値及びそれらの中間値のうち、いずれかの値を前記画素座標毎の輝度値として保存する輝度配列リスト(L)において、各前記画素座標の輝度値を前記中間値に初期化する初期化部(100)と、
前記初期化部により初期化された前記輝度配列リストを、前記イベント毎の前記画素座標及び前記極性値に応じて更新する更新部(120)と、
前記更新部により前記撮影期間に亘って更新された前記輝度配列リストを、前記バイナリ画像として出力する出力部(160)とを、備え、
前記更新部による更新は、前記輝度配列リストにおいて前記イベントの発火した前記画素座標である発火座標の輝度値を、前記イベントの前記極性値により上書き演算する一方、前記輝度配列リストにおいて前記発火座標を除いた前記画素座標である非発火座標の輝度値を、保持し、
前記更新部により前記撮影期間に亘って更新された前記輝度配列リストにおいて、前記中間値が保存された前記画素座標である中間座標の輝度値を、補正する補正部(140)を、さらに備え、
前記補正部による補正は、前記イベントカメラに対する前記白黒被写体の相対運動方向(M)を探索方向(S)と設定し、前記輝度配列リストにおいていずれかの前記極性値が保存された前記画素座標のうち、前記中間座標から前記探索方向に直近となる注目座標を探索し、前記輝度配列リストにおける前記中間座標の輝度値に前記注目座標の前記極性値を上書き演算す
る画像復元装置。
【請求項3】
前記更新部による更新は、前記輝度配列リストにおいて前記発火座標から切り替わった前記非発火座標の輝度値を、当該切り替わり前の座標の前記発火時刻から許容時間範囲内では保持する一方、当該切り替わり前の座標の前記発火時刻から前記許容時間範囲外では前記中間値により上書き演算する請求項2に記載の画像復元装置。
【請求項4】
前記更新部による更新は、前記発火座標及び前記極性値の同じ前記イベントが複数回連続して発火するまで、スキップされる請求項1~3のいずれか一項に記載の画像復元装置。
【請求項5】
前記イベントカメラに対する相対運動により前記撮影期間内に発生するオプティカルフローの方向が、前記イベントカメラによる被撮影面(40)の全域において同一となる前記白黒被写体の、前記バイナリ画像を復元する請求項1~4のいずれか一項に記載の画像復元装置。
【請求項6】
前記イベントカメラに対して前記撮影期間内に相対運動する二次元コードを前記白黒被写体として、前記バイナリ画像を復元する請求項1~5のいずれか一項に記載の画像復元装置。
【請求項7】
撮影期間内に相対運動する白黒被写体(4)を撮影したイベントカメラ(2)から、少なくとも一つのカメラ画素において輝度が変化したイベントの発火時刻(t)と関連付けて出力される、前記イベントの画素座標(x,y)及び極性値(p)に基づきバイナリ画像(B)を復元するために、プロセッサ(12)により実行される画像復元方法であって、
前記白黒被写体は、所定幅の白色セルと所定幅の黒色セルとを所定位置に配置した前記バイナリ画像であって、前記白色セルと前記黒色セルとの境界部にセルのエッジ部を有しており、
一対の前記極性値及びそれらの中間値のうち、いずれかの値を前記画素座標毎の輝度値として保存する輝度配列リスト(L)において、各前記画素座標の輝度値を
前記白色セルより明度が暗く前記黒色セルより明度が明るく前記白色セルの極性値とも前記黒色セルの極性値とも異なる前記中間値に初期化する初期化プロセス(S101)と、
前記初期化プロセスにより初期化された前記輝度配列リストを、前記イベント毎の前記画素座標及び前記極性値に応じて更新する更新プロセス(S102,S202)と、
前記更新プロセスにより前記撮影期間に亘って更新された前記輝度配列リストを、前記バイナリ画像として出力する出力プロセス(S104)とを、含み、
前記更新プロセスによる更新は、前記輝度配列リストにおいて前記イベントの発火した前記画素座標である発火座標の輝度値を、前記イベントの前記極性値により上書き演算する一方、前記輝度配列リストにおいて前記発火座標を除いた前記画素座標である非発火座標の輝度値を、保持
し、前記中間値から前記極性値への変化に基づいて前記セルのエッジ部を検知して、検知した前記セルのエッジ部に基づいて前記バイナリ画像を出力する画像復元方法。
【請求項8】
撮影期間内に相対運動する白黒被写体(4)を撮影したイベントカメラ(2)から、少なくとも一つのカメラ画素において輝度が変化したイベントの発火時刻(t)と関連付けて出力される、前記イベントの画素座標(x,y)及び極性値(p)に基づきバイナリ画像(B)を復元するために、プロセッサ(12)により実行される画像復元方法であって、
一対の前記極性値及びそれらの中間値のうち、いずれかの値を前記画素座標毎の輝度値として保存する輝度配列リスト(L)において、各前記画素座標の輝度値を前記中間値に初期化する初期化プロセス(S101)と、
前記初期化プロセスにより初期化された前記輝度配列リストを、前記イベント毎の前記画素座標及び前記極性値に応じて更新する更新プロセス(S102,S202)と、
前記更新プロセスにより前記撮影期間に亘って更新された前記輝度配列リストを、前記バイナリ画像として出力する出力プロセス(S104)とを、含み、
前記更新プロセスによる更新は、前記輝度配列リストにおいて前記イベントの発火した前記画素座標である発火座標の輝度値を、前記イベントの前記極性値により上書き演算する一方、前記輝度配列リストにおいて前記発火座標を除いた前記画素座標である非発火座標の輝度値を、保持し、
前記更新プロセスにより前記撮影期間に亘って更新された前記輝度配列リストにおいて、前記中間値が保存された前記画素座標である中間座標の輝度値を、補正する補正プロセス(S103)を、さらに含み、
前記補正プロセスによる補正は、前記イベントカメラに対する前記白黒被写体の相対運動方向(M)を探索方向(S)と設定し、前記輝度配列リストにおいていずれかの前記極性値が保存された前記画素座標のうち、前記中間座標から前記探索方向に直近となる注目座標を探索し、前記輝度配列リストにおける前記中間座標の輝度値に前記注目座標の前記極性値を上書き演算す
る画像復元方法。
【請求項9】
前記更新プロセスによる更新は、前記輝度配列リストにおいて前記発火座標から切り替わった前記非発火座標の輝度値を、当該切り替わり前の座標の前記発火時刻から許容時間範囲内では保持する一方、当該切り替わり前の座標の前記発火時刻から前記許容時間範囲外では前記中間値により上書き演算する請求項8に記載の画像復元方法。
【請求項10】
前記更新プロセス(S202)による更新は、前記発火座標及び前記極性値の同じ前記イベントが複数回連続して発火するまで、スキップされる請求項7~9のいずれか一項に記載の画像復元方法。
【請求項11】
前記イベントカメラに対する相対運動により前記撮影期間内に発生するオプティカルフローの方向が、前記イベントカメラによる被撮影面(40)の全域において同一となる前記白黒被写体の、前記バイナリ画像を復元するために、前記プロセッサにより実行される請求項7~10のいずれか一項に記載の画像復元方法。
【請求項12】
前記イベントカメラに対して前記撮影期間内に相対運動する二次元コードを前記白黒被写体として、前記バイナリ画像を復元するために、前記プロセッサにより実行される請求項7~11のいずれか一項に記載の画像復元方法。
【請求項13】
撮影期間内に相対運動する白黒被写体(4)を撮影したイベントカメラ(2)から、少なくとも一つのカメラ画素において輝度が変化したイベントの発火時刻(t)と関連付けて出力される、前記イベントの画素座標(x,y)及び極性値(p)に基づきバイナリ画像(B)を復元するために、記憶媒体(10)に格納され、プロセッサ(12)に実行させる命令を含む画像復元プログラムであって、
前記白黒被写体は、所定幅の白色セルと所定幅の黒色セルとを所定位置に配置した前記バイナリ画像であって、前記白色セルと前記黒色セルとの境界部にセルのエッジ部を有しており、
前記命令は、
一対の前記極性値及びそれらの中間値のうち、いずれかの値を前記画素座標毎の輝度値として保存する輝度配列リスト(L)において、各前記画素座標の輝度値を
前記白色セルより明度が暗く前記黒色セルより明度が明るく前記白色セルの極性値とも前記黒色セルの極性値とも異なる前記中間値に初期化させる初期化プロセス(S101)と、
前記初期化プロセスにより初期化された前記輝度配列リストを、前記イベント毎の前記画素座標及び前記極性値に応じて更新させる更新プロセス(S102,S202)と、
前記更新プロセスにより前記撮影期間に亘って更新された前記輝度配列リストを、前記バイナリ画像として出力させる出力プロセス(S104)とを、含み、
前記更新プロセスによる更新は、前記輝度配列リストにおいて前記イベントの発火した前記画素座標である発火座標の輝度値を、前記イベントの前記極性値により上書き演算させる一方、前記輝度配列リストにおいて前記発火座標を除いた前記画素座標である非発火座標の輝度値を、保持させ
、前記中間値から前記極性値への変化に基づいて前記セルのエッジ部を検知させて、検知された前記セルのエッジ部に基づいて前記バイナリ画像を出力させる画像復元プログラム。
【請求項14】
撮影期間内に相対運動する白黒被写体(4)を撮影したイベントカメラ(2)から、少なくとも一つのカメラ画素において輝度が変化したイベントの発火時刻(t)と関連付けて出力される、前記イベントの画素座標(x,y)及び極性値(p)に基づきバイナリ画像(B)を復元するために、記憶媒体(10)に格納され、プロセッサ(12)に実行させる命令を含む画像復元プログラムであって、
前記命令は、
一対の前記極性値及びそれらの中間値のうち、いずれかの値を前記画素座標毎の輝度値として保存する輝度配列リスト(L)において、各前記画素座標の輝度値を前記中間値に初期化させる初期化プロセス(S101)と、
前記初期化プロセスにより初期化された前記輝度配列リストを、前記イベント毎の前記画素座標及び前記極性値に応じて更新させる更新プロセス(S102,S202)と、
前記更新プロセスにより前記撮影期間に亘って更新された前記輝度配列リストを、前記バイナリ画像として出力させる出力プロセス(S104)とを、含み、
前記更新プロセスによる更新は、前記輝度配列リストにおいて前記イベントの発火した前記画素座標である発火座標の輝度値を、前記イベントの前記極性値により上書き演算させる一方、前記輝度配列リストにおいて前記発火座標を除いた前記画素座標である非発火座標の輝度値を、保持させ、
前記更新プロセスにより前記撮影期間に亘って更新された前記輝度配列リストにおいて、前記中間値が保存された前記画素座標である中間座標の輝度値を、補正させる補正プロセス(S103)を、さらに含み、
前記補正プロセスによる補正は、前記イベントカメラに対する前記白黒被写体の相対運動方向(M)を探索方向(S)と設定させ、前記輝度配列リストにおいていずれかの前記極性値が保存された前記画素座標のうち、前記中間座標から前記探索方向に直近となる注目座標を探索させ、前記輝度配列リストにおける前記中間座標の輝度値に前記注目座標の前記極性値を上書き演算させ
る画像復元プログラム。
【請求項15】
前記更新プロセスによる更新は、前記輝度配列リストにおいて前記発火座標から切り替わった前記非発火座標の輝度値を、当該切り替わり前の座標の前記発火時刻から許容時間範囲内では保持させる一方、当該切り替わり前の座標の前記発火時刻から前記許容時間範囲外では前記中間値により上書き演算させる請求項14に記載の画像復元プログラム。
【請求項16】
前記更新プロセス(S202)による更新は、前記発火座標及び前記極性値の同じ前記イベントが複数回連続して発火するまで、スキップされる請求項13~15のいずれか一項に記載の画像復元プログラム。
【請求項17】
前記イベントカメラに対する相対運動により前記撮影期間内に発生するオプティカルフローの方向が、前記イベントカメラによる被撮影面(40)の全域において同一となる前記白黒被写体の、前記バイナリ画像を復元するために、前記記憶媒体に格納される請求項13~16のいずれか一項に記載の画像復元プログラム。
【請求項18】
前記イベントカメラに対して前記撮影期間内に相対運動する二次元コードを前記白黒被写体として、前記バイナリ画像を復元するために、前記記憶媒体に格納される請求項13~17のいずれか一項に記載の画像復元プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、イベントカメラからの出力に基づきバイナリ画像を復元する、画像復元技術に関する。
【背景技術】
【0002】
人の知覚システムを模倣したカメラとしては、時間分解能に優れたイベントカメラが、知られている。被写体の撮影によりイベントカメラは、少なくとも一つのカメラ画素において輝度が変化したイベントの発火時刻と関連付けて、当該イベントの画素座標及び極性値を出力する。
【0003】
こうしたイベントカメラの出力に基づき輝度画像を復元する技術は、例えば非特許文献1等に開示されている。ここで非特許文献1の開示技術では、イベントカメラに対して相対運動する被写体のオプティカルフロー及び輝度を、コスト関数の最適化により同時に推定することで、輝度画像を復元している。
【先行技術文献】
【非特許文献】
【0004】
【文献】P. Bardow, A. J. Davison, and S. Leutenegger. Simultaneous Optical Flow and Intensity Estimation From an Event Camera. The IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 884-892, 2016.
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、非特許文献1の開示技術がオプティカルフロー及び輝度を同時推定する対象は、被写体の被撮影面のうち相対運動によってカメラ画素が輝度変化を感知可能なエッジ部分に、限られる。そのため、被写体の被撮影面全域にまで輝度推定を拡張して輝度画像を復元するには、演算処理が複雑となるため、演算負荷が増大してしまう。
【0006】
本開示の課題は、画像復元に必要な演算負荷を低減する画像復元装置を、提供することにある。本開示の別の課題は、画像復元に必要な演算負荷を低減する画像復元方法を、提供することにある。本開示のさらに別の課題は、画像復元に必要な演算負荷を低減する画像復元プログラムを、提供することにある。
【課題を解決するための手段】
【0007】
以下、課題を解決するための本開示の技術的手段について、説明する。なお、特許請求の範囲及び本欄に記載された括弧内の符号は、後に詳述する実施形態に記載された具体的手段との対応関係を示すものであり、本開示の技術的範囲を限定するものではない。
【0008】
本開示の第1態様は、
撮影期間内に相対運動する白黒被写体(4)を撮影したイベントカメラ(2)から、少なくとも一つのカメラ画素において輝度が変化したイベントの発火時刻(t)と関連付けて出力される、イベントの画素座標(x,y)及び極性値(p)に基づきバイナリ画像(B)を復元する画像復元装置(3)であって、
白黒被写体は、所定幅の白色セルと所定幅の黒色セルとを所定位置に配置したバイナリ画像であって、白色セルと黒色セルとの境界部にセルのエッジ部を有しており、
一対の極性値及びそれらの中間値のうち、いずれかの値を画素座標毎の輝度値として保存する輝度配列リスト(L)において、各画素座標の輝度値を白色セルより明度が暗く黒色セルより明度が明るく白色セルの極性値とも黒色セルの極性値とも異なる中間値に初期化する初期化部(100)と、
初期化部により初期化された輝度配列リストを、イベント毎の画素座標及び極性値に応じて更新する更新部(120)と、
更新部により撮影期間に亘って更新された輝度配列リストを、バイナリ画像として出力する出力部(160)とを、備え、
更新部による更新は、輝度配列リストにおいてイベントの発火した画素座標である発火座標の輝度値を、イベントの極性値により上書き演算する一方、輝度配列リストにおいて発火座標を除いた画素座標である非発火座標の輝度値を、保持し、中間値から極性値への変化に基づいてセルのエッジ部を検知して、検知したセルのエッジ部に基づいて前記バイナリ画像を出力する。
本開示の第2態様は、
撮影期間内に相対運動する白黒被写体(4)を撮影したイベントカメラ(2)から、少なくとも一つのカメラ画素において輝度が変化したイベントの発火時刻(t)と関連付けて出力される、イベントの画素座標(x,y)及び極性値(p)に基づきバイナリ画像(B)を復元する画像復元装置(3)であって、
一対の極性値及びそれらの中間値のうち、いずれかの値を画素座標毎の輝度値として保存する輝度配列リスト(L)において、各画素座標の輝度値を中間値に初期化する初期化部(100)と、
初期化部により初期化された輝度配列リストを、イベント毎の画素座標及び極性値に応じて更新する更新部(120)と、
更新部により撮影期間に亘って更新された輝度配列リストを、バイナリ画像として出力する出力部(160)とを、備え、
更新部による更新は、輝度配列リストにおいてイベントの発火した画素座標である発火座標の輝度値を、イベントの極性値により上書き演算する一方、輝度配列リストにおいて発火座標を除いた画素座標である非発火座標の輝度値を、保持し、
更新部により撮影期間に亘って更新された輝度配列リストにおいて、中間値が保存された画素座標である中間座標の輝度値を、補正する補正部(140)を、さらに備え、
補正部による補正は、イベントカメラに対する白黒被写体の相対運動方向(M)を探索方向(S)と設定し、輝度配列リストにおいていずれかの極性値が保存された画素座標のうち、中間座標から探索方向に直近となる注目座標を探索し、輝度配列リストにおける中間座標の輝度値に注目座標の極性値を上書き演算する。
【0009】
本開示の第3態様は、
撮影期間内に相対運動する白黒被写体(4)を撮影したイベントカメラ(2)から、少なくとも一つのカメラ画素において輝度が変化したイベントの発火時刻(t)と関連付けて出力される、イベントの画素座標(x,y)及び極性値(p)に基づきバイナリ画像(B)を復元するために、プロセッサ(12)により実行される画像復元方法であって、
白黒被写体は、所定幅の白色セルと所定幅の黒色セルとを所定位置に配置したバイナリ画像であって、白色セルと黒色セルとの境界部にセルのエッジ部を有しており、
一対の極性値及びそれらの中間値のうち、いずれかの値を画素座標毎の輝度値として保存する輝度配列リスト(L)において、各画素座標の輝度値を白色セルより明度が暗く黒色セルより明度が明るく白色セルの極性値とも黒色セルの極性値とも異なる中間値に初期化する初期化プロセス(S101)と、
初期化プロセスにより初期化された輝度配列リストを、イベント毎の画素座標及び極性値に応じて更新する更新プロセス(S102,S202)と、
更新部プロセスにより撮影期間に亘って更新された輝度配列リストを、バイナリ画像として出力する出力プロセス(S104)とを、含み、
更新プロセスによる更新は、輝度配列リストにおいてイベントの発火した画素座標である発火座標の輝度値を、イベントの極性値により上書き演算する一方、輝度配列リストにおいて発火座標を除いた画素座標である非発火座標の輝度値を、保持し、中間値から極性値への変化に基づいてセルのエッジ部を検知して、検知したセルのエッジ部に基づいてバイナリ画像を出力する。
本開示の第4態様は、
撮影期間内に相対運動する白黒被写体(4)を撮影したイベントカメラ(2)から、少なくとも一つのカメラ画素において輝度が変化したイベントの発火時刻(t)と関連付けて出力される、イベントの画素座標(x,y)及び極性値(p)に基づきバイナリ画像(B)を復元するために、プロセッサ(12)により実行される画像復元方法であって、
一対の極性値及びそれらの中間値のうち、いずれかの値を画素座標毎の輝度値として保存する輝度配列リスト(L)において、各画素座標の輝度値を中間値に初期化する初期化プロセス(S101)と、
初期化プロセスにより初期化された輝度配列リストを、イベント毎の画素座標及び極性値に応じて更新する更新プロセス(S102,S202)と、
更新部プロセスにより撮影期間に亘って更新された輝度配列リストを、バイナリ画像として出力する出力プロセス(S104)とを、含み、
更新プロセスによる更新は、輝度配列リストにおいてイベントの発火した画素座標である発火座標の輝度値を、イベントの極性値により上書き演算する一方、輝度配列リストにおいて発火座標を除いた画素座標である非発火座標の輝度値を、保持し、
更新プロセスにより撮影期間に亘って更新された輝度配列リストにおいて、中間値が保存された画素座標である中間座標の輝度値を、補正する補正プロセス(S103)を、さらに含み、
補正プロセスによる補正は、イベントカメラに対する白黒被写体の相対運動方向(M)を探索方向(S)と設定し、輝度配列リストにおいていずれかの極性値が保存された画素座標のうち、中間座標から探索方向に直近となる注目座標を探索し、輝度配列リストにおける中間座標の輝度値に注目座標の極性値を上書き演算する。
【0010】
本開示の第5態様は、
撮影期間内に相対運動する白黒被写体(4)を撮影したイベントカメラ(2)から、少なくとも一つのカメラ画素において輝度が変化したイベントの発火時刻(t)と関連付けて出力される、イベントの画素座標(x,y)及び極性値(p)に基づきバイナリ画像(B)を復元するために、記憶媒体(10)に格納され、プロセッサ(12)に実行させる命令を含む画像復元プログラムであって、
白黒被写体は、所定幅の白色セルと所定幅の黒色セルとを所定位置に配置したバイナリ画像であって、白色セルと黒色セルとの境界部にセルのエッジ部を有しており、
命令は、
一対の極性値及びそれらの中間値のうち、いずれかの値を画素座標毎の輝度値として保存する輝度配列リスト(L)において、各画素座標の輝度値を白色セルより明度が暗く黒色セルより明度が明るく白色セルの極性値とも黒色セルの極性値とも異なる中間値に初期化させる初期化プロセス(S101)と、
初期化プロセスにより初期化された輝度配列リストを、イベント毎の画素座標及び極性値に応じて更新させる更新プロセス(S102,S202)と、
更新部プロセスにより撮影期間に亘って更新された輝度配列リストを、バイナリ画像として出力させる出力プロセス(S104)とを、含み、
更新プロセスによる更新は、輝度配列リストにおいてイベントの発火した画素座標である発火座標の輝度値を、イベントの極性値により上書き演算する一方、輝度配列リストにおいて発火座標を除いた画素座標である非発火座標の輝度値を、保持させ、中間値から極性値への変化に基づいてセルのエッジ部を検知させて、検知されたセルのエッジ部に基づいてバイナリ画像を出力させる。
本開示の第6態様は、
撮影期間内に相対運動する白黒被写体(4)を撮影したイベントカメラ(2)から、少なくとも一つのカメラ画素において輝度が変化したイベントの発火時刻(t)と関連付けて出力される、イベントの画素座標(x,y)及び極性値(p)に基づきバイナリ画像(B)を復元するために、記憶媒体(10)に格納され、プロセッサ(12)に実行させる命令を含む画像復元プログラムであって、
命令は、
一対の極性値及びそれらの中間値のうち、いずれかの値を画素座標毎の輝度値として保存する輝度配列リスト(L)において、各画素座標の輝度値を中間値に初期化させる初期化プロセス(S101)と、
初期化プロセスにより初期化された輝度配列リストを、イベント毎の画素座標及び極性値に応じて更新させる更新プロセス(S102,S202)と、
更新部プロセスにより撮影期間に亘って更新された輝度配列リストを、バイナリ画像として出力させる出力プロセス(S104)とを、含み、
更新プロセスによる更新は、輝度配列リストにおいてイベントの発火した画素座標である発火座標の輝度値を、イベントの極性値により上書き演算する一方、輝度配列リストにおいて発火座標を除いた画素座標である非発火座標の輝度値を、保持させ、
更新プロセスにより撮影期間に亘って更新された輝度配列リストにおいて、中間値が保存された画素座標である中間座標の輝度値を、補正させる補正プロセス(S103)を、さらに含み、
補正プロセスによる補正は、イベントカメラに対する白黒被写体の相対運動方向(M)を探索方向(S)と設定させ、輝度配列リストにおいていずれかの極性値が保存された画素座標のうち、中間座標から探索方向に直近となる注目座標を探索させ、輝度配列リストにおける中間座標の輝度値に注目座標の極性値を上書き演算させる。
【0011】
これら第1~第6態様によると、各画素座標の輝度値が中間値に初期化された輝度配列リストに対して、イベント毎の画素座標及び極性値に応じた更新は、発火座標の輝度値をイベントの極性値により上書き演算する。このとき輝度値に上書き演算される極性値は、白黒被写体の被撮影面のうち相対移動によってカメラ画素にイベントを発火させる部分の実輝度を、表し得る。また第1~第6態様によると、初期化された輝度配列リストに対する更新は、そうした上書き演算の一方で、発火座標を除く非発火座標の輝度値を保持する。その結果、極性値の上書き演算後に発火座標から切り替わった非発火座標に保持される当該極性値は、被撮影面のうち相対移動によってもイベントを発火させない部分の実輝度を、表し得る。
【0012】
これらのことから、第1~第6態様により撮影期間に亘って更新された輝度配列リストは、被撮影面に対応する各画素座標に、それぞれ実輝度に応じた極性値を保存したバイナリ画像として、出力され得る。以上によれば、上書き演算という簡易な演算処理によってバイナリ画像を復元することができるので、画像復元に必要な演算負荷を低減することが可能となる。
【図面の簡単な説明】
【0013】
【
図1】第1実施形態による画像システムの全体構成を示すブロック図である。
【
図2】第2実施形態による画像システムにおいて画像復元装置の詳細構成を示すブロック図である。
【
図3】第1実施形態によるイベントカメラ及び白黒被写体の相対運動関係を模式的に説明するための斜視図である。
【
図4】第1実施形態による被写体を示す平面図である。
【
図5】第1実施形態によるイベントデータを説明するための模式図である。
【
図6】第1実施形態による輝度配列リストを説明するための模式図である。
【
図7】第1実施形態による初期化処理を説明するための模式図である。
【
図8】第1実施形態による更新処理を説明するための模式図である。
【
図9】第1実施形態による第1サブ補正処理を説明するための模式図である。
【
図10】第1実施形態による第2サブ補正処理を説明するための模式図である。
【
図11】第1実施形態によるバイナリ画像を説明するための模式図である。
【
図12】第1実施形態による画像復元方法を示すフローチャートである。
【
図13】第2実施形態による画像復元方法を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下、複数の実施形態を図面に基づいて説明する。なお、各実施形態において対応する構成要素には同一の符号を付すことで、重複する説明を省略する場合がある。各実施形態において構成の一部分のみを説明している場合、当該構成の他の部分については、先行して説明した他の実施形態の構成を適用することができる。また、各実施形態の説明において明示している構成の組み合わせばかりではなく、特に組み合わせに支障が生じなければ、明示していなくても複数の実施形態の構成同士を部分的に組み合わせることができる。
【0015】
(第1実施形態)
図1,2に示すように第1実施形態による画像システム1は、イベントカメラ2及び画像復元装置3を含んで構成されている。画像システム1では、二階調の白黒被写体4を撮影したイベントカメラ2からの出力に基づき、二階調輝度画像としてのバイナリ画像Bが画像復元装置3により復元される。この画像復元装置3により復元されるバイナリ画像Bでは、白黒被写体4のうち黒色部分を表す輝度値(即ち、階調値)が「0」であり、同被写体4のうち白色部分を表す輝度値が「1」であるとする。
【0016】
イベントカメラ2は、撮影対象となる白黒被写体4との間において特定の相対運動関係の成立する状態に、設置される。特定の相対運動関係とは、イベントカメラ2に対する相対運動により撮影期間内に発生するオプティカルフローの方向が、白黒被写体4のうちイベントカメラ2による被撮影面40の全域において同一となる所謂、並進運動関係である。この並進運動関係の一例は、位置固定されたイベントカメラ2に対して平面状の白黒被写体4が、カメラ軸と直交する一方向Mのみへ相対的に直線運動する、例えば
図3の関係となる。そこで平面状の白黒被写体4として、
図4に示すように白と黒の二階調で描画された二次元コードが、例えば工場製品に印刷又は貼着されてコンベア移動等により直線運動しつつ、位置固定のイベントカメラ2により撮影される並進運動関係が、本実施形態では想定される。なお、
図4に示す二次元コードは、QRコード(デンソーウェーブの登録商標)であるが、例えばバーコード等であってもよい。
【0017】
図3に示すようにイベントカメラ2は、所定の撮影期間内に相対運動する白黒被写体4の被撮影面40を、当該撮影期間に亘ってカメラ画角内に収める。イベントカメラ2は、水平方向と垂直方向とに二次元配列された複数のカメラ画素により、カメラ画角内からの入射光を感知する。イベントカメラ2では、カメラ画素毎に感知される入射光の輝度変化が、撮影期間において時系列に監視される。その結果、少なくとも一つのカメラ画素における増大方向又は減少方向への輝度変化量がlogオーダーでの閾値以上となった場合には、イベントが発火したとして、イベントデータDがイベントカメラ2から出力される。
図5に示すようにイベントデータDは、イベントの発火時刻tと関連付けて、同イベントの画素座標x,y及び極性値pを出力するためのデータセットとして、生成される。なお、
図5及び後述の
図6~8では、縦横における各座標x,yの最大値がそれぞれX,Yにより表されている。
【0018】
画素座標x,yは、閾値以上に輝度変化したカメラ画素の縦横二次元位置を、座標値により規定する。極性値pは、閾値以上に輝度変化した増減の方向を、二値により規定する。特に本実施形態では、黒色から白色への輝度増大方向を表した極性値pが「1」に規定される一方、白色から黒色への減少方向を表した極性値pが「0」に規定される。このようにイベントデータDでは、イベントの発火した画素座標x,yにおける輝度変化の増減方向が、一対の極性値pにより表される。
【0019】
図1,2に示す画像復元装置3は、例えばLAN(Local Area Network)、ワイヤハーネス及び内部バス等のうち、少なくとも一種類を介して、イベントカメラ2に接続される。
図1に示すように画像復元装置3は、メモリ10及びプロセッサ12を、少なくとも一つずつ含んで構成される専用のコンピュータである。メモリ10は、コンピュータにより読み取り可能なプログラム及びデータ等を非一時的に格納又は記憶する、例えば半導体メモリ、磁気媒体及び光学媒体等のうち、少なくとも一種類の非遷移的実体的記憶媒体(non-transitory tangible storage medium)である。プロセッサ12は、例えばCPU(Central Processing Unit)、GPU(Graphics Processing Unit)及びRISC(Reduced Instruction Set Computer)-CPU等のうち、少なくとも一種類をコアとして含む。
【0020】
プロセッサ12は、メモリ10に格納された画像復元プログラムに含まれる複数の命令を、実行する。これにより画像復元装置3は、イベントカメラ2から出力されるイベントデータDに基づきバイナリ画像Bを復元するための機能ブロックを、複数構築する。このように画像復元装置3では、バイナリ画像Bを復元するためにメモリ10に格納された画像復元プログラムが複数の命令をプロセッサ12に実行させることで、複数の機能ブロックが構築される。画像復元装置3により構築される複数の機能ブロックには、
図2に示すように初期化ブロック100、更新ブロック120、補正ブロック140及び出力ブロック160が、含まれる。
【0021】
初期化ブロック100は、メモリ10における所定のデータ格納領域に、輝度配列リストLを準備する。
図6に示すように輝度配列リストLは、イベントカメラ2の全カメラ画素に対応する縦横二次元の画素座標x,y毎に、輝度値I及びタイムスタンプTを関連付けて保存するデータセットとして、準備される。輝度配列リストLに保存される輝度値Iは、バイナリ画像Bの二階調輝度値に対応する一対の極性値pの各々と、それらの中間値mとのうち、いずれかである。中間値mは、一対の極性値pである二値間の範囲に、規定される。特に本実施形態では、バイナリ画像Bの白色輝度値に対応した輝度増大方向の極性値pである「1」と、同画像Bの黒色輝度値に対応した輝度減少方向の極性値pである「0」との間の、中央値となる「0.5」が中間値mに規定される。
【0022】
図7に示すように初期化ブロック100は、輝度配列リストLにおける各画素座標x,yの輝度値Iを全て、中間値mに初期化する。それと共に初期化ブロック100は、輝度配列リストLにおける各画素座標x,yのタイムスタンプTを全て、リセット値としての「0」に初期化する。これらの初期化処理は、イベントカメラ2による撮影期間の開始前又は開始に伴って、初期化ブロック100により実現される。
【0023】
図2に示す更新ブロック120は、撮影期間内におけるイベント毎のイベントデータDを、イベントカメラ2から取得する。更新ブロック120は、イベントカメラ2から発火時刻t毎に出力されるイベントデータDを、それぞれ同時刻t毎に取得してもよい。更新ブロック120は、イベントカメラ2から発火時刻t毎に出力されて、例えば撮影期間内等の設定期間内はメモリ10にバッファリングされたイベントデータDを、当該設定期間後に纏めて取得してもよい。
【0024】
更新ブロック120は、イベントデータDを取得したイベント毎に当該データDに含まれる、発火時刻tと画素座標x,yと極性値pとに応じて、輝度配列リストLを更新する。更新ブロック120は、イベントデータDの取得される発火時刻t毎に、輝度配列リストLを更新してもよい。更新ブロック120は、バッファリングされたイベントデータDから発火時刻t毎のデータを順次抽出することで、当該抽出毎に輝度配列リストLを更新してもよい。以下では、いずれの場合の更新処理もイベント毎の処理として、詳細に説明する。
【0025】
図8に示すように更新処理の更新ブロック120は、イベントデータDにおける発火時刻tの画素座標x,yに対応した輝度配列リストLの画素座標x,yを、イベントの発火した発火時刻tでの発火座標xf,yfに設定する。それと共に更新ブロック120は、輝度配列リストLにおいて発火座標xf,yfを除いた全ての画素座標x,yを、発火時刻tでの非発火座標xn,ynに設定する。
【0026】
更新処理の更新ブロック120は、輝度配列リストLにおける発火時刻tでの発火座標xf,yfの輝度値Iを、イベントデータDにおける発火時刻tでのイベントの極性値pにより上書き演算する。それと共に更新ブロック120は、輝度配列リストLにおける発火時刻tでの発火座標xf,yfのタイムスタンプTを、イベントデータDにおけるイベントの発火時刻tにより上書き演算する。このとき本実施形態の更新ブロック120は、撮影期間の開始時刻を基準の「0」秒として、発火時刻tを当該開始時刻からの経過時間へと置き換えてタイムスタンプTに保存する。
【0027】
これら上書き一方で更新処理の更新ブロック120は、輝度配列リストLにおける発火時刻tでの非発火座標xn,ynのうち、発火時刻tとタイムスタンプTとの時間差が許容時間範囲内にある座標の輝度値Iを、発火時刻tにおける保存値のまま保持する。その結果、輝度配列リストLにおいて発火座標xf,yfから切り替わった非発火座標xn,ynの輝度値Iは、当該切り替わり前の座標xf,yfの発火時刻tから許容時間範囲内では、保持されることとなる。
【0028】
但し、輝度配列リストLにおける発火時刻tでの非発火座標xn,ynのうち、発火時刻tとタイムスタンプTとの時間差が許容時間範囲外にある座標の輝度値Iについては、上書き演算により更新ブロック120が中間値mへと戻す。その結果、輝度配列リストLにおいて発火座標xf,yfから切り替わった非発火座標xn,ynの輝度値Iは、当該切り替わり前の座標xf,yfの発火時刻tから許容時間範囲外では、中間値mにより上書き演算されることとなる。
【0029】
なお、このように時間差に基づいて更新処理の内容を切り替えるための許容時間範囲は、輝度値Iを保持すべき時間差の上限値以下に設定されてもよいし、輝度値Iを中間値mにより上書き演算すべき時間差の下限値未満に設定されてもよい。
【0030】
図2に示す補正ブロック140は、更新ブロック120により撮影期間に亘って更新された輝度配列リストLを、補正する。即ち、補正ブロック140は、撮影期間内における全イベントのイベントデータDに応じて更新された輝度配列リストLを、補正する。以下では、この補正ブロック140による補正処理を、全更新後の輝度配列リストLに対する処理として、詳細に説明する。
【0031】
補正処理の補正ブロック140は、全更新後の輝度配列リストLにおいて中間値mが保存された画素座標x,yを全て、中間座標xm,ymに設定する。この設定下において更新ブロック120は、輝度配列リストLにおける中間座標xm,ymの輝度値Iを中間値mから適正値へと補正するために、第1サブ補正処理及び第2サブ補正処理を実行する。以下、第1サブ補正処理を説明するために
図9は、輝度配列リストLの全体を画像イメージにて示している。一方、第2サブ補正処理を説明するために
図10は、輝度配列リストLの一部を画像イメージにて示している。
【0032】
第1サブ補正処理の補正ブロック140は、
図9に示すように輝度配列リストLのエッジ部分を構成する中間座標xm,ymを、起点座標xs,ysとして抽出する。このとき補正ブロック140は、縦横における各座標x,yのうち少なくとも一方が最小値又は最大値(
図9は双方が最小値の例)となる中間座標xm,ymを、起点座標xs,ysに設定する。第1サブ補正処理の補正ブロック140は、輝度配列リストLにおける中間座標xm,ymのうち、起点座標xs,ysから直接的又は他の中間座標xm,ymを介して間接的に連続する座標の輝度値Iと、同座標xs,ysの輝度値Iとを、特定一方の極性値pにより上書き演算する。ここで、白黒被写体4が二次元コードである場合、バイナリ画像Bの白色輝度値に対応して輝度増大方向を表した値「1」が、特定一方の極性値pとして起点座標xs,ysとその連続座標とに上書き演算される。なお、本開示における「更新部による更新は、輝度配列リストにおいてイベントの発火した画素座標である発火座標の輝度値を、イベントの極性値により上書き演算する一方、輝度配列リストにおいて発火座標を除いた画素座標である非発火座標の輝度値を、保持する。」との処理は、この第1サブ補正処理によりなされる。その観点で、第1サブ補正処理はメインの処理である。
【0033】
第2サブ補正処理の補正ブロック140は、
図10に示すようにイベントカメラ2に対する白黒被写体4の相対運動方向Mを、探索方向Sに設定する。このとき相対運動方向Mは、例えば加速度センサからの出力値等に基づき算出されることで、探索方向Sに設定される。第2サブ補正処理の補正ブロック140は、輝度配列リストLにおける中間座標xm,ymのうち、第1サブ補正処理によっても輝度値Iが中間値mのまま残存している座標から、探索方向Sに直近となる注目座標xc,ycを、探索する。第2サブ補正処理の補正ブロック140は、輝度配列リストLにおける中間値mの残存座標の輝度値Iを、注目座標xc,ycの極性値pにより上書き演算する。その結果として残存座標の輝度値Iには、
図10に示す探索方向Sとは逆方向Oに注目座標xc,ycの極性値pがコピーされる。このように第2サブ補正処理が加えられることで、メインである第1サブ補正処理によりイベントデータDの全ての読取が終了するのを待つことなく、極性値pを特定することができる。
【0034】
図2に示す出力ブロック160は、更新ブロック120により撮影期間に亘って更新されるのに加えて補正ブロック140により補正された輝度配列リストLを、バイナリ画像Bとして出力する。即ち出力ブロック160は、撮影期間内における全発火時刻tでのイベントデータDにより更新されてから中間座標xm,ymがいずれかの極性値pに補正された最新の輝度配列リストLを、
図11に示すように出力するバイナリ画像Bとして復元する。
【0035】
ここまでの説明から第1実施形態では、初期化ブロック100が「初期化部」に相当し、更新ブロック120が「更新部」に相当する。また第1実施形態では、補正ブロック140が「補正部」に相当し、出力ブロック160が「出力部」に相当する。
【0036】
このようなブロック100,120,140,160の共同により画像復元装置3がバイナリ画像Bを復元するための画像復元方法のフローである画像復元フローを、
図12に従って説明する。なお、本画像復元フローは、イベントカメラ2による撮影期間の開始前又は開始に伴って、開始される。また本画像復元フローにおいて「S」とは、画像復元プログラムに含まれた複数命令によって実行される、同フローの複数ステップを意味する。
【0037】
S101において初期化ブロック100は、メモリ10に準備した輝度配列リストLを初期化する。このとき初期化ブロック100は、輝度配列リストLにおける各画素座標x,yの輝度値I及びタイムスタンプTを、それぞれ中間値m及びリセット値に初期化する。
【0038】
S101に続くS102において更新ブロック120は、S101により初期化された輝度配列リストLを、イベント毎のイベントデータDに応じて更新する。このとき、イベント毎の更新処理として更新ブロック120は、輝度配列リストLにおける発火座標xf,yfの輝度値I及びタイムスタンプTを、それぞれイベントの極性値p及び発火時刻tにより上書き演算する。それと共に、イベント毎の更新処理として更新ブロック120は、輝度配列リストLにおける非発火座標xn,ynのうち、発火時刻tとタイムスタンプTとの時間差が許容時間範囲外となる座標の輝度値Iを、中間値mにより上書き演算する。その結果、輝度配列リストLにおいて発火座標xf,yfから切り替わった非発火座標xn,ynの輝度値Iは、切り替わり前座標xf,yfの発火時刻tから許容時間範囲外では、中間値mにより上書き演算されることとなる。
【0039】
さらにこれら上書き演算の一方で、イベント毎の更新処理としてS102の更新ブロック120は、輝度配列リストLにおける非発火座標xn,ynのうち、発火時刻tとタイムスタンプTとの時間差が許容時間範囲内となる座標の輝度値Iを、保持する。その結果、輝度配列リストLにおいて発火座標xf,yfから切り替わった非発火座標xn,ynの輝度値Iは、切り替わり前座標xf,yfの発火時刻tから許容時間範囲内では、保持されることとなる。
【0040】
S102に続くS103において補正ブロック140は、撮影期間に亘る全イベントのイベントデータDに応じて更新ブロック120により更新された輝度配列リストLを、補正する。このとき、第1サブ補正処理として補正ブロック140は、全更新後の輝度配列リストLにおいて中間値mの保存されている中間座標xm,ymのうち、エッジ部分の起点座標xs,ysの輝度値Iと、同座標xs,ysから連続する座標の輝度値Iとを、特定一方の極性値pにより上書き演算する。上述の通り、この第1サブ補正処理がメインの処理である。また、第2サブ補正処理として補正ブロック140は、第1サブ補正処理後の輝度配列リストLにおける中間座標xm,ymのち、中間値mのまま残存している残存座標の輝度値Iを、当該残存中座標xm,ymから探索方向Sに直近となる注目座標xc,ycの極性値pにより、上書き演算する。このとき探索方向Sは、イベントカメラ2に対する白黒被写体4の相対運動方向Mに、設定される。この第2サブ補正処理により処理速度を向上させることができる。
【0041】
S103に続くS104において出力ブロック160は、S102により撮影期間に亘って更新されてから補正ブロック140により補正された輝度配列リストLを、バイナリ画像Bとして出力する。以上により、一回の撮影期間に対する画像復元フローが終了する。
【0042】
ここまでの説明から第1実施形態では、S101が「初期化プロセス」に相当し、S102が「更新プロセス」に相当する。また第1実施形態では、S103が「補正プロセス」に相当し、S104が「出力プロセス」に相当する。
【0043】
(作用効果)
以上説明した第1実施形態の作用効果を、以下に説明する。
【0044】
第1実施形態によると、各画素座標x,yの輝度値Iが中間値mに初期化された輝度配列リストLに対して、イベント毎の画素座標x,y及び極性値pに応じた更新は、発火座標xf,yfの輝度値Iをイベントの極性値pにより上書き演算する。このとき輝度値Iに上書き演算される極性値pは、白黒被写体4の被撮影面40のうち相対移動によってカメラ画素にイベントを発火させる発火部分(即ち、輝度変化を与える輝度変化部分)の実輝度を、表し得る。また第1実施形態によると、初期化された輝度配列リストLに対する更新は、そうした上書き演算の一方で、発火座標xf,yfを除く非発火座標xn,ynの輝度値Iを保持する。その結果、極性値pの上書き演算後に発火座標xf,yfから切り替わった非発火座標xn,ynに保持される当該極性値pは、被撮影面40のうち相対移動によってもイベントを発火させない非発火部分の実輝度を、表し得る。
【0045】
これらのことから、第1実施形態により撮影期間に亘って更新された輝度配列リストLは、被撮影面40に対応する各画素座標x,yに、それぞれ実輝度に応じた極性値pを保存したバイナリ画像Bとして、出力され得る。以上によれば、上書き演算という簡易な演算処理によってバイナリ画像Bを復元することができるので、画像復元に必要な演算負荷を低減することが可能となる。
【0046】
第1実施形態によると、撮影期間に亘って更新された輝度配列リストLにおいて中間値mの保存された中間座標xm,ymの輝度値Iには、当該中間座標xm,ymから探索方向Sに直近となる注目座標xc,ycの極性値pが、上書き演算される。このとき、イベントカメラ2に対する白黒被写体4の相対運動方向Mに探索方向Sが設定されることによれば、当該方向Mでの被撮影面40の実輝度を表す可能性が高い方の極性値pを、中間値mからの置換によって復元することができる。故に、中間値mの残存に起因したバイナリ画像Bの復元不良を抑制することが可能となる。
【0047】
第1実施形態によると、輝度配列リストLにおいて発火座標xf,yfから切り替わった非発火座標xn,ynの輝度値Iは、切り替わり前座標xf,yfの発火時刻tから許容時間範囲内では、切り替わり前座標xf,yfの極性値pに保持されることとなる。その結果、発火座標xf,yfから切り替わった非発火座標xn,ynに許容時間範囲内において保持される極性値pは、被撮影面40のうちイベント発火後の相対移動によってはイベント発火しなくなる非発火部分の実輝度を、表し得る。故に、従来はオプティカルフローの推定を必要としていた非発火部分でのバイナリ画像Bの復元を、簡易な演算処理により実現して、演算負荷を低減することが可能となる。
【0048】
第1実施形態によると、輝度配列リストLにおいて発火座標xf,yfから切り替わった非発火座標xn,ynの輝度値Iは、切り替わり前座標xf,yfの発火時刻tから許容時間範囲外では、初期の中間値mに上書き演算されることとなる。その結果、ノイズに起因してイベント発火した場合の発火座標xf,yfでは、輝度値Iが誤った極性値pにより上書き演算されたとしても、その後のイベント発火が許容時間範囲外まで生じないことで、輝度値Iが正規の中間値mへと戻され得る。故に、ノイズに起因したバイナリ画像Bの復元不良を抑制することが可能となる。
【0049】
第1実施形態によると、イベントカメラ2に対する相対運動により撮影期間内に発生するオプティカルフローの方向は、イベントカメラ2による被撮影面40の全域において同一となる。これによれば、極性値pの上書き演算後に発火座標xf,yfから切り替わった非発火座標xn,ynの当該極性値pが、非発火部分の実輝度から外れ難くなる。故に簡易な演算処理によっても、バイナリ画像Bを復元することが可能となる。
【0050】
イベントカメラ2に対して撮影期間内に相対運動する二次元コードを白黒被写体4として画像復元する第1実施形態では、極性値pの上書き演算後に発火座標xf,yfから切り替わった非発火座標xn,ynの当該極性値pが、非発火部分の実輝度を正確に表し得る。故に簡易な演算処理によっても、バイナリ画像Bを高精度に復元することが可能となる。
【0051】
次に、以上の第1実施形態を別の観点で改めて説明する。まず、本開示の読取対象である白黒被写体4は、上述の通りQRコード(デンソーウェーブの登録商標)に限らず、他の二次元コードでもよく、バーコードでもよい。通常は白色と黒色で印刷されているが、明色と暗色であれば色彩を持っていても構わない。したがって、以下の説明で用いる白色と黒色とは、明色と暗色とを意味している。
【0052】
QRコードの場合では、
図1~3に示すように、コードの三方の隅に四角形状のファインディングパターン4aを有し、コードの内部は、四角形状の白色セルと同じく四角形状の黒色セルが配置され、このセルの配置により情報が定まる。ファインディングパターン4aの最外方の四角黒色部の幅はセルの幅と同じで、その内方の四角白色部の幅もセルの幅と同じで、中央の四角黒色部の幅はセルの幅の三倍となっている。いずれにせよ、印刷されたQRコードは、白色又は黒色の四角形状の組み合わせである。
【0053】
図4は、画像復元装置3で復元されたQRコードのイメージ画像を、示している。印刷された状態では、QRコードは、
図4のように変形していない。ただ、QRコードは、セルの中の中心部での明度(白色、黒色)を判断するので、
図4のように復元されたQRコードであっても、情報の読取は可能である。
【0054】
また、イベントカメラ2は、
図9の輝度配列リストLに表示されるように多数のカメラ画素(以下ピクセルという)を持つ。
図6~8の例においてイベントカメラ2は、横方向に例えば1280ピクセル(xは1~1280)有し、縦方向に例えば720ピクセル(yは1~720)有している。
図3に示す被撮影面40は、イベントカメラ2と白黒被写体4との距離で変わるが、通常は、白黒被写体4(QRコード)に比べて充分大きな面積である。そのため、
図3では、被撮影面40の一部のみが示されている。被撮影面40の大きさと白黒被写体4(QRコード)の大きさの例示としては、
図11の画像が理解し易い。例えば、被撮影面40の大きさが横方向に128ミリメートルであり、縦方向に72ミリメートルである場合には、被撮影面40の0.01ミリメートル四方がイベントカメラ2の1ピクセルに対応する。
【0055】
イベントカメラ2は、
図5に示すように、輝度(明度)の変化が生じた際(発火時)に、その変化の生じたピクセルの座標x,yと、輝度(明度)の変化である極性値pと、発火時刻tをイベントデータDとして記録する。したがって、発火がなければ、イベントカメラ2は何も新たな記録を行わず、イベントデータDも更新されない。一方、発火があれば、極めて短いタイミングでその発火を記録する。イベントカメラ2の性能によるが、例えば1マイクロセカンド(100万分の1秒)でも、記録可能である。
【0056】
図5の例では、x座標が1で、y座標がY-1(720ピクセルの例では719)のピクセルで、極性値pが1に変化するイベント(発火)が、0.5ミリセカンド(千分の0.5秒)の時間に生じたことが記録される。また、x座標がX(1280ピクセルの例では1280)で、y座標がY-1(719)のピクセルでも0.5ミリセカンドの時間に極性値pが0に変化する発火が記録される。0.7ミリセカンドの時間では、x座標が2、y座標がY-1(719)のピクセルで極性値pが1に変化する発火が記録され、1ミリセカンドの時間でも、x座標が2、y座標がY-1(719)のピクセルで極性値pが1に変化する発火が記録される。
【0057】
なお、イベントカメラ2は輝度(明度)の変化を検知するものであり、輝度(明度)の絶対値を検知するものではない。上述の通り、輝度変化量はlogオーダーで検出するが、例えば、輝度(明度)を黒(0)から白(1)までの間で128分解したとし、変化を検知する閾値を10/128とした場合、変化前の明るさから10/128以上明るくなると「1」の極性値pを記録し、10/128以上暗くなると「0」の極性値pを記録する。この例では、輝度(明度)の絶対値が、変化前が0.5で変化後が0.3の場合、閾値以上暗くなっているので「0」の極性値pを記録するが、輝度(明度)の絶対値が、変化前が0で変化後が0.3の場合には、閾値以上明るくなっているので「1」の極性値pを記録する。即ち、輝度(明度)の絶対値が同じく0.3であっても記録する極性値pは「0」になったり「1」になったりする。
【0058】
図5と
図6との関係では、
図6は時間が1ミリセカンドの状態での輝度配列リストLを示している。x座標が1でy座標がY-1(719)のピクセル、x座標がX(1280)でy座標がY-1(719)のピクセル、及びx座標が2でy座標がY-1(719)の3つのピクセル以外のピクセルでは輝度(明度)の変化(発火)が生じていないので時間は「0ミリセカンド」のままである。x座標が1でy座標がY-1(719)のピクセルと、x座標がX(1280)でy座標がY-1(719)のピクセルとでは、輝度(明度)の変化(発火)が0.5ミリセカンドの時間で生じたので、タイムスタンプTを「0.5ミリセカンド」とし、極性値pをそれぞれ「1」と「0」としている。x座標が2でy座標がY-1(719)のピクセルでは、輝度(明度)の変化(発火)が0.7ミリセカンドの時間と1ミリセカンドの時間で2度起きているので、
図5ではそれぞれのタイムスタンプTを記録している。また、1ミリセカンドの状態を示す
図6の例では、極性値pの「1」とタイムスタンプTの「1ミリセカンド」とが記録されている。
【0059】
繰り返しになるが、イベントカメラ2は、輝度(明度)の変化を検知するものであるので、変化がなければ何も検知されない。そのため、白黒被写体4(QRコード)が移動せずに静止していれば、何も検知されない。イベントデータDが記録されるのは、白黒被写体4(QRコード)が移動する場合に限られる。
【0060】
被撮影面40の大きさが横方向に128ミリメートル、縦方向に72ミリメートルで、被撮影面40の1ミリメートル四方がイベントカメラ2の100ピクセルに対応するとした上述の想定例で、白黒被写体4(QRコード)の白色四角セル及び黒色四角セルの幅が1ミリメートルであるとすると、白黒被写体4(QRコード)の1つのセルとイベントカメラ2の100ピクセルが対応する。これは、1ピクセルに受光する被撮影面40を正方形で示せば、一辺が0.1ミリメートルとなる。そして、白黒被写体4(QRコード)が、例えば1秒に10センチメートル移動するとすれば、1秒間に100ミリメートル移動することであり、1秒間に1000ピクセル移動することに相当する。即ち、1秒間に白黒被写体4(QRコード)のセルのエッジ部は、1000ピクセル分相対運動方向Mに移動することとなる。1ピクセル当たりにすれば、白黒被写体4(QRコード)のセルのエッジ部は1ミリセカンドで通過することとなる。
【0061】
なお、「白黒被写体4(QRコード)のセルのエッジ部」とは、白色セルと黒色セルとの境界部を意味し、白色セルの観点では、黒色セルが終了し白色セルが開始する境界部と、白色セルが終了し黒色セルが開始する境界部とがある。黒色セルの観点でも、同様に、開始部と終了部が境界部となる。
【0062】
仮にイベントカメラ2の分解能を0.1ミリセカンド(千分の0.1秒)とした場合には、白黒被写体4(QRコード)のセルのエッジ部が一つのピクセルを通過する際に、10回の輝度(明度)の変化を記録することができる。例えば、当初の明るさが黒(輝度値0)のセルから白(輝度値1)のセルに移動するとした場合で、イベントカメラ2には特定の座標のピクセルがこの輝度(明度)の変化を全て観察できる位置にあったとすれば、その座標のピクセルは、全ての領域で白黒被写体4(QRコード)の黒色のセルが示されていた時間(時間0ミリセカンド)から全ての領域で白黒被写体4(QRコード)の白色のセルが示される時間(時間1ミリセカンド)まで、10回に亘って輝度(明度)の変化を検知することができる。
【0063】
したがって、この例では、イベントカメラ2の1ピクセルは、ピクセル全体が黒(輝度値0)の状態(時間0ミリセカンド)からピクセル全体が白(輝度値1)の状態(時間1ミリセカンド)に10回にわたって変化を検知する。この10回(時間0ミリセカンドから時間1ミリセカンド)は、閾値上の輝度(明度)変化があるので、イベントデータDには、当該特定ピクセルの座標x,yと、極性値pの「1」と、発火時刻tが記録される。
【0064】
上述の想定設定で、白黒被写体4(QRコード)で1つのセルの一辺がイベントカメラ2の10ピクセルに対応し、その10ピクセルが相対運動方向Mに連続するとすれば、最初の第1ピクセルと最後の第10ピクセルが、白黒被写体4(QRコード)のセルのエッジ部に対応し、白黒反転を検知し得る。一方で、第2から第9ピクセルでは、白黒被写体4(QRコード)のセルのエッジ部に対応せず、白黒の反転は生じない。その場合、最初の第1ピクセルで10回(時間0ミリセカンドから時間1ミリセカンド)、座標x,y、極性値p「1」及び発火時刻tが記録され、第2から第9ピクセルでは、閾値以上の輝度(明度)変化がないので、イベントデータDは記録されない。最後の第10ピクセルは、白(輝度値1)のセルから黒(輝度値0)セルに移行するので、閾値以上の輝度(明度)の変化があり、座標x,y、極性値p「0」及び発火時刻tが記録される。
【0065】
換言すれば、白黒被写体4(QRコード)の白黒が反転するセルのエッジ部では、閾値以上の輝度(明度)の変化が検出されて輝度(明度)が明るい方向に閾値以上変化したことを表す極性値p「1」や、輝度(明度)が暗い方向に閾値以上変化したことを意味する極性値p「0」が記録されるが、白又は黒が連続するセルの中間部分では、輝度(明度)の変化がないので、記録されない。
【0066】
なお、以上の説明は、白黒被写体4(QRコード)が1つのセルのみで、白色セルから黒色セルに変わる例を前提に行ったが、実際の白黒被写体4(QRコード)では、複数の白色セルや黒色セルが連続することが通常である。そのため、実際に白黒被写体4(QRコード)のセルのエッジ部を検知するピクセルは、より少なくなっている。
【0067】
このことは、被撮影面40から白黒被写体4(QRコード)を検出する上で非常に重要である。白黒被写体4(QRコード)は、セルは白色又は黒色で中間色が存在しないのであるが、それ以外の部分、例えば白黒被写体4(QRコード)が印刷された部品では、その輝度(明度)はランダムに変化する。したがって、白色(輝度値1)や黒色(輝度値0)を数ミリセカンド亘って維持することはまれである。
【0068】
以上の技術事項を踏まえて、本開示の画像システム1を説明する。
図1,2に示すようにイベントカメラ2は、撮影対象となる白黒被写体4(QRコード)を撮影する。白黒被写体4(QRコード)は、一定の相対運動方向Mに例えば1秒間に10センチメートルの速度で移動している。勿論、秒速1~10センチメートルは例示であり、より高速の移動の可能である。より重要な点は、白黒被写体4(QRコード)の物理的な速度ではなく、イベントカメラ2から見た視野角度の変化である。イベントカメラ2と白黒被写体4との距離が近ければ、より高速の移動が検出できる。
【0069】
イベントカメラ2は、輝度(明度)の変化を検知したとき、イベントデータDを画像復元装置3に出力する。イベントデータDには、
図5に示すような、イベントの生じたピクセルの座標x,yと、閾値以上の輝度(明度)の変化が生じた極性値p(0,1)と、イベントの生じた発火時刻t(タイムスタンプT)が記録される。
【0070】
図1は、画像復元装置3のハードウェアを示しており、メモリ10とプロセッサ12とがバスで接続されている。
図2は、画像復元装置3のソフトウェアの機能ブロックを示しており、初期化ブロック100、更新ブロック120、補正ブロック140及び出力ブロック160を備えている。上記イベントデータDはメモリ10に記録される。
図6は、
図5に示すイベントデータDを記録した例であり、メモリ10の輝度配列リストLには、イベントカメラ2のピクセルの座標x,yと、閾値以上の輝度(明度)の変化が生じた極性値p(0,1)と、イベントの生じた発火時刻t(タイムスタンプT)が記録される。
【0071】
初期化ブロック100は、メモリ10のデータを初期化する。初期化とは、イベントカメラ2の全てのピクセルの座標x,yにおいて、タイムスタンプTを0とする。イベントカメラ2の分解能が例えば0.1ミリセカンドである場合、0は0ミリセカンドを示す。また初期化とは、イベントカメラ2の全てのピクセルの座標x,yにおいて、輝度値Iを「0」でも「1」でもない中間値mにする。本例では、中間値mとして「0.5」が採用されている。初期化されたメモリ10の輝度配列リストLの例が
図7である。イベントカメラ2の全てのピクセルの座標x,yにおいて、輝度値Iが「0.5」であり、タイムスタンプTは「0」である。この初期化ブロック100で行われる動作が、
図12のフローチャートのステップS101に対応する。
【0072】
更新ブロック120は、イベントカメラ2からイベントデータDを取得して、メモリ10のデータに上書き(更新)する。例えば、
図5のイベントデータDを取得すると、メモリ10の輝度配列リストLは、時間が0.5ミリセカンドの状態で
図8のように更新され、時間が1ミリセカンドの状態で、
図6のように更新される。x座標が2、y座標がY-1の座標に注目すると、時間が0.5ミリセカンドの状態(
図8)では、まだ発火が生じておらず、輝度値Iは「0.5」で、タイムスタンプTは「0ミリセカンド」である。
【0073】
なお、
図5,6,8では、イベントが輝度配列リストLの端((x=1,y=Y-1)、(x=2,y=Y-1)、(x=X,y=Y-1))で生じているが、これは、白黒被写体4がイベントカメラ2の視野の端から移動してくることに起因している。なお、白黒被写体4がQRコードである場合、コードを読み取るためには、QRコードが所定量以上イベントカメラ2の視野に入る必要がある。
【0074】
図9の例において発火座標xf,yfは、同図で黒(輝度値I:「0」)又は白(輝度値I:「1」)で示されたピクセルである。そして、この更新ブロック120で行われる動作が、
図12のフローチャートのステップS102に対応する。
【0075】
補正ブロック140は、イベントデータDから白黒被写体4(QRコード)を素早く抽出するために、メインの処理である第1サブ補正処理に加えて第2サブ補正処理を行い、計2回でメモリ10の輝度配列リストLの補正を行う。上述のように、白黒被写体4(QRコード)は、白色セルと黒色セルのみからなり、中間色がないので、イベントカメラ2のピクセルは、セルのエッジの部分で白黒の反転を検出し、エッジ部以外の部分では白黒の反転は検出しない。そして、白黒被写体4(QRコード)のセルは直線として印刷されるので、白黒被写体4(QRコード)のセルのエッジによる発火座標xf,yfは白又は黒の直線となる。
図9の例では、黒色の直線と白色の直線が発火座標xf,yfである。そこで第1サブ補正処理では、発火座標xf,yfより白色の直線と黒色の直線が検出される。
【0076】
なお、
図9で発火座標xf,yfの内左側の黒色縦線と下側の黒色横線から左下方の部分が白色となっているが、この白色部分は白黒被写体4(QRコード)の移動方向のイメージを表すのみで、実際に発火座標xf,yfとなっているわけではない。撮影時間は、ピクセルの数や、白黒被写体4(QRコード)のセルの大きさ、相対運動方向M及び相対運動のスピードにより異なるが、所定の許容時間範囲とする。
図9の例では、白黒被写体4(QRコード)内の白色直線及び黒色直線の幅が、所定の許容時間範囲に対応する。
【0077】
また、
図9では、上記白色部分を除き、白黒被写体4(QRコード)以外の部位では発火が起きていない非発火座標xn,ynとして、輝度値Iが「0.5」の中間座標xm,ymとしているが、実際には、白黒被写体4(QRコード)のみが相対移動をすることはなく、白黒被写体4(QRコード)が印刷されている部品も相対移動する。したがって、白黒被写体4(QRコード)以外の部位であっても、部品等の物体が移動する位置では通常は発火座標xf,yfとなる。しかし、白黒被写体4(QRコード)以外の部位では輝度(明度)の変化はランダムであり、明方向又は暗方向の輝度(明度)の変化を検知したピクセルが直線状に配置されることは、通常は起きない。また、物体が移動しない領域では輝度(明度)の変化がないので、輝度値Iは「0.5」の中間座標xm,ymのままである。
【0078】
上述の第1サブ補正処理により、白黒被写体4(QRコード)のセルのエッジが特定できる。そして、この白黒被写体4(QRコード)が存在する範囲内に輝度値Iが「0.5」の中間座標xm,ymとして存在する非発火座標xn,ynは、白黒の反転が生じていない部位であり、QRコードのセルの実際では、白又は黒色である。本例の第2サブ補正処理は、この輝度値Iが「0.5」の中間座標xm,ymを輝度値Iが「1」又は「0」の発火座標xf,yfとする補正処理である。相対運動方向Mで輝度値Iが「1」から「0.5」に変化する座標、又は輝度値Iが「0」から「0.5」に変化する座標を注目座標xc,ycとし、その注目座標xc,ycから相対運動方向Mと逆方向Oに同じ輝度値Iとなるように発火座標xf,yfとする。
【0079】
例えば、輝度(明度)の変化が暗方向で黒の輝度値Iの「0」に発火した座標から続く注目座標xc,ycからは、相対運動方向Mと逆方向Oに同じ輝度値Iの「0」に置き換える。
図10の例では、左側の注目座標xc,ycからは相対運動方向Mと逆方向Oに、灰色が黒に置き換えられる。また、右側の注目座標xc,ycからは相対運動方向Mと逆方向Oに、灰色が白に置き換えられる。これによりQRコードのセルは、本来の白色又は黒色として出力される。
【0080】
図11は、第2サブ補正処理を行った白黒被写体4(QRコード)を示している。上述のように、メインの処理である第1サブ補正処理は、QRコードのセルのエッジ部を検出する処理であるので、白黒被写体4(QRコード)が存在しない位置では通常なされない。また、第2サブ補正処理は第1サブ補正処理により白黒被写体4(QRコード)の領域と判断された部分のみで行うので、この第2サブ補正処理も白黒被写体4(QRコード)が存在しない位置ではなされない。そのため、
図11で白黒被写体4(QRコード)以外の部位で、部品等の物体が移動する部位では、輝度(明度)の変化がそのまま残って白色(輝度値Iが「1」)のピクセルと黒色(輝度値Iが「0」)のピクセルがランダムに存在している。
【0081】
ただ、イベントカメラ2の視野内で白黒被写体4(QRコード)をより的確に把握できるよう、
図11に示すように、そのランダムな存在を省いて白色で表示する処理が、行われる。同様に、部品等の物体が移動しない部位では、輝度値Iが「0.5」の中間座標xm,ymは残るが、そのような部位の中間座標xm,ymも白色で表示するような処理が、行われる。なお、
図11で白黒被写体4(QRコード)より左下方に延びる線は、単に白黒被写体4(QRコード)の相対運動方向Mを示すのみで、第2サブ補正処理で得られた線ではなく、また、撮影時間を表すものでもない。
【0082】
以上の第1サブ補正処理及び第2サブ補正処理が補正ブロック140で行われる。この補正ブロック140での動作が、
図12のフローチャートのステップS103である。
【0083】
出力ブロック160は、
図11に示すような補正処理を行った画像を出力する。上述の通り、白黒被写体4(QRコード)が存在する領域では白色のセルと黒色のセルが表示される。白黒被写体4(QRコード)が存在しない領域では、白色(輝度値Iが「1」)のピクセルと黒色(輝度値Iが「0」)のピクセルがランダムに存在するか、変化がない部位を白色としている。いずれにせよ、輝度値Iが「0.5」の中間座標xm,ymは存在しないので、バイナリ画像Bが出力される。この出力ブロック160での動作が、
図12のフローチャートでは、ステップS104に対応する。なお、
図11の例では白黒被写体4(QRコード)以外の部位を白色に補正する処理を行ったが、色は白黒が把握しやすければよく、黒色としても、緑等の他の色としてもよい。
【0084】
その後、出力されたバイナリ画像Bから白黒被写体4(QRコード)に含められた情報が、読み取られる。白黒被写体4(QRコード)は3か所にファインディングパターン4aを有するので、白色(輝度値Iが「1」)のピクセルと黒色(輝度値Iが「0」)のピクセルがランダムに存在している中から特殊形状のファインディングパターン4aを検出することはソフト的に容易である。そして、ファインディングパターン4aの位置が分かると白黒被写体4(QRコード)のセルの中心位置での明度が白色(輝度値Iが「1」)であるのか、黒色(輝度値Iが「0」)であるのかが容易に計算でき、白黒被写体4(QRコード)の情報を読み出すことができる。
【0085】
特に、本開示では、第1サブ補正処理により、白黒被写体4(QRコード)が存在する領域を特定し、その領域で第2サブ補正処理を行うので、実際に白黒被写体4(QRコード)の全てを読み取る前(最小2ピクセルの読み取り後)」に白黒被写体4(QRコード)の復元を行うことができる。そして、復元された情報はバイナリ画像Bであるので、改めて2値化の処理を行う必要もない。そのため、本開示によれば、極めて短い撮影時間(最小1マイクロセカンド)の間に、白黒被写体4(QRコード)の情報読み出しを行うことができる。
【0086】
ただ、白黒被写体4(QRコード)の把握にある程度の時間をかけることができる場合には、第2サブ補正処理を行わず、第1サブ補正処理のみで白黒被写体4(QRコード)のセルを検出するようにすることも可能である。即ち、
図9や
図10の例で直線の太さが許容時間範囲に相当するが、この許容時間範囲を長くすることで、白黒被写体4(QRコード)のセルの全体を白色又は黒色とすることが可能となる。このような意味において、第1サブ補正処理がメインの処理となる。
【0087】
(第2実施形態)
図13に示すように第2実施形態は、第1実施形態の変形例である。
【0088】
第2実施形態による画像復元フローは、S102に代わるS202を実行する。このS202では、発火座標xf,yf及び極性値pの同じイベントが複数回連続して発火するまで更新ブロック120が、イベント毎のイベントデータDに応じた輝度配列リストLの一部更新処理を、スキップする。このときスキップされる一部更新処理とは、極性値p及び発火時刻tによる上書き演算である。そこで更新ブロック120は、発火座標xf,yf及び極性値pの同じイベントが複数回連続して発火する連続発火では、輝度配列リストLにおける発火座標xf,yfの輝度値Iを、当該同じ極性値pにより上書き演算する。それと共に更新ブロック120は、そうした連続発火では、輝度配列リストLにおける発火座標xf,yfのタイムスタンプTを、当該連続発火のうちラストとなるイベントの発火時刻tにより上書き演算する。
【0089】
こうしたS202において、更新ブロック120により更新処理をスキップするイベントの連続回数は、例えば外乱等のノイズ発火に起因した極性値pへの上書き誤りを抑制可能な適数に、設定される。また、S202において更新ブロック120による更新処理は、極性値p及び発火時刻tの上書き演算以外については、第1実施形態と同様に実行される。このような第2実施形態では、S202が「更新プロセス」に相当する。
【0090】
(作用効果)
以上説明した第2実施形態の作用効果を、以下に説明する。
【0091】
第2実施形態によると、発火座標xf,yf及び極性値pの同じイベントが複数回連続して発火するまで、輝度配列リストLの更新がスキップされる。これによれば、ノイズ発火に起因した極性値pへの上書き誤りによるバイナリ画像Bの復元不良を、抑制することが可能となる。
【0092】
この第2実施形態に関しても、別の観点で改めて説明する。第1実施形態では、主に白黒被写体4(QRコード)のエッジ部での輝度(明度)の変化を捉え、エッジ部以外の部分では白色又は黒色が連続し、輝度(明度)の変化が生じないことを前提としていた。この前提は、勿論正しいのであるが、外乱に起因するノイズの発生も否定できない。
【0093】
例えば、白黒被写体4(QRコード)のセルの白色部分で、外光の変化や汚れ等に起因して、いずれかのピクセルが閾値以上の輝度(明度)の低下を検出する可能性も排除できないし、さらには光の変化がなくてもイベントカメラ2からの定電圧なアナログ出力信号に外部からのノイズが乗る可能性もある。この場合、輝度(明度)低下を検出又はノイズが乗ったピクセルは、その座標x,y、極性値p「0」と共に発火時刻t(タイムスタンプT)をイベントデータDに記録する。その結果、メモリ10の輝度配列リストLでは、当該ピクセルの座標が発火座標xf,yfとなって、輝度値Iも「0」となる。
【0094】
しかし、そうしたピクセルの座標は、本来輝度(明度)に変化がなく、白黒被写体4(QRコード)のセルの白色部分が継続しているはずであって、非発火座標xn,ynであり、輝度値Iは「0.5」の中間値mを示す中間座標xm,ymであるはずである。このように誤った情報がメモリ10の輝度配列リストLに記録されると、補正ブロック140における第1補正処理や第2補正処理でノイズを取り除くフィルタ処理を行う必要があり、処理時間が伸びたり、誤判断の原因となったりする。
【0095】
尤も、このようなノイズが同一のピクセルで何度も連続して検出される可能性は、低い。何故なら、本来は白黒被写体4(QRコード)のセルの白色部分が継続しているはずの場所であって、連続して輝度(明度)の低下が続く場所ではないからである。一方、白黒被写体4(QRコード)のセルのエッジ部では、所定のピクセルは複数回に亘って輝度(明度)の変化を検知できる。
【0096】
そのため、輝度(明度)の変化が複数回に亘って連続するピクセルは、白黒被写体4(QRコード)のセルのエッジ部を検知している可能性が高い。一方、輝度(明度)の変化が単発的なピクセルは、本来生じていない輝度変化を誤って検出したり、外部ノイズの影響を受けている可能性が高い。
【0097】
第2実施形態は、この特性を利用したものである。特定のピクセル(特定の座標)で輝度(明度)の変化が生じたとしても、同じ方向(「0」又は「1」)の極性値pが複数回連続しなければ、更新ブロック120でのメモリ10の輝度配列リストLの更新を行わないようにしている。これは、
図13のフローチャートのステップS202である。
【0098】
このように、メモリ10の輝度配列リストLで輝度値Iが「0」又は「1」に書き換えられるのは、イベントが複数回連続した結果となるので、輝度配列リストLは信頼性が高いものとなる。そのため、補正ブロック140は精度の高い情報を用いて第1サブ補正処理及び第2サブ補正処理を行うことができ、フィルタリング処理を廃止又は軽減できる。結果、処理時間の短縮や、読取エラーの低減が図られ得る。
【0099】
なお、連続する複数回の回数は、イベントカメラ2のピクセル数、被撮影面40の面積、白黒被写体4(QRコード)のセルの大きさや、白黒被写体4(QRコード)の相対運動方向Mへの移動速度等により、適宜定めることとなる。例えば、連続する複数回の回数は、白黒被写体4(QRコード)のエッジによる輝度変化を十分に検出可能な数であることが、好ましい。
【0100】
以上、複数の実施形態について説明したが、本開示は、それらの実施形態に限定して解釈されるものではなく、本開示の要旨を逸脱しない範囲内において種々の実施形態及び組み合わせに適用することができる。
【0101】
変形例の画像復元装置3は、デジタル回路及びアナログ回路のうち少なくとも一方をプロセッサとして含んで構成される、専用のコンピュータであってもよい。ここで特にデジタル回路とは、例えば、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、SOC(System on a Chip)、PGA(Programmable Gate Array)及びCPLD(Complex Programmable Logic Device)等のうち、少なくとも一種類である。またこうしたデジタル回路は、プログラムを格納したメモリを、備えていてもよい。
【0102】
変形例では、更新ブロック120及びS102の更新処理において、発火時刻tとタイムスタンプTとの時間差に拘わらず、輝度配列リストLにおける非発火座標xn,ynの輝度値Iが保持されてもよい。変形例では、補正ブロック140及びS103の第2サブ補正処理が、必要に応じてスキップ又は常に省略されてもよい。
【0103】
変形例では、イベントカメラ2に対する相対運動により撮影期間内に発生するオプティカルフローの方向が、イベントカメラ2による被撮影面40の一部において異なっていてもよい。この場合、補正ブロック140及びS103の第2サブ補正処理において、例えばイベントカメラ2に対する白黒被写体4の相対運動方向Mに基づくことで、オプティカルフローの一部方向が異なることに起因した輝度値Iの誤りが、輝度配列リストLに対して補正されてもよい。
【0104】
変形例では、イベントカメラ2に対して撮影期間内に相対運動する平面状二次元コード以外の白黒被写体4が、バイナリ画像Bの復元対象であってもよい。具体的には、例えば車両等の移動体に搭載されたイベントカメラ2により、当該移動体の周囲に存在する白黒被写体4が撮影されることで出力されるイベントデータDに基づき、バイナリ画像Bが復元されてもよい。
【符号の説明】
【0105】
2 イベントカメラ、3 画像復元装置、4 白黒被写体、10 メモリ、12 プロセッサ、40 被撮影面、100 初期化ブロック、120 更新ブロック、140 補正ブロック、160 出力ブロック、B バイナリ画像、D イベントデータ、I 輝度値、L 輝度配列リスト、S 探索方向、T タイムスタンプ、m 中間値、p 極性値、t 発火時刻、x,y 画素座標、xc,yc 注目座標、xf,yf 発火座標、xm,ym 中間座標、xn,yn 非発火座標