Key Outcomes
- Designed and developed infrastructure for a real-time object detection system capable of processing data from multiple live video feeds simultaneously.
- Optimised the application to run detections with comparable frame rate to source video feed.
- Proof of concept system was received favourably by stakeholders, with stakeholders expressing interest in moving forward through to testing and subsequent phases.
More Information
Machine learning computer vision systems can help enhance health and safety operations within businesses, especially for cases where the problem involves analysing or viewing a large amount of video data daily. A smart automated approach to such problems can lead to more efficient and cost-effective operations. At Qrious, my team was involved with exploring next generation safety measures for a business monitoring activity through live video feeds. As the core software engineer in the team, I took ownership of designing and developing the infrastructure for the application built to demonstrate the capability of AI in this space. Taking a phased approach to the project, I also researched and outlined what a production deployment of the real-time system for safety monitoring would require.
The proof of concept developed was deployed on Kubernetes, with a CI/CD system that pushed updates to the Kubernetes deployment when code was merged to our master branch. Model and application versioning conventions were defined to allow us to effectively make comparisons across models, and track deployments. Alongside this, I added a system liveliness check to monitor the application’s health, and attempt automatic recovery of the application during failures of this check. This proved invaluable during one of our live test phases where it helped the system automatically recover from a faulty connection to the live video stream.
The application itself retrieved video data from a live stream frame by frame, and ran inference on each frame. Multiple video streams were part of this pilot work, and thus the application built had to be capable of ingesting and processing data from multiple video feeds simultaneously, and within a reasonable period of time. I specifically looked into the optimisation of work loads, including the parallelisation of tasks, to determine latency benchmarks and outline steps to be taken to allow these benchmarks to hold or improve when deploying the system at scale. In addition to this, I implemented functionality to save predictions from the running application into a database. This was used to analyse the predictions and allow reporting of the model performance, and also build up training data for future model training iterations.
The deployment and presentation of the proof of concept, and subsequent running of the application for a live test to validate the usefulness of the model was favourably received by the interested business, and proved invaluable for showcasing the feasibility of an AI approach to safety monitoring in the context of the business’s health and safety processes.