Memento OCR管道详解:Tesseract如何把截图变成可搜索文本
Memento OCR管道详解Tesseract如何把截图变成可搜索文本【免费下载链接】MementoMemento is a Python app that records everything you do on your computer and lets you go back in time, search, and chat with a LLM (Large Language Model) to find back information about what you did.项目地址: https://gitcode.com/gh_mirrors/mem/MementoMemento 是一款基于 Python 的屏幕记录应用它最核心的OCR管道负责把电脑上每一帧截图中的文字提取出来交给 Tesseract 识别后写入 SQLite 全文索引让你可以像回到过去一样搜索自己曾经看过的任何内容。本文用通俗易懂的语言为你完整拆解这条OCR管道从截图到可搜索文本的每一步。Memento 是什么一个数字记忆应用想象一下你几天前在某个网页上看到一段重要信息但忘了保存。有了 Memento你只需要在时间轴上搜索关键词它就能帮你定位到那一秒的画面。它的工作方式非常巧妙 持续截屏记录你的一切操作 把截图压缩成 h264 视频片段节省磁盘空间 用 OCR 从画面中提取文字并建立索引 甚至可以用大语言模型LLM与你的记忆对话OCR管道全景从截图到可搜索文本的 5 个步骤整条OCR管道可以概括为下面这条流水线步骤任务核心工具① 采集定时截取屏幕画面mss 截图库② 去重相似画面直接跳过自定义 imgdiff 算法③ 预处理放大、灰度化、二值化OpenCV④ 识别逐行提取文字和坐标Tesseracttesserocr⑤ 入库写入全文索引与向量库SQLite FTS5 Chroma下面我们一步步深入这条OCR管道的每个环节。第一步每 2 秒截一张屏压缩成 h264 视频Memento 的后台进程见 memento/background.py通过mss库以约 0.5 FPS每 2 秒一帧的频率抓取全屏画面随后用 PyAV 将画面编码为 h264 视频片段每 10 秒生成一个独立视频文件。这样设计的好处很明显原始截图动辄数 MB而压缩成视频后每小时大约只产生120MB数据存储成本大幅下降。同时画面保留了完整的像素信息方便后续随时回放任意时间点的屏幕内容。第二步智能去重——相似帧直接跳过屏幕内容经常长时间不变比如你正在读一篇长文。如果每帧都做 OCR纯属浪费 CPU。Memento 在 memento/utils.py 中实现了一个imgdiff函数通过逐像素异或计算前后两帧的差异分数。后台 worker 拿到新截图后会先计算 diffscore只有当分数超过 0.1 时才启动 OCR否则直接标记为跳过帧。这个小优化让OCR管道的处理量大幅降低是保证长期后台运行不卡顿的关键。第三步图像预处理让 Tesseract 看得更清楚原生的截图是彩色图像直接识别效果一般。Memento 在 memento/OCR.py 的preprocess方法中做了三步处理按比例放大通过resize_factor参数放大图像让小字号文字更容易被识别转为灰度图去掉颜色干扰只保留亮度信息自适应阈值二值化使用高斯自适应阈值把图像变成黑白两色增强文字与背景的对比度这一套预处理组合拳能显著提升 Tesseract 在复杂桌面界面深色主题、彩色按钮、图片背景上的识别准确率。第四步Tesseract 逐行识别 置信度过滤预处理完成后就轮到主角Tesseract登场了。Memento 使用tesserocr库Tesseract 的 C API 封装构建识别引擎关键配置如下psm11稀疏文本模式适合识别界面、桌面等分布零散的文字oem3默认引擎模式自动选择最佳识别模型RIL.TEXTLINE按文本行粒度获取识别区域识别流程非常讲究先获取整张图中所有文本行的包围框然后对每一行单独设置识别区域SetRectangle并提取文字最后通过MeanTextConf获得该行的置信度。置信度低于 50 的行会被直接丢弃避免把低质量识别结果写入索引污染搜索质量。由于图像可能被放大过代码还会把坐标除以resize_factor确保文字框坐标和原始截图一一对应这样才能在时间轴上精准高亮文字位置。第五步文本入库FTS5 全文搜索 向量检索识别出的每行文字都带有坐标、置信度等信息会被写入 SQLite 数据库见 memento/db.pyFRAME 表记录帧编号、窗口标题、时间戳CONTENT 表记录每行文本及其坐标CONTENT_FTS 表基于 SQLite FTS5 的虚拟全文索引表借助触发器新文本会自动同步到 FTS 索引中。当你按下CtrlF在时间轴中搜索时Memento 用一条 FTS5 的MATCH查询就能毫秒级返回所有包含关键词的画面并直接定位到文字所在位置。此外后台还会把按应用聚合的文本片段写入 Chroma 向量数据库为后续的语义搜索和 LLM 对话提供支持。内容分段把零散文本合并成连贯段落单帧识别结果只是一行行零散文字直接搜索体验不佳。为此 memento/segments.py 实现了智能分段机制应用级分段切换窗口时自动生成新段落内容级分段用fuzz.ratio字符串相似度判断画面是否发生实质变化文本合并对相似帧的文本做 diff 合并去除重复内容最终Memento 能把你在某应用里停留期间看过的内容汇总成一段连贯文本这段文本既用于向量检索也作为与 LLM 对话的上下文材料。性能与优化多进程 worker 并行识别OCR 是 CPU 密集型任务Memento 把识别工作放到独立的 multiprocessing 子进程中执行主进程只负责截图和结果回收两者通过队列解耦。即便识别速度暂时跟不上截图速度画面采集也不会中断保证记录的完整性。总结Memento 的OCR管道设计得非常务实用 imgdiff 跳过静态帧节省算力用 OpenCV 预处理提升识别率用 Tesseract 的文本行级识别加置信度过滤保证质量再用 FTS5 实现毫秒级搜索。整条流水线把屏幕画面高效地转化成了可搜索的文本记忆。如果你也想给自己的电脑装一个数字记忆可以 clone 仓库git clone https://gitcode.com/gh_mirrors/mem/Memento后参考 README.md 的安装步骤先安装 Tesseract OCR 与语言包再执行pip install -e .最后分别运行memento-bg后台记录和memento-timeline时间轴界面即可体验。动手试试你会发现回到过去原来如此简单【免费下载链接】MementoMemento is a Python app that records everything you do on your computer and lets you go back in time, search, and chat with a LLM (Large Language Model) to find back information about what you did.项目地址: https://gitcode.com/gh_mirrors/mem/Memento创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

免费开源!三步让macOS上的普通鼠标用出旗舰手感:Mac Mouse Fix完整指南

免费开源!三步让macOS上的普通鼠标用出旗舰手感:Mac Mouse Fix完整指南

免费开源!三步让macOS上的普通鼠标用出旗舰手感:Mac Mouse Fix完整指南 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix …

2026/8/20 21:47:05 阅读更多 →
单机复现 POLARIS-1.7B 实战:从 Qwen3 基座到 AIME24 66.9 分的完整流程

单机复现 POLARIS-1.7B 实战:从 Qwen3 基座到 AIME24 66.9 分的完整流程

单机复现 POLARIS-1.7B 实战:从 Qwen3 基座到 AIME24 66.9 分的完整流程 【免费下载链接】POLARIS Scaling RL on advanced reasoning models 项目地址: https://gitcode.com/gh_mirrors/polaris34/POLARIS POLARIS-1.7B 复现并不神秘。这个开源项目通过强化…

2026/8/22 0:01:55 阅读更多 →
深度解析Vespene:Ansible作者打造的被低估开源CI/CD自动化平台

深度解析Vespene:Ansible作者打造的被低估开源CI/CD自动化平台

深度解析Vespene:Ansible作者打造的被低估开源CI/CD自动化平台 【免费下载链接】_old_vespene DISCONTINUED: a frozen fork will exist forever at mpdehaan/vespene 项目地址: https://gitcode.com/gh_mirrors/ol/_old_vespene Vespene 是一款被严重低估的…

2026/8/20 21:47:05 阅读更多 →

最新新闻

markdown-it-vue 快速上手指南:3 步在 Vue 项目中跑通 Markdown 渲染

markdown-it-vue 快速上手指南:3 步在 Vue 项目中跑通 Markdown 渲染

markdown-it-vue 快速上手指南:3 步在 Vue 项目中跑通 Markdown 渲染 【免费下载链接】markdown-it-vue The vue lib for markdown-it. 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-it-vue markdown-it-vue 是为 Vue 2 做的 Markdown 渲染组件&am…

2026/8/22 0:02:12 阅读更多 →
CUBE标准:统一AI智能体评测的度量衡与架构解析

CUBE标准:统一AI智能体评测的度量衡与架构解析

1. 项目概述:为什么我们需要一个统一的智能体评测标准?最近在折腾各种AI智能体项目,从简单的自动化脚本到复杂的多模态交互系统,我发现了一个让人头疼的共性问题:评测。每次开发完一个智能体,想看看它到底行…

2026/8/22 0:01:12 阅读更多 →
多尺度智能体控制:从宏观密度场到微观决策的架构与实践

多尺度智能体控制:从宏观密度场到微观决策的架构与实践

1. 从宏观到微观:多尺度智能体控制的核心挑战在智能体(Agent)技术日益普及的今天,我们面临着一个越来越普遍的难题:如何同时管理成千上万个,甚至百万级别的智能体?无论是城市交通中的自动驾驶车…

2026/8/22 0:01:12 阅读更多 →
markdown-it-vue 踩坑排障:从安装到渲染的 6 个高频问题快速讲清

markdown-it-vue 踩坑排障:从安装到渲染的 6 个高频问题快速讲清

markdown-it-vue 踩坑排障:从安装到渲染的 6 个高频问题快速讲清 【免费下载链接】markdown-it-vue The vue lib for markdown-it. 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-it-vue 这篇文章写给刚装上 markdown-it-vue 就遇到报错的你&#x…

2026/8/22 0:01:12 阅读更多 →
消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

大家好,我是专注于前端开发与AI工具实践的技术博主。在日常使用 Claude Code 等AI编程助手时,你是否也遇到过这样的困扰:生成的代码功能上没问题,但代码风格、组件设计、交互逻辑总透着一股“AI味”——布局单调、样式简陋、交互生…

2026/8/22 0:00:11 阅读更多 →
电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

这次我们来看一个针对电气考研电路科目的学习规划项目。它不是软件工具,而是一套聚焦于8月份关键节点的备考策略。对于电气工程考研的同学来说,电路分析是专业课的重中之重,也是拉开分差的关键。进入8月,复习进入强化阶段&#xf…

2026/8/22 0:00:11 阅读更多 →

日新闻

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

沉金PCB工艺实战指南:从设计到SMT焊接的可靠性保障

在电子硬件开发领域,PCB(印制电路板)的沉金工艺是提升产品可靠性和焊接质量的关键环节。对于需要高密度互连、长期稳定运行或高频信号传输的板卡,如“黍姐仿通行证”这类可能涉及身份识别、数据交互的硬件项目,选择正确…

2026/8/22 0:00:11 阅读更多 →
电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

电气考研电路八月强化四步法:从知识体系到真题实战的闭环攻略

这次我们来看一个针对电气考研电路科目的学习规划项目。它不是软件工具,而是一套聚焦于8月份关键节点的备考策略。对于电气工程考研的同学来说,电路分析是专业课的重中之重,也是拉开分差的关键。进入8月,复习进入强化阶段&#xf…

2026/8/22 0:00:11 阅读更多 →
消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

消除AI代码的“AI味”:Claude Code设计优化技能配置与实战指南

大家好,我是专注于前端开发与AI工具实践的技术博主。在日常使用 Claude Code 等AI编程助手时,你是否也遇到过这样的困扰:生成的代码功能上没问题,但代码风格、组件设计、交互逻辑总透着一股“AI味”——布局单调、样式简陋、交互生…

2026/8/22 0:00:11 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/21 3:21:33 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/21 0:02:09 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/21 6:07:56 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/21 16:42:28 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/20 21:46:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/21 0:14:22 阅读更多 →