Jetson ARM SeetaFace编译
SeetaFace简介
SeetaFace依赖于OpenCV,对于Tegra on Ubuntu,Nvidia提供libopencv4tegra并且可以使用Cuda加速。
准备工作
1.阅读OpenCV4Tegra-README.txt,下载对应板子版本的cuda与libopencv4tegra的repo文件
2.打开ubuntu的universe源:
sudo apt-add-repository universe
并且可以换成国内的ubuntu-ports源。
3.下载SeetaFace
git clone https://github.com/seetaface/SeetaFaceEngine.git
下载后在其它主机上解压出FaceIdentification/model/下的rar压缩包
4.下载cmake最新版
下述编译、安装操作在板子上执行
先安装Cuda(可选)
$ sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb
$ sudo apt-get update
$ sudo apt-get install cuda-toolkit-<cuda_version>
$ cat << END >> ~/.bashrc
# For 32-bit systems (eg: most ARM systems),Add 32-bit CUDA library & binary paths:
export PATH=/usr/local/cuda-<cuda_version>/bin:\$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-<cuda_version>/lib:\$LD_LIBRARY_PATH
END
$ source ~/.bashrc
OpenCV for Tegra 安装
$ sudo dpkg -i libopencv4tegra-repo-<distro>_<ocv_version>_<architecture>.deb
$ sudo apt-get update
$ sudo apt-get install libopencv4tegra libopencv4tegra-dev
编译安装cmake
遵循README
编译SeetaFace
过程与前一篇博文一致,需要修改一些地方以支持在ARM下编译(针对2016年11月份版本,之后的版本这些问题可能不复存在):
1.编译器提示找不到-msse4.1
-m打开与硬件相关的一些选项,sse便是针对x86、x86_64进行的优化,在ARM上没有这个选项,需要去掉。
在两个CMakeLists.txt中注释掉 -msse4.1 相关的行。
2.找不到xmmintrin.h
修改 FaceIdentification/src/math_functions.cpp
将 'xmmintrin.h' 替换为 'arm_neon.h',并将x86intrin.h那行注释掉。
此外还需替换掉一些数学运算函数,具体要查阅许多资料。gitbub中pull request中有人提交了补丁,在math_functions 的 添加使用arm neon写的simd_dot函数,直接替换文件即可,点击查看。
3.编译时报错: #error You must enable NEON instructions (e.g. -mfloat-abi=softfp -mfpu=neon) to use arm_neon.h
方法:
在CMakeLists.txt的CMAKE_CXX_FLAGS_RELEASE中加上-mfloat-abi=hard -mfpu=neon
注意是硬浮点还是软浮点,float-abi选项有hard、soft、softfp,如果写成了softfp,而硬件支持硬浮点可能导致运行程序时找不到动态链接库的问题。(至于如何查看动态链接库是否是硬浮点,可以运行ldconfig -p|grep xxx来查看输出中是否包含hardsoft字样)
所有以后发现找不到动态链接库,而ldconfig -p能找到、ldd却找不到且设置LD_LIBRARY_PATH也无效的情况下就要考虑CPU架构不同、编译选项不同了。
4./usr/include/c++/4.8/iostream:38:28: fatal error: bits/c++config.h: No such file or directory
一种简单的解决方式:sudo apt-get install gcc-4.8-multilib g++-4.8-multilib
Jetson ARM SeetaFace编译的更多相关文章
- Genymotion模拟器安装ARM架构编译应用失败解决方案
我们在安装一些应用到Genymotion模拟器会提示:adb: failed to install xx.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: ...
- 人脸识别引擎SeetaFace编译 ubuntu
00.SeetaFace简介 SeetaFace Engine is an open source C++ face recognition engine, which can run on CPU ...
- PC和ARM平台编译Qt的命令
编译for PC 的Qt过程是: (1)qmake -project (qmake命令,用于创建hello.pro,将所有的文件编译成一个与平台无关的工程文件).(注意:按照前面步骤安装好Qt环境之后 ...
- ARM MDK 编译产生:RO、RW和ZI DATA说明
1.比如编译一个工程文件,产生如下提示信息: Program Size: Code=18938 RO-data=622 RW-data=124 ZI-data=7724 RO段.RW段和ZI段 要了解 ...
- STM32中ARM系列编译工具链的编译宏选择(__CC_ARM、__ICCARM__、__GNUC__、__TASKING__)
一 前言 stm32 f103中.关系到一个选择何种编译宏的问题.这里就梳理一下吧. 二 正文 1 在 core_cm3.h 文件中,有如下代码: #if defined ( __CC_ARM ) ...
- Arm Qt编译Qt例程出错 GLES3/gl3.h: No such file or directory 解决方法
工作环境 PC:Ubuntu18.04QtCreator: 4.8.2交叉编译环境:野火imxull6开发板提供的 5-编译工具链->qt交叉编译工具 在之前博客配置成功的交叉编译环境,编译Qt ...
- 2. Jetson TX2--python3下编译安装opencv3.4
https://cloud.tencent.com/developer/article/1327273 jetpack3.2自带了opencv3.3,但是只提供了python2.7的编译版本,所以也只 ...
- 博创arm板编译内核makefile不兼容问题解决
导致这种结果的是:Make工具对低版本内核的Makefile一些旧的规则兼容不好,我们只需修改对应的Makefile. 改1:: 原始的: 大概在 1503行 / %/: prepa ...
- jsoncpp linux平台编译和arm移植
下载 http://sourceforge.net/projects/jsoncpp/ 或者 http://download.csdn.net/detail/chinaeran/8631141 Lin ...
随机推荐
- Spring 4 + Quartz 2.2.1 Scheduler Integration Example
In this post we will see how to schedule Jobs using Quartz Scheduler with Spring. Spring provides co ...
- css单行文本与多行溢出文本的省略号问题
在文字布局和代码编写过程中遇到文本溢出是常有的事,下面总结一下对于单行文本溢出和多行文本溢出省略号的处理. 一.单行文本省略号 <p class="text1"> 这是 ...
- 初探物联网 - 基于Arduino的气象站和View and Data API的结合实例
如果你参加了上个月在北京的Autodesk 开发者日,你应该看到了我做的关于Arduino的物联网实例演示,如果你没看到,欢迎参加14号在上海的开发者日,到时候我会再演(xian)示(bai)一下. ...
- 【转】你所不知道的HTML <head/> 头标签
HTML的头部内容特别多,有针对SEO的头部信息,也有针对移动设备的头部信息.而且各个浏览器内核以及各个国内浏览器厂商都有些自己的标签元素,有很多差异性.移动端的工作已经越来越成为前端工作的重要内容, ...
- ZooKeeper:Java客户端网络处理
了解ZooKeeper客户端的实现,对于使用ZooKeeper的客户端非常重要. 通过对客户端源码的阅读,了解了如下信息: 创建ZooKeeper对象时,应会创建一个ClientCnxn(代表了客户端 ...
- 织梦Dedecms安全设置
织梦DedeCMS是一款非常流行的CMS,很多刚开始建站人都用的织梦,一方面是织梦比较容易操作;另一方面是织梦的SEO方面做的确实比其他的系统要好一些.这些都导致织梦的用户群是非常庞大的,用的人多了, ...
- 《HeadFirst SQL》笔记
规范化 0 约束 1 原子性 2 第一范式 1NF 3 数据模式 4 依赖 5 联接查询 6 交叉联接(AKA 笛卡尔联接,叉积) 7 内联接 8 子查询 9 外联接 10 自联接 11 集合 12 ...
- PHP中的数据库一、MySQL优化策略综述
前些天看到一篇文章说到PHP的瓶颈很多情况下不在PHP自身,而在于数据库.我们都知道,PHP开发中,数据的增删改查是核心.为了提升PHP的运行效率,程序员不光需要写出逻辑清晰,效率很高的代码,还要能对 ...
- MSBuild 编译 C# Solution
Microsoft(R) 生成引擎版本 4.6.1055.0 [Microsoft .NET Framework 版本 4.0.30319.42000] 版权所有 (C) Microsoft Corp ...
- hdu1452 Happy 2004(规律+因子和+积性函数)
Happy 2004 题意:s为2004^x的因子和,求s%29. (题于文末) 知识点: 素因子分解:n = p1 ^ e1 * p2 ^ e2 *..........*pn ^ en 因子 ...