一、問題描述
最近在linux服務(wù)器上部署YOLOv4項目(https://github.com/Tianxiaomo/pytorch-YOLOv4),配置好環(huán)境以后,運行demo.py進行測試,報錯如下:
Traceback (most recent call last):
File "demo.py", line 161, in <module>
detect_cv2(args.cfgfile, args.weightfile, args.imgfile)
File "demo.py", line 57, in detect_cv2
plot_boxes_cv2(img, boxes[0], savename='predictions.jpg', class_names=class_names)
File "/opt/data/private/YOLOv5/pytorch-YOLOv4-master/tool/utils.py", line 145, in plot_boxes_cv2
cv2.rectangle(img, (x1,y1), (np.float32(c3[0]), np.float32(c3[1])), rgb, -1)
cv2.error: OpenCV(4.5.5) :-1: error: (-5:Bad argument) in function 'rectangle'
> Overload resolution failed:
> - Can't parse 'pt2'. Sequence item with index 0 has a wrong type
> - Can't parse 'pt2'. Sequence item with index 0 has a wrong type
> - Can't parse 'rec'. Expected sequence length 4, got 2
> - Can't parse 'rec'. Expected sequence length 4, got 2
二、解決方法
報錯顯示,在調(diào)用函數(shù)cv2.rectangle時,無法分析“pt2”參數(shù)。索引為0的序列項的類型錯誤,去opencv官網(wǎng)查看用法如下:
這下對應(yīng)上了,是第二個參數(shù)pt2類型錯誤,強轉(zhuǎn)int后運行,這個函數(shù)沒報錯了,又有其他opencv的函數(shù)報錯。。。
最終方案
一個一個改也不是辦法,最終發(fā)現(xiàn)是python版本和opencv_python不對應(yīng),我的python版本是3.6,opencv_python為4.5.5.64,改為4.4.0.46之后問題解決,具體操作如下:文章來源:http://www.zghlxwxcb.cn/news/detail-660586.html
- 查看opencv_python版本:
pip show opencv_python
- 卸載原來的opencv_python:
pip uninstall opencv_python
- 安裝4.4.0.46版本的的opencv_python:
pip install opencv_python==4.4.0.46
如果是其他版本的python,請參考下圖找到對應(yīng)版本的opencv_python文章來源地址http://www.zghlxwxcb.cn/news/detail-660586.html
到了這里,關(guān)于【YOLOv4運行demo.py報錯】:cv2.error: OpenCV(4.5.5) :-1: error: (-5:Bad argument) in function ‘rectangle‘的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!