Comments (10)
由于推理出来的数据是float*格式的,但是dnn推理出来的结果直接是cv::Mat格式
格式什么的不影响,你可以看我也都是直接转为指针处理的。
2、然后归一化
我一般不会像你这样单独处理,因为我测试过了,这种方案速度不行,一般用的opencv的blobFromImage()这个API,将数据转成4维并且归一化,之后这个的输出就是blob,shape:[1,3,640,640],然后将他的指针通过ort的CreateTensor接口的第二个参数(这里刚好要求指针)赋值给ort的输入即可,大概类似下面这种做法。
Mat blob = blobFromImages(img, 1 / 255.0, inputSize, Scalar(0, 0, 0), true, false);
auto input=Ort::Value::CreateTensor<float>(memoryInfo, (float*)blob.data, inputTensorSize, inputTensorShape.data(),inputTensorShape.size())
from yolov5-seg-opencv-onnxruntime-cpp.
memcpy改下?这个是字节复制的,float类型是4个字节,你这里的长度都不对,结果肯定有问题啊
from yolov5-seg-opencv-onnxruntime-cpp.
memcpy改下?这个是字节复制的,float类型是4个字节,你这里的长度都不对,结果肯定有问题啊
感谢您。已经解决了!
from yolov5-seg-opencv-onnxruntime-cpp.
已经新增了onnxruntime部署,至于trt,已经有人写了我就不继续了。
from yolov5-seg-opencv-onnxruntime-cpp.
已经新增了onnxruntime部署,至于trt,已经有人写了我就不继续了。
Hello UNeedCryDear, I would like to thank you for your great contributions in C++ deployment of yolov5 and v7. Your work have benfited many people like me. Do you have a plan to make c++ instance segmentation (yolov7 u7 branch) work? Thanks.
from yolov5-seg-opencv-onnxruntime-cpp.
Hello UNeedCryDear, I would like to thank you for your great contributions in C++ deployment of yolov5 and v7. Your work have benfited many people like me. Do you have a plan to make c++ instance segmentation (yolov7 u7 branch) work? Thanks.
yolov7我之前试过mask分支的部署,由于部分算子和部分网络结构opencv无法支持,并且windows下面的detectron2不好弄,后面我重装系统之后我就没继续做了。至于你说yolov7-u7分支,我没试过,不过看他的结构和readme是基于yolov5的,你可以试试看下yolov5-seg的onnxruntime版本能不能运行起来导出的onnx模型。至于opencv的版本,我估计希望不大,局限性太大了,不如onnxruntime
from yolov5-seg-opencv-onnxruntime-cpp.
根据你 github提供的代码,yolov5-seg 可以导出onnx 模型,并在opencvDNN C++ 上运行。 yolov7-u7 分支 我可以导出 onnx 模型,在python下可以成功运行(predict.py). 我需要设法把yolov7-u7 分支 导出的 onnx 模型。运行在C++ openCV DNN 上。 谢谢回复。
from yolov5-seg-opencv-onnxruntime-cpp.
根据你github提供的代码,yolov5-seg可以导出onnx模型,并在opencvDNN C++上运行。yolov7-u7分支持我可以导出onnx模型,在python下可以成功运行(predict.py)。我需要设置方法把yolov7-u7分支持导出的onnx模型。运行在C++ openCV DNN上。谢谢回复。
我看了一下yolov7-u7分支,这不就是yolov5的v6.2版本吗?那不就没啥差别,直接导出就可以跑onnx了啊,你试下?
from yolov5-seg-opencv-onnxruntime-cpp.
我按照导出yolov5 的方法,成功导出 yolov7-seg u7 的onnx.
C:\yolo\yolov7\seg\export.py
--weights
C:/yolo/yolov7/seg/runs/train-seg/torborweb_model/weights/best.pt
--img
640
--batch
1
--opset
12
--include
onnx
用predict.py 测试 导出的onnx,可以成功输出结果。
C:\yolo\yolov7\seg\segment\predict.py
--img
640
--weights
C:\yolo\yolov7\seg\runs\train-seg\torborweb_model\weights\best.onnx
--source
"D:\temp\probe2021081806107\img_baddata_256\L0_210_5.png"
但是当用你的yolov5-seg-opencv-onnxruntime-cpp 运行 此onnx 时,出现以下错误:
[ INFO:0] global D:\opencv453\opencv-4.5.3\modules\dnn\src\onnx\onnx_importer.cpp (429) cv::dnn::dnn4_v20210608::ONNXImporter::populateNet DNN/ONNX: loading ONNX v7 model produced by 'pytorch':1.12.1. Number of nodes = 554, inputs = 1, outputs = 5
OpenCV(4.5.3) Error: Assertion failed (inputs.size()) in cv::dnn::dnn4_v20210608::Layer::getMemoryShapes, file D:\opencv453\opencv-4.5.3\modules\dnn\src\dnn.cpp, line 5298
[ERROR:0] global D:\opencv453\opencv-4.5.3\modules\dnn\src\onnx\onnx_importer.cpp (2127) cv::dnn::dnn4_v20210608::ONNXImporter::handleNode DNN/ONNX: ERROR during processing node with 1 inputs and 1 outputs: [Identity]:(onnx::Reshape_910)
[ INFO:0] global D:\opencv453\opencv-4.5.3\modules\dnn\src\onnx\onnx_importer.cpp (2131) cv::dnn::dnn4_v20210608::ONNXImporter::handleNode Input[0] = 'onnx::Reshape_870'
[ INFO:0] global D:\opencv453\opencv-4.5.3\modules\dnn\src\onnx\onnx_importer.cpp (2135) cv::dnn::dnn4_v20210608::ONNXImporter::handleNode Output[0] = 'onnx::Reshape_910'
OpenCV(4.5.3) Error: Unspecified error (> Node [Identity]:(onnx::Reshape_910) parse error: OpenCV(4.5.3) D:\opencv453\opencv-4.5.3\modules\dnn\src\dnn.cpp:5298: error: (-215:Assertion failed) inputs.size() in function 'cv::dnn::dnn4_v20210608::Layer::getMemoryShapes'
) in cv::dnn::dnn4_v20210608::ONNXImporter::handleNode, file D:\opencv453\opencv-4.5.3\modules\dnn\src\onnx\onnx_importer.cpp, line 2146
from yolov5-seg-opencv-onnxruntime-cpp.
torch1.12的话你要改下do_constant_folding=False看下
from yolov5-seg-opencv-onnxruntime-cpp.
Related Issues (20)
- 错误字符串 HOT 4
- 请问onnxruntime安装是GPU版本的吗?【目前,我使用onnxruntime-cpu 1.12.0可以解决问题了】 HOT 9
- BUG HOT 3
- 预训练模型加载正常,但自训练模型报错 HOT 2
- 怎么使用? HOT 8
- 请问这种情况是哪地方错误了? HOT 5
- 为什么运行不出现结果 HOT 1
- 为什么c++推理时间比python中的推理时间更长? HOT 12
- onnxruntime推理出错 HOT 3
- 引发了异常: 读取访问权限冲突。 **Ort::GetApi**(...) 返回 nullptr。 HOT 2
- 移植问题 HOT 8
- 如何在ubuntu下运行? HOT 2
- undefined reference to `OrtSessionOptionsAppendExecutionProvider_CUDA' HOT 1
- Detect failed! HOT 1
- 运行时间 HOT 1
- mask =mask(temp_rect -Point(left, top)) > mask_threshold;请问这句话是什么意思?我总是在这里报错 HOT 8
- GPU推理内存占用过大 HOT 3
- c++推理结果与python推理结果不一致问题 HOT 16
- 代码崩溃: HOT 18
- Does this software work in a Ubuntu 18.04 machine without GPU? HOT 7
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from yolov5-seg-opencv-onnxruntime-cpp.