写在前面
最近需要做一些上身检测(Upper-body detection)的实验和测试,使用的calvin upper-body detector,其使用了voc-release 3.1 (DPM)并综合了VJ的face detector来做上身检测。DPM更高版本的代码可以从这里下载,作者的代码风格很好。
环境配置及使用
一、首先需要在Linux下安装Matlab及Opencv,安装及配置方法见
二、编译voc-release
按照readme进行编译即可。
其中我遇到以下问题:运行compile.m的时候,在mex -O fconvblas.cc -lmwblas -o fconv一行出错,“-o” is not an valid argument of mex。
解决办法:改为mex -O fconvMT.cc,编译成功后将编译好的fconvMT.mex改为fconv.mex。
三、编译cavin库对应人脸检测的cpp
因为本人使用的是opencv2.4.9,用作者给的命令编译显然不行,我编译成功的命令为:
mex -L/usr/local/lib -I/usr/local/include/opencv -lopencv_core -lopencv_imgproc -lopencv_objdetect me_HaarDetectOpenCV.cpp
四、使用calvin库
load('detenv.mat')
DetectStillImage('../example_data/images/000000.jpg','pff_model_upperbody_final.mat','haarcascade_frontalface_alt2.xml',det_pars,2)
正常情况下就可以看到检测结果了,如果遇到问题:matlab error: cannot open with static TLS,则需要增加Java内存:Preferences > General > Java-Heap Memory, 重启matlab。
以上。