Computer Vision in Adverse Conditions: Small Objects, Low-Resoltuion Images, and Edge Deployment