<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Python on FXIO 技术博客</title><link>https://fxio.site/tags/python/</link><description>Recent content in Python on FXIO 技术博客</description><generator>Hugo -- 0.157.0</generator><language>zh-cn</language><lastBuildDate>Sun, 26 Jul 2026 00:22:00 +0800</lastBuildDate><atom:link href="https://fxio.site/tags/python/index.xml" rel="self" type="application/rss+xml"/><item><title>实时监控神器：用 Python 打造 macOS 屏幕区域 OCR 笔记生成器 (screen_ocr.py)</title><link>https://fxio.site/posts/2026-07-26-screen-ocr/</link><pubDate>Sun, 26 Jul 2026 00:22:00 +0800</pubDate><guid>https://fxio.site/posts/2026-07-26-screen-ocr/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;摘要&lt;/strong&gt;：还在手动暂停视频截字幕？还在边看直播边手打笔记？本文介绍的 &lt;code&gt;screen_ocr.py&lt;/code&gt; 脚本，利用 macOS 原生 &lt;code&gt;screencapture&lt;/code&gt; 与 &lt;code&gt;Vision API&lt;/code&gt;，结合 Python 的 &lt;code&gt;imagehash&lt;/code&gt; 库，实现了一个“框选即监控、变化即记录”的实时 OCR 笔记神器。特别适合视频字幕提取、在线会议记录及动态网页监控。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="1-工具简介你的屏幕速记员"&gt;1. 工具简介：你的屏幕“速记员”&lt;/h2&gt;
&lt;p&gt;在日常开发与学习中，我们经常面临以下场景：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;看网课/直播&lt;/strong&gt;：老师讲得太快，来不及记笔记。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;提取视频字幕&lt;/strong&gt;：视频没有提供字幕文件，只能盯着画面看。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;监控动态界面&lt;/strong&gt;：某个网页或软件界面不断刷新数据，需要手动记录。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;code&gt;screen_ocr.py&lt;/code&gt; 专为解决这些痛点而生。它运行后，你只需在屏幕上框选出感兴趣的文字区域，它就会在后台“盯着”这块区域。一旦检测到画面内容变化（如字幕变了、数据刷新了），它会立即调用 macOS 原生的 OCR 引擎识别文字，并按时间顺序写入 Markdown 文件。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="2-核心功能解析"&gt;2. 核心功能解析&lt;/h2&gt;
&lt;h3 id="21-原生框选screencapture--i"&gt;2.1 原生框选：&lt;code&gt;screencapture -i&lt;/code&gt;&lt;/h3&gt;
&lt;p&gt;传统 Python 截图工具（如 &lt;code&gt;pyautogui&lt;/code&gt;）通常无法精确框选区域，或者依赖庞大的 GUI 库（如 &lt;code&gt;tkinter&lt;/code&gt;、&lt;code&gt;PyQt&lt;/code&gt;）。&lt;code&gt;screen_ocr.py&lt;/code&gt; 直接调用了 macOS 内置的 &lt;code&gt;screencapture -i&lt;/code&gt; 命令。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;体验&lt;/strong&gt;：按下运行键，鼠标变成十字准星，跟平时用 &lt;code&gt;Cmd+Shift+4&lt;/code&gt; 一模一样。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;优势&lt;/strong&gt;：零依赖、原生体验、支持 Retina 屏幕高清截图。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="22-智能去抖感知哈希-phash-比对"&gt;2.2 智能去抖：感知哈希 (pHash) 比对&lt;/h3&gt;
&lt;p&gt;如果每秒钟都调用 OCR，不仅浪费资源，还会产生大量重复文本（比如画面没变，但识别结果可能因为噪点略有不同）。
脚本引入了 &lt;code&gt;imagehash&lt;/code&gt; 库，计算图片的 &lt;strong&gt;pHash (感知哈希)&lt;/strong&gt;。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;原理&lt;/strong&gt;：将图片缩放、灰度化、DCT 变换后生成一个 64 位的指纹。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;判定&lt;/strong&gt;：只有当新旧两帧图片的汉明距离（Hamming Distance）大于 5 时，才认为画面发生了实质变化。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;效果&lt;/strong&gt;：完美过滤静止画面，仅在文字更新时触发识别。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="23-极速识别macos-native-vision-api"&gt;2.3 极速识别：macOS Native Vision API&lt;/h3&gt;
&lt;p&gt;通过 &lt;code&gt;ocrmac&lt;/code&gt; 库封装，直接调用 macOS 系统级的 &lt;code&gt;VNRecognizeTextRequest&lt;/code&gt;。&lt;/p&gt;</description></item><item><title>避坑与飞跃：在 M4 Pro Mac 上对视频关键帧进行 OCR 识别与内存去重实战</title><link>https://fxio.site/posts/2026-07-25-macos-ocr-video-frame/</link><pubDate>Sat, 25 Jul 2026 23:15:00 +0800</pubDate><guid>https://fxio.site/posts/2026-07-25-macos-ocr-video-frame/</guid><description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;摘要&lt;/strong&gt;：在处理视频关键帧文本/字幕提取时，我们常常面临“多帧重复”与“识别效率低”两大痛点。本文记录了从传统 PaddleOCR 方案切到 macOS Native Vision API 的全过程，并通过 Python 实现了内存级模糊去重与灵活的批量导出。在 M4 Pro 芯片加持下，识别速度直升至每秒 10+ 张！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="1-背景与痛点"&gt;1. 背景与痛点&lt;/h2&gt;
&lt;p&gt;在视频内容分析、字幕提取或文档视频化等场景中，我们通常需要将视频按帧导出为图片并识别其中的文本。然而，这一过程有两个核心痛点：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;画面重复率极高&lt;/strong&gt;：相邻的关键帧往往包含完全相同或极其相似的文本，直接输出会导致结果大量冗余。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;传统 OCR 引擎偏重&lt;/strong&gt;：像 PaddleOCR 这类业界顶级的开源方案，在 NVIDIA 显卡或 x86 CPU 上表现优异，但在 Apple Silicon（如 M4 Pro）上运行时，由于需要经过 Python 运行时与跨平台计算图调度，单图识别耗时较长（100~300ms/帧），处理大批量图片时风扇直吹、资源占用较高。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="2-方案对比paddleocr-vs-macos-native-vision"&gt;2. 方案对比：PaddleOCR vs macOS Native Vision&lt;/h2&gt;
&lt;p&gt;为了在 Mac 上获得最佳效率，我们对比了两种技术路线：&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th style="text-align: left"&gt;维度&lt;/th&gt;
&lt;th style="text-align: left"&gt;&lt;strong&gt;PaddleOCR (Python)&lt;/strong&gt;&lt;/th&gt;
&lt;th style="text-align: left"&gt;&lt;strong&gt;macOS Native Vision API (&lt;code&gt;ocrmac&lt;/code&gt;)&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;&lt;strong&gt;底层硬件支持&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: left"&gt;主走 CPU 多线程推理 / MPS 支持有限&lt;/td&gt;
&lt;td style="text-align: left"&gt;深度适配 &lt;strong&gt;Apple Neural Engine (NPU)&lt;/strong&gt; + Metal&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;&lt;strong&gt;单图识别速度&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: left"&gt;~100 - 300 ms / 帧&lt;/td&gt;
&lt;td style="text-align: left"&gt;&lt;strong&gt;~50 - 100 ms / 帧&lt;/strong&gt;（每秒 10+ 张）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;&lt;strong&gt;资源与内存占用&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: left"&gt;需加载完整神经网络权重与 Python 运行库&lt;/td&gt;
&lt;td style="text-align: left"&gt;直接调系统驻留服务，&lt;strong&gt;占用微乎其微&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;&lt;strong&gt;初始化开销&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: left"&gt;首次运行需下载 100MB+ 模型模型并做连通性检测&lt;/td&gt;
&lt;td style="text-align: left"&gt;&lt;strong&gt;零下载、零模型开销&lt;/strong&gt;，开箱即用&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style="text-align: left"&gt;&lt;strong&gt;最佳适用场景&lt;/strong&gt;&lt;/td&gt;
&lt;td style="text-align: left"&gt;复杂工业票据、表格结构化解析、跨平台部署&lt;/td&gt;
&lt;td style="text-align: left"&gt;&lt;strong&gt;macOS 平台&lt;/strong&gt;下的视频关键帧、截图、常规文本快速提取&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;结论&lt;/strong&gt;：在 macOS 环境下处理视频字幕与常规截图，原生 &lt;strong&gt;Vision API&lt;/strong&gt; 凭借对 NPU 的极致调度，性能堪称“降维打击”。&lt;/p&gt;</description></item></channel></rss>