Dorsales
Lee los dorsales de las fotos contra la lista de salida y escribe quién aparece en cada archivo — protegiendo a los niños y a quien no quiera ser nombrado.
FLOGVIT.photosuite lee los dorsales de tus fotos y escribe en el archivo quién aparece en cada una: el nombre del corredor o ciclista, su número, su categoría y su club. Solo lee los números contra la lista de salida del evento, así que un número pintado en la puerta de un coche o en una casa nunca se toma por un participante.
Los números se leen con el reconocimiento de texto del propio ordenador: Vision de Apple en Mac, y el OCR de Windows en Windows 10 y 11. No hay que descargar nada para ello.
Obtener la lista de salida#
La lista de salida es una carpeta de evento con teams.json y bibs.json. La aplicación la descarga por ti:
- Abre Settings → Workflow y añade un paso Identify a un flujo (o abre el que tengas).
- En Fetch start list, pega la dirección de la página de la lista de salida del evento y elige Fetch:
- race-result, también detrás de elapse.no y racetracker.no (basta la página que incrusta la lista),
- onreg / MYLAPS (
secure.onreg.com/…?id=…).
- La carpeta se añade a las listas de salida del paso, y la aplicación dice cuántos inscritos encontró.
Para un evento sin sistema de cronometraje, descarga en su lugar un archivo CSV. Necesita una fila de cabecera que nombre una columna de número (Startnr, Bib, Start number) y una de nombre (Navn, Name); se leen una columna de club (Klubb, Club), categoría (Klasse, Class) y equipo (Lag, Team) cuando existen. Separa las columnas con ;, , o tabuladores.
Pruebas que no están en el recorrido: algunos eventos venden una entrada de espectador que lleva un número como los demás. Escribe parte de su nombre en Leave out (Tilskuer) antes de descargar, y esos inscritos se descartan, para que un número mal leído nunca acabe en un espectador. La carpeta lo recuerda, y Fetch Again los mantiene fuera.
Relevos de equipos cuyo número lleva la tanda, como Energistafetten (07-422): marca Teams whose number carries the heat antes de descargar. Cada número es entonces un equipo, nombrado por el equipo, con la empresa como club.
Resultados en el pie de foto#
Para un evento de race-result, marca Also fetch the results antes de descargar: cada número tiene entonces su puesto y su tiempo, y Fetch Again los mantiene al día mientras llegan los resultados. Marca Say how each did en el paso Identify y el pie de foto queda Emil Hannevik Fyhn (9), 1. 35:55. En una plantilla, {results} es ese texto para todos los de la foto, y {place} y {time} son los de la primera persona.
El día de la carrera#
Los inscritos de última hora reciben su número el mismo día. Elige Fetch Again para volver a leer todas las listas de salida del paso, o pon Fetch again every en un número de minutos: el paso vuelve a descargar una lista antes de leer una foto, siempre que la lista sea más antigua que eso. Si no se puede acceder al sistema de cronometraje, el paso conserva la lista que tenía.
¿Varias carreras en un día de fotos? Pon las listas de salida de todas las carreras en el mismo paso: los números se leen una vez, y cada carrera conserva los participantes de su propia lista.
Qué se escribe en la foto#
- el evento, tal como lo nombra la lista de salida,
- el nombre de cada persona (y de cada corredor de un equipo de relevos),
- nombres, números, categoría y club como palabras clave,
- un pie de foto:
Nombre (12); Nombre (31).
Un número del que la aplicación no puede estar segura — un solo dígito, o un número con un dígito oculto que también encajaría con un número más largo de la lista — se retiene en lugar de nombrarse, para que ninguna foto reciba a la persona equivocada.
Un número pequeño o lejano en un encuadre grande puede perderse cuando se lee todo el encuadre de una vez. Cuando alguien de la foto llevaba un número legible pero no se leyó nada más en los dorsales, se vuelve a leer todo el encuadre en mosaicos superpuestos, y cada zona con dígitos se lee de cerca. Un número encontrado así solo cuenta cuando dos recortes distintos coinciden, tiene al menos dos dígitos y pasa las mismas comprobaciones que cualquier otra lectura. En un encuadre donde nadie llevaba un número legible, como una entrega de medallas, nunca se usan números leídos de esta forma.
Corregir los números#
Cuando una carpeta tiene lista de salida, el panel lateral muestra una sección Numbers: cada número de la foto y quién lo lleva. Escribe un número o un nombre y pulsa Intro para añadirlo. × quita un número, y Nobody vacía la foto. Con varias fotos seleccionadas, el cambio va a todas.
Las personas, las palabras clave (nombres, números, prueba, categoría, club), el pie de foto y el evento se derivan de la lista de salida, escritos como los escribe Identify. Las palabras clave, pies de foto y eventos que alguien escribió a mano se quedan. El número de alguien a quien una entrega no nombra (abajo) no se escribe, y el panel lo dice.
Deliver → Start Lists for This Folder… elige en qué listas de salida se buscan los números de la carpeta. La carpeta las recuerda; sin elección, se usan las listas de salida de todos los pasos Identify. Numbers only escribe los números y nunca un nombre, como hace una entrega de relevos.
Cada corrección queda registrada en la carpeta de la lista de salida (updated.json), con lo que se leyó y lo que pusiste. De eso aprende la lectura, y una foto que hayas fijado nunca recibe otro nombre cuando Identify vuelve a pasar por ella. Por la API: PUT /api/numbers con numbers o entry, GET /api/images/current/numbers y PUT /api/folder/start-lists (SDK: client.setNumbers, client.currentNumbers, client.setFolderStartLists).
Fotos que te esperan#
Identify nunca nombra una lectura de la que no pueda estar seguro. La retiene para ti: un número con el que empieza o acaba un número más largo («87» es como se ve 187 con una cinta sobre el 1), un solo dígito, o, cuando no se leyó nada, quién pasó por el punto de cronometraje cuando se tomó la foto. Filter → Numbers → Needs review muestra solo esas fotos. La sección Numbers dice por qué se retuvo cada una y ofrece un botón por cada número que podría ser. Elige el correcto, escribe otro, o elige ✓ Right as it is. La foto sale de la lista, y aparece la siguiente que espera.
Las retenciones se guardan en la carpeta de la lista de salida (held.json) hasta que las resuelvas. Un evento construido con los antiguos scripts de entrega se revisa igual: las filas dudosas de su out-bibs/counts.json pasan a ser retenciones la primera vez que se abre la carpeta con esa lista de salida. Por la API: GET /api/review las lista, y PUT /api/numbers resuelve una (SDK: client.reviewQueue(); el filtro es needs_review en POST /api/filter).
Un número oculto: el punto de cronometraje#
Un ciclista con el número detrás de un brazo sigue estando en el sistema de cronometraje, en la alfombra junto a la que está el fotógrafo. Con Timing point activado en el paso Identify, un encuadre con una persona y sin número legible se retiene con los participantes que pasaron por ese punto cuando se tomó. Nunca nombra a nadie por sí mismo; los nombres esperan a que una persona elija.
- Descarga la lista de salida con Also fetch the results: los resultados llevan los tiempos parciales de cada participante.
- En Timing point, indica la columna de resultados de tu punto (
TIME21, ofinishpara la meta). Marca time since start cuando la columna cuente desde la salida y no la hora del día, e indica la mass start cuando los resultados de los participantes no tengan hora de salida propia. La columna debe ser el tiempo en el punto, no el de un tramo — compruébalo con un participante que conozcas. - Ajusta el clock offset de la cámara: abre una foto cuyo número conozcas, escríbelo y elige Set. El desfase es la hora del sistema de cronometraje menos la de la cámara.
- La window es cuántos segundos a cada lado siguen contando: unos pocos segundos en una alfombra, más donde el punto es un tramo de carretera.
Elegir las fotos para el periódico#
Deliver → Pick for Delivery… elige como mucho el número de fotos que indiques, de modo que nadie aparezca dos veces en la entrega. Trabaja sobre la selección cuando hay más de una foto seleccionada, si no sobre toda la carpeta, y usa los números que Identify escribió en cada foto.
- El participante con menos fotos va primero: quien sale en una sola foto la recibe antes de que alguien que sale en diez pueda reclamarla.
- Una foto solo se toma si todos los que aparecen en ella siguen sin ninguna.
- Solo en el encuadre va antes que en grupo; cada fotógrafo recibe una foto antes de que nadie reciba una segunda (Fotógrafos); luego la más nítida.
Las elegidas reciben la etiqueta de color que escojas y un álbum con el nombre de la carpeta. El informe dice por qué se eligió cada una, las que quedaron cerca y quién se quedó sin foto. Por la API: POST /api/pick-for-delivery (SDK: client.pickForDelivery({ count: 200 })).
El informe para la redacción#
Deliver → Delivery Report cuenta lo que entrega la carpeta (o la selección): cuántas fotos, cuántos participantes se nombran y cuántos aparecen más de una vez, fotos sin nadie nombrado, fotos por fotógrafo y participantes por categoría. A partir del registro de Identify cuenta también cuántos encuadres tenían un número retenido para que lo revise una persona, y cuántos tenían a alguien que no se nombra (categoría o exclusión voluntaria). Para cada lista de salida dice además lo que cuesta la protección contra dígitos ocultos: cuántos de sus números son el principio o el final de un número más largo (y por eso nunca se nombran solo por una lectura), cuántas fotos esperan a una persona por ello, y cuántas se nombraron igualmente con un número así. Una lista densa de números de una a tres cifras puede perder así un tercio de sus números, mientras que una lista de números de cuatro cifras no pierde ninguno. El resumen va al portapapeles para el correo. delivery-report.txt y delivery-report.pdf se escriben junto a las fotos; el PDF es una hoja de contactos con el pie de cada foto debajo. Por la API: POST /api/delivery-report (SDK: client.deliveryReport()).
Aprender de lo que publicó la redacción#
Cuando el periódico haya publicado sus series de fotos, dale a la aplicación la lista de la redacción: Deliver → Import Published… con la carpeta entregada abierta, y un archivo con los nombres de los archivos publicados (uno por línea, o published.json con [{"file": …}]). Los nombres coinciden incluso con los sufijos de copia del sistema de publicación (_1, (1)).
Las fotos publicadas reciben un álbum con el nombre de la carpeta, y cada foto de la carpeta queda registrada como publicada o no, con lo que el selector sabe de ella: nitidez dentro de la carpeta, sola o en grupo, cuántas personas, las estrellas. En cuanto se conocen al menos 30 fotos publicadas, entre todos los eventos, Pick for Delivery puntúa según lo que publica esa redacción en vez de solo por nitidez, y su informe lo dice. Por la API: POST /api/published/import (SDK: client.importPublished({ list })).
Quién publicó qué#
Deliver → Published by Photographer… guarda un CSV de todos los eventos importados: por fotógrafo, cuántas fotos suyas se entregaron, cuántas se publicaron y cuáles — para pagar a cada fotógrafo por lo que usó el periódico. El fotógrafo es el que la tabla de Fotógrafos asocia a la cámara, si no el EXIF Artist. Por la API: GET /api/published/by-photographer.
Quién no se nombra#
Algunos participantes no deben nombrarse en un periódico: niños y jóvenes, y cualquiera que lo haya pedido. En el paso Identify:
- Classes not named — parte del nombre de una categoría o grupo de edad, una por línea (
Barn,U1,Ungdom). Todos los de una categoría que coincida quedan fuera. - Not named — números o nombres, uno por línea, de quienes lo pidieron.
Su número se sigue leyendo, para que la foto no se confunda con la de otra persona, pero nada sobre ellos — nombre, número, categoría o club — entra en la foto entregada. Por la API, unnamedClasses y optedOut hacen lo mismo en identify y detect, y detect los lista en unnamed.
Por la API#
POST /api/start-lists/fetch descarga una lista de salida a una carpeta (source: la dirección de la página o un archivo CSV; dir: la carpeta; una source vacía con un dir la vuelve a descargar; heat_numbers para relevos por equipos, exclude_contests para pruebas que no están en el recorrido). Desde el SDK: client.fetchStartList({ source }). Consulta la referencia de la API.