Dienst für Rahmenvorschläge

Der Dienst für Rahmenvorschläge schlägt Rahmen für das offene Bild vor (siehe Rahmenvorschläge). Er läuft auf einem Ihrer Rechner, am besten mit GPU; kein Bild verlässt das Firmennetz. Er ist ein eigenes Programm, der Annotationsserver selbst braucht also keine GPU.

Backends

Backend Was vorschlägt Braucht

onnx (Standard)

Ihre trainierten LumiScan-Netze: network.onnx + network_description.json, wie LumiScan Training sie exportiert

ONNX Runtime (CPU, CUDA oder DirectML)

grounded-sam

Ein Detektor mit offenem Vokabular (Grounding DINO) findet die mit den Labels benannten Objekte; SAM 2 schneidet jedes aus. Für Teile ohne Netz.

PyTorch; GPU empfohlen; etwa 1 GB Modelle, beim ersten Start heruntergeladen

threshold

Klassische Bildverarbeitung: helle Teile auf dunklem Grund

nichts weiter

Der Dienst liefert Umrisse; der Annotationsserver legt um jeden Umriss den kleinsten gedrehten Rahmen.

Installieren

Der Dienst und seine Installationsskripte liegen im Ordner preannotate von LumiScan Annotation Web; fragen Sie HD Vision Systems danach, falls er nicht zu Ihrer Lieferung gehört. Kopieren Sie den Ordner auf den Rechner, der den Dienst betreiben soll. Die Skripte in preannotate/install richten Python, die Pakete für das Backend, ein Zugriffstoken und den Start beim Hochfahren ein und geben am Ende die Zeile für die Serverkonfiguration aus.

System Befehl Läuft als

Ubuntu 24.04

sudo preannotate/install/install-ubuntu.sh --gpu cuda11

systemd-Dienst lsa-preannotate

Windows 11

preannotate\install\install-windows.ps1 -Gpu cuda11 in einer PowerShell als Administrator; braucht Python 3.12 (winget install Python.Python.3.12)

geplante Aufgabe „LumiScan PreAnnotate" beim Start, als SYSTEM

macOS

preannotate/install/install-macos.sh

Launch Agent des Benutzers

Optionen (unter Windows mit einem Bindestrich und großem Anfangsbuchstaben, z. B. -Backend):

--backend onnx|grounded-sam|threshold

das Backend (Standard onnx)

--gpu cpu|cuda|cuda11

cuda für CUDA 12, cuda11 für CUDA 11.8 mit cuDNN 8 (wie auf LumiScan-PCs), cpu ohne GPU; unter Windows außerdem directml für jede DirectX-12-GPU

--port, --host

Adresse des Dienstes (Standard-Port 8090)

--instance <Name>

ein zweiter Dienst auf demselben Rechner, z. B. Grounding DINO neben den Netzen

--dry-run

jeden Schritt ausgeben, ohne ihn auszuführen

--uninstall

den Dienst entfernen; Programm und Netze bleiben

Beispiel: Netze auf einer NVIDIA-GPU, dazu Grounding DINO als zweiter Dienst:

sudo preannotate/install/install-ubuntu.sh --gpu cuda11
sudo preannotate/install/install-ubuntu.sh --backend grounded-sam --gpu cuda11 --instance dino --port 8091

Netze hinzufügen

Kopieren Sie jeden Netzordner, wie LumiScan Training ihn exportiert, in den Netzordner des Dienstes, einen Ordner je Netz. Der Ordnername ist der Name des Netzes.

networks/
  line-5-parts/      network.onnx  network_description.json
  housing-seams/     network.onnx  network_description.json

Netzordner:

  • Ubuntu: /var/lib/lsa-preannotate/networks

  • Windows: C:\ProgramData\LumiScan\PreAnnotate\networks

  • macOS: ~/Library/Application Support/LumiScan/PreAnnotate/networks

Starten Sie den Dienst danach neu (Ubuntu: sudo systemctl restart lsa-preannotate; Windows: Restart-ScheduledTask "LumiScan PreAnnotate").

Der Dienst bereitet die Bilder genau wie LumiScan Training auf (Größe, Farbreihenfolge, Normierung aus network_description.json) und wandelt die Ausgabe des Netzes in gedrehte Rahmen um. Die Klassennamen stammen aus classList; vorgeschlagen werden nur Klassen, die Labels des Projekts sind. Für Netze, die mit BGR-Bildern trainiert wurden, starten Sie den Dienst mit --bgr.

Annotationsserver anbinden

Tragen Sie den Dienst, oder mehrere, in die Serverkonfiguration ein und starten Sie den Server neu. Kopieren Sie die vom Installationsskript erzeugte Tokendatei neben die Konfiguration.

"pre_annotation": [
  { "url": "http://gpu-server:8090", "token_file": "preannotate.token" },
  { "url": "http://gpu-server:8091", "token_file": "preannotate-dino.token" }
]
  • Bei mehreren Diensten werden alle gefragt; von überlappenden Vorschlägen bleibt der sicherste.

  • Antwortet einer nicht, schlagen die anderen trotzdem vor, und der Browser zeigt eine Warnung.

  • Das Serverprotokoll nennt beim Start jeden Dienst mit Backend und Netzen.

Die Schaltfläche Suggest boxes erscheint im Browser, sobald ein Dienst konfiguriert ist. Das Netz jedes Projekts wird in seinen Einstellungen gewählt.

Dienst prüfen

curl -H "Authorization: Bearer $(sudo cat /etc/lsa-preannotate/default.token)" http://127.0.0.1:8090/v1/health

Die Antwort nennt Backend, Gerät und die Netze mit ihren Klassen. Protokolle: Ubuntu journalctl -u lsa-preannotate -f; Windows C:\ProgramData\LumiScan\PreAnnotate\default.log.