Completeted bilateral filter variable radius analysis
This commit is contained in:
parent
26758224b7
commit
04cf5cb9bc
BIN
Filter_Analysis/Images/BilateralPerformance50Sigma.png
Normal file
BIN
Filter_Analysis/Images/BilateralPerformance50Sigma.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 115 KiB |
@ -121,7 +121,7 @@ def test(model, device, test_loader, epsilon):
|
||||
strength = 2*i + 1
|
||||
|
||||
# Apply the filter with the specified strength
|
||||
filtered_input = defense_filters.mean_kuwahara(perturbed_data_normalized, batch_size=len(perturbed_data_normalized), radius=strength)
|
||||
filtered_input = defense_filters.bilateral_filter(perturbed_data_normalized, batch_size=len(perturbed_data_normalized), d=strength)
|
||||
# Evaluate the model on the filtered images
|
||||
filtered_output = model(filtered_input)
|
||||
# Get the predicted classification
|
||||
@ -158,7 +158,7 @@ def test(model, device, test_loader, epsilon):
|
||||
print(f"Unfiltered Accuracy = {unfiltered_correct} / {len(test_loader)} = {unfiltered_acc}")
|
||||
for i in range(TESTED_STRENGTH_COUNT):
|
||||
strength = 2*i + 1
|
||||
print(f"Mean Kuwahara (strength = {strength}) = {filtered_correct_counts[i]} / {len(test_loader)} = {filtered_accuracies[i]}")
|
||||
print(f"Bilateral Filter (strength = {strength}) = {filtered_correct_counts[i]} / {len(test_loader)} = {filtered_accuracies[i]}")
|
||||
|
||||
return unfiltered_acc, filtered_accuracies
|
||||
|
||||
@ -175,8 +175,11 @@ for eps in epsilons:
|
||||
plt.plot(epsilons, unfiltered_accuracies, label="Attacked Accuracy")
|
||||
for i in range(TESTED_STRENGTH_COUNT):
|
||||
filtered_accuracy = [filter_eps[i] for filter_eps in filtered_accuracies]
|
||||
plt.plot(epsilons, filtered_accuracy, label=f"Mean Kuwahara (strength = {2*i + 1})")
|
||||
plt.plot(epsilons, filtered_accuracy, label=f"Bilateral Filter (strength = {2*i + 1})")
|
||||
|
||||
plt.legend()
|
||||
plt.title("Bilateral Filter Performance")
|
||||
plt.xlabel("Attack Strength ($\\epsilon$)")
|
||||
plt.ylabel("Accuracy")
|
||||
|
||||
plt.show()
|
||||
|
@ -742,3 +742,215 @@ Mean Kuwahara (strength = 5) = 1854 / 10000 = 0.1854
|
||||
Mean Kuwahara (strength = 7) = 1307 / 10000 = 0.1307
|
||||
|
||||
Mean Kuwahara (strength = 9) = 1166 / 10000 = 0.1166
|
||||
|
||||
## Bilateral Filter (Sigma = 50)
|
||||
|
||||
### Raw Program Output
|
||||
====== EPSILON: 0.0 ======
|
||||
|
||||
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||
|
||||
Unfiltered Accuracy = 9920 / 10000 = 0.992
|
||||
|
||||
Bilateral Filter (strength = 1) = 9887 / 10000 = 0.9887
|
||||
|
||||
Bilateral Filter (strength = 3) = 9887 / 10000 = 0.9887
|
||||
|
||||
Bilateral Filter (strength = 5) = 9391 / 10000 = 0.9391
|
||||
|
||||
Bilateral Filter (strength = 7) = 5584 / 10000 = 0.5584
|
||||
|
||||
Bilateral Filter (strength = 9) = 2568 / 10000 = 0.2568
|
||||
|
||||
====== EPSILON: 0.025 ======
|
||||
|
||||
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||
|
||||
Unfiltered Accuracy = 9796 / 10000 = 0.9796
|
||||
|
||||
Bilateral Filter (strength = 1) = 9809 / 10000 = 0.9809
|
||||
|
||||
Bilateral Filter (strength = 3) = 9809 / 10000 = 0.9809
|
||||
|
||||
Bilateral Filter (strength = 5) = 9184 / 10000 = 0.9184
|
||||
|
||||
Bilateral Filter (strength = 7) = 5198 / 10000 = 0.5198
|
||||
|
||||
Bilateral Filter (strength = 9) = 2410 / 10000 = 0.241
|
||||
|
||||
====== EPSILON: 0.05 ======
|
||||
|
||||
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||
|
||||
Unfiltered Accuracy = 9600 / 10000 = 0.96
|
||||
|
||||
Bilateral Filter (strength = 1) = 9695 / 10000 = 0.9695
|
||||
|
||||
Bilateral Filter (strength = 3) = 9695 / 10000 = 0.9695
|
||||
|
||||
Bilateral Filter (strength = 5) = 8902 / 10000 = 0.8902
|
||||
|
||||
Bilateral Filter (strength = 7) = 4831 / 10000 = 0.4831
|
||||
|
||||
Bilateral Filter (strength = 9) = 2245 / 10000 = 0.2245
|
||||
|
||||
====== EPSILON: 0.07500000000000001 ======
|
||||
|
||||
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||
|
||||
Unfiltered Accuracy = 9260 / 10000 = 0.926
|
||||
|
||||
Bilateral Filter (strength = 1) = 9482 / 10000 = 0.9482
|
||||
|
||||
Bilateral Filter (strength = 3) = 9482 / 10000 = 0.9482
|
||||
|
||||
Bilateral Filter (strength = 5) = 8533 / 10000 = 0.8533
|
||||
|
||||
Bilateral Filter (strength = 7) = 4436 / 10000 = 0.4436
|
||||
|
||||
Bilateral Filter (strength = 9) = 2079 / 10000 = 0.2079
|
||||
|
||||
====== EPSILON: 0.1 ======
|
||||
|
||||
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||
|
||||
Unfiltered Accuracy = 8753 / 10000 = 0.8753
|
||||
|
||||
Bilateral Filter (strength = 1) = 9142 / 10000 = 0.9142
|
||||
|
||||
Bilateral Filter (strength = 3) = 9142 / 10000 = 0.9142
|
||||
|
||||
Bilateral Filter (strength = 5) = 8133 / 10000 = 0.8133
|
||||
|
||||
Bilateral Filter (strength = 7) = 4019 / 10000 = 0.4019
|
||||
|
||||
Bilateral Filter (strength = 9) = 1915 / 10000 = 0.1915
|
||||
|
||||
====== EPSILON: 0.125 ======
|
||||
|
||||
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||
|
||||
Unfiltered Accuracy = 8104 / 10000 = 0.8104
|
||||
|
||||
Bilateral Filter (strength = 1) = 8714 / 10000 = 0.8714
|
||||
|
||||
Bilateral Filter (strength = 3) = 8714 / 10000 = 0.8714
|
||||
|
||||
Bilateral Filter (strength = 5) = 7656 / 10000 = 0.7656
|
||||
|
||||
Bilateral Filter (strength = 7) = 3641 / 10000 = 0.3641
|
||||
|
||||
Bilateral Filter (strength = 9) = 1792 / 10000 = 0.1792
|
||||
|
||||
====== EPSILON: 0.15000000000000002 ======
|
||||
|
||||
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||
|
||||
Unfiltered Accuracy = 7229 / 10000 = 0.7229
|
||||
|
||||
Bilateral Filter (strength = 1) = 8169 / 10000 = 0.8169
|
||||
|
||||
Bilateral Filter (strength = 3) = 8169 / 10000 = 0.8169
|
||||
|
||||
Bilateral Filter (strength = 5) = 7098 / 10000 = 0.7098
|
||||
|
||||
Bilateral Filter (strength = 7) = 3299 / 10000 = 0.3299
|
||||
|
||||
Bilateral Filter (strength = 9) = 1681 / 10000 = 0.1681
|
||||
|
||||
====== EPSILON: 0.17500000000000002 ======
|
||||
|
||||
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||
|
||||
Unfiltered Accuracy = 6207 / 10000 = 0.6207
|
||||
|
||||
Bilateral Filter (strength = 1) = 7477 / 10000 = 0.7477
|
||||
|
||||
Bilateral Filter (strength = 3) = 7477 / 10000 = 0.7477
|
||||
|
||||
Bilateral Filter (strength = 5) = 6410 / 10000 = 0.641
|
||||
|
||||
Bilateral Filter (strength = 7) = 2978 / 10000 = 0.2978
|
||||
|
||||
Bilateral Filter (strength = 9) = 1610 / 10000 = 0.161
|
||||
|
||||
====== EPSILON: 0.2 ======
|
||||
|
||||
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||
|
||||
Unfiltered Accuracy = 5008 / 10000 = 0.5008
|
||||
|
||||
Bilateral Filter (strength = 1) = 6619 / 10000 = 0.6619
|
||||
|
||||
Bilateral Filter (strength = 3) = 6619 / 10000 = 0.6619
|
||||
|
||||
Bilateral Filter (strength = 5) = 5683 / 10000 = 0.5683
|
||||
|
||||
Bilateral Filter (strength = 7) = 2723 / 10000 = 0.2723
|
||||
|
||||
Bilateral Filter (strength = 9) = 1563 / 10000 = 0.1563
|
||||
|
||||
====== EPSILON: 0.225 ======
|
||||
|
||||
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||
|
||||
Unfiltered Accuracy = 3894 / 10000 = 0.3894
|
||||
|
||||
Bilateral Filter (strength = 1) = 5767 / 10000 = 0.5767
|
||||
|
||||
Bilateral Filter (strength = 3) = 5767 / 10000 = 0.5767
|
||||
|
||||
Bilateral Filter (strength = 5) = 5003 / 10000 = 0.5003
|
||||
|
||||
Bilateral Filter (strength = 7) = 2476 / 10000 = 0.2476
|
||||
|
||||
Bilateral Filter (strength = 9) = 1517 / 10000 = 0.1517
|
||||
|
||||
====== EPSILON: 0.25 ======
|
||||
|
||||
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||
|
||||
Unfiltered Accuracy = 2922 / 10000 = 0.2922
|
||||
|
||||
Bilateral Filter (strength = 1) = 4922 / 10000 = 0.4922
|
||||
|
||||
Bilateral Filter (strength = 3) = 4922 / 10000 = 0.4922
|
||||
|
||||
Bilateral Filter (strength = 5) = 4381 / 10000 = 0.4381
|
||||
|
||||
Bilateral Filter (strength = 7) = 2288 / 10000 = 0.2288
|
||||
|
||||
Bilateral Filter (strength = 9) = 1484 / 10000 = 0.1484
|
||||
|
||||
====== EPSILON: 0.275 ======
|
||||
|
||||
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||
|
||||
Unfiltered Accuracy = 2149 / 10000 = 0.2149
|
||||
|
||||
Bilateral Filter (strength = 1) = 4133 / 10000 = 0.4133
|
||||
|
||||
Bilateral Filter (strength = 3) = 4133 / 10000 = 0.4133
|
||||
|
||||
Bilateral Filter (strength = 5) = 3836 / 10000 = 0.3836
|
||||
|
||||
Bilateral Filter (strength = 7) = 2126 / 10000 = 0.2126
|
||||
|
||||
Bilateral Filter (strength = 9) = 1460 / 10000 = 0.146
|
||||
|
||||
====== EPSILON: 0.30000000000000004 ======
|
||||
|
||||
Clean (No Filter) Accuracy = 9920 / 10000 = 0.992
|
||||
|
||||
Unfiltered Accuracy = 1599 / 10000 = 0.1599
|
||||
|
||||
Bilateral Filter (strength = 1) = 3468 / 10000 = 0.3468
|
||||
|
||||
Bilateral Filter (strength = 3) = 3468 / 10000 = 0.3468
|
||||
|
||||
Bilateral Filter (strength = 5) = 3364 / 10000 = 0.3364
|
||||
|
||||
Bilateral Filter (strength = 7) = 1999 / 10000 = 0.1999
|
||||
|
||||
Bilateral Filter (strength = 9) = 1444 / 10000 = 0.1444
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user