浏览器版图像 Teach¶
SDK 的 tools/teach_web 是无需安装 IPRO AI Studio 的图像 Teach:在 Chrome 或 Edge 中打开一个本地网页,对着 Reef 的摄像头录制、在浏览器中训练,再经同一条 USB-C 线以 Web Serial 部署到开发板。流程与 Studio 的 Teach 页面相同,生成的模型也与 Studio 逐字节相同。Windows、macOS、Linux 都可以使用。
前提条件¶
- IPRO7AI Reef EVK 接上 OV5640 摄像头(SW7 在 CAM),已烧录 Edge AI 固件,并处于
image模式。网页不能切换模式:开发板处于其他模式时,先在控制台输入mode image,或使用 Studio 的 Switch to Teach。见烧录 Edge AI 固件。 - 一条支持数据传输的 USB-C 线,连接 Reef 的 USB-C 与电脑:用于供电,也用于传输图像与模型。
- Chrome 或 Edge(支持 Web Serial;Safari 与 Firefox 不支持)。
- Python 3.8 及以上,仅用于在本地提供网页。
- SDK V2.2.1:
tools/teach_web/。
启动网页¶
-
启动本地服务器:在 SDK 根目录运行:
服务器只在本机(127.0.0.1)提供
tools/teach_web/,网址为http://localhost:8780,并用默认浏览器打开。默认浏览器不是 Chrome 或 Edge 时,把网址粘贴到其中一个浏览器中。摄像头与串口只对localhost或https的网页开放,直接从磁盘打开index.html无法使用。 -
允许使用摄像头:首次打开时,浏览器会询问是否允许使用摄像头,请允许。
-
选择 Reef 的摄像头:在 Camera 菜单中选择 IPRO7 UVC Cam。明亮的正方形就是模型看到的范围。
serve.py 的选项:--port <端口号> 改用其他端口,--no-browser 不自动打开浏览器,--fetch-runtime 见离线使用。
采集、训练、部署¶
-
采集:选中一个类别,把物品放进正方形,按住 Hold to record(或空格键)几秒。保留 BACKGROUND 类别,在正方形里什么都不放的情况下录制,让开发板能回答“没有东西”。最多 8 类;名称使用 A–Z、0–9,最多 15 个字符,因为开发板用自己的字体显示。点击 Review 查看图片,勾选不好的图片后点击 Delete selected,再点击 Done。
-
训练:选择骨干网络(MobileNetV2 0.35 或 MobileNetV1 0.25),点击 Train,一两秒内完成。每一类每 4 张图片留出 1 张评分;同一次录制的图片彼此很像,这个分数代表“类别能区分开”,不代表换一个场景也一样准确。
-
连接开发板:点击 Connect…(或首次点击 Deploy 时),浏览器询问要使用哪个串口,选择 IPRO7 UVC Cam。
-
部署:点击 Deploy。网页依次执行 Build the model、Send and write、Restart the board:生成模型、连同类别名称一起发送,开发板检查并写入后重启,摄像头会自动恢复。传输被拒绝或中断时,板上原有的模型不受影响。
-
在板上运行:开发板用自己的 NPU 识别正方形里的内容,把类别名称、置信度与每一类的概率画在正方形旁边。
Save… 与 Open… 把采集的图片保存为或读回一个 .teach 文件,之后可以补录或重新训练。
验证结果¶
- 部署完成后摄像头画面恢复,正方形旁显示类别名称与概率。
- 每一类物品放进正方形时,显示对应的类别;正方形为空时显示 BACKGROUND。
- 同一个画面在 Studio 或任何能打开 USB 摄像头的程序中都能看到。
离线使用¶
网页用 LiteRT.js 运行骨干网络。没有本地副本时,它从 jsDelivr CDN 下载。在没有网络的电脑上使用前,先在有网络的电脑上运行一次(约 22 MB,下载后用 npm 的完整性哈希校验):
运行时库存放在 tools/teach_web/vendor/;把这个文件夹一起复制到没有网络的电脑即可。
声纹页面¶
voice.html(网页上方的 Voice 标签页)是浏览器版的声纹识别:Reef 处于 voice 模式时,点击 Connect… 选择 IPRO Reef Voice,即可注册说话人(Teach a voice、Record)、点击 Start listening 查看谁在说话,并使用 Stranger mode 与 Thresholds。所有运算都在板上进行,网页只发送指令并绘制开发板返回的标签。各项操作的含义与 Studio 的 Audio 页面相同,见声纹识别。
与 IPRO AI Studio 的区别¶
浏览器版 tools/teach_web |
IPRO AI Studio | |
|---|---|---|
| 获取方式 | SDK 随附 | GitHub |
| 需要安装 | Python 3.8 及以上与 Chrome 或 Edge | Studio 应用程序 |
| 操作系统 | Windows、macOS、Linux | macOS、Windows |
| 图像识别 | 有:采集、训练、部署 | 有(Teach 页面) |
| 声纹识别 | 有(voice.html) |
有(Audio 页面) |
| 传感器识别 | 无 | 有(Sensor 页面) |
| 切换开发板的模式 | 不支持;用控制台 mode 或 Studio 切换 |
Switch to … 按钮 |
| 保存采集的图片 | .teach 文件 |
文件夹(每类一个子文件夹的 PNG) |
命令行、模型套件 .ipkg |
无 | ipro-ai 命令行 |
| 网络 | 首次需要下载 LiteRT.js,或事先用 --fetch-runtime 获取 |
不需要 |
两者的图像模型逐字节相同:分类层在浏览器中训练后直接写入随附的模板 .inm,不需要模型转换器。
故障排除¶
| 现象 | 原因 | 处理 |
|---|---|---|
This browser has no Web Serial |
浏览器不支持 Web Serial | 改用 Chrome 或 Edge |
Open this page from http://localhost |
直接从磁盘打开了网页 | 用 serve.py 启动,从 http://localhost:8780 打开 |
| 摄像头列表里没有 IPRO7 UVC Cam | 开发板不在 image 模式、没有 Edge AI 固件,或 USB-C 线仅支持充电 |
在控制台输入 mode image;换一条支持数据传输的线 |
部署后显示 The camera went away |
开发板正在重启 | 正常现象,摄像头会自动恢复;没有恢复就重新插拔 USB-C |
| macOS 上所有程序都看不到摄像头画面 | 另一个程序仍占用摄像头 | 关闭那个程序,再重新插拔 USB-C |
The model runtime did not load |
没有网络,也没有本地副本 | 在有网络的电脑上运行 serve.py --fetch-runtime,或把 vendor/ 复制过来 |