I would like to share a personal project I’ve been building with BHL materials: Field Notes Explorer.
It uses locally running, open-weight AI models to transcribe handwritten field notes first and foremost, while also handling printed and typed text, and then makes all of that text searchable. The transcription runs on a consumer-grade desktop with a single high-end GPU, using local models rather than commercial cloud AI services.
What feels most significant to me is that this makes full-text search possible for handwritten works that traditional OCR could not handle.
I am currently working through the BHL Field Notes Project materials indexed on the Internet Archive ( Internet Archive: Digital Library of Free & Borrowable Texts, Movies, Music & Wayback Machine ). I am still less than a quarter of the way through the BHL items, but the site is already live and searchable, and I am planning to ramp up transcription so I can hopefully cover the rest much more quickly. After that, I hope to expand to other sources as well.
Project: https://fieldnotesearch.com/
This has been a really fun way of contributing to the scientific community! It is still very much a prototype, and I would be grateful for any feedback.
4 Likes
@jdustinwilliams Cool project! Sorry that it took little while for your post to appear. The forum software thought your first post was suspicious because apparently you typed too fast! 
Is the code for this tool available? I’m always curious to see how things work under the hood. What models are you using, for example?
My other question is whether the OCR text you are creating could be feed into BHL at some point? One of the challenges for BHL is how to incorporate data cleaning/annotating/argumenting efforts that happen elsewhere.
2 Likes
@jdustinwilliams In terms of feedback, one thing that would be nice is a direct link to the corresponding BHL page. For example, I was looking at Reading Page 18 and I immediately want to compare it to the OCR text in BHL for the same page https://www.biodiversitylibrary.org/page/54928336
2 Likes
@rdmpage Thank you for the immediate feedback! And no problem at all about the short delay in approval! I think it was under an hour. My guess is that the forum software interpreted pasted text as suspiciously fast typing, since I drafted the post outside the browser and then pasted it in.
I would like to open source at least some of the code eventually, but at the moment it is still quite messy, and I would like to clean it up and improve it before sharing it publicly. Frankly, I will probably rewrite the whole thing soon using what I learned from building this prototype, so I can start with a better and more organized system design.
What I can very happily do right now is describe the pipeline and how it works:
The transcription runs completely locally on a regular desktop with an RTX 5090. That is the most expensive part of the setup, but a lower-end GPU could work; it would just either take longer or require trading some accuracy for speed. One of the things I like most about this approach is that I am not dependent on commercial cloud AI services, and I can swap in newer open-weight models as they become available, so long as they fit comfortably within the hardware I have.
I am also happy to talk about the models. I started out using Qwen2.5-VL-7B-Instruct, and after a few hundred works I switched to the newer Qwen3.5-9B. Given how quickly these models are improving, there may already be an even better option out there, or there will be soon. I currently use llama.cpp to serve the model locally.
As for feeding the resulting text into BHL: I would love to see that happen. If BHL is interested, I would be very happy to share the transcription data, help with any necessary coding (if it is within my abilities), or think through possible ways of integrating it.
And thank you for the great suggestion about linking directly to the relevant BHL page. I should have thought of that from the start, and I will definitely look into adding those links.
3 Likes