I think that is a valid concern.
So one of the things we can do for people who don't have proper identification is have them fill out a statutory declaration. Typically this is done in front of a police officer, lawyer, doctor, military officer, notary, etc., but we could also extend this to school teachers, church leaders, shelter executives, etc. You would have that statutory declaration address the specific requirements of the election and it would then be presented as proof of identification. "This is a man who has used my shelter from time to time for the past several years. I know he is older than 18 years old, and that he resides in the area."
Now it is conceivable that a person could lie, or misrepresent themselves, but it would be immediately obvious for investigators, because they just submitted a legal document outlining exactly how they lied. It is also enough of a hoop to dissuade those with bad intentions, while also not being significantly difficult for a homeless person who wants to vote.
One of the nice parts about this is that you could create a job position specifically dedicated to doing these declarations. Do some outreach. Have these documents available at shelters and needle clinics and libraries and hospitals. The number of homeless people who vote is very low, but I overall agree that people in exceptional circumstances should be given leeway when it comes to a right such as voting.