Git Product home page Git Product logo

patch_linemod's Introduction

patch linemod

prerequisite

pysixd

files: params/ pysixd/ t_less_toolkit/ tools/
copied from sixd_toolkit
deal with model reading/rendering, datasets reading and evaluation

dataset

get dataset under top level folder folder using following cmd

wget -r -np -nH --cut-dirs=1 -R index.html http://ptak.felk.cvut.cz/6DB/public/

library

install opencv3 with contrib rgbd module
install pybind11
install open3d(for icp)

pip3 install -r requirements.txt

steps

in target folder:
mkdir build
cd build/
cmake ..
make

in top level folder, if use pybind:
pip3 install target_folder/

python3 patch_linemod_test.py

how to evaluate

patch_linemod_test.py, 57-66, select dataset & mode, train & test
tools/eval_calc_errors.py, 19-27, select dataset, run
tools/eval_loc.py, 180-186, select dataset, run
Results are saved to top_level_folder/eval

current results

dataset score
linemod 0.84833333
linemod occlusion 0.56717325
tejani 0.98666667
doumanoglou 0.93000000
tless 0.56176800
rutgers 0.29055516
tudlight 0.58000000
Average 0.68064200

BOP: Benchmark for 6D Object Pose Estimation

BOP

Chinese blog

patch_linemod's People

Contributors

meiqua avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

patch_linemod's Issues

数据集制作

你好,请问一下可以制作自己的数据集么?

pip3 install target_folder/出现错误

您好,我在pip3 install linemodLevelup/时遇到了错误,是否因为python/pip/setuptools版本问题导致的?请问您是否有什么建议解决这一问题,error信息如下:

ERROR: Command errored out with exit status 1:
  command: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-t4o_cl51/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-t4o_cl51/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-70hds906
      cwd: /tmp/pip-req-build-t4o_cl51/
 Complete output (104 lines):
 running bdist_wheel
 running build
 running build_ext
 -- The C compiler identification is GNU 5.4.0
 -- The CXX compiler identification is GNU 5.4.0
 -- Check for working C compiler: /usr/bin/cc
 -- Check for working C compiler: /usr/bin/cc -- works
 -- Detecting C compiler ABI info
 -- Detecting C compiler ABI info - done
 -- Detecting C compile features
 -- Detecting C compile features - done
 -- Check for working CXX compiler: /usr/bin/c++
 -- Check for working CXX compiler: /usr/bin/c++ -- works
 -- Detecting CXX compiler ABI info
 -- Detecting CXX compiler ABI info - done
 -- Detecting CXX compile features
 -- Detecting CXX compile features - done
 -- Found OpenCV: /usr/local (found suitable version "3.4.0", minimum required is "3")
 -- Found Open3D 0.9.0.0
 -- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.5m.so (found suitable version "3.5.2", minimum required is "3")
 -- Found PythonInterp: /usr/bin/python (found version "3.5.2")
 -- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.5m.so
 -- Found NumPy: /home/jiayir/.local/lib/python3.5/site-packages/numpy/core/include (found version "1.16.2")
 -- Performing Test HAS_FLTO
 -- Performing Test HAS_FLTO - Success
 -- LTO enabled
 -- Configuring done
 -- Generating done
 -- Build files have been written to: /tmp/pip-req-build-t4o_cl51/build/temp.linux-x86_64-3.5
 Scanning dependencies of target cuda_renderer
 [  8%] Building CXX object cuda_renderer/CMakeFiles/cuda_renderer.dir/renderer.cpp.o
 [ 16%] Linking CXX static library libcuda_renderer.a
 [ 16%] Built target cuda_renderer
 Scanning dependencies of target renderer_test
 [ 25%] Building CXX object cuda_renderer/CMakeFiles/renderer_test.dir/test.cpp.o
 Scanning dependencies of target patch_linemod
 [ 33%] Building CXX object CMakeFiles/patch_linemod.dir/linemodLevelup.cpp.o
 [ 41%] Linking CXX executable renderer_test
 [ 41%] Built target renderer_test
 [ 50%] Building CXX object CMakeFiles/patch_linemod.dir/pose_renderer.cpp.o
 /tmp/pip-req-build-t4o_cl51/linemodLevelup.cpp: In member function ‘std::vector<int> linemodLevelup::Detector::addTemplate(const std::vector<cv::Mat>&, const string&, cv::Mat, std::vector<int>)’:
 /tmp/pip-req-build-t4o_cl51/linemodLevelup.cpp:2259:10: warning: variable ‘bb’ set but not used [-Wunused-but-set-variable]
      Rect bb = cropTemplates(tp, clusters);
           ^
 In file included from /tmp/pip-req-build-t4o_cl51/pose_renderer.cpp:1:0:
 /tmp/pip-req-build-t4o_cl51/pose_renderer.h: In constructor ‘PoseRenderer::PoseRenderer(std::string, cv::Mat, cv::Mat)’:
 /tmp/pip-req-build-t4o_cl51/pose_renderer.h:18:50: warning: ‘PoseRenderer::tris’ will be initialized after [-Wreorder]
      std::vector<cuda_renderer::Model::Triangle>& tris;
                                                   ^
 /tmp/pip-req-build-t4o_cl51/pose_renderer.h:14:26: warning:   ‘cuda_renderer::Model PoseRenderer::model’ [-Wreorder]
      cuda_renderer::Model model;
                           ^
 /tmp/pip-req-build-t4o_cl51/pose_renderer.cpp:3:1: warning:   when initialized here [-Wreorder]
  PoseRenderer::PoseRenderer(std::string model_path, cv::Mat depth, cv::Mat K):
  ^
 [ 58%] Linking CXX static library libpatch_linemod.a
 [ 58%] Built target patch_linemod
 Scanning dependencies of target patch_linemod_test
 [ 66%] Building CXX object CMakeFiles/patch_linemod_test.dir/test.cpp.o
 Scanning dependencies of target patch_linemod_pybind
 [ 75%] Building CXX object CMakeFiles/patch_linemod_pybind.dir/pybind11.cpp.o
 [ 83%] Linking CXX executable patch_linemod_test
 libpatch_linemod.a(linemodLevelup.cpp.o):在函数‘linemodLevelup::Match::read(cv::FileNode const&)’中:
 linemodLevelup.cpp:(.text+0x4e5e):对‘cv::read(cv::FileNode const&, std::string&, std::string const&)’未定义的引用
 collect2: error: ld returned 1 exit status
 CMakeFiles/patch_linemod_test.dir/build.make:146: recipe for target 'patch_linemod_test' failed
 make[2]: *** [patch_linemod_test] Error 1
 CMakeFiles/Makefile2:143: recipe for target 'CMakeFiles/patch_linemod_test.dir/all' failed
 make[1]: *** [CMakeFiles/patch_linemod_test.dir/all] Error 2
 make[1]: *** 正在等待未完成的任务....
 [ 91%] Building CXX object CMakeFiles/patch_linemod_pybind.dir/np2mat/ndarray_converter.cpp.o
 [100%] Linking CXX shared module ../lib.linux-x86_64-3.5/patch_linemod_pybind.cpython-35m-x86_64-linux-gnu.so
 [100%] Built target patch_linemod_pybind
 Makefile:83: recipe for target 'all' failed
 make: *** [all] Error 2
 Traceback (most recent call last):
   File "<string>", line 1, in <module>
   File "/tmp/pip-req-build-t4o_cl51/setup.py", line 69, in <module>
     zip_safe=False,
   File "/usr/lib/python3.5/distutils/core.py", line 148, in setup
     dist.run_commands()
   File "/usr/lib/python3.5/distutils/dist.py", line 955, in run_commands
     self.run_command(cmd)
   File "/usr/lib/python3.5/distutils/dist.py", line 974, in run_command
     cmd_obj.run()
   File "/home/jiayir/.local/lib/python3.5/site-packages/wheel/bdist_wheel.py", line 192, in run
     self.run_command('build')
   File "/usr/lib/python3.5/distutils/cmd.py", line 313, in run_command
     self.distribution.run_command(command)
   File "/usr/lib/python3.5/distutils/dist.py", line 974, in run_command
     cmd_obj.run()
   File "/usr/lib/python3.5/distutils/command/build.py", line 135, in run
     self.run_command(cmd_name)
   File "/usr/lib/python3.5/distutils/cmd.py", line 313, in run_command
     self.distribution.run_command(command)
   File "/usr/lib/python3.5/distutils/dist.py", line 974, in run_command
     cmd_obj.run()
   File "/tmp/pip-req-build-t4o_cl51/setup.py", line 33, in run
     self.build_extension(ext)
   File "/tmp/pip-req-build-t4o_cl51/setup.py", line 58, in build_extension
     subprocess.check_call(['cmake', '--build', '.'] + build_args, cwd=self.build_temp)
   File "/usr/lib/python3.5/subprocess.py", line 581, in check_call
     raise CalledProcessError(retcode, cmd)
 subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--config', 'Release', '--', '-j2']' returned non-zero exit status 2
 ----------------------------------------
 ERROR: Failed building wheel for patch-linemod-pybind
 Running setup.py clean for patch-linemod-pybind
Failed to build patch-linemod-pybind
Installing collected packages: patch-linemod-pybind
   Running setup.py install for patch-linemod-pybind ... error
   ERROR: Command errored out with exit status 1:
    command: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-t4o_cl51/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-t4o_cl51/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-4tm61fz0/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/jiayir/.local/include/python3.5m/patch-linemod-pybind
        cwd: /tmp/pip-req-build-t4o_cl51/
   Complete output (106 lines):
   running install
   running build
   running build_ext
   -- The C compiler identification is GNU 5.4.0
   -- The CXX compiler identification is GNU 5.4.0
   -- Check for working C compiler: /usr/bin/cc
   -- Check for working C compiler: /usr/bin/cc -- works
   -- Detecting C compiler ABI info
   -- Detecting C compiler ABI info - done
   -- Detecting C compile features
   -- Detecting C compile features - done
   -- Check for working CXX compiler: /usr/bin/c++
   -- Check for working CXX compiler: /usr/bin/c++ -- works
   -- Detecting CXX compiler ABI info
   -- Detecting CXX compiler ABI info - done
   -- Detecting CXX compile features
   -- Detecting CXX compile features - done
   -- Found OpenCV: /usr/local (found suitable version "3.4.0", minimum required is "3")
   -- Found Open3D 0.9.0.0
   -- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.5m.so (found suitable version "3.5.2", minimum required is "3")
   -- Found PythonInterp: /usr/bin/python (found version "3.5.2")
   -- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.5m.so
   -- Found NumPy: /home/jiayir/.local/lib/python3.5/site-packages/numpy/core/include (found version "1.16.2")
   -- Performing Test HAS_FLTO
   -- Performing Test HAS_FLTO - Success
   -- LTO enabled
   -- Configuring done
   -- Generating done
   -- Build files have been written to: /tmp/pip-req-build-t4o_cl51/build/temp.linux-x86_64-3.5
   Scanning dependencies of target cuda_renderer
   [  8%] Building CXX object cuda_renderer/CMakeFiles/cuda_renderer.dir/renderer.cpp.o
   [ 16%] Linking CXX static library libcuda_renderer.a
   [ 16%] Built target cuda_renderer
   Scanning dependencies of target renderer_test
   [ 25%] Building CXX object cuda_renderer/CMakeFiles/renderer_test.dir/test.cpp.o
   Scanning dependencies of target patch_linemod
   [ 33%] Building CXX object CMakeFiles/patch_linemod.dir/linemodLevelup.cpp.o
   [ 41%] Linking CXX executable renderer_test
   [ 41%] Built target renderer_test
   [ 50%] Building CXX object CMakeFiles/patch_linemod.dir/pose_renderer.cpp.o
   /tmp/pip-req-build-t4o_cl51/linemodLevelup.cpp: In member function ‘std::vector<int> linemodLevelup::Detector::addTemplate(const std::vector<cv::Mat>&, const string&, cv::Mat, std::vector<int>)’:
   /tmp/pip-req-build-t4o_cl51/linemodLevelup.cpp:2259:10: warning: variable ‘bb’ set but not used [-Wunused-but-set-variable]
        Rect bb = cropTemplates(tp, clusters);
             ^
   In file included from /tmp/pip-req-build-t4o_cl51/pose_renderer.cpp:1:0:
   /tmp/pip-req-build-t4o_cl51/pose_renderer.h: In constructor ‘PoseRenderer::PoseRenderer(std::string, cv::Mat, cv::Mat)’:
   /tmp/pip-req-build-t4o_cl51/pose_renderer.h:18:50: warning: ‘PoseRenderer::tris’ will be initialized after [-Wreorder]
        std::vector<cuda_renderer::Model::Triangle>& tris;
                                                     ^
   /tmp/pip-req-build-t4o_cl51/pose_renderer.h:14:26: warning:   ‘cuda_renderer::Model PoseRenderer::model’ [-Wreorder]
        cuda_renderer::Model model;
                             ^
   /tmp/pip-req-build-t4o_cl51/pose_renderer.cpp:3:1: warning:   when initialized here [-Wreorder]
    PoseRenderer::PoseRenderer(std::string model_path, cv::Mat depth, cv::Mat K):
    ^
   [ 58%] Linking CXX static library libpatch_linemod.a
   [ 58%] Built target patch_linemod
   Scanning dependencies of target patch_linemod_test
   [ 66%] Building CXX object CMakeFiles/patch_linemod_test.dir/test.cpp.o
   Scanning dependencies of target patch_linemod_pybind
   [ 75%] Building CXX object CMakeFiles/patch_linemod_pybind.dir/pybind11.cpp.o
   [ 83%] Linking CXX executable patch_linemod_test
   libpatch_linemod.a(linemodLevelup.cpp.o):在函数‘linemodLevelup::Match::read(cv::FileNode const&)’中:
   linemodLevelup.cpp:(.text+0x4e5e):对‘cv::read(cv::FileNode const&, std::string&, std::string const&)’未定义的引用
   collect2: error: ld returned 1 exit status
   CMakeFiles/patch_linemod_test.dir/build.make:146: recipe for target 'patch_linemod_test' failed
   make[2]: *** [patch_linemod_test] Error 1
   CMakeFiles/Makefile2:143: recipe for target 'CMakeFiles/patch_linemod_test.dir/all' failed
   make[1]: *** [CMakeFiles/patch_linemod_test.dir/all] Error 2
   make[1]: *** 正在等待未完成的任务....
   [ 91%] Building CXX object CMakeFiles/patch_linemod_pybind.dir/np2mat/ndarray_converter.cpp.o
   [100%] Linking CXX shared module ../lib.linux-x86_64-3.5/patch_linemod_pybind.cpython-35m-x86_64-linux-gnu.so
   [100%] Built target patch_linemod_pybind
   Makefile:83: recipe for target 'all' failed
   make: *** [all] Error 2
   Traceback (most recent call last):
     File "<string>", line 1, in <module>
     File "/tmp/pip-req-build-t4o_cl51/setup.py", line 69, in <module>
       zip_safe=False,
     File "/usr/lib/python3.5/distutils/core.py", line 148, in setup
       dist.run_commands()
     File "/usr/lib/python3.5/distutils/dist.py", line 955, in run_commands
       self.run_command(cmd)
     File "/usr/lib/python3.5/distutils/dist.py", line 974, in run_command
       cmd_obj.run()
     File "/home/jiayir/.local/lib/python3.5/site-packages/setuptools/command/install.py", line 61, in run
       return orig.install.run(self)
     File "/usr/lib/python3.5/distutils/command/install.py", line 583, in run
       self.run_command('build')
     File "/usr/lib/python3.5/distutils/cmd.py", line 313, in run_command
       self.distribution.run_command(command)
     File "/usr/lib/python3.5/distutils/dist.py", line 974, in run_command
       cmd_obj.run()
     File "/usr/lib/python3.5/distutils/command/build.py", line 135, in run
       self.run_command(cmd_name)
     File "/usr/lib/python3.5/distutils/cmd.py", line 313, in run_command
       self.distribution.run_command(command)
     File "/usr/lib/python3.5/distutils/dist.py", line 974, in run_command
       cmd_obj.run()
     File "/tmp/pip-req-build-t4o_cl51/setup.py", line 33, in run
       self.build_extension(ext)
     File "/tmp/pip-req-build-t4o_cl51/setup.py", line 58, in build_extension
       subprocess.check_call(['cmake', '--build', '.'] + build_args, cwd=self.build_temp)
     File "/usr/lib/python3.5/subprocess.py", line 581, in check_call
       raise CalledProcessError(retcode, cmd)
   subprocess.CalledProcessError: Command '['cmake', '--build', '.', '--config', 'Release', '--', '-j2']' returned non-zero exit status 2
   ----------------------------------------
ERROR: Command errored out with exit status 1: /usr/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-req-build-t4o_cl51/setup.py'"'"'; __file__='"'"'/tmp/pip-req-build-t4o_cl51/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-4tm61fz0/install-record.txt --single-version-externally-managed --user --prefix= --compile --install-headers /home/jiayir/.local/include/python3.5m/patch-linemod-pybind Check the logs for full command output.`

数据集测试阶段没有找到足够匹配点

我自己生成了一个数据集,用数据集里面的图像来测试。不过遇到了candidate size before refine and nms一直是0的情况。
然后我用test.cpp里面测试了一下。金字塔参数改成了{32, 64}之后才有多一点的匹配点。

提取模板

请问一下,在训练阶段,得到位姿后 并对三维模型提取模板的实现代码在哪里呢,我想尝试用python重写这一部分的代码,但是没有找到...
非常感谢!!

take a week to get it run !

i can not input chinese in ubuntu .
open3d is hard to compile !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
and the projects cmake is useless
fix open3d , fix cuda , fix dataset , this project take an week to get it run!!!!!

Dataset Link not working

Hi, I wanted to test out your code because i am currently doing something similar for my Masters, but the link to the dataset is not working.
The server returns a 403 Error. Is the link still accurate?
image
Thank you!

Error when importing patch_linemod_pybind

Hello,

When trying to import patch_linemod_pybind, I get the following errors,

In [1]: import patch_linemod_pybind
`
ImportError Traceback (most recent call last)

<ipython-input-1-52359092ea51> in <module>

----> 1 import patch_linemod_pybind

ImportError: pythonpath/lib/python3.6/site-packages/patch_linemod_pybind.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN13cuda_renderer5ModelC1ERKSs`

It seems that error happens when you declare a method but not define it like here. However, it doesn't work when I try to remove the default construct and destructor.

Has anyone had same issues?

ICP的时候为什么不考虑edge呢?

您好!我在看 cuda_icp的相关代码时发现,在深度图转点云的函数 depth2cloud_cpu 中您将处于边缘的深度都取了相反数,然后在ICP的时候icp 不考虑这些点云。我想请问下您这样处理的原因是什么呢?

can't find patch_linemod_pybind

when I run the python patch_linemod_test.py, there occured an error:
Traceback (most recent call last):
File "patch_linemod_test.py", line 11, in
import patch_linemod_pybind
ModuleNotFoundError: No module named 'patch_linemod_pybind'

but I can't find where the file is.
It seems that there is no this file in the folder.

some message can't load when in test mode

mode=test时,detector.match没有返回值,导致matches为空,影响后续的相关变量值
image
下面是一部分输出信息:
image
image
eval_calc_errors算出的误差也是空的:
image

既然有人还用这个我总结一下

1。数据是下不了。不过这个公开的数据集。。肯定别的地方也有
2。数据集的格式已经不一样了。要自己改配置文件
3。6dtool那个渲染有内存泄漏
4。运行的结果和linmod是差不多的。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.