Website • Docs • Blog • Twitter • Linkedin • Universe
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:
- Import and Export image datasets into any supported format
- Preprocess and augment data using Roboflow's dataset management tools
- Train computer vision models using Roboflow Train and deploy to production
- Use community curated projects to start building your own vision-powered products
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
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')
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.
To set the Docker container up for the first time:
# Clone this repo
git clone [email protected]: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
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.
# Clone this repo
git clone [email protected]: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]"
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
- Increment the pip package minor version number in
setup.py
- Manually add any new dependencies to
requirements.txt
with a version such aschardet==4.0.0
and list of dependencies insetup.py
(Be careful not to overwrite any packages that might screw up backwards dependencies for object detection, etc.)
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.