I am extremely short sighted. The glasses you wear when you're shortsighted basically make the image you can see clear, but smaller. So I have to be pretty close before I'll recognise anyone anyway.
On top of this, I can't imagine someone's face, in my mind. I can learn to recognise people, but it takes a while. I usually just tell people that I have very poor eyesight, as that's quicker to explain.
If it's a bit dark I have no chance of recognising people, and have been known to look a friend straight in the eyes and turn away, still looking for them. (I only know this as my children told me that's what happened afterwards!)
Online dating was a bit of a nightmare, especially on the second or third date when they kind of expect you to remember what you look like. I realised that I've developed a strategy of going to the place where I've agreed to meet someone, and when I get there, I deliberately don't look for them. I go in the door and get out my mobile phone or something, and stare at that until they come up to me and say hello. This is to avoid the awkward situation of me looking straight at them, totally blankly :)
Unfortunately, this doesn't always work either, as you sometimes get someone apparently greeting you, so you give them a big smile back, until it turns out they were smiling at someone just behind you.
I've become the master of pretending to have been smiling about something else.