Giter Site home page Giter Site logo

Comments (10)

UNeedCryDear avatar UNeedCryDear commented on June 16, 2024

由于推理出来的数据是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.

UNeedCryDear avatar UNeedCryDear commented on June 16, 2024

memcpy改下?这个是字节复制的,float类型是4个字节,你这里的长度都不对,结果肯定有问题啊

from yolov5-seg-opencv-onnxruntime-cpp.

xinsuinizhuan avatar xinsuinizhuan commented on June 16, 2024

memcpy改下?这个是字节复制的,float类型是4个字节,你这里的长度都不对,结果肯定有问题啊

感谢您。已经解决了!

from yolov5-seg-opencv-onnxruntime-cpp.

UNeedCryDear avatar UNeedCryDear commented on June 16, 2024

已经新增了onnxruntime部署,至于trt,已经有人写了我就不继续了。

from yolov5-seg-opencv-onnxruntime-cpp.

ghmchen avatar ghmchen commented on June 16, 2024

已经新增了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.

UNeedCryDear avatar UNeedCryDear commented on June 16, 2024

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.

ghmchen avatar ghmchen commented on June 16, 2024

根据你 github提供的代码,yolov5-seg 可以导出onnx 模型,并在opencvDNN C++ 上运行。 yolov7-u7 分支 我可以导出 onnx 模型,在python下可以成功运行(predict.py). 我需要设法把yolov7-u7 分支 导出的 onnx 模型。运行在C++ openCV DNN 上。 谢谢回复。

from yolov5-seg-opencv-onnxruntime-cpp.

UNeedCryDear avatar UNeedCryDear commented on June 16, 2024

根据你github提供的代码,yolov5-seg可以导出onnx模型,并在opencvDNN C++上运行。yolov7-u7分支持我可以导出onnx模型,在python下可以成功运行(predict.py)。我需要设置方法把yolov7-u7分支持导出的onnx模型。运行在C++ openCV DNN上。谢谢回复。

我看了一下yolov7-u7分支,这不就是yolov5的v6.2版本吗?那不就没啥差别,直接导出就可以跑onnx了啊,你试下?
image

from yolov5-seg-opencv-onnxruntime-cpp.

ghmchen avatar ghmchen commented on June 16, 2024

我按照导出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"
image
但是当用你的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.

UNeedCryDear avatar UNeedCryDear commented on June 16, 2024

torch1.12的话你要改下do_constant_folding=False看下

from yolov5-seg-opencv-onnxruntime-cpp.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.