人脸检测开源库stasm在VS(32位)环境下的编译

时间:2024-03-26 11:39:03

一、stasm

     stasm是寻找人脸特征的C++开源库,实现了ASM模型和AAM模型。使用Stasm需要编译好的openCV。

  1. 源代码从官网下载。       
  2. 辅助编译文件(CMakelists等)从这里下载。
  3. 电脑操作系统:win7 32bit


二、编译方法

    1. 将从官网下载的源代码解压至文件夹stasm4.1.0。

    2. 将辅助编译文件同样复制到文件夹stasm4.1.0下。此步完成后文件夹里内容如下:

人脸检测开源库stasm在VS2012(32位)环境下的编译

    3. 打开CMake,输入源文件地址和生成文件存放地址,点configure。示例见下图第1个框

人脸检测开源库stasm在VS2012(32位)环境下的编译

    4. 根据CMake提示,补充opencv地址。示例见上图

    5. CMake不报红后,点击Generate.

    6. 打开生成的STASM.sln,右击ALL BUILD--rebuild。如果报错,请参见第七条解决办法。

    7. 如提示psapi.h错误,解决办法是:

         打开tasm文件夹下的appmem.cpp,将头文件引用改为以下内容:

[cpp] view plain copy
  1. #include "stasm.h"  
  2. #include "appmisc.h"  
  3. #include <Windows.h>  
  4. #if _MSC_VER // microsoft compiler  
  5. #include <psapi.h> // for OpenProcess and GetProcessMemoryInfo  
  6. #pragma comment(lib,"psapi.lib")  
  7. #endif  

    8. 编译完成


三、stasm.lib的使用(以minimal为例)

    stasm自带minimal程序,用户可以根据此程序进行试运行。将stasm4.1.0中的stasm_lib.h复制到上面编译好带有stasm.lib的文件夹(debug文件夹)中。

    1、新建项目,将minimal.cpp包含进项目中;

    2、在项目中对opencv进行配置(包含目录,库目录,附加库目录,附加依赖项)

    3、同理,对stasm进行配置(同上)

    4、完成上述过程即可正常运行。

人脸检测开源库stasm在VS2012(32位)环境下的编译

注意:1、本人电脑上有opencv3,在编译stasm时不能正常编译,还需待研究!目前用的是opencv249

       2、上述配置过程中,如果附加依赖项将不带尾缀d的lib附加进来的话,会导致读取图片、写图片、显示图片出现问题!从网上查到的原因是:opencv包含的库在debug下优先找的是release的版本。 处理方法:在debug下,链接库lib中,删掉不带d.lib的版本。保留所有带d的。因为debug版本有一些没有做优化导致内存有问题。