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
"1. Creating a dataset and importing a image data row\n",
40
38
"2. Creating a ontology\n",
41
39
"3. Creating a project and attaching our ontology\n",
42
-
"4. Sending our data row to our Project by creating a batch\n",
40
+
"4. Sending our data row to our project by creating a batch\n",
43
41
"5. Exporting from our project\n",
44
42
"\n",
45
43
"This notebook is geared towards new users of our SDK."
46
-
],
47
-
"cell_type": "markdown"
44
+
]
48
45
},
49
46
{
47
+
"cell_type": "markdown",
50
48
"metadata": {},
51
49
"source": [
52
50
"## Setup\n",
53
51
"\n",
54
-
"To start, we first need to install the labelbox library and then import the SDK module. It is recommended to install \"labelbox[data]\" over labelbox to obtain all the correct dependencies. We will also be importing the python UUID library to generate unique IDs for the variety of objects that will be created with this notebook."
55
-
],
56
-
"cell_type": "markdown"
52
+
"We first need to install the labelbox library and then import the SDK module. It is recommended to install \"labelbox[data]\" over labelbox to obtain all the correct dependencies. We will also be importing the Python UUID library to generate unique IDs for the variety of objects that will be created with this notebook."
53
+
]
57
54
},
58
55
{
59
-
"metadata": {},
60
-
"source": "%pip install -q \"labelbox[data]\"",
61
56
"cell_type": "code",
57
+
"execution_count": null,
58
+
"metadata": {},
62
59
"outputs": [],
63
-
"execution_count": null
60
+
"source": [
61
+
"%pip install -q \"labelbox[data]\""
62
+
]
64
63
},
65
64
{
66
-
"metadata": {},
67
-
"source": "import labelbox as lb\nimport uuid",
68
65
"cell_type": "code",
66
+
"execution_count": null,
67
+
"metadata": {},
69
68
"outputs": [],
70
-
"execution_count": null
69
+
"source": [
70
+
"import labelbox as lb\n",
71
+
"import uuid"
72
+
]
71
73
},
72
74
{
75
+
"cell_type": "markdown",
73
76
"metadata": {},
74
77
"source": [
75
78
"## API Key and Client\n",
76
79
"Provide a valid API key below to connect to the Labelbox client properly. For more information, please review the [Create API Key](https://docs.labelbox.com/reference/create-api-key) guide."
"## Step 1: Create Dataset and Import Data Row\n",
@@ -93,100 +99,195 @@
93
99
"\n",
94
100
"* Data rows are internal representation of an asset in Labelbox. A data row contains the asset to be labeled and all of the relevant information about that asset\n",
95
101
"* A dataset is a collection of data rows imported into Labelbox. They live inside the [_Catelog_](https://docs.labelbox.com/docs/catalog-overview) section of Labelbox."
96
-
],
97
-
"cell_type": "markdown"
102
+
]
98
103
},
99
104
{
100
-
"metadata": {},
101
-
"source": "# Create dataset from client\ndataset = client.create_dataset(name=\"Quick Start Example Dataset\")\n\nglobal_key = str(uuid.uuid4()) # Unique user specified ID\n\n# Data row structure\nimage_data_rows = [{\n\"row_data\":\n\"https://storage.googleapis.com/labelbox-datasets/image_sample_data/2560px-Kitano_Street_Kobe01s5s4110.jpeg\",\n\"global_key\":\n global_key,\n\"media_type\":\n\"IMAGE\",\n}]\n\n# Bulk import data row\ntask = dataset.create_data_rows(image_data_rows) # List of data rows\ntask.wait_till_done()\nprint(task.errors) # Print any errors",
102
105
"cell_type": "code",
106
+
"execution_count": null,
107
+
"metadata": {},
103
108
"outputs": [],
104
-
"execution_count": null
109
+
"source": [
110
+
"# Create dataset from client\n",
111
+
"dataset = client.create_dataset(name=\"Quick Start Example Dataset\")\n",
112
+
"\n",
113
+
"global_key = str(uuid.uuid4()) # Unique user specified ID\n",
"task = dataset.create_data_rows(image_data_rows) # List of data rows\n",
127
+
"task.wait_till_done()\n",
128
+
"print(task.errors) # Print any errors"
129
+
]
105
130
},
106
131
{
132
+
"cell_type": "markdown",
107
133
"metadata": {},
108
134
"source": [
109
135
"## Step 2: Creating an Ontology\n",
110
136
"\n",
111
137
"Before we send our data row to a labeling project we first must create an ontology. In the example below we will be creating a simple ontology with a bounding box tool and a check list classification feature. For more information, visit the [ontology section](https://docs.labelbox.com/reference/ontology) inside our developer guides. \n",
112
138
"\n",
113
139
"* An ontology is a collection of annotations and their relationships (also known as a taxonomy). Ontologies can be reused across different projects. It is essential for data labeling, model training, and evaluation. Created ontologies with there associated features are located inside the _Schema_ section within Labelbox."
"## Step 3: Creating a Project and Attaching our Ontology\n",
128
186
"\n",
129
187
"Now that we have made our ontology we are ready to create a project were we can label our data row.\n",
130
188
"\n",
131
189
"* Projects are labeling environments in Labelbox similar to a factory assembly line for producing annotations. The initial state of the project can start with raw data, pre-existing ground truth, or pre-labeled data."
132
-
],
133
-
"cell_type": "markdown"
190
+
]
134
191
},
135
192
{
136
-
"metadata": {},
137
-
"source": "# Create a new project\nproject = client.create_project(\n name=\"Quick Start Example Project\",\n media_type=lb.MediaType.Image, # specify the media type\n)\n\n# Attach created ontology\nproject.setup_editor(ontology)",
138
193
"cell_type": "code",
194
+
"execution_count": null,
195
+
"metadata": {},
139
196
"outputs": [],
140
-
"execution_count": null
197
+
"source": [
198
+
"# Create a new project\n",
199
+
"project = client.create_project(\n",
200
+
" name=\"Quick Start Example Project\",\n",
201
+
" media_type=lb.MediaType.Image, # specify the media type\n",
202
+
")\n",
203
+
"\n",
204
+
"# Attach created ontology\n",
205
+
"project.setup_editor(ontology)"
206
+
]
141
207
},
142
208
{
209
+
"cell_type": "markdown",
143
210
"metadata": {},
144
211
"source": [
145
212
"## Step 4: Sending our Data Row to our Project by Creating a Batch\n",
146
213
"\n",
147
214
"With our project created we can send our data rows by creating a batch. Our data rows will start in the initial labeling queue were labelers are able to annotate our data row. For more information on batches, review the [batches section](https://docs.labelbox.com/reference/batch#create-a-batch) of our developer guides."
148
-
],
149
-
"cell_type": "markdown"
215
+
]
150
216
},
151
217
{
152
-
"metadata": {},
153
-
"source": "project.create_batch(\n name=\"Quick Start Example Batch\" + str(uuid.uuid4()),\n global_keys=[\n global_key\n ], # Global key we used earlier in this guide to create our dataset\n priority=5,\n)",
154
218
"cell_type": "code",
219
+
"execution_count": null,
220
+
"metadata": {},
155
221
"outputs": [],
156
-
"execution_count": null
222
+
"source": [
223
+
"project.create_batch(\n",
224
+
" name=\"Quick Start Example Batch\" + str(uuid.uuid4()),\n",
225
+
" global_keys=[\n",
226
+
" global_key\n",
227
+
" ], # Global key we used earlier in this guide to create our dataset\n",
228
+
" priority=5,\n",
229
+
")"
230
+
]
157
231
},
158
232
{
233
+
"cell_type": "markdown",
159
234
"metadata": {},
160
235
"source": [
161
236
"# Step 5: Exporting from our Project\n",
162
237
"\n",
163
-
"We have now successfully set up a project for labeling using only the SDK! \ud83d\ude80\n",
238
+
"We have now successfully set up a project for labeling using only the SDK! 🚀\n",
164
239
"\n",
165
-
"From here you can either label our data row directly inside the [labeling queue](https://docs.labelbox.com/docs/labeling-queue) or [import annotations](https://docs.labelbox.com/reference/import-image-annotations) directly through our SDK. Below we will demonstrate the final step of this guide by exporting from our project. Since we did not label any data rows or import annotations within this guide no labels will be presented on our data row. For a full overview of exporting visit our [export overview](https://docs.labelbox.com/reference/label-export) developer guide. "
166
-
],
167
-
"cell_type": "markdown"
240
+
"From here you can either label our data row directly inside the [labeling queue](https://docs.labelbox.com/docs/labeling-queue) or [import annotations](https://docs.labelbox.com/reference/import-image-annotations) through our SDK. Below we will demonstrate the final step of this guide by exporting from our project. Since we did not label any data rows or import annotations within this guide no labels will be presented on our data row. For a full overview of exporting visit our [export overview](https://docs.labelbox.com/reference/label-export) developer guide. "
241
+
]
168
242
},
169
243
{
170
-
"metadata": {},
171
-
"source": "# Start export from project\nexport_task = project.export()\nexport_task.wait_till_done()\n\n# Conditional if task has errors\nif export_task.has_errors():\n export_task.get_buffered_stream(stream_type=lb.StreamType.ERRORS).start(\n stream_handler=lambda error: print(error))\n\n# Start export stream\nstream = export_task.get_buffered_stream()\n\n# Iterate through data rows\nfor data_row in stream:\n print(data_row.json)",
"This section serves as an optional clean up step to delete the Labelbox assets created within this guide. You will need to uncomment the delete methods shown."
0 commit comments