Giter Site home page Giter Site logo

trellixvulnteam / hawk-eye_vot8 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from uavaustin/hawk-eye

0.0 0.0 0.0 4.44 MB

Code for finding targets in aerial imagery.

Home Page: https://uavaustin.github.io/hawk-eye/

License: MIT License

Shell 1.62% Python 93.65% Starlark 4.73%

hawk-eye_vot8's Introduction

hawk-eye

Code to find targets in aerial imagery.

Python3 CI


hawk-eye is an end-to-end pipeline for training models to detect aerial imagery. Specifically, the goal is to produce models that perform well in the AUVSI SUAS competition.

We train our models with a fusion of real and synthetic data and package our inferencing pipeline as a python pip package. The output of this project is utilized by UAV Austin's Orchestra team.

Overview

overview

Contents

Setup

This project supports Linux, WSL, and Mac systems. To setup one of these environments, run:

hawk_eye/setup/setup_env.sh

This file also takes an optional argument to a python virtual environment:

hawk_eye/setup/setup_env.sh ~/path_to_venv

Upon sucessful termination of this script, you need to then recieve access to Google Cloud Storage. See your lead about gaining permissions, then run

hawk_eye/setup/install_google_cloud.sh

To ensure you are all setup and ready to code, you can test code by running:

bazel test //...

Data Generation

Before we can ever train a model we need data. In our project, we actually create synthetic data using various python libraries. Inside of hawk_eye/data_generation you'll find the scripts related to data processing and more information.

Model Training

Currently we train both classifiers and detection models. This is in flux as the pace of discovery in machine learning is rapid.

See hawk_eye/train/README.md for more information on how to running training jobs.

Inference

Inference on an image will utilize both the classifier and object detector models. The inference script can be run as follows:

PYTHONPATH=$(pwd) inference/find_targets.py \
    --image_path /path/to/image \
    --visualization_dir /path/to/save

The command above will visualize and save the models' predictions. See inference/find_targets.py for the full list of available arguments.

One can also specify the model timestamps if you have a certain model to test.

Testing

Testing is done with bazel. Please see the docs for more information on writing and running tests.

Bazel

Bazel is an open-sourced Google project used for a variety of build environments. Right now, we mainly use it for python testing, but if PyTorch eventually supports building itself as an external third party project, we might start using the C++ PyTorch API.

For now, if you're interested, here is some documentation.

hawk_eye closely models the repository structure of Google's MediaPipe. Please see this project when you have questions about how to structure certain Bazel files.

Style

All python code will be automatically formatted using Black through pre-commit. flake8 is employed to correct any other style errors. Please familiarize yourself with the Google python style guide.

hawk-eye_vot8's People

Contributors

alexwitt23 avatar bprimal22 avatar kadhirumasankar avatar trellixvulnteam avatar anyap0p 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.