deeplake 0.3.23 → 0.3.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/browser/client.d.ts +2 -0
- package/dist/browser/browser/client.d.ts.map +1 -1
- package/dist/browser/browser/client.js +19 -1
- package/dist/browser/browser/client.js.map +1 -1
- package/dist/browser/browser/index.d.ts +2 -1
- package/dist/browser/browser/index.d.ts.map +1 -1
- package/dist/browser/browser/index.js +1 -1
- package/dist/browser/browser/index.js.map +1 -1
- package/dist/browser/browser/storage.d.ts.map +1 -1
- package/dist/browser/browser/storage.js +39 -1
- package/dist/browser/browser/storage.js.map +1 -1
- package/dist/browser/shared/credentials.d.ts.map +1 -1
- package/dist/browser/shared/credentials.js +6 -4
- package/dist/browser/shared/credentials.js.map +1 -1
- package/dist/browser/shared/database.d.ts +1 -3
- package/dist/browser/shared/database.d.ts.map +1 -1
- package/dist/browser/shared/dlref.d.ts +0 -3
- package/dist/browser/shared/dlref.d.ts.map +1 -1
- package/dist/browser/shared/dlref.js +0 -3
- package/dist/browser/shared/dlref.js.map +1 -1
- package/dist/browser/shared/schema.d.ts.map +1 -1
- package/dist/browser/shared/schema.js +20 -31
- package/dist/browser/shared/schema.js.map +1 -1
- package/dist/browser/shared/token.d.ts.map +1 -1
- package/dist/browser/shared/token.js +17 -1
- package/dist/browser/shared/token.js.map +1 -1
- package/dist/browser/shared/wasm-common.d.ts +12 -0
- package/dist/browser/shared/wasm-common.d.ts.map +1 -1
- package/dist/browser/shared/wasm-common.js +30 -0
- package/dist/browser/shared/wasm-common.js.map +1 -1
- package/dist/node/node/client.d.ts +4 -60
- package/dist/node/node/client.d.ts.map +1 -1
- package/dist/node/node/client.js +185 -130
- package/dist/node/node/client.js.map +1 -1
- package/dist/node/node/formats/coco.d.ts +0 -38
- package/dist/node/node/formats/coco.d.ts.map +1 -1
- package/dist/node/node/formats/coco.js +8 -94
- package/dist/node/node/formats/coco.js.map +1 -1
- package/dist/node/node/formats/coco_panoptic.d.ts.map +1 -1
- package/dist/node/node/formats/coco_panoptic.js +0 -1
- package/dist/node/node/formats/coco_panoptic.js.map +1 -1
- package/dist/node/node/formats/lerobot.d.ts +0 -42
- package/dist/node/node/formats/lerobot.d.ts.map +1 -1
- package/dist/node/node/formats/lerobot.js +1 -60
- package/dist/node/node/formats/lerobot.js.map +1 -1
- package/dist/node/node/index.d.ts +2 -1
- package/dist/node/node/index.d.ts.map +1 -1
- package/dist/node/node/index.js +3 -2
- package/dist/node/node/index.js.map +1 -1
- package/dist/node/node/normalizers/binary.js +1 -1
- package/dist/node/node/normalizers/binary.js.map +1 -1
- package/dist/node/node/normalizers/huggingface.d.ts +0 -20
- package/dist/node/node/normalizers/huggingface.d.ts.map +1 -1
- package/dist/node/node/normalizers/huggingface.js +0 -29
- package/dist/node/node/normalizers/huggingface.js.map +1 -1
- package/dist/node/node/normalizers/image.js +1 -1
- package/dist/node/node/normalizers/image.js.map +1 -1
- package/dist/node/node/normalizers/pdf.js +2 -2
- package/dist/node/node/normalizers/pdf.js.map +1 -1
- package/dist/node/node/normalizers/text.js +1 -1
- package/dist/node/node/normalizers/text.js.map +1 -1
- package/dist/node/node/normalizers/video.js +2 -2
- package/dist/node/node/normalizers/video.js.map +1 -1
- package/dist/node/node/storage.d.ts +0 -5
- package/dist/node/node/storage.d.ts.map +1 -1
- package/dist/node/node/storage.js +27 -141
- package/dist/node/node/storage.js.map +1 -1
- package/dist/node/node/wasm.d.ts.map +1 -1
- package/dist/node/node/wasm.js +1 -2
- package/dist/node/node/wasm.js.map +1 -1
- package/dist/node/shared/credentials.d.ts.map +1 -1
- package/dist/node/shared/credentials.js +6 -4
- package/dist/node/shared/credentials.js.map +1 -1
- package/dist/node/shared/database.d.ts +1 -3
- package/dist/node/shared/database.d.ts.map +1 -1
- package/dist/node/shared/dlref.d.ts +0 -3
- package/dist/node/shared/dlref.d.ts.map +1 -1
- package/dist/node/shared/dlref.js +0 -3
- package/dist/node/shared/dlref.js.map +1 -1
- package/dist/node/shared/schema.d.ts.map +1 -1
- package/dist/node/shared/schema.js +20 -31
- package/dist/node/shared/schema.js.map +1 -1
- package/dist/node/shared/token.d.ts.map +1 -1
- package/dist/node/shared/token.js +17 -1
- package/dist/node/shared/token.js.map +1 -1
- package/dist/node/shared/wasm-common.d.ts +12 -0
- package/dist/node/shared/wasm-common.d.ts.map +1 -1
- package/dist/node/shared/wasm-common.js +32 -0
- package/dist/node/shared/wasm-common.js.map +1 -1
- package/package.json +5 -10
- package/wasm/browser/deeplake_browser.js +1 -1
- package/wasm/browser/deeplake_browser.wasm +0 -0
- package/wasm/node/deeplake_node.js +1 -1
- package/wasm/node/deeplake_node.wasm +0 -0
|
@@ -1,36 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* COCO (Common Objects in Context) detection/captions format normalizer.
|
|
4
|
-
*
|
|
5
|
-
* Reads a COCO dataset directory and yields column-oriented batches
|
|
6
|
-
* suitable for `ManagedClient.ingest()`. Works with both train and val splits.
|
|
7
|
-
*
|
|
8
|
-
* Expected directory layout:
|
|
9
|
-
*
|
|
10
|
-
* coco_root/
|
|
11
|
-
* ├── train2017/ (or val2017/)
|
|
12
|
-
* │ ├── 000000000009.jpg
|
|
13
|
-
* │ └── ...
|
|
14
|
-
* └── annotations/
|
|
15
|
-
* ├── instances_train2017.json
|
|
16
|
-
* └── captions_train2017.json [optional]
|
|
17
|
-
*
|
|
18
|
-
* Columns produced per image (one row per image):
|
|
19
|
-
*
|
|
20
|
-
* coco_image_id - COCO image ID (int)
|
|
21
|
-
* image - Source image file bytes (IMAGE)
|
|
22
|
-
* mask - Segmentation mask PNG (SEGMENT_MASK)
|
|
23
|
-
* width - Image width in pixels
|
|
24
|
-
* height - Image height in pixels
|
|
25
|
-
* filename - Original image filename
|
|
26
|
-
* captions - JSON-encoded list of caption strings
|
|
27
|
-
* annotations - JSON-encoded list of annotation dicts
|
|
28
|
-
* categories - JSON-encoded category list (same for all rows)
|
|
29
|
-
* num_objects - Number of object annotations for this image
|
|
30
|
-
*
|
|
31
|
-
* No external dependencies — uses built-in Node.js `zlib` for PNG encoding
|
|
32
|
-
* and a pure JS scanline polygon rasterizer for mask rendering.
|
|
33
|
-
*/
|
|
34
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
35
3
|
if (k2 === undefined) k2 = k;
|
|
36
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -69,7 +37,6 @@ exports.Coco = void 0;
|
|
|
69
37
|
const fs = __importStar(require("fs"));
|
|
70
38
|
const path = __importStar(require("path"));
|
|
71
39
|
const zlib = __importStar(require("zlib"));
|
|
72
|
-
// ---- Format class ----
|
|
73
40
|
class Coco {
|
|
74
41
|
imagesDir;
|
|
75
42
|
batchSize;
|
|
@@ -82,17 +49,13 @@ class Coco {
|
|
|
82
49
|
this.imagesDir = options.imagesDir;
|
|
83
50
|
this.batchSize = options.batchSize ?? 100;
|
|
84
51
|
this.maxImages = options.maxImages ?? null;
|
|
85
|
-
// Detect split name from directory (e.g. "train2017", "val2017")
|
|
86
52
|
this._split = path.basename(this.imagesDir);
|
|
87
|
-
// Annotations directory
|
|
88
53
|
this._annDir =
|
|
89
54
|
options.annotationsDir ??
|
|
90
55
|
path.join(path.dirname(this.imagesDir), 'annotations');
|
|
91
|
-
// Instances JSON
|
|
92
56
|
this._instancesJson =
|
|
93
57
|
options.instancesJson ??
|
|
94
58
|
path.join(this._annDir, `instances_${this._split}.json`);
|
|
95
|
-
// Captions JSON
|
|
96
59
|
if (options.captionsJson === false) {
|
|
97
60
|
this._captionsJson = null;
|
|
98
61
|
}
|
|
@@ -128,7 +91,6 @@ class Coco {
|
|
|
128
91
|
}
|
|
129
92
|
const instances = JSON.parse(fs.readFileSync(this._instancesJson, 'utf-8'));
|
|
130
93
|
const categoriesJson = JSON.stringify(instances.categories ?? []);
|
|
131
|
-
// Build lookup: image_id -> list of annotation dicts
|
|
132
94
|
const annsByImage = new Map();
|
|
133
95
|
for (const ann of instances.annotations ?? []) {
|
|
134
96
|
let list = annsByImage.get(ann.image_id);
|
|
@@ -138,7 +100,6 @@ class Coco {
|
|
|
138
100
|
}
|
|
139
101
|
list.push(ann);
|
|
140
102
|
}
|
|
141
|
-
// Load captions if available
|
|
142
103
|
const capsByImage = new Map();
|
|
143
104
|
if (this._captionsJson && fs.existsSync(this._captionsJson)) {
|
|
144
105
|
const captionsData = JSON.parse(fs.readFileSync(this._captionsJson, 'utf-8'));
|
|
@@ -165,7 +126,6 @@ class Coco {
|
|
|
165
126
|
const imgAnns = annsByImage.get(imageId) ?? [];
|
|
166
127
|
const imgCaps = capsByImage.get(imageId) ?? [];
|
|
167
128
|
const maskPng = renderMask(imgAnns, h, w);
|
|
168
|
-
// Build simplified annotation dicts for JSON column
|
|
169
129
|
const annDicts = imgAnns.map((a) => ({
|
|
170
130
|
id: a.id,
|
|
171
131
|
bbox: a.bbox,
|
|
@@ -197,40 +157,26 @@ class Coco {
|
|
|
197
157
|
}
|
|
198
158
|
}
|
|
199
159
|
exports.Coco = Coco;
|
|
200
|
-
// =====================================================================
|
|
201
|
-
// Mask rendering — pure JS polygon rasterizer + PNG encoder
|
|
202
|
-
// =====================================================================
|
|
203
|
-
/**
|
|
204
|
-
* Render a combined segmentation mask for one image.
|
|
205
|
-
* Each pixel is set to the `category_id` of the last annotation covering it.
|
|
206
|
-
* Background = 0. Returns PNG bytes as a Buffer.
|
|
207
|
-
*/
|
|
208
160
|
function renderMask(annotations, height, width) {
|
|
209
161
|
if (height === 0 || width === 0) {
|
|
210
162
|
return encodePng(Buffer.alloc(0), 0, 0);
|
|
211
163
|
}
|
|
212
|
-
const mask = Buffer.alloc(height * width);
|
|
164
|
+
const mask = Buffer.alloc(height * width);
|
|
213
165
|
for (const ann of annotations) {
|
|
214
166
|
const seg = ann.segmentation;
|
|
215
167
|
if (!seg)
|
|
216
168
|
continue;
|
|
217
169
|
if (Array.isArray(seg)) {
|
|
218
|
-
// Polygon format: array of [x1,y1,x2,y2,...] arrays
|
|
219
170
|
for (const poly of seg) {
|
|
220
171
|
fillPolygon(mask, width, height, poly, ann.category_id);
|
|
221
172
|
}
|
|
222
173
|
}
|
|
223
174
|
else if (seg.counts != null && seg.size != null) {
|
|
224
|
-
// RLE format
|
|
225
175
|
decodeRleToMask(mask, width, height, seg, ann.category_id);
|
|
226
176
|
}
|
|
227
177
|
}
|
|
228
178
|
return encodePng(mask, width, height);
|
|
229
179
|
}
|
|
230
|
-
/**
|
|
231
|
-
* Scanline polygon fill.
|
|
232
|
-
* `coords` is a flat array: [x0, y0, x1, y1, ...].
|
|
233
|
-
*/
|
|
234
180
|
function fillPolygon(mask, width, height, coords, value) {
|
|
235
181
|
const n = Math.floor(coords.length / 2);
|
|
236
182
|
if (n < 3)
|
|
@@ -253,14 +199,12 @@ function fillPolygon(mask, width, height, coords, value) {
|
|
|
253
199
|
for (let y = scanMin; y <= scanMax; y++) {
|
|
254
200
|
nodeX.length = 0;
|
|
255
201
|
const yf = y + 0.5;
|
|
256
|
-
// Build sorted list of x-intersections for this scanline
|
|
257
202
|
for (let i = 0, j = n - 1; i < n; j = i++) {
|
|
258
203
|
if ((ys[i] <= yf && ys[j] > yf) || (ys[j] <= yf && ys[i] > yf)) {
|
|
259
204
|
nodeX.push(xs[i] + ((yf - ys[i]) / (ys[j] - ys[i])) * (xs[j] - xs[i]));
|
|
260
205
|
}
|
|
261
206
|
}
|
|
262
207
|
nodeX.sort((a, b) => a - b);
|
|
263
|
-
// Fill between pairs
|
|
264
208
|
for (let i = 0; i < nodeX.length - 1; i += 2) {
|
|
265
209
|
const xStart = Math.max(0, Math.ceil(nodeX[i]));
|
|
266
210
|
const xEnd = Math.min(width - 1, Math.floor(nodeX[i + 1]));
|
|
@@ -271,31 +215,21 @@ function fillPolygon(mask, width, height, coords, value) {
|
|
|
271
215
|
}
|
|
272
216
|
}
|
|
273
217
|
}
|
|
274
|
-
/**
|
|
275
|
-
* Decode COCO RLE (Run-Length Encoding) segmentation to mask.
|
|
276
|
-
*
|
|
277
|
-
* COCO RLE can be:
|
|
278
|
-
* - Uncompressed: { counts: number[], size: [h, w] }
|
|
279
|
-
* - Compressed (string): { counts: string, size: [h, w] }
|
|
280
|
-
*/
|
|
281
218
|
function decodeRleToMask(mask, width, height, rle, value) {
|
|
282
219
|
let counts;
|
|
283
220
|
if (typeof rle.counts === 'string') {
|
|
284
|
-
// Compressed RLE — decode the string to run lengths
|
|
285
221
|
counts = decodeCompressedRle(rle.counts);
|
|
286
222
|
}
|
|
287
223
|
else {
|
|
288
224
|
counts = rle.counts;
|
|
289
225
|
}
|
|
290
|
-
// RLE is column-major (Fortran order) in COCO
|
|
291
226
|
const rleH = rle.size[0];
|
|
292
227
|
const rleW = rle.size[1];
|
|
293
228
|
let pixel = 0;
|
|
294
|
-
let on = false;
|
|
229
|
+
let on = false;
|
|
295
230
|
for (const count of counts) {
|
|
296
231
|
if (on) {
|
|
297
232
|
for (let i = 0; i < count; i++) {
|
|
298
|
-
// Convert column-major index to row-major
|
|
299
233
|
const col = Math.floor(pixel / rleH);
|
|
300
234
|
const row = pixel % rleH;
|
|
301
235
|
if (row < height && col < width) {
|
|
@@ -310,10 +244,6 @@ function decodeRleToMask(mask, width, height, rle, value) {
|
|
|
310
244
|
on = !on;
|
|
311
245
|
}
|
|
312
246
|
}
|
|
313
|
-
/**
|
|
314
|
-
* Decode COCO compressed RLE string to run-length counts array.
|
|
315
|
-
* Uses the same encoding as pycocotools maskUtils.
|
|
316
|
-
*/
|
|
317
247
|
function decodeCompressedRle(s) {
|
|
318
248
|
const counts = [];
|
|
319
249
|
let i = 0;
|
|
@@ -328,14 +258,12 @@ function decodeCompressedRle(s) {
|
|
|
328
258
|
shift += 5;
|
|
329
259
|
more = (c & 0x20) !== 0;
|
|
330
260
|
}
|
|
331
|
-
// Zigzag decode
|
|
332
261
|
if (x & 1) {
|
|
333
262
|
x = -(x >> 1) - 1;
|
|
334
263
|
}
|
|
335
264
|
else {
|
|
336
265
|
x = x >> 1;
|
|
337
266
|
}
|
|
338
|
-
// Counts are relative after the first
|
|
339
267
|
if (counts.length > 2) {
|
|
340
268
|
x += counts[counts.length - 2];
|
|
341
269
|
}
|
|
@@ -343,23 +271,14 @@ function decodeCompressedRle(s) {
|
|
|
343
271
|
}
|
|
344
272
|
return counts;
|
|
345
273
|
}
|
|
346
|
-
// =====================================================================
|
|
347
|
-
// Minimal PNG encoder (grayscale 8-bit)
|
|
348
|
-
// =====================================================================
|
|
349
|
-
/**
|
|
350
|
-
* Encode a grayscale 8-bit image as PNG using Node.js built-in zlib.
|
|
351
|
-
* No external dependencies required.
|
|
352
|
-
*/
|
|
353
274
|
function encodePng(pixels, width, height) {
|
|
354
275
|
if (width === 0 || height === 0) {
|
|
355
|
-
// Return a valid 0x0 PNG
|
|
356
276
|
return createMinimalPng(0, 0, Buffer.alloc(0));
|
|
357
277
|
}
|
|
358
|
-
// Build raw scanlines: each row is prefixed with filter byte 0 (None)
|
|
359
278
|
const rawData = Buffer.alloc(height * (1 + width));
|
|
360
279
|
for (let y = 0; y < height; y++) {
|
|
361
280
|
const rowOffset = y * (1 + width);
|
|
362
|
-
rawData[rowOffset] = 0;
|
|
281
|
+
rawData[rowOffset] = 0;
|
|
363
282
|
pixels.copy(rawData, rowOffset + 1, y * width, (y + 1) * width);
|
|
364
283
|
}
|
|
365
284
|
const compressed = zlib.deflateSync(rawData);
|
|
@@ -367,15 +286,14 @@ function encodePng(pixels, width, height) {
|
|
|
367
286
|
}
|
|
368
287
|
function createMinimalPng(width, height, compressedData) {
|
|
369
288
|
const signature = Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]);
|
|
370
|
-
// IHDR: width(4) + height(4) + bitDepth(1) + colorType(1) + compression(1) + filter(1) + interlace(1) = 13 bytes
|
|
371
289
|
const ihdrData = Buffer.alloc(13);
|
|
372
290
|
ihdrData.writeUInt32BE(width, 0);
|
|
373
291
|
ihdrData.writeUInt32BE(height, 4);
|
|
374
|
-
ihdrData[8] = 8;
|
|
375
|
-
ihdrData[9] = 0;
|
|
376
|
-
ihdrData[10] = 0;
|
|
377
|
-
ihdrData[11] = 0;
|
|
378
|
-
ihdrData[12] = 0;
|
|
292
|
+
ihdrData[8] = 8;
|
|
293
|
+
ihdrData[9] = 0;
|
|
294
|
+
ihdrData[10] = 0;
|
|
295
|
+
ihdrData[11] = 0;
|
|
296
|
+
ihdrData[12] = 0;
|
|
379
297
|
const ihdr = pngChunk('IHDR', ihdrData);
|
|
380
298
|
const idat = pngChunk('IDAT', compressedData);
|
|
381
299
|
const iend = pngChunk('IEND', Buffer.alloc(0));
|
|
@@ -390,7 +308,6 @@ function pngChunk(type, data) {
|
|
|
390
308
|
crc.writeUInt32BE(crc32(crcData) >>> 0, 0);
|
|
391
309
|
return Buffer.concat([length, typeBuffer, data, crc]);
|
|
392
310
|
}
|
|
393
|
-
// CRC-32 lookup table
|
|
394
311
|
const CRC_TABLE = (() => {
|
|
395
312
|
const table = new Uint32Array(256);
|
|
396
313
|
for (let n = 0; n < 256; n++) {
|
|
@@ -414,9 +331,6 @@ function crc32(buf) {
|
|
|
414
331
|
}
|
|
415
332
|
return crc ^ 0xffffffff;
|
|
416
333
|
}
|
|
417
|
-
// =====================================================================
|
|
418
|
-
// Helpers
|
|
419
|
-
// =====================================================================
|
|
420
334
|
function rowsToBatch(rows) {
|
|
421
335
|
const keys = Object.keys(rows[0]);
|
|
422
336
|
const result = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coco.js","sourceRoot":"","sources":["../../../../src/node/formats/coco.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"coco.js","sourceRoot":"","sources":["../../../../src/node/formats/coco.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coco_panoptic.d.ts","sourceRoot":"","sources":["../../../../src/node/formats/coco_panoptic.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAqBnE,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,YAAa,YAAW,MAAM;IACzC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,mBAAmB;IAOxC,MAAM,IAAI,SAAS;IAOnB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAOnC,aAAa,IAAI,MAAM,EAAE;IAIxB,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"coco_panoptic.d.ts","sourceRoot":"","sources":["../../../../src/node/formats/coco_panoptic.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAqBnE,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,YAAa,YAAW,MAAM;IACzC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,mBAAmB;IAOxC,MAAM,IAAI,SAAS;IAOnB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAOnC,aAAa,IAAI,MAAM,EAAE;IAIxB,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC;CA2D/B"}
|
|
@@ -74,7 +74,6 @@ class CocoPanoptic {
|
|
|
74
74
|
}
|
|
75
75
|
const raw = fs.readFileSync(this.annotationsPath, 'utf-8');
|
|
76
76
|
const coco = JSON.parse(raw);
|
|
77
|
-
// Build lookup: image_id -> annotation
|
|
78
77
|
const annByImage = new Map();
|
|
79
78
|
for (const ann of coco.annotations ?? []) {
|
|
80
79
|
annByImage.set(ann.image_id, ann);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coco_panoptic.js","sourceRoot":"","sources":["../../../../src/node/formats/coco_panoptic.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAyB;AACzB,2CAA6B;AA6B7B,MAAa,YAAY;IACf,SAAS,CAAS;IAClB,QAAQ,CAAS;IACjB,eAAe,CAAS;IACxB,SAAS,CAAS;IAE1B,YAAY,OAA4B;QACtC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,GAAG,CAAC;IAC5C,CAAC;IAED,MAAM;QACJ,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,QAAQ;SACf,CAAC;IACJ,CAAC;IAED,SAAS;QACP,OAAO;YACL,KAAK,EAAE,OAAO;YACd,IAAI,EAAE,cAAc;SACrB,CAAC;IACJ,CAAC;IAED,aAAa;QACX,OAAO,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAED,CAAC,SAAS;QACR,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CAAC,+BAA+B,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACjE,CAAC;QAED,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAqB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAE/C,
|
|
1
|
+
{"version":3,"file":"coco_panoptic.js","sourceRoot":"","sources":["../../../../src/node/formats/coco_panoptic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LeRobot dataset format classes for DeepLake managed ingestion.
|
|
3
|
-
*
|
|
4
|
-
* Implements the normalized 3-table design:
|
|
5
|
-
* - LeRobotTasks: task_index + task description (from tasks.jsonl)
|
|
6
|
-
* - LeRobotEpisodes: episode metadata + 3 camera videos (from episodes.jsonl + mp4s)
|
|
7
|
-
* - LeRobotFrames: per-frame state/action scalars (from parquet files)
|
|
8
|
-
*
|
|
9
|
-
* LeRobotTasks and LeRobotEpisodes use only Node.js built-ins.
|
|
10
|
-
* LeRobotFrames requires an optional parquet reader (e.g. `parquetjs`).
|
|
11
|
-
*/
|
|
12
1
|
import type { Batch, Format, SchemaMap } from '../../shared/types';
|
|
13
2
|
export interface LeRobotTasksOptions {
|
|
14
|
-
/** Root directory of the LeRobot dataset. */
|
|
15
3
|
datasetDir: string;
|
|
16
4
|
}
|
|
17
|
-
/**
|
|
18
|
-
* Format for LeRobot tasks.jsonl — one row per task.
|
|
19
|
-
*
|
|
20
|
-
* Columns: task_index (int), task (string)
|
|
21
|
-
*/
|
|
22
5
|
export declare class LeRobotTasks implements Format {
|
|
23
6
|
private tasksFile;
|
|
24
7
|
constructor(options: LeRobotTasksOptions);
|
|
@@ -26,23 +9,10 @@ export declare class LeRobotTasks implements Format {
|
|
|
26
9
|
normalize(): Generator<Batch>;
|
|
27
10
|
}
|
|
28
11
|
export interface LeRobotFramesOptions {
|
|
29
|
-
/** Root directory of the LeRobot dataset. */
|
|
30
12
|
datasetDir: string;
|
|
31
|
-
/** First chunk index (inclusive, default 0). */
|
|
32
13
|
chunkStart?: number;
|
|
33
|
-
/** Last chunk index (inclusive, default 10). */
|
|
34
14
|
chunkEnd?: number;
|
|
35
15
|
}
|
|
36
|
-
/**
|
|
37
|
-
* Format for LeRobot parquet files — one row per frame with unpacked scalars.
|
|
38
|
-
*
|
|
39
|
-
* Reads parquet files for the specified chunk range and unpacks
|
|
40
|
-
* observation.state[8] and action[7] into individual float columns.
|
|
41
|
-
*
|
|
42
|
-
* Requires a parquet reader. Tries to use `@duckdb/node-bindings` first,
|
|
43
|
-
* then falls back to `parquetjs`. If neither is available, throws an error
|
|
44
|
-
* with installation instructions.
|
|
45
|
-
*/
|
|
46
16
|
export declare class LeRobotFrames implements Format {
|
|
47
17
|
private datasetDir;
|
|
48
18
|
private chunkStart;
|
|
@@ -52,22 +22,10 @@ export declare class LeRobotFrames implements Format {
|
|
|
52
22
|
normalize(): Generator<Batch>;
|
|
53
23
|
}
|
|
54
24
|
export interface LeRobotEpisodesOptions {
|
|
55
|
-
/** Root directory of the LeRobot dataset. */
|
|
56
25
|
datasetDir: string;
|
|
57
|
-
/** First chunk index (inclusive, default 0). */
|
|
58
26
|
chunkStart?: number;
|
|
59
|
-
/** Last chunk index (inclusive, default 10). */
|
|
60
27
|
chunkEnd?: number;
|
|
61
28
|
}
|
|
62
|
-
/**
|
|
63
|
-
* Format for LeRobot episodes — one row per episode with video data.
|
|
64
|
-
*
|
|
65
|
-
* Pulls video files lazily per-chunk via git-lfs to manage disk space.
|
|
66
|
-
* After processing each chunk's videos, restores LFS pointers.
|
|
67
|
-
*
|
|
68
|
-
* Columns: episode_index (int), task (str), length (int),
|
|
69
|
-
* exterior_1_video (bytes), exterior_2_video (bytes), wrist_video (bytes)
|
|
70
|
-
*/
|
|
71
29
|
export declare class LeRobotEpisodes implements Format {
|
|
72
30
|
private datasetDir;
|
|
73
31
|
private chunkStart;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lerobot.d.ts","sourceRoot":"","sources":["../../../../src/node/formats/lerobot.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lerobot.d.ts","sourceRoot":"","sources":["../../../../src/node/formats/lerobot.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAMnE,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,YAAa,YAAW,MAAM;IACzC,OAAO,CAAC,SAAS,CAAS;gBAEd,OAAO,EAAE,mBAAmB;IAIxC,MAAM,IAAI,SAAS;IAIlB,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC;CA0B/B;AAkBD,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,aAAc,YAAW,MAAM;IAC1C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,EAAE,oBAAoB;IAMzC,MAAM,IAAI,SAAS;IAIlB,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC;CA8D/B;AAeD,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,eAAgB,YAAW,MAAM;IAC5C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,SAAS,CAAuC;gBAE5C,OAAO,EAAE,sBAAsB;IA4B3C,MAAM,IAAI,SAAS;IAQnB,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAQlC,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC;IAiF9B,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,qBAAqB;CAmC9B"}
|
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* LeRobot dataset format classes for DeepLake managed ingestion.
|
|
4
|
-
*
|
|
5
|
-
* Implements the normalized 3-table design:
|
|
6
|
-
* - LeRobotTasks: task_index + task description (from tasks.jsonl)
|
|
7
|
-
* - LeRobotEpisodes: episode metadata + 3 camera videos (from episodes.jsonl + mp4s)
|
|
8
|
-
* - LeRobotFrames: per-frame state/action scalars (from parquet files)
|
|
9
|
-
*
|
|
10
|
-
* LeRobotTasks and LeRobotEpisodes use only Node.js built-ins.
|
|
11
|
-
* LeRobotFrames requires an optional parquet reader (e.g. `parquetjs`).
|
|
12
|
-
*/
|
|
13
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
3
|
if (k2 === undefined) k2 = k;
|
|
15
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -48,11 +37,6 @@ exports.LeRobotEpisodes = exports.LeRobotFrames = exports.LeRobotTasks = void 0;
|
|
|
48
37
|
const fs = __importStar(require("fs"));
|
|
49
38
|
const path = __importStar(require("path"));
|
|
50
39
|
const child_process_1 = require("child_process");
|
|
51
|
-
/**
|
|
52
|
-
* Format for LeRobot tasks.jsonl — one row per task.
|
|
53
|
-
*
|
|
54
|
-
* Columns: task_index (int), task (string)
|
|
55
|
-
*/
|
|
56
40
|
class LeRobotTasks {
|
|
57
41
|
tasksFile;
|
|
58
42
|
constructor(options) {
|
|
@@ -98,16 +82,6 @@ const ACTION_NAMES = [
|
|
|
98
82
|
'action_roll', 'action_pitch', 'action_yaw',
|
|
99
83
|
'action_gripper',
|
|
100
84
|
];
|
|
101
|
-
/**
|
|
102
|
-
* Format for LeRobot parquet files — one row per frame with unpacked scalars.
|
|
103
|
-
*
|
|
104
|
-
* Reads parquet files for the specified chunk range and unpacks
|
|
105
|
-
* observation.state[8] and action[7] into individual float columns.
|
|
106
|
-
*
|
|
107
|
-
* Requires a parquet reader. Tries to use `@duckdb/node-bindings` first,
|
|
108
|
-
* then falls back to `parquetjs`. If neither is available, throws an error
|
|
109
|
-
* with installation instructions.
|
|
110
|
-
*/
|
|
111
85
|
class LeRobotFrames {
|
|
112
86
|
datasetDir;
|
|
113
87
|
chunkStart;
|
|
@@ -148,12 +122,10 @@ class LeRobotFrames {
|
|
|
148
122
|
batch['frame_index'].push(row.frame_index);
|
|
149
123
|
batch['task_index'].push(row.task_index);
|
|
150
124
|
batch['timestamp'].push(row.timestamp);
|
|
151
|
-
// Unpack observation.state[8]
|
|
152
125
|
const state = row['observation.state'] ?? [];
|
|
153
126
|
for (let i = 0; i < STATE_NAMES.length; i++) {
|
|
154
127
|
batch[STATE_NAMES[i]].push(state[i] ?? 0);
|
|
155
128
|
}
|
|
156
|
-
// Unpack action[7]
|
|
157
129
|
const action = row['action'] ?? [];
|
|
158
130
|
for (let i = 0; i < ACTION_NAMES.length; i++) {
|
|
159
131
|
batch[ACTION_NAMES[i]].push(action[i] ?? 0);
|
|
@@ -186,15 +158,6 @@ const VIDEO_KEYS = [
|
|
|
186
158
|
];
|
|
187
159
|
const COL_NAMES = ['exterior_1_video', 'exterior_2_video', 'wrist_video'];
|
|
188
160
|
const EPISODE_COLUMNS = ['episode_index', 'task', 'length', ...COL_NAMES];
|
|
189
|
-
/**
|
|
190
|
-
* Format for LeRobot episodes — one row per episode with video data.
|
|
191
|
-
*
|
|
192
|
-
* Pulls video files lazily per-chunk via git-lfs to manage disk space.
|
|
193
|
-
* After processing each chunk's videos, restores LFS pointers.
|
|
194
|
-
*
|
|
195
|
-
* Columns: episode_index (int), task (str), length (int),
|
|
196
|
-
* exterior_1_video (bytes), exterior_2_video (bytes), wrist_video (bytes)
|
|
197
|
-
*/
|
|
198
161
|
class LeRobotEpisodes {
|
|
199
162
|
datasetDir;
|
|
200
163
|
chunkStart;
|
|
@@ -205,7 +168,6 @@ class LeRobotEpisodes {
|
|
|
205
168
|
this.datasetDir = options.datasetDir;
|
|
206
169
|
this.chunkStart = options.chunkStart ?? 0;
|
|
207
170
|
this.chunkEnd = options.chunkEnd ?? 10;
|
|
208
|
-
// Load tasks for denormalization
|
|
209
171
|
const tasksFile = path.join(this.datasetDir, 'meta', 'tasks.jsonl');
|
|
210
172
|
this._tasks = new Map();
|
|
211
173
|
if (fs.existsSync(tasksFile)) {
|
|
@@ -217,7 +179,6 @@ class LeRobotEpisodes {
|
|
|
217
179
|
this._tasks.set(rec.task_index, rec.task);
|
|
218
180
|
}
|
|
219
181
|
}
|
|
220
|
-
// Load episodes metadata
|
|
221
182
|
const episodesFile = path.join(this.datasetDir, 'meta', 'episodes.jsonl');
|
|
222
183
|
this._episodes = new Map();
|
|
223
184
|
if (fs.existsSync(episodesFile)) {
|
|
@@ -247,12 +208,10 @@ class LeRobotEpisodes {
|
|
|
247
208
|
*normalize() {
|
|
248
209
|
for (let chunkIdx = this.chunkStart; chunkIdx <= this.chunkEnd; chunkIdx++) {
|
|
249
210
|
const chunk = `chunk-${String(chunkIdx).padStart(3, '0')}`;
|
|
250
|
-
// Pull this chunk's videos
|
|
251
211
|
this._pullChunkVideos(chunkIdx);
|
|
252
212
|
const chunkDir = path.join(this.datasetDir, 'videos', chunk);
|
|
253
213
|
if (!fs.existsSync(chunkDir))
|
|
254
214
|
continue;
|
|
255
|
-
// Find episodes from the first camera dir
|
|
256
215
|
const firstCam = path.join(chunkDir, VIDEO_KEYS[0]);
|
|
257
216
|
if (!fs.existsSync(firstCam))
|
|
258
217
|
continue;
|
|
@@ -274,10 +233,8 @@ class LeRobotEpisodes {
|
|
|
274
233
|
const epMeta = this._episodes.get(epIdx);
|
|
275
234
|
if (!epMeta)
|
|
276
235
|
continue;
|
|
277
|
-
// Read task text
|
|
278
236
|
const taskList = epMeta.tasks ?? [];
|
|
279
237
|
const taskText = taskList.filter(Boolean).join('; ');
|
|
280
|
-
// Read all 3 camera videos
|
|
281
238
|
const videos = [];
|
|
282
239
|
let skip = false;
|
|
283
240
|
for (const vkey of VIDEO_KEYS) {
|
|
@@ -288,7 +245,6 @@ class LeRobotEpisodes {
|
|
|
288
245
|
}
|
|
289
246
|
const stat = fs.statSync(vpath);
|
|
290
247
|
if (stat.size < 200) {
|
|
291
|
-
// Still an LFS pointer, not real data
|
|
292
248
|
skip = true;
|
|
293
249
|
break;
|
|
294
250
|
}
|
|
@@ -304,17 +260,14 @@ class LeRobotEpisodes {
|
|
|
304
260
|
}
|
|
305
261
|
if (batch.episode_index.length >= 50) {
|
|
306
262
|
yield batch;
|
|
307
|
-
// Reset using known columns only.
|
|
308
263
|
for (const key of EPISODE_COLUMNS) {
|
|
309
264
|
batch[key] = [];
|
|
310
265
|
}
|
|
311
266
|
}
|
|
312
267
|
}
|
|
313
|
-
// Yield remaining
|
|
314
268
|
if (batch.episode_index.length > 0) {
|
|
315
269
|
yield batch;
|
|
316
270
|
}
|
|
317
|
-
// Free disk: restore LFS pointers
|
|
318
271
|
this._restoreChunkPointers(chunkIdx);
|
|
319
272
|
}
|
|
320
273
|
}
|
|
@@ -328,7 +281,7 @@ class LeRobotEpisodes {
|
|
|
328
281
|
});
|
|
329
282
|
}
|
|
330
283
|
catch {
|
|
331
|
-
// Non-fatal
|
|
284
|
+
// Non-fatal
|
|
332
285
|
}
|
|
333
286
|
}
|
|
334
287
|
_restoreChunkPointers(chunkIdx) {
|
|
@@ -369,25 +322,14 @@ exports.LeRobotEpisodes = LeRobotEpisodes;
|
|
|
369
322
|
// =====================================================================
|
|
370
323
|
// Parquet reading helper
|
|
371
324
|
// =====================================================================
|
|
372
|
-
/**
|
|
373
|
-
* Read a parquet file and return rows as plain objects.
|
|
374
|
-
* Tries `parquetjs` (pure JS). Returns null if no reader is available.
|
|
375
|
-
*/
|
|
376
325
|
function readParquetFile(filePath) {
|
|
377
|
-
// Try parquetjs (synchronous via parquet-wasm or similar)
|
|
378
|
-
// For now, use a simple approach: try to require parquetjs-lite
|
|
379
|
-
// which provides a synchronous reader
|
|
380
326
|
try {
|
|
381
|
-
// Dynamic require to avoid hard dependency
|
|
382
327
|
const { ParquetReader } = require('parquetjs-lite');
|
|
383
|
-
// parquetjs is async-only, so we use a sync wrapper approach
|
|
384
|
-
// This is a simplified fallback — real usage should use the async API
|
|
385
328
|
throw new Error('parquetjs requires async reading — use LeRobotFrames with async normalize');
|
|
386
329
|
}
|
|
387
330
|
catch {
|
|
388
331
|
// No parquet reader available
|
|
389
332
|
}
|
|
390
|
-
// Fallback: try reading with duckdb CLI if available
|
|
391
333
|
try {
|
|
392
334
|
const result = (0, child_process_1.execFileSync)('duckdb', ['-json', '-c', `SELECT * FROM read_parquet('${filePath}')`], { timeout: 30_000, stdio: ['pipe', 'pipe', 'pipe'], maxBuffer: 100 * 1024 * 1024 });
|
|
393
335
|
return JSON.parse(result.toString('utf-8'));
|
|
@@ -395,7 +337,6 @@ function readParquetFile(filePath) {
|
|
|
395
337
|
catch {
|
|
396
338
|
// duckdb not available
|
|
397
339
|
}
|
|
398
|
-
// Fallback: try python one-liner
|
|
399
340
|
try {
|
|
400
341
|
const pyScript = `import pandas,json,sys;df=pandas.read_parquet("${filePath}");print(json.dumps([{k:v if not hasattr(v,'tolist') else v.tolist() for k,v in r.items()} for _,r in df.iterrows()]))`;
|
|
401
342
|
const result = (0, child_process_1.execFileSync)('python3', ['-c', pyScript], { timeout: 30_000, stdio: ['pipe', 'pipe', 'pipe'], maxBuffer: 100 * 1024 * 1024 });
|