darknet-ocr icon indicating copy to clipboard operation
darknet-ocr copied to clipboard

部分图片一识别就奔溃。CUDA Error: invalid configuration argument

Open deeroad opened this issue 4 years ago • 10 comments

CUDA Error: invalid configuration argument python3: ./src/cuda.c:36: check_error: Assertion `0' failed. 大部分图片都正常,只有部分图片会这样,一识别就崩溃。 如下图片: https://i.niupic.com/images/2020/02/13/6qpg.png

deeroad avatar Feb 13 '20 15:02 deeroad

已经找到原因: 是因为图片分割(detect_lines)后,如果被分割的图片宽度小于一定的数值,predict_image就会崩溃,应该是跟训练有关系。解决也很简单,做个判断就可以。darknet.py 主动抛个异常,其它地方捕获一下就行了。 ` def array_to_image(image): boxed_image = np.array(image) boxed_image = np.array(cv2.split(boxed_image)) c = boxed_image.shape[0] h = boxed_image.shape[1] w = boxed_image.shape[2] if w < 50: raise Exception("width not supported")

image = boxed_image.flatten()
data = c_array(c_float, image)
im = IMAGE(w, h, c, data)
return im`

deeroad avatar Feb 14 '20 04:02 deeroad

@deeroad 你好,请问你是在linux环境下还是在windows环境下运行的。

junthy-me avatar Feb 14 '20 07:02 junthy-me

@deeroad 你好,请问你是在linux环境下还是在windows环境下运行的。

win10系统无法运行这个项目,感觉有点鸡肋

wwzh2015 avatar Feb 16 '20 06:02 wwzh2015

@deeroad 你好,请问你是在linux环境下还是在windows环境下运行的。

win10系统无法运行这个项目,感觉有点鸡肋

我在ubuntu下运行遇到了问题,请问能请教一下你吗?😥运行ocr.py遇到 python:段错误(核心已转储)。如果方便的话,能加一下我的QQ吗?QQ:1126654139,验证问题答案:胡军涛。万分感谢,真的比较着急。🙏

junthy-me avatar Feb 17 '20 05:02 junthy-me

@deeroad 你好,请问你是在linux环境下还是在windows环境下运行的。

win10系统无法运行这个项目,感觉有点鸡肋

我是Ubuntu 18.4,目前正常,Win10 cpu模式识别结果乱码。

deeroad avatar Feb 17 '20 10:02 deeroad

您好,我是在colab上运行,也是好多图片一跑就崩溃。根据您的解答确实可以避免崩溃,但是我没太搞明白为什么w需要>=50,我看代码里只是判断了w<8,而且h的大小也只是32.

@deeroad 你好,请问你是在linux环境下还是在windows环境下运行的。

win10系统无法运行这个项目,感觉有点鸡肋

我是Ubuntu 18.4,目前正常,Win10 cpu模式识别结果乱码。

chenzeng11 avatar Mar 11 '20 13:03 chenzeng11

您好,我是在colab上运行,也是好多图片一跑就崩溃。根据您的解答确实可以避免崩溃,但是我没太搞明白为什么w需要>=50,我看代码里只是判断了w<8,而且h的大小也只是32.

@deeroad 你好,请问你是在linux环境下还是在windows环境下运行的。

win10系统无法运行这个项目,感觉有点鸡肋

我是Ubuntu 18.4,目前正常,Win10 cpu模式识别结果乱码。

崩溃的问题解决了,我的解决方案是在读完图片后进行了旋转。所以,可能是因为照片在旋转后无法进行识别(旋转180度没有尝试)。

chenzeng11 avatar Mar 11 '20 13:03 chenzeng11

@deeroad 大佬,你这个是怎么定位出来的,我解决了这个问题,但又有相似情况,不知道定位的步骤,直接c代码就出问题。

qianlongzju avatar Apr 01 '20 09:04 qianlongzju

ocr.py 里有outW = int(np.ceil(w/4)-3),这也是网络输出特征的outW,如果输入小于13,则输出特征图的宽为0,会报错;所以把84行 if w<8: 改为 w<13即可。

jiojio1973 avatar Apr 24 '20 05:04 jiojio1973

@jiojio1973 ,不只是在outW那儿报错,当w=8时,在res = predict_image(ocrNet, im)这一句会输出一个 python: ,然后就退出了

chenzeng11 avatar Nov 09 '20 13:11 chenzeng11