PaddleOCR Android demo替換最新識(shí)別庫和模型

PaddleOCR的官方Android demo使用的PaddleLite版本目前是2.10,使用的paddle_lite_opt優(yōu)化后的模型是v2版本。目前最新的PaddleLite版本是2.13RC,最新的模型版本是v4,據(jù)說有比較大提升。那么如何在官方demo中體驗(yàn)最新版本的PaddleLite識(shí)別庫和v4模型呢?

下載PaddleLite

可以直接下載官方編譯好的:https://github.com/PaddlePaddle/Paddle-Lite/releases,我下載的是v2.13RC版本

下載后,解壓,放到Android demo的app module根目錄下,文件夾重命名為PaddleLite(與demo原編譯腳本運(yùn)行后自動(dòng)生成的文件夾同名)。目錄結(jié)構(gòu)為:

如果你想使用低于2.13的版本的PaddleLite,那么需要注意的是,只支持python == 2.7\3.5\3.6\3.7。https://github.com/PaddlePaddle/Paddle-Lite/issues/10115

安裝paddlelite工具

pip install paddlelite==2.13rc0

需要注意的是,這一步需要安裝跟上述PaddleLite同版本的命令行工具,來優(yōu)化模型。如果使用其他版本的paddlelite工具優(yōu)化出來的模型,使用時(shí)會(huì)報(bào)錯(cuò)”Error: This model is not supported, because kernel for ‘io_copy’ is not supported by Paddle-Lite.“

由于我上述下載的PaddleLite推理庫的版本是2.13RC,所以這里我就安裝2.13rc0版本的paddlelite。

優(yōu)化模型

從這里下載最新的模型:https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7/doc/doc_ch/models_list.md

需要下載三個(gè)模型,分別是文本檢測(cè)模型、文本識(shí)別模型、文本方向分類模型。都各自下載最新的版本。注意下載的是”推理模型“,而不是“訓(xùn)練模型”或“nb模型”。

下載之后,使用上述通過pip安裝的paddlelite工具進(jìn)行優(yōu)化:

paddle_lite_opt --model_file=./inference.pdmodel --param_file=./inference.pdiparams --optimize_out=./output --valid_targets=arm --optimize_out_type=naive_buffer

運(yùn)行完成后,會(huì)得到一個(gè)nb文件。對(duì)上述下載的文本檢測(cè)模型、文本識(shí)別模型、文本方向分類模型分別執(zhí)行,得到三個(gè)nb文件。將這三個(gè)nb文件,放到Android demo的asserts文件夾中替換原始的三個(gè)模型文件。

修改CMakeLists.txt

查找文件中對(duì)${PaddleLite_DIR}的使用,注釋掉新版PaddleLite中不再存在的文件對(duì)應(yīng)的add_custom_command,再修改libpaddle_light_api_shared.so文件的路徑。

收尾

修改Android demo中的MiniActivity.java/Predictor.java/string.xml中,對(duì)模型文件或者模型文件夾的定義,使其與新的模型文件相匹配

運(yùn)行

完美運(yùn)行

參考文獻(xiàn)

https://github.com/PaddlePaddle/Paddle-Lite/releases

https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7/deploy/lite/readme.md

https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7/doc/doc_ch/models_list.md

https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7/deploy/android_demo/app/build.gradle

https://github.com/PaddlePaddle/PaddleOCR/tree/release/2.7/deploy/android_demo

https://github.com/PaddlePaddle/Paddle-Lite/issues/10115

https://github.com/PaddlePaddle/PaddleOCR/blob/release/2.7/deploy/lite/readme_ch.md

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容