GrabBag/AppAlgo/AAPGS_model/project-4cdad308_rk3588_相对AAPGS变更记录.txt

165 lines
6.6 KiB
Plaintext
Raw Permalink Normal View History

project-4cdad308_rk3588 相对 AAPGS_model_20260714 变更记录
================================================================
对比基准
--------
旧包:AAPGS_model_20260714.tar.gz
新包:project-4cdad308_rk3588.tar.gz
对比日期:2026-08-04
一、总体结论
------------
新包不是对旧包的简单重命名,而是包含新模型、新运行时 ABI、新版公共 C API、
新版示例程序和更新验证记录的一次完整升级。新旧包的二进制接口不兼容,使用旧包
头文件或链接 libyolo_runtime.so.2 的应用程序不能直接替换为新包,必须依据新版
头文件重新适配并重新编译。
二、包信息变更
--------------
1. 包名称由 AAPGS_model_20260714 变更为 project-4cdad308_rk3588。
2. 压缩包大小由 14,199,356 字节减小为 6,859,304 字节,减少 7,340,052 字节,
约减少 51.7%。
3. 解压后文件总大小由约 41.37 MiB 减小为约 14.50 MiB。
4. 普通文件数量由 37 个变为 38 个。
5. 两包存在 31 个相同相对路径,其中 11 个文件内容完全一致,20 个文件内容已修改。
三、模型及配置变更
------------------
1. 模型名称:
旧:model_20260712T020258_0000_6339d04b
新:project-4cdad308
2. 模型版本:
旧:1.0.0
新:20260804_000209_109_cb390eaf
3. 模型文件:
旧:models/model_20260712T020258_0000_6339d04b/
model_20260712T020258+0000_6339d04b.rknn,3,547,568 字节
新:models/primary/model.rknn,3,550,128 字节
4. 分类标签:
旧:a320、b737,共 2 类
新:a320、b737、other,共 3 类
5. RKNN 输出张量:
旧:[1, 2],输出结果 2 项
新:[1, 3],输出结果 3 项
6. 模型配置新增或调整:
- 新包明确增加 model_family: "yolo8"。
- 新包明确增加 output_contract: "task_specific"。
- 后处理适配器由 ultralytics_yolov8_cls 调整为 ultralytics_yolo8_cls。
- 新包增加 bbox_edge_tolerance_px 和 pose_keypoint_tolerance_px 验证参数。
- 模型配置路径统一为 models/primary/model.yaml。
四、运行时及 ABI 变更
--------------------
1. 公共 Runtime ABI 由 3 升级为 5。
2. 主要运行库 SONAME 由 libyolo_runtime.so.2 升级为 libyolo_runtime.so.5。
3. libyolo_runtime.so 大小由 263,440 字节变为 297,920 字节。
4. libyolo_backend_cls.so 大小由 957,664 字节变为 961,832 字节。
5. 新包额外保留 libyolo_runtime.so.3 和 libyolo_runtime.so.3.0.2 文件;
但未包含旧包所需的 libyolo_runtime.so.2,因此不具备旧 ABI 2/3 应用的直接
二进制替换条件。
6. librga.so 和 librknnrt.so 的内容未发生变化。
五、公共 C API 变更
------------------
1. 增加 YOLO_RUNTIME_API 导出符号宏。
2. yolo_runtime_create() 增加结构化错误信息参数。
3. 原 yolo_runtime_get_capabilities() 被新版 yolo_runtime_get_info() 取代。
4. 推理输入结构由 yolo_image_view_t 升级为带版本号的 yolo_image_view_v1_t。
5. 增加 yolo_infer_options_v1_t,可指定分割几何计算方式。
6. 推理结果由调用方持有的固定 yolo_result_list_t 数组,改为运行时返回的不透明
yolo_result_set_t 对象。
7. 增加结果数量、性能数据、公共结果、检测框、旋转框、分割掩码、分割几何和
姿态关键点等独立读取接口。
8. 增加 yolo_result_set_release(),调用方必须显式释放结果集。
9. 增加 ABI 不匹配、缓冲区过小、结果不可用、配置无效、索引越界等状态码。
10. 数据结构统一增加 struct_size、version 和 reserved 字段,以支持后续扩展。
六、示例程序变更
----------------
1. C/C++ 示例已适配 Runtime ABI 5 和新的结果集接口。
2. 预编译示例程序已重新构建:
- yolo_c_example:18,808 字节变为 23,432 字节。
- yolo_cpp_example:23,912 字节变为 24,544 字节。
3. 新示例增加 --seg-geometry rect|circle 参数支持。
4. 新示例使用 yolo_error_info_v1_t 返回创建及推理错误信息。
5. result_json 模块已改为通过新版结果查询接口生成 JSON,并扩展对不同任务结果
类型的支持。
6. 交叉编译检查目标由 libyolo_runtime.so.2 调整为 libyolo_runtime.so.5。
七、示例资源变更
----------------
1. 旧包包含:
- examples/assets/a320.bmp,15,040,566 字节
- examples/assets/b737.bmp,15,040,566 字节
2. 新包改为:
- examples/assets/sample.bmp,1,228,854 字节
3. 旧包的 package.env、manifest.json 和运行脚本声明使用
examples/assets/sample.bmp,但旧压缩包实际未包含该文件。因此按旧包自带脚本
直接运行会找不到示例图片。
4. 新包中的 PACKAGE_SAMPLE_IMAGE 与实际 sample.bmp 文件一致,消除了该资源路径
不一致问题。
5. 示例图片精简是新包体积明显下降的主要原因。
八、文档及交付元数据变更
------------------------
以下文件均已更新:
- README.md
- docs/C_API.md
- docs/DEB_INTEGRATION.md
- docs/INSTALL.md
- docs/MODEL_CONFIG.md
- manifest.json
- package.env
- verification.json
- build/cross-build.log
新 manifest.json 额外记录:
- projectId
- projectKey
- modelVersionId
- deliveryContractVersion
- modelSlot
- compatibilityFingerprint
- layoutFingerprint
九、验证记录变更
----------------
1. 两个包的 manifest.json 和 verification.json 均记录:
- 已完成 AArch64 交叉编译。
- 已在 RK3588 上验证。
- 设备内核为 5.10.209。
2. 旧包记录的验证时间为 2026-07-15,推理输出为 2 类。
3. 新包记录的验证时间为 2026-08-04,C/C++ 示例均输出 3 类结果;记录的单次
RKNN 推理时间约为 3.78~3.92 ms。
十、保持不变的主要内容
----------------------
以下 11 个共有文件的 SHA256 完全一致:
- examples/c/build.sh
- examples/c/CMakeLists.txt
- examples/c/run.sh
- examples/common/bmp_loader.c
- examples/common/bmp_loader.h
- examples/cpp/build.sh
- examples/cpp/CMakeLists.txt
- examples/cpp/run.sh
- lib/librga.so
- lib/librknnrt.so
- scripts/install.sh
十一、迁移注意事项
------------------
1. 旧应用不能只替换 .so 文件;需要同时更新头文件、调用代码并重新编译。
2. 业务代码需要处理新增的 other 分类,不能继续假定结果恒为 2 类。
3. 推理结果使用完毕后必须调用 yolo_result_set_release()。
4. 应按新 package.env 使用 models/primary/model.yaml 和
examples/assets/sample.bmp。
5. 上述“设备已验证”结论来自两个交付包内的历史验证记录。本次工作完成了压缩包
清单、文件哈希、配置和源码的静态比对,但未重新连接 RK3588 进行现场复测。