Presented at PyData Delhi 2017
Building Camera based
● Final Year Undergrad @ IITR
● Software Engineer Intern @ rorodata
● Systems Engineer @ Team Robocon IITR
● Love my kindle and hacking through things
● Use Cases
● Components of the pipeline
● Bottlenecks & Challenges
● Our approach
○ Camera Agent
○ Cloud Architecture
● Code Samples
● Ending notes
What are camera based applications?
What makes them intelligent?
● Agricultural yield estimation
● Object classification
● Barcode recognition on conveyor
How would you build them?
Components of the pipeline
● Data Ingestion
● Data Storage
● Machine Learning
Bottlenecks and Challenges
● What tools to use?
● How to capture data?
● Where to store?
● Where should my ML code run?
● How should I visualize the output?
● Takes 2-3 weeks for building an application
● Of that, only 2 days may be spent on actual machine learning
● Majority of the time is spent in software engineering rather than ML
Time to Market!
● Program running on end device
● Connects to pre-configured server
● Captures and uploads pictures/videos
● Remotely configurable by the server
● Server to get data from the agents and store them
● Admin Dashboard to control the capture frequency, type of data captured,
see logs and uploads from registered devices
● Storage provider can be changed
● Provides a client library for fetching data
● Framework to deploy Python functions as REST web service
● Very easy and flexible to use
● Used to deploy ML models and pre-processing functions
● Easily deployable using WSGI servers like gunicorn
● Open Source !
● Variety of visualization options
● Data provided by the client library or a firefly function running Machine
● Run anywhere
● Plotting and charting using Dash by plot.ly or any other visualization tool
Talk is cheap.
Show me the code.
- Linus Torvalds
● End to end application development in 3-4 days
● Majority of time spent on ML
● Robust infrastructure
● Versatile data storage options
Have a nice day.