Python 如何判断一张图片的内容为文字内容?

2022-04-25 10:19:59 +08:00
 colatea
有个需求,识别图片,判断图片内容是 文字还是图表
想到的办法:
1,像素判断,因为文字内容的颜色不是黑就是蓝,取像素值并设定阈值进行判断
2,进行文字识别,以识别到的文字量和图片宽高的比例进行判断

第 1 种感觉阈值要探索好久
第 2 种感觉太"重"了,效率太低

不知道 V 友们有什么见解
1844 次点击
所在节点    问与答
11 条回复
mekingname
2022-04-25 10:57:16 +08:00
第二种方法不行。因为 OCR 会强行把一些长得像文字的图片给你识别成最相似的文字。所以你用 OCR ,总能从没有文字的图片中识别出文字。
ldyisbest
2022-04-25 11:20:14 +08:00
首先要明确一下,哪些是文字,哪些是图表。如果有样本的话,可以用神经网络试试
coderluan
2022-04-25 11:38:04 +08:00
楼主说的“图表”是什么意思?

如果就是说一般一样的图表,表格,本身就带字那种,那么可以考虑直接识别表格中的直线,有均匀直线的是图表,没有的是文字。

如果就是普通图片,也就是识别一张图表到底带不带文字,实际上还是 OCR ,但是你得自己想一些办法解决 1 楼说的问题。
tfdetang
2022-04-25 11:39:54 +08:00
如果是比较规整的表格也很容易识别,可以用连续边缘检测 (opencv canny edge )看是否存在非常长的连续线条。 或者更简单的用 X 、Y 轴的像素投影来识别是否存在表格。

当然如果会算法,用算法来区分那是更简单了,只要有人标注就行了
colatea
2022-04-25 12:13:11 +08:00
@coderluan 图表是 chart,也有一些文字,但文字量很少,文字的图片就全是文字,黑或蓝
crab
2022-04-25 12:27:17 +08:00
ershierdu
2022-04-25 12:50:06 +08:00
第一种已经有点像神经网络了,训练过程类似于自动找阈值
colatea
2022-04-25 13:16:23 +08:00
@crab 我这只是个小鸡鸡,您这可真是个大牛刀啊,不过很感谢,这东西很酷啊
colatea
2022-04-25 13:39:26 +08:00
@tfdetang 方法是好方法,但我没找到相关的能计算边缘长度的代码...
bo233
2022-04-25 13:45:44 +08:00
有标签好的数据吗,有的话可以试试训个深度神经网络,估计 alexnet 或者 vgg 就能 work
colatea
2022-04-25 14:02:07 +08:00
@bo233 木有标签~

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/849076

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX