diff --git a/Benchmark.py b/Benchmark.py index 58fd18204432c5a112b32aab0d0928f8fab769a7..efcd025122c3064fa0cc6549551835160fc5db29 100644 --- a/Benchmark.py +++ b/Benchmark.py @@ -251,7 +251,7 @@ class Benchmark: tex_file.write("\\multirow{{{}}}{{*}}{{\\makecell{{{}}}}}".format(method_count, approach)) for method in self.methods_per_approach[approach]: - tex_file.write("\n& \makecell{{{}}}".format(method)) + tex_file.write("\n& \\makecell{{{}}}".format(method)) for model in models: try: diff --git a/Vis.py b/Vis.py index b352f6af053b7ffbc0e4218ed4f7d0db7f88b230..6b3f2aea30fa533a2a0dab5ca911f4468c50b191 100644 --- a/Vis.py +++ b/Vis.py @@ -24,7 +24,7 @@ class Vis: x = np.array(range(len(y))) ax.plot(x, y, c="0.4", alpha=0.2) - ax.set_xlim(0,45) + ax.set_xlim(0,110) ax.set_ylim(0,100) ax.set_xlabel("Number of viewpoints") diff --git a/object_space_exploration_per_approach_methods.json b/object_space_exploration_per_approach_methods.json index 322de77cc9d04bede16f3584a2272d40cace9dfc..1dc96a8c1dca968a603382407d2036c986e8c97d 100644 --- a/object_space_exploration_per_approach_methods.json +++ b/object_space_exploration_per_approach_methods.json @@ -19,7 +19,10 @@ "ExactCurv", "ThinPlate", "NormalDev", - "NoSubdivision"] + "NoSubdivision"], + "Generate_and_use": [ + "Generate-and-Use" + ] } diff --git a/readme.md b/readme.md index d6fa25d39c5e52f3b8ce4d468d43de2ff224f0cc..915ba13b257e9b3df144772ee896fa3024b78fc6 100644 --- a/readme.md +++ b/readme.md @@ -1,4 +1,87 @@ #ViewpointOptimizationBenchmark +Comparison of optimization viewpoint data written in format +``` +{ + "Log": { + "Camera": { + "DistanceMM": float, + "FocalLength": float, + "Model": string, + "PixSizeMM": float, + "ResHeight": uint, + "ResWidth": uint + }, + "Coverage": { + "InTriangles": uint, + "Percentage": float + }, + "CoveragePerVP": [float, ..., float], + "Duration": { + "OptimizationSec": float, + "RayTracingSec": float + }, + "Model": { + "FaceCount": uint, + "Name": string, + "VertexCount": uint + }, + "OptimizationType": string, + "TimeStamp": string, + "TriangleCoveragePerVP": [uint, ..., uint], + "VPC": { + "Count": uint, + "DiscardedCount": uint, + "Functional": string, + "ListName": string, + "Threshold": string + }, + "VPSelectionOrder": [uint, ..., uint] + }, + "OVP": { + "Count": uint, + "List": [array of viewpoint objects] + } +} +``` +## Ourputs +Outputs in `/data` directory: +* coverage convergence graphs +* best performance table in LaTex (`performance_table.tex`) +* best performance table with information about the number of discarded viewpoints in LaTex (`performance_table_discarded.tex`) +* complete performance table containing all the optimal viewpoint sets +* average discarded statistic per approach +* average discarded statistic per method -Example call: +## Test data available at: +https://owncloud.fraunhofer.de/index.php/s/H8jV9rwGN84knzP + +## Example call `python3 vob.py object_space_exploration_per_approach_methods.json ovp_paths.json 2020-08-15` + +## Args +[1] `object_space_exploration_per_approach_methods.json` - list of methods names assigned to corresponding approach +[2] `ovp_paths.json` - an array of paths to the directory containing the ovp files (not recursive) +[3] optional string - optional string which will be prepended to the coverage graphs + +### `object_space_exploration_per_approach_methods.json` example: +``` +{ + "SpaceSampling": [ + "MixedRepositionedNormal", + "NoDisplacement"], + "VertexSampling": [ + "VertexBBoxCenter", + "VertexGronle"], + "PatchSampling": [ + "Area", + "NoSubdivision"] + ] +} +``` + +### `ovp_paths.json` example: +``` +[ + "path/to/OVP/directory/" +] +``` diff --git a/vob.py b/vob.py index 52eaf081602379d5b01991caec678966439d6508..7312354ead81608fa9a28c08e370d040af0cd596 100644 --- a/vob.py +++ b/vob.py @@ -67,7 +67,6 @@ def main(): log = Log(filename) logs.append(log) except Exception as e: - # TODO add verbose # print("Error: {}\nSkipping file".format(e)) continue