Towards Developing Computer Vision Algorithms and Architectures for Real-world Applications