Drone Computer Vision

Drone follows household fruits and veggies (bananas, tomatoes, cabbage, and more) by identifying their contours in the drone's webcam video stream.

What it is: Web App (server)
communicating with Drone (client)
Technologies and Frameworks: Node.js server for drone logic
OpenCV for color filtration
jQuery front-end

A server written in Node.js is the brains behind the system. Information flows from the Drone webcam to the server and then back to the Drone.

The server receives a stream of PNG still images from the drone’s webcam in real-time, runs a number of color filtration steps (depicted below) on each image to calculate the largest blob of a pre-specified color (yellow for bananas, light green for gourd, red for tomato). It then computes the outline and the center (blobCenterX, blobCenterY) of this blob.

As the computed outline moves around, the server computes the distance between (blobCenterX, blobCenterY) and (screenCenterX, screenCenterY) and then send instructions to the drone to smoothly move in the direction that would reduce the gap between the two points.