Computing minimum area bounding shapes using parallel point set rotations in image processing systems and applications
In various examples, determining point bounding shapes for systems and applications is described herein. Systems and methods are disclosed that determine a bounding shape (e.g., a minimum-area bounding rectangle) for an object and/or a point set associated with the object. In some examples, to determine the bounding shape, the systems and methods may rotate points from the point set to include various orientations. The systems and methods may then determine a respective bounding shape for one or more (e.g., each) orientation of the points and use the bounding shapes to determine a final bounding shape for the points. For example, the bounding shape that is associated with the smallest area may be selected for the points. The bounding shape may then be rotated by an angle in order to determine a final bounding shape for the object.
1 . A method comprising:
determining, based at least on first locations associated with points corresponding to an object depicted by an image, a first bounding shape that encloses the points;
determining, based at least on rotating one or more of the points by an angle and in a first direction, second locations associated with the points;
determining, based at least on the second locations associated with the points, a second bounding shape that encloses the points at the second locations;
selecting, based at least on the first bounding shape and the second bounding shape, the second bounding shape for the points;
determining, based at least on rotating the second bounding shape by the angle in a second direction that is different than the first direction, a final bounding shape for the points; and
processing, using one or more machine learning models, a portion of the image that includes the final bounding shape to determine information associated with the object that corresponds to the points.
2 . The method of claim 1 , wherein the selecting the second bounding shape for the points comprises:
determining a first area of the first bounding shape and a second area of the second bounding shape;
determining that the second area is less than the first area; and
selecting, based at least on the second area being less than the first area, the second bounding shape for the points.
3 . The method of claim 1 , wherein the determining the second bounding shape that encloses the points comprises:
determining, based at least on the second locations, a first minimum value and a first maximum value associated with a first direction and a second minimum value and a second maximum value associated with a second direction;
determining vertices based at least on the first minimum value, the first maximum value, the second minimum value, and the second maximum value; and
determining the second bounding shape using the vertices.
4 . The method of claim 3 , wherein the determining the vertices comprises:
determining a first vertex based at least on the first minimum value and the second minimum value;
determining a second vertex based at least on the first minimum value and the second maximum value;
determining a third vertex based at least on the first maximum value and the second minimum value; and
determining a fourth vertex based at least on the first maximum value and the second maximum value.
5 . The method of claim 1 , further comprising:
determining, based at least on rotating the points by a second angle, third locations associated with the points; and
determining, based at least on the third locations associated with the points, a third bounding shape that encloses the points,
wherein the selecting the second bounding shape for the points is further based at least on the third bounding shape.
6 . The method of claim 1 , wherein:
the determining the first bounding shape that encloses the points occurs during a period of time; and
at least one of the determining the second locations associated with the points or the determining the second bounding shape that encloses the points occurs at least partially during the period of time.
7 . The method of claim 1 , wherein the determining the first bounding shape that encloses the points, the determining the second locations associated with the points, the determining the second bounding shape that encloses the points, and the selecting the second bounding shape for the points occur during a period of time, and wherein, during at least a portion of the period of time, the method further comprises:
determining, based at least on third locations associated with second points, a third bounding shape that encloses the second points;
determining, based at least on rotating the second points, fourth locations associated with the second points;
determining, based at least on the fourth locations associated with the second points, a fourth bounding shape that encloses the second points; and
selecting, based at least the third bounding shape and the fourth bounding shape, the fourth bounding shape for the second points.
8 . A system comprising:
one or more processors to:
determine, based at least on a first orientation associated with an object depicted in an image, a first bounding shape that encloses the object, the first bounding shape being defined using first coordinate locations associated with a coordinate system;
determine, based at least on rotating the object, a second orientation associated with the object;
determine, based at least on the second orientation associated with the object, a second bounding shape that encloses the object, the second bounding shape being defined using second coordinate locations associated with the coordinate system; and
selecting, based at least on the first bounding shape and the second bounding shape, the second bounding shape for the object.
9 . The system of claim 8 , wherein the selection of the second bounding shape for the object comprises:
determining a first area of the first bounding shape and a second area of the second bounding shape;
determining that the second area is less than the first area; and
selecting, based at least on the second area being less than the first area, the second bounding shape for the object.
10 . The system of claim 8 , wherein the rotating the object comprises rotating the object according to an angle and in a first direction, and wherein the one or more processors are further to determine, based at least on rotating the second bounding shape according to the angle and in a second direction, a final bounding shape for the object.
11 . The system of claim 8 , wherein the first bounding shape that encloses the object is determined by:
determining, based at least on the first orientation associated with the object, a first minimum value and a first maximum value associated with a first direction and a second minimum value and a second maximum value associated with a second direction;
determining vertices based at least on the first minimum value, the first maximum value, the second minimum value, and the second maximum value; and
determining the first bounding shape using the vertices.
12 . The system of claim 11 , wherein determining the vertices comprises:
determining a first vertex based at least on the first minimum value and the second minimum value;
determining a second vertex based at least on the first minimum value and the second maximum value;
determining a third vertex based at least on the first maximum value and the second minimum value; and
determining a fourth vertex based at least on the first maximum value and the second maximum value.
13 . The system of claim 11 , wherein the second bounding shape that encloses the object is determined by:
determining, based at least on the second orientation associated with the object, a third minimum value and a third maximum value associated with the first direction and a fourth minimum value and a fourth maximum value associated with the second direction;
determining second vertices based at least on the third minimum value, the third maximum value, the fourth minimum value, and the fourth maximum value; and
determining the second bounding shape using the second vertices.
14 . The system of claim 8 , wherein the rotating of the object comprises rotating the object according to a first angle, and wherein the one or more processors are further to:
determine, based at least on rotating the object according to a second angle, a third orientation associated with the object; and
determine, based at least on the third orientation associated with the object, a third bounding shape that encloses the object,
wherein the second bounding shape for the object is further selected based at least on the third bounding shape.
15 . The system of claim 8 , wherein:
the first bounding shape that encloses the object is determined during a period of time; and
at least one of the determination of the second orientation associated with the object or the determination of the second bounding shape that encloses the object occurs at least partially during the period of time.
16 . The system of claim 8 , wherein the system is comprised in at least one of:
a control system for an autonomous or semi-autonomous machine;
a perception system for an autonomous or semi-autonomous machine;
a system for performing simulation operations;
a system for performing digital twin operations;
a system for performing light transport simulation;
a system for performing collaborative content creation for 3D assets;
a system for performing deep learning operations;
a system implemented using an edge device;
a system implemented using a robot;
a system for performing conversational AI operations;
a system for performing operations using a language model;
a system for generating synthetic data;
a system incorporating one or more virtual machines (VMs);
a system implemented at least partially in a data center; or
a system implemented at least partially using cloud computing resources.
17 . One or more processors comprising processing circuitry to:
determine, based at least on first locations associated with points within a coordinate system, a first bounding shape that encloses the points;
determine, based at least on rotating one or more of the points, second locations associated with the points within the coordinate system that differ from the first locations associated with the points;
determine, based at least on the second locations associated with the points within the coordinate system, a second bounding shape that encloses the points; and
select, based at least on the first bounding shape and the second bounding shape, the second bounding shape for the points.
18 . The one or more processors of claim 17 , wherein the one or more processors are comprised in at least one of:
a control system for an autonomous or semi-autonomous machine;
a perception system for an autonomous or semi-autonomous machine;
a system for performing simulation operations;
a system for performing digital twin operations;
a system for performing light transport simulation;
a system for performing collaborative content creation for 3D assets;
a system for performing deep learning operations;
a system implemented using an edge device;
a system implemented using a robot;
a system for performing conversational AI operations;
a system for performing operations using a language model;
a system for generating synthetic data;
a system incorporating one or more virtual machines (VMs);
a system implemented at least partially in a data center; or
a system implemented at least partially using cloud computing resources.
19 . The method of claim 1 , wherein:
the first bounding shape is defined using first coordinate locations associated with a coordinate system; and
the second bounding shape is defined using second coordinate locations associated with the coordinate system.
20 . The method of claim 1 , wherein the first bounding shape includes a same orientation associated with a coordinate system as the second bounding shape.