You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ipyannotator is a flexible annotation system. The library contains some pre-defined annotators that can be used out of the box, but it also can be extend and customized according to the users needs.
5
+
Ipyannotator is a flexible annotation system. Developed to allow users to hack its features by extending and customizing it.
6
+
7
+
The large variety of annotation tasks, data formats and data visualizations is a challenging when dealing with multiple domains of supervised machine learning (ML). The existent tooling is often not flexible enough which imposes limitations to the user. By providing a framework where users can use, customize and create their own annotation tooling this projects aims to solve this problem.
8
+
9
+
The library contains some pre-defined annotators that can be used out of the box, but it also can be extend and customized according to the users needs. Check our [tutorials](https://palaimon.github.io/ipyannotator/docs/tutorials.html) for a quickly understanding of it's usage and check our [API](https://palaimon.github.io/ipyannotator/nbs/21_api_doc.html) for quick reference.
10
+
11
+
This library has been written in the [literate programming style](https://en.wikipedia.org/wiki/Literate_programming) popularized for jupyter notebooks by [nbdev](https://www.fast.ai/2019/12/02/nbdev/). In addition to our [online documentation](palaimon.github.io/ipyannotator) the jupyter notebooks located at `nbs/` allow an interactive exploration of the inner workings of Ipyannotator.
6
12
7
13
We hope this repository helps you to explore how annotation UI's can be quickly built using only python code and leveraging many awesome libraries ([ipywidgets](https://github.com/jupyter-widgets/ipywidgets), [voila](https://github.com/voila-dashboards/voila), [ipycanvas](https://github.com/martinRenou/ipycanvas), etc.) from the [jupyter Eco-system](https://jupyter.org/).
8
14
@@ -14,59 +20,52 @@ Please let us know if you find this repository useful. Your feedback will help u
14
20
15
21
## Install
16
22
23
+
Ipyannotator is available on Pypi and can be installed using:
24
+
17
25
`pip install ipyannotator`
18
26
19
-
**dependencies (should be handled by pip)**
27
+
## Running ipyannotator
20
28
21
-
```
22
-
python = "^3.7"
23
-
traitlets = '=4.3.3'
24
-
ipycanvas = "^0.5.1"
25
-
ipyevents = "^0.8.0"
26
-
ipywidgets = "^7.5.1"
27
-
```
29
+
Ipyannotator provides a [simple API](https://palaimon.github.io/ipyannotator/nbs/21_api_doc.html) that provides the ability to explore, create and improve annotation datasets by using a pair of input/outputs. All pair of input/output are [listed on Ipyannotator's docs](https://palaimon.github.io/ipyannotator/nbs/22_input_output_doc.html). Check [Ipyannotator tutorials](https://palaimon.github.io/ipyannotator/docs/tutorials.html) for a quickly demonstration of the library.
30
+
31
+
### Run ipyannotator tests
32
+
33
+
The tests can be executed using `nbdev_test_nbs` on the terminal.
34
+
35
+
Ipyannotator notebooks contains the development dependencies: [pytest](https://docs.pytest.org/en/7.1.x/) and [ipytest](https://github.com/chmp/ipytest). Make sure this dependencies are installed to run the tests.
36
+
37
+
### Run ipyannotator as stand-alone web app using voila
38
+
39
+
Ipyannotator can be executed as a web app using the [voila](https://github.com/voila-dashboards/voila) library. The following sections describe how to run using poetry and pip.
28
40
29
-
##Run ipyannotator as stand-alone web app using voila
41
+
#### Using poetry
30
42
31
-
Using `poetry`:
43
+
On your terminal:
32
44
33
-
install:
34
45
```shell
35
46
cd {project_root}
36
47
poetry install --no-dev
37
-
poetry run pip install voila
38
48
```
39
-
and run simple ipyannotator standalone example:
40
-
```shell
49
+
50
+
Any jupyter notebook with ipyannotator can be executed as an standalone web application. An example of voila usage it's available in the current repository and can be executed as it follow:
51
+
52
+
```shell
41
53
poetry run voila nbs/09_voila_example.ipynb --enable_nbextensions=True
42
54
```
43
-
44
-
Same with `pip`:
55
+
56
+
#### Using pip
57
+
58
+
The installation and execution process can also be done using pip.
-[Recording of jupytercon 2020](https://www.youtube.com/watch?v=jFAp1s1O8Hg) talk explaining the high level concepts / vision of ipyannotator.
107
+
108
+
## Acknowledgements
108
109
109
110
The authors acknowledge the financial support by the Federal Ministry for Digital and Transport of Germany under the program mFUND (project number 19F2160A).
110
111
111
112
## Copyright
112
113
113
-
Copyright 2020 onwards, Palaimon GmbH. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this project's files except in compliance with the License. A copy of the License is provided in the LICENSE file in this repository.
114
+
Copyright 2022 onwards, Palaimon GmbH. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this project's files except in compliance with the License. A copy of the License is provided in the LICENSE file in this repository.
Copy file name to clipboardExpand all lines: nbs/21_api_doc.ipynb
+65-3
Original file line number
Diff line number
Diff line change
@@ -17,7 +17,7 @@
17
17
"source": [
18
18
"# API Reference\n",
19
19
"\n",
20
-
"Detailed information about Ipyannotator API. To see usage please check Ipyannotator tutorials."
20
+
"Detailed information about Ipyannotator API. To see usage please check [Ipyannotator tutorials](https://palaimon.github.io/ipyannotator/nbs/22_input_output_doc.html)."
21
21
]
22
22
},
23
23
{
@@ -29,7 +29,16 @@
29
29
"source": [
30
30
"#exporti\n",
31
31
"from ipyannotator.annotator import Annotator\n",
32
-
"from ipyannotator.docs.utils import show_doc"
32
+
"from ipyannotator.docs.utils import show_doc\n",
33
+
"from ipyannotator.base import Settings"
34
+
]
35
+
},
36
+
{
37
+
"cell_type": "markdown",
38
+
"id": "ab95f6b1",
39
+
"metadata": {},
40
+
"source": [
41
+
"To use Ipyannotator API it's necessary to import the `Annotator` class by using `from ipyannotator.annotator import Annotator`. "
33
42
]
34
43
},
35
44
{
@@ -43,6 +52,51 @@
43
52
"show_doc(Annotator, title_level=3)"
44
53
]
45
54
},
55
+
{
56
+
"cell_type": "markdown",
57
+
"id": "7c6ab67b",
58
+
"metadata": {},
59
+
"source": [
60
+
"The pairs of input/output available are listed on the [Input/Output Types](https://palaimon.github.io/ipyannotator/nbs/22_input_output_doc.html) section. \n",
61
+
"\n",
62
+
"When working with the `Annotator` class the input type is always required, but the output type has a `NoOutput` default option that returns an annotator to explore the input images. `NoOutput` usage can be found on the [Bounding Box Annotator Tutorial](https://palaimon.github.io/ipyannotator/nbs/01c_tutorial_bbox.html#explore).\n",
63
+
"\n",
64
+
"The final piece of the configuration to access the Ipyannotator API is the `Settings` class that can be imported using `from ipyannotator.base import Settings`. Ipyannotator `Settings` class allow users to customize the folder structure to get the images, read annotations and store results, but also provides a default folder structure:\n",
0 commit comments