使用python部署chineseocr_lite

news2024/11/18 4:26:04

使用python部署chineseocr_lite

    • 简介
    • 安装
    • 报错解决
    • python调用
    • 结果

简介

项目地址:https://github.com/DayBreak-u/chineseocr_lite

chineseocr_lite 是一个开源项目,用来实现中文的文字识别,支持竖排文字识别、繁体识别,总模型只有几M,无需联网,支持 CPU 与 GPU

安装

pip install -r requirements.txt

然后

cd chineseocr_lite ## 进入chineseocr目录
python backend/main.py 

报错解决

提示:error: metadata-generation-failed
这个项目使用的numpy和opencv都是较低版本或特定版本的,如果之前某个环境安装过所需的依赖,再次安装就会报错

错误提示

Preparing metadata (pyproject.toml) did not run successfully

Encountered error while generating package metadata.

在这里插入图片描述

在这里插入图片描述
创建虚拟环境,然后使用下面的requirements.txt文件安装依赖

tornado==5.1.1
numpy==1.19.1
opencv_python==4.2.0.34
onnxruntime==1.4.0
Shapely==2.0.1
pyclipper==1.2.0
Pillow==9.5.0

python调用

# 使用python backend/main.py启动服务后
import base64

import requests


# 使用python backend/main.py启动服务后


def get_text1(img_path):
    # 方式1:直接传递file文件
    with open(img_path, 'rb') as f:
        file = f.read()
    body_data = {
        'compress': 960
    }
    img_file = {
        'file': file
    }
    result = requests.post('http://127.0.0.1:8089/api/tr-run/', files=img_file, params=body_data)
    print(result.json())


def get_text2(img_path):
    # 方式2:将文件放到data中传递, 该方式传递jpg文件时可能报错
    with open(img_path, 'rb') as f:
        file = f.read()
    body_data = {
        'img': str(base64.b64encode(file), 'utf-8'),
        'compress': 960
    }
    result = requests.post('http://127.0.0.1:8089/api/tr-run/', data=body_data)
    print(result.json())


if __name__ == '__main__':
    file_path = r'123.jpg'

    get_text1(file_path)
    get_text2(file_path)


结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/803099.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Mysql加锁过程

1、背景 MySQL/InnoDB的加锁分析,一直是一个比较困难的话题。我在工作过程中,经常会有同事咨询这方面的问题。同时,微博上也经常会收到MySQL锁相关的私信,让我帮助解决一些死锁的问题。本文,准备就MySQL/InnoDB的加锁问…

最优除法(力扣)数学 JAVA

给定一正整数数组 nums,nums 中的相邻整数将进行浮点除法。例如, [2,3,4] -> 2 / 3 / 4 。 例如,nums [2,3,4],我们将求表达式的值 “2/3/4”。 但是,你可以在任意位置添加任意数目的括号,来改变算数的…

LT2911R -D 是一款MIPI/TTL和LVDS互转的一款高性能旋转芯片

LT2911R -D 1.概述:LT2911R-D是一种在MIPI/TTL/LVDS之间相互转换的高性能转换器,除了LVDS转MIPI除外。LT2911R-D反序列化输入的MIPI/LVDS/TTL视频数据,解码数据包、旋转视频、改变帧率,并将格式化的视频数据流转换为AP和移动显示…

给你推荐几个好用的Android Studio插件

给你推荐几个好用的Android Studio插件 1. CodeGlance(代码全景) 类似于Sublime或Xcode,此插件在您的编辑器中嵌入了一个代码迷你地图。滚动条也会变得稍大一些。CodeGlance预览了文件的代码模式,让您快速导航到所需的部分。 …

QUiLoader:彻底分离你的Ui设计工作

QUiLoader:彻底分离你的Ui设计工作 1. QUiLoader:彻底分离你的Ui设计工作widget.hwidget.cpp 2. Qt、C动态UI3. QT 使用QLibrary加载动态库 1. QUiLoader:彻底分离你的Ui设计工作 原文链接:https://blog.csdn.net/adonis1620/article/details/5794797 Trolltech提…

加入气压计模组,星斗3号将实现快速三维定位

随着信息技术的飞速发展,人们的生活正在发生巨大改变,人们对基于位置服务的需求越来越迫切,尤其是室内位置服务。 室外定位系统中BDS系统、GPS系统等受室内复杂环境条件限制精度大幅下降甚至失效,难以在室内定位中发挥作用,而室内二维定位技术缺乏高程信息,也难以满足人们对室…

独立式电火花脉冲电源的放电回路

根据一篇专利来的 电火花加工电源的放电回路 1 电火花电源的放电回路 电火花加工电源的放电回路,包括工作电源、充电电源以及由电极和工件连接端子组成的放电支路,还包括分别与所述放电支路并联的消电离支路、负波吸收支路和增爆电容支路,所述放电支路的电极端连…

【多模态】19、RegionCLIP | 基于 Region 来实现视觉语言模型预训练

文章目录 一、背景二、方法2.1 Region-based Language-Image Pretraining2.2 目标检测的迁移学习 三、效果3.1 数据集3.2 实现细节3.3 结果 论文: RegionCLIP: Region-based Language-Image Pretraining 代码:https://github.com/microsoft/RegionCLIP …

要理解用户空间与内核空间之间的关系

需要对内核有深入的认识。从两个不同的角度来理解内核:一是从静态角度,内核可以被看作一个类库,对外提供API接口;二是从动态角度,内核启动多个内核线程提供系统服务,这些线程在ps命令下可以被看到。 当用户…

二级制部署kubernetes(1.20)

😘作者简介:一名运维工作人员。 👊宣言:人生就是B(birth)和D(death)之间的C(choise),做好每一个选择。 🙏创作不易,动动小…

HarmonyOS/OpenHarmony元服务开发-卡片使用动效能力

ArkTS卡片开放了使用动画效果的能力,支持显式动画、属性动画、组件内转场能力。需要注意的是,ArkTS卡片使用动画效果时具有以下限制: 以下示例代码实现了按钮旋转的动画效果: Entry Component struct AttrAnimationExample { St…

系列二、RocketMQ简介

一、概述 RocketMQ是一款阿里巴巴开源的消息中间件。2016年11月28日,阿里巴巴向Apache软件基金会捐赠RabbitMQ,成为Apache孵化项目。2017年9月25日,Apache宣布RocketMQ孵化成为Apache顶级项目(TLP),成为国内…

01)docker学习 centos7离线安装docker

docker学习 centos7离线安装docker 在实操前可以先看下docker教程,https://www.runoob.com/docker/docker-tutorial.html , 不过教程上都是在线安装方式,很方便,离线安装肯定比如在线麻烦点。 一、什么是Docker 在学习docker时,在网上看到一篇博文讲得很好,自己总结一下…

日期类的实现【C++】

1、Date.h #pragma once #include <iostream> using namespace std;class Date { public:Date(int year 1, int month 1, int day 1);void Print();//Date& operator(const Date& d); //赋值重载int GetMonthDay(int year, int month);bool operator<(con…

CSDN周赛66期图文题解 - 路灯亮度 池塘水量

本期非编程题考察更多是对原书的阅读理解&#xff0c;可能还是因为自己理解不够&#xff0c;翻了半天书&#xff0c;还是错了两道。失之我命&#xff0c;不多废话。 本期编程题比较符合我的胃口&#xff0c;有陷阱&#xff0c;有技巧&#xff0c;窃以为是最近不少期里比较有意…

华为eNSP通过VMnet8虚拟网卡,NAT转换访问互联网

防火墙上配置&#xff1a; 配置G1/0/1接口IP地址&#xff0c;其实G1/0/1的IP就是终端PC1的网关地址。 配置G1/0/0接口自动获取IP地址&#xff0c;从VMnet8中自动获取地址。 配置安全区域zone,把对应的接口加入到对应的zone中 配置安全策略&#xff0c;放通trust安全区域到u…

基于Vue3+LeaderLine实现画线时对应点放大精确选点功能

我们在画线时&#xff0c;可能开始结束位置选择不准&#xff0c;导致测量结果会有偏差&#xff0c;所以新增放大功能&#xff0c;如下所示 核心源码&#xff1a; <template>...<el-col :span"2" v-if"largeImageSelected"><!-- 显示在右…

Redis简介,设置redis内存大小,设置redis淘汰机制,查看内存占用情况,内存占用分析

为什么使用Redis缓存数据库 我们日常的开发&#xff0c;无非是对数据的处理。程序的定义也可以这样狭义的解释&#xff1a;算法数据。可见数据库是多么重要的工具。但是关系型数据库的读写能力在200-1000次/秒不等&#xff0c;服务器好点可能更多&#xff0c;这导致在高并发的…

w10修改cmd用户中文名

注销当前使用的账户&#xff0c;使用Administrator登录。右击左下角的开始&#xff0c;找到注销 一般注销之后&#xff0c;是没有Administrator登录的&#xff0c;因为Windows自动将它禁用了&#xff0c;所以在注销之前&#xff0c;你应该先右击我的电脑&#xff0c;点击管理&a…

学习笔记十三:云服务器通过Kubeadm安装k8s1.25,供后续试验用

Kubeadm安装k8s1.25 k8s环境规划&#xff1a;初始化安装k8s集群的实验环境先建生产环境服务器&#xff0c;后面可以通过生成镜像克隆node环境修改主机名配置yum源关闭防火墙关闭selinux配置时间同步配置主机 hosts 文件&#xff0c;相互之间通过主机名互相访问 **192.168.40.18…