Nota is a web application that allows to label and annotate images and videos for use in machine learning. It was created by DeNA Co., Ltd in 2017. It was realeased as Open Source in March 2021.
- Multiple backends for images and video sources
- Local Filesystem (mainly used for development)
- S3 bucket
- Customizable annotations using JSON templating language
- Points, binding boxes, polygon annotation in images
- Timestamp event labeling for videos
- Text input, boolean, single/multiple selection labeling for each item
- Management
- Authentication using SAML
- Multiple project support
- Permissions by project
- Multiple tasks by project
- User privileges (Nota administrator/Project administrator/Annotator)
- Task assignment
- Reports
- Customizable input/output formats
- custom json format is default
You can find more details about the motivations and capabilities in this article published in 2020: English / 日本語
These are the instructions for running Nota using Docker Compose for development. Instructions for production are similar and will be provided in the future.
- node >= 14.x
- MySQL >= 5.7
- redis >= 5.0
$ docker-compose up
Application will run on localhost:3000
by default
Default user is created with username admin
and password admin
Only required the first time
$ docker-compose exec app npm run resetdb
$ docker-compose exec app npm run seed
There is no local user creation UI, but local users can be added/updated by running the following script:
$ docker-compose exec app npm run createLocalUser
After a user is created, an administrator can manage all the users from the UI.
- All tests
npm run test
- Server tests
npm run test:server
- Client tests
npm run test:client
- No Local User management UI. We use SAML authentication, and local users have only beed used for development so no UI for user creation, password change, etc exists. It is possible to create local users using the script noted above.
- No local filesystem source setup UI. We use mainly S3 as the backend for our images and videos, and local filesystem is only used for development and test. Seed data provides an already setup local filesystem path (
packages/nota-server/testfiles
) with some dummy files for development and testing. It is possible to add local sources directly into the database.
We plan to move the documentation into this repository in the future.
-
Why did you open source nota?
- When we first decided to develop our own solution, one of the reasons was that we were not able to find a suitable open source or commercial solution. By open sourcing it we hope that it can benefit others in the creation of quality annotated data.
-
Can you add xyz annotation or labeling, or xyz feature?
- We develop Nota for the machine learning needs we have, so we might not be able to allocate resources for every feature request. But you are encouraged to open an issue and also to collaborate with new features. The code is designed to be as plugin-like and it's relatively easy to add new annotation tipes, input/output formats, etc. Normally all non-breaking improvements and new features are welcome. If you have an idea that might require breaking changes, please open an issue and we can try to find a solution!