Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Omzetten naar markdown formaat

Marker

Er is redelijk wat software te vinden die een PDF kan omzetten naar markdown. Toch is er nogal wat verschil. Het is van belang dat de software goed herkend dat het feit in de scan van het gedrukte boek doorgaat wanneer de tekst doorgaat op de volgende regel dat niet betekent dat de zin is afgelopen. Je krijgt dan allerlei ‘end of lines’. Aangezien je E-reader zelf verzorgt dat een zin op de volgende regel doorgaat als het volgende woord niet meer past krijg je dan raar verspringende teksten. Na het proberen van meerder opties bleek de volgende software het meest geschikt: de open source software Marker.

CPU of GPU

Marker is software gebaseerd op PyTorch. Het is kunstmatige intelligentie die lokaal/thuis is te draaien. Het draait het best als je een computer gebruikt met een GPU (grafische kaart) die krachtig genoeg is om gebruikt te worden, maar dat is niet strikt noodzakelijk. Als de gewone processor gebruikt wordt duurt het aanmerkelijk langer om een PDF om te zetten naar een markdown bestand. Het daarna opschonen van het markdown bestand neemt echter nog veel meer tijd in en dat is ook nog eens ‘handwerk’. De fase van omzetten van PDF naar markdown met Marker is in vergelijk daarmee niet zo belangrijk. Dus wie het eens wil proberen of een enkel boek wil omzetten hoeft zeker geen GPU aan te schaffen. Doe je het echter vaker, dan is een GPU wel een heel stuk sneller. Wel moet de computer voldoende geheugen hebben. De ervaring leert dat zeker 10 Gb voor een PDF vereist is. Aangezien het OS ook nog geheugen opeist lijkt het minimum toch zeker 16GB zijn om het werkbaar te houden. Bij de keuze van een grafische kaart moet deze natuurlijk door Pytorch worden ondersteund. Dat zijn moderne kaarten van Nnvidia en AMD. De ervaring leert dat er minimaal 10 GB Vram aanwezig moet zijn. Een GPU kan niet swappen en met te weinig vram kan een of meerder pagina’s tot foutmeldingen leiden met als gevolg dat deze worden overgeslagen. Bij het monitoren van geheugen gebruik zat het geheugen gebruik van een PDF af en toe net boven de 8 GB. Voor AMD geldt dat het ROCm gebruikt in plaats van CUDA (van NVidia). Het zou moeten werken, echter heb ik daar zelf geen ervaring mee dus kan dat niet bevestigen.

Apple

Moderne Apple processoren zijn interessant doordat ze veel van het geheugen aan de GPU kunnen toewijzen. Dat zou ook moeten werken met Marker, maar daar heb ik geen ervaring mee.

Installatie van Marker

Ik ga hier uit van Linux. Voor MacOs en Windows werkt het vast niet heel verschillend. Een moderne Linux distributie heeft doorgaans een recente Python versie, dus die hoeft doorgaans niet eerst geinstalleerd worden onder Linux.

installeer eerst Pytorch

Start met het maken en activeren van een Python Virtual Environment (venv). Dit is belangrijk omdat er veel Python software wordt geinstalleerd en dit voorkomt dat er problemen ontstaan met verschillende Python libraries.

python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip

Daarna de installatie van Pytorch zelf. Ga naar de getting started pagina van Pytorch. Selecteer daarna de juiste keuzes als die niet al automatisch goed staan. In de regel Run this Command staat het commando om Pytorch met Pip te installleren. In het voorbeeld van Linux, met CUDA 13.2 (op dit moment meest recent) krijg je dan:

pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu132

installeer Marker

pip install marker-pdf[full]

[full] kan je weg laten als je alleen PDF wil omzetten. Voor het gemak kies ik meestal full, maar wie ruimte wil besparen kan dat weglaten.

gebruik van Marker

Marker is geavanceerd en kan bijvoorbeeld all PDFs in een directory omzetten, het kan ook meerder PDFs tegelijk omzetten door een aantal workers in te stellen. Dat laatste komt met een risico dat het geheugen gebruik te groot wordt. Als we uitgaan van dat er 10 Gb (v)ram nodig is voor een boek tegelijk omzetten is dit het commando:

 marker_single bestand.pdf --strip_existing_ocr --force_ocr --output_format markdown --output_dir uit > /dev/null

Wie meer wil weten over hele directories omzetten, of meerdere boeken tegelijk op zware hardware verwijzen we naar de documentatie van Marker.

resultaat

Het resultaat is dat er een markdown bestand is aangemaakt met daarbij afbeeldingen als losse bestanden met links naar de bestanden in het markdown bestand.