如何将手写句子的图像拆分为单词(获取每个单词的开头和结尾坐标)

问题描述 投票:0回答:1

我正在做一个文本识别脚本(HCR),如果我只给他 1 个单词,它就可以正常工作。但我的任务是给他全文,我就卡在这里了……
文字可以同时是竖排和横排。

我正在使用 Python、OpenCV - 形态学转换 但我不太确定它是否运作良好

以下是文本示例:

这是我的代码部分:

img = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY_INV, 11, 5)
img = cv2.medianBlur(img, 5)
kernel = np.ones((4, 4))
img = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
img = cv2.morphologyEx(img, cv2.MORPH_DILATE, kernel)

结果:

根据文字我不知道如何从中拉出单词线...

我有一个想法让 yolo 检测文本单词,但我不确定它的成功和速度。

此刻我正在考虑也许从整个文本中提取文本行,但即使在这里我也不确定。 有人可以帮我吗?

python opencv ocr yolo
1个回答
0
投票

如果您要使用 YOLO 来检测单词,请放弃您正在执行的操作。无需进行阈值处理、模糊、膨胀、腐蚀等。按原样处理图像即可获得最佳结果。

是的,Darknet/YOLO 绝对可以与文本一起使用。它是一个像素序列——只是数字! ——并且对于可以物理触摸或操纵的物体没有先入为主的概念。我广泛使用 Darknet/YOLO 和文本,并在 YouTube 上发布了一些操作视频,展示了一些可以完成的事情。例如:https://www.youtube.com/watch?v=XxhbXccHEpA

如果您训练 Darknet/YOLO 网络来检测单个单词,那么您将获得每个单词出现的坐标。如果您使用 DarkHelp 库或 CLI,则将排序顺序设置为 ESort::kPageOrder 以使结果从上到下和从左到右排序,否则您将以准随机顺序返回它们。我在这个 YouTube 视频(跳到 4 分 50 秒)中演示了它用于阅读字母而不是单词。

如果您想这样做,我建议从 YOLO 常见问题解答开始:https://www.ccoderun.ca/programming/yolo_faq/#how_to_get_started

© www.soinside.com 2019 - 2024. All rights reserved.