热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

拍照搜题

从技术上来说,这类软件主要有两种方案:“以图搜图”和“OCR文字搜索”①以图搜图的方法就是把用户拍摄的图片和已有的图片题


从技术上来说,这类软件主要有两种方案:“以图搜图”和“OCR+文字搜索”



①以图搜图的方法就是把用户拍摄的图片和已有的图片题库做匹配。这和我们平常通过上传图片的方式在搜索引擎中找与之相似的图片其实非常相似。只是在图片匹配的过程中有“计算机视觉+机器学习”和“深度学习”这两种方式可选。



②和以图搜图的方法相比,“OCR+文字搜索”的方式就复杂一些。用户在拍照后,软件首选需要把其中的字符识别出来,然后在题库中进行检索才能得出结果。和上面图片匹配过程类似的是,在文字识别的过程中也有两种技术方案可选:“传统OCR”和“深度学习”。

虽然这两个流程看上去简洁易懂,但在背后计算机要做的事情远比这些复杂。像PhotoMath,每一个处理过程都要经过图像输入、预处理、校正、噪声去除等多个阶段。而小猿搜题一次正常的“做题”过程也至少要经过预处理、切分、识别、搜索和辅助策略5个步骤。

当软件接受到手机拍摄的图片之后,首先要做异常检测,比如图片是否模糊、是否需要旋转图像等等。经过这个过程之后,再进行二值化,并对字符及公司进行切分。



经过二值化之后,整个图像会呈现出明显的黑白效果,这样一来,图像就变得简单了,而且数据量也减小了,还能凸显出感兴趣的目标的轮廓。接着自然也就可以把单个字符切分出来了。

把字符切分出来之后,软件还是“认不出”这个字符是什么的,所以接下来还要识别这些字符。这时就需要光学字符识别技术(OCR)和深度学习技术上场了。

在识别这个过程中,PhotoMath主要使用了OCR技术,而小猿搜题则主要使用了深度学习技术。不过,由于这两种方法都不能保证100%识别正确,所以中间可能还需要插入一个纠错过程,像“1和l”、“好图所示和如图所示”、“入和人”这些形式非常相近的字符机器也很容易读错。这时候利用语言模型进行纠错就显得比较有必要了。

在做完识别之后,它还要去题库里搜索对应的题目。在这个过程中,计算机又要用到分词、排序等搜索过程中需要用到的技术。










OCR(Optical Character Recognition,光学字符识别),自动研究光学设备产生的图片检查纸上的字符,通过检测暗、亮的模式确定其形状,实现计算机对文字的阅读。






推荐阅读
  • 本文探讨了如何在 PHP 的 Eloquent ORM 中实现数据表之间的关联查询,并通过具体示例详细解释了如何将关联数据嵌入到查询结果中。这不仅提高了数据查询的效率,还简化了代码逻辑。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • Codeforces Round #566 (Div. 2) A~F个人题解
    Dashboard-CodeforcesRound#566(Div.2)-CodeforcesA.FillingShapes题意:给你一个的表格,你 ... [详细]
  • 易飞扬宣布推出新型低成本100G OTU4光模块,以满足DPI市场的需求。新产品包括100G CFP2 LR4 10KM和100G OTU4 QSFP28 LR4光模块,具备低功耗和高性能特点。 ... [详细]
  • 网易严选Java开发面试:MySQL索引深度解析
    本文详细记录了网易严选Java开发岗位的面试经验,特别针对MySQL索引相关的技术问题进行了深入探讨。通过本文,读者可以了解面试官常问的索引问题及其背后的原理。 ... [详细]
  • 卷积神经网络(CNN)基础理论与架构解析
    本文介绍了卷积神经网络(CNN)的基本概念、常见结构及其各层的功能。重点讨论了LeNet-5、AlexNet、ZFNet、VGGNet和ResNet等经典模型,并详细解释了输入层、卷积层、激活层、池化层和全连接层的工作原理及优化方法。 ... [详细]
  • 解决FCKeditor应用主题后上传问题及优化配置
    本文介绍了在Freetextbox收费后选择FCKeditor作为替代方案时遇到的上传问题及其解决方案。通过调整配置文件和调试工具,最终解决了上传失败的问题,并对相关配置进行了优化。 ... [详细]
  • 本文探讨了如何通过图像处理技术,特别是使用C#中的PictureBox控件,来提取含有数字的特定区域。初步思路包括图像反转等步骤。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 本文探讨了卷积神经网络(CNN)中感受野的概念及其与锚框(anchor box)的关系。感受野定义了特征图上每个像素点对应的输入图像区域大小,而锚框则是在每个像素中心生成的多个不同尺寸和宽高比的边界框。两者在目标检测任务中起到关键作用。 ... [详细]
  • 如何高效创建和使用字体图标
    在Web和移动开发中,为什么选择字体图标?主要原因是其卓越的性能,可以显著减少HTTP请求并优化页面加载速度。本文详细介绍了从设计到应用的字体图标制作流程,并提供了专业建议。 ... [详细]
author-avatar
猫儿爱妞_591
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有