Introduction and tutorial video: https://vimeo.com/150385938
The first phase of scanning a book is conceptually very simple. You have cameras you need to trigger and you need to save the resulting images in a way that makes it convenient to copy off onto a computer for post-processing. Previously, I have been recommending Spreads for this task. But Spreads is a large and complicated system with multiple interfaces, running on multiple platforms, supporting many cameras, and fulfilling many roles in book scanning) This complexity meant that it was difficult to make it really robust.
Luckily, Johannes had the foresight to make Spreads open source. And so I was able to take many of the core capture components of Spreads and roll them into a much simpler piece of software called Pi Scan. By limiting the scope of the project and designing it to gracefully handle camera failure from the start, I have been able to create a much more solid piece of capture software. Spreads, Scan Tailor, and other projects can help us deal with the other phases of the book scanning process.
Design Philosophy
Pi Scan runs as a read only appliance. There is no longer any possibility of corrupting the controller software when turning off power unexpectedly. All debug information, configuration, and the images themselves are all saved directly onto external storage in the form of a USB SD Card Reader or USB thumb drive. There is no longer a networking component. You plug a screen and mouse directly into the Pi. A keyboard can optionally be used as a trigger during capture (space bar, 'b', 's', and 'c' all act as triggers).
Configuration and operation is vastly simplified. There are no longer workflows. Images are simply saved to external storage as sequentially named filenames (interleaving the images from the two cameras). When you finish a book, you tap done to unmount the external storage, move the images off of it onto your main computer, then plug it back in to start the next book. Focus is set at the beginning of each session and then locked to prevent blurry shots of partial pages. The only user-settable option is zoom. Everything else is set at good values that are most likely what you want if you are using a scanner. More configuration options may be added as the software becomes more mature.
When there is a crash or failure, Pi Scan will let you know where the error happened and let you quickly get back to scanning. On a simple failure, just tap ok and you are immediately back at the capture screen and ready to capture the page again. If there is a crash, Pi Scan waits until you turn the camera back on, then you can lock focus again and keep scanning. This means that if an error is transient, it won't ruin your day.
For more persistent errors, Pi Scan logs every failure and crash to a log file on the external storage. It includes as much debugging information as possible which you can send along to me to help diagnose the issue. It even helps you capture crash romlogs off the cameras. In the crash recovery page, once you turn the camera back on you will be able to click a button to save the crash log.
Pi Scan is ready for testing
While it is not yet at a stable 1.0 release, Pi Scan is ready for more testers. If you want to test Pi Scan, here is what you need:
- Your Scanning Rig
- Raspberry Pi 2 (earlier versions are not supported)
- 2 Supported Cameras (other cameras may work, but are not supported)
- Canon PowerShot ELPH 160 (aka IXUS 160)
- Canon PowerShot A2500
- SD Card Reader (to write the images) and SD Cards for the Pi and cameras
- A fast SD card or USB thumb drive for external storage of the captured photos
- A screen, mouse, and optional keyboard or foot pedal
There are instructions, links to SD card images for your Raspberry Pi and cameras, and a link to the tutorial video. Give it a try.
Please let me know of any problems (or success) here or at help at tenrec dot builders.
-D