记录一次开发Typecho检索图片中文字功能的实战

本文详述了一次开发Typecho博客搜索图片中文字功能的过程,包括配置新数据表字段、修改搜索逻辑、安装所需包,以及执行和优化。作者分享了代码实现,并展示了识别前后搜索结果的对比,同时设置了定时任务以减轻服务器压力。
摘要由CSDN通过智能技术生成

版权

本文首发于soarli博客,转载请注明来源。传送门

配置Typecho文本识别能力项目实战笔记,内容原创,转载请注明来源!

前言

早在去年参与苹果iOS 15内测中体验其在全局融入的文字识别能力以及相册场景文本搜索功能时,我就想给自己的博客也实现搜索图片中所含文本的功能。受限于当时的时间和技术条件,这个想法一直处于“挂起”状态。

恰好上个月微信在其新版本也发布了聊天内容中的图片文本搜索功能。刚好寒假期间对PaddlePaddle深度学习框架做了些许研究并在本地部署了OCR项目。择日不如撞日,昨天晚上一口气把这套“前端”逻辑以Python脚本的形式实现了出来。

程序代码已公开,可能存在不足之处与优化空间,希望各位大佬能在看过本文后不吝赐教。

配置

新增Typecho数据表字段:

ALTER TABLE `typecho_contents` ADD `ocr` TEXT NULL AFTER `views`;

修改Typecho搜索逻辑(1189行):

image-20220406045908036

安装用到的Python

pip3 install pymysql -i https://pypi.tuna.tsinghua.edu.cn/simple
pip3 install requests -i https://pypi.tuna.tsinghua.edu.cn/simple

代码

其中xxxxx应换为自己的对应信息:

# -*- coding: utf-8 -*-
# @Author : soarli
# @Date : 2021/4/6

from datetime import datetime
import os
import time
import requests
import re
import pymysql

# <功能选项>
# 是否更新所有信息的OCR结果(False则仅对未OCR的文章执行OCR操作)
updateAll = False
# 处理每张图片请求后的冷却时间(秒,防止因频次限制导致漏掉部分图片)
cool = 5

# <数据库及网站配置相关信息>
# 数据库地址
host = 'xxxxx'
# 数据库用户名
user = 'xxxxx'
# 数据库密码
password = 'xxxxx'
# 数据库名
database = 'xxxxx'
# 博客域名
target = 'https://xxxxx.xxxxx.xxx/'

# <全局变量>
# OCR接口地址
url = "https://xxxxx.xxx/xxxxx"
# 全局请求头
headers={
   'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36','referer':target}
upload_data = {
   "name": "1.jpg", "type": "image/jpeg"
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值