Remo Python Introduction¶
Here you can find an introduction to the remo Python library.
The library aims to integrate Remo in existing workflows of developers, data scientists and researchers. Using the library, you can:
- visualize images, annotations and model predictions
- organize your data before feeding it to Computer Vision algorithms
- manage annotations (e.g.rename, add, delete classes, tags, objects)
This can be done directly in Jupyter or Colab notebooks, or by launching Remo on the browser or on its own app.
Remo python demo¶
Here is a video comparing visualization of datasets in Python, with and without Remo:
Tutorials¶
To get quickly started, you can have a look at some notebook tutorials:
Tutorial | What | Download | Colab |
---|---|---|---|
Intro Notebook | Intro to main functionalities | Download | |
Upload Annotations Notebook | Tutorial on uploading annotations | Download | |
PyTorch Image Classification Notebook | Smart dataset management for PyTorch Image Classification | Download | |
PyTorch Object Detection Notebook | Smart dataset management for PyTorch Object Detection | Download | |
PyTorch Instance Segmentation with Detrecton2 Notebook | Smart dataset management for PyTorch Instance Segmentation | Download |
About the library¶
From Python, the library can be called doing import remo
.
Upon import, the library will automatically check if a local remo server is running, and try to connect to it. To launch remo itself, you'd need to run python -m remo_app
from the command line.
Under the hood, the library is distributed as a pip package remo-python
, which is automatically installed when doing pip install remo
. Remo-python calls a set of endpoints exposed by a remo server.
The library is open source. You can check it out and contribute on our GitHub repo.
Work in progress
We are iterating quite fast on the library design in this phase, which means some functionalities might break from one version to the other.
Any feedback on the library or pull request to the repo is welcome.
Main entities¶
The main entities in the Python library are:
- Dataset Class: high-level operations on images and annotations
- SDK Class: management functions
For finer control, you can use:
- Annotation Set Class: high-level operations on annotations
- Image Class: low-level operations on individual images
- Annotation Class: low-level operations on individual annotation objects
- API Class: here we call directly the Rest API endpoints. You shouldn't need to look here, except if you want to build new functionalities
You can refer to the python library documentation for implementation details.
Advanced Topics¶
Choice of frontend¶
Remo will open by default in its own app. Once remo is running, you can embed it in Jupyter or Colab notebooks, by running:
import remo
remo.set_viewer('jupyter')
localhost:8123
).
To change the default viewer, you can edit the config file.
Local vs remote¶
If you have a remo server running on a remote machine, you can use the python library to connect to it by doing
import remo
remo.connect(address,username,password)
Google Colab¶
You can run and embed remo in Colab instances. This includes some convenient data backup on GDrive. You can read more here.
Other programming languages¶
If you are using a programming language other than Python, you can still call remo from code.
You would need a version of Remo installed (which requires Python), but then you could directly call the app REST API end-points - maybe taking inspiration from what we have done within the Python SDK.