IP Library Granted Patent US 11,080,568
Granted Patent B2
US 11,080,568 · App. 16/395,927 · Granted Aug 3, 2021

Object-model based event detection system

Inventors: Saleh ElHattab (San Francisco, CA); Justin Joel Delegard (West Chester, OH); Bodecker John DellaMaria (San Francisco, CA); Brian Tuan (Cupertino, CA); Jennifer Winnie Leung (Berkeley, CA); Sylvie Lee (San Francisco, CA); Jesse Michael Chen (San Francisco, CA)
Assignee: Samsara Inc.
G06K9/6289B60C9/00G06K9/00718G06K9/00744G06K9/00818G06K9/00845G08G1/052G06K2009/00738
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,080,568
App. No.
16/395,927
Granted
Aug 3, 2021
Kind
B2
Abstract

Example embodiments described herein therefore relate to an object-model based event detection system that comprises a plurality of sensor devices, to perform operations that include: generating sensor data at the plurality of sensor devices; accessing the sensor data generated by the plurality of sensor devices; detecting an event, or precursor to an event, based on the sensor data, wherein the detected event corresponds to an event category; accessing an object model associated with the event type in response to detecting the event, wherein the object model defines a procedure to be applied by the event detection system to the sensor data; and streaming at least a portion of a plurality of data streams generated by the plurality of sensor devices to a server system based on the procedure, wherein the server system may perform further analysis or visualization based on the portion of the plurality of data streams.

Claims (85)

1. A system comprising:

a plurality of sensor devices that generate sensor data that comprises a plurality of data streams;

a memory; and

at least one hardware processor to perform operations comprising:

accessing a first data stream from among the plurality of data streams, the first data stream comprising a video stream generated by a first sensor device;

detecting an event precursor based on the first data stream, the event precursor including a feature within a frame of the video stream;

accessing an object model associated with the event precursor in response to the detecting the event precursor, the object model defining a data flow that corresponds with an event associated with the event precursor, the data flow including an identification of a second data stream generated by a second sensor device from among the plurality of sensor devices, the second data stream comprising inertial data;

selecting the second sensor device from among the plurality of sensor devices based on the data flow that includes the identification of the second data stream;

causing the system to access the second data stream from the second sensor device based on the identification of the portion of the plurality of data streams by the object model associated with the event precursor;

detecting the event associated with the event precursor based on at least the first data stream and the second data stream, the event corresponding to an event type;

performing a validation of the event based on the video data of the first data stream, and the inertial data of the second data stream;

identifying a portion of the plurality of data streams based on the data flow that corresponds with the event precursor in response to the validation of the event; and

causing the system to stream the portion of the plurality of data streams that corresponds with the event to a server system based on the data flow defined by the object model.

2. The system of claim 1 , wherein the plurality of data streams comprise one or more of:

an audio stream that comprises audio data;

an accelerometer stream that comprises the inertial data; and

a global positioning system stream that comprises location data.

3. The system of claim 2 , wherein the second data stream includes the accelerometer stream, and the detecting the event further comprises:

accessing inertial data from the accelerometer stream based on a timestamp associated with the frame based on the detecting the precursor to the event based on the feature within the frame of the video stream; and

detecting the event based on the inertial data and the frame of the video stream.

4. The system of claim 1 , wherein the first data stream is a first video stream, and:

the plurality of data streams include the first video stream and a second video stream, and the detecting the event includes detecting the event based on the first video stream, and the second data stream; and

the streaming at least the portion of the plurality of data streams to the server system based on the data-flow defined by the object model includes streaming the second video stream to the server system.

5. The system of claim 1 , wherein the streaming at least the portion of the plurality of data streams to the server system based on the data-flow defined by the object model includes:

selecting the portion of the plurality of data streams to the server system based on the data-flow defined by the object model.

6. The system of claim 1 , wherein:

the accessing of the sensor data includes accessing the sensor data generated by the at least one sensor device at a first data rate;

the object model associated with the event type defines a second data rate; and

the streaming of the portion of the plurality of data streams to the server system includes streaming the portion of the plurality of data streams at the second data rate based on the detecting the event.

7. The system of claim 1 , wherein the sensor data includes video data, and the detecting the event includes:

extracting a set of features from the video data;

applying the set of features from the video data to a machine learned model; and

detecting the event based on the machine learned model.

8. The system of claim 1 , wherein the sensor data includes location data and speed data, and the detecting the event based on the sensor data further comprises:

determining a location based on the location data;

accessing a repository that includes a speed limit associated with the location; and

performing a comparison of the speed data and the speed limit associated with the location.

9. The system of claim 8 , wherein the at least one hardware processor performs operations further comprising:

retrieving a threshold value associated with the speed limit;

determining that the speed data transgresses the threshold value; and

presenting a notification at a client device based on determining that the speed data transgresses the threshold value, the notification including a display of the speed data and an identifier associated with the sensor device.

10. A method comprising:

accessing a first data stream from among a plurality of data streams, the first data stream comprising a video stream generated by a first sensor device;

detecting an event precursor based on the first data stream, the event precursor including a feature within a frame of the video stream;

accessing an object model associated with the event precursor in response to the detecting the event precursor, the object model defining a data flow that corresponds with an event associated with the event precursor, the data flow including an identification of a second data stream generated by a second sensor device from among the plurality of sensor devices, the second data stream comprising inertial data;

selecting the second sensor device from among the plurality of sensor devices based on the data flow that includes the identification of the second data stream;

causing the system to access the second data stream from the second sensor device based on the identification of the portion of the plurality of data streams by the object model associated with the event precursor;

detecting the event associated with the event precursor based on at least the first data stream and the second data stream, the event corresponding to an event type;

performing a validation of the event based on the video data of the first data stream, and the inertial data of the second data stream;

identifying a portion of the plurality of data streams based on the data flow that corresponds with the event precursor in response to the validation of the event; and

causing the system to stream the portion of the plurality of data streams that corresponds with the event to a server system based on the data flow defined by the object model.

11. The method of claim 10 , wherein the plurality of data streams comprise one or more of:

an audio stream that comprises audio data;

an accelerometer stream that comprises the inertial data; and

a global positioning system stream that comprises location data.

12. The method of claim 11 , wherein the second data stream includes the accelerometer stream, and the detecting the event further comprises:

accessing inertial data from the accelerometer stream based on a timestamp associated with the frame based on the detecting the precursor to the event based on the feature within the frame of the video stream; and

detecting the event based on the inertial data and the frame of the video stream.

13. The method of claim 11 , wherein the first data stream is a first video stream, and:

the plurality of data streams include the first video stream and a second video stream, and

the detecting the event includes detecting the event based on the first video stream and the second data stream; and

the streaming at least the portion of the plurality of data streams to the server system based on the data-flow defined by the object model includes streaming the second video stream to the server system.

14. The method of claim 10 , wherein the streaming at least the portion of the plurality of data streams to the server system based on the data-flow defined by the object model includes:

selecting the portion of the plurality of data streams to the server system based on the data-flow defined by the object model.

15. The method of claim 10 , wherein:

the accessing of the sensor data includes accessing the sensor data generated by the at least one sensor device at a first data rate;

the object model associated with the event type defines a second data rate; and

the streaming of the portion of the plurality of data streams to the server system includes streaming the portion of the plurality of data streams at the second data rate based on the detecting the event.

16. A non-transitory machine-readable storage medium comprising instructions that, when executed by one or more processors of a machine, cause the machine to perform operations comprising:

accessing a first data stream from among a plurality of data streams, the first data stream comprising a video stream generated by a first sensor device;

detecting an event precursor based on the first data stream, the event precursor including a feature within a frame of the video stream;

accessing an object model associated with the event precursor in response to the detecting the event precursor, the object model defining a data flow that corresponds with an event associated with the event precursor, the data flow including an identification of a second data stream generated by a second sensor device from among the plurality of sensor devices, the second data stream comprising inertial data;

selecting the second sensor device from among the plurality of sensor devices based on the data flow that includes the identification of the second data stream;

causing the system to access the second data stream from the second sensor device based on the identification of the portion of the plurality of data streams by the object model associated with the event precursor;

detecting the event associated with the event precursor based on at least the first data stream and the second data stream, the event corresponding to an event type;

performing a validation of the event based on the video data of the first data stream, and the inertial data of the second data stream;

identifying a portion of the plurality of data streams based on the data flow that corresponds with the event precursor in response to the validation of the event; and

causing the system to stream the portion of the plurality of data streams that corresponds with the event to a server system based on the data flow defined by the object model.

17. The non-transitory machine-readable storage medium of claim 16 , wherein the plurality of data streams comprise one or more of:

an audio stream that comprises audio data;

an accelerometer stream that comprises the inertial data; and

a global positioning system stream that comprises location data.

18. The non-transitory machine-readable storage medium of claim 17 , wherein the second data stream includes the accelerometer stream, and the detecting the event further comprises:

accessing inertial data from the accelerometer stream based on a timestamp associated with the frame based on the detecting the precursor to the event based on the feature within the frame of the video stream; and

detecting the event based on the inertial data and the frame of the video stream.

Assignments (3)
CHANGE OF NAME Recorded Jan 17, 2024
From: SAMSARA NETWORKS INC.
To: SAMSARA INC.
Reel/Frame 066154/0870 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INVENTOR NAME TO JESSE MICHAEL CHEN THAT WAS INCORRECTLY RECORDED AS LEE MICHAEL CHEN PREVIOUSLY RECORDED ON REEL 050879 FRAME 0087. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 5, 2019
From: ELHATTAB, SALEH; DELEGARD, JUSTIN JOEL; DELLAMARIA, BODECKER JOHN; TUAN, BRIAN; LEUNG, JENNIFER WINNIE; LEE, SYLVIE; CHEN, JESSE MICHAEL
To: SAMSARA NETWORKS INC.
Reel/Frame 050929/0400 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2019
From: ELHATTAB, SALEH; DELEGARD, JUSTIN JOEL; DELLAMARIA, BODECKER JOHN; TUAN, BRIAN; LEUNG, JENNIFER WINNIE; LEE, SYLVIE; CHEN, LEE MICHAEL
To: SAMSARA NETWORKS INC.
Reel/Frame 050879/0087 →
Continuity (1)
Related Publication 20200342274A1 · Oct 29, 2020
Cited By (42)
US 12,197,610 US 12,213,090 US 12,228,944 US 12,253,617 US 12,256,021 US 12,260,616 US 12,269,498 US 12,284,461 US 12,289,181 US 12,306,010 US 12,327,445 US 12,328,639 US 12,344,168 US 12,346,712 US 12,367,718 US 12,375,876 US 12,391,256 US 12,397,785 US 12,426,007 US 12,438,947 US 12,444,306 US 12,445,285 US 12,450,329 US 12,464,045 US 12,479,446 US 12,501,178 US 12,511,947 US 12,524,314 US 12,534,097 US 12,556,661 US 12,561,624 US 12,565,143 US 12,626,200 US 12,630,050 US 12,646,402 US 12,651,529 US 12,662,152 US 12,665,989 US 12,671,464 US 12,675,419 US 12,682,753 US 12,701,004