I did a community cleanup in my municipality (East of Toronto) last weekend. I can tell you with 100% certainty that it doesn't matter how many bins you have, or how state-of-the-art they are, or how accessible they are, because people will purposely throw garbage on the floor because they can.
Enforce littering bylaws, and in addition to a very hefty fine ($10,000+), have them do mandatory community cleanup for at least a year.