This has helped me...
Finding Your Dominant Eye for Billiards...
http://www.billiardsforum.info/pool-playing-tips/finding-your-dominant-eye.asp
Then also reduce the pocket size. There are pocket reducers for sale or if you have your own table, you can shim the pockets.
Then there is a very small area the ball can go into and make the pocket.
You *have* top learn to aim very accurately for every shot. (Not just send the ball that direction.)
On my table at home, I take a construction chalk line...
Like this one...
http://www.capcityequipment.com/gchalk0906.html
...and make an accurate straight line on the cloth from one corner pocket to the opposite diagonal corner pocket.
Then I can set the cue ball and object ball anywhere along that line. The hardest shot is cue ball near a corner and object ball in center of table.
Then with my shimmed pockets, I have to shoot these straight in shots very accurately. The balls are both on the line on the table (straight in), so if I miss, I know it is something with my sight or stroke. I leave the tip of my cue pointing at the pocket I am aiming at after shooting. Good set-up for troubleshooting you sight or stroke. Have someone watch you if you are missing shots. Or videotape yourself from pocket you are aiming at. Play back in slow motion.
Also you can do combination shots where there is a couple of diamonds space between both object balls. And far object ball at least one diamond away from the pocket. You *have* to get the first ball to hit the second ball *very* accurately to make this shot. Mark the spots where the balls go so you can shoot the same exact shot over and over.
Shoot this shot 100 times. Although this is very frustrating, you will learn to aim very accurately - figure out what you are doing wrong...