patrikhuber / 4dface

Real-time 3D face tracking and reconstruction from 2D video
https://www.4dface.io
Apache License 2.0
793 stars 248 forks source link

Publish pre-built executable #36

Closed JasonKleban closed 6 years ago

JasonKleban commented 6 years ago

pre-built executable (coming soon)

I would love to try it out! The build steps are nice but a little daunting because my dev environment/knowledge is very far from being able to built this. Could you please publish the binaries?

patrikhuber commented 6 years ago

Hi @JasonKleban,

I'll compile you some up-to-date binaries. Will post an update here shortly.

patrikhuber commented 6 years ago

Actually, there were already binaries for Windows and Linux on the GitHub Releases page. In any case, I've taken this opportunity to update 4dface to the latest eos version (v0.15.0) and also pushed a new binary for Windows there.

camjac251 commented 6 years ago

I am trying to run the compiled version of 4d face with no luck. When I try to run the compiled version, a command prompt opens then I get the 4dface.exe has stopped working. I'm on Windows 10 and haven't installed anything prior to running (except for the model). trying to run via cmd with the video path also doesn't work. Does this require something to be installed on windows beforehand?

camjac251 commented 6 years ago

When opening in Vs2015 for debugging I get

'4dface.exe' (Win32): Loaded 'C:\Users\User\Desktop\4dface\bin\4dface.exe'. Module was built without symbols.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\ntdll.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\kernel32.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\KernelBase.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\ucrtbase.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Users\User\Desktop\4dface\bin\opencv_highgui341.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Users\User\Desktop\4dface\bin\opencv_videoio341.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Users\User\Desktop\4dface\bin\opencv_objdetect341.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Users\User\Desktop\4dface\bin\boost_filesystem-vc141-mt-x64-1_66.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\gdi32.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\user32.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\advapi32.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\gdi32full.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Users\User\Desktop\4dface\bin\boost_program_options-vc141-mt-x64-1_66.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\win32u.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\msvcrt.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\msvcp_win.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\ole32.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Users\User\Desktop\4dface\bin\opencv_imgcodecs341.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\sechost.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\comdlg32.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\combase.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\rpcrt4.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\SHCore.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Users\User\Desktop\4dface\bin\opencv_imgproc341.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\bcryptprimitives.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\shlwapi.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Users\User\Desktop\4dface\bin\opencv_core341.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\oleaut32.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Users\User\Desktop\4dface\bin\msvcp140.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\shell32.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\cfgmgr32.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Users\User\Desktop\4dface\bin\vcruntime140.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\msvfw32.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\avifil32.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\windows.storage.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\avicap32.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\kernel.appcore.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Users\User\Desktop\4dface\bin\boost_system-vc141-mt-x64-1_66.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\powrprof.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Users\User\Desktop\4dface\bin\libpng16.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Users\User\Desktop\4dface\bin\jpeg62.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Users\User\Desktop\4dface\bin\tiff.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\profapi.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Users\User\Desktop\4dface\bin\jasper.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\WinSxS\amd64_microsoft.windows.common-controls_6595b64144ccf1df_5.82.16299.309_none_8875ce284abe80d8\comctl32.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Users\User\Desktop\4dface\bin\zlib1.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Users\User\Desktop\4dface\bin\concrt140.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\mfplat.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\mf.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\mfreadwrite.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\msacm32.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\winmm.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Users\User\Desktop\4dface\bin\lzma.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\winmmbase.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\mfcore.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\crypt32.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\msasn1.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\ksuser.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\bcrypt.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\cryptbase.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\imm32.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\RTWorkQ.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\uxtheme.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\clbcatq.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\devenum.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\setupapi.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\ntmarta.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\devobj.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\wintrust.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\msdmo.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\qcap.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\quartz.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\msctf.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\dwmapi.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Program Files\Recorder Devices for ShareX\screen-capture-recorder-x64.dll'. Cannot find or open the PDB file.
'4dface.exe' (Win32): Loaded 'C:\Windows\System32\msvcr100.dll'. Cannot find or open the PDB file.
The thread 0x2eb8 has exited with code 0 (0x0).
Unhandled exception at 0x00007FFFEF460800 (opencv_videoio341.dll) in 4dface.exe: 0xC0000005: Access violation reading location 0x0000000000000034.

Exception thrown at 0x00007FFFEF460800 (opencv_videoio341.dll) in 4dface.exe: 0xC0000005: Access violation reading location 0x0000000000000034.
patrikhuber commented 6 years ago

@camjac251 Thanks for reporting the error from the debug mode!

Could you please try 4dface.exe --help, and see whether that works?

camjac251 commented 6 years ago

Hey thanks for the reply back. I am able to run that surprisingly. I get the help info with running it. Does thing have a GUI? Could it be that when trying to create it, it's relying on a package not compiled with the app?

camjac251 commented 6 years ago

If I try adding -i and input an h264 mp4 encoded file path I get back Couldn't open the given file or camera 0.

patrikhuber commented 6 years ago

That's great. I think Windows requires the paths to be specified with double quotes (e.g. -i "C:\Users\camjac251\video.mpg") - otherwise the \ get escaped. Please try that.

Additionally, I think that opencv_ffmpeg341_64.dll might be missing. vcpkg has an issue open for that: https://github.com/Microsoft/vcpkg/issues/2799 I've attached the dll here: opencv_ffmpeg341_64.zip

Please let me know if the first thing helped and if the second one was needed.

camjac251 commented 6 years ago

I don't believe that worked. I added the double quotes around the path, tested, it crashed. I added the file in, tested, and crashed.

I then tried just running the command with and without the file, same thing. Not sure whats the problem.

patrikhuber commented 6 years ago

Just to be sure - you unzipped the file, and copied the .dll into the same directory where 4dface.exe is. Correct?

Can you try a different video file? With a different codec?

patrikhuber commented 6 years ago

I'm also a bit confused: You said above:

If I try adding -i and input an h264 mp4 encoded file path I get back Couldn't open the given file or camera 0.

And now you said you gave it the file and it crashed.

So in what scenario does it crash, and when do you get the Couldn't open the given file or camera 0. error?

camjac251 commented 6 years ago

Doesn't make any sense to me either. I just tried it once more, had two different folders with it inside, both having the model and ffmpeg dll. Tried running with quotes without quotes, without the path, in powershell, in cmd, as admin. All comes back to the same oddly enough

patrikhuber commented 6 years ago

So you changed the folder structure? Then you will need to adjust all the paths. Note that by default it expects the model files to be in the ../share directory, relative from 4dface.exe.

Also have you copied the landmark regressor to the share directory, as instructed?

All comes back to the same oddly enough

Meaning? Crash or Couldn't open the given file or camera 0.?

First you should get back to making --help work and then to get it to display Couldn't open the given file or camera 0. again. Then it should only be something trivial left to fix. I am pretty sure you've got everything you need now but you're just doing something slightly not according to the instructions. I just tested this in a clean Win 10 VM and it works fine on my end.

patrikhuber commented 6 years ago

I can confirm that this works on a clean, new Windows 10 Virtual Machine: 4dface\bin>4dface.exe -i vid.mp4 It works after you copy opencv_ffmpeg341_64.dll to bin/, where the other .dlls are. Nothing else needed.

I will update the release .zip to include that .dll, thanks for reporting that.

camjac251 commented 6 years ago

Oh so it needs to be in the share folder. I was using full paths to a separate hard drive. After running it again I get

4dface.exe -i myvideo.mp4_30fps_2.mp4 warning: Error opening file (/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:834) warning: myvideo.mp4_30fps_2.mp4 (/build/opencv/modules/videoio/src/cap_ffmpeg_impl.hpp:835) Couldn't open the given file or camera 0.

camjac251 commented 6 years ago

Tried an avi as well with the same result, titled face.avi

patrikhuber commented 6 years ago

Oh so it needs to be in the share folder.

No, they can also be somewhere completely different - but then you need to specify all the paths - please read 4dface.exe --help, if you want to do that.

And no the video also does not need to be in the same directory - but then you need the double quotes. This works completely fine on my fresh Win 10 VM:

4dface\bin>4dface.exe -i "C:\Users\Patrik\Documents\vid.mp4"

I think the ffmpeg dll may still not be in the correct directory, you may have got some problems with OpenCV's ffmpeg, or you've got weird video files. In any case this seems to have nothing to do with 4dface. I recommend that you either try some other video files, and/or compile it by yourself - then, you can choose a local opencv where you are sure that ffmpeg and reading videos will work.

camjac251 commented 6 years ago

I seem to have gotten it to work somehow. Thank you for your help. It looks like one of my folders wasn't setup correctly so starting from scratch made it work.

patrikhuber commented 6 years ago

Great, that's what I thought. :-)