Advertisement

Yolov5在PyTorch中,随后转换为ONNX格式,再应用于RKNN平台。

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
修改版 YOLOv5 的使用环境要求如下:需要 Python 版本至少为 3.6。模型训练过程采用 Python 脚本 `train.py` 进行,而模型导出则通过执行 `models/export.py` 命令完成,并指定预训练权重文件 xxx.pt。此外,还需要运行 `onnx_to_rknn.py` 脚本进行 RKNKit 转换。模型推理则利用 `rknn_detect_yolov5.py` 脚本实现。请务必注意以下事项:如果训练图像尺寸并非 640x640,则锚框(anchors)会自动进行聚类重新生成。这个过程会在训练时在控制台打印出来,或者可以通过动态查看 PyTorch 模型类属性来获取。如果锚框与实际情况不匹配,将会导致预测结果出现偏差。因此,建议在训练时,若尺寸不是 640,先通过聚类方法获得新的锚框,并将这些更新后的锚框信息写入到模型配置文件中,然后再进行训练,以避免动态获取的锚框在 RKNKit 上预测不准确的问题。请确保在训练参数中包含 `--noautoanchor` 选项。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • Yolov5_for_RKNN:从PyTorchONNXRKNNYOLOv5
    优质
    简介:该项目提供了一个将YOLOv5模型从PyTorch框架转换为RKNN(Rockchip神经网络编译器)所需的步骤和代码,包括中间使用ONNX格式。适合需要在RK3399等Rockchip平台上部署的开发者。 环境要求:Python版本 >= 3.6 模型训练: ``` python3 train.py ``` 模型导出: ``` python3 models/export.py --weights xxx.pt ``` 转换RKNN: ``` python3 onnx_to_rknn.py ``` 模型推理: ``` python3 rknn_detect_yolov5.py ``` 注意事项:如果训练尺寸不是640,那么锚点(anchors)会自动聚类重新生成。生成的结果在训练时会在控制台打印出来,或者可以通过动态查看torch模型类属性获取。若使用的锚点不匹配,则会出现问题。 建议:当训练尺寸为非640大小时,在开始训练前先通过聚类得到新的锚点,并将这些新锚点写入到模型配置文件中后再进行训练。这样可以避免在RKNN平台上预测不准的问题出现。 另外,记得在启动训练参数时加入 `--noautoanchor` 选项以确保手动设置的锚点被正确使用。
  • HRNet ONNX量化RKNN
    优质
    本项目介绍将HRNet模型在ONNX格式下进行量化处理,并成功转换为RKNN格式,以适应资源受限设备上的高效部署与运行。 模型的精度与原始pth文件完全一致,代码参考了相关博客的内容。
  • nnunet-pytorch ONNX
    优质
    nnunet-pytorch转换为ONNX项目旨在将基于PyTorch框架的医学影像分割模型NNUnet导出为ONNX格式,便于部署于多种平台。 将nnunet-pytorch转换为onnx格式的代码实现如下: 首先确保已经安装了必要的库: ```bash pip install torch onnx onnxmltools ``` 然后可以使用以下Python脚本来执行模型转换: ```python import torch.onnx as onnx from nnunet.network_architecture.nnUNet import get_nnUNet_model_config, init # 初始化nnUnet模型配置和参数 plans_identifier = Task043_Pancreas dataset_json = path_to_dataset.json # 数据集的json文件路径 model_properties = get_nnUNet_model_config(plans_identifier) config = init(plans_identifier, dataset_json) # 加载训练好的nnUnet模型(需要替换为实际使用的权重路径) model_path = path/to/pretrained/model.pth net = config[network] device = torch.device(cuda if torch.cuda.is_available() else cpu) weights = torch.load(model_path) del weights[conv_blocks_encoder.0.downsample建国后undownsample] # 删除不必要的键 net.load_state_dict(weights, strict=False) # 准备输入张量 dummy_input = torch.randn(1, 4, 256, 256).to(device) # 导出模型到onnx格式(需要替换为实际的输出路径) output_onnx_path = path/to/output/model.onnx torch.onnx.export(net.to(device), dummy_input, output_onnx_path, export_params=True, opset_version=10, do_constant_folding=True, input_names=[input], output_names=[output], dynamic_axes={input : {0 : batch_size}, output: {0 : batch_size}}) ``` 请根据具体需求调整模型的初始化参数、路径和输入张量大小。
  • Yolov5模型ONNX和NCNN
    优质
    本文介绍了如何将流行的YOLOv5目标检测模型转换为ONNX和NCNN两种不同框架下的模型格式,便于跨平台部署与应用。 将yolov5模型转换为onnx格式的模型以及NCNN模型的过程可以进行优化和调整以适应不同的应用场景需求。在完成这一转化后,这些模型可以在多种设备上高效运行,特别是在资源受限的环境中表现突出。此过程涉及使用特定工具或库来确保转换后的模型能够保持原有的准确性和性能水平。
  • Yolov5:从PyTorchONNX到CoreML和TFLite
    优质
    本文介绍了如何将基于PyTorch的YOLOv5模型转换为ONNX格式,并进一步优化为适用于iOS设备的CoreML以及Android设备的TFLite模型。 该存储库代表了Ultralytics对未来对象检测方法的开源研究,并结合了在匿名客户数据集上数千小时培训和发展过程中汲取的经验教训和最佳实践。所有代码和模型都在积极开发中,如有更改或删除,恕不另行通知。使用风险自负。 GPU速度是在V100 GPU上以批处理大小为32的情况下测量的,针对超过5000张COCO val2017图像进行端到端时间测试,包括图像预处理、PyTorch FP16推理、后处理和NMS。数据来自EfficientDet(批量大小为8)。 更新历史: - 2021年1月5日:引入nn.SiLU()激活函数,并进行了记录。 - 2020年8月13日:采用nn.Hardswish()激活,支持自动下载数据和原生AMP功能。 - 2020年7月23日:优化了模型定义、训练过程以及mAP性能。 - 2020年6月22日:更新包括新的刀头设计、减少参数数量及提升速度与mAP值。 - 2020年6月19日:作为新默认设置,用于较小的检查点和更快推断。 预训练模型: | 模型 | 尺寸 | AP VAL | AP测试 | AP50 | V100速度(FPS) | | ---- | ---- | ------ | ----- | ---- | -------------- | | 玻璃纤维640 | - |- |- |- | 参数数量: - 玻璃纤维:36.8 注意,此表格仅展示了部分信息,并未列出所有预训练模型及其详细性能数据。
  • iOSFFmpeg将TS文件MP4
    优质
    本文介绍如何在iOS系统中使用FFmpeg库,实现高效的TS视频文件转码为MP4格式的过程与方法。 在iOS平台上进行最简单的基于FFMPEG的TS视频文件转码为MP4的过程包括两部分:视音频分离器负责将TS本地文件转换成H264 + AAC,而视音频复用器则负责将生成的H264+AAC封装为MP4格式。经过验证,QuickTime和iOS系统均支持播放最终得到的视频文件。
  • 使OpenCVPyTorch将HWC图像BCHW的方法
    优质
    本文章介绍了如何利用Python深度学习框架PyTorch结合计算机视觉库OpenCV,有效地将图像数据从HWC(高度x宽度x通道)格式转换成适合神经网络输入的BCHW(批量x通道x高度x宽度)格式。此过程对优化模型训练和推理效率至关重要。 本段落主要介绍了如何使用Pytorch和OpenCV读取图像,并将图像从HWC格式转换为BCHW格式的方法,具有一定的参考价值,希望能对大家有所帮助。一起跟随文章内容深入了解吧。
  • Yolov3PyTorchONNX到CoreML到TFLite
    优质
    本文介绍了如何使用PyTorch将YOLOv3模型通过ONNX格式转换为CoreML和TFLite格式的过程和技术细节。 通知:存储库现在分为两个分支: - 主分支(推荐):与所有模型和方法向前兼容。 ``` $ git clone https://github.com/ultralytics/yolov3 # master branch (default) ``` - 存档分支:向后兼容原始 .cfg 模型,不再维护。 ``` $ git clone -b archive https://github.com/ultralytics/yolov3 # archive branch ``` GPU速度使用批处理大小为32的V100 GPU测量超过5000张COCO val2017图像的平均每张图像的端到端时间,包括图像预处理、PyTorch FP16推理、后处理和NMS。数据来自EfficientDet(批量大小为8)。以下是预训练检查站模型的相关信息: - AP VAL: 43.3 - AP 测试:43.3 - AP 50:63.0 - GPU 时间:4.8 毫秒 - 参数量:208M,156.4B 跳板 - AP VAL: 44.3 - AP 测试:44.3 - AP 50:64.6 - GPU 时间:4.9 毫秒 - 参数量:204M,157B
  • ONNXMLTools:支持将模型ONNX
    优质
    ONNXMLTools是一款强大的工具包,它能够便捷地将机器学习模型转换成开放神经网络交换(ONNX)格式,助力开发者优化和部署AI应用。 ONNXMLTools使您能够将模型从不同的机器学习工具包转换为特定格式。当前支持以下工具包:Tensorflow、scikit-learn、苹果酷睿ML、Spark ML(实验性)、LightGBM 的libsvm 以及 XGBoost 和水猫助推器。Pytorch具有内置的ONNX导出器,请查看相关文档。 您可以使用pip命令安装最新版本的ONNXMLTools,例如: ``` pip install onnxmltools ``` 或者从源代码进行安装: ``` pip install git+https://github.com/microsoft/onnxconverter.git ```
  • Windows 上将音频文件 Silk
    优质
    本指南详细介绍了如何使用Windows平台上的软件和工具,便捷地将常见的音频文件格式转换为Silk格式,适用于音乐爱好者和技术用户。 在 Windows 平台上将音频文件转换为 Silk 文件的方法有很多种。可以使用各种软件或工具来实现这一目标。这些方法通常包括安装特定的转换器或者利用编程语言编写脚本来完成任务。具体步骤会根据所选工具的不同而有所差异,但大多数情况下都涉及导入音频文件并选择输出格式为 Silk 的过程。