移植seetafaceengine-master、opencv到ARM板
0、前言
- 在要移植opecv和SeetaFaceEngine-master到ARM板子上运行的所有步骤之前,有几点需要注意的:
- 查看板子运行的Kernel版本
- 交叉编译工具链的gcc版本,关键就是工具链里库所能支持的最低内核版本
- 可以用file xxx.so,查看
- 工具链的版本会影响到opecv、seetaface的编译工程,以及编译出来的opecv库、seetaface最终的可执行文件能否在板子的内核里跑起来
- 文件系统系统里的lib库最好用与上面提到的同一个工具链里的库
- 在进行seetaface的交叉编译之前,要先确定opencv已经交叉编译好了,opencv、seetaface、制作根文件系统的busybox这三者用到的交叉编译工具链应一致
- 交叉编译opencv3.4.6:https://www.cnblogs.com/xz-954042850-qq/p/12598388.html
- 交叉编译seetafaceengine-master:https://www.cnblogs.com/xz-954042850-qq/p/12599446.html
1、前提准备
- Linux操作系统:Ubuntu 16.04
- OpenCv版本:3.4.6
- 交叉工具链:arm-2014.05-29-arm-none-linux-gnueabi-,gcc version 4.8.3
- 目标平台:ARM
- 板 子:study210,kernel:2.6.35
- SoC :S5PV210
- busybox :1.31.1
- 文件系统:nfs方式挂载
- 编译时间:2020/3/30
2、移植进ARM板
- 把整个已经在Ubuntu里编译好的SeetafaceEngine-master、用到的交叉编译工具链的库文件、已经交叉编译编译好的opencv库拷贝到在Ubuntu中的文件夹形式的根文件系统里。重点关注的一个可执行文件:FaceIdentification/build/src/test/test_face_verification.bin
- 在FaceIdentification目录中,执行:./build/src/test/test_face_verification.bin
- 如果出现下面的问题:

- 或者

- 解决方法:
- 在Ubuntu里find / -name libstdc++.so.6,如果发现我们所用的2014的交叉编译工具链里有这文件,那么进去相应目录用命令查看是不是软连接(符号链接),如果是就把它所指向的动态库拷贝到挂载的根文件系统的相应目录中,例如我的是:/usr/lib(注意:这是在板子上看到的目录,如果是Ubuntu那么你得对应nfs服务器的目录,例如我的是:root/rootfs/rootfs/usr/lib)
- 然后,在上面说的拷贝到的目标目录中,建立拷贝过来的那个动态库的软链接为libstdc++.so.6
- 在FaceIdentification目录中,再次执行:./build/src/test/test_face_verification.bin
- 报错信息:

- 解决方法:
- 这问题是由于路径不对引起的段错误,修改SeetaFaceEngine-master/FaceIdentification/src/test/test_face_verification.cpp

在FaceIdentification目录中,再次执行:./build/src/test/test_face_verification.bin

上面圈住输出的信息代表执行成功,其他输出信息是我调试 FaceIdentification/src/test/test_face_verification.cpp 时添加的调试信息。
- 你的点赞,便是我的动力!!!
移植seetafaceengine-master、opencv到ARM板的更多相关文章
- OpenCV在ARM上的移植
OpenCV在ARM上的移植 与X86 Linux类似,请参考:Linux 下编译安装OpenCV 本文在此基础上进行进一步操作. 网络上很多移植编译的方法比较老,多数针对OpenCV 1.0,而且方 ...
- opencv在arm和x86在移植
一个.开发环境 操作系统:fedora14 Opencv版本号:2.0 Qt版本号:4.7 arm:mini6410 交叉编译工具:arm-linux-gcc-4.5.1 二.安装与配置 Linux系 ...
- ARM板移植udev-126
下载udev-126.tar.xz 下载的网址为: https://mirrors.edge.kernel.org/pub/linux/utils/kernel/hotplug/ 解压文件并且编译 # ...
- OPENCV在ARM平台的移植
两篇别人推荐给我的文章,我想直接复制过来,呵呵,但一想真不好,等我做一遍了再来写一遍.还是贴链接. OpenCV在ARM上的移植:http://www.cnblogs.com/emouse/archi ...
- SQL数据库移植到ARM板步骤
SQL作为一种存储数据的数据结构,具有体积小(能堵存储的数据多),容易移植等优点.例如,在Ubuntu或者ARM开发板上被大量应用.下面就简单说一下SQL移植到ARM板的步骤. 下载源代码 (记得在家 ...
- 移植madplay到ARM板
一.环境和软件介绍 1.主机环境:Ubuntu16.04 2.交叉编译器: gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) 3.ARM板:kernel: ...
- 移植qt5.3.1到arm
最近刚入手一款开发板(比较低端,刚毕业工作还没一个月,穷屌丝一个).在学校以前都是用的是Friendly Arm的6410,使用的qt版本是使用的最多的4.7.0版本,入手的板子是4.7.4.qt5出 ...
- 编译在arm板上使用的sqlite3的静动态库
采用的是sqlite-autoconf-3080002.tar.gz 解压 tar xvf sqlite-autoconf-3080002.tar.gz 进入 cd sqlite-autoconf-3 ...
- 计算机与ARM板通过路由器相连
首先,使用两根网线分别将计算机和ARM板与路由器的LAN口连接. 要想使计算机和ARM板通信,必须使二者在同一网段. 在计算机的终端输入:ifconfig 获取计算机的ip地址,查看eth0,我的ip ...
随机推荐
- Node.js安装过程
今天电脑的node用不了了,于是决定重新安装一下 一.安装Node.js 1.首先,可以直接去Node的官网寻找适合自己电脑系统的版本 官网地址:https://nodejs.org/en/downl ...
- Spark使用jdbc时的并行度
Spark SQL支持数据源使用JDBC从其他数据库读取数据. 与使用JdbcRDD相比,应优先使用此功能. 这是因为结果以DataFrame的形式返回,并且可以轻松地在Spark SQL中进行处理或 ...
- 线段树(区间合并)HDU - 1540
题意:输入n,m,给定n个相互连通的村庄,有m个操作,D x,表示破坏x村庄使其与相邻的两个村庄不相通,R 表示修复上一个被破坏的村庄,与相邻的两个村庄联通.Q x表示与x相连的村庄有多少个. 思路: ...
- Java&Spring过时的经典语录
字符串拼接:请用StringBuffer代替String直接相加提高性能 过去的理论 有没有人告诉过你开发中不要 String newString = "牛郎"+"织 ...
- API开放平台接口设计-------令牌方式
1.需求:现在A公司与B公司进行合作,B公司需要调用A公司开放的外网接口获取数据,如何保证外网开放接口的安全性? 2,使用令牌方式 比如支付宝对外提供支付的接口,爱乐生公司需要调用支付宝的接口.在爱乐 ...
- Selenium系列(二十) - PageObject模式的详细介绍
如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...
- ML-Agents(四)GridWorld
目录 ML-Agents(四)GridWorld Visual Observations Masking Discrete Actions 环境与训练参数 场景基本结构 代码分析 环境初始化代码 Ag ...
- PTA数据结构与算法题目集(中文) 7-37 模拟EXCEL排序 (25 分)
PTA数据结构与算法题目集(中文) 7-37 模拟EXCEL排序 (25 分) 7-37 模拟EXCEL排序 (25 分) Excel可以对一组纪录按任意指定列排序.现请编写程序实现类似功能. ...
- spring05
通过静态工厂的方法创建bean:和实例工厂方法: <?xml version="1.0" encoding="UTF-8"?> <beans ...
- C#使用HTML文件中的file文件上传,用C#代码接收上传文件
单独做图片上传很简单,如果要客户端要上传头像保存到服务器就要稍微麻烦一点点了. 不多说了,直接上源码: private void Upload() { string jsonInfo = string ...