Skip to content

Aerial scout for first responders. DroneAid uses machine learning to detect calls for help on the ground placed by those in need.

License

Notifications You must be signed in to change notification settings

Call-for-Code/DroneAid

Repository files navigation

License Slack

DroneAid logo

DroneAid uses machine learning to detect calls for help on the ground placed by those in need. At the heart of DroneAid is a Symbol Language that is used to train a visual recognition model. That model analyzes video from a drone to detect and count specific images. A dashboard can be used to plot those locations on a map and initiate a response.

An aerial scout for first responders

DroneAid consists of several components:

  1. The DroneAid Symbol Language that represents need and quantities
  2. A mechanism for rendering the symbols in virtual reality to train a model
  3. The trained model that can be applied to drone livestream video
  4. A dashboard that renders the location of needs captured by a drone

The current implementation can be extended beyond a particular drone to additional drones, airplanes, and satellites. The Symbol Language can be used to train additional visual recognition implementations.

The original version of DroneAid was created by Pedro Cruz in August 2018. A refactored version was released as a Call for Code® with The Linux Foundation open source project in October 2019. DroneAid is currently hosted at The Linux Foundation.

Get started

The DroneAid origin story

Pedro Cruz explains his inspiration for DroneAid, based on his experience in Puerto Rico after Hurricane Maria. He flew his drone around his neighborhood and saw handwritten messages indicating what people need and realized he could standardize a solution to provide a response.

DroneAid

DroneAid Symbol Language

The DroneAid Symbol Language provides a way for those affected by natural disasters to express their needs and make them visible to drones, planes, and satellites when traditional communications are not available.

Victims can use a pre-packaged symbol kit that has been manufactured and distributed to them, or recreate the symbols manually with whatever materials they have available.

These symbols include those below, which represent a subset of the icons provided by The United Nations Office for the Coordination of Humanitarian Affairs (OCHA). These can be complemented with numbers to quantify need, such as the number or people who need water.

Symbol Meaning Symbol Meaning
SOS Immediate Help Needed
(orange; downward triangle over SOS)
Shelter Shelter Needed
(cyan; person standing in structure)
OK No Help Needed
(green; upward triangle over OK)
FirstAid First Aid Kit Needed
(yellow; case with first aid cross)
Water Water Needed
(blue; water droplet)
Children Area with Children in Need
(lilac; baby with diaper)
Food Food Needed
(red; pan with wheat)
Elderly Area with Elderly in Need
(purple; person with cane)

See it in action

Dashboard Screenshot

A demonstration implementation takes the video stream of DJI Tello drone and analyzes the frames to find and count symbols. See tello-demo for instructions on how to get it running.

Use the pre-trained visual recognition model on the Symbol Language

See the Tensorflow.js example.

See the Tensorflow.js example deployed to Code Engine.

Set up and training the model

In order to train the model, we must place the symbols into simulated environments so that the system knows how to detect them in a variety of conditions (i.e. whether they are distorted, faded, or in low light conditions).

See SETUP.md

Frequently asked questions

See FAQ.md

Project roadmap

See ROADMAP.md

Technical charter

See DroneAid-Technical-Charter.pdf

Built with

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting DroneAid pull requests.

Authors

License

This project is licensed under the Apache 2 License - see the LICENSE file for details.