SYSTEMS AND METHODS FOR 3-D RECONSTRUCTION AND SCENE SEGMENTATION USING EVENT CAMERAS
Aspects of embodiments of the present disclosure relate to systems and methods for performing three-dimensional reconstruction (or depth reconstruction) and for generating segmentation masks using data captured by one or more event cameras.
1 . An active scanning system comprising:
an event camera comprising a plurality of event pixels configured to generate change events based on detecting changes in detected brightness;
a projection system;
a controller configured to receive camera-level change events from the event camera, the controller comprising a processor and memory, the memory storing instructions that, when executed by the processor, cause the controller to:
receive first change events from the event camera corresponding to a first pattern projected by the projection system into a scene in a field of view of the event camera; and
compute a plurality of depths of surfaces imaged by the event camera at the event pixels associated with the first change events to generate a depth map.
2 . The active scanning system of claim 1 , wherein the memory further stores instructions that, when executed by the processor, cause the controller to:
receive additional change events from the event camera corresponding to additional patterns projected by the projection system into the field of view of the event camera;
reconstruct a plurality of illumination codes based on the first change events and the additional change events detected by the event camera, each of the plurality of illumination codes being associated with a corresponding one of the event pixels of the event camera; and
compute the plurality of depths of surfaces imaged by the event camera at the event pixels associated with the plurality of illumination codes based on the illumination codes and a plurality of calibration parameters between the projection system and the event camera.
3 . The active scanning system of claim 2 , wherein the additional patterns comprise two or more patterns.
4 . The active system of claim 2 , wherein the memory further stores instructions that, when executed by the processor, cause the controller to control the projection system to project the first pattern during a first time period.
5 . The active system of claim 4 , wherein the memory further stores instructions that, when executed by the processor, cause the controller to control the projection system to project the additional patterns during a plurality of additional time periods.
6 . The active scanning system of claim 1 , further comprising a second event camera forming a stereo pair with the event camera,
wherein the memory further stores instructions that, when executed by the processor, cause the controller to:
receive second change events from the second event camera corresponding to the first pattern projected by the projection system into the field of view of the second event camera.
7 . The active scanning system of claim 6 , wherein the memory further stores instructions that, when executed by the processor, cause the controller to compute the plurality of depths of surfaces imaged by the event camera to generate the depth map by:
computing a disparity map by matching blocks of events among the first change events and the second change events corresponding to same portions of the first pattern projected by the projection system.
8 . The active scanning system of claim 1 , wherein the memory further stores instructions that, when executed by the processor, cause the controller to:
receive third change events from the event camera during a period in which the field of view of the event camera is under substantially constant illumination;
compute one or more silhouettes of one or more moving objects based on the third change events;
compute a segmentation mask based on the one or more silhouettes; and
segment the depth map based on the segmentation mask to compute a segmented depth map.
9 . A scanning system comprising:
an event camera comprising a plurality of event pixels configured to generate change events based on detecting changes in detected brightness;
a controller configured to receive camera-level change events from the event camera, the controller comprising a processor and memory, the memory storing instructions that, when executed by the processor, cause the controller to:
receive first change events from the event camera during a period in which a scene in a field of view of the event camera is under substantially constant illumination;
compute one or more silhouettes of one or more moving objects based on the first change events; and
compute a segmentation mask corresponding to the one or more moving objects based on the one or more silhouettes.
10 . The scanning system of claim 9 , wherein the memory further stores instructions that, when executed by the processor, cause the processor to perform instance segmentation on the segmentation mask to compute an instance segmentation mask labeling images of the one or more moving objects based on one or more object classifications.
11 . A method for performing three-dimensional reconstruction of scenes, the method comprising:
projecting, by a projection system, a first pattern onto a scene;
receiving, by a controller comprising a processor and memory, first change events from an event camera, the first change events corresponding to the first pattern projected by the projection system into a scene in a field of view of the event camera, the event camera comprising a plurality of event pixels configured to generate change events based on detecting changes in detected brightness; and
computing, by the controller, a plurality of depths of surfaces imaged by the event camera at the event pixels associated with the first change events to generate a depth map.
12 . The method of claim 11 , further comprising:
projecting, by the projection system, additional patterns onto the scene in the field of view of the event camera;
receiving, by the controller, additional change events from the event camera corresponding to the additional patterns projected by the projection system;
reconstructing, by the controller, a plurality of illumination codes based on the first change events and the additional change events detected by the event camera, each of the plurality of illumination codes being associated with a corresponding one of the event pixels of the event camera; and
computing, by the controller, the plurality of depths of surfaces imaged by the event camera at the event pixels associated with the plurality of illumination codes based on the illumination codes and a plurality of calibration parameters between the projection system and the event camera.
13 . The method of claim 12 , wherein the additional patterns comprise two or more patterns.
14 . The method of claim 12 , further comprising controlling the projection system to project the first pattern during a first time period.
15 . The method of claim 14 , further comprising controlling the projection system to project the additional patterns during a plurality of additional time periods.
16 . The method of claim 11 , further comprising receiving second change events from a second event camera forming a stereo pair with the event camera, the second change events corresponding to the first pattern projected by the projection system into the field of view of the second event camera.
17 . The method of claim 16 , further comprising computing the plurality of depths of surfaces imaged by the event camera to generate the depth map by:
computing a disparity map by matching blocks of events among the first change events and the second change events corresponding to same portions of the first pattern projected by the projection system.
18 . The method of claim 11 , further comprising:
receiving third change events from the event camera during a period in which the field of view of the event camera is under substantially constant illumination;
computing one or more silhouettes of one or more moving objects based on the third change events;
computing a segmentation mask based on the one or more silhouettes; and
segmenting the depth map based on the segmentation mask to compute a segmented depth map.
19 . A method for segmenting an image of a scene, the method comprising:
receiving, by a controller comprising a processor and memory, first change events from an event camera during a period in which a scene in a field of view of the event camera is under substantially constant illumination, the event camera comprising a plurality of event pixels configured to generate change events based on detecting changes in detected brightness;
computing, by the controller, one or more silhouettes of one or more moving objects based on the first change events; and
computing, by the controller, a segmentation mask corresponding to the one or more moving objects based on the one or more silhouettes.
20 . The method of claim 19 , further comprising performing instance segmentation on the segmentation mask to compute an instance segmentation mask labeling images of the one or more moving objects based on one or more object classifications.