精选列表

搜索[初体验],共233篇文章
优秀的个人博客,低调大师

PPOCRLabel 半自动化图形标注工具初体验

Windows + Anaconda 下载安装Anaconda(Python 3+) conda install pyqt=5 cd ./PPOCRLabel # 将目录切换到PPOCRLabel文件夹下 pyrcc5 -o libs/resources.py resources.qrc python PPOCRLabel.py 按官方文档执行完上述命令 报错1:is 和 is not不能识别,手动替换对应py文件中的 is 为‘==’ is not 替换为 ‘!=’ 报错2: 明明已经安装了,还是报这个错!因为是非专业的python小白,折腾了很久,最后直接 将anaconda3\Lib\site-packages下对应包复制到PPOCRLabel目录下即可!后续还报了个lxml模块找不到的错误,也是同样的解决方法! 效果图如下所示: 下载安装命令 ## CPU版本安装命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle ## GPU版本安装命令 pip install -f https://paddlepaddle.org.cn/pip/oschina/gpu paddlepaddle-gpu >>访问 PaddlePaddle 官网,了解更多相关内容。

优秀的个人博客,低调大师

PaddleOCR初体验,基于PaddleHub Serving的服务部署

PaddleOCR提供2种服务部署方式: 基于PaddleHub Serving的部署:代码路径为"./deploy/hubserving",按照本教程使用; 基于PaddleServing的部署:代码路径为"./deploy/pdserving",使用方法参考文档。 基于PaddleHub Serving的服务部署 hubserving服务部署目录下包括检测、识别、2阶段串联三种服务包,请根据需求选择相应的服务包进行安装和启动。目录结构如下: deploy/hubserving/ └─ ocr_det 检测模块服务包 └─ ocr_rec 识别模块服务包 └─ ocr_system 检测+识别串联服务包 每个服务包下包含3个文件。以2阶段串联服务包为例,目录如下: deploy/hubserving/ocr_system/ └─ __init__.py 空文件,必选 └─ config.json 配置文件,可选,使用配置启动服务时作为参数传入 └─ module.py 主模块,必选,包含服务的完整逻辑 └─ params.py 参数文件,必选,包含模型路径、前后处理参数等参数 快速启动服务 以下步骤以检测+识别2阶段串联服务为例,如果只需要检测服务或识别服务,替换相应文件路径即可。 1. 准备环境 克隆代码:https://gitee.com/paddlepaddle/PaddleOCR.git,解压并进入PaddleOCR文件夹 # 安装paddlehub pip3 install paddlehub --upgrade -i https://pypi.tuna.tsinghua.edu.cn/simple 2. 下载推理模型 PaddleOCR下新建‘inference’文件夹,准备推理模型并放到‘inference’文件夹里面,默认使用的是v1.1版的超轻量模型, https://github.com/PaddlePaddle/PaddleOCR/blob/develop/doc/doc_ch/quickstart.md 默认模型路径为: 检测模型:./inference/ch_ppocr_mobile_v1.1_det_infer/ 识别模型:./inference/ch_ppocr_mobile_v1.1_rec_infer/ 方向分类器:./inference/ch_ppocr_mobile_v1.1_cls_infer/ 模型路径可在params.py中查看和修改。更多模型可以从PaddleOCR提供的模型库下载,也可以替换成自己训练转换好的模型。 3. 安装服务模块 PaddleOCR提供3种服务模块,根据需要安装所需模块。 在Linux环境下,安装示例如下: # 安装检测服务模块: hub install deploy/hubserving/ocr_det/ # 或,安装识别服务模块: hub install deploy/hubserving/ocr_rec/ # 或,安装检测+识别串联服务模块: hub install deploy/hubserving/ocr_system/ 在Windows环境下(文件夹的分隔符为\),安装示例如下: # 安装检测服务模块: hub install deploy\hubserving\ocr_det\ # 或,安装识别服务模块: hub install deploy\hubserving\ocr_rec\ # 或,安装检测+识别串联服务模块: hub install deploy\hubserving\ocr_system\ 4. 启动服务 方式1. 命令行命令启动(仅支持CPU) 启动命令: hub serving start -c D:\XHX\Develop\Paddale\PaddleOCR\deploy\hubserving\ocr_system\config.json 注意:如果启动报错xxx路径找不到,去PaddleOCR\deploy\hubserving下的ocr_system、ocr_det、ocr_rec的params.py文件,将所有的model_dir 替换为符合win格式的绝对路径即可; 参数: 参数 用途 --modules/-m PaddleHub Serving预安装模型,以多个Module==Version键值对的形式列出 当不指定Version时,默认选择最新版本 --port/-p 服务端口,默认为8866 --use_multiprocess 是否启用并发方式,默认为单进程方式,推荐多核CPU机器使用此方式 Windows操作系统只支持单进程方式 --workers 在并发方式下指定的并发任务数,默认为2*cpu_count-1,其中cpu_count为CPU核数 如启动串联服务:hub serving start -m ocr_system 这样就完成了一个服务化API的部署,使用默认端口号8866。 方式2. 配置文件启动(支持CPU、GPU) 启动命令: hub serving start -c config.json 其中,config.json格式如下: { "modules_info": { "ocr_system": { "init_args": { "version": "1.0.0", "use_gpu": true }, "predict_args": { } } }, "port": 8868, "use_multiprocess": false, "workers": 2 } init_args中的可配参数与module.py中的_initialize函数接口一致。其中,当use_gpu为true时,表示使用GPU启动服务。 predict_args中的可配参数与module.py中的predict函数接口一致。 注意: 使用配置文件启动服务时,其他参数会被忽略。 如果使用GPU预测(即,use_gpu置为true),则需要在启动服务之前,设置CUDA_VISIBLE_DEVICES环境变量,如:export CUDA_VISIBLE_DEVICES=0,否则不用设置。 use_gpu不可与use_multiprocess同时为true。 如,使用GPU 3号卡启动串联服务: export CUDA_VISIBLE_DEVICES=3 hub serving start -c deploy/hubserving/ocr_system/config.json 发送预测请求 配置好服务端,可使用以下命令发送预测请求,获取预测结果: python tools/test_hubserving.py server_url image_path 需要给脚本传递2个参数: server_url:服务地址,格式为 http://[ip_address]:[port]/predict/[module_name] 例如,如果使用配置文件启动检测、识别、检测+识别2阶段服务,那么发送请求的url将分别是: http://127.0.0.1:8866/predict/ocr_det http://127.0.0.1:8867/predict/ocr_rec http://127.0.0.1:8868/predict/ocr_system image_path:测试图像路径,可以是单张图片路径,也可以是图像集合目录路径 访问示例: python tools/test_hubserving.py http://127.0.0.1:8868/predict/ocr_system ./doc/imgs/ 返回结果格式说明 返回结果为列表(list),列表中的每一项为词典(dict),词典一共可能包含3种字段,信息如下: 字段名称 数据类型 意义 text str 文本内容 confidence float 文本识别置信度 text_region list 文本位置坐标 不同模块返回的字段不同,如,文本识别服务模块返回结果不含text_region字段,具体信息如下: 字段名/模块名 ocr_det ocr_rec ocr_system text ✔ ✔ confidence ✔ ✔ text_region ✔ ✔ 说明:如果需要增加、删除、修改返回字段,可在相应模块的module.py文件中进行修改,完整流程参考下一节自定义修改服务模块。 自定义修改服务模块 如果需要修改服务逻辑,你一般需要操作以下步骤(以修改ocr_system为例): 1、 停止服务 hub serving stop --port/-p XXXX 2、 到相应的module.py和params.py等文件中根据实际需求修改代码。 例如,如果需要替换部署服务所用模型,则需要到params.py中修改模型路径参数det_model_dir和rec_model_dir,如果需要关闭文本方向分类器,则将参数use_angle_cls置为False,当然,同时可能还需要修改其他相关参数,请根据实际情况修改调试。强烈建议修改后先直接运行module.py调试,能正确运行预测后再启动服务测试。 3、 卸载旧服务包 hub uninstall ocr_system 4、 安装修改后的新服务包 hub install deploy/hubserving/ocr_system/ 5、重新启动服务 hub serving start -m ocr_system

优秀的个人博客,低调大师

使用Python开发鸿蒙设备程序(0-初体验

到目前为止,鸿蒙设备开发的“官方指定语言”还是C语言! 这看起来是一件正常的事,毕竟鸿蒙设备开发还是属于嵌入式开发的范畴,而在嵌入式开发中C语言又是当之无愧的首选,所以,大家也都接受了这个现实。。。。。。。 上周末,有幸能和华为的大佬们进行面对面交流(其实我是去抱大腿的),我们都一致认为:如果设备开发能支持更简洁的开发方式(如:简单的语言,简单的开发环境),相信会有更多的开发者加入。。。 那么现在,有没有一种语言,受众面很广又简单易学呢? 当然是有的,相信你已经知道了,就是 Python ! 这几年 Python 借助 AI 的兴起而进入大众视野,她的简单易学深受欢迎,很多小学生都能够用她来编程了。 所以,一个看起来很疯狂的想法从我大脑蹦了出来:如果鸿蒙设备开发可以用 Python ,那么肯定能降低学习门槛,吸引更多的开发者。。。 于是,说干就干。。。 我先调研了目前的各种Python实现(Python是开源的,可以通过源码了解实现),发现公版 Python 和 MicroPython 都可以是我的起点(baseline),毕竟我没有必要照着 Python 规范写一个解释器出来!然而,困难还是有的,这两种实现都有非常多的依赖,而且设计目标又分别不同:公版 Python 是一个大而全的系统(解释器,库,等等),目标是只要资源丰富爱怎么玩就怎么玩;MicroPython 从公版 Python 剪裁而来,并做了扩展,基本定义成了一个微型嵌入式设备上的操作系统。 那么,怎么开始呢,做选择真的很难啊!!!! 我开始整理思路,我想干什么?!之后有了下面的架构图。 很显然,我想的是提供鸿蒙设备开发的其它方式,而不是用 Python 替换 C 语言!所以,我的第一个里程碑(milestone)是获得一个可以在鸿蒙设备(Hi3861)上运行的 Python 解释器!有了这个 Python 解释器,接下来就是设计 Python 版的鸿蒙系统开发接口了。。。 确定了目标之后,接下来的问题就是:究竟是用公版 Python 开刀还是用 MicroPython 开刀? 通过两者代码的对比阅读,我发现 MicroPython 居然在解释器部分对公版 Python 也做了剪裁。。。这,为什么啊??? 我暂时也没有确切答案,不过从代码实现可以看出 MicroPython 是为了适配更多低配置的硬件而做了取舍!那显然,很多东西人家都考虑过了!我想着目前鸿蒙设备的定位也是低配硬件,那么用 MicroPython 开刀看起来更合适。 =========== 华丽的分割线 Begin =========== 通过 2 天的手术的改造,能够运行的版本(DTPython)就有了!! 使用方式如下: 下载文末附件中的 libdtpython.a,并将其拷贝到 \code-1.0\vendor\hisi\hi3861\hi3861\build\libs 目录下,如图: 【可选】编写 Python 代码(目前未提供任何库支持),并使用文末附件中的 Txt2Str 工具将其转换为 C 字符串,用法如下: 说明: Txt2Str 将 Python 代码用 C 字符串的形式存储到 C 文件中(如上图中的 test.c) 将转换得到的 C 文件加入工程中即可在 C 代码中使用 Python 代码(可参考文末附件中的示例) 注意:目前还没有简单的方法直接将 Python 源文件烧写到设备中,因此才需要上述步骤。 在设备开发中使用 Python 代码,示例如下: 运行结果如下: =========== 华丽的分割线 End =========== 后记: 目前仅仅能够运行基本的 Python 代码,大概率还存在很多需要解决的问题。 希望大家都来试玩我的这个方案,多找Bug,多提Issue。 现阶段的代码乱一坨,实在不好意思拿出来丢人现眼,基本功能稍微稳定些,直接开源!!! Enjoy It ! 获取原文资源包 作者:唐佐林 想了解更多内容,请访问: 51CTO和华为官方战略合作共建的鸿蒙技术社区 https://harmonyos.51cto.com

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库方案。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。