How about using a vacuum and/or rake to pick up EVERYthing on the ground the size of a cigarette butt or smaller (limit the size of the intake on the vacuum and/or make the width between rake blades the proper size) , and spitting it out into a chamber with some kind of screen mesh. Using gravity, stuff smaller than cigarette butts would fall through, leaving the butts.
Seems complicated... kind of like a typical FIRST robot
Jacob