The use of the umbrella term, "homeless" is the first thing that has to change. Some of these street people are quite at home where they are. Some are mentally ill. Some are drug addled. Some are forced onto the streets through no cause of their own. 
They should be called vagrants, hospital-less, rehabless etc., anything but homeless. At least that way an appropriate assessment  for each classification can be made.