IP Library Granted Patent US 11,120,592
Granted Patent B2
US 11,120,592 · App. 16/142,399 · Granted Sep 14, 2021

System and method for oriented bounding box tool defining an orientation of a tilted or rotated object

Inventor: Joseph Marinier (Sherbrooke, CA)
Assignee: ELEMENT AI INC.
G06T11/60G06F3/0486G06F3/04845G06T2210/12
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 11,120,592
App. No.
16/142,399
Granted
Sep 14, 2021
Kind
B2
Abstract

Systems and methods for an improved bounding box tool. The system can have processors configured to display a user interface on a display of a device, the user interface displaying image data. The processor can activate a virtual tool to define a bounding box. The processor can receive a first input data point at a first location relative to the image data. This can be defined by actuation of the input device. The processor can receive a movement input in a direction relative to the first location. The movement input can be defined by movement commands from the input device. The processor can receive a second input data point at a second location relative to the image data. The second input data point can be triggered by a second actuation of the input device. The processor can display, at the user interface, a graphical object representing the bounding box as an overlay of the image data. The bounding box can have corners defined by the first location and the second location. Edges (and angles thereof) of the bounding box can be defined by the direction of the movement input.

Claims (48)

1. A system for providing a bounding box tool adapted for supporting a plurality of time-efficient machine learning labeling tasks conducted by a user of the bounding box tool for defining labels around visual objects that have a tilt or rotation relative to a local coordinate system without requiring subsequent adjustments to accommodate the tilt or the rotation, the system comprising:

a server having a non-transitory computer readable storage medium with executable instructions for causing one or more processors to:

display a user interface on a display of a device, the user interface displaying image data;

activate a virtual tool to define a bounding box, the virtual tool controlled by commands received from an input device;

display, at the user interface, an indicator for the virtual tool relative to the image data;

receive a first input data point at a first location relative to the image data, the first input data point triggered by a first actuation of the input device;

receive a movement input in a direction relative to the first location, the movement input defined by movement commands from the input device during the first actuation of the input device and a release of the first actuation of the input device, the movement input establishing, through a bounding box angle defined between the first actuation of the input device and the release of the first actuation of the input device, an edge angle relative to the first location representing an orientation component of the bounding box representative of the tilt or rotation relative to the local coordinate system;

receive a second input data point at a second location relative to the image data, the second input data point triggered by a second actuation of the input device;

compute the bounding box in a bounding box format using the first input data point, the movement input, and the second input data point, the bounding box having corners connected by edges, the corners defined by the first input data point, the movement input, and the second input data point, the edges defined by the direction of the movement input, wherein the bounding box format defines a first corner at the first location, an opposite corner at the second location, and an adjacent corner connected to the first corner by an edge at the edge angle defined by the movement input;

automatically generate a new data file for storing, at a data store, the bounding box in the bounding box format;

automatically generate a graphical object representing the bounding box using the new data file including, either explicitly or implicitly, the orientation component of the bounding box; and

render display, at the user interface, of the graphical object representing the bounding box as an overlay of the image data, the bounding box having corners defined by the first location and the second location.

2. The system of claim 1 wherein the movement input is from the first corner of the bounding box at the first location, the direction of the movement input being towards an adjacent corner of the bounding box.

3. The system of claim 1 wherein the bounding box is an oriented bounding box, and wherein the new data file represents a label corresponding to a specific machine learning vision labeling task of the plurality of time-efficient machine learning labeling tasks such that the new data file is process-able to provide a rotation-invariant model for simplified machine learning.

4. The system of claim 1 wherein the processor is configured to dynamically update the interface to display a line between the first location and a current location of the virtual tool when defining the movement input.

5. The system of claim 1 wherein the processor is configured to dynamically update the interface to display a suggested bounding box defined by the first location, the movement input and a current location of the virtual tool when defining the second input data point and prior to the second actuation of the input device.

6. The system of claim 1 wherein the bounding box format is an angle-center-extent format defined by an angle of an edge between a corner and an adjacent corner, centre coordinates of the bounding box, and an extent of the bounding box.

7. The system of claim 1 wherein the processor is configured to extract a region of interest from the image data defined by the bounding box, and save the extracted region of interest in data storage.

8. The system of claim 1 wherein the processor is configured to store bounding box data on a non-transitory computer readable storage medium, the bounding box data including metadata with an identifier for the image data.

9. The system of claim 1 , wherein the processor is configured to disallow receiving the second input data point if the second location leads to a box that is not greater than a predefined threshold.

10. The system of claim 1 , wherein the processor is configured to combine the new data file for the bounding box with the image file for an image task profile.

11. A system for providing a bounding box tool adapted for supporting a plurality of time-efficient machine learning labeling tasks conducted by a user of the bounding box tool for defining labels around visual objects that have a tilt or rotation relative to a local coordinate system, without requiring subsequent adjustments to accommodate the tilt or the rotation, the system comprising:

a server having non-transitory computer readable storage medium with executable instructions for causing one or more processors to:

display a user interface on a display of a device, the user interface displaying image data;

activate a virtual tool to define a bounding box, the virtual tool controlled by commands received from an input device;

display, at the user interface, an indicator for the virtual tool relative to the image data;

receive a first input data point at a first location relative to the image data, the first input data point triggered by a first actuation of the input device;

receive a movement input in a direction relative to the first location, the movement input defined by movement commands from the input device during the first actuation of the input device and a release of the first actuation of the input device, the movement input establishing, through a bounding box angle defined between the first actuation of the input device and the release of the first actuation of the input device, an edge angle relative to the first location representing an orientation component of the bounding box representative of the tilt or rotation relative to the local coordinate system;

receive a second input data point at a second location relative to the image data, the second input data point triggered by a second actuation of the input device; and

display, at the user interface, a graphical object representing the bounding box as an overlay of the image data, the bounding box having corners defined by the first location and the second location, the bounding box having edges connecting the corners, the edges defined by the edge angle.

12. The system of claim 11 wherein the processor is configured to compute the bounding box in a bounding box format using the first input data point, the movement input, and the second input data point.

13. The system of claim 11 wherein the processor is configured to compute the bounding box in a bounding box format to define a first corner at the first location, an opposite corner at the second location, and an adjacent corner connected to the first corner by an edge at an angle defined by the movement input.

14. The system of claim 11 wherein the movement input is from the first location, the first location defining a first corner of the bounding box, the direction of the movement input being towards an adjacent corner of the bounding box.

15. The system of claim 11 , further comprising automatically generating a new data file for storing, at a data store, the bounding box in a bounding box format, wherein the bounding box is an oriented bounding box and the new data file represents a label corresponding to a specific machine learning vision labeling task of the plurality of time-efficient machine learning labeling tasks such that the new data file is process-able to provide a rotation-invariant model for simplified machine learning.

16. The system of claim 11 wherein the processor is configured to dynamically update the interface to display a line between the first location and a current location of the virtual tool when defining the movement input.

17. The system of claim 11 wherein the processor is configured to dynamically update the interface to display a suggested bounding box defined by the first location, the movement input and a current location of the virtual tool when defining the second input data point and prior to the second actuation of the input device.

18. The system of claim 12 wherein the bounding box format is an angle-center-extent format defined by an angle of an edge between a corner and an adjacent corner, centre coordinates of the bounding box, and an extent of the bounding box.

19. The system of claim 11 wherein the processor is configured to extract a region of interest from the image data defined by the bounding box, and save the extracted region of interest in data storage.

20. The system of claim 11 wherein the processor is configured to store bounding box data on a non-transitory computer readable storage medium, the bounding box data including metadata with an identifier for the image data.

21. The system of claim 11 wherein the movement data can be in the direction of an adjacent edge to a corner at the first location.

22. A non-transitory computer readable storage medium storing machine-executable instructions, which when executed by one or more processors, cause the one or more processors to perform a method for providing a bounding box tool adapted for supporting a plurality of time-efficient machine learning labeling tasks conducted by a user of the bounding box tool defining labels around visual objects that have a tilt or rotation relative to a local coordinate system without requiring subsequent adjustments to accommodate the tilt or the rotation:

display a user interface on a display of a device, the user interface displaying image data;

activate a virtual tool to define a bounding box, the virtual tool controlled by commands received from an input device;

display, at the user interface, an indicator for the virtual tool relative to the image data;

receive a first input data point at a first location relative to the image data, the first input data point triggered by actuation of the input device;

receive a movement input in a direction relative to the first location, the movement input defined by movement commands from the input device during the first actuation of the input device and a release of the actuation of the input device, the movement input establishing, through a bounding box angle defined between the first actuation of the input device and the release of the first actuation of the input device, an edge angle relative to the first location representing an orientation component of the bounding box representative of the tilt or the rotation relative to the local coordinate system;

receive a second input data point at a second location relative to the image data, the second input data point triggered by actuation of the input device; and

display, at the user interface, a graphical object representing the bounding box as an overlay of the image data, the bounding box having corners defined by the first location and the second location, the bounding box having edges connecting the corners, the edges defined by the edge angle.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 26, 2025
From: SERVICENOW CANADA INC.
To: SERVICENOW, INC.
Reel/Frame 070644/0956 →
MERGER AND CHANGE OF NAME Recorded Dec 30, 2021
From: ELEMENT AI INC.; SERVICENOW CANADA INC.
To: SERVICENOW CANADA INC.
Reel/Frame 058601/0551 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 3, 2020
From: MARINIER, JOSEPH
To: ELEMENT AI INC.
Reel/Frame 054256/0175 →
Continuity (1)
Related Publication 20200098154A1 · Mar 26, 2020