A computer system configured to automatically calibrate a camera, said computer system comprising: one or more processors; and one or more computer-readable hardware storage devices that store instructions that are executable by the one or more processors to cause the computer system to at least: analyze an image to identify an object of a particular type, said analyzing includes identifying a first set of key points of the object; generate a virtual object of the same particular type as the object, the virtual object being associated with a second set of key points; fit a reprojected version of the second set of key points to the first set of key points in two-dimensional space by repeatedly performing the following operations one or more times: generate a 3D alignment of the second set of key points, said 3D alignment being generated in an attempt to fit, in 2D space, the second set of key points with the first set of key points subsequent to the second set of key points being reprojected into the 2D space; while the second set of key points are in the 3D alignment, reproject the second set of key points into the 2D space; in response to comparing the reprojected second set of key points to the first set of key points in the 2D space, determine a fitting error between the reprojected second set of key points and the first set of key points; select a specific 3D alignment of the second set of key points, said specific 3D alignment being associated with a corresponding fitting error of the reprojected second set of key points having a smallest fitting error when compared to other computed fitting errors; identify reprojection parameters associated with the specific 3D alignment of the second set of key points; and use the reprojection parameters to calibrate a camera that generated the image. one or more processors; and one or more computer-readable hardware storage devices that store instructions that are executable by the one or more processors to cause the computer system to at least: analyze an image to identify an object of a particular type, said analyzing includes identifying a first set of key points of the object; generate a virtual object of the same particular type as the object, the virtual object being associated with a second set of key points; fit a reprojected version of the second set of key points to the first set of key points in two-dimensional space by repeatedly performing the following operations one or more times: generate a 3D alignment of the second set of key points, said 3D alignment being generated in an attempt to fit, in 2D space, the second set of key points with the first set of key points subsequent to the second set of key points being reprojected into the 2D space; while the second set of key points are in the 3D alignment, reproject the second set of key points into the 2D space; in response to comparing the reprojected second set of key points to the first set of key points in the 2D space, determine a fitting error between the reprojected second set of key points and the first set of key points; select a specific 3D alignment of the second set of key points, said specific 3D alignment being associated with a corresponding fitting error of the reprojected second set of key points having a smallest fitting error when compared to other computed fitting errors; identify reprojection parameters associated with the specific 3D alignment of the second set of key points; and use the reprojection parameters to calibrate a camera that generated the image. analyze an image to identify an object of a particular type, said analyzing includes identifying a first set of key points of the object; generate a virtual object of the same particular type as the object, the virtual object being associated with a second set of key points; fit a reprojected version of the second set of key points to the first set of key points in two-dimensional space by repeatedly performing the following operations one or more times: generate a 3D alignment of the second set of key points, said 3D alignment being generated in an attempt to fit, in 2D space, the second set of key points with the first set of key points subsequent to the second set of key points being reprojected into the 2D space; while the second set of key points are in the 3D alignment, reproject the second set of key points into the 2D space; in response to comparing the reprojected second set of key points to the first set of key points in the 2D space, determine a fitting error between the reprojected second set of key points and the first set of key points; generate a 3D alignment of the second set of key points, said 3D alignment being generated in an attempt to fit, in 2D space, the second set of key points with the first set of key points subsequent to the second set of key points being reprojected into the 2D space; while the second set of key points are in the 3D alignment, reproject the second set of key points into the 2D space; in response to comparing the reprojected second set of key points to the first set of key points in the 2D space, determine a fitting error between the reprojected second set of key points and the first set of key points; select a specific 3D alignment of the second set of key points, said specific 3D alignment being associated with a corresponding fitting error of the reprojected second set of key points having a smallest fitting error when compared to other computed fitting errors; identify reprojection parameters associated with the specific 3D alignment of the second set of key points; and use the reprojection parameters to calibrate a camera that generated the image.