cnocr实战:从安装到解决常见报错的全流程指南

超简单cnocr本地部署 CnOCR部署与使用 阅读详情

1. 初识cnocr:你的轻量级中文OCR“小助手”

如果你经常需要从图片里提取文字,比如处理一些截图、扫描的文档,或者想给应用加个自动识别验证码的功能,那你肯定听说过OCR技术。但说实话,很多OCR工具要么太“重”,安装配置一堆依赖,要么对中文支持不好,识别出来一堆乱码。我自己在项目里就踩过不少坑,直到遇到了cnocr。

cnocr是什么?你可以把它理解为一个专门为中文场景优化的、开箱即用的Python OCR工具包。它的设计哲学就是“极简”,目标就是让你用最少的代码,完成最常见的文字识别任务。它不像一些工业级OCR方案那样追求面面俱到,而是精准地瞄准了“排版简单的印刷体文字”这个场景。什么叫排版简单?就是你手机截的图、电脑上截的聊天记录、扫描的PDF转成的图片,这些文字通常都是水平排列,没有复杂的背景干扰和艺术字体。对于这类图片,cnocr的识别准确率官方数据是98.7%,我自己实测下来,只要图片不是特别模糊,这个数字是靠谱的。

那么,cnocr适合谁呢?我觉得主要是三类朋友:一是Python初学者或者学生,想快速做一个带OCR功能的小工具或课程项目,不想在环境配置上浪费生命;二是开发者和算法工程师,需要在产品中快速集成一个OCR模块进行原型验证,cnocr的API简单到令人发指;三是日常办公族,如果你有批量处理图片提取文字的需求,写个几十行的Python脚本配合cnocr,效率能提升好几倍。它内置了训练好的模型,你不需要懂深度学习,不需要准备训练数据,就像调用一个普通函数一样去识别文字,这种体验是非常友好的。

当然,cnocr也不是万能的。它的“极简”也意味着一些限制。比如,它内置的文字检测和分行模块能力有限,如果你给一张街拍照片,里面文字东倒西歪、大小不一,cnocr可能就搞不定了。这时候,作者也推荐你搭配另一个更强大的工具——cnstd(一个文字检测引擎)来使用,由cnstd负责把图片里歪七扭八的文字框出来、摆正,再交给cnocr识别,这就是强强联合了。不过对于绝大多数从截图、扫描件里找文字的活儿,单用cnocr已经绰绰有余。接下来,我就带你从零开始,一步步把它用起来,并解决那些你可能马上就会遇到的“拦路虎”。

2. 从零开始:cnocr的安装与“第一行识别代码”

万事开头难,但cnocr的开头真的不算难。它的安装命令是标准的Python包安装方式。打开你的终端(Windows上是CMD或PowerShell,Mac/Linux上是Terminal),确保你已经安装了Python(建议3.7及以上版本),然后输入下面这行魔法命令:

pip install cnocr

理论上,pip工具会自动帮你解决所有依赖,比如深度学习框架PyTorch、ONNX Runtime等等。但这里往往就是第一个“实战”开始的地方。如果你网络环境顺畅,通常一两分钟就装好了。但很多朋友在执行这一步时,可能会遇到下载速度慢或者超时的问题。这是因为pip默认的源可能在国外。一个非常实用的提速技巧是使用国内的镜像源。你可以把上面的命令改成:

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

这里的 -i 参数指定了使用清华大学的PyPI镜像,下载速度会快很多。类似的国内镜像还有阿里云 (https://mirrors.aliyun.com/pypi/simple/)、豆瓣 (https://pypi.douban.com/simple/) 等,哪个快用哪个。

安装成功后,我们来写一个最简单的识别脚本,感受一下它的威力。我习惯在项目里新建一个 demo.py 文件,然后写入以下代码:

import cnocr

# 创建识别器对象,就这么简单
ocr = cnocr.CnOcr()

# 指定你要识别的图片路径,这里换成你自己的图片
image_path = './test_image.png'

# 调用ocr方法进行识别
result = ocr.ocr(image_path)

# 打印原始结果
print("原始识别结果:", result)

# 通常我们更关心识别出的文本,可以这样拼接起来
text = ' '.join([item['text'] for item in result])
print("识别出的文本:", text)

把 ‘./test_image.png’ 替换成你电脑上任意一张包含清晰中文文字的图片路径,比如一张微信聊天截图。然后运行这个脚本 python demo.py。如果一切顺利,你会在终端里看到识别出来的文字。result 变量是一个列表,里面每个元素是一个字典,对应图片中识别出的一行文字,字典里包含了文本内容 ‘text’ 和置信度 ‘score’ 等信息。这个 ‘score’ 可以粗略理解为模型对这一行识别结果的自信程度,分数越高越好。

这个流程是不是简单得有点不可思议?没错,cnocr的魅力就在于此,它把复杂的模型加载、图像预处理、推理计算都封装在了一句 cnocr.CnOcr() 背后。但是,正如我在很多项目里经历过的,最简单的步骤往往最容易藏坑。很多朋友兴冲冲地运行第一行 ocr = cnocr.CnOcr() 时,程序并没有开始识别,而是卡住了,甚至报出一串红色的错误日志。别慌,这几乎是每个cnocr新手都会遇到的“洗礼”,问题根源几乎都指向同一个地方:模型文件下载失败。我们接下来要重点攻坚的,就是这个问题。

3. 攻克首个拦路虎:模型下载失败与手动部署攻略

当你第一次执行 cnocr.CnOcr() 时,它会尝试从网络(默认是Hugging Face Hub)自动下载预训练好的模型文件。这个过程是自动的,本意是好的,但在某些网络环境下,它很可能失败。你会看到类似这样的错误信息:

huggingface_hub.utils._errors.LocalEntryNotFoundError: Connection error, and we cannot find the requested files in the disk cache.

或者更直白的:

cnstd.utils.utils.ModelDownloadingError: Failed to download model: densenet_lite_136-fc-onnx.zip.

错误信息的核心就一个:模型没下载下来。这跟cnocr本身代码无关,纯粹是网络连接问题。自动下载的路走不通,我们就手动打通一条路。这才是真正的“实战”环节。

第一步,找到模型的家。 cnocr的官方文档里明确给出了所有预训练模型的下载地址。你需要打开浏览器,访问 https://cnocr.readthedocs.io/zh/latest/models/ 这个页面。在这里,你会看到一个模型列表,比如 cnocr-v2.2-densenet_lite_136-fc.onnx 就是默认的识别模型。找到你需要的模型(初学者用默认的即可),点击对应的链接把它下载到你的电脑上。

第二步,给模型安个家。 下载下来的通常是一个 .zip 压缩包。你需要知道cnocr会在本地哪里寻找模型。它有一个固定的模型缓存目录。在Python中,你可以用以下代码快速找到这个路径:

from cnocr.utils import data_dir
print(data_dir())

运行这行代码,它会打印出一个路径,比如 C:\Users\你的用户名\.cnocr\2.2 或 /home/你的用户名/.cnocr/2.2。这个 .cnocr 文件夹就是模型缓存目录。你需要做的,就是把刚才下载的 .zip 压缩包,不解压,直接放到这个目录下。是的,不需要解压,cnocr在启动时会自己解压。

第三步,验证手动部署成果。 放置好模型文件后,再次运行你的识别脚本 ocr = cnocr.CnOcr()。这次,程序应该不会再尝试联网下载,而是直接加载本地的模型文件,初始化速度会快很多。如果成功了,恭喜你,你已经越过了cnocr使用路上最大的一个坎。

这里分享一个我自己的小技巧:对于团队协作或者需要部署到没有外网权限的生产服务器的情况,我通常会先在网络通畅的机器上运行一次,让模型自动下载完成。然后,将整个 ~/.cnocr 文件夹打包,随项目代码一起分发或上传到服务器,再通过设置环境变量 CNOCR_HOME 指向这个文件夹的路径,这样就完美解决了所有机器的模型依赖问题。手动部署虽然多了一两步操作,但换来的是百分百的可靠性和对环境的完全掌控,在工程实践中这非常值得。

4. 深入核心:玩转不同识别模型与配置

跨过了安装和模型下载的坎,你的cnocr已经可以正常工作了。但你可能很快会有新的需求:默认模型识别某些字体效果不好?或者图片文字特别小,识别不准?这时候,就需要了解一下cnocr的核心——模型配置。

创建 CnOcr 对象时,我们可以传入参数来选择不同的模型。最常用的两个参数是 rec_model_name(识别模型)和 det_model_name(检测模型,cnocr也集成了简单的检测功能)。比如,除了默认的 densenet_lite_136-fc 模型,cnocr还提供了 densenet_lite_136-gru 等模型。你可以这样尝试:

# 使用GRU作为解码器的模型,在某些场景下可能效果不同
ocr_gru = cnocr.CnOcr(rec_model_name='densenet_lite_136-gru')

如何知道有哪些模型可选呢?除了查阅文档,更直接的方法是在代码里打印出来:

from cnocr.consts import AVAILABLE_REC_MODELS, AVAILABLE_DET_MODELS
print("可用的识别模型:", AVAILABLE_REC_MODELS)
print("可用的检测模型:", AVAILABLE_DET_MODELS)

这能让你对工具箱里的工具有个全面了解。但模型选择只是第一步,更精细的控制在于模型参数。这里有一个非常关键且容易出错的参数叫 rec_image_shape。它定义了输入识别模型的图片尺寸,格式是 “通道, 高度, 宽度”,比如默认的 “3, 32, 320”。这个参数必须与你使用的模型严格匹配。

我踩过的一个大坑就与此有关。有一次,我尝试使用一个来自PaddleOCR的转换模型(ch_PP-OCRv3),初始化代码如下:

paddle_ocr = cnocr.CnOcr(rec_model_name='ch_PP-OCRv3')

运行识别时,直接抛出了一个维度错误: onnxruntime.capi.onnxruntime_pybind11_state.InvalidArgument: [ONNXRuntimeError] : 2 : INVALID_ARGUMENT : Got invalid dimensions for input: x for the following indices index: 2 Got: 32 Expected: 48

错误信息非常明确:模型期望输入的高度是48,但我们程序给的却是32。这是因为 ch_PP-OCRv3 模型训练时使用的图片高度是48,而cnocr默认的 rec_image_shape 是32。这就需要我们手动指定正确的形状:

# 根据错误提示,将高度调整为48
paddle_ocr = cnocr.CnOcr(rec_model_name='ch_PP-OCRv3', rec_image_shape='3, 48, 320')

修改之后,错误就消失了。所以,当你使用非内置的、特别是自己转换的模型时,一定要确认模型的输入尺寸,并通过 rec_image_shape 参数正确设置。这个参数是连通你的数据和模型计算图的桥梁,桥的规格不对,数据就过不去。

除了模型选择,CnOcr 还有其他实用参数。例如 context 参数可以设置推理使用的计算设备(‘cpu’ 或 ‘gpu’),如果你有NVIDIA显卡并且配置好了CUDA,设置为 ‘gpu’ 可以大幅提升识别速度。det_model_name 可以切换不同的文本检测模型,在文字排列稍复杂时可能有奇效。多试试这些配置,就像调整相机参数一样,找到最适合你当前“拍摄场景”(图片特点)的那一组,才能获得最佳“成像效果”(识别结果)。

5. 高级应用:模型转换与自定义模型集成

当你熟练使用cnocr的各种内置模型后,可能会想:我能不能用自己的模型?或者,我在PaddleOCR、MMOCR等其他框架训练了一个很好的模型,能不能放到cnocr里用?答案是肯定的,这就是cnocr更进阶的玩法——集成ONNX格式的模型。cnocr的推理后端是ONNX Runtime,因此只要你的模型能转换成ONNX格式,就能集成进来。

最常见的需求就是集成PaddleOCR的模型。PaddleOCR提供了丰富的预训练模型,而且官方提供了转换工具 paddle2onnx。转换过程需要一些步骤,但一旦完成,你就拥有了一个定制化的强大识别工具。首先,你需要安装转换工具:

pip install paddle2onnx

然后,从PaddleOCR官网下载你需要的推理模型,它会包含 inference.pdmodel、inference.pdiparams 等文件。假设我们下载了文本检测(det)、识别(rec)和方向分类(cls)模型,并分别放在了三个文件夹里。转换命令类似这样(以检测模型为例):

paddle2onnx --model_dir ./cn_PP-OCRv3_det_infer \
            --model_filename inference.pdmodel \
            --params_filename inference.pdiparams \
            --save_file ./det_onnx/model.onnx \
            --opset_version 10 \
            --input_shape_dict="{'x':[-1,3,-1,-1]}" \
            --enable_onnx_checker True

这里有几个关键点:

  1. --model_dir:指向你下载的PaddleOCR模型文件夹。
  2. --save_file:指定输出的ONNX模型路径。
  3. --input_shape_dict:这里 ‘x’:[-1,3,-1,-1] 非常重要。-1 表示动态维度,这保证了模型能处理不同尺寸的图片输入,对于OCR这种任务至关重要。
  4. --opset_version:指定ONNX算子集版本,版本10是一个广泛兼容的选择。

将检测、识别、分类模型都转换完成后,你会得到几个 .onnx 文件。接下来,就是告诉cnocr去使用这些本地模型。你不能直接通过 rec_model_name 指定一个本地路径,而是需要用到 CnOcr 的 rec_model_fp 和 det_model_fp 参数:

custom_ocr = cnocr.CnOcr(
    rec_model_fp='./path/to/your/rec_model.onnx',  # 你的识别模型路径
    det_model_fp='./path/to/your/det_model.onnx',  # 你的检测模型路径
    rec_image_shape='3, 48, 320',  # 必须与你转换的模型输入形状一致!
    # 还可以指定分类模型路径,如果需要的话
    # cls_model_fp='./path/to/your/cls_model.onnx'
)

这样,你就成功地将一个外部训练的模型接入了cnocr的 pipeline,享受它带来的便捷API和前后处理流程。这个过程稍微有点复杂,但带来的灵活性是巨大的。你可以用更庞大的数据集训练一个专属于你业务场景(比如医疗报告、古文书、特殊字体)的模型,然后通过这种方式无缝集成,从而在特定任务上获得远超通用模型的识别精度。

6. 实战调试:常见报错分析与解决思路

即便按照指南一步步操作,在真实项目中依然可能遇到各种报错。我把这些常见问题归结为几类,并分享我的排查思路。

第一类:维度/形状错误。 就像前面提到的 Expected: 48 错误,这是最典型的。解决思路:永远记住,错误信息是你的朋友。ONNX Runtime的错误提示通常非常精确,会直接告诉你哪个输入张量的哪个维度不匹配。看到这种错误,第一步就是检查你初始化 CnOcr 时传入的 rec_image_shape 或 det_image_shape 是否与模型定义完全一致。对于自定义模型,你需要去查看模型的原训练配置或转换时的参数。

第二类:模型加载失败。 错误可能提示找不到模型文件,或者模型文件损坏。解决思路:首先,确认文件路径是否正确,特别是使用绝对路径时。其次,确认模型文件是否完整下载,可以尝试重新下载。对于手动放置的 .zip 文件,确认其没有在下载过程中中断导致损坏。一个验证方法是,尝试用解压软件手动解压这个zip包,看是否能成功。

第三类:推理过程错误。 比如出现 ONNXRuntimeError 里面包含一些算子不支持的信息。解决思路:这通常发生在模型转换环节。可能是你使用的 paddle2onnx 版本与模型不兼容,或者 opset_version 设置得太低,某些算子不支持。尝试升级 paddle2onnx 到最新版,或者将 opset_version 提高到11或12再重新转换模型。同时,确保你的ONNX Runtime版本不是太旧。

第四类:性能问题。 识别速度慢,或者内存占用高。解决思路:首先检查是否在使用GPU。通过 context=‘gpu’ 参数启用GPU推理,速度会有数量级提升。其次,评估你的图片尺寸。如果图片非常大,cnocr内部会进行缩放,但过大的图片仍然会消耗更多资源。可以考虑在识别前,先对图片进行适当的长边缩放。最后,如果批量处理大量图片,不要用for循环一次次创建 CnOcr 对象,应该全局创建一个识别器实例,然后循环调用它的 ocr 方法,避免重复加载模型的开销。

调试的黄金法则就是:隔离与定位。遇到问题,先写一个最简单的、只包含出错代码的脚本进行复现。然后,根据错误信息,逐层检查你的输入(图片路径、模型路径、参数)、过程(模型文件、转换步骤)和环境(Python版本、包版本、CUDA版本)。大部分问题都能通过仔细阅读错误日志和回溯操作步骤找到答案。

cnocr安装和识别文字 阅读详情

相关推荐

cnocr实战:从安装到文字识别的完整指南

本文详细介绍了cnocr这一中文OCR工具包的安装、配置及实战应用。从基础安装到模型选择,再到批量处理和性能优化,帮助开发者高效实现文字识别任务。cnocr基于CRNN模型,特别适合处理印刷体中文,识别准确率高达98.7%,是Python开发者的理想选择。

weixin_30687051的博客 590

【python的cnocr包安装报错】

cnocr包安装报错处理办法

z3119101224的博客 5314

CnOCR训练特殊字体(一)安装配置和准备文件

要做一个喷码字符的OCR项目,试了几个OCR库,对稀疏点阵喷码字体的识别率都不高,所以决定用CnOCR来训练自己使用的模型。Ubuntu系统。

xulibo5828的博客 1166

记录BUG,使用CnOcr的ocr_for_single_line方法报错:mxnet.base.MXNetError

在使用CnOcr的ocr_for_single_line方法时, 有时候会报错,错误信息如下: File "E:\Project\GameComparePrices-development\onmyoji\imperial_soul_page.py", line 613, in get_ssr_ocr_rst rst = cnocr_soul.ocr_for_single_line(singel_img) File "D:\Anaconda3\envs\tensorflow\lib\si

kaka354的博客 957

Python小白也能搞定!5分钟教你用cnocr实现截图文字识别(附常见报错解决方案)

本文详细介绍了如何使用Python库cnocr快速实现高精度OCR文字识别,特别适合Python新手。从安装配置到实战应用,涵盖基础使用、进阶技巧及常见报错解决方案,帮助用户轻松从截图或扫描件中提取文字内容,提升工作效率。

weixin_29035405的博客 218

文字识别软件cnocr学习笔记

在初始化 CnOcr 对象时指定 vocab 参数。这样,模型只会识别 vocab 中包含的字符。# 自定义字符集,只识别数字和字母print(f"文本: {line['text']}, 置信度: {line['score']}")•。

xulibo5828的博客 1635

尝试解决RuntimeError: Cannot find the MXNet library.记录

在pypi中搜索mxnet,发现tsinghua的源没有1.9.0的版本,修改下载源后下载pip config set global.index-url https://pypi.org/simple/根据之前博主中的思路,下载1.2.0的版本的whl,解压找到了:libmxnet.dll,试一下放到对应的.\site-packages\mxnet\位置能否成功运行。之前有知乎回答说直接将缺失的东西放到对应的地址,找了半天没找到libmxnet.dll的直接下载地址,

善的边际递增 1110

Python小白也能搞定:5分钟教你用cnocr实现中文OCR文字识别(附常见报错解决方案)

本文详细介绍了如何使用cnocr这一轻量级OCR工具包实现中文文字识别,特别适合Python新手。从环境配置、模型下载到实际应用,提供了完整的教程和常见报错解决方案,帮助用户快速掌握OCR技术并应用于实际场景。

weixin_30316097的博客 112

CnOCR升级2.3.2问题

更新cnocr2.3.2问题

m0_61734742的博客 349

Python-cnocr是用来做中文OCR的Python3包

cnocr自带了训练好的识别模型,所以安装后即可直接使用。目前使用的识别模型是crnn,识别准确度约为 98.7%。

手把手复现金蝶云星空V8.1文件上传漏洞(附完整POC与修复方案)

本文深度解析金蝶云星空V8.1文件上传漏洞,提供详细的漏洞复现步骤与完整POC,涵盖技术原理、测试环境搭建及验证流程。同时给出多维防护方案,包括官方补丁部署、临时缓解措施和长期安全加固建议,帮助企业有效防范任意文件上传风险。

weixin_30505225的博客 184

截图识别对比:CnOCR与PaddleOCR

我需要对jmeter与loadrunner软件截图进行识别,获取定位,再使用PyAutoGUI做自动化操作。从上面的识别结果来看,PaddleOCR(飞桨)的识别率符合要求,就是慢一点。

feng的博客 3303

别再瞎改注册表了!实测Win10/Win11远程桌面60帧的正确姿势(附ToDesk对比)

本文深入解析Windows远程桌面60帧优化的科学方法,揭示常见误区并提供实测有效的解决方案。从版本差异到硬件加速,再到第三方工具对比(如ToDesk),帮助用户避开无效的注册表修改,实现流畅的远程桌面体验。

weixin_33738555的博客 345

cnocr安装流程

Microsoft Visual C++ 14.0 or greater is required. Get it with "Microsoft C++ Build Tools": https://visualstudio.microsoft.com/visual-cpp-build-tools/

m0_66954933的博客 7720

银河麒麟Arm64 v10 sp1系统QT5.12.8离线环境配置全攻略

本文详细介绍了在银河麒麟Arm64 v10 sp1系统上配置QT5.12.8离线开发环境的完整流程。从安装包获取、依赖检查到环境变量配置,逐步指导开发者解决飞腾处理器架构下的常见问题,包括OpenGL库冲突、中文乱码处理等,特别适合军工、政务等需要离线部署的场景。

weixin_26899659的博客 509

ARM架构UOS实战:从源码编译Qt 5.15.2到定制Qt Creator的全流程解析

本文详细解析了在ARM架构统信UOS系统上,从源码编译Qt 5.15.2到定制Qt Creator开发环境的完整流程。内容涵盖环境准备、依赖部署、源码配置、编译优化、错误处理及IDE集成,旨在帮助开发者在国产化平台上构建自主可控的高性能Qt开发环境,解决特定ARM平台的兼容性与性能优化问题。

mango的博客 411

python ocr中文训练_cnocr: cnocr是用来做中文OCR的Python 3包。cnocr自带了训练好的识别模型,安装后即可直接使用...

English README.cnocr 使用交流QQ群欢迎扫码加入QQ交流群:最近更新 【2020.05.29】:V1.2.2主要变更:优化了对数字识别的准确度。优化了模型结构,进一步降低了模型的大小,提升了预测速度;最小模型从原来的6.8M降为4.7M。使用了爱因互动 Ein+自己的CDN存储模型文件,下载速度超快。提供了预测速度更快的 shorter (-s)版预训练模型:densenet-...

weixin_39944233的博客 1310

DSMA时序修复避坑指南:当Setup和Hold互卡时,除了调Margin还能做什么?

本文深入探讨DSMA时序修复中的Setup与Hold互锁问题,提供7种高阶策略,包括优先级判断、高级参数组合、单元类型智能替换等,帮助工程师突破时序收敛瓶颈。特别针对fix_eco_timing命令的隐藏参数和物理协同优化进行详细解析,助力芯片设计实现时序收敛。

weixin_30162121的博客 299

cnocr 安装

【代码】cnocr 安装。

文始道宗藏经阁 1270

【k8s故障处理篇】calico-kube-controllers状态为“ImagePullBackOff”解决办法

【k8s故障处理篇】calico-kube-controllers状态为“ImagePullBackOff”解决办法

jks212454的博客 2308

【YOLO26创新改进】TGRS 2026 | Transformer变体改进篇 | 使用CGTA曲率引导令牌注意力,改善结构与纹理的整体协调,适合遥感小目标检测、旋转目标检测、实例分割任务

本文在YOLO26目标检测模型中引入CGTA曲率引导令牌注意力模块,依据曲率显著性与特征可靠性,从高分辨率特征图中筛选少量关键令牌,再让全部位置与这些代表性特征进行全局交互,从而以较低计算和显存开销建立远距离目标、背景及跨尺度结构之间的联系;该模块能够重点强化车辆、舰船、飞机、建筑等目标的边缘、转角和弯曲轮廓,改善小目标、密集目标及旋转目标的特征完整性与定位稳定性,并通过可靠性门控抑制噪声和伪边缘,通过标准注意力与曲率注意力融合避免平坦区域被过度增强。

AI魔改博士-中大博士 48

开源的OCR工具基本使用:PaddleOCR/Tesseract/CnOCR

因项目需要,调研了一下目前市面上一些开源的OCR工具,支持本地部署,非调用API,主要有PaddleOCR/CnOCR/chinese_lite OCR/EasyOCR/Tesseract/chineseocr/mmocr这几款产品。本文主要尝试了EasyOCR/CnOCR/Tesseract/PaddleOCR这四款产品。

兴趣使然的创作者 5616

YOLOv8改进-利用图像去雾网络UnfogNet提升检测精度的探索【附核心模块代码】

YOLOv8-UnfogNet联合模型的提出为目标检测和图像去雾领域提供了一个新的思路。通过将图像去雾网络和目标检测网络结合,不仅可以提升在恶劣天气下的目标检测精度,还能够为实际应用中的自动驾驶、监控安防等领域带来更强的鲁棒性和适应性。随着去雾技术和目标检测算法的不断发展,我们相信,这种联合方法将在多个领域中获得更加广泛的应用,并为进一步提升图像质量和检测精度做出重要贡献。

一键难忘的博客 3203

保姆级教程安装Pix2text和Nougat,各种报错各种坑

安装Nougat、LaTeX-OCR、Pix2Text

qq_39743377的博客 3412

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

CnSTD+CnOCR的联合使用

复杂背景的OCR,使用CnSTD定位图像中的文本区域,然后CnOCR对每一个区域内的文字进行识别。

xulibo5828的博客 544

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: ROS通信机制实战:从零搭建一个多节点话题通信的小车控制项目
下一篇: 避坑指南:Buildroot编译QT5时最容易忽略的5个配置细节(RK3566实测)
devops8pract
博客等级 码龄4年 533粉丝 849原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值