Skip to main content

The computer vision for Wild Me's Scout project

Project description

GitHub CI Codecov Python Wheel Docker ReadTheDocs Huggingface

1 How to Install

You need to first install Anaconda on your machine. Below are the instructions on how to install Anaconda on an Apple macOS machine, but it is possible to install on a Windows and Linux machine as well. Consult the official Anaconda page to download and install on other systems.

# Install Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Install Anaconda and expose conda to the terminal
brew install anaconda
export PATH="/opt/homebrew/anaconda3/bin:$PATH"
conda init zsh
conda update conda

Once Anaconda is installed, you will need an environment and the following packages installed

# Create Environment
conda create --name scoutbot
conda activate scoutbot

# Install Python dependencies
conda install pip

pip install -r requirements.txt
# conda install pytorch torchvision -c pytorch-nightly

2 How to Run

You can run the tile-base Gradio demo with:

(.venv) $ python app.py

or, you can run the image-base Gradio demo with:

(.venv) $ python app2.py

3 Docker

The application can also be built into a Docker image and hosted on Docker Hub.

docker login

export DOCKER_BUILDKIT=1
export DOCKER_CLI_EXPERIMENTAL=enabled
docker buildx create --name multi-arch-builder --use

docker buildx build \
    -t wildme/scoutbot:latest \
    --platform linux/amd64 \
    --push \
    .

To run:

docker run \
   -it \
   --rm \
   -p 7860:7860 \
   --name scoutbot \
   wildme/scoutbot:latest

4 Unit Tests

You can run the automated tests in the tests/ folder by running pytest. This will give an output of which tests have failed. You may also get a coverage percentage by running coverage html and loading the coverage/html/index.html file in your browser. pytest

5 Building Documentation

There is Sphinx documentation in the docs/ folder, which can be built with the code below:

cd docs/
sphinx-build -M html . build/

6 Logging

The script uses Python’s built-in logging functionality called logging. All print functions are replaced with log.info within this script, which sends the output to two places: 1) the terminal window, 2) the file scoutbot.log. Get into the habit of writing text logs and keeping date-specific versions for comparison and debugging.

7 Code Formatting

It’s recommended that you use pre-commit to ensure linting procedures are run on any code you write. (See also pre-commit.com)

Reference pre-commit’s installation instructions for software installation on your OS/platform. After you have the software installed, run pre-commit install on the command line. Now every time you commit to this project’s code base the linter procedures will automatically run over the changed files. To run pre-commit on files preemtively from the command line use:

git add .
pre-commit run

# or

pre-commit run --all-files

The code base has been formatted by Brunette, which is a fork and more configurable version of Black (https://black.readthedocs.io/en/stable/). Furthermore, try to conform to PEP8. You should set up your preferred editor to use flake8 as its Python linter, but pre-commit will ensure compliance before a git commit is completed. This will use the flake8 configuration within setup.cfg, which ignores several errors and stylistic considerations. See the setup.cfg file for a full and accurate listing of stylistic codes to ignore.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

scoutbot-0.1.2.tar.gz (34.8 kB view hashes)

Uploaded Source

Built Distribution

scoutbot-0.1.2-py2.py3-none-any.whl (39.4 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page