@areb0s/ocr-common 1.0.1 → 1.0.3

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.
@@ -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
- function clip(n, min, max) {
29
- return Math.max(min, Math.min(n, max));
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
- const M = cv.getRotationMatrix2D(center, 90, 1);
157
- cv.warpAffine(dst, dst_rot, M, dsize_rot, cv.INTER_CUBIC, cv.BORDER_REPLICATE, new cv.Scalar());
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
- return new ImageRaw({ data: mat.data, width: mat.cols, height: mat.rows });
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 === "string"
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":"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"}
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);
@@ -40,14 +43,14 @@ export class Recognition extends ModelBase {
40
43
  });
41
44
  return modelData;
42
45
  }));
43
- // Optimized: run all model inferences in parallel
46
+ // Note: ONNX Runtime does not support concurrent run() calls on the same session
47
+ // Must run sequentially to avoid "Session already started" error
44
48
  // console.time('Recognition')
45
- const outputs = await Promise.all(modelDatas.map((modelData) => this.runModel({ modelData, onnxOptions })));
46
- // Decode all outputs (maintains order)
47
49
  const allLines = [];
48
- for (let i = outputs.length - 1; i >= 0; i--) {
49
- const lines = this.decodeText(outputs[i]);
50
- allLines.push(...lines);
50
+ for (const modelData of modelDatas) {
51
+ const output = await this.runModel({ modelData, onnxOptions });
52
+ const lines = this.decodeText(output);
53
+ allLines.unshift(...lines);
51
54
  }
52
55
  // console.timeEnd('Recognition')
53
56
  const result = calculateBox({ lines: allLines, lineImages });
@@ -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":"AACA,OAAO,SAAS,MAAM,gBAAgB,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE5E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,MAAM,OAAO,WAAY,SAAQ,SAAS;IACxC,WAAW,CAAY;IAEvB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,WAAW,GAAG,EAAE,EAAE,GAAG,WAAW,EAAsB;QAClF,MAAM,eAAe,GAAG,MAAM,EAAE,eAAe,IAAI,aAAa,EAAE,eAAe,CAAA;QACjF,SAAS,CAAC,eAAe,EAAE,6BAA6B,CAAC,CAAA;QACzD,MAAM,cAAc,GAAG,MAAM,EAAE,cAAc,IAAI,aAAa,EAAE,cAAc,CAAA;QAC9E,SAAS,CAAC,cAAc,EAAE,4BAA4B,CAAC,CAAA;QACvD,MAAM,aAAa,GAAG;YACpB,kBAAkB,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAC;YAC/C,sBAAsB,EAAE,KAAc;YACtC,iBAAiB,EAAE,IAAI;YACvB,gBAAgB,EAAE,IAAI;YACtB,GAAG,WAAW;SACf,CAAA;QACD,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,CAAA;QAC3E,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC3D,MAAM,UAAU,GAAG,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAA;QACvD,OAAO,IAAI,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,UAAU,CAAC,CAAA;IACrE,CAAC;IAED,YAAY,OAAgC,EAAE,UAAsB;QAClE,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,WAAW,GAAG,UAAU,CAAA;IAC/B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,UAAuB,EAAE,EAAE,WAAW,GAAG,EAAE,KAA0D,EAAE;QAC/G,MAAM,UAAU,GAAG,MAAM,OAAO,CAAC,GAAG;QAClC,mCAAmC;QACnC,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE;YACxC,8BAA8B;YAC9B,uBAAuB;YACvB,yDAAyD;YACzD,MAAM,KAAK,GAAG,MAAO,SAAS,CAAC,KAAa,CAAC,MAAM,CAAC;gBAClD,MAAM,EAAE,EAAE;aACX,CAAC,CAAA;YACF,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,aAAa,KAAK,MAAM,CAAC,CAAA;YAC1D,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,aAAa,KAAK,cAAc,CAAC,CAAA;YAExD,qCAAqC;YACrC,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;YACzC,yBAAyB;YACzB,wBAAwB;aACzB,CAAC,CAAA;YACF,OAAO,SAAS,CAAA;QAClB,CAAC,CAAC,CACH,CAAA;QAED,iFAAiF;QACjF,iEAAiE;QACjE,8BAA8B;QAC9B,MAAM,QAAQ,GAAW,EAAE,CAAA;QAC3B,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC,CAAA;YAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YACrC,QAAQ,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAA;QAC5B,CAAC;QACD,iCAAiC;QACjC,MAAM,MAAM,GAAG,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAA;QAC5D,OAAO,MAAM,CAAA;IACf,CAAC;IAED,UAAU,CAAC,MAAc;QACvB,MAAM,IAAI,GAAG,MAAM,CAAA;QACnB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC5B,MAAM,IAAI,GAAW,EAAE,CAAA;QACvB,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,MAAM,QAAQ,GAAa,EAAE,CAAA;YAC7B,MAAM,SAAS,GAAa,EAAE,CAAA;YAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC;gBAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAiB,CAAA;gBAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAA;gBAChF,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;gBACrC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBACtB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACvB,CAAC;YACD,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAA;YAC9D,EAAE,EAAE,CAAA;QACN,CAAC;QACD,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAED,SAAS,MAAM,CAAC,UAAoB,EAAE,SAAmB,EAAE,QAAkB,EAAE,iBAA0B;IACvG,MAAM,aAAa,GAAG,CAAC,CAAC,CAAC,CAAA;IACzB,MAAM,QAAQ,GAAG,EAAE,CAAA;IACnB,MAAM,QAAQ,GAAG,EAAE,CAAA;IACnB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;QAChD,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,aAAa,EAAE,CAAC;YACpC,SAAQ;QACV,CAAC;QACD,IAAI,iBAAiB,EAAE,CAAC;YACtB,IAAI,GAAG,GAAG,CAAC,IAAI,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrD,SAAQ;YACV,CAAC;QACH,CAAC;QACD,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;QAC9B,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAClB,CAAC;IACH,CAAC;IACD,IAAI,IAAI,GAAG,EAAE,CAAA;IACb,IAAI,IAAI,GAAG,CAAC,CAAA;IACZ,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;QACxB,IAAI,GAAG,GAAG,CAAC,CAAA;QACX,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACxB,GAAG,IAAI,IAAI,CAAA;QACb,CAAC,CAAC,CAAA;QACF,IAAI,GAAG,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAA;IAC9B,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;AACvB,CAAC;AAED,SAAS,YAAY,CAAC,EACpB,KAAK,EACL,UAAU,GAIX;IACC,IAAI,QAAQ,GAAG,KAAK,CAAA;IACpB,MAAM,GAAG,GAAG,UAAU,CAAA;IACtB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;QAClD,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACX,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACb,CAAC;QACD,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IACxB,CAAC;IACD,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAA;IAChD,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC5B,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,OAAO,CAAC,KAAa;IAC5B,MAAM,WAAW,GAAW,EAAE,CAAA;IAC9B,MAAM,OAAO,GAAyB,IAAI,GAAG,EAAE,CAAA;IAC/C,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAQ,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,CAAA;QACjC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;IACjC,CAAC;IAED,MAAM,YAAY,GAAG,6BAA6B,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;IAEvE,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,EAAE,CAAA;QAChB,IAAI,IAAI,GAAG,CAAC,CAAA;QACZ,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YAC9B,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACxB,SAAQ;YACV,CAAC;YACD,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAA;YACzB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACrB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAA;QACnB,CAAC;QACD,IAAI,SAAS,GAAG,SAAS,CAAA;QACzB,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAChC,SAAS,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACpF,CAAC;QACD,WAAW,CAAC,IAAI,CAAC;YACf,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC,MAAM;YACzB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;YACrB,GAAG,EAAE,SAAS;SACf,CAAC,CAAA;IACJ,CAAC;IACD,OAAO,WAAW,CAAA;AACpB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAgB;IAC9C,IAAI,WAAW,GAAG,CAAC,CAAA;IACnB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,AAAD,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAA;QAC9B,MAAM,MAAM,GAAG,EAAE,GAAG,EAAE,CAAA;QACtB,WAAW,IAAI,MAAM,CAAA;IACvB,CAAC;IACD,OAAO,WAAW,GAAG,KAAK,CAAC,MAAM,CAAA;AACnC,CAAC;AAED,SAAS,6BAA6B,CAAC,KAAgB;IACrD,MAAM,aAAa,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAA;IACnD,MAAM,MAAM,GAAgB,EAAE,CAAA;IAC9B,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,AAAD,EAAG,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,CAAA;QAC9B,MAAM,OAAO,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAA;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9B,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,AAAD,EAAG,CAAC,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YACzC,MAAM,YAAY,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;YAC5C,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,OAAO,CAAC,GAAG,aAAa,GAAG,CAAC,CAAA;QAC7D,CAAC,CAAC,CAAA;QACF,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAClB,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACf,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACf,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAA;QACxB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAE9C,OAAO,MAAM,CAAA;AACf,CAAC"}
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.1",
4
+ "version": "1.0.3",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -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 i = 0; i < box.length; i++) {
49
- box[i][0] *= rx
50
- box[i][1] *= ry
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
- const M = cv.getRotationMatrix2D(center, 90, 1)
191
- cv.warpAffine(dst, dst_rot, M, dsize_rot, cv.INTER_CUBIC, cv.BORDER_REPLICATE, new cv.Scalar())
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
- return new ImageRaw({ data: mat.data, width: mat.cols, height: mat.rows })
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
  }
@@ -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(input: string | ImageRawData | BrowserImageInput, { onnxOptions = {} }: { onnxOptions?: InferenceSessionCommon.RunOptions } = {}) {
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 = typeof (ImageRaw as any).from === 'function'
24
- ? await (ImageRaw as any).from(input)
25
- : typeof input === "string"
26
- ? await ImageRaw.open(input)
27
- : new ImageRaw(input as ImageRawData)
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)
@@ -49,17 +52,14 @@ export class Recognition extends ModelBase {
49
52
  }),
50
53
  )
51
54
 
52
- // Optimized: run all model inferences in parallel
55
+ // Note: ONNX Runtime does not support concurrent run() calls on the same session
56
+ // Must run sequentially to avoid "Session already started" error
53
57
  // console.time('Recognition')
54
- const outputs = await Promise.all(
55
- modelDatas.map((modelData) => this.runModel({ modelData, onnxOptions }))
56
- )
57
-
58
- // Decode all outputs (maintains order)
59
58
  const allLines: Line[] = []
60
- for (let i = outputs.length - 1; i >= 0; i--) {
61
- const lines = this.decodeText(outputs[i])
62
- allLines.push(...lines)
59
+ for (const modelData of modelDatas) {
60
+ const output = await this.runModel({ modelData, onnxOptions })
61
+ const lines = this.decodeText(output)
62
+ allLines.unshift(...lines)
63
63
  }
64
64
  // console.timeEnd('Recognition')
65
65
  const result = calculateBox({ lines: allLines, lineImages })