树莓派 OCR识别 2:keras-ocr 部署

(树莓派上安装chinese_lite的问题已解决,进入

之前打算安装chinese_lite的,可到了onnxruntime那一步好久没整好,于是放弃了。接着就意外的发现了keras-ocr,于是整上吧。

keras-ocr环境要求Python >= 3.6 and TensorFlow >= 2.0.0. 正好树莓派原生就带着Python3.7 只要安装TensorFlow 2.0.0就好。

树莓派安装TensorFlow 2.0.0

这个不能直接用pip3安装,pip3只有1.14版本以下的,需要下载whl文件安装。

1、首先查看下树莓派的硬件信息。

pi@raspberrypi:~ $ uname -m
armv7l

下载tensorflow-2.0.0-cp37-none-linux_armv7l.whl版本  GitHub下载地址

存放到任意目录下,执行安装命令

sudo pip3 install grpcio-1.25.0-cp37-cp37m-linux_armv7l.whl

等待安装完成,进入python交互模式,测试下是否安装成功。

pi@raspberrypi:~/Desktop $ python3
Python 3.7.3 (default, Jul 25 2020, 13:03:44) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> tf.__version__
'2.0.0'
>>> 

备注:grpcio下载地址

安装Keras-ocr

github项目主页

the documentation

安装过程中,遇到了一个依赖库找不到的错误,安装shapely报错:OSError: Could not find library geos_c or load any of its variants ['libgeos_c.so.1', 'libgeos_c.so']

所以再执行安装命令之前先安装缺少的包

sudo apt-get install libgeos-dev

 

# To install from master
pip3 install git+https://github.com/faustomorales/keras-ocr.git#egg=keras-ocr

# To install from PyPi
pip3 install keras-ocr

Keras-ocr测试

import numpy as np
import keras_ocr
 
pipeline = keras_ocr.pipeline.Pipeline()
image = keras_ocr.tools.read('tests/ocr1.jpg') 

# Predictions is a list of (string, box) tuples.
predictions = pipeline.recognize(images=[image])[0]
for a in predictions:
    print(a[0])

测试图片

运行报错 发现是import cv2 时出现的问题, ImportError: libcblas.so.3: cannot open shared object file: No such file or directory

参考:https://blog.csdn.net/kevindree/article/details/88772691

安装缺失的库

sudo apt-get install libcblas-dev

接下来又出现了类似的错误:

ImportError: libatlas.so.3: cannot open shared object file: No such file or directory

sudo apt-get install libatlas-base-dev

接着安装时提示下面的各种依赖(若没有该问题则可直接跳过)

正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:

下列软件包有未满足的依赖关系:
 libatlas-base-dev : 依赖: libatlas3-base (= 3.10.3-1+rpi1) 但是它将不会被安装
                     依赖: libatlas-dev 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。

这是个常见的“安装源与本地系统分支不符”导致的问题,而本次问题的主要原因是:使用PINN在树莓派上安装的多系统启动,因为官方的迷之原因,在安装完树莓派官方Debian系统之后source源指向的是旧版本,并未跟随新版更新。

参考解决方案:https://blog.csdn.net/qq_42410113/article/details/108055625

到这里终于可以运行了,但是终究不能一帆风顺。运行起来发现,模型文件在线下载,而且是在github上,那速度不得下上俩小时,于是我自行去github上下载,存放到本地目录,这是需要修改keras-ocr中的detection.py和recognition.py。

模型下载地址:https://github.com/faustomorales/keras-ocr/releases/tag/v0.8.4

传csdn上下载积分不能是0,传百度下载速度和github也差不哪去,有需要的小伙伴可以留邮箱,转发给你们。csdn下载

detection.py和recognition.py的路径/home/pi/.local/lib/python3.7/site-packages/keras_ocr ,大家如果不知道安装的路径,可以在它运行下载的时候,ctrl+c停止,看报错的文件路径 。

detection.py文件

recognition.py

这里整完了,以为就可以了,哈哈那是想多了,接着又出现了下面的:

  File "/usr/local/lib/python3.7/dist-packages/tensorflow_core/python/keras/saving/hdf5_format.py", line 651, in load_weights_from_hdf5_group
    original_keras_version = f.attrs['keras_version'].decode('utf8')
AttributeError: 'str' object has no attribute 'decode'

找到对应的文件,对应的位置,直接把后面的decode('utf-8')去掉就可以了。不过用树莓派真的是挺慢的,去掉加载模型的时间,只是检测和识别耗时就要37秒,呃呃呃,堪忧啊

 

 

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值