Git Product home page Git Product logo

uav_detection_and_tracking_system's Introduction

Real Time Detection and Tracking System on UAV

Problem Statement Summary

Build a real time car/people detection and tracking system on DJI drones. The solution should include:

The videos should be captured by cameras on Drones.

Software framework should be based on ROS.

Car/people should be detected by deep learning methods and indicated by bounding box.

Positions and orientation control should be updated in real time (10 Hz or faster)

System Overview

overview

Required Data Set

COCO( Pedestrian )

Data set(coco) has been obtained by Microsoft. COCO is a large-scale object detection, segmentation, and captioning dataset.

KITTI( Car )

Left color images of object data set 12GB

Training labels of object data set 5MB

Object development kit 1MB

Approach

Combine DJI M100, DJI X3 cameras, DJI Manifold(TK1), NVIDIA TX1 , ROS-indigo to generate result. The software on TX1 is a revised version of Nvidia embedding computing demo. The software on Manifold is a revised version of DJI-Onboard-SDK-ROS 3.1.

TX1:

Use KITTI dataset to training a new detectnet caffe model.(NVIDIA TX1 and Digits) Solver type = Adam Learning rate = 0.0001 Batch size = 2 Batch Accumulation = 5 Epoch = 30 pretrained model = Google Net

detectNet.cpp

digits

Use TensorRT to accelerate the caffe model. (NVIDIA deep vision runtime library)

detectNet.h tensorNet.cpp

TensorRT_efficiency

Program Cuda kernal to process each image and its bounding box(Cuda C/C++ API)

detectnet-console.cpp cuda

This net will return the coordinates of objects bounding boxes.(NVIDIA deep vision runtime library )

detectNet.cpp

Use ROS to send message between camera, manifold, TX1. (ROS image_transport sensor_msg cv_bridge std_msgs)

detectNet.cpp

TK1(DJI Manifold)

Use DJI X3 camera for video capture(25fps,1280*720, YUV->RGB) and use ROS to send image.(Onboard-SDK-ROS 3.1 DJI_SDK_read_cam) nv_cam.cpp

Use DJI manifold to process KCF algorithm for tracking return bounding box of tracked pedstrain/car (University of Coimbra C++ Implementation of KCF Tracker + ROS ) runtracker.cpp

Calibrate cameras to acquire essential matrix. uavcontrol.cpp

Transfer 2D coordinates to 3D coordinates by essentianl matrix and foundamental matrix for drone control. uavcontrol.cpp

Use DJI flying control SDK and implement a Kalman filter to optimize the control of DJI M100. (DJI Onboard-SDK-ROS 3.6 demo_flight_control) uavcontrol.cpp

Result

Image test

peds_input

peds_output

car_input

car_output

Video test

pedestrain_video

car_video

Drone test

Click the image to see full video

Watch the video

Related Work

UAV Based Target Tracking and Recognition PDF

Nvidia caffe

GoogleNet

Fast RCNN

Nvidia Deep Learning SDK

KCF tracker

Kalman filter

NVCaffe Detectnet Architecture

detectnet

uav_detection_and_tracking_system's People

Contributors

amoslewis avatar

Stargazers

Thomas Wang avatar karroat avatar  avatar  avatar Mariam Fathy avatar  avatar Smile7728 avatar  avatar Raj Chinagundi avatar XHJ avatar Hieu Thai avatar Jiangchao Zhu avatar  avatar  avatar  avatar  avatar Vamshi Kodipaka avatar yuxibiwin avatar Dong W avatar Michael avatar  avatar LexRobot avatar  avatar elbowrocket avatar  avatar gaoyingjie avatar SilenceOverflow avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.