ms-vite-plugin 1.4.17 → 1.4.18

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.
@@ -5,6 +5,8 @@ PaddleOCR 模块基于百度飞桨 PaddleOCR 技术,提供强大的光学字
5
5
  ## 功能概览
6
6
 
7
7
  - **自动加载**: 识别和查找方法会自动加载所需模型,无需先手动加载
8
+ - **模型选择**: 同一时间只保留一个 active 模型,默认 `ppocr-v6-tiny`,可通过模型 ID 手动加载 `ppocr-v6-small` 或 `ppocr-v5`
9
+ - **长边设置**: 可单独调整检测阶段最大边长,不需要重新加载已加载模型
8
10
  - **多源识别**: 支持屏幕截图、图片文件、URL 等多种输入源
9
11
  - **区域识别**: 支持指定区域的精确文字识别
10
12
  - **结构化结果**: 提供详细的文本位置、置信度和方向信息
@@ -61,98 +63,77 @@ interface OCR识别结果 {
61
63
 
62
64
  ### 模型管理
63
65
 
64
- #### 加载 V5 模型 - 可选预加载 PP-OCRv5 模型。
66
+ #### 加载模型 - 按模型 ID 手动加载内置 PaddleOCR 模型。
65
67
 
66
- 识别和查找方法会自动加载所需模型,通常不需要先调用 `加载V5模型`。只有需要提前加载或指定模型参数时才调用。
68
+ 识别和查找方法默认自动加载 `ppocr-v6-tiny`。只有需要切换模型或指定 GPU 参数时才调用 `加载模型`。PaddleOCR 同一时间只保留一个 active 模型,`加载模型` 加载成功后会替换已加载模型;检测长边请使用 `设置最大边长` 单独设置。
67
69
 
68
70
  ```typescript
69
- function 加载V5模型(最大边长?: 数字, useGpu?: 布尔值): 布尔值;
71
+ function 加载模型(模型ID: "ppocr-v6-tiny" | "ppocr-v6-small" | "ppocr-v5", useGpu?: 布尔值): 布尔值;
70
72
  ```
71
73
 
72
74
  **参数:**
73
75
 
74
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
75
- | ---------- | ------ | -------- | ------ | -------------------------------- |
76
- | `最大边长` | 数字 | | 640 | 输入图像的最大边长,默认值为 640 |
77
- | `useGpu` | 布尔值 | 否 | false | 是否启用 GPU 加速 |
76
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
77
+ | -------- | ------------------------------------------------ | -------- | ------ | ------------- |
78
+ | `模型ID` | `"ppocr-v6-tiny" \| "ppocr-v6-small" \| "ppocr-v5"` | | | 内置模型 ID |
79
+ | `useGpu` | 布尔值 | 否 | false | 是否启用 GPU 加速 |
78
80
 
79
81
  **返回值:**
80
82
 
81
- | 类型 | 描述 |
82
- | ------ | --------------------------------------------------- |
83
- | 布尔值 | 加载成功或模型已加载返回 `true`,否则返回 `false` |
83
+ | 类型 | 描述 |
84
+ | ------ | ----------------------------------------------------------- |
85
+ | 布尔值 | 加载成功或目标模型已加载返回 `true`,模型 ID 不支持或加载失败返回 `false` |
84
86
 
85
- ### 文字识别
87
+ **示例:**
88
+
89
+ ```javascript
90
+ // 手动加载 PP-OCRv6 tiny 模型
91
+ $PaddleOCR.加载模型("ppocr-v6-tiny", false);
92
+
93
+ // 手动加载 PP-OCRv6 small 模型
94
+ const 加载成功 = $PaddleOCR.加载模型("ppocr-v6-small", false);
95
+ $打印信息日志(`PP-OCRv6 small 加载结果: ${加载成功}`);
96
+
97
+ // 手动切换到 PP-OCRv5 模型
98
+ $PaddleOCR.加载模型("ppocr-v5", false);
99
+ ```
86
100
 
87
- #### 识别 - 执行 OCR 文字识别,支持多种输入源和指定识别区域。
101
+ #### 设置最大边长 - 单独设置检测阶段输入最大边长。
102
+
103
+ 该方法只调整后续检测输入缩放,不会重新加载已加载的 PP-OCRv5/v6 模型。如果当前尚未加载模型,后续识别或查找触发默认 PP-OCRv6 tiny 自动加载时会沿用该设置。
88
104
 
89
105
  ```typescript
90
- function 识别(
91
- 输入源: 字符串,
92
- 图片边界框左上角x坐标?: 数字,
93
- 图片边界框左上角y坐标?: 数字,
94
- 图片边界框右下角x坐标?: 数字,
95
- 图片边界框右下角y坐标?: 数字,
96
- 置信度阈值?: 数字,
97
- ): 数组<OCR识别结果>;
106
+ function 设置最大边长(最大边长?: 数字): 布尔值;
98
107
  ```
99
108
 
100
109
  **参数:**
101
110
 
102
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
103
- | ----------------------- | ------ | -------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
104
- | `输入源` | string | | | 输入源,支持以下类型:<br>- `"screen"` - 当前屏幕截图<br>- `string` - 图片文件路径或 URL<br>- `imageId` - 图片 ID(通过 image 模块获取) |
105
- | `图片边界框左上角x坐标` | number | 否 | 0 | 识别区域左上角 x 坐标 |
106
- | `图片边界框左上角y坐标` | number | 否 | 0 | 识别区域左上角 y 坐标 |
107
- | `图片边界框右下角x坐标` | number | 否 | 0 | 识别区域右下角 x 坐标 |
108
- | `图片边界框右下角y坐标` | number | 否 | 0 | 识别区域右下角 y 坐标 |
109
- | `置信度阈值` | number | 否 | 0.6 | 置信度阈值,默认值为 0.6 |
111
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
112
+ | ---------- | ---- | -------- | ------ | ----------------------------------------- |
113
+ | `最大边长` | 数字 | | 640 | 输入图像的最大边长;传 0 或负数时使用 640 |
110
114
 
111
115
  **返回值:**
112
116
 
113
- | 类型 | 描述 |
114
- | ------------------- | ------------------------------------------------------------------------------------ |
115
- | `数组<OCR识别结果>` | 识别结果数组,每个元素为 OCR 识别结果 对象,包含文本内容、位置信息和置信度等详细数据 |
117
+ | 类型 | 描述 |
118
+ | ------ | -------------------- |
119
+ | 布尔值 | 设置成功返回 `true` |
116
120
 
117
121
  **示例:**
118
122
 
119
123
  ```javascript
120
- // 识别整个屏幕
121
- const fullScreenResults = $PaddleOCR.识别("screen", 0, 0, 0, 0);
122
- $打印信息日志(`识别到 ${fullScreenResults.length} 个文本区域`);
123
- fullScreenResults.forEach((result, index) => {
124
- $打印信息日志(`文本 ${index + 1}: ${JSON.stringify(result)}`);
125
- });
126
-
127
- // 识别屏幕指定区域
128
- const regionResults = $PaddleOCR.识别("screen", 100, 100, 500, 300);
129
- $打印信息日志(`指定区域识别结果: ${JSON.stringify(regionResults)}`);
130
-
131
- // 识别图片文件
132
- const imageResults = $PaddleOCR.识别("/path/to/image.png", 0, 0, 800, 600);
133
- if (imageResults.length > 0) {
134
- $打印信息日志("图片文字识别成功");
135
- imageResults.forEach((result) => {
136
- $打印信息日志(`识别文字: ${JSON.stringify(result)}`);
137
- });
138
- } else {
139
- $打印信息日志("图片中未识别到文字");
140
- }
124
+ // 只更新检测长边,不重新加载模型
125
+ $PaddleOCR.设置最大边长(960);
141
126
 
142
- // 识别网络图片
143
- const urlResults = $PaddleOCR.识别(
144
- "https://example.com/image.jpg",
145
- 0,
146
- 0,
147
- 1000,
148
- 800,
149
- );
150
- $打印信息日志(`网络图片识别结果: ${JSON.stringify(urlResults)}`);
127
+ // 后续识别会使用新的检测长边
128
+ const 识别结果数组 = $PaddleOCR.识别绝对坐标("screen", 0, 0, 0, 0);
129
+ $打印信息日志(`识别数量: ${识别结果数组.length}`);
151
130
  ```
152
131
 
132
+ ### 文字识别
133
+
153
134
  #### 识别绝对坐标 - 执行 OCR 识别,并将结果坐标映射为原图/全屏绝对坐标。
154
135
 
155
- 参数与 `识别` 相同。传入裁剪区域时,返回坐标可直接用于全屏点击。
136
+ 传入裁剪区域时,返回坐标会映射回原图或全屏坐标,可直接用于点击。
156
137
 
157
138
  ```typescript
158
139
  function 识别绝对坐标(
@@ -165,88 +146,35 @@ function 识别绝对坐标(
165
146
  ): 数组<OCR识别结果>;
166
147
  ```
167
148
 
168
- **示例:**
169
-
170
- ```javascript
171
- const 绝对坐标结果 = $PaddleOCR.识别绝对坐标("screen", 100, 100, 500, 300);
172
- if (绝对坐标结果.length > 0) {
173
- $动作.点击(绝对坐标结果[0].centerX, 绝对坐标结果[0].centerY);
174
- }
175
- ```
176
-
177
- #### 查找文本 - 在识别结果中查找目标文本并返回对应子串坐标。
178
-
179
- ```typescript
180
- function 查找文本(
181
- 输入源: 字符串,
182
- 目标文本数组: 数组<字符串>,
183
- 图片边界框左上角x坐标?: 数字,
184
- 图片边界框左上角y坐标?: 数字,
185
- 图片边界框右下角x坐标?: 数字,
186
- 图片边界框右下角y坐标?: 数字,
187
- 置信度阈值?: 数字,
188
- 是否完整匹配?: 布尔值,
189
- ): 数组<OCR识别结果>;
190
- ```
191
-
192
149
  **参数:**
193
150
 
194
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
195
- | ----------------------- | -------- | -------- | ------ | ---------------------------------------------------------------------------------------------------------------------------------------- |
196
- | `输入源` | string | 是 | | 输入源,支持以下类型:<br>- `"screen"` - 当前屏幕截图<br>- `string` - 图片文件路径或 URL<br>- `imageId` - 图片 ID(通过 image 模块获取) |
197
- | `目标文本数组` | string[] | | | 需要查找的目标文本数组,例如 `["你好", "确定"]` |
198
- | `图片边界框左上角x坐标` | number | 否 | 0 | 查找区域左上角 x 坐标 |
199
- | `图片边界框左上角y坐标` | number | 否 | 0 | 查找区域左上角 y 坐标 |
200
- | `图片边界框右下角x坐标` | number | 否 | 0 | 查找区域右下角 x 坐标 |
201
- | `图片边界框右下角y坐标` | number | 否 | 0 | 查找区域右下角 y 坐标 |
202
- | `置信度阈值` | number | 否 | 0.6 | 置信度阈值,默认值为 0.6 |
203
- | `是否完整匹配` | boolean | 否 | false | 是否完整匹配;`false` 表示包含匹配,`true` 表示整条 OCR 识别结果文本必须等于目标文本 |
151
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
152
+ | -------------------------- | ------ | -------- | ------ | ----------------------------------------------------------- |
153
+ | `输入源` | 字符串 | 是 | | 输入源,支持 imageId、URL 字符串、文件路径或 `"screen"` |
154
+ | `图片边界框左上角x坐标` | 数字 | | 0 | 裁剪区域左上角 x 坐标;全屏识别传 0 |
155
+ | `图片边界框左上角y坐标` | 数字 | 否 | 0 | 裁剪区域左上角 y 坐标;全屏识别传 0 |
156
+ | `图片边界框右下角x坐标` | 数字 | 否 | 0 | 裁剪区域右下角 x 坐标;全屏识别传 0 |
157
+ | `图片边界框右下角y坐标` | 数字 | 否 | 0 | 裁剪区域右下角 y 坐标;全屏识别传 0 |
158
+ | `置信度阈值` | 数字 | 否 | 0.6 | 置信度阈值,低于该值的识别结果会被过滤 |
204
159
 
205
160
  **返回值:**
206
161
 
207
- | 类型 | 描述 |
208
- | ------------------- | ----------------------------------------------------------------------------------------------------------- |
209
- | `数组<OCR识别结果>` | 匹配结果数组。每个元素为命中的文本片段坐标信息,`text` 字段为命中的目标文本,其他字段包含位置和置信度等信息 |
162
+ | 类型 | 描述 |
163
+ | ----------------- | ------------------------------------------------ |
164
+ | 数组<OCR识别结果> | 识别结果数组,坐标为原图或全屏绝对坐标 |
210
165
 
211
166
  **示例:**
212
167
 
213
168
  ```javascript
214
- // 在整个屏幕中查找目标文本
215
- const 命中结果 = $PaddleOCR.查找文本(
216
- "screen",
217
- ["登录", "确定"],
218
- 0,
219
- 0,
220
- 0,
221
- 0,
222
- 0.6,
223
- false,
224
- );
225
- if (命中结果.length > 0) {
226
- 命中结果.forEach((item, index) => {
227
- $打印信息日志(
228
- `命中 ${index + 1}: ${item.text}, 中心点: (${item.centerX}, ${item.centerY})`,
229
- );
230
- });
231
- } else {
232
- $打印信息日志("未命中目标文本");
169
+ const 绝对坐标结果 = $PaddleOCR.识别绝对坐标("screen", 100, 100, 500, 300);
170
+ if (绝对坐标结果.length > 0) {
171
+ $动作.点击(绝对坐标结果[0].centerX, 绝对坐标结果[0].centerY);
233
172
  }
234
-
235
- // 在指定区域查找目标文本
236
- const 区域命中结果 = $PaddleOCR.查找文本(
237
- "screen",
238
- ["下一步"],
239
- 100,
240
- 100,
241
- 500,
242
- 400,
243
- );
244
- $打印信息日志(`区域命中数量: ${区域命中结果.length}`);
245
173
  ```
246
174
 
247
175
  #### 查找文本绝对坐标 - 查找目标文本,并将结果坐标映射为原图/全屏绝对坐标。
248
176
 
249
- 参数与 `查找文本` 相同。传入裁剪区域时,返回坐标可直接用于全屏点击。
177
+ 传入裁剪区域时,返回坐标会映射回原图或全屏坐标,可直接用于点击。
250
178
 
251
179
  ```typescript
252
180
  function 查找文本绝对坐标(
@@ -261,6 +189,25 @@ function 查找文本绝对坐标(
261
189
  ): 数组<OCR识别结果>;
262
190
  ```
263
191
 
192
+ **参数:**
193
+
194
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
195
+ | -------------------------- | -------------- | -------- | ------ | ------------------------------------------------------------------------ |
196
+ | `输入源` | 字符串 | 是 | | 输入源,支持 imageId、URL 字符串、文件路径或 `"screen"` |
197
+ | `目标文本数组` | 数组<字符串> | 是 | | 目标文本数组,例如 `["你好", "确定"]` |
198
+ | `图片边界框左上角x坐标` | 数字 | 否 | 0 | 裁剪区域左上角 x 坐标;全屏识别传 0 |
199
+ | `图片边界框左上角y坐标` | 数字 | 否 | 0 | 裁剪区域左上角 y 坐标;全屏识别传 0 |
200
+ | `图片边界框右下角x坐标` | 数字 | 否 | 0 | 裁剪区域右下角 x 坐标;全屏识别传 0 |
201
+ | `图片边界框右下角y坐标` | 数字 | 否 | 0 | 裁剪区域右下角 y 坐标;全屏识别传 0 |
202
+ | `置信度阈值` | 数字 | 否 | 0.6 | 置信度阈值,低于该值的识别结果会被过滤 |
203
+ | `是否完整匹配` | 布尔值 | 否 | false | 是否完整匹配;`false` 表示包含匹配,`true` 要求整条 OCR 文本等于目标文本 |
204
+
205
+ **返回值:**
206
+
207
+ | 类型 | 描述 |
208
+ | ----------------- | ---------------------------------------------------------- |
209
+ | 数组<OCR识别结果> | 匹配到的子串结果数组,坐标为原图或全屏绝对坐标 |
210
+
264
211
  **示例:**
265
212
 
266
213
  ```javascript
@@ -102,59 +102,20 @@ const 模型ID = $YOLO.加载模型(
102
102
  );
103
103
  ```
104
104
 
105
- #### 加载 YOLOv11 模型 - 加载 YOLOv11 模型(兼容 yolov8 模型),这是使用目标检测功能的前提。
106
-
107
- ```typescript
108
- function 加载YOLOv11模型(
109
- ncnn模型的param文件路径: 字符串,
110
- ncnn模型的bin文件路径: 字符串,
111
- 标签数量?: 数字,
112
- useGpu?: 布尔值
113
- ): 字符串 | null;
114
- ```
115
-
116
- **参数:**
117
-
118
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
119
- | ------------------------- | ------ | -------- | ------ | ------------------------------------------- |
120
- | `ncnn模型的param文件路径` | 字符串 | 是 | | NCNN 模型的 param 文件绝对路径 |
121
- | `ncnn模型的bin文件路径` | 字符串 | 是 | | NCNN 模型的 bin 文件绝对路径 |
122
- | `标签数量` | 数字 | 否 | 0 | 模型的标签数量;传 `0` 或省略时根据模型输出自动推断,显式传入但不匹配时检测返回空数组 |
123
- | `useGpu` | 布尔值 | 否 | false | 是否启用 GPU 加速 |
124
-
125
- **返回值:**
126
-
127
- | 类型 | 描述 |
128
- | ---------------- | ----------------------------------------- |
129
- | `字符串 \| null` | 加载成功返回模型 ID 字符串,失败返回 null |
130
-
131
- **示例:**
132
-
133
- ```javascript
134
- // 加载 YOLOv11 模型
135
- // 模型放在res目录
136
- const 模型ID = $YOLO.加载YOLOv11模型(
137
- "yolo11n_ncnn_model/model.ncnn.param",
138
- "yolo11n_ncnn_model/model.ncnn.bin",
139
- 0, // 自动根据模型输出推断类别数量
140
- false
141
- );
142
-
143
- if (模型ID) {
144
- $打印信息日志(`模型加载成功,ID: ${模型ID}`);
145
- } else {
146
- $打印错误日志("模型加载失败,请检查文件路径和格式");
147
- }
148
- ```
149
-
150
105
  ### 目标检测
151
106
 
152
- #### detect - 执行目标检测,识别图像中的物体并返回检测结果。
107
+ #### 目标检测绝对坐标 - 对指定区域执行目标检测,并将结果坐标映射为原图/全屏绝对坐标。
108
+
109
+ 执行目标检测,识别图像中的物体并返回检测结果。传入裁剪区域时,结果坐标会映射回原图或全屏坐标,可直接用于点击;全屏检测时 `x/y/ex/ey` 传 `0`。
153
110
 
154
111
  ```typescript
155
- function 目标检测(
112
+ function 目标检测绝对坐标(
156
113
  模型ID: 字符串,
157
114
  图片ID: 字符串,
115
+ 裁剪区域左上角x坐标?: 数字,
116
+ 裁剪区域左上角y坐标?: 数字,
117
+ 裁剪区域右下角x坐标?: 数字,
118
+ 裁剪区域右下角y坐标?: 数字,
158
119
  目标检测输入大小?: 数字,
159
120
  置信度?: 数字,
160
121
  重叠阈值?: 数字
@@ -163,29 +124,34 @@ function 目标检测(
163
124
 
164
125
  **参数:**
165
126
 
166
- | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
167
- | ------------------ | ------ | -------- | ------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
168
- | `模型ID` | 字符串 | 是 | | 模型 ID(通过 loadV11 获取) |
169
- | `图片ID` | 字符串 | 是 | | 图像输入源:<br>- `"screen"` - 使用当前屏幕截图<br>- `string` - 图片文件路径或 HTTP 图片地址<br>- `imageId` - 图片 ID(通过 image 模块获取) |
170
- | `目标检测输入大小` | 数字 | 否 | 640 | 图像缩放的检测大小,通常为 640(与模型训练时一致) |
171
- | `置信度` | 数字 | 否 | 0.4 | 置信度阈值,默认 0.4,低于此值的检测结果会被过滤 |
172
-
173
- - `重叠阈值` - 非极大值抑制阈值,默认 0.5,用于去除重叠检测框
127
+ | 参数名 | 类型 | 是否必填 | 默认值 | 描述 |
128
+ | ------------------------ | ------ | -------- | ------ | ---------------------------------------------------------- |
129
+ | `模型ID` | 字符串 | 是 | | 模型 ID,通过 `加载模型` 获取 |
130
+ | `图片ID` | 字符串 | 是 | | 图像输入源,支持 `"screen"`、图片文件路径、HTTP 图片地址或 imageId |
131
+ | `裁剪区域左上角x坐标` | 数字 | 否 | 0 | 裁剪区域左上角 x 坐标;全屏检测传 0 |
132
+ | `裁剪区域左上角y坐标` | 数字 | 否 | 0 | 裁剪区域左上角 y 坐标;全屏检测传 0 |
133
+ | `裁剪区域右下角x坐标` | 数字 | 否 | 0 | 裁剪区域右下角 x 坐标;全屏检测传 0 |
134
+ | `裁剪区域右下角y坐标` | 数字 | 否 | 0 | 裁剪区域右下角 y 坐标;全屏检测传 0 |
135
+ | `目标检测输入大小` | 数字 | 否 | 640 | 模型推理输入边长,通常为 640(与模型训练时一致) |
136
+ | `置信度` | 数字 | 否 | 0.4 | 置信度阈值,低于此值的检测结果会被过滤 |
137
+ | `重叠阈值` | 数字 | 否 | 0.5 | 非极大值抑制阈值,用于去除重叠检测框 |
174
138
 
175
139
  **返回值:**
176
140
 
177
141
  | 类型 | 描述 |
178
142
  | -------------------- | ---------------------------------------------- |
179
- | `数组<Yolo检测结果>` | 检测结果数组,每个元素包含一个检测到的物体信息 |
143
+ | `数组<Yolo检测结果>` | 检测结果数组,坐标为原图或全屏绝对坐标 |
180
144
 
181
145
  **示例:**
182
146
 
183
147
  ```javascript
184
148
  // 首先加载模型
185
- const 模型ID = $YOLO.加载YOLOv11模型(
149
+ const 模型ID = $YOLO.加载模型(
186
150
  "/yolo11n_ncnn_model/model.ncnn.param",
187
151
  "/yolo11n_ncnn_model/model.ncnn.bin",
188
- 0
152
+ 0,
153
+ 11,
154
+ false
189
155
  );
190
156
 
191
157
  if (!模型ID) {
@@ -194,9 +160,13 @@ if (!模型ID) {
194
160
  }
195
161
 
196
162
  // 检测当前屏幕
197
- const screenResults = $YOLO.目标检测(
163
+ const screenResults = $YOLO.目标检测绝对坐标(
198
164
  模型ID,
199
165
  "screen", // 使用当前屏幕
166
+ 0,
167
+ 0,
168
+ 0,
169
+ 0,
200
170
  640, // 标准检测尺寸
201
171
  0.4, // 置信度阈值
202
172
  0.5 // NMS 阈值
@@ -217,10 +187,14 @@ screenResults.forEach((result, index) => {
217
187
  $打印信息日志(` 尺寸: ${result.width} x ${result.height}`);
218
188
  });
219
189
 
220
- // 检测图片文件
221
- const imageResults = $YOLO.目标检测(
190
+ // 检测图片文件的指定区域
191
+ const imageResults = $YOLO.目标检测绝对坐标(
222
192
  模型ID,
223
193
  "/path/to/test_image.jpg",
194
+ 100,
195
+ 100,
196
+ 500,
197
+ 400,
224
198
  640,
225
199
  0.3, // 降低置信度阈值以检测更多物体
226
200
  0.5
@@ -238,9 +212,13 @@ if (imageResults.length > 0) {
238
212
  }
239
213
 
240
214
  // 检测网络图片
241
- const urlResults = $YOLO.目标检测(
215
+ const urlResults = $YOLO.目标检测绝对坐标(
242
216
  模型ID,
243
217
  "https://example.com/test_image.jpg",
218
+ 0,
219
+ 0,
220
+ 0,
221
+ 0,
244
222
  640,
245
223
  0.5, // 提高置信度阈值以获得更可靠的结果
246
224
  0.4
@@ -249,9 +227,13 @@ const urlResults = $YOLO.目标检测(
249
227
  $打印信息日志(`网络图片检测结果: ${urlResults.length} 个物体`);
250
228
 
251
229
  // 高精度检测(降低阈值)
252
- const highPrecisionResults = $YOLO.目标检测(
230
+ const highPrecisionResults = $YOLO.目标检测绝对坐标(
253
231
  模型ID,
254
- null,
232
+ "screen",
233
+ 0,
234
+ 0,
235
+ 0,
236
+ 0,
255
237
  640,
256
238
  0.2, // 更低的置信度阈值
257
239
  0.3 // 更低的 NMS 阈值
@@ -260,9 +242,13 @@ const highPrecisionResults = $YOLO.目标检测(
260
242
  $打印信息日志(`高精度检测结果: ${highPrecisionResults.length} 个物体`);
261
243
 
262
244
  // 快速检测(提高阈值)
263
- const fastResults = $YOLO.目标检测(
245
+ const fastResults = $YOLO.目标检测绝对坐标(
264
246
  模型ID,
265
- null,
247
+ "screen",
248
+ 0,
249
+ 0,
250
+ 0,
251
+ 0,
266
252
  416, // 更小的检测尺寸以提高速度
267
253
  0.6, // 更高的置信度阈值
268
254
  0.6 // 更高的 NMS 阈值
@@ -271,41 +257,6 @@ const fastResults = $YOLO.目标检测(
271
257
  $打印信息日志(`快速检测结果: ${fastResults.length} 个物体`);
272
258
  ```
273
259
 
274
- #### 目标检测绝对坐标 - 对指定区域执行目标检测,并将结果坐标映射为原图/全屏绝对坐标。
275
-
276
- ```typescript
277
- function 目标检测绝对坐标(
278
- 模型ID: 字符串,
279
- 图片ID: 字符串,
280
- 裁剪区域左上角x坐标?: 数字,
281
- 裁剪区域左上角y坐标?: 数字,
282
- 裁剪区域右下角x坐标?: 数字,
283
- 裁剪区域右下角y坐标?: 数字,
284
- 目标检测输入大小?: 数字,
285
- 置信度?: 数字,
286
- 重叠阈值?: 数字
287
- ): 数组<Yolo检测结果>;
288
- ```
289
-
290
- **示例:**
291
-
292
- ```javascript
293
- const 绝对坐标结果 = $YOLO.目标检测绝对坐标(
294
- 模型ID,
295
- "screen",
296
- 100,
297
- 100,
298
- 500,
299
- 400,
300
- 640,
301
- 0.4,
302
- 0.5
303
- );
304
- if (绝对坐标结果.length > 0) {
305
- $点击(绝对坐标结果[0].centerX, 绝对坐标结果[0].centerY);
306
- }
307
- ```
308
-
309
260
  ### 资源管理
310
261
 
311
262
  #### 释放模型资源