Ubuntu20.04 交叉编译Paddle-OCR

这篇具有很好参考价值的文章主要介绍了Ubuntu20.04 交叉编译Paddle-OCR。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

第一步:交叉编译Paddle-Lite

参考链接:https://blog.csdn.net/sz76211822/article/details/130466597?spm=1001.2014.3001.5501

第二步:交叉编译opencv4.x

参考链接:https://blog.csdn.net/sz76211822/article/details/130461683?spm=1001.2014.3001.5501

第三步:文件放置

1.将Paddle-Lite编译好的cxx文件夹放置到PaddleOCR/deploy/lite目录下

Ubuntu20.04 交叉编译Paddle-OCR

2.将编译好的opencv文件夹放置到cxx目录下

Ubuntu20.04 交叉编译Paddle-OCR

3.除了拷贝过来的源代码,还需要clipper.h 和clipper.cpp这两个文件,在chineseocr_lite (GitHub - DayBreak-u/chineseocr_lite: 超轻量级中文ocr,支持竖排文字识别, 支持ncnn、mnn、tnn推理 ( dbnet(1.8M) + crnn(2.5M) + anglenet(378KB)) 总模型仅4.7M)中拷贝过来,放置在PaddleOCR/deploy/lite目录下

Ubuntu20.04 交叉编译Paddle-OCR

Ubuntu20.04 交叉编译Paddle-OCR

文件目录 :

 Ubuntu20.04 交叉编译Paddle-OCR

第四步:创建CMakeLists.txt文件

cmake_minimum_required(VERSION 2.8)

project(paddle_lite_ocr)
set(TARGET paddle_lite_ocr)

set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

# Set ARMLINUX_ARCH_ABI to armv8 or armv7 or armv7hf
set(ARMLINUX_ARCH_ABI armv8)

# 1. path to Paddle-Lite lib
set(LITE_DIR "${CMAKE_SOURCE_DIR}/cxx")

# 2. link Paddle-Lite directory
link_directories(${LITE_DIR}/lib)
include_directories(${LITE_DIR}/include)

FIND_PACKAGE( OpenMP REQUIRED)
if(OPENMP_FOUND)
  message("OPENMP FOUND")
  set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
  set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
endif()

# opencv
set(OpenCV_DIR ${LITE_DIR}/opencv/lib/cmake/opencv4)
find_package(OpenCV REQUIRED)

set(CMAKE_CXX_STANDARD 14)

# 3.add executable output
add_executable(${TARGET} ocr_db_crnn.cc cls_process.cc db_post_process.cc crnn_process.cc clipper.cpp)
target_link_libraries(${TARGET} -lpaddle_light_api_shared ${OpenCV_LIBS})
target_link_libraries(${TARGET} -ldl)

set(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/install/paddle_lite_ocr)
install(TARGETS paddle_lite_ocr DESTINATION ./)
#install(DIRECTORY model DESTINATION ./)

 注意点:Ubuntu20.04 交叉编译Paddle-OCR

 第五步:创建build.sh

#!/bin/bash

set -e

# for rk3328 aarch64
GCC_COMPILER=/opt/gcc/bin/arm-linux-gnueabihf

ROOT_PWD=$( cd "$( dirname $0 )" && cd -P "$( dirname "$SOURCE" )" && pwd )

# build rockx
BUILD_DIR=${ROOT_PWD}/build

if [[ ! -d "${BUILD_DIR}" ]]; then
  mkdir -p ${BUILD_DIR}
fi

cd ${BUILD_DIR}
cmake .. \
    -DCMAKE_C_COMPILER=${GCC_COMPILER}-gcc \
    -DCMAKE_CXX_COMPILER=${GCC_COMPILER}-g++
make -j4
make install
cd -

注意点:

Ubuntu20.04 交叉编译Paddle-OCR

第六步:编译

chmod 777 build.sh
./build.sh

然后会出现编译报错

Ubuntu20.04 交叉编译Paddle-OCR

第七步:解决ocr_db_crnn.cc文件编译错误

打开ocr_db_crnn.cc文件,注释掉#include "AutoLog/auto_log/lite_autolog.h",如图

Ubuntu20.04 交叉编译Paddle-OCR

 同时,将AutoLogger的全部注释掉

Ubuntu20.04 交叉编译Paddle-OCR

 Ubuntu20.04 交叉编译Paddle-OCR

 Ubuntu20.04 交叉编译Paddle-OCR

第八步:解决floorf报错 

参考链接:Linux C++ gcc `floorf` not a member of `std`?_qq76211822的博客-CSDN博客

第九步:重新执行./build.sh

执行完成后,会在PaddleOCR/deploy/lite多出2个文件

Ubuntu20.04 交叉编译Paddle-OCR

在install目录下找到编译的paddle_lite_ocr执行文件

Ubuntu20.04 交叉编译Paddle-OCR

第十步:打包

 将libpaddle_light_api_shared.so、ch_PP-OCRv2_det_infer_opt.nb、paddle_lite_ocr、libgomp.so.1、opencv等库放进同一个目录。如图:

Ubuntu20.04 交叉编译Paddle-OCR

1.其中config.txt是在PaddleOCR/deploy/lite目录下

Ubuntu20.04 交叉编译Paddle-OCR

2. libgomp.so.1是交叉编译器的动态库,存放在

Ubuntu20.04 交叉编译Paddle-OCR

 将libgomp.so.1.0.0下载到windows桌面后,改名为libgomp.so.1即可

3.opencv的动态库,是交叉编译好的

Ubuntu20.04 交叉编译Paddle-OCR

同样,下载*.so.4.7.0的动态库后,改名

4.ppocr_keys_v1.txt是paddle-OCR文件夹中寻得,暂未使用。

Ubuntu20.04 交叉编译Paddle-OCR

 第十一步:放到arm机器上运行

Ubuntu20.04 交叉编译Paddle-OCR

执行:

chmod 777 ./paddle_lite_ocr

 根据ocr_db_crnn.cc源码可知det需要9个参数

Ubuntu20.04 交叉编译Paddle-OCR

 Ubuntu20.04 交叉编译Paddle-OCR

 执行

./paddle_lite_ocr det ch_PP-OCRv2_det_infer_opt.nb  arm INT8 4 0 lite_demo.png config.txt

det 表示检测

ch_PP-OCRv2_det_infer_opt.nb 表示模型名

arm表示运行平台

INT8/FP32 表示检测相关

4 表示线程个数

0 我个人用的,不知道啥意思

lite_demo.png 检测文件

config.txt 配置文件

第十二步:输出结果

Ubuntu20.04 交叉编译Paddle-OCR

打开vis.jpg

Ubuntu20.04 交叉编译Paddle-OCR

原图:

Ubuntu20.04 交叉编译Paddle-OCR

备注:PaddleOCR 模型下载

Ubuntu20.04 交叉编译Paddle-OCR

Ubuntu20.04 交叉编译Paddle-OCR

备注:Paddle-OCR字典下载 

Ubuntu20.04 交叉编译Paddle-OCR文章来源地址https://www.toymoban.com/news/detail-432688.html

到了这里,关于Ubuntu20.04 交叉编译Paddle-OCR的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Ubuntu20.04_x86交叉编译aarch64版本的tslib1.22步骤

    编译环境:小米笔记本+Windows10+VMware17 +Ubuntu20.04虚拟机 编译目标:需要生成aarch64环境下对应的触摸屏驱动。 编译步骤: 1、下载aarch64-linux-gnu编译器,下载地址为:https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.x

    2024年02月16日
    浏览(47)
  • ubuntu20.04 编译安装运行emqx

    Erlang/OTP OTP 24 或 25 版本 GCC 4.8 或更高版本 Git make openssl-devel libcurl-devel

    2024年02月11日
    浏览(55)
  • Ubuntu20.04安装fortran编译器

    1.打开终端:你可以通过按下 Ctrl + Alt + T 键组合来打开终端窗口。 2.更新包列表:运行以下命令以确保你的包列表是最新的:  sudo apt update 3.安装Fortran编译器:运行以下命令来安装GNU Fortran编译器: sudo apt install gfortran 4.验证安装:安装完成后,你可以运行以下命令来验证F

    2024年02月03日
    浏览(39)
  • Linux Server 20.04 Qt5.14.2配置Jetson Orin Nano Developer Kit 交叉编译环境

    最近公司给了我一块Jetson Orin Nano的板子,先刷了系统(1.Jetson Orin Nano Developer Kit系统刷机)又让我搭建交叉编译环境,所以有了下面的文章 1.1设备环境 1.1.1 Server: 1.1.2 Jetson Orin Nano : 1.2 Qt相关下载地址 1.2.1 Qt源码下载 Qt源码下载(最好下载tar.xz,tar格式可能在windows下编辑过,后期

    2024年02月12日
    浏览(48)
  • Ubuntu20.04与22.04 openssl与openssl编译安装

    操作系统openssl版本查看: 推荐根据操作系统默认版本下载对应修复版本 ubuntu20.04 openssl版本:OpenSSL 1.1.1f ubuntu22.04 openssl版本:OpenSSL 3.0.2 首先,使用 wget 命令下载 OpenSSL 的源代码压缩包。从 OpenSSL 官方网站上找到最新版本的源代码。 如下以ubuntu20.04示例: 解压源代码 使用

    2024年02月06日
    浏览(65)
  • Ubuntu 20.04源码编译安装OpenCV 4.7.0

    目录 前言 1--下载OpenCV 4.7.0 2--编译安装OpenCV 4.7.0 3--测试 3-1--查看安装的版本 3-2--基于VSCode和CMake测试项目 4--报错解决(重点!) 4-1--OpenCV与FFmpeg不兼容 4-2--LIBTIFF报错 4-3--系统与Anaconda的库lib冲突 4-4--测试时CMake的find_package报错         建议先看第4节相关报错及解决方法,再

    2024年01月16日
    浏览(72)
  • Ubuntu20.04部署编译LVI-SAM

    该动图来自LVI-SAM开源地址(https://github.com/TixiaoShan/LVI-SAM) 近期在学习SLAM相关知识,拜读了此篇经典论文LVI-SAM,因为部署的时候系统版本与开源略有不同,遇到一些问题,故在此记录一下。 若是大手子,请直接忽视本文。 衷心建议大家先参照开源各版本进行环境配置,可以

    2024年02月11日
    浏览(72)
  • 从头搭建Android源码编译环境(Ubuntu 18.04 / 20.04 / 22.04)

    在新安装的Ubuntu上(版本20.04LTS),完成搭建Android源码编译环境步骤如下。 顺带说一句,当前用的比较多的Ubuntu是18.04和20.04,在实际项目中一直在用,可用性和稳定性都没问题。 最新的Ubuntu22.04版本,系统默认的二进制库变化比较大,编译Android源码有问题(实测过,没细研

    2024年02月06日
    浏览(161)
  • RK3588开发板编译环境Ubuntu20.04编译配置增加交换内存

    迅为提供的编译环境 Ubuntu20.04 默认配置了交换内存是 9G,如果在编译过程中,因内 存不够而编译报错,可以参考本小节进行设置。 这里举例分配 5G 交换内存。 在开始之前,使用命令检查一下您的 ubuntu 的 swap 分区。 sudo swapon --show 通过以下命令创建一个用于 swap 的文件 su

    2024年02月11日
    浏览(45)
  • libreoffice 7 ( arm64 ubuntu20.04 环境) 源码编译

    基础环境 cpu os docker Dockerfile

    2024年02月13日
    浏览(66)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包