Hide

Problem F
Scribble

Languages en sv

Din vän Harry tycker om att klottra. För att spara papper ritar han flera saker ovanpå varandra. Du hittade hans gamla skissbok med rena teckningar och vill lista ut vad han har klottrat i sina röriga sammansatta bilder. Harry ritar alltid exakt 3 objekt tillsammans; färre lämnar för mycket utrymme, fler blir för rörigt. Han ritar från 50 olika objekttyper. Din uppgift är att identifiera vilka 3 objekt som finns i varje sammansatt bild.

För denna uppgift har vi gett dig träningsdata och det är inte tillåtet att hitta egen träningsdata på internet.

Input

Ladda ner filen med test- och träningsdata. Den finns längst ner under ”attachments”. Du kommer att få en zip-fil som innehåller:

  • train.csv - Sökvägar till Harrys rena teckningar och deras etiketter

  • test.csv - Sökvägar till Harrys sammansatta klotter

  • train_images/ - Harrys rena individuella teckningar

  • test_images/ - Harrys sammansatta klotter (3 objekt sammanslagna)

  • image_merge.py - Exempelskript som visar hur Harry skapar sina sammansatta klotter

Output

För varje testbild ska du skriva ut exakt 1 rad med 3 objektnamn separerade med mellanslag. Ordningen på objekten i din utskrift spelar ingen roll.

Example

Input: Två sammansatta klotter:

  • Första bilden innehåller: beach, bear, arm

  • Andra bilden innehåller: coffee_cup, diving_board, guitar

Output:

beach bear arm
coffee_cup diving_board guitar

Scoring

Din lösning kommer att utvärderas baserat på hur korrekt du identifierar de 3 objekten i varje sammanslagen bild. Poängen beräknas enligt följande:

  • För varje testbild får du 1 poäng för varje korrekt identifierat objekt

  • Du kan få maximalt 3 poäng per testbild

  • Din slutpoäng är baserad på det totala antalet korrekt identifierade objekt dividerat med det totala möjliga antalet poäng (3 * antal testbilder)

Dina slutpoäng beräknas enligt följande:

Om $S$ är det totala antalet korrekt identifierade objekt över alla testbilder dividerat med det totala möjliga antalet poäng (i huvudsak, din noggrannhet), så är dina slutpoäng:

\[ \text{Points} = \max \left(0, \min \left(100, \frac{S}{0.65} \times 100 \right)\right) \]

Vid slutet av tävlingen testas alla lösningar om på resterande 70% av datan. Din poäng i slutet av tävlingen är alltså endast poängen på de resterande 70% av datan, de 30% som du testats på hittills har ingen påverkan. Det är garanterat att de 30% som testas under tävlingen har valts uniformt slumpmässigt och är helt disjunkta från de 70% som du testas på i slutet. Därmed borde resultaten på de 30% som du testas på under tävlingen ses som en stark indikator på hur bra din lösning är. Samtidigt är det dåligt överanpassa (overfitta) din lösning till testdatan.

Please log in to submit a solution to this problem

Log in