pcc_geo_cnn
pcc_geo_cnn copied to clipboard
./evaluate_compression compilation issues
Hi, Mr.Quach, This should be my last questions, regarding these bolded files:
./evaluate_compression -i ~/data/datasets/msft -o ~/data/datasets/cwi-pcl-codec/msft_9 -q 1 -b 9 -g 1 --intra_frame_quality_csv ~/data/datasets/cwi-pcl-codec/msft_9_intra.csv --predictive_quality_csv ~/data/datasets/cwi-pcl-codec/msft9_pred.csv
In your example previous step, you have: Example with original, compressed and decompressed datasets: python eval.py ../data/ModelNetply "**/*.ply" ../data/msft_dec_256new ../../geo_dist/build/pc_error --decompressed_suffix .bin.ply --compressed_dir ../data/msft_bin_256new --compressed_suffix .bin --output_file ../eval/eval_256.csv
Example with only original and decompressed datasets: python eval.py ../data/ModelNetply "**/*.ply.bin.ply" ../data/msft_dec_256new ../../geo_dist/build/pc_error --output_file ../eval/eval_mpeg_256.csv
So my questions:
-
msft must be the file with .ply files. But what do msft_9_intra.csv and msft9_pred.csv each represent? Do they correspond to the .csv files generated in the eval.py step, like in the example above(eval_256.csv, eval_mpeg_256.csv)?
-
under what path should I execute ./evaluate_compression -i ~/data/datasets/...? I compiled ./evaluate_compression (I downloaded cwi-pcl-codec, and then: cd ./source; mkdir build; cd build; cmake ..), and tried to execute it under several paths, but i got: -bash: ./evaluate_compression: No such file or directory
Best Regards and So Many Thanks
msft_9_intra.csv and msft9_pred.csv are CSV files produced by the PCL codec (MPEG anchor). They contain information about the encoded and decoded point clouds. In particular, we are interested in the bitrate information. This is because the codec does not output compressed files so we can only recover bitrate information through this CSV.
eval.py outputs distortion and bitrate information from original, compressed and decompressed point clouds.
In the case of PCL, compressed point clouds are not available and bitrate information cannot be recovered directly.
Thus, we merge msft_9_intra.csv (generated by evaluate_compression) with eval_mpeg_256.csv (generated by eval.py to obtain bitrate information.
evaluate_compression should be in build/apps/evaluate_compression/evaluate_compression.
Note that after using cmake, you need to run make (for example make evaluate_compression) in order to build.
In the downloaded file cwi-pcl-codec file there are two paths to evaluate_compression.h and evaluate_compression.cpp: \cwi-pcl-codec\apps\evaluate_compression\include\pcl\apps\evaluate_compression*evaluate_compression.h* \cwi-pcl-codec\apps\evaluate_compression\src*evaluate_compression.cpp* Which one should I use?
You mentioned: build/apps/evaluate_compression/evaluate_compression So should I create a build file and copy apps file into it? Because apps is directly under cwi-pcl-codec.
There are two CMakeLists.txt: directly under \cwi-pcl-codec and under \cwi-pcl-codec\apps\evaluate_compression\src
cmake .. is executed under build( which is generated bei mkdir build), should make evaluate_compression also be executed under build? I tried but got error: make: *** No rule to make target 'evaluate_compression'. Stop.
Thanks!
From the root directory of cwi-pcl-codec, the following works for me:
mkdir build
cd build
cmake ..
make help
make evaluate_compression
./apps/evaluate_compression/evaluate_compression
From the root directory of cwi-pcl-codec, the following works for me:
mkdir build cd build cmake .. make help make evaluate_compression ./apps/evaluate_compression/evaluate_compression
I can run untill make help: make: *** No rule to make target 'help'. Stop.
Can you give me the output of ls -al in the build folder. For me, it is:
$ ls -al
total 92
drwxr-xr-x 6 quachmau quachmau 4096 Jul 7 10:17 .
drwxrwxr-x 9 quachmau quachmau 4096 Jul 7 10:17 ..
drwxr-xr-x 3 quachmau quachmau 4096 Jul 7 10:17 apps
drwxr-xr-x 3 quachmau quachmau 4096 Jul 7 10:17 cloud_codec_v2
-rw-r--r-- 1 quachmau quachmau 53999 Jul 7 10:17 CMakeCache.txt
drwxr-xr-x 5 quachmau quachmau 4096 Jul 7 10:18 CMakeFiles
-rw-r--r-- 1 quachmau quachmau 1928 Jul 7 10:17 cmake_install.cmake
drwxr-xr-x 3 quachmau quachmau 4096 Jul 7 10:17 jpeg_io
-rw-r--r-- 1 quachmau quachmau 5320 Jul 7 10:17 Makefile
total 48 drwxrwxrwx 1 yang yang 512 Jul 7 10:23 . drwxrwxr-x 1 yang yang 512 Jul 6 17:24 .. -rw-rw-rw- 1 yang yang 39864 Jul 6 17:26 CMakeCache.txt drwxrwxrwx 1 yang yang 512 Jul 6 17:26 CMakeFiles drwxrwxr-x 1 yang yang 512 Jul 6 17:18 apps
It seems like cmake didn't work properly.
What is the output of cmake .. for you ?
(tfcpuuu) yang@DESKTOP-GSCEMU3:~/data/cwi-pcl-codec/build$ cmake .. -- The imported target "vtkRenderingPythonTkWidgets" references the file "/usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so" but this file does not exist. Possible reasons include:
- The file was deleted, renamed, or moved to another location.
- An install or uninstall procedure did not complete successfully.
- The installation package was faulty and contained "/usr/lib/cmake/vtk-6.3/VTKTargets.cmake" but not all the files it references.
-- The imported target "vtk" references the file "/usr/bin/vtk" but this file does not exist. Possible reasons include:
- The file was deleted, renamed, or moved to another location.
- An install or uninstall procedure did not complete successfully.
- The installation package was faulty and contained "/usr/lib/cmake/vtk-6.3/VTKTargets.cmake" but not all the files it references.
-- LIBUSB_1_LIBRARY (missing: LIBUSB_1_INCLUDE_DIR) CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message): Could NOT find JPEG_Turbo (missing: JPEG_Turbo_LIBRARY JPEG_Turbo_INCLUDE_DIR) Call Stack (most recent call first): /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE) cmake/Modules/FindJPEG_Turbo.cmake:42 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) CMakeLists.txt:119 (find_package)
-- Configuring incomplete, errors occurred! See also "/home/yang/data/cwi-pcl-codec/build/CMakeFiles/CMakeOutput.log". See also "/home/yang/data/cwi-pcl-codec/build/CMakeFiles/CMakeError.log".
your build folder stuff looks similar to stuff under cwi-pcl-codec folder
It has the same structure but it contains the binaries instead of the source code.
The cmake command outputs errors so you need to resolve them before proceeding further.
Please follow the installation instructions at https://github.com/mauriceqch/cwi-pcl-codec.
You may need to adapt them if your OS version is different.
It seems you are missing the jpeg turbo library. You can install it with sudo apt install libjpeg-turbo8-dev.
-
In the CMakeLists.txt under cwi-pcl-codec it seems to run on ubuntu 16.04: ##On Ubuntu 16.04 we have VTK 6.0 But my is ubuntu 18.04. Do you think this could be a problem?
-
I installed pcl the other way(my tutor helped me install it), It works. So not exactly like the steps in https://github.com/mauriceqch/cwi-pcl-codec. This should not be the problem, right?
Best
The PCL codec has a number of dependencies that must be installed for it to work correctly.
For Ubuntu 16.04, the following should work:
sudo apt-get install -y git build-essential linux-libc-dev cmake cmake-gui cmake cmake-gui libusb-1.0-0-dev libusb-dev libudev-dev mpi-default-dev openmpi-bin openmpi-common libflann1.8 libflann-dev libeigen3-dev libboost-all-dev libvtk6.2-qt libvtk6.2 libvtk6-dev libvtk6-qt-dev libgtest-dev freeglut3-dev pkg-config libxmu-dev libxi-dev mono-complete qt-sdk openjdk-8-jdk openjdk-8-jre libopenni0 libopenni-sensor-pointclouds0 libopenni-dev libopenni-sensor-pointclouds-dev libproj-dev libjpeg-turbo8-dev
However, on Ubuntu 18.04, you may need to change some dependencies if they are not available.
You can try to install what you can on the list above and post the output of cmake here.
As far as I know, the JPEG turbo library should not be an issue on 18.04.
(tfcpuuu) yang@DESKTOP-GSCEMU3:~/data/cwi-pcl-codec/build$ sudo apt-get install -y git build-essential linux-libc-dev cmake cmake-gui cmake cmake-gui libusb-1.0-0-dev libusb-dev libudev-dev mpi-default-dev openmpi-bin openmpi-common libflann1.8 libflann-dev libeigen3-dev libboost-all-dev libvtk6.2-qt libvtk6.2 libvtk6-dev libvtk6-qt-dev libgtest-dev freeglut3-dev pkg-config libxmu-dev libxi-dev mono-complete qt-sdk openjdk-8-jdk openjdk-8-jre libopenni0 libopenni-sensor-pointclouds0 libopenni-dev libopenni-sensor-pointclouds-dev libproj-dev libjpeg-turbo8-dev [sudo] password for yang: Reading package lists... Done Building dependency tree Reading state information... Done Note, selecting 'cmake-qt-gui' instead of 'cmake-gui' Note, selecting 'cmake-qt-gui' instead of 'cmake-gui' Package libvtk6.2 is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: libvtk6.3-qt:i386 libvtk6.3-qt
E: Unable to locate package libflann1.8 E: Couldn't find any package by glob 'libflann1.8' E: Couldn't find any package by regex 'libflann1.8' E: Unable to locate package libvtk6.2-qt E: Couldn't find any package by glob 'libvtk6.2-qt' E: Couldn't find any package by regex 'libvtk6.2-qt' E: Package 'libvtk6.2' has no installation candidate E: Unable to locate package qt-sdk
I tried to install libflann1.8 with: _sudo apt-get update -y sudo apt-get install -y libflann-dev
But still i got: Package libvtk6.2 is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source However the following packages replace it: libvtk6.3-qt:i386 libvtk6.3-qt
E: Unable to locate package libflann1.8 E: Couldn't find any package by glob 'libflann1.8' E: Couldn't find any package by regex 'libflann1.8' E: Unable to locate package libvtk6.2-qt E: Couldn't find any package by glob 'libvtk6.2-qt' E: Couldn't find any package by regex 'libvtk6.2-qt' E: Package 'libvtk6.2' has no installation candidate E: Unable to locate package qt-sdk
Hello Mr. Quach, I searched on https://packages.ubuntu.com/, for ubuntu bionic 18.04, and found that there is no compatible libflann1.8, but only libflann1.9. Likewise for the other above listed packages. So i changed the packages to the corresponding versionin the command: sudo apt-get install -y git build-essential linux-libc-dev cmake cmake-gui cmake cmake-gui libusb-1.0-0-dev libusb-dev libudev-dev mpi-default-dev openmpi-bin openmpi-common libflann1.8 libflann-dev libeigen3-dev libboost-all-dev libvtk6.2-qt libvtk6.2 libvtk6-dev libvtk6-qt-dev libgtest-dev freeglut3-dev pkg-config libxmu-dev libxi-dev mono-complete qt-sdk openjdk-8-jdk openjdk-8-jre libopenni0 libopenni-sensor-pointclouds0 libopenni-dev libopenni-sensor-pointclouds-dev libproj-dev libjpeg-turbo8-dev
Now I can run it. But cmake still produces the same error: _(tfcpuuu) yang@DESKTOP-GSCEMU3:~/data/cwi-pcl-codec/build$ cmake .. _CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message): Could NOT find JPEG_Turbo (missing: JPEG_Turbo_LIBRARY JPEG_Turbo_INCLUDE_DIR) Call Stack (most recent call first): /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE) cmake/Modules/FindJPEG_Turbo.cmake:42 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) CMakeLists.txt:119 (find_package)
-- Configuring incomplete, errors occurred! See also "/home/yang/data/cwi-pcl-codec/build/CMakeFiles/CMakeOutput.log". See also "/home/yang/data/cwi-pcl-codec/build/CMakeFiles/CMakeError.log"._
Could you pls give me some suggestions? I'm again stuck at here. Thanks in advance!
Did you check if libjpeg-turbo8-dev was installed properly ?
What is the output of sudo apt install libjpeg-turbo8-dev ?
(tfcpuuu) yang@DESKTOP-GSCEMU3:~/machine-learning-for-point-cloud-compression-ss2020/pcc_geo_cnn-master/src$ sudo apt install libjpeg-turbo8-dev [sudo] password for yang: Reading package lists... Done Building dependency tree Reading state information... Done libjpeg-turbo8-dev is already the newest version (1.5.2-0ubuntu5.18.04.4). The following packages were automatically installed and are no longer required: libllvm7 libwayland-egl1-mesa linux-headers-4.15.0-43 linux-headers-4.15.0-43-generic Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
(tfcpuuu) yang@DESKTOP-GSCEMU3:~/data/cwi-pcl-codec/build$ cmake .. CMake Error at /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:137 (message): Could NOT find JPEG_Turbo (missing: JPEG_Turbo_LIBRARY JPEG_Turbo_INCLUDE_DIR) Call Stack (most recent call first): /usr/share/cmake-3.10/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE) cmake/Modules/FindJPEG_Turbo.cmake:42 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) CMakeLists.txt:119 (find_package)
-- Configuring incomplete, errors occurred! See also "/home/yang/data/cwi-pcl-codec/build/CMakeFiles/CMakeOutput.log". See also "/home/yang/data/cwi-pcl-codec/build/CMakeFiles/CMakeError.log".
I asked around and was told that maybe I need to install "jpeg turbo" library and set these two flags in system environment: JPEG_Turbo_LIBRARY JPEG_Turbo_INCLUDE_DIR
But I don't know how to set env variables.
Is that suggestion correct and if so, how to set the 2 env flags?
(tfcpuuu) yang@DESKTOP-GSCEMU3:/etc$ dpkg -L libjpeg-turbo8-dev /. /usr /usr/include /usr/include/jerror.h /usr/include/jmorecfg.h /usr/include/jpegint.h /usr/include/jpeglib.h /usr/include/x86_64-linux-gnu /usr/include/x86_64-linux-gnu/jconfig.h /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/libjpeg.a /usr/lib/x86_64-linux-gnu/pkgconfig /usr/lib/x86_64-linux-gnu/pkgconfig/libjpeg.pc /usr/share /usr/share/doc /usr/share/doc/libjpeg-turbo8-dev /usr/share/doc/libjpeg-turbo8-dev/README.ijg.gz /usr/share/doc/libjpeg-turbo8-dev/README.md.gz /usr/share/doc/libjpeg-turbo8-dev/copyright /usr/share/doc/libjpeg-turbo8-dev/libjpeg.txt.gz /usr/share/doc/libjpeg-turbo8-dev/structure.txt.gz /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/share/doc/libjpeg-turbo8-dev/changelog.Debian.gz
I tried:
export JPEG_Turbo_LIBRARY="/usr/lib/x86_64-linux-gnu/libjpeg.so"
export JPEG_Turbo_INCLUDE_DIR="/usr/include/x86_64-linux-gnu/jconfig.h"
and various other possibilities. but it doesn't work.
Hello Mr. Quach, could you pls take a look at the above problem?
Thanks!
Hi @Yangsir-X,
I am currently looking at it. But it may take some time since I need to reproduce your problem. On my system, installing jpeg turbo made it discoverable by cmake without extra actions.
Best,
Hi @Yangsir-X,
Just to let you know that I haven't forgotten about your issue. However, I am quite busy lately so it may take me some time to investigate the issue in depth. Keep in mind that you can also test against GPCC. Also, I published a follow-up paper with code at https://github.com/mauriceqch/pcc_geo_cnn_v2
Best,
Hello Mr. Maurice, thanks for the update! Please take your time. I am now not under time/delivery pressure. So no hurry,
Best regards