Giter Club home page Giter Club logo

Comments (23)

wenlihaoyu avatar wenlihaoyu commented on August 11, 2024 1

ocr dnn版本需要修改opencv源码编译(修改setMaxpool),这部分代码目前未上传。因为darknet不支持stride=2,1这种形式,默认窗口是正方形而不是矩形。所以模型推测环节就会出现乱码。你们应该是修改ocr.py文件,将“if 1:” 改为了:"if GPU",没有修改opencv源码编译,不要修改此处。要支持relu也要修改opencv源码。后面整理好会上传,不过也只会支持linux系统,不会支持windows。

from darknet-ocr.

jnkr36 avatar jnkr36 commented on August 11, 2024

我也遇到同样的问题 如果是用最大的chinese的模型,不用chinese-5k的话,在ocrNet = cv2.dnn.readNetFromDarknet(ocrPath.replace('.weights', '.cfg'), ocrPath)这里还会报错

from darknet-ocr.

deeroad avatar deeroad commented on August 11, 2024

win10下CPU模式,python3.6.5,已编译cpu版makefile

请问CPU模式下,config.py设置GPU为False,是否需要修改ocr.py第19行 if 1: 为 if gpu: ???

若不修改,调用predict_darknet 和 predict_cpu均无任何输出,无报错信息,程序就直接结束
image

若修改,输出结果均为乱码,如下图。
image

请问你那边Win10编译用的Cygwin还是Vc编译AlexeyAB/darknet?

from darknet-ocr.

jnkr36 avatar jnkr36 commented on August 11, 2024

@deeroad 用cygwin 参考#28
https://blog.csdn.net/qq_31290747/article/details/80800415

from darknet-ocr.

wenlihaoyu avatar wenlihaoyu commented on August 11, 2024

修改 ocr.py line 11 ,改为utf-8,windows默认应该不是utf-8,造成字符乱码

from darknet-ocr.

w-Bro avatar w-Bro commented on August 11, 2024

@wenlihaoyu 肯定改过了。不改会报错的。是改的utf-8。

def read_characters():
    p= ocrPath.replace('.weights','.json')
    if os.path.exists(p):
        with open(p, encoding='utf-8')  as f:
            characters = json.loads(f.read())
        return characters
    else:
        return ''

from darknet-ocr.

w-Bro avatar w-Bro commented on August 11, 2024

@deeroad 我用的cygwin编译的。乱码不知道是不是这个编译的原因。如果你试了其它的编译成功且运行正常的话麻烦告诉我一下喔。

from darknet-ocr.

w-Bro avatar w-Bro commented on August 11, 2024

还是windows下的问题。我用centos是正常的

from darknet-ocr.

deeroad avatar deeroad commented on August 11, 2024

我用CPU模式(OpenCV)在Win10和Ubuntu 18.4都是乱码。
Ubuntu使用darknet cpu(gcc编译)的话提交图片后程序会崩溃,并且没有提示。

from darknet-ocr.

deeroad avatar deeroad commented on August 11, 2024

经测试,目前版本的opencv是无效的,各种系统都是乱码,用darknet可以正常运行。
而且一定要编译darknet GPU版,CPU版慢的没法用。

from darknet-ocr.

wenlihaoyu avatar wenlihaoyu commented on August 11, 2024

@deeroad 确定你Ubuntu 18.4是否支持中文且是否是utf-8导入程序,什么叫opencv不可用。不要用windows的记事本打开.json,一打开,文件编码就改变了。

from darknet-ocr.

wenlihaoyu avatar wenlihaoyu commented on August 11, 2024

image
image
哪里是乱码,CPU模式哪里速度很慢?确定问题,首先检查是不是自己的问题。

from darknet-ocr.

wenlihaoyu avatar wenlihaoyu commented on August 11, 2024

运行此项目,请确保有一定的python基础,确保能够在各种python版本上进行灵活更改。

from darknet-ocr.

deeroad avatar deeroad commented on August 11, 2024

image
image
哪里是乱码,CPU模式哪里速度很慢?确定问题,首先检查是不是自己的问题。

CPU=False 运行后识别出来的文字是乱码;
CPU=True 识别文字正常。
所以肯定不是读取编码的问题。

from darknet-ocr.

wenlihaoyu avatar wenlihaoyu commented on August 11, 2024

@deeroad “还有就是别说其他有的没的,搞得自己很牛逼一样” ???请不要带这样批判的语气,没有人义务给你解决任何问题,您如果觉得不好,可以选择不用。

from darknet-ocr.

wenlihaoyu avatar wenlihaoyu commented on August 11, 2024

首先确保下载的模型权重文件与模型配置文件是否一致,模型文件是否下载完整,如出现问题,可以将下载的文件MD5发出,可以协助解决问题。每个OCR模型下都有一个对应的cfg文件,模型加载权重不会检查权重是否与出错,如果错误的加载其他模型权重(比如用日语模型的权重加载到中文模型),那么识别出来肯定就是乱码。库里面已经存在cfg文件,只需要下载权重文件即可。另外,该项目是在python3.6环境下开发,系统:OSX、ubuntu14、ubuntu18,其他python版本或者系统可能需要修改部分代码。

from darknet-ocr.

w-Bro avatar w-Bro commented on August 11, 2024

@wenlihaoyu 谢谢回答。模型应该是没问题的,我原样拷贝到centos运行是正常的。

  1. 修改ocr.py的内容如下:
    一个编码,一个if GPU
    `
    def read_characters():
    p= ocrPath.replace('.weights','.json')
    if os.path.exists(p):
    with open(p, encoding='utf-8') as f:
    characters = json.loads(f.read())
    return characters
    else:
    return ''

charactersPred = ' '+read_characters()+'| '
if GPU:
from dnn.darknet import load_net,predict_image,array_to_image
ocrNet = load_net(ocrPath.replace('.weights','.cfg').encode(),ocrPath.encode(), 0)
else:
print(ocrPath.replace('.weights','.cfg'))
ocrNet = cv2.dnn.readNetFromDarknet(ocrPath.replace('.weights','.cfg'),ocrPath)

`

以及ocr.py的main方法修改内容为:

if __name__=='__main__': t =time.time() img=Image.open('../test/test.png') res = predict_cpu(img) print(time.time()-t,res)

2.1 因为是在子文件夹下运行ocr.py,故修改config.py的模型路径和libdarknet.so的路径为绝对路径,模型选择的是chinese
2.2 GPU改为False

运行ocr.py,报错如下:
image
看报错信息是opencv不支持relu激活函数。
我也看了opencv源码
if(activation != "linear" && activation != "leaky") CV_Error(cv::Error::StsParseError, "Unsupported activation: " + activation);
确实是只支持linear和leaky,chinese模型下的ocr.cfg我看了下配置的激活函数是relu。
改用chinese-5k会出现和我最开始提issue的截图一样乱码。
所以还是想请问下是否是我做的修改有误,整个项目只做了以上两处更改。
运行环境:win10、python3.6.5。谢谢

from darknet-ocr.

xialei2821212670 avatar xialei2821212670 commented on August 11, 2024

win10下CPU模式,python3.6.5,已编译cpu版makefile

请问CPU模式下,config.py设置GPU为False,是否需要修改ocr.py第19行if 1:为if gpu:???

若不修改,调用predict_darknet和predict_cpu均无任何输出,无报错信息,程序就直接结束
图片

若修改,输出结果预设乱码,如下图。
图片
你好,您是否调通了windows gpu的ocr ,可以发我一份?

from darknet-ocr.

w-Bro avatar w-Bro commented on August 11, 2024

win10下CPU模式,python3.6.5,已编译cpu版makefile
请问CPU模式下,config.py设置GPU为False,是否需要修改ocr.py第19行if 1:为if gpu:???
若不修改,调用predict_darknet和predict_cpu均无任何输出,无报错信息,程序就直接结束
图片
若修改,输出结果预设乱码,如下图。
图片
你好,您是否调通了windows gpu的ocr ,可以发我一份?

没有gpu,cpu也没有调通,最后还是换了centos。实在想在windows下跑可以用作者的chineseocr。

from darknet-ocr.

xialei2821212670 avatar xialei2821212670 commented on August 11, 2024

win10下CPU模式,python3.6.5,已编译cpu版makefile请问
CPU模式下,config.py设置GPU为False,是否需要修改ocr.py第19行if 1:为if gpu:????
不修改,调用predict_darknet和predict_cpu均无任何输出,无报错信息,程序就直接结束
若修改,输出结果顺序乱码,如下图。
你好,您是否调通了windows gpu的ocr,可以发我一份?
图片
图片

没有gpu,cpu也没有调通,最后还是换了centos。实在想在windows下跑可以用作者的chineseocr。

GPU版本centos跑通了?

from darknet-ocr.

w-Bro avatar w-Bro commented on August 11, 2024

win10下CPU模式,python3.6.5,已编译cpu版makefile请问
CPU模式下,config.py设置GPU为False,是否需要修改ocr.py第19行if 1:为if gpu:????
不修改,调用predict_darknet和predict_cpu均无任何输出,无报错信息,程序就直接结束
若修改,输出结果顺序乱码,如下图。
你好,您是否调通了windows gpu的ocr,可以发我一份?
图片
图片

没有gpu,cpu也没有调通,最后还是换了centos。实在想在windows下跑可以用作者的chineseocr。

GPU版本centos跑通了?

都说了没有GPU了呀,没有GPU可以试。LINUX环境下应该都是没有问题的。

from darknet-ocr.

xialei2821212670 avatar xialei2821212670 commented on August 11, 2024

win10下CPU模式,python3.6.5,已编译cpu版makefile请问
CPU模式下,config.py设置GPU为False,是否需要修改ocr.py第19行if 1:为if gpu:????
不修改,调用predict_darknet和predict_cpu均无任何输出,无报错信息,程序就直接结束
若修改,输出结果顺序乱码,如下图。
你好,您是否调通了windows gpu的ocr,可以发我一份?
图片
图片

没有gpu,cpu也没有调通,最后还是换了centos。实在想在windows下跑可以用作者的chineseocr。

GPU版本centos跑通了?

都说了没有GPU了呀,没有GPU可以试。LINUX环境下应该都是没有问题的。

可以发我一份?unbutu下我cpu都有问题

from darknet-ocr.

w-Bro avatar w-Bro commented on August 11, 2024

win10下CPU模式,python3.6.5,已编译cpu版makefile请问
CPU模式下,config.py设置GPU为False,是否需要修改ocr.py第19行if 1:为if gpu:????
不修改,调用predict_darknet和predict_cpu均无任何输出,无报错信息,程序就直接结束
若修改,输出结果顺序乱码,如下图。
你好,您是否调通了windows gpu的ocr,可以发我一份?
图片
图片

没有gpu,cpu也没有调通,最后还是换了centos。实在想在windows下跑可以用作者的chineseocr。

GPU版本centos跑通了?

都说了没有GPU了呀,没有GPU可以试。LINUX环境下应该都是没有问题的。

可以发我一份?unbutu下我cpu都有问题

代码一样的,cpu下要单独编译opencv,我发给你也没用。参考作者的另外一个仓库opencv-for-darknet,照着做就好啦。

from darknet-ocr.

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.