Obesity is not the issue causing this. India has an almost billion person population with a 15% obesity rate with 0 medals while the US has a 33% obesity rate with 80 medals and a third of the population.
Funding and culture are the biggest issues. The only sport Indians care about and that you can financially support yourself professionally is in cricket. Unsurprisingly India is quite good at cricket and would def. have some medals if it was an Olympic sport.
The truth is that indian has millions of potential athletes who never pursue their passion because they are pressured by parents to focus on academics and other areas. There is no culture glorifying athletes. The few who do end up being athletes play cricket.