docs+chore: 模型清单下载入口/取消能力补文档,版本递增 1.0.8+9
This commit is contained in:
@@ -758,6 +758,10 @@ git commit -m "feat(app): ModelManager 目录/下载分离 + 激活集持久化
|
||||
|
||||
### Task 6: app — 设置弹层模型清单 UI【TDD】
|
||||
|
||||
> 执行期新增需求(2026-08-31):下载中可**中断**——进度区加「取消」按钮,
|
||||
> `ModelManager.cancelDownload(id)` 置取消标志,下一个数据块到达时终止并清理
|
||||
> .part(不记错误,可再次下载);卡片恢复「使用」。
|
||||
|
||||
**Files:**
|
||||
- Create: `flutter_app/lib/camera/model_catalog_section.dart`
|
||||
- Create: `flutter_app/test/model_catalog_section_test.dart`
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
|
||||
1. **多选叠加**:点「使用」的模型都保持生效,多个模型并行推理(沿用现有多模型架构);再次点击取消。
|
||||
2. **仅点选才下载**:启动只拉目录不下载;下载只发生在点「使用」时,且显示进度。
|
||||
下载中可**中断**(进度区「取消」按钮,终止后丢弃 .part 恢复「使用」,不记错误可重下)。
|
||||
3. **缩略图**:后端在 models[] 下发 `coverUrl`(公开路由,无需鉴权)。
|
||||
|
||||
## 后端改动(server/)
|
||||
|
||||
@@ -44,14 +44,16 @@ xcrun devicectl device process launch --console --terminate-existing \
|
||||
`models` 目录(公开接口,无需登录),与 `UpdateChecker` 的 APK 检查并行。
|
||||
|
||||
- **目录条目**:`{datasetId, datasetName, version, labels[], sizeBytes, sha256,
|
||||
downloadUrl}`;服务器未发布模型时不返回 `models` 字段,App 无模型可用,
|
||||
downloadUrl, coverUrl}`;服务器未发布模型时不返回 `models` 字段,App 无模型可用,
|
||||
相机页仅预览不识别。
|
||||
- **下载入口**:相机页设置弹层「模型清单」按需下载/使用(封面缩略图 2 列网格,
|
||||
未下载点击「使用」显示进度,完成自动激活;已激活再次点击取消;下载中可取消)。
|
||||
- **存储**:应用私有目录 `models/<datasetId>/`,含 `model.tflite`、
|
||||
`labels.json`、`meta.json`(meta 记录 `{version, sha256}`)。版本与摘要都
|
||||
未变化时跳过下载;变化则下载到 `.part` 临时文件、sha256 校验通过后
|
||||
原子 rename 替换,失败重试一次并保留旧模型,下次启动再试。
|
||||
- **清理**:服务器下线的数据集下次同步时删除本地对应目录。
|
||||
- **并行推理合并**:识别时加载全部已下载模型(`DetectorWorker` isolate 内
|
||||
- **并行推理合并**:识别时加载全部已激活模型(`DetectorWorker` isolate 内
|
||||
逐模型加载,单个失败不影响其他),同帧各模型独立推理后按类别分组做
|
||||
**跨模型 NMS**(同类别不同模型检出同一目标取高分去重,不同类别互不压制),
|
||||
结果叠加 `modelName` 标注来源。
|
||||
|
||||
@@ -2,7 +2,7 @@ name: observer
|
||||
description: "视野 - 动物实时识别 (环颈雉鸡/生境), YOLOv8 + 充值付费"
|
||||
publish_to: 'none'
|
||||
|
||||
version: 1.0.7+8
|
||||
version: 1.0.8+9
|
||||
|
||||
environment:
|
||||
sdk: ^3.12.2
|
||||
|
||||
Reference in New Issue
Block a user