Disclosure of Invention
The invention provides an irregular obstacle detection method for a vehicle, the vehicle and a computer-readable storage medium.
The invention provides an irregular obstacle detection method for a vehicle, which comprises the following steps:
screening according to the target point cloud data to obtain a plurality of target cubes and a plurality of target polygons; wherein the target cube and the target polygon contain spatial location information of an obstacle;
detecting the target polygon in a detection boundary value preset by the target cube to generate a target boundary;
and obtaining obstacle range data according to the target boundary so as to detect the irregular obstacle.
Therefore, the method firstly screens and obtains the recognizable regular obstacles and irregular obstacles according to the target point cloud data, and generates a target cube to fit the recognizable regular obstacles and a target polygon to fit the irregular obstacles. And further, detecting whether a target polygon exists in the detection boundary value range of the target cube by taking the target cube as a reference, so as to judge whether the target cube and the target polygon need to be combined together, and further generating a target boundary according to a judgment result. And then obstacle range data corresponding to the obstacle can be generated according to the target boundary, so that the position and the size of the obstacle are calibrated according to the obstacle range data, and the obstacle is detected. The obstacle detection method provided by the invention can detect the obstacles near the vehicle, particularly the space position of random obstacles appearing on the lane and the space range occupied by the obstacles, so as to timely detect the random obstacles appearing on the lane which dynamically changes in real time, and improve the driving safety in the driving process of the vehicle.
In some embodiments, the obtaining a plurality of target cubes and a plurality of target polygons by filtering according to the target point cloud data includes:
acquiring initial point cloud data, and preprocessing the initial point cloud data according to target positioning information to obtain target point cloud data;
and optimizing and screening the target point cloud data through a preset deep learning model to obtain a plurality of target cubes and a plurality of target polygons.
Therefore, the initial point cloud data is processed through the target positioning information to screen out noise points in the target point cloud data or improve the effectiveness of part of point clouds in the target point cloud data, and then the target point cloud data is obtained. Further, the method comprises the steps of optimizing target point cloud data again through a preset deep learning model, and carrying out reasoning calculation on the target point cloud data according to the deep learning model to distinguish point clouds of regular obstacle parts and point clouds of irregular obstacle parts, so that a target cube capable of fitting the regular obstacle point clouds and a target polygon capable of fitting the irregular obstacle point clouds are generated.
In some embodiments, the screening the target point cloud data through a preset deep learning model optimization to obtain a plurality of target cubes and a plurality of target polygons includes:
optimizing the target point cloud data according to the deep learning model to obtain first point cloud data and second point cloud data;
generating a plurality of target cubes according to the first point cloud data;
and processing the second point cloud data through a preset clustering algorithm to obtain a plurality of target polygons.
Therefore, the target point cloud data are classified through the deep learning model, and first point cloud data containing a target cube fitting object and second point cloud data of the target point cloud data except for the first point cloud data are obtained. Further, the method obtains the shape of the first point cloud data, and selects a proper target cube to fit the first point cloud data, so that the target cube can completely and exactly contain all the first point cloud data. Further, the method carries out clustering analysis on the second point cloud data through a clustering algorithm to screen out the point cloud data of the accessory part of the suspected obstacle, and selects a proper target polygon to fit the part of point cloud data by adopting a selection method similar to that of a target cube. Thus, a target cube and a target polygon are obtained.
In some embodiments, the generating a number of the target cubes from the first point cloud data comprises:
optimizing the target point cloud data according to the deep learning model to obtain the first point cloud data and the point cloud orientation data;
generating all cubes according to the first point cloud data;
and screening all cubes according to the vehicle position and the point cloud orientation data to obtain a plurality of target cubes.
In this way, the target point cloud data is optimized through the deep learning model to obtain the first point cloud data and the point cloud orientation data contained in the first point cloud data. The point cloud orientation data can represent orientation information of all cubes in the first point cloud data. Through the point cloud orientation data, the method can screen out the target cube facing to the position of the vehicle from all cubes generated according to the first point cloud data, and then effectively screen out the obstacle.
In some embodiments, the processing the second point cloud data by a preset clustering algorithm to obtain a plurality of target polygons includes:
processing the second point cloud data through the clustering algorithm to obtain all polygons;
and screening all polygons in the range formed by the target cubes by taking the position of the vehicle as the center to obtain a plurality of target polygons.
And further, in an area range formed by surrounding all target cubes by taking the position of the vehicle as the center, selecting target polygons in all the polygons so as to effectively reduce the number of the polygons and improve the detection efficiency of the method.
In some embodiments, detecting the target polygon within a detection boundary value preset by the target cube to generate a target boundary includes:
detecting the target polygon within the preset detection boundary value range; wherein the detection boundary values are matched with the target polygons one by one;
under the condition that the target polygon exists in the detection boundary value range, detecting whether the target polygon exists on a detection boundary corresponding to the detection boundary value;
under the condition that the target polygon exists on the detection boundary, increasing the detection boundary value until the target polygon does not exist on the detection boundary, and generating a target boundary value according to the increased detection boundary value;
and generating a target boundary according to the target boundary value.
In this way, whether a target polygon exists inside the detection boundary is determined according to the detection boundary value, and in the case that the target polygon exists inside the detection boundary, whether the target polygon exists on the detection boundary is further checked. When the target polygon exists on the detection boundary, the method can judge that the current detection boundary can not contain the combination of the target polygon and the target cube, so that the detection boundary value is increased, whether the target polygon is detected on the boundary or not is detected by the larger detection boundary, the target boundary value which can contain the combination of the target polygon and the target cube is obtained, and the target boundary is defined according to the target boundary value.
In some embodiments, the detecting whether the target polygon exists on the detection boundary corresponding to the detection boundary value in the case that the target polygon exists within the detection boundary value range includes:
ground screening is carried out on the point cloud of the target polygon to obtain third point cloud data;
carrying out direction division on the third point cloud according to a preset direction to obtain fourth point cloud data;
and acquiring picture data, and projecting the fourth point cloud data to the picture data to detect whether the target polygon exists on a detection boundary corresponding to the detection boundary value in the preset direction.
Therefore, the point cloud correspondingly fitted to the target polygon is ground screened out to reduce data errors of the point cloud, and third point cloud data with higher precision and effectiveness are obtained.
In some embodiments, the obtaining the picture data and projecting the fourth point cloud data to the picture data to detect whether the target polygon exists on a detection boundary corresponding to the detection boundary value in the preset direction includes:
projecting the fourth point cloud data to the picture data to obtain fourth point cloud plane data;
and performing matching detection according to the fourth point cloud plane data, and detecting whether the target polygon exists on the detection boundary in the preset direction or not under the condition that the matching is passed.
In this way, the fourth point cloud data is projected to the picture data to obtain fourth point cloud plane data, wherein the fourth point cloud plane data simultaneously contains obstacle position information corresponding to the fourth point cloud data and obstacle position information contained in the image data. Further, according to the fourth point cloud plane data, whether the obstacle position information in the image data and the fourth point cloud data is matched or not can be matched through the method, when the fourth point cloud data contains the position of the obstacle information and the obstacle information is also reflected in the image data, the situation that the matching is passed is achieved, and whether a target polygon exists on the detection boundary in each direction or not is detected.
The invention also provides a vehicle comprising a processor and a memory, the memory having stored thereon a computer program which, when executed by the processor, implements the obstacle detection method of any one of the above.
The invention also provides a computer-readable storage medium, wherein computer-executable instructions are stored in the computer-readable storage medium, and a computer can execute the computer-executable instructions to realize the obstacle detection method.
Additional aspects and advantages of embodiments of the invention will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of embodiments of the invention.
Detailed Description
Reference will now be made in detail to embodiments of the present invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the same or similar elements or elements having the same or similar functions throughout. The embodiments described below with reference to the accompanying drawings are exemplary only for explaining the embodiments of the present invention, and are not construed as limiting the embodiments of the present invention.
Referring to fig. 1, the present invention provides an irregular obstacle detection method for a vehicle, including:
s10, screening according to the target point cloud data to obtain a plurality of target cubes and a plurality of target polygons. Wherein the target cube and the target polygon contain spatial position information of the obstacle.
And S20, detecting the target polygon in the detection boundary value preset by the target cube to generate a target boundary.
And S30, obtaining obstacle range data according to the target boundary so as to detect irregular obstacles.
The method comprises the steps of screening according to target point cloud data to obtain identifiable regular obstacles and irregular obstacles, generating a target cube to fit the identifiable regular obstacles, and generating a target polygon to fit the irregular obstacles. And further, detecting whether a target polygon exists in the detection boundary value range of the target cube by taking the target cube as a reference, thereby judging whether the target cube and the target polygon need to be combined together, and further generating a target boundary according to a judgment result. Furthermore, obstacle range data corresponding to the obstacle can be generated according to the target boundary, so that the position and the size of the obstacle are calibrated according to the obstacle range data, and the obstacle is detected. The obstacle detection method can detect obstacles near the vehicle, such as an open vehicle door shown in fig. 2, a loaded electric vehicle, luggage in the hands of a pedestrian, objects held by the pedestrian and the like, particularly the spatial position of random obstacles appearing on a lane and the spatial range occupied by the obstacles, so as to timely detect the random obstacles appearing on the lane which dynamically changes in real time, and improve the driving safety of the vehicle in the driving process.
The vehicle can obtain a target cube and a target polygon through screening according to the target point cloud data. The target cube and the target polygon contain space position information of the obstacle, and the target polygon in a detection boundary value preset by the target cube is detected to generate a target boundary, so that obstacle range data are further obtained according to the target boundary to detect the irregular obstacle.
Specifically, in the driving process of the vehicle, objects existing on the current road can be detected through a laser radar, a millimeter wave radar, an ultrasonic radar and the like on the vehicle, and the detection result is screened to obtain target point cloud information containing all obstacles, so that the obstacles which can be clearly detected are screened out according to the target point cloud data, for example, a vehicle body, a pedestrian, an electric vehicle and the like of the vehicle in fig. 2 are taken as fitting objects of a target cube, and further, extension parts of the suspected target cube are screened out, for example, a vehicle door opened by the vehicle, luggage of the pedestrian, goods loaded on the electric vehicle and the like are taken as the target cube. Therefore, the method can detect the target polygon in the detection boundary value by taking the target cube as a reference so as to judge the connection relation between the target cube and the target polygon, thereby obtaining the target boundary of a set consisting of the target cube and the target polygon, and further converting the target boundary into the obstacle range data so as to calibrate the detected obstacle.
Specifically, the method can output the obstacle range data to the downstream, the downstream can be a related control platform for automatic driving, and the downstream can perform corresponding path planning on the automatic driving of the vehicle according to the obstacle range data provided by the method.
In certain embodiments, step S10 comprises:
and acquiring initial point cloud data, and preprocessing the initial point cloud data according to the target positioning information to obtain target point cloud data.
And optimizing and screening target point cloud data through a preset deep learning model to obtain a plurality of target cubes and a plurality of target polygons.
Therefore, the initial point cloud data can be processed through the target positioning information to screen out noise points in the target point cloud data or improve the effectiveness of part of point clouds in the target point cloud data, and then the target point cloud data is obtained. Further, the target point cloud data is optimized again through a preset deep learning model, and inference calculation is carried out on the target point cloud data according to the deep learning model so as to distinguish the point cloud of the regular obstacle part and the point cloud of the irregular obstacle part, and therefore a target cube capable of fitting the regular obstacle point cloud and a target polygon capable of fitting the irregular obstacle point cloud are generated.
The vehicle can acquire initial point cloud data through the processor, and preprocess the initial point cloud data according to the target positioning information to obtain target point cloud data. And the target point cloud data can be optimized and screened through a preset deep learning model to obtain a plurality of target cubes and a plurality of target polygons.
Specifically, the method can perform motion compensation on the initial point cloud data at different times by using the target positioning information, or perform operations such as down-sampling on the initial point cloud data, so as to achieve the effects of improving the effectiveness of the initial point cloud data and generating the target point cloud data. By the method, the effectiveness of the point cloud data can be effectively improved, the target cube and the target polygon are effectively screened and generated through the deep learning model, unnecessary calculation processes are reduced, and the detection efficiency of the obstacle is improved.
In some embodiments, the method for optimizing and screening target point cloud data through a preset deep learning model to obtain a plurality of target cubes and a plurality of target polygons includes:
and optimizing the target point cloud data according to the deep learning model to obtain first point cloud data and second point cloud data.
And generating a plurality of target cubes according to the first point cloud data.
And processing the second point cloud data through a preset clustering algorithm to obtain a plurality of target polygons.
Therefore, the target point cloud data can be classified through the deep learning model, and first point cloud data containing a target cube fitting object and second point cloud data except for the first point cloud data part in the target point cloud data are obtained. Further, the shape of the first point cloud data is obtained, and a suitable target cube is selected to fit the first point cloud data, so that the target cube can completely and exactly contain all the first point cloud data. Further, the second point cloud data is subjected to clustering analysis through a clustering algorithm to screen out the point cloud data of the accessory part of the suspected obstacle, and a suitable target polygon is selected to fit the part of the point cloud data by adopting a selection method similar to that of a target cube. Thus, a target cube and a target polygon are obtained.
The vehicle can optimize the target point cloud data according to the deep learning model to obtain first point cloud data and second point cloud data. Several target cubes may also be generated from the first point cloud data. And processing the second point cloud data through a preset clustering algorithm to obtain a plurality of target polygons.
By the method, the point cloud data containing the characteristics of all parts in the target point cloud data can be effectively distinguished to obtain the first point cloud data and the second point cloud data, then the obstacle main body on the road is fitted through the first point cloud data to obtain the target cube, and further the point cloud data connected with the obstacle main body part in the second point cloud data is screened to obtain the target polygon through fitting, so that the target cube and the target polygon are provided.
In some embodiments, generating a number of target cubes from the first point cloud data includes:
and optimizing the target point cloud data according to the deep learning model to obtain first point cloud data and point cloud orientation data.
And generating all cubes according to the first point cloud data.
And screening all cubes according to the vehicle position and the point cloud orientation data to obtain a plurality of target cubes.
In this way, the target point cloud data can be optimized through the deep learning model to obtain the first point cloud data and the point cloud orientation data contained in the first point cloud data. Wherein the point cloud orientation data may characterize orientation information of all cubes in the first point cloud data. Through the point cloud orientation data, the method can screen out the target cube facing to the position of the vehicle from all cubes generated according to the first point cloud data, and further screen out the obstacles effectively.
The vehicle can optimize the target point cloud data according to the deep learning model to obtain first point cloud data and point cloud orientation data. All cubes may also be generated from the first point cloud data. And screening all cubes according to the vehicle position and the point cloud orientation data to obtain a plurality of target cubes.
According to the invention, all cubes obtained by screening can be screened through the point cloud orientation data while the target point cloud data processed by the deep learning model is utilized, so that the target cube which causes obstacles to the driving process of the vehicle is obtained. Further, obstacle detection is performed on all cubes, so that the detection efficiency of the obstacle detection method provided by the invention is influenced.
In some embodiments, the second point cloud data is processed by a preset clustering algorithm to obtain a plurality of target polygons, including:
and processing the second point cloud data through a clustering algorithm to obtain all polygons.
And screening all polygons in the range formed by the target cubes by taking the position of the vehicle as the center to obtain a plurality of target polygons.
Therefore, the second point cloud data can be subjected to clustering analysis through a clustering algorithm to obtain point clouds corresponding to irregular obstacle parts in the second point cloud data, all polygons are obtained by adopting the polygons to fit the point clouds one by one, and further, target polygons in all polygons are selected in an area range formed by all surrounding target cubes by taking the position of the vehicle as the center, so that the number of the polygons is effectively reduced, and the detection efficiency of the method is improved.
The vehicle can process the second point cloud data through a clustering algorithm to obtain all polygons. And screening all polygons in the range formed by the target cubes by taking the position of the vehicle as the center to obtain a plurality of target polygons.
Specifically, referring to fig. 3, the method may select, as the target polygon, a portion (such as the dashed frames 1, 2, 3, and 4) of the total polygons within a range area formed by the surrounding target cubes according to the position of the vehicle as the detection center, so as to screen out a target polygon that meets the requirement (i.e., screen out the dashed frame 5, and reserve the dashed frames 1, 2, 3, and 4), thereby improving the detection efficiency of the method.
In certain embodiments, S20 comprises:
detecting a target polygon within a detection boundary value range, wherein the detection boundary values correspond to the target polygons in a one-to-one mode;
and under the condition that the target polygon exists in the detection boundary value range, detecting whether the target polygon exists on a detection boundary corresponding to the detection boundary value.
And under the condition that the target polygon exists on the detection boundary, increasing the detection boundary value until the target polygon does not exist on the detection boundary, and generating a target boundary value according to the increased detection boundary value.
And generating a target boundary according to the target boundary value.
In this way, whether a target polygon exists inside the detection boundary can be detected according to the detection boundary value, and in the case that the target polygon exists inside the detection boundary, whether the target polygon exists on the detection boundary can be further checked. When a target polygon exists on the detection boundary, it can be determined that the current detection boundary cannot contain the combination of the target polygon and the target cube, so as to increase the detection boundary value, and detect whether the target polygon is on the boundary with a larger detection boundary, so as to obtain a target boundary value which can contain the combination of the target polygon and the target cube, and further define the target boundary according to the target boundary value. In addition, the detection boundary values provided by the method are matched with the target polygons one by one, and each target polygon corresponds to one detection boundary value, so that the method can extract the corresponding detection boundary values according to the characteristics of each target polygon, and can more accurately fit the target boundaries.
The vehicle may detect the target polygon within a range of detection boundary values, where the detection boundary values correspond to the target polygons on a one-to-one basis. And under the condition that the target polygon exists in the boundary value range, detecting whether the target polygon exists on a detection boundary corresponding to the detection boundary value. And under the condition that the target polygon exists on the detection boundary, increasing the detection boundary value until the target polygon does not exist on the detection boundary, generating a target boundary value according to the increased detection boundary value, and generating a target boundary according to the target boundary value. The minimum detection boundary value may be a close proximity to the object cube, and the maximum detection boundary value may be a predetermined range, for example, 1 meter, larger than the object cube boundary. In the case where a plurality of target polygons exist within the boundary value range, it is further detected whether a target polygon exists on the boundary of each polygon.
By the method, the target boundary value which can contain the combination of the target polygon and the target cube can be obtained through gradual fitting, the size and the spatial position of the detected obstacle are defined through the target boundary value, and the judgment and the detection of the obstacle near the vehicle are realized.
In some embodiments, in the case that a target polygon exists in the boundary value range, detecting whether the target polygon exists on a detection boundary corresponding to the detection boundary value includes:
and (4) carrying out ground screening on the point cloud of the target polygon to obtain third point cloud data.
And carrying out direction division on the third point cloud according to a preset direction to obtain fourth point cloud data.
And acquiring picture data, and projecting the fourth point cloud data to the picture data to detect whether a target polygon exists on a detection boundary corresponding to the boundary value in a preset direction.
Therefore, the point clouds correspondingly fitted to the target polygons can be ground screened out, so that data errors of the point clouds are reduced, third point cloud data with higher precision and higher effectiveness are obtained, further, the method divides the third point clouds according to the preset direction to obtain fourth point cloud data, and whether the target polygons exist in all directions is judged according to the projection result of the fourth point cloud data projected to the picture annual data to detect whether obstacles exist in the preset direction.
The vehicle can carry out ground screening to the point cloud of target polygon, obtains third point cloud data. And direction division can be carried out on the third point cloud according to a preset direction to obtain fourth point cloud data. And further, image data can be obtained, and the fourth point cloud data is projected to the image data so as to detect whether a target polygon exists on a detection boundary corresponding to the boundary value in the preset direction.
Specifically, the method can perform ground real-position processing on the point cloud fitted by the target point cloud data to obtain third point cloud data, split the third point cloud data into fourth point cloud data in four directions according to the preset four directions of front, back, left and right, and project the fourth point cloud data in each direction to the picture data in the corresponding direction to obtain two-dimensional images in the four directions, so as to realize detection of the target polygon in the detection boundary value range. The detection of obstacles near the vehicle is effectively realized.
Specifically, since the proportion of part of point cloud data is small, the corresponding polygon cannot be obtained through fitting, so that the method can project the initial point cloud data in each direction to the image data corresponding to each direction, the probability of the method for detecting the obstacle failure is reduced, and the detection accuracy of the method is ensured.
In some embodiments, acquiring the picture data and projecting the fourth point cloud data to the picture data to detect whether a target polygon exists on a detection boundary corresponding to the boundary value in a preset direction includes:
and projecting the fourth point cloud data to the picture data to obtain fourth point cloud plane data.
And performing matching detection according to the fourth point cloud plane data, and detecting whether a target polygon exists on the boundary in a preset direction under the condition that the matching is passed.
Thus, the fourth point cloud data can be projected to the picture data to obtain fourth point cloud plane data, where the fourth point cloud plane data includes both obstacle position information corresponding to the fourth point cloud data and obstacle position information included in the image data. Further, according to the fourth point cloud plane data, whether the obstacle position information in the image data and the fourth point cloud data is matched or not can be matched through the method, when the fourth point cloud data contains the position of the obstacle information and the obstacle information is also reflected in the image data, the situation that the matching is passed is achieved, and whether a target polygon exists on the detection boundary in each direction or not is detected.
The vehicle may project the fourth point cloud data to the picture data to obtain fourth point cloud plane data. And matching detection can be carried out according to the fourth point cloud plane data, and whether a target polygon exists on the boundary or not is detected in the preset direction under the condition that matching is passed.
Specifically, the method obtains fourth point cloud plane data after projecting the fourth point cloud data in each direction to the image data corresponding to each direction. The method further defines a detection boundary on the fourth cloud plane data according to the detection boundary value, and detects whether the projection of the point cloud data corresponding to the target polygon on the detection boundary exists on the image data, so as to detect whether the target polygon exists on the detection boundary.
Referring to fig. 3, in some specific embodiments, the method may implement obstacle recognition on a road based on a radar, a positioning device, and a camera on the host vehicle. Firstly, the method can acquire the point cloud data at the moment through the radar drive, and performs data optimization on the point cloud data through the positioning information output by the positioning equipment. Meanwhile, the camera can acquire the current road condition and analyze the road condition to obtain a range 2D frame, a predicted 3D position and an obstacle orientation of the obstacle on the road.
Further, the method comprises the steps of carrying out data processing on the point cloud data after data optimization through a deep learning model to obtain a target cube used for representing the size and position information of the obstacle body, obtaining the point cloud possibly connected with the obstacle through a clustering algorithm again, and generating a target polygon to fit the part of the point cloud.
Further, the method projects the point cloud data to image data acquired by a camera, generates a two-dimensional image simultaneously containing obstacle position information detected by the radar and the camera, and can judge that the obstacle information exists and execute further detection when the obstacle position information detected by the two parts is overlapped.
Further, the method detects a possible connection relationship between the acquired target polygon and the target cube, determines that the target polygon and the target cube belong to the same obstacle when the distance between the target polygon and the target cube is within a preset range, such as a combination of a dashed line frame 40002 and a dashed line frame 2, a dashed line frame 3 in fig. 3, or a combination of a dashed line frame 40003 and a dashed line frame 4, and generates a target boundary to completely frame and select the combination of the target cube and the target polygon to represent the spatial position and size of the detected obstacle, such as a solid line frame including the combination of the dashed line frame 40002 and the dashed line frame 2, the dashed line frame 3 in fig. 3, and a combination including the dashed line frame 40003 and the dashed line frame 4. Or when the distance between the target polygon and the target cube is greater than the preset range, the method determines that the target cube and the target polygon do not have a connection relationship and do not belong to the same obstacle, such as the dashed line frame 40001 and the dashed line frame 1.
The invention also provides a vehicle 10, the vehicle 10 comprising a processor 11 and a memory 12, the memory 12 storing a computer program, the computer program when executed by the processor 11 implementing any of the above obstacle detection methods.
The vehicle 10 provided by the present invention may execute 11 instructions stored in memory 12 to implement an obstacle detection method as provided by the present invention. The beneficial effects of the obstacle detection method provided by the invention have been described in detail in the foregoing, and are not described herein again.
The invention also provides a computer-readable storage medium, wherein computer-executable instructions are stored in the computer-readable storage medium, and a computer can execute the computer-executable instructions to realize the obstacle detection method of any one of the above items.
The present invention provides a computer-readable storage medium in which a computer program is stored, and by executing this computer program, a computer can implement the obstacle detection method as provided by the present invention. The beneficial effects of the obstacle detection method provided by the invention are elaborated in the foregoing, and are not described in detail herein.
The invention also provides a non-transitory computer-readable storage medium containing the computer program. The computer program, when executed by one or more processors, causes the one or more processors to perform the interaction method of the present invention.
In the description herein, references to the description of "certain embodiments," "one example," "exemplary," etc., mean that a particular feature, structure, material, or characteristic described in connection with the embodiment or example is included in at least one embodiment or example of the invention. In this specification, schematic representations of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the particular features, structures, materials, or characteristics described may be combined in any suitable manner in any one or more embodiments or examples. Furthermore, various embodiments or examples and features of different embodiments or examples described in this specification can be combined and combined by one skilled in the art without contradiction.
Any process or method descriptions in flow charts or otherwise described herein may be understood as representing modules, segments, or portions of code which include one or more executable instructions for implementing specific logical functions or steps in the process, and alternate implementations are included within the scope of the preferred embodiment of the present invention in which functions may be executed out of order from that shown or discussed, including substantially concurrently or in reverse order, depending on the functionality involved, as would be understood by those reasonably skilled in the art of the present invention.
Although embodiments of the present invention have been shown and described above, it is understood that the above embodiments are exemplary and not to be construed as limiting the present invention, and those skilled in the art can make changes, modifications, substitutions and alterations to the above embodiments within the scope of the present invention.