HomiKetalys / gd32ai-modelzoo

Provide deployable deep learning models on gd32
MIT License
25 stars 2 forks source link

训练自己数据集出现准确率等全为0,任务是小目标检测。 #5

Closed zxzxzxzxzxzxzxzxzxzxzx closed 2 months ago

zxzxzxzxzxzxzxzxzxzxzx commented 3 months ago

zx 哥有些问题想请教你。 问题一:这个问题是模型的问题吗? 问题二:我有训练好的YOLOv8模型怎么可以像yolofastv2一样转为AI吗?

HomiKetalys commented 3 months ago

zx 哥有些问题想请教你。 问题一:这个问题是模型的问题吗? 问题二:我有训练好的YOLOv8模型怎么可以像yolofastv2一样转为AI吗?

@zxzxzxzxzxzxzxzxzxzxzx 小目标检测一般来说要很高的分辨率,256x256效果会很差。但是对于MCU来说,高分辨率带来的计算量是难以接受的。yolofastv2在256x256分辨率下可以接受的目标分辨率大小大约在32x32。YOLOv8参数量,计算量以及内存占用对于MCU来说都太高了,即使转了也运行不了。

zxzxzxzxzxzxzxzxzxzxzx commented 3 months ago

数据集原图片大小是600600的,那我现在想的是通过基于标注框的信息以256256大小裁剪数据集照片,这样操作会不会可以解决这个问题。

zxzxzxzxzxzxzxzxzxzxzx commented 3 months ago

目前我们已经将您的训练好的模型迁移到了GD32H757ZM上了

HomiKetalys commented 3 months ago

数据集原图片大小是600_600的,那我现在想的是通过基于标注框的信息以256_256大小裁剪数据集照片,这样操作会不会可以解决这个问题。

当然可以,不过我建议你根据标注框的大小进行裁剪,比如标注框分辨率为10x10,你的裁剪框可以在20(2倍)到100(10倍)间随机取。当然为了防止标注框只在裁剪框中间,你可以再次随机取裁剪框的起点保证标注框在裁剪框各处都有可能出现。

zxzxzxzxzxzxzxzxzxzxzx commented 3 months ago

非常感谢您为我提供的帮助,哥。

zxzxzxzxzxzxzxzxzxzxzx commented 3 months ago

哥,我已经完成了训练,但是在模型量化后,却检测不出目标,没量化前可以推理出来,这个问题这么去调试解决呢? 未量化前: image 量化后: image 量化配置deploy.py: image 量化过程中有几个警告: 1、WARNING:tensorflow:From D:\conda\envs\tf\lib\site-packages\keras\src\losses.py:2978: The name tf.losses.sparse_softmax_cross_entropy is deprecated. Please use tf.compat.v1.losses.sparse_softmax_cross_entropy instead. 2、WARNING:tensorflow:From D:\conda\envs\tf\lib\site-packages\keras\src\backend.py:1398: The name tf.executing_eagerly_outside_functions is deprecated. Please use tf.compat.v1.executing_eagerly_outside_functions instead. 3、WARNING:Quantization DataLoder ::2166 images detected, the number of recommended images is less than 100. 输出结果: image 量化后的推理文件: image 未量化推理文件:来自于:https://github.com/dog-qiuqiu/Yolo-FastestV2/blob/main/test.py image

HomiKetalys commented 3 months ago

哥,我已经完成了训练,但是在模型量化后,却检测不出目标,没量化前可以推理出来,这个问题这么去调试解决呢? 未量化前: image 量化后: image 量化配置deploy.py: image 量化过程中有几个警告: 1、WARNING:tensorflow:From D:\conda\envs\tf\lib\site-packages\keras\src\losses.py:2978: The name tf.losses.sparse_softmax_cross_entropy is deprecated. Please use tf.compat.v1.losses.sparse_softmax_cross_entropy instead. 2、WARNING:tensorflow:From D:\conda\envs\tf\lib\site-packages\keras\src\backend.py:1398: The name tf.executing_eagerly_outside_functions is deprecated. Please use tf.compat.v1.executing_eagerly_outside_functions instead. 3、WARNING:Quantization DataLoder ::2166 images detected, the number of recommended images is less than 100. 输出结果: image 量化后的推理文件: image 未量化推理文件:来自于:https://github.com/dog-qiuqiu/Yolo-FastestV2/blob/main/test.py image

@zxzxzxzxzxzxzxzxzxzxzx 你可以先对tflite文件和onnx文件在同一张图片上进行推理,看看两者的输出结果是否接近,如果接近则可以先排除量化的问题,或者你可以将onnx和tflite文件发给我,我看看是怎么回事。

zxzxzxzxzxzxzxzxzxzxzx commented 3 months ago

哥,我已经邮件发您了一个文件,我自己也去找找资料看看。

---原始邮件--- 发件人: "Homi @.> 发送时间: 2024年6月15日(周六) 中午1:20 收件人: @.>; 抄送: @.**@.>; 主题: Re: [HomiKetalys/gd32ai-modelzoo] 训练自己数据集出现准确率等全为0,任务是小目标检测。 (Issue #5)

哥,我已经完成了训练,但是在模型量化后,却检测不出目标,没量化前可以推理出来,这个问题这么去调试解决呢? 未量化前: 量化后: 量化配置deploy.py: 量化过程中有几个警告: 1、WARNING:tensorflow:From D:\conda\envs\tf\lib\site-packages\keras\src\losses.py:2978: The name tf.losses.sparse_softmax_cross_entropy is deprecated. Please use tf.compat.v1.losses.sparse_softmax_cross_entropy instead. 2、WARNING:tensorflow:From D:\conda\envs\tf\lib\site-packages\keras\src\backend.py:1398: The name tf.executing_eagerly_outside_functions is deprecated. Please use tf.compat.v1.executing_eagerly_outside_functions instead. 3、WARNING:Quantization DataLoder ::2166 images detected, the number of recommended images is less than 100. 输出结果: 量化后的推理文件: 未量化推理文件:来自于:https://github.com/dog-qiuqiu/Yolo-FastestV2/blob/main/test.py

@zxzxzxzxzxzxzxzxzxzxzx 你可以先对tflite文件和onnx文件在同一张图片上进行推理,看看两者的输出结果是否接近,如果接近则可以先排除量化的问题

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

HomiKetalys commented 3 months ago

@zxzxzxzxzxzxzxzxzxzxzx image 量化后的tflite模型和原onnx模型计算结果相近,说明量化没有问题。你可以直接先部署到MCU上试试

zxzxzxzxzxzxzxzxzxzxzx commented 3 months ago

那有点奇怪啦,我再调试看看。感谢🙏哥

---原始邮件--- 发件人: "Homi @.> 发送时间: 2024年6月15日(周六) 下午3:03 收件人: @.>; 抄送: @.**@.>; 主题: Re: [HomiKetalys/gd32ai-modelzoo] 训练自己数据集出现准确率等全为0,任务是小目标检测。 (Issue #5)

@zxzxzxzxzxzxzxzxzxzxzx image.png (view on web) 量化后的tflite模型和原onnx模型计算结果相近,说明量化没有问题。

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

zxzxzxzxzxzxzxzxzxzxzx commented 3 months ago

image

image

哥这里是不是要改来对应上

HomiKetalys commented 3 months ago

image

image

哥这里是不是要改来对应上

@zxzxzxzxzxzxzxzxzxzxzx 不用改,GD32H7用不了X-CUBE-AI的CM7版本的库