Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 24 additions & 24 deletions calculate_accuracy_qualitative.bat
Original file line number Diff line number Diff line change
@@ -1,31 +1,31 @@
python calculate_accuracy_qualitative.py ^
--ground_truth_data_dir data/qualnoholes ^
--generated_samples_dir results/256/qualnoholes183 ^
--num_plates 100 ^
--ground_truth_data_dir data/testdata ^
--generated_samples_dir results/donkey256prev ^
--num_plates 200 ^
--num_conditions_per_plate 1 ^
--num_steps_per_condition 2 ^
--image_size 256

python calculate_accuracy_qualitative.py ^
--ground_truth_data_dir data/qualholes ^
--generated_samples_dir results/256/qualholes183 ^
--num_plates 100 ^
--num_conditions_per_plate 1 ^
--num_steps_per_condition 2 ^
--image_size 256
@REM python calculate_accuracy_qualitative.py ^
@REM --ground_truth_data_dir data/qualholes ^
@REM --generated_samples_dir results/256/qualholes183 ^
@REM --num_plates 100 ^
@REM --num_conditions_per_plate 1 ^
@REM --num_steps_per_condition 2 ^
@REM --image_size 256

python calculate_accuracy_qualitative.py ^
--ground_truth_data_dir data/qualforceramp ^
--generated_samples_dir results/256/qualforceramp183 ^
--num_plates 100 ^
--num_conditions_per_plate 1 ^
--num_steps_per_condition 11 ^
--image_size 256
@REM python calculate_accuracy_qualitative.py ^
@REM --ground_truth_data_dir data/qualforceramp ^
@REM --generated_samples_dir results/256/qualforceramp183 ^
@REM --num_plates 100 ^
@REM --num_conditions_per_plate 1 ^
@REM --num_steps_per_condition 11 ^
@REM --image_size 256

python calculate_accuracy_qualitative.py ^
--ground_truth_data_dir data/qualitativesample ^
--generated_samples_dir results/256/256ckpt183 ^
--num_plates 200 ^
--num_conditions_per_plate 1 ^
--num_steps_per_condition 2 ^
--image_size 256
@REM python calculate_accuracy_qualitative.py ^
@REM --ground_truth_data_dir data/qualitativesample ^
@REM --generated_samples_dir results/256/256ckpt183 ^
@REM --num_plates 200 ^
@REM --num_conditions_per_plate 1 ^
@REM --num_steps_per_condition 2 ^
@REM --image_size 256
49 changes: 49 additions & 0 deletions calculate_accuracy_qualitative.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
from metrics.calculate_accuracy_qualitative import calculate_accuracy, calculate_accuracy_per_step
import argparse
import numpy as np
parser = argparse.ArgumentParser(description="Calculate accuracy.")
parser.add_argument(
"--ground_truth_data_dir", type=str, default="data/sample_data", help="Data directory."
)
parser.add_argument(
"--generated_samples_dir", type=str, default="results/generated_data", help="Sample data directory."
)
parser.add_argument(
"--num_plates", type=int, default=1, help="Number of plates in sample dataset."
)
parser.add_argument(
"--num_conditions_per_plate",
type=int,
default=1,
help="Number of conditions per plate in sample dataset.",
)
parser.add_argument(
"--num_steps_per_condition",
type=int,
default=3,
help="Number of steps per condition in sample dataset.",
)
parser.add_argument("--image_size", type=int, default=256, help="Image size.")

args = parser.parse_args()

MAE, MSE, RMSE, SSIM, mean_absolute_error_values, mean_squared_error_values, root_mean_squared_error_values, ssim = calculate_accuracy(
num_plates=args.num_plates,
num_conditions_per_plate=args.num_conditions_per_plate,
num_steps=args.num_steps_per_condition,
image_size=args.image_size,
ground_truth_data_dir=args.ground_truth_data_dir,
generated_samples_dir=args.generated_samples_dir,
)

def round_off(value):
return np.around(value, decimals=4)

print("Mean absolute error: {}".format(round_off(MAE)))
print("Mean squared error: {}".format(round_off(MSE)))
print("RMSE: {}".format(round_off(RMSE)))
print("SSIM: {}".format(round_off(SSIM)))
print("Mean absolute error: {}".format(round_off(mean_absolute_error_values)))
print("Mean squared error: {}".format(round_off(mean_squared_error_values)))
print("Root mean squared error: {}".format(round_off(root_mean_squared_error_values)))
print("SSIM: {}".format(round_off(ssim)))
14 changes: 7 additions & 7 deletions generate_data_GT.bat
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
python generate_data.py ^
--num_plates 2500 ^
--data_dir data/2000to2500 ^
--start_plate 2324 ^
--conditions_per_plate 4 ^
--steps_per_condition 6 ^
--num_plates 200 ^
--data_dir data/testdata ^
--start_plate 1 ^
--conditions_per_plate 1 ^
--steps_per_condition 2 ^
--image_size 512 ^
--save_meshes ^
--save_displacement
--save_displacement
@REM --save_meshes ^
55 changes: 55 additions & 0 deletions metrics/accuracy_function_qualitative.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import numpy as np
import pyvista as pv
from PIL import Image, ImageOps
import matplotlib.pyplot as plt
from SSIM_PIL import compare_ssim

def calculate_accuracy_for_one_sample(
displacement_x_file, displacement_y_file, gt_x_file, gt_y_file, image_size
):
predicted_displacement_x = np.array(
ImageOps.grayscale(
Image.open(displacement_x_file).resize((image_size, image_size))
)
).squeeze()/255.0

predicted_displacement_y = np.array(
ImageOps.grayscale(
Image.open(displacement_y_file).resize((image_size, image_size))
)
).squeeze()/255.0

gt_displacement_x = np.array(
ImageOps.grayscale(Image.open(gt_x_file).resize((image_size, image_size)))
).squeeze()/255.0

gt_displacement_y = np.array(
ImageOps.grayscale(Image.open(gt_y_file).resize((image_size, image_size)))
).squeeze()/255.0

mean_absolute_error = np.mean(
[
np.mean(np.abs(predicted_displacement_x - gt_displacement_x)),
np.mean(np.abs(predicted_displacement_y - gt_displacement_y)),
]
)

mean_squared_error = np.mean(
[
np.mean(np.square(predicted_displacement_x - gt_displacement_x)),
np.mean(np.square(predicted_displacement_y - gt_displacement_y)),
]
)


ssimx = compare_ssim((ImageOps.grayscale(Image.open(displacement_x_file).resize((image_size,image_size)))),
(ImageOps.grayscale(Image.open(gt_x_file).resize((image_size,image_size)))), GPU=False)

ssimy = compare_ssim((ImageOps.grayscale(Image.open(displacement_y_file).resize((image_size,image_size)))),
(ImageOps.grayscale(Image.open(gt_y_file).resize((image_size,image_size)))), GPU=False)

ssim = np.mean([ssimx, ssimy])

root_mean_squared_error = np.sqrt(mean_squared_error)

return mean_absolute_error, mean_squared_error, root_mean_squared_error, ssim
Loading