まず、非常に興味深い質問を投稿していただきありがとうございます。
まもなくそれに答えるために、バニラconvnet訓練されたエンド2エンドは、あなたが投稿一つとして誤分類画像に、一般的になりやすいだろう写真から年齢を予測します。第二に、人の年齢を正確に推定することはほとんど不可能であることに注意してください1。
一部のオブジェクト検出器(RCNN、Faster RCNN、YOLO、SSDなど)を使用して提案したアプローチとの主な違いは、モデルのトレーニングに異なる情報を使用していることです。CNNは画像のみでトレーニングされ、必要な機能すべてを見つける必要があります。さまざまな顔の特徴が見つかる可能性が高いですが、衣服やおそらくシーンの特徴にも依存します(子供は多くの場合、おもちゃで写真に写り、大人はオフィス環境にいる可能性が高いなど)。これらの機能は、反例に対して堅牢ではありません。
一方、オブジェクトを「胴体」および「頭」として明示的に検出するようにネットワークをトレーニングすると、これらのオブジェクトがタスクにとって重要であるという追加情報が提供され、問題が単純化されます2。
頭と胴体を検出し、境界ボックスのサイズ比を評価するアプローチは興味深いように聞こえますが、いくつかの障害があることがわかります。
- データの取得:年齢ボックスと境界ボックスの両方が存在する大規模なデータセットが利用できるかどうかはわかりません。
- 不完全なFOV:ほとんどの画像(例、両方の例)では、人物が完全に表示されません。人物の一部が画像内になく、ネットがどれだけ大きな部分が欠けているかをネットが推測する必要があるため、胴体のバウンディングボックスが常に完全であるとは限らないという事実に対処する必要があります(そしてグラウンドトゥルースのバウンディングボックスが最もおそらくこの情報はキャプチャされません)。また、前述のオブジェクト検出器は、部分オブジェクトの予測を常に適切に処理するわけではありません。これにより、モデルに過度のノイズが発生する可能性があります。
- さまざまなポーズ:胴体と頭の比率は、正面と横から見た人では大きく異なります。
- 大人:この比率は0歳から21歳までの年齢を予測するのにうまく機能しているようですが、大人の年齢を予測するのにどのように役立つかはわかりません(比率が高年齢でも変化しないと思います)。
これらすべての問題は、頭と胴の比率のアプローチも完全には機能しないことを示唆していますが、特定の反例に対してはより堅牢かもしれません。
このタスクを実行する最良の方法は、1)顔を検出し、2)顔の作物からのみ年齢を予測することです(誤解を招く可能性のある情報を削除します)。ROIプーリングを使用する一部のR-CNNのようなアーキテクチャは、これをエンドツーエンドで行うようにトレーニングできることに注意してください。
1非常に高度な医療方法(おそらく人物の写真よりもはるかに有益)を使用しても、正確に行うことはできません。詳細については、このQuoraスレッドを参照してください。
2記事に関する知識の重要性:最適化のための事前情報の重要性の記事で、タスクに関するいくつかの中間的な知識を提供することで学習を大幅に簡略化できる例を確認してください。