Skip to main content

python client for the Roboflow application

Project description

Roboflow Python Library


roboflow logo

WebsiteDocsBlogTwitterLinkedinUniverse

Roboflow makes managing, preprocessing, augmenting, and versioning datasets for computer vision seamless. This is the official Roboflow python package that interfaces with the Roboflow API. Key features of Roboflow:

Installation

To install this package, please use Python 3.6 or higher. We provide three different ways to install the Roboflow package to use within your own projects.

Install from PyPi (Recommended):

pip install roboflow

Install from Source:

git clone https://github.com/roboflow-ai/roboflow-python.git
cd roboflow-python
python3 -m venv env
source env/bin/activate
pip3 install -r requirements.txt

Quickstart

import roboflow

# Instantiate Roboflow object with your API key
rf = roboflow.Roboflow(api_key=YOUR_API_KEY_HERE)

# List all projects for your workspace
workspace = rf.workspace()

# Load a certain project (workspace url is optional)
project = rf.project("PROJECT_ID")

# List all versions of a specific project
project.versions()

# Upload image to dataset
project.upload("UPLOAD_IMAGE.jpg")

# Retrieve the model of a specific project
model = project.version("1").model

# predict on a local image
prediction = model.predict("YOUR_IMAGE.jpg")

# Predict on a hosted image
prediction = model.predict("YOUR_IMAGE.jpg", hosted=True)

# Plot the prediction
prediction.plot()

# Convert predictions to JSON
prediction.json()

# Save the prediction as an image
prediction.save(output_path='predictions.jpg')

Using this package for a specific project

If you have a specific project from your workspace you'd like to run in a notebook, follow along with this tutorial: Downloading Datasets from Roboflow for Training (Python).

Selecting the format you'd like your project to be exported as while choosing the show download code option will display code snippets you can use in either Jupyter or your terminal. These code snippets will include your api_key, project, and workspace names.

Alt Text

Developing locally

Using Docker

To set the Docker container up for the first time:

# Clone this repo
git clone git@github.com:roboflow-ai/roboflow-python.git && cd roboflow-python

# Copy the environment variables template
# Be sure to update the values with your account's information

# Build our development image
docker build -t roboflow-python -f Dockerfile.dev .

# Run container and map current folder in it
docker run --rm -it \
  -v $(pwd)/:/workspace/ \
  --env-file .env \
  roboflow-python

# Run tests
python -m unittest

Change Python version

You can pass the build arg PYTHON_VERSION to dynamically change python version at build time

docker build  -t roboflow-python --build-arg PYTHON_VERSION=3.9 -f Dockerfile.dev .

Will use python:3.9-slim

Note If you are using VSCode we recommend you read the "Developing inside a Container" tutorial.

Using Virtualenv

# Clone this repo
git clone git@github.com:roboflow-ai/roboflow-python.git && cd roboflow-python

# create virtual env
virtualenv local_dev

# activate virtual env
source local_dev/bin/activate

# install dependencies
pip3 install -e ".[dev]"

Testing

Make sure you have your virtualenv spun up before running tests. Execute the unittest command at the /root level directory.

Run tests:

python -m unittest

Contributing

  1. Increment the pip package minor version number in setup.py
  2. Manually add any new dependencies to requirements.txt with a version such as chardet==4.0.0 and list of dependencies in setup.py (Be careful not to overwrite any packages that might screw up backwards dependencies for object detection, etc.)

Code Quality

When creating new functions, please follow the Google style Python docstrings. See example below:

def example_function(param1: int, param2: str) -> bool:
    """Example function that does something.

    Args:
        param1: The first parameter.
        param2: The second parameter.

    Returns:
        The return value. True for success, False otherwise.

    """

We provide a Makefile to format and ensure code quality. Be sure to run them before creating a PR.

# format code with `black` and `isort`
make style

# check code with flake8
make check_code_quality

Note These tests will be run automatically when you commit thanks to git hooks.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

roboflow-0.2.26.tar.gz (38.3 kB view hashes)

Uploaded Source

Built Distribution

roboflow-0.2.26-py3-none-any.whl (46.7 kB view hashes)

Uploaded 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