Frage

Ich habe eine Website, die Benutzer Bilder von Autos hochladen kann, und ich mag einen Privacy-Filter an seinem Platz setzen Kennzeichen am Fahrzeug zu erkennen und verschwimmen sie.

Das Verschwimmen kein Problem ist, aber gibt es eine Bibliothek oder Komponente (Open Source bevorzugt), die mit der Suche nach einer Lizenz in einem Foto helfen?

Caveats;

  1. Ich weiß nichts perfekt ist und Bilderkennung dieser Art wird falsch positive und negative liefern.
  2. Ich schätze, dass wir die Benutzer fragen, könnten den Bereich auszuwählen, zu verwischen, und wir werden dies auch tun, aber die Frage ist, speziell über diese Daten programmatisch zu finden; so Antworten wie ‚bekommt eine Person jedes Bild zu überprüfen,‘ ist nicht hilfreich.
  3. Diese Software-Methode ‚Automatic Number Plate Recognition‘ in Großbritannien genannt, aber ich kann keine Implementierungen davon als Bibliotheken nicht sehen.
  4. Jede Sprache ist groß, obwohl .Net bevorzugt.
War es hilfreich?

Lösung

I codiert eine C # Version basierend auf JAVA ANPR, aber ich änderte die AWT-Bibliotheksfunktionen mit OpenCV. Sie können es unter http://anprmx.codeplex.com

Andere Tipps

Bearbeiten . Ich schrieb ein Python-Skript für diese

Als Ihr Ziel (für den Schutz der Privatsphäre) verschwimmt, müssen Sie im Grunde ein hoch Detektor als erster Schritt wieder zu verwenden. Hier ist, wie über das tun dies zu gehen. Die mitgelieferten Codehinweise verwenden OpenCV mit Python.

  1. In Graustufen konvertieren.
  2. Anwenden Gaussian Blur.

    img = cv2.imread('input.jpg',1)
    img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    img_gray = cv2.GaussianBlur(img_gray, (5,5), 0)  
    

Lassen Sie das Eingangsbild folgendes sein.

eingeben Bildbeschreibung hier

  1. Anwenden Sobel-Filter auf vertikale Kanten zu erkennen.
  2. Threshold das resultierende Bild strenge Schwelle oder OTSU des Digitalisierungs verwenden.

    cv2.Sobel(image, -1, 1, 0)
    cv2.threshold() 
    
  3. Tragen Sie eine Morphologische Schließen durch geeignetes Strukturierungselement verwendet wird. (I verwenden 16x4 als strukturierendes Element)

    se = cv2.getStructuringElement(cv2.MORPH_RECT,(16,4))
    cv2.morphologyEx(image, cv2.MORPH_CLOSE, se)  
    

resultierendes Bild nach Schritt 5.

eingeben Bildbeschreibung hier

  1. Finden Außenkonturen dieses Bildes.

    cv2.findContours(image, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE) 
    
  2. Für jede Kontur, findet die minAreaRect() es begrenzen.

  3. Wählen Sie Rechtecke basierend auf Seitenverhältnis, Minimal- und Maximalbereich und Winkel mit der Horizontalen. (I verwenden 2.2 <= Seitenverhältnis <= 8, 500 <= Bereich <= 15000 und Winkel <= 45 Grad)

Alle minAreaRect()s sind in orange und derjenige dargestellt, die in grün ist unsere Kriterien erfüllt.

eingeben Bildbeschreibung hier

  1. Es kann zu Fehlalarmen kommen nach diesem Schritt, sei es zu filtern, Kantendichte verwenden. Kantendichte wird als Anzahl der weißen Pixel / Gesamtzahl der Pixel in einem Rechteck definiert. Stellen Sie einen Schwellenwert für die Kantendichte. (I verwendet 0,5)

eingeben Bildbeschreibung hier

  1. die erfassten Regionen Blur.

eingeben Bildbeschreibung hier

können Sie andere Filter anwenden Sie für geeignet gehaltenen Rückruf und Präzision zu erhöhen. Der Nachweis kann auch Präzision mit HOG + SVM trainiert werden, erhöhen.

Es gibt eine neue Open-Source-Bibliothek auf GitHub, die ANPR tut für die USA und europäische Platten. Es sieht ziemlich genau, und es sollte genau das tun, was Sie brauchen (die Plattenbereiche erkennen). Hier ist das GitHub Projekt: https://github.com/openalpr/openalpr

Ich kam in diese, die javaANPR , ich auch für ac # Bibliothek suchen.

würde ich ein solches System, wo ich eine Videokamera an einigen Segelbooten zeigen kann, von denen alle große, erkennbare Zahlen auf sie haben, und haben sie die Boote identifizieren und einen Tweet senden, wenn sie an einer Videokamera segeln.

Ich habe vor einigen googeln darüber ein paar Monate getan. Es gibt durchaus ein paar Papiere zu diesem Thema, aber ich habe nie eine konkrete Open-Source-Implementierung gefunden. Es gibt obwohl, aber keiner von ihnen mit einem Preisangebot, so sind sie wahrscheinlich ziemlich teuer.

Versuchen Sie dieses einfache automatische Kennzeichenerkennungssystem

http://opos.codeplex.com/

Open Source und geschrieben mit C #

Hier finden Sie aktuelle Java ANPR . Freie Kfz-Kennzeichenerkennung ...

Ja ich gocr unter http://jocr.sourceforge.net/ seine eine Kommandozeilen-Anwendung, die Sie könnte aus Ihrer Anwendung ausführen. Ich benutze es in ein paar meiner Anwendungen.

Hochleistungs ANPR-Bibliothek - http://www.dtksoft.com/dtkanpr.php. Dies ist kommerziell, aber sie bieten Testschlüssel.

http://licenseplate.sourceforge.net Python (ich habe es nicht getestet)

Es funktioniert vielleicht bei Character recoqnition Software suchen, da es viele Bibliotheken gibt, die die gleiche Sache durchführen. Ich ein Bild zu lesen und zu speichern es. Micrsoft Büro ist in der Lage TIFF-Dateien und das Rück alphanumerics lesen

Das Verschwimmen kein Problem ist, aber gibt es eine Bibliothek oder Komponente (Open Source bevorzugt), die mit der Suche nach einer Lizenz in einem Foto helfen?

Antwort: Die CARMEN Free Flow ANPR Software-Engine (Commerical)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top