• 百度车牌识别AI Linux使用方法-armV7交叉编译


    1、获取百度ai的sdk

    百度智能云-登录 (baidu.com)

            里面有两个版本的armV7和armV8架构。v7架构的性能比较低往往需要交叉编译,v8的板子性能往往比较好,可以直接在板子上编译。

            解压到ubuntu里面。这里介绍v7架构的。

    2、ubuntu环境配置

    ubuntu下安装软件包。根据提示可以安装其他的包

    sudo apt install g++-arm-linux-gnueabihf

    3、移植 zlib 库

    zlib Home Site

    点击下载,放到ubuntu里面。进入解压后的目录,终端执行下面指令

    1. export CC=arm-linux-gnueabihf-gcc
    2. export LD=arm-linux-gnueabihf-ld
    3. export AD=arm-linux-gnueabihf-as
    4. ./configure --prefix=$PWD/zlib_output

    然后

    1. make //编译
    2. make install

            把$PWD/zlib_output 文件夹下面include文件夹和lib文件夹下面的文件复制到car-plate-sdk-armv7hf/include文件夹,car-plate-sdk-armv7hf/libs文件夹里面。

    4、编译百度AI

            在ubuntu里面首先先给文件夹权限。

    chmod -R +x car-plate-sdk-armv7hf/

            在car-plate-sdk-armv7hf/demo文件夹下,创建文件夹01cmake,里面创建文件arm-linux-setup.cmake。

    文件arm-linux-setup.cmake里面添加下面内容,表示选择对应编译工具

    1. set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
    2. set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)

    然后在demo文件夹里面创建一个build的文件夹,进入文件夹依次输入下面指令

    1. cmake -DCMAKE_TOOLCHAIN_FILE=../01cmake/arm-linux-setup.cmake ..
    2. make

    执行编译

    这样就编译成功了。

    5、 文件传输与执行

            创建nfs和v7的板子互联,这个需要自己去查询怎么把ubuntu和v7板子上进行文件夹文件共享了。

    busybox mount -o nolock -t nfs 192.168.1.78:/home/spepc/nfs ~/nfs/ 

            v7架构的板子我使用的是imx6ull,执行百度ai的时候,估计提示缺少库。

            从ubuntu18里面找到/usr/arm-linux-gnueabihf/lib里面的库文件,复制到开发板的

    cp /usr/arm-linux-gnueabihf/lib/libgomp.so.1* ~/nfs

            开发板连接nfs,然后从nfs里面复制库到/usr/lib/文件夹下面

    cp libgomp.so.1* /usr/lib/

    1B43FEDD24C811E9F26A932FC57C0F93

            根据这个码,去百度智能云上面申请临时的鉴权码。

            申请得到的码,离线激活,下载下来得到压缩文件,解压文件得到下面的两个文件。放到ubuntu里面,然后共享到v7板子里面。

            打开key

    把编译得到的可执行文件从build复制到demo文件夹里面。然后在开发板上执行。

    ./run.sh

    于是车牌识别就搞定了。具体还是需要自己优化修改。

  • 相关阅读:
    【C++】类和对象(下)
    简单对比一下 C 与 Go 两种语言
    自定义注解实现日志打印时屏蔽特定字段不打印
    那些年我们追过的Devops
    Java基础常见知识&面试题总结(下)
    MS SQL变更及字段更新顺序问题
    mp4文件怎样提取mp3音频文件
    命令行获取chrome版本的多个方法
    多线程和多进程的区别与联系
    2.1.1BFS中的Flood Fill和最短路模型
  • 原文地址:https://blog.csdn.net/mx1252111/article/details/133788189