Method and device for learning a depth prediction model associated with a stereoscopic vision system and insensitive to occlusion.
The method improves depth prediction in vehicle-mounted stereoscopic vision systems by using a convolutional neural network to generate and compare depth maps from multiple camera views, addressing occlusions and enhancing ADAS reliability without additional training data.
Patent Information
- Application Number
- FR2024002901
- Authority / Receiving Office
- FR · FR
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2024-03-22
- Publication Date
- 2026-02-06
- Estimated Expiration
- 2044-03-22
AI Technical Summary
Existing depth prediction models for vehicle-mounted stereoscopic vision systems face challenges due to occluded objects, leading to errors and reduced reliability, especially when training data is limited or not available, and they are not universally suitable for all onboard systems.
A method for learning a depth prediction model using a convolutional neural network that incorporates images from two cameras with different viewpoints, generating depth maps, determining visibility masks, and minimizing loss errors through consistency and photometric comparisons to account for occlusions, without requiring additional annotated data.
Enhances the reliability and accuracy of depth prediction by minimizing occlusion-related errors, improving road safety through precise distance estimation for ADAS systems using onboard vision systems.
Smart Images

Figure 00000027_0000 
Figure 00000027_0001 
Figure 00000027_0002
Abstract
Description
Title of the invention: Method and device for learning a depth prediction model associated with a stereoscopic vision system and insensitive to occlusion. technical field
[0001] The present invention relates to methods and devices for determining depth using a vision system mounted in a vehicle, for example, in a motor vehicle. The present invention also relates to a method and device for measuring the distance between an object and a vehicle equipped with a vision system. Technological background
[0002] Many modern vehicles are equipped with Advanced Driver-Assistance Systems (ADAS). Such ADAS systems are passive and active safety systems designed to eliminate human error in driving all types of vehicles. ADAS systems use advanced technologies to assist the driver while driving and thus improve performance. ADAS systems use a combination of sensor technologies to perceive the environment around a vehicle and then provide information to the driver or act on certain vehicle systems.
[0003] There are several levels of ADAS, such as reversing cameras and blind spot sensors, lane departure warning systems, adaptive cruise control or automatic parking systems.
[0004] Vehicle-mounted ADAS systems are powered by data obtained from one or more on-board sensors such as, for example, cameras. These cameras make it possible, in particular, to detect and locate other road users or any obstacles present around a vehicle in order, for example: • to adapt the vehicle's lighting according to the presence of other road users; • to automatically regulate the vehicle's speed; • to act on the braking system in case of risk of impact with an object.
[0005] Predicting the distance between an object and a vehicle, that is, the depth associated with a pixel in an image acquired by a camera, the pixel representing the object, requires high precision to feed ADAS. Predicting the depth associated with a pixel relies in particular on a depth prediction model, the depth prediction model being adapted to the vehicle's onboard vision system. Such a prediction model is This is commonly implemented using a neural network, which is trained in a specific phase to predict accurate depths based on the vehicle's onboard vision system and the type of environment in which it operates. This training phase requires data, such as annotated data from libraries or data acquired from more precise onboard systems like LiDAR®. However, this type of training requires a massive amount of data or the presence of this other onboard system, which the vehicle may not always have. It is possible to train the depth prediction model using data acquired by the onboard vision system, but existing solutions are not suitable for the configuration of every onboard vision system in a vehicle.
[0006] Furthermore, objects present in a three-dimensional scene observed by a stereoscopic vision system, that is, a vision system comprising at least two cameras, may not be visible in some images acquired by the stereoscopic vision system, these objects being occluded from the point of view of one camera of the stereoscopic vision system. The presence of occluded objects is then likely to generate errors and distort the learning of a depth prediction model. Summary of the present invention
[0007] One object of the present invention is to solve at least one of the problems of the technological background described above.
[0008] Another object of the present invention is to improve the quality of data from the processing of an image acquired by a vision system, in particular by a depth prediction model implemented by a neural network associated with a stereoscopic vision system.
[0009] Another object of the present invention is to improve road safety, in particular by improving the reliability of AD AS systems powered by data obtained from a camera, in particular a wide-angle camera.
[0010] According to a first aspect, the present invention relates to a method for learning a depth prediction model implemented by a convolutional neural network associated with a stereoscopic vision system embedded in a vehicle, the stereoscopic vision system comprising a first camera and a second camera arranged so as to each acquire an image of a three-dimensional scene from a different point of view, said process being implemented by at least one processor, and being characterized in that it comprises the following steps: - reception of a first image and a second image acquired by respec- tively the first camera and the second camera at the same time instant of acquisition; - generation of a first depth map including depths associated with a set of pixels from the first image and a second depth map including depths associated with a set of pixels from the second image, the depths being predicted with the depth prediction model from the first and second images; - generation of a third image and a third depth map from the first image, the first depth map and extrinsic parameters of the stereoscopic vision system, the third depth map including depths associated with a set of pixels of the third image, and generation of a fourth image and a fourth depth map from the second image, the second depth map and extrinsic parameters of the stereoscopic vision system, the fourth depth map including depths associated with a set of pixels of the fourth image; - determination of a visibility mask as the union of a first visibility mask and a second visibility mask, each pixel of the third image resulting from at least one pixel of the first image belonging to the first visibility mask and each pixel of the fourth image resulting from at least one pixel of the second image belonging to the second visibility mask; - assigning a null value to the pixels of the third and fourth images not included in the visibility mask; - learning the depth prediction model by minimizing a loss error, the loss error being determined from: • a first consistency error determined by comparing the first and fourth depth maps, • a second consistency error determined by comparing the second and third depth maps, and • a photometric error determined by comparing the first and fourth images and by comparing the second and third images.
[0011] According to one variant, the first consistency error and the second consistency error are determined respectively by the following function: With : • Lip) corresponding to the first consistency error and respectively the second consistency error L^, • D{p) a depth of one pixel Pt obtained from the first depth map, res- specifically from the second depth map, for a pixel P, and • D'(p) a depth of one pixel Pt obtained from the fourth depth map, respectively from the third depth map, for the pixel P.
[0012] According to another variant, the photometric error is determined by the following function: L p 4p) = (l-«) ■ +«' (1-%SSIM(l(p),I(p))) With : • p) the first photometric error denoted Lp] (p), respectively the second photometric error denoted Lp2Çp)^ being a pixel defined by its coordinates in an image, • I(p) a value of pixel P in the first image, respectively second image, • 2^ a value of pixel P in the fourth image, respectively third image, • SSIM is a function that takes into account a local structure, and • has a weighting factor depending in particular on the type of environment.
[0013] According to yet another variant, the loss error is further determined from a construction error determined by the following function: ^smooth(P) = 1^(W(p)\V^D s M With : • Lsmooth(p) the construction error L^p) for a pixel p of the third image, respectively the construction error Lï4( p) for a pixel p of the fourth image, • D(p) is a depth of a pixel P obtained from the third depth map, respectively obtained from the fourth depth map; • W is a parameter matrix; • 0 is the order of a smoothing gradient; • an L1 norm of the second order depth gradients is calculated with W7 = 1, and ° = 2; • x and 3' are the dimensions of the images; • is a hyperparameter dependent on the environment in which the vehicle operates; and • p(p ) is a value of pixel P in the third image, respectively fourth image.
[0014] According to a further variant, the loss error is determined by the following function: L = ü^min ( Lc] ( p), Lc2 ( p) ) + min ( Lpl ( p ), Lp2 ( p ) ) + Ls3 ( p ) + Ls4 ( p ) ) With: • The loss error, • Lp^p) the first photometric error for a pixel P, P being a pixel defined by its coordinates in an image, • Lp2, the second photometric error for pixel P. • Lcl the first consistency error for pixel P, • Lc2, the second consistency error for pixel P, • Ls3 is the construction error for a pixel P in the third image, and • Ls4 is the construction error for a pixel P of the fourth image.
[0015] According to yet another variant, the third and fourth depth maps are generated by the following function: D(pt) ) ] ) With : • Ps the coordinates of a pixel from the third depth map, respectively from the fourth depth map, • a function to convert from homogeneous coordinates to pixel coordinates by removing one dimension from a vector, • TC' is an intrinsic matrix of the first camera, respectively of the second camera, • K is an intrinsic matrix of the second camera, respectively to the first camera, • T is an extrinsic matrix of the stereoscopic vision system, and • 0 a projection function in the three-dimensional scene of a pixel Pt as a function of its coordinates in the first image, respectively second image, and of the depth [^pj] associated with it in the first depth map, respectively second depth map.
[0016] According to yet another variant, the optical axes of the first and second cameras are not coplanar.
[0017] According to a second aspect, the present invention relates to a device configured to learn a depth prediction model by a vision system embedded in a vehicle, the device comprising a memory associated with at least one processor configured for the implementation of the steps of the process according to the first aspect of the present invention.
[0018] According to a third aspect, the present invention relates to a vehicle, for example of the automobile type, comprising a device as described above according to the second aspect of the present invention.
[0019] According to a fourth aspect, the present invention relates to a computer program which includes instructions adapted for carrying out the steps of the process according to the first aspect of the present invention, in particular when the computer program is executed by at least one processor.
[0020] Such a computer program may use any programming language and be in the form of source code, object code, or an intermediate form between source code and object code, such as in a partially compiled form, or in any other desirable form.
[0021] According to a fifth aspect, the present invention relates to a computer-readable recording medium on which is recorded a computer program comprising instructions for carrying out the steps of the process according to the first aspect of the present invention.
[0022] On the one hand, the recording medium can be any entity or device capable of storing the program. For example, the medium can include a storage means, such as a ROM, a CD-ROM or a microelectronic circuit-type ROM, or a magnetic recording means or a hard disk drive.
[0023] On the other hand, this recording medium can also be a transmissible medium such as an electrical or optical signal, such a signal being able to be transmitted via an electrical or optical cable, by conventional or radio frequency, by self-directing laser beam, or by other means. The computer program according to the present invention can, in particular, be downloaded from an Internet-type network.
[0024] Alternatively, the recording medium may be an integrated circuit in which the computer program is incorporated, the integrated circuit being adapted to execute or to be used in the execution of the process in question. Brief description of the figures
[0025] Other features and advantages of the present invention will become apparent from the description of the particular and non-limiting embodiments of the present invention below, with reference to the attached Figures 1 to 4, in which:
[0026] [Fig-1] schematically illustrates a vision system equipping a vehicle, according to a a particular and non-limiting example of a realization of the present invention;
[0027] [Fig.2] illustrates a flowchart of the different steps of a process for determining the depth of a pixel of an image by a depth prediction model associated with a vision system embedded in the vehicle of [Fig.1], according to a particular and non-limiting embodiment of the present invention;
[0028] [Fig. 3] illustrates a flowchart of the different stages of a method for learning the depth prediction model used in the method of [Fig. 2], according to a
[0029] [Fig.4] schematically illustrates a device configured to learn a depth prediction model by a vision system embedded in the vehicle of [Fig.1], according to a particular and non-limiting embodiment of the present invention. Description of examples of achievements
[0030] A method and device for learning a depth prediction model implemented by a convolutional neural network associated with a stereoscopic vision system embedded in a vehicle will now be described in what follows with joint reference to Figures 1 to 4. The same elements are identified with the same reference signs throughout the description that follows.
[0031] The terms "first," "second" (or "firsts," "seconds"), etc., are used in this document by arbitrary convention to allow for the identification and distinction of different elements (such as operations, means, etc.) implemented in the embodiments described below. Such elements may be distinct or correspond to a single element, depending on the embodiment.
[0032] For the purposes of this description, image reception refers to the reception of data representing an image. Similarly, image generation refers to the generation of data representing an image, and depth map generation refers to the generation of data representing a depth map. These abbreviations are intended solely to simplify the description; however, since the processes are implemented by one or more processors, it is clear that the input and output data of the various stages of a process are computer data.
[0033] According to a particular and non-limiting embodiment of the present invention, a depth prediction model associated with a stereoscopic vision system comprising two cameras is learned in a learning phase.
[0034] Indeed, the method relating to the learning phase includes the generation of depth maps associated with images acquired by each camera of the vision system and the generation of other images and other depth maps from the received images and depth maps by change of reference frame.
[0035] A visibility mask is then determined from the generated images and a null value is assigned to the pixels of the third and fourth images not included in the visibility mask.
[0036] The depth prediction model is then learned by minimizing a loss error determined by comparing depth maps to other depth maps and by comparing the received images to the generated images.
[0037] Fig. 1 schematically illustrates a vision system equipping a vehicle, according to a particular and non-limiting embodiment of the present invention.
[0038] Such an environment 1 corresponds, for example, to a road environment consisting of a network of roads accessible to the vehicle 10.
[0039] In this example, vehicle 10 corresponds to a vehicle with an internal combustion engine, an electric motor(s), or a hybrid vehicle with an internal combustion engine and one or more electric motors. Vehicle 10 thus corresponds, for example, to a land vehicle such as a car, a truck, a bus, or a motorcycle. Finally, vehicle 10 corresponds to an autonomous or non-autonomous vehicle, that is to say, a vehicle operating according to a predetermined level of autonomy or under the total supervision of the driver.
[0040] The vehicle 10 advantageously comprises at least two on-board cameras, a first camera 11 and a second camera 12, configured to acquire images of a three-dimensional scene unfolding in the environment of the vehicle 10 from distinct observation positions. The first camera 11 and the second camera 12 form a stereoscopic vision system when used together, as illustrated in [Fig. 1]. The first camera 11 forms a monoscopic vision system when used alone, and similarly, the second camera 12 forms another monoscopic vision system when used alone. The present invention, however, extends to any vision system comprising at least two cameras, for example, 2, 3, or 5 cameras.
[0041] The intrinsic parameters of the first camera 11 characterize the transformation which associates, for an image point, hereafter called a "point", its three-dimensional coordinates in the reference frame of the first camera 11 with the pixel coordinates in an image acquired by the first camera 11. These parameters do not change if the first camera 11 is moved. The intrinsic parameters of the first camera 11 include in particular a first focal length fl associated with the first camera 11.
[0042] The intrinsic parameters of the second camera 12 characterize, for their part, the transformation which associates, for an image point, its three-dimensional coordinates in the reference frame of the second camera 12 with the pixel coordinates in an image acquired by the second camera 12. These parameters do not change if the second camera 12 is moved. The intrinsic parameters of the second camera 12 include in particular a second focal length f2 associated with the second camera 12.
[0043] Distortions, which are due to imperfections in the optical system such as defects in the shape and positioning of the camera lenses, will deflect the light beams and thus induce a positioning error for the projected point relative to an ideal model. It is then possible to complete the camera model by introducing the three distortions that generate the most significant effects: radial, decentering, and prismatic distortions, induced by defects in lens curvature, parallelism, and coaxiality of optical axes. In this example, the cameras are assumed to be perfect, meaning that distortions are not taken into account and their correction is addressed during image acquisition or calibration.
[0044] These two cameras 11, 12 are arranged so that each acquires an image of a scene from a different viewpoint. The first viewpoint is, for example, located on or in the left-hand rearview mirror of the vehicle 10 or at the top of the windshield of the vehicle 10. The second viewpoint is, for example, located on or in the right-hand rearview mirror of the vehicle 10 or at the top of the windshield of the vehicle 10. If both cameras are located at the top of the windshield of the vehicle, they are then positioned at a certain distance. In this example, the first camera 11 is located at the top of the windshield of the vehicle 10, and the second camera 12 is located in the right-hand rearview mirror of the vehicle 10.
[0045] A first marker is associated with the first camera 11: - the direction of the x-axis is defined as horizontal and normal to the optical axis Cl of the first camera 11. The distance B separating the optical center of the first camera 11 from the projection of the optical center of the second camera 12 onto the horizontal plane passing through the optical center of the first camera 11 is called the reference base (in English "baseline"); - the direction of the y-axis is defined as vertical and normal to the optical axis Cl of the first camera 11; - The direction of the z-axis is defined as orthogonal to the directions of the x and y axes. The three axes x, y and z thus form an orthonormal coordinate system.
[0046] The optical axis Cl of the first camera 11 and the optical axis C2 of the second camera 12 are not necessarily parallel or even included in the same plane.
[0047] According to one variant, the optical axes of the first and second cameras are not coplanar
[0048] The extrinsic parameters related to the position of cameras 11, 12 are the following parameters: - three translations in the x, y, and z directions: Tx, Ty, and Tz, constituting the translation vector T; and - three rotations in the x, y and z directions: 0x, 0y and 0z.
[0049] An extrinsic matrix of the vision system then includes the extrinsic parameters previously defined.
[0050] The extrinsic parameters are determined, for example, during a calibration phase of the stereoscopic vision system comprising the first camera 11 and the second camera 12.
[0051] A key constraint of stereoscopic vision systems used in automobiles is, for example, the large distance between the two cameras. Indeed, to cover a measurement range of 200 meters, the reference base must be 60 cm for cameras commonly used in this field.
[0052] The two cameras 11, 12 acquire images of a scene located in front of the vehicle 10, the first camera 11 alone covering a first acquisition field 13, the second camera 12 alone covering a second acquisition field 14 and the two cameras 11, 12 both covering a third acquisition field 15. The first and third acquisition fields 13, 15 thus allow a monoscopic view of the scene by the first camera 11, the second and third acquisition fields 14, 15 allow a monoscopic view of the scene by the second camera 12 and the third acquisition field 15 allows a stereoscopic view of the scene by the stereoscopic vision system composed of the two cameras 11, 12.
[0053] An obstacle 18 is placed in the acquisition field of the cameras, for example in the third acquisition field 15. The presence of the obstacle 18 defines an occlusion field for the stereoscopic vision system composed here of the three fields 16, 17 and 19.
[0054] Among these three fields, field 16 is visible from the second camera 12. The part of the scene present in this field 16 is therefore observable using the monoscopic vision system comprising the second camera 12.
[0055] The field 17 is visible from the first camera 11. The part of the scene present in this field 17 is therefore observable using the monoscopic vision system comprising the first camera 11.
[0056] Finally, field 19 is not visible to any of the cameras. The part of the scene present in this field 19 is therefore not observable.
[0057] According to one particular embodiment, the field of view of the second camera 12 covers at least half of the field of view of the first camera 11.
[0058] It is evident that it is possible to use such a stereoscopic vision system to take images of scenes located on the sides or behind the vehicle 10 by equipping it with cameras placed and oriented differently.
[0059] The images acquired by the cameras 11, 12 at a given acquisition time are in the form of data representing pixels characterized by: - coordinates in each image; and - data relating to the colours and brightness of objects in the observed scene in the form of, for example, RGB colourimetric coordinates (from the English "Red Green Blue", in French "Rouge Vert Bleu") or HSL (Tone, Saturation, Luminosity).
[0060] Each pixel of the acquired image is representative of an object in the three-dimensional scene The image is a single point of light within the camera's field of view. A pixel in the acquired image is the smallest visible unit and corresponds to a point of light resulting from the emission or reflection of light by a physical object in the three-dimensional scene. When light strikes this object, photons are emitted or reflected and captured by the camera's photosensitive sensor after passing through its lens. This sensor divides the three-dimensional scene into a grid of pixels. Each pixel records the light intensity at a specific location, thus capturing visual details. The combination of millions of pixels creates an image that faithfully represents the physical object observed by the camera. Therefore, a pixel, as previously described, is a point on the surface of an object in the three-dimensional scene.
[0061] The images acquired by cameras 11, 12 represent views of the same scene taken from different viewpoints, the camera positions being distinct. For example, this scene includes: - buildings; - road infrastructure; - other stationary users, for example a parked vehicle; and / or - other mobile users, for example another vehicle, a cyclist or a moving pedestrian.
[0062] According to a particular embodiment, a field of view of the first camera 11 covers at least half of a field of view of the second camera 12, and a field of view of the second camera 12 covers at least half of a field of view of the first camera 11. In other words, more than half of the pixels of an image acquired by the first camera 11 correspond to an object in the three-dimensional scene seen by the second camera 12, and pixels of an image acquired by the second camera 12 also correspond to this object in the three-dimensional scene. Similarly, more than half of the pixels of an image acquired by the second camera 12 correspond to an object in the three-dimensional scene seen by the first camera 11, and pixels of an image acquired by the first camera 11 also correspond to this object in the three-dimensional scene.
[0063] The images acquired by the first camera 11 and by the second camera 12 are sent to a computer of a device equipping the vehicle 10 or stored in a memory of a device accessible to a computer of a device equipping the vehicle 10.
[0064] A method for determining depth by a vision system on board the vehicle 10 is advantageously implemented by the vehicle 10, i.e. by a processor, a computer or a combination of computers of the on-board system of the vehicle 10, for example by the computer or computers in charge of the vision system of the vehicle 10.
[0065] Figure 2 illustrates a flowchart of the different steps of a method 2 for determining the depth of a pixel in an image by means of a depth prediction model implemented by a convolutional neural network associated with a vision system embedded in a vehicle, for example in vehicle 10 of Figure 1, according to a particular and non-limiting embodiment of the present invention. Method 2 is implemented, for example, by a device of the vision system embedded in vehicle 10 or by device 4 of Figure 4.
[0066] In a step 21, representative data of an image acquired by the first camera 11 and of an image acquired by the second camera 12 are received.
[0067] In a step 22, depths associated with a set of pixels of one of the received images are determined by the depth prediction model from the two received images.
[0068] Each determined depth then corresponds to a distance separating the vehicle 10 or a part of the vehicle 10 from an object in the three-dimensional scene to which a pixel is associated, the determination of a depth of a pixel then corresponding to a measurement of a distance separating an object from the vehicle carrying the vision system.
[0069] If the ADAS uses these depths or distances as input data to determine the distance between a part of the vehicle 10, for example the front bumper, and another road user, the ADAS is then able to determine this distance precisely. For example, if the ADAS's function is to activate the braking system of the vehicle 10 in the event of a risk of collision with another road user, and the distance between the vehicle 10 and that same road user decreases sharply, then the ADAS is able to detect this sudden closeness and activate the braking system of the vehicle 10 to avoid a possible accident.
[0070] Figure 3 illustrates a flowchart of the different stages of a method for learning the depth prediction model used in a method for determining the depth of a pixel of an image, for example in method 2 of Figure 2, according to a particular and non-limiting embodiment of the present invention.
[0071] The learning process 3 is for example implemented by the device on board the vehicle 10 implementing the process of determining a depth by the vision system on board a vehicle or by the device 4 of the [Fig.4].
[0072] In a step 31, a first image and a second image are received, the first image being acquired by the first camera 11 at an acquisition time instant and the second image being acquired by the second camera at the same acquisition time instant.
[0073] According to a particular embodiment, the first image and second image are of the same definition, that is to say they have the same number of pixels, have the same number of pixels according to their height and the same number of pixels according to their width.
[0074] According to another particular embodiment, the first and second images are not of the same resolution. An additional step then consists of resizing or cropping them to obtain a first and second image of the same resolution.
[0075] In step 32, a first depth map comprising depths associated with a set of pixels from the first image is determined. The depths associated with the pixels of the first image are predicted using the depth prediction model from the first and second images.
[0076] Similarly, a second depth map comprising depths associated with a set of pixels from the second image is determined. The depths associated with the pixels of the second image are also predicted using the depth prediction model from the first and second images.
[0077] The depth prediction model, implemented by a convolutional neural network, is known to those skilled in the art and is presented for example in the document "Unifying Flow, Stereo and Depth Estimation" written by Haofei Xu, Jing Zhang, Jianfei Cai, Hamid Rezatofighi, Fisher Yu, Dacheng Tao and Andreas Geiger, published in July 2023, adapted for any stereoscopic vision system including those comprising cameras whose optical axes are not contained in the same plane.
[0078] Thus, a predicted depth is associated with each pixel of a set of pixels of the first image, the first depth map comprising the coordinates of each pixel of the set of pixels of the first image and a depth associated with each pixel recorded for example in a lookup table, for example in a memory accessible to the processor implementing this learning process 3. This lookup table then contains pairs (coordinates of a pixel of the image 1; predicted depth for this pixel).
[0079] Similarly, a predicted depth is associated with each pixel of a set of pixels of the second image, the second depth map comprising the coordinates of each pixel of the set of pixels of the second image and a depth associated with that each pixel recorded for example in a lookup table, for example in a memory accessible to the processor implementing this learning process 3. This lookup table then contains pairs (coordinates of a pixel of the image 2; predicted depth for that pixel).
[0080] In a step 33, a third image and a third depth map are generated from the first image, the first depth map and extrinsic parameters of the stereoscopic vision system, the third depth map comprising depths associated with a set of pixels of the third image.
[0081] The generation of the third depth map from the first image, the first depth map, and extrinsic parameters of the stereoscopic vision system consists of: • the determination of spatial coordinates in the three-dimensional scene, in a reference frame associated with the first camera 11, of a point associated with a first pixel of the first depth map, from the coordinates of the first pixel in the first image and the depth associated with this first pixel, its coordinates and depth being recorded in the first depth map. It should be noted that the coordinates of the first pixel in the first image comprise two components while the spatial coordinates of the point associated with the first pixel comprise three components; • the determination of spatial coordinates in the three-dimensional scene of the point associated with the first pixel in a reference frame associated with the second camera 12, in other words a change of reference frame from that associated with the first camera 11 to that associated with the second camera 12, using the extrinsic parameters of the stereoscopic vision system; and • The projection of the point associated with the pixel onto the image plane of the second camera 12, this image plane corresponding to that of the second image, allows us to determine the arrival coordinates of the first pixel of the first image in an image as the second camera 12 would have acquired it. The image plane of a camera corresponds to a plane defined in the camera's frame of reference, normal to the optical axis of the camera and located at the first focal length of the camera. The third depth map then includes the arrival coordinates of the first pixels and the depth associated with the first pixel.
[0082] The arrival coordinates of a pixel in the third depth map are thus determined and are the same as the arrival coordinates of a pixel in the third image. In the third depth map, the depth of a pixel corresponds to a depth determined from the pixel depths of the first depth map, while in the third image, the value of a pixel corresponds to a value determined from the pixel values of the first image.
[0083] Similarly, a fourth image and a fourth depth map are generated from the second image, the second depth map, and the extrinsic parameters of the stereoscopic vision system, the fourth map of depths including depths associated with a set of pixels from the fourth image.
[0084] According to a particular embodiment, the third depth map is generated by the following function: [Math.l] P s = 77 ( K [( P iK D ( P t ) ) ] )
[0085] With: • Ps the coordinates of a pixel on the third depth map, • 77 a function to convert from homogeneous coordinates to pixel coordinates by removing one dimension from a vector, • K' the intrinsic matrix of the first camera 11, • K the intrinsic matrix of the second camera 12, • T is an extrinsic matrix of the stereoscopic vision system, and • 0 a projection function in the three-dimensional scene of a first pixel Pt as a function of its coordinates in the first image and the depth L^p^ associated with it in the first depth map. This function thus determines the arrival coordinates of a pixel of an image acquired by the first camera 11 in an image as it would be acquired by the second camera 12.
[0086] Determining the fourth depth map is similar to determining the third depth map, with the cameras being reversed. The arrival coordinates of a pixel in the fourth depth map are thus determined and are the same as the arrival coordinates of a pixel in the fourth image. In the fourth depth map, the depth of a pixel corresponds to a depth determined from the pixel depths of the second depth map, while in the fourth image, the value of a pixel corresponds to a pixel value determined from the pixel values of the second image.
[0087] Thus, the previous function for determining the arrival coordinates of a first pixel of the first depth map is applicable for determining the arrival coordinates of a second pixel of the second depth map, the function being adapted as follows: [Math.2] Ps = K(K[T$(pkK^D(p^ ) ] )
[0088] With: • Ps the coordinates of a pixel on the fourth depth map, •77 a function to convert from homogeneous coordinates to pixel coordinates in removing one dimension of a vector, • K' the intrinsic matrix of the second camera 12, • K the intrinsic matrix of the first camera 11, • T an extrinsic matrix of the stereoscopic vision system, and • 0 a projection function in the three-dimensional scene of a second pixel P / as a function of its coordinates in the second image and of the depth associated with it in the second depth map. This function thus determines the arrival coordinates of a pixel of an image acquired by the second camera 12 in an image as it would be acquired by the first camera 11.
[0089] According to one embodiment, values associated with pixels of the third and fourth images, i.e. colorimetric values of the pixels of the third and fourth images, are obtained by interpolating the values of the pixels of the first image and respectively of the second image using a function such as torch.nn.functional.grid_sample() in Python® language which requires as arguments the arrival coordinates of the pixels of the third and fourth images and the values of the preceding pixels in the first image, respectively second image.
[0090] In step 34, a visibility mask is determined. This visibility mask is like the union of a first visibility mask and a second visibility mask, each pixel of the third image resulting from at least one pixel of the first image belonging to the first visibility mask, and each pixel of the fourth image resulting from at least one pixel of the second image belonging to the second visibility mask. In other words, the first visibility mask includes the set of pixels of the third image that have a predecessor in the first image during the third image generation step; that is, the set of pixels of the third image whose coordinates are the destination coordinates of a pixel of the first image.Similarly, the second visibility mask includes the set of pixels in the fourth image that have a predecessor in the second image during the generation step of the fourth image; that is, the set of pixels in the fourth image whose coordinates are the destination coordinates of a pixel in the second image.
[0091] Conversely, pixels not included in the first visibility mask are pixels that have no antecedent in the first image acquired by the first camera 11; they then correspond to occluded objects from the point of view of the second camera 12, and pixels not included in the second visibility mask are pixels that have no antecedent in the second image acquired by the second camera 12, they then correspond to occluded objects from the point of view of the first camera 11.
[0092] The determination of the visibility mask is then the union of the first and second visibility masks; that is to say, coordinates corresponding to those of a pixel in the third image that has no predecessor in the first image and also corresponding to those of a pixel in the fourth image that has no predecessor in the second image define the coordinates of a pixel not included in the visibility mask. Conversely, if coordinates correspond to those of a pixel in the third image that has a predecessor in the first image and / or to those of a pixel in the fourth image that has a predecessor in the second image, then these coordinates define the coordinates of a pixel included in the visibility mask.
[0093] The determination of the visibility mask is obtained for example by using the function torch.nn.functional.grid_sample() in Python® language which requires as arguments the coordinates of the pixels of the third and fourth depth maps and the depths determined in the second and first depth maps.
[0094] In step 35, a value of zero is assigned to the pixels of the third and fourth images not included in the visibility mask. These pixels of the third and fourth images have no antecedent in the first image, respectively in the second image. A pixel with a value of zero corresponds, for example, to a black pixel. In the case of multiple channels, each channel associated with the pixel is assigned a value of zero.
[0095] In a step 36, the depth prediction model is learned by minimizing a loss error, the loss error being determined from: • a first consistency error determined by comparing the first and fourth depth maps, • a second consistency error determined by comparing the second and third depth maps, and • a photometric error determined by comparing the first and fourth images and by comparing the second and third images.
[0096] According to a particular embodiment, the first consistency error and the second consistency error are determined respectively by the following function: [Math.3] (Dt(pyD'(p)y
[0097] With: • L^p) corresponding to the first consistency error L^p), respectively the second consistency error for a pixel P, • D{p) a depth of a pixel Pt obtained from the first depth map, respectively from the second depth map, for a pixel P, and • D'(p) a depth of one pixel Pt obtained from the fourth depth map, respectively from the third depth map, for the pixel P.
[0098] Other functions can be used to perform this comparison, for example by taking the absolute value of the difference in depths. Indeed, it is important that the result of the depth comparison be a positive value for each pixel.
[0099] According to a first particular embodiment, the photometric error is determined from a first photometric error by comparing pixel values of the first and fourth images and from a second photometric error determined by comparing pixel values of the second and third images, the loss error being determined from the first and second photometric errors.
[0100] A photometric error is, for example, presented in the document "Digging Into Self-Supervised Monocular Depth Estimation" by Clément Godard, Oisin Mac Aodha, Michael Firman and Gabriel Brostow published in August 2019 and is determined by the following function:
[0101] [Math.4] ^iAp) = Ua) ■ RW-^zOl+a -
[0102] With: • p) the first photometric error denoted Lp] (p), respectively the second photometric error denoted Lp2{p ), P being a pixel defined by its coordinates in an image, • Z(p) is a value of pixel P in the first image, respectively second image, • a value of pixel P in the fourth image, respectively third picture, • SSIM is a function that takes into account a local structure, and • ® a weighting factor depending in particular on the type of environment.
[0103] According to this particular embodiment, the loss error is determined by the following function: [Math.5] L = ^(min(Lc}(p), Lc2(p) ) + min(Lp\(p), Lpl(p) ))
[0104] With: • £ the loss error, • Lp(p) the first photometric error for a pixel P, P being a pixel defined by its coordinates in an image, • ^2 the second photometric error for pixel P, • Lc\ the first consistency error for pixel P, and • Lc2 the second consistency error for pixel P.
[0105] According to a second particular embodiment, the loss error further includes a construction error, each component of which is determined by the following function: [Math.6] IP))
[0106] With: • Lw p) the component for a pixel p of the third image, respec tively the component L 4(p) for a pixel p of the fourth image, • D(p) is a depth of a pixel P obtained from the third depth map, respectively obtained from the fourth depth map; • W is a parameter matrix; • 0 is the order of a smoothing gradient; • an L1 norm of the second order depth gradients is calculated with W = 1, and ° = 2; • x and are the dimensions of the images; • fi is a hyperparameter dependent on the environment in which the vehicle operates; and * ^t(,P ) is a value of pixel P in the third image, respectively fourth image.
[0107] This function is generally used to deal with the discontinuity at the edge of objects (in English, "edge aware smoothness").
[0108] The loss error includes, for example, the consistency errors, photometric errors and construction error determined above: [Math.7] L = £p(min (Lcl (p), Lc2(p)) + min (Lp{ (p), Lpl (p)) + Ls3(p) + (p))
[0109] With: • The loss error, • Lp(p) is the first photometric error for a pixel P, where P is a pixel defined by its coordinates in an image. • LP2 the second photometric error for pixel P, • Lcl the first consistency error for pixel P, • Lc2, the second consistency error for pixel P, • Ls3 the component in the third image for pixel P, • the component in the fourth image for pixel P.
[0110] It should be noted that the pixels compared are those with similar or equal coordinates in both the acquired and generated images.
[0111] The training of the depth prediction model consists of adjusting the input parameters of the convolutional neural network in order to minimize the previously calculated loss error.
[0112] Furthermore, an object that is occluded or not visible in the field of view of one camera and masked in the field of view of the other camera does not affect the loss error, as the use of a visibility mask makes this learning process insensitive to occlusions. Thus, the depth prediction model used for predicting the depth of a pixel in an image acquired by one of the cameras of the stereoscopic vision system is made more reliable by this learning process.
[0113] This learning process is performed using data acquired by the on-board vision system and therefore does not require data annotated by another on-board system or the storage of a training image library. Furthermore, the training data is representative of the data received when the system is in operation or in production; indeed, the training data is representative of real-world environments in which the vehicle carrying the stereoscopic vision system operates or moves, making this training data particularly relevant.
[0114] Figure 4 schematically illustrates a device 4 configured to learn a depth prediction model from a vehicle-mounted vision system, according to a particular, non-limiting embodiment of the present invention. The device 4 corresponds, for example, to a device mounted in the first vehicle 10, for example, a computer associated with the stereoscopic vision system.
[0115] Device 4 is, for example, configured to carry out the operations described opposite Figures 1 and 4 and / or the steps described opposite Figures 2 and 3. Examples of such a device 4 include, but are not limited to, embedded electronic equipment such as a vehicle's on-board computer, an electronic control unit such as an ECU (Electronic Control Unit), a smartphone, a tablet, or a laptop computer. The elements of device 4, individually or in combination, may be integrated into a single integrated circuit, into several integrated circuits, and / or into discrete components. Device 4 may be implemented in the form of electronic circuits or software (or computer) modules, or a combination of electronic circuits and software modules.
[0116] The device 4 comprises one (or more) processor(s) 40 configured to execute instructions for carrying out the steps of the process and / or for executing instructions from the software embedded in the device 4. The processor 40 may include integrated memory, an input / output interface, and various circuits known to those skilled in the art. The device 4 further comprises at least one memory 41, for example, volatile and / or non-volatile memory, and / or includes a memory storage device that may include volatile and / or non-volatile memory, such as EEPROM, ROM, PROM, RAM, DRAM, SRAM, flash, magnetic disk, or optical disk.
[0117] The computer code of the embedded software(s), including the instructions to be loaded and executed by the processor, is for example stored in memory 4L
[0118] According to various particular and non-limiting embodiments, the device 4 is coupled in communication with other similar devices or systems (for example other computers) and / or with communication devices, for example a TCU (Telematic Control Unit), for example via a communication bus or through dedicated input / output ports.
[0119] According to a particular and non-limiting embodiment, the device 4 includes a block 42 of interface elements for communicating with external devices. The interface elements of the block 42 include one or more of the following interfaces: - radio frequency RF interface, for example of the Wi-Fi® type (according to IEEE 802.11), for example in the 2.4 or 5 GHz frequency bands, or of the Bluetooth® type (according to IEEE 802.15.1), in the 2.4 GHz frequency band, or of the Sigfox type using UBN (Ultra Narrow Band) radio technology, or LoRa in the 868 MHz frequency band, LTE (Long-Term Evolution), LTE-Advanced; - USB interface (from the English "Universal Serial Bus" or "Universal Serial Bus" in French); HDMI interface (from the English "High Definition Multimedia Interface", or "High Definition Multimedia Interface" in French); - LIN interface (from the English "Local Interconnect Network", or in French "Réseau interconnecté local").
[0120] According to another particular and non-limiting embodiment, the device 4 includes a communication interface 43 which enables communication with other devices (such as other computers in the embedded system) via a communication channel 430. The communication interface 43 corresponds by example to a transmitter configured to transmit and receive information and / or data via communication channel 430. Communication interface 43 corresponds for example to a wired network of type CAN (from the English "Controller Area Network" or in French "Réseau de contrôlers"), CAN FD (from the English "Controller Area Network Flexible Data-Rate" or in French "Réseau de contrôlers à débit de données flexible"), FlexRay (standardized by the ISO 17458 standard) or Ethernet (standardized by the ISO / IEC 802-3 standard).
[0121] According to a particular and non-limiting embodiment, the device 4 can provide output signals to one or more external devices, such as a display screen 440, touch or not, one or more speakers 450 and / or other peripherals 460 via the output interfaces 44, 45, 46 respectively. According to a variant, one or more of the external devices is integrated into the device 4.
[0122] Of course, the present invention is not limited to the embodiments described above but extends to a method for determining the depth of a pixel in an image acquired by a vision system, and / or for measuring the distance between an object and a vehicle equipped with a vision system, the depth and / or distance being predicted and / or measured via a depth prediction model learned according to the learning method described above, which would include secondary steps without departing from the scope of the present invention. The same would apply to a device configured for implementing such a method.
[0123] The present invention also relates to a vehicle, for example an automobile or more generally an autonomous land-powered vehicle, comprising the device 4 of [Fig.4].
Claims
1. Demands Method for learning a depth prediction model implemented by a convolutional neural network associated with a stereoscopic vision system embedded in a vehicle (10), the stereoscopic vision system comprising a first camera (11) and a second camera (12) arranged so as to each acquire an image of a three-dimensional scene from a different point of view, said method being implemented by at least one processor, and being characterized in that it comprises the following steps: - reception (31) of a first image and a second image acquired by respectively the first camera (11) and the second camera (12) at the same time instant of acquisition; - generation (32) of a first depth map comprising depths associated with a set of pixels from the first image and of a second depth map comprising depths associated with a set of pixels from the second image, the depths being predicted with the depth prediction model from the first and second images; - generation (33) of a third image and a third depth map from the first image, the first depth map and extrinsic parameters of the stereoscopic vision system, the third depth map comprising depths associated with a set of pixels of the third image, and generation of a fourth image and a fourth depth map from the second image, the second depth map and extrinsic parameters of the stereoscopic vision system, the fourth depth map comprising depths associated with a set of pixels of the fourth image; - determination (34) of a visibility mask as the union of a first visibility mask and a second visibility mask, each pixel of the third image resulting from at least one pixel of the first image belonging to the first visibility mask and each pixel of the fourth image resulting from at least one pixel of the second image belonging to the second visibility mask; - assigning (35) a null value to the pixels of the third and fourth images not included in the visibility mask; - learning (36) of the depth prediction model by mini- mistaking a loss error, the loss error being determined from: • a first consistency error determined by comparison of the first and fourth depth maps, • a second consistency error determined by comparison of the second and third depth maps, and • a photometric error determined by comparison of the first and fourth images and by comparison of the second and third images.
2. A method according to claim 1, wherein the first consistency error and the second consistency error are determined respectively by the following function: (Dt(p) -Dt(p) )2 With: • L^p) corresponding to the first consistency error respectively the second consistency error L2, • Dtp) a depth of a pixel P, obtained from the first depth map, respectively from the second depth map, for a pixel P, and • D'(p) a depth of a pixel Pt obtained from the fourth depth map, respectively from the third depth map, for the pixel P.
3. A method according to claim 1 or 2, wherein the photometric error is determined by the following function: AAp) = (M ■ AP)-Hp)\+a' AASSIM[l(p)Aip))) With: • Lp*( p) the first photometric error denoted Lpi (p), respectively the second photometric error denoted Lp2 being a pixel defined by its coordinates in an image, • I(p) a value of the pixel P in the first image, respectively second image, * a value of the pixel P in the fourth image, respectively third image, • SSIM a function which takes into account a local structure, and • has a weighting factor depending in particular on the type of environment.
4. A method according to any one of claims 1 to 3, wherein the error of The loss is further determined from a construction error determined by the following function: With : • Lsmooth{py the construction error L^( p) for a pixel p of the third image, respectively the construction error Lv4( p) for a pixel p of the fourth image, • D(p) is a depth of a pixel P obtained from the third depth map, respectively obtained from the fourth depth map; • W is a parameter matrix; • ° is the order of a smoothing gradient; • an L1 norm of the second order depth gradients is calculated with VF =1 , et0 =2; • x and 2 are the dimensions of the images; • (J is a hyperparameter dependent on the environment in which the vehicle operates; and • It(pt ) is a value of pixel P in the third image, respectively fourth image.
5. A method according to claim 4, wherein the loss error is determined by the following function: L = EjminLc2( p ) ) + min(LtAp), Lp2(p))+ L,3(p)+L^(p)) With: • The loss error, • Lp^p^ the first photometric error for a pixel P, P being a pixel defined by its coordinates in an image, • Lp2, the second photometric error for pixel P. • Lcl the first consistency error for pixel P, • Lc2, the second consistency error for pixel P, • Lx3 is the construction error for a pixel P in the third image, and • Ls4 is the construction error for a pixel P of the fourth image.
6. A method according to any one of claims 1 to 5, wherein the third and fourth depth maps are generated by the following function: ps = n^T^p^KD(Pt) ) ] ) With: • Ps the coordinates of a pixel on the third depth map, respectively of the fourth depth map, • 77 a function to go from homogeneous coordinates to pixel coordinates by removing one dimension of a vector, • K' an intrinsic matrix of the first camera (11), respectively to the second camera (12), • K an intrinsic matrix of the second camera (12), respectively to the first camera (11), • T an extrinsic matrix of the stereoscopic vision system, and • 0 a projection function in the three-dimensional scene of a pixel Pt as a function of its coordinates in the first image, respectively second image, and of the depth D^p} which is associated with it in the first depth map, respectively second depth map.
7. A method according to any one of claims 1 to 6, wherein the optical axes of the first and second cameras are not coplanar.
8. A computer program comprising instructions for carrying out the method according to any one of the preceding claims, when such instructions are executed by a processor.
9. Device (4) configured to learn a depth prediction model by a vision system embedded in a vehicle (10), said device (4) comprising a memory (41) associated with at least one processor (40) configured to implement the steps of the method according to any one of claims 1 to 7.
10. Vehicle (10) comprising the device (4) according to claim 9.