A Middleware Infrastructure for Programming Vision-Based Applications in UAVs