动手学ocr(一)

文本检测:DBNet

环境:paddle

import matplotlib
from Cython import inline
from paddleocr import PaddleOCR

ocr=PaddleOCR()
#修改图片路径
img_path='D:/computervision/ocr/ppocr_img/imgs/12.jpg'

result =ocr.ocr(img_path,rec=False)
print(f'the predict as follow')
print(result)

import numpy as np
import cv2
import matplotlib.pyplot as plt

image = cv2.imread(img_path)
#下面这句话似乎可有可无的并不影响结构
boxes=[line[0] for line in result]

for box in result:
    box=np.reshape(np.array(box),[-1,1,2]).astype(np.int64)
    image=cv2.polylines(np.array(image),[box],True,(255,0,0),2)

plt.figure(figsize=(10,10))
#代码此处做了修改
plt.imshow(image)
plt.show()

paddle

  1. 核心代码

声明PaddleOCR类:

ocr=PaddleOCR()

  1. 执行预测:

result =ocr.ocr(img_path,rec=False)

  • 运行结果
    在这里插入图片描述

- 其他库解释一下吧

  1. reshape改变数组形状
  • 参数

(1)传入数组
(2)排序方式

一个形状尺寸可以是-1。在这种情况下,值是从数组的长度和剩余的维度推断出来的。

例子来自与csdn的另外一个博主
在这里插入图片描述

(3)order
‘C’ means C order, ‘F’ means Fortran order
order其实说实话看不太明白,等我看明白了一定补上

2)astype
强制转化数据类型

3)figure
figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)

  • 作用:我的理解是有点像是javafx的scence。
  • 参数

num:图像编号或名称,数字为编号 ,字符串为名称
figsize:指定figure的宽和高,单位为英寸;
dpi参数:指定绘图对象的分辨率,即每英寸多少个像素,缺省值为80
facecolor:背景颜色
edgecolor:边框颜色
frameon:是否显示边框

DB文本检测模型

import paddle
import os
import sys
import importlib

# paddleocr_path='D:/computervision/ocr/PaddleOCR-release-2.5/PaddleOCR-release-2.5/ppocr'
# sys.path.append( paddleocr_path )
# os.chdir(paddleocr_path)
# print("当前工作目录"+os.getcwd())


#导入到路径中
from ppocr.modeling.backbones.det_mobilenet_v3 import MobileNetV3
fake_input=paddle.randn([1,3,640,640],dtype='float32')

model_backbone=MobileNetV3()
model_backbone.eval()

outs=model_backbone(fake_input)
print(model_backbone)

for idx,out in enumerate(outs):
    print("the index",idx,"shape:",out.shape)

ppocr的路径和当前文件工作路径不同一开始没有找到,用了很多方法也没有用,使用了文章中第2种办法才能读取到文件

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值