WO2021095853A1 - 画像復元装置、画像復元方法、及び画像復元プログラム - Google Patents

画像復元装置、画像復元方法、及び画像復元プログラム Download PDF

Info

Publication number
WO2021095853A1
WO2021095853A1 PCT/JP2020/042461 JP2020042461W WO2021095853A1 WO 2021095853 A1 WO2021095853 A1 WO 2021095853A1 JP 2020042461 W JP2020042461 W JP 2020042461W WO 2021095853 A1 WO2021095853 A1 WO 2021095853A1
Authority
WO
WIPO (PCT)
Prior art keywords
coordinates
brightness
value
event
array list
Prior art date
Application number
PCT/JP2020/042461
Other languages
English (en)
French (fr)
Inventor
雄介 関川
洋 時
Original Assignee
株式会社デンソーウェーブ
株式会社デンソーアイティーラボラトリ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from JP2020180824A external-priority patent/JP2021082273A/ja
Application filed by 株式会社デンソーウェーブ, 株式会社デンソーアイティーラボラトリ filed Critical 株式会社デンソーウェーブ
Priority to US17/777,207 priority Critical patent/US20220406032A1/en
Priority to CN202080079006.6A priority patent/CN115151943A/zh
Priority to EP20886908.1A priority patent/EP4060606A4/en
Publication of WO2021095853A1 publication Critical patent/WO2021095853A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/50Image enhancement or restoration using two or more images, e.g. averaging or subtraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/60Extraction of image or video features relating to illumination properties, e.g. using a reflectance or lighting model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/77Retouching; Inpainting; Scratch removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/98Detection or correction of errors, e.g. by rescanning the pattern or by human intervention; Evaluation of the quality of the acquired patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker
    • G06T2207/30208Marker matrix

Definitions

  • This disclosure relates to an image restoration technology that restores a binary image based on the output from an event camera.
  • an event camera (Event Based Camera or simply, Event Camera) having excellent time resolution is known.
  • the event camera optically photographs the subject and outputs the pixel coordinates and the polarity value of the event in association with the firing time of the event whose brightness has changed in at least one camera pixel.
  • Non-Patent Document 1 A technique for restoring a luminance image based on the output of such an event camera is disclosed in, for example, Non-Patent Document 1.
  • the luminance image is restored by simultaneously estimating the optical flow and the luminance of the subject moving relative to the event camera by optimizing the cost function.
  • Non-Patent Document 1 simultaneously estimates the optical flow and the brightness is limited to the edge portion of the surface to be photographed in which the camera pixel can detect the change in brightness due to the relative movement. Therefore, in order to extend the luminance estimation to the entire area to be photographed of the subject and restore the luminance image, the arithmetic processing becomes complicated and the arithmetic load increases.
  • An object of the present disclosure is to provide an image restoration device that reduces the computational load required for image restoration. Another object of the present disclosure is to provide an image restoration method for reducing the computational load required for image restoration. Yet another object of the present disclosure is to provide an image restoration program that reduces the computational load required for image restoration.
  • the first aspect of the present disclosure is Pixel coordinates of an event output from an event camera (2) that captures a black-and-white subject (4) that moves relative to each other during the shooting period in association with the firing time (t) of the event whose brightness has changed in at least one camera pixel.
  • An image restoration device (3) that restores a binary image (B) based on (x, y) and a polarity value (p).
  • the initialization unit that initializes the luminance value of each pixel coordinate to the intermediate value.
  • An update unit (120) that updates the luminance array list initialized by the initialization unit according to the pixel coordinates and polarity values for each event, and It is provided with an output unit (160) that outputs a luminance array list updated by the update unit over the shooting period as a binary image.
  • the update by the update unit overwrites the brightness value of the firing coordinate, which is the pixel coordinate at which the event ignited in the luminance array list, with the polarity value of the event, while the non-firing pixel coordinate excluding the firing coordinate in the luminance array list. Holds the luminance value of the coordinates.
  • the second aspect of the present disclosure is Pixel coordinates of an event output from an event camera (2) that captures a black-and-white subject (4) that moves relative to each other during the shooting period in association with the firing time (t) of the event whose brightness has changed in at least one camera pixel.
  • An image restoration method performed by the processor (12) to restore a binary image (B) based on (x, y) and a polarity value (p).
  • Initialization process for initializing the brightness value of each pixel coordinate to the intermediate value in the brightness array list (L) that stores one of the pair of polarity values and their intermediate value as the brightness value for each pixel coordinate.
  • the update by the update process overwrites the brightness value of the firing coordinate, which is the pixel coordinate at which the event ignited in the luminance array list, with the polarity value of the event, while the non-firing pixel coordinate excluding the firing coordinate in the luminance array list. Holds the luminance value of the coordinates.
  • a third aspect of the present disclosure is Pixel coordinates of an event output from an event camera (2) that captures a black-and-white subject (4) that moves relative to each other during the shooting period in association with the firing time (t) of the event whose brightness has changed in at least one camera pixel.
  • An image restoration program that is stored in a storage medium (10) and includes instructions to be executed by a processor (12) in order to restore a binary image (B) based on (x, y) and a polarity value (p).
  • the instruction is Initialization process for initializing the brightness value of each pixel coordinate to the intermediate value in the brightness array list (L) that stores one of the pair of polarity values and their intermediate value as the brightness value for each pixel coordinate.
  • the update by the update process overwrites the brightness value of the firing coordinate, which is the pixel coordinate at which the event ignited in the luminance array list, with the polarity value of the event, while the non-firing pixel coordinate excluding the firing coordinate in the luminance array list. The brightness value of the coordinates is retained.
  • the update according to the pixel coordinate and the polarity value for each event is the luminance value of the firing coordinate. Is overwritten by the polarity value of the event.
  • the polarity value that is overwritten with the brightness value can represent the actual brightness of the portion of the surface to be photographed of the black-and-white subject that causes the camera pixel to fire an event by relative movement.
  • the update to the initialized luminance array list retains the luminance values of the non-ignition coordinates excluding the firing coordinates while performing such an overwrite operation.
  • the polarity value held in the non-ignition coordinates switched from the ignition coordinates after the overwriting operation of the polarity value can represent the actual brightness of the portion of the surface to be photographed that does not ignite the event even by relative movement.
  • the brightness array list updated over the shooting period according to the first to third aspects is a binary image in which the polarity values corresponding to the actual brightness are stored in the pixel coordinates corresponding to the surface to be photographed. , Can be output. According to the above, since the binary image can be restored by a simple arithmetic process called an overwrite operation, it is possible to reduce the arithmetic load required for image restoration.
  • the image system 1 includes an event camera (Event Based Camera) 2 and an image restoration device 3.
  • the binary image B as a two-tone luminance image is restored by the image restoration device 3 based on the output from the event camera 2 that captures the two-tone black-and-white subject 4.
  • the luminance value that is, the gradation value
  • the luminance value representing the white portion of the subject 4 is "0"
  • the luminance value representing the white portion of the subject 4 Is "1".
  • the event camera 2 is installed in a state where a specific relative motion relationship is established with the black-and-white subject 4 to be photographed.
  • the specific relative motion relationship is a so-called translational motion in which the direction of the optical flow generated during the shooting period due to the relative motion with respect to the event camera 2 is the same in the entire area of the surface 40 to be photographed by the event camera 2 among the black-and-white subjects 4. It is a relationship.
  • An example of this translational motion relationship is the relationship shown in FIG. 3, in which a flat black-and-white subject 4 moves linearly only in one direction M orthogonal to the camera axis with respect to the event camera 2 whose position is fixed. ..
  • a two-dimensional code drawn in two gradations of black and white as shown in FIG. 4 is printed or affixed to a factory product, for example, and is positioned while linearly moving by moving a conveyor or the like.
  • a translational motion relationship photographed by the fixed event camera 2 is assumed in the present embodiment.
  • the two-dimensional code shown in FIG. 4 is a QR code (registered trademark of Denso Wave Incorporated), but may be, for example, a bar code or the like.
  • the event camera 2 fits the surface 40 of the black-and-white subject 4 that moves relative to each other within a predetermined shooting period within the angle of view of the camera over the shooting period.
  • the event camera 2 senses incident light from within the angle of view of the camera by a plurality of camera pixels arranged two-dimensionally in the horizontal direction and the vertical direction.
  • the change in the brightness of the incident light sensed for each camera pixel is monitored in time series during the shooting period.
  • the event data D is output from the event camera 2 as if the event has fired. ..
  • the event data D is generated as a data set for outputting the pixel coordinates x, y and the polarity value p of the event in association with the firing time t of the event.
  • the maximum values of the coordinates x and y in the vertical and horizontal directions are represented by X and Y, respectively.
  • Pixel coordinates x and y define the vertical and horizontal two-dimensional positions of camera pixels whose brightness has changed by a threshold value or more by coordinate values.
  • the polarity value p defines the direction of increase / decrease in brightness that exceeds the threshold value by a binary value.
  • the polarity value p indicating the brightness increasing direction from black to white is defined as "1”
  • the polarity value p representing the decreasing direction from white to black is defined as "0”.
  • the increasing / decreasing direction of the brightness change at the pixel coordinates x and y where the event is fired is represented by a pair of polar values p.
  • the image restoration device 3 shown in FIGS. 1 and 2 is connected to the event camera 2 via, for example, at least one of a LAN (Local Area Network), a wire harness, an internal bus, and the like.
  • the image restoration device 3 is a computer dedicated to image restoration, which includes at least one memory 10 and one processor 12.
  • the memory 10 non-temporarily stores or stores a computer-readable program, data, or the like, for example, at least one type of non-transitional substantive storage medium (non-transitional memory, magnetic medium, optical medium, or the like). transitory tangible storage medium).
  • the processor 12 includes, for example, at least one type of CPU (Central Processing Unit), GPU (Graphics Processing Unit), RISC (Reduced Instruction Set Computer) -CPU, and the like as a core.
  • the processor 12 executes a plurality of instructions included in the image restoration program stored in the memory 10.
  • the image restoration device 3 constructs a plurality of functional blocks for restoring the binary image B based on the event data D output from the event camera 2.
  • a plurality of functional blocks are constructed by the processor 12 sequentially or in parallel executing a plurality of instructions of the image restoration program stored in the memory 10 in order to restore the binary image B.
  • the plurality of functional blocks constructed by the image restoration device 3 include an initialization block 100, an update block 120, a correction block 140, and an output block 160.
  • the initialization block 100 prepares the luminance array list L in a predetermined data storage area in the memory 10.
  • the brightness array list L is a data set for storing the brightness value I and the time stamp T in association with each of the vertical and horizontal two-dimensional pixel coordinates x and y corresponding to all the camera pixels of the event camera 2.
  • the luminance value I stored in the luminance array list L is one of each of the pair of polarity values p corresponding to the two-gradation luminance value of the binary image B and their intermediate values m.
  • the intermediate value m is defined as a range between two values, which are a pair of polarity values p.
  • the polarity value p in the brightness increasing direction corresponding to the white brightness value of the binary image B is “1”
  • the polarity value p in the brightness decreasing direction corresponding to the black brightness value of the same image B is “1”.
  • the median value "0.5” between "0" and "0” is defined as the intermediate value m.
  • the initialization block 100 initializes all the luminance values I of the pixel coordinates x and y in the luminance array list L to the intermediate value m. At the same time, the initialization block 100 initializes all the time stamps T of the pixel coordinates x and y in the luminance array list L to "0" as the reset value. These initialization processes are realized by the initialization block 100 before or with the start of the shooting period by the event camera 2.
  • the update block 120 shown in FIG. 2 acquires event data D for each event during the shooting period from the event camera 2.
  • the update block 120 may acquire event data D output from the event camera 2 at each firing time t at the same time t.
  • the update block 120 is output from the event camera 2 every firing time t, and even if the event data D buffered in the memory 10 during the set period such as during the shooting period is collectively acquired after the set period. Good.
  • the update block 120 updates the luminance array list L according to the firing time t, the pixel coordinates x, y, and the polarity value p included in the data D for each event in which the event data D is acquired.
  • the update block 120 may update the luminance array list L at each firing time t when the event data D is acquired.
  • the update block 120 may update the luminance array list L for each extraction by sequentially extracting the data for each firing time t from the buffered event data D.
  • the update process in each case will be described in detail as a process for each event.
  • the update block 120 of the update process sets the pixel coordinates x, y of the luminance array list L corresponding to the pixel coordinates x, y of the firing time t in the event data D at the firing time t when the event is fired. Set to the firing coordinates xf and yf of. At the same time, the update block 120 sets all the pixel coordinates x and y in the luminance array list L except the firing coordinates xf and yf to the non-firing coordinates xn and yn at the firing time t.
  • the update block 120 of the update process overwrites the brightness values I of the firing coordinates xf and yf at the firing time t in the brightness array list L with the polarity value p of the event at the firing time t in the event data D.
  • the update block 120 overwrites the time stamps T of the firing coordinates xf and yf at the firing time t in the luminance array list L by the firing time t of the event in the event data D.
  • the update block 120 of the present embodiment sets the start time of the shooting period as the reference "0" seconds, replaces the ignition time t with the elapsed time from the start time, and saves it in the time stamp T.
  • the time difference between the ignition time t and the time stamp T is within the allowable time range.
  • the brightness value I is maintained as the stored value at the ignition time t.
  • the luminance value I of the non-ignition coordinates xn, yn switched from the firing coordinates xf, yf in the luminance array list L is retained within the permissible time range from the firing time t of the coordinates xf, yf before the switching. It will be.
  • the luminance value I of the coordinates where the time difference between the ignition time t and the time stamp T is outside the permissible time range is updated by the overwrite operation.
  • the block 120 returns to the intermediate value m.
  • the luminance value I of the non-ignition coordinates xn, yn switched from the ignition coordinates xf, yf in the luminance array list L is an intermediate value m outside the permissible time range from the ignition time t of the coordinates xf, yf before the switching. Will be overwritten by.
  • the allowable time range for switching the content of the update process based on the time difference in this way may be set to be equal to or less than the upper limit of the time difference in which the luminance value I should be held, or the luminance value I is set to the intermediate value m. It may be set to be less than the lower limit of the time difference to be overwritten.
  • the correction block 140 shown in FIG. 2 corrects the luminance array list L updated by the update block 120 over the shooting period. That is, the correction block 140 corrects the luminance array list L updated according to the event data D of all the events within the shooting period.
  • the correction process by the correction block 140 will be described in detail as a process for the luminance array list L after all updates.
  • the correction block 140 of the correction process sets all the pixel coordinates x and y in which the intermediate value m is stored in the luminance array list L after all updates to the intermediate coordinates xm and ym.
  • the update block 120 executes the first sub-correction process and the second sub-correction process in order to correct the luminance value I of the intermediate coordinates xm and ym in the luminance array list L from the intermediate value m to an appropriate value.
  • FIG. 9 shows the entire luminance array list L as an image.
  • FIG. 10 shows a part of the luminance array list L as an image.
  • the correction block 140 of the first sub-correction process extracts the intermediate coordinates xm and ym constituting the edge portion of the luminance array list L as the starting point coordinates xs and ys.
  • the correction block 140 sets the intermediate coordinates xm and ym in which at least one of the vertical and horizontal coordinates x and y is the minimum value or the maximum value (FIG. 9 is an example of the minimum value in both directions) as the starting point coordinates xs and ys. Set.
  • the correction block 140 of the first sub-correction process is the coordinates of the intermediate coordinates xm, ym in the luminance array list L that are directly continuous from the starting point coordinates xs, ys or indirectly via other intermediate coordinates xm, ym.
  • the brightness value I and the brightness value I of the same coordinates xs and ys are overwritten by the specific polarity value p.
  • the value "1" indicating the brightness increasing direction corresponding to the white brightness value of the binary image B is set as the starting point coordinates xs, ys as the specific one polarity value p. It is overwritten with the continuous coordinates.
  • update by the update unit overwrites the brightness value of the firing coordinate, which is the pixel coordinate of the firing of the event in the brightness array list, with the polarity value of the event, while excluding the firing coordinate in the brightness array list.
  • the process of "holding the brightness value of the non-ignition coordinate which is the pixel coordinate” is performed by this first sub-correction process. From that point of view, the first sub-correction process is the main process.
  • the correction block 140 of the second sub-correction process sets the relative motion direction M of the black-and-white subject 4 with respect to the event camera 2 to the search direction S.
  • the relative motion direction M is set to the search direction S by being calculated based on, for example, an output value from the acceleration sensor.
  • the correction block 140 of the second sub-correction process has the search direction S from the coordinates of the intermediate coordinates xm and ym in the brightness array list L in which the brightness value I remains as the intermediate value m even after the first sub-correction process. Search for the coordinates xc and yc of interest that are closest to.
  • the correction block 140 of the second sub-correction process overwrites the brightness value I of the residual coordinates of the intermediate value m in the brightness array list L with the polarity values p of the attention coordinates xc and yc.
  • the polarity values p of the attention coordinates xc and yc are copied to the luminance value I of the remaining coordinates in the direction O opposite to the search direction S shown in FIG.
  • the output block 160 shown in FIG. 2 outputs the luminance array list L, which is updated by the update block 120 over the shooting period and corrected by the correction block 140, as a binary image B. That is, FIG. 11 shows the latest luminance array list L in which the output block 160 is updated by the event data D at all firing times t within the shooting period and the intermediate coordinates xm and ym are corrected to any polarity value p. Restore as the output binary image B as shown in.
  • the initialization block 100 corresponds to the "initialization unit”
  • the update block 120 corresponds to the "update unit”.
  • the correction block 140 corresponds to the "correction unit”
  • the output block 160 corresponds to the "output unit”.
  • the image restoration flow which is the flow of the image restoration method for the image restoration apparatus 3 to restore the binary image B by the joint use of the blocks 100, 120, 140, 160, will be described with reference to FIG.
  • the image restoration flow is started before or with the start of the shooting period by the event camera 2. Further, in this image restoration flow, "S" means a plurality of steps of the same flow executed by a plurality of instructions included in the image restoration program.
  • the initialization block 100 initializes the luminance array list L prepared in the memory 10. At this time, the initialization block 100 initializes the luminance value I and the time stamp T of the pixel coordinates x and y in the luminance array list L to the intermediate value m and the reset value, respectively.
  • the update block 120 updates the luminance array list L initialized by S101 according to the event data D for each event.
  • the update block 120 overwrites the brightness values I and the time stamp T of the firing coordinates xf and yf in the brightness array list L with the polarity value p and the firing time t of the event, respectively.
  • the update block 120 has a luminance value I of the non-ignition coordinates xn and yn in the luminance array list L where the time difference between the ignition time t and the time stamp T is out of the allowable time range. Is overwritten by the intermediate value m.
  • the luminance value I of the non-ignition coordinates xn, yn switched from the ignition coordinates xf, yf in the luminance array list L is overwritten by the intermediate value m outside the permissible time range from the ignition time t of the coordinates xf, yf before switching. It will be calculated.
  • the update block 120 of S102 has a time difference between the ignition time t and the time stamp T among the non-ignition coordinates xn and yn in the luminance array list L within the allowable time range.
  • the brightness value I of the coordinates that becomes is held.
  • the luminance values I of the non-ignition coordinates xn and yn switched from the ignition coordinates xf and yf in the luminance array list L are retained within the permissible time range from the ignition time t of the coordinates xf and yf before switching. Become.
  • the correction block 140 corrects the luminance array list L updated by the update block 120 according to the event data D of all the events over the shooting period.
  • the correction block 140 has the brightness values of the origin coordinates xs and ys of the edge portion among the intermediate coordinates xm and ym stored in the brightness array list L after all updates.
  • the I and the luminance value I of the coordinates continuous from the same coordinates xs and ys are overwritten by the specific one polarity value p.
  • this first sub-correction process is the main process.
  • the correction block 140 sets the luminance value I of the residual coordinates remaining as the intermediate value m after the intermediate coordinates xm and ym in the luminance array list L after the first sub-correction process.
  • the overwrite operation is performed by the polarity values p of the attention coordinates xc and yc that are closest to the search direction S from the remaining middle coordinates xm and ym.
  • the search direction S is set to the relative motion direction M of the black-and-white subject 4 with respect to the event camera 2. The processing speed can be improved by this second sub-correction processing.
  • the output block 160 outputs the luminance array list L, which has been updated by S102 over the shooting period and then corrected by the correction block 140, as a binary image B. As described above, the image restoration flow for one shooting period is completed.
  • S101 corresponds to the "initialization process” and S102 corresponds to the "update process”. Further, in the first embodiment, S103 corresponds to the "correction process” and S104 corresponds to the "output process”.
  • the brightness array list L in which the brightness values I of the pixel coordinates x and y are initialized to the intermediate values m is updated according to the pixel coordinates x, y and the polarity value p for each event. Overwrites the brightness values I of the firing coordinates xf and yf with the polarity value p of the event. At this time, the polarity value p that is overwritten by the brightness value I is the actual portion of the surface 40 of the black-and-white subject 4 that ignites an event by relative movement (that is, the brightness change portion that gives a brightness change). Luminance can be represented.
  • the update to the initialized luminance array list L retains the luminance values I of the non-luminance coordinates xn and yn excluding the ignition coordinates xf and yf while performing such an overwrite operation.
  • the polarity value p held at the non-ignition coordinates xn, yn switched from the ignition coordinates xf, yf after the overwriting operation of the polarity value p does not ignite the event even by the relative movement of the surface to be photographed 40.
  • the actual brightness of the part can be represented.
  • the luminance array list L updated over the imaging period according to the first embodiment stores the polarity values p corresponding to the actual luminance in the pixel coordinates x and y corresponding to the surface to be imaged 40, respectively. It can be output as a binary image B. According to the above, since the binary image B can be restored by a simple arithmetic process called an overwrite operation, it is possible to reduce the arithmetic load required for the image restoration.
  • the luminance values I of the saved intermediate coordinates xm and ym of the intermediate values m are set in the search direction S from the intermediate coordinates xm and ym.
  • the polarity values p of the nearest attention coordinates xc and yc are overwritten.
  • the search direction S being set in the relative motion direction M of the black-and-white subject 4 with respect to the event camera 2
  • the polarity value that is more likely to represent the actual brightness of the surface to be photographed 40 in the direction M. p can be restored by substitution from the intermediate value m. Therefore, it is possible to suppress the restoration failure of the binary image B due to the remaining intermediate value m.
  • the luminance values I of the non-ignition coordinates xn and yn switched from the ignition coordinates xf and yf in the luminance array list L are switched within the allowable time range from the ignition time t of the coordinates xf and yf before switching. It is held at the polarity values p of the front coordinates xf and yf.
  • the polarity value p held in the non-ignition coordinates xn, yn switched from the ignition coordinates xf, yf within the permissible time range does not cause the event to ignite depending on the relative movement of the surface to be photographed 40 after the event ignites.
  • the actual brightness of the ignition part can be represented. Therefore, it is possible to reduce the calculation load by realizing the restoration of the binary image B in the non-firing portion, which conventionally required the estimation of the optical flow, by a simple calculation process.
  • the luminance value I of the non-ignition coordinates xn, yn switched from the ignition coordinates xf, yf in the luminance array list L is the initial value outside the permissible time range from the ignition time t of the coordinates xf, yf before switching.
  • the intermediate value m of is overwritten.
  • the direction of the optical flow generated within the shooting period due to the relative movement with respect to the event camera 2 is the same over the entire area of the surface 40 to be shot by the event camera 2.
  • the polarity value p of the non-ignition coordinates xn, yn switched from the ignition coordinates xf, yf after the overwriting operation of the polarity value p is hard to deviate from the actual brightness of the non-ignition portion. Therefore, the binary image B can be restored even by a simple arithmetic process.
  • the non-firing coordinates xn which are switched from the firing coordinates xf and yf after the overwriting operation of the polarity value p
  • the polarity value p of yn can accurately represent the actual brightness of the non-ignited portion. Therefore, the binary image B can be restored with high accuracy even by a simple arithmetic process.
  • the black-and-white subject 4 to be read in the present disclosure is not limited to the QR code (registered trademark of Denso Wave Co., Ltd.), which is a kind of two-dimensional code, and may be another type of two-dimensional code. Further, it may be a bar code which is a one-dimensional code. Normally, it is printed in white and black, but it may have colors as long as it is light and dark. Therefore, the terms white and black used in the following description mean light and dark colors.
  • a square finding pattern 4a is provided at three corners of the code, and a square black cell is arranged inside the code as well as a square white cell. And the information is determined by the arrangement of this cell.
  • the width of the outermost square black part of the finding pattern 4a is the same as the width of the cell, the width of the inner square white part is also the same as the width of the cell, and the width of the central square black part is the width of the cell. It has tripled.
  • the printed QR code is a combination of white or black squares.
  • FIG. 4 shows an image of the QR code restored by the image restoration device 3.
  • the QR code In the printed state, the QR code is not deformed as shown in FIG. However, since the QR code determines the brightness (white, black) at the center of each cell, the information can be read even with the restored QR code as shown in FIG.
  • the event camera 2 has a large number of camera pixels (hereinafter referred to as pixels) as displayed in the luminance array list L of FIG.
  • the event camera 2 has, for example, 1280 pixels (x is 1 to 1280) in the horizontal direction and, for example, 720 pixels (y is 1 to 720) in the vertical direction.
  • the surface to be photographed 40 shown in FIG. 3 varies depending on the distance between the event camera 2 and the black-and-white subject 4, but usually has a sufficiently large area as compared with the black-and-white subject 4 (QR code). Therefore, in FIG. 3, only a part of the surface to be photographed 40 is shown.
  • the image of FIG. 11 is easy to understand.
  • the size of the surface to be photographed 40 is 128 mm in the horizontal direction and 72 mm in the vertical direction
  • 0.01 mm square of the surface to be photographed 40 corresponds to one pixel of the event camera 2.
  • the event camera 2 when the brightness (brightness) changes (at the time of ignition), the event camera 2 has the coordinates x and y of the pixel in which the change occurs and the polarity which is the change in the brightness (brightness).
  • the value p and the firing time t are recorded as event data D. Therefore, if there is no ignition, the event camera 2 does not record anything new, and the event data D is not updated. On the other hand, if there is an ignition, the ignition is recorded at an extremely short timing. Depending on the performance of the event camera 2, it is possible to record even one microsecond (one millionth of a second), for example.
  • the x-coordinate is 1
  • the y-coordinate is a pixel of Y-1 (719 in the example of 720 pixels)
  • the event (ignition) in which the polarity value p changes to 1 is 0.5 millisecond (firing). It is recorded that it occurred in a time of (0.5 thousandths of a second). Further, even if the x-coordinate is X (1280 in the example of 1280 pixels) and the y-coordinate is Y-1 (719), the ignition in which the polarity value p changes to 0 is recorded in the 0.5 millisecond time.
  • the event camera 2 detects a change in brightness (brightness), not an absolute value of brightness (brightness).
  • the amount of change in brightness is detected in the order of log. For example, assuming that the brightness (brightness) is decomposed by 128 between black (0) and white (1), the threshold value for detecting the change is set to 10/128. In this case, the polarity value p of "1" is recorded when the brightness becomes 10/128 or more brighter than the brightness before the change, and the polarity value p of "0" is recorded when the brightness becomes darker than 10/128 or more.
  • the polarity value p of "0” is recorded because it is darker than the threshold value, but the brightness ( When the absolute value of (brightness) is 0 before the change and 0.3 after the change, it is brighter than the threshold value, so the polarity value p of “1” is recorded. That is, even if the absolute value of the brightness (brightness) is 0.3, the polarity value p to be recorded may be "0" or "1".
  • FIG. 6 shows a luminance array list L in a state where the time is 1 millisecond.
  • a change (ignition) in brightness (brightness) occurs between a pixel having an x-coordinate of 1 and a y-coordinate of Y-1 (719) and a pixel having an x-coordinate of X (1280) and a y-coordinate of Y-1 (719). Since it occurred in the time of 0.5 millisecond, the time stamp T is set to "0.5 millisecond" and the polarity values p are set to "1" and "0", respectively. In a pixel with an x-coordinate of 2 and a y-coordinate of Y-1 (719), the change in brightness (brightness) (ignition) occurs twice in the 0.7 millisecond time and the 1 millisecond time. In 5, each time stamp T is recorded. Further, in the example of FIG. 6 showing the state of 1 millisecond, the polarity value p “1” and the time stamp T “1 millisecond” are recorded.
  • the event camera 2 detects a change in brightness (brightness), so if there is no change, nothing is detected. Therefore, if the black-and-white subject 4 (QR code) is stationary without moving, nothing is detected. The event data D is recorded only when the black-and-white subject 4 (QR code) moves.
  • the black-and-white subject 4 Assuming that the width of the white square cell and the black square cell of the QR code is 1 mm, one cell of the black-and-white subject 4 (QR code) corresponds to 100 pixels of the event camera 2. This means that if the surface to be imaged 40 that receives light in one pixel is represented by a square, one side is 0.1 mm.
  • the black-and-white subject 4 moves 10 centimeters per second, for example, it moves 100 millimeters per second, which is equivalent to moving 1000 pixels per second. That is, the edge portion of the cell of the black-and-white subject 4 (QR code) moves in the relative motion direction M by 1000 pixels per second. If it is per pixel, the edge portion of the cell of the black-and-white subject 4 (QR code) will pass in 1 millisecond.
  • the "edge portion of the cell of the black-and-white subject 4 (QR code)" means the boundary portion between the white cell and the black cell, and from the viewpoint of the white cell, the boundary portion where the black cell ends and the white cell starts. And there is a boundary where the white cell ends and the black cell starts. Similarly, from the viewpoint of the black cell, the start portion and the end portion serve as a boundary portion.
  • one pixel of the event camera 2 changes from a state in which the entire pixel is black (luminance value 0) (time 0 millisecond) to a state in which the entire pixel is white (luminance value 1) (time 1 millisecond).
  • the ignition time t is recorded.
  • one side of one cell corresponds to 10 pixels of the event camera 2 in the black-and-white subject 4 (QR code) and the 10 pixels correspond to the relative motion direction M, it is the first pixel.
  • the final tenth pixel corresponds to the edge portion of the cell of the black-and-white subject 4 (QR code), and black-and-white inversion can be detected.
  • the second to ninth pixels do not correspond to the edge portion of the cell of the black-and-white subject 4 (QR code), and black-and-white inversion does not occur.
  • the coordinates x, y, the polarity value p "1" and the firing time t are recorded 10 times (time 0 msec to time 1 msec) in the first first pixel, and the firing time t is recorded in the second to ninth pixels. Since there is no change in brightness (brightness) beyond the threshold value, the event data D is not recorded. Since the last tenth pixel shifts from the white (luminance value 1) cell to the black (luminance value 0) cell, there is a change in brightness (brightness) above the threshold value, and the coordinates x, y and the polarity value p "0". And the ignition time t are recorded.
  • the above description is based on the premise that the black-and-white subject 4 (QR code) changes from a white cell to a black cell in only one cell, but in an actual black-and-white subject 4 (QR code), a plurality of white cells are used. It is normal for cells and black cells to be continuous. Therefore, the number of pixels that actually detect the edge portion of the cell of the black-and-white subject 4 (QR code) is smaller.
  • the cell is white or black and there is no neutral color, but the brightness (brightness) of the other part, for example, the part on which the black-and-white subject 4 (QR code) is printed, is random. Changes to. Therefore, it is rare to maintain white (luminance value 1) or black (luminance value 0) for several milliseconds.
  • the event camera 2 captures a black-and-white subject 4 (QR code) to be captured.
  • the black-and-white subject 4 (QR code) is moving in a constant relative motion direction M at a speed of, for example, 10 centimeters per second. Of course, 1 to 10 centimeters per second is an example, and it is possible to move at a higher speed. More important is not the physical speed of the black-and-white subject 4 (QR code), but the change in the viewing angle seen from the event camera 2. If the distance between the event camera 2 and the black-and-white subject 4 is short, faster movement can be detected.
  • the event camera 2 When the event camera 2 detects a change in brightness (brightness), it outputs event data D corresponding to the change to the image restoration device 3.
  • the event data D includes the coordinates x and y of the pixel in which the event occurred, the polarity value p (0,1) in which the brightness (brightness) changes beyond the threshold value, and the occurrence of the event, as shown in FIG.
  • the firing time t (time stamp T) is recorded.
  • FIG. 1 shows the hardware of the image restoration device 3, and the memory 10 and the processor 12 are connected by a bus.
  • FIG. 2 shows a functional block of software of the image restoration device 3, which includes an initialization block 100, an update block 120, a correction block 140, and an output block 160.
  • the event data D is recorded in the memory 10.
  • FIG. 6 is an example in which the event data D shown in FIG. 5 is recorded, and the brightness array list L of the memory 10 shows changes in the pixel coordinates x and y of the event camera 2 and the brightness (brightness) equal to or greater than the threshold value.
  • the generated polarity value p (0,1) and the firing time t (time stamp T) at which the event occurred are recorded.
  • the initialization block 100 initializes the data in the memory 10.
  • Initialization means that the time stamp T is set to 0 at the coordinates x and y of all the pixels of the event camera 2.
  • the resolution of the event camera 2 is, for example, 0.1 millisecond, 0 indicates 0 millisecond.
  • the brightness value I is set to an intermediate value m that is neither "0" nor "1" at the coordinates x and y of all the pixels of the event camera 2.
  • "0.5" is adopted as the intermediate value m.
  • FIG. 7 shows an example of the luminance array list L of the initialized memory 10.
  • the luminance value I is "0.5" and the time stamp T is "0".
  • the operation performed in the initialization block 100 corresponds to step S101 in the flowchart of FIG.
  • the update block 120 acquires the event data D from the event camera 2 and overwrites (updates) the data in the memory 10. For example, when the event data D of FIG. 5 is acquired, the luminance array list L of the memory 10 is updated as shown in FIG. 8 when the time is 0.5 millisecond, and is updated as shown in FIG. 6 when the time is 1 millisecond. It is updated like. Focusing on the coordinates where the x-coordinate is 2 and the y-coordinate is Y-1, the ignition has not yet occurred in the state where the time is 0.5 milliseconds (Fig. 8), and the brightness value I is "0.5". , The time stamp T is "0 millisecond".
  • the black-and-white subject 4 is a QR code
  • the firing coordinates xf and yf are pixels shown in black (luminance value I: “0”) or white (luminance value I: “1”) in the same figure. Then, the operation performed in the update block 120 corresponds to step S102 in the flowchart of FIG.
  • the correction block 140 performs the second sub-correction process in addition to the first sub-correction process, which is the main process, and the memory 10 is performed twice in total.
  • the brightness array list L of is corrected.
  • the firing coordinates xf and yf due to the edge of the cell of the black-and-white subject 4 (QR code) are white or black straight lines.
  • the black straight line and the white straight line are the firing coordinates xf and yf. Therefore, in the first sub-correction process, a white straight line and a black straight line are detected from the firing coordinates xf and yf.
  • the black vertical line on the left side of the firing coordinates xf and yf and the lower left part from the lower black horizontal line are white, and this white part is the moving direction of the black and white subject 4 (QR code). It only represents the image of, and does not actually have the firing coordinates xf and yf.
  • the shooting time varies depending on the number of pixels, the cell size of the black-and-white subject 4 (QR code), the relative motion direction M, and the relative motion speed, but is within a predetermined allowable time range.
  • the widths of the white straight line and the black straight line in the black-and-white subject 4 (QR code) correspond to a predetermined allowable time range.
  • the intermediate coordinates xm with a brightness value I of "0.5" are set as non-ignition coordinates xn and yn in which ignition does not occur in a portion other than the black-and-white subject 4 (QR code) except for the white portion.
  • QR code black-and-white subject 4
  • the ignition coordinates xf and yf are usually set at the position where the object such as a part moves.
  • the change in brightness (brightness) is random in parts other than the black-and-white subject 4 (QR code), and the pixels that detect the change in brightness (brightness) in the bright or dark direction are arranged linearly. It usually doesn't happen. Further, since the brightness (brightness) does not change in the region where the object does not move, the brightness value I remains at the intermediate coordinates xm and ym of "0.5".
  • the edge of the cell of the black-and-white subject 4 (QR code) can be specified.
  • the non-ignition coordinates xn and yn existing as the intermediate coordinates xm and ym having the luminance value I of "0.5" within the range in which the black and white subject 4 (QR code) exists are the parts where the black and white inversion does not occur. In the actual QR code cell, it is white or black.
  • the second sub-correction process of this example is a correction process in which the intermediate coordinates xm and ym having the luminance value I of "0.5" are set to the firing coordinates xf and yf of the luminance value I of "1" or "0".
  • the coordinates at which the luminance value I changes from “1" to “0.5” or the coordinates at which the luminance value I changes from "0" to “0.5” in the relative motion direction M are set as the attention coordinates xc and yc.
  • the firing coordinates xf and yf are set so that the same brightness value I is obtained from the attention coordinates xc and yc in the direction opposite to the relative motion direction M.
  • the gray is replaced with black in the direction O opposite to the relative motion direction M.
  • gray is replaced with white in the direction O opposite to the relative motion direction M.
  • FIG. 11 shows a black-and-white subject 4 (QR code) that has undergone the second sub-correction process.
  • the first sub-correction process which is the main process, is a process for detecting the edge portion of the cell of the QR code, and therefore is not normally performed at a position where the black-and-white subject 4 (QR code) does not exist.
  • the second sub-correction process is performed only on the portion determined to be the region of the black-and-white subject 4 (QR code) by the first sub-correction process, the black-and-white subject 4 (QR code) does not exist in this second sub-correction process as well. Not done in position.
  • a process of omitting the random existence and displaying the black-and-white subject 4 (QR code) in white is performed so that the black-and-white subject 4 (QR code) can be grasped more accurately in the field of view of the event camera 2.
  • the intermediate coordinates xm and ym having a brightness value I of "0.5" remain, but the intermediate coordinates xm and ym of such a part are also displayed in white. However, it is done.
  • the line extending to the lower left of the black-and-white subject 4 (QR code) merely indicates the relative motion direction M of the black-and-white subject 4 (QR code), and is not a line obtained by the second sub-correction process. Also, it does not represent the shooting time.
  • the above first sub-correction process and second sub-correction process are performed in the correction block 140.
  • the operation of the correction block 140 is step S103 of the flowchart of FIG.
  • the output block 160 outputs an image that has undergone correction processing as shown in FIG. As described above, white cells and black cells are displayed in the area where the black-and-white subject 4 (QR code) exists. In the area where the black-and-white subject 4 (QR code) does not exist, white (luminance value I is "1") pixels and black (luminance value I is "0") pixels are randomly present or unchanged. It is white. In any case, since the intermediate coordinates xm and ym having the luminance value I of "0.5" do not exist, the binary image B is output.
  • the operation in the output block 160 corresponds to step S104 in the flowchart of FIG. In the example of FIG. 11, a process of correcting a part other than the black-and-white subject 4 (QR code) to white was performed, but the color should be easy to understand in black and white, and may be black or another color such as green. Good.
  • the information included in the black-and-white subject 4 is read from the output binary image B. Since the black-and-white subject 4 (QR code) has the finding pattern 4a in three places, white (luminance value I is "1") pixels and black (luminance value I is "0") pixels are randomly present. It is easy in terms of software to detect the finding pattern 4a having a special shape from the inside. Then, when the position of the finding pattern 4a is known, the brightness at the center position of the cell of the black-and-white subject 4 (QR code) is white (luminance value I is "1") or black (luminance value I is "0"). It can be easily calculated, and the information of the black-and-white subject 4 (QR code) can be read out.
  • the black-and-white subject 4 (QR code) since the region where the black-and-white subject 4 (QR code) exists is specified by the first sub-correction processing and the second sub-correction processing is performed in that region, the black-and-white subject 4 (QR code) is actually used.
  • the black-and-white subject 4 (QR code) can be restored "before reading everything (after reading a minimum of 2 pixels)". Since the restored information is the binary image B, there is no need to perform binarization processing again. Therefore, according to the present disclosure, the information of the black-and-white subject 4 (QR code) can be read out in an extremely short shooting time (minimum 1 microsecond).
  • the cell of the black-and-white subject 4 (QR code) is set only by the first sub-correction process without performing the second sub-correction process. It is also possible to detect it. That is, in the examples of FIGS. 9 and 10, the thickness of the straight line corresponds to the permissible time range, but by lengthening this permissible time range, the entire cell of the black-and-white subject 4 (QR code) becomes white or black. It becomes possible. In this sense, the first sub-correction process is the main process.
  • the second embodiment is a modification of the first embodiment.
  • the image restoration flow according to the second embodiment executes S202 instead of S102.
  • the update block 120 performs a partial update process of the luminance array list L according to the event data D for each event until the same event having the same firing coordinates xf, yf and polarity value p is fired a plurality of times in succession. skip.
  • the partial update process skipped at this time is an overwrite operation based on the polarity value p and the firing time t.
  • the update block 120 sets the brightness value I of the firing coordinates xf, yf in the brightness array list L to the same polarity value. Overwrite operation is performed by p. At the same time, in such continuous firing, the update block 120 overwrites the time stamps T of the firing coordinates xf and yf in the luminance array list L with the firing time t of the last event of the continuous firing.
  • the number of consecutive events in which the update process is skipped by the update block 120 is set to an appropriate number capable of suppressing an error in overwriting the polarity value p due to noise ignition such as disturbance.
  • the update process by the update block 120 is executed in the same manner as in the first embodiment except for the overwrite calculation of the polarity value p and the ignition time t. In such a second embodiment, S202 corresponds to the "update process".
  • the update of the luminance array list L is skipped until the same event of the firing coordinates xf, yf and the polarity value p is fired a plurality of times in succession. According to this, it is possible to suppress the restoration failure of the binary image B due to the error of overwriting the polarity value p due to the ignition of noise.
  • the possibility that any pixel detects a decrease in brightness (brightness) above the threshold value due to a change in external light, dirt, or the like cannot be excluded. Furthermore, even if there is no change in light, there is a possibility that external noise will be added to the constant voltage analog output signal from the event camera 2.
  • the pixel whose brightness (brightness) decrease is detected or noise is added records the ignition time t (time stamp T) in the event data D together with the coordinates x, y and the polarity value p "0".
  • the coordinates of the pixel become the firing coordinates xf and yf, and the luminance value I also becomes “0”.
  • the coordinates of such pixels originally have no change in brightness (brightness)
  • the white part of the cell of the black-and-white subject 4 (QR code) should continue, and the non-firing coordinates xn, yn, and the brightness.
  • the value I should be the intermediate coordinates xm, ym indicating the intermediate value m of "0.5".
  • a predetermined pixel can detect a change in brightness (brightness) a plurality of times.
  • the pixel whose brightness (brightness) changes continuously over a plurality of times detects the edge portion of the cell of the black-and-white subject 4 (QR code).
  • a pixel whose brightness (brightness) changes sporadically has a high possibility of erroneously detecting a change in brightness that does not originally occur or being affected by external noise.
  • the second embodiment utilizes this characteristic. Even if the brightness (brightness) changes at a specific pixel (specific coordinates), the memory in the update block 120 unless the polarity value p in the same direction (“0” or “1”) continues multiple times. The brightness array list L of 10 is not updated. This is step S202 of the flowchart of FIG.
  • the correction block 140 can perform the first sub-correction process and the second sub-correction process using highly accurate information, and the filtering process can be abolished or reduced. As a result, the processing time can be shortened and the reading error can be reduced.
  • the number of consecutive times is determined by the number of pixels of the event camera 2, the area of the surface to be photographed 40, the cell size of the black-and-white subject 4 (QR code), and the relative motion direction M of the black-and-white subject 4 (QR code). It will be determined as appropriate depending on the moving speed of. For example, it is preferable that the number of consecutive times is a number that can sufficiently detect the change in brightness due to the edge of the black-and-white subject 4 (QR code).
  • the image restoration device 3 of the modified example may be a dedicated computer configured to include at least one of a digital circuit and an analog circuit as a processor.
  • digital circuits include, for example, ASIC (Application Specific Integrated Circuit), FPGA (Field Programmable Gate Array), SOC (System on a Chip), PGA (Programmable Gate Array), CPLD (Complex Programmable Logic Device), and the like. Of these, at least one. Further, such a digital circuit may include a memory for storing a program.
  • the luminance values I of the non-ignition coordinates xn and yn in the luminance array list L may be retained regardless of the time difference between the ignition time t and the time stamp T.
  • the second sub-correction process of the correction blocks 140 and S103 may be skipped or always omitted if necessary.
  • the direction of the optical flow generated during the shooting period due to the relative movement with respect to the event camera 2 may be different in a part of the surface to be photographed by the event camera 2.
  • the brightness value I due to the fact that a part of the optical flow directions is different based on the relative motion direction M of the black-and-white subject 4 with respect to the event camera 2.
  • the error may be corrected for the luminance array list L.
  • the black-and-white subject 4 other than the planar two-dimensional code that moves relative to the event camera 2 within the shooting period may be the restoration target of the binary image B.
  • the binary image B is based on the event data D output when the black-and-white subject 4 existing around the moving body is photographed by the event camera 2 mounted on the moving body such as a vehicle. It may be restored.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)

Abstract

画像復元装置(3)は、一対の極性値及び中間値のうちいずれかの値を画素座標毎の輝度値として保存する輝度配列リスト(L)において、各画素座標の輝度値を中間値に初期化する初期化ブロック(100)を備える。また、画像復元装置(3)は、その初期化された輝度配列リスト(L)をイベント毎の画素座標及び極性値に応じて更新する更新ブロック(120)と、更新ブロック(120)により撮影期間に亘って更新された輝度配列リスト(L)をバイナリ画像(B)として出力する出力ブロック(160)とを備える。更新ブロック(120)で実行される更新によって、輝度配列リスト(L)における、イベントの発火した発火座標の輝度値が、イベントの極性値により上書き演算される。加えて、その更新によって、輝度配列リスト(L)における、発火座標を除いた非発火座標の輝度値が保持される。

Description

画像復元装置、画像復元方法、及び画像復元プログラム
 本開示は、イベントカメラからの出力に基づきバイナリ画像を復元する、画像復元技術に関する。
 人の知覚システムを模倣した光学カメラとしては、時間分解能に優れたイベントカメラ(Event Based Camera or simply, Event Camera)が、知られている。イベントカメラは被写体を光学的に撮影し、少なくとも一つのカメラ画素において輝度が変化したイベントの発火時刻と関連付けて、当該イベントの画素座標及び極性値を出力する。
 こうしたイベントカメラの出力に基づき輝度画像を復元する技術は、例えば非特許文献1等に開示されている。ここで非特許文献1の開示技術では、イベントカメラに対して相対運動する被写体のオプティカルフロー及び輝度を、コスト関数の最適化により同時に推定することで、輝度画像を復元している。
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.
 しかし、非特許文献1の開示技術がオプティカルフロー及び輝度を同時推定する対象は、被写体の被撮影面のうち相対運動によってカメラ画素が輝度変化を感知可能なエッジ部分に限られる。そのため、被写体の被撮影面全域にまで輝度推定を拡張して輝度画像を復元するには、演算処理が複雑となるため、演算負荷が増大してしまう。
 本開示の課題は、画像復元に必要な演算負荷を低減する画像復元装置を、提供することにある。本開示の別の課題は、画像復元に必要な演算負荷を低減する画像復元方法を、提供することにある。本開示のさらに別の課題は、画像復元に必要な演算負荷を低減する画像復元プログラムを、提供することにある。
 以下、課題を解決するための本開示の技術的手段について、説明する。なお、特許請求の範囲及び本欄に記載された括弧内の符号は、後に詳述する実施形態に記載された具体的手段との対応関係を示すものであり、本開示の技術的範囲を限定するものではない。
 本開示の第1態様は、
 撮影期間内に相対運動する白黒被写体(4)を撮影したイベントカメラ(2)から、少なくとも一つのカメラ画素において輝度が変化したイベントの発火時刻(t)と関連付けて出力される、イベントの画素座標(x,y)及び極性値(p)に基づきバイナリ画像(B)を復元する画像復元装置(3)であって、
 一対の極性値及びそれらの中間値のうち、いずれかの値を画素座標毎の輝度値として保存する輝度配列リスト(L)において、各画素座標の輝度値を中間値に初期化する初期化部(100)と、
 初期化部により初期化された輝度配列リストを、イベント毎の画素座標及び極性値に応じて更新する更新部(120)と、
 更新部により撮影期間に亘って更新された輝度配列リストを、バイナリ画像として出力する出力部(160)とを、備え、
 更新部による更新は、輝度配列リストにおいてイベントの発火した画素座標である発火座標の輝度値を、イベントの極性値により上書き演算する一方、輝度配列リストにおいて発火座標を除いた画素座標である非発火座標の輝度値を、保持する。
 本開示の第2態様は、
 撮影期間内に相対運動する白黒被写体(4)を撮影したイベントカメラ(2)から、少なくとも一つのカメラ画素において輝度が変化したイベントの発火時刻(t)と関連付けて出力される、イベントの画素座標(x,y)及び極性値(p)に基づきバイナリ画像(B)を復元するために、プロセッサ(12)により実行される画像復元方法であって、
 一対の極性値及びそれらの中間値のうち、いずれかの値を画素座標毎の輝度値として保存する輝度配列リスト(L)において、各画素座標の輝度値を中間値に初期化する初期化プロセス(S101)と、
 初期化プロセスにより初期化された輝度配列リストを、イベント毎の画素座標及び極性値に応じて更新する更新プロセス(S102,S202)と、
 更新プロセスにより撮影期間に亘って更新された輝度配列リストを、バイナリ画像として出力する出力プロセス(S104)とを、含み、
 更新プロセスによる更新は、輝度配列リストにおいてイベントの発火した画素座標である発火座標の輝度値を、イベントの極性値により上書き演算する一方、輝度配列リストにおいて発火座標を除いた画素座標である非発火座標の輝度値を、保持する。
 本開示の第3態様は、
 撮影期間内に相対運動する白黒被写体(4)を撮影したイベントカメラ(2)から、少なくとも一つのカメラ画素において輝度が変化したイベントの発火時刻(t)と関連付けて出力される、イベントの画素座標(x,y)及び極性値(p)に基づきバイナリ画像(B)を復元するために、記憶媒体(10)に格納され、プロセッサ(12)に実行させる命令を含む画像復元プログラムであって、
 命令は、
 一対の極性値及びそれらの中間値のうち、いずれかの値を画素座標毎の輝度値として保存する輝度配列リスト(L)において、各画素座標の輝度値を中間値に初期化させる初期化プロセス(S101)と、
 初期化プロセスにより初期化された輝度配列リストを、イベント毎の画素座標及び極性値に応じて更新させる更新プロセス(S102,S202)と、
 更新プロセスにより撮影期間に亘って更新された輝度配列リストを、バイナリ画像として出力させる出力プロセス(S104)とを、含み、
 更新プロセスによる更新は、輝度配列リストにおいてイベントの発火した画素座標である発火座標の輝度値を、イベントの極性値により上書き演算する一方、輝度配列リストにおいて発火座標を除いた画素座標である非発火座標の輝度値を、保持させる。
 これら第1~第3態様によると、各画素座標の輝度値が中間値に初期化された輝度配列リストに対して、イベント毎の画素座標及び極性値に応じた更新は、発火座標の輝度値をイベントの極性値により上書き演算する。このとき輝度値に上書き演算される極性値は、白黒被写体の被撮影面のうち相対移動によってカメラ画素にイベントを発火させる部分の実輝度を、表し得る。また第1~第3態様によると、初期化された輝度配列リストに対する更新は、そうした上書き演算の一方で、発火座標を除く非発火座標の輝度値を保持する。その結果、極性値の上書き演算後に発火座標から切り替わった非発火座標に保持される当該極性値は、被撮影面のうち相対移動によってもイベントを発火させない部分の実輝度を、表し得る。
 これらのことから、第1~第3態様により撮影期間に亘って更新された輝度配列リストは、被撮影面に対応する各画素座標に、それぞれ実輝度に応じた極性値を保存したバイナリ画像として、出力され得る。以上によれば、上書き演算という簡易な演算処理によってバイナリ画像を復元することができるので、画像復元に必要な演算負荷を低減することが可能となる。
 添付図面において:
第1実施形態による画像システムの全体構成を示すブロック図である。 第2実施形態による画像システムにおいて画像復元装置の詳細構成を示すブロック図である。 第1実施形態によるイベントカメラ及び白黒被写体の相対運動関係を模式的に説明するための斜視図である。 第1実施形態による被写体を示す平面図である。 第1実施形態によるイベントデータを説明するための模式図である。 第1実施形態による輝度配列リストを説明するための模式図である。 第1実施形態による初期化処理を説明するための模式図である。 第1実施形態による更新処理を説明するための模式図である。 第1実施形態による第1サブ補正処理を説明するための模式図である。 第1実施形態による第2サブ補正処理を説明するための模式図である。 第1実施形態によるバイナリ画像を説明するための模式図である。 第1実施形態による画像復元方法を示すフローチャートである。 第2実施形態による画像復元方法を示すフローチャートである。
 以下、複数の実施形態を図面に基づいて説明する。なお、各実施形態において対応する構成要素には同一の符号を付すことで、重複する説明を省略する場合がある。各実施形態において構成の一部分のみを説明している場合、当該構成の他の部分については、先行して説明した他の実施形態の構成を適用することができる。また、各実施形態の説明において明示している構成の組み合わせばかりではなく、特に組み合わせに支障が生じなければ、明示していなくても複数の実施形態の構成同士を部分的に組み合わせることができる。
 (第1実施形態)
 図1,2に示すように第1実施形態による画像システム1は、イベントカメラ(Event Based Camera)2及び画像復元装置3を含んで構成されている。画像システム1では、二階調の白黒被写体4を撮影したイベントカメラ2からの出力に基づき、二階調輝度画像としてのバイナリ画像Bが画像復元装置3により復元される。この画像復元装置3により復元されるバイナリ画像Bでは、白黒被写体4のうち黒色部分を表す輝度値(即ち、階調値)が「0」であり、同被写体4のうち白色部分を表す輝度値が「1」であるとする。
 イベントカメラ2は、撮影対象となる白黒被写体4との間において特定の相対運動関係の成立する状態に、設置される。特定の相対運動関係とは、イベントカメラ2に対する相対運動により撮影期間内に発生するオプティカルフローの方向が、白黒被写体4のうちイベントカメラ2による被撮影面40の全域において同一となる所謂、並進運動関係である。この並進運動関係の一例は、位置固定されたイベントカメラ2に対して平面状の白黒被写体4が、カメラ軸と直交する一方向Mのみへ相対的に直線運動する、例えば図3の関係となる。そこで平面状の白黒被写体4として、図4に示すように白と黒の二階調で描画された二次元コードが、例えば工場製品に印刷又は貼着されてコンベア移動等により直線運動しつつ、位置固定のイベントカメラ2により撮影される並進運動関係が、本実施形態では想定される。なお、図4に示す二次元コードは、QRコード(株式会社デンソーウェーブの登録商標)であるが、例えばバーコード等であってもよい。
 図3に示すようにイベントカメラ2は、所定の撮影期間内に相対運動する白黒被写体4の被撮影面40を、当該撮影期間に亘ってカメラ画角内に収める。イベントカメラ2は、水平方向と垂直方向とに二次元配列された複数のカメラ画素により、カメラ画角内からの入射光を感知する。イベントカメラ2では、カメラ画素毎に感知される入射光の輝度変化が、撮影期間において時系列に監視される。その結果、少なくとも一つのカメラ画素における増大方向又は減少方向への輝度変化量がlogオーダーでの閾値以上となった場合には、イベントが発火したとして、イベントデータDがイベントカメラ2から出力される。図5に示すようにイベントデータDは、イベントの発火時刻tと関連付けて、同イベントの画素座標x,y及び極性値pを出力するためのデータセットとして、生成される。なお、図5及び後述の図6~8では、縦横における各座標x,yの最大値がそれぞれX,Yにより表されている。
 画素座標x,yは、閾値以上に輝度変化したカメラ画素の縦横二次元位置を、座標値により規定する。極性値pは、閾値以上に輝度変化した増減の方向を、二値により規定する。特に本実施形態では、黒色から白色への輝度増大方向を表した極性値pが「1」に規定される一方、白色から黒色への減少方向を表した極性値pが「0」に規定される。このようにイベントデータDでは、イベントの発火した画素座標x,yにおける輝度変化の増減方向が、一対の極性値pにより表される。
 図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等のうち、少なくとも一種類をコアとして含む。
 プロセッサ12は、メモリ10に格納された画像復元プログラムに含まれる複数の命令を、実行する。これにより画像復元装置3は、イベントカメラ2から出力されるイベントデータDに基づきバイナリ画像Bを復元するための機能ブロックを、複数構築する。このように画像復元装置3では、バイナリ画像Bを復元するためにメモリ10に格納された画像復元プログラムの複数の命令をプロセッサ12が順次又は並列に実行することで、複数の機能ブロックが構築される。画像復元装置3により構築される複数の機能ブロックには、図2に示すように初期化ブロック100、更新ブロック120、補正ブロック140及び出力ブロック160が、含まれる。
 初期化ブロック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に規定される。
 図7に示すように初期化ブロック100は、輝度配列リストLにおける各画素座標x,yの輝度値Iを全て、中間値mに初期化する。それと共に初期化ブロック100は、輝度配列リストLにおける各画素座標x,yのタイムスタンプTを全て、リセット値としての「0」に初期化する。これらの初期化処理は、イベントカメラ2による撮影期間の開始前又は開始に伴って、初期化ブロック100により実現される。
 図2に示す更新ブロック120は、撮影期間内におけるイベント毎のイベントデータDを、イベントカメラ2から取得する。更新ブロック120は、イベントカメラ2から発火時刻t毎に出力されるイベントデータDを、それぞれ同時刻t毎に取得してもよい。更新ブロック120は、イベントカメラ2から発火時刻t毎に出力されて、例えば撮影期間内等の設定期間内はメモリ10にバッファリングされたイベントデータDを、当該設定期間後に纏めて取得してもよい。
 更新ブロック120は、イベントデータDを取得したイベント毎に当該データDに含まれる、発火時刻tと画素座標x,yと極性値pとに応じて、輝度配列リストLを更新する。更新ブロック120は、イベントデータDの取得される発火時刻t毎に、輝度配列リストLを更新してもよい。更新ブロック120は、バッファリングされたイベントデータDから発火時刻t毎のデータを順次抽出することで、当該抽出毎に輝度配列リストLを更新してもよい。以下では、いずれの場合の更新処理もイベント毎の処理として、詳細に説明する。
 図8に示すように更新処理の更新ブロック120は、イベントデータDにおける発火時刻tの画素座標x,yに対応した輝度配列リストLの画素座標x,yを、イベントの発火した発火時刻tでの発火座標xf,yfに設定する。それと共に更新ブロック120は、輝度配列リストLにおいて発火座標xf,yfを除いた全ての画素座標x,yを、発火時刻tでの非発火座標xn,ynに設定する。
 更新処理の更新ブロック120は、輝度配列リストLにおける発火時刻tでの発火座標xf,yfの輝度値Iを、イベントデータDにおける発火時刻tでのイベントの極性値pにより上書き演算する。それと共に更新ブロック120は、輝度配列リストLにおける発火時刻tでの発火座標xf,yfのタイムスタンプTを、イベントデータDにおけるイベントの発火時刻tにより上書き演算する。このとき本実施形態の更新ブロック120は、撮影期間の開始時刻を基準の「0」秒として、発火時刻tを当該開始時刻からの経過時間へと置き換えてタイムスタンプTに保存する。
 これら上書き一方で更新処理の更新ブロック120は、輝度配列リストLにおける発火時刻tでの非発火座標xn,ynのうち、発火時刻tとタイムスタンプTとの時間差が許容時間範囲内にある座標の輝度値Iを、発火時刻tにおける保存値のまま保持する。その結果、輝度配列リストLにおいて発火座標xf,yfから切り替わった非発火座標xn,ynの輝度値Iは、当該切り替わり前の座標xf,yfの発火時刻tから許容時間範囲内では、保持されることとなる。
 但し、輝度配列リストLにおける発火時刻tでの非発火座標xn,ynのうち、発火時刻tとタイムスタンプTとの時間差が許容時間範囲外にある座標の輝度値Iについては、上書き演算により更新ブロック120が中間値mへと戻す。その結果、輝度配列リストLにおいて発火座標xf,yfから切り替わった非発火座標xn,ynの輝度値Iは、当該切り替わり前の座標xf,yfの発火時刻tから許容時間範囲外では、中間値mにより上書き演算されることとなる。
 なお、このように時間差に基づいて更新処理の内容を切り替えるための許容時間範囲は、輝度値Iを保持すべき時間差の上限値以下に設定されてもよいし、輝度値Iを中間値mにより上書き演算すべき時間差の下限値未満に設定されてもよい。
 図2に示す補正ブロック140は、更新ブロック120により撮影期間に亘って更新された輝度配列リストLを、補正する。即ち、補正ブロック140は、撮影期間内における全イベントのイベントデータDに応じて更新された輝度配列リストLを、補正する。以下では、この補正ブロック140による補正処理を、全更新後の輝度配列リストLに対する処理として、詳細に説明する。
 補正処理の補正ブロック140は、全更新後の輝度配列リストLにおいて中間値mが保存された画素座標x,yを全て、中間座標xm,ymに設定する。この設定下において更新ブロック120は、輝度配列リストLにおける中間座標xm,ymの輝度値Iを中間値mから適正値へと補正するために、第1サブ補正処理及び第2サブ補正処理を実行する。以下、第1サブ補正処理を説明するために図9は、輝度配列リストLの全体を画像イメージにて示している。一方、第2サブ補正処理を説明するために図10は、輝度配列リストLの一部を画像イメージにて示している。
 第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サブ補正処理はメインの処理である。
 第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を特定することができる。
 図2に示す出力ブロック160は、更新ブロック120により撮影期間に亘って更新されるのに加えて補正ブロック140により補正された輝度配列リストLを、バイナリ画像Bとして出力する。即ち出力ブロック160は、撮影期間内における全発火時刻tでのイベントデータDにより更新されてから中間座標xm,ymがいずれかの極性値pに補正された最新の輝度配列リストLを、図11に示すように出力するバイナリ画像Bとして復元する。
 ここまでの説明から第1実施形態では、初期化ブロック100が「初期化部」に相当し、更新ブロック120が「更新部」に相当する。また第1実施形態では、補正ブロック140が「補正部」に相当し、出力ブロック160が「出力部」に相当する。
 このようなブロック100,120,140,160の共同により画像復元装置3がバイナリ画像Bを復元するための画像復元方法のフローである画像復元フローを、図12に従って説明する。なお、本画像復元フローは、イベントカメラ2による撮影期間の開始前又は開始に伴って、開始される。また本画像復元フローにおいて「S」とは、画像復元プログラムに含まれた複数命令によって実行される、同フローの複数ステップを意味する。
 S101において初期化ブロック100は、メモリ10に準備した輝度配列リストLを初期化する。このとき初期化ブロック100は、輝度配列リストLにおける各画素座標x,yの輝度値I及びタイムスタンプTを、それぞれ中間値m及びリセット値に初期化する。
 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により上書き演算されることとなる。
 さらにこれら上書き演算の一方で、イベント毎の更新処理としてS102の更新ブロック120は、輝度配列リストLにおける非発火座標xn,ynのうち、発火時刻tとタイムスタンプTとの時間差が許容時間範囲内となる座標の輝度値Iを、保持する。その結果、輝度配列リストLにおいて発火座標xf,yfから切り替わった非発火座標xn,ynの輝度値Iは、切り替わり前座標xf,yfの発火時刻tから許容時間範囲内では、保持されることとなる。
 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サブ補正処理により処理速度を向上させることができる。
 S103に続くS104において出力ブロック160は、S102により撮影期間に亘って更新されてから補正ブロック140により補正された輝度配列リストLを、バイナリ画像Bとして出力する。以上により、一回の撮影期間に対する画像復元フローが終了する。
 ここまでの説明から第1実施形態では、S101が「初期化プロセス」に相当し、S102が「更新プロセス」に相当する。また第1実施形態では、S103が「補正プロセス」に相当し、S104が「出力プロセス」に相当する。
 (作用効果)
 以上説明した第1実施形態の作用効果を、以下に説明する。
 第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のうち相対移動によってもイベントを発火させない非発火部分の実輝度を、表し得る。
 これらのことから、第1実施形態により撮影期間に亘って更新された輝度配列リストLは、被撮影面40に対応する各画素座標x,yに、それぞれ実輝度に応じた極性値pを保存したバイナリ画像Bとして、出力され得る。以上によれば、上書き演算という簡易な演算処理によってバイナリ画像Bを復元することができるので、画像復元に必要な演算負荷を低減することが可能となる。
 第1実施形態によると、撮影期間に亘って更新された輝度配列リストLにおいて中間値mの保存された中間座標xm,ymの輝度値Iには、当該中間座標xm,ymから探索方向Sに直近となる注目座標xc,ycの極性値pが、上書き演算される。このとき、イベントカメラ2に対する白黒被写体4の相対運動方向Mに探索方向Sが設定されることによれば、当該方向Mでの被撮影面40の実輝度を表す可能性が高い方の極性値pを、中間値mからの置換によって復元することができる。故に、中間値mの残存に起因したバイナリ画像Bの復元不良を抑制することが可能となる。
 第1実施形態によると、輝度配列リストLにおいて発火座標xf,yfから切り替わった非発火座標xn,ynの輝度値Iは、切り替わり前座標xf,yfの発火時刻tから許容時間範囲内では、切り替わり前座標xf,yfの極性値pに保持されることとなる。その結果、発火座標xf,yfから切り替わった非発火座標xn,ynに許容時間範囲内において保持される極性値pは、被撮影面40のうちイベント発火後の相対移動によってはイベント発火しなくなる非発火部分の実輝度を、表し得る。故に、従来はオプティカルフローの推定を必要としていた非発火部分でのバイナリ画像Bの復元を、簡易な演算処理により実現して、演算負荷を低減することが可能となる。
 第1実施形態によると、輝度配列リストLにおいて発火座標xf,yfから切り替わった非発火座標xn,ynの輝度値Iは、切り替わり前座標xf,yfの発火時刻tから許容時間範囲外では、初期の中間値mに上書き演算されることとなる。その結果、ノイズに起因してイベント発火した場合の発火座標xf,yfでは、輝度値Iが誤った極性値pにより上書き演算されたとしても、その後のイベント発火が許容時間範囲外まで生じないことで、輝度値Iが正規の中間値mへと戻され得る。故に、ノイズに起因したバイナリ画像Bの復元不良を抑制することが可能となる。
 第1実施形態によると、イベントカメラ2に対する相対運動により撮影期間内に発生するオプティカルフローの方向は、イベントカメラ2による被撮影面40の全域において同一となる。これによれば、極性値pの上書き演算後に発火座標xf,yfから切り替わった非発火座標xn,ynの当該極性値pが、非発火部分の実輝度から外れ難くなる。故に簡易な演算処理によっても、バイナリ画像Bを復元することが可能となる。
 イベントカメラ2に対して撮影期間内に相対運動する二次元コードを白黒被写体4として画像復元する第1実施形態では、極性値pの上書き演算後に発火座標xf,yfから切り替わった非発火座標xn,ynの当該極性値pが、非発火部分の実輝度を正確に表し得る。故に簡易な演算処理によっても、バイナリ画像Bを高精度に復元することが可能となる。
 次に、以上の第1実施形態を別の観点で改めて説明する。まず、本開示の読取対象である白黒被写体4は、上述の通り、二元コードの一種であるQRコード(株式会社デンソーウェーブの登録商標)に限らず、他の種類の二次元コードでもよく、更に、一次元コードであるバーコードでもよい。通常は白色と黒色で印刷されているが、明色と暗色であれば色彩を持っていても構わない。したがって、以下の説明で用いる白色と黒色とは、明色と暗色とを意味している。
 QRコードの場合では、図1~3に示すように、コードの三方の隅に四角形状のファインディングパターン4aを有し、コードの内部は、四角形状の白色セルと同じく四角形状の黒色セルが配置され、このセルの配置により情報が定まる。ファインディングパターン4aの最外方の四角黒色部の幅はセルの幅と同じで、その内方の四角白色部の幅もセルの幅と同じで、中央の四角黒色部の幅はセルの幅の三倍となっている。いずれにせよ、印刷されたQRコードは、白色又は黒色の四角形状の組み合わせである。
 図4は、画像復元装置3で復元されたQRコードのイメージ画像を、示している。印刷された状態では、QRコードは、図4のように変形していない。ただ、QRコードは、各セルの中心部での明度(白色、黒色)を判断するので、図4のように復元されたQRコードであっても、情報の読取は可能である。
 また、イベントカメラ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ピクセルに対応する。
 イベントカメラ2は、図5に示すように、輝度(明度)の変化が生じた際(発火時)に、その変化の生じたピクセルの座標x,yと、輝度(明度)の変化である極性値pと、発火時刻tとをイベントデータDとして記録する。したがって、発火がなければ、イベントカメラ2は何も新たな記録を行わず、イベントデータDも更新されない。一方、発火があれば、極めて短いタイミングでその発火を記録する。イベントカメラ2の性能によるが、例えば1マイクロセカンド(100万分の1秒)でも、記録可能である。
 図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に変化する発火が記録される。
 なお、イベントカメラ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」になったりする。
 図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ミリセカンド」とが記録されている。
 繰り返しになるが、イベントカメラ2は、輝度(明度)の変化を検知するものであるので、変化がなければ何も検知しない。そのため、白黒被写体4(QRコード)が移動せずに静止していれば、何も検知されない。イベントデータDが記録されるのは、白黒被写体4(QRコード)が移動する場合に限られる。
 被撮影面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ミリセカンドで通過することとなる。
 なお、「白黒被写体4(QRコード)のセルのエッジ部」とは、白色セルと黒色セルとの境界部を意味し、白色セルの観点では、黒色セルが終了し白色セルが開始する境界部と、白色セルが終了し黒色セルが開始する境界部とがある。黒色セルの観点でも、同様に、開始部と終了部が境界部となる。
 仮にイベントカメラ2の分解能を0.1ミリセカンド(千分の0.1秒)とした場合には、白黒被写体4(QRコード)のセルのエッジ部が一つのピクセルを通過する際に、10回の輝度(明度)の変化を記録することができる。例えば、当初の明るさが黒(輝度値0)のセルから白(輝度値1)のセルに移動するとした場合で、イベントカメラ2には特定の座標のピクセルがこの輝度(明度)の変化を全て観察できる位置にあったとすれば、その座標のピクセルは、全ての領域で白黒被写体4(QRコード)の黒色のセルが示されていた時間(時間0ミリセカンド)から全ての領域で白黒被写体4(QRコード)の白色のセルが示される時間(時間1ミリセカンド)まで、10回に亘って輝度(明度)の変化を検知することができる。
 したがって、この例では、イベントカメラ2の1ピクセルは、ピクセル全体が黒(輝度値0)の状態(時間0ミリセカンド)からピクセル全体が白(輝度値1)の状態(時間1ミリセカンド)に10回にわたって変化を検知する。この10回(時間0ミリセカンドから時間1ミリセカンド)は、閾値上の輝度(明度)変化があるので、イベントデータDには、当該特定ピクセルの座標x,yと、極性値pの「1」と、発火時刻tが記録される。
 上述の想定設定で、白黒被写体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が記録される。
 換言すれば、白黒被写体4(QRコード)の白黒が反転するセルのエッジ部では、閾値以上の輝度(明度)の変化が検出されて輝度(明度)が明るい方向に閾値以上変化したことを表す極性値p「1」や、輝度(明度)が暗い方向に閾値以上変化したことを意味する極性値p「0」が記録されるが、白又は黒が連続するセルの中間部分では、輝度(明度)の変化がないので、記録されない。
 なお、以上の説明は、白黒被写体4(QRコード)が1つのセルのみで、白色セルから黒色セルに変わる例を前提に行ったが、実際の白黒被写体4(QRコード)では、複数の白色セルや黒色セルが連続することが通常である。そのため、実際に白黒被写体4(QRコード)のセルのエッジ部を検知するピクセルは、より少なくなっている。
 このことは、被撮影面40から白黒被写体4(QRコード)を検出する上で非常に重要である。白黒被写体4(QRコード)は、セルは白色又は黒色で中間色が存在しないのであるが、それ以外の部分、例えば白黒被写体4(QRコード)が印刷された部品では、その輝度(明度)はランダムに変化する。したがって、白色(輝度値1)や黒色(輝度値0)を数ミリセカンド亘って維持することはまれである。
 以上の技術事項を踏まえて、本開示の画像システム1を説明する。図1,2に示すようにイベントカメラ2は、撮影対象となる白黒被写体4(QRコード)を撮影する。白黒被写体4(QRコード)は、一定の相対運動方向Mに例えば1秒間に10センチメートルの速度で移動している。勿論、秒速1~10センチメートルは例示であり、より高速の移動の可能である。より重要な点は、白黒被写体4(QRコード)の物理的な速度ではなく、イベントカメラ2から見た視野角度の変化である。イベントカメラ2と白黒被写体4との距離が近ければ、より高速の移動が検出できる。
 イベントカメラ2は、輝度(明度)の変化を検知したとき、その変化に応じたイベントデータDを画像復元装置3に出力する。イベントデータDには、図5に示すような、イベントの生じたピクセルの座標x,yと、閾値以上の輝度(明度)の変化が生じた極性値p(0,1)と、イベントの生じた発火時刻t(タイムスタンプT)が記録される。
 前述したように、図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)が記録される。
 初期化ブロック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に対応する。
 更新ブロック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ミリセカンド」である。
 なお、図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の視野に入る必要がある。
 図9の例において発火座標xf,yfは、同図で黒(輝度値I:「0」)又は白(輝度値I:「1」)で示されたピクセルである。そして、この更新ブロック120で行われる動作が、図12のフローチャートのステップS102に対応する。
 補正ブロック140は、イベントデータDから白黒被写体4(QRコード)を素早く抽出するために、メインの処理である第1サブ補正処理に加えて第2サブ補正処理を行い、計2回でメモリ10の輝度配列リストLの補正を行う。上述のように、白黒被写体4(QRコード)は、白色セルと黒色セルのみからなり、中間色がないので、イベントカメラ2のピクセルは、セルのエッジの部分で白黒の反転を検出し、エッジ部以外の部分では白黒の反転は検出しない。そして、白黒被写体4(QRコード)のセルは直線として印刷されるので、白黒被写体4(QRコード)のセルのエッジによる発火座標xf,yfは白又は黒の直線となる。図9の例では、黒色の直線と白色の直線が発火座標xf,yfである。そこで第1サブ補正処理では、発火座標xf,yfより白色の直線と黒色の直線が検出される。
 なお、図9で発火座標xf,yfの内左側の黒色縦線と下側の黒色横線から左下方の部分が白色となっているが、この白色部分は白黒被写体4(QRコード)の移動方向のイメージを表すのみで、実際に発火座標xf,yfとなっているわけではない。撮影時間は、ピクセルの数や、白黒被写体4(QRコード)のセルの大きさ、相対運動方向M及び相対運動のスピードにより異なるが、所定の許容時間範囲とする。図9の例では、白黒被写体4(QRコード)内の白色直線及び黒色直線の幅が、所定の許容時間範囲に対応する。
 また、図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のままである。
 上述の第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とする。
 例えば、輝度(明度)の変化が暗方向で黒の輝度値Iの「0」に発火した座標から続く注目座標xc,ycからは、相対運動方向Mと逆方向Oに同じ輝度値Iの「0」に置き換える。図10の例では、左側の注目座標xc,ycからは相対運動方向Mと逆方向Oに、灰色が黒に置き換えられる。また、右側の注目座標xc,ycからは相対運動方向Mと逆方向Oに、灰色が白に置き換えられる。これによりQRコードのセルは、本来の白色又は黒色として出力される。
 図11は、第2サブ補正処理を行った白黒被写体4(QRコード)を示している。上述のように、メインの処理である第1サブ補正処理は、QRコードのセルのエッジ部を検出する処理であるので、白黒被写体4(QRコード)が存在しない位置では通常なされない。また、第2サブ補正処理は第1サブ補正処理により白黒被写体4(QRコード)の領域と判断された部分のみで行うので、この第2サブ補正処理も白黒被写体4(QRコード)が存在しない位置ではなされない。そのため、図11で白黒被写体4(QRコード)以外の部位で、部品等の物体が移動する部位では、輝度(明度)の変化がそのまま残って白色(輝度値Iが「1」)のピクセルと黒色(輝度値Iが「0」)のピクセルがランダムに存在している。
 ただ、イベントカメラ2の視野内で白黒被写体4(QRコード)をより的確に把握できるよう、図11に示すように、そのランダムな存在を省いて白色で表示する処理が、行われる。同様に、部品等の物体が移動しない部位では、輝度値Iが「0.5」の中間座標xm,ymは残るが、そのような部位の中間座標xm,ymも白色で表示するような処理が、行われる。なお、図11で白黒被写体4(QRコード)より左下方に延びる線は、単に白黒被写体4(QRコード)の相対運動方向Mを示すのみで、第2サブ補正処理で得られた線ではなく、また、撮影時間を表すものでもない。
 以上の第1サブ補正処理及び第2サブ補正処理が補正ブロック140で行われる。この補正ブロック140での動作が、図12のフローチャートのステップS103である。
 出力ブロック160は、図11に示すような補正処理を行った画像を出力する。上述の通り、白黒被写体4(QRコード)が存在する領域では白色のセルと黒色のセルが表示される。白黒被写体4(QRコード)が存在しない領域では、白色(輝度値Iが「1」)のピクセルと黒色(輝度値Iが「0」)のピクセルがランダムに存在するか、変化がない部位を白色としている。いずれにせよ、輝度値Iが「0.5」の中間座標xm,ymは存在しないので、バイナリ画像Bが出力される。この出力ブロック160での動作が、図12のフローチャートでは、ステップS104に対応する。なお、図11の例では白黒被写体4(QRコード)以外の部位を白色に補正する処理を行ったが、色は白黒が把握しやすければよく、黒色としても、緑等の他の色としてもよい。
 その後、出力されたバイナリ画像Bから白黒被写体4(QRコード)に含められた情報が、読み取られる。白黒被写体4(QRコード)は3か所にファインディングパターン4aを有するので、白色(輝度値Iが「1」)のピクセルと黒色(輝度値Iが「0」)のピクセルがランダムに存在している中から特殊形状のファインディングパターン4aを検出することはソフト的に容易である。そして、ファインディングパターン4aの位置が分かると白黒被写体4(QRコード)のセルの中心位置での明度が白色(輝度値Iが「1」)であるのか、黒色(輝度値Iが「0」)であるのかが容易に計算でき、白黒被写体4(QRコード)の情報を読み出すことができる。
 特に、本開示では、第1サブ補正処理により、白黒被写体4(QRコード)が存在する領域を特定し、その領域で第2サブ補正処理を行うので、実際に白黒被写体4(QRコード)の全てを読み取る前(最小2ピクセルの読み取り後)」に白黒被写体4(QRコード)の復元を行うことができる。そして、復元された情報はバイナリ画像Bであるので、改めて2値化の処理を行う必要もない。そのため、本開示によれば、極めて短い撮影時間(最小1マイクロセカンド)の間に、白黒被写体4(QRコード)の情報読み出しを行うことができる。
 ただ、白黒被写体4(QRコード)の把握にある程度の時間をかけることができる場合には、第2サブ補正処理を行わず、第1サブ補正処理のみで白黒被写体4(QRコード)のセルを検出するようにすることも可能である。即ち、図9や図10の例で直線の太さが許容時間範囲に相当するが、この許容時間範囲を長くすることで、白黒被写体4(QRコード)のセルの全体を白色又は黒色とすることが可能となる。このような意味において、第1サブ補正処理がメインの処理となる。
 (第2実施形態)
 図13に示すように第2実施形態は、第1実施形態の変形例である。
 第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により上書き演算する。
 こうしたS202において、更新ブロック120により更新処理をスキップするイベントの連続回数は、例えば外乱等のノイズ発火に起因した極性値pへの上書き誤りを抑制可能な適数に、設定される。また、S202において更新ブロック120による更新処理は、極性値p及び発火時刻tの上書き演算以外については、第1実施形態と同様に実行される。このような第2実施形態では、S202が「更新プロセス」に相当する。
 (作用効果)
 以上説明した第2実施形態の作用効果を、以下に説明する。
 第2実施形態によると、発火座標xf,yf及び極性値pの同じイベントが複数回連続して発火するまで、輝度配列リストLの更新がスキップされる。これによれば、ノイズ発火に起因した極性値pへの上書き誤りによるバイナリ画像Bの復元不良を、抑制することが可能となる。
 この第2実施形態に関しても、別の観点で改めて説明する。第1実施形態では、主に白黒被写体4(QRコード)のエッジ部での輝度(明度)の変化を捉え、エッジ部以外の部分では白色又は黒色が連続し、輝度(明度)の変化が生じないことを前提としていた。この前提は、勿論正しいのであるが、外乱に起因するノイズの発生も否定できない。
 例えば、白黒被写体4(QRコード)のセルの白色部分で、外光の変化や汚れ等に起因して、いずれかのピクセルが閾値以上の輝度(明度)の低下を検出する可能性も排除できないし、さらには光の変化がなくてもイベントカメラ2からの定電圧なアナログ出力信号に外部からのノイズが乗る可能性もある。この場合、輝度(明度)低下を検出又はノイズが乗ったピクセルは、その座標x,y、極性値p「0」と共に発火時刻t(タイムスタンプT)をイベントデータDに記録する。その結果、メモリ10の輝度配列リストLでは、当該ピクセルの座標が発火座標xf,yfとなって、輝度値Iも「0」となる。
 しかし、そうしたピクセルの座標は、本来輝度(明度)に変化がなく、白黒被写体4(QRコード)のセルの白色部分が継続しているはずであって、非発火座標xn,ynであり、輝度値Iは「0.5」の中間値mを示す中間座標xm,ymであるはずである。このように誤った情報がメモリ10の輝度配列リストLに記録されると、補正ブロック140における第1補正処理や第2補正処理でノイズを取り除くフィルタ処理を行う必要があり、処理時間が伸びたり、誤判断の原因となったりする。
 尤も、このようなノイズが同一のピクセルで何度も連続して検出される可能性は、低い。何故なら、本来は白黒被写体4(QRコード)のセルの白色部分が継続しているはずの場所であって、連続して輝度(明度)の低下が続く場所ではないからである。一方、白黒被写体4(QRコード)のセルのエッジ部では、所定のピクセルは複数回に亘って輝度(明度)の変化を検知できる。
 そのため、輝度(明度)の変化が複数回に亘って連続するピクセルは、白黒被写体4(QRコード)のセルのエッジ部を検知している可能性が高い。一方、輝度(明度)の変化が単発的なピクセルは、本来生じていない輝度変化を誤って検出したり、外部ノイズの影響を受けたりしている可能性が高い。
 第2実施形態は、この特性を利用したものである。特定のピクセル(特定の座標)で輝度(明度)の変化が生じたとしても、同じ方向(「0」又は「1」)の極性値pが複数回連続しなければ、更新ブロック120でのメモリ10の輝度配列リストLの更新を行わないようにしている。これは、図13のフローチャートのステップS202である。
 このように、メモリ10の輝度配列リストLで輝度値Iが「0」又は「1」に書き換えられるのは、イベントが複数回連続した結果となるので、輝度配列リストLは信頼性が高いものとなる。そのため、補正ブロック140は精度の高い情報を用いて第1サブ補正処理及び第2サブ補正処理を行うことができ、フィルタリング処理を廃止又は軽減できる。
この結果、処理時間の短縮や、読取エラーの低減が図られ得る。
 なお、連続する複数回の回数は、イベントカメラ2のピクセル数、被撮影面40の面積、白黒被写体4(QRコード)のセルの大きさや、白黒被写体4(QRコード)の相対運動方向Mへの移動速度等により、適宜定めることとなる。例えば、連続する複数回の回数は、白黒被写体4(QRコード)のエッジによる輝度変化を十分に検出可能な数であることが、好ましい。
 以上、複数の実施形態について説明したが、本開示は、それらの実施形態に限定して解釈されるものではなく、本開示の要旨を逸脱しない範囲内において種々の実施形態及び組み合わせに適用することができる。
 変形例の画像復元装置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)等のうち、少なくとも一種類である。またこうしたデジタル回路は、プログラムを格納したメモリを、備えていてもよい。
 変形例では、更新ブロック120及びS102の更新処理において、発火時刻tとタイムスタンプTとの時間差に拘わらず、輝度配列リストLにおける非発火座標xn,ynの輝度値Iが保持されてもよい。変形例では、補正ブロック140及びS103の第2サブ補正処理が、必要に応じてスキップ又は常に省略されてもよい。
 変形例では、イベントカメラ2に対する相対運動により撮影期間内に発生するオプティカルフローの方向が、イベントカメラ2による被撮影面40の一部において異なっていてもよい。この場合、補正ブロック140及びS103の第2サブ補正処理において、例えばイベントカメラ2に対する白黒被写体4の相対運動方向Mに基づくことで、オプティカルフローの一部方向が異なることに起因した輝度値Iの誤りが、輝度配列リストLに対して補正されてもよい。
 変形例では、イベントカメラ2に対して撮影期間内に相対運動する平面状二次元コード以外の白黒被写体4が、バイナリ画像Bの復元対象であってもよい。具体的には、例えば車両等の移動体に搭載されたイベントカメラ2により、当該移動体の周囲に存在する白黒被写体4が撮影されることで出力されるイベントデータDに基づき、バイナリ画像Bが復元されてもよい。
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 非発火座標

Claims (18)

  1.  撮影期間内に相対運動する白黒被写体(4)を撮影したイベントカメラ(2)から、少なくとも一つのカメラ画素において輝度が変化したイベントの発火時刻(t)と関連付けて出力される、前記イベントの画素座標(x,y)及び極性値(p)に基づきバイナリ画像(B)を復元する画像復元装置(3)であって、
     一対の前記極性値及びそれらの中間値のうち、いずれかの値を前記画素座標毎の輝度値として保存する輝度配列リスト(L)において、各前記画素座標の輝度値を前記中間値に初期化する初期化部(100)と、
     前記初期化部により初期化された前記輝度配列リストを、前記イベント毎の前記画素座標及び前記極性値に応じて更新する更新部(120)と、
     前記更新部により前記撮影期間に亘って更新された前記輝度配列リストを、前記バイナリ画像として出力する出力部(160)とを、備え、
     前記更新部による更新は、前記輝度配列リストにおいて前記イベントの発火した前記画素座標である発火座標の輝度値を、前記イベントの前記極性値により上書き演算する一方、前記輝度配列リストにおいて前記発火座標を除いた前記画素座標である非発火座標の輝度値を、保持する画像復元装置。
  2.  前記更新部により前記撮影期間に亘って更新された前記輝度配列リストにおいて、前記中間値が保存された前記画素座標である中間座標の輝度値を、補正する補正部(140)を、さらに備え、
     前記補正部による補正は、前記イベントカメラに対する前記白黒被写体の相対運動方向(M)を探索方向(S)と設定し、前記輝度配列リストにおいていずれかの前記極性値が保存された前記画素座標のうち、前記中間座標から前記探索方向に直近となる注目座標を探索し、前記輝度配列リストにおける前記中間座標の輝度値に前記注目座標の前記極性値を上書き演算する請求項1に記載の画像復元装置。
  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.  前記更新プロセスにより前記撮影期間に亘って更新された前記輝度配列リストにおいて、前記中間値が保存された前記画素座標である中間座標の輝度値を、補正する補正プロセス(S103)を、さらに含み、
     前記補正プロセスによる補正は、前記イベントカメラに対する前記白黒被写体の相対運動方向(M)を探索方向(S)と設定し、前記輝度配列リストにおいていずれかの前記極性値が保存された前記画素座標のうち、前記中間座標から前記探索方向に直近となる注目座標を探索し、前記輝度配列リストにおける前記中間座標の輝度値に前記注目座標の前記極性値を上書き演算する請求項7に記載の画像復元方法。
  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.  前記更新プロセスにより前記撮影期間に亘って更新された前記輝度配列リストにおいて、前記中間値が保存された前記画素座標である中間座標の輝度値を、補正させる補正プロセス(S103)を、さらに含み、
     前記補正プロセスによる補正は、前記イベントカメラに対する前記白黒被写体の相対運動方向(M)を探索方向(S)と設定させ、前記輝度配列リストにおいていずれかの前記極性値が保存された前記画素座標のうち、前記中間座標から前記探索方向に直近となる注目座標を探索させ、前記輝度配列リストにおける前記中間座標の輝度値に前記注目座標の前記極性値を上書き演算させる請求項13に記載の画像復元プログラム。
  15.  前記更新プロセスによる更新は、前記輝度配列リストにおいて前記発火座標から切り替わった前記非発火座標の輝度値を、当該切り替わり前の座標の前記発火時刻から許容時間範囲内では保持させる一方、当該切り替わり前の座標の前記発火時刻から前記許容時間範囲外では前記中間値により上書き演算させる請求項14に記載の画像復元プログラム。
  16.  前記更新プロセス(S202)による更新は、前記発火座標及び前記極性値の同じ前記イベントが複数回連続して発火するまで、スキップされる請求項13~15のいずれか一項に記載の画像復元プログラム。
  17.  前記イベントカメラに対する相対運動により前記撮影期間内に発生するオプティカルフローの方向が、前記イベントカメラによる被撮影面(40)の全域において同一となる前記白黒被写体の、前記バイナリ画像を復元するために、前記記憶媒体に格納される請求項13~16のいずれか一項に記載の画像復元プログラム。
  18.  前記イベントカメラに対して前記撮影期間内に相対運動する二次元コードを前記白黒被写体として、前記バイナリ画像を復元するために、前記記憶媒体に格納される請求項13~17のいずれか一項に記載の画像復元プログラム。
PCT/JP2020/042461 2019-11-15 2020-11-13 画像復元装置、画像復元方法、及び画像復元プログラム WO2021095853A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/777,207 US20220406032A1 (en) 2019-11-15 2020-11-13 Image restoration device, image restoration method, and image restoration program
CN202080079006.6A CN115151943A (zh) 2019-11-15 2020-11-13 图像修复装置、图像修复方法、以及图像修复程序
EP20886908.1A EP4060606A4 (en) 2019-11-15 2020-11-13 IMAGE RECONSTRUCTION APPARATUS, IMAGE RECONSTRUCTION METHOD AND IMAGE RECONSTRUCTION PROGRAM

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2019-207197 2019-11-15
JP2019207197 2019-11-15
JP2020180824A JP2021082273A (ja) 2019-11-15 2020-10-28 画像復元装置、画像復元方法、画像復元プログラム
JP2020-180824 2020-10-28

Publications (1)

Publication Number Publication Date
WO2021095853A1 true WO2021095853A1 (ja) 2021-05-20

Family

ID=75912995

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/042461 WO2021095853A1 (ja) 2019-11-15 2020-11-13 画像復元装置、画像復元方法、及び画像復元プログラム

Country Status (4)

Country Link
US (1) US20220406032A1 (ja)
EP (1) EP4060606A4 (ja)
CN (1) CN115151943A (ja)
WO (1) WO2021095853A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019067731A1 (en) * 2017-09-28 2019-04-04 Zermatt Technologies Llc METHOD AND DEVICE FOR TRACKING THE EYE USING EVENT CAMERA DATA

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019067731A1 (en) * 2017-09-28 2019-04-04 Zermatt Technologies Llc METHOD AND DEVICE FOR TRACKING THE EYE USING EVENT CAMERA DATA

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ATSUSHI NAGATA, YUSUKE SEKIKAWA, KOSUKE HARA, TEPPEI SUZUKI, YOSHIMITSU AOKI: "IS2-11 Robust QR Code Recognition Against Lighting Conditions and Shaking Using Event Camera", 25TH SYMPOSIUM ON SENSING VIA IMAGE INFORMATION (SSII2019); JUNE 12-14, 2019, vol. 25, 13 June 2019 (2019-06-13), JP, pages IS2 - 11, XP009538104 *
P. BARDOWA. J. DAVISONS. LEUTENEGGER: "Simultaneous Optical Flow and Intensity Estimation From an Event Camera", THE IEEE CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION (CVPR, 2016, pages 884 - 892, XP033021219, DOI: 10.1109/CVPR.2016.102
See also references of EP4060606A4

Also Published As

Publication number Publication date
US20220406032A1 (en) 2022-12-22
EP4060606A1 (en) 2022-09-21
CN115151943A (zh) 2022-10-04
EP4060606A4 (en) 2024-02-28

Similar Documents

Publication Publication Date Title
CN107077602B (zh) 用于活性分析的系统及方法
US10699400B2 (en) Image processing apparatus, image processing method, and storage medium
JP2019028843A (ja) 人物の視線方向を推定するための情報処理装置及び推定方法、並びに学習装置及び学習方法
CN110099209A (zh) 图像处理装置、图像处理方法和存储介质
EP2887310B1 (en) Method and apparatus for processing light-field image
KR102559021B1 (ko) 불량 이미지 생성 장치 및 방법
CN111080776B (zh) 人体动作三维数据采集和复现的处理方法及系统
US20070025592A1 (en) Target-region detection apparatus, method and program
US11076092B2 (en) Image processing apparatus, image processing method, and image processing program
WO2021095853A1 (ja) 画像復元装置、画像復元方法、及び画像復元プログラム
JP2019091122A (ja) デプスマップフィルタ処理装置、デプスマップフィルタ処理方法及びプログラム
CN112686842B (zh) 一种光斑检测方法、装置、电子设备及可读存储介质
CN110599588A (zh) 三维流场内粒子重构方法及装置、电子设备及存储介质
CN104512334A (zh) 滤波装置
JP2021082273A (ja) 画像復元装置、画像復元方法、画像復元プログラム
CN115527023A (zh) 图像检测方法、装置、电子设备及存储介质
JP5955003B2 (ja) 画像処理装置および画像処理方法、プログラム
WO2018155269A1 (ja) 画像処理装置および方法、並びにプログラム
US11308341B2 (en) Verification method, verification device, and non-transitory tangible storage medium
US11107197B2 (en) Apparatus for processing image blurring and method thereof
CN113379610A (zh) 图像处理模型的训练方法、图像处理方法、介质及终端
JP4075892B2 (ja) 画像処理方法および画像処理装置
JP5686376B2 (ja) 画像処理装置、方法、及びプログラム
WO2022014251A1 (ja) 情報処理装置、補正方法、プログラム
JP6843342B1 (ja) 写り込み除去エンジン生成方法、プログラム、写り込み除去エンジン生成装置、写り込み除去装置、異常検知方法及び部品検知方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20886908

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2020886908

Country of ref document: EP

Effective date: 20220613

ENP Entry into the national phase

Ref document number: 2020886908

Country of ref document: EP

Effective date: 20220615