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.
- package/docs/AGENTS.md +1 -1
- package/docs/api/appleocr.md +46 -164
- package/docs/api/image.md +16 -84
- package/docs/api/media.md +6 -7
- package/docs/api/paddleocr.md +77 -123
- package/docs/api/yolo.md +52 -96
- package/docs/apicn/appleocr.md +47 -169
- package/docs/apicn/image.md +15 -81
- package/docs/apicn/media.md +6 -7
- package/docs/apicn/paddleocr.md +77 -130
- package/docs/apicn/yolo.md +52 -101
- package/docs/apipython/appleocr.md +45 -155
- package/docs/apipython/image.md +17 -77
- package/docs/apipython/media.md +7 -8
- package/docs/apipython/paddleocr.md +78 -104
- package/docs/apipython/yolo.md +36 -85
- package/docs/mcp-agent-description.md +1 -1
- package/package.json +1 -1
package/docs/apicn/paddleocr.md
CHANGED
|
@@ -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
|
-
####
|
|
66
|
+
#### 加载模型 - 按模型 ID 手动加载内置 PaddleOCR 模型。
|
|
65
67
|
|
|
66
|
-
|
|
68
|
+
识别和查找方法默认自动加载 `ppocr-v6-tiny`。只有需要切换模型或指定 GPU 参数时才调用 `加载模型`。PaddleOCR 同一时间只保留一个 active 模型,`加载模型` 加载成功后会替换已加载模型;检测长边请使用 `设置最大边长` 单独设置。
|
|
67
69
|
|
|
68
70
|
```typescript
|
|
69
|
-
function
|
|
71
|
+
function 加载模型(模型ID: "ppocr-v6-tiny" | "ppocr-v6-small" | "ppocr-v5", useGpu?: 布尔值): 布尔值;
|
|
70
72
|
```
|
|
71
73
|
|
|
72
74
|
**参数:**
|
|
73
75
|
|
|
74
|
-
| 参数名
|
|
75
|
-
|
|
|
76
|
-
|
|
|
77
|
-
| `useGpu`
|
|
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
|
-
| 布尔值 |
|
|
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
|
-
####
|
|
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
|
-
|
|
|
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
|
-
|
|
|
117
|
+
| 类型 | 描述 |
|
|
118
|
+
| ------ | -------------------- |
|
|
119
|
+
| 布尔值 | 设置成功返回 `true` |
|
|
116
120
|
|
|
117
121
|
**示例:**
|
|
118
122
|
|
|
119
123
|
```javascript
|
|
120
|
-
//
|
|
121
|
-
|
|
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
|
|
144
|
-
|
|
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
|
-
| `输入源`
|
|
197
|
-
|
|
|
198
|
-
| `图片边界框左上角
|
|
199
|
-
|
|
|
200
|
-
| `图片边界框右下角
|
|
201
|
-
|
|
|
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
|
-
|
|
|
162
|
+
| 类型 | 描述 |
|
|
163
|
+
| ----------------- | ------------------------------------------------ |
|
|
164
|
+
| 数组<OCR识别结果> | 识别结果数组,坐标为原图或全屏绝对坐标 |
|
|
210
165
|
|
|
211
166
|
**示例:**
|
|
212
167
|
|
|
213
168
|
```javascript
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
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
|
package/docs/apicn/yolo.md
CHANGED
|
@@ -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
|
-
####
|
|
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`
|
|
169
|
-
| `图片ID`
|
|
170
|
-
|
|
|
171
|
-
|
|
|
172
|
-
|
|
173
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
#### 释放模型资源
|