9. A non-transitory computer-readable storage medium comprising executable instructions that when executed by a processor of a computer system, cause the computer system to perform a method to determine a layout of a document, the method comprising: receiving an image of the document; receiving an identifier of a user; prior to performing an image analysis on the image, selecting an initial layout of the document based on the identifier; performing the image analysis on the image to calculate features, wherein the features include binary robust invariant scalable keypoints or fast retina keypoints; determining a layout of the document based on the calculated features, as well as spatial constraints and grammatical constraints associated with the initial layout, wherein the layout specifies locations of content in the document; sending information specifying the determined layout to the user; requesting feedback from the user regarding the determined layout; receiving the requested feedback, wherein the feedback confirms that the determined layout matches the document; populating fields in a form with the content, wherein the form matches the determined layout such that the content appears in the specified locations in the form; and sending the form for presentation on a display in the determined layout to the user.
10. The non-transitory computer-readable storage medium of claim 9 , wherein the image analysis includes optical character recognition.