Bookscanning: Difference between revisions

From Wiki-Fou
(Rewrite workflow offline and import it here)
m (Correct list formatting)
Line 49: Line 49:
You start with two folders such as <code>odd</code> and <code>even</code> with files like IMG_1234.JPG. It is not good to talk about <code>right</code> and <code>left</code> because it can be very confusing: are you talking about the image from the right camera that takes pictures of the left page of the book, or the image of the left page of the book that is from the right camera? On the other hand, <code>odd</code> (1, 3, 5, …) and <code>even</code> (2, 4, 6, …) are good words for describing what is on the image without ambiguity!
You start with two folders such as <code>odd</code> and <code>even</code> with files like IMG_1234.JPG. It is not good to talk about <code>right</code> and <code>left</code> because it can be very confusing: are you talking about the image from the right camera that takes pictures of the left page of the book, or the image of the left page of the book that is from the right camera? On the other hand, <code>odd</code> (1, 3, 5, …) and <code>even</code> (2, 4, 6, …) are good words for describing what is on the image without ambiguity!


The basic workflow is like this: 0. [program] → [output] 1. gprename → 1.jpg, 2.jpg, … 2. scantailor → 1.tif, 2.tif, … 3. tesseract → 1.pdf, 2.pdf, … 4. pdftk → book.pdf 5. calibre → book.epub 6. libgen.org → http://libgen.org/book/index.php?md5=B6916395FDE00D91DB4F52DCB8F069BF 7. etc.
The basic workflow is like this:
 
<ol start="0" style="list-style-type: decimal;">
<li>[program] → [output]</li>
<li>gprename → 1.jpg, 2.jpg, …</li>
<li>scantailor → 1.tif, 2.tif, …</li>
<li>tesseract → 1.pdf, 2.pdf, …</li>
<li>pdftk → book.pdf</li>
<li>calibre → book.epub</li>
<li>libgen.org → http://libgen.org/book/index.php?md5=B6916395FDE00D91DB4F52DCB8F069BF</li>
<li>etc.</li></ol>


There are some bash oneliners which can be useful (on Debian based systems):
There are some bash oneliners which can be useful (on Debian based systems):

Revision as of 14:56, 18 October 2018

There are many ways to scan, this is the current state of the art in Calafou. We use only free software and the documentation is for Debian GNU/Linux, but it should work with some small modifications on any UNIX based system running the bash shell. There are some parts where proprietary software such as ABBYY FineReader can be more effective. However, this workflow produces near perfect books in PDF format that we are very happy with. One thing we could definitely improve is the size of the final PDF file, which is quite big (can be more than 100 megabytes).

Scanning

The amount of work in the postproduction phase depends on how good quality images you can make in the scanning phase!

  1. Setting up the cameras (calibration): the most important part.
  • open the book in the middle (at a central page with normal text on both sides)
  • camera should look directly on the middle of the page, parallel to the cradle, at 45 degrees compared to horizontal
  • all the page should be in the image, but it is not a problem if more things outside of the book are visible
  • check if the pages fold/curve; if so, place something underneath to straighten it (like a sponge, or another book…)
  • camera settings: fully automatic, perhaps with manual focus
  • back up and empty the SD cards in the cameras
  • most subtle mistake: one camera sees letters bigger than the other camera (this can be a difference in the zoom level or the distance between camera and page)
  • use a post-it or similar to mark the exact position of the book in relation to the lower edge of the cradle, to ensure it remains in the same position throughout the scanning
  1. Push the big button on the scanner to scan.
  • maybe you have to put your finger to the side of the plexiglass which is closer to you when it is “down”, because the plexiglass is not always exactly the same angle as the book pages
  1. Download the images from the SD cards and put the scanner to sleep.
  • from the camera on the left, copy the images to a folder called “odd”
  • from the camera on the right, copy the images to a folder called “even”
  • upload the two folders now to to ftp://seldon.calafou/HackTheBiblio/scanning/$bookname--$yourname/ folder
  • remember to delete the pictures from the SD cards and put them back to the cameras, and maybe put the camera batteries to charge

Dependencies

Using an up-to-date Debian operating system, you can install the following programs for the postproduction steps:

  • scantailor
  • gprename
  • pdftk
  • tesseract-ocr
  • tesseract-ocr-eng
  • tesseract-ocr-spa
  • calibre

You can install all these programs with the following invocation from the command line (also called the terminal):

sudo apt install scantailor gprename pdftk tesseract-ocr /
         tesseract-ocr-eng tesseract-ocr-spa calibre

Postproduction

You start with two folders such as odd and even with files like IMG_1234.JPG. It is not good to talk about right and left because it can be very confusing: are you talking about the image from the right camera that takes pictures of the left page of the book, or the image of the left page of the book that is from the right camera? On the other hand, odd (1, 3, 5, …) and even (2, 4, 6, …) are good words for describing what is on the image without ambiguity!

The basic workflow is like this:

  1. [program] → [output]
  2. gprename → 1.jpg, 2.jpg, …
  3. scantailor → 1.tif, 2.tif, …
  4. tesseract → 1.pdf, 2.pdf, …
  5. pdftk → book.pdf
  6. calibre → book.epub
  7. libgen.org → http://libgen.org/book/index.php?md5=B6916395FDE00D91DB4F52DCB8F069BF
  8. etc.

There are some bash oneliners which can be useful (on Debian based systems):

  1. FIXME we can probably write a script to rename the files properly… but for now, in gprename select the “numberical” tab, start = 1 for odd pages and 2 for even pages, always step = 2.

  2. You can rotate the images appropriately (which is called “fix orientation” in scantailor) in the left/right folders before you import them. This is faster than in scantailor I think. However, you can also make the same operation in scantailor in a more user friendly way.

     sudo apt-get install imagemagick
     cd odd
     mogrify -verbose -rotate 270 *
     cd ../even
     mogrify -verbose -rotate 90 *
  3. Does Optical Character Recognition (OCR) on all images in folder:

     time for i in *tif; do b=$(basename $i .tif); tesseract -l spa "$i" "$b" pdf; done
  4. Merges all the pdf files in folder into one single file:

     pdftk *pdf cat output book.pdf
  5. Exports the pdf metadata to a text file, to edit:

     pdftk book.pdf  dump_data output report.txt
  6. Imports the metadata of report.txt back to the PDF:

     pdftk book.pdf update_info report.txt output bookcopy.pdf

Distribution

Think about how people who would be interested in this book could know about it!

Repositories:

You may consider spreading the word on relevant mailing lists, social media, etc.

Biblio-graphy