2024年Python最新利用python进行数学公式识别_python 识别图片中的数学公式,2024年最新字节跳动技术岗位面试

简介: 2024年Python最新利用python进行数学公式识别_python 识别图片中的数学公式,2024年最新字节跳动技术岗位面试


在开始前,先介绍下虚拟环境。虚拟环境相当于独立分支,该环境下的安装包是独立的,不影响其他环境。由于本安装包的依赖较多,且与当前部分包产生版本冲突。因此采取新增一个虚拟环境进行试用:

  • 安装包:conda install ipykernel,conda install nb_conda
  • 设置虚拟环境:conda create -n p2t python=3.8
  • 重启juuyter
  • 在jupyter新建中选择刚才创建的虚拟环境p2t

安装过程可能会有些问题,如果是初次使用OpenCV,那估计安装都不会很顺利(作者原话)。以下是我安装过程爬过的坑,如果有同样的情况可以参考。其他情况只能自行谷歌/百度了,一般都能解决。

pip install numpy -- 提前安装好numpy
pip install requests -- 提前安装好requests
pip install pix2text
# 最新版要求os 11,否则报ImportError: dlopen... 错误
# 本机为os 10.15 不考虑折腾mac版本,选择安装旧版本,因此先删除依赖自动安装的最新版opencv
pip uninstall opencv-python -y
pip install opencv-python==4.2.0.34 # 指定4.2旧版本

万事具备,开始根据作者的教程走。安装好 Pix2Text 后,首次使用时系统会自动下载模型文件,并存于 ~/.pix2text目录

def pic2latex(img):
    from pix2text import Pix2Text
    img_fp = img
    p2t = Pix2Text()
    out_text = p2t(img_fp)
    
    print(out_text['text'])
# 首次运行时系统会自动下载模型文件,只需等待即可
pic2latex('1.png')
100%|███████████████████████████████████████████| 1/1 [00:00<00:00, 21.21it/s]
f(x)=\frac{1}{\sqrt{2\pi}\sigma}\mathrm{e}^{-\frac{(x-\mu)^{2}}{2\sigma^{2}}}

复制该latex文本写入markdown,可以正常识别:f(x)=12πσe−(x−μ)22σ2

为了检验效果,这里在网上下了几张公式的图片,验证下识别效果

本文图片来源于网上,读者可自行网络搜集或点击保存图片,如果需要也可微信公众号关注HsuHeinrich,回复关键字【公式识别】自动获取

# 循环识别以下图片
from PIL import Image
import matplotlib.pyplot as plt
import numpy as np
for i in range(1,5):
    img = Image.open(f'{i}.png')
    m = np.asarray(img)
    plt.figure(figsize=(18,24))
    plt.imshow(m)
    plt.show()
    print('识别结果'+'\*'\*30)
    pic2latex(f'{i}.png')

output_8_0

识别结果******************************
100%|███████████████████████████████████████████| 1/1 [00:00<00:00, 21.77it/s]
f(x)={\frac{1}{\sqrt{2\pi}\sigma}}\mathrm{e}^{-{\frac{(x-\mu)^{2}}{2\sigma^{2}}}}

output_8_4

识别结果******************************
100%|███████████████████████████████████████████| 1/1 [00:00<00:00, 23.07it/s]
\begin{array}{c}{{f_{x}(x)=\int_{-\infty}^{\infty}f(x,y)\,\mathrm{d}y=\int_{0}^{1}{\frac{x+2y}{4}}\,\mathrm{d}y}}\\ {{\ }}\\ {{\ }}\\ {{\ }}\\ {{={\frac{x y+y^{2}}{4}}{\binom{x}{4}}\end{array}^{1}{\binom{x+1}{4}}}}\end{array}

output_8_8

识别结果******************************
100%|███████████████████████████████████████████| 1/1 [00:00<00:00, 23.38it/s]
十(-1)0-
tanh(-6.
8厂
eaD sinh 3.z2)(e一告J1 -1
1+ 2esD cosh(麦6.72

output_8_12

识别结果******************************
100%|███████████████████████████████████████████| 1/1 [00:00<00:00, 21.11it/s]
I(Y|X)=\sum_{x\in{\mathcal{A}},\mathfrak{p}\in{\mathcal{Y}}}p(x,y)\log\left({\frac{p(x)}{p(x,y)}}\right)

发现第二张图片和第三张图片无法识别/识别错误。

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。


相关文章
|
22天前
|
Python
Python实用记录(六):如何打开txt文档并删除指定绝对路径下图片
这篇文章介绍了如何使用Python打开txt文档,删除文档中指定路径的图片,并提供了一段示例代码来展示这一过程。
26 1
|
23天前
|
计算机视觉 Python
Python实用记录(一):如何将不同类型视频按关键帧提取并保存图片,实现图片裁剪功能
这篇文章介绍了如何使用Python和OpenCV库从不同格式的视频文件中按关键帧提取图片,并展示了图片裁剪的方法。
52 0
|
22天前
|
Python
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
使用Python的socket库实现客户端到服务器端的图片传输,包括客户端和服务器端的代码实现,以及传输结果的展示。
92 3
Socket学习笔记(二):python通过socket实现客户端到服务器端的图片传输
|
2天前
|
数据采集 Web App开发 iOS开发
如何利用 Python 的爬虫技术获取淘宝天猫商品的价格信息?
本文介绍了使用 Python 爬虫技术获取淘宝天猫商品价格信息的两种方法。方法一使用 Selenium 模拟浏览器操作,通过定位页面元素获取价格;方法二使用 Requests 和正则表达式直接请求页面内容并提取价格。每种方法都有详细步骤和代码示例,但需注意反爬措施和法律法规。
|
3天前
|
数据采集 存储 Web App开发
利用Python 的爬虫技术淘宝天猫销量和库存
使用 Python 爬虫技术获取淘宝天猫商品销量和库存的步骤包括:1. 安装 Python 和相关库(如 selenium、pandas),下载浏览器驱动;2. 使用 selenium 登录淘宝或天猫;3. 访问商品页面,分析网页结构,提取销量和库存信息;4. 处理和存储数据。注意网页结构可能变化,需遵守法律法规。
|
4天前
|
数据库 开发者 Python
“Python异步编程革命:如何从编程新手蜕变为并发大师,掌握未来技术的制胜法宝”
【10月更文挑战第25天】介绍了Python异步编程的基础和高级技巧。文章从同步与异步编程的区别入手,逐步讲解了如何使用`asyncio`库和`async`/`await`关键字进行异步编程。通过对比传统多线程,展示了异步编程在I/O密集型任务中的优势,并提供了最佳实践建议。
10 1
|
12天前
|
机器学习/深度学习 算法 Java
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
机器学习、基础算法、python常见面试题必知必答系列大全:(面试问题持续更新)
|
17天前
|
人工智能 文字识别 Java
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
尼恩,一位拥有20年架构经验的老架构师,通过其深厚的架构功力,成功指导了一位9年经验的网易工程师转型为大模型架构师,薪资逆涨50%,年薪近80W。尼恩的指导不仅帮助这位工程师在一年内成为大模型架构师,还让他管理起了10人团队,产品成功应用于多家大中型企业。尼恩因此决定编写《LLM大模型学习圣经》系列,帮助更多人掌握大模型架构,实现职业跃迁。该系列包括《从0到1吃透Transformer技术底座》、《从0到1精通RAG架构》等,旨在系统化、体系化地讲解大模型技术,助力读者实现“offer直提”。此外,尼恩还分享了多个技术圣经,如《NIO圣经》、《Docker圣经》等,帮助读者深入理解核心技术。
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
|
22天前
|
Python
Python实用记录(四):os模块-去后缀或者改后缀/指定目录下图片或者子目录图片写入txt/csv
本文介绍了如何使用Python的os模块来操作文件,包括更改文件后缀、分割文件路径和后缀、将指定目录下的所有图片写入txt文档,以及将指定目录下所有子目录中的图片写入csv文档,并为每个子目录分配一个标签。
14 1
|
21天前
|
网络协议 安全 Java
难懂,误点!将多线程技术应用于Python的异步事件循环
难懂,误点!将多线程技术应用于Python的异步事件循环
51 0