Remove is_svg from image classifier features in dark mode.
The is_svg was added to separate out svg image classification. But
svg images are classified using same mechanism which is used for other
image types. Current usage of is_svg is just set and check in tests.
As this not the extracted feature, in image classification, it is
neither used in decision tree nor in NN model. This patch removes it.
Bug: 1091095
Change-Id: I6e4cdc49e1d5f54278e16194fa505f4d24d38acf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2170748
Commit-Queue: Prashant Nevase <prashant.n@samsung.com>
Reviewed-by: Philip Rogers <pdr@chromium.org>
Cr-Commit-Position: refs/heads/master@{#775706}
diff --git a/third_party/blink/renderer/core/svg/graphics/svg_image.cc b/third_party/blink/renderer/core/svg/graphics/svg_image.cc
index 892295a..3c01d58c 100644
--- a/third_party/blink/renderer/core/svg/graphics/svg_image.cc
+++ b/third_party/blink/renderer/core/svg/graphics/svg_image.cc
@@ -923,7 +923,6 @@
DarkModeClassification SVGImage::CheckTypeSpecificConditionsForDarkMode(
const FloatRect& dest_rect,
DarkModeImageClassifier* classifier) {
- classifier->SetImageType(DarkModeImageClassifier::ImageType::kSvg);
return DarkModeClassification::kNotClassified;
}
diff --git a/third_party/blink/renderer/core/svg/graphics/svg_image_test.cc b/third_party/blink/renderer/core/svg/graphics/svg_image_test.cc
index 7b42c125..5af1a1d7 100644
--- a/third_party/blink/renderer/core/svg/graphics/svg_image_test.cc
+++ b/third_party/blink/renderer/core/svg/graphics/svg_image_test.cc
@@ -267,7 +267,6 @@
EXPECT_EQ(classifier()->ClassifyUsingDecisionTree(features),
DarkModeClassification::kApplyFilter);
EXPECT_FALSE(features.is_colorful);
- EXPECT_TRUE(features.is_svg);
EXPECT_NEAR(0.0625f, features.color_buckets_ratio, kEpsilon);
EXPECT_NEAR(0.968889f, features.transparency_ratio, kEpsilon);
EXPECT_NEAR(0.02f, features.background_ratio, kEpsilon);
@@ -290,7 +289,6 @@
EXPECT_EQ(classifier()->ClassifyUsingDecisionTree(features),
DarkModeClassification::kApplyFilter);
EXPECT_TRUE(features.is_colorful);
- EXPECT_TRUE(features.is_svg);
EXPECT_NEAR(0.00170898f, features.color_buckets_ratio, kEpsilon);
EXPECT_NEAR(0.0f, features.transparency_ratio, kEpsilon);
EXPECT_NEAR(0.0f, features.background_ratio, kEpsilon);
@@ -312,7 +310,6 @@
EXPECT_EQ(classifier()->ClassifyUsingDecisionTree(features),
DarkModeClassification::kApplyFilter);
EXPECT_TRUE(features.is_colorful);
- EXPECT_TRUE(features.is_svg);
EXPECT_NEAR(0.000244141f, features.color_buckets_ratio, kEpsilon);
EXPECT_NEAR(0.777778f, features.transparency_ratio, kEpsilon);
EXPECT_NEAR(0.0f, features.background_ratio, kEpsilon);
@@ -334,7 +331,6 @@
EXPECT_EQ(classifier()->ClassifyUsingDecisionTree(features),
DarkModeClassification::kApplyFilter);
EXPECT_FALSE(features.is_colorful);
- EXPECT_TRUE(features.is_svg);
EXPECT_NEAR(0.0625f, features.color_buckets_ratio, kEpsilon);
EXPECT_NEAR(0.888889f, features.transparency_ratio, kEpsilon);
EXPECT_NEAR(0.11f, features.background_ratio, kEpsilon);
diff --git a/third_party/blink/renderer/platform/graphics/bitmap_image.cc b/third_party/blink/renderer/platform/graphics/bitmap_image.cc
index 882aa8c..f254483 100644
--- a/third_party/blink/renderer/platform/graphics/bitmap_image.cc
+++ b/third_party/blink/renderer/platform/graphics/bitmap_image.cc
@@ -458,8 +458,6 @@
return DarkModeClassification::kDoNotApplyFilter;
}
- classifier->SetImageType(DarkModeImageClassifier::ImageType::kBitmap);
-
return DarkModeClassification::kNotClassified;
}
diff --git a/third_party/blink/renderer/platform/graphics/dark_mode_image_classifier.cc b/third_party/blink/renderer/platform/graphics/dark_mode_image_classifier.cc
index 918685b..8bc35d5 100644
--- a/third_party/blink/renderer/platform/graphics/dark_mode_image_classifier.cc
+++ b/third_party/blink/renderer/platform/graphics/dark_mode_image_classifier.cc
@@ -216,7 +216,6 @@
ComputeColorBucketsRatio(sampled_pixels, color_mode);
features.transparency_ratio = transparency_ratio;
features.background_ratio = background_ratio;
- features.is_svg = image_type_ == ImageType::kSvg;
return features;
}
@@ -268,8 +267,8 @@
// within float array. Do not change the order here without also changing
// the neural network code!
float feature_list[]{features.is_colorful, features.color_buckets_ratio,
- features.transparency_ratio, features.background_ratio,
- features.is_svg};
+ features.transparency_ratio,
+ features.background_ratio};
darkmode_tfnative_model::Inference(feature_list, &nn_out, &nn_temp);
result = nn_out > 0 ? DarkModeClassification::kApplyFilter
diff --git a/third_party/blink/renderer/platform/graphics/dark_mode_image_classifier.h b/third_party/blink/renderer/platform/graphics/dark_mode_image_classifier.h
index 5d03164..7c47da94 100644
--- a/third_party/blink/renderer/platform/graphics/dark_mode_image_classifier.h
+++ b/third_party/blink/renderer/platform/graphics/dark_mode_image_classifier.h
@@ -29,9 +29,6 @@
// True if the image is in color, false if it is grayscale.
bool is_colorful;
- // Whether the image was originally an SVG.
- bool is_svg;
-
// Ratio of the number of bucketed colors used in the image to all
// possibilities. Color buckets are represented with 4 bits per color
// channel.
@@ -39,8 +36,8 @@
// How much of the image is transparent or considered part of the
// background.
- float background_ratio;
float transparency_ratio;
+ float background_ratio;
};
DarkModeImageClassifier();
diff --git a/third_party/blink/renderer/platform/graphics/dark_mode_image_classifier_test.cc b/third_party/blink/renderer/platform/graphics/dark_mode_image_classifier_test.cc
index c25a149..1908bc7 100644
--- a/third_party/blink/renderer/platform/graphics/dark_mode_image_classifier_test.cc
+++ b/third_party/blink/renderer/platform/graphics/dark_mode_image_classifier_test.cc
@@ -98,7 +98,6 @@
EXPECT_EQ(image_classifier()->ClassifyUsingDecisionTree(features),
DarkModeClassification::kApplyFilter);
EXPECT_FALSE(features.is_colorful);
- EXPECT_FALSE(features.is_svg);
EXPECT_NEAR(0.1875f, features.color_buckets_ratio, kEpsilon);
EXPECT_NEAR(0.0f, features.transparency_ratio, kEpsilon);
EXPECT_NEAR(0.0f, features.background_ratio, kEpsilon);
@@ -119,7 +118,6 @@
EXPECT_EQ(image_classifier()->ClassifyUsingDecisionTree(features),
DarkModeClassification::kNotClassified);
EXPECT_FALSE(features.is_colorful);
- EXPECT_FALSE(features.is_svg);
EXPECT_NEAR(0.8125f, features.color_buckets_ratio, kEpsilon);
EXPECT_NEAR(0.446667f, features.transparency_ratio, kEpsilon);
EXPECT_NEAR(0.03f, features.background_ratio, kEpsilon);
@@ -140,7 +138,6 @@
EXPECT_EQ(image_classifier()->ClassifyUsingDecisionTree(features),
DarkModeClassification::kApplyFilter);
EXPECT_TRUE(features.is_colorful);
- EXPECT_FALSE(features.is_svg);
EXPECT_NEAR(0.0002441f, features.color_buckets_ratio, kEpsilon);
EXPECT_NEAR(0.542092f, features.transparency_ratio, kEpsilon);
EXPECT_NEAR(0.1500000f, features.background_ratio, kEpsilon);
@@ -161,7 +158,6 @@
EXPECT_EQ(image_classifier()->ClassifyUsingDecisionTree(features),
DarkModeClassification::kDoNotApplyFilter);
EXPECT_TRUE(features.is_colorful);
- EXPECT_FALSE(features.is_svg);
EXPECT_NEAR(0.032959f, features.color_buckets_ratio, kEpsilon);
EXPECT_NEAR(0.0f, features.transparency_ratio, kEpsilon);
EXPECT_NEAR(0.0f, features.background_ratio, kEpsilon);
@@ -182,7 +178,6 @@
EXPECT_EQ(image_classifier()->ClassifyUsingDecisionTree(features),
DarkModeClassification::kApplyFilter);
EXPECT_TRUE(features.is_colorful);
- EXPECT_FALSE(features.is_svg);
EXPECT_NEAR(0.0151367f, features.color_buckets_ratio, kEpsilon);
EXPECT_NEAR(0.0f, features.transparency_ratio, kEpsilon);
EXPECT_NEAR(0.0f, features.background_ratio, kEpsilon);