At least 29 people have been killed after a bus they were travelling in went off an expressway in the northern Indian state of Uttar Pradesh.

The crash happened early Monday near the city of Agra, 336km from the state capital, Lucknow.

Reports say the driver fell asleep and lost control of the double-decker bus before it went off a highway and plunged into a canal.

The bus was carrying about 50 people and travelling from Lucknow to the Indian capital, Delhi.

Locals rushed to the spot to help and rescued 20 injured passengers

Road accidents in India are usually blamed on badly maintained vehicles, poor driving and the state of the roads.