Zum Hauptinhalt springen

KI-GESTÜTZTE DOKUMENTATION

Was möchten Sie wissen?

Snapshots & Changelog

Parameter-Snapshot

Jede veröffentlichte Version speichert einen Parameter-Snapshot: die Rezept- und Testset-Parameter, erfasst gegen ein festes, versioniertes Schema, sodass eine Version den vollständigen strukturierten Inhalt enthält. Jede Version verfügt außerdem über eine README-Datei, die diesen Snapshot in lesbarer Form darstellt.

Eine Version besitzt zwei Snapshot-Dateien:

  • parameters/recipe/<version>.json — der Rezept-Snapshot
  • parameters/testset/<version>.json — der Testset-Snapshot

Beide enthalten eine schema_version, welche die Struktur der Datei beschreibt (derzeit 1.1). Felder verwenden unten Punkt-Pfade; [] kennzeichnet eine Liste, sodass blocks[].type_config.labels[].name der name jedes Labels jedes Blocks ist.

Rezept-Snapshot

parameters/recipe/<version>.json

FeldTypBedeutung
schema_versionstringSchema-Version dieser Datei.
extracted_atstringZeitpunkt, zu dem der Snapshot erstellt wurde.
recipe_namestringName des Rezepts.
descriptionstring | nullBeschreibung des Rezepts.
plc_recipe_idinteger | nullPLC-Rezept-ID.
meta_versionintegerMetadaten-Version des Rezepts.
database_versionintegerDatenbankversion des Rezepts.
software_versionstringSoftwareversion des Rezepts.
imaging.preview_image.shastringSHA des Vorschaubilds.
imaging.preview_image.pathstringPfad des Vorschaubilds.
imaging.exposureinteger | nullBelichtungszeit.
imaging.gainnumber | nullSensor-Gain.
imaging.brightnessinteger | nullHelligkeit.
imaging.gammainteger | nullGamma.
imaging.focal_lengthnumber | nullBrennweite.
imaging.focusnumber | nullFokus.
imaging.focus_distancenumber | nullFokusabstand.
imaging.rotation_modeinteger | nullBildrotationsmodus.
imaging.acq_modeinteger | nullAufnahmemodus.
imaging.hdr_mode_enabledboolean | nullHDR-Modus ein/aus.
imaging.led_modeinteger | nullLED-Beleuchtungsmodus.
imaging.led_gaininteger | nullLED-Gain.
imaging.led_strobe_modeboolean | nullLED-Strobe ein/aus.
imaging.lens_correctboolean | nullKorrektur der Objektivverzerrung ein/aus.
imaging.photometric_enabledboolean | nullPhotometrische Korrektur ein/aus.
imaging.photometric_modeinteger | nullPhotometrischer Modus.
imaging.awb_redinteger | nullAutomatischer Weißabgleich – Rotkanal.
imaging.awb_greeninteger | nullAutomatischer Weißabgleich – Grünkanal.
imaging.awb_blueinteger | nullAutomatischer Weißabgleich – Blaukanal.
imaging.awb_opboolean | nullAutomatischer Weißabgleich aktiviert.
imaging.calibration_pixels_per_unitnumber | nullKalibrierungsskala (Pixel pro Einheit).
imaging.calibration_unitstring | nullKalibrierungseinheit.
imaging.trigger_debounceinteger | nullTrigger-Entprellung.
imaging.trigger_delayinteger | nullTrigger-Verzögerung.
imaging.rawobjectVollständige, unverarbeitete Imaging-Quelle.
blocks[].block_typestringBlock-Typ (alignment, classification, segmentation, measurement, ocr, unsupervised).
blocks[].uuidstringStabile Block-Identität.
blocks[].namestringBlock-Name.
blocks[].statusstringBlock-Status.
blocks[].is_enabledbooleanOb der Block ausgeführt wird.
blocks[].has_modelbooleanOb ein trainiertes Modell zugewiesen ist.
blocks[].search_area.search_area_idinteger | nullSuchbereichs-ID.
blocks[].search_area.search_area_bboxlist of number | nullBounding Box des Suchbereichs.
blocks[].search_area.roi_regions[].bboxlist of numberROI-Bounding-Box.
blocks[].search_area.roi_regions[].anglenumberROI-Rotationswinkel.
blocks[].type_configobjectTypspezifische Konfiguration (siehe unten).
blocks[].model_ref.shastringSHA der trainierten Modelldatei.
blocks[].model_ref.pathstringPfad der trainierten Modelldatei.
blocks[].model_ref.file_extensionstringDateierweiterung der trainierten Modelldatei.
aligner_reference_image.shastringSHA des Ausrichtungs-Referenzbilds.
aligner_reference_image.pathstringPfad des Ausrichtungs-Referenzbilds.
aligner_reference_image.full_repo_pathstringPfad des Ausrichtungs-Referenzbilds innerhalb des Repositorys.
node_red_flow.basic_modebooleanOb sich der Flow im Basic-Modus befindet.
node_red_flow.basic_flow_idstring | nullFlow-ID im Basic-Modus.
node_red_flow.basic_flow_metadataobject | nullFlow-Metadaten im Basic-Modus.
node_red_flow.nodes[].idstringNode-ID.
node_red_flow.nodes[].node_typestringNode-Typ.
node_red_flow.nodes[].namestringNode-Name.
node_red_flow.nodes[].xinteger | nullX-Position der Node auf dem Canvas.
node_red_flow.nodes[].yinteger | nullY-Position der Node auf dem Canvas.
node_red_flow.nodes[].wireslist of list of stringAusgehende Verbindungen (pro Ausgang, Ziel-Node-IDs).
node_red_flow.nodes[].funcstring | nullCode der Function-Node.
node_red_flow.nodes[].rawobjectVollständige, unverarbeitete Node-Quelle.

Blockkonfiguration

Die Felder unter blocks[].type_config hängen von blocks[].block_type ab.

FeldTypBedeutung
blocks[].type_config.angle_tolerance_leftnumber | nullalignment — linke Winkeltoleranz.
blocks[].type_config.angle_tolerance_rightnumber | nullalignment — rechte Winkeltoleranz.
blocks[].type_config.confidence_score_thresholdnumber | nullalignment / segmentation / unsupervised — Übereinstimmungs-/Konfidenzschwelle.
blocks[].type_config.sensitivitynumber | nullalignment / unsupervised — Empfindlichkeit.
blocks[].type_config.versioninteger | nullalignment — Konfigurationsversion.
blocks[].type_config.scale_invariantboolean | nullalignment — Skaleninvariante Übereinstimmung ein/aus.
blocks[].type_config.inference_modestring | nullalignment — Inferenzmodus.
blocks[].type_config.dl_performance_modeinteger | nullalignment — Deep-Learning-Leistungsmodus.
blocks[].type_config.skip_blockboolean | nullalignment — Diesen Block überspringen.
blocks[].type_config.template_image_id_pathstring | nullalignment — Referenzpfad des Vorlagenbilds.
blocks[].type_config.labels[].namestringclassification — Label-Name.
blocks[].type_config.labels[].confidence_thresholdnumber | nullclassification — Konfidenzschwelle pro Label.
blocks[].type_config.labels[].is_positiveboolean | nullclassification — Ob das Label als Pass gewertet wird.
blocks[].type_config.labels[].inspection_typeinteger | nullclassification — Inspektionstyp.
blocks[].type_config.labels[].colorstring | nullclassification — Anzeigefarbe.
blocks[].type_config.segmentation_typestring | nullsegmentation — Segmentierungstyp.
blocks[].type_config.classes[].class_namestringsegmentation — Klassenname.
blocks[].type_config.classes[].mask_pixel_valueinteger | nullsegmentation — Maskenpixelwert.
blocks[].type_config.classes[].colorstring | nullsegmentation — Anzeigefarbe.
blocks[].type_config.classes[].mask_shastring | nullsegmentation — SHA der Maskendatei.
blocks[].type_config.classes[].mask_pathstring | nullsegmentation — Pfad der Maskendatei.
blocks[].type_config.measurement_regions[]objectmeasurement — Messbereiche.
blocks[].type_config.min_text_areainteger | nullocr — Minimale Textfläche.
blocks[].type_config.text_segmentation_thresholdnumber | nullocr — Schwelle für Textsegmentierung.
blocks[].type_config.unclip_rationumber | nullocr — Unclip-Verhältnis.
blocks[].type_config.unclip_ceilingnumber | nullocr — Unclip-Obergrenze.
blocks[].type_config.unsupervised_typestring | nullunsupervised — Methodentyp.
blocks[].type_config.epochsinteger | nullunsupervised — Trainings-Epochen.
blocks[].type_config.encoderstring | nullunsupervised — Encoder.
blocks[].type_config.learning_ratenumber | nullunsupervised — Lernrate.
blocks[].type_config.downsampling_rationumber | nullunsupervised — Downsampling-Verhältnis.
blocks[].type_config.tiled_modeboolean | nullunsupervised — Tiled-Modus ein/aus.
blocks[].type_config.min_blob_areanumber | nullunsupervised — Minimale Blob-Fläche.
blocks[].type_config.max_blob_areanumber | nullunsupervised — Maximale Blob-Fläche.
blocks[].type_config.hyperparametersobjectclassification / segmentation / measurement / ocr / unsupervised — Trainings-Hyperparameter.

Test-Set-Snapshot

parameters/testset/<version>.json

FeldTypBedeutung
schema_versionstringSchema-Version dieser Datei.
extracted_atstringZeitpunkt der Snapshot-Erstellung.
namestringName des Test-Sets.
descriptionstring | nullBeschreibung des Test-Sets.
authorstring | nullAutor des Test-Sets.
image_countintegerAnzahl der Bilder.
images_with_ground_truthintegerAnzahl der Bilder mit Ground Truth.
search_area_ids[]stringVom Test-Set referenzierte Search-Area-IDs.
per_class_distribution[].class_namestringKlassenname. Reserviert; derzeit stets leer (als "Verteilung nicht verfügbar" zu behandeln).
per_class_distribution[].countintegerBildanzahl für die Klasse. Reserviert; derzeit stets leer.
images[].image_idstringBild-ID.
images[].ground_truth_fingerprintstring | nullFingerprint der Ground Truth des Bildes.
images[].has_ground_truthbooleanOb das Bild eine Ground Truth besitzt.

README

Jede Version besitzt zudem eine eingecheckte README.md, die den Snapshot in lesbarer Form darstellt. Ihre Abschnitte sind:

  • Imaging Settings — eine Tabelle der Imaging-Parameter.
  • Aligner Reference Image — das Ausrichtungs-Referenzbild und dessen SHA-256 (nur, wenn das Rezept eines hat).
  • Inspection Blocks — ein Unterabschnitt pro Block, überschrieben mit <name> (<block type>), mit UUID, Status und Enabled-Flag des Blocks, gefolgt von einem typspezifischen Bereich — Classification Labels, Segmentation Classes, OCR Parameters, Unsupervised Parameters, Alignment Parameters oder einer Zählung der Messregionen.
  • Node-RED Flow — Basic-Mode-Flag, Knotenanzahl und eine Tabelle der Nodes (ID, Type, Name).
  • Test Set — Name, Beschreibung, Autor, Bildanzahl, Bilder mit Ground Truth und Suchbereiche.

Changelog

Wenn eine Version veröffentlicht wird, wird ihr Parameter-Snapshot mit dem der vorherigen Version verglichen, um das Changelog zu erzeugen. Der Vergleich ist strukturell — Feld für Feld über das oben beschriebene Schema hinweg, wobei Listen (Blocks, Labels, Klassen, Node-RED-Nodes) über eine stabile Identität statt über die Position abgeglichen werden, sodass eine Umsortierung nie als Änderung erscheint. Recipe und Test Set werden unabhängig voneinander verglichen, und das Changelog wird bei Bedarf aus den eingecheckten Snapshots abgeleitet, sodass es für jedes beliebige Versionspaar verfügbar ist.

Änderungen werden in dieselben Abschnitte wie der Snapshot gruppiert, und ein Abschnitt erscheint nur, wenn sich darin etwas geändert hat. Eine Version ohne Unterschiede wird entsprechend gekennzeichnet, und die erste Version zeigt eine vollständige initiale Ausgabe anstelle eines Diffs.