部署训练后的缺陷检测模型
- Linux Ubuntu18.04双机尝试
报错,Linux内核或是编译器版本不匹配,多次尝试更改18.04的gcc,g++,gcc-arm-linux,g+±arm-linux的代码,尝试在Makefile文件里更改编译器路径、添加LInux内核头文件都没能如愿。而开发板方面环境配置,由于该库过于底层,很可能对系统造成影响,所以无法修改环境配置。
root@awcloud:/opt/paddle_frame# cd /opt/paddle_frame
root@awcloud:/opt/paddle_frame# chmod 777 ./run.sh
root@awcloud:/opt/paddle_frame# ./run.sh
insmod: ERROR: could not insert module cmadrv.ko: File exists
./ssd_detection: /lib/arm-linux-gnueabihf/libm.so.6: version `GLIBC_2.27' not found (required by ./paddlelite_lib/libpaddle_full_api_shared.so)
查看相关支持版本,发现版本过高不被支持:
root@awcloud:/opt/paddle_frame# strings /lib/arm-linux-gnueabihf/libm.so.6 |grep GLIBC_
GLIBC_2.4
GLIBC_2.15
GLIBC_2.18
GLIBC_2.23
GLIBC_PRIVATE
- CentOS虚拟机(在宝奇笔记本上,仍然双电脑)
成功部署。检测图片:
检测效果:
更改ssd_dection.cc源码重新编译
- 报错:
CMakeLisrs.txt里的编译器路径,改为绝对路径
实时预测摄像头拍摄数据
- PL端将数据存入DDR3,并将存储数据的起始地址作为一个参数传递到sse_detection.cc里面,PS端读取DDR3上的存储数据转为OpenCV格式进行检测。
- 编写脚本my_run.sh,方便调试和运行代码。/opt/my_run.sh,会自动设置路径,更改文件权限,执行程序。
- 遇到问题,nb文件所用opt工具与Paddle-Lite版本不一致的警告。将一些地方的路径改为绝对路径,没有警告了。
- 未解决问题:加载模型的步骤,段错误,原因未知。
文件说明
- 检测相关的源代码在笔记本虚拟机的/opt/nna里面,总调用源代码在台式机桌面C5TB文件夹里面那个main.c
- 想跑程序的话,台式机桌面ubuntu和CentOS7是编译好的,ubuntu报错见Linux Ubuntu18.04双机尝试,CentOS7里后缀0的是第二个demo换成缺陷检测模型能跑的,后缀1的是两个demo结合起来发生段错误的
自己记录一下
#include <iostream>
#include <stdio.h>
using namespace std;
int main() {
const char b[11] = "0x1234567a";
int x;
printf("%p\n",b);
std::sscanf(("%p",b),"%x",&x);
printf("x:::%x",x);
}