UNeedCryDear / yolov8-opencv-onnxruntime-cpp

yolov8 hub,cpp with onnxruntime and opencv
Apache License 2.0
341 stars 60 forks source link

onnxruntime推理应该不需要那么高的opencv版本把 #3

Closed lofyol closed 1 year ago

UNeedCryDear commented 1 year ago

不需要,这个版本要求是opencv推理的要求,如果是onnx的话,只要你能把图片读取,并且这里的函数可以正确通过就行https://github.com/UNeedCryDear/yolov8-opencv-onnxruntime-cpp/blob/02992f49478a722855b39eba0d95663b3707c9d2/yolov8_onnx.cpp#L168 如果这里无法正确过去,你就得自己实现这里的功能替换一下也是可以的,只不过我懒得用c++实现这部分,偷懒用的opencv的接口

lofyol commented 1 year ago

好的

lofyol commented 1 year ago

C++ onnxruntime推理,用低版本的会报错,低版本的ort不支持v8的onnx中的算子吗

UNeedCryDear commented 1 year ago

你是哪个版本会报错,,,我目前还不知道onnxruntime的版本需求,我只测试了onnx 1.11~1.13没问题

lofyol commented 1 year ago

你是哪个版本会报错,,,我目前还不知道onnxruntime的版本需求,我只测试了onnx 1.11~1.13没问题

1.8.1, 加载session的时候就报错

lofyol commented 1 year ago

你是哪个版本会报错,,,我目前还不知道onnxruntime的版本需求,我只测试了onnx 1.11~1.13没问题

1.8.1, 加载session的时候就报错

UNeedCryDear commented 1 year ago

报错信息呢?报错给出报错信息啊,你这么说我也不知道是啥问题。如果我手上目前没有1.8的版本,等会我去下载个看看

lofyol commented 1 year ago

我是自己训练v8的pt转的onnx,大概就是读取位置发生访问冲突

UNeedCryDear commented 1 year ago

发生访问冲突的同时,控制台有无提示报错信息,有的话报错信息截图? 我跟你说先这样,再那样,然后这里改成这个,哪里改成那个,大概就可以了,你能听得懂在说什么吗? 如果你换onnx版本没啥成本,换就是了,有成本就得抢救一下,但是你连基本的环境信息都不给,我怎么知道你到底是哪里出现的问题 导出命令是什么,opeset版本多少?实在不行就换成官方的模型按照你的导出命令看看,如果还是一样的报错,改改opset的版本,如果到最后不行就是真的onnx版本问题,那就考虑换onnx版本。

lofyol commented 1 year ago

捕获

UNeedCryDear commented 1 year ago

image 这里换成CR LF

lofyol commented 1 year ago

换了 还是这些报错

lofyol commented 1 year ago

错误 C2039 "GetOutputNameAllocated": 不是 "Ort::Session" 的成员 , 这个报错是onnxruntime版本低了 好像

UNeedCryDear commented 1 year ago

你就不会每个相关文件都换一遍吗?

lofyol commented 1 year ago

111 换完了,只剩下这些报错

UNeedCryDear commented 1 year ago

GetOutputNameAllocated这个错误是版本问题,换成GetOutputName image 然后去掉智能指针部分即可

lofyol commented 1 year ago

我昨天也是改成了 GetOutputName,后续还是有报错,低版本报内存加载异常,我用1.14的ort就报找不到onnxruntime.pdb

lofyol commented 1 year ago

捕获 报这个错你知道是什么原因吗 昨天弄到最后也是报这个错

UNeedCryDear commented 1 year ago

opencv推理的话需要opencv4.7.0

lofyol commented 1 year ago

用的onnxruntime推理

UNeedCryDear commented 1 year ago

你这明显的opencv读取模型失败,为什么会是用onnxruntime推理呢

lofyol commented 1 year ago

你这明显的opencv读取模型失败,为什么会是用onnxruntime推理呢

哦哦 谢了 我再认真看下

UNeedCryDear commented 1 year ago

已经更新了,onnxruntime我试了下,1.8的不行,最少要1.9.0

lofyol commented 1 year ago

已经更新了,onnxruntime我试了下,1.8的不行,最少要1.9.0

好的 谢谢