From 289c9accad0c124dac358be8194a5bfba25d1315 Mon Sep 17 00:00:00 2001 From: MykhailoTrushch Date: Fri, 5 Sep 2025 01:16:03 +0200 Subject: [PATCH] Added fc4 auto white balance dnn sample --- samples/data/castle.jpg | Bin 0 -> 165669 bytes samples/dnn/auto_white_balance.cpp | 265 +++++++++++++++++++++++++++++ samples/dnn/auto_white_balance.py | 202 ++++++++++++++++++++++ samples/dnn/models.yml | 14 ++ 4 files changed, 481 insertions(+) create mode 100644 samples/data/castle.jpg create mode 100644 samples/dnn/auto_white_balance.cpp create mode 100644 samples/dnn/auto_white_balance.py diff --git a/samples/data/castle.jpg b/samples/data/castle.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c7dd1139e27285ddc38ab1eff3f9e83bbdb0a6f0 GIT binary patch literal 165669 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

d9D?T~ONp+B(&%-&kfe_BIqn95w0fj6FqZ)#Ot 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 f?hb!C7||&tF3ITm%zM&ohL8W*wB{)r literal 0 HcmV?d00001 diff --git a/samples/dnn/auto_white_balance.cpp b/samples/dnn/auto_white_balance.cpp new file mode 100644 index 0000000000..c08e103acd --- /dev/null +++ b/samples/dnn/auto_white_balance.cpp @@ -0,0 +1,265 @@ +// This file is part of OpenCV project. +// It is subject to the license terms in the LICENSE file found in the top-level +// directory of this distribution and at http://opencv.org/license.html. + +/* +Auto white balance using FC4: https://github.com/yuanming-hu/fc4 + +Color constancy is a method to make colors of objects render correctly on a photo. +White balance aims to make white objects appear white on an image and not a shade of any +other color, independent of the actual light setting. White balance correction creates +a neutral looking coloring of the objects, and generally makes colors look more similar +to their 'true' colors under different light conditions. + +Given an RGB image, the FC4 model predicts scene illuminant (R,G,B). We then apply +the illuminant to the image, applying the correction in the linear RGB space. +The transformation between linear and sRGB spaces is done as described in the sRGB standard, +which is a nonlinear Gamma correction with exponent 2.4 and extra handling of very small values. +This sample is written for 8bit images. The FC4 model accepts RGB images with applied Gamma scaling. + +The training of the FC4 model was done on the Gehler-Shi dataset. The dataset includes +568 images and ground truth corrections, as well as ground truth illuminants. The linear +RGB images from the dataset were used with Gamma correction of 2.2 applied. + +The model is a pretrained fold 0 of a training pipeline on the Gehler-Shi dataset, from the PyTorch +implementation of the FC4 algorithm by Mateo Rizzo. The model was converted from a .pth file to onnx +using torch.onnx.export. The model can be downloaded in the following link: +https://raw.githubusercontent.com/MykhailoTrushch/opencv/d6ab21353a87e4c527e38e464384c7ee78e96e22/samples/dnn/models/fc4_fold_0.onnx + +Copyright (c) 2017 Yuanming Hu, Baoyuan Wang, Stephen Lin +Copyright (c) 2021 Matteo Rizzo + +Licensed under the MIT license. + +References: + +Yuanming Hu, Baoyuan Wang, and Stephen Lin. “FC⁴: Fully Convolutional Color +Constancy with Confidence-Weighted Pooling.” CVPR, 2017, pp. 4085–4094. + +Implementations of FC4: +https://github.com/yuanming-hu/fc4/ +https://github.com/matteo-rizzo/fc4-pytorch + +Lilong Shi and Brian Funt, "Re-processed Version of the Gehler Color Constancy Dataset of 568 Images," +accessed from http://www.cs.sfu.ca/~colour/data/ + +“IEC 61966-2-1:1999 – Multimedia Systems and Equipment – Colour Measurement and Management – Part 2-1: Colour Management – Default RGB Colour Space – sRGB.” IEC Standard, 1999. +*/ + +#include +#include +#include +#include + +#include "common.hpp" + +using namespace cv; +using namespace cv::dnn; +using namespace std; + +const string param_keys = + "{ help h | | Print help message }" + "{ @alias | fc4 | Model alias from models.yml " + "(optional) }" + "{ zoo | ../dnn/models.yml | Path to models.yml file " + "(optional) }" + "{ input i | castle.png | Path to input image }"; +; + +const string backend_keys = + format("{ backend | default | Choose one of computation backends: " + "default: automatically (by default), " + "openvino: Intel's Deep Learning Inference Engine " + "(https://software.intel.com/openvino-toolkit), " + "opencv: OpenCV implementation, " + "vkcom: VKCOM, " + "cuda: CUDA, " + "webnn: WebNN }"); + +const string target_keys = + format("{ target | cpu | Choose one of target computation devices: " + "cpu: CPU target (by default), " + "opencl: OpenCL, " + "opencl_fp16: OpenCL fp16 (half-float precision), " + "vpu: VPU, " + "vulkan: Vulkan, " + "cuda: CUDA, " + "cuda_fp16: CUDA fp16 (half-float preprocess) }"); + +// Normalization constant for 8bit values +const float NORMALIZE_FACTOR = 1.0f / 255.0f; + +// sRGB to linear conversion constants (or vice versa): +// SRGB_THRESHOLD / LINEAR_THRESHOLD: breakpoints between linear and gamma regions +// SRGB_SLOPE: slope of the linear segment near black +// SRGB_ALPHA: offset to ensure continuity at the threshold +// SRGB_EXP: gamma exponent +const float SRGB_THRESHOLD = 0.04045f; +const float SRGB_ALPHA = 0.055f; +const float SRGB_SLOPE = 12.92f; +const float SRGB_EXP = 2.4f; +const float LINEAR_THRESHOLD = 0.0031308f; +const float EPS = 1e-10f; + +static Mat srgbToLinear(const Mat &srgb32f) { + CV_Assert(srgb32f.type() == CV_32FC3); + const float a = SRGB_ALPHA; + + Mat y = srgb32f; + Mat mask_low; + compare(y, SRGB_THRESHOLD, mask_low, CMP_LE); + + Mat low = y / SRGB_SLOPE; + + Mat t = (y + a) / (1.0f + a); + Mat high; + pow(t, SRGB_EXP, high); + + Mat lin(y.size(), y.type(), Scalar(0, 0, 0)); + low.copyTo(lin, mask_low); + Mat mask_high; + bitwise_not(mask_low, mask_high); + high.copyTo(lin, mask_high); + + return lin; +} + +static Mat linearToSrgb(const Mat &lin32f) { + CV_Assert(lin32f.type() == CV_32FC3); + const float a = SRGB_ALPHA; + + Mat x = lin32f; + Mat mask_low; + compare(x, LINEAR_THRESHOLD, mask_low, CMP_LE); + Mat low = x * SRGB_SLOPE; + Mat powPart; + pow(x, 1.0 / SRGB_EXP, powPart); + Mat high = (1.0f + a) * powPart - a; + + Mat srgb(x.size(), x.type(), Scalar(0, 0, 0)); + low.copyTo(srgb, mask_low); + Mat mask_high; + bitwise_not(mask_low, mask_high); + high.copyTo(srgb, mask_high); + + return srgb; +} + +static Mat correct(const Mat &bgr8u, const Vec3f &illumRGB_linear) { + Mat f32; + bgr8u.convertTo(f32, CV_32F, NORMALIZE_FACTOR); + + Mat lin = srgbToLinear(f32); + + const float eR = std::max(illumRGB_linear[0], EPS); + const float eG = std::max(illumRGB_linear[1], EPS); + const float eB = std::max(illumRGB_linear[2], EPS); + + float s3 = std::sqrt(3.0f); + Scalar corr(eB * s3 + EPS, eG * s3 + EPS, eR * s3 + EPS); + + Mat corrected; + divide(lin, corr, corrected); + + std::vector ch; + split(corrected, ch); + double m0, m1, m2; + minMaxLoc(ch[0], nullptr, &m0); + minMaxLoc(ch[1], nullptr, &m1); + minMaxLoc(ch[2], nullptr, &m2); + float maxVal = static_cast(std::max({m0, m1, m2})) + EPS; + corrected /= maxVal; + min(corrected, 1.0, corrected); + max(corrected, 0.0, corrected); + + Mat srgb = linearToSrgb(corrected); + + Mat out; + srgb.convertTo(out, CV_8U, 255.0); + return out; +} + +static void annotate(Mat &img, const string &title) { + double fs = std::max(0.5, std::min(img.cols, img.rows) / 800.0); + int th = std::max(1, (int)std::round(fs * 2)); + putText(img, title, Point(10, 30), FONT_HERSHEY_SIMPLEX, fs, + Scalar(0, 255, 0), th); +} + +int main(int argc, char **argv) { + const string about = "FC4 Color Constancy (ONNX) sample.\n" + "Predicts scene illuminant and corrects the white " + "balance of the image.\n"; + + string keys = param_keys + backend_keys + target_keys; + + CommandLineParser parser(argc, argv, keys); + if (parser.has("help")) { + cout << about << endl; + parser.printMessage(); + return 0; + } + + string modelName = parser.get("@alias"); + string zooFile = samples::findFile(parser.get("zoo")); + keys += genPreprocArguments(modelName, zooFile); + parser = CommandLineParser(argc, argv, keys); + + float scale = parser.get("scale"); + Scalar mean = parser.get("mean"); + bool swapRB = parser.get("rgb"); + String backend = parser.get("backend"); + String target = parser.get("target"); + String sha1 = parser.get("sha1"); + string model = findModel(parser.get("model"), sha1); + string inputPath = findFile(parser.get("input")); + + if (model.empty()) { + cerr << "Model file not found\n"; + return -1; + } + + Net net; + try { + net = readNetFromONNX(model); + net.setPreferableBackend(getBackendID(backend)); + net.setPreferableTarget(getTargetID(target)); + } catch (const Exception &e) { + cerr << "Error loading model: " << e.what() << endl; + return -1; + } + Mat img = imread(inputPath, IMREAD_COLOR); + if (img.empty()) { + cerr << "Cannot load image: " << inputPath << endl; + return -1; + } + Mat blob; + blob = blobFromImage(img, scale, img.size(), mean, swapRB, /*crop=*/false, + /*type=*/CV_32F); + net.setInput(blob); + + Mat out; + try { + out = net.forward(); + } catch (const Exception &e) { + cerr << "Forward error: " << e.what() << endl; + return -1; + } + + const float *p = out.ptr(0); + CV_Assert(out.total() == 3); + Vec3f illum = Vec3f(p[0], p[1], p[2]); + + Mat corrected = correct(img, illum); + + Mat origVis = img.clone(); + Mat corrVis = corrected.clone(); + annotate(origVis, "Original"); + annotate(corrVis, "FC4-corrected"); + Mat stacked; + hconcat(origVis, corrVis, stacked); + imshow("Original and Corrected Images", stacked); + waitKey(0); + destroyAllWindows(); + return 0; +} diff --git a/samples/dnn/auto_white_balance.py b/samples/dnn/auto_white_balance.py new file mode 100644 index 0000000000..30ad1db5fc --- /dev/null +++ b/samples/dnn/auto_white_balance.py @@ -0,0 +1,202 @@ +#!/usr/bin/env python3 +# This file is part of OpenCV project. +# It is subject to the license terms in the LICENSE file found in the top-level +# directory of this distribution and at http://opencv.org/license.html. + +''' +Auto white balance using FC4: https://github.com/yuanming-hu/fc4 + +Color constancy is a method to make colors of objects render correctly on a photo. +White balance aims to make white objects appear white on an image and not a shade of any +other color, independent of the actual light setting. White balance correction creates +a neutral looking coloring of the objects, and generally makes colors look more similar +to their 'true' colors under different light conditions. + +Given an RGB image, the FC4 model predicts scene illuminant (R,G,B). We then apply +the illuminant to the image, applying the correction in the linear RGB space. +The transformation between linear and sRGB spaces is done as described in the sRGB standard, +which is a nonlinear Gamma correction with exponent 2.4 and extra handling of very small values. +This sample is written for 8bit images. The FC4 model accepts RGB images with applied Gamma scaling. + +The training of the FC4 model was done on the Gehler-Shi dataset. The dataset includes +568 images and ground truth corrections, as well as ground truth illuminants. The linear +RGB images from the dataset were used with Gamma correction of 2.2 applied. + +The model is a pretrained fold 0 of a training pipeline on the Gehler-Shi dataset, from the PyTorch +implementation of the FC4 algorithm by Mateo Rizzo. The model was converted from a .pth file to onnx +using torch.onnx.export. The model can be downloaded in the following link: +https://raw.githubusercontent.com/MykhailoTrushch/opencv/d6ab21353a87e4c527e38e464384c7ee78e96e22/samples/dnn/models/fc4_fold_0.onnx + +Copyright (c) 2017 Yuanming Hu, Baoyuan Wang, Stephen Lin +Copyright (c) 2021 Matteo Rizzo + +Licensed under the MIT license. + +References: + +Yuanming Hu, Baoyuan Wang, and Stephen Lin. “FC⁴: Fully Convolutional Color +Constancy with Confidence-Weighted Pooling.” CVPR, 2017, pp. 4085–4094. + +Implementations of FC4: +https://github.com/yuanming-hu/fc4/ +https://github.com/matteo-rizzo/fc4-pytorch + +Lilong Shi and Brian Funt, "Re-processed Version of the Gehler Color +Constancy Dataset of 568 Images," accessed from http://www.cs.sfu.ca/~colour/data/ + +“IEC 61966-2-1:1999 – Multimedia Systems and Equipment – Colour Measurement and Management – +Part 2-1: Colour Management – Default RGB Colour Space – sRGB.” IEC Standard, 1999. +''' + +import argparse +import sys +import numpy as np +import cv2 as cv + +from common import * + + +# Normalization constant for 8bit values +NORMALIZE_FACTOR = 1.0 / 255.0 + +# sRGB to linear conversion constants (or vice versa): +# SRGB_THRESHOLD / LINEAR_THRESHOLD: breakpoints between linear and gamma regions +# SRGB_SLOPE: slope of the linear segment near black +# SRGB_ALPHA: offset to ensure continuity at the threshold +# SRGB_EXP: gamma exponent +SRGB_THRESHOLD = 0.04045 +SRGB_ALPHA = 0.055 +SRGB_SLOPE = 12.92 +SRGB_EXP = 2.4 +LINEAR_THRESHOLD = 0.0031308 +EPS = 1e-10 + +def srgb_to_linear(rgb: np.ndarray) -> np.ndarray: + low = rgb / SRGB_SLOPE + high = np.power((rgb + SRGB_ALPHA) / (1.0 + SRGB_ALPHA), SRGB_EXP, dtype=np.float32) + return np.where(rgb <= SRGB_THRESHOLD, low, high).astype(np.float32) + +def linear_to_srgb(lin: np.ndarray) -> np.ndarray: + low = lin * SRGB_SLOPE + high = (1.0 + SRGB_ALPHA) * np.power(lin, 1.0 / SRGB_EXP, dtype=np.float32) - SRGB_ALPHA + return np.where(lin <= LINEAR_THRESHOLD, low, high).astype(np.float32) + +def correct(bgr8u: np.ndarray, illum_rgb_linear: np.ndarray) -> np.ndarray: + assert bgr8u.dtype == np.uint8 and bgr8u.ndim == 3 and bgr8u.shape[2] == 3 + + bgr = bgr8u.astype(np.float32) * NORMALIZE_FACTOR + lin = srgb_to_linear(bgr) + e_r = max(float(illum_rgb_linear[0]), EPS) + e_g = max(float(illum_rgb_linear[1]), EPS) + e_b = max(float(illum_rgb_linear[2]), EPS) + s3 = np.float32(np.sqrt(3.0)) + corr_bgr = np.array([e_b * s3 + EPS, + e_g * s3 + EPS, + e_r * s3 + EPS], + dtype=np.float32) + + corrected = lin / corr_bgr.reshape(1, 1, 3) + + max_val = float(corrected.max()) + EPS + corrected /= max_val + corrected = np.clip(corrected, 0.0, 1.0) + + srgb = linear_to_srgb(corrected) + + out_bgr8 = (srgb * 255.0 + 0.5).astype(np.uint8) + return out_bgr8 + +def annotate(img_bgr: np.ndarray, title: str) -> None: + fs = max(0.5, min(img_bgr.shape[1], img_bgr.shape[0]) / 800.0) + th = max(1, int(round(fs * 2))) + cv.putText(img_bgr, title, (10, 30), cv.FONT_HERSHEY_SIMPLEX, fs, (0,255,0), th) + +def get_args_parser(func_args): + backends = ("default", "openvino", "opencv", "vkcom", "cuda", "webnn") + targets = ("cpu", "opencl", "opencl_fp16", "ncs2_vpu", "hddl_vpu", "vulkan", + "cuda", "cuda_fp16") + + p = argparse.ArgumentParser(add_help=False) + p.add_argument('--zoo', + default=os.path.join(os.path.dirname(os.path.abspath(__file__)), 'models.yml'), + help='An optional path to file with preprocessing parameters.') + p.add_argument("--input", help="Path to input image", default="castle.png") + p.add_argument('--backend', default="default", type=str, choices=backends, + help="Choose one of computation backends: " + "default: automatically (by default), " + "openvino: Intel's Deep Learning Inference Engine (https://software.intel.com/openvino-toolkit), " + "opencv: OpenCV implementation, " + "vkcom: VKCOM, " + "cuda: CUDA, " + "webnn: WebNN") + p.add_argument('--target', default="cpu", type=str, choices=targets, + help="Choose one of target computation devices: " + "cpu: CPU target (by default), " + "opencl: OpenCL, " + "opencl_fp16: OpenCL fp16 (half-float precision), " + "ncs2_vpu: NCS2 VPU, " + "hddl_vpu: HDDL VPU, " + "vulkan: Vulkan, " + "cuda: CUDA, " + "cuda_fp16: CUDA fp16 (half-float preprocess)") + + args, _ = p.parse_known_args() + add_preproc_args(args.zoo, p, 'auto_white_balance', prefix="", alias="fc4") + p = argparse.ArgumentParser( + parents=[p], + description="FC4 Color Constancy (ONNX): " \ + "predicts illuminant and applies white balance.", + formatter_class=argparse.ArgumentDefaultsHelpFormatter + ) + return p.parse_args(func_args) + + + +def main(func_args=None): + args = get_args_parser(func_args) + args.model = findModel(args.model, args.sha1) + + try: + net = cv.dnn.readNetFromONNX(args.model) + net.setPreferableBackend(get_backend_id(args.backend)) + net.setPreferableTarget(get_target_id(args.target)) + except cv.error as e: + print(f"Error loading model: {e}", file=sys.stderr) + sys.exit(1) + + img = cv.imread(findFile(args.input), cv.IMREAD_COLOR) + if img is None: + print(f"Cannot load image: {args.input}", file=sys.stderr) + sys.exit(1) + + blob = cv.dnn.blobFromImage( + img, scalefactor=args.scale, size=(img.shape[1], img.shape[0]), + mean=args.mean, swapRB=args.rgb, crop=False, ddepth=cv.CV_32F + ) + net.setInput(blob) + + try: + out = net.forward() + except cv.error as e: + print(f"Forward error: {e}", file=sys.stderr) + sys.exit(1) + + illum = out.astype(np.float32).reshape(-1) + if out.size != 3: + print("Error: model output of size not equal to 3 (should output 3 illuminants in RGB order)") + sys.exit(-1) + + corrected = correct(img, illum) + + orig_vis = img.copy() + corr_vis = corrected.copy() + annotate(orig_vis, "Original") + annotate(corr_vis, "FC4-corrected") + stacked = np.hstack([orig_vis, corr_vis]) + cv.imshow("Original and Corrected Images", stacked) + cv.waitKey(0) + cv.destroyAllWindows() + + +if __name__ == "__main__": + main() diff --git a/samples/dnn/models.yml b/samples/dnn/models.yml index f5f1a33c42..071b610561 100644 --- a/samples/dnn/models.yml +++ b/samples/dnn/models.yml @@ -538,3 +538,17 @@ seemoredetails: height: 512 sample: "super_resolution" input: true + +################################################################################ +# Auto white balance models. +################################################################################ + +fc4: + load_info: + url: "https://raw.githubusercontent.com/MykhailoTrushch/fc4-models/main/fc4_fold_0.onnx" + sha1: "e8a9a65ec0baaae3e4c97b34274a620eb362e905" + model: "fc4_fold_0.onnx" + sample: "auto_white_balance" + scale: 0.00392156862 + rgb: true + mean: 0