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

165 lines
6.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 进行现场复测。