Prosecution Insights
Last updated: October 02, 2026
Application No. 18/975,617

CORNER AWARE VECTOR PATH IMITATION WITH DYNAMIC OFFSET

Non-Final OA §102§112
Filed
Dec 10, 2024
Examiner
RIVERA-MARTINEZ, GUILLERMO M
Art Unit
2677
Tech Center
2600 — Communications
Assignee
Adobe Inc.
OA Round
1 (Non-Final)
78%
Grant Probability
Favorable
1-2
OA Rounds
9m
Est. Remaining
81%
With Interview

Examiner Intelligence

Grants 78% — above average
78%
Career Allowance Rate
401 granted / 514 resolved
+16.0% vs TC avg
Minimal +3% lift
Without
With
+3.3%
Interview Lift
resolved cases with interview
Typical timeline
2y 6m
Avg Prosecution
32 currently pending
Career history
547
Total Applications
across all art units

Statute-Specific Performance

§101
5.9%
-34.1% vs TC avg
§103
44.5%
+4.5% vs TC avg
§102
22.6%
-17.4% vs TC avg
§112
25.0%
-15.0% vs TC avg
Black line = Tech Center average estimate • Based on career data from 514 resolved cases

Office Action

§102 §112
DETAILED ACTION This Office action is in response to the Application filed on December 10, 2024. An action on the merits follows. Claims 1-20 are pending on the application. Notice of Pre-AIA or AIA Status The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status. Claim Rejections - 35 USC § 112 The following is a quotation of 35 U.S.C. 112(b): (b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention. The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph: The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention. Claims 8-15 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention. Claim 8 recites the limitation “partitioning the reference edge into a plurality of triple point sets” in lines 6-7 of the claim. However, the claimed “triple point sets” term recited in line 7 of the claim is not defined by the claim. Additionally, although claim 13 recites “a first triple point set of the plurality of triple point sets” and defines the “first triple point set of the plurality of triple point sets” as “comprising a segment location, a location of an in-tangent, and a location of an out-tangent” in lines 2-3 of claim 13, for example, the claimed “plurality of triple point sets” remains undefined and it is not clear if the claimed “plurality of triple point sets” encompass additional elements other than the claimed “segment location”, “location of an in-tangent”, and “location of an out-tangent” of the claimed “first triple point set of the plurality of triple point sets” recited in lines 2-3 of claim 13, for example. Therefore, based on above, the metes and bounds of the claim are not clearly set forth and the examiner cannot clearly determine which elements are encompassed by the claim language, which renders the claim indefinite. Claims 9-15 are rejected by virtue of being dependent upon rejected base claim 8. Claim 13 recites the limitation “determining a first triple point set of the plurality of triple point sets, the first triple point set comprising a segment location, a location of an in-tangent, and a location of an out-tangent” in lines 2-3 of the claim. However, it is not clear if the claimed “segment location” recited in line 2 of claim 13 encompass embodiments corresponding to any of the claimed “plurality of reference edge segments” previously recited in line 6 of claim 8, or if the claimed “segment location” recited in line 2 of claim 13 encompass embodiments corresponding to other “segments” different from any of the claimed “plurality of reference edge segments” previously recited in line 6 of claim 8, for example. Additionally, the claimed “location of an in-tangent” and “location of an out-tangent” terms recited in line 3 of claim 13 are not defined by the claim and it is not clear if, or how, they relate to the claimed “plurality of reference edge segments” previously recited in line 6 of claim 8, for example. Therefore, based on above, the metes and bounds of the claim are not clearly set forth and the examiner cannot clearly determine which elements are encompassed by the claim language, which renders the claim indefinite. Claim Rejections - 35 USC § 102 The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action: A person shall be entitled to a patent unless – (a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale or otherwise available to the public before the effective filing date of the claimed invention. (a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention. Claims 1-5 and 16-17 are rejected under 35 U.S.C. 102(a)(1) and 102(a)(2) as being anticipated by Savant et al. (US PG Publication No. 2023/0351650 A1), hereafter referred to as Savant. Regarding claim 1, Savant discloses a method (Par. [0003]: a computer-implemented method) comprising: extracting, from a digital image, a set of reference edge segments by segmenting a reference edge depicted in the digital image (Par. [0003-5]: method includes classifying each contour point in a particular one of the contours as a curve region contour point or a corner region contour point, thereby segmenting the particular contour into plurality of curve regions separated from one another by corner regions… the method includes classifying each contour point of every contour as a point that belongs to either a curve region or a corner region, thereby segmenting the contour into plurality of curve regions separated from one another by corner regions… receive a digital representation of an image, and generate contours based on the digital representation of the image. Each contour includes a sequence of points that follows a path that corresponds to a boundary in the image. The system further classifies each contour point in every contour as belonging to a “curve region” or a “corner region”, thereby segmenting the entire contour into a plurality of curve regions separated from one another by corner regions; Par. [0093-97]: contour generator 216 generates contours based on the preprocessed version of the image (at 446)… the contours are generated utilizing contour generating functionality available in the library 217 (e.g., the OpenCV™ software library)… the contours are generated based on the preprocessed image using an algorithm available (e.g., the findContour( ) function that helps in extracting the contours from an image) in the OpenCV™ software library… Circle fitting is based on finding the smallest circle that encloses the given contour points… compute the contour area which is done using the OpenCV API function contourArea( )… generating contours (at 446) from the image shown in FIG. 5. Contours are curves and not a sequence of points—but there is no generic way to represent contours as curves while using OpenCV. So the system here provides (or represents) contours in the form of sequences of points… As shown in FIG. 8, the visual representation 880 includes sequences of points that follow paths that correspond to boundaries in the image of FIG. 5; extracting, from a digital image, a set of reference edge segments by segmenting a reference edge depicted in the digital image (e.g. computer-implemented method includes finding (i.e. extracting, identifying, separating, etc.) contours (i.e. edges, outlines, boundaries, shapes, etc.) in the form of sequences of points (i.e. a set of reference edge segments), or contour points, for example, by receiving a digital representation of an image (i.e. a digital image), and generating contours based on the digital representation of the image (i.e. extracting, from a digital image, a set of reference edge segments by segmenting a reference edge depicted in the digital image), as indicated above), for example); determining a corner within the reference edge by classifying a reference edge segment among the set of reference edge segments as a corner segment (Par. [0003-5]: method includes classifying each contour point in a particular one of the contours as a curve region contour point or a corner region contour point, thereby segmenting the particular contour into plurality of curve regions separated from one another by corner regions. The curve regions are made up of curve region contour points only and the corner regions are made up of corner region contour points… the method includes classifying each contour point of every contour as a point that belongs to either a curve region or a corner region, thereby segmenting the contour into plurality of curve regions separated from one another by corner regions… receive a digital representation of an image, and generate contours based on the digital representation of the image. Each contour includes a sequence of points that follows a path that corresponds to a boundary in the image. The system further classifies each contour point in every contour as belonging to a “curve region” or a “corner region”, thereby segmenting the entire contour into a plurality of curve regions separated from one another by corner regions. This classification is achieved by a unique application of the LSTM network (Long Short Term Memory network). The curve regions are made up of curve region contour points (i.e., contour points in a curve region) only and the corner regions are made up of corner region contour points (i.e., contour points in a corner region) only; Par. [0093-108]: contour generator 216 generates contours based on the preprocessed version of the image (at 446)… the contours are generated utilizing contour generating functionality available in the library 217 (e.g., the OpenCV™ software library)… the contours are generated based on the preprocessed image using an algorithm available (e.g., the findContour( ) function that helps in extracting the contours from an image) in the OpenCV™ software library… Circle fitting is based on finding the smallest circle that encloses the given contour points… compute the contour area which is done using the OpenCV API function contourArea( )… generating contours (at 446) from the image shown in FIG. 5. Contours are curves and not a sequence of points—but there is no generic way to represent contours as curves while using OpenCV. So the system here provides (or represents) contours in the form of sequences of points… As shown in FIG. 8, the visual representation 880 includes sequences of points that follow paths that correspond to boundaries in the image of FIG. 5. More specifically, the sequence of points in FIG. 8 include a first sequence of points 882 that follow a path that corresponds to the outer boundary (552) of the image, a second and third sequence of point 884a, 884b that follow paths that correspond to the internal circles 554a, 554b of the image, and a fourth sequence of points 886 that follows a path that corresponds to the single internal ellipse 556 in the image… contour point classifier 224 (at 456) classifies each contour point into either “curve region” contour points or “corner region” contour points… “corner region” contour points are contour points that exist at inflection points (see FIG. 11A), corner points or tangency points (see FIG. 11B), or curve end points (see FIG. 11C), whereas “curve region” contour points include all other contour points (i.e., any contour points that fall between two adjacent sets of “corner region” contour points… output classifications for each contour point as being a “curve region” contour point or a “corner region” contour point based on the input features (or descriptors) for that contour point; determining a corner within the reference edge by classifying a reference edge segment among the set of reference edge segments as a corner segment (e.g. computer-implemented method includes finding (i.e. extracting, identifying, separating, etc.) contours (i.e. edges, outlines, boundaries, shapes, etc.) in the form of sequences of points (i.e. a set of reference edge segments), or contour points, for example, by receiving a digital representation of an image (i.e. a digital image), and generating contours based on the digital representation of the image, for example, and the method includes classifying each contour point in a particular one of the contours as a curve region contour point or a corner region contour point (i.e. determining a corner within the reference edge by classifying a reference edge segment among the set of reference edge segments as a corner segment), thereby segmenting the particular contour into plurality of curve regions separated from one another by corner regions, as indicated above), for example); and generating, for display, an imitation edge following a shape of the reference edge and including an imitation corner positioned according to the corner within the reference edge (Par. [0003-5]: method includes classifying each contour point in a particular one of the contours as a curve region contour point or a corner region contour point, thereby segmenting the particular contour into plurality of curve regions separated from one another by corner regions. The curve regions are made up of curve region contour points only and the corner regions are made up of corner region contour points… the method includes classifying each contour point of every contour as a point that belongs to either a curve region or a corner region, thereby segmenting the contour into plurality of curve regions separated from one another by corner regions… receive a digital representation of an image, and generate contours based on the digital representation of the image. Each contour includes a sequence of points that follows a path that corresponds to a boundary in the image. The system further classifies each contour point in every contour as belonging to a “curve region” or a “corner region”, thereby segmenting the entire contour into a plurality of curve regions separated from one another by corner regions… The curve regions are made up of curve region contour points (i.e., contour points in a curve region) only and the corner regions are made up of corner region contour points (i.e., contour points in a corner region) only. The system further fits a curve to each one of the curve regions; Par. [0053]: “contour” is a curve, including a digital representation thereof, that follows a path that corresponds to a boundary in an image. Multiple different contours may be generated from a single image; Par. [0077]: computer 100 is connected to a display device (e.g., via the I/O device interface 110) and configured to present at the display device a visual representation of an interface; Par. [0096-97]: FIG. 8 shows an example of a visual representation 880 that the computer 100 might produce while generating contours (at 446) from the image shown in FIG. 5. Contours are curves and not a sequence of points—but there is no generic way to represent contours as curves while using OpenCV. So the system here provides (or represents) contours in the form of sequences of points… As shown in FIG. 8, the visual representation 880 includes sequences of points that follow paths that correspond to boundaries in the image of FIG. 5. More specifically, the sequence of points in FIG. 8 include a first sequence of points 882 that follow a path that corresponds to the outer boundary (552) of the image, a second and third sequence of point 884a, 884b that follow paths that correspond to the internal circles 554a, 554b of the image, and a fourth sequence of points 886 that follows a path that corresponds to the single internal ellipse 556 in the image; Par. [0136-141]: FIG. 24 shows an example of curves (e.g., lines, arcs, splines, circles and ellipses) having been applied to the curve regions of the contour 882 on an image coordinate system. More specifically, the curves in the illustrated example include lines 2402, arcs 2404, circles 2406 and ellipses 2408. Each respective curve in the illustrated example is optimally fitted through a sequence of contour points that would have been classified previously as “curve region” contour points, using the LSTM. There are no curves or other graphical elements in the illustrated that correspond to the “corner region” contour points. Therefore, in the illustrated example, only the “corner region” contour points themselves are visible in the corner regions of the contour 88… the computer 100 may be configured to present an image of the FIG. 24 likeness at the computer's display… refine algorithm can be invoked either based on the computer's evaluation of the fitness metric (e.g., if the fit is no good at 462) or by a human user selecting a curve to be refined and invoking the refine algorithm to perform refinement on the selected. There are a variety of ways in which the computer 100 might enable a human user to select the curve and invoke the refine algorithm. For example, the computer 100 may enable a human user to select a curve by presenting a visual representation of the image with any applied curves (e.g., as shown in the upper left corner of FIG. 20) on the computer's display screen; Par. [0172]: computer 100 (at 2204) displays (e.g., on the computer's display) the fitted curves and any shapes (e.g., circles, ellipses, etc.) and any computed corner points and connectors as temporary sketch-preview entities. These are marked as temporary because they can be previewed and modified by the user before they are converted into final sketch entities for downstream modeling operations. These temporary sketch-preview entities are displayed in the CAD view coordinate space; generating, for display, an imitation edge following a shape of the reference edge and including an imitation corner positioned according to the corner within the reference edge (e.g. computer-implemented method includes finding (i.e. extracting, identifying, separating, etc.) contours (i.e. edges, outlines, boundaries, shapes, etc.) in the form of sequences of points (i.e. set of reference edge segments), or contour points, for example, by receiving a digital representation of an image (i.e. a digital image), and generating contours based on the digital representation of the image, for example, and classifying each contour point in a particular one of the contours as a curve region contour point or a corner region contour point, for example, in which each contour includes a sequence of points that follows (i.e. imitates) a path that corresponds to a boundary in the image (i.e. an imitation edge following a shape of the reference edge and including an imitation corner positioned according to the corner within the reference edge), for example, including a visual representation that includes sequences of points that follow paths that correspond to boundaries in the image and a computer connected to a display device configured to present at the display device the visual representation (i.e. generating, for display, an imitation edge following a shape of the reference edge and including an imitation corner positioned according to the corner within the reference edge), as indicated above), for example). Regarding claim 2, claim 1 is incorporated and Savant discloses the method (Par. [0003-5]), wherein determining the corner within the reference edge comprises: generating a bisector line that bisects two vector paths joined at the corner (Par. [0055-56]: “corner” is a point where multiple curves intersect to create a sharp region. Two arcs could intersect at a corner point, a line and an arc could intersect at a corner point, or a line and a spline could intersect at a corner point. Also, there could be more than two curves that would intersect at a corner… “tangency point” or a “point of tangency” is a point where two curves meet in such a way that their slopes are identical at the point of intersection; Par. [0150-168]: results of the refine operation, which include a new corner region, which resulted from the associated contour points being reclassified in the refine operation from “curve region” contour points to “corner region” contour points, and two new curves… the computer 100 proceeds to 466 and finds intersections of adjacent curves… for each corner region (2102), the computer 100 (at 2104) solves the equations for both of the fitted curves on opposite sides of the corner region immediately adjacent to the corner region. The various possible curve pairs (e.g., on two adjacent sides of a particular corner region) are a line and a line… computer 100 uses the equations that represent each curve to calculate points or coordinates, nearest the associated corner region where the two curves intersect… FIG. 26 shows an example of intersection points); determining an angle between the bisector line and a tangent of one of the two vector paths joined at the corner (Par. [0107-112]: contour point classifier 224 (at 456) classifies each contour point into either “curve region” contour points or “corner region” contour points… “corner region” contour points are contour points that exist at inflection points (see FIG. 11A), corner points or tangency points (see FIG. 11B), or curve end points (see FIG. 11C), whereas “curve region” contour points include all other contour points (i.e., any contour points that fall between two adjacent sets of “corner region” contour points… FIG. 13 shows a point of consideration 1302 among a sequence of contour points… computer 100 identifies the descriptors 1304 for the point of consideration 1302 by measuring the angles produced at the point of consideration 1304 when lines are drawn from the point of consideration to… contour points on both sides of the point of consideration… computer 100 first determines what the angle would be between a first straight line extending from the point of consideration 1302 to a point… example shows angles but it could be any combination of any such geometric metrics like slope of these lines or tangent of angle made by each line or distance of these points from the point of consideration or average of angles or slopes made by the range of points); and determining the corner by comparing the angle with a threshold angle (Par. [0007]: a threshold for corner detection; Par. [0107-112]: contour point classifier 224 (at 456) classifies each contour point into either “curve region” contour points or “corner region” contour points… computer 100 identifies the descriptors 1304 for the point of consideration 1302 by measuring the angles produced at the point of consideration 1304 when lines are drawn from the point of consideration to… contour points on both sides of the point of consideration… computer 100 first determines what the angle would be between a first straight line extending from the point of consideration 1302 to a point… example shows angles but it could be any combination of any such geometric metrics like slope of these lines or tangent of angle made by each line or distance of these points from the point of consideration or average of angles or slopes made by the range of points; Par. [0142-149]: refine algorithm 464 may iteratively lower the threshold for corner detection (at 1902) until at least one new “corner region” is identified in the reclassification process… refine operation (based on 464 and 460) essentially recomputes classification of the contour points of the curve region with the bad fit using a lower threshold for corner detection and fits curves in the newly created regions; Par. [0150-154]: results of the refine operation, which include a new corner region, which resulted from the associated contour points being reclassified in the refine operation from “curve region” contour points to “corner region” contour points, and two new curves… if the computer 100 (at 462) determines that the fit is good (i.e., the fitness metric satisfies a predefined threshold for acceptability), then the computer 100 proceeds to 466 and finds intersections of adjacent curves… for each corner region (2102), the computer 100 (at 2104) solves the equations for both of the fitted curves on opposite sides of the corner region immediately adjacent to the corner region). Regarding claim 3, claim 1 is incorporated and Savant discloses the method (Par. [0003-5]), wherein generating the imitation edge comprises: detecting a first end of the imitation edge according to a selected position (Par. [0013]: intelligent refine method, discussed herein, automatically adjusts the curve regions and corner regions over an area (e.g., user-selected area) of the image so as to improve (e.g., reduce) the fitness error, which is tracked internally through the fitness metric, from one iteration to the next; Par. [0087]: computer 100 may present, at its display, a user interface that enables the user to select an image (e.g., from a library of previously scanned images) for inserting or loading into the image-to-sketch converter 213… the user's selections through the user interface initiates and causes a digital representation of the selected image to be transferred (e.g., from the library) into the image-to sketch converter 213; Par. [107]: contour point classifier 224 (at 456) classifies each contour point into either “curve region” contour points or “corner region” contour points… “corner region” contour points are contour points that exist at inflection points (see FIG. 11A), corner points or tangency points (see FIG. 11B), or curve end points (see FIG. 11C); Par. [0141-142]: refine algorithm can be invoked either based on the computer's evaluation of the fitness metric (e.g., if the fit is no good at 462) or by a human user selecting a curve to be refined and invoking the refine algorithm to perform refinement on the selected… computer 100 may enable a human user to select a curve by presenting a visual representation of the image with any applied curves (e.g., as shown in the upper left corner of FIG. 20) on the computer's display screen, where the applied curves are selectable (e.g., by the user positioning a cursor over them and clicking). Additionally, the computer 100 might enable a human user to invoke the refine algorithm by providing a refine button or other user-selectable graphical or textual element on the computer's display screen, the selection of which causes the computer to launch into the refine algorithm (e.g., for a selected curve)… the refine algorithm (at 464) involves the computer 100 (at 1902) lowering the threshold for corner detection and reclassifying the contour points associated with the curve at issue as “curve region” contour points or “corner region” contour points; Par. [0163]: the computer 100 moves the line so that its end point, for example, connects to a corresponding point (e.g., end point)); determining a position for a second end of the imitation edge by using a snapping guide that positions the second end at a second distance from the reference edge based on a first distance from the first end of the imitation edge to the reference edge (Par. [0063]: “Snapping a curve” refers to moving the curve so that it connects to some other entity like a point or a curve (e.g., snap a curve to a point); Par. [0107-112]: contour point classifier 224 (at 456) classifies each contour point into either “curve region” contour points or “corner region” contour points… computer 100 identifies the descriptors 1304 for the point of consideration 1302 by measuring the angles produced at the point of consideration 1304 when lines are drawn from the point of consideration to… contour points on both sides of the point of consideration… computer 100 first determines what the angle would be between a first straight line extending from the point of consideration 1302 to a point… example shows angles but it could be any combination of any such geometric metrics like slope of these lines or tangent of angle made by each line or distance of these points from the point of consideration or average of angles or slopes made by the range of points; Par. [0141-142]: refine algorithm can be invoked either based on the computer's evaluation of the fitness metric (e.g., if the fit is no good at 462) or by a human user selecting a curve to be refined and invoking the refine algorithm to perform refinement on the selected… computer 100 may enable a human user to select a curve by presenting a visual representation of the image with any applied curves (e.g., as shown in the upper left corner of FIG. 20) on the computer's display screen, where the applied curves are selectable (e.g., by the user positioning a cursor over them and clicking). Additionally, the computer 100 might enable a human user to invoke the refine algorithm by providing a refine button or other user-selectable graphical or textual element on the computer's display screen, the selection of which causes the computer to launch into the refine algorithm (e.g., for a selected curve)… the refine algorithm (at 464) involves the computer 100 (at 1902) lowering the threshold for corner detection and reclassifying the contour points associated with the curve at issue as “curve region” contour points or “corner region” contour points; Par. [0161-166]: an optimization problem in which two points, one on each curve, are moved along the curve until the distance between the two curves is minimized using any of the optimization methods that are widely available… computer 100 (at 2114) determines that one curve is a line and the other is an arc, for example, then the computer 100 (at 2116) snaps the closest point on the line to make the line tangent to the arc. Here, snapping a point means it is moved to become coincident with another entity. In the case of line-arc intersection, the end point of the line is moved to match with the end point of the arc. The arc is not moved, and neither is the other end of the line. This snapping removes the discontinuity that was there where the two curves came close to each other… More specifically, the computer 100 moves the line so that its end point, for example, connects to a corresponding point (e.g., end point) on the arc… these adjustments result in the closest end point of the line touching the closest end point of the arc… computer 100 (at 2116) snaps both geometric entities (splines) together); and generating, for the imitation edge, one or more imitation edge segments connecting the first end at the selected position to the second end at the position indicated by the snapping guide (Par. [0141-142]: refine algorithm can be invoked either based on the computer's evaluation of the fitness metric (e.g., if the fit is no good at 462) or by a human user selecting a curve to be refined and invoking the refine algorithm to perform refinement on the selected… computer 100 may enable a human user to select a curve by presenting a visual representation of the image with any applied curves (e.g., as shown in the upper left corner of FIG. 20) on the computer's display screen, where the applied curves are selectable (e.g., by the user positioning a cursor over them and clicking). Additionally, the computer 100 might enable a human user to invoke the refine algorithm by providing a refine button or other user-selectable graphical or textual element on the computer's display screen, the selection of which causes the computer to launch into the refine algorithm (e.g., for a selected curve)… the refine algorithm (at 464) involves the computer 100 (at 1902) lowering the threshold for corner detection and reclassifying the contour points associated with the curve at issue as “curve region” contour points or “corner region” contour points; Par. [0163-166]: computer 100 (at 2114) determines that one curve is a line and the other is an arc, for example, then the computer 100 (at 2116) snaps the closest point on the line to make the line tangent to the arc. Here, snapping a point means it is moved to become coincident with another entity. In the case of line-arc intersection, the end point of the line is moved to match with the end point of the arc. The arc is not moved, and neither is the other end of the line. This snapping removes the discontinuity that was there where the two curves came close to each other… More specifically, the computer 100 moves the line so that its end point, for example, connects to a corresponding point (e.g., end point) on the arc… these adjustments result in the closest end point of the line touching the closest end point of the arc… computer 100 (at 2116) snaps both geometric entities (splines) together). Regarding claim 4, claim 1 is incorporated and Savant discloses the method (Par. [0003-5]), wherein generating the imitation edge comprises: detecting a first end of the imitation edge and a second end of the imitation edge (Par. [107]: contour point classifier 224 (at 456) classifies each contour point into either “curve region” contour points or “corner region” contour points… “corner region” contour points are contour points that exist at inflection points (see FIG. 11A), corner points or tangency points (see FIG. 11B), or curve end points (see FIG. 11C); Par. [0141-142]: refine algorithm can be invoked either based on the computer's evaluation of the fitness metric (e.g., if the fit is no good at 462) or by a human user selecting a curve to be refined and invoking the refine algorithm to perform refinement on the selected… computer 100 may enable a human user to select a curve by presenting a visual representation of the image with any applied curves (e.g., as shown in the upper left corner of FIG. 20) on the computer's display screen, where the applied curves are selectable (e.g., by the user positioning a cursor over them and clicking). Additionally, the computer 100 might enable a human user to invoke the refine algorithm by providing a refine button or other user-selectable graphical or textual element on the computer's display screen, the selection of which causes the computer to launch into the refine algorithm (e.g., for a selected curve)… the refine algorithm (at 464) involves the computer 100 (at 1902) lowering the threshold for corner detection and reclassifying the contour points associated with the curve at issue as “curve region” contour points or “corner region” contour points; Par. [0163]: the computer 100 moves the line so that its end point, for example, connects to a corresponding point (e.g., end point)); determining a first distance from the first end to the reference edge and a second distance from the second end to the reference edge (Par. [107-112]: contour point classifier 224 (at 456) classifies each contour point into either “curve region” contour points or “corner region” contour points… “corner region” contour points are contour points that exist at inflection points (see FIG. 11A), corner points or tangency points (see FIG. 11B), or curve end points (see FIG. 11C)… angles made by these lines (from 6th to 10th) collectively form the descriptor. It is not just a single number but a collection of numbers. This example shows angles but it could be any combination of any such geometric metrics like slope of these lines or tangent of angle made by each line or distance of these points from the point of consideration or average of angles or slopes made by the range of points, etc.; Par. [0161-179]: an optimization problem in which two points, one on each curve, are moved along the curve until the distance between the two curves is minimized using any of the optimization methods that are widely available… the computer 100 moves the line so that its end point, for example, connects to a corresponding point (e.g., end point)… the computer 100 may distinguish between these two possibilities (e.g., by using the equations for the lines to calculate a distance between them)… Instead of angles being used as descriptors, for example, the descriptors could be slope(s) of lines between point of consideration and neighboring points (e.g., on both sides of the point of consideration, N steps away)… distance between such points make be taken into consideration; Par. [0190]: intersection finder a point of intersection between the fitted curves for adjacent curve regions using equations, stored in computer memory, that represent each of the fitted curves for the adjacent curve regions. (See e.g., FIG. 4 and FIG. 21). If the computed point of intersection lies inside or is acceptably close to (e.g., within some threshold distance from) a corresponding corner region); and generating the imitation edge by adding, to the imitation edge, one or more imitation corners corresponding to corners of the reference edge based on the first distance and the second distance (Par. [107-112]: contour point classifier 224 (at 456) classifies each contour point into either “curve region” contour points or “corner region” contour points… “corner region” contour points are contour points that exist at inflection points (see FIG. 11A), corner points or tangency points (see FIG. 11B), or curve end points (see FIG. 11C)… angles made by these lines (from 6th to 10th) collectively form the descriptor. It is not just a single number but a collection of numbers. This example shows angles but it could be any combination of any such geometric metrics like slope of these lines or tangent of angle made by each line or distance of these points from the point of consideration or average of angles or slopes made by the range of points, etc.; Par. [0161-179]: an optimization problem in which two points, one on each curve, are moved along the curve until the distance between the two curves is minimized using any of the optimization methods that are widely available… the computer 100 moves the line so that its end point, for example, connects to a corresponding point (e.g., end point) on the arc. In many instances, the arc remains unchanged and only the line changes. This is because changing a line tends to be simpler and less resource intensive than changing an arc. However, in some instances (e.g., if moving the line alone is not sufficient), then it is possible that the computer 100 may adjust the arc as well… the computer 100 may distinguish between these two possibilities (e.g., by using the equations for the lines to calculate a distance between them)… Instead of angles being used as descriptors, for example, the descriptors could be slope(s) of lines between point of consideration and neighboring points (e.g., on both sides of the point of consideration, N steps away)… distance between such points make be taken into consideration; Par. [0190]: intersection finder a point of intersection between the fitted curves for adjacent curve regions using equations, stored in computer memory, that represent each of the fitted curves for the adjacent curve regions… If the computed point of intersection lies inside or is acceptably close to (e.g., within some threshold distance from) a corresponding corner region, the method includes connecting the adjacent curve regions to one another with a connector that passes through the identified point of intersection. If the computed point of intersection lies at a position on the image that is not acceptable (e.g., not within some threshold distance from) or lies outside the image, then the method includes inserting a small connector that connects the adjacent curve regions to one another). Regarding claim 5, claim 1 is incorporated and Savant discloses the method (Par. [0003-5]), wherein generating the imitation edge comprises: determining a distance between a first corner segment and a second corner segment from among the set of reference edge segments (Par. [107-112]: contour point classifier 224 (at 456) classifies each contour point into either “curve region” contour points or “corner region” contour points… “corner region” contour points are contour points that exist at inflection points (see FIG. 11A), corner points or tangency points (see FIG. 11B), or curve end points (see FIG. 11C)… angles made by these lines (from 6th to 10th) collectively form the descriptor. It is not just a single number but a collection of numbers. This example shows angles but it could be any combination of any such geometric metrics like slope of these lines or tangent of angle made by each line or distance of these points from the point of consideration or average of angles or slopes made by the range of points, etc.; Par. [0161-179]: an optimization problem in which two points, one on each curve, are moved along the curve until the distance between the two curves is minimized using any of the optimization methods that are widely available… the computer 100 moves the line so that its end point, for example, connects to a corresponding point (e.g., end point)… the computer 100 may distinguish between these two possibilities (e.g., by using the equations for the lines to calculate a distance between them)… Instead of angles being used as descriptors, for example, the descriptors could be slope(s) of lines between point of consideration and neighboring points (e.g., on both sides of the point of consideration, N steps away)… distance between such points make be taken into consideration; Par. [0190]: intersection finder a point of intersection between the fitted curves for adjacent curve regions using equations, stored in computer memory, that represent each of the fitted curves for the adjacent curve regions. (See e.g., FIG. 4 and FIG. 21). If the computed point of intersection lies inside or is acceptably close to (e.g., within some threshold distance from) a corresponding corner region); generating a bisector line of the second corner segment (Par. [0055-56]: “corner” is a point where multiple curves intersect to create a sharp region. Two arcs could intersect at a corner point, a line and an arc could intersect at a corner point, or a line and a spline could intersect at a corner point. Also, there could be more than two curves that would intersect at a corner… “tangency point” or a “point of tangency” is a point where two curves meet in such a way that their slopes are identical at the point of intersection; Par. [0150-168]: results of the refine operation, which include a new corner region, which resulted from the associated contour points being reclassified in the refine operation from “curve region” contour points to “corner region” contour points, and two new curves… the computer 100 proceeds to 466 and finds intersections of adjacent curves… for each corner region (2102), the computer 100 (at 2104) solves the equations for both of the fitted curves on opposite sides of the corner region immediately adjacent to the corner region. The various possible curve pairs (e.g., on two adjacent sides of a particular corner region) are a line and a line… computer 100 uses the equations that represent each curve to calculate points or coordinates, nearest the associated corner region where the two curves intersect… FIG. 26 shows an example of intersection points); determining that the bisector line has a length less than the distance between the first corner segment and the second corner segment (Par. [107-112]: contour point classifier 224 (at 456) classifies each contour point into either “curve region” contour points or “corner region” contour points… “corner region” contour points are contour points that exist at inflection points (see FIG. 11A), corner points or tangency points (see FIG. 11B), or curve end points (see FIG. 11C)… angles made by these lines (from 6th to 10th) collectively form the descriptor. It is not just a single number but a collection of numbers. This example shows angles but it could be any combination of any such geometric metrics like slope of these lines or tangent of angle made by each line or distance of these points from the point of consideration or average of angles or slopes made by the range of points, etc.; Par. [0161-179]: an optimization problem in which two points, one on each curve, are moved along the curve until the distance between the two curves is minimized using any of the optimization methods that are widely available… the computer 100 moves the line so that its end point, for example, connects to a corresponding point (e.g., end point)… the computer 100 may distinguish between these two possibilities (e.g., by using the equations for the lines to calculate a distance between them)… Instead of angles being used as descriptors, for example, the descriptors could be slope(s) of lines between point of consideration and neighboring points (e.g., on both sides of the point of consideration, N steps away)… distance between such points make be taken into consideration; Par. [0190]: intersection finder a point of intersection between the fitted curves for adjacent curve regions using equations, stored in computer memory, that represent each of the fitted curves for the adjacent curve regions. (See e.g., FIG. 4 and FIG. 21). If the computed point of intersection lies inside or is acceptably close to (e.g., within some threshold distance from) a corresponding corner region); and adding, to the imitation edge, an imitation corner corresponding to the second corner segment based on determining that the bisector line has a length less than the distance (Par. [107-112]: contour point classifier 224 (at 456) classifies each contour point into either “curve region” contour points or “corner region” contour points… “corner region” contour points are contour points that exist at inflection points (see FIG. 11A), corner points or tangency points (see FIG. 11B), or curve end points (see FIG. 11C)… angles made by these lines (from 6th to 10th) collectively form the descriptor. It is not just a single number but a collection of numbers. This example shows angles but it could be any combination of any such geometric metrics like slope of these lines or tangent of angle made by each line or distance of these points from the point of consideration or average of angles or slopes made by the range of points, etc.; Par. [0161-179]: an optimization problem in which two points, one on each curve, are moved along the curve until the distance between the two curves is minimized using any of the optimization methods that are widely available… the computer 100 moves the line so that its end point, for example, connects to a corresponding point (e.g., end point) on the arc. In many instances, the arc remains unchanged and only the line changes. This is because changing a line tends to be simpler and less resource intensive than changing an arc. However, in some instances (e.g., if moving the line alone is not sufficient), then it is possible that the computer 100 may adjust the arc as well… the computer 100 may distinguish between these two possibilities (e.g., by using the equations for the lines to calculate a distance between them)… Instead of angles being used as descriptors, for example, the descriptors could be slope(s) of lines between point of consideration and neighboring points (e.g., on both sides of the point of consideration, N steps away)… distance between such points make be taken into consideration; Par. [0190]: intersection finder a point of intersection between the fitted curves for adjacent curve regions using equations, stored in computer memory, that represent each of the fitted curves for the adjacent curve regions… If the computed point of intersection lies inside or is acceptably close to (e.g., within some threshold distance from) a corresponding corner region, the method includes connecting the adjacent curve regions to one another with a connector that passes through the identified point of intersection. If the computed point of intersection lies at a position on the image that is not acceptable (e.g., not within some threshold distance from) or lies outside the image, then the method includes inserting a small connector that connects the adjacent curve regions to one another). Regarding claim 16, Savant discloses a non-transitory computer-readable medium storing instructions which, when executed by a processing device, cause the processing device to perform operations (Par. [0006]: a non-transitory computer readable medium (e.g., a computer memory storage device, disk, etc.) is disclosed that has stored thereon computer-readable instructions that, when executed by a computer-based processor, cause the computer-based processor to: receive a digital representation of an image, and generate contours based on the digital representation of the image) comprising: detecting, from a digital image, a reference edge comprising a set of reference edge segments (Par. [0003-5]: method includes classifying each contour point in a particular one of the contours as a curve region contour point or a corner region contour point, thereby segmenting the particular contour into plurality of curve regions separated from one another by corner regions… the method includes classifying each contour point of every contour as a point that belongs to either a curve region or a corner region, thereby segmenting the contour into plurality of curve regions separated from one another by corner regions… receive a digital representation of an image, and generate contours based on the digital representation of the image. Each contour includes a sequence of points that follows a path that corresponds to a boundary in the image. The system further classifies each contour point in every contour as belonging to a “curve region” or a “corner region”, thereby segmenting the entire contour into a plurality of curve regions separated from one another by corner regions; Par. [0093-97]: contour generator 216 generates contours based on the preprocessed version of the image (at 446)… the contours are generated utilizing contour generating functionality available in the library 217 (e.g., the OpenCV™ software library)… the contours are generated based on the preprocessed image using an algorithm available (e.g., the findContour( ) function that helps in extracting the contours from an image) in the OpenCV™ software library… Circle fitting is based on finding the smallest circle that encloses the given contour points… compute the contour area which is done using the OpenCV API function contourArea( )… generating contours (at 446) from the image shown in FIG. 5. Contours are curves and not a sequence of points—but there is no generic way to represent contours as curves while using OpenCV. So the system here provides (or represents) contours in the form of sequences of points… As shown in FIG. 8, the visual representation 880 includes sequences of points that follow paths that correspond to boundaries in the image of FIG. 5; detecting, from a digital image, a reference edge comprising a set of reference edge segments (e.g. computer-implemented method includes finding (i.e. detecting, extracting, identifying, separating, etc.) contours (i.e. edges, outlines, boundaries, shapes, etc.) in the form of sequences of points (i.e. a set of reference edge segments), or contour points, for example, by receiving a digital representation of an image (i.e. a digital image), and generating contours based on the digital representation of the image (i.e. detecting, from a digital image, a reference edge comprising a set of reference edge segments), as indicated above), for example); determining a corner within the reference edge by classifying a reference edge segment among the set of reference edge segments as a corner segment (Par. [0003-5]: method includes classifying each contour point in a particular one of the contours as a curve region contour point or a corner region contour point, thereby segmenting the particular contour into plurality of curve regions separated from one another by corner regions. The curve regions are made up of curve region contour points only and the corner regions are made up of corner region contour points… the method includes classifying each contour point of every contour as a point that belongs to either a curve region or a corner region, thereby segmenting the contour into plurality of curve regions separated from one another by corner regions… receive a digital representation of an image, and generate contours based on the digital representation of the image. Each contour includes a sequence of points that follows a path that corresponds to a boundary in the image. The system further classifies each contour point in every contour as belonging to a “curve region” or a “corner region”, thereby segmenting the entire contour into a plurality of curve regions separated from one another by corner regions. This classification is achieved by a unique application of the LSTM network (Long Short Term Memory network). The curve regions are made up of curve region contour points (i.e., contour points in a curve region) only and the corner regions are made up of corner region contour points (i.e., contour points in a corner region) only; Par. [0093-108]: contour generator 216 generates contours based on the preprocessed version of the image (at 446)… the contours are generated utilizing contour generating functionality available in the library 217 (e.g., the OpenCV™ software library)… the contours are generated based on the preprocessed image using an algorithm available (e.g., the findContour( ) function that helps in extracting the contours from an image) in the OpenCV™ software library… Circle fitting is based on finding the smallest circle that encloses the given contour points… compute the contour area which is done using the OpenCV API function contourArea( )… generating contours (at 446) from the image shown in FIG. 5. Contours are curves and not a sequence of points—but there is no generic way to represent contours as curves while using OpenCV. So the system here provides (or represents) contours in the form of sequences of points… As shown in FIG. 8, the visual representation 880 includes sequences of points that follow paths that correspond to boundaries in the image of FIG. 5. More specifically, the sequence of points in FIG. 8 include a first sequence of points 882 that follow a path that corresponds to the outer boundary (552) of the image, a second and third sequence of point 884a, 884b that follow paths that correspond to the internal circles 554a, 554b of the image, and a fourth sequence of points 886 that follows a path that corresponds to the single internal ellipse 556 in the image… contour point classifier 224 (at 456) classifies each contour point into either “curve region” contour points or “corner region” contour points… “corner region” contour points are contour points that exist at inflection points (see FIG. 11A), corner points or tangency points (see FIG. 11B), or curve end points (see FIG. 11C), whereas “curve region” contour points include all other contour points (i.e., any contour points that fall between two adjacent sets of “corner region” contour points… output classifications for each contour point as being a “curve region” contour point or a “corner region” contour point based on the input features (or descriptors) for that contour point; determining a corner within the reference edge by classifying a reference edge segment among the set of reference edge segments as a corner segment (e.g. computer-implemented method includes finding (i.e. detecting, extracting, identifying, separating, etc.) contours (i.e. edges, outlines, boundaries, shapes, etc.) in the form of sequences of points (i.e. a set of reference edge segments), or contour points, for example, by receiving a digital representation of an image (i.e. a digital image), and generating contours based on the digital representation of the image, for example, and the method includes classifying each contour point in a particular one of the contours as a curve region contour point or a corner region contour point (i.e. determining a corner within the reference edge by classifying a reference edge segment among the set of reference edge segments as a corner segment), thereby segmenting the particular contour into plurality of curve regions separated from one another by corner regions, as indicated above), for example); determining a corner type for the corner within the reference edge (Par. [0007]: method includes classifying, with a computer-implemented contour point classifier, each point in the contour as a curve region contour point or a corner region contour point, thereby segmenting the contour into plurality of curve regions separated from one another by corner regions… segmenting the contour into new curve regions and new corner regions; Par. [0107]: “corner region” contour points are contour points that exist at inflection points (see FIG. 11A), corner points or tangency points (see FIG. 11B), or curve end points (see FIG. 11C); Par. [0150]: results of the refine operation, which include a new corner region, which resulted from the associated contour points being reclassified in the refine operation from “curve region” contour points to “corner region” contour points, and two new curves. Each new curve in the illustrated example extends from one of the original corner regions to the new corner region; determining a corner type for the corner within the reference edge (e.g. computer-implemented method includes finding (i.e. detecting, extracting, identifying, separating, etc.) contours (i.e. edges, outlines, boundaries, shapes, etc.) in the form of sequences of points (i.e. a set of reference edge segments), or contour points, for example, by receiving a digital representation of an image (i.e. a digital image), and generating contours based on the digital representation of the image, for example, and the method includes classifying each contour point in a particular one of the contours as a curve region contour point or a corner region contour point, for example, and determines that there are no curves or other graphical elements that correspond to the “corner region” contour points so that only the “corner region” contour points themselves are visible in the corner regions of the contour (i.e. determining a corner type for the corner within the reference edge), as indicated above), for example) by: generating a bisector line that bisects two vector paths joined at the corner (Par. [0055-56]: “corner” is a point where multiple curves intersect to create a sharp region. Two arcs could intersect at a corner point, a line and an arc could intersect at a corner point, or a line and a spline could intersect at a corner point. Also, there could be more than two curves that would intersect at a corner… “tangency point” or a “point of tangency” is a point where two curves meet in such a way that their slopes are identical at the point of intersection; Par. [0150-168]: results of the refine operation, which include a new corner region, which resulted from the associated contour points being reclassified in the refine operation from “curve region” contour points to “corner region” contour points, and two new curves… the computer 100 proceeds to 466 and finds intersections of adjacent curves… for each corner region (2102), the computer 100 (at 2104) solves the equations for both of the fitted curves on opposite sides of the corner region immediately adjacent to the corner region. The various possible curve pairs (e.g., on two adjacent sides of a particular corner region) are a line and a line… computer 100 uses the equations that represent each curve to calculate points or coordinates, nearest the associated corner region where the two curves intersect… FIG. 26 shows an example of intersection points; generating a bisector line that bisects two vector paths joined at the corner (e.g. computer-implemented method includes finding (i.e. detecting, extracting, identifying, separating, etc.) contours (i.e. edges, outlines, boundaries, shapes, etc.) in the form of sequences of points (i.e. a set of reference edge segments), or contour points, for example, by receiving a digital representation of an image (i.e. a digital image), and generating contours based on the digital representation of the image, for example, including determining intersection (i.e. bisection) points of corners where multiple curves intersect (i.e. generating a bisector line that bisects two vector paths joined at the corner), as indicated above), for example); and determining an angle between the bisector line and a tangent of one of the two vector paths joined at the corner (Par. [0107-112]: contour point classifier 224 (at 456) classifies each contour point into either “curve region” contour points or “corner region” contour points… “corner region” contour points are contour points that exist at inflection points (see FIG. 11A), corner points or tangency points (see FIG. 11B), or curve end points (see FIG. 11C), whereas “curve region” contour points include all other contour points (i.e., any contour points that fall between two adjacent sets of “corner region” contour points… FIG. 13 shows a point of consideration 1302 among a sequence of contour points… computer 100 identifies the descriptors 1304 for the point of consideration 1302 by measuring the angles produced at the point of consideration 1304 when lines are drawn from the point of consideration to… contour points on both sides of the point of consideration… computer 100 first determines what the angle would be between a first straight line extending from the point of consideration 1302 to a point… example shows angles but it could be any combination of any such geometric metrics like slope of these lines or tangent of angle made by each line or distance of these points from the point of consideration or average of angles or slopes made by the range of points; determining an angle between the bisector line and a tangent of one of the two vector paths joined at the corner (e.g. computer-implemented method includes finding (i.e. detecting, extracting, identifying, separating, etc.) contours (i.e. edges, outlines, boundaries, shapes, etc.) in the form of sequences of points (i.e. a set of reference edge segments), or contour points, for example, by receiving a digital representation of an image (i.e. a digital image), and generating contours based on the digital representation of the image, for example, including determining intersection (i.e. bisection) points of corners where multiple curves intersect (i.e. the bisector line) and measuring angles produced at a point of consideration, including intersection points (i.e. determining an angle between the bisector line), for example, when lines are drawn from the point of consideration to contour points on both sides of the point of consideration, or other geometric metrics including tangent of angle made by each line (i.e. and a tangent of one of the two vector paths joined at the corner) or distance of these points from the point of consideration, as indicated above), for example); and generating an imitation edge following a shape of the reference edge and depicting an imitation corner corresponding to the corner type (Par. [0003-5]: method includes classifying each contour point in a particular one of the contours as a curve region contour point or a corner region contour point, thereby segmenting the particular contour into plurality of curve regions separated from one another by corner regions. The curve regions are made up of curve region contour points only and the corner regions are made up of corner region contour points… the method includes classifying each contour point of every contour as a point that belongs to either a curve region or a corner region, thereby segmenting the contour into plurality of curve regions separated from one another by corner regions… receive a digital representation of an image, and generate contours based on the digital representation of the image. Each contour includes a sequence of points that follows a path that corresponds to a boundary in the image. The system further classifies each contour point in every contour as belonging to a “curve region” or a “corner region”, thereby segmenting the entire contour into a plurality of curve regions separated from one another by corner regions… The curve regions are made up of curve region contour points (i.e., contour points in a curve region) only and the corner regions are made up of corner region contour points (i.e., contour points in a corner region) only. The system further fits a curve to each one of the curve regions; Par. [0007]: method includes classifying, with a computer-implemented contour point classifier, each point in the contour as a curve region contour point or a corner region contour point, thereby segmenting the contour into plurality of curve regions separated from one another by corner regions… segmenting the contour into new curve regions and new corner regions; Par. [0053]: “contour” is a curve, including a digital representation thereof, that follows a path that corresponds to a boundary in an image. Multiple different contours may be generated from a single image; Par. [0077]: computer 100 is connected to a display device (e.g., via the I/O device interface 110) and configured to present at the display device a visual representation of an interface; Par. [0096-97]: FIG. 8 shows an example of a visual representation 880 that the computer 100 might produce while generating contours (at 446) from the image shown in FIG. 5. Contours are curves and not a sequence of points—but there is no generic way to represent contours as curves while using OpenCV. So the system here provides (or represents) contours in the form of sequences of points… As shown in FIG. 8, the visual representation 880 includes sequences of points that follow paths that correspond to boundaries in the image of FIG. 5. More specifically, the sequence of points in FIG. 8 include a first sequence of points 882 that follow a path that corresponds to the outer boundary (552) of the image, a second and third sequence of point 884a, 884b that follow paths that correspond to the internal circles 554a, 554b of the image, and a fourth sequence of points 886 that follows a path that corresponds to the single internal ellipse 556 in the image; Par. [0107]: “corner region” contour points are contour points that exist at inflection points (see FIG. 11A), corner points or tangency points (see FIG. 11B), or curve end points (see FIG. 11C); Par. [0136-141]: FIG. 24 shows an example of curves (e.g., lines, arcs, splines, circles and ellipses) having been applied to the curve regions of the contour 882 on an image coordinate system. More specifically, the curves in the illustrated example include lines 2402, arcs 2404, circles 2406 and ellipses 2408. Each respective curve in the illustrated example is optimally fitted through a sequence of contour points that would have been classified previously as “curve region” contour points, using the LSTM. There are no curves or other graphical elements in the illustrated that correspond to the “corner region” contour points. Therefore, in the illustrated example, only the “corner region” contour points themselves are visible in the corner regions of the contour 88… the computer 100 may be configured to present an image of the FIG. 24 likeness at the computer's display… refine algorithm can be invoked either based on the computer's evaluation of the fitness metric (e.g., if the fit is no good at 462) or by a human user selecting a curve to be refined and invoking the refine algorithm to perform refinement on the selected. There are a variety of ways in which the computer 100 might enable a human user to select the curve and invoke the refine algorithm. For example, the computer 100 may enable a human user to select a curve by presenting a visual representation of the image with any applied curves (e.g., as shown in the upper left corner of FIG. 20) on the computer's display screen; Par. [0150]: results of the refine operation, which include a new corner region, which resulted from the associated contour points being reclassified in the refine operation from “curve region” contour points to “corner region” contour points, and two new curves. Each new curve in the illustrated example extends from one of the original corner regions to the new corner region; Par. [0172]: computer 100 (at 2204) displays (e.g., on the computer's display) the fitted curves and any shapes (e.g., circles, ellipses, etc.) and any computed corner points and connectors as temporary sketch-preview entities. These are marked as temporary because they can be previewed and modified by the user before they are converted into final sketch entities for downstream modeling operations. These temporary sketch-preview entities are displayed in the CAD view coordinate space; generating an imitation edge following a shape of the reference edge and depicting an imitation corner corresponding to the corner type (e.g. computer-implemented method includes finding (i.e. detecting, extracting, identifying, separating, etc.) contours (i.e. edges, outlines, boundaries, shapes, etc.) in the form of sequences of points (i.e. set of reference edge segments), or contour points, for example, by receiving a digital representation of an image (i.e. a digital image), and generating contours based on the digital representation of the image, for example, and classifying each contour point in a particular one of the contours as a curve region contour point or a corner region contour point, for example, and determines that there are no curves or other graphical elements that correspond to the “corner region” contour points so that only the “corner region” contour points themselves are visible in the corner regions of the contour (i.e. the corner type for the corner within the reference edge), for example, in which each contour includes a sequence of points that follows (i.e. imitates) a path that corresponds to a boundary in the image (i.e. an imitation edge following a shape of the reference edge and including an imitation corner positioned according to the corner within the reference edge), for example, including a visual representation that includes sequences of points that follow paths that correspond to boundaries in the image and a computer connected to a display device configured to present at the display device the visual representation (i.e. generating an imitation edge following a shape of the reference edge and depicting an imitation corner corresponding to the corner type), as indicated above), for example). Regarding claim 17, claim 16 is incorporated and Savant discloses the non-transitory computer-readable medium (Par. [0006]), wherein generating the imitation edge comprises: determining a fidelity parameter corresponding to a degree of imitation of the reference edge (Par. [0007]: method includes fitting a curve to each one of the curve regions with a computer-implemented curve finder. The method further includes applying a refine algorithm, with a computer-implemented refiner, to adjust the fitted curves in response to a determination that a fitness metric for the fitted curve does not satisfy a predefined criteria for acceptability; Par. [0112]: example shows angles but it could be any combination of any such geometric metrics like slope of these lines or tangent of angle made by each line or distance of these points from the point of consideration or average of angles or slopes made by the range of points, etc.; Par. [0126-135]: computer 100 (or, more specifically, the computer's fillet creator 226) fits an arc in the filleted corner region (at 1602) and checks the fitness metric, discussed below, for the fitted arc (at 1604). If the fitness metric satisfies a predefined threshold for acceptability (which may be stored in memory 104, for example), the fitted arc is accepted. Otherwise, if the fitness metric does not satisfy the predefined threshold for acceptability, then the computer 100 may, for example, modify the arc or replace it with another, potentially better suited arc (returning to 1602 to do so)… omputer 100 then (at 1704) evaluates a fitness metric for the fitted line. More specifically, in some implementations, the computer's fitness evaluator 230 evaluates the fitness metric… the computer 100 (at 1710) evaluates a fitness metric for the fitted arc… the fitness metric essentially measures the average deviation per point from the fitted curve); and generating the imitation edge based on the fidelity parameter (Par. [0126-137]: computer 100 (or, more specifically, the computer's fillet creator 226) fits an arc in the filleted corner region (at 1602) and checks the fitness metric, discussed below, for the fitted arc (at 1604). If the fitness metric satisfies a predefined threshold for acceptability (which may be stored in memory 104, for example), the fitted arc is accepted. Otherwise, if the fitness metric does not satisfy the predefined threshold for acceptability, then the computer 100 may, for example, modify the arc or replace it with another, potentially better suited arc (returning to 1602 to do so)… computer 100 then (at 1704) evaluates a fitness metric for the fitted line. More specifically, in some implementations, the computer's fitness evaluator 230 evaluates the fitness metric… the fitness metric essentially measures the average deviation per point from the fitted curve… after the computer 100 finds a “best fit” curve for each curve region (at 460), the computer 100 (at 462) then evaluates a fitness metric (to determine whether any refinements might be needed or desirable) for the contour or an entire image. FIG. 18 (bottom half) shows an example of a fitness metric that can be computed by the computer 100 (at 462) and used to consider advisability of refinement. The fitness metric represented in the bottom half of the figure essentially measures the maximum deviation of any contour point from the corresponding point on the curve. The deviation of every point is measured from a specific point. In some implementations, this computation and/or subsequent evaluation are performed by the computer's fitness evaluator 230… If the computer 100 (at 462) determines that the fit is not good (i.e., the fitness metric does not satisfy the predefined criteria for acceptability), then computer 100 (at 464) applies a refine algorithm to improve the fit… after the computer 100 finds a “best fit” curve for each curve region (at 460), the computer 100 (at 462) then evaluates a fitness metric (to determine whether any refinements might be needed or desirable) for the contour or an entire image). Allowable Subject Matter Claim 8 would be allowable if rewritten or amended to overcome the rejection(s) under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), 2nd paragraph, set forth in this Office action. Claims 6-7 and 18-20 objected to as being dependent upon a rejected base claim, but would be allowable if rewritten in independent form including all of the limitations of the base claim and any intervening claims. Contact Information Any inquiry concerning this communication or earlier communications from the examiner should be directed to GUILLERMO M RIVERA-MARTINEZ whose telephone number is (571) 272-4979. The examiner can normally be reached on 9 am to 5 pm. Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice. If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Andrew Bee can be reached on 571-270-5183. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300. Information regarding the status of an application may be obtained from the Patent Application Information Retrieval (PAIR) system. Status information for published applications may be obtained from either Private PAIR or Public PAIR. Status information for unpublished applications is available through Private PAIR only. For more information about the PAIR system, see https://ppair-my.uspto.gov/pair/PrivatePair. Should you have questions on access to the Private PAIR system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000. /GUILLERMO M RIVERA-MARTINEZ/ Primary Examiner, Art Unit 2677
Read full office action

Prosecution Timeline

Dec 10, 2024
Application Filed
Aug 26, 2026
Non-Final Rejection mailed — §102, §112
Sep 21, 2026
Interview Requested
Sep 28, 2026
Applicant Interview (Telephonic)
Sep 29, 2026
Examiner Interview Summary

Precedent Cases

Applications granted by this same examiner with similar technology

Patent 12731397
Method of generating a peripheral image of an aircraft and associated electronic generation device and computer program product
3y 3m to grant Granted Sep 08, 2026
Patent 12717041
METHOD FOR MONITORING A LOADING AREA
2y 7m to grant Granted Aug 25, 2026
Patent 12694563
SYSTEM AND METHOD FOR USING DYNAMIC OBJECTS TO ESTIMATE CAMERA POSE
2y 6m to grant Granted Jul 28, 2026
Patent 12682441
CHARACTERIZATION SYSTEM AND METHOD IMPLEMENTING IMAGE ENHANCEMENT FOR IMPROVED DEFECT DETECTION
4y 4m to grant Granted Jul 14, 2026
Patent 12651392
STATIONARY MULTI-SOURCE AI-POWERED REAL-TIME TOMOGRAPHY (SMART)
2y 9m to grant Granted Jun 09, 2026
Study what changed to get past this examiner. Based on 5 most recent grants.

Strategy Recommendation AI-generated — please review before filing

Get a prosecution strategy drawn from examiner precedents, rejection analysis, and claim mapping.
Typically takes 5-10 seconds — AI-generated, attorney review required before filing

Prosecution Projections

1-2
Expected OA Rounds
78%
Grant Probability
81%
With Interview (+3.3%)
2y 6m (~9m remaining)
Median Time to Grant
Low
PTA Risk
Based on 514 resolved cases by this examiner. Grant probability derived from career allowance rate.

Sign in with your work email

Enter your email to receive a magic link. No password needed.

Personal email addresses (Gmail, Yahoo, etc.) are not accepted.

Free tier: 3 strategy analyses per month