US 11,734,919 B1
Flexible computer architecture for performing digital image analysis
Daniele Cazzari, Cary, NC (US); Hardi Desai, Raleigh, NC (US); Allen Joseph Langlois, Apex, NC (US); Jonathan Walker, Raleigh, NC (US); Thomas Tuning, Cary, NC (US); Saurabh Mishra, Cary, NC (US); and Varunraj Valsaraj, Cary, NC (US)
Assigned to SAS Institute, Inc., Cary, NC (US)
Filed by SAS Institute Inc., Cary, NC (US)
Filed on Nov. 16, 2022, as Appl. No. 17/988,463.
Claims priority of provisional application 63/353,651, filed on Jun. 20, 2022.
Claims priority of provisional application 63/332,295, filed on Apr. 19, 2022.
Int. Cl. G06V 10/94 (2022.01)
CPC G06V 10/94 (2022.01) 30 Claims
OG exemplary drawing
 
1. A system comprising:
a plurality of processors; and
a plurality of memories including program code that is executable by the plurality of processors for causing the plurality of processors to:
execute a distributed messaging platform configured to receive a plurality of images of a target area and store the plurality of images in a first queue, the plurality of images being captured by a plurality of cameras;
execute a first container configured to:
receive the plurality of images from the first queue;
apply an image analysis model to the plurality of images to generate an image analysis result; and
transmit the image analysis result to the distributed messaging platform, the distributed messaging platform being configured to receive the image analysis result and store the image analysis result in a second queue;
execute a second container that is separate from the first container, the second container being configured to:
receive the image analysis result from the second queue;
perform a post-processing operation on the image analysis result to generate a post-processing result; and
transmit the post-processing result to the distributed messaging platform, the distributed messaging platform being configured to receive the post-processing result and store the post-processing result in a third queue; and
execute one or more output containers that are separate from the first container and the second container, the one or more output containers being configured to:
receive the post-processing result from the third queue;
generate an alert notification based on the post-processing result; and
transmit the alert notification to one or more recipient devices.