:rabbit: Python lib for remo - the app for annotations and images management in Computer Vision
Welcome • Features • Installation • Python library • What's new • What's next • Cite • Get in touch
Remo is a web-based application to organize, annotate and visualize Computer Vision datasets.
It has been designed to be your team's private platform to manage images, in an end-to-end fashion.
Use Remo to:
Remo runs on Windows, Linux, Mac or directly in Google Colab Notebooks. It can also be served on a private server for team collaboration, or embedded in Jupyter Notebooks.
It's installed via pip or via Docker.
This repo is the open source repo for the Remo python library. To access the docs and try the online demo: https://remo.ai
Integration from code
Annotation
Supported formats: Polygons, Bounding boxes, Image labels and Tags.
Multiple import and export formats (CoCo, Pascal, CSV, etc). Convenient import and export options (skip images without annotations, append file paths, label encoding, etc)
Read more here: https://remo.ai/docs/annotation-formats/
Dataset management
You can see example of usage of the library in our documentiation or in the examples folder:
What | Where | Colab Links |
---|---|---|
Documentation | Official Docs | - |
Intro Notebook | Intro to Remo-Python notebook | - |
Uploading annotations | Upload Annotations and Predictions Tutorial notebook | - |
PyTorch Image Classification using Remo | PyTorch Image Classification notebook | |
PyTorch Object Detection using Remo | PyTorch Object Detection Notebook | |
PyTorch Instance Segmentation with Detectron 2 and Remo | PyTorch Instance Segmentation Notebook | |
You can install Remo via Pip or via Docker
pip install remo
This will install both the Python library and the remo app.
python -m remo_app init
That's it!
To launch Remo, run python -m remo_app
.
To call Remo from python once you have a server running, use import remo
.
Here are the main steps to install Remo via Docker. For more options and detailed instructions, you can refer to the Remo Docker installation page.
docker-compose up -d
01-Sep-2020: Added tutorial on Remo for PyTorch Object Detection
30-Sep-2020: Added export annotations with filtering by tags
30-Oct-2020: Added tutorial using PyTorch's Detectron2 and Remo for Instance Segmentation
06-Nov-2020: Added ability to search images by filename, class or tag - you can now do dataset.search_images() or remo.search_images()
If you have any issues around the library, feel free to open an issue in the repo.
For anything else, you can write on our discuss forum.
@misc{remo2019,
author = {Remo.ai},
title = {{Remo.ai: Image Datasets management}},
howpublished = {\url{https://github.com/rediscovery-io/remo-python}},
year = {2019}
}
Contributions to the library are welcome!
Before starting working on something, we suggest to open an issue on the repo or open a thread on the discuss forum to present your plan. It would be great if you could include:
We are looking for help with the following, but we are also open to suggestions:
integration with Deep Learning frameworks
expand on the design of Annotation, Image, and AnnotationSet objects
The library is organized in 3 main layers:
We exepect the end user to use mainly the SDK layer and domain objets.
API
is responsible for low level communication with the server. It mostly returns raw data.
SDK
doesn't access backend endpoints directly, rather it uses the API
layer for that. This layer knows about domain objects,
so instead of raw data, it returns domain objects.
Domain objects
keeps entity information and knows about the SDK
layer. Most functions are simple short-hands for sdk methods.
This layer doesn't know anything about API
.
Functions which are responsible to open the UI on a specific page use the view_
prefix
view_dataset, view_annotations
Functions which return always only one object, present the name of that object in singular form.
get_image(id) - returns one image
Functions which might return multiple objects use the plural form of that object
get_images() - may return multiple images