It's possible to do some stuff with optical sensors. But without real block detection your signal system could only perform in a realistic manner under limited operations scenarios. For example, if you basically always have one train running in the same direction on a single loop, it wouldn't be too hard to use optical sensors in lieu of real block detection. You could place infrared sensors with beams running across the track. Possibly it wouldn't be too hard to program that for running the train in both directions, but hey, you asked for 'easy'. Now you're getting away from that.
Now say you have a double track loop with the tracks right next to each other and the trains running in opposite directions, well, then it's probably going to be difficult to detect the tracks separately with inconspicuous sensors. (Maybe it works if you have strategically placed tunnels you can put them inside, so you can place separate sensors above the tracks instead of across them. Other ingenious methods may be possible.... but again, you asked for 'easy'.) And if you have multiple trains entering and exiting frequently from different routes, it's going to be difficult to program the signals realistically with only optical sensors.
As far as making this work, the only 'off the shelf' system I'm aware of that could take an optical sensor and make it part of a logical signal system is JMRI and RR-Cirkits Tower Controller series. All other products that I'm aware of require cutting rails to separate blocks. If you really want to do easy and cheap, there is a Kato signal product that uses a timer, but as you mentioned that would not account for if the trains stops or slows.
Is your layout DC or DCC, and if DCC are your turnouts DCC controlled?