TadasBaltrusaitis / OpenFace

OpenFace – a state-of-the art tool intended for facial landmark detection, head pose estimation, facial action unit recognition, and eye-gaze estimation.
Other
6.94k stars 1.85k forks source link

Cannot run Windows binaries #476

Closed embeh closed 6 years ago

embeh commented 6 years ago

I have Visual Studio 2015 Community edition installed, and hence Microsoft Visual C++ 2015 Redistributable Update 3 complains upon installation that it is already installed.

Nevertheless I cannot run any of the OpenFace v2.0.0 Win x64 binaries: FaceLandmark{Img,Vid,VidMulti}.exe crashes HeadPoseLive.exe, OpenFaceDemo.exe, OpenFaceOffline.exe seem to briefly start and quit again, no UI visible. Recording.exe is starting up the webcam but cannot be closed without killing the process.

Edit: And I did download the additional model files beforehand...

Edit: Same for OpenFace v2.0.2 x64

What am I missing?

TadasBaltrusaitis commented 6 years ago

Can you try running the executables from the command line, to see if there are any more details?

Also have you tried building the code?

Also can you try running the x86 binaries?

embeh commented 6 years ago

All of the above is from the command line. No text output whatsoever. v2.0.2 x86 behaves exactly identical.

Building Release x64 FaceAnalyser target in VS 2015 resulted in

15>CSC : error CS0006: Metadata file 'D:\OpenFace\OpenFace-OpenFace_v2.0.2\x64\Release\CppInerop.dll' could not be found 15>CSC : error CS0006: Metadata file 'D:\OpenFace\OpenFace-OpenFace_v2.0.2\x64\Release\OpenFaceDemo.exe' could not be found 15>CSC : error CS0006: Metadata file 'D:\OpenFace\OpenFace-OpenFace_v2.0.2\x64\Release\OpenFaceOffline.exe' could not be found ========== Build: 11 succeeded, 4 failed, 0 up-to-date, 0 skipped ==========

Running the resulting FaceLandmarkImg.exe also results in a crash, as above.

Building the 'HeadPoseLive' or 'OpenFaceDemo' target resulted in a bunch of linker errors, too.

Building the Release Win32 OpenFaceDemo target seemed to work without errors but the executables produce the same thing as initially reported, i.e. are not working.

TadasBaltrusaitis commented 6 years ago

Could you try building it several times, sometimes visual studio will not find things the first run as libraries and dlls are not built first.

What sort of crash are you seeing in FaceLandmarkImg.exe? Could you run it in debug mode from visual studio? That should allow us to narrow down the problem.

Also, what hardware are you using? The binaries are built with AVX instruction support, if your CPU does not support them, you would need to re-build without them.

embeh commented 6 years ago

Repeated building had no effect. System specs are a bit dated but not that old: Dual Intel Xeon W3680, Win7 x64.

I modified the config to not use AVX anymore and now it seems that I can build everything but 'CppInterop', 'HeadPoseLive', 'OpenFaceDemo' and 'OpenFaceOffline'.

FaceLandmarkVid.exe and FeatureExtraction.exe seem to be working.

FeatureExtraction.exe -f sample6.jpg crashes, as well as FeatureExtraction.exe -f sample1.jpg ('vectur subscript out of range'), but that is a different issue I guess?

TadasBaltrusaitis commented 6 years ago

It seems to have been instruction set issue then, your machine does not support AVX instructions.

With regards to other errors, FeatureExtraction.exe is intended for video analysis and not image, try running FaceLandmarkImg.exe on the image sample, or use a video sample with FeatureExtraction.exe (but your test case identified a bug with FeatureExtraction.exe, which fails on really short videos of a single frame)

Can you give me more details about compilation issues with CppInterop, as if that fails building this will result in HeadPoseLive, OpenFaceDemo, and OpenFaceOffline build problems.

TadasBaltrusaitis commented 6 years ago

Closing, please re-open if the issue persists.