Location correction of virtual objects
A computer-implemented method is provided for use in location correction of virtual objects in a virtual model of a real-world scene. Location of an object consists of both position and orientation of the virtual object. The method includes generating the virtual model, including a virtual object, and acquiring at least one digital image of a real-world object within the real-world scene, wherein the real-world object corresponds to the virtual object. The method also includes calculating an image-based positional difference between at least one predefined point on the virtual object and at least one corresponding point on the real-world object, adjusting the position and/or the orientation of the virtual object based on this image positional difference, and adjusting the virtual model with respect to the corrected location of the virtual object.
1. A computer-implemented method for use in location correction of a virtual model of a real-world scene, said computer-implemented method comprising:
by a processor coupled to a memory area storing the virtual model and a virtual object in the virtual model, the virtual model representing the real-world scene, said processor:
generating the virtual model, including the virtual object;
acquiring at least one digital image of a real-world object within the real-world scene, wherein the real-world object corresponds to the virtual object;
calculating an image-based positional difference between at least one predefined point on the virtual object and at least one corresponding point on the real-world object;
adjusting at least one of a position and an orientation of the virtual object based on the calculated image-based positional difference such that a corrected location of the virtual object with respect to the virtual model corresponds to a location of the real-world object in the real-world scene; and
adjusting the virtual model with respect to the corrected location of the virtual object.
2. A computer-implemented method in accordance with claim 1 , wherein generating the virtual model comprises calculating a location transform for the virtual object based on a plurality of identifiable points on the virtual object.
3. A computer-implemented method in accordance with claim 2 , wherein calculating the location transform comprises receiving a user selection of at least a portion of the plurality of identifiable points.
4. A computer-implemented method in accordance with claim 1 , wherein generating the virtual model comprises:
identifying the virtual object and a corresponding reference object; and
identifying the at least one predefined point on the virtual object and at least one corresponding point on the reference object.
5. A computer-implemented method in accordance with claim 4 , further comprising a programmatic adjustment of a virtual view so as to substantially match the at least one corresponding point on the reference object with at least one corresponding point on a real-world reference object.
6. A computer-implemented method in accordance with claim 4 , further comprising:
programmatic adjustment of a virtual view; and
calculating the image-based positional difference between the at least one predefined point on the virtual object and the at least one corresponding point on the real-world object for the acquired at least one digital image.
7. A computer-implemented method in accordance with claim 6 , further comprising minimizing the image-based positional difference by iterating on a location transform that is used to generate the virtual model.
8. A computer for use in location correction of a virtual model of a real-world scene, said computer comprising:
a memory area configured to store the virtual model and a virtual object in the virtual model, the virtual model representing the real-world scene; and
a processor coupled to said memory area, said processor configured to:
generate the virtual model, including the virtual object;
acquire at least one digital image of a real-world object within the real-world scene, wherein the real-world object corresponds to the virtual object;
calculate an image-based positional difference between at least one predefined point on the virtual object and at least one corresponding point on the real-world object;
adjust at least one of a position and an orientation of the virtual object based on the calculated image-based positional difference such that a corrected location of the virtual object with respect to the virtual model corresponds to a location of the real-world object in the real-world scene; and
adjust the virtual model with respect to the corrected location of the virtual object.
9. A computer in accordance with claim 8 , wherein said processor is further configured to calculate a location transform for the virtual object based on a plurality of identifiable points on the virtual object.
10. A computer in accordance with claim 9 , wherein said processor is further configured to receive a user selection of at least a portion of the plurality of identifiable points.
11. A computer in accordance with claim 8 , wherein said processor is further configured to:
identify the virtual object and a corresponding reference object; and
identify the at least one predefined point on the virtual object and at least one corresponding point on the reference object.
12. A computer in accordance with claim 11 , wherein said processor is further configured to programmatically adjust a virtual view so as to substantially match the at least one corresponding point on the reference object with at least one corresponding point on a real-world reference object.
13. A computer in accordance with claim 11 , wherein said processor is further configured to:
programmatically adjust a virtual view so as to substantially match the at least one corresponding point on the reference object with at least one corresponding point on a real-world reference object; and
calculate the image-based positional difference between the at least one predefined point on the virtual object and the at least one corresponding point on the real-world object for the acquired at least one digital image.
14. A computer in accordance with claim 13 , wherein said processor is further configured to minimize the image-based positional difference by iterating on a location transform used to generate the virtual model.
15. A computer program product comprising:
one or more non-transitory computer-readable storage media having computer-executable components for use in location correction of a virtual model of a real-world scene, said components comprising:
a generation component that when executed by a processor causes the processor to generate the virtual model, including a virtual object;
an acquisition component that when executed by a processor causes the processor to acquire at least one digital image of a real-world object within the real-world scene, wherein the real-world object corresponds to the virtual object; and
a correction component that when executed by a processor causes the processor to:
calculate an image-based positional difference between at least one predefined point on the virtual object and at least one corresponding point on the real-world object;
adjust at least one of a position and an orientation of the virtual object based on the calculated image-based positional difference such that a corrected location of the virtual object with respect to the virtual model corresponds to a location of the real-world object in the real-world scene; and
adjust the virtual model with respect to the corrected location of the virtual object.
16. A computer program product in accordance with claim 15 , wherein said generation component further causes the processor to:
receive a user selection of at least a portion of a plurality of identifiable points on the virtual object; and
calculate a location transform for the virtual object based on the plurality of identifiable points.
17. A computer program product in accordance with claim 15 , wherein said generation component further causes the processor to:
identify the virtual object and a corresponding reference object; and
identify the at least one predefined point on the virtual object and at least one corresponding point on the reference object.
18. A computer program product in accordance with claim 17 , wherein said correction component further causes the processor to programmatically adjust a virtual view so as to substantially match the at least one corresponding point on the reference object with at least one corresponding point on a real-world reference object.
19. A computer program product in accordance with claim 17 , wherein said correction component further causes the processor to:
programmatically adjust a virtual view; and
calculate the image-based positional difference between the at least one corresponding point on the reference object and at least one corresponding point on a real-world reference object for the acquired at least one digital image.
20. A computer program product in accordance with claim 19 , wherein said correction component further causes the processor to minimize the image-based positional difference by iterating on a location transform used by the generation component to generate the virtual model.