Startnummern
Die Startnummern in den Bildern gegen die Startliste lesen und in jede Datei schreiben, wer darauf ist — mit Schutz für Kinder und alle, die nicht genannt werden wollen.
FLOGVIT.photosuite liest die Startnummern in deinen Bildern und schreibt in die Datei, wer auf jedem ist: Name, Nummer, Klasse und Verein des Läufers oder Fahrers. Die Nummern werden nur gegen die Startliste der Veranstaltung gelesen, sodass eine Nummer auf einer Autotür oder einem Haus nie für einen Teilnehmer gehalten wird.
Die Nummern werden mit der eigenen Texterkennung des Computers gelesen: Apples Vision auf dem Mac und die OCR von Windows unter Windows 10 und 11. Dafür muss nichts heruntergeladen werden.
Die Startliste holen#
Die Startliste ist ein Veranstaltungsordner mit teams.json und bibs.json. Die App holt sie für dich:
- Öffne Settings → Workflow und füge einem Workflow einen Schritt Identify hinzu (oder öffne den vorhandenen).
- Füge unter Fetch start list die Adresse der Startlistenseite der Veranstaltung ein und wähle Fetch:
- race-result, auch hinter elapse.no und racetracker.no (die Seite, die die Liste einbettet, genügt),
- onreg / MYLAPS (
secure.onreg.com/…?id=…).
- Der Ordner wird den Startlisten des Schritts hinzugefügt, und die App sagt, wie viele Teilnehmer sie gefunden hat.
Für eine Veranstaltung ohne Zeitmesssystem holst du stattdessen eine CSV-Datei. Sie braucht eine Kopfzeile, die eine Nummernspalte (Startnr, Bib, Start number) und eine Namensspalte (Navn, Name) benennt; eine Spalte für Verein (Klubb, Club), Klasse (Klasse, Class) und Team (Lag, Team) wird gelesen, wenn es sie gibt. Trenne die Spalten mit ;, , oder Tabulatoren.
Wettbewerbe, die nicht auf der Strecke sind: Manche Veranstaltungen verkaufen eine Zuschauerkarte mit einer Nummer wie alle anderen. Tippe vor dem Holen einen Teil ihres Namens unter Leave out (Tilskuer) ein, dann fallen diese Teilnehmer weg, und eine falsch gelesene Nummer landet nie bei einem Zuschauer. Der Ordner merkt es sich, und Fetch Again lässt sie draußen.
Staffeln von Teams, deren Nummer den Lauf trägt, wie Energistafetten (07-422): Hake vor dem Holen Teams whose number carries the heat an. Jede Nummer ist dann ein Team, benannt nach dem Team, mit der Firma als Verein.
Ergebnisse in der Bildunterschrift#
Bei einer race-result-Veranstaltung hakst du vor dem Holen Also fetch the results an: Jede Nummer hat dann Platz und Zeit, und Fetch Again hält sie aktuell, während die Ergebnisse eintreffen. Hake im Schritt Identify Say how each did an, und die Bildunterschrift lautet Emil Hannevik Fyhn (9), 1. 35:55. In einer Vorlage ist {results} dieser Text für alle im Bild, und {place} und {time} sind die der ersten Person.
Am Renntag#
Nachmelder bekommen ihre Nummern am Tag selbst. Wähle Fetch Again, um jede Startliste im Schritt neu zu lesen, oder setze Fetch again every auf eine Anzahl Minuten: Der Schritt holt eine Liste dann neu, bevor er ein Bild liest, sobald die Liste älter ist. Ist das Zeitmesssystem nicht erreichbar, behält der Schritt die Liste, die er hatte.
Mehrere Rennen an einem Fototag? Lege die Startlisten aller Rennen in denselben Schritt: Die Nummern werden einmal gelesen, und jedes Rennen behält die Teilnehmer seiner eigenen Liste.
Was ins Bild geschrieben wird#
- die Veranstaltung, wie die Startliste sie nennt,
- der Name jeder Person (und jedes Läufers eines Staffelteams),
- Namen, Nummern, Klasse und Verein als Stichwörter,
- eine Bildunterschrift:
Name (12); Name (31).
Eine Nummer, bei der sich die App nicht sicher sein kann — eine einzelne Ziffer oder eine Nummer mit einer verdeckten Ziffer, die auch zu einer längeren Nummer auf der Liste passen würde —, wird zurückgehalten statt genannt, damit kein Bild die falsche Person bekommt.
Eine kleine oder weit entfernte Nummer in einem großen Bild kann verschwinden, wenn das ganze Bild auf einmal gelesen wird. Trug jemand im Bild eine lesbare Nummer, aber von den Startnummern wurde sonst nichts gelesen, wird das ganze Bild in überlappenden Kacheln neu gelesen, und jeder Bereich mit Ziffern wird aus der Nähe gelesen. Eine so gefundene Nummer zählt nur, wenn zwei verschiedene Ausschnitte übereinstimmen, sie mindestens zwei Ziffern hat und dieselben Prüfungen besteht wie jede andere Lesung. In einem Bild, in dem niemand eine lesbare Nummer trug, etwa bei einer Siegerehrung, werden so gelesene Nummern nie verwendet.
Die Nummern korrigieren#
Hat ein Ordner eine Startliste, zeigt die Seitenleiste einen Abschnitt Numbers: jede Nummer im Bild und wer sie trägt. Tippe eine Nummer oder einen Namen und drücke die Eingabetaste, um sie hinzuzufügen. × nimmt eine Nummer weg, und Nobody leert das Bild. Sind mehrere Bilder ausgewählt, geht die Änderung an alle.
Die Personen, die Stichwörter (Namen, Nummern, Disziplin, Klasse, Verein), die Bildunterschrift und die Veranstaltung folgen aus der Startliste, so geschrieben, wie Identify sie schreibt. Stichwörter, Bildunterschriften und Veranstaltungen, die jemand von Hand eingegeben hat, bleiben. Die Nummer von jemandem, den eine Lieferung nicht nennt (unten), wird nicht geschrieben, und die Leiste sagt es.
Deliver → Start Lists for This Folder… wählt, in welchen Startlisten die Nummern des Ordners nachgeschlagen werden. Der Ordner merkt sie sich; ohne Wahl werden die Startlisten aller Identify-Schritte verwendet. Numbers only schreibt die Nummern und nie einen Namen, wie es eine Staffellieferung tut.
Jede Korrektur wird im Ordner der Startliste protokolliert (updated.json), mit dem, was gelesen wurde, und dem, was du gesetzt hast. Daraus lernt die Lesung, und ein Bild, das du gesetzt hast, wird nie anders benannt, wenn Identify erneut darüber läuft. Über die API: PUT /api/numbers mit numbers oder entry, GET /api/images/current/numbers und PUT /api/folder/start-lists (SDK: client.setNumbers, client.currentNumbers, client.setFolderStartLists).
Bilder, die auf dich warten#
Identify nennt nie eine Lesung, bei der es sich nicht sicher sein kann. Es hält sie für dich zurück: eine Nummer, mit der eine längere Nummer beginnt oder endet („87“ ist, wie 187 mit einem Band über der 1 aussieht), eine einzelne Ziffer, oder, wenn nichts gelesen wurde, wer den Zeitmesspunkt passierte, als das Bild aufgenommen wurde. Filter → Numbers → Needs review zeigt nur diese Bilder. Der Abschnitt Numbers sagt, warum jedes zurückgehalten wurde, und bietet eine Taste für jede Nummer, die es sein könnte. Wähle die richtige, tippe eine andere oder wähle ✓ Right as it is. Das Bild verlässt die Liste, und das nächste wartende kommt.
Das Zurückgehaltene wird im Ordner der Startliste aufbewahrt (held.json), bis du es entscheidest. Eine Veranstaltung, die mit den alten Lieferskripten gebaut wurde, wird genauso durchgesehen: Die unsicheren Zeilen ihrer out-bibs/counts.json werden zu Zurückhaltungen, wenn der Ordner das erste Mal mit dieser Startliste geöffnet wird. Über die API: GET /api/review listet sie, und PUT /api/numbers entscheidet eine (SDK: client.reviewQueue(); der Filter ist needs_review in POST /api/filter).
Eine verdeckte Nummer: der Zeitmesspunkt#
Ein Fahrer mit der Nummer hinter einem Arm ist trotzdem im Zeitmesssystem, an der Matte, bei der der Fotograf steht. Mit Timing point im Schritt Identify wird ein Bild mit einer Person und ohne lesbare Nummer zusammen mit den Teilnehmern zurückgehalten, die den Punkt bei der Aufnahme passierten. Es nennt nie jemanden von sich aus; die Namen warten darauf, dass ein Mensch wählt.
- Hole die Startliste mit Also fetch the results: Die Ergebnisse enthalten die Zwischenzeiten jedes Teilnehmers.
- Gib unter Timing point die Ergebnisspalte deines Punktes an (
TIME21, oderfinishfür das Ziel). Hake time since start an, wenn die Spalte ab dem Start zählt statt die Uhrzeit, und gib den mass start an, wenn die Ergebnisse der Teilnehmer keine eigene Startzeit haben. Die Spalte muss die Zeit am Punkt sein, nicht die einer Etappe — prüfe es an einem Teilnehmer, den du kennst. - Stelle den clock offset der Kamera ein: Öffne ein Bild, dessen Nummer du kennst, tippe sie ein und wähle Set. Der Versatz ist die Zeit des Zeitmesssystems minus die der Kamera.
- Das window ist, wie viele Sekunden auf jeder Seite noch zählen: wenige Sekunden an einer Matte, mehr, wo der Punkt ein Stück Straße ist.
Die Bilder für die Zeitung wählen#
Deliver → Pick for Delivery… wählt höchstens so viele Bilder, wie du angibst, sodass niemand zweimal in der Lieferung ist. Es arbeitet auf der Auswahl, wenn mehr als ein Bild ausgewählt ist, sonst auf dem ganzen Ordner, und nutzt die Nummern, die Identify in jedes Bild geschrieben hat.
- Der Teilnehmer mit den wenigsten Bildern kommt zuerst: Wer auf einem Bild ist, bekommt es, bevor jemand mit zehn Bildern es beanspruchen kann.
- Ein Bild wird nur genommen, wenn alle darauf noch keins haben.
- Allein im Bild geht vor in der Gruppe; jeder Fotograf bekommt ein Bild, bevor jemand ein zweites bekommt (Fotografen); dann das schärfste.
Die gewählten Bilder bekommen die Farbmarkierung deiner Wahl und ein Album mit dem Namen des Ordners. Der Bericht sagt, warum jedes gewählt wurde, welche knapp dahinter lagen und wer kein Bild bekam. Über die API: POST /api/pick-for-delivery (SDK: client.pickForDelivery({ count: 200 })).
Der Bericht für die Redaktion#
Deliver → Delivery Report zählt, was der Ordner (oder die Auswahl) liefert: wie viele Bilder, wie viele Teilnehmer genannt sind und wie viele mehr als einmal vorkommen, Bilder ohne Genannte, Bilder pro Fotograf und Teilnehmer pro Klasse. Aus dem Journal von Identify zählt es außerdem, wie viele Bilder eine Nummer hatten, die zur Prüfung durch einen Menschen zurückgehalten wurde, und wie viele jemanden zeigten, der nicht genannt wird (Klasse oder Widerspruch). Für jede Startliste sagt es auch, was der Schutz vor verdeckten Ziffern kostet: wie viele ihrer Nummern Anfang oder Ende einer längeren Nummer sind (und daher nie allein aus einer Lesung genannt werden), wie viele Bilder deshalb auf einen Menschen warten, und wie viele trotzdem mit so einer Nummer genannt wurden. Eine dichte Liste ein- bis dreistelliger Nummern kann so ein Drittel ihrer Nummern verlieren, eine Liste vierstelliger Nummern verliert keine. Die Zusammenfassung kommt für die E-Mail in die Zwischenablage. delivery-report.txt und delivery-report.pdf werden neben die Bilder geschrieben; das PDF ist ein Kontaktbogen mit der Bildunterschrift unter jedem Bild. Über die API: POST /api/delivery-report (SDK: client.deliveryReport()).
Lernen aus dem, was die Redaktion veröffentlicht hat#
Wenn die Zeitung ihre Bildstrecken gebracht hat, gib der App die Liste der Redaktion: Deliver → Import Published… mit dem gelieferten Ordner geöffnet, und eine Datei mit den veröffentlichten Dateinamen (einer pro Zeile, oder published.json mit [{"file": …}]). Die Dateinamen passen auch mit den Kopiezusätzen des Publikationssystems (_1, (1)).
Die veröffentlichten Bilder bekommen ein Album mit dem Namen des Ordners, und jedes Bild des Ordners wird als veröffentlicht oder nicht festgehalten, mit dem, was die Auswahl darüber weiß: Schärfe innerhalb des Ordners, allein oder in der Gruppe, wie viele Personen, die Sterne. Sobald mindestens 30 veröffentlichte Bilder bekannt sind, über Veranstaltungen hinweg, bewertet Pick for Delivery nach dem, was diese Redaktion veröffentlicht, statt nach Schärfe allein, und der Bericht sagt es. Über die API: POST /api/published/import (SDK: client.importPublished({ list })).
Wer was veröffentlicht bekam#
Deliver → Published by Photographer… speichert eine CSV aller importierten Veranstaltungen: pro Fotograf, wie viele seiner Bilder geliefert wurden, wie viele veröffentlicht wurden und welche — um jeden Fotografen für das zu bezahlen, was die Zeitung verwendet hat. Der Fotograf ist der, den die Tabelle Fotografen der Kamera zuordnet, sonst der EXIF Artist. Über die API: GET /api/published/by-photographer.
Wer nicht genannt wird#
Manche Teilnehmer sollen in einer Zeitung nicht genannt werden: Kinder und Jugendliche und alle, die darum gebeten haben. Im Schritt Identify:
- Classes not named — ein Teil einer Klassen- oder Altersgruppenbezeichnung, eine pro Zeile (
Barn,U1,Ungdom). Alle in einer passenden Klasse werden ausgelassen. - Not named — Nummern oder Namen, eine pro Zeile, von Personen, die darum gebeten haben.
Ihre Nummer wird trotzdem gelesen, damit das Bild nicht für das eines anderen gehalten wird, aber nichts über sie — Name, Nummer, Klasse oder Verein — kommt in das gelieferte Bild. Über die API tun unnamedClasses und optedOut dasselbe bei identify und detect, und detect listet sie in unnamed.
Über die API#
POST /api/start-lists/fetch holt eine Startliste in einen Ordner (source: die Adresse der Seite oder eine CSV-Datei; dir: der Ordner; eine leere source mit einem dir holt sie neu; heat_numbers für Teamstaffeln, exclude_contests für Wettbewerbe, die nicht auf der Strecke sind). Aus dem SDK: client.fetchStartList({ source }). Siehe die API-Referenz.