In your sentence, the following expressions can be used interchangeably with no difference in meaning: "perceive", "recognize", "realize", "come to understand", "become aware of".
Even though they mean the same in your sentence, "perceive" and "realize" have slightly different meanings. If you look at the history of "perceive", you will find that it comes from an Indo-European (very very old) root that means "capture" or "take in". To perceive something means to take it in THROUGH ("per-") your senses (hearing, feeling, touch, sight, and taste). It is similar to "realize" except that "realize" makes no mention of the senses. "Realization" is a purely cognitive synthesis that you can accomplish even while you lie on your back with your eyes closed. The words are so close though that people will often use them interchangeably.
"Knowledge" is something else entirely.