IP Library Granted Patent US 12,620,147
Granted Patent B2
US 12,620,147 · App. 18/770,027 · Granted May 5, 2026

Systems and methods for recognizing hand-drawn shapes

Inventors: Kevin Andrew Wu Won (Sydney, AU); Kerry Jayne Halupka (Kensington, AU); Rowan James Katekar (Randwick, AU)
Assignee: Canva Pty Ltd
G06T11/23G06T3/02G06T7/30
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 12,620,147
App. No.
18/770,027
Granted
May 5, 2026
Kind
B2
Abstract

Described herein is a computer implemented method. The method includes receiving, via an input device, first user input drawing an input shape and generating, based on the first user input, original drawing data that includes an ordered set of points that define the input shape. The original drawing is processed to generate an input vector which also includes an ordered set of points. The input shape is then classified as a first template shape by processing the input vector using a machine learning model. A new shape is then generated based on the first template shape and the original drawing data.

Claims (78)

1 . A computer implemented method for generating a new shape based on a template shape and an input shape, wherein:

the template shape is defined by template shape data that includes an ordered set of template shape points;

the ordered set of template shape points has a defined number of template shape points;

the input shape is defined by input shape data that includes an ordered set of input shape points;

the ordered set of input shape points has the defined number of input shape points; and

the method includes:

receiving original shape data that includes an ordered set of original shape points, wherein the ordered set of original shape points has a first number of original shape points, the first number being different to the defined number;

processing, by a processing unit, the original shape data to generate the input shape data that has the defined number of input shape points;

determining a plurality of test rotation values;

for each test rotation value in the plurality of test rotation values, performing a test that includes:

generating a test shape based on the template shape and the test rotation value; and

calculating a dissimilarity score for the test shape, the dissimilarity score being a measure of dissimilarity between the input shape and the test shape;

determining, based on the dissimilarity scores, a particular test shape that most closely matches the input shape; and

generating the new shape based on the particular test shape.

2 . The computer implemented method of claim 1 , wherein generating the new shape includes:

performing a first test corresponding to a first test rotation value of the plurality of test rotation values, the first test including:

generating a first test shape by rotating the template shape according to the first test rotation value; and

calculating a first dissimilarity score for the first test shape.

3 . The computer implemented method of claim 2 , wherein generating the first test shape further includes translating the template shape.

4 . The computer implemented method of claim 2 , wherein generating the first test shape further includes translating the template shape by:

calculating an input shape centroid;

calculating a template shape centroid; and

translating the template shape so that the template shape centroid equals the input shape centroid.

5 . The computer implemented method of claim 2 , wherein generating the first test shape further includes stretching the template shape.

6 . The computer implemented method of claim 2 , wherein generating the first test shape further includes stretching the template shape in two orthogonal directions.

7 . The computer implemented method of claim 6 , wherein stretching the template shape in two orthogonal directions includes stretching the template shape so an x-coordinate variance of the stretched template shape matches an x-coordinate variance of the input shape and a y-coordinate variance of the stretched template shape matches a y-coordinate variance of the input shape.

8 . The computer implemented method of claim 2 , wherein performing the first test further includes:

generating a plurality of test shape variants, each test shape variant based on the first test shape;

calculating a dissimilarity sub-score for each of the test shape variants, the dissimilarity sub-score for a selected test shape variant being a measure of dissimilarity between the input shape and the selected test shape variant;

and wherein generating the new shape based on the particular test shape includes:

determining, based on the dissimilarity sub-scores, a particular test shape variant that most closely matches the input shape; and

generating the new shape based on the particular test shape variant.

9 . The computer implemented method of claim 8 , wherein generating the plurality of test shape variants based on the first test shape includes generating a first variant by point-order rotating the first test shape.

10 . The computer implemented method of claim 1 , wherein the first number is greater than the defined number.

11 . The computer implemented method of claim 1 , further including processing a vector graphic to generate the template shape data.

12 . The computer implemented method of claim 11 , wherein processing the vector graphic to generate the template shape data includes generating a linear approximation of the vector graphic.

13 . A computer processing system including:

a processing unit; and

a non-transitory computer-readable storage medium storing instructions, which when executed by the processing unit, cause the processing unit to perform a method for generating a new shape based on a template shape and an input shape, wherein:

the template shape is defined by template shape data that includes an ordered set of template shape points;

the ordered set of template shape points has a defined number of template shape points;

the input shape is defined by input shape data that includes an ordered set of input shape points;

the ordered set of input shape points has the defined number of input shape points; and

the method includes:

receiving original shape data that includes an ordered set of original shape points, wherein the ordered set of original shape points has a first number of original shape points, the first number being different to the defined number;

processing the original shape data to generate the input shape data that has the defined number of input shape points;

determining a plurality of test rotation values;

for each test rotation value in the plurality of test rotation values, performing a test that includes:

generating a test shape based on the template shape and the test rotation value; and

calculating a dissimilarity score for the test shape, the dissimilarity score being a measure of dissimilarity between the input shape and the test shape;

determining, based on the dissimilarity scores, a particular test shape that most closely matches the input shape; and

generating the new shape based on the particular test shape.

14 . The computer processing system of claim 13 , wherein generating the new shape includes:

performing a first test corresponding to a first test rotation value of the plurality of test rotation values, the first test including:

generating a first test shape by rotating the template shape according to the first test rotation value; and

calculating a first dissimilarity score for the first test shape.

15 . The computer processing system of claim 14 , wherein generating the first test shape further includes translating the template shape.

16 . The computer processing system of claim 13 , wherein the method further includes processing a vector graphic to generate the template shape data.

17 . A non-transitory storage medium storing instructions executable by processing unit to cause the processing unit to perform a method for generating a new shape based on a template shape and an input shape, wherein:

the template shape is defined by template shape data that includes an ordered set of template shape points;

the ordered set of template shape points has a defined number of template shape points;

the input shape is defined by input shape data that includes an ordered set of input shape points;

the ordered set of input shape points has the defined number of input shape points; and

the method includes:

receiving original shape data that includes an ordered set of original shape points, wherein the ordered set of original shape points has a first number of original shape points, the first number being different to the defined number;

processing the original shape data to generate the input shape data that has the defined number of input shape points;

determining a plurality of test rotation values;

for each test rotation value in the plurality of test rotation values, performing a test that includes:

generating a test shape based on the template shape and the test rotation value; and

calculating a dissimilarity score for the test shape, the dissimilarity score being a measure of dissimilarity between the input shape and the test shape;

determining, based on the dissimilarity scores, a particular test shape that most closely matches the input shape; and

generating the new shape based on the particular test shape.

18 . The non-transitory storage medium of claim 17 , wherein generating the new shape includes:

performing a first test corresponding to a first test rotation value of the plurality of test rotation values, the first test including:

generating a first test shape by rotating the template shape according to the first test rotation value; and

calculating a first dissimilarity score for the first the test shape.

19 . The non-transitory storage medium of claim 18 , wherein generating the first test shape further includes translating the template shape.

20 . The non-transitory storage medium of claim 17 , wherein the method further includes processing a vector graphic to generate the template shape data.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 11, 2024
From: WU WON, KEVIN ANDREW; HALUPKA, KERRY JAYNE; KATEKAR, ROWAN JAMES
To: CANVA PTY LTD
Reel/Frame 068107/0749 →
Priority Claims (1)
AU 2023201533 · Mar 13, 2023 · national
Continuity (2)
Continuation 18599906 · Mar 8, 2024
Related Publication 20240362839A1 · Oct 31, 2024
References Cited (29)
US 6094506A · Hullender · 2000 [cited by applicant]
US 6275611B1 · Parthasarathy · 2001 [cited by examiner]
US 9274693B2 · Moore et al. · 2016 [cited by applicant]
US 10133949B2 · Taranta et al. · 2018 [cited by applicant]
US 10168899B1 · Feiszli et al. · 2019 [cited by applicant]
US 10372321B2 · Le et al. · 2019 [cited by applicant]
US 10885683B1 · Batra et al. · 2021 [cited by applicant]
US 11037341B1 · Gori et al. · 2021 [cited by applicant]
US 11188223B2 · Angelov et al. · 2021 [cited by applicant]
US 20020037105A1 · Michael · 2002 [cited by examiner]
US 20040247182A1 · Wenzel · 2004 [cited by examiner]
US 20050015250A1 · Davis · 2005 [cited by applicant]
US 20080144942A1 · Besley · 2008 [cited by examiner]
US 20110141301A1 · Raghoebardajal et al. · 2011 [cited by applicant]
US 20120230586A1 · Blennerhassett · 2012 [cited by applicant]
US 20140104201A1 · Tsutsui · 2014 [cited by examiner]
US 20150199583A1 · Nagatomo · 2015 [cited by examiner]
US 20170061636A1 · Nordback · 2017 [cited by examiner]
US 20210225180A1 · S · 2021 [cited by examiner]
US 20210278965A1 · Mélinand et al. · 2021 [cited by applicant]
US 20230131541A1 · Boezaart et al. · 2023 [cited by applicant]
US 20240153298A1 · Fang · 2024 [cited by examiner]
WO 2022083844A1 · 2022 [cited by applicant]
Examination Report No. 1 for Australian Application No. 2023201533 mailed May 30, 2023, pp. 1-5. [cited by applicant]
Examination Report No. 1 for Australian Application No. 2023201991 mailed Nov. 28, 2023, pp. 1-4. [cited by applicant]
Examination Report No. 1 for Australian Application No. 2023201983 mailed Oct. 31, 2023, pp. 1-5. [cited by applicant]
Video transcript generated by YouTube, How to use Quickshape in Procreate, https://www.youtube.com/watch?v=ogP1X6PjRSQ, Published on Jun. 11, 2021, (last visited on internet on Oct. 30, 2023), pp. 1-4. [cited by applicant]
Ramer-Douglas-Peucker Algorithm Wikipedia Page, https://en.wikipedia.org/w/index.php?title=Ramer-Douglas-Peucker_algorithm&oldid=1107863277 (last visited Sep. 30, 2024), pp. 1-4. [cited by applicant]
European Search Report for EP24163132 mailed Aug. 8, 2024, pp. 1-8. [cited by applicant]