A computer system is provided that includes a camera device configured to capture images of a physical scene and a processor configured to store a list of identified blobs. Each identified blob includes a determined blob feature and a path of tracked positions for that identified blob. The processor is configured to receive a series of images of the physical scene from the camera device, detect a candidate blob in a candidate image of the series of images, determine a blob feature of the candidate blob and a position of the candidate blob in the candidate image captured by the camera device. For each identified blob in the list, the processor is configured to compute a match score between the candidate blob and that identified blob.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A computer system comprising: a camera device configured to capture images of a physical scene; and a processor configured to: store a list of identified blobs, each identified blob including a determined blob feature and a path of tracked positions for that identified blob; receive a series of images of the physical scene from the camera device; detect a candidate blob in a candidate image of the series of images; determine a blob feature of the candidate blob and a position of the candidate blob in the candidate image captured by the camera device; for each identified blob in the list, compute a match score between the candidate blob and that identified blob based on a feature match between the determined blob features of the candidate blob and that identified blob and a proximity between the position of the candidate blob and the path of tracked positions for that identified blob; identify the candidate blob as being a new blob or one of the identified blobs in the list based on the match score; if the candidate blob is identified as being a new blob, update the list of identified blobs with the candidate blob; and if the candidate blob is identified as one of the identified blobs in the list, update the path of tracked positions for the one of the identified blobs with the determined position of the candidate blob.
2. The computer system of claim 1 , wherein to detect the candidate blob the processor is further configured to: for each pixel in the candidate image of the series of images, identify whether that pixel is a background or a foreground pixel based on a history of that pixel over the series of images; and detect the candidate blob based on identifying a contiguous group of foreground pixels in the candidate image.
3. The computer system of claim 2 , wherein contiguous groups of foreground pixels below a threshold size are not detected as candidate blobs.
4. The computer system of claim 2 , wherein the processor is further configured to: detect one or more background features of the background pixels; and determine the position of the candidate blob relative to the one or more detected background features.
5. The computer system of claim 1 , wherein the determined blob features are selected from the group consisting of an edge detection feature, a color histogram feature, and a geometric feature.
6. The computer system of claim 1 , wherein the processor is further configured to determine a bounding box for the candidate blob, and wherein larger ratios of overlap between the bounding box of the candidate blob and the path of tracked positions for that identified blob are given higher match scores than lower ratios of overlap.
7. The computer system of claim 1 , wherein the processor is integrated with the camera device, and wherein the computer system includes a plurality of processor integrated camera devices configured to share the updated list of identified blobs with other processor integrated camera devices.
8. The computer system of claim 7 , wherein each processor integrated camera device is configured to: determine that the candidate blob is heading toward another processor integrated camera device based on the path of tracked positions for the candidate blob; and send the determined blob feature and the path of tracked positions for the candidate blob to the another processor integrated camera device.
9. The computer system of claim 1 , wherein the list of identified blobs does not store pixels from the series of images captured by the camera device.
10. The computer system of claim 1 , wherein the processor is further configured to generate a heatmap indicating the path of tracked positions for each identified blob in the list.
11. A method comprising: at a computer system including a processor: storing a list of identified blobs, each identified blob including a determined blob feature and a path of tracked positions for that identified blob; receiving a series of images of a physical scene from a camera device configured to capture images of the physical scene; detecting a candidate blob in a candidate image of the series of images; determining a blob feature of the candidate blob and a position of the candidate blob in the candidate image captured by the camera device; for each identified blob in the list, computing a match score between the candidate blob and that identified blob based on a feature match between the determined blob features of the candidate blob and that identified blob and a proximity between the position of the candidate blob and the path of tracked positions for that identified blob; identifying the candidate blob as being a new blob or one of the identified blobs in the list based on the match score; if the candidate blob is identified as being a new blob, updating the list of identified blobs with the candidate blob; and if the candidate blob is identified as one of the identified blobs in the list, updating the path of tracked positions for the one of the identified blobs with the determined position of the candidate blob.
12. The method of claim 11 , wherein detecting the candidate blob further comprises: for each pixel in the candidate image of the series of images, identifying whether that pixel is a background or a foreground pixel based on a history of that pixel over the series of images; and detecting the candidate blob based on identifying a contiguous group of foreground pixels in the candidate image.
13. The method of claim 12 , wherein contiguous groups of foreground pixels below a threshold size are not detected as candidate blobs.
14. The method of claim 12 , further comprising: detecting one or more background features of the background pixels; and determining the position of the candidate blob relative to the one or more detected background features.
15. The method of claim 11 , wherein the determined blob features are selected from the group consisting of an edge detection feature, a color histogram feature, and a geometric feature.
16. The method of claim 11 , further comprising determining a bounding box for the candidate blob, and wherein larger ratios of overlap between the bounding box of the candidate blob and the path of tracked positions for that identified blob are given higher match scores than lower ratios of overlap.
17. The method of claim 11 , wherein the processor is integrated with the camera device, and wherein the computer system includes a plurality of processor integrated camera devices configured for sharing the updated list of identified blobs with other processor integrated camera devices.
18. The method of claim 17 , further comprising: determining that the candidate blob is heading toward another processor integrated camera device based on the path of tracked positions for the candidate blob; and sending the determined blob feature and the path of tracked positions for the candidate blob to the another processor integrated camera device.
19. The method of claim 11 , wherein the list of identified blobs does not store pixels from the series of images captured by the camera device.
20. A computer system comprising: a plurality of processor integrated camera devices, wherein each respective processor of each of the plurality of processor integrated camera devices is configured to: store a list of identified blobs, each identified blob including a determined blob feature and a path of tracked positions for that identified blob; receive a series of images of the physical scene from the camera device; detect a candidate blob in a candidate image of the series of images; determine a blob feature of the candidate blob and a position of the candidate blob in the candidate image captured by the camera device; for each identified blob in the list, compute a match score between the candidate blob and that identified blob based on a feature match between the determined blob features of the candidate blob and that identified blob and a proximity between the position of the candidate blob and the path of tracked positions for that identified blob; identify the candidate blob based on the match score; determine that the candidate blob is heading toward another processor integrated camera device based on the path of tracked positions for the candidate blob; and send the determined blob feature and the path of tracked positions for the candidate blob to the another processor integrated camera device.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
July 26, 2018
May 12, 2020
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.