{"id":13724858,"url":"https://github.com/WildMeOrg/scoutbot","last_synced_at":"2025-05-07T19:30:51.772Z","repository":{"id":59269533,"uuid":"535858383","full_name":"WildMeOrg/scoutbot","owner":"WildMeOrg","description":"The computer vision for Wild Me's Scout project","archived":false,"fork":false,"pushed_at":"2025-04-18T18:49:36.000Z","size":4336,"stargazers_count":7,"open_issues_count":5,"forks_count":4,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-04-25T12:06:48.198Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Jupyter Notebook","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/WildMeOrg.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2022-09-12T21:34:07.000Z","updated_at":"2025-04-21T02:30:34.000Z","dependencies_parsed_at":"2024-03-01T04:00:21.536Z","dependency_job_id":"39ffbc92-f83e-49dd-a9b2-a9024c729cca","html_url":"https://github.com/WildMeOrg/scoutbot","commit_stats":{"total_commits":133,"total_committers":7,"mean_commits":19.0,"dds":0.5864661654135339,"last_synced_commit":"da427cd1f9d669ae0c2a1a4975b726126023cd9a"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WildMeOrg%2Fscoutbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WildMeOrg%2Fscoutbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WildMeOrg%2Fscoutbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/WildMeOrg%2Fscoutbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/WildMeOrg","download_url":"https://codeload.github.com/WildMeOrg/scoutbot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250986753,"owners_count":21518587,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T01:02:04.606Z","updated_at":"2025-05-07T19:30:51.734Z","avatar_url":"https://github.com/WildMeOrg.png","language":"Jupyter Notebook","funding_links":[],"categories":["Biosphere"],"sub_categories":["Terrestrial Wildlife"],"readme":"================\nWild Me ScoutBot\n================\n\n|Tests| |Codecov| |Wheel| |Docker| |ReadTheDocs| |Huggingface|\n\n.. contents:: Quick Links\n    :backlinks: none\n\n.. sectnum::\n\nHow to Install\n--------------\n\n.. code-block:: bash\n\n    pip install scoutbot\n\nor, from source:\n\n.. code-block:: bash\n\n   git clone https://github.com/WildMeOrg/scoutbot\n   cd scoutbot\n   pip install -e .\n\nTo then add GPU acceleration, you need to replace `onnxruntime` with `onnxruntime-gpu`:\n\n.. code-block:: bash\n\n   pip uninstall -y onnxruntime\n   pip install onnxruntime-gpu\n\nHow to Run\n----------\n\nYou can run the tile-based Gradio demo with:\n\n.. code-block:: bash\n\n   python app.py\n\nor, you can run the image-based Gradio demo with:\n\n.. code-block:: bash\n\n   python app2.py\n\nTo run with Docker:\n\n.. code-block:: bash\n\n    docker run \\\n       -it \\\n       --rm \\\n       -p 7860:7860 \\\n       -e CONFIG=phase1 \\\n       -e WIC_BATCH_SIZE=512 \\\n       --gpus all \\\n       --name scoutbot \\\n       wildme/scoutbot:main \\\n       python3 app2.py\n\nTo run with Docker Compose:\n\n.. code-block:: yaml\n\n    version: \"3\"\n\n    services:\n      scoutbot:\n        image: wildme/scoutbot:main\n        command: python3 app2.py\n        ports:\n          - \"7860:7860\"\n        environment:\n          CONFIG: phase1\n          WIC_BATCH_SIZE: 512\n        restart: unless-stopped\n        deploy:\n          resources:\n            reservations:\n              devices:\n                - driver: nvidia\n                  device_ids: [\"all\"]\n                  capabilities: [gpu]\n\nand run ``docker compose up -d``.\n\nHow to Build and Deploy\n-----------------------\n\nDocker Hub\n==========\n\nThe application can also be built into a Docker image and is hosted on Docker Hub as ``wildme/scoutbot:latest``.  Any time the ``main`` branch is updated or a tagged release is made (see the PyPI instructions below), an automated GitHub CD action will build and deploy the newest image to Docker Hub automatically.\n\nTo do this manually, use the code below:\n\n.. code-block:: bash\n\n    docker login\n\n    export DOCKER_BUILDKIT=1\n    export DOCKER_CLI_EXPERIMENTAL=enabled\n    docker buildx create --name multi-arch-builder --use\n\n    docker buildx build \\\n        -t wildme/scoutbot:latest \\\n        --platform linux/amd64 \\\n        --push \\\n        .\n\nPyPI\n====\n\nTo upload the latest ScoutBot version to the Python Package Index (PyPI), follow the steps below:\n\n#. Edit ``scoutbot/__init__.py:65`` and set ``VERSION`` to the desired version\n\n    .. code-block:: python\n\n        VERSION = 'X.Y.Z'\n\n\n#. Push any changes and version update to the ``main`` branch on GitHub and wait for CI tests to pass\n\n    .. code-block:: bash\n\n        git pull origin main\n        git commit -am \"Release for Version X.Y.Z\"\n        git push origin main\n\n\n#. Tag the ``main`` branch as a new release using the `SemVer pattern \u003chttps://semver.org/\u003e`_ (e.g., ``vX.Y.Z``)\n\n    .. code-block:: bash\n\n        git pull origin main\n        git tag vX.Y.Z\n        git push origin vX.Y.Z\n\n\n#. Wait for the automated GitHub CD actions to build and push to `PyPI \u003chttps://pypi.org/project/scoutbot/\u003e`_ and `Docker Hub \u003chttps://hub.docker.com/r/wildme/scoutbot\u003e`_.\n\nTests and Coverage\n------------------\n\nYou can run the automated tests in the ``tests/`` folder by running:\n\n.. code-block:: bash\n\n    pip install -r requirements.optional.txt\n    pytest\n\nYou may also get a coverage percentage by running:\n\n.. code-block:: bash\n\n    coverage html\n\nand open the `coverage/html/index.html` file in your browser.\n\nBuilding Documentation\n----------------------\n\nThere is Sphinx documentation in the ``docs/`` folder, which can be built by running:\n\n.. code-block:: bash\n\n    cd docs/\n    pip install -r requirements.optional.txt\n    sphinx-build -M html . build/\n\nLogging\n-------\n\nThe script uses Python's built-in logging functionality called ``logging``.  All print functions are replaced with ``log.info()``, which sends the output to two places:\n\n#. the terminal window, and\n#. the file `scoutbot.log`\n\nCode Formatting\n---------------\n\nIt's recommended that you use ``pre-commit`` to ensure linting procedures are run on any code you write.  See `pre-commit.com \u003chttps://pre-commit.com/\u003e`_ for more information.\n\nReference `pre-commit's installation instructions \u003chttps://pre-commit.com/#install\u003e`_ 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:\n\n.. code-block:: bash\n\n    pip install -r requirements.optional.txt\n    pre-commit run --all-files\n\nThe code base has been formatted by `Brunette \u003chttps://pypi.org/project/brunette/\u003e`_, which is a fork and more configurable version of `Black \u003chttps://black.readthedocs.io/en/stable/\u003e`_.  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.\n\n\n.. |Tests| image:: https://github.com/WildMeOrg/scoutbot/actions/workflows/testing.yml/badge.svg?branch=main\n    :target: https://github.com/WildMeOrg/scoutbot/actions/workflows/testing.yml\n    :alt: GitHub CI\n\n.. |Codecov| image:: https://codecov.io/gh/WildMeOrg/scoutbot/branch/main/graph/badge.svg?token=FR6ITMWQNI\n    :target: https://app.codecov.io/gh/WildMeOrg/scoutbot\n    :alt: Codecov\n\n.. |Wheel| image:: https://github.com/WildMeOrg/scoutbot/actions/workflows/python-publish.yml/badge.svg\n    :target: https://github.com/WildMeOrg/scoutbot/actions/workflows/python-publish.yml\n    :alt: Python Wheel\n\n.. |Docker| image:: https://img.shields.io/docker/image-size/wildme/scoutbot/latest\n    :target: https://hub.docker.com/r/wildme/scoutbot\n    :alt: Docker\n\n.. |ReadTheDocs| image:: https://readthedocs.org/projects/scoutbot/badge/?version=latest\n    :target: https://wildme-scoutbot.readthedocs.io/en/latest/?badge=latest\n    :alt: ReadTheDocs\n\n.. |Huggingface| image:: https://img.shields.io/badge/HuggingFace-running-success\n    :target: https://huggingface.co/spaces/WildMeOrg/scoutbot\n    :alt: Huggingface\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FWildMeOrg%2Fscoutbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FWildMeOrg%2Fscoutbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FWildMeOrg%2Fscoutbot/lists"}