Embodiments of the present principles generally relate to a method, apparatus and system architecture for RGBD semantic segmentation of video data and, more particularly, to a method, apparatus and system architecture for RGBD semantic segmentation of video data having temporal and geometric consistency.
Semantic segmentation has been a growing topic in the computer vision and machine learning fields. Semantic segmentation can enable situational awareness and scene understanding. It is required for many applications, such as autonomous driving. Unlike typical semantic segmentation solutions that focus on RGB semantic segmentation, RGBD semantic segmentation is a new emerging field due to the popular availability of RGBD video sensors that provide depth information. The depth information of RGBD semantic segmentation provides complementary information in terms of fusion with RGB information. However, currently, most of RGBD semantic segmentation works are still image-based methods, which are unable to maintain consistency across video frames for semantic segmentation.
Embodiments of methods, apparatuses and system architectures for RGBD semantic segmentation of video data having temporal and geometric consistency are disclosed herein.
In some embodiments a method for RGBD semantic segmentation of video data includes determining at least one of semantic segmentation data and depth segmentation data for less than all classes for images of each frame of a first video comprising at least one of RGB video frames and depth-aware video frames, determining at least one of semantic segmentation data and depth segmentation data for more classes than in the first video for images of each key frame of a second video comprising a synchronous combination of respective frames of the RGB video and the depth-aware video, (RGBD video), in parallel to the determination of the at least one of the semantic segmentation data and the depth segmentation data for each frame of the first video, temporally and geometrically aligning respective frames of the first video and the second video, and predicting at least one of semantic segmentation data and depth segmentation data for images of a subsequent frame of the first video based on the determination of the at least one of semantic segmentation data and depth segmentation data for images of a key frame of the second video.
In some embodiments, the method can further include a scaling process to raise an entropy of inconsistent pixels of frames of at least one of the first video or the second video.
In some embodiments, the first video and the second video are received from respective capture devices mounted on a mobile platform and the method can further include receiving motion data from at least one of an inertial measurement unit and a wheel odometry unit associated with the mobile platform and providing at least one of navigation information and scene information to the mobile platform for at least one scene captured using the respective capture devices based on the received motion data and the at least one of the semantic segmentation data and depth segmentation data determined for at least one of the first video and the second video.
In some embodiments a non-transitory machine-readable medium includes stored thereon at least one program, the at least one program including instructions which, when executed by a processor, cause the processor to perform a method in a processor based system for RGBD semantic segmentation of video data. In some embodiments the method includes determining at least one of semantic segmentation data and depth-related data for less than all classes for images of each frame of a first video comprising at least one of RGB video frames and depth-aware video frames, determining at least one of semantic segmentation data and depth-related data for more classes than in the first video for images of each key frame of a second video comprising a synchronous combination of respective frames of the RGB video and the depth-aware video, (RGBD video), in parallel to the determination of the at least one of the semantic segmentation data and the depth-related data for the images of each frame of the first video, temporally and geometrically aligning respective frames of the first video and the second video, and predicting at least one of semantic segmentation data and depth-related data for images of a subsequent frame of the first video based on the determination of the at least one of semantic segmentation data depth-related data for images of a key frame of the second video.
In some embodiments, the method of the non-transitory machine-readable medium further includes adjusting an entropy of inconsistent pixels of frames of at least one of the first video or the second video.
In some embodiments, the first video and the second video are received from respective capture devices mounted on a mobile platform and the method of the non-transitory machine-readable medium further includes receiving motion data from at least one of an inertial measurement unit and a wheel odometry unit, and providing at least one of navigation information and scene information to the mobile platform for at least one scene captured using the respective capture devices based on the received motion data and the at least one of the semantic segmentation data and depth-related data determined for at least one of the first video and the second video.
In some embodiments, a system for RGBD semantic segmentation of video data includes a processor and a memory coupled to the processor, the memory having stored therein at least one of programs or instructions executable by the processor. The programs or instructions when executed by the processor configure the system to determine at least one of semantic segmentation data and depth segmentation data for less than all classes for images of each frame of a first video comprising at least one of RGB video frames and depth-aware video frames, determine at least one of semantic segmentation data and depth segmentation data for more classes than in the first video for images of each key frame of a second video comprising a synchronous combination of respective frames of the RGB video and the depth-aware video, (RGBD video), in parallel to the determination of the at least one of the semantic segmentation data and the depth segmentation data for each frame of the first video, temporally and geometrically align respective frames of the first video and the second video, and predict at least one of semantic segmentation data and depth segmentation data for images of a subsequent frame of the first video based on the determination of the at least one of semantic segmentation data and depth segmentation data for images of a key frame of the second video.
In some embodiments, the system is further configured to adjust an entropy of inconsistent pixels of frames of at least one of the first video or the second video.
In some embodiments, the first video and the second video are received from respective capture devices mounted on a mobile platform and the system is further configured to receive motion data from at least one of an inertial measurement unit and a wheel odometry unit associated with the mobile platform and provide at least one of navigation information and scene information to the mobile platform for at least one scene captured using the respective capture devices based on the received motion data and the at least one of the semantic segmentation data and the depth segmentation data determined for at least one of the first video and the second video.
Other and further embodiments in accordance with the present principles are described below.
So that the manner in which the above recited features of the present principles can be understood in detail, a more particular description of the principles, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments in accordance with the present principles and are therefore not to be considered limiting of its scope, for the principles may admit to other equally effective embodiments.
To facilitate understanding, identical reference numerals have been used, where possible, to designate identical elements that are common to the figures. The figures are not drawn to scale and may be simplified for clarity. It is contemplated that elements and features of one embodiment may be beneficially incorporated in other embodiments without further recitation.
Embodiments of the present principles generally relate to methods, apparatuses and systems for providing temporal and geometric consistent RGBD semantic segmentation of video data. While the concepts of the present principles are susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and are described in detail below. It should be understood that there is no intent to limit the concepts of the present principles to the particular forms disclosed. On the contrary, the intent is to cover all modifications, equivalents, and alternatives consistent with the present principles and the appended claims. For example, although embodiments of the present principles will be described primarily with respect to specific input data and the with the implementation of the present principles to specific applications, such teachings should not be considered limiting. Embodiments in accordance with the present principles can be applied to other similar data and for other applications.
Embodiments of the present principles provide a novel approach for improving RGBD video semantic segmentation by, in some embodiments, incorporating temporal and geometry consistency from RGB and depth channels across video frames. In accordance with the present principles, a two-branch network architecture provides a fast branch and a slow branch, in which the fast branch performs quick updates in terms of RGB and depth channels across video frames of a video, while the slow branch performs detailed segmentation on key frames of an RGBD video comprised of a combination of the RGB video and the depth-aware video.
In some embodiments, the system architecture of the present principles incorporates alternating modality (temporal multi-modal fusion) to process sensor streams (RGB and depth channels) in an alternating fashion, which, in at least some embodiments includes propagating information from the slow branch to the fast branch.
In some embodiments of the present principles, a two-stage warping model approach includes a first step and a second step. In the first step, Ego-motion flow is estimated from depth and relative camera pose. By estimating and subtracting Ego-motion flow, two images can be made to seem closer to each other. The second step includes a Projected scene flow, which can be implemented to correct estimation error introduced by the Ego-motion flow of the first step.
In the embodiment of
In the embodiment of
Referring back to the RGBD semantic segmentation system 100 of
Similarly, in the RGBD semantic segmentation system 100 of
In accordance with embodiments of the present principles, the slow processing module 105 and the fast-processing module 110 can provide a two-branch network architecture, in which the fast branch performs quick updates in terms of RGB and depth channels across video frames of a video, while the slow branch performs detailed segmentation on key frames of the video. Temporal and geometric consistency is maintained between the video frames being processed by the slow processing module 105 and the video frames being processed by the fast branch 110 by sharing information/data between the slow processor 105 and the fast processor 110 during the respective processing of the video.
For example,
In accordance with embodiments of the present principles, various strategies to key frame selection to be processed by the slow branch 404 can be implemented. In one embodiment, a simple strategy is to determine the key frame based on a fixed time interval (such as every 1 or 0.5 seconds) or spatial interval (such as every traveled 1 or 3 meters). In some embodiments, a more advanced strategy can be implemented in which the selection of a key frame is based on conditions between query frame and past key frames, including the number of overlapped features, the temporal difference, and the spatial difference between poses associated with frames. In other embodiments, the selection of key frames can be dependent on the number of overlapped features between selected frames. A rule of thumb is that a number of overlapped features between key frames should be small (e.g. 5) and the temporal difference should be large.
In accordance with the present principles, in the fast branch 402, less than all of the classes of each video frame of either the RBG video or the depth-aware video are processed. For example and as depicted in the embodiment of
As depicted in
In some embodiments, the slow branch 404 is considered and implemented as a semantically rich update branch. In the embodiment of
The Ego-motion flow process 502 of the present principles estimates ego-motion flow from depth and relative camera pose for each frame. The ego-motion flow process 502 is geometry preserving and robust to drastic scene changes because it considers the changes between two frames caused by only the camera motion and pose. By estimating and subtracting ego motion flow, the data of two images are made to appear closer to each other.
The projected scene flow process 504 of
As depicted in
In the embodiment of
As depicted in
As further depicted in
As further depicted in
In addition and referring back to the embodiment of
warp−RGBt+norm Dwarp−Dt log pc. (1)
In some embodiments of the scaling process 608 small classes can be emphasized by using an inverse frequency weighting in accordance with equation two (2), which follows:
where pc depicts the ground truth class for the sample.
For example,
The Table of
The middle section 804 of the Table of
The bottom section 806 of the Table of
In at least the middle section 802 and the bottom section 804 of the Table of
At 904, at least one of semantic segmentation data and depth segmentation data is determined for more classes than in the first video for images of each key frame of a second video comprising a synchronous combination of respective frames of the RGB video and the depth-aware video, (RGBD video), in parallel to the determination of the at least one of the semantic segmentation data and the depth segmentation data for each frame of the first video. The method 900 can proceed to 906.
At 906, the frames of the first video and the frames of the second video are temporally and geometrically aligned. The method 900 can proceed to 908.
At 908, at least one of semantic segmentation data and depth segmentation data is predicted for images of a subsequent frame of the first video based on the determination of the at least one of semantic segmentation data and depth segmentation data for images of a key frame of the second video.
In some embodiments of the present principles, the method 900 can further include adjusting at least an entropy of a predicted video frame if inconsistent with a previous frame of the at least one of the RGB video or the depth-aware video.
In some embodiments of the present principles, the first video and the second video can be received from respective capture devices mounted on a mobile platform and the method can further include receiving motion data from at least one of an inertial measurement unit and a wheel odometry unit associated with the mobile platform and providing at least one of navigation information and scene information to the mobile platform for at least one scene captured using the respective capture devices based on the received motion data and the at least one of the semantic segmentation data and depth segmentation data determined for at least one of the first video and the second video.
As depicted in
For example,
In the embodiment of
In different embodiments, the computing device 1000 can be any of various types of devices, including, but not limited to, a personal computer system, desktop computer, laptop, notebook, tablet or netbook computer, mainframe computer system, handheld computer, workstation, network computer, a camera, a set top box, a mobile device, a consumer device, video game console, handheld video game device, application server, storage device, a peripheral device such as a switch, modem, router, or in general any type of computing or electronic device.
In various embodiments, the computing device 1000 can be a uniprocessor system including one processor 1010, or a multiprocessor system including several processors 1010 (e.g., two, four, eight, or another suitable number). Processors 1010 can be any suitable processor capable of executing instructions. For example, in various embodiments processors 1010 may be general-purpose or embedded processors implementing any of a variety of instruction set architectures (ISAs). In multiprocessor systems, each of processors 1010 may commonly, but not necessarily, implement the same ISA.
System memory 1020 can be configured to store program instructions 1022 and/or data 1032 accessible by processor 1010. In various embodiments, system memory 1020 can be implemented using any suitable memory technology, such as static random-access memory (SRAM), synchronous dynamic RAM (SDRAM), nonvolatile/Flash-type memory, or any other type of memory. In the illustrated embodiment, program instructions and data implementing any of the elements of the embodiments described above can be stored within system memory 1020. In other embodiments, program instructions and/or data can be received, sent or stored upon different types of computer-accessible media or on similar media separate from system memory 1020 or computing device 1000.
In one embodiment, I/O interface 1030 can be configured to coordinate I/O traffic between processor 1010, system memory 1020, and any peripheral devices in the device, including network interface 1040 or other peripheral interfaces, such as input/output devices 1050. In some embodiments, I/O interface 1030 can perform any necessary protocol, timing or other data transformations to convert data signals from one component (e.g., system memory 1020) into a format suitable for use by another component (e.g., processor 1010). In some embodiments, I/O interface 1030 can include support for devices attached through various types of peripheral buses, such as a variant of the Peripheral Component Interconnect (PCI) bus standard or the Universal Serial Bus (USB) standard, for example. In some embodiments, the function of I/O interface 1030 can be split into two or more separate components, such as a north bridge and a south bridge, for example. Also, in some embodiments some or all of the functionality of I/O interface 1030, such as an interface to system memory 1020, can be incorporated directly into processor 1010.
Network interface 1040 can be configured to allow data to be exchanged between the computing device 1000 and other devices attached to a network (e.g., network 1090), such as one or more external systems or between nodes of the computing device 1000. In various embodiments, network 1090 can include one or more networks including but not limited to Local Area Networks (LANs) (e.g., an Ethernet or corporate network), Wide Area Networks (WANs) (e.g., the Internet), wireless data networks, some other electronic data network, or some combination thereof. In various embodiments, network interface 1040 can support communication via wired or wireless general data networks, such as any suitable type of Ethernet network, for example, via digital fiber communications networks; via storage area networks such as Fiber Channel SANs, or via any other suitable type of network and/or protocol.
Input/output devices 1050 can, in some embodiments, include one or more display terminals, keyboards, keypads, touchpads, scanning devices, voice or optical recognition devices, or any other devices suitable for entering or accessing data by one or more computer systems. Multiple input/output devices 1050 can be present in computer system or can be distributed on various nodes of the computing device 1000. In some embodiments, similar input/output devices can be separate from the computing device 1000 and can interact with one or more nodes of the computing device 1000 through a wired or wireless connection, such as over network interface 1040.
Those skilled in the art will appreciate that the computing device 1000 is merely illustrative and is not intended to limit the scope of embodiments. In particular, the computer system and devices can include any combination of hardware or software that can perform the indicated functions of various embodiments, including computers, network devices, Internet appliances, PDAs, wireless phones, pagers, and the like. The computing device 1000 can also be connected to other devices that are not illustrated, or instead can operate as a stand-alone system. In addition, the functionality provided by the illustrated components can in some embodiments be combined in fewer components or distributed in additional components. Similarly, in some embodiments, the functionality of some of the illustrated components may not be provided and/or other additional functionality can be available.
The computing device 1000 can communicate with other computing devices based on various computer communication protocols such a Wi-Fi, Bluetooth.®. (and/or other standards for exchanging data over short distances includes protocols using short-wavelength radio transmissions), USB, Ethernet, cellular, an ultrasonic local area communication protocol, etc. The computing device 1000 can further include a web browser.
Although the computing device 1000 is depicted as a general purpose computer, the computing device 1000 is programmed to perform various specialized control functions and is configured to act as a specialized, specific computer in accordance with the present principles, and embodiments can be implemented in hardware, for example, as an application specified integrated circuit (ASIC). As such, the process steps described herein are intended to be broadly interpreted as being equivalently performed by software, hardware, or a combination thereof.
In the network environment 1100 of
In some embodiments, a user can implement a system for RGBD semantic segmentation in the computer networks 1106 to provide semantic segmentation in accordance with the present principles. Alternatively or in addition, in some embodiments, a user can implement a system for semantic segmentation in the cloud server/computing device 1112 of the cloud environment 1110 to provide RGBD semantic segmentation in accordance with the present principles. For example, in some embodiments it can be advantageous to perform processing functions of the present principles in the cloud environment 1110 to take advantage of the processing capabilities and storage capabilities of the cloud environment 1110. In some embodiments in accordance with the present principles, a system for providing semantic segmentation in a container network can be located in a single and/or multiple locations/servers/computers to perform all or portions of the herein described functionalities of a system in accordance with the present principles. For example, in some embodiments components of the RGBD semantic segmentation system, such as the slow processing module 105 and the fast-processing module 110 can be located in one or more than one of the user domain 1102, the computer network environment 1106, and the cloud environment 1110 for providing the functions described above either locally or remotely.
Those skilled in the art will also appreciate that, while various items are illustrated as being stored in memory or on storage while being used, these items or portions of them can be transferred between memory and other storage devices for purposes of memory management and data integrity. Alternatively, in other embodiments some or all of the software components can execute in memory on another device and communicate with the illustrated computer system via inter-computer communication. Some or all of the system components or data structures can also be stored (e.g., as instructions or structured data) on a computer-accessible medium or a portable article to be read by an appropriate drive, various examples of which are described above. In some embodiments, instructions stored on a computer-accessible medium separate from the computing device 1000 can be transmitted to the computing device 1000 via transmission media or signals such as electrical, electromagnetic, or digital signals, conveyed via a communication medium such as a network and/or a wireless link. Various embodiments can further include receiving, sending or storing instructions and/or data implemented in accordance with the foregoing description upon a computer-accessible medium or via a communication medium. In general, a computer-accessible medium can include a storage medium or memory medium such as magnetic or optical media, e.g., disk or DVD/CD-ROM, volatile or non-volatile media such as RAM (e.g., SDRAM, DDR, RDRAM, SRAM, and the like), ROM, and the like.
The embodiment of the RGBD semantic segmentation system 1200 of
The semantic segmentation system 1200 of the embodiment of
In some embodiments of the present principles, the semantic segmentation system 1200 of the embodiment of
The semantic segmentation system 1200 of the embodiment of
In some embodiments, for LIDAR data, the semantic segmentation system 1200 can use a Fast-GICP algorithm to perform an efficient voxel-based generalized Iterative Closet Point (ICP) process to register 3D LIDAR points obtained from sequential scans (scan-to-scan registration). A 3D related pose measurement across sequential scans is then generated and fused. The wheel odometry readings are integrated as 3D velocity measurements, rather than related pose constraints or simple speed. Therefore, the wheel odometry is formulated as a 3D velocity vector that constraints speed in a local direction of a subject mobile platform and naturally encompasses backward and forward motions.
Referring back to
In some embodiments, during navigation, key frames are selected from input video streams and can be added into a database. The database entries can include video frame(s) that hold the collection of key points with their descriptors, image locations, and 3D world coordinates computed from triangulation across matched stereo 2D points across video frames. In some embodiments, a selection can be based on conditions between new frame and past key frames, including the number of overlapped features, a temporal difference, and a spatial difference between poses associated with frames. In some embodiments, loop detection is achieved by matching a new image to the database of key frames. If a frame is matched to a key frame that has been added before, it indicates the matched key frame was acquired when the mobile platform previously visited the same location. As such, these matches can be treated as loop closures to optimize past poses involved within the loop, which is the typical pose graph optimization process. The optimized pose can be fed back to the multi-sensor odometry module 1250 to correct the drift for a real-time navigation solution.
The semantic segmentation sub-system 1240 of the semantic segmentation system 1200 of
The methods and processes described herein may be implemented in software, hardware, or a combination thereof, in different embodiments. In addition, the order of methods can be changed, and various elements can be added, reordered, combined, omitted or otherwise modified. All examples described herein are presented in a non-limiting manner. Various modifications and changes can be made as would be obvious to a person skilled in the art having benefit of this disclosure. Realizations in accordance with embodiments have been described in the context of particular embodiments. These embodiments are meant to be illustrative and not limiting. Many variations, modifications, additions, and improvements are possible. Accordingly, plural instances can be provided for components described herein as a single instance. Boundaries between various components, operations and data stores are somewhat arbitrary, and particular operations are illustrated in the context of specific illustrative configurations. Other allocations of functionality are envisioned and can fall within the scope of claims that follow. Structures and functionality presented as discrete components in the example configurations can be implemented as a combined structure or component. These and other variations, modifications, additions, and improvements can fall within the scope of embodiments as defined in the claims that follow.
In the foregoing description, numerous specific details, examples, and scenarios are set forth in order to provide a more thorough understanding of the present disclosure. It will be appreciated, however, that embodiments of the disclosure can be practiced without such specific details. Further, such examples and scenarios are provided for illustration, and are not intended to limit the disclosure in any way. Those of ordinary skill in the art, with the included descriptions, should be able to implement appropriate functionality without undue experimentation.
References in the specification to “an embodiment,” etc., indicate that the embodiment described can include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is believed to be within the knowledge of one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly indicated.
Embodiments in accordance with the disclosure can be implemented in hardware, firmware, software, or any combination thereof. Embodiments can also be implemented as instructions stored using one or more machine-readable media, which may be read and executed by one or more processors. A machine-readable medium can include any mechanism for storing or transmitting information in a form readable by a machine (e.g., a computing device or a “virtual machine” running on one or more computing devices). For example, a machine-readable medium can include any suitable form of volatile or non-volatile memory.
In addition, the various operations, processes, and methods disclosed herein can be embodied in a machine-readable medium and/or a machine accessible medium/storage device compatible with a data processing system (e.g., a computer system), and can be performed in any order (e.g., including using means for achieving the various operations). Accordingly, the specification and drawings are to be regarded in an illustrative rather than a restrictive sense. In some embodiments, the machine-readable medium can be a non-transitory form of machine-readable medium/storage device.
Modules, data structures, and the like defined herein are defined as such for ease of discussion and are not intended to imply that any specific implementation details are required. For example, any of the described modules and/or data structures can be combined or divided into sub-modules, sub-processes or other units of computer code or data as can be required by a particular design or implementation.
In the drawings, specific arrangements or orderings of schematic elements can be shown for ease of description. However, the specific ordering or arrangement of such elements is not meant to imply that a particular order or sequence of processing, or separation of processes, is required in all embodiments. In general, schematic elements used to represent instruction blocks or modules can be implemented using any suitable form of machine-readable instruction, and each such instruction can be implemented using any suitable programming language, library, application-programming interface (API), and/or other software development tools or frameworks. Similarly, schematic elements used to represent data or information can be implemented using any suitable electronic arrangement or data structure. Further, some connections, relationships or associations between elements can be simplified or not shown in the drawings so as not to obscure the disclosure.
This disclosure is to be considered as exemplary and not restrictive in character, and all changes and modifications that come within the guidelines of the disclosure are desired to be protected.
This application claims benefit of and priority to U.S. Provisional Patent Application Ser. No. 63/088,803, filed Oct. 7, 2020, which is herein incorporated by reference in its entirety.
This invention was made with Government support under contract no. W9132V19C0003 awarded by the Engineering Research and Development Center (ERDC)-Geospacial Research Lab (GRL). The Government has certain rights in this invention.
Number | Date | Country | |
---|---|---|---|
63088803 | Oct 2020 | US |