This application relates to the technical field of smart transportation, and in particular, to a method for generating a three-dimensional (3D) digital representation of traffic on a road.
As an important part of smart city construction solution, smart transportation construction solution plays a significant role in improving operational efficiency, service level, and security assurance of urban transportation. Traffic accidents and abnormal traffic events are frequently occurred on roads. Traffic data obtaining and traffic status monitoring of the traffic on roads are important for urban transportation management. Data is a basis for the smart transportation construction solution. Automatic analysis, research, and determination of various pieces of traffic information are based on massive data. Currently, a large number of raw data collection devices, such as surveillance cameras, radars, and magnetic induction coils, are deployed on roads as data sources to collect a massive amount of data of road transportation. Road traffic observation and research can provide a better understanding of speeds, tracks, and flow directions of vehicles, pedestrians, and a non-motorized vehicles on a road, and are of great significance for traffic flow monitoring, congestion relief, and traffic violation monitoring.
In the prior art, traffic on a road is mainly monitored by observing video data shot by cameras. The video data occupies a large amount of memory, and has low transmission efficiency and poor observability.
This application provides a method and device for generating a 3D digital representation of traffic on a road. A road running a plurality of targets in a physical world may be represented by a 3D digital representation through the method. A moving status of the targets on the road may be efficiently monitored using the 3D digital representation.
According to a first aspect, this application provides a method of generating a 3D digital representation of traffic on a road. The method includes: obtaining videos taken by a plurality of cameras disposed on the road, wherein videos taken by different cameras record at least one targets on the road at different viewing angles; determining a moving path of each target on the road based on the videos; and performing modeling on each target, wherein each modeled target generated by the modeling represents a corresponding target on the road, and each modeled target is three-dimensional; and establishing a 3D digital representation of the traffic on the road, wherein in the 3D digital representation, each modeled target moves on a 3D digital map corresponding to the road based on the moving path of the corresponding target.
In the foregoing method, the 3D digital representation of the road is generated to help a user (for example, a vehicle owner or a staff member of a traffic management department) conveniently and truly learn a moving status of the road. Further, compared with raw video data, the digital representation occupies less memory and has higher transmission efficiency, so that the digital representation may be easily stored and transmitted. Furthermore, due to the digital representation is 3D and incorporates multiple videos from different viewing angles, it is more convenient and accurate to perform traffic monitoring using the digital representation.
It should be understood that the target on the road may be a moving object such as a vehicle, a pedestrian, or an animal, or a temporarily stationary moving object.
In a possible implementation of the first aspect, the method further includes: determining type information and attribute information of each target based on the videos, wherein the step of performing modeling on each target generates each modeled target based on the type information and the attribute information of the corresponding target.
In a possible implementation of the first aspect, the method further includes: associating each modeled target with the type information and the attribute information of the corresponding target.
In a possible implementation of the first aspect, the method further includes: displaying the digital representation or sending the digital representation to a display apparatus. A viewing angle of the displayed digital representation can be the same as or different from a viewing angle of the video data. The digital representation is displayed, so that the user can more conveniently obtain information of the road based on the digital representation.
In a possible implementation of the first aspect, when the type information of a target indicates the target is a vehicle, the attribute information of the target comprises at least one of color of the vehicle, a license plate number of the vehicle, a model of the vehicle, and a moving speed of the vehicle. The attribute information may further describe and explain the target of the road, so that the user can understand the target in more detail.
In a possible implementation of the first aspect, the videos include video frames at a first moment. The determining a moving path of each target on the road based on the videos includes: determining geographic coordinates of each target on the road at the first moment based on the video frames at the first moment, and determining the moving path of each target on the road based on the geographic coordinates of each target on the road at the first moment and geographic coordinates of each target on the road before the first moment.
In a possible implementation of the first aspect, the method further includes: determining a posture of each target based on the moving path of each target on the road. Each modeled target in the digital representation moves based on the moving path and a posture of the target, on the road, that corresponds to the modeled target. The posture of each target is an orientation of each target.
In the foregoing method, the digital representation more truly shows moving of each target on the road, so that the user may intuitively obtain a posture of a target from the digital representation at a certain moment.
In a possible implementation of the first aspect, the 3D digital representation of the traffic of the road represents a real-time moving status of each target of the road.
In a possible implementation of the first aspect, the method further includes: recognizing a background object on the road based on the videos. The digital representation further includes a modeled target representing the background object on the road. The background object on the road is modeled targeted and presented, so that the user can more clearly understand a surrounding environment and a background status of the road through the digital representation. This helps the user make decisions.
In a possible implementation of the first aspect, the moving path of each target comprises 3D coordinates of the target at different moments on the road; the step of establishing the 3D digital representation of the traffic on the road comprising: obtaining the 3D digital map, wherein the 3D digital map comprises a region representing the road, each point of the region is represented by a 3D coordinate; adding, according to the moving path of each corresponding target, each modeled target to the three-dimensional digital map.
In a possible implementation of the first aspect, the method further includes: obtaining radar data, where the radar data records driving information of the target on the road; and determining the moving path of each target on the road based on the radar data and the videos. A moving path of each target on the road is determined by the radar data and the videos, so that accuracy of the determined moving path of the target can be improved.
In a possible implementation of the first aspect, the method further includes: adjusting, according to an instruction, a viewing angle of the 3D digital representation, wherein selectable viewing angles comprises at least one of: panoramic viewing angle, east viewing angle, west viewing angle, south viewing angle, and north viewing angle.
According to a second aspect, this application further provides a method for providing a digital representation of a road. The method includes: presenting, to a user, a digital representation of the road from a first viewing angle, where the digital representation includes a plurality of modeled targets, each modeled target represents each target on the road, each modeled target runs based on a moving path of a target that corresponds to the modeled target and that is on the road, and a moving path of each target on the road is obtained through calculation based on videos taken by a camera on the road; receiving viewing angle adjustment information sent by the user, where the viewing angle adjustment information is used to request to observe the digital representation from a second viewing angle; and presenting, to the user based on the viewing angle adjustment information, the digital representation from the second viewing angle.
The digital representation may present, to the user based on the viewing angle adjustment information of the user, a moving status of the road from different viewing angles. This increases flexibility and may provide more information to the user.
In a possible implementation of the second aspect, different modeled targets in the digital representation correspond to different targets.
In a possible implementation of the second aspect, the method further includes: presenting attribute information of a target to the user. The attribute information of the target is associated with a modeled target, corresponding to the target, in the digital representation.
In a possible implementation of the second aspect, the presenting attribute information of a target to the user specifically includes: receiving instruction information of the user; and displaying, based on the instruction information of the user, the attribute information of the target in the digital representation of the road from the first viewing angle.
In a possible implementation of the second aspect, the method further includes: presenting, to the user, moving paths of the plurality of modeled targets in the digital representation.
In a possible implementation of the second aspect, the digital representation further includes a background on the road, and the background includes a marking line on the road and an object around the road.
In a possible implementation of the second aspect, the road includes a plurality of intersections, and the digital representation of the road coherently presents each intersection and a modeled target corresponding to a target moving on each intersection.
According to a third aspect, this application further provides a graphical user interface system. The system includes: a digital representation window, configured to display a digital representation of the road, where the digital representation includes a plurality of modeled targets, each modeled target represents each target on the road, and each modeled target in the digital representation moves based on a moving path of a target that corresponds to the modeled target and that is on the road; and a management window, including a button selectable by a user, where the button selectable by the user includes a viewing angle adjustment button. After the viewing angle adjustment button is selected by the user, the digital representation window displays a digital representation of the road from a viewing angle corresponding to the viewing angle adjustment button.
In a possible implementation of the third aspect, the digital representation further includes attribute information of a target. The attribute information of the target is associated with a modeled target, corresponding to the target, in the digital representation.
In a possible implementation of the third aspect, the digital representation further includes a moving path of each modeled target, and the moving path of each modeled target is obtained based on a moving path of each target on the road.
In a possible implementation of the third aspect, the button selectable by the user further includes a track display button. After the track display button is selected by the user, the digital representation window displays the moving path of each modeled target.
In a possible implementation of the third aspect, the moving path of each modeled target includes a moving path of each modeled target at a future moment.
In a possible implementation of the third aspect, the digital representation further includes a background on the road, and the background includes a marking line on the road and an object around the road.
In a possible implementation of the third aspect, the road includes a plurality of intersections, and the digital representation of the road coherently presents each intersection and a modeled target corresponding to a target moving on each intersection.
According to a fourth aspect, this application further provides a computing device. The computing device comprises a memory storing executable instructions and a processor configured to execute the executable instructions to perform the method in the first aspect or any possible implementation of the first aspect.
According to a fifth aspect, this application further provides a display device. The display device includes a receiving module and a display module. The display module is configured to present, to a user, a digital representation of the road from a first viewing angle. The digital representation includes a plurality of modeled targets. Each modeled target represents each target on the road. Each modeled target moves based on a moving path of a target that corresponds to the modeled target and that is on the road. A moving path of each target on the road is obtained through calculation based on video data shot by a camera on the road. The receiving module is configured to receive viewing angle adjustment information sent by the user. The viewing angle adjustment information is used to request to observe the digital representation from a second viewing angle. The display module is further configured to present, to the user based on the viewing angle adjustment information, the digital representation from the second viewing angle.
It should be understood that the display device may be a terminal device, for example, a mobile phone, a tablet computer, a vehicle-mounted computer, or a portable computer, or may be a visualization device located on an edge side or in a data center.
According to a sixth aspect, this application further provides a computing device. The computing device includes a processor and a memory. The memory stores a computer instruction. The processor executes the computer instruction, to enable the computing device to perform the method in the first aspect or any possible implementation of the first aspect. It should be understood that the computing device may be a server, a vehicle-mounted computing device, a vehicle, or the like.
According to a seventh aspect, this application further provides a computer-readable storage medium. The computer-readable storage medium stores computer program code. When the computer program code is executed by a computing device, the computing device performs the method in the first aspect or any possible implementation of the first aspect, or performs the method in the second aspect or any possible implementations of the second aspect. The computer-readable storage medium includes but is not limited to a volatile memory such as a random access memory, or a non-volatile memory such as a flash memory, a hard disk drive (HDD), or a solid-state drive (SSD).
According to an eighth aspect, this application further provides a computer program product. The computer program product includes computer program code. When the computer program code is executed by a computing device, the computing device performs the method provided in the first aspect or any possible implementation of the first aspect, or performs the method provided in the second aspect or any possible implementation of the second aspect. The computer program product may be a software installation package. When the method provided in the first aspect or any possible implementation of the first aspect needs to be used, or the method provided in the second aspect or any possible implementation of the second aspect needs to be used, the computer program product may be downloaded and executed on a computing device.
According to a ninth aspect, this application further provides a system. The system includes the display device according to the fifth aspect and the computing device according to the sixth aspect.
To describe the technical solutions in the embodiments of this application more clearly, the following briefly describes the accompanying drawings for the embodiments.
The following describes in detail the solutions in the embodiments provided in this application with reference to the accompanying drawings in this application.
A road is an area in which a pedestrian and a vehicle pass in a physical world. The road includes a plurality of traffic intersections and traffic paths. This application provides a method for generating a digital representation of traffic on a road. The method is performed by a digital representation system. A digital representation of the road may be established through the method, and the digital representation may display a moving status of the road in real time.
As shown in
As shown in
The digital representation system is configured to perform digital modeling on the road in the physical world based on the raw data collected by the raw data collection device. There may be a plurality of division manners for the subsystems and the units in the digital representation system. This is not limited in this application.
The data processing subsystem 120 is configured to receive raw data collected by at least one raw data collection device, and the raw data mainly includes video data shot by a camera disposed on the road. In an embodiment, received video data is a real-time video stream that records a traffic status of the road. The data processing subsystem 120 further processes the received raw data to obtain data with more semantics. The data processing subsystem includes a plurality of functional units. A data alignment unit 121 is configured to: receive video data collected by a plurality of cameras disposed at fixed locations on the road, and perform time alignment on a plurality of pieces of video data, that is, extract a video frame that record a traffic status at a same moment, and output the video frame to a target detection unit 122. The target detection unit 122 is configured to detect a location and a type of a target existing in the video frame, to obtain location information and type information of the target. A target attribute detection unit 123 is configured to detect an attribute of each type of target based on a type of each target, to obtain attribute information of the target. A data storage unit 124 is configured to store data obtained by the target detection unit and the target attribute detection unit. The data may be read and used by functional units in the data analysis subsystem and the digital modeling subsystem.
Optionally, the data processing subsystem further includes a background detection unit 125. The background detection unit 125 is configured to receive raw data, collected by the raw data collection device, that is related to a road background. The raw data may be video data and other data (for example, radar data and infrared data) that are collected by a device disposed at a fixed location on the road. Alternatively, the raw data may be video data or other data collected by a drone and an itinerant reading vehicle that dynamically collect data. The background detection unit 125 is configured to detect and recognize a background object on the road based on the received raw data, to obtain type information and location information of the background object.
It should be noted that, in this application, the target refers to an object moving on the road or a movable object that is on the road and that is still within a period of time, for example, a motor vehicle, a pedestrian, a non-motor vehicle, or an animal. The attribute information of the target refers to information related to the target, and the attribute information of the target includes direct attribute information and indirect attribute information. The direct attribute information is attribute information (for example, a color of a vehicle, a license plate number of the vehicle, a modeled target of the vehicle, and a moving speed of the vehicle) that is directly calculated, recognized, and obtained based on the target. The indirect attribute information is attribute information that is obtained by further analyzing a direct attribute of the target or querying a related database based on the direct attribute of the target. Each target has attribute information. The type information of the target may be one type of attribute information of the target. To be specific, the type information of the target is one type of attribute information, of the target, that is used for classification. Other to-be-observed attribute information, corresponding to different types of targets obtained through classification based on the type information of the target, may be different.
In this application, the background object refers to a static object on the road or around the road, including a road marking line, a warning sign, a traffic signal pole, a booth, a surrounding building, a roadside tree, a flower-bed, and the like.
The data analysis subsystem 140 is configured to read data processed by the data processing subsystem 120, and further process and analyze the data. The data analysis subsystem 140 includes a plurality of functional units. A locating unit 141 is configured to determine, based on pre-collected geographic coordinates of a control point in the physical world and pre-collected pixel coordinates of the control point in the video frame, a mapping relationship between pixel coordinates of a point in a video shot by each camera and geographic coordinates of the point, and obtain, based on the mapping relationship, geographic coordinates of the target that is in the physical world and that is detected by the target detection unit. A target tracking unit 142 is configured to: determine location information of a same target in two adjacent video frames, record pixel coordinates of the target at each moment, and obtain a moving path of the target in the video data. A data analysis unit 143 is configured to analyze a plurality of groups of processed data obtained from video data at a plurality of different viewing angles, to obtain data, of the target, at a panoramic viewing angle formed by the plurality of different viewing angles.
Optionally, the locating unit 141 may further be configured to obtain, based on the mapping relationship obtained in the foregoing manner, geographic coordinates of the background object that is in the physical world and that is detected by the background detection unit.
Optionally, the data analysis subsystem 140 further includes a target attribute information analysis unit 144. The target attribute information analysis unit 144 is configured to obtain the indirect attribute information of the target based on information, such as an attribute or a location of the target, that is obtained by the data processing subsystem 120 and the data analysis subsystem 140.
The digital modeling subsystem 160 is configured to perform digital modeling on the road and the target on the road in the physical world based on data obtained by the data processing subsystem 120 and the data analysis subsystem 140, to obtain a digital representation. The digital modeling subsystem 160 includes a background modeling unit 161, configured to perform modeling on the road and a background object around the road, to obtain a modeled target corresponding to the background object on the road. In another embodiment, the digital representation system 100 may not include the background modeling unit 161, and the digital representation system 100 may obtain, from another device or system, a modeled target corresponding to a background object that has been modeled targeted. A target modeling unit 162 is configured to perform modeling on the target based on the type information and the attribute information of the target that are obtained by the data processing subsystem 120 and the data analysis subsystem 140, to obtain a modeled target corresponding to each target. A target mapping unit 163 is configured to map the modeled target corresponding to each target to a map, to obtain the digital representation of the road. A target attribute information association unit 164 is configured to associate the attribute information of the target with a corresponding modeled target, of the target, in the digital representation. A digital representation output unit 165 is configured to output the reconstructed digital representation of the road to a display device or another system, so that the display device displays the digital representation or the system performs a further operation based on the digital representation.
In this application, the digital representation system 100 may be a software system, and subsystems and functional units included in the digital representation system 100 are deployed on a hardware device in a relatively flexible manner. As shown in
Digital Representation of a Road
S301: Obtain raw data. Specifically, a digital representation system obtains raw data, of the road, that is collected by a raw data collection device in real time. The raw data includes video data. The video data is a video stream, shot by a camera disposed at a fixed location on the road that reflects a real-time traffic status of the road. Generally, each intersection or road section on the road is disposed with a plurality of cameras shooting from different viewing angles, and each camera shoots a traffic status of the road from one viewing angle.
Optionally, in the step S301, radar data collected by the raw data collection device (for example, a millimeter-wave radar, a microwave radar, or an optoelectronic radar) may be further obtained, and information such as a location and a moving speed of a target on the road may be obtained by analyzing the radar data. The radar data may be used as a supplement to the video data because of high accuracy of the radar data in reflecting the location and the moving speed of the target.
It should be noted that, in the step S301, the video stream may be continuously obtained in real time, and subsequent steps S302 to S306 are performed, from a time point, on a video frame obtained at each moment (as shown in
S302: Perform target detection and attribute detection. Specifically, target detection is performed on a video frame, in each piece of video data, that is at a same moment, to obtain location information and type information of the target (where the location information of the target is pixel coordinates of the target in the video frame). Further, target attribute detection is performed on the detected target, to obtain attribute information of the target. Because a type of the target in the video frame is obtained in the target detection, an attribute type detected in the target attribute detection may be different based on a different type of the target. For example, if a detected type of the target is a motor vehicle, a to-be-detected attribute type of the motor vehicle includes a vehicle modeled target, a vehicle body color, a license plate, and the like. If the detected type of the target is a pedestrian, a to-be-detected attribute type of the person includes: a gender, a clothing color, a body shape, and the like.
It should be noted that, when a plurality of pieces of video data are obtained, time alignment is first performed on the plurality of pieces of video data during the target detection, that is, video frames indicating a traffic status at a same moment in the plurality of pieces of video data are obtained; then, target detection and target attribute detection are performed on each video frame at the same moment.
Optionally, in the step S302, background detection may be further performed to detect a background object on the road in the video frame, to obtain location information and type information of the background object.
S303: Perform target locating. The target locating is mainly to convert pixel coordinates corresponding to the target detected in the video frame into geographic coordinates of the target in a physical world. The pixel coordinates of the target are coordinates of a pixel at a location of the target in the video frame, and the pixel coordinates are two-dimensional coordinates. The geographic coordinates of the target are coordinates of the target in any coordinate system in the physical world. For example, in this application, three-dimensional coordinates including a longitude, a latitude, and an altitude that correspond to the location of the target on the road are used as the geographic coordinates. A specific method for performing target locating is described in detail in a subsequent step.
Optionally, in the step S303, background locating may be further performed to convert pixel coordinates of the background object on the road in the video frame into geographic coordinates.
S304: Perform target tracking. The target tracking refers to tracking locations, of a target recorded in the segment of video data, in different video frames. Specifically, in the video data, a target recorded in a video frame at a current moment and a target recorded in a video frame at a previous moment are determined as a same target. The two targets correspond to a same target ID, and pixel coordinates of the target ID in the video frame at the current moment are recorded in a target track table. The target track table records pixel coordinates, at the current moment and at a historical moment, of each target in an area shot by the camera (a moving path of the target may be obtained through fitting based on pixel coordinates of the target at the current moment and pixel coordinates of the target at the historical moment). When target tracking is performed, a type, a location, and an attribute of a target in a currently processed video frame that are obtained in the step S302 may be compared with a type, a location, and an attribute of a target in a cached processed video frame at the previous moment, to determine an association between the targets in two adjacent video frames. In other words, the targets that are determined as a same target in the two adjacent video frames are marked as a same target ID, and a target ID corresponding to each target and pixel coordinates of the target ID in the video frames are recorded. There are various target tracking methods. In this application, a target tracking method is described as an example in subsequent S601 to S606.
S305: Perform data analysis. When a plurality of groups of processed data (such as type information, geographic coordinates, and attribute information of the target) are obtained from a plurality of video frames at the same moment in the foregoing step, the plurality of groups of processed data are analyzed in this step, to obtain analyzed data. Specifically, for example, when type and attribute information of targets in the plurality of groups of data are the same and geographic coordinates of the targets are similar, weighted average is performed on the geographic coordinates of the targets in the plurality of groups of data to obtain analyzed geographic coordinates of the targets, and a group of type and attribute information of the targets in the plurality of groups of data and the analyzed target geographic coordinates of the targets are combined to form a group of analyzed data of the targets. For a target that exists only in a video frame from one viewing angle at the same moment but cannot be observed in another video frame at the same moment, data such as geographic coordinates, types, and attributes in a group of data corresponding to the video frame is obtained analyzed data such as geographic coordinates, types, and attributes. Through multi-directional data analysis, data of each target (for example, the geographic coordinates corresponding to the target) may be more accurate, and data of all targets on the road that are shot by the plurality of cameras at the same moment may be obtained. The analyzed data of the targets can more accurately present the targets on the road at the moment, and avoid incomplete target data, at a viewing angle of a single camera, caused by vehicle blocking, a viewing angle limitation, a light shadow, and the like.
Optionally, in the step S305, processed data obtained from raw data collected by different raw data collection devices may be also analyzed. For example, processed data obtained after the radar data is processed and processed data obtained from raw data collected by the cameras are analyzed, so that the data is more accurate. For example, for a geographic location of the target, analyzed geographic coordinates that are obtained after target detection, target locating and target geographic coordinate analysis are performed on the video data and geographic coordinates of the target that are obtained through calculation based on the radar data may be further analyzed (for example, weighted average is performed), so that obtained final geographic coordinates of the target are more accurate.
S306: Perform digital modeling. Modeling is performed on each target based on type information and attribute information of each target, to obtain a modeled target corresponding to each target. Different targets correspond to different modeled targets, and a modeled target corresponding to the target may be a three-dimensional modeled target. The modeled target corresponding to each target is mapped to a pre-obtained map based on analyzed geographic coordinates that correspond to each target and that are obtained in the step S305, to obtain a digital representation of the road (as shown in
The map may be provided by a map provider or constructed in advance. The map includes the background object on the road (for example, a building around the road, a flower-bed, a traffic marking line on the road, or a traffic sign).
In another embodiment, the map may be provided by the map provider, and the map does not include some or all background objects on the road. In this case, the step S306 further includes: performing modeling on the background object based on a type, of the background object on the road, that is detected in the foregoing optional background detection process, to obtain a modeled target corresponding to each background object; and also mapping, based on obtained geographic coordinates of each background object, the modeled target corresponding to each background object to the map.
Optionally, the map may be obtained by performing digital modeling on the background object based on background data that is of the road and that is collected in advance by a device such as a drone or a map collection vehicle. This type of map is a modeled target map, and the modeled target map has advantages of small memory occupation and a fast construction speed.
Optionally, when the map is constructed in advance, surrounding buildings of the road and the road may be scanned through a satellite or laser point cloud technology, to obtain a real-view image, and a real-view map is constructed for the road and a surrounding environment of the road based on a real-view image processing technology and a three-dimensional rendering technology. The real-view map may vividly and truly present a background status of the road in the physical world.
Optionally, at any moment after the step S302, an operation of analyzing the attribute of the target may be further performed. Specifically, calculation and analysis are performed on direct attribute information of the target obtained in the step S302 (or the geographic coordinates of the target or the background object obtained in the step S303, the moving path of the target obtained in the step S304, the analyzed data of the target obtained in the step S305, and the like), or an associated database is queried, based on one or more types of data in the data to obtain indirect attribute information of the target. For example, the moving speed of the target is calculated based on the analyzed geographic coordinates of the target and analyzed geographic coordinates of the target in a video frame at the previous moment; a posture of the target is analyzed based on the moving path of the target; and when the type of the target is a motor vehicle or a non-motor vehicle, the associated database is queried based on license plate information of the target to obtain vehicle information corresponding to the target.
Optionally, in the step S306, the three-dimensional modeled target corresponding to the target is further associated with all or part of obtained attribute information of the target (including the direct attribute information of the target or the indirect attribute information of the target), and the attribute information of the target is sent to a display device, so that the attribute information of the target is displayed near a location of each target on a digital map displayed on the display device (or after an instruction sent by the display device is received, the attribute information of the target is sent to the display device, so that the display device displays the attribute information corresponding to the target).
It should be noted that an execution sequence of the step S304 and the step S305 is interchangeable. In other words, target tracking may be first performed. To be specific, a target in an obtained video frame is compared with a target in a processed video frame at the previous moment, a same target in the two video frames is marked as a same target ID, and a moving path of each target ID in a period of time is obtained. Then, data corresponding to a same target in the plurality of video frames at the same moment is analyzed, to obtain an analyzed target ID and analyzed data corresponding to the analyzed target ID. Alternatively, the data corresponding to the same target in the plurality of video frames at the same moment may be first analyzed to obtain the analyzed target ID and the analyzed data corresponding to the analyzed target ID. Then, a target in each video frame is compared with the target in the processed video frame at the previous moment, and a same target in the two video frames are marked as a same analyzed target ID. After target tracking is performed in the step S304, a same target on the road at each moment in a period of time may also be a same analyzed target ID in the digital representation, and a used three-dimensional modeled target and attribute information of the target are the same.
It should be noted that the step S301 is continuously performed to obtain a video stream shot by each camera in real time. The steps S302 to S306 are performed on each video frame in the video data obtained in the step S301. A target in the digital representation obtained thereby may run with the target on the road in the physical world, and the digital representation may reflect the traffic status of the road in real time.
With reference to
S401: Obtain a to-be-processed video frame. Specifically, when only one piece of video data is obtained in the step S301, a video frame (for example, a latest video frame) in the obtained video data is used as the to-be-processed video frame. When a plurality of pieces of video data are obtained in the step S301, a plurality of video frames at a same moment needs to be searched for in the obtained plurality of pieces of video data. There is a plurality of methods for obtaining the plurality of video frames at the same moment. For example, in a method 1, a network time protocol (NTP) server is used to perform clock synchronization for clock systems in the plurality of cameras or crystal oscillator hardware for time synchronization is built in a camera. In this way, time of a time stamp corresponding to each frame in video data shot by each camera is more accurate. The plurality of video frames at the same moment are obtained through this method. To be specific, video frames that are in the plurality pieces of video data and have a same time stamp are obtained. In a method 2, homography transformation is performed on obtained video frames of the plurality of pieces of video data, to map the video frames of the plurality of pieces of video data to a same plane, and a plurality of overlapping video frames are searched for in the same plane. The plurality of overlapping video frames are video frames at the same moment. A video frame at a moment of a camera may be pre-selected, and homography transformation is performed on the video frame. An image obtained after the homography transformation is used as a reference to perform homography transformation on a video frame shot by another camera, to match an overlapping image. A video frame corresponding to the overlapping image and the pre-selected video frame are at the same moment. The homography transformation is mapping from one plane to another plane. A mapping relationship between a plane, of a video frame in video data at a viewing angle of each camera, and a same plane needs to be obtained through pre-calculation.
S402: Detect a target in the obtained video frame. In this step, a trained neural network modeled target is mainly used to detect the target in the video frame. For example, a neural network modeled target such as a YoLo, an SSD, or a recurrent convolutional neural network (RCNN) may be used. It should be noted that the neural network modeled target needs to be trained in advance, and an annotation of a training image in a used training set should include types of a plurality of to-be-recognized targets (for example, a motor vehicle, a non-motor vehicle, a pedestrian, and an animal), so that the neural network modeled target learns a feature of each type of target in the training set. Location information and type information of the target in the video frame may be obtained through the target detection. The location information is pixel coordinates of the target in the video frame, namely, pixel coordinates of a regression box corresponding to the target in the video frame, for example, pixel coordinates of two endpoints of an oblique line of the regression box in the video frame or pixel coordinates of a box contour of the regression box in the video frame. Data obtained through the target detection may be structured data. For example, each target corresponds to a target ID. The target ID and location information and type information of the target ID form a piece of structured data. When the plurality of video frames at the same moment are obtained in S401, the step S402 is performed on each video frame.
S403: Perform attribute detection on the target based on a detected type of the target. Target attribute detection is mainly performed based on collaboration of a plurality of neural network modeled targets or image processing algorithms, for example, a resnet classification modeled target and a histogram color statistics algorithm. To-be-detected attributes of different types of targets may be different, and used target attribute detection methods may also be different. For example, attribute detection is performed on a target whose target type is a motor vehicle. A plurality of pre-trained neural network modeled targets may be used to detect the vehicle modeled target, the color, and the license plate of the target, or a composite neural network modeled target may be used. A target attribute detection method is not limited in this application. A method that can be used for attribute detection in the prior art or a method that can be used for attribute detection and that is generated through future research is applicable to this application.
Optionally, in the step S403, direct attribute information of the target is detected through the target attribute detection. Indirect attribute information of the target may be further obtained through analysis and query based on the detected direct attribute information of the target and the location and type information of the target. A distance between the motor vehicle and a traffic marking line and a distance between the motor vehicle and a traffic signal light are obtained by comparing location information of the motor vehicle with a location of the background object.
It should be noted that, when the plurality of video frames at the same moment are obtained in S401, the steps S402 and S403 are performed on each video frame.
S404: Arrange and output obtained processed data, where processed data of the video frame obtained in the steps S402 and S403 may be output to another processing unit or storage unit in a form of structured data.
The following describes in detail the method for locating the detected target in the step S303 with reference to
Data of location information of a target in a plurality of video frames may be obtained in the step S302 and the detailed description steps S401 to S404 of the step S302. The data of the location information is pixel coordinates of the target in the video frames. In the step S303, the pixel coordinates of the target are converted into geographic coordinates of the target in the physical world. A plurality of methods may be used to convert the pixel coordinates of the target into the geographic coordinates of the target in the physical world. An example of the methods is described as follows:
S501: Obtain geographic coordinates of a control point on the road in advance.
To obtain a mapping relationship between the pixel coordinates of the target and the geographic coordinates of the target in the physical world, some control points on the road need to be selected in advance, and geographic coordinates of the control points need to be obtained and recorded. The control point on the road is usually a sharp point of the background object on the road, so that a location of a pixel, of the control point, in a video frame can be intuitively obtained. For example, a right-angle point of a traffic marking line, a sharp point of an arrow, and a corner point of a green belt on the road are used as control points. Geographic coordinates (longitude, latitude, and altitude) of the control points may be collected manually, or may be collected by a drone. Selected control points of the road need to be evenly distributed on the road, to ensure that at least three control points can be observed from a viewing angle of each camera. A quantity of to-be-selected control points depends on an actual situation.
S502: Obtain pixel coordinates, of the collected control point, in a video frame at the viewing angle of each camera.
A video of the road shot by each camera fixedly disposed on the road is read, and corresponding pixel coordinates of an observable control point is obtained from any video frame shot by each camera. The pixel coordinates may be manually obtained or may be obtained through a program. For example, corresponding pixel coordinates, of the control point on the road, in the video frame are obtained through corner point detection, a short-time Fourier transform edge extraction algorithm and a sub-pixel coordinate fitting method. At least three control points should be visible in the video shot by each camera. To be specific, any video frame shot by each camera should include pixel coordinates corresponding to at least three control points. Pixel coordinates and geographic coordinates of a control point in a video at a shooting angle of each camera may be collected in the step S501 and the step S502.
S503: Establish a mapping relationship between the video frame at the viewing angle of each camera and the physical world based on the geographic coordinates and the pixel coordinates of the control point. For example, a homography transformation matrix H for converting pixel coordinates into geographic coordinates may be calculated according to a homography transformation principle, and a homography transformation formula is (m,n,h)=H*(x,y). An H matrix corresponding to video data shot by each camera may be obtained through calculation based on pixel coordinates (x, y) and geographical coordinates (m, n, h) of the at least three control points in the video at the shooting angle of each camera obtained in the steps S501 and S502. The H matrix corresponding to the video data shot by each camera is different.
S504: Obtain the geographic coordinates of the target based on the pixel coordinates of the target. After the H matrix corresponding to the video data shot by each camera is obtained in the steps S501 to S503, the pixel coordinates of the target obtained in the step S302 may be converted based on the H matrix to obtain the geographic coordinates of the target. It should be noted that different video frames are separately converted based on H matrices corresponding to respective cameras, to obtain a plurality of corresponding geographic coordinates of the target.
It should be noted that execution time of the steps S501 to S503 should not be later than that of the step S504, and specific execution time is not limited. For example, the steps S501 to S503 may be performed when a digital system is initialized.
Optionally, a method for establishing the mapping relationship between the video frame at the viewing angle of each camera and the physical world may further be: mapping the video frame to a three-dimensional high-definition map, calculating a mapping relationship between the video frame at the viewing angle of each camera and the map, and obtaining the geographic coordinates of the target based on the mapping relationship and the pixel coordinates of the target. Specifically, the three-dimensional high-definition map is obtained in advance, and a video frame at a moment in video data shot by a camera is used as a reference. The three-dimensional high-definition map is deformed (zoomed in, zoomed out, moved by an angle, or the like), to match content of the video frame with a part presented on the three-dimensional high-definition map. A mapping relationship between the video frame and the three-dimensional high-definition map during matching is calculated. In this method, the mapping relationship between the video frame at the viewing angle of each camera and the physical world is automatically obtained through an automatic matching algorithm and a perspective transformation principle.
The following describes an example of the target tracking methods in the step S304 with reference to
S601: Perform target matching. A target detected in a current video frame is matched with a target in a video frame at a previous moment based on one or more pieces of data such as location information (namely, pixel coordinates of the target in the video frame), type information, and attribute information of the target detected in the current video frame. For example, a target ID of the target in the current video frame is determined based on an overlap rate between a regression box of the target in the current video frame and a regression box of the target in the video frame at the previous moment. When an overlap rate between the regression box of the target in the current video frame and a regression box of a target in the video frame at the previous moment is greater than a preset threshold, it is determined that the target at a current moment and the target at the previous moment are the same. The target ID corresponding to the target is found in the target track table, and corresponding pixel coordinates are recorded. It should be understood that the step S601 and a subsequent step are performed on each target detected in the current video frame.
S602: When one or more targets in the current video frame do not match the target in the video frame at the previous moment (in other words, the one or more targets are not found in the video frame at the previous moment; for example, a motor vehicle just enters into an area of a traffic intersection shot by a camera at the current moment) in the step S601, it is determined that the one or more targets are targets newly added on the road at the current moment, and a new target ID is set for the targets, where the target ID uniquely identifies the targets, and the target ID and pixel coordinates of the target ID at the current moment are recorded in the target track table.
S603: When one or more targets at the previous moment do not match the target in the video frame at the current moment (in other words, the target existing at the previous moment cannot be found at the current moment; for example, the target is partially or fully blocked by another target at the current moment, or the target has left an area of the road shot by the camera at the current moment) in the step S601, pixel coordinates of the target in the video frame at the current moment are predicted based on pixel coordinates, of the target at a historical moment, that are recorded in the target track table (for example, a three-point extrapolation method or a track fitting algorithm is used).
S604: Determine an existence state of the target based on the pixel coordinates of the target that are predicted in the step S603. When the predicted pixel coordinates of the target are outside or at an edge of the current video frame, it may be determined that the predicted target has left an image at a shooting angle of the camera at the current moment. When the predicted pixel coordinates of the target are inside and not at the edge of the current video frame, it is determined that the target is still in the video frame at the current moment.
S605: When it is determined in the step S604 that the predicted target has left the image at the shooting angle of the camera at the current moment, delete the target ID and data corresponding to the target ID from the target track table.
S606: When it is determined in the step S604 that the predicted target is still in the video frame at the current moment, record the predicted pixel coordinates of the target into the target track table.
The steps S601 to S605 are performed on each target in a video frame at each moment in video data shot by each camera.
The following specifically describes the digital modeling method in the step S306 with reference to
S701: Perform target modeling. Specifically, the three-dimensional modeled target corresponding to the target is obtained by searching a preset database based on the type information (and some or all of the attribute information) of the target obtained in the steps S302 to S305. The preset database includes many three-dimensional modeled targets, and each three-dimensional modeled target in the database is associated with a type (and an attribute) corresponding to the three-dimensional modeled target. When the database is searched, a type (and an attribute) corresponding to a to-be-searched three-dimensional modeled target may be entered to obtain the three-dimensional modeled target corresponding to the type (and the attribute). For example, for a target to be modeled targeted, an analyzed target ID of the target obtained in the step S305 is 001, a target type corresponding to the analyzed target ID is a motor vehicle, and a color in attribute information data is red. Therefore, for the target, a three-dimensional modeled target whose type is a motor vehicle and whose color is red is searched for in the preset database, and the three-dimensional modeled target associated with the target may be obtained by entering or selecting the motor vehicle and the red. The obtained three-dimensional modeled target corresponding to the target is set to be associated with the analyzed target ID of the target, that is set in the step S305, so that the analyzed target ID uniquely corresponds to one three-dimensional modeled target.
Optionally, in the step S701, background object modeling may also be performed. A modeled target corresponding to the type of the background object is obtained by searching a preset background database based on the detected type of the background object. The preset background database and the foregoing database may be a same database or may be different databases.
S702: Perform target mapping. A three-dimensional modeled target corresponding to the analyzed target ID corresponding to each target is mapped to the geographic coordinates on the map based on the analyzed geographic coordinates of each target. Specifically, the analyzed geographic coordinates of each target may be one coordinate value (for example, analyzed geographic coordinates corresponding to a central point of the target), or may be a plurality of coordinate values (for example, analyzed geographic coordinates corresponding to the regression box of the target). When the three-dimensional modeled target corresponding to the target is mapped to the map, a location of the corresponding three-dimensional modeled target on the map is determined based on the analyzed geographic coordinates of the target, and then the three-dimensional modeled target is mapped to the corresponding location on the map. For example, if the analyzed geographic coordinates of the target is a location of the regression box of the target, after the location of the regression box of the target is determined on the map, a corresponding three-dimensional modeled target is mapped into the determined regression box.
Optionally, in the step S702, a posture of the target may be further considered during the target mapping. The posture of the target indicates a moving direction of the target. The three-dimensional modeled target is mapped based on the posture of the target, and the posture of the target is an orientation of the target, for example, a direction corresponding to a head of the motor vehicle or a face orientation of a pedestrian. There are many methods for estimating the posture of the target. This is not limited in this application. For example, data analysis may be performed on the moving path, obtained in the step S304, of the target in the plurality of video frames at the same moment, to obtain an analyzed moving path of the target in the physical world, and a tangential direction of the analyzed moving path is used as the posture of the target. Alternatively, a multi-angle image detection technology may be used to determine the posture of the target. When target mapping is performed, the three-dimensional modeled target corresponding to the target is mapped based on an obtained posture of the target. For example, for a motor vehicle that is making a turn, a body of a three-dimensional modeled target corresponding to the motor vehicle is mapped based on a tangential direction of an obtained track of the motor vehicle, so that the mapped three-dimensional modeled target can display a driving direction of the motor vehicle.
Optionally, in the step S702, background object mapping may be further performed. When the pre-obtained map does not include part or all content of the background object, a modeled target corresponding to the background object may be mapped to a corresponding location on the map based on detected geographic coordinates of the background object.
S703: Output a digital representation. After the target modeling and the target mapping, a target at a moment on the road and the pre-obtained map are combined to form the digital representation (as shown in
Optionally, in the step S702 or S703, the three-dimensional modeled target corresponding to the target is further associated with all or part of the obtained attribute information of the target (including the direct attribute information of the target or the indirect attribute information of the target), and the attribute information of the target is sent to the display device, so that the attribute information of the target is displayed near the location of each target on the digital map (or after the instruction sent by the display device is received, the attribute information of the target is sent to the display device, so that the display device displays the attribute information corresponding to the target).
It should be noted that, because the step S301 is continuously performed in real time on the video data shot by each camera disposed on the road, the steps S302 to S306 are cyclically performed on video frames obtained at different moments in the step S301, so that a location and a posture of a target in the digital representation of the road displayed by the display device change with a change of the target on the road in the physical world. In this way, the digital representation can reflect a current traffic status of the road in real time (for example, a moving status of each target and traffic congestion at each traffic intersection in each intersection direction).
Application of a Digital Representation of a Road
A digital representation obtained through the method can continuously display a traffic status of the entire road in real time. The digital representation may be displayed by a display device. A user may change a display angle of the digital representation by performing an operation on a display interface of the display device. To be specific, the user may observe the traffic status of the road from different viewing angles. These viewing angles may be different from shooting angles of cameras disposed on the road. For example, a digital representation established based on video data of an intersection at east, west, south, and north viewing angles may provide a traffic status at a viewing angle such as an overlook angle, a rear angle of a vehicle, and an oblique angle.
As shown in
It should be understood that
The display device may be a vehicle-mounted display device in a vehicle moving on the road. A vehicle owner may globally observe, through the digital representation, a traffic status (including congestion, a road condition, a lane marking line, and the like) of the road on which the vehicle is driving, and the vehicle owner may observe, through the digital representation, a situation that cannot be observed from a viewing angle of the vehicle owner. For example, when driving a dump truck with a large vehicle body, a driver has a blind area around the vehicle body. This is prone to danger. Through the digital representation, the driver can observe the blind area that cannot be observed by the driver, and handle a dangerous situation in the blind area in a timely manner to avoid an accident.
The display device may alternatively be a desktop computer, a tablet computer, a handheld intelligent display device, or the like of a management department. Management department personnel may manage and control the traffic status in a timely manner by observing the digital representation. The management personnel can manage the target on the road based on the target attribute information displayed in the digital representation. For example, if a speed of a vehicle displayed in the digital representation is greater than a maximum speed limit of the road, the management personnel can deduct points and impose penalties on an owner of the vehicle based on license plate information of the vehicle.
The digital representation system of the road and the graphical user interface of the digital representation may be combined with another module or system to provide another function. For example, the digital representation system and the graphical user interface of the digital representation are combined with a traffic signal light management system. When the digital representation system detects a motor vehicle, in a direction of a traffic intersection, whose stay time exceeds a threshold, the digital representation system sends a request message to the traffic signal light management system. The traffic signal light management system receives the request message, adjusts a signal light on the road indicated in the request message (for example, setting a color of a signal light in a congestion direction to green in a relatively long time period), and the traffic signal light management system sends a signal light change message to the digital representation system. The digital representation system establishes a digital representation of the road at the moment based on the signal light change message and a change of a traffic signal light in video data, so that a traffic signal light in the digital representation displayed on the graphical user interface also changes.
Refer to
As shown in
The apparatus 800 includes a data processing module 801, a data analysis module 802, and a digital modeling module 803.
The data processing module is configured to obtain video data. The video data is shot by a camera disposed on the road, and the video data records a plurality of targets on the road. The data analysis module is configured to determine a moving path of each target on the road based on the video data. The digital modeling module is configured to establish a digital representation of the road. The digital representation includes a plurality of modeled targets. Each modeled target represents each target on the road. Each modeled target in the digital representation runs based on a moving path of a target that corresponds to the modeled target and that is on the road.
Specifically, in some embodiments, the data processing module 801 is configured to perform the steps S301 and S302 (and the specific implementation steps S401 to S404 of the step S302), and optionally perform the optional methods in the steps.
The data analysis module 802 is configured to perform the steps S303 to S305 (and the specific implementation steps S601 to S606 of the step S304), and optionally perform the optional methods in the steps.
The digital modeling module 803 is configured to perform the step S306 (and the specific implementation steps S701 to S703 of the step S306), and optionally perform the optional methods in the steps.
The three modules may communicate data to each other through a communications channel. It should be understood that the modules included in the apparatus 800 may be software modules, or may be hardware modules, or some of the modules are software modules and some of the modules are hardware modules.
As shown in
The processor may be a central processing unit (CPU). The memory may include a volatile memory, for example, a random access memory (RAM). The memory may further include a non-volatile memory, for example, a read-only memory, a flash memory, an HDD, or an SSD. The memory stores executable code, and the processor executes the executable code to perform the digital representation method for the road. The memory may further include another software module, such as an operating system, required for moving a process. The operating system may be LINUX™, UNIX™, WINDOWS™, or the like.
The memory of the computing device 900 stores code corresponding to each module of the apparatus 800, and the processor 902 executes the code to implement a function of each module of the apparatus 800, that is, performs the method in S301 to S306. The computing device 900 may be a computing device in a cloud environment or a computing device in an edge environment.
As shown in
Any computing device 1000 may be a computing device in a cloud environment, a computing device in an edge environment, or a computing device in a terminal environment. For example, the computing device 1000 may be the edge computing device 220 or the central server 240 in
In some embodiments, the display device configured to display
A description of a procedure corresponding to each of the accompanying drawings has a focus. For a part that is not described in detail in a procedure, refer to a related description of another procedure.
All or some of the foregoing embodiments may be implemented through software, hardware, firmware, or any combination thereof. When the software is used to implement the embodiments, all or some of the embodiments may be implemented in a form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the procedure or functions according to the embodiments of the present invention are all or partially generated. The computer may be a general-purpose computer, a dedicated computer, a computer network, or another programmable apparatus. The computer instructions may be stored in a computer-readable storage medium or may be transmitted from a computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from a web site, computer, server, or data center to another web site, computer, server, or data center in a wired (for example, a coaxial cable, an optical fiber, or a digital subscriber line) or wireless (for example, infrared, radio, or microwave) manner. The computer-readable storage medium may be any usable medium accessible by the computer, or a data storage device, such as a server or a data center, integrating one or more usable media. The usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, or a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, an SSD).
Number | Date | Country | Kind |
---|---|---|---|
PCT/CN2019/08276 | Apr 2019 | CN | national |
This application is a continuation of International Application No. PCT/CN2020/080277, filed on Mar. 19, 2020, which claims priority to International Application No. PCT/CN2019/082768, filed on Apr. 15, 2019. The disclosures of the aforementioned applications are hereby incorporated by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/CN2020/080277 | Mar 2020 | US |
Child | 17500878 | US |