sxj731533730
江流儿
展开
-
69、ncnn学习onnx2ncnn不支持带三维算子相乘gemm/repeat转换方法学习
测试结果,因为设置的随机生成数,只要torch onnx ncnn对应上即可。基本思想:学习不支持带channel维度的Mat相乘。二、repeat不支持onnx2ncnn使用。转一下onnx2ncnn。然后修改param结构。转换onnx显示不支持。参看ncnn的算子支持。其中的param结果。转的错误的param。原创 2024-07-19 15:27:00 · 196 阅读 · 0 评论 -
68、ncnn学习onnx2ncnn不支持五维算子squeeze/gather转换方法学习
有了上一篇博客的学习,ncnn的squeeze不支持4d操作, 将squeeze 改为reshape 我们看一下ncnn的operator 的reshape。修改的param,修改了reshape维度、crop维度提取步长、以及添加reshape对齐了onnx 输入。基本思想:继续构建小模型,学习ncnn的onnx2ncnn的不支持算子学习。转ncnn没有错误,但是推理结果是不正确的,请see。一、四、五维度转换squeeze不支持。查看一下param的内部结构。进行onnx进行简化。原创 2024-07-12 17:56:07 · 174 阅读 · 0 评论 -
67、ncnn学习onnx2ncnn不支持五维算子reshape/transpose转换方法学习
一点点剖析ncnn的不支持,这里先不考虑batch>1的情况 输入维度是 1x3x6x6 使用reshape转成1x6x2x3x3 对应ncnn的内存布局是cdhw 所以修改param结果为。一、例子一,先造个五维度的reshape转换,ncnn的onnx2ncnn不支持转换,参考ppocr_4算子。基本思想:学习ncnn转模型集锦,仅在onnx2ncnn使用, 先不谈pnnx。执行生成pt使用onnx转一下,我用mingw+window转一下。测试结果,ncnn不支持五维度输出,直接崩溃。原创 2024-07-11 10:47:20 · 215 阅读 · 0 评论 -
66、将同图片下的多个不同类别的xml标注文件合并成一个xml标注文件-labelImg格式
基本思想:手中有一套抽烟的数据集是labelimg格式,但是没有人物标注的数据集,因此使用自动化标注脚本将图片过滤一边,进行生成labelimg文件,只含有80类别的人物标注xml,然后使用脚本将生成标注的人物xml和手中有的抽烟xml进行合并,生成一份xml文件。原创 2024-03-20 15:58:34 · 489 阅读 · 0 评论 -
65、记录RTMpose转TensorRT过程,测试c++/python
不知道为啥,我转失败了,但是生成了end2end.onnx模型,无关紧要,然后使用TensorRT自带的工具转engine。基本思想:记录一下,官方的mmpose+custom_mmdeploy中的RTmpose转TensorRT过程,纯粹记录。一、下载mmpose官方代码,然后配置环境,参考官方配置即可。cuda和cudnn的版本,参考。转成功之后,然后找个代码测测,使用clion测试,改了CMakeLists.txt。main.cpp直接找了个图片,标注了一个人的位置,然后跑一下关键点检测。原创 2023-12-06 08:59:57 · 523 阅读 · 0 评论 -
64、使用Python拉取RK3588视频流,然后进行batchsize=3的USB摄像头推理(暂没使用编解码mpp.so)/RTSP流,将推理结果的视频帧分三路推送到亚马逊云服务上
基本思想:一个基本需求是使用OAK三路相机,进行解码然后推理同时推送三路视频流到亚马逊云服务上,这里只是用usb摄像头做个验证,解码和编码使用自己已经编译编译好的mpp.so,使用python去掉用即可。原创 2023-11-12 13:43:25 · 831 阅读 · 0 评论 -
63、python使用v4l2调用香橙派rk3588外接的USB摄像头测试
需要修正一下下载包中的[前提已经下载下来下面的编译包 pyhon-v4l2capture] orangepi@orangepi5b:~/python-v4l2capture$ sudo vim v4l2capture.c这个文件。基本思想:因为在香橙派上使用opencv方式无法调用usb的摄像头,所以我们使python版本的v4l2调用摄像头,这里做一下记录。第二步:使用官方代码进行python版本的v4l2安装,主要要是你遇到这个问题,第一步:安装必要的包,让其支持v4l2的调用方式。原创 2023-11-08 13:49:22 · 1433 阅读 · 0 评论 -
62、使用python进行rk3588开发板进行推流亚马逊云服务上,进行实时播放
基本思想:之前写了一套c++的推理和视频编解码,使用rk3588的mpp硬件进行编码和解码,然后使用RTSPServer进行推流,总是有问题,虽然可以使用ffplay和vlc进行拉取和播放,但是就是无法使用gstreamer推流到亚马逊云服务上,因为项目需求的紧急,所以先用python把流程跑同,后续在进行详细的探究和研究。2) 然后需要下载一下流媒体服务,因为rk3588s的开发板是armv8的架构,所以需要下载armv8架构的可执行文件。一、连接rk3588s的开发板。3)下载亚马逊的官方的推流代码。原创 2023-11-07 09:13:29 · 991 阅读 · 0 评论 -
61、人属性模型PaddleClas部署和使用,框架基于MNN、NCNN、RKNN、TensorRT、OPENVINO、OAK
基本思想:项目需要一个TensorRT的检测人属性的模型,随手搜了一个,转了一下,比较简单。二、测试和转模型pth2onnnx.py。五、openvino推理。八、tensorRT推理。七、rk3588推理。原创 2023-07-17 09:21:54 · 663 阅读 · 0 评论 -
60、使用MNN+DBNET进行条形码检测
链接: https://pan.baidu.com/s/1qVAKk5b_nxHjIW6xF1Be4w?pwd=bmxt 提取码: bmxt。基本思想:顺手转了个模型,可以方便进行条形码和对应的数字检测,以方便下一步进行条形码识别和ocr进行数字检测。原创 2023-06-28 08:42:17 · 415 阅读 · 0 评论 -
59、使用目标检测框架进行压力表识别和刻度检测
二、代码片段,使用onnx进行推理,这样为了后续方便是用ncnn/mnn/tensorrt进行目标检测框架模型转换,测试成功,暂不写详细的方案,只做简单的记录。基本思想:纯用目标检测进行压力表检测,具体思路就不介绍了,贴个测试图和结果图。一、进行图片标定,标定来自公开的一些数据集搜素,数据集按照正常标注就行。原创 2023-05-26 15:36:51 · 644 阅读 · 3 评论 -
58 、python多线程读取视频,以及使用tensorrt Batchsize=4处理视频
基本思想:记录一下,实验环境rtx3050 cuda11.1 cudn11.3 tesorRT8.6。二、基于官方作者得代码进行修改,是用batchsize=4进行tensorrt进行推理。一 、同时读四个视频进行播放显示。原创 2023-05-16 15:22:53 · 883 阅读 · 2 评论 -
57、Yolov8-seg实例分割部署NCNN、MNN、ONNX、OpenVINO、OAK,RK3588平台上
基本思想:部署yolov8-seg到mnn、openvino、oak平台上,仅仅做记录。一、是用官方模型转onnx首先,然后进行sim一下,是用模型日期2023-04-22。原创 2023-04-22 08:49:00 · 4820 阅读 · 23 评论 -
56、训练PaddleDetection的tinypose128x96关键点模型部署ncnn框架、mnn框架、openvino框架
基本思想:需要移植一个自训练的关键点模型到AX620A,看到社区已经有了,记录一下流程以备自己以后自训练使用。原创 2023-03-07 13:34:20 · 760 阅读 · 4 评论 -
55、记录标注的关键点和目标检测数据集,进行目标检测标注文件和关键点文件分离以及yolov5.txt标注格式转xml数据集
基本思想:手中存在一份关键点检测模型,因为客户把检测框和目标关键点框都标注在一起了,所以进行一下剥离代码一:从关标注数据集剥离目标检测原创 2022-12-24 11:27:27 · 619 阅读 · 0 评论 -
54、记录yolov7 训练、部署ncnn、部署mnn、部署rk3399pro npu、部署openvino、部署oak vpu、部署TensorRT
基本思想:记录一下yolov7训练人头检测和部署oak的vpu相机上和rk3399 pro开发板上,完成需求。一、准备数据集,来自官方数据集,存在问题,已经修正。二、在现有的数据集基础上转yolo数据集。修改yolov7.yaml。四、修改coco.yaml。原创 2022-12-15 15:22:25 · 5327 阅读 · 9 评论 -
53、正确导出onnx模型,以及替换对应的算子支持
基本思想:学习tensorRT教程,来自bilibi ,参考附录一,和在实际算法使用中遇到的总结模型结果修改一结果代码结果使用大老师的onnxsim也可以直接简化结果二、yolov5-5.0的转模型修改源码三、修改第三条源码需要将reshape的第一个维度改成-1,继续改四、插播ncnn的转模型,就只剩下slice报错了,去掉了gather和shape节点五、channel_shuffle通道洗牌模型显示sim一下,存在五维度需要修改成低于五维度数据格式修改代码模型可以转ncnn,还没测试。原创 2022-12-12 10:42:25 · 2188 阅读 · 0 评论 -
51、目标的相似度检测模型Siamese部署rk3399pro、ncnn、mnn进行推理加速
基本思想:需要一个判断目标相似度的模型,来比对被检测目标和既定目标的相似度,比如用火影忍者测试图片。原创 2022-11-03 18:06:54 · 1106 阅读 · 1 评论 -
50、实例分割SparseInst模型部署mnn、ncnn、rknn,完成业务需求
基本思想:看了金东大佬的知乎,羡慕其检测速度和效果,业务存在对实例分割的需求,需要移植嵌入式开发板上,趁国庆节休息几天,搞一下几个例子,部署一下。其中转rknn模型的代码,dataset.txt只有一张图片路径。修改opset_version=9,原因。简化模型转ncnn、mnn、rknn。二、官方提供了转换onnx的代码。一、下载官方代码,测试一下。原创 2022-10-11 12:35:45 · 1535 阅读 · 2 评论 -
49、R-YOLOv4旋转目标检测,并进行ncnn和mnn部署开发
基本思想:需要一个简单的旋转目标检测算法,完成业务任务,并输出矫正后的角度信息第一步:下载台湾小哥的源码原创 2022-08-30 13:52:59 · 1685 阅读 · 2 评论 -
48、mmpose中hrnet关键点识别模型转ncnn和mnn,并进行训练和部署
需要一个关键点识别模型,在权衡simplepose 、paddlepose、mmpose之后,发现simplepose需要mxnet(qiuqiu大佬)支持,paddlepose的部署存在易用性问题,也可能我不熟悉.测试了paddleDetection的关键点检测,模型的确转换很容易转,但还是想迁移到ncnnn和mnn去完成任务,同时还在学习TensorRT基本知识,有个onnx还是必须的,反正找理由不用它而已,哈哈,在测试mmpose感觉还可以,毕竟还有mmploy支持部署,应该不用去改源码支持模型转换,原创 2022-08-21 13:04:14 · 3261 阅读 · 8 评论 -
47、以Orienmask实例分割算法为例子,学习TensorRT的Python和C++开发
基本思想:一直想学tensorRT开发,没时间,最近有时间,学习一下TensorRT开发,这篇文章的资料大部分来自网络和手册,以学习的目的,促进自己的任务目标实现。4)最终进行推理的则是cuda引擎生成的ExecutionContext。2)然后使用Parsers将onnx等网络框架下的结构填充计算图,当然也可以使用tensorrt的API进行构建。测试一下时间,只比较推理时间,后处理一致 engine完整的推理代码(含转模型)数据比对onnx和tengine是一致的,onnx的数据。...........原创 2022-08-03 14:54:59 · 734 阅读 · 4 评论 -
45、实例分割的labelme数据集转coco数据集以及coco数据集转labelme数据集、转paddleSeg数据集
如果要将官方的coco数据集转成labelme,稍微有点不同,因为官方的coco的实际标签是排列到90,当将coco数据集转成labelme数据集时候,需要修改一下标签,插入空标签。基本思想需要自己标注一些数据集和coco单类别数据集进行混合训练,写了脚本提取coco部分数据集train2017实例分割数据集。第二步要是需要上述或者别人生成的coco数据集转成labelme数据集,可以用下面的脚本(可以将下列脚本修改用于目标检测的数据集生成).....................原创 2022-07-25 14:33:48 · 3392 阅读 · 1 评论 -
46、记录训练OrienMask过程和部署运适科技深度相机过程
基本思想训练OrienMask模型,然后部署深度相机进行检测和深度信息输出。第一步爬虫数据,参考知乎大佬,看附录参考地址,爬纸杯子图片600张。原创 2022-07-18 14:18:17 · 656 阅读 · 1 评论 -
43、python的permute、tanspose、view、reshape方法转换转c++函数去处理
基本思想:需要使用c++将permute维度的数据转成c++进行后处理,所以记录一下首先我将原始数据拉伸成一维数组进行预先存起来,这里做了简单测试和记录原创 2022-07-12 17:03:34 · 1096 阅读 · 0 评论 -
44、使用OrienMask进行实例分割目标检测,并进行mnn部署和ncnn部署
基本思想:项目需求一个实例分割的部署,查找了几篇论文,看了几个code,发现OrienMask比较容易实现部署,逐开始操作第一步:下载代码进行训练,根据install.md配置环境原创 2022-07-02 12:32:17 · 1631 阅读 · 0 评论 -
42、使用mmrotate中k3det进行旋转目标检测,并进行mnn部署和ncnn部署
基本思想:仍然是身份证分割,并进行ncnn和mnn的c++的部署开发原创 2022-04-11 19:52:14 · 4989 阅读 · 33 评论 -
41、labelme数据集转dota、rolabelimg以及rolabelimg转dota、labelme和labelimg数据集旋转水平镜像 垂直镜像 和水平垂直镜像
基本思想:为了给BBAVectors-Oriented-Object-Detection 提供数据,所以记录一下操作一、labelimg转dota数据集 ,并做了顺时针排序处理import jsonimport osfrom glob import globimport argparseimport numpy as npimport shutilfrom PIL import Image# convert labelme json to DOTA txt format# c.原创 2022-04-08 08:56:32 · 3358 阅读 · 0 评论 -
40、使用BBAVectors-Oriented-Object-Detection 进行旋转目标检测,并使用mnn和ncnn进行部署
基本思想:需要对身份证进行分割;第一步下载源码ubuntu@ubuntu-Super-Server:~/sxj731533730$ git clone https://github.com/open-mmlab/mmdetection.gitCloning into 'mmdetection'...remote: Enumerating objects: 23529, done.remote: Total 23529 (delta 0), reused 0 (delta 0), pac原创 2022-03-13 00:12:50 · 4124 阅读 · 9 评论 -
39、Pytorch口罩模型,转成ncnn和mnn进行口罩检测
基本思想:手中有一个口罩检测的模型,随手记录一下MNN转化过程一、模型工具转化ubuntu@ubuntu:~/MNN/build$ ./MNNConvert -f TF --modelFile facemask.pb --MNNModel facemask.mnn --bizCode MNNStart to Convert Other Model Format To MNN Model...Start to Optimize the MNN Net...inputTensors : [ da原创 2022-03-04 11:45:47 · 2063 阅读 · 0 评论 -
38、静默活体检测测试及ncnn、mnn部署
基本思想:因为最近需要搞个Android端的活体检测,github了一下,git到小视科技公司的一个开源项目,听了大佬的介绍,因此测试了一下,效果还可以,于是进行了模型转换和ncnn、tnn、mnn部署一、首先测试一下大佬们的开源框架git clone https://github.com/minivision-ai/Silent-Face-Anti-Spoofing.git(1)、首先测试一下其提供的图片测试结果"C:\Program Files\Python36\pyth..原创 2022-01-26 17:59:06 · 5025 阅读 · 4 评论 -
37、记录使用 Swin Transformer主干网络去实现分类,并转化NCNN、TNN、MNN模型以及部署
基本思想:最近手中有个swim transformer模型,想移植手机端进行推理一下,随手记录一下遇到的问题一、首先我fork了大佬的代码,查阅主代码结构是华为分类垃圾的源码,然后作者参考了swin_transformer的架构做了修改,修改参考来自Swin-Transformer/swin_transformer.py at 5d2aede42b4b12cb0e7a2448b58820aeda604426 · microsoft/Swin-Transformer · GitHub(1)首先将模..原创 2022-01-20 16:13:12 · 8721 阅读 · 21 评论 -
36、Pytorch之小土堆学习记录
基本思想:花了两天时间把bilibil上小土堆的视频刷完了,简单记录一下PyTorch深度学习快速入门教程(绝对通俗易懂!)【小土堆】_哔哩哔哩_bilibili一、首先是搭建训练网络(1)、网络模型model_tudui.pyimport torch.nn as nnimport torchclass Tudui(nn.Module): def __init__(self): super(Tudui,self).__init__() .原创 2022-01-15 13:08:16 · 1502 阅读 · 0 评论 -
35、基于shufflenetv2分类模型修改和onnx模型转化,以及ncnn模型部署
基本思想:使用简单的shufflenetv2进行分类,然后转成onnx,部署ncnn上一、代码fork别的大佬的原创 2022-01-04 21:23:54 · 1929 阅读 · 5 评论 -
34、批量视频转图片
基本思想:将批量视频转成图片,并且保存# coding=utf-8import cv2import osimport threadingfrom threading import Lock, Threadvideo_path = r"/home/ubuntu/dataset/neck";pic_path = r"/home/ubuntu/dataset/yy";def video2pic(fullpath): # print(filename) (filepath,原创 2021-12-09 10:22:07 · 403 阅读 · 0 评论 -
33、将Resnet32数据集转成nanodet的数据集
基本思想:因为手中有一份Resnet32的数据集,是以文件夹命名的分类图片,想用检测的模型进行训练一下,因为每张图图片的尺寸大小固定,且每个图片的目标位置大概都是固定的,逐写一个py代码构建一个标注文件xml即可生成数据集代码# encoding:utf-8from xml.dom.minidom import Documentimport osimport cv2dataDir=r"F:\sxj\20191229_zhou_2\fist_self_training\fist_da.原创 2021-11-23 16:08:06 · 420 阅读 · 0 评论 -
32 、 YOLO5训练自己的模型以及转ncnn模型
首先下载yolo5源代码,安装必要的软件配置ubuntu@ubuntu:~$ https://github.com/ultralytics/yolov5ubuntu@ubuntu:~$ pip install -U -r requirements.txtubuntu@ubuntu:~$ cd yolo5ubuntu@ubuntu:~/yolov5$ mkdir trainDataubuntu@ubuntu:~/yolov5$ cd trainData/ubuntu@ubuntu:~/yolo原创 2021-01-16 09:46:20 · 2146 阅读 · 0 评论 -
31、TensorFlow训练模型转成tfilte,进行python、Android端进行车辆检测、跟踪、部署
基本思想:想写一个Android的车辆检测和跟踪,于是tflite的使用和探索~ubuntu@ubuntu:~$git clone https://github.com/ultralytics/yolov5.gitubuntu@ubuntu:~$ cd yolo5ubuntu@ubuntu:~/yolo5$ bash weights/download_weights.shubuntu@ubuntu:~/yolo5$ python models/export.py --weights yolov5原创 2021-02-19 16:20:20 · 2497 阅读 · 2 评论 -
30、进行Yolov5(TensorRT batchsize=1/4)+bytetrack+统计,支持多路口正向和逆向数据统计、轨迹绘制
基本思想:最近改了一版yolox+deepsort+tensorrt代码,比较简单,github教程很多,对其中一个过线统计写了个def,随手记录一下方法,利用向量三角形的面积正负来判断追踪目标是否过线,并进行计数统计首先定义类的成员变量self.carSet = set()self.personSet = set()self.busSet = set()self.str_dict = {}self.diff_dict = {}然后在追踪模块中追加三个坐标点原创 2021-08-27 14:18:45 · 1573 阅读 · 2 评论 -
12、对jpg+json数据集进行xml数据集转化并且清除特殊字符以及修改labelimg标注文件xml文件、标注文件和图片缩放
基本思想:对现存的数据集和json文件进行去中文字段# -*- coding: utf-8 -*-import xmltodictimport osimport sysimport jsonimport ioimport osfrom xml.dom.minidom import Document############################## 将原来的数据切记备份,以防发生意外#############################global nullnull =原创 2021-08-13 11:52:03 · 859 阅读 · 0 评论