NutriIngredientNet v3

Itemised, energy-consistent nutrition from one overhead RGB photo (Nutrition5k, official RGB split). v3 adds a direct totals head and reconciles the itemised breakdown to it, buying top-down accuracy without giving up the audit trail. Scaling all grams by one factor preserves the Atwater identity exactly (verified numerically in §12).

Test results (official RGB split, calibrated T=1.04, thr=0.78, TTA=True)

  • Detection: P 0.67 / R 0.57 / F1 0.62 (freq-prior F1 0.22)
  • Grams MAE: 18.5 g (oracle-presence mean-gram baseline 23.5 g)
  • Per-ingredient kcal MAE (reconciled, TPs): 25.2 kcal
  • Dish kcal MAE by estimator (vs T2 real vocab-covered): hard 127.0 soft 79.0 direct 80.0 recon 79.7
  • Best estimator: soft | T3 (paper-comparable) 78.0 kcal
    • reference: Nutrition5k RGB-only 2D-direct baseline = 70.6 kcal (26.1%)
    • previous version (v2, bottom-up only) = 117.8 kcal (46.6%)
  • OOV ceiling: 7.7 kcal | cost of exact energy consistency: +0.0 kcal
  • Conformal set (lambda=0.29): target recall >= 90%, empirical 0.843, avg set size 10.9
  • Gram intervals: +/- 0.81 x mean_gram, empirical coverage 0.877

Honest limitations

  • Fixed camera geometry. Nutrition5k's camera height never changes, which is the only reason apparent size maps to grams. On an uncalibrated phone photo, scale is unrecoverable from a single view — this model is NOT validated for in-the-wild phone photos.
  • Nutrition = grams x a fixed per-gram table; the network does detection + portion only. That is what buys exact energy consistency and auditability.
  • 164-ingredient vocabulary; out-of-vocab food is invisible (8 kcal ceiling).
  • Conformal guarantees assume val/test exchangeability, which the official split does not perfectly satisfy; empirical numbers above.
  • Depth-as-privileged-information head: disabled.
Downloads last month
23
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support