1. A computer-implemented method for creating a three-dimensional model, comprising:
receiving, by one or more computing devices, an automatically generated three-dimensional model geocoded within a first field of view of a first camera that tools a first two-dimensional photographic image and geocoded within a second field of view of a second camera that took a second two-dimensional photographic image, wherein a first perspective of the first camera that took the first two-dimensional photographic image is represented by a first set of camera parameters for the first two-dimensional photographic image and a second perspective of the second camera that took the second two-dimensional photographic image is represented by a second set of camera parameters for the second two-dimensional photographic image, wherein the first set of camera parameters includes at least a first focal length associated with the first two-dimensional photographic image and a first capture location at which the first two-dimensional photographic image was captured, wherein the second set of camera parameters includes at least a second focal length associated with the second two-dimensional photographic image and a second capture location at which the second two-dimensional photographic image was captured, wherein the first capture location and the second capture location comprise locations in three-dimensional space, and wherein each of the one or more computing devices comprises one or more processors;
receiving, by the one or more computing devices, a first user input constraint indicating that a feature of the automatically generated three-dimensional model corresponds to a first position on the first two-dimensional photographic image;
receiving, by the one or more computing devices, a second user input constraint indicating that the feature of the automatically generated three-dimensional model corresponds to a second position on the second two-dimensional photographic image;
determining, by the one or more computing devices, a first point in three-dimensional space by extending a first ray from the first capture location through the first position on the first two-dimensional photographic image as indicated by the first user input constraint, the first ray having the first focal length;
determining, by the one or more computing devices, a second point in three-dimensional space by extending a second ray from the second capture location through the second position on the second two-dimensional photographic image as indicated by the second user input constraint, the second ray having the second focal length; and
when the first point in three-dimensional space and the second point in three-dimensional space are located at a same position, altering the automatically generated three-dimensional model such that the feature is located at the same position in three-dimensional space.
2. The method of claim 1, wherein receiving the automatically generated three-dimensional model comprises receiving a plurality of three-dimensional shapes included in the three-dimensional model, and the method further comprising:
receiving, by the one or more computing devices, an input from a user, the input selecting a shape from the plurality of three-dimensional shapes to remove from the three-dimensional model;
in response to the input, removing, by the one or more computing devices, the selected shape from the three-dimensional model.
3. The method of claim 1, further comprising:
receiving, by the one or more computing devices, an input from a user selecting a three-dimensional shape to add to the three-dimensional model; and
in response to the input, adding, by the one or more computing devices, the selected shape from the three-dimensional model.
4. The method of claim 1, wherein the three-dimensional model includes a plurality of three dimensional shapes and is automatically generated from a cloud of points in a three dimensional space.
5. The method of claim 4, wherein each point in the cloud of points is determined using LIDAR.
6. The method of claim 4, wherein each point in the cloud of points is determined using structure-from-motion.
7. The method of claim 1, further comprising:
receiving an input from a user selecting a position on a map;
sending a request to a server with the selected position; and
receiving a response to the request from the server, the response including the first and second two-dimensional photographic images and the automatically generated three-dimensional mode, wherein the three-dimensional model is geocoded in proximity to the position on the map.
8. (canceled)
9. A system for creating a three-dimensional model, the system comprising:
a request module that receives an automatically generated three-dimensional model geocoded within a first field of view of a first camera that took a first two-dimensional photographic image and geocoded within a second field of view of a second camera that took a second two-dimensional photographic image,
wherein a first perspective of the first camera that took the first photographic image is represented by a first set of camera parameters for the first two-dimensional photographic image, and wherein a second perspective of the second camera that took the second photographic image is represented by a second set of camera parameters for the second two-dimensional photographic image;
wherein the first set of camera parameters comprises at least a first focal length and a first capture location at which the first two-dimensional photographic image was captured and the second set of camera parameters comprises at least a second focal length and a second capture location at which the second two-dimensional photographic image was captured, and wherein the first capture location and the second capture location comprise locations in three-dimensional space;
a user constraint module that receives a first user input constraint indicating that a feature of the automatically generated three-dimensional model corresponds to a first position on the first two-dimensional photographic image and receive a second user input constraint indicating that the feature of the automatically generated three-dimensional model corresponds to a second position on the second two-dimensional photographic image; and
a photogrammetry module that, in response to the first and second user input constraints:
determines a first point in three-dimensional space by extending a first ray from the first capture location through the first position on the first two-dimensional photographic image as indicated by the first user input constraint, the first ray having the first focal length;
determines a second point in three-dimensional space by extending a second ray from the second capture location through the second position on the second two-dimensional photographic image as indicated by the second user input constraint, the second ray having the second focal length; and
when the first point in three-dimensional space and the second point in three-dimensional space are located at a same position, alters the automatically generated three-dimensional model such that the feature is located at the same position in three-dimensional space.
10. The system of claim 9, wherein the three-dimensional model includes a plurality of three-dimensional shapes, and further comprising:
a shape removal module that receives an input from a user, the input selecting a shape from the plurality of three-dimensional shapes to remove from the three-dimensional model and, in response to the input, removes the selected shape from the three-dimensional model.
11. The system of claim 9, further comprising:
a shape addition module that receives an input from a user selecting a three-dimensional shape to add to the three-dimensional model and, in response to the input, adds the selected shape from the three-dimensional model.
12. The system of claim 9, wherein the three-dimensional model includes a plurality of three dimensional shapes and is automatically generated from a cloud of points in a three dimensional space.
13. The system of claim 12, wherein each point in the cloud of points is determined using LIDAR.
14. The system of claim 12, wherein each point in the cloud of points is determined using structure-from-motion.
15. The system of claim 9, further comprising:
a mapping service module that receives an input from a user selecting a position on a map,
wherein the request module sends a request to a server with the selected position and receives a response to the request from the server, the response including the first and second two-dimensional photographic images and the automatically generated three-dimensional model, wherein the three dimensional model is geocoded in proximity to the position on the map.
16. (canceled)
17. A non-transitory computer readable storage medium having instructions tangibly stored thereon that, when executed by a computing device, cause the computing device to execute a method for creating a three-dimensional model, the method comprising:
receiving an automatically generated three-dimensional model geocoded within a first field of view of a first camera that took a first two-dimensional photographic image and geocoded within a second field of view of a second camera that took a second two-dimensional photographic image, wherein a first perspective of the first camera that took the first two-dimensional photographic image is represented by a first set of camera parameters for the first two-dimensional photographic image and a second perspective of the second camera that took the second two-dimensional photographic image is represented by a second set of camera parameters for the second two-dimensional photographic image, wherein the first set of camera parameters includes at least a first focal length associated with the first two-dimensional photographic image and a first capture location at which the first two-dimensional photographic image was captured, wherein the second set of camera parameters includes at least a second focal length associated with the second two-dimensional photographic image and a second capture location at which the second two-dimensional photographic image was captured, and wherein the first capture location and the second capture location comprise locations in three-dimensional space;
receiving a first user input constraint indicating that a feature of the automatically generated three-dimensional model corresponds to a first position on the first two-dimensional photographic image;
receiving, by the one or more computing devices, a second user input constraint indicating that the feature of the automatically generated three-dimensional model corresponds to a second position on the second two-dimensional photographic image;
determining, by the one or more computing devices, a first point in three-dimensional space by extending a first ray from the first capture location through the first position on the first two-dimensional photographic image as indicated by the first user input constraint, the first ray having the first focal length;
determining, by the one or more computing devices, a second point in three-dimensional space by extending a second ray from the second capture location through the second position on the second two-dimensional photographic image as indicated by the second user input constraint, the second ray having the second focal length; and
when the first point in three-dimensional space and the second point in three-dimensional space are located at a same position, altering the automatically generated three-dimensional model such that the feature is located at the same position in three-dimensional space.
18. The non-transitory computer readable storage medium of claim 17, wherein receiving the automatically generated three-dimensional model comprises receiving a plurality of three-dimensional shapes included in the three-dimensional model, and the method further comprising:
receiving an input from a user the input selecting a shape from the plurality of three-dimensional shapes to remove from the three-dimensional model;
in response to the input, removing the selected shape from the three-dimensional model.
19. The non-transitory computer readable storage medium of claim 17, the method further comprising:
receiving an input from a user selecting a three-dimensional shape to add to the three-dimensional model; and
in response to the input, adding the selected shape from the three-dimensional model.
20. The non-transitory computer readable storage medium of claim 17, wherein the three-dimensional model includes a plurality of three-dimensional shapes and is automatically generated from a cloud of points in a three-dimensional space.
21. The non-transitory computer readable storage medium of claim 20, wherein each point in the cloud of points is determined using LIDAR.
22. The non-transitory computer readable storage medium of claim 20, wherein each point in the cloud of points is determined using structure-from-motion.
23. The non-transitory computer readable storage medium of claim 17, the method further comprising:
receiving an input from a user selecting a position on a map;
sending a request to a server with the selected position; and
receiving a response to the request from the server, the response including the two-dimensional photographic image and the automatically generated three-dimensional model, wherein the three-dimensional model is geocoded in proximity to the position on the map.
24. (canceled)
25. The method of claim 1, further comprising,
when the first point in three-dimensional space and the second point in three-dimensional space are not located at a same position, performing, by the one or more computing devices, a non-linear optimization problem to solve for both the first and second set of camera parameters and an appropriate position in three-dimensional space for the feature of the three-dimensional model.
26. The system of claim 9, wherein the photogrammetry module performs a non-linear optimization problem to solve for both the first and second set of camera parameters and an appropriate position in three-dimensional space for the feature of the three-dimensional model when the first point in three-dimensional space and the second point in three-dimensional space are not located at a same position.
27. The non-transitory computer readable storage medium of claim 17, wherein the method further comprises, when the first point in three-dimensional space and the second point in three-dimensional space are not located at a same position, performing a non-linear optimization problem to solve for both the first and second set of camera parameters and an appropriate position in three-dimensional space for the feature of the three-dimensional model.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A scarf to be worn by a wearer having a neck a chest and a back comprising:
the scarf being formed from a piece of soft fabric that forms a flat tube that extends 360\xb0 about a vertical axis to encircle the neck of the wearer, said flat tube having radially inner and outer layers that merge into each other to form said tube;
said tube having front and rear portions with said front portion having a height that is greater than a height of said rear portion and said tube having a top and a bottom spaced along the vertical axis and the top of the front portion of the scarf lies inward of the bottom of the front portion of the scarf so that more of said soft fabric will drape onto the chest of the wearer than onto the wearer’s back;
said tube being closed to form a closed pocket that extends 360 degrees around the neck between the inner and outer layers except for having a slit which lies along the top of the front portion with a slit length of a plurality of inches, and including slit fasteners at opposite edges of said slit that can be fastened together to close said slit; and a purse lying in said tube below said slit and being attachable by hangars attached inside the tube to fasteners on the purse.
2. The scarf described in claim 1 wherein:
said scarf is formed from a piece of fabric folded to form said bottom of said tube and said inner and outer layers, said inner and outer layers being joined together thereby forming said closed pocket except along said slit.
3. The scarf of claim 1 wherein the slit fasteners define a zipper.
4. A scarf worn on a person having a neck and a chest, around the person’s neck vertical axis, comprising:
a piece of fabric folded into two layers and into a closed tube with a tube centerline that extends around the vertical axis of the person’s neck, said two layers forming radially inner and outer tube walls said tube having a continuous hollow interior;
said tube has front and rear ends that lie respectively on the person’s chest and behind the person’s neck, said front end having a greater height than said rear end so more of said scarf can drape on the person’s chest than on the person’s back;
said tube having a horizontal slit of a length of a plurality of inches and having a zipper on said slit to allow said slit to be opened and closed;
a purse lying inside said tube, a pair of fasteners on said purse that attach an upper portion of the purse to an inner surface of one of said inner or outer tube walls so when the slit is opened the wearer has access to the purse.
5. The scarf of claim 4 wherein the pair of fasteners attach to corresponding hangers on said one of said inner or outer tube walls.
6. The scarf of claim 5 wherein the corresponding hangers are on the inner tube wall.
7. The scarf of claim 4 wherein the purse is attached to the inner tube wall.