Zunächst einmal vielen Dank, dass Sie eine sehr interessante Frage gestellt haben.
Um es kurz zu beantworten: Ein Vanille-Convnet, das Ende-2-Ende trainiert hat, um das Alter eines Fotos vorherzusagen, neigt im Allgemeinen dazu, Bilder wie das von Ihnen veröffentlichte falsch zu klassifizieren . Zweitens ist zu beachten, dass eine genaue Schätzung des Alters einer Person eine nahezu unmögliche Aufgabe ist 1 .
Der Hauptunterschied zu Ihrem vorgeschlagenen Ansatz bei der Verwendung einiger Objektdetektoren (RCNN, Faster RCNN, YOLO oder SSD) besteht darin, dass Sie unterschiedliche Informationen zum Trainieren der Modelle verwenden. Das CNN wird nur auf Bildern trainiert und muss alle erforderlichen Funktionen selbst herausfinden. Es wird höchstwahrscheinlich verschiedene Gesichtsmerkmale finden, aber es wird auch von Kleidung und möglicherweise Szenenmerkmalen abhängen (Kinder sind oft mit einigen Spielsachen auf dem Bild, Erwachsene sind eher in Büroumgebungen usw.). Diese Funktionen sind für Ihr Gegenbeispiel nicht robust.
Wenn Sie andererseits das Netzwerk so trainieren, dass Objekte explizit als "Torso" und "Kopf" erkannt werden, geben Sie zusätzliche Informationen an, dass diese Objekte für die Aufgabe wichtig sind, und vereinfachen so das Problem 2 .
Während der Ansatz, Kopf und Rumpf zu erkennen und dann das Größenverhältnis der Begrenzungsrahmen zu bewerten, interessant klingt, kann ich mehrere Hindernisse erkennen:
- Daten erhalten: Mir ist nicht bekannt, ob ein großer Datensatz verfügbar ist, in dem sowohl Alter als auch Begrenzungsrahmen vorhanden sind.
- Unvollkommenes Sichtfeld: In den meisten Bildern (z. B. Ihren beiden Beispielen) werden die Personen nicht als Ganzes angezeigt. Sie müssten sich mit der Tatsache auseinandersetzen, dass die Torso-Begrenzungsrahmen nicht immer perfekt wären, nur weil ein Teil der Person nicht im Bild ist und das Netz erraten müsste, wie groß ein Teil fehlt (und die Grundwahrheits-Begrenzungsrahmen am meisten würden wahrscheinlich nicht erfassen diese Informationen). Außerdem behandeln die oben genannten Objektdetektoren Vorhersagen von Teilobjekten nicht immer richtig. Dies kann zu viel Rauschen im Modell verursachen.
- Verschiedene Posen: Das Verhältnis von Rumpf zu Kopf wäre für Menschen, die von vorne und von der Seite betrachtet werden, sehr unterschiedlich.
- Erwachsene: Es scheint, dass das Verhältnis gut funktioniert, um das Alter zwischen 0 und 21 vorherzusagen, aber ich sehe nicht ein, wie es helfen würde, das Alter von Erwachsenen vorherzusagen (ich nehme an, dass sich das Verhältnis im höheren Alter nicht ändert).
All diese Probleme deuten darauf hin, dass der Ansatz des Kopf-Rumpf-Verhältnisses auch nicht perfekt funktioniert, obwohl er für Ihr spezielles Gegenbeispiel möglicherweise robuster ist.
Ich denke, der beste Weg, um diese Aufgabe auszuführen, wäre, 1) das Gesicht zu erkennen, 2) das Alter nur anhand der Gesichtsfrucht vorherzusagen (entfernt möglicherweise irreführende Informationen). Beachten Sie, dass einige R-CNN-ähnliche Architekturen, die ROI-Pooling verwenden, für dieses Ende-2-Ende trainiert werden könnten.
1 Selbst mit sehr ausgefeilten medizinischen Methoden (die wohl viel informativer sind als ein Foto der Person) ist dies nicht genau möglich. Weitere Informationen finden Sie in diesem Quora-Thread .
2 Lesen Sie den Artikel Knowledge Matters: Wichtigkeit von Vorinformationen für die Optimierung, um ein Beispiel zu finden, wie das Bereitstellen von Zwischenwissen über die Aufgabe das Lernen erheblich vereinfachen kann.