As rex said you could use the asjson expression to load the image into a array for faster comparison than using rgbAt().
Here's an example with three examples:
https://www.dropbox.com/s/5c5ei994g3fjt ... .capx?dl=1
Since it's for a drawing competition I find that just comparing the alpha gives a more meaningful percentage. Just checking all the pixels like with your links gives a 90% similarity to a blank canvas.
Anyways I implemented three methods in the capx.
The first follows the examples in your links and gives a percentage and rms number. I guess rms could be used as a way to compare.
The second only looks at the colored areas of both images and gives a pretty good measurement.
The last one finds the bounds of both drawings and compares both as if they were the same size. This allows a small box to match a big one.