From patchwork Tue Jan 27 11:59:55 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Plowman X-Patchwork-Id: 25970 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id C80DEC3200 for ; Tue, 27 Jan 2026 12:06:09 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id B561F61FCE; Tue, 27 Jan 2026 13:06:08 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=raspberrypi.com header.i=@raspberrypi.com header.b="kiQqO7cN"; dkim-atps=neutral Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com [IPv6:2a00:1450:4864:20::434]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 55D3B61FBF for ; Tue, 27 Jan 2026 13:06:07 +0100 (CET) Received: by mail-wr1-x434.google.com with SMTP id ffacd0b85a97d-42fb6ce71c7so5195884f8f.1 for ; Tue, 27 Jan 2026 04:06:07 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raspberrypi.com; s=google; t=1769515566; x=1770120366; darn=lists.libcamera.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=r8UegEvx3+2h1xob/Zt2SRwwzZhyTgiAemEB36EJvug=; b=kiQqO7cN41Fmq/FPatOqrfbhIPASvoyYbIR2IcK7T4iPZ7zkh7RyQNaAC39QLBasU7 OmvHAit1ma2qHEUImU6Kf7B/Z4xM9Ne8UnS5++zNJ1ajCCX23O0ULzwY/CcabSRp9Tqx KD7aHs0Pd4OQ7xpSt/igyJ45vTL0WYRN0KcvMsc1DdlZE3AbRS4EEMRJuDfBN7qrp7qp q6L0EOEzJKmyKpjegrbodGFdLx1rWZc9uIFf7Z2y3VajKpmWA+tVd1YVstGPgHQB4syA s+FFT0lOX29sbFucWo9vjmyuvUBavKJ7BR8YdhPnyLEqM42uaaDI4ien/e/1rIcH1LNq hwjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769515566; x=1770120366; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=r8UegEvx3+2h1xob/Zt2SRwwzZhyTgiAemEB36EJvug=; b=u4KW8dcrhUGYlMJKpSN/xIV3Z4Azqb1eqr0SXXakKqHri2p+vvP26D/WqVROnajxNE 1KDsrBWHUAoXAAzpxNYh7TceNlfwRP0MY7lYYAwmLvcG+tsjkMMJf0uftLapi2wZvHg2 yW2+TpDwSqVD2YwEAhbbZgQrfQqPeIpo2PSlFaTAfHF3BvRDtbPW+VJeRkeZ30QcOG7h KZgg7iZpam0dh0eSaF/gtE/cb06q3xAoAa3PX8iDii+co7gY37LekDYoR0XZDf/0n9I1 oJr+U5Nz/5EnstFL2cTiquG9FQvzOmFPwId8LxP1XGY2Y2BdI5hbwfkYM5ima66Znk3j TeRA== X-Gm-Message-State: AOJu0YxvuLw+VE/wLqU3RrYMGfTFqT5iXSnvsU/0KerEjqq13/dgVCow lVS8FVmP/BAFRuGPOXT1kBtpxkLrXXAfYsTeetkgvydvWGLiQK22g/1WKqoEovzkauJGXsi4x9v 04Vkh X-Gm-Gg: AZuq6aLHkzOI7byGiWlFaKvyUPgkFsNkhs66nJaDubOUc7O/LZ2yY4inFHYpGB3eIEX O4Ril9LRC8jEpLfx6ogEJJraj3uf1THhallUNEuk4AzuuKZo/hko+pvVmNkHidiXniS8cl1+Sdk kFmXhcp5yiAR7IDTRmOCvtcE40lXRK+6veeFwP1DSobpJd1qyEb3LJl8Obrht+B5mo1DRFaVYrI ZU1vjW4+mYGfDR+zLM+GdVAVX49XsJ9BeLPiJZabt+NkfZjXjKmI/KosGddkrXvNKv4wjooKexf dyecYfxdkPk/KTGa+TXckK+RzbJiEqHvVLPOXTDST4oJixdNnw2JWpMlbYfnbXCFr/vy7hcKNF+ H8w73A2xLX8p7U3loPBXe5Rymrqy3A/5coes18P9shW5p0BmlvQyTRBmgLQC/EDNebwt3Y/W4lh lvXuGkREgAXKLSkXWW3grUrotE/NjT8D6DkBLqKbNoUbLwseUFy8uTeXeJq1cvqTF6g5WBrHBel CaIvaXIyResiJLvekI3oLv32Y9W9w== X-Received: by 2002:a05:6000:26ce:b0:430:b100:f591 with SMTP id ffacd0b85a97d-435dd0649c9mr2191565f8f.28.1769515566413; Tue, 27 Jan 2026 04:06:06 -0800 (PST) Received: from davidp-pi5.pitowers.org ([2a00:1098:3142:1f:88ea:c658:5b20:5e46]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-435b1c30293sm38221267f8f.19.2026.01.27.04.06.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Jan 2026 04:06:05 -0800 (PST) From: David Plowman To: libcamera-devel@lists.libcamera.org Cc: David Plowman Subject: [PATCH v5 0/4] Raspberry Pi AWB using neural networks Date: Tue, 27 Jan 2026 11:59:55 +0000 Message-ID: <20260127120604.6560-1-david.plowman@raspberrypi.com> X-Mailer: git-send-email 2.47.3 MIME-Version: 1.0 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" Hi everyone Hopefully a fifth and final version! The only change here is that there is an extra comment at the top of awb_nn.cpp giving instructions on where to find the model definitions and source code, the full datasets used for training the models, and instructions on how to capture your own images and re-train everything. Thanks David Peter Bailey (4): ipa: rpi: controller: awb: Separate Bayesian AWB into AwbBayes ipa: rpi: controller: awb: Add Neural Network AWB ipa: rpi: controller: Ignore algorithms that are not enabled ipa: rpi: pisp: vc4: Update tuning files for new AWB meson_options.txt | 5 + src/ipa/rpi/controller/controller.cpp | 18 + src/ipa/rpi/controller/meson.build | 10 + src/ipa/rpi/controller/rpi/awb.cpp | 409 ++--------------- src/ipa/rpi/controller/rpi/awb.h | 99 ++-- src/ipa/rpi/controller/rpi/awb_bayes.cpp | 444 ++++++++++++++++++ src/ipa/rpi/controller/rpi/awb_nn.cpp | 456 +++++++++++++++++++ src/ipa/rpi/pisp/data/imx219.json | 65 +++ src/ipa/rpi/pisp/data/imx296.json | 64 +++ src/ipa/rpi/pisp/data/imx296_16mm.json | 64 +++ src/ipa/rpi/pisp/data/imx296_6mm.json | 64 +++ src/ipa/rpi/pisp/data/imx477.json | 65 +++ src/ipa/rpi/pisp/data/imx477_16mm.json | 65 +++ src/ipa/rpi/pisp/data/imx477_6mm.json | 65 +++ src/ipa/rpi/pisp/data/imx477_scientific.json | 79 ++++ src/ipa/rpi/pisp/data/imx708.json | 64 +++ src/ipa/rpi/pisp/data/imx708_wide.json | 64 +++ src/ipa/rpi/pisp/data/ov5647.json | 65 +++ src/ipa/rpi/vc4/data/imx219.json | 66 +++ src/ipa/rpi/vc4/data/imx296.json | 66 +++ src/ipa/rpi/vc4/data/imx477.json | 71 +++ src/ipa/rpi/vc4/data/imx708.json | 74 +++ src/ipa/rpi/vc4/data/imx708_wide.json | 64 +++ src/ipa/rpi/vc4/data/ov5647.json | 66 +++ 24 files changed, 2152 insertions(+), 420 deletions(-) create mode 100644 src/ipa/rpi/controller/rpi/awb_bayes.cpp create mode 100644 src/ipa/rpi/controller/rpi/awb_nn.cpp