Google AI now estimates body fat from a single selfie Google has introduced an AI model that estimates body fat from a single selfie, with a mean absolute error of about 3.8% across BMI 18–35, using a MobileNetV3-small backbone with 1.2 million parameters quantized to INT8 for on-device inference at ~35 ms on the Tensor G2 NPU. The model, which uses a two-stage curriculum training on synthetic 3D meshes and real DEXA data, is integrated into Android via a new BodyCompositionManager class in Play Services 24.20, with privacy preserved through on-device inference and optional opt-in to Health Connect. However, clinical utility is limited for visceral fat differentiation, and generalization across ethnicity and age remains unvalidated, with the DEXA cohort being 72% White, 14% Asian, 9% Black, and 5% Other, mean age 34. Google AI now estimates body fat from a single selfie What caught my attention isn't the headline accuracy — MAE around 3.8 % across BMI 18–35 — it's the architecture choices that make this deployable on-device. The backbone is a MobileNetV3-small variant stripped to 1.2 M parameters, quantized to INT8 with TensorFlow Lite. That puts inference at ~35 ms on the Tensor G2 NPU, leaving plenty of thermal budget for the camera pipeline. Google didn't publish the full training recipe, but the supplementary material hints at a two-stage curriculum: first a synthetic pre-train on 3D human meshes SMPL-X + randomized lighting/backgrounds , then fine-tune on the real DEXA pairs with heavy mixup and cutout augmentation. Smart way to sidestep the scarcity of labeled medical imaging data. Privacy model is the usual on-device inference pitch: image never leaves the phone, only the scalar output hits the Health Connect API if the user opts in. Still, the attack surface is non-trivial. A malicious app with camera permission could theoretically reconstruct a rough body-shape embedding from repeated queries — membership inference on the latent space, basically. Google says they add Gaussian noise σ = 0.02 to the logits before returning the value, but the noise budget isn't user-configurable and there's no formal DP guarantee in the whitepaper. Clinical utility? Debatable. DEXA remains gold standard for visceral vs. subcutaneous differentiation; a 2D projection fundamentally cannot separate the two. For population-level screening or longitudinal self-tracking it's probably fine — think "am I trending up or down over three months" rather than "do I have metabolic syndrome." The error bars widen sharply above 35 % body fat and below 18 %, exactly where clinical decisions matter most. Integration path looks straightforward for Android devs: new BodyCompositionManager class in Play Services 24.20, single estimateBodyFat bitmap call returns a BodyFatResult with confidence interval. iOS support is "under evaluation" — read: waiting for Core ML conversion to finish. Biggest unanswered question: generalization across ethnicity and age. The DEXA cohort was 72 % White, 14 % Asian, 9 % Black, 5 % Other, mean age 34. If the model systematically underestimates visceral fat in South Asian phenotypes known higher cardiometabolic risk at lower BMI , that's a health-equity issue waiting to happen. Google says a broader validation study is underway; no timeline given. Would I ship a feature on top of this today? For a consumer wellness dashboard with clear "not medical advice" disclaimers — yes. For anything that touches insurance underwriting or clinical pathways — hard no until external replication lands. Google drops twelve billion on Marvell for next-gen TPU work 1h ago /en/news/7054/ Google is buying up Spirit Airlines data for some reason 1d ago /en/news/6840/ Google just bought Spirit Airlines' data at auction to feed its 2d ago /en/news/6783/ Google is dropping $10 million on Spirit Airlines business data 2d ago /en/news/6749/ Google just snagged a goldmine of Spirit Airlines data from a 2d ago /en/news/6747/ Google is buying Spirit Airlines' data to feed its AI models 2d ago /en/news/6730/ Next Rethinking LLM scaling after Jie Tang's latest breakdown → /en/news/7056/