Anonymous wrote:As that's all I have, do you have any recommendations for a single-camera build?
Dan did a single camera scanner earlier, and posted it on instructables:
http://www.instructables.com/id/Bargain ... board-Box/ .
---
If we consider the light captured by the camera to be an "infinite weighted sum of an infinite number of sinusoidals" (Forsyth and Ponce,
Computer Vision: A Modern Approach, sec 7.3.0) and, if we know a little about how the camera captures different frequencies of light, we may be able to do some heavy-lifting in software.
Consider the idea to use three lights (RGB) to cast shadows; if we choose these lights such that they are tuned to the sensitivity of the camera's imaging sensor, we may be able to get some high-fidelity information by inspecting the R, G, and B outputs of the camera. We may even be able to do the same (or similar) with a single overhead light (an "ideal" white light, not yellow etc.). I'm curious, can we extract the curvature from the change in distribution of frequency over an image?
As for casting a laser across the page; we may choose to attenuate (with a high-pass filter, etc.) the G output (of the RGB output of a camera) only, allowing us to use one picture instead of necessitating two.
As an aside, we may consider shooting the laser towards the margins on the top and bottom to reduce the potential loss of fidelity from a one-camera method.
---
A separate tact from Fourier frequency analysis might involve some rudimentary machine learning. We are currently ignoring the
wealth of information in our datasets, currently very little is done to take advantage of the fact that we are taking many pictures of the same book, with only one page advanced being the delta between.
Given we have a constant lighting scheme, camera placement, we have the full set of images taken from one book, and some criterion to judge whether a presented dewarped model is accurate for some page, we may use one of the published methods (SKEL, SEG, CTM) to dewarp a single page, then refine that model (and the delta between models) using subsequent pages.
In other words, we would dewarp pages from front to back (or w/e), and simultaneously (or after-the-fact) check whether our dewarping model ("3D" model) is consistent between pages. If they're not, we can go back and tweak the dewarp model for "better" results.