Я работаю над множеством анкет для пациентов.Вот отсканированный пример Анкеты.Мне нужно обработать их и сохранить в базе данных, но у меня была проблема с обнаружением этих рукописных меток:
Анкета для приема пациентов
Существуют различные типыоценок в анкетах.Некоторые флажки окрашены в черный цвет.Некоторые флажки имеют галочки или крестики.Все эти отметки означают, что флажки установлены.Мне нужно использовать opencv2, чтобы узнать, какие поля отмечены.
Я пробовал Оптическое распознавание символов, но результат не может помочь.Метки имеют слишком много форм, поэтому OCR распознает их как разные символы.Мне нужно выяснить, какие поля отмечены в анкете.cv2 мог бы решить эту проблему, но я понятия не имею.
# Expected input: An image of Questionnaire
# Expected output:
Have you seen other health care providers for your problems of dizziness
and/or imbalance? [selected] Yes [unselected] No
Have you been through a program of Vestibular and Balance Rehabilitation
Therapy? [selected] Yes [unselected] No
=============================
[unselected] vertigo
[unselected] falling
...
[selected] Drunk-like
=============================
[selected] Vertigo
[selected] Falling
[selected] Fatigue
[selected] Wooziness
[selected] Spinning
[unselected] Disconnected
Моя предыдущая попытка использовать пакет OCR для Python tesseract:
from PIL import Image
import pytesseract
path ="page1.jpg"
img = Image.open(path)
text = pytesseract.image_to_string(img, lang='eng', config='-c preserve_interword_spaces=1 --psm 6')
print text
O Vertigo O Falling O Fatigue W Vertigo YA Falling y[ Fatigue
[ Wooziness O Spinning O Disconnected A \Wooziness Q Spinning [ Disconnected
O Imbalance B Drunk-like O Swirling O Imbalance O Drunk-like @ Swirling ;
O Faint [ Rocking O Can’tfocus M Faint 4 Rocking O Can’t focus
O Lightheaded O Swaying -~ . -0 Unsteady O Lightheaded O Swaying N Unsteady
O “onaboat” O Swimming sensation Weonaboat” @ Swimming sensation
O Other: 0 Other:
Я подумал: если OCR распознает прямоугольный флажок как символ 'O' или число '0', флажок должен быть снят.В противном случае это должно быть выбрано.Основываясь на этом правиле, я могу обнаружить рукописную метку по результатам распознавания.Я протестирую несколько образцов и увижу точность, хотя я не уверен, выполнимо ли это.Если это так, я вернусь к этому посту несколько минут спустя.