User Tools

Site Tools


plan_v3

Planung V3

<HTML><ol></HTML>

  • Experimente / Evaluierung einzelner Feature; Wissen sammeln; Alg. bewerten
  • Erzeugen des Kernsystems
  • Aufstellen der Benchmarks und Testsets
  • Einbau der Alg. für Segmentierung, Farbe, Form und Textur
  • Test und QM, Anpassungen → (Alpha, Beta, RC, Live)
  • Bier öffnen<HTML></ol></HTML>

Ziele:

  • Geschwindigkeit und Stabilität
  • Skalierbarkeit

Zur Geschwindigkeit:

  • Bildanalysezeit: 0.2 Sek / Bild
  • Datafeedanalysezeit: 1.000.000 Bilder = Ups (5 Stunden), So lala (3 Stunden), Geil (1 Stunde)
  • Queryzeit: unter 0.2 Sek / Anfrage
  • Hölle schnell :-) (Zeitansatz ca. 70k Bilder inkl. Download in < 1h (ca. 20 Img/sec), bei Ausnutzen der aktuell möglichen Parallelisierung) (1M Img/h bei bestehendem System (24 cores) sind das ca. 80ms/Img)

C++-Bibliotheken evaluieren:

Pakete für Alg. Bewertung / Implementierung

Pre-Processing:

  • Bildkorrektur für Mobile
  • SLIC - Superpixel
  • Felzenszwalb
  • Split and Merge
  • Saliency Map
  • Geodesic Image Processing

Feature: (Farbe/Form/Textur/Schlagwort)

  • Wavelets
  • Dimensionsreduktion (nicht) linear
  • Houghlines 2.0
  • Gist
  • Textur-Classifier
  • Moments verschiedene Varianten
  • Simpler Kategorisierer
  • Tamura + machine learning
  • Radon Transform (in pHash-lib schon implementiert)

Download:

  • CSV-Dateien komprimiert runterladen. D.h., mittels des Apache anfordern falls WWW. (wget -O - –header=“Accept-Encoding: gzip”)

Machine Learning:

  • Kohonen-Netze mit paraller Verarbeitung, inkl. Indizierung (schneller suchen) (MT)
  • genetische Optimierung von Parametern
  • Stichwort Ausreißer: Outlier Detection (SVM)

Aufgaben beim Systemdesign

  • Optimierung der DB-Verbindungen
  • System-Design
  • Workflows definieren
  • FMEA
  • Definition von stabilen Interfaces
  • Randbedingungen definieren
  • Unit-Tests
  • Nagios-Checks für Dienste
  • Optimierung Verarbeitung CSV-Dateien
  • Optimierung Crawler-Komponente
  • Definition Prozesse für Versionskontrolle / Deployment(Releases)
  • Kapslung in einer Bibliothek
  • Update Überwachung für kritische Komponenten
  • available-Feld vom Kunden parsen und in eine einheitliche Darstellung für unser System (0/1) überführen (Notwendig für VisualMail)
  • für jede collection in der mongodb beschreiben welche indizes gesetzt sein müssen

Monitoring (Nagios)

  • mongodb und monetdb auf Funktion prüfen
  • feed_updates prüfen, ob updates länger als xh laufen, dann Meldung
  • Anzahl Aufgabenpakete in der Query, wenn länger als x, dann Meldung
  • Status-Seite zu Kunden

Memory

Lessons learned aus der v2

  • Wenn der feed vom Kunden kommt und er soll utf8 sein, gehe davon aus das er es nicht ist.
  • Wenn du einen String in die db schreibst stelle sicher das er utf8 ist, wenn das nicht notwendig ist, da er schon utf8 ist → lese diesen Eintrag von vorn.
  • Die Liste mit erlaubten Zeichen in Strings hat sich bewährt.
  • Gesichtserkennung kostet relativ viel Rechenzeit, eine Hauterkennung wäre zielführender wenn sie schnell ist.
  • Die Datenbanken skalieren allgemein nicht linear.
  • Replikation von Konfigurationen, keine Einzelanpassung.
  • Klare Definition von Schnittstellen, keinen bypass.
  • Reproduzierbare Testsets erstellen.
  • Von Beginn an Definieren was ins Monitoring soll.
  • Für alle Schnittstellen Rbd. festlegen und im Wiki dokumentieren.
  • Querys verwenden um Schreibprozesse auf dbs serialisieren zu können und die Server besser auszulasten.
  • Die inserts (bei updates) für die mongodb optimieren um möglichst wenig last zu erzeugen.
plan_v3.txt · Last modified: 2024/04/11 14:23 by 127.0.0.1