Inspired by similar works, such as Giuseppe Sollazzo’s “I calculated the average face of the UK Member of Parliament” and redditor /u/ everest4ever’s “Average face of the Chinese Bureaucracy“, I decided to calculate the average face for the Members of the European Parliament, and see what our average representative in Brussels/Strasbourg looks like. The following results are valid for the EP as it was on 1 November 2017.

The average MEP



As expected by the 2-to-1 male to female ratio, the average face looks like a somewhat feminine middle aged man. White, but not too pale, light hazel eyes, light brown hair. Men tend to have greying hair and hazel eyes and a more reserved smile than women. Female MEPs have lighter eyes, but darker hair, probably because dying to hide greying hair is more frequent among women.

If I had to guess where they are from, I would probably say somewhere in the Alpine region/Central Europe – southern Germany, Austria, maybe northernmost Italy, Slovenia or Czechia.

By Political Group

First of all, if you are not familiar with the Political Groups of the European Parliament, click here for a quick rundown of the basics.



Average faces, when broken down by political group, tend to highlight the gender (in)balance in each group. For example, the small Non-Inscrit group obviously has the lowest female-to-male ratio in the EP (under 20%) while the leftist GUE-NGL – quite androginous here – has the highest (50%).

By Gender



The Female MEP photos tend to show a lot of diferences among themselves. The Conservatives – dominated by UK and Polish MEPs – and the Nationalist ENF – dominated by France’s Front National – are the blondest, with the latter appearing to have a higher average age.

Due to only having 3 female MEPs in the Non-Inscrit group, the result came out pretty creepy. I therefore averaged it with its own mirror image to smooth out the “lizard overlord” vibe of the original.

Male MEP photos tend to resemble each other more. Even so there is some variation, probably influenced by its national composition, just like in the female version. One additional variation tends to be facial hair: the average GUE-NGL tends to have a full “five o’clock shadow”, the NI representative is more of a grey mustache type, while the average EFDD member has more of a thin goatee king of person. The EPP and ECR on the other hand tend to be the most clean-shaven.

The Data

The photos were downloaded from the European Parliament’s Audiovisual Service for Media. While I’m glad the MEPs have official portraits available for the public, the site could use an upgrade to a more user-friendly way of doing things. The download procedure is cumbersome to say the least, there is no updated folder of all the current MEPs. Therefore I had to download all the photos, crosscheck with a table of current acting MEPs (because some of the original MEPs elected in 2014 quit, in order to take up either positions in their national governments or in the European Commission), see which photos are not needed, which ones are missing, which ones are duplicates and so forth. Two MEPs (Jadwiga Wiśniewska and Jiří Payne) didn’t even have official portraits, so I had to look elsewhere.

The Code

I used the code from learnopencv.com, which I tweaked to my needs. I had just two recurring problems: the fact that above a certain number of photos, I could’t calculate the average due to not enough memory, so I had to split the photos into smaller groups (for example the 475 EPP MEPs were split into 19 groups of 25 photos each, which were averaged, and then those 19 averages were averaged again into one).

My second problem was that sometimes the facial landmark detection part of the code recognized buttons and certain textures as faces, and I realized it pretty late, so I had to redo some of the work.

On a side note, I cannot thank Satya Mallick enough for the clear way he writes his tutorials. They were easy to follow and almost everything worked from the first try (when it didn’t it was usually my fault). Some of the best “how to install and run” articles I’ve ever used.

Made with OpenCV/dlib in Python (Anacond/Spyder as per linked tutorial). Final arrangements in Inkscape.