Method of guiding to a destination
The guidance method addresses the challenge of vehicles deviating from learned paths by employing a learning phase with oriented images and similarity scores to quickly correct the vehicle's trajectory, ensuring accurate path alignment.
Patent Information
- Application Number
- FR2023007407
- Authority / Receiving Office
- FR · FR
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2023-07-11
- Publication Date
- 2025-07-11
- Estimated Expiration
- 2043-07-11
Smart Images

Figure 00000034_0000 
Figure 00000034_0001 
Figure 00000035_0000
Abstract
Description
Title of the invention: Method for guiding to a destination
[0001] The invention relates to a method for guiding to a destination and a method for tracking a destination. The invention also relates to a guidance device for implementing the tracking method.
[0002] Methods for guiding a vehicle along a learned path using only vision to guide the vehicle have been developed by drawing inspiration from the navigation methods of ants. These developed methods are particularly simple because they only require a single on-board camera to be implemented. In particular, compared to other guidance methods, they do not require the implementation of complex mapping algorithms such as "Simultaneous Localization and Mapping" better known by the English acronym SLAM ("Simultaneous Localization and Mapping"). They also do not require the implementation of complex sensors such as a LIDAR ("Laser Imaging Detection and Ranging") or the use of stereoscopic cameras and they do not use location devices such as a GPS ("Global Positioning System").
[0003] Such methods of guiding along a learned path have been described in the following articles:
[0004] - Paul Ardin et Al: “Using an insect mushroom body circuit to encode route memory in complex natural environments”, PLoS computational biology, 02 / 11 / 2016, and
[0005] - Sotirios Athanasoulias and Andy Philippides: “Autonomous visual navigation a biologically inspired approach”, arXiv preprint arXiv:2209.09663, 2022.
[0006] Subsequently these articles are designated by the references, respectively, Ardin2016 and Athanasoulias2020.
[0007] These known vision guidance methods begin with a learning phase during which a camera is moved along the path to be followed. During this movement, at regular intervals, images are taken by the camera. Then, the learned path is constructed from these images. Afterwards, to follow this learned path, the camera takes images and each time the camera takes an image, a processing unit estimates the angular offset a, between the direction of movement of the camera at the time this image is taken and the direction of movement that this camera would have if it moved along the learned path. From the estimated angular offset a, a guidance instruction that indicates the direction in which the camera must be moved to follow the learned path is generated. The generated guidance instruction is then used to control a vehicle so that it follows the learned path.
[0008] In practice, it has been observed that if the vehicle is initially placed a few tens of centimeters to the right or left of the starting point of the learned path, then the vehicle often follows a trajectory parallel to the learned path or takes a very long time before reaching the learned path. Thus, the vehicle does not approach or approaches very slowly the learned path and then moves on this learned path. In other words, the processes described in the articles cited above make it possible to follow a learned path but it is very difficult to recover if the vehicle has moved away from it by a few tens of centimeters.
[0009] The invention aims to remedy this drawback while retaining the advantages of guidance methods which use only vision.
[0010] The invention therefore relates to a method of guidance towards a destination comprising one or more learning points, this method comprising:
[0011] - a learning phase during which:
[0012] - a first image-taking device is placed on each learning point of the destination to learn, and
[0013] - at each learning point, taking a first image of the external environment with a zero orientation 0, a first image with an orientation 0 being a first image taken while the orientation of the first image-taking device around its shooting axis is equal to the angle 0, then
[0014] - constructing a learned destination with a zero orientation 0 using for this only the first image(s) with a zero orientation 0,
[0015] - a phase of tracking the learned destination comprising:
[0016] - the provision of a guidance device comprising:
[0017] - a second image-taking device,
[0018] - an electronic unit for processing images taken by the second device image capture, this electronic processing unit comprising a memory in which the learned destination is pre-recorded with a zero 0 orientation, then
[0019] - taking second images by the second image-taking device during a relative movement of this second image-taking device in the external environment, and
[0020] - each time a second image is taken, the processing unit:
[0021] - estimate, from the second image and the destination learned with an orientation 0 null, an angular offset a, between the orientation of the second image-taking device at the time when this second image is taken and the orientation of the first image-taking device at the time when a first reference image with a 0 null orientation was taken, the first reference image with a 0 null orientation being, among the first images used to construct the learned destination with a 0 null orientation, the one which presents the most similarity with this second image, then
[0022] - generates, from the estimated angular offset Oj, a guidance instruction which allows you to return to the learned destination, then
[0023] - controls, depending on the generated guidance instruction, an actuator for cause a relative movement of the second image-capturing device with respect to the external environment which brings it closer to the learned destination and / or commands a human-machine interface to communicate the guidance instruction to a human being,
[0024] in which, each time a second image is taken, the processing unit:
[0025] - calculates, from the second image, a first similarity score representative of the similarity between the second image and a left-oriented image constructed solely from one or more first images with the same orientation 0 between aj+10o and aj+170o or solely from several first images with respective orientations 0 all between aj+1° and ttj+1790,
[0026] - calculates, from the second image, a second similarity score representative of the similarity between the second image and a right-oriented image constructed solely from one or more first images with the same orientation 0 between Oj-10° and Oj-170° or solely from several first images with respective orientations 0 all between Oj-1° and Oj-179°, then
[0027] - uses, in addition to the estimated angular offset Oj, the sign of the difference between the first and second similarity scores to generate the guidance instruction, this difference identifying the side where the second image capture device is located relative to the learned destination.
[0028] Embodiments of this guidance method may include one or more of the following features:
[0029] 1)
[0030] - the learning phase also includes construction, in the same way that the destination learned with a zero orientation 0, of Nc-1 destinations learned with respective non-zero orientations 0, Ne being equal to the total number of destinations learned and being greater than or equal to three and the Ne angles 0 are distributed in the interval [0°; 360°[,
[0031] - the provision of a guidance device comprises the provision of a device for guidance in which the learned Ne destinations with respective 0 orientations are pre-stored in the memory,
[0032] - when calculating the first similarity score, the left-oriented image is obtained only from one or more of the pre-recorded and learned destinations with an orientation 0 between aj+1° and Oj+179o, and
[0033] - when calculating the second similarity score, the right-oriented image is obtained only from one or more of the pre-recorded and learned destinations with an orientation 0 between Oj-1° and Oj-179°.
[0034] 2) The Ne angles 0 are uniformly distributed in the interval [0°; 360°[.
[0035] 3) The number Ne is greater than eight or twelve.
[0036] 4) Each learned destination is encoded as a vector of NPA cells, the number of NPA cells being constant and independent of the number of learning points.
[0037] 5) Each time a second image is taken:
[0038] - the processing unit obtains a vector PAj of dimension NPA only from pixels of this second image, and
[0039] - when calculating the first similarity score, obtaining the oriented image at left comprises obtaining a vector SWaj+p, of dimension NPA, only from one or more of the pre-recorded and learned destinations with an orientation 0 between Oj+lo and Oj+179°, then calculating the first similarity score comprises comparing the content of each cell PAj(i) of the vector PAj to the content of the cell SWaj+p(i) of the vector SWq+p obtained and, each time the contents of the cells PAj(i) and SWaj+p(i) satisfy a predetermined similarity criterion, incrementing a counter by a predetermined step so that once all the cells of the vectors PAj and SWq+p have been compared, the value of the counter is representative of the similarity between the image Ij and the image Igj oriented to the left, where the index i is an identifier of a cell in each of the vectors PAj and SWaj+p, and
[0040] - the calculation of the second similarity score is identical to the calculation of the first similarity score. similarity except that the vector SWaj+p is replaced by a vector SWaj.Y, of dimension NPA, which is obtained only from one or more of the pre-recorded and learned destinations with an orientation 0 between aj-1° and aj-179°.
[0041] 6) Each orientation 0 used to construct the right-oriented image is equal to an orientation [3k+l80°, where [3k is an orientation chosen from the group composed of the 0 orientations used to construct the left-oriented image.
[0042] 7) Each orientation 0 used to construct the left-oriented image is between 80° and 100° and each orientation 0 used to construct the right-oriented image is between -80° and -100°.
[0043] 8) The construction of a destination learned with an orientation 0 includes:
[0044] - before starting the processing of each of the images with orientation 0, initializing each cell SWu(i) of a SWU vector of dimension NPA to one, then
[0045] - once the SW0 vector is initialized, repeat the following operations for each first image with orientation 0:
[0046] - obtaining, solely from the pixels of this first image, a vector PN of NPN dimension, where the NPN dimension is three or five times smaller than the NPA dimension, then
[0047] - the transformation of the PN vector into an EPSP vector of dimension NPA in mul folding the PN vector by a PN-to-KC sparse matrix of NPN rows and NPA columns to obtain the EPSP vector, then
[0048] - replacing the largest Nsp values contained in the EPSP vector by of some and the replacement of the other values contained in this EPSP vector by zeros to obtain a PA vector, the Nsp number being a pre-determined number less than 0.2*NPA, then
[0049] - for i ranging from 1 to NPA, each time the cell PA(i) of the vector PA contains a one, replace the contents of cell SWu(i) of vector SWU with a zero and if cell PA(i) contains a zero, leave the contents of cell SWu(i) unchanged, where, during the first iteration, vector SWU is the vector as initialized then, during the following iterations, vector SWU is the SWU vector obtained at the end of the previous iteration, vector SW0 obtained at the end of the last iteration being the destination constructed with orientation 0.
[0050] 9)
[0051] - the learned destination comprises several learning points located one after the other behind the others along a path,
[0052] - during the learning phase:
[0053] - the first image-taking device is moved on the path, and
[0054] - during this movement of the first image-taking device on this path, at each learning point located on this path, taking a first image with a zero orientation 0, then
[0055] - constructing the learned destination with a zero orientation 0 using for this purpose only first images with zero orientation 0 taken during the movement of the first image-taking device,
[0056] - during the tracking phase of the learned destination, the processing unit:
[0057] - generates, from the estimated angular offset a, a guidance instruction which indicates the direction in which to move the second imaging device to get closer to the learned destination, then
[0058] - controls, depending on the generated guidance instruction, an actuator for bringing the second imaging device closer to the learned destination and / or commanding a human-machine interface to communicate the guidance instruction to a human.
[0059] The invention also relates to a method for tracking a learned destination for implementing a guidance method in accordance with any one of the preceding claims, this tracking method comprising:
[0060] - the provision of a guidance device comprising:
[0061] - a second image-taking device,
[0062] - an electronic unit for processing images taken by the second device image capture, this electronic processing unit comprising a memory in which the learned destination is pre-recorded with a zero 0 orientation, then
[0063] - taking second images by the second image-taking device during a relative movement of this image-taking device in the external environment, and
[0064] - each time a second image is taken, the processing unit:
[0065] - estimate, from the second image and the destination learned with an orientation 0 null, an angular offset a, between the orientation of the second image-taking device at the time when this second image is taken and the orientation of the first image-taking device at the time when a first reference image with a 0 null orientation was taken, the first reference image with a 0 null orientation being, among the first images used to construct the learned destination with a 0 null orientation, the one which presents the most similarity with this second image, then
[0066] - generates, from the estimated angular offset Oj, a guidance instruction which allows you to return to the learned destination, then
[0067] - controls, depending on the generated guidance instruction, an actuator for cause a relative movement of the second image-capturing device with respect to the external environment which brings it closer to the learned destination and / or commands a human-machine interface to communicate the guidance instruction to a human being,
[0068] in which, each time a second image is taken, the processing unit:
[0069] - calculates, from the second image, a first similarity score representative of the similarity between the second image and a left-oriented image constructed solely from one or more first images with the same orientation 0 between aj+10o and Oj+170o or solely from several first images with respective orientations 0 all between ttj+10 and ttj+1790,
[0070] - calculates, from the second image, a second similarity score representative of the similarity between the second image and a right-oriented image constructed solely from one or more first images with the same orientation 0 between Oj-10° and a,-170° or solely from several first images with respective orientations 0 all between Oj-1° and Oj-179°, then
[0071] - uses, in addition to the estimated angular offset Oj, the sign of the difference between the first and second similarity scores to generate the guidance instruction, this difference identifying the side where the second image capture device is located relative to the learned destination.
[0072] The invention also relates to a guidance device for implementing the above method of tracking a learned destination, this device comprising:
[0073] - a second image-taking device,
[0074] - an electronic unit for processing images taken by the second device image capture, this electronic processing unit comprising a memory in which the learned destination is pre-recorded with a zero 0 orientation, this processing unit also being configured to:
[0075] - each time a second image is taken:
[0076] - estimate, from the second image and the destination learned with a zero 0 orientation, an angular offset a, between the orientation of the second image-taking device at the time when this second image is taken and the orientation of the first image-taking device at the time when a first reference image with a zero 0 orientation was taken, the first reference image with a zero 0 orientation being, among the first images used to construct the learned destination with a zero 0 orientation, the one which presents the most similarity with this second image, then
[0077] - generate, from the estimated angular offset Oj, a guidance instruction which allows you to return to the learned destination, then
[0078] - controlling, according to the generated guidance instruction, an actuator for cause a relative movement of the second image-taking device with respect to the external environment which brings it closer to the learned destination and / or control a human-machine interface to communicate the guidance instruction to a human being,
[0079] wherein the processing unit is also configured to, each time a second image is taken,:
[0080] - calculate, from the second image, a first representative similarity score of the similarity between the second image and a left-oriented image constructed solely from one or more first images with the same orientation 0 between aj+10o and Oj+170o or solely from several first images with respective orientations 0 all between ttj+10 and ttj+1790,
[0081] - calculate, from the second image, a second similarity score representative of the similarity between the second image and a right-oriented image constructed solely from one or more first images with the same orientation 0 between Oj-10° and Oj-170° or solely from several first images with respective orientations 0 all between Oj-1° and Oj-179°, then
[0082] - use, in addition to the estimated angular offset Oj, the sign of the difference between the first and second similarity scores to generate the guidance instruction, this difference identifying the side where the second image-taking device is located by report to the learned destination.
[0083] The embodiments of this device may include the following characteristic: the viewing angle of the second image-taking device, around its viewing axis, is greater than or equal to 180°.
[0084] The invention will be better understood on reading the description which follows, given solely as a non-limiting example and made with reference to the drawings in which:
[0085] - [Fig.l] is a schematic illustration of the architecture of a vehicle equipped of a guidance device;
[0086] - [Fig.2] is a flowchart of a guidance method implemented in the vehicle of [Fig.l];
[0087] - [Fig.3] is a schematic illustration of different vectors and matrix implemented work when executing the method of [Fig.2];
[0088] - [Fig.4] is a graph illustrating different guidance instructions generated in implementing the method of [Fig.2].
[0089] In these figures, the same references are used to designate the same elements. In the remainder of this description, the characteristics and functions well known to those skilled in the art are not described in detail.
[0090] In this description a detailed example of an embodiment is first described in a chapter I with reference to the figures. Then, in a chapter II, variants of this embodiment are introduced. Finally, the advantages of the different embodiments are specified in a chapter III.
[0091] In this text, right and left are defined relative to the current direction of movement of the camera taking the images. Furthermore, subsequently, an angle of -y° is equal to the angle 360°-y.
[0092] Chapter I: Example of embodiment
[0093] [Fig.l] represents a vehicle 2 capable of moving on a floor 4. Here, the floor 4 extends mainly parallel to a horizontal plane identified by horizontal orthogonal directions X and Y of an orthogonal reference frame XYZ.
[0094] The ground 4 is located in an environment which has visual reference points on the horizon. In an exterior environment, these visual reference points may be trees, buildings, houses or other visual reference points conventionally encountered in an exterior environment. In the case of an interior environment, that is to say for example inside a building, the visual reference points located on the horizon may be objects such as paintings or furniture.
[0095] To move on the ground 4, the vehicle 2 has wheels 10 and a motor 12 which drives the wheels 10 in rotation. The vehicle 2 also has:
[0096] - a controllable actuator 14 which allows steering wheels 10 to be turned in a desired direction,
[0097] - an image-taking device 16, and
[0098] - an electronic processing unit 18 connected to the actuator 14 and to the camera 16.
[0099] The device 16 makes it possible to take images of the environment in which the vehicle 2 is moving. Each image is a matrix of pixels and each pixel contains a respective measurement of a physical quantity of the external environment. For this purpose, conventionally, the device 16 comprises a matrix of sensitive cells. Each sensitive cell measures the physical quantity in a respective direction and with a respective viewing angle. Generally, this matrix comprises as many sensitive cells as there are pixels in the image taken. Thus, in this case, each pixel contains the measurement made by the sensitive cell associated with it. The device 16 comprises a viewing axis 20. This axis 20 coincides with the viewing axis of a central sensitive cell. The central sensitive cell is the one located at the center of the matrix of sensitive cells.This axis 20 is integral with the device 16 so that if the device 16 is rotated on itself around this axis 20, the pixels of the image taken by the device 16 also rotate around a central pixel. The central pixel is the one that contains the measurement of the central sensitive cell. In this embodiment, the device 16 is a camera and the physical quantity measured is the color. Subsequently, the numerical reference 16 is therefore also used to designate this camera. Furthermore, here, by camera, we designate both a camera and a camera capable of filming the environment. Finally, in the particular case where the device 16 is a camera, the images taken by this camera are commonly called photos.
[0100] The axis 20 is here vertical when the vehicle 2 is on horizontal ground. This camera 16 is capable of taking images of at least part of the horizon. For this purpose, it is here a panoramic camera whose viewing angle around the axis 20 extends over more than 180°. In this example, the viewing angle around the axis 20 is 360° which makes it possible to have an image of the entire horizon. By way of illustration, it may be a “fisheye” type camera sold by the company Entanya®.
[0101] The unit 18 is capable of processing the images taken by the camera 16 and, in response, of controlling the actuator 14 to guide the vehicle 2 towards a learned destination. Here, the learned destination is a path along which several learning points are distributed. In this particular case, the learned destination is called a “learned path” and guiding the vehicle 2 towards the learned destination consists of guiding the vehicle 2 along the learned path. For this purpose, it typically comprises a programmable computer 22 connected to a memory 24 comprising the instructions and the data necessary to execute the method of [Fig.2]. In particular, the memory 24 here contains Ne pre-recorded learned paths SW0, where the Ne values of the angle 0 are uniformly distributed in the interval [0°;360°[. In this exemplary embodiment, the number Ne of angles 0 is equal to eight. Thus, here, the possible values for the angle 0 are 0°, 45°, 90°, 135°, 180°, 225°, 270° and 315°. The memory 24 contains the learned paths SW0, SW45, SW90, SW135, SW180, SW225, SW270 and SW315.
[0102] The combination of the camera 16 and the processing unit 18 forms a guidance device 26.
[0103] The method of guiding the vehicle 2 along the learned path SW0 will now be described using figures 2 and 3.
[0104] The method begins with a phase 50 of learning a path to follow. An example of a path SW0 to follow is shown in bold in [Fig.4]. This path begins at a starting point 54 and ends at an arrival point 56. Between points 54 and 56, the path SW0 follows a trajectory, in the XY plane, essentially in the shape of an elbow.
[0105] During this phase 50, during a step 60, the vehicle 2 moves on the path SWo to be followed from its starting point 54 to its arrival bridge 56. For example, during step 60, the vehicle 2 is remote-controlled and moves at a constant speed of 0.5 m / s.
[0106] In parallel with step 60, during a step 62, the unit 18 controls the camera 16 to take images at the points 54 and 56 as well as at the levels of a multitude of intermediate learning points located, on the path SW0, between the points 54 and 56. For example, the learning points are spaced from each other by a distance AA of less than 0.5 m and, preferably, less than 0.2 m. For example, here, the distance AA between two immediately consecutive learning points is equal to 10 cm.
[0107] Throughout step 62, the orientation of the camera 16 around the axis 20 is kept constant. By convention, this orientation of the camera 16 around the axis 20 corresponds to a zero 0 orientation. Thus, during step 62, each of the images is taken with a zero 0 orientation. Each of the images taken during step 62 is transmitted to the unit 18 which acquires them as they are received. In this text, these images taken with a zero 0 orientation are also called “image with a zero 0 orientation”.
[0108] In parallel with step 62, as the images are taken, during a step 64, the unit 18 constructs the learned SW0 path with a zero orientation 0 using for this only images with the zero orientation 0.
[0109] Here, the learned path SW0 is constructed in a similar way to what is taught in the Ardin2016 article, so only the main steps are described in detail.
[0110] More precisely, during a step 65, the unit 18 obtains, from each image taken, a PN vector of dimension NPN visible in [Fig.3].
[0111] Here, the images taken by the camera 16 are in color. More precisely, the color of each pixel is coded according to RGB (“Red Green Blue”) coding. For example, each of the red, green and blue colors is coded on eight bits. To reduce the amount of information to be processed, during an operation 66, only the coding of the green color is retained for each pixel.
[0112] Furthermore, still to reduce the amount of information to be processed, each time the value which codes the green of a pixel exceeds 155, this value is replaced by 255.
[0113] Here, the resolution of the images taken by the camera 16 is high so that each pixel of an image corresponds to a viewing angle much lower than 3° / pixel. Under these conditions, the operation 66 is followed by an operation 68 of degrading the spatial resolution of the image so that the viewing angle of each pixel is between 37 pixels and 207 pixels and, preferably, between 37 pixels and 107 pixels. Here, the spatial resolution of each image taken by the camera 16 is degraded to obtain an image in which the viewing angle of each pixel is equal to 57 pixels. This operation is typically carried out by sub-sampling the initial image. At the end of this operation 68, in this example, the number of pixels in the image is no more than 1936 pixels, which corresponds to an image having 44 rows and 44 columns.
[0114] During an operation 70, the image obtained at the end of operation 68 is filtered to bring out the contours of the photographed environment. For example, during operation 70, the image is filtered using a Sobel filter.
[0115] Then, during an operation 72, the pixels of the image obtained at the end of operation 70 are arranged in the form of the vector PN. For this, the pixels of the image are traversed starting from the corner located at the top left to the corner located at the bottom right and passing only once through each pixel. The path of the image is a path predetermined in advance and constant. Along this path, each time the pixel traversed is located between a predefined outer circle and a predefined inner circle, the value of this pixel is moved into a corresponding cell of a vector PN. Conversely, if the pixel traversed is located outside the outer circle or inside the inner circle, this pixel is not taken into account to construct the vector PN. Thus, only the pixels located inside a ring are used to construct the vector PN. The radii of the outer and inner circles are chosen to encompass the horizon.For example, here the radii of the outer and inner circles are equal to 22 pixels and 12 pixels, respectively. Under these conditions, at the end of operations 66 to 72, unit 18 obtains, for each image taken, the corresponding PN vector. Here, the NPN dimension is equal to 1078.
[0116] Then, during a step 80, each PN vector obtained is transformed into a vector PA of NPA dimension. The NPA dimension is typically three or five or ten times greater than the NPN dimension. Here, the NPA dimension is chosen to be 10,000. The vectors and matrix used in step 80 are shown in [Fig.3].
[0117] For this, during an operation 82, the unit 18 first transforms the obtained PN vector into an EPSP vector of dimension NPA. For this, the PN vector is multiplied by a PN-to-KC matrix having NPN rows and NPA columns, the result of this multiplication being the EPSP vector. The PN-to-KC matrix is a sparse matrix in which the majority of coefficients are zero and the other coefficients are equal to one. For example, the filling coefficient of each row of the PN-to-KC matrix is less than 10% or 5%. A filling coefficient of x% means that x% of the coefficients of this row are non-zero. In addition, preferably, in each of the rows of the PN-to-KC matrix, the non-zero coefficients are distributed randomly or pseudo-randomly. In this example, the filling coefficient is equal to five.
[0118] Then, during an operation 84, the vector PA corresponding to the vector PN is obtained by replacing the largest Nsp values contained in the EPSP vector by ones and by replacing the other values contained in this EPSP vector by zeros. The number Nsp is a pre-determined and constant number. Typically, the number Nsp is less than 0.2*NPA or 0.1*NPA. Here, the number Nsp is equal to 0.05*NPA.
[0119] In this embodiment, each learned path SWU is coded in the form of a SWU vector of dimension NPA. Thus, subsequently the symbol “SWU” is used both to designate a learned path and the corresponding vector.
[0120] During a step 90, before starting the processing of each of the images, for each possible value of the angle 0, the unit 18 initializes to one each cell SWu(i) of each vector SW0.
[0121] Once the vector SW0 has been initialized, during a step 92, for each vector PA obtained at the end of the operation 84, the unit 18 repeats the following operations: for i ranging from 1 to NPA, each time the cell PA(i) contains a one, replace the content of the cell SW0(i) of the vector SW0 with a zero and if the cell PA(i) contains a zero, leave the content of the cell SW0(i) unchanged. In this text, the index i is an identifier of a cell of a vector. This index i is here an integer which varies from 1 to NPA. During the first iteration of the preceding operations, the vector SW0 is the vector as initialized during step 90. Then, during the following iterations, the vector SW0 is that obtained at the end of the previous iteration. The SW0 vector obtained at the end of the last iteration, that is to say once all the images taken on the path to follow have been processed, is the learned path SW0.
[0122] In parallel with step 64, as the images are taken, during a step 100, unit 18 also constructs the Nc-1 SWU learned paths for each of the non-zero 0 orientations. A SWU learned path with a non-zero 0 orientation is constructed in the same way as the SW0 learned path except that it is constructed using only images with this non-zero 0 orientation. Preferably, the images used to construct this SWU learned path are taken at the same training points as those at which the images with a zero 0 orientation were taken.
[0123] It is emphasized that in the case of images with a non-zero orientation 0, the term “taken” does not only mean that this image was directly taken by the camera 16. The term “taken” also designates, in the case of images with a non-zero orientation 0, the case of an image resulting from a rotation of the pixels of an image taken during step 62 so that it is similar or identical to that which would have been directly taken by the camera 16 if it had been rotated by the angle 0 around the axis 20.
[0124] In practice, it is often easier to digitally rotate the pixels of an image taken during step 62 than to mechanically rotate the camera 16 around its axis 20. Thus, during an operation 102, each time an image is acquired during step 62, the unit 18 generates each of the corresponding images with a non-zero orientation 0. To do this, the unit 18 rotates by 0°, around the axis 20, each pixel of the image taken with a zero orientation 0. After this rotation, each pixel that falls outside the frame of the image is eliminated. Conversely, all the pixels located inside the frame of the image and which have not been replaced by another pixel, are replaced by a pixel of a predetermined color, for example, here a black pixel.
[0125] Then for each non-zero value of the angle 0, the method continues with steps 104, 106 and 108 identical, respectively, to steps 65, 80 and 92 except that it is the images with the non-zero orientation 0 obtained at the end of step 102 which are processed instead of the images with the zero orientation 0. Thus, at the end of step 108, the learned paths SW45, SW90, SWi35, SWi80, SW225, SW270 and SW3i5 are obtained.
[0126] During a step 110, the learned paths SW0, SW45, SW90, SWi35, SWi80, SW225, SW 270 and SW3i5 are recorded in the memory 24 of the vehicle 2.
[0127] Once the paths SW0, SW45, SW90, SW135, SW180, SW225, SW270 and SW315 have been recorded in the memory 24, a phase 150 of tracking the path SW0 begins.
[0128] This phase 150 begins with a step 152 of supplying the vehicle 2 equipped with the guidance device 26 in the memory of which the learned paths SW0, SW45, SW90, SWi35, SW» SW225, SW27o and SW3i5 are pre-recorded.
[0129] Initially, vehicle 2 is placed near starting point 54 but not necessarily on that starting point. For example, vehicle 2 is placed anywhere at inside a circle of radius 2.5 m which is centered on starting point 54.
[0130] Then, during a step 160, the engine 12 is started and the vehicle 2 moves, for example, at the same speed as during step 60.
[0131] In parallel with step 160, during a step 162, the unit 18 controls the camera 16 to take images at points spaced apart from each other by a distance AS. The distance AS is chosen as the distance AA. For example, the distance AS is equal to the distance AA. Throughout the duration of step 162, the orientation of the camera 16 around the axis 20 is kept constant and equal to the zero orientation 0. Thus, during step 162, each of the images is taken with a zero orientation 0. Each of the images taken during step 162 is transmitted to the unit 18 which acquires them as they are received and processes them immediately.
[0132] In parallel with step 162, each time an image Ij is acquired by the unit 18, during a step 164, the unit 18 obtains the vector PAj of this image Ij. Here, the index j is the order number of the acquired image. For this, the unit 18 proceeds in exactly the same way as what was described with reference to steps 65 and 80 during the learning phase 50. In particular, a vector PN is first obtained from the image Ij then the vector PN obtained is transformed into a vector PA, the vector PAj being equal to this vector PA.
[0133] Then, during a step 166, once the vector PAj is obtained, the unit 18 immediately estimates an angular offset Oj. The angular offset Oj is that which exists between the orientation of the camera 16 at the time when the image Ij was taken and the orientation of the camera 16 if it were moving on the learned path SW0. The orientation that the camera 16 would have if it were moving on the learned path SW0 corresponds to the orientation of the camera 16 at the time when the image which has the most similarity with the image Ij was taken, during step 60. This latter image is subsequently called the reference image and denoted Irefj. In other words, in this embodiment, the angular offset Oj is that which exists between the direction of movement of the camera 16 at the moment when the image Ij was taken and the direction of movement of the camera 16 if it were moving on the learned path SW0.The direction of movement that the camera 16 would have if it moved on the learned path SW0 corresponds to the direction of movement of the camera 16 at the time when the image Irefj was taken, during step 60.
[0134] In this embodiment, to simplify the calculations, the vector PA of the image Irefj is taken equal to one of the pre-recorded vectors SWU. From then on, during step 166, the unit 18 calculates a similarity score MBONU between the vector PAj and each of the pre-recorded vectors SW0. Here, the similarity score MBONU between the vector PAj and the learned path SW0 is calculated by carrying out the following operations:
[0135] 1) A Temp counter is initialized to zero, then
[0136] 2) For i = 1 to i = NPA, if the contents of cells PAj(i) and SWu(i) are equal, then the Temp counter is incremented by one, otherwise the Temp counter remains unchanged, then
[0137] 3) MBONo is taken equal to Temp / NPA.
[0138] When the MBONU score is constructed by implementing the previous operations, the MBONU score is systematically between zero and one. Moreover, the MBONo score is all the closer to zero as the image Ij is similar to the image Irefj. Conversely, the more the image Ij is different from the image Irefj, the closer the MBONU score is to one.
[0139] Then, the estimated value of the angular offset Oj is taken equal to the value of orientation 0 for which the previously calculated MBONU score is the smallest.
[0140] Once the angular offset Oj has been estimated, during a step 168, the unit 18 calculates a similarity score MBONaj+p and a similarity score MBON,,,...
[0141] The score MBONaj+p is the similarity score between the image Ij and a left-oriented image Igj. The image Igj is an image constructed by taking into account only images taken during phase 50 which have an orientation which points to the left of the estimated orientation Oj. For this, the image Igj is constructed only from one or more images, taken during phase 50, with the same orientation 0 between Oj+10o and Oj+170o or only from several images, taken during phase 50, with respective orientations 0 all between aj+1° and Oj+179o. In this first embodiment, the vector PA of the image Igj is taken equal to the path SW0 for which the angle 0 is between against aj+80° and aj+100o. Thus, in this embodiment, the vector PA of the image Igj is equal to the vector SWaj+p, where the angle [3 is equal to 90°.Then, the score MBONaj+p is calculated as described with reference to step 166 between the vector PAj and the vector SW„j+p. .
[0142] The MBON score,,,.. is the similarity score between the image Ij and a left-oriented image Idj. The image Idj is an image constructed by taking into account only images taken during phase 50 which have an orientation which points to the right of the estimated orientation a. For this, the image Idj is constructed only from one or more images, taken during phase 50, with the same orientation 0 between Oj-10° and Oj-170° or only from several images, taken during phase 50, with respective orientations 0 all between aj-1° and aj-179o. Preferably, the image Idj is constructed like the image Igj except that the angle [3 is replaced by the angle -y. Thus, in this first embodiment, the vector PA of the image Idj is taken equal to the vector SWaj.Y, where the angle y is equal to 90°. Then, the score MBONaj Y is calculated as described with reference to step 166 between the vector PAj and the vector SWaj.Y.
[0143] Then, during a step 170, the unit 18 generates a guidance instruction Gj which indicates the direction in which the vehicle 2 must move to approach the path SW0 or to follow this path. This instruction Gj is generated using the angular offset Oj estimated during step 166 and the sign of a different Diffj. The difference Diffj is equal to the difference between the score MBON,,,.. and the score MBONaj+p calculated during step 168. More precisely, the difference Diffj is defined by the following relation: Diffj = MBON(IJ- MBONaj+p. This difference is negative when vehicle 2 is to the left of the learned path SW0. Conversely, this difference is positive when vehicle 2 is to the right of the learned path SW0. Finally, the difference Diffj is zero or practically zero when vehicle 2 is on the learned path. Thus, the difference Diffj makes it possible to know on which side of the learned path vehicle 2 is currently located. Here, this information is used to generate a guidance instruction Gj which makes it possible to quickly join the learned path SWq when vehicle 2 is next to the path SW0.
[0144] For example, in step 170, the guidance instruction Gj is generated using the following relation: G, = a, + sign(Diffj)*MBONaj*Kp, where
[0145] - a, is the angular offset estimated during step 166,
[0146] - Sign(Diffj) is the function that returns the sign of the difference Diffj,
[0147] - MBONaj is the similarity score calculated during step 166 for the shift angular Oj,
[0148] - Kp is a predetermined constant gain, for example equal to 180°, and
[0149] - “*” is the symbol that denotes scalar multiplication.
[0150] Once the guidance instruction Gj has been generated, during a step 172, the unit 18 controls the actuator 14 according to the instruction Gj. For example, here, the unit 18 controls the actuator 14 so that the steering angle of the wheels 10 is equal to the instruction Gj.
[0151] [Fig.4] shows the value of the instruction Gj generated during step 170 when the vehicle 2 moves on trajectories parallel to the path SW0 and located to the right and left of the path SW0. [Fig.4] also shows the value of the instruction Gj generated during step 170 when the vehicle 2 moves on the learned path SW0. In this figure each value of the instruction Gj is represented, in the XY plane, in the form of a vector. As can easily be observed, when the vehicle 2 is on the path SW0, the instruction Gj points substantially in a direction parallel to the direction of the path SW0 so that, once the vehicle 2 has joined the path SW0, it then moves on this path.Furthermore, by using the difference Diffj to generate the instruction Gj, when vehicle 2 moves on a trajectory next to path SW0 and less than one meter from path SW0, in the vast majority of cases, the instruction Gj correctly points to path SW0. Thus, when vehicle 2 is located less than one meter next to path SW0, the described guidance method allows vehicle 2 to quickly reach path SW0. On the other hand, as shown in [Fig.4], when the trajectory of vehicle 2 is . more than two meters from the SW0 path, then the frequency of generated Gj instructions that do not correctly point to the SW0 path increases. This means that the further vehicle 2 is from the learned path, the more the probability that it recovers the learned path decreases.
[0152] Chapter II: Variants:
[0153] Variants of the guidance device:
[0154] The vehicle 2 may be any device capable of moving in the air, on land or on the sea or under the sea. For example, it may be a car, a train, a submarine, an airplane or a boat. Depending on the environment in which it moves, the vehicle is not necessarily equipped with wheels.
[0155] Furthermore, what is described here also applies to the case of vehicles that can move in three non-coplanar directions and therefore, in particular, to the case of a flying vehicle such as a drone. A drone can move not only horizontally but also vertically. Thus, to implement the described method, a horizontal path and a vertical path are learned. The horizontal path is comprised in a horizontal plane and the vertical path is comprised in a vertical plane. To track and learn these paths, the drone is, for example, equipped with a first camera whose shooting axis is vertical and facing downwards and a second camera whose shooting axis is horizontal and facing the front of the drone. The horizontal path is learned by executing the learning phase 50 using the first camera. The vertical path is learned by executing, at the same time, the learning phase 50 using the second camera.Once the vertical path and horizontal path have been learned and stored in the drone's memory, the learned path following phase 150 is implemented, using the first camera, to follow the learned horizontal path. By doing this, the drone obtains a horizontal guidance instruction Ghj. In parallel, the learned path following phase 150 is implemented, using the second camera, to follow the learned vertical path. By doing this, the drone obtains a vertical guidance instruction Gvj. The Ghj instruction indicates the horizontal direction in which the drone must move. The Gvj instruction indicates the vertical direction in which the drone must move.In step 172, the processing unit of the drone controls the motors of the drone so that it moves in a direction whose orthogonal projection on a horizontal plane is equal to the direction pointed by the instruction Ghj and whose orthogonal projection on a vertical plane is equal to the direction pointed by the instruction Gvj. In doing this, the drone follows the learned path whose orthogonal projection on a horizontal plane is the learned horizontal path and whose orthogonal projection on a vertical plane is the learned vertical path.
[0156] In another variant, the guidance instruction is used to control a die placement of the external environment and not of the vehicle on which the camera 16 is fixed. Indeed, the guidance method described works as soon as the relative movement of the camera 16 with respect to the external environment can be controlled. It does not matter whether it is the camera 16 or the external environment that moves. This follows from the fact that the same image can be obtained either by moving the camera 16 in the external environment or by keeping the camera 16 stationary and moving the external environment. For example, as a variant, the camera 16 is stationary and the external environment includes a vehicle or a swarm of vehicles that must be guided along a learned path. In this case, preferably, each image taken by the camera 16 is filtered to highlight the vehicle or the swarm of vehicles and to blur the background in which this or these vehicles are moving.In the learning phase, the vehicle or swarm of vehicles is moved along the learned path while the camera is fixed. Then, in the guidance phase, the guidance instruction generated from the images taken by the fixed camera is used to control the actuator of each of the vehicles moving in the external environment to move them closer to the learned path.
[0157] The various components of the guidance device are not necessarily integrated into a single housing but may, on the contrary, be distributed in different housings connected to each other by typically wireless links. For example, as a variant, only the camera and a wireless transceiver are fixed to the vehicle to be guided. The processing unit is not housed inside the vehicle but is remote in a fixed server. In this case, the processing unit also comprises a transceiver which allows it to establish a wireless link with the vehicle's transceiver via which the processing unit receives the images taken by the on-board camera and then, in response, sends the generated guidance instructions to the vehicle.
[0158] The shooting axis must be oriented so as to obtain images that contain sufficient information to locate a particular position in the environment in which the camera 16 is moving. Thus, depending on the environment in which the camera is moving, the shooting axis may be oriented differently than parallel to the normal to the ground on which the vehicle 2 is moving. For example, as previously illustrated in the case of a drone, the shooting axis may be horizontal and parallel to the direction of movement of the camera.
[0159] The viewing angle of the camera may be less than 360°. For example, as a variant, the viewing angle of the camera is less than 300° or 250°. On the other hand, preferably, the viewing angle of the camera remains equal to or greater than 45° or 90° or 180° or 220°. In the case where the viewing angle of the camera is narrow, it may be necessary to impose that the initial orientation of this camera is systematically included in the interval [-A / 2 ; A / 2] near the starting point of path SW0, where A is the camera's viewing angle. Such a choice of the initial orientation guarantees that the initial image taken by the camera during the tracking phase will have a low similarity score with at least one of the images of one of the learned paths and therefore that the guidance device will generate a guidance instruction that points to or on the learned path.
[0160] The colors of the pixels of the images taken by the camera 16 can be coded on more or less than eight bits.
[0161] Preferably, the camera 16 is a monochrome camera so that the images taken by this camera are directly monochromatic. For example, the images taken by the monochrome camera are in grayscale. In this case, the operation 66 is omitted.
[0162] In an advantageous embodiment, the resolution of the camera is low, that is to say that the viewing angle of a pixel of the image taken by this camera is greater than or equal to 3° / pixel or 5° / pixel. However, the resolution of the camera still remains less than 20° / pixel or 10° / pixel. In this case, the operation 68 of degrading the spatial resolution of the images can be omitted.
[0163] Everything that has been described in the particular case where the image-taking device 16 is a camera applies to any image-taking device capable of generating an image whose pixels rotate around the central pixel when the device 16 rotates on itself around the image-taking axis 20. Thus, as a variant, the image-taking device 16 may be a sonar, a radar, a Lidar (“Laser Imaging Detection and Ranging”) or a 3D camera.
[0164] Variants of the learning phase:
[0165] Operation 66 may be performed differently. For example, instead of retaining only the coding of the green color, it is the coding of another color that is retained, such as for example the coding of red or blue. In another variant, the codings of red, green and blue are combined to obtain a single color value associated with each pixel of the image.
[0166] In operation 66, the thresholding of the values used to code the colors can be omitted. In this case, for example, values greater than 155 for coding green are not replaced by the value 255.
[0167] The operation 68 of degrading the resolution of the images taken to limit their size can be carried out differently or be omitted if the computing power of the unit 18 is sufficient.
[0168] Operation 70 can also be omitted or performed using another filter that allows contours to be extracted in the captured image.
[0169] Operations 66, 68 and 70 may be performed in a different order.
[0170] In a simplified variant, the vector PN includes all the pixels of the image obtained after operations 66, 68 and 70.
[0171] The construction of the learned path(s) is not necessarily performed as the images are taken on the path to be followed. For example, alternatively, the images taken on the path to be followed are all recorded and the construction of the learned path is performed only after the last of these images has been taken.
[0172] Each image with a non-zero orientation 0 can be obtained differently than by digital processing. For this, the camera is first physically rotated by angle 0 around its shooting axis and then the image is taken with this camera orientation. The image taken with this camera orientation then corresponds to the image with a non-zero orientation 0. Thus, in this variant, it is not necessary to digitally rotate the image taken with a zero orientation 0 by angle 0.
[0173] The angles 0 used are not necessarily uniformly distributed in the interval [0°; 360°[. For example, the angles 0 are denser around the value 0° and less and less dense the further one moves away from this value 0°.
[0174] In a simplified variant, the number Ne is equal to three or between three and eight. In preferred variants, the number Ne is greater than eight or twelve or twenty.
[0175] Other methods of constructing a learned path are possible. For example, the method described in the article Athanasoulias2020 can be used. When the learned path is constructed in accordance with the teaching of the article Atha-nasoulias2020, the learned path is encoded in the form of an artificial neural network configured to deliver a similarity score between the image Ij and the image Irefj taken during the learning phase. For this, the neural network is trained with the images taken with a zero orientation 0 when moving the camera 16 on the path to be followed as well as with images with orientations of +45° and -45°.
[0176] If the path to be followed is short or if the memory 24 is large, alternatively, the learned path with an orientation 0 is simply formed by each of the images with an orientation 0 taken during the learning phase. In this case, the succession of images with the orientation 0 taken during the learning phase is then not reduced to a simple vector like the SWU vector from which it is not possible to reconstruct each of the images of this succession of images.
[0177] Variants of the monitoring phase:
[0178] The hardware used to track the path is not necessarily the same as that used during the training phase. For example, the camera used during the tracking phase 150 is not necessarily the same as that used during the training phase 50. However, preferably, they have the same characteristics. techniques and, in particular, the same or close viewing angles. In addition, preferably, their shooting axes are arranged so as to be parallel when these two cameras move along the path to be followed.
[0179] Other PN-to-KC matrices are possible. For example, alternatively, the non-zero coefficients of the PN-to-KC matrix are not necessarily equal to one.
[0180] Other methods are possible to estimate the angular offset Oj. In particular, other methods are possible to calculate each MBONU score representative of the similarity between the image Ij and the image Irefj rotated, around the axis 20, by the angle 0. In fact, the method of calculating this MBONU score depends on the way in which the learned path is coded.
[0181] When the learned path is encoded in the form of a vector SW0, the step used to increment the Temp counter can take other values than +1. This predetermined step can also be negative. The similarity score can also be taken equal to the value returned by any predetermined strictly monotonic function when it receives as input the value of the Temp counter. For example, the strictly monotonic function can be the identity or a strictly increasing or decreasing linear function.
[0182] If the contents of the vectors PAjet SW0 are not Boolean values, then other similarity criteria can be used. For example, the contents of the cells PA(i) and SWu(i) are considered to be similar if the difference between the values contained in these two cells is less than a predetermined threshold.
[0183] When the learned path is coded in the form of an artificial neural network as in the article Athanasoulias2020, the MBONU similarity score is calculated by submitting, as input to the artificial neural network, the pixels of the image obtained after having rotated, around the axis 20, by an angle 0 the pixels of the image Ij. In response, the artificial neural network delivers the MBONU similarity score.
[0184] When the learned path is in the form of a succession of images, the MBONo score is taken equal to that calculated between the image Ij and the image obtained after having rotated, around the axis 20, by an angle 0 the pixels of the image Irefj. In this variant, the similarity score between the image Ij and the image Irefj can be calculated by implementing one of the numerous known methods for calculating the similarity between two images. In this variant, the image obtained after having rotated, around the axis 20, by an angle 0 the pixels of the image Irefj, does not need to be constructed in advance during the learning phase but can also be constructed during the tracking phase. In the latter case, it is then not necessary for paths with non-zero orientations to be pre-recorded in the memory 24 to estimate the angular offset Oj.
[0185] There are also many other methods for calculating MBON scores aj+p and MBONaj 7. In particular, the left-oriented image Igj and the right-oriented image Idj can be obtained differently. For example, the PA vector of the image Igj can be constructed from a combination of several images, taken during the training phase, with respective orientations 0 all between Oj+1° and Oj+179°. For example, the PA vector of the image Igj is constructed from a combination of several different learned paths SW0, where the angle 0 is always between ttj+10 and ttj+1790. For example, the PA vector of image Igj is taken equal to the arithmetic mean of paths SW„l+45, SWaj+9o and SWnj+i35. In other words, the value contained in each cell PA(i) of image Igj is equal to [SW^^ji) + SW aj+9o(i) + SWaj+i35(i)] / 3. The PA vector of image Igj can also be taken equal to a weighted mean of several of the learned paths SW0, with angle 0 between ttj+10 and ttj+179°.For example, each cell PA(i) of image Igj is taken equal to [al*SWaj+45(i) + a2*SWaj+9o(i) + a3*SWaj+i35(i)] / (al+a2+a3), where al, a2 and a3 are predetermined weighting coefficients. For example, the weighting coefficient assigned to path SWaj+9o is larger than the other weighting coefficients. In another variant, the PA vector of image Igj is constructed from a non-linear combination of several of the paths SWaj+45, SWaj+9o and SWOj+i35. .
[0186] If the paths SW0 are each recorded in the form of a succession of images with the corresponding orientation 0, the vector PA of the image Igj can then be taken equal to the vector PA of the image of the path SWaj+p which was taken at the same learning point as the image Irefj.
[0187] If the path SW0 is recorded in the form of a succession of images with the zero orientation 0, the vector PA of the image Igj can also be taken equal to the vector PA of the image obtained after having rotated, around the axis 20, the image Irefj by an angle equal to Oj+[3. When this variant is implemented to construct the vector PA of the image Igj, the pre-recorded SWU paths with a non-zero orientation are then not used to calculate the score MBONaj+p. Combined with an embodiment where the pre-recorded SWU paths with a non-zero orientation are also not used to estimate the angular offset a,, this variant makes it possible not to record in the memory 24 the SWU paths with a non-zero orientation.
[0188] All the variants of obtaining the image Igj also apply to obtaining the image Idj.
[0189] The MBONaj+p score can also be calculated by calculating several intermediate scores MBONaj+pk between the PA vector of the image Ij and each of the learned paths SWaj+pk, with the angle [3k between 1° and 179°. Then, the value of the MBONaj+p score is taken equal to a predetermined combination, for example the arithmetic mean, of the calculated intermediate scores MBONaj+pk.
[0190] It is emphasized that the similarity score between an image Iref, and an image Ij,aj+p obtained by rotating, around the axis 20, by the angle Oj+[3 the image Ij is also representative of the similarity between the image Ij and the image Igj oriented to the left. Thus, as a variant, the MBONaj+p score is calculated between the SW0 vector and the PA vector of the image IjjC(j+p. If the learned path is encoded in the form of an artificial neural network as in the Athanasoulias2020 article, the MBONaj+p similarity score is calculated by submitting, as input to the artificial neural network, the pixels of the image I j>aj+p. In response, the artificial neural network delivers the MBON aj+p similarity score. When the learned path is in the form of a succession of images, the MBONaj+p score is taken equal to that calculated between the image Ij>aj+p and the image Irefj. It is emphasized that in these variants, the pre-recorded SWU paths with a non-zero orientation 0 are not used to calculate the MBONaj+p score.
[0191] All the variants of calculating the MBONaj+p score described above also apply to the calculation of the MBON score,,,...
[0192] There are also many other possible methods for calculating the similarity scores MBONU, MBON,,, .. and MBONaj p. More precisely, any method for calculating a similarity score that delivers a result that varies in the same way as the similarity score calculated with one of the previous methods described in detail is suitable. In other words, any method for calculating a similarity score that delivers a result that correlates with that which would be obtained by implementing one of the previous methods described in detail is suitable.
[0193] Alternatively, the angles [3 and y are different. For example, the angle [3 is equal to 45° and the angle y is equal to 135°.
[0194] In another variant, the angles [3 and y are not between 70° and 100°.
[0195] Other relationships are possible to generate the instruction Gj as a function of the offset a, and the difference Diffj. For example, another value of the gain Kp is possible. In another embodiment, the score MB0Naj is not used to generate the instruction Gj. For example, the instruction Gj is calculated using the following relationship Gj= a, + sign(Diffj)*Kp.
[0196] Other variants:
[0197] The vehicle may be omitted. In this case, the guidance device is for example carried by hand by a human being. In the latter case, the guidance device comprises a human-machine interface that allows the guidance instructions generated by the processing unit to be communicated to a human being. The human-machine interface is for example a screen that displays an arrow showing the direction in which the human being must move to follow the learned path. In this case, for example, the guidance device is implemented in a smartphone. When the human being carrying this guidance device is a visually impaired person, the human-machine interface is an audio or haptic interface. Thus, in this variant, the unit processing controls the human-machine interface instead of controlling the actuator 14.
[0198] Everything that has been described here in the particular case where the learned destination is a learned path that comprises several learning points distributed one behind the other along this path, also applies to the case where the destination is reduced to a single learning point. In this case, the learned destination is a learned position. The guidance method described here then makes it possible to guide the vehicle towards this learning point as soon as it moves away from it a little. The combination of this particular case where the learned destination comprises only a single learning point with the embodiment where the movement of the external environment and not of the camera is controlled, makes it possible, for example, to keep the relative positions of several vehicles moving in a swarm constant.For this, for example, the camera is fixed on one of these vehicles, called the pilot vehicle, and the guidance instruction is used to control the actuators of the other vehicles in the swarm so that their relative positions with respect to the pilot vehicle remain unchanged even if the pilot vehicle moves.
[0199] Many other applications of the guidance method described above are possible. For example, in a particular embodiment, the generated guidance instructions are additionally recorded in a black box in order to be used to identify the origin of a disaster.
[0200] Several of the variants described above can be combined in the same embodiment.
[0201] Chapter III: Advantages of the embodiments described:
[0202] Using the difference Diffj allows generating a guidance instruction capable of quickly bringing the camera 16 closer to the learned path even when the angular offset a, estimated at that instant, is close to or equal to zero. Thanks to this, the guidance method allows for faster recovery of the learned path. In particular, this avoids situations where, during the tracking phase, the trajectory followed is parallel to the learned path without ever joining it.
[0203] Using the learned paths with a non-zero orientation 0 pre-stored in the memory to calculate the similarity scores MBONU, MBON,,,.. and MBONaj.p avoids having to rotate the image Ij during the exploitation phase to calculate these similarity scores. This therefore speeds up the execution of the guidance method during the tracking phase.
[0204] The fact that the Ne angles 0 are uniformly distributed over the interval [0°;360°[ increases the accuracy of the guidance method.
[0205] The fact that the number Ne is greater than eight or twelve increases the accuracy of the guidance method.
[0206] Encoding each learned path in the form of a vector whose NPA number of cells does not vary according to the number of images taken during the learning phase makes it possible to limit the amount of memory used to store each learned path, in particular when the learned path is long.
[0207] Calculating the similarity scores by incrementing a counter each time the contents of cells PA(i) and SWu(i) are similar or, on the contrary, different, speeds up the execution of the learned path tracking method.
[0208] Choosing the angles [3 and y equal makes it possible to increase the precision of the guidance process.
[0209] Choosing the angles [3 and y between 80° and 100° makes it possible to further improve the precision of the guidance process.
[0210] The construction of a learned path with an orientation 0 in the form of a vector SW0 makes it possible to obtain a learned path whose dimension does not depend on the number of learning points on the path. In addition, the method of constructing each vector SW0 is particularly simple and quick to execute. Finally, it makes it possible to exploit very low resolution images without degrading the performance of the guidance method.
Claims
Claims
1. Method of guiding towards a destination comprising one or more learning points, this method comprising: - a learning phase (50) during which: - a first image capturing device is placed (60) on each learning point of the destination to be learned, and - at each learning point, taking (62) a first image of the external environment with a zero orientation 0, a first image with a 0 orientation being a first image taken while the orientation of the first image-taking device around its shooting axis is equal to the angle 0, then - constructing (64) a learned destination with a zero orientation 0 using for this only the first image(s) with a zero orientation 0, - a phase (150) of monitoring the learned destination comprising: - the provision (152) of a guidance device comprising: - a second image-taking device, - an electronic unit for processing the images taken by the second image-taking device, this electronic processing unit comprising a memory in which the learned destination is pre-recorded with a zero orientation 0, then - taking (162) second images by the second image-taking device during a relative movement of this second image-taking device in the external environment, and - each time a second image is taken, the processing unit: - estimates (166), from the second image and the destination learned with a zero orientation 0, an angular offset Oj between the orientation of the second image-taking device at the time when this second image is taken and the orientation of the first image-taking device at the time when a first reference image with a zero orientation 0 was taken, the first reference image with a zero orientation 0 being, among the first images used to construct the destination learned with a zero orientation 0, the one which presents the most similarity with this second image, then - generates (170), from the estimated angular offset a, a guidance instruction which allows returning to the learned destination, then - command (172), depending on the generated guidance instruction, a actuator for causing a relative movement of the second image-taking device with respect to the external environment which brings it closer to the learned destination and / or controls a human-machine interface to communicate the guidance instruction to a human being, characterized in that, each time a second image is taken, the processing unit: - calculates (168), from the second image, a first similarity score representative of the similarity between the second image and a left-oriented image constructed solely from one or more first images with the same orientation 0 between a j+10° and aj+170° or solely from several first images with respective orientations 0 all between aj+1° and aj+179°, - calculates (168), from the second image, a second similarity score representative of the similarity between the second image and a right-oriented image constructed solely from one or more first images with the same orientation 0 between Oj-10° and Oj-170° or solely from several first images with respective orientations 0 all between Oj-1° and Oj-179°, then - uses, in addition to the estimated angular offset a, the sign of the difference between the first and second similarity scores to generate the guidance instruction, this difference identifying the side where the second image-taking device is located relative to the learned destination.
2. The method of claim 1, wherein: - the learning phase also comprises the construction (100), in the same way as the destination learned with a zero orientation 0, of Ne-1 destinations learned with respective non-zero orientations 0, Ne being equal to the total number of destinations learned and being greater than or equal to three and the Ne angles 0 are distributed in the interval [0°; 360°[, - providing (152) a guidance device comprises providing a guidance device in which the Ne learned destinations with respective 0 orientations are pre-stored in the memory, - when calculating (168) the first similarity score, the left-oriented image is obtained only from one or more of the pre-stored and learned destinations with a 0 orientation included
3.
4.
5.
6.
7. between Oj+lo and Oj+179°, and - when calculating (168) the second similarity score, the right-oriented image is obtained only from one or more of the pre-recorded and learned destinations with an orientation 0 between Oj-1° and Oj-179°. The method of claim 2, wherein the Ne angles 0 are uniformly distributed in the interval [0°; 360°[. A method according to any one of claims 2 to 3, wherein the number Ne is greater than eight or twelve. A method according to any preceding claim, wherein each learned destination is encoded as a vector of NPA cells, the number of NPA cells being constant and independent of the number of learning points. A method according to claims 2 and 5 taken together, wherein each time a second image is taken: - the processing unit obtains (162) a vector PAj of dimension NPA only from the pixels of this second image, and - when calculating (168) the first similarity score, obtaining the left-oriented image comprises obtaining a vector SWaj+p, of dimension NPA, solely from one or more of the pre-recorded and learned destinations with an orientation 0 between aj+1° and ttj+1790, then calculating the first similarity score comprises comparing the content of each cell PAj(i) of the vector PAj with the content of the cell SWaj+p(i) of the vector SWaj+p obtained and, each time the contents of the cells PAj(i) and SWaj+p(i) satisfy a predetermined similarity criterion, incrementing a counter by a predetermined step so that once all the cells of the vectors PAj and SWaj+p have been compared, the value of the counter is representative of the similarity between the image Ij and the left-oriented image Igj, where the index i is an identifier of a cell in each of the vectors PAj and SWaj+p, and - the calculation (168) of the second similarity score is identical to the calculation of the first similarity score except that the vector SWaj+p is replaced by a vector SWaj.Y, of dimension NPA, which is obtained solely from one or more of the pre-recorded and learned destinations with an orientation 0 between aj-1° and aj-179°. A method according to any preceding claim, wherein each orientation 0 used to construct the oriented image at right is equal to an orientation [3k+l80°, where [3k is an orientation chosen from the group composed of the 0 orientations used to construct the left-oriented image.
8. A method according to any preceding claim, wherein each 0 orientation used to construct the left-oriented image is between 80° and 100° and each 0 orientation used to construct the right-oriented image is between -80° and -100°.
9. Method according to any one of the preceding claims, in which the construction of a learned destination with an orientation 0 comprises: - before starting the processing of each of the images with an orientation 0, the initialization (90) of each cell SWu(i) of a vector SWo of dimension NPA to one, then - once the vector SW0 is initialized, repeating the following operations for each first image with an orientation 0: - obtaining (65), only from the pixels of this first image, a vector PN of dimension NPN, where the dimension NPN is three or five times smaller than the dimension NPA, then - the transformation (82) of the vector PN into an EPSP vector of dimension NPA by multiplying the vector PN by a sparse matrix PN-to-KC of NPN rows and NPA columns to obtain the EPSP vector,then - replacing (84) the largest Nsp values contained in the EPSP vector with ones and replacing the other values contained in this EPSP vector with zeros to obtain a PA vector, the Nsp number being a pre-determined number less than 0.2*NPA, then - for i ranging from 1 to NPA, each time the PA(i) cell of the PA vector contains a one, replacing (92) the content of the SWu(i) cell of the SWU vector with a zero and if the PA(i) cell contains a zero, leaving the content of the SWu(i) cell unchanged, where, during the first iteration, the SWU vector is the vector as initialized then, during the following iterations, the SWU vector is the SWU vector obtained at the end of the previous iteration, the SW0 vector obtained at the end of the last iteration being the destination constructed with the orientation 0.,
10. Method according to any one of the preceding claims, in which: - the learned destination comprises several learning points located one behind the other along a path, - during the learning phase (50): - the first image-taking device is moved (60) on the path, and - during this movement of the first image-taking device on this path, at each learning point located on this path, the taking (62) of a first image with a zero orientation 0, then - the construction (64) of the learned destination with a zero orientation 0 using for this only first images with a zero orientation 0 taken during the movement of the first image-taking device, - during the phase (150) of tracking the learned destination, the processing unit: - generates (170), from the estimated angular offset Oj, a guidance instruction which indicates the direction in which the second image-taking device must be moved to approach the learned destination, then - controls (172), depending on the generated guidance instruction, an actuator to bring the second image-taking device closer to the learned destination and / or controls a human-machine interface to communicate the guidance instruction to a human being.
11. A method of tracking a learned destination for implementing a guidance method according to any one of the preceding claims, this tracking method comprising: - the provision (152) of a guidance device comprising: - a second image capture device, - an electronic unit for processing the images taken by the second image-taking device, this electronic processing unit comprising a memory in which the learned destination is pre-recorded with a zero orientation 0, then - taking (162) second images by the second image-taking device during a relative movement of this image-taking device in the external environment, and - each time a second image is taken, the processing unit: - estimates (166), from the second image and the destination learned with a zero orientation 0, an angular offset Oj between the orientation of the second image-taking device at the time when this second image is taken and the orientation of the first image-taking device at the time when a first reference image with a zero orientation 0 was taken, the first reference image with a zero orientation 0 being, among the first images used to construct the learned destination with a zero orientation 0, the one which presents the most similarity with this second image, then - generates (170), from the estimated angular offset a, a guidance instruction which makes it possible to return to the learned destination, then - controls (172), depending on the generated guidance instruction, an actuator to cause a relative movement of the second image-taking device with respect to the external environment which brings it closer to the learned destination and / or controls a human-machine interface to communicate the guidance instruction to a human being, characterized in that, each time a second image is taken, the processing unit: - calculates (168), from the second image, a first similarity score representative of the similarity between the second image and a left-oriented image constructed solely from one or more first images with the same orientation 0 between a j+10° and aj+170° or solely from several first images with respective orientations 0 all between aj+1° and aj+179°, - calculates (168), from the second image, a second similarity score representative of the similarity between the second image and a right-oriented image constructed solely from one or more first images with the same orientation 0 between Oj-10° and a, -170° or solely from several first images with respective orientations 0 all between Oj-1° and Oj-179°, then - uses, in addition to the estimated angular offset a, the sign of the difference between the first and second similarity scores to generate the guidance instruction, this difference identifying the side where the second image-taking device is located relative to the learned destination.
12. Guidance device for implementing a method of tracking a learned destination according to claim 11, this device comprising: - a second image-taking device (16), - an electronic unit (18) for processing the images taken by the second image-taking device, this electronic processing unit comprising a memory (24) in which the learned destination is pre-recorded with a zero orientation 0, this processing unit also being configured to: - each time a second image is taken: - estimating, from the second image and the destination learned with a zero 0 orientation, an angular offset a, between the orientation of the second image-taking device at the time when this second image is taken and the orientation of the first image-taking device at the time when a first reference image with a zero 0 orientation was taken, the first reference image with a zero 0 orientation being, among the first images used to construct the destination learned with a zero 0 orientation, the one which presents the most similarity with this second image, then - generate, from the estimated angular offset Oj, a guidance instruction which makes it possible to return to the learned destination, then - control, according to the generated guidance instruction, an actuator to cause a relative movement of the second image-taking device with respect to the external environment which brings it closer to the learned destination and / or control a human-machine interface to communicate the guidance instruction to a human being, characterized in that the processing unit (18) is also configured to, each time a second image is taken,: - calculating, from the second image, a first similarity score representative of the similarity between the second image and a left-oriented image constructed solely from one or more first images with the same orientation 0 between aj+10o and a j+170° or solely from several first images with respective orientations 0 all between ttj+10 and ttj+1790, - calculating, from the second image, a second similarity score representative of the similarity between the second image and a right-oriented image constructed solely from one or more first images with the same orientation 0 between Oj-10° and Oj-170° or solely from several first images with respective orientations 0 all between Oj-1° and Oj-179°, then - use, in addition to the estimated angular shift Oj, the sign of the difference between the first and second similarity scores to generate the guidance instruction, this difference identifying the side where the second image capture device is located relative to the learned destination.
13. Device according to claim 12, in which the viewing angle of the second image-taking device, around its viewing axis, is greater than or equal to 180°.