从书架图像中对书名和作者进行切片和识别

信息处理 opencv 计算机视觉 图像分割
2022-01-03 06:52:42

为了我自己的学习目的,我正在尝试开发一种算法的实现,该算法将列出书籍,给定如下的书架图像:

在此处输入图像描述

第一步是将图像分割成单独的书籍。

我在Mathematica中的算法是:

    img = ColorConvert[Import["http://i.stack.imgur.com/IaLQk.jpg"], "GrayScale"]
  • 做一个基本的边缘检测 &
  • 删除文本并尝试保留长行

    edge = DeleteSmallComponents[EdgeDetect[img, 3],Last[ImageDimensions[img]]/5]
    
  • 然后删除不需要的水平线

    lines = Sort[ImageLines[img5] /. {{0., _}, {_, _}} -> Sequence[]]
    Show[img, Graphics[{Thick, Orange, Line /@ lines}]]
    

但是,结果并不理想:

在此处输入图像描述

我的问题是:

  1. 我怎样才能改进它以产生更好的结果?
  2. 有没有更聪明的方法来做到这一点?
  3. 我应该如何进一步处理图像以提高(后期)OCR 阶段的准确性?
  4. 如何使用颜色信息来改进分割?
4个回答

这是一篇研究论文的链接,该论文试图做你想做的事情。它可能会帮助你。使用图像功能 也是youtube上的一个很酷的视频

您使用哪种方法来检测线条?你试过用LSD做实验吗?

以下是我使用 LSD 进行的快速测试的结果:

的垂直线段0.1height图1

第二张图像是具有相同角度约束但不考虑线段长度的结果: 图2

你可以试着玩一下,弄清楚如何选择最好的线段,将它们扩展到线,可能会得到比你发布的更好的结果。

您可以尝试在单个颜色域上进行边缘检测,然后使用您选择的边缘检测方法将它们合并。

与直接在彩色图像上进行边缘检测相比,它可能会产生更好的结果。

isrish 提供的断开链接中的论文可能是结合图像和文本特征:移动书脊识别的混合方法 ,Proc。第 19 届 ACM 多媒体国际会议,2011 年。也可以查看 David Chen等人的其他论文。,例如使用位置感知照相手机的低成本资产跟踪 ,Proc。2010 年国际电影节。