GDAOSU / vis2mesh

Vis2Mesh: Efficient Mesh Reconstruction from Unstructured Point Clouds of Large Scenes with Learned Virtual View Visibility ICCV2021
97 stars 16 forks source link

no such file or directory: vvtool #7

Open Bobkk-k opened 2 years ago

Bobkk-k commented 2 years ago

when I run the command 'python inference.py example/example1.ply --cam cam0' , a new error rise. It shows that No such file or directory: 'vvtool'. Where is the vvtool? Is there some preparation I didn't do? Or, Is that some files I put wrong place?By the way, I have downloaded the above-mentioned file named 'VDVNet_CascadePPP_epoch30.pth' and I put it in checkpoints folder. Is that right? Can you tell me how to do?Thank you! image

sxsong1207 commented 2 years ago

Hi Bob,

seems you didn't build the vvtool, please check the script called setup_tools.sh.

The successful case is shown here:

root@sxs-XPS-8930:/workspace/tools/bin# ls
OpenMVS  o3d_vvcreator.py  vvtool

I built this from scratch with docker fully automatic within 20 minutes. This is a highly suggested approach.

Thank you, Shaun

Bobkk-k commented 2 years ago

I found only OpenMVS in bin and I spent a lot of time to build this with docker.

Additionally, many errors occur as shown in the images below. (Two steps preceding this step showed success)

B86C389EE32B87754B148DCEFFE81972

4B9540AAC6E4C62EF37D3EC7391B9793

C5B60A2EAC125EBEF5FAFDCD5A7362AB

impaidk commented 2 years ago

Hi Bob,

seems you didn't build the vvtool, please check the script called setup_tools.sh.

The successful case is shown here:

root@sxs-XPS-8930:/workspace/tools/bin# ls
OpenMVS  o3d_vvcreator.py  vvtool

I built this from scratch with docker fully automatic within 20 minutes. This is a highly suggested approach.

Thank you, Shaun

I have three files like you but I still get the same error. I build both openMVS and vvtool by scratch

rosuser@a178-linux:~/ws/vis2mesh/tools/bin$ ls OpenMVS o3d_vvcreator.py vvtool

I get the same error as above python inference.py example/example1.ply --cam cam0

rosuser@a178-linux:~/ws/vis2mesh$ python inference.py example/example1.ply --cam cam0

Available Toolset

vvtool: vvtool o3d_vvcreator.py: o3d_vvcreator.py ReconstructMesh: ReconstructMesh

Project Settings

Input Cloud: /home/rosuser/ws/vis2mesh/example/example1.ply Exists: True Input Mesh: Exists: False Input Textured Mesh: Exists: False Input Textured Mesh: Exists: False Base Cam: Exists: False Input Cam: /home/rosuser/ws/vis2mesh/example/example1.ply_WORK/cam0.json Exists: True Work Folder: /home/rosuser/ws/vis2mesh/example/example1.ply_WORK Exists: True Cam: cam0 ToolChain: NET.POINT_DELAY ToolChain Work Folder: /home/rosuser/ws/vis2mesh/example/example1.ply_WORK/VDVNet_cam0 Exists:True Output Folder: /home/rosuser/ws/vis2mesh/example/example1.ply_WORK/VDVNet_cam0/out Exists:True -- CamCreator Cmd: o3d_vvcreator.py --output_list=/home/rosuser/ws/vis2mesh/example/example1.ply_WORK/cam0.json --width=512 --height=512 /home/rosuser/ws/vis2mesh/example/example1.ply INFO:root:Valid Cams:104 Traceback (most recent call last): File "inference.py", line 381, in main() File "inference.py", line 376, in main config=RunProcess(config) File "inference.py", line 304, in RunProcess p = subprocess.Popen([config['Toolset']['vvtool'],config['RENDER_SEG_PATH']],stdout=subprocess.PIPE) File "/usr/lib/python3.8/subprocess.py", line 858, in init self._execute_child(args, executable, preexec_fn, close_fds, File "/usr/lib/python3.8/subprocess.py", line 1704, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) NotADirectoryError: [Errno 20] Not a directory: 'vvtool'

I get this when I try python inference.py example/example1.ply

rosuser@a178-linux:~/ws/vis2mesh$ python inference.py example/example1.ply

Available Toolset

vvtool: vvtool o3d_vvcreator.py: o3d_vvcreator.py ReconstructMesh: ReconstructMesh

Project Settings

Input Cloud: /home/rosuser/ws/vis2mesh/example/example1.ply Exists: True Input Mesh: Exists: False Input Textured Mesh: Exists: False Input Textured Mesh: Exists: False Base Cam: Exists: False Input Cam: /home/rosuser/ws/vis2mesh/example/example1.ply_WORK/cam1.json Exists: False Work Folder: /home/rosuser/ws/vis2mesh/example/example1.ply_WORK Exists: True Cam: cam1 ToolChain: NET.POINT_DELAY ToolChain Work Folder: /home/rosuser/ws/vis2mesh/example/example1.ply_WORK/VDVNet_cam1 Exists:True Output Folder: /home/rosuser/ws/vis2mesh/example/example1.ply_WORK/VDVNet_cam1/out Exists:True Traceback (most recent call last): File "inference.py", line 381, in main() File "inference.py", line 374, in main config=CreateCam(config) File "inference.py", line 166, in CreateCam p = subprocess.Popen(camcommand,stdout=subprocess.PIPE) File "/usr/lib/python3.8/subprocess.py", line 858, in init self._execute_child(args, executable, preexec_fn, close_fds, File "/usr/lib/python3.8/subprocess.py", line 1704, in _execute_child raise child_exception_type(errno_num, err_msg, err_filename) NotADirectoryError: [Errno 20] Not a directory: 'o3d_vvcreator.py'

Any inputs will are really appreciated, thank you

sxsong1207 commented 2 years ago

Thanks for your feedback.

I suppose you are running in your host computer rather than docker so the environment variables is not properly defined.

I have two options for you to address this:

  1. You can add the folders that include 'vvtool', 'o3d_vvcreator.py' and 'ReconstructMesh' into the PATH: export PATH="YOUR_FOLDER:$PATH"

  2. Open inference.py and you will find a function like around line 23: This simply returns a dict that contains the path of the tool. You can simply overwrite it Toolset['vvtool'] = PATH_ON_YOUR_COMPUTER

def findToolset(dep_tools = ['vvtool','o3d_vvcreator.py','ReconstructMesh']):
    Toolset=dict()
    print('#Available Toolset#')
    for t in dep_tools:
        Toolset[t] = t
        assert(Toolset[t]!=None)
        print(f'{t}: {Toolset[t]}')
    return Toolset

Let me know if they works.

impaidk commented 2 years ago

Thanks for your feedback.

I suppose you are running in your host computer rather than docker so the environment variables is not properly defined.

I have two options for you to address this:

  1. You can add the folders that include 'vvtool', 'o3d_vvcreator.py' and 'ReconstructMesh' into the PATH: export PATH="YOUR_FOLDER:$PATH"
  2. Open inference.py and you will find a function like around line 23: This simply returns a dict that contains the path of the tool. You can simply overwrite it Toolset['vvtool'] = PATH_ON_YOUR_COMPUTER
def findToolset(dep_tools = ['vvtool','o3d_vvcreator.py','ReconstructMesh']):
    Toolset=dict()
    print('#Available Toolset#')
    for t in dep_tools:
        Toolset[t] = t
        assert(Toolset[t]!=None)
        print(f'{t}: {Toolset[t]}')
    return Toolset

Let me know if they works.

Hi Shaun, thank you for your quick reply. By adding the folder into the PATH the above error was solved with the vvtool.

However, my 'tools' folder doesn't have the Reconstruction Mesh folded inside it. I couldn't find the folder in the repo as well.

What does this Reconstruction Mesh folder contain? Can you please explain?

Really appreciate your time.

Best Regards

sxsong1207 commented 2 years ago

@impaidk Please check tools/bin/OpenMVS or OpenMVS/bin/

pyramidpoint commented 2 years ago

@sxsong1207 hello, when I run the command 'docker build . -t vis2mesh ', a error rise.Could you tell me why? Thank you!! image