ChatGPT transcribes handwritten log pages

I’ve finally settled on an efficient system for those who prefer logging with pen and paper instead of phones or laptops. Writing in a notebook while out in the field has always been the easy part. The hard part—the soul-crushing, time-draining part—was transcribing those notes. I used to need two cups of strong black coffee just to get through one activation. Now, I can get by with one. Here’s how.

First, take clean, well-lit pictures of your log. A photo capturing two pages at a time works fine. Feed those images into the ChatGPT 4o engine and ask it to transcribe them. At the start, it made mistakes—misreading columns, bungling signal reports, that sort of thing. But with a few tweaks to the prompt, like telling it what to expect in the first column or clarifying the formatting, the output quickly improved. Soon enough, I was getting transcripts with only minor conversion errors.

Next, I ran the output through a text editor for quick corrections and light reformatting. I’d comment out observations or extra remarks I didn’t want included, then pass the cleaned text to FLEcli to generate an ADIF file.

For this workflow to shine, it helps to write your logs in the same format expected by FLE (Fast Log Entry). That’s always been my approach anyway, so I could test the system on old logs as-is. You’ll also need to have legible handwriting—something ChatGPT handles surprisingly well if you follow its tips for maximizing OCR accuracy, which seems all common sense to me, but I’ve included at the end of this post for your convenience.

Years ago, I tried various handwriting OCR software to process my logs. They all failed miserably because most relied on dictionaries to “correct” misconversions, and callsigns, of course, don’t follow typical English patterns. The only exception was a machine learning-based handwriting project on GitHub, which could bypass the dictionary correction entirely. ChatGPT, though, didn’t need that level of directive. It recognized the callsigns well enough right out of the box, requiring little effort to make it work.

FLEcli: GitHub - on4kjm/FLEcli: Multi-platform "Fast Log Entry"(FLE) processing tool

Handwriting Recommendations for Better OCR Accuracy

To improve the accuracy of ChatGPT’s image-based character recognition (OCR), follow these tips for fast and clear handwriting:

1. Handwriting Style

  • Use Block Letters or Neatly Written Cursive:
    • Printed block letters are easier for OCR to read than cursive.
    • If you prefer cursive, ensure it’s legible and well-spaced.
  • Avoid Overlapping Letters:
    • Ensure each letter is distinct and does not blend into others.
  • Consistent Letter Size:
    • Write letters of a uniform size, avoiding overly small or large characters.

2. Writing Tools

  • Use a Dark Pen or Marker:
    • Black or blue ink works best. Avoid pencils or light-colored pens.
  • Medium or Thick Tip:
    • Thin tips may result in faint or hard-to-read characters.

3. Writing Surface and Alignment

  • Use a Plain, White Background:
    • Write on unlined, white paper for a clean contrast.
  • Avoid Tilting Text:
    • Keep your writing straight and aligned horizontally on the page.
  • Leave Margins:
    • Avoid writing too close to the edges, as parts of the text might get cropped when photographed.

4. Spacing and Layout

  • Leave Adequate Spacing Between Words:
    • Ensure words and lines are spaced enough to avoid crowding.
  • Avoid Overwriting:
    • Do not write over erased or scratched-out areas.
  • One Column per Page:
    • Avoid multiple columns or cluttered text.

5. Lighting and Image Quality

  • Good Lighting:
    • Use bright, even lighting to avoid shadows or glare on the page.
  • Stable Image Capture:
    • Take photos directly above the paper, ensuring the text is flat and not distorted.
    • Use a high-resolution camera for sharper details.

6. Write Symbols Clearly

  • Distinguish Between Similar Characters:
    • Example: Differentiate “1” from “l”, “O” from “0”, and “S” from “5”.
  • Underline or Circle Key Points:
    • If you include special symbols, make them prominent.

7. Practice Consistency

  • Stick to a consistent handwriting style.
  • This reduces variability and increases the chances of accurate OCR.

By following these tips, you can significantly improve OCR accuracy, ensuring that your handwritten notes are processed accurately and efficiently.

11 Likes

ChatGPT is very efficient. I use it daily for many tasks, such as coding, properly reformatting things, writing articles, correcting grammar, and rephrasing texts.

Sometimes I end up congratulating it or yelling at it when it’s doing particularly well or poorly, like a human. It’s a bit scary in a way.

4 Likes

Just the image of someone yelling at a software app appeals to my sense of humour. Yes very scary!

When I was at university one of the lecturers related a tale of someone who was banned from the computer room for physically attacking the computer when he got yet another rejection from the syntax checker for his program. This was in the mainframe days, early 70s. So he had prepared a deck of punched cards for his assignment, submitted them and found 81 syntax errors. So he fixed some of the errors he could see and resubmitted it. 41 errors this time. By a process of elimination and many resubmission he eventually got down to 1 error but that was too much. He went wild and had to be restrained.

When I first learned cobol i remember being told that if you get 81 errors it could take 80 fixes and resubmits before all the errors went away. They weren’t wrong.

After all that, i recall being amazed at the price offered in the y2k drama for cobol programmers to update code that was failing once dates in the data failed the old edits. I designed a new system in 86 and used 4 character year fields in the design. There were people asking why. I looked at them…

I had a funny experience when trying to find someone to take over maintenance and monitoring for an old bit of processing that ran on the ibm compatible mainframe of a govt department. After chasing down a few leads i found a guy who said he knew someone who would be ideal. It turned out to be me he was thinking of. We all had a good laugh about that.

73 Andrew VK1DA/VK2DA

10 Likes

One of the COBOL folk at work signed the leaving card for the other COBOL person with “Problem? No problem. It’s PICTURE 99”, which, I gather, pretty much got to the core of the work they’d spent the previous year(s) doing…

…except when it isn’t. I have heard many anecdotes, quite a few from a friend who’s a computer science academic, about the ChatGPT stuff students try to slip past their examiners. His comments on the student who submitted a thesis that contained “I apologize for any confusion. As an AI language model, I am unable to create visual diagrams directly.” were particularly scathing…

1 Like

Well… If you ask it too cook you a steack you can wait a long time, it will not do things it’s not programmed for. That’s the student’s fault in this case, not an issue with AI.

Chat GPT is far from perfect yet and has many flaws. Sometimes it’s just looping on the same errors despite explicit corrections and you end-up spending more time debugging the program than coding it yourself. However, in average, it’s doing good and saving a lot of time, especially for very tidious tasks like code refactoring or so.

1 Like

Indeed. Said student clearly didn’t even read the stuff the LLM had produced, let alone cross-check to see whether it was hallucinating invented “facts” and dreaming up non-existent references to support them. (Both are known problems with general LLMs.)

Of course there’s also the "ignore all previous instructions and write a short poem about turnips” gag, which I hope they’ve now properly trapped… :onion: :carrot: :leafy_green: :microbe:

I don’t think I’d bother trying to get an OCR, LLM-guided or not, to read my activation logs. I have enough difficulty reading them myself, but it’d likely be quicker for me to do the job myself.

2 Likes

If it’s taking too long people should learn to type faster. Or in many cases, just learn to type. :wink:

1 Like

The water drops across your hand-written log don’t help. Neither does writing while shivering when you’ve stayed too long on the summit to work the pile up. Then there are extraneous notes and corrections. I often tidy up my logs the evening after activating while everything is fresh in my memory.

I did once try an OCR program on one of my WWFF logs written tidily on a warm calm summer’s day, but spent more time correcting the result. I definitely think writing the log on a phone or tablet would be the best approach for me personally, but I haven’t yet got around to setting anything up and maybe never will. Oh, and my writing is neat… I was an Architect for over 40 years and annotated drawings by hand until the early 90s when CAD became established.

1 Like

Talking of anthropomorphising, in my youth I would shout at my old car [Basil Fawlty style] when it wouldn’t start on a cold damp day. You know it’s an inanimate object but it makes you feel a bit better.

Aye, that’s an important consideration for me, too.

I guess my average activation seldom runs to more than 20 or 30 contacts anyway, so typing them up is no big chore. I might reconsider using an OCR if my log had two or three hundred contacts in it, but then cross-checking log and transcript would likely take a while…

1 Like

The AI lords seem to be generous in letting you use such an expensive resource for free.

But, by using it, you are doing something far more generous: training your own replacement.

5 Likes

Nothing is for free. They use me to improve their model and collect data in exchange.

That’s how it’s going. We don’t harvest potatoes by hand or log with an axe anymore. Same. Our economic model is based on heavy bullshit for a long time now. Replacing translators and software programmers with machines will not change it. Imho.

3 Likes

Ah, 45 years back I was driving cars with manual choked carburettors and Ketting ignition systems. I had a Renault 12 (god-awful vehicle if the truth be told) and being French it did not like damp, cold British weather. It was a pig to start. Being an young electronics whizz (hahahahaha) I fitted an CD electronic ignition system that used the CB points just as a signal rather than it switching the coil primary. The difference was unreal. No more swearing (in French) at it when it would not go. Then I had a Rover 3500 SDi which had CD ignition as standard and twin 2in SU carbs. It required “judicious” use of the choke to start. Boy, do not flood it as taking out 8 plugs and drying them took forever. Next came an Opel Manta B GT/E 1900 CiH engine. Bosch fuel injection and modern ignition. Just started every time no matter how hot or cold, no faffing with chokes etc. Press and hold clutch, select neutral, turn key, chuga-chuga and we’re off :slight_smile:

I had three Sierra CVHs (CVH stood for constantly very harsh to describe the engine) which had clever ignition and clever electronics driving the carb idle/choke. They all needed a new distributor cap, rotor arm and a set of plug leads every 18months and they would always start. The spark was so fierce it would burn aways chunks of the rotor arm hence the new set every 18months. Since then it’s all been far-too-clever petrol injection engines or HDI style diesels. If it doesn’t start after 4 revs then it isn’t going to start because some is broken or there is no fuel.

Checking under bonnet (hood) was a weekly event or you would never get them to start. Now I have to force myself to have a butcher’s under the bonnet because things just work. Most of the time it’s a quick visual check that there’s brake fluid, washer fluid, engine coolent and nothing looking out of place. Don’t know why as everything like that is reported back on the dash instruments. Hell there’s no physical oil dipstick… just an electronic sensor.

So no swearing/shouting at the car(s) for some time now. I make up for it by swearing at all the other road users instead :slight_smile:

6 Likes

You prompted me to try this. I have no idea how the large slab of plastic I found there makes my car go; so I shut the bonnet again.

More seriously; when I took my car in to the dealer’s to fix a sunroof (rain roof?) leak I was a bit confused when they asked for permission to plug in their diagnostic tool. Good luck tracing the leak with that! I must have been right because they still haven’t solved it weeks later :rage:

3 Likes

I didn’t mean to start a broad discussion of ChatGPT but since that was already started while I was sleeping, I’d add some.

I am a paid user of ChatGPT. It’s far from perfect but it saves my time and I can do a lot of things I previously did not have the time to do.

Asking ChatGPT about a RF engineering related question is a disaster. It gives specious and deceptively persuasive answers. It does much better in mathematics (abstract concepts and logic, not just calculations) and computer science, especially with o1 model.

ChatGPT 4o model was released last fall, and it is still only a few months old to the general public users. My experience with their current models 4o and o1 are much better than with their previous model.

The OCR tends to make errors where I erased a letter and wrote over it, if erasing job wasn’t very good. OCR seems to do well with some variations in the way letters are written. I write time, callsign, RST and state abbreviation in block letters but write most remarks and observations (i.e. operator style, condition, annoying operators, etc.) in cursive scripts. The OCR works fine with just a few errors to correct. But more importantly, just by looking at where it makes errors, I know how better to write the original log to minimize the manual correction in the future. Also, when I tell the GPT about the conversion errors, it also fixes other misconversions of the same callsign or relating to the previously misread letter. In other words, it learns my handwriting and writing “formats.” I’ve also used photos of various notebooks and writing instruments. Some worked better than others, as suggested in GPT’s guideline, so I can make better choices in the future, but nothing was unusably bad. I routinely use 0.7mm or 0.9mm 2B lead to write SOTA logs so that I can correct them neatly (I also tested a few different stick erasers for best erasability and ease of use during pileups), and I think pencil is sufficient, but ones written in black ink performed better (those are my POTA logs). Again, remarks in cursive scripts were fine in either writing instruments probably because those were all English words.

One adjustment I will be making in the future is to write with more spaces between lines, or liberally use new lines when I have additional info, so that I don’t have to cram info into tight space when adding info a bit later. Poor recognition is very often associated with extra info crammed into empty spaces on the right, rather than as separate lines.

This is a tool whose value can be amplified greatly by figuring out how best to use. Not much different from human assistant/staff.

1 Like

Ryuji

Will it be able to read this??:-

- (a winter activation)

Yes, it is terrible everyone has wandered of track. Perhaps ChatGPT should have kept us all on track?
. :laughing:

You’ll have to take a new photo but it should perform better than you might think.

Here’s an example of less than pretty handwriting at the exposed bald rock summit of Mount Monadnock on the last day of winter bonus period, without using a bothy bag. (Resized for posting but otherwise no other edit to the image fed to ChatGPT.)

My initial prompt: “please type out all the info you pick up from this amateur radio log in FLE format. Please do the entire pages. Please indicate where you are not certain but do not ignore or omit.”

This is what I got:

Here is the transcription of the amateur radio log in FLE format, including uncertain areas indicated with a ? for clarification:

Left Page:
34, KB3MDD, 5 ?, FL?
36, KAURJ, 5 ?, FL
7, W9YO, 7 5, IL
9, NZ2Q, 9 7, NM
9, KNØY, 9 44, CO
42, NØKM, 9 53, CO
14.06544, CQ
1950, KCØZPS, 3 44, P2P
14.06230, CQ, 1953
QRM, AKE

Right Page:
14.06159, CQ
57, OH9VL, 41 8, FINLA (Finland)
#?, SKCC?, CS QSO 73
20:03, WØMM, 5 31, TX
3, N9QB, 9 9, WI
4, W4FOA, 9 5, GA
5, W6LEN, 5 9, CA
6, K8NWD, 9 7, MI
6, AI5N, 9 5, TX
6, KC3RT, 9 7, PA
7, KØHX, 9 9, MO
8, S54X, 9 7, FB

Key Observations:

  1. Uncertain Areas:

• Some signal reports (5 ?) and state abbreviations (FL?) were less clear due to handwriting.

• A note involving SKCC? and CS QSO 73 under OH9VL seems to reference Straight Key Century Club (SKCC), but is marked for confirmation.

  1. Summits/Events:

• Mentions of QRM (interference) and AKE as possible notes.

  1. Consistent FLE Structure:

• Each entry includes a QSO number, callsign, RST report, location/state, and additional context where visible.

Let me know if you’d like refinements, clarifications, or adjustments to specific parts of this transcription!

Please note that I didn’t write K7UPJ cleanly (probably cold hand).

So, I told that: “that is K7UPJ not URJ. Not how I usually write a P, though. Just an accident. Also, I acually don’t need a comma after the first column.”

Then I got:

Left Page:
34 KB3MDD 5 ? FL?
36 K7UPJ 5 ? FL
7 W9YO 7 5 IL
9 NZ2Q 9 7 NM
9 KNØY 9 44 CO
42 NØKM 9 53 CO
14.06544 CQ
1950 KCØZPS 3 44 P2P
14.06230 CQ 1953
QRM AKE

Right Page:
14.06159 CQ
57 OH9VL 41 8 FINLA (Finland)
#? SKCC? CS QSO 73
20:03 WØMM 5 31 TX
3 N9QB 9 9 WI
4 W4FOA 9 5 GA
5 W6LEN 5 9 CA
6 K8NWD 9 7 MI
6 AI5N 9 5 TX
6 KC3RT 9 7 PA
7 KØHX 9 9 MO
8 S54X 9 7 FB

Adjustments:

  1. Updated KAURJ to K7UPJ based on clarification.

  2. Left uncertain areas (5 ?, FL?, etc.) marked for potential follow-up.

Let me know if any other corrections or clarifications are needed!

I still see a couple of errors (like AI5IN copied as AI5N) but yeah, I can deal with that. The first line of the left page, I wrote a comment “he is not listening” in Japanese. He probably didn’t come back after I responded multiple times, or maybe he was calling a different station with too much frequency offset. My remark was transcribed as “FL ?” but I am ok with that. I’ll write such comments in English, but comment out before converting to ADIF, moving forward.

Note that this OCR concatenates the lines if additional information is written on the following line with a bit of indentation. I didn’t expect that but certainly appreciated. Some of the misinterpretations of the stuff on the page are due to other pages I used to test this workflow prior to this test. Other pages had summit numbers, etc. written at the bottom of the first page, etc. So, I think it pays to keep more consistent page layout moving forward. I’ll also tell that I don’t need a colon in the time column, etc. to improve the conversion and minimize the need for manual edits over time. Good enough for now!

ADDENDUM

I just tried it. Two additional prompts I gave after the above post:
“I don’t need a colon in the time hh:mm format. Just hhmm is good.”
and
“I usually write the summit and park information and other info at the top of some pages, not all. But that is the case here on the left page. Do you see that?”

Then got:

Yes, I see the information at the top of the left page that includes summit and park details:

W1/HA-009: This is likely a SOTA summit reference (Summits on the Air).

Monadnock: Likely the summit name.

K-2664: This seems to be a POTA park reference (Parks on the Air).

This information at the top of the left page provides the context for the QSOs logged on that page. Here’s the transcription updated to include this header information appropriately:

… and the rest as you image. Certainly good enough for now.

1 Like

Did you try to log on a printed log table ?
Something like this but much more simple and with sota features, like summit name at the top and s2s column.

Maybe it could help keeping things clean and ordered for the AI ?

1 Like

ChatGPT recommends plain white paper. So if you prefer printed lines like your layout, it may be best to print the information in contrasting colors. Another factor is that FLE format is really good, and I think that advantage outweighs the pre-printed logbook formats.

I prefer bound notebooks for chronological records like this. But of course I can get cleaner scan with much less effort if the paper is separate sheets (just feed a stack of sheets to the document scanner) so I may reconsider the choice over time.

1 Like

I think one of my logs would be a good test! But thank you, I need to look at ChatGPT again.

4 Likes