IP Library Granted Patent US 10,902,254
Granted Patent B2
US 10,902,254 · App. 16/196,378 · Granted Jan 26, 2021

Converting a captured image of a layout to a structured document template

Inventors: Rahmaan Lodhia (Johns Creek, GA); Jeffrey Geiger (Denver, CO); Michael Diffenderfer (Atlanta, GA)
Assignee: salesforce.com, inc.
G06K9/00476G06F40/106G06F40/14G06F40/186G06K9/00463G06K9/00469G06K9/6217G06N20/00G06T7/70G06K2209/01G06T2207/30176
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,902,254
App. No.
16/196,378
Granted
Jan 26, 2021
Kind
B2
Abstract

Described is a system and method for converting a drawing (or captured image) of a layout using a trained image analysis model (or engine) into a structured document template. The mechanism may allow a user to create a hand-drawn diagram of a layout that can be automatically converted into a template for a document. For example, the hand-drawn diagram may be of a layout for an email which the mechanism may automatically convert into HTML code for an email template within a building tool. The building tool may then use the converted email template as part of an automated email marketing procedure. Accordingly, the mechanism provides the ability for a user to conveniently create a template and forego the process of using only programming code or visual tools.

Claims (50)

1. A system comprising:

one or more processors; and

a non-transitory computer readable medium storing a plurality of instructions, which when executed, cause the one or more processors to:

receive, by the system, an image of a hand-drawn layout to be used as a template for a document;

recognize, within the image of the hand-drawn layout, one or more section identifiers and a content identifier associated with each section identifier, each section identifier defining a section within the template for the document and each content identifier specifying a content type, the recognizing being performed by applying a trained image analysis model to the image of the hand-drawn layout;

determine, for each section identifier, a position of the defined section within the template for the document, at least one position for at least one defined section being based on at least one previous position within a previous document template generated for a previous hand-drawn layout image or based on an automatic alignment of the at least one defined section in the image of the hand-drawn layout to the at least one position in a grid associated with the template for the document;

identify, for each content identifier, a content type to be displayed within the defined section of the associated section identifier, at least one content type being identified based on a type of the document that is explicitly identified for the image of the hand-drawn layout by a system user or predicted by a machine-learning component that recognizes at least one content identifier and at least one section identifier in the image of the hand-drawn layout;

generate the template for the document using a markup language to display each identified content type within the defined section at the determined position; and

cause a visual preview of the created template for the document to be displayed within the building tool.

2. The system of claim 1 , wherein the instructions to recognize the one or more section identifiers and the content identifier associated with each section identifier further include instructions to:

recognize a first section identifier based on one or more delimiting lines defining a first section within the template for the document; and

recognize a first content identifier is associated with the first section identifier based on the first content identifier being located within the first section defined by the one or more delimiting lines.

3. The system of claim 2 , wherein the one or more delimiting lines defining the first section substantially enclose an area within the template for the document.

4. The system of claim 2 , wherein the one or more delimiting lines defining the first section substantially divide the template for the document into a plurality of sections.

5. The system of claim 1 , wherein the instructions to identify the content type for each content identifier further include instructions to:

recognize a portion of text as the content identifier; and

identify the content type from the recognized portion of text.

6. The system of claim 1 , wherein the markup language comprises Hypertext Markup Language (HTML) and the identified content types includes at least a text content type and an image content type.

7. The system of claim 1 , the plurality of instructions when executed further causing the one or more processors to:

cause the visual preview of the created template for the document to be displayed within a first screen of the building tool; and

cause an editable markup language preview of the created template for the document to be displayed within a second screen of the building tool.

8. A computer program product comprising computer-readable program code to be executed by one or more processors when retrieved from a non-transitory computer-readable medium, the program code including instructions to:

receive, by the system, an image of a hand-drawn layout to be used as a template for a document;

recognize, within the image of the hand-drawn layout, one or more section identifiers and a content identifier associated with each section identifier, each section identifier defining a section within the template for the document and each content identifier specifying a content type, the recognizing being performed by applying a trained image analysis model to the image of the hand-drawn layout;

determine, for each section identifier, a position of the defined section within the template for the document, at least one position for at least one defined section being based on at least one previous position within a previous document template generated for a previous hand-drawn layout image or based on an automatic alignment of the at least one defined section in the image of the hand-drawn layout to the at least one position in a grid associated with the template for the document;

identify, for each content identifier, a content type to be displayed within the defined section of the associated section identifier, at least one content type being identified based on a type of the document that is explicitly identified for the image of the hand-drawn layout by a system user or predicted by a machine-learning component that recognizes at least one content identifier and at least one section identifier in the image of the hand-drawn layout;

generate the template for the document using a markup language to display each identified content type within the defined section at the determined position; and

cause a visual preview of the created template for the document to be displayed within the building tool.

9. The computer program product of claim 8 , wherein the instructions to recognize the one or more section identifiers and the content identifier associated with each section identifier further include instructions to:

recognize a first section identifier based on one or more delimiting lines defining a first section within the template for the document; and

recognize a first content identifier is associated with the first section identifier based on the first content identifier being located within the first section defined by the one or more delimiting lines.

10. The computer program product of claim 9 , wherein the one or more delimiting lines defining the first section substantially divide the template for the document into a plurality of sections.

11. The computer program product of claim 8 , wherein the instructions to identify the content type for each content identifier further include instructions to:

recognize a portion of text as the content identifier; and

identify the content type from the recognized portion of text.

12. The computer program product of claim 8 , wherein the markup language comprises Hypertext Markup Language (HTML) and the identified content types includes at least a text content type and an image content type.

13. A method comprising:

recognizing, within the image of the hand-drawn layout, one or more section identifiers and a content identifier associated with each section identifier, each section identifier defining a section within the template for the document and each content identifier specifying a content type, the recognizing being performed by applying a trained image analysis model to the image of the hand-drawn layout;

determining, for each section identifier, a position of the defined section within the template for the document, at least one position for at least one defined section being based on at least one previous position within a previous document template generated for a previous hand-drawn layout image or based on an automatic alignment of the at least one defined section in the image of the hand-drawn layout to the at least one position in a grid associated with the template for the document;

identifying, for each content identifier, a content type to be displayed within the defined section of the associated section identifier, at least one content type being identified based on a type of the document that is explicitly identified for the image of the hand-drawn layout by a system user or predicted by a machine-learning component that recognizes at least one content identifier and at least one section identifier in the image of the hand-drawn layout;

generating the template for the document using a markup language to display each identified content type within the defined section at the determined position; and

causing a visual preview of the created template for the document to be displayed within the building tool.

14. The method of claim 13 , wherein recognizing the one or more section identifiers and the content identifier associated with each section identifier includes:

recognizing a first section identifier based on one or more delimiting lines defining a first section within the template for the document; and

recognizing a first content identifier is associated with the first section identifier based on the first content identifier being located within the first section defined by the one or more delimiting lines.

15. The method of claim 14 , wherein the one or more delimiting lines defining the first section substantially divide the template for the document into a plurality of sections.

16. The method of claim 13 , wherein identifying the content type for each content identifier includes:

recognizing a portion of text as the content identifier; and

identifying the content type from the recognized portion of text.

17. The method of claim 13 , wherein the markup language comprises Hypertext Markup Language (HTML) and the identified content types includes at least a text content type and an image content type.

Assignments (2)
CHANGE OF NAME Recorded Sep 20, 2023
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 064975/0956 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2018
From: LODHIA, RAHMAAN; GEIGER, JEFFREY; DIFFENDERFER, MICHAEL
To: SALESFORCE.COM, INC.
Reel/Frame 047554/0581 →
Continuity (2)
Provisional Application 62736996 · Sep 26, 2018
Related Publication 20200097719A1 · Mar 26, 2020
Cited By (1)
US 12,339,920