Ergebnis 1 bis 10 von 19

Baum-Darstellung

  1. #1
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard Free-Hack Allgemeiner Coding Wettbewerb


    Da die Frage nach einem solchen Wettbewerb aufkam, gibt es jetzt auch einen

    Bei diesem Wettbewerb stelle ich die Aufgabe und wenn es gut läuft, gibt es sicher auch noch weitere Wettbewerbe.

    Also um was geht es (Hintergrund):
    Es wurde immer mal wieder gefragt wie man CAPTCHAs in Account-Checkern anzeigt.
    Diese Aufgabe soll die Grundlagen eines OCR-Systems (Optical Character Recognization) vermitteln.
    Der Einfachheit halber geht es dabei jedoch nicht um das Erkennen von Buchstaben, sondern von einfachen geometrischen Figuren (genauer gesagt Dreiecke, Vierecke und Kreise).

    Um was geht es also genau?
    Ein Bild, das jedes mal von einem PHP Skript neu generiert wird (also gibt es immer genug Testobjekte) kodiert einen 4-Zeichen langen String (das Verfahren wird auf der Webseite erläutert), den es zu dekodieren gillt.

    Welche Programmiersprachen sind erlaubt?
    Prinzipiell alle.

    Wieviel Zeit steht zur Verfügung?
    Ich habe so an 3 Wochen gedacht.
    Also genug Zeit.
    Abgabeschluss: 02.10.2009

    Wie Parse ich Bilder?
    Das müsst ihr wissen.
    Ich kann folgendes Sagen:
    mit PHP solltet ihr die GD Funktionen nutzen ( http://us2.php.net/manual/en/book.image.php )
    mit C bzw. C++ empfiehlt sich ebenfalls GB ( http://www.libgd.org )
    hpoc_ meinte mit Perl könnte man ImageMagick nutzen ( http://www.imagemagick.org/script/perl-magick.php )
    ThePapst hat gesagt die "Graphics" Klasse aus dem "System"-Namespace stellt unter .NET die nötigen Methoden zur Verfügung.
    Wenn jemand sonst noch Tipps hinsichtlich der Bildbearbeitung in anderen Sprachen hat, kann er diese gerne hier posten.

    Gibt es Preise?
    Es wird momentan noch über mögliche Preise nachgedacht, jedoch möchte ich nicht in Aussicht stellen, dass es welche geben wird.
    Wer mitmacht, macht das in erster Linie wegen dem Spaß am Programmieren und Lösen von Problemen.
    Also kurz gesagt: vielleicht gibt es was, aber macht euch keine Hoffnungen.

    Gibt es sonst noch was zu beachten?
    Die vom Skript "image.php" (siehe Link unten) erzeugten Bilder sind Paletten-Bilder.
    Dies macht diese zwar kleiner, aber die echten RGB-Werte auszulesen etwas kniffliger.
    Also überlegt euch was um Paletten-basierte Bilder in TrueColor-Bilder umzuwandeln, sonst werden eure Resultate etwas verwunderlich.

    Wie groß wird das Programm?
    Schwer zu sagen. Meine Lösung in C umfasst zwei Dateien und eine Summe von 285 Zeilen (nein, ich nehme nicht Teil, ich wollte meine Aufgabe nur testen).
    Da das Programm in C geschrieben ist, kann es sein, dass man in Sprachen wie Perl weniger Zeilen/Zeit braucht, da man dabei nicht so auf Datentypen usw. achten muss.
    Gebraucht habe ich ~2 Stunden - ausgegangen davon, dass ich mich mit LibGD2 schon auskannte, eine Idee zur Umsetzung hatte und sowas ähnliches schonmal gemacht hatte.
    Ich meine also 3 Wochen sind für so eine Aufgabe genug Zeit - auch für eventuelle Optimierung und Feinabstimmung.

    Was wird bewertet?
    In erster Linie die Funktionalität. Wenn das Programm die Aufgabe zuverlässig (also bei jedem Bild!!) erfüllt ist das schonmal ein Pluspunkt.
    Im weiteren wird die Art der Lösung bewertet: wie effizient wird das Bild geparst, auf welche Art werden die Figuren erkannt (dabei gibt es zweifellos mehrere Möglichkeiten).
    Ob die Lösung die schnellste ist, oder nicht wird nicht bewertet (allein schon deshalb, weil die Sprachen an sich unterschiedliche Laufzeiten besitzen).
    Eine Lösung die mehr Aufwand (Code, oder komplexere Überlegungen) benötigt, aber das Problem auf kreative Weise löst wird auf keinen Fall schlechter bewertet.

    Wer bewertet?
    Das Free-Hack Team (in erster Linie wahrscheinlich die Mods der entsprechenden Sections).

    Muss das Programm die Bilder von image.php downloaden und dann parsen?
    Das wäre zwar nett, aber ich stelle es nicht als Anforderung.
    Bei dem Wettbewerb sollten alle gängigen Sprachen eingesetzt werden können.
    Das Bild zu downloaden hat wieder mit Sockets und Networking zutun.
    Das mag in einigen Sprachen einfach sein, ist es jedoch nicht in allen und es wäre darum unfair Leuten, die gerne in Sprache XYZ programmieren abzuverlangen einen eigenen HTTP-Client zum Download zu schreiben, während andere nur ein Paket importieren und eine Funktion aufrufen um das selbe zu bewerkstelligen.
    Die Antwort auf die Frage ist also: nein, die Bilder können auch auf der Festplatte sein.
    (das soll aber niemanden hindern, der das trotzdem gerne einbauen würde)

    Wo wird abgegeben?
    Bei mir. Am besten per PM (die Sources werden am Schluss alle veröffentlicht).
    Bitte nicht hier reinschreiben, weil es bei dieser Aufgabe hauptsächlich um das erkennen des Problems und finden eines Lösungswegs dafür geht (die Umsetzung ist weniger schwierig) und das Posten von Sources den anderen Teilnehmern diesen Prozess abnehmen würde - ihr würdet also nur der Konkurenz helfen.

    Anforderungen an den Sourcecode?
    Es werden keine fertigen Programme akzeptiert - das sollte klar sein.
    Der Sourcecode sollte also gut lesbar sein (Einrücken und ein guter Stil sind Pflicht!!) und Kommentare enthalten.
    Zum Thema Kommentare: jeder weiß was eine Funktion ist, also kommentiert bitte euren Denkprozess und dessen Umsetzung im Code und nicht jede Zeile.

    Wer beantwortet meine Fragen?
    Der Wettbewerb wurde intern diskutiert und die Moderatoren für die einzelnen Programmiersprachen, die hier im Forum gängig sind stehen dahinter.
    Solltet ihr also Fragen bezüglich Bildverarbeitung haben könnt ihr die entsprechenden Moderatoren ansprechen.
    Solltet ihr Fragen zu den Bildern oder der Aufgabenstellung haben bin ich euer Ansprechpartner (am besten hier im Thread).

    Wo kann ich anfangen?
    Wenn ihr hier angekommen seid und Lust auf die Aufgabe habt, dann findet ihr eine genaue Beschreibung des Sachverhalts, sowie den Sourcecode des Bildgenerators und Beispiele dort:
    http://webctf.kilu.de/blackberry/
    (danke an tmh für's uploaden <3)

    Wer hat schon abgegeben?
    (1) bl0b; Sprache: C++; Zeilen: 90; Arbeitszeit: 30 min (nach seiner Angabe); schöner Code, schöne Lösung
    (2) naroht; Sprache: Java; Zeilen: 241; sogar mit GUI und lädt die Bilder auf Knopfdruck neu von der Webseite - nett
    (3) Mr. Loom aka crusher; Sprache: C; Zeilen: 225; vollkommen anderer Ansatz als bei den ersten beiden - funktioniert einwandfrei
    (4) h0yt3r; Sprache: Perl; Zeilen: 75; hübsch
    (5) EBFE; Sprachen: Java + Prolog; Zeilen: 92;
    (6) -tmh-; Sprache: Delphi; Zeilen: 262;
    (7) finsternacht; Sprache: Python; Zeilen: 250;
    // die Nummerierung entspricht den Abgabezeiten und stellt keine Wertung dar!
    // Zeilenangaben mit Kommentaren

    Viel Spaß!
    mfG. BlackBerry
    Geändert von blackberry (17.09.2009 um 23:34 Uhr)

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •