anhttran / 3dmm_basic

An implementation of the classical 3DMM fitting algorithm
114 stars 31 forks source link

terminate called after throwing an instance of 'std::bad_alloc' #9

Open LeoSha opened 5 years ago

LeoSha commented 5 years ago

Hi anh, I have compiled the IRIS_3DMM successfully and copyed the scripts to ./bin.But when I run ./iris3d_file.sh,I get an error as below: snipaste_2018-08-23_09-56-55

BTW,I don't understand the function of the IRIS_3DMM.As far as I known,it can model a 3D face(.ply) with many images from one person and the generated 3D face is used as the train data for your paper[1],right?

Sorry for my poor English. Looking forward to your reply

LeoSha commented 5 years ago

Also,I have created the output dir before running.

wqnow commented 5 years ago

I can't compile the package...Too many low level driver to install.

I'm a Ubuntu newbie .

============================== The Meson build system Version: 0.48.2 Source dir: /content/mesa Build dir: /content/mesa/build Build type: native build Program python found: YES (/usr/local/bin/python) Project name: mesa Project version: 19.0.0-devel Native C compiler: cc (gcc 7.3.0 "cc (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0") Native C++ compiler: c++ (gcc 7.3.0 "c++ (Ubuntu 7.3.0-27ubuntu1~18.04) 7.3.0") Build machine cpu family: x86_64 Build machine cpu: x86_64 Program pkg-config found: YES (/usr/bin/pkg-config) Found pkg-config: /usr/bin/pkg-config (0.29.1) Dependency vdpau found: NO (tried pkgconfig) Dependency xvmc found: NO (tried pkgconfig) Dependency libomxil-bellagio found: NO (tried pkgconfig) Dependency libtizonia found: NO (tried pkgconfig) Dependency libtizplatform found: NO (tried pkgconfig) Dependency tizilheaders found: NO (tried pkgconfig) Dependency libva found: NO (tried pkgconfig) Checking for function "bswap32" : YES Checking for function "bswap64" : YES Checking for function "clz" : YES Checking for function "clzll" : YES Checking for function "ctz" : YES Checking for function "expect" : YES Checking for function "ffs" : YES Checking for function "ffsll" : YES Checking for function "popcount" : YES Checking for function "popcountll" : YES Checking for function "unreachable" : YES Checking if "attribute((const))" compiles: YES Checking if "attribute((flatten))" compiles: YES Checking if "attribute((malloc))" compiles: YES Checking if "attribute((pure))" compiles: YES Checking if "attribute((unused))" compiles: YES Checking if "attribute((warn_unused_result))" compiles: YES Checking if "attribute((weak))" compiles: YES Checking if "attribute((format(...)))" compiles: YES Checking if "attribute((packed))" compiles: YES Checking if "attribute((returns_nonnull))" compiles: YES Checking if "attribute((visibility(...)))" compiles: YES Checking if "attribute((alias(...)))" compiles: YES Checking if "attribute((noreturn))" compiles: YES Compiler for C supports arguments -Werror=implicit-function-declaration: YES Compiler for C supports arguments -Werror=missing-prototypes: YES Compiler for C supports arguments -Werror=return-type: YES Compiler for C supports arguments -fno-math-errno: YES Compiler for C supports arguments -fno-trapping-math: YES Compiler for C supports arguments -Qunused-arguments: NO Compiler for C supports arguments -Wmissing-field-initializers: YES Compiler for C supports arguments -Wformat-truncation: YES Compiler for C supports arguments -fvisibility=hidden: YES Compiler for C++ supports arguments -Werror=return-type: YES Compiler for C++ supports arguments -fno-math-errno: YES Compiler for C++ supports arguments -fno-trapping-math: YES Compiler for C++ supports arguments -Qunused-arguments: NO Compiler for C++ supports arguments -Wnon-virtual-dtor: YES Compiler for C++ supports arguments -Wmissing-field-initializers: YES Compiler for C++ supports arguments -Wformat-truncation: YES Compiler for C supports arguments -Woverride-init: YES Compiler for C supports arguments -Winitializer-overrides: NO Compiler for C++ supports arguments -fvisibility=hidden: YES Compiler for C supports arguments -Werror=pointer-arith: YES Compiler for C++ supports arguments -Werror=pointer-arith: YES Compiler for C supports arguments -Werror=vla: YES Compiler for C++ supports arguments -Werror=vla: YES Checking if "GCC atomic builtins" compiles: YES Checking if "GCC atomic builtins required -latomic" links: YES Checking if "GCC 64bit atomics" links: YES Header <sys/sysmacros.h> has symbol "major": YES Checking if "xlocale.h" compiles: NO Checking if "sys/sysctl.h" compiles: YES Checking if "linux/futex.h" compiles: YES Checking if "endian.h" compiles: YES Checking if "dlfcn.h" compiles: YES Checking for function "strtof" : YES Checking for function "mkostemp" : YES Checking for function "posix_memalign" : YES Checking for function "timespec_get" : YES Checking for function "memfd_create" : YES Checking if "strtod has locale support" links: YES Checking if "Bsymbolic" links: YES Checking if "gc-sections" links: YES Checking if "version-script" links: YES Checking if "dynamic-list" links: YES Checking for function "dlopen" : NO Library dl found: YES Checking for function "dladdr" : YES Checking for function "dl_iterate_phdr" : YES Checking for function "clock_gettime" : YES Dependency zlib found: YES 1.2.11 Dependency threads found: YES Checking for function "pthread_setaffinity_np" : YES Dependency expat found: YES 2.2.5 Library m found: YES Message: libdrm 2.4.95 needed because amdgpu has the highest requirement Dependency libdrm_intel found: NO found '2.4.91' but need: '>=2.4.95' Dependency libdrm_intel found: NO

meson.build:1144:4: ERROR: Invalid version of dependency, need 'libdrm_intel' ['>=2.4.95'] found '2.4.91'.

A full log can be found at /content/mesa/build/meson-logs/meson-log.txt

KangolHsu commented 5 years ago

Also,I have created the output dir before running.

me too .have to debug

jinkeysj commented 5 years ago

@LeoSha It may crash when loading the BaselFace.dat. Do you use the file sent by the author?

anhttran commented 5 years ago

Dear all,

In case you have an issue of compiling my code, I have updated the CMakeLists.txt of CvGL and added Docker support. Please check the updated README for more details.

Hope it help.

Best regards, Anh

UestcJay commented 4 years ago

I have compiled the IRIS_3DMM successfully and copyed the scripts to ./bin.But How can I complete 3D face reconstruction? Can you tell me the specific steps? Thank you very much!

anhttran commented 4 years ago

Dear,

You can use iris3d_file.sh to model a single image or iris3d_dir.sh to model images inside a folder. You can edit the input/output paths inside these scripts. The output folder should be created before running the scripts.

If you use docker, prepare shared folder and save input/output data there. Or you can use docker cp command to transfer data between host and docker.

UestcJay commented 4 years ago

Dear,

You can use iris3d_file.sh to model a single image or iris3d_dir.sh to model images inside a folder. You can edit the input/output paths inside these scripts. The output folder should be created before running the scripts.

If you use docker, prepare shared folder and save input/output data there. Or you can use docker cp command to transfer data between host and docker. Thanks for your help! Today I use iris3d_file.sh to model a single image ,I find the reconstructed 3D face(.ply) is not very similar to the face in the photo。 QQ图片20191212170941

And I don't know the function of the rest of the files like cropped image (.ply_cropped.png), shape parameters (.alpha), texture parameters (.beta), and render parameters (.rend). Would you please tell me whether I was wrong. Sorry for my poor English. Looking forward to your reply

anhttran commented 4 years ago

My model is computed on the face crop (.ply_cropped.png). It uses 3DMM from BaselFaceModel, with estimated shape parameters, texture, and expression parameters stored in (.alpha), (.beta), and (.expr) files. The rendering parameters (.rend) include rotation angles (3), translation (3), illumination and color-mode parameters. You can visualize fitting result by using renderFace function: https://github.com/anhttran/3dmm_basic/blob/master/src/FaceServices2.cpp#L627-L628

I use perceptive projection with my intrinsic camera: K = [[-1000, 0, w/2], [0, 1000, h/2], [0, 0, 1]]

How did you generate the gray-scale render image?