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. Model/ModelMap 和 ModelAndView 的区别使用

    Model/ModelMap 和 ModelAndView 的区别使用 Model/ModelMap controller: package springmvc.controller; import ...

  2. Appium 自动化测试(3)--Appium框架与流程介绍

    Appium介绍 Appium是一个移动端的自动化框架,可用于测试原生应用,移动网页应用和混合型应用,且是跨平台的.可用于IOS和Android以及firefox的操作系统.原生的应用是指用andro ...

  3. 310. Minimum Height Trees -- 找出无向图中以哪些节点为根,树的深度最小

    For a undirected graph with tree characteristics, we can choose any node as the root. The result gra ...

  4. URAL 1040 Airline Company 构造,思路 难度:2

    http://acm.timus.ru/problem.aspx?space=1&num=1040 题目要求在一个联通无向图中找出一种方法给边标号使得任意一个有多条边的点,边的号码的最大公约数 ...

  5. MVC Ajax Helpers

    在MVC中要实现Ajax有很多的方式,有微软自己的MicrosoftAjax,也可以用JQuery的AJax来实现,如果对其他的JavaScript框架熟悉,还可以采用其他的实现方案,比如说Proto ...

  6. hdu 6158 The Designer( 反演圆)

    The Designer Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Tota ...

  7. 201621123010《Java程序设计》第8周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图或其他)归纳总结集合相关内容. 2. 书面作业 1. ArrayList代码分析 1.1 解释ArrayList的contains源代码 答:如图,可见co ...

  8. OutOfMemoryError系列(1): Java heap space

    每个Java程序都只能使用一定量的内存, 这种限制是由JVM的启动参数决定的.而更复杂的情况在于, Java程序的内存分为两部分: 堆内存(Heap space)和 永久代(Permanent Gen ...

  9. HDU 1198

    http://acm.hdu.edu.cn/showproblem.php?pid=1198 裸并查集,主要工作在根据题目给出关系构图 #include <iostream> #inclu ...

  10. I.MX6 GPS Android HAL Framework 调试

    I.MX6 GPS Android HAL Framework 调试 一.参考文章: android4. GPS定位问题 http://blog.csdn.net/bzw073/article/det ...