1、获取百度ai的sdk
里面有两个版本的armV7和armV8架构。v7架构的性能比较低往往需要交叉编译,v8的板子性能往往比较好,可以直接在板子上编译。
解压到ubuntu里面。这里介绍v7架构的。
2、ubuntu环境配置
ubuntu下安装软件包。根据提示可以安装其他的包
sudo apt install g++-arm-linux-gnueabihf
3、移植 zlib 库
点击下载,放到ubuntu里面。进入解压后的目录,终端执行下面指令
export CC=arm-linux-gnueabihf-gcc
export LD=arm-linux-gnueabihf-ld
export AD=arm-linux-gnueabihf-as
./configure --prefix=$PWD/zlib_output
然后
make //编译
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里面添加下面内容,表示选择对应编译工具
set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)
然后在demo文件夹里面创建一个build的文件夹,进入文件夹依次输入下面指令
cmake -DCMAKE_TOOLCHAIN_FILE=../01cmake/arm-linux-setup.cmake ..
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
于是车牌识别就搞定了。具体还是需要自己优化修改。