I came up with a nice method for cleaning up pictures like this, and it works even when the background or lighting is uneven (that is, far worse cases than the example in this question) and it retains the colour.
My instructions are based on the Gimp, but it would be very similar in other programs like Photoshop.
EDIT: Gimp has a filter called "Difference of Gaussians" which implements the process described below in one step.
Firstly, make a duplicate of the layer:
Blur the copied layer with a Gaussian blur. Use a kernel size large enough that you can't make out any detail from the original image. I used 100px for the picture in the original post.
It will look like this:
Then set the "mode" of the blurred layer to "Divide".
The resulting image should be the line art on a white background.
What you are doing here is essentially a high-pass-filter on the image, removing the low-frequency information (slow changes in the background colour) and keeping the high-frequency information (the line art).