PaddleOCR 安卓手机通过 Termux 连接电脑为 Paddle-Lite 端侧测试搭建可编程的 Linux 调试终端【免费下载链接】PaddleOCR飞桨多语言OCR工具包实用超轻量OCR系统支持80种语言识别提供数据标注与合成工具支持服务器、移动端、嵌入式及IoT设备端的训练与部署 Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80 languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)项目地址: https://gitcode.com/paddlepaddle/PaddleOCR在 PaddleOCR 的飞桨训推一体全流程TIPC测试体系中Paddle-Lite 的 ARM 端 C 推理测试需要在安卓手机上运行bash脚本与完整 Linux 命令而传统adb shell仅能提供受限的 toybox 命令集自动化测试因此受阻。本篇技术指南基于 test_tipc/docs/termux_for_android.md完整讲解如何在安卓手机安装 Termux、配置 SSH 服务使电脑通过局域网 SSH 直连手机终端并支持多台机器同时连接同一台手机最终配合test_lite_arm_cpp.sh完成 Paddle-Lite 端侧推理测试。读完本文你将掌握一套无需 root、可运行大部分 Linux 命令、可在手机上在线调试 PaddleOCR Lite 推理程序的环境搭建全流程。一、为什么 PaddleOCR 的端侧测试需要 Termux在 PaddleOCR 的端侧部署链路中deploy/lite/readme.md 展示了通过 Paddle-Lite 在手机上运行 OCR 检测、方向分类、识别模型的标准流程。而在 TIPCTraining and Inference Pipeline Criterion测试体系中test_tipc/docs/test_lite_arm_cpp.md 明确指出了传统方案的痛点由于运行该项目需要 bash 等命令传统的 adb 方式不能很好的安装。所以此处推荐通在手机上开启虚拟终端的方式连接电脑。具体来说adb 方案存在三个核心限制命令集受限adb shell默认提供的命令是基于 Android 精简过的 toybox 工具集很多标准 Linux 命令如bash、tar、ifconfig等无法直接运行导致依赖 shell 脚本的自动化测试如 test_tipc/test_lite_arm_cpp.sh无法在手机上执行难以在线调试adb 无法提供交互式的完整终端体验不方便开发者在手机上直接调试 C 推理程序连接方式单一adb 只能维持一条 USB 调试通道不利于多台电脑同时协同操作。Termux 则提供了完全不同的解决思路可运行大部分 Linux 命令基于pkg包管理器可安装 openssh、proot、python 等数百个真实软件包可安装真实的 Linux 环境Termux 本身不是真实的 Linux 环境但通过proot可以模拟 root 环境与标准的 Linux 目录结构且不会损失性能无需 rootTermux 全部运行在用户空间/data/data/com.termux不需要手机解锁 bootloader 或获取 root 权限支持多台机器同时连接通过 SSH 服务多台电脑可同时接入同一台手机极大方便团队协作与自动化测试。二、前置条件安装并验证 adb在配置 Termux 之前需要先确保电脑端已安装 adb 工具。adb 的安装方式在 deploy/lite/readme.md 中有详细说明各平台命令如下LinuxUbuntu/Debian 系sudo apt update sudo apt install -y wget adbmacOSbrew cask install android-platform-toolsWindows需要从 Android 官方平台下载 adb 工具包并配置环境变量。安装完成后用 USB 数据线连接手机并确保手机已开启开发者模式下的 USB 调试然后验证 adb 是否识别设备adb devices连接成功时输出如下744be294为设备序列号device表示设备状态正常List of devices attached 744be294 device三、第一步在安卓手机上安装 Termux3.1 下载 Termux apk 文件Termux 应用目前未上架各大手机应用商城需要直接下载 apk 安装包。仓库文档给出的方式是在电脑终端执行以下命令下载示例地址为仓库维护团队的内部服务器普通开发者可从 Termux 官方发布的渠道获取对应版本的 apkwget http://10.12.121.133:8911/cuicheng01/fullchain/termux-v1.0.3.apk3.2 安装 Termux 到手机在手机端开启开发者模式允许 USB 调试、允许 USB 安装。然后在电脑终端执行adb install termux-v1.0.3.apk执行后手机端会弹出安装确认窗口点击确认即可完成安装。3.3 验证是否安装成功打开手机应用列表查看 Termux 是否安装成功。若没有安装成功重新执行 3.2 的命令若安装成功点击进入后会看到如下终端欢迎界面界面中会显示Welcome to Termux!提示以及常用的包管理命令说明pkg search、pkg install、pkg upgrade等。后续所有环境配置命令都需要在手机上的这个终端中运行。四、第二步手机端初始化 Termux 环境4.1 安装 proot 并模拟 root 环境首先将手机联网最好能连接外网部分软件包的下载需要外网访问。打开 Termux 终端依次执行以下命令pkg i -y proot termux-chroot命令说明pkg i -y proot通过 Termux 的包管理器安装基础组件proot-i等价于install-y表示自动确认无需逐个询问termux-chroot进入 chroot 模拟环境获得模拟的 root 权限与标准的 Linux 目录结构/bin、/etc、/home、/usr等。4.2 授予存储访问权限Termux 默认只能访问自身内部的数据目录无法读取手机其它存储位置如相册、下载目录。执行以下命令后手机端会弹出权限请求窗口允许即可termux-setup-storage授权后Termux 会在自身目录下建立storage软链接如~/storage/dcim、~/storage/downloads方便对部分运行出的结果在手机端进行可视化查看也能更方便地把测试图片、模型文件等传入 Termux 环境。五、第三步在 Termux 中配置 SSH作为 Linux 终端或者服务器SSH 是必备能力。无论你是从电脑 SSH 连接到 Termux还是使用 Termux 去连接其它主机都需要先安装 openssh。安装命令如下若安装失败请重复执行命令pkg i -y openssh安装完成后启动 SSH 服务端。Termux 的 sshd 默认端口号为 8022而非标准的 22 端口这是因为 Android 系统无 root 权限时无法绑定 1024 以下的端口sshd六、第四步电脑通过 SSH 连接手机6.1 获取手机 IP 地址与当前用户名前提保证手机和电脑处于同一局域网下。在手机端 Termux 终端分别输入以下命令# 获取 ip 地址 ifconfig # 获取当前用户 whoami假设获取到的 IP 地址和当前用户分别是172.24.162.117和u0_a374Android 下 Termux 用户名的典型形式。6.2 电脑端 SSH 连接手机在电脑终端执行# 默认端口号为 8022 ssh u0_a374172.24.162.117 -p 8022注意SSH 客户端连接使用小写-p指定端口。首次连接会提示确认主机指纹输入yes并回车即可继续。6.3 验证连接连接成功后在电脑端运行ls命令即可看到手机 Termux 环境下的目录结构ls从截图可以看到手机 Termux 的存储软链接目录dcim、downloads、movies、music、pictures、shared已通过 SSH 在电脑终端完整呈现。至此电脑已获得一个完整的、可交互的手机 Linux 终端可以自由运行 Paddle-Lite 推理程序与 shell 测试脚本。七、第五步通过 scp 在电脑与手机之间传输数据SSH 连接打通后数据的双向传输同样可以通过 SSH 协议完成。在手机端或连接后的电脑端新建测试目录mkdir test在电脑端将本地文件拷贝到手机上注意scp 指定端口使用大写-Pscp -P 8022 test.txt u0_a374172.24.162.117:/home/storage/test回到手机终端进入/home/storage/test目录检查test.txt是否已成功传输。这一能力对端侧测试至关重要.nb格式的 Lite 优化模型、测试图片、config.txt配置文件、字典文件等都可以通过 scp 直接从电脑推送到手机 Termux 环境无需反复插拔数据线。八、实战衔接用 Termux 跑通 PaddleOCR 的 Paddle-Lite ARM 测试Termux SSH 方案在 PaddleOCR 仓库中最直接的落地场景就是 TIPC 的 Lite 端 ARM C 预测功能测试。8.1 在电脑端准备测试包按照 test_tipc/docs/test_lite_arm_cpp.md 的说明首先运行 test_tipc/prepare_lite_cpp.sh 准备测试数据、测试模型和用于预测的可执行文件。以 ARM CPU 为例# 预测库为下载方式 bash test_tipc/prepare_lite_cpp.sh ./test_tipc/configs/ch_PP-OCRv2_det/model_linux_gpu_normal_normal_lite_cpp_arm_cpu.txt download # 预测库为编译方式 bash test_tipc/prepare_lite_cpp.sh ./test_tipc/configs/ch_PP-OCRv2_det/model_linux_gpu_normal_normal_lite_cpp_arm_cpu.txt compile运行后会在当前路径生成test_lite.tar其中包含测试数据如icdar2015_lite检测测试集经paddle_lite_opt转换的*_opt.nb优化模型编译好的ocr_db_crnn可执行文件config.txt、ppocr_keys_v1.txt字典文件、libpaddle_light_api_shared.so动态库测试脚本test_lite_arm_cpp.sh与配置文件。8.2 通过 Termux 在手机上执行测试由于测试脚本依赖bash传统的 adb 方式无法直接运行此时正是 Termux SSH 方案的用武之地将test_lite.tar通过 scp或 adb push 到/data/local/tmp后再拷贝传输到手机在 Termux 终端或电脑 SSH 到手机的终端中解压该文件进入test_lite目录运行测试脚本bash test_lite_arm_cpp.sh model_linux_gpu_normal_normal_lite_cpp_arm_cpu.txt测试脚本会遍历配置中指定的模型、batch-size、线程数等组合调用ocr_db_crnn依次执行检测det、识别rec或系统system模式的推理最终在test_lite/output目录下生成lite_*.log日志文件。运行成功时输出Run successfully with command - ./ocr_db_crnn det ch_PP-OCRv2_det_infer_opt.nb ARM_CPU FP32 1 1 ...运行失败时输出Run failed with command ...可据此快速定位问题。整个测试过程中test_tipc/test_lite_arm_cpp.sh 依赖的bash、变量解析、循环与日志重定向等能力正是 Termux 提供的完整 Linux 环境所保障的。九、更多教程与使用注意事项本文档可完成 Termux 的基本配置满足 PaddleOCR Paddle-Lite 端侧测试的远程终端需求更多关于 Termux 的高级用法如自定义按键、安装更多软件包、配置 X11 图形界面等可自行查阅 Termux 官方 Wiki 与社区教程。完整的 Lite 端模型部署流程Paddle-Lite 预测库准备、模型优化、ocr_db_crnn命令行参数说明、config.txt各项参数含义等请参考 deploy/lite/readme.md其中config.txt中max_side_len、det_db_thresh、rec_image_height等参数的调整直接影响手机端 OCR 的检测与识别效果。若在手机上运行推理时报错Error: This model is not supported, because kernel for io_copy is not supported by Paddle-Lite.通常是 paddlelite 版本与预测库版本不匹配所致请确保paddle_lite_opt工具与预测库版本一致后重新转换.nb模型。若需将 Lite 端核心算法封装为手机 App可参考 deploy/android_demo 中的 Android Demo 示例工程。【免费下载链接】PaddleOCR飞桨多语言OCR工具包实用超轻量OCR系统支持80种语言识别提供数据标注与合成工具支持服务器、移动端、嵌入式及IoT设备端的训练与部署 Awesome multilingual OCR toolkits based on PaddlePaddle (practical ultra lightweight OCR system, support 80 languages recognition, provide data annotation and synthesis tools, support training and deployment among server, mobile, embedded and IoT devices)项目地址: https://gitcode.com/paddlepaddle/PaddleOCR创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考