科大讯飞OCR公式识别实现截图获取latex
前言尝试了一下两个做图片转latex公式的平台,科大讯飞和好未来。科大讯飞每天免费500次,但是识别的不准;好未来识别的准,但只有100次的试用。我还是选择用科大讯飞的,识别错的地方改改就行。
基于科大讯飞的公式识别接口,实现了调用微信dll文件截图功能,识别后自动保存至剪贴板。
工具
讯飞公式识别API: 一天免费500次
PrScrn.dll:旧版微信的截图dll 下载链接。
python
接口申请科大讯飞https://console.xfyun.cn/
好未来https://ai.100tal.com/
代码逻辑代码去这里下载:github代码地址
WebITRTeach.py是科大讯飞官网上的demo,我做了一点儿小修改。现在是传入图片路径,然后向讯飞发post请求。 发送的原理就是把图片转成base64格式的数据,填到body里去。
main.py主要是实现截图、截图时隐藏窗口、将结果复制到剪切板等操作。
截图 os.system('RUNDLL32.EXE PrScrn.dll PrScrn')
截图时隐藏窗口 调用ctype获取窗口句柄 ...
Github的.gitignore忽略文件
前言今天开学第一天,写了一个调api OCR公式转latex的代码,我自己的帐号密钥文件需要隐藏起来。我使用的是不把git里的这个密钥文件上传到github,下面记录一下方法。
重要!重要!重要!重要的事情说三遍!大家一定要养成在项目开始就创建 .gitignore 文件的习惯,否则一旦push,处理起来会非常麻烦。
.gitignore文件在git中如果想忽略掉某个文件,不让这个文件提交到版本库中,可以使用修改 .gitignore 文件的方法。
.gitignore 文件创建touch .gitignore #创建gitignore隱藏文件 vim .gitignore #编辑文件,加入指定文件
示例:这个文件每一行保存了一个匹配的规则
# 此为注释 – 将被 Git 忽略*.a # 忽略所有 .a 结尾的文件!lib.a # 但 lib.a 除外/TODO # 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODObuild/ # 忽略 build/ 目录下的所有文件doc/*.txt # ...
黄金正弦算法
前言黄金正弦算法(Gold-SA)是 Tanyildizi 等 于2017 年提出的一种新型元启发式优化算法,其灵感来源于正弦函数单位圆内扫描类似于待优化问题解的空间搜索,并通过黄金分割率缩小搜索空间以逼近算法最优解。与传统元启发式优化算法相比,Gold-SA 算法具有原理简单、设置参数少、寻优能力强等特点。
算法原理初始化与其他基于种群的优化算法一样,Gold-SA 算法也从随机生成的种群开始。Gold-SA 算法初始种群旨在通过随机生成每个维度的均匀分布来更好地扫描搜索空间。$$V_{i}=rand*(ub-lb)+lb\tag{1}$$式中$V_{i}$是第$i$个个体的初始值$ub$,$lb$为搜索空间的上下限。
黄金分割系数Gold-SA 算法在位置更新过程中引入黄金分割系数 $x_{1}$ 和 $x_{2}$使“搜索”和“开发”达到良好的平衡,这些系数缩小了搜索空间引领个体趋近最优值。$$x_{1}=a*(1-t)+bt$$$$x_{2}=at+b*(1-t)$$式中$a$、$b$为黄金分割比率搜索初始值,一般$a= -\pi$, ...
混沌映射
前言在优化领域,混沌映射可以用于替代伪随机数生成器,生成 0 到 1 之间的混沌数。经过实验证明,利用混沌序列进行种群初始化、选择、交叉和变异等操作会影响算法的整个过程,而且常常能取得比伪随机数更好的效果。
混沌映射特征混沌映射被用于生成混沌序列,这是一种由简单的确定性系统产生的随机性序列。一般混沌序列具有以下主要特征:
非线性;
对初值的敏感依赖性;
遍历性;
随机性;
奇异吸引子(混沌吸引子);
分数维持性;
整体稳定局部不稳定;
长期不可预测性;
轨道不稳定性及分叉;
普适性和Feigenbaum常数。
常见分类
Logistic 映射,又称虫口映射 $$z_{k+1}=\mu z_{k}\left(1-z_{k}\right)$$ 其中,$z_{0} \notin{0,0.25,0.5,0.75,1.0} \quad \mu \in[0,4]$
PWLCM映射 $$z_{k+1}=\left{\begin{array}{ll}z_{k} / p, & z_{k} \in(0, p) \ \left(1-z_{k}\right)(1 ...
鲸鱼算法
前言鲸鱼算法(Whale Optimization Algorithm)是根据鲸鱼围捕猎物的行为而提出的算法。鲸鱼是一种群居的哺乳动物,在捕猎时它们也会相互合作对猎物进行驱赶和围捕。鲸鱼算法中,每个鲸鱼的位置代表了一个可行解。在鲸鱼群捕猎过程中,每只鲸鱼有两种行为,一种是包围猎物,所有的鲸鱼都向着其他鲸鱼前进;另一种是汽包网,鲸鱼环形游动喷出气泡来驱赶猎物。在每一代的游动中,鲸鱼们会随机选择这两种行为来进行捕猎。在鲸鱼进行包围猎物的行为中,鲸鱼将会随机选择是向着最优位置的鲸鱼游去还是随机选择一只鲸鱼作为自己的目标,并向其靠近。
算法原理在海洋活动中,座头鲸有着一种特殊的狩猎方法,这种觅食行为称为bubble-net 捕食策略,其狩猎行为如图所示。
包围猎物座头鲸在狩猎时要包围猎物,为了描述这种行为,Mirjalili 提出了下面的数学模型:式中:$t$ 是当前迭代次数;$A$ 和 $C$ 为表示系数,$X^{*}(t)$ 表示目前为止最好的鲸鱼位置向量,$X(t)$ 表示当前鲸鱼的位置向量,$A$ 和 $C$ 由下式可得到其中,$r_{1}$和$r_{2}$是(0,1)中的随机数,$a ...
差分进化算法
前言差分进化算法(Differential Evolution Algorithm,DE)是一种高效的全局优化算法。它也是基于群体的启发式搜索算法,群中的每个个体对应一个解向量。差分进化算法的进化流程则与遗传算法非常类似,都包括变异、杂交和选择操作,但这些操作的具体定义与遗传算法有所不同。
差分进化算法差分进化算法和遗传算法有些相似,但是比遗传算法简单好实现,但是差分进化算法的变种,或者说变形有很多,大家可以根据具体情况选择。差分进化算法也是在现有的解上面,根据一定的办法选择几个解,根据变异公式把这几个解融合成一个变异解,这个过程称为变异;把第i个变异解和第i个旧解的每个参数,跟据一定概率选择选择新解或者旧解的值,称为交叉,形成交叉解;把第i个交叉解和第i个旧解比较,选择较优的解保存作为下一次循环的解,这也是差分进化算法最不同于遗传算法的地方。
差分进化算法流程
初始化随机初始化数目为NP的D维参数向量 $x$ ,$x(i)$ 表示第i个解,每个解参数可以表示为 $x(i,j)$ ,$i=1,2,…,NP,j=1,2,…,D$解数目NP根据情况选择,一般选取[50, ...
蛇优化算法
前言蛇优化(Snake Optimizer, SO)[1]是Hashim, F. A.和 Hussien, A. G两位教授于2022年提出的优化算法,其算法灵感来蛇的觅食和繁殖行为和模式。
蛇优化算法原理雄性蛇和雌性蛇之间交配的发生受到某些因素的影响。蛇在春末和初夏交配,那时温度低。但交配过程不仅取决于温度,还取决于食物的充足性。如果温度低,食物充足;雄性蛇会互相争斗,以吸引雌性的注意力。雌性有权决定是否交配。如果发生交配,雌性开始在巢穴或洞穴中产卵,一旦卵出现,它就会离开。
理论与所有元启发式算法一样,SO 首先生成均匀分布的随机种群,以便能够开始优化算法过程。初始化公式如下:$$X_{i}=X_{\min }+r \times\left(X_{\max }-X_{\min }\right)$$其中,$X_{i}$ 为第i个位置的解,$r \in[0,1]$,$X_{max}$和$X_{min}$分别为待解决问题的上下界。此后,将初始化的种群分为雄性和雌性两个部分,原文中雄雌比例为1:1。
SO的探索和开发阶段主要受温度 $Temp$ 和食物量 $Q$ 的影响:$$T e ...
粒子群优化算法
粒子群优化算法粒子群算法,也称粒子群优化算法或鸟群觅食算法(Particle Swarm Optimization),缩写为PSO,是由J. Kennedy和R. C. Eberhart等开发的一种新的进化算法(Evolutionary Algorithm -EA)[1]。PSO算法属于进化算法的一种,和模拟退火算法相似,它也是从随机解出发,通过迭代寻找最优解,它也是通过适应度来评价解的品质,但它比遗传算法规则更为简单,它没有遗传算法的“交叉”(Crossover)和“变异”(Mutation)操作,它通过追随当前搜索到的最优值来寻找全局最优。这种算法以其实现容易、精度高、收敛快等优点引起了学术界的重视,并且在解决实际问题中展示了其优越性。在 PSO 算法中,将鸟群中的个体称为“粒子”,可行域上的一个点代表食物源,即是个体(粒子)位置,也是所要优化问题的一个潜在解。在可行域中创建 N 个粒子,每个粒子的特征用位置、速度和适应度值表示。每个粒子在可行域中运动并计算得到适应度值,根据个体适应度最好值与群体适应度最好值更新个体位置,从而达到优化的目的[2]。该文首先介绍了标准粒子群算法的基本 ...
模拟退火算法 python实现
前言模拟退火算法(Simulated Annealing,SA)最早的思想是由N. Metropolis 等人于1953年提出。1983 年,S. Kirkpatrick 等成功地将退火思想引入到组合优化领域。它是基于Monte-Carlo迭代求解策略的一种随机寻优算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。 从某一较高初温出发,伴随温度参数的不断下降,结合概率突跳特性在求解空间中随机寻找目标函数的全局最优解,即在局部最优解能概率性地跳出并最终趋于全局最优。优点:
模拟退火算法是一种通用的优化算法,理论上算法具有概率的全局优化性能。
赋予搜索过程一种时变且最终趋于零的概率突跳性,从而可有效避免陷入局部极小并最终趋于全局最优的串行结构的优化算法。
应用:
VLSI(超大规模集成电路)最优设计、图像处理、组合优化问题、生产调度、控制工程、机器学习、神经网络、信号处理等领域。
原理模拟退火算法包含两个部分即Metropolis算法和退火过程,分别对应内循环和外循环。外循环就是退火过程,将固体达到较高的温度(初始温度 T(0)),然后按照降温系数 ...
hexo butterfly主题添加备案信息
前言今天腾讯云的客服给我打电话让我在网站页脚添加备案信息网上找了一个方法使用后hexo报错链接如下:https://blog.csdn.net/qq_51604330/article/details/114530264不过总归是让我找到了改的位置,下面介绍修改方法
添加方法
按照路径找到footer.pug文件
打开文件并在图示位置添加一下内容
.framework-info img(src = 'https://static.dy208.cn/o_1dfilp8ruo521thr1hvf18ji17soa.png') span= ' ' a(href='https://beian.miit.gov.cn/')= '黔ICP备2022002429号-1'
效果