How to label images and how to save the labels

In this thread we can discuss how to deal with image labels.

i’m not so sure anymore if it is a good idea to include the labels in the protobuf header within the pngs files.
what do you think?

biggest advantages:

  • labels within the png files are easy to associate with the corresponding file (because they belong to it ^^)
    (so even for duplicated filenames its no problem to identify label-image pairs)

biggest disadvantages:

  • to get new labels, a download of the pngs is needed to get them

any ideas for a good solution?

  • to garantee unique filenames for all teams is not that easy, isn’t it?

So you only want to remove the labels from the protobuff and do that seperately, or do you think I would then be better to have all data seperately?

i only think about removing the labels from the protobuf.
So only standard-data captured at the moment, when an image was created, are stored to the protobuf and never changed again.

the difference to the labels is, that labels can be changed, so the files must be resaved and reuploaded or something like that.

in the moment, we are storing our labels separatly in a csv like format. thats working fine because we have unique filenames for all our images.

for example: Brazil2014G4A_Athena_00238842_U.png

Means:

"Brazil2014" -> Brazil WM 2014
"G4"         -> Game4 in the Competion
"A"          -> Log A (normally, Half 1 is Log A and Half 2 is Log B, if the robot does not crash within a game)
"Athena"     -> Robot Name
"00238842"   -> Robot-Timestamp
"U"          -> upper camera

I think storing labels separately sounds good. You could then easily upload images unlabeled and partially or fully label them later.

But on the other hand, if you have a set of images without labels and want to update it with all the corresponding label data which has meanwhile appeared online, then you might just redownload the whole PNG-fileset together with it anyway.

Hallo an alle,

ich bin mal so dreist und äußere mich in deutsch dazu, um nicht die vielen Vokabeln nachschlagen zu müssen. :smiley:

Meiner Meinung nach ist ein Auslagern der Labels von großem Vorteil um überhaupt eine Datenbank pflegen zu können.
Ich stelle mir da insbesondere den Fall vor, dass jemand Bilder nach dem Tag/Label “Ball” durchsucht.

Für die Header-Speicherung müssten sehr viele “unnütze” Daten eingelesen werden, während ein einheitliches ausgelagertes Speichern der Daten einen enormen Geschwindigkeitsgewinn bringt.

Für die Dateinamen finde ich den Ansatz von Thomas schon sehr gut und würde die Team Nummer noch vorne an den Dateinamen hängen.

z.B.: 13_Brazil2014G4A_Athena_00238842_U.png

Was mich zu dem Punkt bringt das wir uns überlegen sollten für eben solche Dinge Konventionen zu schaffen und diese als Grundlage einer Zusammenarbeit zu benutzen. (Ist ja in der Informatik generell sehr verbreitet)
Da wir nicht wissen, was in zehn Jahren für Anwendungsfälle entstehen können und wir nicht wissen, ob die Bilder bis dahin vielleicht noch von Nutzen sein können halte ich etwas in der Art für den besten Weg.

Aus meinem Beispiel würde sich ein Dateiname als wie folgt herleiten:
%TEAMNR%_%EVENT%%GAMENR%%HALFTIME%%LOGNR%_%ROBOTNAME%_%TIMESTAMP%_%CAMERA%.png

Ich wünsch ich euch noch einen schönen Tag

Sascha

Das mit den Konventionen ist meiner Meinung nach eine guter Vorschlag und ganz im Sinne des gemeinsamen Datenbestands.