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-__.deb

$ sudo apt-get update

$ sudo apt-get install cuda-toolkit-

$ cat << END >> ~/.bashrc

# For 32-bit systems (eg: most ARM systems),Add 32-bit CUDA library & binary paths:

export PATH=/usr/local/cuda-/bin:\$PATH

export LD_LIBRARY_PATH=/usr/local/cuda-/lib:\$LD_LIBRARY_PATH

END

$ source ~/.bashrc

OpenCV for Tegra 安装

$ sudo dpkg -i libopencv4tegra-repo-__.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用什么编译器_Jetson ARM SeetaFace编译相关推荐

  1. jetson用什么编译器_Jetson Nano安装 Jupyter lab

    1,先安装一些依赖 sudo apt install nodejs npm 2,安装pip3包管理器 sudo apt install python3-pip 3,安装jupter lab pip3 ...

  2. CubeMx 生成的FreeRTOS 代码在ARM compiler6 编译__forceinline 报错的解决方法

    一.问题 如题,CubeMx 生成的FreeRTOS 代码在ARM compiler6 编译__forceinline 报错的解决方法. 二.解决方法 第一种方法,将编译器换回default comp ...

  3. [ARM]【编译】【实践】 - 浮点编译选项NEON引发的Skia的库Illegal instruction运行错误和解决办法

    前言,ARM编译器选项除了优化系统代码性能外,往往还具备其他一些设定,例如警告级别,和指令集的扩展 本文论述工作中遇到的一个编译开源浏览器chromine遇到的问题,由编译选项引发的可执行文件的Ill ...

  4. ARM服务器编译安装ClickHouse

    目录 一.编译安装ClickHouse背景 二.编译安装ClickHouse方法 三.编译安装ClickHouse环境 四.编译安装ClickHouse步骤 1,安装依赖项 2,编译安装cmake 3 ...

  5. 为 QEMU ARM 仿真器编译 Linux 内核:QEMU 模拟 ARM 环境

    QEMU 是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以 GPL 许可证分发源码的模拟处理器,在GNU/Linux 平台上使用广泛.简单来说,QEMU 是一个虚拟机,与常见的 Vm ...

  6. Genymotion模拟器安装ARM架构编译应用失败解决方案

    我们在安装一些应用到Genymotion模拟器会提示:adb: failed to install xx.apk: Failure [INSTALL_FAILED_NO_MATCHING_ABIS: ...

  7. NVIDIA Jetson Xavier NX 修改设备树和编译内核

    为 NVIDIA Jetson Xavier NX 更改设备树和编译内核 NVIDIA Jetson Xavier NX 模块 如果您正在为 NVIDIA Jetson 模块设计定制载板,您可能需要编 ...

  8. armgcc交叉编译的文件无法运行_从0开始搭建基于ARM GCC的软件系统02——使用ARM GCC编译SDK

    本文以STM32L4VGT6为例,因为手上只有这么一块开发板.其它IC处理方法应该类似. 一.准备工作 1.打开官网https://www.st.com/content/st_com/en.html, ...

  9. 如何在ARM平台编译NAMD

    简介 NAMD是一种平行分子动力学代码,设计用于大型生物分子系统的高性能模拟. 利用Charm ++并行编程框架,NAMD可以扩展到几个核心,用于典型的仿真,超过500,000个核心,用于最大的仿真. ...

最新文章

  1. markdown 流程图_Markdown 进阶技能:用代码画流程图(编程零基础也适用)
  2. python核心编程:杂记2
  3. 对钱感兴趣?聊聊互联网工资收入的组成
  4. (60)Verilog HDL测试激励:复位激励1
  5. 安卓模拟器切换横屏之后怎么返回竖屏
  6. 假如你是架构师,你要做些什么
  7. 20155210 网络攻防技术 实验三 免杀原理与实践
  8. linux下目录简介——/proc
  9. excel表格怎么画斜线_怎么画出漂亮的Excel表格线?
  10. Numpy向量化运算
  11. 防火墙和代理服务器之间有什么区别
  12. asp.net 邮件功能
  13. ios点击推送闪退_王者ios14苹果手机闪退已修复,腾讯痛失百万玩家能否再回来...
  14. 剑指offer算法题028:数组中出现次数超过一半的数字
  15. 中国.net域名网站的“前世今生”,那些年的光辉
  16. matplotlib数据可视化实验报告1(最终版)
  17. 【C语言】逗号表达式
  18. Autonomous Aerial Dual-Target Following Among Obstacles
  19. CGroup的原理和使用
  20. 报错:java.lang.ClassNotFoundException: Cannot find implementation for解决方法

热门文章

  1. SIL 与 ASIL
  2. 让javascript显原型!
  3. 『Python爬虫』抓包工具 Fiddler 入门教程
  4. 福利| 一台电脑,双网卡,三个IP地址,如何同时工作
  5. 【ceph】Ceph之PG状态详解--研读笔记
  6. 指数对数计算公式基础知识
  7. 存储区更新、插入或删除语句影响到了意外的行数(0)。实体在加载后可能被修改或删除。
  8. Python-国内华为云下载一览表
  9. 基于 VIVADO 的 FM 调制解调(上)设计篇
  10. 离线安装wxpython4.0.6_离线安装wxpython