seetaface由中科院计算所山世光研究员带领的人脸识别研究组研发。代码基于C++实现,不依赖第三方库。然而,目前开源的代码,是在windows vs上编译的,对于我们这帮mac/linux用户来说,用起来还是挺麻烦的。网上也有不少关于Linux的编译过程详解。然而针对嵌入式平台的移植依然少见:
 
 
安装seetaface

 git clone https://github.com/seetaface/SeetaFaceEngine.git
cd SeetaFaceEngine
cd FaceDetection/
vim CMakeLists.txt

修改 set(USE_SSE "Set to ON to Build use SSE" OFF)

mkdir build
cd build
cmake ..
make -j4

=================================================完

 cd FaceAlignment/
vim CMakeLists.txt

#注释 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1")

 mkdir build/
cd build
cmake ..
cp FaceDetection/build/libseeta_facedet_lib.so .
export CPLUS_INCLUDE_PATH=/home/pi/SeetaFaceEngine/FaceDetection/inlude/
make -j4

====================================================完

 cd FaceIdentification/
vim CMakeLists.txt

  修改 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -std=c++11 -O2")

  为:set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -std=c++11 -O2 -L /home/pi/SeetaFaceEngine/FaceAlignment/build -lseeta_facedet_lib -lseeta_fa_lib")
mkdir build/cd build/

vim ../src/math_functions.cpp

  注释

  //#include<xmmintrin.h>

   
  /*
  #ifdef _WIN32
  #include <intrin.h>
  #else
  #include <x86intrin.h>
  */

注释函数simd_dot()

改写为:

   float simd_dot(const float* x, const float* y, const long& len){
    float inner_prod = 0.0f;
    long i;
    for(i = ; i < len; i++){
      inner_prod += x[i] * y[i];
    }
    return inner_prod;
  }
 export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/home/pi/SeetaFaceEngine/FaceAlignment/include
cmake ..
cp ../../FaceAlignment/build/*.so .
vim ../src/test/test_face_recognizer.cpp
  增加:

   #include <opencv2/opencv.hpp>
  #include <opencv2/imgproc/imgproc.hpp>
vim ../src/test/test_face_verification.cpp

  增加:

   #include <opencv2/opencv.hpp>
  #include <opencv2/imgproc/imgproc.hpp>
make -j4
 
========================================完
乔思祎 2017年9月29日

Seetaface 向树莓派 移植的更多相关文章

  1. python环境下实现OrangePi Zero寄存器访问及GPIO控制

    最近入手OrangePi Zero一块,程序上需要使用板子上自带的LED灯,在网上一查,不得不说OPi的支持跟树莓派无法相比.自己摸索了一下,实现简单的GPIO控制方法,作者的Zero安装的是Armb ...

  2. Linux主机上使用交叉编译移植u-boot到树莓派

    0环境 Linux主机OS:Ubuntu14.04 64位,运行在wmware workstation 10虚拟机 树莓派版本:raspberry pi 2 B型. 树莓派OS: Debian Jes ...

  3. 树莓派3b在rt-thread上移植LittlevGL

    树莓派3b在rt-thread上移植LittlevGL 目录 树莓派3b在rt-thread上移植LittlevGL 1.本文概述 2.资源准备 3.上手体验 4.rt-thread与lvgl进行无缝 ...

  4. 树莓派研究笔记(7)-- lakka 《仙剑奇侠传》的完美移植

    仙剑,这是我玩的第一个电脑游戏.真的太经典,无法超越.原来第一次玩的缺少开场动画,很多地方不明不白的.现在终于我们可以把这个梦想继续到树莓派中. LAKKA是支持DOS模拟器的,所以我们一定要下载DO ...

  5. 让你少走弯路的搭建树莓派的Net与NodeJS运行环境

      树莓派是当前最火的嵌入计算平台没有之一,树莓派可以给我们无数的想象,树莓派的高性能.低功耗.低成本.可扩展性(最新的树莓派原生支持WIFI和蓝牙,这功能太赞了)深受大家的喜爱.虽然树莓派到目前为止 ...

  6. 6410移植android4.4.2笔记(持续更新)

    如之前的android编译笔记里面描述,目前已经可以编译出armv7-neon的android镜像了,也就是说目前的环境以及aosp可以支持定制android程序了. 昨天晚上在device下面已经粗 ...

  7. 树莓派及其他硬件平台国内外Linux镜像站全汇总

    转载至segmentfault. 本文收集整理国内对于Raspberry Pi.CubieBoard.pcDuino等各种Linux开源硬件平台,所使用的Raspbian.Arch Linux ARM ...

  8. 一块神奇的树莓派电子板竟让我学会了Linux系统

    树莓派(Raspberry Pi)是基于ARM的微型电脑主板,外形只有信用卡大小,因此也被称为新型卡片式电脑,树莓派具有电脑的所有基本功能,可谓麻雀虽小五脏俱全.而其开发组织Raspberry Pi ...

  9. 建立树莓派raspberry交叉编译环境以及编译内核

    最近买了一个树莓派,玩了几天,虽然已经有很多人玩了,现在玩好像有点晚了,但是他确实是个好东西,学好它,对嵌入式的整个开发流程也就会熟悉很多.虽然性能不是很强和现在的BB-BLACK比有点慢了,但是它便 ...

随机推荐

  1. oracle10g连接自动断开,报ORA-03135错误

    问题描述: oracle使用过一段时间,连接断开,报ORA-03135错误. 问题挖掘: 用pl/sql和sqlplus连接oracle,也存在该问题,确定该问题与连接方式无关. 查看服务器,发现没有 ...

  2. windows 下搭建python虚拟环境

    ###################################windows 下测试环境 C:\Users\wongg\django-cmdb>cd ..\cmdb ##下载get-pi ...

  3. java并发编程:线程安全管理类--原子操作类--AtomicLong

    可以用原子方式更新的 long 值.有关原子变量属性的描述,请参阅 java.util.concurrent.atomic 包规范.AtomicLong 可用在应用程序中(如以原子方式增加的序列号), ...

  4. [例1.10]使用setw设置输出宽度的例子

    [例1.10]使用setw设置输出宽度的例子: #include <iostream> #include <iomanip> using namespace std; void ...

  5. 如何创建管理员权限的CMD命令提示符窗口

    最近在使用netstat -anob命令时提示 请求的操作需要提升. 总结了几种创建管理员权限的CMD命令行的方法. 创建临时管理员权限的CMD Win8系统: 按下windows徽标,直接输入cmd ...

  6. Haproxy的负载均衡和高可用配置

    一.Haproxy的理解    Haproxy是一个使用c语言编写的自由开发源代码软件,它提供高可用性.负载均衡.以及基于http和tcp的应用程序代理.    Haproxy特别使用于那些负载特别大 ...

  7. Kotlin Reference (九) Properties and Fields

    most from reference 声明属性 Koltin的类都有属性,这些属性可以声明为可变的,使用var关键字或用val关键字生声明不可变属性. class Address { var nam ...

  8. 如何从MTK机器的NVRAM中获取WIFI mac地址

    在MTK的机器中,如果不用特定的工具烧写MAC地址,在开机后打开WIFI后会显示: "NVRAM WARNING: Err=0x10" 这就是没有烧写mac地址的原因,所以每次打开 ...

  9. 文本框模糊匹配(纯html+jquery简单实现)

    一.项目中需要用到此功能,使用过EasyUI中的Combobox,网上也搜过相应的解决办法,对于我的项目来说都不太合适,因为我还是喜欢比较纯粹的东西,就自己动手写了一个,比较简单,但还算能用,我的项目 ...

  10. 自定义简单的struts2的s标签

    一:自定标签前需要了解的知识: BodyTagSupport类的方法: 编写标签对应的实现类时,需要重载BodyTagSupport类几个方法:doStartTag(), setBodyContent ...