From c62709896f3e770377daa83ff207152f33856271 Mon Sep 17 00:00:00 2001 From: Dmitry Ilyin <6576495+widgetii@users.noreply.github.com> Date: Thu, 22 Oct 2026 21:52:17 +0300 Subject: [PATCH 1/2] cpu-models: v2, person.qnet and the drum model for meter reading majestic's engine now reads one blob format for every network it runs, so the person detector ships as person.qnet, the same model in the new format, and drum.qnet joins it: the classifier majestic's meter reading reads each drum of a water, gas or electricity meter with. Both are built and checked bit for bit against the reference on host and ARMv7 by that repository's release workflow. A majestic that still loads person.pdnet finds no model here, so this lands in the same nightly as the majestic that reads person.qnet. --- general/package/cpu-models/Config.in | 14 +++++++++----- general/package/cpu-models/cpu-models.hash | 5 +++-- general/package/cpu-models/cpu-models.mk | 11 ++++++----- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/general/package/cpu-models/Config.in b/general/package/cpu-models/Config.in index af0630ca9..3fffa56cd 100644 --- a/general/package/cpu-models/Config.in +++ b/general/package/cpu-models/Config.in @@ -2,10 +2,14 @@ config BR2_PACKAGE_CPU_MODELS bool "cpu-models" default n help - The person detector majestic's object detection runs on the CPU of - cameras without an NPU (HiSilicon/Goke parts with the IVE motion - backend): an int8 network majestic's own engine loads from - /usr/share/majestic/person.pdnet, with the thresholds of its three - presets beside it in person.json. 84 KB. MIT. + The int8 networks majestic's own engine runs on the CPU, in + /usr/share/majestic: + - person.qnet, the person detector its object detection runs on + cameras without an NPU (HiSilicon/Goke parts with the IVE motion + backend), with the thresholds of its three presets beside it in + person.json; + - drum.qnet, which reads the drums of a water, gas or electricity + meter for its meter reading. + 134 KB together. MIT. https://github.com/OpenIPC/cpu-models diff --git a/general/package/cpu-models/cpu-models.hash b/general/package/cpu-models/cpu-models.hash index d5f007014..43969a3a6 100644 --- a/general/package/cpu-models/cpu-models.hash +++ b/general/package/cpu-models/cpu-models.hash @@ -1,3 +1,4 @@ -# From https://github.com/OpenIPC/cpu-models/releases/download/v1/SHA256SUMS -sha256 cc6c16ca4a9c927a3b86ea75d65c2081991a9e7d91a83da2f66a15f8252b426e person.pdnet +# From https://github.com/OpenIPC/cpu-models/releases/download/v2/SHA256SUMS +sha256 e09530b3a91eb7bf494d96e0a7896326e27ac962e6703ea993d7faa24ace25c6 person.qnet sha256 6a95be78d14b4d98935b297e6835327e723f29d4f422cc339008b59916281464 person.json +sha256 4e2056686091c067ef31401e32ca9bc136c001fae37f9235e9042125e8d8c8ed drum.qnet diff --git a/general/package/cpu-models/cpu-models.mk b/general/package/cpu-models/cpu-models.mk index 21c0ac43e..8fce1f505 100644 --- a/general/package/cpu-models/cpu-models.mk +++ b/general/package/cpu-models/cpu-models.mk @@ -7,12 +7,13 @@ # Built and published by that repository's release workflow, never by hand: # each asset traces to the commit and run that built it, and the release # checked the engine against the model's reference arithmetic first. -CPU_MODELS_VERSION = v1 +CPU_MODELS_VERSION = v2 CPU_MODELS_SITE = https://github.com/OpenIPC/cpu-models/releases/download/$(CPU_MODELS_VERSION) -CPU_MODELS_SOURCE = person.pdnet +CPU_MODELS_SOURCE = person.qnet # The thresholds behind majestic's object-detection presets for this model, -# read beside it. -CPU_MODELS_EXTRA_DOWNLOADS = person.json +# read beside it; and the drum model majestic's meter reading classifies +# each drum of a utility meter with. +CPU_MODELS_EXTRA_DOWNLOADS = person.json drum.qnet CPU_MODELS_LICENSE = MIT define CPU_MODELS_EXTRACT_CMDS @@ -22,7 +23,7 @@ endef define CPU_MODELS_INSTALL_TARGET_CMDS $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/share/majestic $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/share/majestic \ - $(@D)/person.pdnet $(@D)/person.json + $(@D)/person.qnet $(@D)/person.json $(@D)/drum.qnet endef $(eval $(generic-package)) From b268d17301080ad72e5b5722d7e0a5586c657db7 Mon Sep 17 00:00:00 2001 From: Dmitry Ilyin <6576495+widgetii@users.noreply.github.com> Date: Thu, 22 Oct 2026 22:28:34 +0300 Subject: [PATCH 2/2] cpu-models: drop v1's person.pdnet from a reused target --- general/package/cpu-models/cpu-models.mk | 2 ++ 1 file changed, 2 insertions(+) diff --git a/general/package/cpu-models/cpu-models.mk b/general/package/cpu-models/cpu-models.mk index 8fce1f505..188128e7e 100644 --- a/general/package/cpu-models/cpu-models.mk +++ b/general/package/cpu-models/cpu-models.mk @@ -21,6 +21,8 @@ define CPU_MODELS_EXTRACT_CMDS endef define CPU_MODELS_INSTALL_TARGET_CMDS + # v1's blob, which the engine no longer reads, out of a reused target + rm -f $(TARGET_DIR)/usr/share/majestic/person.pdnet $(INSTALL) -m 755 -d $(TARGET_DIR)/usr/share/majestic $(INSTALL) -m 644 -t $(TARGET_DIR)/usr/share/majestic \ $(@D)/person.qnet $(@D)/person.json $(@D)/drum.qnet