WO2021100650A1 - 位置推定装置、車両、位置推定方法、及び位置推定プログラム - Google Patents

位置推定装置、車両、位置推定方法、及び位置推定プログラム Download PDF

Info

Publication number
WO2021100650A1
WO2021100650A1 PCT/JP2020/042593 JP2020042593W WO2021100650A1 WO 2021100650 A1 WO2021100650 A1 WO 2021100650A1 JP 2020042593 W JP2020042593 W JP 2020042593W WO 2021100650 A1 WO2021100650 A1 WO 2021100650A1
Authority
WO
WIPO (PCT)
Prior art keywords
camera
cameras
candidate
accuracy
feature point
Prior art date
Application number
PCT/JP2020/042593
Other languages
English (en)
French (fr)
Inventor
崇文 徳弘
ヂォン ウー
ポンサク ラサン
Original Assignee
パナソニックIpマネジメント株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by パナソニックIpマネジメント株式会社 filed Critical パナソニックIpマネジメント株式会社
Priority to CN202080078726.0A priority Critical patent/CN114729811A/zh
Priority to DE112020005735.6T priority patent/DE112020005735T5/de
Publication of WO2021100650A1 publication Critical patent/WO2021100650A1/ja
Priority to US17/748,803 priority patent/US20220277480A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C15/00Surveying instruments or accessories not provided for in groups G01C1/00 - G01C13/00
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • G01C21/30Map- or contour-matching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/90Arrangement of cameras or camera modules, e.g. multiple cameras in TV studios or sports stadiums
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle

Definitions

  • the present disclosure relates to a position estimation device, a vehicle, a position estimation method, and a position estimation program.
  • a position estimation device also referred to as a self-position estimation device
  • a moving body such as a vehicle or a robot and estimates the position and posture of the moving body by using a camera possessed by the moving body
  • a position estimation device also referred to as a self-position estimation device
  • a feature point also referred to as a landmark
  • an object existing in a pre-created actual scene meaning a landscape that can be photographed by a camera around a moving object; the same applies hereinafter.
  • the feature points reflected in the camera image and the feature points in the map data are associated with each other, whereby the position and orientation of the camera (that is, the position of the moving body) are associated with each other. And posture) is being estimated.
  • An object of the present disclosure is to provide a position estimation device, a vehicle, a position estimation method, and a position estimation program capable of improving the estimation accuracy of the position and posture of a moving body with a small calculation load.
  • One aspect of the disclosure is It is a position estimation device for a moving body having n (where n is an integer of 2 or more) cameras that capture the actual surroundings.
  • the positions of the feature points in the actual scene in the camera image extracted from the camera image of the k (where k is an integer of 1 to n) th camera among the n cameras are stored in advance in the map data.
  • An estimation unit that calculates the candidate position of the k-th camera in the map space based on the position of the feature point in the map space. With reference to the candidate position of the k-th camera, a group of feature points in the actual scene stored in association with the position in the map space is projected onto the map data on the camera image of each of the n cameras.
  • a verification unit that calculates the accuracy of the candidate position of the camera of With
  • the estimation unit calculates the candidate positions for each of the first to nth cameras of the n cameras.
  • the verification unit calculates the accuracy of the candidate position of each of the first to nth cameras of the n cameras.
  • the position of the moving body is estimated based on the candidate position having the highest accuracy among the accuracy of the candidate positions of the first to nth cameras of the n cameras. It is a position estimation device.
  • It is a vehicle equipped with the position estimation device.
  • This is a method for estimating the position of a moving object having n (where n is an integer of 2 or more) cameras that capture the actual surroundings.
  • the positions of the feature points in the actual scene in the camera image extracted from the camera image of the k (where k is an integer of 1 to n) th camera among the n cameras are stored in advance in the map data.
  • the first process of calculating the candidate position of the k-th camera in the map space based on the position of the feature point in the map space, and With reference to the candidate position of the k-th camera, a group of feature points in the actual scene stored in association with the position in the map space is projected onto the map data on the camera image of each of the n cameras.
  • the second process of calculating the accuracy of the candidate position of the camera of With the candidate positions are calculated for each of the first to nth cameras of the n cameras.
  • the accuracy of the candidate position of each of the first to nth cameras of the n cameras is calculated.
  • the position of the moving body is estimated based on the candidate position having the highest accuracy among the accuracy of the candidate positions of the first to nth cameras of the n cameras. This is a position estimation method.
  • the positions of the feature points in the actual scene in the camera image extracted from the camera image of the k (where k is an integer of 1 to n) th camera among the n cameras are stored in advance in the map data.
  • the first process of calculating the candidate position of the k-th camera in the map space based on the position of the feature point in the map space, and With reference to the candidate position of the k-th camera, a group of feature points in the actual scene stored in association with the position in the map space is projected onto the map data on the camera image of each of the n cameras.
  • the second process of calculating the accuracy of the candidate position of the camera of With the candidate positions are calculated for each of the first to nth cameras of the n cameras.
  • the accuracy of the candidate position of each of the first to nth cameras of the n cameras is calculated.
  • the position of the moving body is estimated based on the candidate position having the highest accuracy among the accuracy of the candidate positions of the first to nth cameras of the n cameras. It is a position estimation program.
  • the figure which shows an example of the structure of the vehicle which concerns on one Embodiment The figure which shows an example of the mounting position of four cameras mounted on the vehicle which concerns on one Embodiment.
  • the figure explaining the process of the 1st verification part which concerns on one Embodiment The figure explaining the process of the 1st verification part which concerns on one Embodiment A flowchart showing an example of the operation of the position estimation device according to the embodiment.
  • the figure which shows typically the loop processing of steps Sa and Sb of FIG. A flowchart showing an example of the operation of the position estimation device according to the modified example.
  • Non-Patent Document 1 Conventionally, in this type of position estimation device, as in Non-Patent Document 1, three feature points are extracted from a plurality of feature points reflected in a camera image of a single camera, and the camera image of the three feature points is obtained. A method of calculating a candidate position and a candidate posture of a camera based on the position in the imaging surface of the camera and the three-dimensional position stored in the map data of the three feature points is adopted. In such a method, the optimum solution of the position and orientation of the camera is calculated by repeatedly performing operations while changing the feature points extracted from the camera image (also referred to as RANSAC (Random Sample Consensus)).
  • RANSAC Random Sample Consensus
  • Such a conventional technique is useful in that the position and orientation of a moving body can be estimated with a relatively small calculation load.
  • the distribution of feature points reflected in the camera image is stored in the map data due to the influence of occlusion (representing a state in which the object in front hides the object behind so that it cannot be seen). If the distribution of the feature points is significantly different from the distribution, there is a problem that the estimation accuracy deteriorates.
  • Non-Patent Document 2 a method of improving robustness against occlusion by using a plurality of cameras is being studied.
  • it is usually necessary to solve 3D-2D geometric operations in the camera images of a plurality of cameras at the same time, so that the amount of operations is enormous (for example, it is necessary to solve an eighth-order polynomial).
  • the amount of calculation becomes enormous in this way, the calculation of position estimation cannot keep up with the moving speed of the moving body, especially in an environment where the calculation performance is limited, such as an in-vehicle environment, which is practical.
  • the estimation accuracy deteriorates.
  • the position estimation device it is possible to realize position estimation and posture estimation of a moving body that solves such a problem.
  • position includes both the concepts of “position” and “posture (that is, orientation)” of the camera or the moving body.
  • the position estimation device according to the present embodiment is mounted on the vehicle and estimates the position of the vehicle.
  • position includes both the concepts of "position” and “posture (that is, orientation)" of the camera or the moving body.
  • FIG. 1 is a diagram showing an example of the configuration of the vehicle A according to the present embodiment.
  • FIG. 2 is a diagram showing an example of mounting positions of the four cameras 20a, 20b, 20c, and 20d mounted on the vehicle A according to the present embodiment.
  • the vehicle A includes the position estimation devices 10, and four cameras 20a, 20b, 20c, and 20d (hereinafter, "first camera 20a”, “second camera 20b”, “third camera 20c”, and “fourth camera 20d”. Also referred to as), a vehicle ECU 30, and a vehicle drive device 40.
  • the first to fourth cameras 20a to 20d are, for example, general visible cameras that capture a real scene around the vehicle A, and AD-convert the image signal generated by the image sensor of the first to fourth cameras 20a to 20d to relate to the camera image.
  • Image data (hereinafter referred to as "camera image data") D1, D2, D3, D4 are generated. However, the camera image data D1, D2, D3, and D4 are time-synchronized. Then, the first to fourth cameras 20a to 20d output the camera image data generated by themselves to the position estimation device 10.
  • the first to fourth cameras 20a to 20d are configured so that, for example, they can continuously perform imaging and generate camera image data in a moving image format.
  • the first to fourth cameras 20a to 20d are arranged so as to capture regions different from each other. Specifically, the first camera 20a is arranged in front of the vehicle A and photographs the front region of the vehicle A.
  • the second camera 20b is arranged on the right door mirror of the vehicle A and photographs the right region of the vehicle A.
  • the third camera 20c is arranged on the rear surface of the vehicle A and photographs the rear region of the vehicle A.
  • the fourth camera 20d is arranged on the left door mirror of the vehicle A and photographs the left region of the vehicle A.
  • the position estimation device 10 estimates the position of the vehicle A (for example, the three-dimensional position of the vehicle A in the world coordinate system and the orientation of the vehicle A) based on the camera image data of the first to fourth cameras 20a to 20d. .. Then, the position estimation device 10 transmits information related to the position of the vehicle A to the vehicle ECU 30.
  • FIG. 3 is a diagram showing an example of the hardware configuration of the position estimation device 10 according to the present embodiment.
  • FIG. 4 is a diagram showing an example of map data Dm stored in advance in the position estimation device 10 according to the present embodiment. Note that FIG. 4 is a bird's-eye view showing the positions of the plurality of feature points Q in the actual scene stored in the map data Dm in the map space.
  • the position estimation device 10 has, as main components, a CPU (Central Processing Unit) 101, a ROM (Read Only Memory) 102, a RAM (Random Access Memory) 103, an external storage device (for example, a flash memory) 104, and a communication interface 105. It is a computer equipped with such as.
  • a CPU Central Processing Unit
  • ROM Read Only Memory
  • RAM Random Access Memory
  • a communication interface 105 It is a computer equipped with such as.
  • Each function described later of the position estimation device 10 includes, for example, a control program (for example, position estimation program Dp) and various data (for example, map data Dm, camera) stored in the ROM 102, RAM 103, external storage device 104, etc. by the CPU 101. It is realized by referring to the mounting position data Dt).
  • a control program for example, position estimation program Dp
  • various data for example, map data Dm, camera
  • the external storage device 104 of the position estimation device 10 stores map data Dm and camera-mounted position data Dt in addition to the position estimation program Dp that executes position estimation of the vehicle A, which will be described later.
  • the map data Dm is obtained from the three-dimensional positions in the map space and the camera image taken at the time of creating the map data Dm for each of the plurality of feature points in the actual scene obtained in advance in a wide area (including the area around the vehicle A).
  • the obtained feature amount and the obtained feature amount are stored in association with each other.
  • the feature point stored as map data Dm is, for example, a portion (for example, a corner portion) in which a characteristic image pattern can be obtained from a camera image of an object (for example, a building, a sign, or a signboard) that can be a mark in a real scene. Is.
  • the feature points in the actual scene the feature points of the markers installed in advance may be used as the feature points in the actual scene.
  • the plurality of feature points of the map data Dm are stored so as to be individually identifiable by, for example, an identification number.
  • the three-dimensional positions of the feature points stored in the map data Dm in the map space are the three-dimensional orthogonal coordinate systems (X, Y, It is represented by Z). Note that these (X, Y, Z) may be associated with coordinates in real space such as latitude, longitude, and altitude. By doing so, the map space becomes synonymous with the real space.
  • the three-dimensional positions of the feature points in the map space are, for example, measurements using camera images taken at a plurality of positions in advance (for example, measurements using the principle of triangular survey), LIDAR (Light Detection and Ringing). ), Or the position obtained by the measurement using a stereo camera.
  • the feature amount of the feature point stored in the map data Dm in addition to the brightness and density on the camera image, the SIFT (Scale Invariant Feature Transform) feature amount, the SURF (Speeded Up Robust Features) feature amount, and the like are used.
  • the feature amount data of the feature points stored in the map data Dm is stored separately for each shooting position and shooting direction of the camera when the feature points are shot, even if the feature points have the same three-dimensional position. It may have been done. Further, the feature amount data of the feature points stored in the map data Dm may be stored in association with the image of the object having the feature points.
  • the camera mounting position data Dt stores the mutual positional relationship between the first to fourth cameras 20a to 20d (for example, the relationship related to the distance between the cameras and the relationship related to the orientation of the cameras). That is, the positions of the first to fourth cameras 20a to 20d can be calculated by specifying the position of any one of the cameras.
  • the camera mounting position data Dt includes the positions of the first to fourth cameras 20a to 20d and the predetermined positions of the vehicle A so that the vehicle A can be identified from the positions of the first to fourth cameras 20a to 20d.
  • the positional relationship with (for example, the center of gravity point) is also memorized.
  • the vehicle ECU (Electronic Control Unit) 30 is an electronic control unit that controls the vehicle drive device 40.
  • the vehicle ECU 30 refers to each part of the vehicle drive device 40 (for example, the output of the drive motor, the clutch) so as to optimize the traveling state of the vehicle A while referring to the position of the vehicle A estimated by the position estimation device 10, for example. (Disengagement / disconnection, shift stage of automatic transmission, and steering angle of steering device) are automatically controlled.
  • the vehicle drive device 40 is a drive unit for traveling the vehicle A, and includes, for example, a drive motor, an automatic transmission, a power transmission mechanism, a brake mechanism, a steering device, and the like.
  • the operation of the vehicle drive device 40 according to the present embodiment is controlled by the vehicle ECU 30.
  • the position estimation device 10, the first to fourth cameras 20a to 20d, the vehicle ECU 30, and the vehicle drive device 40 are connected to each other via an in-vehicle network (for example, a communication network compliant with the CAN communication protocol). , Necessary data and control signals can be transmitted and received to and from each other.
  • an in-vehicle network for example, a communication network compliant with the CAN communication protocol.
  • FIG. 5 is a diagram showing an example of the configuration of the position estimation device 10 according to the present embodiment.
  • the position estimation device 10 includes an acquisition unit 11, a feature point extraction unit 12, an estimation unit 13, a verification unit 14, and a determination unit 15.
  • the acquisition unit 11 acquires camera image data D1 to D4 from the first to fourth cameras 20a to 20d mounted on the vehicle A, respectively.
  • the acquisition unit 11 includes a first acquisition unit 11a that acquires camera image data D1 from the first camera 20a, a second acquisition unit 11b that acquires camera image data D2 from the second camera 20b, and a third. It has a third acquisition unit 11c that acquires camera image data D3 from the camera 20c, and a fourth acquisition unit 11d that acquires camera image data D4 from the fourth camera 20d.
  • the camera image data D1 to D4 acquired by the first to fourth acquisition units 11a to 11d are generated at the same time.
  • the feature point extraction unit 12 extracts feature points in the actual scene from the camera images of the camera image data D1 to D4. Specifically, the feature point extraction unit 12 extracts the feature points in the actual scene from the camera image of the first camera 20a, and the feature points in the actual scene from the camera images of the first feature point extraction unit 12a and the second camera 20b.
  • the second feature point extraction unit 12b for extracting the above
  • the third feature point extraction unit 12c for extracting the feature points in the actual scene from the camera image of the third camera 20c
  • the feature points in the actual scene from the camera image of the fourth camera 20d It has a fourth feature point extraction unit 12d for extracting the image.
  • the first to fourth feature point extraction units 12a to 12d may be realized by four processors separately provided for each, or may be realized by time-dividing the processing time by one processor. ..
  • FIG. 6 is a diagram showing an example of the feature points extracted by the first feature point extraction unit 12a according to the present embodiment.
  • FIG. 6 shows an example of a camera image generated by the first camera 20a, and a corner portion or the like of an object reflected in the camera image is extracted as a feature point R.
  • the method by which the first to fourth feature point extraction units 12a to 12d extract the feature points from the camera image may be any known method.
  • the first to fourth feature point extraction units 12a to 12d extract feature points from the camera image by using, for example, the SIFT method, the Harris method, the FAST method, or a learned CNN (Convolutional Neural Network).
  • the feature point data D1a to D4a extracted from the camera images of the first to fourth cameras 20a to 20d are, for example, the two-dimensional coordinates in the camera image of the feature point and the feature amount information of the feature point. Including.
  • the estimation unit 13 calculates candidates for positions where each of the first to fourth cameras 20a to 20d exists. Specifically, the estimation unit 13 calculates the candidate position of the first camera 20a (hereinafter, also referred to as “first candidate position”) based on the feature point data D1a and the map data Dm of the camera image of the first camera 20a. The candidate position of the second camera 20b (hereinafter, also referred to as “second candidate position”) is calculated based on the first estimation unit 13a, the feature point data D2a of the camera image of the second camera 20b, and the map data Dm.
  • first candidate position hereinafter, also referred to as “first candidate position”
  • second candidate position is calculated based on the first estimation unit 13a, the feature point data D2a of the camera image of the second camera 20b, and the map data Dm.
  • Third estimation to calculate the candidate position of the third camera 20c (hereinafter, also referred to as “third candidate position”) based on the feature point data D3a and the map data Dm of the camera image of the third camera 20c and the estimation unit 13b.
  • the fourth estimation unit 13d that calculates the candidate position of the fourth camera 20d (hereinafter, also referred to as the "fourth candidate position") based on the unit 13c, the feature point data D4a of the camera image of the fourth camera 20d, and the map data Dm. And have.
  • the estimation unit 13 of the estimation unit 13 may be time-divided to calculate the candidate position of each camera.
  • FIG. 7 is a diagram illustrating the processing of the first estimation unit 13a according to the present embodiment.
  • the points R1, R2, and R3 in FIG. 7 represent three feature points extracted from the camera image of the first camera 20a, and the points Q1, Q2, and Q3 are the feature points R1, R2, stored in the map data Dm. It represents the three-dimensional position of R3 in the map space.
  • the point P1 represents a candidate position of the first camera 20a.
  • RP1 represents an imaging surface of the first camera 20a.
  • the first estimation unit 13a collates the feature points extracted from the camera image of the first camera 20a with the feature points stored in the map data Dm by using pattern matching, feature quantity search, or the like. Then, the first estimation unit 13a is a few of the feature points extracted from the camera image of the first camera 20a and which can be collated with the feature points stored in the map data Dm (the first estimation unit 13a). (For example, 3 to 6) feature points are randomly selected, and the positions of these several feature points in the camera image (for example, points R1, R2, R3 in FIG. 7) and some of the feature points.
  • the first candidate position of the first camera 20a in the map space is calculated based on the three-dimensional position in the map space (for example, points Q1, Q2, Q3 in FIG.
  • the first estimation unit 13a determines the first candidate position of the first camera 20a by solving the PnP problem using, for example, a known method such as Lambda Twist (see, for example, Non-Patent Document 1). calculate.
  • the first estimation unit 13a collates the feature points extracted from the camera image of the first camera 20a with the feature points stored in the map data Dm, for example, from a GPS (Global Positioning System) signal.
  • the feature points stored in the map data Dm the feature points extracted from the camera image of the first camera 20a based on the estimated current position of the vehicle A or the position of the vehicle A calculated in the previous frame.
  • the feature points to be collated may be narrowed down.
  • the number of feature points used by the first estimation unit 13a when calculating the first candidate position of the first camera 20a is preferably three. As a result, the calculation load when calculating the first candidate position can be reduced.
  • the first estimation unit 13a is a feature used to calculate the first candidate position among all the feature points extracted from the camera image of the first camera 20a. It is preferable to repeatedly change the points and calculate a plurality of first candidate positions.
  • the accuracy is calculated by the first verification unit 14a, which will be described later, for each of the plurality of first candidate positions.
  • the second estimation unit 13b, the third estimation unit 13c, and the fourth estimation unit 13d are the second candidate positions of the second camera 20b and the third of the third camera 20c, respectively, by the same method as the first estimation unit 13a.
  • the candidate position and the fourth candidate position of the fourth camera 20d are calculated.
  • the candidate positions of the first to fourth cameras 20a to 20d depend on, for example, the three-dimensional position (X coordinate, Y coordinate, Z coordinate) in the world coordinate system and the shooting direction (roll, pitch, yaw) of the camera. expressed.
  • the data D1b of the first candidate position of the first camera 20a calculated by the first estimation unit 13a is sent to the first verification unit 14a. Further, the data D2b of the second candidate position of the second camera 20b calculated by the second estimation unit 13b is sent to the second verification unit 14b. Further, the data D3b of the third candidate position of the third camera 20c calculated by the third estimation unit 13c is sent to the third verification unit 14c. Further, the data D4b of the fourth candidate position of the fourth camera 20d calculated by the fourth estimation unit 13d is sent to the fourth verification unit 14d.
  • the verification unit 14 calculates the accuracy of the candidate positions of the first to fourth cameras 20a to 20d calculated by the estimation unit 13. Specifically, the verification unit 14 calculates the accuracy of the first candidate position of the first camera 20a, the first verification unit 14a, and the second verification unit 14 that calculates the accuracy of the second candidate position of the second camera 20b. It has a unit 14b, a third verification unit 14c that calculates the accuracy of the third candidate position of the third camera 20c, and a fourth verification unit 14d that calculates the accuracy of the fourth candidate position of the fourth camera 20d. ..
  • the first to fourth verification units 14a to 14d in addition to the data related to the candidate positions (any of D1b to D4b), the feature points extracted from the camera images of the first to fourth cameras 20a to 20d. Data D1a, D2a, D3a, D4a, map data Dm, and camera mounting position data Dt are input.
  • the first to fourth verification units 13a to 13d may be realized by four processors separately provided for each, or may be realized by time-dividing the processing time by one processor.
  • FIG 8 and 9 are diagrams for explaining the processing of the first verification unit 14a according to the present embodiment.
  • FIG. 9 shows an example of the feature point R extracted from the camera image of the second camera 20b and the projection point R'in which the feature point stored in the map data Dm is projected on the camera image of the second camera 20b. There is.
  • the first verification unit 14a projects a group of feature points stored in the map data Dm on each camera image of the first to fourth cameras 20a to 20d with reference to the first candidate position of the first camera 20a. Then, the feature point group projected on the camera images of the first to fourth cameras 20a to 20d matches the feature point group extracted from the camera images of the first to fourth cameras 20a to 20d. Based on the degree, the appropriateness of the first candidate position of the first camera 20a is calculated.
  • the details of the processing performed by the first verification unit 14a are as follows.
  • the first verification unit 14a for example, assuming that the first camera 20a exists at the first candidate position, the positions of the first camera 20a and the second camera 20b stored in advance in the camera mounting position data Dt. From the relationship, the virtual position of the second camera 20b (point P2 in FIG. 8) is calculated. The virtual position of the second camera 20b is set to the first candidate position of the first camera 20a based on the positional relationship between the first camera 20a and the second camera 20b stored in advance in the camera mounting position data Dt, for example. On the other hand, it is calculated by performing arithmetic processing related to rotational movement and parallel movement.
  • the first verification unit 14a uses the virtual position of the second camera 20b as a reference, and each feature point of the feature point group stored in advance in the map data Dm (points Q4, Q5, Q6 in FIG. 8). Is projected onto the camera image of the second camera 20b (representing the imaging surface; the same applies hereinafter) (PR2 in FIG. 8), and the projection position of the feature point (point R4'in FIG. 8) in the camera image of the second camera 20b. R5', R6') is calculated. At this time, the first verification unit 14a projects, for example, all the projectable feature points among the feature point groups stored in advance in the map data Dm onto the camera image of the second camera 20b, and projects them. Calculate the position.
  • the first verification unit 14a includes the feature points (points Q4, Q5, Q6 in FIG. 8) stored in the map data Dm projected on the camera image of the second camera 20b, and the camera image of the second camera 20b.
  • the feature points (points R4, R5, R6 in FIG. 8) extracted from the above are collated with each other. This collation process is the same as a known method, and for example, a feature amount matching process or the like is used.
  • the first verification unit 14a refers to the actual position (FIG.) of the feature points collated with the feature points extracted from the camera image of the second camera 20b among the feature point groups stored in advance in the map data Dm.
  • the reprojection error that is, the distance between the projected position and the actual position between the 8 points R4, R5, and R6 positions
  • the projected position the positions of points R4', R5', and R6' in FIG. 8. calculate.
  • the distance between the points R4 and R4', the distance between the points R5 and R5', and the distance between the points R6 and R6' correspond to the reprojection errors, respectively.
  • the first verification unit 14a among the feature point groups stored in advance in the map data Dm, the feature points whose reprojection error with the feature points extracted from the camera image of the second camera 20b is equal to or less than the threshold value ( Hereinafter, the number of "hit points") is counted. That is, the first verification unit 14a includes a feature point group stored in advance in the map data Dm projected on the camera image of the second camera 20b and a feature point group extracted from the camera image of the second camera 20b. The degree of coincidence is grasped as the number of hit points.
  • 15 feature points are extracted from the camera image of the second camera 20b, but in the processing of the first verification unit 14a, for example, of the 15 feature points, the map data Dm is stored in advance. The number of feature points that are collated with the feature points and whose reprojection error is equal to or less than the threshold value is counted as a hit point.
  • the first verification unit 14a uses the same method to obtain the camera image of the first camera 20a, the camera image of the third camera 20c, and the camera image of the fourth camera 20d in addition to the camera image of the second camera 20b. Also, the hit points are extracted and the number of the hit points is counted.
  • the first verification unit 14a projects the feature point group stored in the map data Dm onto the camera image of the first camera 20a with reference to the first candidate position of the first camera 20a, and first.
  • the number of feature points whose reprojection error with the feature points extracted from the camera image of the first camera 20a is equal to or less than the threshold is counted.
  • the first verification unit 14a projects a group of feature points stored in the map data Dm onto the camera image of the third camera 20c with reference to the first candidate position of the first camera 20a, and the third Of the feature point group projected on the camera image of the camera 20c, the number of feature points whose reprojection error with the feature points extracted from the camera image of the third camera 20c is equal to or less than the threshold is counted.
  • the first verification unit 14a projects a group of feature points stored in the map data Dm onto the camera image of the fourth camera 20d with reference to the first candidate position of the first camera 20a, and the fourth Of the feature point group projected on the camera image of the camera 20d, the number of feature points whose reprojection error with the feature points extracted from the camera image of the fourth camera 20d is equal to or less than the threshold is counted.
  • the first verification unit 14a totals the number of hit points extracted from the camera images of the first to fourth cameras 20a to 20d, and the total number is suitable for the first candidate position of the first camera 20a. The accuracy.
  • the second verification unit 14b, the third verification unit 14c, and the fourth verification unit 14d each use the same method as the first verification unit 14a to determine the accuracy of the second candidate position of the second camera 20b and the third camera 20c.
  • the accuracy of the third candidate position and the accuracy of the fourth candidate position of the fourth camera 20d are calculated.
  • the determination unit 15 includes data D1c indicating the accuracy of the first candidate position calculated by the first verification unit 14a, data D2c indicating the accuracy of the second candidate position calculated by the second verification unit 14b, and a third verification.
  • the data D3c indicating the accuracy of the third candidate position calculated by the unit 14c and the data D4c indicating the accuracy of the fourth candidate position calculated by the fourth verification unit 14d are acquired. Then, the determination unit 15 adopts the candidate position having the highest accuracy among the first to fourth candidate positions as the most reliable position.
  • the determination unit 15 estimates the position of the vehicle A in the map space with reference to the candidate position having the highest accuracy among the first to fourth candidate positions. At this time, the determination unit 15 is, for example, the position of the vehicle A based on the positional relationship between the camera and the center of gravity of the vehicle A related to the candidate position having the highest accuracy stored in advance in the camera mounting position data Dt. To estimate.
  • the determination unit 15 defines the end condition of the repeated calculation, so that the accuracy (that is, the hit point) is correct. (Number of) may be set (see a modification described later).
  • the position estimation device 10 has the distribution of feature points and map data Dm of the camera image of the camera image of the first to fourth cameras 20a to 20d due to the influence of occlusion or the like. It is possible to estimate the position of the vehicle A with high accuracy even when a situation occurs in which the distribution of the feature points stored in is significantly different.
  • the camera image of the first camera 20a is significantly different from the map data Dm due to the influence of occlusion, usually, among the feature points extracted from the camera image of the first camera 20a, the features stored in the map data Dm.
  • the feature points that can be collated with the points are limited to a distance from the first camera 20a.
  • the position accuracy of such a feature point is low, and when the position of the first camera 20a is estimated with reference to the feature point, the accuracy of the position of the first camera 20a (that is, the position of the vehicle A) also deteriorates. ..
  • the position of the vehicle A is determined by using the appropriate feature points with high position accuracy among the feature points extracted from each of the first to fourth cameras 20a to 20d. Since it is possible to estimate, as a result, the accuracy of the position estimation of the vehicle A is also improved.
  • FIG. 10 is a flowchart showing an example of the operation of the position estimation device 10 according to the present embodiment.
  • each function of the position estimation device 10 according to the present embodiment shows a mode realized by a program.
  • FIG. 11 is a diagram schematically showing the loop processing of steps Sa and Sb of FIG.
  • step S101 first, the position estimation device 10 extracts feature points from the camera images of the first to fourth cameras 20a to 20d.
  • the position estimation device 10 represents feature points (for example, 3 points) extracted from the camera image of the i-th camera (representing any camera of the first to fourth cameras 20a to 20d; the same applies hereinafter). And the feature points of the map data Dm are collated, and the candidate position of the i-th camera is calculated based on these.
  • step S103 the position estimation device 10 is the first to fourth cameras 20a to 20d other than the i-th camera, based on the candidate position of the i-th camera and the camera mounting position data Dt. Calculate the virtual position of the camera.
  • step S104 the position estimation device 10 projects the feature point cloud stored in the map data Dm onto the camera images of the first to fourth cameras 20a to 20d. Then, the position estimation device 10 extracts from each feature point of the feature point group projected on the camera images of the first to fourth cameras 20a to 20d and the camera images of the first to fourth cameras 20a to 20d. After collating with the obtained feature points, the reprojection error is calculated for each feature point in these feature point groups.
  • step S105 the position estimation device 10 has a threshold of the reprojection error among the feature points extracted in the camera images of the first to fourth cameras 20a to 20d based on the reprojection error calculated in step S104.
  • the following feature points are determined as hit points, and the total number of hit points extracted in each camera image of the first to fourth cameras 20a to 20d is counted.
  • step S106 the position estimation device 10 determines whether or not the total number of hit points calculated in step S105 is larger than the total number of hit points of the most promising candidate positions currently held. Then, when the total number of hit points calculated in step S105 is larger than the total number of hit points of the most promising candidate positions currently held (S106: YES), the process proceeds to step S107, and in step S105, the process proceeds. When the calculated total number of hit points is less than or equal to the total number of hit points of the most promising candidate positions currently held (S106: NO), the process returns to step S102 and the next camera (i + 1th camera). Executes the process for.
  • step S107 the position estimation device 10 sets the candidate position calculated in step S102 as the most promising candidate position, and then returns to step S102 to execute processing for the next camera (i + 1th camera). ..
  • the position estimation device 10 repeatedly executes the processes of steps S102 to S107 in the loop process Sa and the loop process Sb.
  • the loop processing Sb is for switching the processing target camera (that is, the target camera for calculating the candidate position and calculating the accuracy of the candidate position) among the first to fourth cameras 20a to 20d. It's a loop.
  • the loop processing Sa is a loop for switching the feature points used when calculating the candidate positions of the first to fourth cameras 20a to 20d.
  • the variable i is a variable representing the camera to be processed (here, an integer from 1 to 4) among the first to fourth cameras 20a to 20d
  • the variable N is one. It is a variable (here, an integer from 1 to N (N is, for example, 50)) representing the number of times the feature points are switched, which is used when calculating one candidate position.
  • the position estimation device 10 uses the camera image of the first camera 20a to calculate the first candidate position of the first camera 20a, and the first to fourth steps Sb1.
  • Step Sb2 for verifying the accuracy of the first candidate position using the camera images of the cameras 20a to 20d
  • step Sb3 for calculating the second candidate position of the second camera 20b using the camera images of the second camera 20b.
  • Step Sb4 for verifying the accuracy of the second candidate position using the camera images of the first to fourth cameras 20a to 20d, and the third camera image of the third camera 20c using the camera images of the third camera 20c.
  • Step Sb5 for calculating the candidate position and the camera images of the first to fourth cameras 20a to 20d Using the step Sb5 for calculating the candidate position and the camera images of the first to fourth cameras 20a to 20d, and the step Sb6 for verifying the appropriateness of the third candidate position, and the camera image of the fourth camera 20d, Step Sb7 for calculating the fourth candidate position of the fourth camera 20d and step Sb8 for verifying the accuracy of the fourth candidate position using the camera images of the first to fourth cameras 20a to 20d are repeated. Execute.
  • the position estimation device 10 calculates the candidate position of the camera with the highest position accuracy (here, any one of the first to fourth cameras 20a to 20d) by the above processing. Then, the position estimation device 10 estimates the position of the vehicle A by using the candidate position of the camera.
  • the position estimation device 10 is The position of the feature point in the actual scene extracted from the camera image of the k (where k is an integer of 1 to n) th camera out of n (where n is an integer of 2 or more) and the position in the camera image.
  • An estimation unit 13 that calculates the candidate position of the kth camera in the map space based on the position of the feature point in the map space stored in advance in the map data Dm, and Based on the candidate position of the k-th camera, a group of feature points in the actual scene stored in association with the position in the map space is projected onto the map data Dm on the camera image of each of the n cameras, and n pieces are projected.
  • the candidate position of the kth camera Verification unit 14 that calculates the appropriateness, and With The estimation unit 13 calculates candidate positions for each of the first to nth cameras of the n cameras.
  • the verification unit 14 calculates the accuracy of the candidate positions of the first to nth cameras of the n cameras, and calculates the accuracy of each candidate position.
  • the position of the moving body (for example, vehicle A) is estimated using the candidate position having the highest accuracy among the accuracy of the candidate positions of the first camera to the nth camera of the n cameras.
  • the camera image and map data of the camera and the map data are affected by the influence of occlusion or the like. Even when a situation that is significantly different from the distribution) occurs, it is possible to estimate the position of the moving body with high accuracy.
  • the position estimation device 10 can estimate a moving body with high accuracy with a small amount of calculation without solving a complicated calculation as in Non-Patent Document 2 while using a plurality of cameras. It is useful in that it is possible. As a result, the position of the moving body can be estimated in real time even when the amount of calculation is limited and the moving speed of the moving body is high as in an in-vehicle environment.
  • FIG. 12 is a flowchart showing an example of the operation of the position estimation device according to the modified example.
  • the flowchart of FIG. 12 differs from the flowchart of FIG. 10 in that the process of step S108 is added after step S107.
  • the loop processing Sa is executed a certain number of times or more.
  • the number of loop processing Sa is as small as possible.
  • step S105 determines whether or not the total number of hit points calculated in step S105 (that is, the total number of hit points of the most promising candidates) is larger than the threshold value in step S108. Judgment processing is added. Then, when the total number of hit points calculated in step S105 is larger than the threshold value (S108: YES), the flowchart of FIG. 12 is terminated, and the total number of hit points calculated in step S105 is equal to or less than the threshold value (S108: YES). S108: NO), the loop processing Sa and Sb are continued as they are.
  • the number of cameras mounted on the vehicle A is arbitrary as long as it is two or more.
  • the shooting areas of the cameras may be in front of, behind, or in all directions of the vehicle A, and the shooting areas of the plurality of cameras may overlap each other.
  • the camera mounted on the vehicle A may be a fixed one or a movable one.
  • the vehicle A is shown as an example of the moving body to which the position estimation device 10 is applied, but the type of the moving body is arbitrary.
  • the moving object to which the position estimation device 10 is applied may be a robot or a drone.
  • each function of the position estimation device 10 is realized by processing by the CPU 101
  • a part or all of each function of the position estimation device 10 is replaced with the processing by the CPU 101 or Along with this, it may be realized by processing by a DSP (Digital Signal Processor) or a dedicated hardware circuit (for example, ASIC or FPGA).
  • DSP Digital Signal Processor
  • ASIC Application Specific integrated circuit
  • the position estimation device it is possible to improve the estimation accuracy of the position and posture of the moving body with a small calculation load.

Landscapes

  • Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Automation & Control Theory (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Navigation (AREA)

Abstract

周囲の実景を撮影するn個のカメラ(20a~20d)を有する移動体の位置推定装置であって、n個のカメラ(20a~20d)それぞれについて、カメラ画像から抽出される実景中の特徴点のカメラ画像における位置と、地図データに予め記憶されている前記特徴点の地図空間における位置と、に基づいて、地図空間におけるカメラの候補位置を算出する推定部(13)と、当該候補位置を基準にして、n個のカメラ(20a~20d)それぞれのカメラ画像に対して、地図データに地図空間における位置と関連付けて記憶された実景中の特徴点群を投影し、n個のカメラ(20a~20d)それぞれのカメラ画像に投影された特 徴点群と、n個のカメラ(20a~20d)それぞれのカメラ画像から抽出された特徴点群と、の一致度に基づいて、n個のカメラそれぞれの候補位置の適確度を算出する検証部(14)と、を備える。

Description

位置推定装置、車両、位置推定方法、及び位置推定プログラム
 本開示は、位置推定装置、車両、位置推定方法、及び位置推定プログラムに関する。
 従来、車両やロボット等の移動体に搭載され、当該移動体が有するカメラを用いて、当該移動体の位置及び姿勢を推定する位置推定装置(自己位置推定装置とも称される)が知られている(例えば、非特許文献1及び非特許文献2を参照)。
 この種の位置推定装置においては、一般に、事前に作成してある実景(移動体の周囲のカメラで撮影可能な風景を意味する。以下同じ)中に存在する物体の特徴点(ランドマークとも称される)の三次元位置を記憶する地図データを参照して、カメラ画像に映る特徴点と地図データ中の特徴点とを対応付け、これにより、カメラの位置及び姿勢(即ち、移動体の位置及び姿勢)を推定する処理が行われている。
Mikael Persson et al."Lambda Twist: An Accurate Fast Robust Perspective Three Point (P3P) Solver.", ECCV 2018, pp 334-349,published in 2018, http://openaccess.thecvf.com/content_ECCV_2018/papers/Mikael_Persson_Lambda_Twist_An_ECCV_2018_paper.pdf
Gim Hee Lee et al."Minimal Solutions for Pose Estimation of a Multi-Camera System", Robotics Research pp 521-538, published in 2016, https://inf.ethz.ch/personal/pomarc/pubs/LeeISRR13.pdf
 本開示は、小さい演算負荷で、移動体の位置及び姿勢の推定精度を向上させることが可能な位置推定装置、車両、位置推定方法、及び位置推定プログラムを提供することを目的とする。
 本開示の一態様は、
 周囲の実景を撮影するn(但し、nは2以上の整数)個のカメラを有する移動体の位置推定装置であって、
 前記n個のカメラのうちk(但し、kは1~nの整数)番目のカメラのカメラ画像から抽出される前記実景中の特徴点のカメラ画像における位置と、地図データに予め記憶されている前記特徴点の地図空間における位置と、に基づいて、地図空間における前記k番目のカメラの候補位置を算出する推定部と、
 前記k番目のカメラの前記候補位置を基準にして、前記n個のカメラそれぞれのカメラ画像に対して、前記地図データに地図空間における位置と関連付けて記憶された前記実景中の特徴点群を投影し、前記n個のカメラそれぞれのカメラ画像に投影された前記特徴点群と、前記n個のカメラそれぞれのカメラ画像から抽出された前記特徴点群と、の一致度に基づいて、前記k番目のカメラの前記候補位置の適確度を算出する検証部と、
 を備え、
 前記推定部は、前記n個のカメラの1番目のカメラからn番目のカメラそれぞれについて、前記候補位置を算出し、
 前記検証部は、前記n個のカメラの1番目のカメラからn番目のカメラそれぞれの前記候補位置の前記適確度を算出し、
 前記移動体の位置は、前記n個のカメラの1番目のカメラからn番目のカメラそれぞれの前記候補位置の前記適確度のうち、最も適確度が高い前記候補位置を基準として推定される、
 位置推定装置である。
 又、他の局面では、
 前記位置推定装置を備える車両である。
 又、他の局面では、
 周囲の実景を撮影するn(但し、nは2以上の整数)個のカメラを有する移動体の位置推定方法であって、
 前記n個のカメラのうちk(但し、kは1~nの整数)番目のカメラのカメラ画像から抽出される前記実景中の特徴点のカメラ画像における位置と、地図データに予め記憶されている前記特徴点の地図空間における位置と、に基づいて、地図空間における前記k番目のカメラの候補位置を算出する第1処理と、
 前記k番目のカメラの前記候補位置を基準にして、前記n個のカメラそれぞれのカメラ画像に対して、前記地図データに地図空間における位置と関連付けて記憶された前記実景中の特徴点群を投影し、前記n個のカメラそれぞれのカメラ画像に投影された前記特徴点群と、前記n個のカメラそれぞれのカメラ画像から抽出された前記特徴点群と、の一致度に基づいて、前記k番目のカメラの前記候補位置の適確度を算出する第2処理と、
 を備え、
 前記第1処理では、前記n個のカメラの1番目のカメラからn番目のカメラそれぞれについて、前記候補位置を算出し、
 前記第2処理では、前記n個のカメラの1番目のカメラからn番目のカメラそれぞれの前記候補位置の前記適確度を算出し、
 前記移動体の位置は、前記n個のカメラの1番目のカメラからn番目のカメラそれぞれの前記候補位置の前記適確度のうち、最も適確度が高い前記候補位置を基準として推定される、
 位置推定方法である。
 又、他の局面では、
 コンピュータに、周囲の実景を撮影するn(但し、nは2以上の整数)個のカメラを有する移動体の位置を推定させる位置推定プログラムであって、
 前記n個のカメラのうちk(但し、kは1~nの整数)番目のカメラのカメラ画像から抽出される前記実景中の特徴点のカメラ画像における位置と、地図データに予め記憶されている前記特徴点の地図空間における位置と、に基づいて、地図空間における前記k番目のカメラの候補位置を算出する第1処理と、
 前記k番目のカメラの前記候補位置を基準にして、前記n個のカメラそれぞれのカメラ画像に対して、前記地図データに地図空間における位置と関連付けて記憶された前記実景中の特徴点群を投影し、前記n個のカメラそれぞれのカメラ画像に投影された前記特徴点群と、前記n個のカメラそれぞれのカメラ画像から抽出された前記特徴点群と、の一致度に基づいて、前記k番目のカメラの前記候補位置の適確度を算出する第2処理と、
 を備え、
 前記第1処理では、前記n個のカメラの1番目のカメラからn番目のカメラそれぞれについて、前記候補位置を算出し、
 前記第2処理では、前記n個のカメラの1番目のカメラからn番目のカメラそれぞれの前記候補位置の前記適確度を算出し、
 前記移動体の位置は、前記n個のカメラの1番目のカメラからn番目のカメラそれぞれの前記候補位置の前記適確度のうち、最も適確度が高い前記候補位置を基準として推定される、
 位置推定プログラムである。
一実施形態に係る車両の構成の一例を示す図 一実施形態に係る車両に搭載された4個のカメラの搭載位置の一例を示す図 一実施形態に係る位置推定装置のハードウェア構成の一例を示す図 一実施形態に係る位置推定装置に予め記憶された地図データの一例を示す図 一実施形態に係る位置推定装置の構成の一例を示す図 一実施形態に係る第1特徴点抽出部に抽出された特徴点の一例を示す図 一実施形態に係る第1推定部の処理について説明する図 一実施形態に係る第1検証部の処理について説明する図 一実施形態に係る第1検証部の処理について説明する図 一実施形態に係る位置推定装置の動作の一例を示すフローチャート 図10のステップSa、Sbのループ処理を模式的に示す図 変形例に係る位置推定装置の動作の一例を示すフローチャート
 従来、この種の位置推定装置において、非特許文献1のように、単一のカメラのカメラ画像に映る複数の特徴点から3点の特徴点を抽出し、当該3点の特徴点のカメラ画像の撮像面内における位置と、当該3点の特徴点の地図データに記憶された三次元位置と、に基づいて、カメラの候補位置及び候補姿勢を算出する手法が採用されている。かかる手法では、カメラ画像から抽出する特徴点を変更しながら、繰り返し演算を行うことによって、カメラの位置及び姿勢の最適解を算出する(RANSAC(Random Sample Consensus)とも称される)。
 かかる従来技術は、比較的小さい演算負荷で移動体の位置及び姿勢を推定し得る点で、有用である。但し、かかる従来技術では、オクルージョン(手前にある物体が背後にある物体を隠して見えないようにしている状態を表す)等の影響により、カメラ画像に映る特徴点の分布が、地図データに記憶された特徴点の分布と大きく異なる場合には、推定精度が劣化してしまうという問題がある。
 このような背景から、例えば、非特許文献2のように、複数のカメラを使って、オクルージョンに対するロバスト性を向上させる手法が検討されている。しかしながら、かかる手法では、通常、複数のカメラそれぞれのカメラ画像における3D-2Dの幾何演算を同時に解く必要があるため、演算量が膨大となる(例えば、8次多項式を解く必要がある)。尚、このように演算量が膨大となった場合には、特に車載環境など、演算性能に限りがある環境においては、移動体の移動速度に対して、位置推定の演算が間に合わなくなり、実質的に推定精度が劣化してしまう。
 本開示に係る位置推定装置によれば、かかる問題点を解消した移動体の位置推定及び姿勢推定を実現することが可能である。
 尚、以下では、説明の便宜として、カメラ又は移動体の「位置」及び「姿勢(即ち、向き)」の両方の概念を含めて「位置」と称する。
 以下に添付図面を参照しながら、本開示の好適な実施形態について詳細に説明する。尚、本明細書及び図面において、実質的に同一の機能を有する構成要素については、同一の符号を付することにより重複説明を省略する。
[車両の構成]
 以下、図1~図4を参照して、一実施形態に係る位置推定装置の概要構成の一例について説明する。本実施形態に係る位置推定装置は、車両に搭載されており、車両の位置を推定する。尚、以下では、説明の便宜として、カメラ又は移動体の「位置」及び「姿勢(即ち、向き)」の両方の概念を含めて「位置」と称する。
 図1は、本実施形態に係る車両Aの構成の一例を示す図である。図2は、本実施形態に係る車両Aに搭載された4個のカメラ20a、20b、20c、20dの搭載位置の一例を示す図である。
 車両Aは、位置推定装置10、4個のカメラ20a、20b、20c、20d(以下、「第1カメラ20a」、「第2カメラ20b」、「第3カメラ20c」及び「第4カメラ20d」とも称する)、車両ECU30、及び、車両駆動装置40を備えている。
 第1乃至第4カメラ20a~20dは、例えば、車両Aの周囲の実景を撮影する一般的な可視カメラであり、自身の有する撮像素子が生成した画像信号をAD変換して、カメラ画像に係る画像データ(以下、「カメラ画像データ」と称する)D1、D2、D3、D4を生成する。ただし、カメラ画像データD1、D2、D3、D4は、時刻的に同期している。そして、第1乃至第4カメラ20a~20dは、自身が生成したカメラ画像データを、位置推定装置10に対して出力する。尚、第1乃至第4カメラ20a~20dは、例えば、連続的に撮像を実行し、動画像形式でカメラ画像データを生成し得るように構成されている。
 第1乃至第4カメラ20a~20dは、互いに異なる領域を撮影するように配設されている。具体的には、第1カメラ20aは、車両Aの前面に配設され、車両Aの前方領域を撮影する。第2カメラ20bは、車両Aの右側ドアミラーに配設され、車両Aの右方領域を撮影する。第3カメラ20cは、車両Aの後面に配設され、車両Aの後方領域を撮影する。第4カメラ20dは、車両Aの左側ドアミラーに配設され、車両Aの左方領域を撮影する。
 位置推定装置10は、第1乃至第4カメラ20a~20dのカメラ画像データに基づいて、車両Aの位置(例えば、世界座標系における車両Aの三次元位置、及び車両Aの向き)を推定する。そして、位置推定装置10は、車両Aの位置に係る情報を、車両ECU30に対して送信する。
 図3は、本実施形態に係る位置推定装置10のハードウェア構成の一例を示す図である。図4は、本実施形態に係る位置推定装置10に予め記憶された地図データDmの一例を示す図である。尚、図4には、地図データDmに記憶された実景中の複数の特徴点Qの地図空間上の位置を、鳥瞰図で表している。
 位置推定装置10は、主たるコンポーネントとして、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、外部記憶装置(例えば、フラッシュメモリ)104、及び、通信インターフェイス105等を備えたコンピュータである。
 位置推定装置10の後述する各機能は、例えば、CPU101がROM102、RAM103、及び外部記憶装置104等に記憶された制御プログラム(例えば、位置推定プログラムDp)や各種データ(例えば、地図データDm、カメラ搭載位置データDt)を参照することによって実現される。
 位置推定装置10の外部記憶装置104には、後述する車両Aの位置推定を実行する位置推定プログラムDpの他、地図データDm及びカメラ搭載位置データDtが格納されている。
 地図データDmは、予め広域(車両Aの周囲の領域を含む)で得られた実景中の複数の特徴点各々について、地図空間における三次元位置と、地図データDm作成時に撮影されたカメラ画像から得られた特徴量と、を関連付けて記憶する。地図データDmとして記憶される特徴点は、例えば、実景中において目印となり得る物体(例えば、建物、標識、又は看板等)のカメラ画像から特徴的な画像パターンが得られる部分(例えば、コーナー部)である。又、実景中の特徴点としては、予め設置されたマーカの特徴点が用いられてもよい。尚、地図データDmの複数の特徴点は、例えば、識別番号によって各別に識別可能に記憶されている。
 地図データDmに記憶される特徴点の地図空間(地図データDmの三次元座標系で表現される空間を意味する。以下同じ)における三次元位置は、三次元の直交座標系(X、Y、Z)で表されている。なお、これらの(X、Y、Z)は、例えば緯度、経度、標高など、実空間上の座標と対応づけられていてもよい。そうすることにより、地図空間は実空間と同義になる。尚、特徴点の地図空間における三次元位置は、例えば、事前に、複数の位置で撮影されたカメラ画像を用いた測定(例えば、三角測量の原理を用いた測定)、LIDAR(Light Detection and Ranging)を用いた測定、又はステレオカメラを用いた測定により得られた位置である。
 地図データDmに記憶される特徴点の特徴量としては、カメラ画像上の輝度や濃度の他、SIFT(Scale Invariant Feature Transform)特徴量、又はSURF(Speeded Up Robust Features)特徴量等が用いられる。尚、地図データDmに記憶される特徴点の特徴量データは、同一の三次元位置の特徴点であっても、当該特徴点を撮影したときのカメラの撮影位置や撮影方向毎に別個に記憶されていてもよい。又、地図データDmに記憶される特徴点の特徴量データは、当該特徴点を有する物体の画像と関連付けて記憶されていてもよい。
 カメラ搭載位置データDtは、第1乃至第4カメラ20a~20dの相互の位置関係(例えば、カメラ間の距離に係る関係、及びカメラ同士の向きに係る関係)を記憶する。つまり、第1乃至第4カメラ20a~20dそれぞれの位置は、いずれか一つのカメラの位置が特定されることによって、算出可能となっている。
 又、カメラ搭載位置データDtは、第1乃至第4カメラ20a~20dそれぞれの位置から車両Aを特定し得るように、第1乃至第4カメラ20a~20dそれぞれの位置と車両Aの所定の位置(例えば、重心点)との位置関係も記憶している。
 車両ECU(Electronic Control Unit)30は、車両駆動装置40の制御を行う電子制御ユニットである。車両ECU30は、例えば、位置推定装置10により推定される車両Aの位置を参照しながら、車両Aの走行状態が最適になるように、車両駆動装置40の各部(例えば、駆動モータの出力、クラッチの断接、自動変速機の変速段、及びステアリング装置の操舵角)を自動制御する。
 車両駆動装置40は、車両Aを走行させる駆動部であって、例えば、駆動モータ、自動変速機、動力伝達機構、ブレーキ機構、及びステアリング装置等を含んで構成される。尚、本実施形態に係る車両駆動装置40は、車両ECU30によって動作制御が行われる。
 尚、位置推定装置10、第1乃至第4カメラ20a~20d、車両ECU30、及び、車両駆動装置40は、車載ネットワーク(例えば、CAN通信プロトコルに準拠した通信ネットワーク)を介して、相互に接続され、必要なデータや制御信号を相互に送受信可能となっている。
[位置推定装置の詳細構成]
 次に、図5~図9を参照して、本実施形態に係る位置推定装置10の詳細構成について、説明する。
 図5は、本実施形態に係る位置推定装置10の構成の一例を示す図である。
 位置推定装置10は、取得部11、特徴点抽出部12、推定部13、検証部14、及び判定部15を備えている。
 取得部11は、車両Aに搭載された第1乃至第4カメラ20a~20dそれぞれからカメラ画像データD1~D4を取得する。具体的には、取得部11は、第1カメラ20aからカメラ画像データD1を取得する第1取得部11aと、第2カメラ20bからカメラ画像データD2を取得する第2取得部11bと、第3カメラ20cからカメラ画像データD3を取得する第3取得部11cと、第4カメラ20dからカメラ画像データD4を取得する第4取得部11dとを有する。尚、第1乃至第4取得部11a~11dが取得するカメラ画像データD1~D4は、同時刻に生成されたものである。
 特徴点抽出部12は、カメラ画像データD1~D4それぞれのカメラ画像から実景中の特徴点を抽出する。具体的には、特徴点抽出部12は、第1カメラ20aのカメラ画像から実景中の特徴点を抽出する第1特徴点抽出部12aと、第2カメラ20bのカメラ画像から実景中の特徴点を抽出する第2特徴点抽出部12bと、第3カメラ20cのカメラ画像から実景中の特徴点を抽出する第3特徴点抽出部12cと、第4カメラ20dのカメラ画像から実景中の特徴点を抽出する第4特徴点抽出部12dとを有する。尚、第1乃至第4特徴点抽出部12a~12dは、各別に設けられた四個のプロセッサーで実現されてもよいし、一個のプロセッサーで処理時間を時分割することで実現されてもよい。
 図6は、本実施形態に係る第1特徴点抽出部12aに抽出された特徴点の一例を示す図である。図6は、第1カメラ20aにより生成されたカメラ画像の一例を示しており、当該カメラ画像に映る物体のコーナー部等が特徴点Rとして抽出されている。
 第1乃至第4特徴点抽出部12a~12dがカメラ画像から特徴点を抽出する手法は、公知の任意の手法であってよい。第1乃至第4特徴点抽出部12a~12dは、例えば、SIFT法、Harris法、FAST法、又は学習済みのCNN(Convolutional Neural Network)等を用いて、カメラ画像から特徴点を抽出する。
 尚、第1乃至第4カメラ20a~20dそれぞれのカメラ画像から抽出された特徴点のデータD1a~D4aは、例えば、特徴点のカメラ画像における二次元座標、及び、当該特徴点の特徴量情報を含む。
 推定部13は、第1乃至第4カメラ20a~20dそれぞれが存在する位置の候補を算出する。具体的には、推定部13は、第1カメラ20aのカメラ画像の特徴点データD1a及び地図データDmに基づいて第1カメラ20aの候補位置(以下、「第1候補位置」とも称する)を算出する第1推定部13aと、第2カメラ20bのカメラ画像の特徴点データD2a及び地図データDmに基づいて第2カメラ20bの候補位置(以下、「第2候補位置」とも称する)を算出する第2推定部13bと、第3カメラ20cのカメラ画像の特徴点データD3a及び地図データDmに基づいて第3カメラ20cの候補位置(以下、「第3候補位置」とも称する)を算出する第3推定部13cと、第4カメラ20dのカメラ画像の特徴点データD4a及び地図データDmに基づいて第4カメラ20dの候補位置(以下、「第4候補位置」とも称する)を算出する第4推定部13dと、を有する。なお、推定部13は、第1乃至第4カメラ20a~20dそれぞれに対応する第1推定部13a~第4推定部13dで各カメラの候補位置を算出するようにする代わりに、推定部13の処理時間を時分割して、各カメラの候補位置を算出するようにしてもよい。
 図7は、本実施形態に係る第1推定部13aの処理について説明する図である。図7中の点R1、R2、R3は第1カメラ20aのカメラ画像から抽出された3個の特徴点を表し、点Q1、Q2、Q3は地図データDmに記憶された特徴点R1、R2、R3の地図空間上の三次元位置を表している。又、点P1は、第1カメラ20aの候補位置を表している。又、RP1は、第1カメラ20aの撮像面を表している。
 第1推定部13aは、まず、パターンマッチングや特徴量探索等を用いて、第1カメラ20aのカメラ画像から抽出された特徴点と、地図データDmに記憶されている特徴点とを照合する。そして、第1推定部13aは、第1カメラ20aのカメラ画像から抽出された全特徴点で、かつ地図データDmに記憶されている特徴点と照合することができた特徴点のうち数個(例えば、3個~6個)の特徴点をランダムに選択して、これらの数個の特徴点のカメラ画像内における位置(例えば、図7の点R1、R2、R3)と、当該数個の特徴点の地図データDmに記憶されている地図空間における三次元位置(例えば、図7の点Q1、Q2、Q3)と、に基づいて、地図空間における第1カメラ20aの第1候補位置を算出する。この際、第1推定部13aは、例えば、Lambda Twist等の公知の手法(例えば、非特許文献1を参照)を用いて、PnP問題を解くことによって、第1カメラ20aの第1候補位置を算出する。
 尚、第1推定部13aは、第1カメラ20aのカメラ画像から抽出された特徴点と、地図データDmに記憶されている特徴点とを照合する際、例えば、GPS(Global Positioning System)信号から推定される車両Aの現在位置、又は前フレームで算出された車両Aの位置を基準として、地図データDmに記憶された特徴点のうち、第1カメラ20aのカメラ画像から抽出される特徴点と照合する対象の特徴点を絞り込んでもよい。
 第1推定部13aが、第1カメラ20aの第1候補位置を算出する際に用いる特徴点の個数は、好ましくは、3個とする。これによって、第1候補位置を算出する際の演算負荷を軽減することができる。
 但し、第1推定部13aは、より精度の高い第1候補位置を算出するため、第1カメラ20aのカメラ画像から抽出された全特徴点のうち、第1候補位置を算出するのに用いる特徴点を繰り返し変更し、第1候補位置を複数算出するのが好ましい。尚、第1推定部13aにて、第1候補位置が複数算出された場合、複数の第1候補位置それぞれについて、後述する第1検証部14aにて適確度が算出される。
 第2推定部13b、第3推定部13c、及び第4推定部13dは、それぞれ、第1推定部13aと同様の手法により、第2カメラ20bの第2候補位置、第3カメラ20cの第3候補位置、及び第4カメラ20dの第4候補位置を算出する。
 尚、第1乃至第4カメラ20a~20dそれぞれの候補位置は、例えば、世界座標系における三次元位置(X座標、Y座標、Z座標)及び当該カメラの撮影方向(ロール、ピッチ、ヨー)により表される。
 第1推定部13aによって算出された第1カメラ20aの第1候補位置のデータD1bは、第1検証部14aに送出される。又、第2推定部13bによって算出された第2カメラ20bの第2候補位置のデータD2bは、第2検証部14bに送出される。又、第3推定部13cによって算出された第3カメラ20cの第3候補位置のデータD3bは、第3検証部14cに送出される。又、第4推定部13dによって算出された第4カメラ20dの第4候補位置のデータD4bは、第4検証部14dに送出される。
 検証部14は、推定部13に算出された第1乃至第4カメラ20a~20dそれぞれの候補位置の適確度を算出する。具体的には、検証部14は、第1カメラ20aの第1候補位置の適確度を算出する第1検証部14aと、第2カメラ20bの第2候補位置の適確度を算出する第2検証部14bと、第3カメラ20cの第3候補位置の適確度を算出する第3検証部14cと、第4カメラ20dの第4候補位置の適確度を算出する第4検証部14dと、を有する。尚、第1乃至第4検証部14a~14dには、候補位置に係るデータ(D1b~D4bのいずれか)の他、第1乃至第4カメラ20a~20dそれぞれのカメラ画像から抽出された特徴点のデータD1a、D2a、D3a、D4a、地図データDm、及び、カメラ搭載位置データDtが入力されている。尚、第1乃至第4検証部13a~13dは、各別に設けられた四個のプロセッサーで実現されてもよいし、一個のプロセッサーで処理時間を時分割することで実現されてもよい。
 図8、図9は、本実施形態に係る第1検証部14aの処理について説明する図である。
 図9は、第2カメラ20bのカメラ画像から抽出された特徴点Rと、地図データDmに記憶された特徴点が第2カメラ20bのカメラ画像に投影された投影点R’の一例を示している。
 第1検証部14aは、第1カメラ20aの第1候補位置を基準にして、第1乃至第4カメラ20a~20dそれぞれのカメラ画像に対して、地図データDmに記憶された特徴点群を投影し、第1乃至第4カメラ20a~20dそれぞれのカメラ画像に投影された当該特徴点群と、第1乃至第4カメラ20a~20dそれぞれのカメラ画像から抽出された当該特徴点群と、の一致度に基づいて、第1カメラ20aの第1候補位置の適確度を算出する。
 第1検証部14aが行う処理の詳細は、以下の通りである。
 まず、第1検証部14aは、例えば、第1カメラ20aが第1候補位置に存在すると仮定した場合に、カメラ搭載位置データDtに予め記憶された第1カメラ20aと第2カメラ20bとの位置関係から、第2カメラ20bの仮想位置(図8の点P2)を算出する。尚、第2カメラ20bの仮想位置は、例えば、カメラ搭載位置データDtに予め記憶された第1カメラ20aと第2カメラ20bとの位置関係に基づいて、第1カメラ20aの第1候補位置に対して、回転移動及び平行移動に係る演算処理を行うことによって、算出される。
 次に、第1検証部14aは、例えば、第2カメラ20bの仮想位置を基準として、地図データDmに予め記憶されている特徴点群の各特徴点(図8の点Q4、Q5、Q6)を第2カメラ20bのカメラ画像(撮像面を表す。以下同じ)(図8のPR2)に投影し、第2カメラ20bのカメラ画像内における当該特徴点の投影位置(図8の点R4’、R5’、R6’)を算出する。このとき、第1検証部14aは、例えば、地図データDmに予め記憶されている特徴点群のうち、投影可能な全ての特徴点を、第2カメラ20bのカメラ画像に投影し、それらの投影位置を算出する。
 次に、第1検証部14aは、第2カメラ20bのカメラ画像に投影された地図データDmに記憶された特徴点(図8の点Q4、Q5、Q6)と、第2カメラ20bのカメラ画像から抽出される特徴点(図8の点R4、R5、R6)と、を照合する。この照合処理は、公知の手法と同様であり、例えば、特徴量マッチング処理等が用いられる。
 次に、第1検証部14aは、地図データDmに予め記憶されている特徴点群のうち、第2カメラ20bのカメラ画像から抽出される特徴点と照合された特徴点について、実際位置(図8の点R4、R5、R6の位置)と投影位置(図8の点R4’、R5’、R6’の位置)との再投影誤差(即ち、投影位置と実際位置との間の距離)を算出する。図8では、点R4と点R4’との間の距離、点R5と点R5’との間の距離、及び、点R6と点R6’との間の距離がそれぞれ再投影誤差に相当する。
 次に、第1検証部14aは、地図データDmに予め記憶されている特徴点群のうち、第2カメラ20bのカメラ画像から抽出される特徴点との再投影誤差が閾値以下の特徴点(以下、「当たり点」と称する)の数をカウントする。つまり、第1検証部14aは、第2カメラ20bのカメラ画像に投影された地図データDmに予め記憶されている特徴点群と、第2カメラ20bのカメラ画像から抽出される特徴点群との一致度を、当たり点の個数として把握する。
 図9では、第2カメラ20bのカメラ画像から15個の特徴点が抽出されているが、第1検証部14aの処理においては、例えば、15個の特徴点のうち、地図データDmに予め記憶されている特徴点と照合され、且つ、再投影誤差が閾値以下の特徴点の個数が当たり点としてカウントされることになる。
 そして、第1検証部14aは、同様の手法により、第2カメラ20bのカメラ画像に加えて、第1カメラ20aのカメラ画像、第3カメラ20cのカメラ画像、及び第4カメラ20dのカメラ画像からも、当たり点を抽出し、当該当たり点の数をカウントする。
 即ち、第1検証部14aは、第1カメラ20aの第1候補位置を基準にして、第1カメラ20aのカメラ画像に対して、地図データDmに記憶された特徴点群を投影し、第1カメラ20aのカメラ画像に投影された当該特徴点群のうち、第1カメラ20aのカメラ画像から抽出された特徴点との再投影誤差が閾値以下の特徴点の数をカウントする。又、第1検証部14aは、第1カメラ20aの第1候補位置を基準にして、第3カメラ20cのカメラ画像に対して、地図データDmに記憶された特徴点群を投影し、第3カメラ20cのカメラ画像に投影された当該特徴点群のうち、第3カメラ20cのカメラ画像から抽出された特徴点との再投影誤差が閾値以下の特徴点の数をカウントする。又、第1検証部14aは、第1カメラ20aの第1候補位置を基準にして、第4カメラ20dのカメラ画像に対して、地図データDmに記憶された特徴点群を投影し、第4カメラ20dのカメラ画像に投影された当該特徴点群のうち、第4カメラ20dのカメラ画像から抽出された特徴点との再投影誤差が閾値以下の特徴点の数をカウントする。
 次に、第1検証部14aは、第1乃至第4カメラ20a~20dそれぞれのカメラ画像から抽出された当たり点の個数を合計し、その合計数を第1カメラ20aの第1候補位置の適確度とする。
 第2検証部14b、第3検証部14c、及び第4検証部14dは、それぞれ、第1検証部14aと同様の手法により、第2カメラ20bの第2候補位置の適確度、第3カメラ20cの第3候補位置の適確度、及び第4カメラ20dの第4候補位置の適確度を算出する。
 判定部15は、第1検証部14aによって算出された第1候補位置の適確度を示すデータD1c、第2検証部14bによって算出された第2候補位置の適確度を示すデータD2c、第3検証部14cによって算出された第3候補位置の適確度を示すデータD3c、及び、第4検証部14dによって算出された第4候補位置の適確度を示すデータD4cを取得する。そして、判定部15は、第1乃至第4候補位置のうち、最も適確度が大きい候補位置を、最も信頼できる位置として採用する。
 更に、判定部15は、第1乃至第4候補位置のうち、最も適確度が大きい候補位置を基準として、地図空間における車両Aの位置を推定する。尚、このとき、判定部15は、例えば、カメラ搭載位置データDtに予め記憶された最も適確度が大きい候補位置に係るカメラと車両Aの重心点との位置関係に基づいて、車両Aの位置を推定する。
 尚、判定部15は、第1乃至第4推定部13a~13dそれぞれが候補位置を繰り返し演算するように構成されている場合、繰り返し演算の終了条件を規定するため、適確度(即ち、当たり点の個数)の閾値を設けてもよい(後述する変形例を参照)。
 本実施形態に係る位置推定装置10は、かかる推定方法によって、第1乃至第4カメラ20a~20dのいずれかにおいて、オクルージョン等の影響により、当該カメラのカメラ画像の特徴点の分布と地図データDmに記憶された特徴点の分布とが大きく異なる状況が発生している場合であっても、高精度に車両Aの位置を推定することを可能としている。
 例えば、第1カメラ20aのカメラ画像が、オクルージョンの影響により、地図データDmと大きく異なる場合、通常、第1カメラ20aのカメラ画像から抽出される特徴点のうち、地図データDmに記憶された特徴点と照合可能な特徴点は、第1カメラ20aから遠方に限定されるケースが多い。かかる特徴点は、位置精度が低く、かかる特徴点を基準として、第1カメラ20aの位置を推定した場合、第1カメラ20aの位置(即ち、車両Aの位置)の精度も悪化することになる。
 この点、本実施形態に係る位置推定装置10では、第1乃至第4カメラ20a~20dそれぞれから抽出される特徴点のうち、位置精度が高い適切な特徴点を用いて、車両Aの位置を推定することが可能となるため、結果として、車両Aの位置推定の精度も向上することになる。
 [位置推定装置の動作]
 図10は、本実施形態に係る位置推定装置10の動作の一例を示すフローチャートである。ここでは、本実施形態に係る位置推定装置10の各機能が、プログラムにより実現された態様を示している。図11は、図10のステップSa、Sbのループ処理を模式的に示す図である。
 ステップS101において、まず、位置推定装置10は、第1乃至第4カメラ20a~20dそれぞれのカメラ画像から特徴点を抽出する。
 ステップS102において、位置推定装置10は、第i番目のカメラ(第1乃至第4カメラ20a~20dのいずれかカメラを表す。以下同じ)のカメラ画像から抽出される特徴点(例えば、3点)と、地図データDmの特徴点とを照合し、これらに基づいて、第i番目のカメラの候補位置を算出する。
 ステップS103において、位置推定装置10は、第i番目のカメラの候補位置とカメラ搭載位置データDtとに基づいて、第1乃至第4カメラ20a~20dのうち、第i番目のカメラ以外の他のカメラの仮想位置を算出する。
 ステップS104において、位置推定装置10は、第1乃至第4カメラ20a~20dそれぞれのカメラ画像に対して、地図データDmに記憶された特徴点群を投影する。そして、位置推定装置10は、第1乃至第4カメラ20a~20dそれぞれのカメラ画像に投影された当該特徴点群の各特徴点と、第1乃至第4カメラ20a~20dそれぞれのカメラ画像から抽出された特徴点と、を照合した後、これらの特徴点群の各特徴点について、再投影誤差を算出する。
 ステップS105において、位置推定装置10は、ステップS104で算出された再投影誤差に基づいて、第1乃至第4カメラ20a~20dそれぞれのカメラ画像において抽出された特徴点のうち、再投影誤差が閾値以下の特徴点を当たり点として決定し、第1乃至第4カメラ20a~20dそれぞれのカメラ画像において抽出された当たり点の合計数をカウントする。
 ステップS106において、位置推定装置10は、ステップS105で算出された当たり点の合計数が、現在保持されている最有力候補位置の当たり点の合計数よりも大きいか否かを判定する。そして、ステップS105で算出された当たり点の合計数が、現在保持されている最有力候補位置の当たり点の合計数よりも大きい場合(S106:YES)、ステップS107に処理を進め、ステップS105で算出された当たり点の合計数が、現在保持されている最有力候補位置の当たり点の合計数以下の場合(S106:NO)、ステップS102に戻って、次のカメラ(第i+1番目のカメラ)について処理を実行する。
 ステップS107において、位置推定装置10は、ステップS102で算出された候補位置を、最有力候補位置として設定した後、ステップS102に戻って、次のカメラ(第i+1番目のカメラ)について処理を実行する。
 位置推定装置10は、かかるステップS102~ステップS107の処理を、ループ処理Sa、及び、ループ処理Sbで繰り返し実行する。ここで、ループ処理Sbは、第1乃至第4カメラ20a~20dのうち、処理対象のカメラ(即ち、候補位置を算出し、当該候補位置の適確度を算出する対象のカメラ)を切り替えるためのループである。又、ループ処理Saは、第1乃至第4カメラ20a~20dそれぞれの候補位置を算出する際に用いる特徴点を切り替えるためのループである。尚、図10のフローチャートでは、変数iは、第1乃至第4カメラ20a~20dのうち、処理対象のカメラを表す変数(ここでは、1~4までの整数)であり、変数Nは、一つの候補位置を算出する際に用いる特徴点の切り替え回数を表す変数(ここでは、1~N(Nは、例えば50)までの整数)である。
 具体的には、図11に示すように、位置推定装置10は、第1カメラ20aのカメラ画像を用いて、第1カメラ20aの第1候補位置を算出するステップSb1と、第1乃至第4カメラ20a~20dのカメラ画像を用いて、第1候補位置の適確度を検証するステップSb2と、第2カメラ20bのカメラ画像を用いて、第2カメラ20bの第2候補位置を算出するステップSb3と、第1乃至第4カメラ20a~20dのカメラ画像を用いて、第2候補位置の適確度を検証するステップSb4と、第3カメラ20cのカメラ画像を用いて、第3カメラ20cの第3候補位置を算出するステップSb5と、第1乃至第4カメラ20a~20dのカメラ画像を用いて、第3候補位置の適確度を検証するステップSb6と、第4カメラ20dのカメラ画像を用いて、第4カメラ20dの第4候補位置を算出するステップSb7と、及び、第1乃至第4カメラ20a~20dのカメラ画像を用いて、第4候補位置の適確度を検証するステップSb8と、を繰り返し実行する。
 本実施形態に係る位置推定装置10は、以上のような処理によって、最も位置精度の高いカメラ(ここでは、第1乃至第4カメラ20a~20dのうちのいずれか)の候補位置を算出する。そして、位置推定装置10は、当該カメラの候補位置を用いて、車両Aの位置を推定する。
 [効果]
 以上のように、本実施形態に係る位置推定装置10は、
 n(但し、nは2以上の整数)個のカメラのうちk(但し、kは1~nの整数)番目のカメラのカメラ画像から抽出される実景中の特徴点のカメラ画像における位置と、地図データDmに予め記憶されている当該特徴点の地図空間における位置と、に基づいて、地図空間におけるk番目のカメラの候補位置を算出する推定部13と、
 k番目のカメラの候補位置を基準にして、n個のカメラそれぞれのカメラ画像に対して、地図データDmに地図空間における位置と関連付けて記憶された実景中の特徴点群を投影し、n個のカメラそれぞれのカメラ画像に投影された当該特徴点群と、n個のカメラそれぞれのカメラ画像から抽出された当該特徴点群と、の一致度に基づいて、k番目のカメラの前記候補位置の適確度を算出する検証部14と、
 を備え、
 推定部13は、n個のカメラの1番目のカメラからn番目のカメラそれぞれについて、候補位置を算出し、
 検証部14は、n個のカメラの1番目のカメラからn番目のカメラそれぞれの候補位置の適確度を算出し、
 移動体(例えば、車両A)の位置は、n個のカメラの1番目のカメラからn番目のカメラそれぞれの候補位置の適確度のうち、最も適確度が高い候補位置を用いて推定される。
 これによって、移動体(例えば、車両A)が有する複数のカメラ20a~20dのいずれかにおいて、オクルージョン等の影響により、当該カメラのカメラ画像と地図データ(即ち、地図データに記憶された特徴点の分布)とが大きく異なる状況が発生している場合であっても、高精度に、当該移動体の位置を推定することが可能である。
 特に、本実施形態に係る位置推定装置10は、複数のカメラを用いながら、非特許文献2のように複雑な演算を解くことなく、小さい演算量で、高精度に移動体を推定することが可能である点で、有用である。これによって、車載環境のように演算量が限られ、かつ移動体の移動速度が速い際にも、リアルタイムで、当該移動体の位置を推定することができる。
(変形例)
 図12は、変形例に係る位置推定装置の動作の一例を示すフローチャートである。図12のフローチャートは、ステップS107の後に、ステップS108の処理が追加されている点で、図10のフローチャートと相違する。
 上記実施形態では、できるだけ位置精度の高い候補位置をサーチするため、ループ処理Saを一定以上の回数実行する構成とした。但し、移動体(例えば、車両A)の位置を推定する時間を短縮する観点からは、ループ処理Saの回数は、可能な限り小さい方が好ましい。
 本変形例に係るフローチャートでは、かかる観点から、ステップS108にて、ステップS105で算出された当たり点の合計数(即ち、最有力候補の当たり点の合計数)が閾値よりも大きいか否かを判定する処理を追加している。そして、ステップS105で算出された当たり点の合計数が閾値よりも大きい場合(S108:YES)、図12のフローチャートを終了し、ステップS105で算出された当たり点の合計数が閾値以下の場合(S108:NO)、そのまま、ループ処理Sa、Sbを継続する。
 これによって、移動体の位置の推定精度を確保しながら、当該移動体の位置を推定するまでの演算時間をできるだけ短縮することが可能である。
(その他の実施形態)
 本発明は、上記実施形態に限らず、種々に変形態様が考えられる。
 例えば、上記実施形態では、車両Aに搭載されたカメラの一例として、4個のカメラを示したが、車両Aに搭載されるカメラの個数は、2個以上であれば、任意である。又、カメラの撮影領域は、車両Aの前方、後方、又は全方位でもよく、複数のカメラの撮影領域は、互いに重複していてもよい。又、車両Aに搭載されたカメラは、固定されたものであってもよいし、可動可能なものであってもよい。
 又、上記実施形態では、位置推定装置10を適用する対象の移動体の一例として、車両Aを示したが、移動体の種類は、任意である。位置推定装置10を適用する対象の移動体としては、ロボットやドローンであってもよい。
 又、上記実施形態では、位置推定装置10の各機能を、CPU101による処理によって実現する態様を示したが、位置推定装置10の各機能の一部又は全部は、CPU101による処理に代えて、又は、これと共に、DSP(Digital Signal Processor)や、専用のハードウェア回路(例えば、ASIC又はFPGA)による処理によって実現されてもよい。
 以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、請求の範囲を限定するものではない。請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
 2019年11月22日出願の特願2019-211243の日本出願に含まれる明細書、図面および要約書の開示内容は、すべて本願に援用される。
 本開示に係る位置推定装置によれば、小さい演算負荷で、移動体の位置及び姿勢の推定精度を向上させることが可能である。
 A 車両
 10 位置推定装置
 11 取得部
 12 特徴点抽出部
 13 推定部
 14 検証部
 15 判定部
 20a、20b、20c、20d カメラ
 30 車両ECU
 40 車両駆動装置
 Dm 地図データ
 Dt カメラ搭載位置データ

Claims (8)

  1.  周囲の実景を撮影するn(但し、nは2以上の整数)個のカメラを有する移動体の位置推定装置であって、
     前記n個のカメラのうちk(但し、kは1~nの整数)番目のカメラのカメラ画像から抽出される前記実景中の特徴点のカメラ画像における位置と、地図データに予め記憶されている前記特徴点の地図空間における位置と、に基づいて、地図空間における前記k番目のカメラの候補位置を算出する推定部と、
     前記k番目のカメラの前記候補位置を基準にして、前記n個のカメラそれぞれのカメラ画像に対して、前記地図データに地図空間における位置と関連付けて記憶された前記実景中の特徴点群を投影し、前記n個のカメラそれぞれのカメラ画像に投影された前記特徴点群と、前記n個のカメラそれぞれのカメラ画像から抽出された前記特徴点群と、の一致度に基づいて、前記k番目のカメラの前記候補位置の適確度を算出する検証部と、
     を備え、
     前記推定部は、前記n個のカメラの1番目のカメラからn番目のカメラそれぞれについて、前記候補位置を算出し、
     前記検証部は、前記n個のカメラの1番目のカメラからn番目のカメラそれぞれの前記候補位置の前記適確度を算出し、
     前記移動体の位置は、前記n個のカメラの1番目のカメラからn番目のカメラそれぞれの前記候補位置の前記適確度のうち、最も適確度が高い前記候補位置を基準として推定される、
     位置推定装置。
  2.  前記検証部は、前記特徴点群のうち、再投影誤差が閾値以下の特徴点の個数を、前記k番目のカメラの前記候補位置の前記適確度として算出する、
     請求項1に記載の位置推定装置。
  3.  前記移動体は、車両である、
     請求項1に記載の位置推定装置。
  4.  前記n個のカメラは、前記実景の互いに異なる領域を撮影する、
     請求項1に記載の位置推定装置。
  5.  前記推定部は、前記k番目のカメラのカメラ画像から抽出される複数の特徴点のうち、前記候補位置を算出するために用いる前記特徴点を変更することで、前記k番目のカメラの前記候補位置を複数算出し、
     前記検証部は、前記k番目のカメラの複数の前記候補位置それぞれについて、前記適確度を算出し、
     前記移動体の位置は、前記n個のカメラの1番目のカメラからn番目のカメラそれぞれの複数の前記候補位置の前記適確度のうち、最も適確度が高い前記候補位置を基準として推定される、
     請求項1に記載の位置推定装置。
  6.  請求項1に記載の位置推定装置を備える車両。
  7.  周囲の実景を撮影するn(但し、nは2以上の整数)個のカメラを有する移動体の位置推定方法であって、
     前記n個のカメラのうちk(但し、kは1~nの整数)番目のカメラのカメラ画像から抽出される前記実景中の特徴点のカメラ画像における位置と、地図データに予め記憶されている前記特徴点の地図空間における位置と、に基づいて、地図空間における前記k番目のカメラの候補位置を算出する第1処理と、
     前記k番目のカメラの前記候補位置を基準にして、前記n個のカメラそれぞれのカメラ画像に対して、前記地図データに地図空間における位置と関連付けて記憶された前記実景中の特徴点群を投影し、前記n個のカメラそれぞれのカメラ画像に投影された前記特徴点群と、前記n個のカメラそれぞれのカメラ画像から抽出された前記特徴点群と、の一致度に基づいて、前記k番目のカメラの前記候補位置の適確度を算出する第2処理と、
     を備え、
     前記第1処理では、前記n個のカメラの1番目のカメラからn番目のカメラそれぞれについて、前記候補位置を算出し、
     前記第2処理では、前記n個のカメラの1番目のカメラからn番目のカメラそれぞれの前記候補位置の前記適確度を算出し、
     前記移動体の位置は、前記n個のカメラの1番目のカメラからn番目のカメラそれぞれの前記候補位置の前記適確度のうち、最も適確度が高い前記候補位置を基準として推定される、
     位置推定方法。
  8.  コンピュータに、周囲の実景を撮影するn(但し、nは2以上の整数)個のカメラを有する移動体の位置を推定させる位置推定プログラムであって、
     前記n個のカメラのうちk(但し、kは1~nの整数)番目のカメラのカメラ画像から抽出される前記実景中の特徴点のカメラ画像における位置と、地図データに予め記憶されている前記特徴点の地図空間における位置と、に基づいて、地図空間における前記k番目のカメラの候補位置を算出する第1処理と、
     前記k番目のカメラの前記候補位置を基準にして、前記n個のカメラそれぞれのカメラ画像に対して、前記地図データに地図空間における位置と関連付けて記憶された前記実景中の特徴点群を投影し、前記n個のカメラそれぞれのカメラ画像に投影された前記特徴点群と、前記n個のカメラそれぞれのカメラ画像から抽出された前記特徴点群と、の一致度に基づいて、前記k番目のカメラの前記候補位置の適確度を算出する第2処理と、
     を備え、
     前記第1処理では、前記n個のカメラの1番目のカメラからn番目のカメラそれぞれについて、前記候補位置を算出し、
     前記第2処理では、前記n個のカメラの1番目のカメラからn番目のカメラそれぞれの前記候補位置の前記適確度を算出し、
     前記移動体の位置は、前記n個のカメラの1番目のカメラからn番目のカメラそれぞれの前記候補位置の前記適確度のうち、最も適確度が高い前記候補位置を基準として推定される、
     位置推定プログラム。
PCT/JP2020/042593 2019-11-22 2020-11-16 位置推定装置、車両、位置推定方法、及び位置推定プログラム WO2021100650A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202080078726.0A CN114729811A (zh) 2019-11-22 2020-11-16 位置推断装置、车辆、位置推断方法及位置推断程序
DE112020005735.6T DE112020005735T5 (de) 2019-11-22 2020-11-16 Positionsabschätzungsvorrichtung, Fahrzeug, Positionsabschätzungsverfahren und Positionsabschätzungsprogramm
US17/748,803 US20220277480A1 (en) 2019-11-22 2022-05-19 Position estimation device, vehicle, position estimation method and position estimation program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019211243A JP2021082181A (ja) 2019-11-22 2019-11-22 位置推定装置、車両、位置推定方法、及び位置推定プログラム
JP2019-211243 2019-11-22

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/748,803 Continuation US20220277480A1 (en) 2019-11-22 2022-05-19 Position estimation device, vehicle, position estimation method and position estimation program

Publications (1)

Publication Number Publication Date
WO2021100650A1 true WO2021100650A1 (ja) 2021-05-27

Family

ID=75963385

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/042593 WO2021100650A1 (ja) 2019-11-22 2020-11-16 位置推定装置、車両、位置推定方法、及び位置推定プログラム

Country Status (5)

Country Link
US (1) US20220277480A1 (ja)
JP (1) JP2021082181A (ja)
CN (1) CN114729811A (ja)
DE (1) DE112020005735T5 (ja)
WO (1) WO2021100650A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11879984B2 (en) * 2021-05-21 2024-01-23 Booz Allen Hamilton Inc. Systems and methods for determining a position of a sensor device relative to an object

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007322138A (ja) * 2006-05-30 2007-12-13 Toyota Motor Corp 移動装置及び移動装置の自己位置推定方法
JP2018179990A (ja) * 2017-04-20 2018-11-15 パナソニックIpマネジメント株式会社 カメラパラメタセット算出方法、カメラパラメタセット算出プログラム及びカメラパラメタセット算出装置
WO2018235923A1 (ja) * 2017-06-21 2018-12-27 国立大学法人 東京大学 位置推定装置、位置推定方法、及びプログラム
WO2019186677A1 (ja) * 2018-03-27 2019-10-03 株式会社日立製作所 ロボット位置姿勢推定・三次元計測装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5910180B2 (ja) * 2012-03-06 2016-04-27 日産自動車株式会社 移動物体位置姿勢推定装置及び方法
JP2019211243A (ja) 2018-05-31 2019-12-12 旭化成株式会社 Rfidタグ

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007322138A (ja) * 2006-05-30 2007-12-13 Toyota Motor Corp 移動装置及び移動装置の自己位置推定方法
JP2018179990A (ja) * 2017-04-20 2018-11-15 パナソニックIpマネジメント株式会社 カメラパラメタセット算出方法、カメラパラメタセット算出プログラム及びカメラパラメタセット算出装置
WO2018235923A1 (ja) * 2017-06-21 2018-12-27 国立大学法人 東京大学 位置推定装置、位置推定方法、及びプログラム
WO2019186677A1 (ja) * 2018-03-27 2019-10-03 株式会社日立製作所 ロボット位置姿勢推定・三次元計測装置

Also Published As

Publication number Publication date
US20220277480A1 (en) 2022-09-01
JP2021082181A (ja) 2021-05-27
DE112020005735T5 (de) 2022-09-29
CN114729811A (zh) 2022-07-08

Similar Documents

Publication Publication Date Title
CN110411441B (zh) 用于多模态映射和定位的系统和方法
CN106803271B (zh) 一种视觉导航无人机的摄像机标定方法及装置
US11120560B2 (en) System and method for real-time location tracking of a drone
WO2018142900A1 (ja) 情報処理装置、データ管理装置、データ管理システム、方法、及びプログラム
CN102298070B (zh) 估算无人机,尤其是能够在自动驾驶下执行悬停飞行的无人机的水平速度的方法
WO2018048353A1 (en) Simultaneous localization and mapping methods and apparatus
KR102054455B1 (ko) 이종 센서 간의 캘리브레이션 장치 및 방법
JP6943988B2 (ja) 移動可能物体の制御方法、機器およびシステム
KR101672732B1 (ko) 객체 추적 장치 및 방법
JP5990453B2 (ja) 自律移動ロボット
CN111462096A (zh) 三维目标检测方法及装置
JP2007263669A (ja) 3次元座標取得装置
JP2007256029A (ja) ステレオ画像処理装置
JP7173471B2 (ja) 3次元位置推定装置及びプログラム
Zheng et al. Robust and accurate monocular visual navigation combining IMU for a quadrotor
WO2021100650A1 (ja) 位置推定装置、車両、位置推定方法、及び位置推定プログラム
JP2018205950A (ja) 自車位置推定用環境地図生成装置、自車位置推定装置、自車位置推定用環境地図生成プログラム、及び自車位置推定プログラム
CN114777768A (zh) 一种卫星拒止环境高精度定位方法、系统及电子设备
US11619495B2 (en) Position estimating apparatus and position estimating method
CN114830185A (zh) 借助于神经网络的位置确定
WO2019186677A1 (ja) ロボット位置姿勢推定・三次元計測装置
EP2395318A1 (en) Rotation estimation device, rotation estimation method, and storage medium
KR101040305B1 (ko) 영상 탐색 장치 및 이를 이용한 표적 결정 방법
CN113837270B (zh) 一种目标识别方法、装置、设备及存储介质
US11587258B1 (en) Focal length validation using three-dimensional pose estimates

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20891216

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 20891216

Country of ref document: EP

Kind code of ref document: A1