AaronJackson/vrn

Installing vrn in Fedora. /lib64/libmatio.so.2: undefined symbol: H5T_NATIVE_SCHAR_g

fpradom opened this issue · 18 comments

Hello, Aaron

I desisted from use Fedora 29, while F29 and F28 have python3 preinstalled as default and internal use so installing python 2.7 was inutil.

I have made a clean installation from Fedora 27 that have python 2.7.15 preinstalled.

The full installation elements are as follow:
Prerequisites:

sudo -i
dnf install kernel-devel kernel-headers gcc gcc-c++ make dkms acpid libglvnd-glx libglvnd-opengl libglvnd-devel pkgconfig
dnf install cmake wget git ImageMagick-devel
dnf install openssl-devel bzip2-devel glog-devel boost-devel

NVidia driver for GeForce GTX 750 Ti

dnf install mesa-libGLU-devel libX11-devel libXi-devel libXmu-devel
cuda 8.0 and cudnn 5.1 for coda 8

For python:
dnf install python-devel

pip install visvis
pip install imageio
pip install numpy
pip install dlib
pip install matplotlib

Added gcc53-c++-5.3.0 for Torch installation

Installed Torch 7 from https://github.com/torch/distro.git

Installed THPP from https://github.com/1adrianb/thpp.git

Installed fb.python from https://github.com/facebook/fblualib.git

Installed VRN from https://github.com/AaronJackson/vrn.git

On running run.sh I had the
Fatal Python error: ceval: tstate mix-up github

I surfed your Issues and finded in #59 your recomendation to remove from main.lua:

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import matplotlib.patches as patches

and replace on vrn/face-alignment/facedetection_dlib.lua:

local detections = py.reval('[np.asarray([d.left(), d.top(), d.right(), d.bottom()]) for i, d in enumerate(dets)]',{dets=dets})
with
local detections = py.reval('[np.asarray([d.left(), d.top(), d.right(), d.bottom()],dtype=float) for i, d in enumerate(dets)]',{dets=dets})

main.lua needs npy4th and matio so,

---- installing npy4th ----
git clone https://github.com/htwaijry/npy4th.git
cd npy4th
luarocks make

---- installing matio ----
downloaded matio-1.5.2-7.fc23.x86_64.rpm from https://rpm.pbone.net/
sudo rpm -ihv --nodeps --force matio-1.5.2-7.fc23.x86_64.rpm
luarocks install matio


With this done I tryed the run.sh again with following result:

[f_prado@localhost vrn]$ ./run.sh
...rado/usr/local/torch/install/share/lua/5.1/matio/ffi.lua:20: /lib64/libmatio.so.2: undefined symbol: H5T_NATIVE_SCHAR_g
stack traceback:
[C]: in function 'load'
...rado/usr/local/torch/install/share/lua/5.1/matio/ffi.lua:20: in function <...rado/usr/local/torch/install/share/lua/5.1/matio/ffi.lua:20>
[C]: in function 'xpcall'
...rado/usr/local/torch/install/share/lua/5.1/matio/ffi.lua:20: in main chunk
[C]: at 0x0044e490
[C]: in function 'pcall'
...ado/usr/local/torch/install/share/lua/5.1/trepl/init.lua:385: in function 'require'
...ado/usr/local/torch/install/share/lua/5.1/matio/init.lua:3: in main chunk
[C]: at 0x0044e490
[C]: in function 'pcall'
...ado/usr/local/torch/install/share/lua/5.1/trepl/init.lua:385: in function 'require'
...rado/usr/local/torch/install/share/lua/5.1/xlua/init.lua:360: in function <...rado/usr/local/torch/install/share/lua/5.1/xlua/init.lua:360>
[C]: in function 'pcall'
...rado/usr/local/torch/install/share/lua/5.1/xlua/init.lua:361: in function 'xrequire'
main.lua:16: in main chunk
[C]: in function 'dofile'
...ocal/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk
[C]: at 0x004059e0
...ado/usr/local/torch/install/share/lua/5.1/trepl/init.lua:389: ...ado/usr/local/torch/install/share/lua/5.1/trepl/init.lua:389: ...rado/usr/local/torch/install/share/lua/5.1/matio/ffi.lua:24: Could not find libmatio. Please make sure that you installd MatIO and you have the shared libraries (libmatio.so or libmatio.dylib) in your library path
warning: could not be loaded (is it installed?)
Scanning directory for data...
Found 5 images
5 images require a face detector
Initialising python libs...
Initialising detector...
/home/f_prado/usr/local/torch/install/bin/luajit: getrf : Lapack library not found in compile time
at /home/f_prado/usr/local/torch/pkg/torch/lib/TH/generic/THLapack.c:140
stack traceback:
[C]: at 0x7f8a18f8e350
[C]: in function 'inverse'
./utils.lua:51: in function 'transform'
./utils.lua:59: in function 'crop'
main.lua:58: in main chunk
[C]: in function 'dofile'
...ocal/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk
[C]: at 0x004059e0
ls: no se puede acceder a '.txt': No such file or directory
ls: no se puede acceder a '
.raw': No such file or directory

I have libmatio.so.2 in /lib64/

Can you please help me?

Hmm, interesting. Thanks for your detailed report. Instead of fixing the issue, it might be easier to remove any dependency on matio from the face-alignment code. VRN doesn't depend need to access any MAT files.

Hi Aaron
eliminated line 16 in main.lua:
-- xrequire('matio') -- matlab

now the run.sh execution gives:
[f_prado@localhost vrn]$ ./run.sh
Scanning directory for data...
Found 5 images
5 images require a face detector
Initialising python libs...
Initialising detector...
/home/f_prado/usr/local/torch/install/bin/luajit: getrf : Lapack library not found in compile time
at /home/f_prado/usr/local/torch/pkg/torch/lib/TH/generic/THLapack.c:140
stack traceback:
[C]: at 0x7f47635b9350
[C]: in function 'inverse'
./utils.lua:51: in function 'transform'
./utils.lua:59: in function 'crop'
main.lua:58: in main chunk
[C]: in function 'dofile'
...ocal/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk
[C]: at 0x004059e0
ls: no se puede acceder a '.txt': No such file or directory
ls: no se puede acceder a '
.raw': No such file or directory

Any idea how to progress?
Thanks in advance.

Will try,
Thanks

Hi Aaron:

Solved the previous error by executing:
CMAKE_LIBRARY_PATH=/opt/OpenBLAS/include:/opt/OpenBLAS/lib:$CMAKE_LIBRARY_PATH luarocks install torch

now a new error appears:

f_prado@localhost vrn]$ ./run.sh
Scanning directory for data...
/home/f_prado/usr/local/torch/install/bin/luajit: ...o/usr/local/torch/install/share/lua/5.1/torch/Tensor.lua:466: Wrong size for view. Input size: 1x68x2. Output size: 2
stack traceback:
[C]: in function 'error'
...o/usr/local/torch/install/share/lua/5.1/torch/Tensor.lua:466: in function 'view'
./utils.lua:178: in function 'bounding_box'
./utils.lua:300: in function 'getFileList'
main.lua:25: in main chunk
[C]: in function 'dofile'
...ocal/torch/install/lib/luarocks/rocks/trepl/scm-1/bin/th:150: in main chunk
[C]: at 0x004059e0
ls: no se puede acceder a '.txt': No such file or directory
ls: no se puede acceder a '
.raw': No such file or directory
Any suggestion?
Thanks in advance

Can you make sure nothing else changed in utils.lua? other than the matio stuff

I have restored the original utils.lua and removed the above indicated lines.
The error is the same

Hmm, I can't think why that would happen.
Check that run.sh still contains

th main.lua -model 2D-FAN-300W.t7 \
   -input ../$INPUT/ \
   -detectFaces true \
   -mode generate \
   -output ../$INPUT/ \
   -device gpu \
-outputFormat txt

and that you didn't remove or change any of the lines there.

Are you using the included example images? Or are you using a different folder, perhaps one that contains some txt files?

Hi Aaron:
All lines are present in run.sh
I am using your images in the examples directory and there are not .txt files but .t7, one for each .jpg image.

in the file ../usr/local/torch/install/share/lua/5.1/torch/Tensor.lua the line that gives the error is in a function that has as comment "-- TODO : This should be implemented in TH and and wrapped."
Can this have an influence in the process?

It shouldn't be calling it anyway. The t7 files shouldn't be there so I am wondering if you had run it outside of the script in the past for testing or something. Anyway, delete the t7 files and try again. The face-alignment code thinks they are facial landmarks and is trying to use them as a bounding box.

Hi Aaron:
You are right. I have made many tries. After deleting the t7 files the program has continue until an out of memory error appeared.
I have changed the gpu device with cpu, and now the output is:
[f_prado@localhost vrn]$ ./run.sh
Scanning directory for data...
Found 5 images
5 images require a face detector
Initialising python libs...
Initialising detector...
Cropped and scaled AFLW_image00046.jpg
Cropped and scaled AFLW_image00095.jpg
Cropped and scaled AFLW_image00190.jpg
Cropped and scaled AFLW_image00656.jpg
Cropped and scaled asj.jpg
Processed AFLW_image00190.
Processed asj.
Processed AFLW_image00046.
Processed AFLW_image00656.
Processed AFLW_image00095.
Traceback (most recent call last):
File "../vis.py", line 20, in
t = vv.imshow(im)
File "/usr/lib/python2.7/site-packages/visvis/functions/imshow.py", line 57, in imshow
axes = vv.gca()
File "/usr/lib/python2.7/site-packages/visvis/functions/gca.py", line 19, in gca
f = vv.gcf()
File "/usr/lib/python2.7/site-packages/visvis/functions/gcf.py", line 23, in gcf
return vv.figure()
File "/usr/lib/python2.7/site-packages/visvis/functions/figure.py", line 23, in figure
backends.use()
File "/usr/lib/python2.7/site-packages/visvis/backends/init.py", line 229, in use
raise RuntimeError("None of the backends could be loaded. "+tmp)
RuntimeError: None of the backends could be loaded. Install PySide, PyQt4, wxPython, GTK, or fltk.
Traceback (most recent call last):
File "../vis.py", line 20, in
t = vv.imshow(im)
File "/usr/lib/python2.7/site-packages/visvis/functions/imshow.py", line 57, in imshow
axes = vv.gca()
File "/usr/lib/python2.7/site-packages/visvis/functions/gca.py", line 19, in gca
f = vv.gcf()
File "/usr/lib/python2.7/site-packages/visvis/functions/gcf.py", line 23, in gcf
return vv.figure()
File "/usr/lib/python2.7/site-packages/visvis/functions/figure.py", line 23, in figure
backends.use()
File "/usr/lib/python2.7/site-packages/visvis/backends/init.py", line 229, in use
raise RuntimeError("None of the backends could be loaded. "+tmp)
RuntimeError: None of the backends could be loaded. Install PySide, PyQt4, wxPython, GTK, or fltk.
Traceback (most recent call last):
File "../vis.py", line 20, in
t = vv.imshow(im)
File "/usr/lib/python2.7/site-packages/visvis/functions/imshow.py", line 57, in imshow
axes = vv.gca()
File "/usr/lib/python2.7/site-packages/visvis/functions/gca.py", line 19, in gca
f = vv.gcf()
File "/usr/lib/python2.7/site-packages/visvis/functions/gcf.py", line 23, in gcf
return vv.figure()
File "/usr/lib/python2.7/site-packages/visvis/functions/figure.py", line 23, in figure
backends.use()
File "/usr/lib/python2.7/site-packages/visvis/backends/init.py", line 229, in use
raise RuntimeError("None of the backends could be loaded. "+tmp)
RuntimeError: None of the backends could be loaded. Install PySide, PyQt4, wxPython, GTK, or fltk.
Traceback (most recent call last):
File "../vis.py", line 20, in
t = vv.imshow(im)
File "/usr/lib/python2.7/site-packages/visvis/functions/imshow.py", line 57, in imshow
axes = vv.gca()
File "/usr/lib/python2.7/site-packages/visvis/functions/gca.py", line 19, in gca
f = vv.gcf()
File "/usr/lib/python2.7/site-packages/visvis/functions/gcf.py", line 23, in gcf
return vv.figure()
File "/usr/lib/python2.7/site-packages/visvis/functions/figure.py", line 23, in figure
backends.use()
File "/usr/lib/python2.7/site-packages/visvis/backends/init.py", line 229, in use
raise RuntimeError("None of the backends could be loaded. "+tmp)
RuntimeError: None of the backends could be loaded. Install PySide, PyQt4, wxPython, GTK, or fltk.
Traceback (most recent call last):
File "../vis.py", line 20, in
t = vv.imshow(im)
File "/usr/lib/python2.7/site-packages/visvis/functions/imshow.py", line 57, in imshow
axes = vv.gca()
File "/usr/lib/python2.7/site-packages/visvis/functions/gca.py", line 19, in gca
f = vv.gcf()
File "/usr/lib/python2.7/site-packages/visvis/functions/gcf.py", line 23, in gcf
return vv.figure()
File "/usr/lib/python2.7/site-packages/visvis/functions/figure.py", line 23, in figure
backends.use()
File "/usr/lib/python2.7/site-packages/visvis/backends/init.py", line 229, in use
raise RuntimeError("None of the backends could be loaded. "+tmp)
RuntimeError: None of the backends could be loaded. Install PySide, PyQt4, wxPython, GTK, or fltk.

Are PySide, PyQt4, wxPython, GTK, or fltk. necessary?

After this, I have .txt files in examples, jpg files in scaled and .raw files in output.

Doesn't look like an out of memory error to me. Are you connecting to a linux box without X forwarding? Instead you could use the raw2obj script and then open with something like Meshlab.

Hi Aaron:
When I installed the nvidia driver I mused uninstall the xorg-x11 library.
I proved to use the raw2obj script with following script:

ls -1 output/*.raw | sed 's/.raw//' | while read fname ; do
python raw2obj.py
--volume output/"$i".raw
--image examples/scaled/"$i".jpg
--obj output/"$i".obj
done

but this give me following error:
[f_prado@localhost vrn]$ ./r2o.sh
Traceback (most recent call last):
File "raw2obj.py", line 2, in
import scipy.misc
ImportError: No module named scipy.misc

I can not find scipy.misc in my HD

Sorry, I instaled scipy and now the error is:

[f_prado@localhost vrn]$ ./r2o.sh
Traceback (most recent call last):
File "raw2obj.py", line 2, in
import scipy.misc
ImportError: No module named scipy.misc
Haw can I install mcubes module?

I make a mistake in the comment .
The output is:
[f_prado@localhost vrn]$ ./r2o.sh
Traceback (most recent call last):
File "raw2obj.py", line 3, in
import mcubes
ImportError: No module named mcubes

Hi Aaron
Found the PyMcubes and installed.
Now all seems to run well.