【cnocr的安装使用】

cnocr的安装使用

  • docker环境
  • 运行操作
  • 外界调用
  • 模型训练及其他操作正在实践中

docker环境

  1. 由于docker hub无法正常访问,导致cnocr的docker镜像无法拉取,所以只能自己做一个docker镜像
  2. Dockerfile如下
FROM python:3.8RUN pip install cnocr[ort-cpu] -i https://pypi.tuna.tsinghua.edu.cn/simple
  1. 原cnocr中使用的是阿里云镜像,但是实测下载速度超慢,所以切换为https://pypi.tuna.tsinghua.edu.cn/simple 清华镜像源
  2. 下载完成后,使用docker build -t cnocr:qinghua . 生成docker镜像
  3. 使用docker run -it -p 8501:8501 cnocr:qinghua bash 启动镜像
  4. 此时还需要导入cnocr已经训练好的模型数据,可直接从百度云盘下载cnocr模型百度网盘链接,当然也可以使用cnocr在线操作手册去找
  5. 下载完毕后,需要将模型zip压缩文件导入镜像中的/root/.cnocr/2.3目录下
  6. docker环境准备完毕

运行操作

  • 第一次运行时会缺少很多python模块,所以按命令 cnocr serve -p 8501 运行

1.libGL.so.1错误

ImportError: libGL.so.1: cannot open shared object file: No such file or dir

需要安装opencv-python-headless模块

pip uninstall opencv-python -y
pip install opencv-python-headless -i https://pypi.tuna.tsinghua.edu.cn/simple

2.uvicorn错误

FileNotFoundError: [Errno 2] No such file or directory: 'uvicorn'

需要安装uvicorn模块

pip install uvicorn -i https://pypi.tuna.tsinghua.edu.cn/simple

3.pydantic错误

FileNotFoundError: [Errno 2] No such file or directory: 'uvicorn'

需要安装pydantic模块

pip install pydantic -i https://pypi.tuna.tsinghua.edu.cn/simple

4.fastapi错误

FileNotFoundError: [Errno 2] No such file or directory: 'fastapi'

需要安装fastapi模块

pip install fastapi -i https://pypi.tuna.tsinghua.edu.cn/simple

5.cnocr错误

FileNotFoundError: [Errno 2] No such file or directory: 'cnocr'

需要安装cnocr模块,切记此时不要安装cnocr[serve],否则会出现一堆其他问题,安装了这个之后,建议重新卸载opencv-python模块及cnocr模块,重新安装

pip install cnocr -i https://pypi.tuna.tsinghua.edu.cn/simple

6.其他的问题就只能搜索解决了

  • 问题都解决之后,就可以后台运行了

  • nohup cnocr serve -p 8501 > /home/cnocr.log 2>&1 &

  • 运行原理就是如下文件
    /usr/local/bin/cnocr 调用 /usr/local/lib/python3.8/site-packages/cnocr/cli.py cli方法,然后调用/usr/local/lib/python3.8/site-packages/cnocr/serve.py 启动FastAPI服务

  • serve.py只使用了基础模型,可以手动修改serve.py以方便外界调用切换模型

外界调用

  • curl -F image=@1_副.jpg http://0.0.0.0:8501/ocr
  • 上面的图片名称1_副.jpg就在当前目录下,@是为了将其转换为需要传输的数据格式类型

模型训练及其他操作正在实践中

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

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

相关文章

Attention机制解析

Attention机制解析 1. 引言 Attention机制在自然语言处理(NLP)和计算机视觉(CV)等领域取得了广泛的应用。其核心思想是通过对输入数据的不同部分赋予不同的权重,使模型能够更加关注重要的信息。本文将详细介绍Attent…

最优控制公式推导(代数里卡提方程,李雅普诺夫方程,HJB方程)

本文探讨了线性时不变系统(LTI系统)的最优控制问题,特别是线性二次调节器(LQR)问题。通过Hamilton-Jacobi-Bellman (HJB) 方程的推导,求得了系统的最优控制律,并进一步推导了代数里卡提方程&…

Python新手必学:如何解决Python安装包下载缓慢/无法下载的问题

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 文章内容 📒📝 临时使用镜像源📝 永久修改镜像源Windows系统macOS/Linux系统📝 推荐镜像源⚓️ 相关链接 ⚓️📖 介绍 📖 你是否曾在使用Python进行项目开发时,遇到过安装包下载速度如蜗牛爬行般的窘境?尤其是在急…

焊死,这38条命令还不会?难怪你的Windows那么费劲

号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部 下午好,我的网工朋友。 我们每天都在和各种设备打交道,而命令提示符(CMD)无疑是我们这些技术宅的得…

玩转HarmonyOS NEXT之IM应用首页布局

本文从目前流行的垂类市场中,选择即时通讯应用作为典型案例详细介绍HarmonyOS NEXT的各类布局在实际开发中的综合应用。即时通讯应用的核心功能为用户交互,主要包含对话聊天、通讯录,社交圈等交互功能。 应用首页 创建一个包含一列的栅格布…

guava cache知识点整理

Guava cache介绍 CacheBuilder 是 Guava 缓存库(Google 提供的一个 Java 工具库)中的一个类,用于创建和配置缓存实例。 Guava 缓存库提供了一套强大且易用的缓存解决方案,可以帮助开发者轻松地添加缓存功能以提高程序性能。而 Cac…

Java进阶之路66问 | 谈谈对熔断,限流,降级的理解

熔断(Circuit Breaker) 熔断机制类似于电路中的保险丝,用于在服务或系统出现异常或超负荷时暂时关闭,防止问题进一步扩大,待问题解决后再逐步恢复。这可以有效保护系统免受过载的影响。 想象你在使用电器时&#xff0…

JAVA 异步编程(异步,线程,线程池)一

目录 1.概念 1.1 线程和进程的区别 1.2 线程的五种状态 1.3 单线程,多线程,线程池 1.4 异步与多线程的概念 2. 实现异步的方式 2.1 方式1 裸线程(Thread) 2.1 方式2 线程池(Executor) 2.1.1 源码分析 2.1.2 线程池创建…

Linux exec 命令和Python exec 函数 区别

在 Linux 中,exec 是一个用于替换当前进程的命令,而在 Python 中,exec 是一个用于动态执行代码的函数。它们有不同的用途和语法。下面是它们的主要区别和解释为什么需要这样的设计。 Linux exec 命令 用途 在 Linux 中,exec 命…

南京邮电大学计算机考研考情分析!专业课均分127分!复试录取比例偏高近2:1!计算机类共录取543人!

南京邮电大学(Nanjing University of Posts and Telecommunications),位于南京市,简称南邮(NJUPT),是教育部、工业和信息化部、国家邮政局与江苏省共建高校,国家“双一流”建设高校&…

软考中级科目包含哪些?应该考哪个?

软考中级包含5个专业方向,分别是:计算机软件、计算机网络、计算机应用技术、信息系统、信息服务。这5个方向又对应15个软考中级科目。 信息系统包括:系统集成项目管理工程师、信息系统监理师、信息安全工程师、数据库系统工程师、信息系统管…

C# 中IEnumerable与IQuerable的区别

目的 详细理清IEnumerator、IEnumerable、IQuerable三个接口之间的联系与区别 继承关系:IEnumerator->IEnumerable->IQuerable IEnumerator:枚举器 包含了枚举器含有的方法,谁实现了IEnuemerator接口中的方法,就可以自定…

力扣Hot100之两数之和

解法一: 双层循环暴力求解,先在数组的一个位置定住然后在这个位置的后续位置进行判断,如果两个数加起来等于目标和那么就返回 class Solution:def twoSum(self, nums: List[int], target: int) -> List[int]:for i,num in enumerate(num…

Laravel队列的魔法:高效异步任务处理指南

Laravel队列的魔法:高效异步任务处理指南 在现代Web应用开发中,异步任务处理是提升用户体验和应用性能的关键技术之一。Laravel框架内置了一个强大的队列系统,允许开发者将耗时的任务如发送邮件、处理数据等放入队列中异步执行。本文将深入探…

Windows 系统利用 SSH 和 WSL2 子系统当服务器

由于最近组内需要将一台 Windows 系统的电脑 W A W_A WA​ 转成能通过 SSH 访问,并且能用 Linux 命令当服务器运行。忙活了一天,终于是把全部东西弄通了。 安装 SSH 首先就是 W A W_A WA​ 先要安装 OpenSSH 服务,直接按照下面的教程安装…

HCIE是什么等级的证书?

HCIE(华为认证互联网专家,Huawei Certified Internetwork Expert)是华为认证体系中的最高等级证书。它要求考生具备在复杂网络环境中规划、设计、部署、运维和优化网络的能力。HCIE认证是华为认证体系中最具挑战性和含金量的认证之一&#xf…

RocketMQ实现分布式事务

RocketMQ的分布式事务消息功能,在普通消息基础上,支持二阶段的提交。将二阶段提交和本地事务绑定,实现全局提交结果的一致性。 1、生产者将消息发送至RocketMQ服务端。 2、RocketMQ服务端将消息持久化成功之后,向生产者返回Ack确…

NDK R25b 交叉编译FFMpeg4,项目集成,附库下载地址

1.准备工作 文件下载: NDK R25b下载地址:Android NDK历史版本下载网址 - 君*邪 - 博客园 (cnblogs.com) FFmpeg4.4.4 下载地址:https://ffmpeg.org/releases/ffmpeg-4.4.4.tar.xz 环境配置: 本次编译环境是在PC虚拟机中使用U…

普通人还有必要学习 Python 之类的编程语言吗?

在开始前分享一些编程的资料需要的同学评论888即可拿走 是我根据网友给的问题精心整理的对于编程的重要性,这里就不详谈了。 未来,我们和机器的交流会越来越多,编程可以简单看作是和机器对话并分发给机器任务。机器不仅越来越强大&#xff0…

QT下,如何获取控制台输入

最近工作中为了测试某个模块&#xff0c;需要把原先输入模块部分&#xff0c;改成控制台输入来方便测试。在QT中&#xff0c;我们可以使用 QTextStream 类来读取用户的输入来达到目的。下面是一个简单的例子&#xff1a; #include <QCoreApplication> #include <QTex…