GeodesicPSIM: Predicting the Quality of Static Mesh with Texture Map via Geodesic Patch Similarity
Contributor:
Chino Yang (Qi Yang)
Tencent Media Lab
Dependencies: OpenCV OpenMp
Make sure OpenCV and OpenMp can work normally on your computer.
-
OpenCV, version 4.8.0 is recommended.
Add openCV to the environment path, For example:
D:\opencv\build\x64\vc16\bin
D:\opencv\build\bin
-
If you have installed VS, OpenMp is already supported. Otherwise, please check tdm-gcc.
-
Unzip eigen-3.4.0
-
If you have installed Git Bash on your computer, please use the following commands:
2.1 mkdir build
2.2 cd build
2.3 cmake ..
-
If you do not have Git Bash:
3.1 Run cmake-gui.exe
3.2 Choose 'Visual Studio 17 2022 Win64' as the compiler version
3.3 Where is the source code = ".../GeodesicPSIM/GeodesicPSIM_Code/"
3.4 Where to build the binaries = ".../GeodesicPSIM/build"
3.5 Click "Configure"
3.6 Click "Generate"
-
Open ".../GeodesicPSIM/build/GeodesicPSIM.sln" solution with MSVC 2022, select 'Release' mode, then select GeodesicPSIM as the starting project.
-
To run the software:
GeodesicPSIM.exe ReferenceMesh(obj) ReferenceMeshTextureMap DistortedMesh(obj) DistortedMeshTextureMap --N < Number of keypoint, default is 5000 > --result_file < file to save results, default is result.csv >
A pair of meshes is provided with '/Windows binary/testSample.zip' for testing.
-
Check the results.
Patch color smoothness, patch discrete mean curvature, patch pixel color average, and patch pixel color variance are four features used to calculate the final objective scores, i.e., GeodesicPSIM score.
If you cannot obtain the results with your own meshes, please check your mesh .obj file and compare them with the testing samples.
-
The mesh files consist of three parts, including .obj, .png (or other image formats), and .mtl files. To test objective quality, .obj and .png files are required.
-
For .obj file, please make sure that the raw data meets the formatting requirements of the obj file. For example: the vt (UV) information should be normalized to 0-1 according to the resolution of the texture map.
-
Please make sure the mesh sample can be normally rendered via MeshLab by directly dragging the obj file into MeshLab before using the software. Otherwise, it might cause some unexpected errors.
-
The mesh must be triangle mesh.
If you do not want to compile the source code by yourself, we also provide a binary in the Windows binary folder
A Python script, GeodesicPSIMMetric.py, and a ReaMe.md is provided to help you use the binary.