Processing Data Streams
Video and accelerometer data streams are large and require a large amount of compute resources. In a system, like the one we are developing, compute resources are scarce and must be used diligently. In order to lessen the in-vehicle compute burden, data is streamed through Kinesis and processed on the cloud. In the vehicle, client devices, like a video camera, sample and compress the raw feed and push it to the cloud as a Kinesis Producer.
Simultaneously, a Python script, running on EC2, called a Kinesis Consumer is listening for new data in the stream. When it detects new data, the script iterates through the data reconstructing the video frame to be analyzed.
The newly reconstructed frame is processed through the Machine Learning algorithm as described in 2.2. If several frames have a certain set of attributes than we have reliably detected a significant change in driver behavior.
Simultaneously, a Python script, running on EC2, called a Kinesis Consumer is listening for new data in the stream. When it detects new data, the script iterates through the data reconstructing the video frame to be analyzed.
The newly reconstructed frame is processed through the Machine Learning algorithm as described in 2.2. If several frames have a certain set of attributes than we have reliably detected a significant change in driver behavior.