国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

在amd64與arm上用paddlelite部署paddelOCR(Ascend硬件)

這篇具有很好參考價值的文章主要介紹了在amd64與arm上用paddlelite部署paddelOCR(Ascend硬件)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

由于部署的硬件是華為昇騰 NPU(Ascend310),參考網址https://www.paddlepaddle.org.cn/lite/v2.10/demo_guides/huawei_ascend_npu.html#npu-paddle-lite

先拉取paddlelite用來編譯庫

git clone https://github.com/PaddlePaddle/Paddle-Lite.git
cd Paddle-Lite

先在amd64上部署的,于是編譯并生成 PaddleLite+NNAdapter+HuaweiAscendNPU for amd64 and arm64 的部署庫

./lite/tools/build_linux.sh --arch=x86 --with_extra=ON --with_log=ON --with_exception=ON --with_nnadapter=ON --nnadapter_with_huawei_ascend_npu=ON --nnadapter_huawei_ascend_npu_sdk_root=/home/ds/Ascend/ascend-toolkit/6.0.RC1.alpha003

編譯到一半的時候會出現未知原因的編譯錯誤,并不會報error而是直接停止,于是放棄編譯HuaweiAscendNPU庫,只編譯PaddleLite+NNAdapter

./lite/tools/build_linux.sh --arch=x86 --with_extra=ON --with_log=ON --with_exception=ON --with_nnadapter=ON 

編譯出來的庫與頭文件在該地址中
在amd64與arm上用paddlelite部署paddelOCR(Ascend硬件),華為,bash,linux,paddlepaddle,paddle
在amd64與arm上用paddlelite部署paddelOCR(Ascend硬件),華為,bash,linux,paddlepaddle,paddle

  • (該步可省略)下載測試案例demo
    https://paddlelite-demo.bj.bcebos.com/devices/generic/PaddleLite-generic-demo_v2_10_0.tar.gz
    里面有這幾個案例代碼可以供學習
    在amd64與arm上用paddlelite部署paddelOCR(Ascend硬件),華為,bash,linux,paddlepaddle,paddle
cd /home/ds/Desktop/paddleModel/PaddleLite-generic-demo/image_classification_demo/shell

案例目錄結構
在amd64與arm上用paddlelite部署paddelOCR(Ascend硬件),華為,bash,linux,paddlepaddle,paddle

./run.sh mobilenet_v1_fp32_224 linux amd64

輸入上述命令行即可開始測試
在amd64與arm上用paddlelite部署paddelOCR(Ascend硬件),華為,bash,linux,paddlepaddle,paddle
在amd64與arm上用paddlelite部署paddelOCR(Ascend硬件),華為,bash,linux,paddlepaddle,paddle
在amd64與arm上用paddlelite部署paddelOCR(Ascend硬件),華為,bash,linux,paddlepaddle,paddle

這些案例中就有編譯好的各個平臺的庫與頭文件,如果測試通過的話說明相對應的庫可以在該平臺直接用。如果不可以用,就用上面源碼直接編譯出來的庫。
然后下載Paddle-Lite-Demo,這個里面有很多案例,包括ocr的案例
在amd64與arm上用paddlelite部署paddelOCR(Ascend硬件),華為,bash,linux,paddlepaddle,paddle
下載地址
https://github.com/PaddlePaddle/Paddle-Lite-Demo

https://github.com/PaddlePaddle/Paddle-Lite-Demo/tree/develop/ocr/armlinux/shell/cxx/ppocr_demo
由于涉及到多平臺的適配性,原項目目錄結構比較復雜,cmakeList文件也寫的很復雜,我把項目結構進行了重新排布
在amd64與arm上用paddlelite部署paddelOCR(Ascend硬件),華為,bash,linux,paddlepaddle,paddle
CMakeLists.txt也重新改寫了,只保留了必要的部分

cmake_minimum_required(VERSION 3.5)

set(CMAKE_CXX_STANDARD 17)
project(Ocr_Ascend)
add_definitions(-g)
# 默認arm
#set(path lib/arm)
set(opencvVersion opencv410)#設置opencv版本
# 頭文件
include_directories(./include)
include_directories(./PaddleLite/include)
include_directories(/home/ds/Desktop/opencv-4.1.0/include/opencv4)
include_directories(/home/ds/Desktop/opencv-4.1.0/include/opencv2)


# 庫文件
link_directories(./PaddleLite/lib)
link_directories(/home/ds/Desktop/opencv-4.1.0/build/lib)


aux_source_directory (src SRC_LIST)
add_executable (AscendOcr ${SRC_LIST})
# c++17
# target_link_libraries(AscendOcr  opencv_highgui opencv_core opencv_imgproc opencv_imgcodecs opencv_calib3d opencv_features2d opencv_videoio protobuf glog gflags paddle_inference pthread paddle_light_api_shared paddle_api_full_bundled)
target_link_libraries(AscendOcr  opencv_highgui opencv_core opencv_imgproc opencv_imgcodecs opencv_calib3d opencv_features2d opencv_videoio  paddle_light_api_shared)

# 注意測試
set (EXECUTABLE_OUTPUT_PATH ${PROJECT_SOURCE_DIR}/bin) 

原demo項目每次運行,終端需要輸入的參數過于繁雜
在amd64與arm上用paddlelite部署paddelOCR(Ascend硬件),華為,bash,linux,paddlepaddle,paddle
容易出現意外的錯誤,于是我在代碼中將這些參數寫死了
在amd64與arm上用paddlelite部署paddelOCR(Ascend硬件),華為,bash,linux,paddlepaddle,paddle
由原始的Paddle格式模型到paddlelite可以使用的格式模型需要使用opt轉換工具進行轉模型,opt轉換工具可以直接在該地址的assets里面下載,在那個平臺就下載那個平臺的
https://github.com/PaddlePaddle/Paddle-Lite/releases/tag/v2.13-rc
在amd64與arm上用paddlelite部署paddelOCR(Ascend硬件),華為,bash,linux,paddlepaddle,paddle
下完之后可以直接運行

./opt --model_file=./en_number_mobile_v2.0_rec_slim_infer/inference.pdmodel  --param_file=./en_number_mobile_v2.0_rec_slim_infer/inference.pdiparams  --optimize_out=./en_number_mobile_v2.0_rec_slim_infer_opt --valid_targets=x86  --optimize_out_type=naive_buffer

注意valid_targets這個參數要隨著使用平臺進行修改,使用上述命令就可產生nb格式的模型
在amd64與arm上用paddlelite部署paddelOCR(Ascend硬件),華為,bash,linux,paddlepaddle,paddle
如果要在華為NPU上執(zhí)行模型,需要在opt工具轉換的時候將如下選項設置成valid_targets=arm,huawei_ascend_npu。如果只是在CPU上執(zhí)行,需要設置如下選項valid_targets=arm

paddle_lite_opt --model_file=./MobileNetV2/inference.pdmodel --param_file=./MobileNetV2/inference.pdiparams --valid_targets=arm,huawei_ascend_npu --optimize_out=./MobileNetV2/MobileNetV2

參考網址:https://zhuanlan.zhihu.com/p/432033215

然后運行,會報莫名其妙的錯,Run() double free or corruption (!prev)或者Segmentation fault (core dumped),后來我一個地方一個地方的手動打斷點,發(fā)現是字符識別的時候,如果一張圖有多個detection模型識別出來的區(qū)域,往往第一個detection識別出來的字符是對的,然后從第二個就開始出問題,最后Run() double free or corruption (!prev)或者Segmentation fault (core dumped)終止,甚至看了paddlelite的源碼,并沒有什么可以修改的地方,我認為這是paddlelite或者這個項目在x86平臺中有bug,需要paddlelite相關人員進行修復。
雖然不能順利運行,但是我想到了一個方法,既然只有第一次能成功識別,后面的都不能,那我每次for循環(huán)一次都初始化一下那個識別容器
在amd64與arm上用paddlelite部署paddelOCR(Ascend硬件),華為,bash,linux,paddlepaddle,paddle
然后能夠順利執(zhí)行完成!
在amd64與arm上用paddlelite部署paddelOCR(Ascend硬件),華為,bash,linux,paddlepaddle,paddle
然后在arm平臺上運行,重新編譯了arm平臺上的paddlelite庫。

sudo ./lite/tools/build_linux.sh --arch=armv8  --with_extra=ON --with_log=ON --with_exception=ON --with_nnadapter=ON

然后同樣步驟運行我改寫的ocr項目,發(fā)現就不會出現我上面提到的錯誤,看來這個錯誤僅僅在amd64 平臺用x86庫時會出現。
之后我會嘗試編譯出HuaweiAscendNPU庫,待續(xù)。文章來源地址http://www.zghlxwxcb.cn/news/detail-738658.html

到了這里,關于在amd64與arm上用paddlelite部署paddelOCR(Ascend硬件)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 確定Mac\Linux系統的架構類型是 x86-64(amd64),還是 arm64 架構

    我們在下載軟件或鏡像時會有很多版本,那需要根據我們的系統架構選擇正確的軟件或鏡像版本。 要確定你的系統使用的是 x86-64(amd64) 還是 arm64 架構,可以使用以下方法之一: 使用 uname 命令: 打開終端,并運行以下命令: 在MAC中: 如果輸出結果是 x86_64 ,則表示你的系

    2024年02月08日
    瀏覽(24)
  • Linux軟件包名稱含AMD,ARM,x64的詳解

    下載clickhouse-backup時看到不同軟件包,有的是x86,有的是amd64,有的是arm64,這些有啥區(qū)別呢? clickhouse-backup-2.4.2-1.x86_64.rpm clickhouse-backup_2.4.2_amd64.deb clickhouse-backup_2.4.2_arm64.deb x86 和 ARM 都是CPU設計的一個架構。x86 用的是復雜指令集。ARM用的是精簡指令集。 x86_64簡稱x64是基于

    2024年02月03日
    瀏覽(32)
  • CentOS(4)——關于Linux軟件下載時:amd64、x86、x86_64、arm64 的說明

    目錄 一、簡介 二、常見的CPU架構 三、Linux查看CPU架構命令 ①arch命令 ②uname -a 命令 ③lscpu 在安裝GitLab Runner的時候,去清華源下載RPM包時發(fā)現同一個軟件有許多不同架構的安裝包,常見的有amd64、x86、x86_64、arm64這些架構,這就類似于Windows下安裝軟件需要區(qū)分32bit和64bit。在

    2024年02月03日
    瀏覽(36)
  • Linux系統查看版本、位數(32位或64位)、架構(arm或amd)的命令

    這里是Ubuntu linux系統; 輸入命令: 顯示: 輸入命令: 顯示: 輸入命令: 顯示: 補充:amd (intelx86架構)和arm版本區(qū)別。 x86和arm架構定位不同: arm基于精簡指令(RISC),本身定位于嵌入式平臺,簡化了硬件邏輯的設計,減少了晶體管,從而降低功耗,流水線等控制并不復雜

    2024年02月16日
    瀏覽(26)
  • ARM和X86、X86和X64、Intel和AMD、CPU和GPU介紹

    ARM和X86、X86和X64、Intel和AMD、CPU和GPU介紹

    X86 和 ARM 都是CPU設計的一個架構。X86 用的是復雜指令集。ARM用的是精簡指令集。 指令集其實就是機器碼,機器碼上是匯編,匯編之上是程序語言例如java、c、c#。 復雜指令集是在硬件層面上設計了很多指令,所以編程會簡單些。 精簡指令集是在硬件層面上設計的指令比較少

    2024年02月04日
    瀏覽(28)
  • FFmpeg在 Windows 環(huán)境編譯(64位)支持h264,h265,和Intel QSV,Nvidia Cuda,AMD amf 硬件加速

    FFmpeg在 Windows 環(huán)境編譯(64位)支持h264,h265,和Intel QSV,Nvidia Cuda,AMD amf 硬件加速

    目錄 目錄 前言 一.?源碼包下載 1. FFmpeg源碼下載 2. MSYS2安裝 ? 2.1 執(zhí)行下面命令配置環(huán)境 ? 2.2 安裝完成后將MSYS2安裝路徑下的mingw64/bin配置到windows環(huán)境變量中 ? 2.3 安裝其他工具( 默認全部安裝 ): 3. 安裝CMake工具 ? 3.1 將CMake加入環(huán)境變量 4. 下載x264,x265 ? 4.1 x264源碼下載:

    2024年02月11日
    瀏覽(35)
  • The requested image‘s platform (linux/arm64/v8) does not match the detected host platform (linux/amd

    這一段完整的報錯是: The requested image’s platform (linux/arm64/v8) does not match the detected host platform (linux/amd64) and no specific platform was requested 翻譯過來就是說:請求的映像的平臺(linux/arm64/v8)與檢測到的主機平臺(linux/amd64)不匹配,未請求特定平臺。 背景: 這段報錯是發(fā)生在內

    2024年02月01日
    瀏覽(31)
  • abpvnext框架的項目部署到linux arm64版的docker中

    abpvnext框架的項目部署到linux arm64版的docker中

    參考: windows10下安裝的docker 導出鏡像到另一個電腦_docker鏡像拷貝另一臺機器的鏡像-CSDN博客 前提條件: 1、vs2022,我的電腦本機安裝有windows版docker desktop 。 2、linux中已經安裝好docker,安裝了sftp。這部分可以自行去查資料安裝。 3、項目里有dockerfile支持文件。我的支持文件

    2024年02月03日
    瀏覽(34)
  • aarch64 arm64 部署 stable diffusion webui 筆記 【1】準備 venv 安裝pytorch 驗證cuda

    aarch64 arm64 部署 stable diffusion webui 筆記 【1】準備 venv 安裝pytorch 驗證cuda

    aarch64 pytorch(沒有aarch64對應版本,自行編譯) pytorch-v2.0.1 cuda arm64 aarch64 torch 2.0.1+cu118 源碼編譯筆記【2】驗證cuda安裝 成功_hkNaruto的博客-CSDN博客 [root@ceph3 stable-diffusion-webui]# /usr/local/Python-3.10.12/bin/python3 -m venv venv [root@ceph3 stable-diffusion-webui]# source venv/bin/activate (venv)[root@ceph3 stab

    2024年02月07日
    瀏覽(22)
  • TI AM64x工業(yè)核心板硬件說明書(雙核ARM Cortex-A53 + 單/四核Cortex-R5F + 單核Cortex-M4F,主頻1GHz)

    TI AM64x工業(yè)核心板硬件說明書(雙核ARM Cortex-A53 + 單/四核Cortex-R5F + 單核Cortex-M4F,主頻1GHz)

    創(chuàng)龍科技SOM-TL64x是一款基于TI Sitara系列AM64x雙核ARM Cortex-A53 + 單/四核Cortex-R5F + 單核Cortex-M4F設計的多核工業(yè)級核心板,通過工業(yè)級B2B連接器引出5x TSN Ethernet、9x UART、2x CAN-FD、GPMC、PCIe/USB 3.1等接口。核心板經過專業(yè)的PCB Layout和高低溫測試驗證,穩(wěn)定可靠,可滿足各種工業(yè)應用環(huán)

    2024年02月11日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包