• [技术干货] hi3516 CV500 使用yolov5的训练、转换、移植到板子上(案例全)
     移植 YOLOv5 到 HiSilicon Hi3516 CV500 板子上涉及以下几个步骤:模型训练、模型转换和模型部署。以下是一个整体的流程示例,帮助你了解如何在 Hi3516 CV500 上使用 YOLOv5。  Step 1: 模型训练 在你的开发环境(通常是高性能服务器或个人电脑)上训练 YOLOv5 模型。你可以使用 PyTorch 框架进行训练。  克隆 YOLOv5 仓库:  git clone https://github.com/ultralytics/yolov5.git cd yolov5 安装依赖:  使用 requirements.txt 安装必要的依赖:  pip install -r requirements.txt 准备数据集:  将你的数据集整理成 COCO 格式,或根据 YOLO 的格式要求进行整理。  开始训练:  使用预训练权重和自定义数据集进行训练,例如:  python train.py --img 640 --batch 16 --epochs 50 --data data/your_dataset.yaml --weights yolov5s.pt 保存模型:  训练完成后,模型会保存在 runs/train/exp/weights/best.pt 中。  Step 2: 模型转换 将 PyTorch 模型转换为适合 Hi3516 CV500 硬件加速器的格式(如 ONNX、TensorFlow Lite 或 MNN)。  转换为 ONNX:  YOLOv5 提供了直接导出到 ONNX 的功能:  sh 复制代码 python export.py --weights runs/train/exp/weights/best.pt --img 640 --batch 1 --device cpu --include onnx 这会生成一个 best.onnx 文件。  转换为 TFLite(可选):  如果你的板子支持 TensorFlow Lite,可以继续转换:  sh 复制代码 python export.py --weights runs/train/exp/weights/best.pt --img 640 --batch 1 --device cpu --include tflite 这会生成一个 best.tflite 文件。  Step 3: 模型优化 针对 Hi3516 CV500 的硬件特性对模型进行优化,这可能需要使用合适的工具链,如 HiSilicon 提供的 SDK。  下载并安装 HiSilicon SDK:  从 HiSilicon 网站或供应商处获取 SDK,并按照文档进行安装和配置。  使用 SDK 工具:  使用 HiSilicon 提供的工具链对模型进行量化和优化。具体命令和步骤需参考 SDK 文档。  Step 4: 部署到 Hi3516 CV500 将优化后的模型及推理代码部署到 Hi3516 CV500 板子上。  交叉编译推理代码:  使用 HiSilicon 提供的交叉编译工具,将你的推理代码编译为 ARM 可执行文件。例如,你可能需要编写一个简单的 C++ 或 Python 推理脚本。  上传模型和推理代码:  使用 SCP 或其他文件传输工具,将模型文件和编译后的可执行文件上传到 Hi3516 CV500 板子上。  sh 复制代码 scp best.onnx root@<hi3516-ip>:/path/to/model/ scp infer_binary root@<hi3516-ip>:/path/to/infer/ 运行推理代码:  SSH 登录到 Hi3516 CV500 板子,并运行推理代码。  ssh root@<hi3516-ip> cd /path/to/infer/ ./infer_binary --model /path/to/model/best.onnx --input /path/to/input/image.jpg --output /path/to/output/result.jpg 示例项目 以下是一些可能有助于你理解完整流程的开源项目:  HiSilicon AI SDK Documentation:  HiSilicon 提供的 SDK 和文档对于进行模型优化和部署非常重要。请访问 HiSilicon 官方网站获取最新的 SDK 和文档。 YOLOv5 GitHub Repository:  Ultralytics YOLOv5 含有详细的教程和 API 文档,可以进行模型训练和转换。 ONNX Runtime:  ONNX Runtime 一个高性能的 ONNX 模型推理引擎,支持多种设备和平台。 通过以上步骤,应该能够成功地在 Hi3516 CV500 板子上实现 YOLOv5 模型的训练、转换和部署。 
  • [问题求助] 【求助 | YOLOv7】Modelarts上用pytorch训练YOLOv7报错CUDNN_STATUS_NOT_INITIALIZED
    问题基本如题使用的具体规格是pytorch1.8-cuda10.2-cudnn7-ubuntu18.04,GPU等情况是:GPU: 1*T4(16GB)|CPU: 8核 32GB,在配置好了相关数据和文件之后,训练开始阶段报错“RuntimeError: cuDNN error: CUDNN_STATUS_NOT_INITIALIZED”。我猜想应该是和cuDNN的安装和版本适配有关,但实在是不清楚具体该怎么在Modelarts上完成配置,各位请不吝赐教QvQ
  • [问题求助] YOLOX好还是YOLOV5好
    想要进行车流量的图像识别,请问哪个更符合要求
  • [优秀实践] 基于Modelart的YOLOv3物体检测实践
    物体检测YOLOv3实践原理:ModelArts是面向AI开发者的一站式开发平台,支持自动学习的功能,还预置了多种已训练好的模型,ModelArts相对而言降低了AI应用的门槛,是一个高灵活、零代码的定制化模型开发工具,平台根据标注数据自动设计模型、自动调参、自动训练、自动压缩和部署模型。本次实验使用自动学习中的物体检测功能,用于识别图片中车的数量和位置。物体检测是计算机视觉中的一个重要的研究领域,在人流检测,行人跟踪,自动驾驶,医学影像等领域有着广泛的应用。不同于简单的图像分类,物体检测旨在对图像中的目标进行精确识别,包括物体的位置和分类,因此能够应用于更多高层视觉处理的场景。例如在自动驾驶领域,需要辨识摄像头拍摄的图像中的车辆、行人、交通指示牌及其位置,以便进一步根据这些数据决定驾驶策略。本期学习案例,我们将聚焦于YOLO算法,YOLO(You Only Look Once)是一种one-stage物体检测算法。1.数据和代码下载运行下面代码,进行数据和代码的下载和解压本案例使用coco数据,共80个类别。2.准备数据2.1文件路径定义2.2读取标注数据2.3数据读取函数,构建数据生成器。每次读取一个批次的数据至内存训练,并做数据增强。3.模型训练本案例使用Keras深度学习框架搭建YOLOv3神经网络。可以进入相应的文件夹路径查看源码实现。3.1构建神经网络可以在./yolo3/model.py文件中查看细节训练回调函数定义3.2开始训练3.3保存模型4.模型测试4.1打开一张测试图片4.2图片预处理4.3构建模型4.4加载模型权重,或将模型路径替换成上一步训练得出的模型路径4.5定义IOU以及score:IOU: 将交并比大于IOU的边界框作为冗余框去除score:将预测分数大于score的边界框筛选出来4.6构建输出[boxes, scores, classes]4.7进行预测成功预测出图片中含有的内容(人物,雨伞)注意事项:本案例使用框架: TensorFlow-1.13.1本案例使用硬件规格: GPU V100
  • [问题求助] Yolov7_for_PyTorch 在Atlas 800 上训练出现RuntimeError: ACL stream synchronize failed, error code:507018
    环境:Atlas800 算力卡910CANN 版本为6.3.RC1 训练容器为:pytorch-modelzoo:23.0.RC1-1.11.0训练代码Yolov7_for_PyTorch下载地址https://gitee.com/ascend/modelzoo-GPL/tree/master/built-in/PyTorch/Official/cv/object_detection/Yolov7_for_PyTorch训练样本coco现象: