文字识别(OCR)介绍与开源方案对比
目录
文字识别(OCR)介绍与开源方案对比
一、OCR是什么
二、OCR基本原理说明
三、OCR基本实现流程
四、OCR开源项目调研
1、tesseract
2、PaddleOC
3、EasyOCR
4、chineseocr
5、chineseocr_lite
6、cnocr
7、商业付费OCR
1)腾讯OCR(付费) - AI 基础产品模块
2)阿里OCR(付费) - 阿里灵杰AI开放服务
3) 百度OCR (付费) - 百度AI开放能力
五、主要开源项目对比和结论
1、项目优缺点对比
2、综合对比
一、OCR是什么
OCR (Optical Character Recognition,光学字符识别)技术是一种将印刷体或手写文字转化为可编辑文本的技术。亦即将图像中的文字进行识别,并以文本的形式返回。
从图像化的文本信息中提取到文字符号做表征的语义信息,其重要性不言而喻,在实际应用场景中也比较容易想到跟NLP技术结合来完成比较优质的人机交互等任务。

二、OCR基本原理说明
为了识别一张图片中的文字,通常包含两个步骤:
1)、文本检测:检测出图片中文字所在的位置;
2)、文字识别:识别包含文字的图片局部,预测具体的文字。
三、OCR基本实现流程
OCR(光学字符识别)的简单实现流程通常包括以下步骤:
1、图像预处理:首先,对输入的图像进行预处理,包括灰度化、二值化、去噪等操作。这些操作有助于提高字符识别的准确性和稳定性。
2、文本区域检测:使用图像处理技术(如边缘检测、轮廓分析等),找到图像中可能包含文本的区域。这些区域通常是字符或文本行的边界。
3、字符分割:对于文本行,需要将其分割为单个字符。这可以通过字符之间的间距、连通性等特征进行分割。
4、特征提取:对于每个字符,提取其特征表示。常见的特征包括形状、角度、纹理等。特征提取有助于将字符转化为可供分类器处理的数值表示。
5、字符分类:使用分类器(如机器学习算法或深度学习模型)对提取的字符特征进行分类,将其识别为相应的字符类别。分类器可以是预训练模型,也可以是自定义训练的模型。
6、后处理:对识别的字符进行后处理,如纠正错误、校正倾斜、去除冗余等。这可以提高最终结果的准确性和可读性。
7、输出结果:将识别的字符组合成最终的文本输出,可以是单个字符、单词或完整的文本。
四、OCR开源项目调研
1、tesseract
https://github.com/tesseract-ocr/tesseract

Tesseract是一个开源的OCR(光学字符识别)引擎,由Google开发和维护。它能够将图像中的文本转换为可编辑的文本,并且支持多种语言的文本识别。Tesseract已经成为广泛使用的OCR工具之一,具有较高的准确率和可扩展性。
以下是Tesseract的主要特点和功能:
1、多语言支持:Tesseract支持多种语言的文本识别,包括英语、中文、日语、韩语、法语、德语、西班牙语等。它具有训练和识别多种语言的能力,并且用户可以根据需要添加自定义语言模型。
2、高准确率:Tesseract使用了一系列的图像处理和机器学习算法,以实现高准确率的文本识别。它经过大规模数据集的训练和优化,能够在各种图像条件下准确地识别出字符信息。
3、可扩展性:Tesseract具有良好的可扩展性,用户可以使用自定义训练数据来训练和优化OCR模型,以提高识别的准确性和适应性。此外,Tesseract还提供了API和接口,方便用户进行二次开发和集成。
4、平台兼容性:Tesseract支持多种操作系统,包括Windows、Mac和Linux等。它可以在各种平台上运行,并且提供了与不同编程语言(如Python、Java、C++等)的接口,方便开发者进行集成和使用。
5、开源和社区支持:Tesseract是一个开源项目,具有活跃的社区支持。用户可以自由查看和修改源代码,并参与社区讨论和贡献。这使得Tesseract成为一个不断发展和改进的OCR工具。
2、PaddleOC
https://github.com/PaddlePaddle/PaddleOCR

PaddleOCR是一个基于飞桨(PaddlePaddle)深度学习平台的开源OCR(光学字符识别)工具,旨在提供高性能和准确率的文本识别功能。它可以识别和提取多语言文本中的字符信息,并具有广泛的应用场景,包括文档处理、图像文字提取、自动化数据录入等。
以下是PaddleOCR的主要特点和功能:
1、多语言支持:PaddleOCR支持多种语言的文本识别,包括英语、中文、日语、韩语、法语、德语、西班牙语等。它可以处理不同语言的文本,并满足跨国应用的需求。
2、多种模型选择:PaddleOCR提供了多种预训练的OCR模型供选择,包括文本检测模型和文本识别模型。文本检测模型用于检测文本区域,而文本识别模型用于识别文本内容。用户可以根据自己的需求选择适合的模型。
3、高准确率和性能:PaddleOCR采用了深度学习技术,利用预训练的神经网络模型实现高准确率的文本识别。它在大规模数据集上进行了训练和优化,能够在各种图像条件下识别出准确的字符信息,并具有较高的性能和效率。
4、强大的功能扩展性:PaddleOCR提供了丰富的功能扩展接口和工具,使用户可以自定义和定制OCR模型。用户可以根据自己的数据集和应用场景进行模型训练、微调和优化,以进一步提高识别的准确性和适应性。
5、开源和社区支持:PaddleOCR是一个开源项目,具有活跃的社区支持。用户可以自由查看和修改源代码,也可以参与社区讨论和贡献。这为用户提供了一个共享和合作的平台,以促进OCR技术的发展和应用。
3、EasyOCR
https://github.com/JaidedAI/EasyOCR

EasyOCR是一种简单易用的开源OCR(光学字符识别)工具,旨在识别和提取多语言文本中的字符信息。它提供了一种快速而准确的方式来将印刷体字符转换为可编辑的文本,可以应用于多种场景,包括文档扫描、图像文字提取、自动化数据录入等。EasyOCR 是由 Jaided AI 公司创建的。全语种的(包括80+门外语识别),不单单针对中文,所以它的官方文档是英文。
以下是EasyOCR的主要特点和功能:
1、多语言支持:EasyOCR支持多种语言的文本识别,包括英语、中文、日语、韩语、法语、德语、西班牙语等。这使得它能够处理不同语言的文本,并满足跨国应用的需求。
2、高准确率:EasyOCR采用了基于深度学习的方法,利用深度神经网络模型来实现高准确率的文本识别。这些模型经过大规模数据的训练和优化,能够在各种图像条件下识别出准确的字符信息。
3、简单易用:EasyOCR注重用户友好性,提供了简单易用的API和命令行界面,使用户能够轻松集成和使用该工具。无需复杂的配置和调优,即可进行快速的文本识别。
4、支持多种图像格式:EasyOCR能够处理多种常见的图像格式,包括JPEG、PNG、BMP等。这使得用户可以使用各种图像来源,如扫描仪、手机拍摄等,进行文本识别。
5、高性能:EasyOCR针对效率进行了优化,能够在较短的时间内处理大量的图像并进行文本识别。这对于需要处理大批量图像或实时应用的场景非常有用。
官方demo:
https://www.jaided.ai/easyocr/
4、chineseocr
https://github.com/chineseocr/chineseocr

它基于 YOLO V3 与 CRNN 实现中文自然场景文字检测及识别
如果要做个性化的话,Chineseocr框架相对来说非常方便,只需要修改对应模块的函数就可以,因为本身这些模块其实就是可扩展的,比如后续pull request到项目里的lstm推理和ncnn核扩展。
5、chineseocr_lite
https://github.com/DayBreak-u/chineseocr_lite

ChineseOCR Lite是一种基于深度学习的开源OCR(光学字符识别)引擎,旨在识别和提取中文文本中的字符信息。它使用深度神经网络来实现高准确率的文本识别功能,并且具有较小的模型体积和较快的识别速度。
以下是一些ChineseOCR Lite的主要特点和功能:
1、中文文本识别:ChineseOCR Lite专注于中文文本的识别和提取。它可以处理印刷体中文字符,并能够在各种图像中准确识别和提取文本信息。
2、深度学习模型:该引擎采用深度神经网络模型,通常使用卷积神经网络(CNN)和循环神经网络(RNN)的组合。这种模型能够学习和理解字符的特征,并能够对复杂的文本进行准确的识别。
3、开源和可定制:ChineseOCR Lite是一个开源项目,这意味着用户可以自由地查看和修改源代码,以满足自己的需求。用户可以根据自己的数据集和应用场景进行训练和微调,以提高识别的准确性和性能。
4、小模型体积:ChineseOCR Lite着重于设计轻量级的模型,以减小模型的体积和内存占用。这使得它能够在嵌入式设备或资源受限的环境中运行,提供实时的文本识别能力。
5、高速识别:由于模型的小尺寸和优化,ChineseOCR Lite能够快速处理图像并进行实时的文本识别。这对于需要快速处理大量图像或实时应用的场景非常有用。
超轻量级中文ocr,支持竖排文字识别, 支持ncnn推理 , psenet(8.5M) + crnn(6.3M) + anglenet(1.5M) 总模型仅17M。
相比 chineseocr,chineseocr_lite 采用了轻量级的主干网络 PSENet,轻量级的 CRNN 模型和行文本方向分类网络 AngleNet。尽管要实现多种能力,但 chineseocr_lite 总体模型只有 17M。目前 chineseocr_lite 支持任意方向文字检测,在识别时会自动判断文本方向。
6、cnocr
https://github.com/breezedeus/CnOCR

cnocr是一个基于深度学习的中文OCR(光学字符识别)工具,专门用于识别和提取中文文本中的字符信息。它采用了深度神经网络模型,具有高准确率和较快的识别速度。
以下是cnocr的主要特点和功能:
1、中文文本识别:cnocr专注于中文文本的识别和提取。它能够处理印刷体中文字符,并能够在各种图像中准确识别和提取中文文本信息。
2、基于深度学习:cnocr使用深度神经网络模型进行文本识别。这种模型能够学习和理解字符的特征,并能够对复杂的中文文本进行准确的识别。
3、简单易用:cnocr提供了简单易用的API和命令行界面,使用户能够轻松集成和使用该工具。无需复杂的配置和调优,即可进行快速的中文文本识别。
4、高准确率:由于采用了深度学习模型,cnocr具有较高的准确率,能够识别出复杂字形和字体的中文字符。
5、快速识别:cnocr经过优化,能够在较短的时间内处理图像并进行实时的中文文本识别。这对于需要快速处理大量图像或实时应用的场景非常有用。
7、商业付费OCR
1)腾讯OCR(付费) - AI 基础产品模块
AI 基础产品
https://cloud.tencent.com/document/product/866/17624

2)阿里OCR(付费) - 阿里灵杰AI开放服务
阿里灵杰AI开放服务
https://help.aliyun.com/document_detail/442328.html?spm=a2c4g.295341.0.0.5bc4525aeKeSzs

3) 百度OCR (付费) - 百度AI开放能力
百度AI开放能力
https://ai.baidu.com/tech/ocr

五、主要开源项目对比和结论
1、项目优缺点对比
| 项目 | 优点 | 缺点 |
| tesseract | 1、github上面star非常多,项目非常活跃 2、多语言支持:Tesseract支持多种语言的文本识别,可以处理多种语言的文本 3、后面做背书的公司非常强(google) 4、Tesseract提供了扩展接口和工具,可以自定义训练和优化OCR模型 | 1、不是专门针对中文场景 2、相关文档主要是英文,对于阅读和理解起来有一定困难 3、学习成本比较高 4、对于复杂字形和字体的识别准确性较低 5、与其他OCR相比,Tesseract的准确率可能相对较低 |
| PaddleOCR | 1、github上面star非常多,项目非常活跃 2、模型只针对中文进行训练 3、百度后面做背书,公司非常强 4、提供了多种预训练模型和接口,支持用户进行自定义训练和优化 5、识别的精确度比较高 | 1、安装和配置相对复杂一些,需要一定的技术知识和经验 2、对于一些较小的文字或低分辨率的图像,PaddleOCR的性能可能受到影响 3、使用的训练模型是基于百度公司自己的PaddlePaddle框架,对于小公司来说并不主流(对比于ts或者pytorch),所使用深度学习框架为后续其他深度学习无法做很好的铺垫 4、项目整体比较复杂,学习成本较高 |
| EasyOCR | 1、github上面的star也是比较多 2、支持的语言也是非常多的,多达80多种 3、识别的精确度尚可 | 1、从官方的页面体验来说识别的速度较慢 2、识别的文字种类多,学习难度较高 3、相关的官方文档是基于英文的,学习难度较高,对于新手不太友好 4、由于模型较大,EasyOCR的内存占用较高 |
| chineseocr | 1、github上面的star也是比较多 2、专门针对中文进行学习和训练的模型 3、具有一定的准确性和可扩展性 | 1、需要一定的技术知识和经验来进行安装和配置。 2、文档和社区支持相对较少 |
| chineseocr_lite | 1、github上面的star也是比较多 2、专门针对中文进行学习和训练的模型 3、比较轻量级,具有较小的模型和内存占用 4、由于模型较小,chineseocr_lite具有较快的文本识别速度 | 1、因为没有大厂和公司的背书, 所以存在一些bug 2、对于复杂场景下的效果不佳 3、准确率相对较低 4、功能和扩展性相对有限 |
| CNOCR | 1、高准确率:cnocr利用深度学习模型实现高准确率的中文文本识别。 2、简单易用:cnocr提供了简单易用的API和命令行界面,方便用户集成和使用。 3、快速识别:cnocr经过优化,能够快速处理图像并进行实时的中文文本识别。 | 1、依赖深度学习框架:cnocr依赖于深度学习框架,因此在使用之前需要安装相应的框架和依赖库。 2、仅支持中文文本:cnocr主要用于中文文本识别,对于其他语言的文本识别支持有限。 |
2、综合对比
Tesseract: Tesseract是一个成熟且广泛使用的OCR引擎,具有强大的社区支持和多语言的识别能力。它是开源的,可扩展性强,但准确度相对其他工具可能略低一些。对于简单的文本识别任务,Tesseract可能是一个简单易用的选择。
PaddleOCR: PaddleOCR是基于飞桨深度学习平台的OCR工具,具有多语言支持和较高的准确率。它提供了多种预训练模型和自定义训练的功能,适用于复杂的文本识别任务。然而,PaddleOCR的安装和配置可能相对复杂一些。
EasyOCR: EasyOCR是一个简单易用的OCR工具,支持多语言和多种字体的文本识别。它具有较高的准确率,并提供简单的API和界面,便于集成和使用。对于快速部署和简单的文本识别需求,EasyOCR可能是一个不错的选择。
chineseocr: chineseocr是一个开源的中文OCR工具,具有一定的准确性和可扩展性。然而,它的文档和社区支持相对较少,可能需要一定的技术知识和经验进行安装和配置。
chineseocr_lite: chineseocr_lite是一个轻量级的中文OCR工具,具有较小的模型和快速识别速度。然而,它的准确率相对较低,适用于一些简单的文本识别场景。
cnocr: cnocr是一个专门用于中文文本识别的OCR工具,基于深度学习模型,具有较高的准确率和较快的识别速度。它适用于中文文本的识别和提取任务,但对于其他语言的支持可能有限。
对于简单易用性和准确度高的要求,EasyOCR和cnocr可能是较好的选择。EasyOCR提供了简单易用的API和界面,适用于快速部署和简单的文本识别任务。而cnocr则专注于中文文本识别,具有较高的准确率和较快的识别速度。根据具体的需求和实际情况,可以选择适合自己的OCR工具。
相关文章:
文字识别(OCR)介绍与开源方案对比
目录 文字识别(OCR)介绍与开源方案对比 一、OCR是什么 二、OCR基本原理说明 三、OCR基本实现流程 四、OCR开源项目调研 1、tesseract 2、PaddleOC 3、EasyOCR 4、chineseocr 5、chineseocr_lite 6、cnocr 7、商业付费OCR 1)腾讯…...
Modbus tcp转ETHERCAT在Modbus软件中的配置方法
Modbus tcp和ETHERCAT是两种不同的协议,这给工业生产带来了很大的麻烦,因为这两种设备之间无法通讯。但是,远创智控YC-ECT-TCP网关的出现,却为这个难题提供了解决方案。 YC-ECT-TCP网关能够连接到Modbus tcp总线和ETHERCAT总线中…...
开源点云数据集整理汇总
目录 一、ModelNet401. 网址2. 模型 二、ShapeNet1. 网址2. 模型 三、S3DIS Dataset1. 网址2. 模型 四、ScanNet1. 网址2. 模型 五、RGB-D Object Dataset1. 网址2. 模型 六、 NYU Depth Dataset V2 (纽约大学深度数据集)1. 网址2. 模型 七、 The Stanfo…...
【全栈开发指南】VUE前端路由设计及配置
我们在使用Vue.js时,创建单页面应用一定会用到路由,Vue Router 是 Vue.js 官方的路由管理器,我们在开发框架中过程中,需要结合Vue Router路由管理器提供的功能,设计和实现系统中菜单的配置。 一、实现原理 一级菜单r…...
C语言程序环境和预处理
本章主要以图片和文字的形式给大家讲解 程序的翻译环境和程序的执行环境 在ANSI C的任何一种实现中,存在两个不同的环境。 第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令。 第2种是执行环境,它用于实际执行代码 2. 详解编译…...
为摸鱼助力:一份Vue3的生成式ElementPlus表单组件
目录 一、实现背景 二、简介 三、组织架构设计 四、实现方式 五、代码示例 六、示例代码效果预览 七、项目预览地址 & 项目源码地址 目前项目还有诸多待完善的地方,大家有好的想法、建议、意见等欢迎再次评论,或于github提交Issues 一、实现…...
数通工作中常见问题与解决方法
城域网,硬件,交换机开局 1、环路产生,现象,怎么解决 一般是物理拓扑存在环路,导致数据互传,Mac地址漂移,产生环路; Cpu利用率变高,端口流量接近100%,有mac…...
基于STM32+华为云IOT设计的智能浇花系统
一、前言 随着社会的不断发展和人们生活水平的逐渐提高,人们逐渐追求高质量的生活,很多人都会选择在家里或办公室种植一些花卉以净化家庭空气,陶冶情操,但是很多人忙于工作、学习、出差、旅游或者一些其他的原因,不能及时地对花卉进行照料,短时间内导致很多花卉因缺水分…...
回调函数(callback)是什么?
通俗易懂 你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。 在这个例子里,你的电话号码就叫回调函…...
零代码量化投资:用ChatGPT获取新浪财经上的股票实时行情
现在很多免费的股票数据库,比如akshare,其实是从新浪财经或者东方财富网站上爬取下来的。如果能直接从新浪财经或者东方财富网站上爬取数据,可以获取更全面更即时的信息。 可以在ChatGPT中输入提示词如下: 写一段Python代码&…...
从GitLab拉取并运行项目
从GitLab拉取并运行项目 序Git项目运行运行报错 总结教训 序 搭建好前端基础环境后,开始尝试从单位项目组拉取项目尝试本地运行。 Git Git相关配置:一篇学会Git版本管理 先申请Git账号,随后由上级分配权限拉入该项目组。 通过git clone ……...
AI绘画结合GPT 把Ai绘画与摄影玩明白
一、绘画与摄影有什么关系? 绘画和摄影是两种不同的艺术形式,它们都以其自身独特的方式捕捉和表达现实。在某些方面,它们是相互联系的,而在其他方面,它们又有所不同。 相似之处:绘画和摄影都是创造性的…...
哈工大计算机网络课程数据链路层协议详解之:多路访问控制(MAC)协议
哈工大计算机网络课程数据链路层协议详解之:多路访问控制(MAC)协议 在上一小节介绍完数据链路层功能和所提供的服务后,接下来我们介绍一个在数据链路层非常重要的一个协议:多路访问控制MAC协议。 多路访问控制主要是…...
docker基本概念和相关命令
!!! 前面都是概念东西,可以直接跳到Docker命令就可以了(直接搜吧“Docker命令”,页内无法跳转,还在研究中……) 容器和虚拟化 容器包含应用和其所有的依赖包,但是与其他容器共享内核。容器在宿主机操作系统中,在用户…...
43. 间断连续登录用户问题
文章目录 题目需求思路一实现一题目来源 题目需求 现有各用户的登录记录表(login_events)如下,表中每行数据为:一个用户何时登录了平台。 现要求统计各用户最长的连续登录天数,间断一天也算作连续,例如&a…...
Visual Studio Code 编辑器实用插件简介
Visual Studio Code 编辑器插件 以下是一些常用的 Visual Studio Code 编辑器插件及其简短描述: 2gua.rainbow-brackets:在括号周围添加彩虹色的边框,以帮助区分不同层次的括号。adpyke.codesnap:将代码片段转换为漂亮的图片&am…...
微信小程序之Image那些事
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、使用场景二、使用方式1.动态读取image大小2.动态设置style3.动态赋值 总结 前言 小程序中 Image使用频率是非常高的 不同场景下 Image使用的属性也不一样 …...
【MySQL】不就是子查询
前言 今天我们来学习多表查询的下一个模块——子查询,子查询包括了标量子查询、列子查询、行子查询、表子查询,话不多说我们开始学习。 目录 前言 目录 一、子查询 1. 子查询的概念 2. 子查询语法格式 2.1 根据子查询结果不同可以分为:…...
gpt4实现对摄像头帧缓冲区图像的LAB阈值选择界面(python-opencv)
代码全是GPT4写的,我就提出Prompt和要改的地方而已。 图形界面效果 可复制阈值:(xxx, xxx, xxx, xxx, xxx, xxx) 代码 import cv2 import numpy as np import time from tkinter import * from PIL import Image, ImageTk import pyperclip # new# G…...
Stable Diffusion WebUI 集成 LoRA模型,给自己做一张壁纸 Ubuntu22.04 rtx2060 6G
LoRA概念 LoRA的全称是LoRA: Low-Rank Adaptation of Large Language Models,可以理解为stable diffusion(SD)模型的一种插件,和hyper-network,controlNet一样,都是在不修改SD模型的前提下,利用少量数据训…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
C# 求圆面积的程序(Program to find area of a circle)
给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...
JS设计模式(4):观察者模式
JS设计模式(4):观察者模式 一、引入 在开发中,我们经常会遇到这样的场景:一个对象的状态变化需要自动通知其他对象,比如: 电商平台中,商品库存变化时需要通知所有订阅该商品的用户;新闻网站中࿰…...
如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
【从零开始学习JVM | 第四篇】类加载器和双亲委派机制(高频面试题)
前言: 双亲委派机制对于面试这块来说非常重要,在实际开发中也是经常遇见需要打破双亲委派的需求,今天我们一起来探索一下什么是双亲委派机制,在此之前我们先介绍一下类的加载器。 目录 编辑 前言: 类加载器 1. …...
Ubuntu系统多网卡多相机IP设置方法
目录 1、硬件情况 2、如何设置网卡和相机IP 2.1 万兆网卡连接交换机,交换机再连相机 2.1.1 网卡设置 2.1.2 相机设置 2.3 万兆网卡直连相机 1、硬件情况 2个网卡n个相机 电脑系统信息,系统版本:Ubuntu22.04.5 LTS;内核版本…...
用鸿蒙HarmonyOS5实现国际象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的国际象棋小游戏的完整实现代码,使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├── …...
