moberweger / deep-prior-pp

Improving Fast And Accurate 3D Hand Pose Estimation
GNU General Public License v3.0
144 stars 40 forks source link

Error when compiling compute_output() #24

Closed duckyngo closed 5 years ago

duckyngo commented 5 years ago

I try to use the test_realtimepipeline.py with MSRA15 . I already use the PoseRegNetParams with MSRA_network_prior_0.pkl poseNetParams = PoseRegNetParams(type=11, nChan=1, wIn=128, hIn=128, batchSize=1, numJoints=21, nDims=3) The program fail when compiling compute_output() Here is the Traceback

['nvcc', '-shared', '-O3', '-Xlinker', '-rpath,/usr/local/cuda-8.0/lib64', '-arch=sm_61', '-m64', '-Xcompiler', '-fno-math-errno,-Wno-unused-label,-Wno-unused-variable,-Wno-write-strings,-DCUDA_NDARRAY_CUH=c72d035fdf91890f3b36710688069b2e,-DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION,-fPIC,-fvisibility=hidden', '-Xlinker', '-rpath,/home/ducky/.theano/compiledir_Linux-4.15--generic-x86_64-with-debian-stretch-sid-x86_64-2.7.15-64/cuda_ndarray', '-I/home/ducky/.theano/compiledir_Linux-4.15--generic-x86_64-with-debian-stretch-sid-x86_64-2.7.15-64/cuda_ndarray', '-I/usr/local/cuda-8.0/include', '-I/home/ducky/anaconda3/envs/python27/lib/python2.7/site-packages/theano/sandbox/cuda', '-I/home/ducky/anaconda3/envs/python27/lib/python2.7/site-packages/numpy/core/include', '-I/home/ducky/anaconda3/envs/python27/include/python2.7', '-I/home/ducky/anaconda3/envs/python27/lib/python2.7/site-packages/theano/gof', '-L/home/ducky/.theano/compiledir_Linux-4.15--generic-x86_64-with-debian-stretch-sid-x86_64-2.7.15-64/cuda_ndarray', '-L/home/ducky/anaconda3/envs/python27/lib', '-o', '/home/ducky/.theano/compiledir_Linux-4.15--generic-x86_64-with-debian-stretch-sid-x86_64-2.7.15-64/tmpv0UWaU/ea4e203b6529466794536f8a1bfa77ae.so', 'mod.cu', '-lcudart', '-lcublas', '-lcuda_ndarray', '-lcudnn', '-lpython2.7'] Process Process-3: Traceback (most recent call last): File "/home/ducky/anaconda3/envs/python27/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap self.run() File "/home/ducky/anaconda3/envs/python27/lib/python2.7/multiprocessing/process.py", line 114, in run self._target(*self._args, **self._kwargs) File "/home/ducky/Workspace/handpose/deep-prior-pp-master/src/util/realtimehandposepipeline.py", line 182, in threadConsumer self.initNets() File "/home/ducky/Workspace/handpose/deep-prior-pp-master/src/util/realtimehandposepipeline.py", line 119, in initNets self.poseNet.computeOutput(numpy.zeros(self.poseNet.cfgParams.inputDim, dtype='float32')) File "/home/ducky/Workspace/handpose/deep-prior-pp-master/src/net/netbase.py", line 281, in computeOutput mode='FAST_RUN', on_unused_input='warn') File "/home/ducky/anaconda3/envs/python27/lib/python2.7/site-packages/theano/compile/function.py", line 326, in function output_keys=output_keys) File "/home/ducky/anaconda3/envs/python27/lib/python2.7/site-packages/theano/compile/pfunc.py", line 486, in pfunc output_keys=output_keys) File "/home/ducky/anaconda3/envs/python27/lib/python2.7/site-packages/theano/compile/function_module.py", line 1795, in orig_function defaults) File "/home/ducky/anaconda3/envs/python27/lib/python2.7/site-packages/theano/compile/function_module.py", line 1661, in create input_storage=input_storage_lists, storage_map=storage_map) File "/home/ducky/anaconda3/envs/python27/lib/python2.7/site-packages/theano/gof/link.py", line 699, in make_thunk storage_map=storage_map)[:3] File "/home/ducky/anaconda3/envs/python27/lib/python2.7/site-packages/theano/gof/vm.py", line 1047, in make_all impl=impl)) File "/home/ducky/anaconda3/envs/python27/lib/python2.7/site-packages/theano/gof/op.py", line 935, in make_thunk no_recycling) File "/home/ducky/anaconda3/envs/python27/lib/python2.7/site-packages/theano/gof/op.py", line 839, in make_c_thunk output_storage=node_output_storage) File "/home/ducky/anaconda3/envs/python27/lib/python2.7/site-packages/theano/gof/cc.py", line 1190, in make_thunk keep_lock=keep_lock) File "/home/ducky/anaconda3/envs/python27/lib/python2.7/site-packages/theano/gof/cc.py", line 1131, in compile keep_lock=keep_lock) File "/home/ducky/anaconda3/envs/python27/lib/python2.7/site-packages/theano/gof/cc.py", line 1586, in cthunk_factory key=key, lnk=self, keep_lock=keep_lock) File "/home/ducky/anaconda3/envs/python27/lib/python2.7/site-packages/theano/gof/cmodule.py", line 1159, in module_from_key module = lnk.compile_cmodule(location) File "/home/ducky/anaconda3/envs/python27/lib/python2.7/site-packages/theano/gof/cc.py", line 1489, in compile_cmodule preargs=preargs) File "/home/ducky/anaconda3/envs/python27/lib/python2.7/site-packages/theano/sandbox/cuda/nvcc_compiler.py", line 405, in compile_str 'for cmd', ' '.join(cmd)) Exception: ('The following error happened while compiling the node', GpuDnnConv{algo='small', inplace=True}(GpuContiguous.0, GpuContiguous.0, GpuAllocEmpty.0, GpuDnnConvDesc{border_mode='valid', subsample=(1, 1), conv_mode='conv', precision='float32'}.0, Constant{1.0}, Constant{0.0}), '\n', 'nvcc return status', 2, 'for cmd', 'nvcc -shared -O3 -Xlinker -rpath,/usr/local/cuda-8.0/lib64 -arch=sm_61 -m64 -Xcompiler -fno-math-errno,-Wno-unused-label,-Wno-unused-variable,-Wno-write-strings,-DCUDA_NDARRAY_CUH=c72d035fdf91890f3b36710688069b2e,-DNPY_NO_DEPRECATED_API=NPY_1_7_API_VERSION,-fPIC,-fvisibility=hidden -Xlinker -rpath,/home/ducky/.theano/compiledir_Linux-4.15--generic-x86_64-with-debian-stretch-sid-x86_64-2.7.15-64/cuda_ndarray -I/home/ducky/.theano/compiledir_Linux-4.15--generic-x86_64-with-debian-stretch-sid-x86_64-2.7.15-64/cuda_ndarray -I/usr/local/cuda-8.0/include -I/home/ducky/anaconda3/envs/python27/lib/python2.7/site-packages/theano/sandbox/cuda -I/home/ducky/anaconda3/envs/python27/lib/python2.7/site-packages/numpy/core/include -I/home/ducky/anaconda3/envs/python27/include/python2.7 -I/home/ducky/anaconda3/envs/python27/lib/python2.7/site-packages/theano/gof -L/home/ducky/.theano/compiledir_Linux-4.15--generic-x86_64-with-debian-stretch-sid-x86_64-2.7.15-64/cuda_ndarray -L/home/ducky/anaconda3/envs/python27/lib -o /home/ducky/.theano/compiledir_Linux-4.15--generic-x86_64-with-debian-stretch-sid-x86_64-2.7.15-64/tmpv0UWaU/ea4e203b6529466794536f8a1bfa77ae.so mod.cu -lcudart -lcublas -lcuda_ndarray -lcudnn -lpython2.7', "[GpuDnnConv{algo='small', inplace=True}(<CudaNdarrayType(float32, 4D)>, <CudaNdarrayType(float32, 4D)>, <CudaNdarrayType(float32, 4D)>, <CDataType{cudnnConvolutionDescriptor_t}>, Constant{1.0}, Constant{0.0})]")

Process finished with exit code 0

duckyngo commented 5 years ago

This type of issue is because I wasn't install the CUDNN in the CUDA-8.0. I was solved it by install cudnn 5.0. But after that I meet a issue about TypeError:

The Traceback was:

Process Process-3: Traceback (most recent call last): File "/home/ducky/anaconda3/envs/python27/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap self.run() File "/home/ducky/anaconda3/envs/python27/lib/python2.7/multiprocessing/process.py", line 114, in run self._target(*self._args, *self._kwargs) File "/home/ducky/Workspace/handpose/deep-prior-pp-master/src/util/realtimehandposepipeline.py", line 204, in threadConsumer img, poseimg = self.show(frm['frame'], pose, frm['com3D']) File "/home/ducky/Workspace/handpose/deep-prior-pp-master/src/util/realtimehandposepipeline.py", line 439, in show comP = self.importer.joint3DToImg(rotatePoint3D(com3D, handpose[self.importer.crop_joint_idx], 0., 90., 0.)) File "/home/ducky/Workspace/handpose/deep-prior-pp-master/src/data/transformations.py", line 133, in rotatePoint3D pp -= center TypeError: Cannot cast ufunc subtract output from dtype('float64') to dtype('int64') with casting rule 'same_kind' Warning: CoM ill-defined! Warning: CoM ill-defined! Warning: CoM ill-defined! Warning: CoM ill-defined! Warning: CoM ill-defined! Process Process-2: Traceback (most recent call last): File "/home/ducky/anaconda3/envs/python27/lib/python2.7/multiprocessing/process.py", line 267, in _bootstrap self.run() File "/home/ducky/anaconda3/envs/python27/lib/python2.7/multiprocessing/process.py", line 114, in run self._target(self._args, **self._kwargs) File "/home/ducky/Workspace/handpose/deep-prior-pp-master/src/util/realtimehandposepipeline.py", line 155, in threadProducer ret, frame = device.getDepth() File "/home/ducky/Workspace/handpose/deep-prior-pp-master/src/util/cameradevice.py", line 395, in getDepth frame = self.importer.loadDepthMap(self.filenames[self.last_depth_num]) IndexError: list index out of range

duckyngo commented 5 years ago

I solve the second issue by modify the rotatePoint3D a little bit to (pp -= center => pp = pp - center and ps -= center => ps = ps - center )

The result show here: screenshot from 2018-11-28 16-42-20

Why the pose is small and quite strange. I try to change the config to another but it not improve

moberweger commented 5 years ago

Without knowing in detail what you are up to, there are several things you can try: Press "h" to switch between left and right hand, press "-"/"+" to reduce crop size (HC-300 looks too large for me), press "t" to use tracking mode instead of center-of-mass detection.

duckyngo commented 5 years ago

Thank you. It works great now. screenshot from 2018-11-28 20-57-09