I finally decided to learn PLL recognition using information from only two sides. Since I didn't find any computer help for learning this, I decided to implement it myself. (I know about "Drill Sergeant", which is good for practicing recognition + execution, but not perfect if you only want to practice recognition as efficiently as possible.)
I decided to use "Anki", http://ichi2.net/anki/, and I have created two "decks". One deck is called "Rubik's cube PLL decision tree" and helps you memorize the decision tree I use for recognition. The other deck is called "Rubik's cube PLL recognition", and lets you practice recognition for all the 288 possible PLL states.
and the corresponding answer:
The images were generated by a quick and dirty python program that I wrote: http://web.telia.com/~u89404340/rubik/pll.py
In case you don't want to use anki, but are still interested in the decision tree, here is a link to a text description. I hope it is understandable:
I'm sure there are many different ways to create the decision tree, and my way is probably not the best possible way. However, I hope that with enough practice, I will be able to "instantly know" the PLL state without using any concious thinking. When I reach that state, the decision tree will largely become irrelevant.
I'm not there yet though. My average time with my old recognition method (look at all sides and identify blocks) was about 24s. When using 2-side recognition, my median time is currently about 29s.
I also have a question. Together with the 2-side recognition, I also stopped doing cube rotations before the PLL. However, in some cases this means I have to do for example "U + alg + U'" instead of "rotation + alg". Any opinion on which is faster? One cube rotation or two U turns?