uricamic / flandmark

Open-source implementation of facial landmark detector
http://cmp.felk.cvut.cz/~uricamic/flandmark/
GNU General Public License v3.0
228 stars 151 forks source link

I can not form a mex-files of flandmark #10

Open verkin opened 10 years ago

verkin commented 10 years ago

Hello, Michael!

I can not form a mex-files of your project flandmark (https://github.com/uricamic/flandmark).

I am using MS Visual Studio 2012 and try to compile flandmark_detector.

I get the following error:

1>------ Перестроение всех файлов начато: проект: flandmark_detector, Конфигурация: Release x64 ------ 1> Building Custom Rule C:/facial landmark detector/flandmark/matlab_toolbox/mex/CMakeLists.txt 1> CMake does not need to re-run because C:\facial landmark detector\flandmark\build-msvc2012\matlab_toolbox\mex\CMakeFiles\generate.stamp is up-to-date. 1> Building MEX extension C:/facial landmark detector/flandmark/build-msvc2012/matlab_toolbox/mex/flandmark_detector.mexw64 1> Creating library C:\Users\ssv\AppData\Local\Temp\mex_SPtIIw\templib.x and object C:\Users\ssv\AppData\Local\Temp\mex_SPtIIw\templib.exp 1>flandmark_detector_mex.obj : error LNK2019: unresolved external symbol "int __cdecl flandmark_detect(struct _IplImage ,int ,struct model_struct ,double ,int *)" (?flandmark_detect@@YAHPEAU_IplImage@@PEAHPEAUmodel_struct@@PEAN1@Z) referenced in function mexFunction 1>flandmark_detector.mexw64 : fatal error LNK1120: 1 unresolved externals 1> 1>C:\PROGRA~1\MATLAB\R2013A\BIN\MEX.PL : error : Link of 'flandmark_detector.mexw64' failed. 1> ========== Перестроение всех: успешно: 0, с ошибками: 1, пропущено: 0 ==========

How can you help me?

Sincerely, Sergei Verkin

506562230 commented 10 years ago

i came up with the same problem

uricamic commented 10 years ago

Hi,

if everything except of mex-files was compiled successfully, you can produce the mex-files by running the enclosed script flandmark_compilemex.m in the matlab_toolbox directory (you will probably have to change some paths there, but it should be rather straightforward and obvious from the script).

For some reasons it is not so easy to compile mex-files from visual studio from the solution generated by CMake ans since I am using preferably linux, this problem remains unsolved. Sorry for that inconvenience. The "solution" is that matlab script which will produce mex-files directly from MATLAB.

506562230 commented 10 years ago

Thanks for your kindly reply,i wil try it in centos6.4

------------------ 原始邮件 ------------------ 发件人: "Michal U?i?á?"; 发送时间: 2013年12月9日(星期一) 晚上8:07 收件人: "uricamic/flandmark"; 抄送: "小刀"506562230@qq.com; 主题: Re: [flandmark] I can not form a mex-files of flandmark (#10)

Hi,

if everything except of mex-files was compiled successfully, you can produce the mex-files by running the enclosed script flandmark_compilemex.m in the matlab_toolbox directory (you will probably have to change some paths there, but it should be rather straightforward and obvious from the script).

For some reasons it is not so easy to compile mex-files from visual studio from the solution generated by CMake ans since I am using preferably linux, this problem remains unsolved. Sorry for that inconvenience. The "solution" is that matlab script which will produce mex-files directly from MATLAB.

— Reply to this email directly or view it on GitHub.

506562230 commented 10 years ago

can you tell me what linux do you use? the operation syatem name and 32bit/64bit the matlab version the opencv version

------------------ 原始邮件 ------------------ 发件人: "Michal U?i?á?"; 发送时间: 2013年12月9日(星期一) 晚上8:07 收件人: "uricamic/flandmark"; 抄送: "小刀"506562230@qq.com; 主题: Re: [flandmark] I can not form a mex-files of flandmark (#10)

Hi,

if everything except of mex-files was compiled successfully, you can produce the mex-files by running the enclosed script flandmark_compilemex.m in the matlab_toolbox directory (you will probably have to change some paths there, but it should be rather straightforward and obvious from the script).

For some reasons it is not so easy to compile mex-files from visual studio from the solution generated by CMake ans since I am using preferably linux, this problem remains unsolved. Sorry for that inconvenience. The "solution" is that matlab script which will produce mex-files directly from MATLAB.

— Reply to this email directly or view it on GitHub.

uricamic commented 10 years ago

Hi,

I am now using Ubuntu 12.04 precise 64bit, OpenCV 2.3.4 and MATLAB R2012b 64bit. Originally I was using MATLAB R2011a 64bit.

506562230 commented 10 years ago

ok,get that,thanks very much.

------------------ 原始邮件 ------------------ 发件人: "Michal U?i?á?"; 发送时间: 2013年12月9日(星期一) 晚上8:18 收件人: "uricamic/flandmark"; 抄送: "小刀"506562230@qq.com; 主题: Re: [flandmark] I can not form a mex-files of flandmark (#10)

Hi,

I am now using Ubuntu 12.04 precise 64bit, OpenCV 2.3.4 and MATLAB R2012b 64bit. Originally I was using MATLAB R2011a 64bit.

— Reply to this email directly or view it on GitHub.

506562230 commented 10 years ago

Sorry to bother you again,i read your conferance paper and master thesis carefully.But still do not understand the training process.

The input is a still image(including the positions and local feature vector), But what is the output and what does the joint parameter w mean?

what is the difference between your struct svm and the opencv lateng svm(which is another struct svm)?

Can you give me some advise?

uricamic commented 10 years ago

Hi,

the output of learning is the w vector, it is a joint parameter vector, i.e. vector obtained by concatenating the vectors of parameters for each individual vertex (the landmark and its surrounding window) and each individual edge from the graph constraints which express our belief of how the landmarks are connected and how position of one of them influences the rest. This graph is limited to a tree, because of the fast inference (done by terms of dynamic programming).

And for learning, we are using structural SVM, it is a generalization of SVM, where the output space can be arbitrary and where a designer can specify his own loss function (which has some limitations). I don't know details about opencv latent svm, but I guess it is an implementation of the learning algorithm for latent SVM.