@areb0s/ocr-common 1.0.2 → 1.0.4
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/build/Ocr.d.ts +4 -0
- package/build/Ocr.js +23 -0
- package/build/Ocr.js.map +1 -1
- package/build/backend/splitIntoLineImages.js +26 -16
- package/build/backend/splitIntoLineImages.js.map +1 -1
- package/build/models/Detection.js +4 -1
- package/build/models/Detection.js.map +1 -1
- package/build/models/Recognition.js +3 -0
- package/build/models/Recognition.js.map +1 -1
- package/package.json +1 -1
- package/src/Ocr.ts +58 -34
- package/src/backend/splitIntoLineImages.ts +30 -19
- package/src/models/Detection.ts +13 -6
- package/src/models/Recognition.ts +3 -0
package/build/Ocr.d.ts
CHANGED
|
@@ -7,6 +7,10 @@ export declare class Ocr {
|
|
|
7
7
|
detection: Detection;
|
|
8
8
|
recognition: Recognition;
|
|
9
9
|
});
|
|
10
|
+
/**
|
|
11
|
+
* Detect text from image
|
|
12
|
+
* Note: Calls are automatically serialized to prevent "Session already started" error
|
|
13
|
+
*/
|
|
10
14
|
detect(image: string | ImageRawData | BrowserImageInput, options?: {}): Promise<{
|
|
11
15
|
texts: import("./types/index.js").Line[];
|
|
12
16
|
resizedImageWidth: any;
|
package/build/Ocr.js
CHANGED
|
@@ -7,11 +7,34 @@ export class Ocr {
|
|
|
7
7
|
}
|
|
8
8
|
#detection;
|
|
9
9
|
#recognition;
|
|
10
|
+
#mutex = Promise.resolve();
|
|
10
11
|
constructor({ detection, recognition, }) {
|
|
11
12
|
this.#detection = detection;
|
|
12
13
|
this.#recognition = recognition;
|
|
13
14
|
}
|
|
15
|
+
/**
|
|
16
|
+
* Detect text from image
|
|
17
|
+
* Note: Calls are automatically serialized to prevent "Session already started" error
|
|
18
|
+
*/
|
|
14
19
|
async detect(image, options = {}) {
|
|
20
|
+
// Queue this call behind any pending operations
|
|
21
|
+
const currentMutex = this.#mutex;
|
|
22
|
+
let releaseMutex;
|
|
23
|
+
this.#mutex = new Promise((resolve) => {
|
|
24
|
+
releaseMutex = resolve;
|
|
25
|
+
});
|
|
26
|
+
try {
|
|
27
|
+
// Wait for previous operation to complete
|
|
28
|
+
await currentMutex;
|
|
29
|
+
// Execute detection
|
|
30
|
+
return await this.#detectInternal(image, options);
|
|
31
|
+
}
|
|
32
|
+
finally {
|
|
33
|
+
// Release mutex for next operation
|
|
34
|
+
releaseMutex();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async #detectInternal(image, options = {}) {
|
|
15
38
|
const { lineImages, resizedImageWidth, resizedImageHeight } = await this.#detection.run(image, options);
|
|
16
39
|
const texts = await this.#recognition.run(lineImages, options);
|
|
17
40
|
return {
|
package/build/Ocr.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ocr.js","sourceRoot":"","sources":["../src/Ocr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEjD,MAAM,OAAO,GAAG;IACd,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAA8B,EAAE;QAClD,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACjD,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACrD,OAAO,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAA;IAC5C,CAAC;IAED,UAAU,CAAW;IACrB,YAAY,CAAa;
|
|
1
|
+
{"version":3,"file":"Ocr.js","sourceRoot":"","sources":["../src/Ocr.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAEjD,MAAM,OAAO,GAAG;IACd,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAA8B,EAAE;QAClD,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACjD,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACrD,OAAO,IAAI,GAAG,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAA;IAC5C,CAAC;IAED,UAAU,CAAW;IACrB,YAAY,CAAa;IACzB,MAAM,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAA;IAEzC,YAAY,EACV,SAAS,EACT,WAAW,GAIZ;QACC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;QAC3B,IAAI,CAAC,YAAY,GAAG,WAAW,CAAA;IACjC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,KAAgD,EAAE,OAAO,GAAG,EAAE;QACzE,gDAAgD;QAChD,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAA;QAChC,IAAI,YAAwB,CAAA;QAC5B,IAAI,CAAC,MAAM,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpC,YAAY,GAAG,OAAO,CAAA;QACxB,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC;YACH,0CAA0C;YAC1C,MAAM,YAAY,CAAA;YAClB,oBAAoB;YACpB,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACnD,CAAC;gBAAS,CAAC;YACT,mCAAmC;YACnC,YAAa,EAAE,CAAA;QACjB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAAgD,EAAE,OAAO,GAAG,EAAE;QAClF,MAAM,EAAE,UAAU,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACvG,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAC9D,OAAO;YACL,KAAK;YACL,iBAAiB;YACjB,kBAAkB;SACnB,CAAA;IACH,CAAC;CACF"}
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
import cv from '@techstark/opencv-js';
|
|
2
2
|
import clipper from 'js-clipper';
|
|
3
3
|
import { ImageRaw } from '../backend/index.js';
|
|
4
|
+
// Helper function moved outside loop for performance
|
|
5
|
+
function clip(n, min, max) {
|
|
6
|
+
return Math.max(min, Math.min(n, max));
|
|
7
|
+
}
|
|
4
8
|
export async function splitIntoLineImages(image, sourceImage) {
|
|
5
9
|
const w = image.width;
|
|
6
10
|
const h = image.height;
|
|
7
11
|
const srcData = sourceImage;
|
|
12
|
+
const rx = srcData.width / w;
|
|
13
|
+
const ry = srcData.height / h;
|
|
14
|
+
const minSize = 3;
|
|
8
15
|
const edgeRect = [];
|
|
9
16
|
const src = cvImread(image);
|
|
10
17
|
cv.cvtColor(src, src, cv.COLOR_RGBA2GRAY, 0);
|
|
@@ -12,27 +19,21 @@ export async function splitIntoLineImages(image, sourceImage) {
|
|
|
12
19
|
const hierarchy = new cv.Mat();
|
|
13
20
|
cv.findContours(src, contours, hierarchy, cv.RETR_LIST, cv.CHAIN_APPROX_SIMPLE);
|
|
14
21
|
for (let i = 0; i < contours.size(); i++) {
|
|
15
|
-
const minSize = 3;
|
|
16
22
|
const cnt = contours.get(i);
|
|
17
23
|
const { points, sside } = getMiniBoxes(cnt);
|
|
18
24
|
if (sside < minSize)
|
|
19
25
|
continue;
|
|
20
|
-
// TODO sort fast
|
|
21
26
|
const clipBox = unclip(points);
|
|
22
27
|
const boxMap = cv.matFromArray(clipBox.length / 2, 1, cv.CV_32SC2, clipBox);
|
|
23
28
|
const resultObj = getMiniBoxes(boxMap);
|
|
29
|
+
boxMap.delete(); // Memory optimization: delete immediately after use
|
|
24
30
|
const box = resultObj.points;
|
|
25
31
|
if (resultObj.sside < minSize + 2) {
|
|
26
32
|
continue;
|
|
27
33
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const rx = srcData.width / w;
|
|
32
|
-
const ry = srcData.height / h;
|
|
33
|
-
for (let i = 0; i < box.length; i++) {
|
|
34
|
-
box[i][0] *= rx;
|
|
35
|
-
box[i][1] *= ry;
|
|
34
|
+
for (let j = 0; j < box.length; j++) {
|
|
35
|
+
box[j][0] *= rx;
|
|
36
|
+
box[j][1] *= ry;
|
|
36
37
|
}
|
|
37
38
|
const box1 = orderPointsClockwise(box);
|
|
38
39
|
box1.forEach((item) => {
|
|
@@ -138,27 +139,33 @@ function getRotateCropImage(imageRaw, points) {
|
|
|
138
139
|
];
|
|
139
140
|
const srcTri = cv.matFromArray(4, 1, cv.CV_32FC2, flatten(points));
|
|
140
141
|
const dstTri = cv.matFromArray(4, 1, cv.CV_32FC2, flatten(pts_std));
|
|
141
|
-
//
|
|
142
|
+
// Get perspective transform matrix
|
|
142
143
|
const M = cv.getPerspectiveTransform(srcTri, dstTri);
|
|
143
144
|
const src = cvImread(imageRaw);
|
|
144
145
|
const dst = new cv.Mat();
|
|
145
146
|
const dsize = new cv.Size(img_crop_width, img_crop_height);
|
|
146
|
-
//
|
|
147
|
+
// Apply perspective transform
|
|
147
148
|
cv.warpPerspective(src, dst, M, dsize, cv.INTER_CUBIC, cv.BORDER_REPLICATE, new cv.Scalar());
|
|
148
149
|
const dst_img_height = dst.matSize[0];
|
|
149
150
|
const dst_img_width = dst.matSize[1];
|
|
150
151
|
let dst_rot;
|
|
151
|
-
|
|
152
|
+
let M_rot;
|
|
153
|
+
// Rotate image if needed
|
|
152
154
|
if (dst_img_height / dst_img_width >= 1.5) {
|
|
153
155
|
dst_rot = new cv.Mat();
|
|
154
156
|
const dsize_rot = new cv.Size(dst.rows, dst.cols);
|
|
155
157
|
const center = new cv.Point(dst.cols / 2, dst.cols / 2);
|
|
156
|
-
|
|
157
|
-
cv.warpAffine(dst, dst_rot,
|
|
158
|
+
M_rot = cv.getRotationMatrix2D(center, 90, 1);
|
|
159
|
+
cv.warpAffine(dst, dst_rot, M_rot, dsize_rot, cv.INTER_CUBIC, cv.BORDER_REPLICATE, new cv.Scalar());
|
|
158
160
|
}
|
|
161
|
+
// Memory optimization: delete all Mat objects
|
|
159
162
|
src.delete();
|
|
160
163
|
srcTri.delete();
|
|
161
164
|
dstTri.delete();
|
|
165
|
+
M.delete();
|
|
166
|
+
if (M_rot) {
|
|
167
|
+
M_rot.delete();
|
|
168
|
+
}
|
|
162
169
|
if (dst_rot) {
|
|
163
170
|
dst.delete();
|
|
164
171
|
}
|
|
@@ -226,6 +233,9 @@ function cvImread(image) {
|
|
|
226
233
|
return cv.matFromImageData(image);
|
|
227
234
|
}
|
|
228
235
|
function cvImshow(mat) {
|
|
229
|
-
|
|
236
|
+
// Create ImageRaw first (copies data internally), then delete mat
|
|
237
|
+
const result = new ImageRaw({ data: mat.data, width: mat.cols, height: mat.rows });
|
|
238
|
+
mat.delete(); // Memory optimization: delete after data is copied
|
|
239
|
+
return result;
|
|
230
240
|
}
|
|
231
241
|
//# sourceMappingURL=splitIntoLineImages.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"splitIntoLineImages.js","sourceRoot":"","sources":["../../src/backend/splitIntoLineImages.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"splitIntoLineImages.js","sourceRoot":"","sources":["../../src/backend/splitIntoLineImages.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,9 @@ export class Detection extends ModelBase {
|
|
|
8
8
|
invariant(detectionPath, 'detectionPath is required');
|
|
9
9
|
const mergedOptions = {
|
|
10
10
|
executionProviders: ['webgpu', 'webgl', 'wasm'],
|
|
11
|
+
graphOptimizationLevel: 'all',
|
|
12
|
+
enableCpuMemArena: true,
|
|
13
|
+
enableMemPattern: true,
|
|
11
14
|
...onnxOptions,
|
|
12
15
|
};
|
|
13
16
|
const model = await InferenceSession.create(detectionPath, mergedOptions);
|
|
@@ -17,7 +20,7 @@ export class Detection extends ModelBase {
|
|
|
17
20
|
// Use ImageRaw.from() factory method if available (browser), otherwise fallback to legacy handling
|
|
18
21
|
const image = typeof ImageRaw.from === 'function'
|
|
19
22
|
? await ImageRaw.from(input)
|
|
20
|
-
: typeof input ===
|
|
23
|
+
: typeof input === 'string'
|
|
21
24
|
? await ImageRaw.open(input)
|
|
22
25
|
: new ImageRaw(input);
|
|
23
26
|
// Resize image to multiple of 32
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Detection.js","sourceRoot":"","sources":["../../src/models/Detection.ts"],"names":[],"mappings":"AACA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAEhG,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,SAAS,GAAG,EAAE,CAAA;AAEpB,MAAM,OAAO,SAAU,SAAQ,SAAS;IACtC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,WAAW,EAAsB;QAClF,MAAM,aAAa,GAAG,MAAM,EAAE,aAAa,IAAI,aAAa,EAAE,aAAa,CAAA;QAC3E,SAAS,CAAC,aAAa,EAAE,2BAA2B,CAAC,CAAA;QACrD,MAAM,aAAa,GAAG;YACpB,kBAAkB,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;YAC/C,GAAG,WAAW;SACf,CAAA;QACD,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAA;QACzE,OAAO,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAA;IACvD,CAAC;IAED,KAAK,CAAC,GAAG,
|
|
1
|
+
{"version":3,"file":"Detection.js","sourceRoot":"","sources":["../../src/models/Detection.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,9 @@ export class Recognition extends ModelBase {
|
|
|
10
10
|
invariant(dictionaryPath, 'dictionaryPath is required');
|
|
11
11
|
const mergedOptions = {
|
|
12
12
|
executionProviders: ['webgpu', 'webgl', 'wasm'],
|
|
13
|
+
graphOptimizationLevel: 'all',
|
|
14
|
+
enableCpuMemArena: true,
|
|
15
|
+
enableMemPattern: true,
|
|
13
16
|
...onnxOptions,
|
|
14
17
|
};
|
|
15
18
|
const model = await InferenceSession.create(recognitionPath, mergedOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Recognition.js","sourceRoot":"","sources":["../../src/models/Recognition.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Recognition.js","sourceRoot":"","sources":["../../src/models/Recognition.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@areb0s/ocr-common",
|
|
3
3
|
"description": "Fork of @gutenye/ocr-common with ImageBitmap support. Shared OCR library for Browser/Node based on PaddleOCR and ONNX runtime.",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.4",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
package/src/Ocr.ts
CHANGED
|
@@ -1,34 +1,58 @@
|
|
|
1
|
-
import type { ImageRawData, BrowserImageInput, ModelCreateOptions } from '#common/types'
|
|
2
|
-
import { Detection, Recognition } from './models'
|
|
3
|
-
|
|
4
|
-
export class Ocr {
|
|
5
|
-
static async create(options: ModelCreateOptions = {}) {
|
|
6
|
-
const detection = await Detection.create(options)
|
|
7
|
-
const recognition = await Recognition.create(options)
|
|
8
|
-
return new Ocr({ detection, recognition })
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
#detection: Detection
|
|
12
|
-
#recognition: Recognition
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
this.#
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
1
|
+
import type { ImageRawData, BrowserImageInput, ModelCreateOptions } from '#common/types'
|
|
2
|
+
import { Detection, Recognition } from './models'
|
|
3
|
+
|
|
4
|
+
export class Ocr {
|
|
5
|
+
static async create(options: ModelCreateOptions = {}) {
|
|
6
|
+
const detection = await Detection.create(options)
|
|
7
|
+
const recognition = await Recognition.create(options)
|
|
8
|
+
return new Ocr({ detection, recognition })
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
#detection: Detection
|
|
12
|
+
#recognition: Recognition
|
|
13
|
+
#mutex: Promise<void> = Promise.resolve()
|
|
14
|
+
|
|
15
|
+
constructor({
|
|
16
|
+
detection,
|
|
17
|
+
recognition,
|
|
18
|
+
}: {
|
|
19
|
+
detection: Detection
|
|
20
|
+
recognition: Recognition
|
|
21
|
+
}) {
|
|
22
|
+
this.#detection = detection
|
|
23
|
+
this.#recognition = recognition
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Detect text from image
|
|
28
|
+
* Note: Calls are automatically serialized to prevent "Session already started" error
|
|
29
|
+
*/
|
|
30
|
+
async detect(image: string | ImageRawData | BrowserImageInput, options = {}) {
|
|
31
|
+
// Queue this call behind any pending operations
|
|
32
|
+
const currentMutex = this.#mutex
|
|
33
|
+
let releaseMutex: () => void
|
|
34
|
+
this.#mutex = new Promise((resolve) => {
|
|
35
|
+
releaseMutex = resolve
|
|
36
|
+
})
|
|
37
|
+
|
|
38
|
+
try {
|
|
39
|
+
// Wait for previous operation to complete
|
|
40
|
+
await currentMutex
|
|
41
|
+
// Execute detection
|
|
42
|
+
return await this.#detectInternal(image, options)
|
|
43
|
+
} finally {
|
|
44
|
+
// Release mutex for next operation
|
|
45
|
+
releaseMutex!()
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
async #detectInternal(image: string | ImageRawData | BrowserImageInput, options = {}) {
|
|
50
|
+
const { lineImages, resizedImageWidth, resizedImageHeight } = await this.#detection.run(image, options)
|
|
51
|
+
const texts = await this.#recognition.run(lineImages, options)
|
|
52
|
+
return {
|
|
53
|
+
texts,
|
|
54
|
+
resizedImageWidth,
|
|
55
|
+
resizedImageHeight,
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -7,10 +7,18 @@ type pointType = [number, number]
|
|
|
7
7
|
type BoxType = [pointType, pointType, pointType, pointType]
|
|
8
8
|
type pointsType = pointType[]
|
|
9
9
|
|
|
10
|
+
// Helper function moved outside loop for performance
|
|
11
|
+
function clip(n: number, min: number, max: number) {
|
|
12
|
+
return Math.max(min, Math.min(n, max))
|
|
13
|
+
}
|
|
14
|
+
|
|
10
15
|
export async function splitIntoLineImages(image: ImageRawType, sourceImage: ImageRawType): Promise<LineImage[]> {
|
|
11
16
|
const w = image.width
|
|
12
17
|
const h = image.height
|
|
13
18
|
const srcData = sourceImage
|
|
19
|
+
const rx = srcData.width / w
|
|
20
|
+
const ry = srcData.height / h
|
|
21
|
+
const minSize = 3
|
|
14
22
|
|
|
15
23
|
const edgeRect: { box: BoxType; image: ImageRawType }[] = []
|
|
16
24
|
|
|
@@ -23,31 +31,24 @@ export async function splitIntoLineImages(image: ImageRawType, sourceImage: Imag
|
|
|
23
31
|
cv.findContours(src, contours, hierarchy, cv.RETR_LIST, cv.CHAIN_APPROX_SIMPLE)
|
|
24
32
|
|
|
25
33
|
for (let i = 0; i < contours.size(); i++) {
|
|
26
|
-
const minSize = 3
|
|
27
34
|
const cnt = contours.get(i)
|
|
28
35
|
const { points, sside } = getMiniBoxes(cnt)
|
|
29
36
|
if (sside < minSize) continue
|
|
30
|
-
// TODO sort fast
|
|
31
37
|
|
|
32
38
|
const clipBox = unclip(points)
|
|
33
39
|
|
|
34
40
|
const boxMap = cv.matFromArray(clipBox.length / 2, 1, cv.CV_32SC2, clipBox)
|
|
35
|
-
|
|
36
41
|
const resultObj = getMiniBoxes(boxMap)
|
|
42
|
+
boxMap.delete() // Memory optimization: delete immediately after use
|
|
43
|
+
|
|
37
44
|
const box = resultObj.points
|
|
38
45
|
if (resultObj.sside < minSize + 2) {
|
|
39
46
|
continue
|
|
40
47
|
}
|
|
41
|
-
function clip(n: number, min: number, max: number) {
|
|
42
|
-
return Math.max(min, Math.min(n, max))
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
const rx = srcData.width / w
|
|
46
|
-
const ry = srcData.height / h
|
|
47
48
|
|
|
48
|
-
for (let
|
|
49
|
-
box[
|
|
50
|
-
box[
|
|
49
|
+
for (let j = 0; j < box.length; j++) {
|
|
50
|
+
box[j][0] *= rx
|
|
51
|
+
box[j][1] *= ry
|
|
51
52
|
}
|
|
52
53
|
|
|
53
54
|
const box1 = orderPointsClockwise(box)
|
|
@@ -171,29 +172,36 @@ function getRotateCropImage(imageRaw: ImageRawType, points: BoxType): ImageRawTy
|
|
|
171
172
|
const srcTri = cv.matFromArray(4, 1, cv.CV_32FC2, flatten(points))
|
|
172
173
|
const dstTri = cv.matFromArray(4, 1, cv.CV_32FC2, flatten(pts_std))
|
|
173
174
|
|
|
174
|
-
//
|
|
175
|
+
// Get perspective transform matrix
|
|
175
176
|
const M = cv.getPerspectiveTransform(srcTri, dstTri)
|
|
176
177
|
const src = cvImread(imageRaw)
|
|
177
178
|
const dst = new cv.Mat()
|
|
178
179
|
const dsize = new cv.Size(img_crop_width, img_crop_height)
|
|
179
|
-
//
|
|
180
|
+
// Apply perspective transform
|
|
180
181
|
cv.warpPerspective(src, dst, M, dsize, cv.INTER_CUBIC, cv.BORDER_REPLICATE, new cv.Scalar())
|
|
181
182
|
|
|
182
183
|
const dst_img_height = (<any>dst).matSize[0]
|
|
183
184
|
const dst_img_width = (<any>dst).matSize[1]
|
|
184
|
-
let dst_rot
|
|
185
|
-
|
|
185
|
+
let dst_rot: cv.Mat | undefined
|
|
186
|
+
let M_rot: cv.Mat | undefined
|
|
187
|
+
|
|
188
|
+
// Rotate image if needed
|
|
186
189
|
if (dst_img_height / dst_img_width >= 1.5) {
|
|
187
190
|
dst_rot = new cv.Mat()
|
|
188
191
|
const dsize_rot = new cv.Size(dst.rows, dst.cols)
|
|
189
192
|
const center = new cv.Point(dst.cols / 2, dst.cols / 2)
|
|
190
|
-
|
|
191
|
-
cv.warpAffine(dst, dst_rot,
|
|
193
|
+
M_rot = cv.getRotationMatrix2D(center, 90, 1)
|
|
194
|
+
cv.warpAffine(dst, dst_rot, M_rot, dsize_rot, cv.INTER_CUBIC, cv.BORDER_REPLICATE, new cv.Scalar())
|
|
192
195
|
}
|
|
193
196
|
|
|
197
|
+
// Memory optimization: delete all Mat objects
|
|
194
198
|
src.delete()
|
|
195
199
|
srcTri.delete()
|
|
196
200
|
dstTri.delete()
|
|
201
|
+
M.delete()
|
|
202
|
+
if (M_rot) {
|
|
203
|
+
M_rot.delete()
|
|
204
|
+
}
|
|
197
205
|
if (dst_rot) {
|
|
198
206
|
dst.delete()
|
|
199
207
|
}
|
|
@@ -292,5 +300,8 @@ function cvImread(image: ImageRawType) {
|
|
|
292
300
|
}
|
|
293
301
|
|
|
294
302
|
function cvImshow(mat: cv.Mat): ImageRawType {
|
|
295
|
-
|
|
303
|
+
// Create ImageRaw first (copies data internally), then delete mat
|
|
304
|
+
const result = new ImageRaw({ data: mat.data, width: mat.cols, height: mat.rows })
|
|
305
|
+
mat.delete() // Memory optimization: delete after data is copied
|
|
306
|
+
return result
|
|
296
307
|
}
|
package/src/models/Detection.ts
CHANGED
|
@@ -12,19 +12,26 @@ export class Detection extends ModelBase {
|
|
|
12
12
|
invariant(detectionPath, 'detectionPath is required')
|
|
13
13
|
const mergedOptions = {
|
|
14
14
|
executionProviders: ['webgpu', 'webgl', 'wasm'],
|
|
15
|
+
graphOptimizationLevel: 'all' as const,
|
|
16
|
+
enableCpuMemArena: true,
|
|
17
|
+
enableMemPattern: true,
|
|
15
18
|
...onnxOptions,
|
|
16
19
|
}
|
|
17
20
|
const model = await InferenceSession.create(detectionPath, mergedOptions)
|
|
18
21
|
return new Detection({ model, options: restOptions })
|
|
19
22
|
}
|
|
20
23
|
|
|
21
|
-
async run(
|
|
24
|
+
async run(
|
|
25
|
+
input: string | ImageRawData | BrowserImageInput,
|
|
26
|
+
{ onnxOptions = {} }: { onnxOptions?: InferenceSessionCommon.RunOptions } = {},
|
|
27
|
+
) {
|
|
22
28
|
// Use ImageRaw.from() factory method if available (browser), otherwise fallback to legacy handling
|
|
23
|
-
const image =
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
29
|
+
const image =
|
|
30
|
+
typeof (ImageRaw as any).from === 'function'
|
|
31
|
+
? await (ImageRaw as any).from(input)
|
|
32
|
+
: typeof input === 'string'
|
|
33
|
+
? await ImageRaw.open(input)
|
|
34
|
+
: new ImageRaw(input as ImageRawData)
|
|
28
35
|
|
|
29
36
|
// Resize image to multiple of 32
|
|
30
37
|
// - image width and height must be a multiple of 32
|
|
@@ -14,6 +14,9 @@ export class Recognition extends ModelBase {
|
|
|
14
14
|
invariant(dictionaryPath, 'dictionaryPath is required')
|
|
15
15
|
const mergedOptions = {
|
|
16
16
|
executionProviders: ['webgpu', 'webgl', 'wasm'],
|
|
17
|
+
graphOptimizationLevel: 'all' as const,
|
|
18
|
+
enableCpuMemArena: true,
|
|
19
|
+
enableMemPattern: true,
|
|
17
20
|
...onnxOptions,
|
|
18
21
|
}
|
|
19
22
|
const model = await InferenceSession.create(recognitionPath, mergedOptions)
|