plan_v3
Table of Contents
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
C++-Bibliotheken evaluieren:
- JSON-Bibliotheken: http://www.json.org/
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
- Helmholtz Feature http://www.optinav.com/helmholtz.pdf
- Glanz-Erkennung
- Muster / Markenlogo besser erkennen
- Segmentierung / Produktfreisteller (Region-Growing als Alternative für GrabCut, LaticeCut, LevelSetMethoden prüfen) (s.a. Segmentierung)
- Exact Legendre Moments http://arxiv.org/pdf/1005.5437v1.pdf
- Scale-invariance in local heat kernel descriptors without scale selection and normalization http://hal.archives-ouvertes.fr/docs/00/44/26/19/PDF/RR-7161.pdf
- Erkennung vom Geschlecht
- Thema von DamenOberBekleidung/Krinstina/Otto: Trends (metallic, Tiermuster)
- Erlaubter Zeichensatz in den feed-Dateien (positiv Liste) alles auf das [^a-zA-Z_0-9\\s\\-+*=!?$#&@:.;|,ۤ/&()~%] zutrifft wird durch _ ersetzt
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