Object pose from sensor motion
A computer includes a processor and a memory, and the memory stores instructions executable to receive sensor data from a sensor indicating an object at a plurality of time steps, receive motion data indicating motion of the sensor at the time steps, determine a plurality of virtual pixel locations of the sensor at the time steps from a perspective of a virtual camera located at the object based on the sensor data and on the motion data, and determine a pose of the object using the virtual pixel locations. The sensor moves while generating the sensor data, and the object is stationary.
1 . A computer comprising a processor and a memory, the memory storing instructions executable to:
receive sensor data from a sensor indicating an object at a plurality of time steps, the sensor moving while generating the sensor data, the object being stationary;
receive motion data indicating motion of the sensor at the time steps;
determine a plurality of virtual pixel locations of the sensor at the time steps from a perspective of a virtual camera located at the object based on the sensor data and on the motion data, the virtual pixel locations being pixel locations of the sensor as would be seen in virtual image frames that would be generated by the virtual camera; and
determine a pose of the object using the virtual pixel locations.
2 . The computer of claim 1 , wherein the instructions further include instructions to actuate a component based on the pose of the object.
3 . The computer of claim 2 , wherein the component is a component of a vehicle, the vehicle including the sensor.
4 . The computer of claim 1 , wherein the instructions to determine the pose of the object include instructions to solve a camera pose estimation algorithm for a pose of the virtual camera.
5 . The computer of claim 4 , wherein the camera pose estimation algorithm is a perspective-n-point algorithm.
6 . The computer of claim 4 , wherein the motion data includes a plurality of rotations of the sensor between consecutive ones of the time steps, and the instructions to determine the pose of the object include instructions to determine the pose of the object based on the pose of the virtual camera and on the rotations.
7 . The computer of claim 1 , wherein the instructions further include instructions to determine a plurality of virtual positions of the sensor at the time steps from the perspective of the virtual camera, and the instructions to determine the pose include instructions to determine the pose using the virtual positions.
8 . The computer of claim 7 , wherein the instructions to determine the virtual positions include instructions to determine the virtual positions based on the motion data.
9 . The computer of claim 8 , wherein the motion data includes a plurality of actual positions of the sensor at the time steps and a plurality of rotations of the sensor between consecutive ones of the time steps, and the instructions to determine the virtual positions include instructions to determine the virtual positions based on the actual positions and the rotations.
10 . The computer of claim 9 , wherein the virtual positions are products of respective cumulative rotations and the respective actual positions, each cumulative rotation being a product of the rotations from a first one of the time steps to a respective one of the time steps.
11 . The computer of claim 1 , wherein the sensor data includes a plurality of actual pixel locations of the object at the time steps, and the instructions to determine the virtual pixel locations include instructions to determine the virtual pixel locations based on the actual pixel locations.
12 . The computer of claim 11 , wherein the motion data includes a plurality of rotations of the sensor between consecutive ones of the time steps, and the instructions to determine the virtual pixel locations include instructions to determine the virtual pixel locations based on the rotations.
13 . The computer of claim 12 , wherein the virtual pixel locations are products of respective cumulative rotations and the respective actual pixel locations, each cumulative rotation being a product of the rotations from a first one of the time steps to a respective one of the time steps.
14 . The computer of claim 13 , wherein the virtual pixel locations are products of an intrinsic matrix of the sensor, the respective cumulative rotations, an inverse of the intrinsic matrix, and the respective actual pixel locations.
15 . The computer of claim 11 , wherein the instructions further include instructions to apply an undistortion operation on the actual pixel locations, and the instructions to determine the virtual pixel locations include instructions to apply a distortion operation to a result of the undistortion operation on the actual pixel locations.
16 . The computer of claim 1 , wherein the instructions to determine the virtual pixel locations include instructions to determine the virtual pixel locations based on an intrinsic matrix of the sensor.
17 . The computer of claim 1 , wherein the instructions further include instructions to determine that the object is stationary.
18 . The computer of claim 1 , wherein the pose of the object has three spatial dimensions and three rotational dimensions.
19 . The computer of claim 1 , wherein the sensor is a camera.
20 . A method comprising:
receiving sensor data from a sensor indicating an object at a plurality of time steps, the sensor moving while generating the sensor data, the object being stationary;
receiving motion data indicating motion of the sensor at the time steps;
determining a plurality of virtual pixel locations of the sensor at the time steps from a perspective of a virtual camera located at the object based on the sensor data and on the motion data, the virtual pixel locations being pixel locations of the sensor as would be seen in virtual image frames that would be generated by the virtual camera; and
determining a pose of the object using the virtual pixel locations.