I am currently working on developing a multi-rotor unmanned aircraft system (UAS) to be used in search and rescue operations using object recognition to find a target and deliver a payload, e.g. to help an injured climber on traditionally inaccessible terrain needing to be dropped fluids, a torch, an insulating blanket and/or a flare to assist their survival and later rescue.
I have a Mobius camera connected to the Raspberry Pi, running an OpenCV application to detect objects. Their position in the frame is used to generate velocity data that is sent via DroneKit to ArduCopter, which then moves to centre the drone above said object.
For this example I was using a colour mask and filter to only leave the red jacket in frame. Then it finds an average centre for the object and uses the coordinates of the object in the frame to decide what velocity should be sent to ArduPilot using DroneKit. For example, coordinates of (0,0) indicate the object is in the top left corner, so the vehicle should move “North-West” (relative to the camera, not actually using compass.)