Skip to content

Releases: BennoBaer-dev/suslik

suslik 0.1.1.010

Choose a tag to compare

@BennoBaer-dev BennoBaer-dev released this 04 Oct 19:00

New face recognition. A name is now confirmed by votes: every face that passes all filters
and matches a known person with a score of at least 0.40 counts as one vote, and three
votes confirm the name (setting stapel_stimmen). When a face reaches 0.375 for a person
who is not confirmed yet, a door opens and the next 20 frames (setting tuer_fenster) are
checked one by one instead of every x-th frame; another hit inside the window keeps the
door open. The number of persons now comes from Frigate (overlapping person events on the
same camera), and the analysis of an event ends early once that many different persons are
confirmed and the door is shut. If the count cannot be read, the event is analysed to the
end of the clip and the log shows a WARNING; if more different persons are recognised than
Frigate reported, the verdict keeps the ones with the most votes (also a WARNING). Two
face-quality checks and a minimum recognition norm (factory value 18.5; a stored 0, the old
factory value, is raised once at startup) now filter faces before recognition, and the
enrollment and unknown-person pools only receive faces that passed every filter. The check
for silently damaged clips only counts messages from reading and decoding the video, summed
over all decoder runs of an event.

Fixes a silent recognition degradation after worker restarts (pose compiled-model drift):
the compiled-model probe now runs on all five hardware variants (one shared mechanism; no
engine is unguarded anymore), a deviation in a stage that filters the face cascade is fatal
(one fresh retry, then a loud stop visible in /health) instead of a hint, model builds at
worker start are serialized so the image path and the start proof never race the first
geometry build (the root cause), the failure-series shot no longer endlessly replaces a
worker that stopped itself over a compiled-model deviation, and the calibration mark is
only ever written by the first start of an installation. Measured bit-stable across four
worker starts on cpu and cuda.

rocm: not load-tested before this release (no AMD test machine); a field installation last confirmed this variant on 0.1.0.511.

Known issues, accepted for this release:

  • gpu (Intel): in both load tests a GPU hang on 4K clips restarted the worker. After the restart, /health no longer reported the number of running analysis threads (worker.straenge_laufend). All test events were still analysed.
  • An internal source check (tools/deckung_pruefen.py) is red: one test probe does not name every hardware kind, and the check counts more users of a shared list than its expected range allows.

v0.1.0.545

Choose a tag to compare

@BennoBaer-dev BennoBaer-dev released this 21 Sep 19:48

This release bundles 0.1.0.544, which was built but never went out.

  • When the worker's compute context dies, the program notices within seconds instead of staying blind for up to 40 minutes. Failed catch-up analyses now count too, and the first failure probes the worker right away.
  • Catch-up also runs on a busy installation, so a failed event gets its retry without waiting for a quiet moment.
  • On small cards the analysis budget is measured on your card instead of read off a table. The worker no longer quits as a precaution when memory gets tight, and events go back into the queue instead of being lost.
  • New setting vorrang decides whether recognition or the live watchers get the card when it cannot carry both. The factory value is recognition.
  • Finnish: native-speaker review with 152 corrections. Thanks to @sla004 (discussion #1).

The GPU hang itself (the host's Intel graphics driver under load) still happens. This version notices it faster and recovers.

Also includes small fixes.

v0.1.0.543

Choose a tag to compare

@BennoBaer-dev BennoBaer-dev released this 20 Sep 21:15

Two fixes:

  • The card-memory reserve set under Advanced (worker_vram_reserve_mb) now reaches the worker process. Until now its runtime guards always measured against the automatic value. Thanks to @Pranz187 for the report (#32).
  • After a GPU hang on the host, recognition could keep failing for up to an hour while /health still reported OK. Three failed analyses in a row now pull up a fresh worker process, and /health reports red until an analysis succeeds again.

Note for Intel iGPU users: the hang itself comes from the host's i915 driver under sustained load; newer host kernels behave better there. The program now recovers on its own either way.

Also includes small fixes.

0.1.0.542

Choose a tag to compare

@BennoBaer-dev BennoBaer-dev released this 18 Sep 16:32
  • New: rename a person. The pencil next to the name on "Known people". If the new name is already taken (ignoring case), the dialog says so instead of creating a duplicate.
  • New: the interface is now also available in Finnish. Machine translated for a start; corrections from native speakers are very welcome.
  • The cpu image now really engages its OpenVINO CPU runtime. In 0.1.0.541-cpu the provider silently failed to bind in the service process. Judgments are unchanged and speed is about the same on my test hardware; the point is that the runtime now binds, is measurable, and two new release checks make sure a silent fallback like this cannot ship unnoticed again.

All five images are published with this release: gpu, cpu, cuda, gpu-legacy and rocm, and every latest tag points to it. One version for all again.

Feedback is very welcome, positive or negative, by mail to suslik_dev@posteo.de or here on GitHub. If my program is useful to you, I would be happy about a star.

0.1.0.541

Choose a tag to compare

@BennoBaer-dev BennoBaer-dev released this 17 Sep 19:22

Test version — for field testing, not a general update.

  • The recognition core has been rebuilt. All analysis stages now run on the GPU as one pipeline. Analysis is significantly faster than 0.1.0.526.
  • New: a per-event analysis budget, spread evenly over the clip. The factory default depends on the variant (Advanced, 0 = off).

Four images are published with this release: gpu, cuda, gpu-legacy and rocm. The cpu image is not. In this build its OpenVINO CPU runtime does not engage, so it would be larger than 0.1.0.526 without being faster. latest-cpu therefore stays on 0.1.0.526, and a fixed cpu build follows as its own release.

Feedback is very welcome, positive or negative, by mail to suslik_dev@posteo.de or here on GitHub. If my program is useful to you, I would be happy about a star.

0.1.0.537

Choose a tag to compare

@BennoBaer-dev BennoBaer-dev released this 16 Sep 20:28

Test release — for field testing, not a general update.

  • Complete rebuild of the analysis worker: 3-5x faster in our tests, depending on hardware.
  • The learning run is brand new. Please test it and report anything that looks wrong.

The cuda and gpu images are published with this release. The cpu, gpu-legacy and rocm images are still being checked and will follow shortly.

Feedback is very welcome, positive or negative, by mail to suslik_dev@posteo.de or here on GitHub. If my program is useful to you, I would be happy about a star.

v0.1.0.526

Choose a tag to compare

@BennoBaer-dev BennoBaer-dev released this 10 Sep 20:16

0.1.0.526

A test release. The learning run is new: it was rebuilt from the measurement core
up and harmonised, so one quality sieve with the same rules now decides
everywhere, instead of a learning path that judged pictures by a yardstick of its
own. Please test it and report anything that looks wrong.

Bundles the internal steps 0.1.0.512 to 0.1.0.525. Everything below ships for all
five variants for the first time in this release.

  • One sieve, one set of bars. The learning run sieves with the same axes as
    the recognition side, per camera, out of the Face catalog register: detection
    score, face size, edge length, impression, recognisability, head pose and the
    feature norm. The old global quality bars and their page are gone. Every screen
    that comes after a run (group view, picture check, ranking, suggestions,
    unknown pool) asks the same register now, so a picture your run kept is no
    longer thrown away by the next screen.
  • A one-click check on any pass. The button on a pass runs a small learning
    run: it fetches the clips, harvests the frames, sieves them with the camera's
    register, and only then asks which of the surviving faces belong to the person
    you clicked. It offers the best pictures. What you tick becomes a reference,
    the rest is thrown away. You can cancel it while it runs, and a second click
    queues up instead of competing for the same analysis slots.
  • The suggested pictures are not tuned yet. This release moved the decision
    onto the new quality scale, it did not recalibrate the numbers behind it.
    Better: look for yourself and pick the faces that look best to you.
  • Presence page: white means one thing only, that the service was not running
    in that quarter hour. Quarter hours in which it ran are green. An event that
    stayed unanalysed shows as a small clipped corner on the green tile with the
    counts in the tooltip, and a retry that finally works takes back its own gap.
  • A learning run measures the feature norm once, in a bundled step, instead
    of building a recognition session inside every harvest job. Same pixels, same
    bars, same decisions. What changes is what a run costs: the analysis slots stay
    light instead of each of them being able to grow into a 2.7 GB session.
  • Log and switch polish. With Frigate's own face recognition switched off,
    the automatic export to Frigate now stays idle and says so once, instead of
    writing a failure line after every successful adoption. The model library's
    start-up chatter sits behind the debug switch. Two log labels that named the
    wrong number tell the truth again.
  • Reference pictures deleted one by one move to the trash folder and can be
    moved back. Removing every picture of a person asks a second time and names the
    person. A name with an apostrophe no longer kills the buttons of its own
    suggestion (reported from the field).

Feedback is very welcome, positive or negative, by mail to suslik_dev@posteo.de or
here on GitHub. If my program is useful to you, I would be happy about a star.