Comments (23)
ocr dnn版本需要修改opencv源码编译(修改setMaxpool),这部分代码目前未上传。因为darknet不支持stride=2,1这种形式,默认窗口是正方形而不是矩形。所以模型推测环节就会出现乱码。你们应该是修改ocr.py文件,将“if 1:” 改为了:"if GPU",没有修改opencv源码编译,不要修改此处。要支持relu也要修改opencv源码。后面整理好会上传,不过也只会支持linux系统,不会支持windows。
from darknet-ocr.
我也遇到同样的问题 如果是用最大的chinese的模型,不用chinese-5k的话,在ocrNet = cv2.dnn.readNetFromDarknet(ocrPath.replace('.weights', '.cfg'), ocrPath)这里还会报错
from darknet-ocr.
win10下CPU模式,python3.6.5,已编译cpu版makefile
请问CPU模式下,config.py设置GPU为False,是否需要修改ocr.py第19行 if 1: 为 if gpu: ???
请问你那边Win10编译用的Cygwin还是Vc编译AlexeyAB/darknet?
from darknet-ocr.
@deeroad 用cygwin 参考#28
https://blog.csdn.net/qq_31290747/article/details/80800415
from darknet-ocr.
修改 ocr.py line 11 ,改为utf-8,windows默认应该不是utf-8,造成字符乱码
from darknet-ocr.
@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.
@deeroad 我用的cygwin编译的。乱码不知道是不是这个编译的原因。如果你试了其它的编译成功且运行正常的话麻烦告诉我一下喔。
from darknet-ocr.
还是windows下的问题。我用centos是正常的
from darknet-ocr.
我用CPU模式(OpenCV)在Win10和Ubuntu 18.4都是乱码。
Ubuntu使用darknet cpu(gcc编译)的话提交图片后程序会崩溃,并且没有提示。
from darknet-ocr.
经测试,目前版本的opencv是无效的,各种系统都是乱码,用darknet可以正常运行。
而且一定要编译darknet GPU版,CPU版慢的没法用。
from darknet-ocr.
@deeroad 确定你Ubuntu 18.4是否支持中文且是否是utf-8导入程序,什么叫opencv不可用。不要用windows的记事本打开.json,一打开,文件编码就改变了。
from darknet-ocr.
哪里是乱码,CPU模式哪里速度很慢?确定问题,首先检查是不是自己的问题。
from darknet-ocr.
运行此项目,请确保有一定的python基础,确保能够在各种python版本上进行灵活更改。
from darknet-ocr.
CPU=False 运行后识别出来的文字是乱码;
CPU=True 识别文字正常。
所以肯定不是读取编码的问题。
from darknet-ocr.
@deeroad “还有就是别说其他有的没的,搞得自己很牛逼一样” ???请不要带这样批判的语气,没有人义务给你解决任何问题,您如果觉得不好,可以选择不用。
from darknet-ocr.
首先确保下载的模型权重文件与模型配置文件是否一致,模型文件是否下载完整,如出现问题,可以将下载的文件MD5发出,可以协助解决问题。每个OCR模型下都有一个对应的cfg文件,模型加载权重不会检查权重是否与出错,如果错误的加载其他模型权重(比如用日语模型的权重加载到中文模型),那么识别出来肯定就是乱码。库里面已经存在cfg文件,只需要下载权重文件即可。另外,该项目是在python3.6环境下开发,系统:OSX、ubuntu14、ubuntu18,其他python版本或者系统可能需要修改部分代码。
from darknet-ocr.
@wenlihaoyu 谢谢回答。模型应该是没问题的,我原样拷贝到centos运行是正常的。
- 修改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,报错如下:
看报错信息是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.
win10下CPU模式,python3.6.5,已编译cpu版makefile
请问CPU模式下,config.py设置GPU为False,是否需要修改ocr.py第19行if 1:为if gpu:???
from darknet-ocr.
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.
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.
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.
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.
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)
- 这个能支持繁体识别吗
- Centos7 可以在Python里面调用吗?
- 什么时候可以支持opencv dnn模型? HOT 2
- 提取一张图片需要10多秒,这个速度能不能优化下,太慢了哇 HOT 3
- 利用docker镜像服务把识别结果保存到本地(不需要编译GPU) HOT 1
- 如何使用多个gpu呢(默认是gpu:0)
- english/ocr.weights not found 404
- GPU out of
- 请问几个基本参数scale等的含义
- 想问下作者为什么不保存为pytorch模型?方便加载啊
- 训练代码
- 没有api接口么
- 请问没有英文权重吗? HOT 2
- 个别png图片报“识别异常”的错,转成jpg又可以了。啥原因,有更好的解决办法吗? HOT 2
- 模型下载不了,能传个网盘吗? HOT 1
- darknet-ocr CPU版本和GPU版本docker镜像都已完成 HOT 3
- ocr技术交流群 HOT 1
- 关于模型结构 HOT 1
- 可以出个c/C++调用例程不? HOT 1
- 这个项目会有chineseocr的内存泄露问题吗
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from darknet-ocr.