码迷,mamicode.com
首页 > 编程语言 > 详细

人脸识别算法嵌入式移植的一点经验

时间:2015-03-31 17:59:02      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

本文涉及的内容可能是大家在移植算法的时候会出现的错误,不涉及特定公司的内容,希望老板不要介意。现在暂时遇到了这些问题,解决办法或许不是最好的。能给他人起到一点作用就算不错。

移植内容

1 windows上面的路径可以用“\”,也可以用“/”。但是linux上面的路径只可以用“\”。

所以应该所有路径都用“\”。

2 windows下使用寄存器指令集应包含“intrin.h”。相应的linux下的头文件是“x86intrin.h”。

对于实数的最大值和最小值,不能直接定应minmax。可以定义成bst_min。这样使用起来不会和linux底层函数冲突,在windows也可以随意使用。

结构体定义对齐如下

在LINUX平台上对齐方式是这样的

#ifdef LINUX

typedef struct _SURFWeakClassifier SURFWeakClassifier

struct _SURFWeakClassifier

{   union

    {

        float Projection[32];

        __m128 Projection_m128[8];

#ifndef VC_2005

        __m256 Projection_m256[4];

#endif

    }__attribute__((aligned(32)));  

    SURFBoxFeature Feature;

    float Bias;

}__attribute__((aligned(32)));

在WINDOWS平台上是这样的

typedef struct _SURFWeakClassifier

{   __declspec(align(32)) union

    {

        float Projection[32];

        __m128 Projection_m128[8];

#ifndef VC_2005

        __m256 Projection_m256[4];

#endif

    };

    SURFBoxFeature Feature;

    float Bias;

} SURFWeakClassifier;

对齐方式申请内存

linux中 

(SURFWeakClassifier*)_mm_malloc(sizeof(SURFWeakClassifier)*weakNum, 32);

windows 

stageClassifier->WeakClassifiers = (SURFWeakClassifier*)_aligned_malloc(sizeof(SURFWeakClassifier)*weakNum, 32);

 

释放内存

linux中 

_mm_free(stageClassifier->WeakClassifiers);

WINDOWS

_aligned_free(stageClassifier->WeakClassifiers);

 

7 __m128 取值

WINDOWS

res0.m128_f32[3];

LINUX

float *q = (float*)&res0;

return q[3]; 

linux中内联函数的参数必须是const的。

 

9 linux 读取视频

首先安装软件开发工作站版本的linux

然后再安装yasm

然后安装方法ffmpeg.

安装x264.

10 实现windows宿主机与linux虚拟机的文件共享

在百度经验上搜索win7与虚拟机种linux共享文件的方法。或者查看本目录下保存的网页图片。

11 安装opencv 

可以查看本目录保存的网页图片。

遇到asm编译的问题可以把宏定义部分注释掉。f.have里面sse4.2之前全部设置成1,其他设置成0

 

12 当使用CV_CALL之后会产生一个问题,跳过CvSIze size的初始化这类问题.

    这类问题产生的原因是CV_CALL出发的go exit跳过了变量的定义.这在嵌入式平台上是非法的.一个比较方便的解决办法是使用{},将变量到_END_之前括住,使变量成为局部变量.

人脸识别算法嵌入式移植的一点经验

标签:

原文地址:http://blog.csdn.net/boosting1/article/details/44782723

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!