soarli博客 - 人工智能
type: channel
link: https://blog.soarli.top/category/人工智能
items: 苹果豪掷10亿美元：与 Google 联手打造史上最强 Siri
items: 浅谈NLP在生物信息学和复杂系统建模中的应用
items: Stable Diffusion 本地部署教程
items: 如何向 ChatGPT 提问以获得高质量答案：提示技巧工程完全指南
items: 凯文凯利: 5000天后的世界&人类被AI如何塑造
items: 记录一款好用的基于Windows系统的OCR工具
items: Linux下CPU环境的YOLOv5搭建
items: 记录一次开发Typecho检索图片中文字功能的实战
items: Linux安装PaddleOCR
items: 深度学习相关概念

苹果豪掷10亿美元：与 Google 联手打造史上最强 Siri
type: item
date: 2025-11-15T23:08:00+08:00
description: 在 AI 浪潮席卷全球的时代，苹果终于出手了。据彭博社最新报道，苹果正与 Google 达成一项接近 10 亿美元的重大合作协议，计划使用定制版 Gemini 大模型来为下一代 Siri 提供智能支持。这意味着——未来的 Siri，将不仅仅是一个“语音助手”，而将成为苹果 AI 战略的核心入口。1.2 万亿参数：苹果史上最强 Siri 即将诞生根据消息人士透露，苹果计划使用 Google 开发的一款拥有 1.2 万亿参数的 Gemini 模型，来驱动全新的 Siri 系统。相比之下，苹果目前的云端 AI 模型仅有 1500 亿参数，而本地设备上的模型更只有 30 亿参数。这意味着 Siri 迎来一次跨时代的进化：能理解更复杂的自然语言能执行跨应用的连续任务能进行总结、规划等更高阶操作例如，你可能只需要一句话：“帮我整理今天的会议纪要并发邮件给团队。”Siri 就能自动完成整个流程。10 亿美元合作：为什么苹果选择了 Google？据知情人士透露，苹果在评估多家 AI 供应商（包括 Anthropic）后，最终选择了 Google，因为 Gemini 模型在价格与性能之间达到了最佳平衡。这笔每年约 10 亿美元的授权合作，让 Google 成为苹果的 AI 合作伙伴之一。不过，苹果依然坚持关键底线：所有 Gemini 模型都将在苹果自家服务器上运行用户数据不会流向 Google隐私依旧是苹果最重要的护城河。Siri 的分工：Gemini 负责“思考”，苹果负责“灵魂”未来的 Siri 将采用“混合模型结构”：Google Gemini 模型：负责总结、规划、任务执行等复杂逻辑苹果自研模型：负责语音识别、情境感知、个性化响应等本地交互功能这种双模型协作方式，使得 Siri 能同时享受强大的 AI 能力与苹果式的隐私与性能体验。苹果的野心：Gemini 只是“过渡方案”尽管合作金额巨大，但苹果并不打算让 Google 成为永久 AI 引擎。苹果内部正在研发自家 1 万亿参数级别的大模型，未来希望完全替代 Gemini。也就是说，苹果与 Google 的合作更像是：“时间换空间”——在自研模型成熟之前，先借力 Gemini 抢占 AI 市场先机。Siri 的“重生”，是苹果 AI 时代的起点事实上，Siri 的改革早在“Glenwood”项目中启动，由负责 Vision Pro 的 Mike Rockwell 亲自领导。随着本次合作落地，Siri 将迎来十多年来最大的一次升级。2025–2026 年，将成为苹果 AI 战略至关重要的转折期。从 Apple Intelligence，到 Gemini 合作，从 iOS 26 到未来的 iOS 27，苹果正在从“AI 跟随者”向“AI 平台领导者”转型。AI 大战的下半场，苹果终于亮剑过去几年，OpenAI、Google、Anthropic 等 AI 公司不断争夺领先地位，而苹果始终保持克制。但如今，苹果用一笔 10 亿美元的合作宣布——它正式加入战局。真正的较量，将是苹果能否在 隐私、性能与智能之间找到完美平衡：让 Siri 不只是被用户重新“唤醒”，而是成为下一代 AI 生态的中枢。原文地址：苹果豪掷10亿美元：与Google联手打造史上最强 Siri

浅谈NLP在生物信息学和复杂系统建模中的应用
type: item
date: 2023-12-29T23:54:34+08:00
description: 本文由AI辅助撰写，可能存在不准确之处，请读者注意甄别！自然语言处理（NLP）技术是一门研究如何让计算机理解和生成自然语言文本的学科。近年来，随着深度学习的发展，NLP技术取得了巨大的进步，特别是像GPT这样的大型语言模型，已经展示了惊人的能力，可以生成流畅、连贯、有意义的文本。NLP技术不仅可以用于处理自然语言文本，还可以用于处理其他类型的序列数据，例如基因序列、社会网络、经济数据等。这些数据都可以看作是一种特殊的语言，有着自己的语法、语义和逻辑。因此，NLP技术可以在生物信息学和复杂系统建模等领域发挥重要的作用，帮助研究人员分析、预测和解决各种问题。本文将介绍一些NLP技术在这些领域的应用场景，并展望其未来的发展方向。生物信息学生物信息学是一门利用计算机技术来研究生物学问题的学科。生物信息学涉及到大量的数据，包括基因序列、蛋白质结构、生物网络、科学文献、临床报告等。NLP技术可以帮助研究人员从这些数据中提取有用的信息，加速生物学的发现和创新。以下是一些NLP技术在生物信息学中的应用场景：基因序列分析：基因序列是由四种碱基（A、T、C、G）组成的字符串，携带了生物体的遗传信息。NLP技术可以用来分析和预测基因序列，类似于处理自然语言文本。例如，可以使用语言模型来预测蛋白质的结构，或者从序列中识别特定的基因表达模式。这些信息对于理解生物体的功能和疾病的机制有重要的意义。文献挖掘：生物信息学领域有大量的科学文献，每年都有数万篇的新论文发表。NLP技术可以帮助研究人员从文献中提取有关特定蛋白质、疾病或治疗方法的信息，从而加快研究进展。例如，可以使用命名实体识别（NER）技术来标注文献中的生物学概念，或者使用关系抽取（RE）技术来识别文献中的因果关系或相互作用。临床报告分析：临床报告是医生对病人的诊断和治疗的记录，包含了病人的病史、症状、检查结果、药物用量等信息。使用NLP技术分析病人的临床报告，可以提取有关病史、治疗反应和疾病进程的关键信息，这些信息对于个性化医疗和精准医疗至关重要。例如，可以使用文本分类（TC）技术来判断病人的病情是否恶化或改善，或者使用文本摘要（TS）技术来生成病人的病例摘要。药物再利用：药物再利用是指将已有的药物用于新的治疗目的，是一种节省时间和成本的药物开发策略。NLP技术可以帮助识别已有药物的新用途，通过分析药物的作用机制和相关的生物标志物，可以发现新的治疗途径。例如，可以使用文本相似度（TS）技术来比较不同药物的文本描述，或者使用知识图谱（KG）技术来构建药物和疾病之间的关联网络。复杂系统建模复杂系统是由大量相互作用的元素组成的系统，具有非线性、动态和自组织的特征。复杂系统的典型例子有社会网络、经济系统、城市交通、环境系统等。复杂系统的建模是一种利用数学和计算机技术来模拟和分析复杂系统的行为和性质的方法。复杂系统的建模涉及到大量的文本数据，包括新闻、社交媒体、财报、公告等。NLP技术可以帮助研究人员从这些文本数据中提取有用的信息，建立更准确和有效的复杂系统模型。以下是一些NLP技术在复杂系统建模中的应用场景：社会网络分析：社会网络是由个体和他们之间的关系组成的网络，是一种典型的复杂系统。社会网络上的通信模式可以反映出社会网络的结构和功能，以及信息是如何在社会网络中传播的。NLP技术可以用于分析社会媒体上的文本数据，以理解社会网络的特征和动态。例如，可以使用情感分析（SA）技术来评估社会媒体上的用户情绪，或者使用话题模型（TM）技术来识别社会媒体上的热门话题。经济模型：经济系统是由多个参与者和他们之间的交易组成的系统，是一种复杂的自适应系统。经济系统的行为和性能受到多种因素的影响，包括政策、市场、技术等。NLP技术可以用来分析经济相关的文本数据，以预测经济系统的趋势或评估特定事件对经济系统的影响。例如，可以使用情感分析（SA）技术来评估新闻或财报中的经济信心，或者使用事件抽取（EE）技术来识别经济相关的重要事件。城市交通流量预测：城市交通是由多个交通参与者和他们之间的相互作用组成的系统，是一种复杂的动态系统。城市交通的流量和拥堵受到多种因素的影响，包括天气、路况、事故等。NLP技术可以用于分析交通相关的文本数据，如社交媒体、新闻报道和公共交通公告，以建立更准确的交通流量和拥堵预测模型。例如，可以使用情感分析（SA）技术来评估社交媒体上的用户情感和意见，这些信息可以作为预测模型中的一个信号。通过分析推文、博客和在线评论中的关键词和情感倾向，可以对交通状况进行实时监测和预测。此外，NLP可以用来自动提取和分类交通报告中的重要信息，如事故、施工和道路封闭等事件的描述，这些信息可以直接用来调整交通流量预测模型的参数。环境监测：环境系统是由多个自然和人为的子系统组成的系统，是一种复杂的非平衡系统。环境系统的变化受到…

Stable Diffusion 本地部署教程
type: item
date: 2023-06-18T06:19:00+08:00
description: 本文转载自互联网，已在文末注明来源。一、Stable Diffusion 项目介绍Stable DiffusionStable Diffusion 是一款基于人工智能技术开发的绘画软件，它可以帮助艺术家和设计师快速创建高品质的数字艺术作品。是2022年发布的深度学习文本到图像生成模型。它主要用于根据文本的描述产生详细图像，尽管它也可以应用于其他任务，如内补绘制、外补绘制，以及在提示词指导下产生图生图的翻译。 它是一种潜在扩散模型，由慕尼黑大学的CompVis研究团体开发的各种生成性人工神经网络。官网地址：https://stability.ai/官网介绍：https://stability.ai/blog/stable-diffusion-public-release项目地址：https://github.com/Stability-AI/stablediffusionStable diffusion WebUIStable Diffusion 项目本地化的部署，是纯代码界面，而Stable Diffusion WebUI，是基于 Stable Diffusion 项目的可视化操作项目。这里我们也是部署Stable Diffusion WebUI。项目地址：https://github.com/AUTOMATIC1111/stable-diff先来看几张我通过 SD 作出来的图，看看效果吧！二、Stable Diffusion 配置要求1、显卡要求需要使用 N 卡（NVIDIA 显卡），显卡的显存至少需要 4G文章来源(Source)：浅时光博客B 以上显存才能在本地运行。最低配置需要 4GB 显存，基本配置 6GB 显存，推荐配置 12GB 显存或者以上。2、科学上网网络这方面，必须科学上网，因为很多链接都需要用到3、电脑要求电脑内存16G或者以上系统win10或者win11CUDAPython 版本 3.10.6+ （请自行安装）Git：用了克隆项目（请自行安装）三、Stable Diffusion WebUI部署1、安装CUDACUDA (Compute Unified Device Architecture) 是由 NVIDIA 开发的用于 GPU 的并行计算平台和编程模型。它使开发人员能够使用常规编程语言（如 C、C++、Python）通过一组扩展来利用 GPU 中的并行性，从而加速计算密集型应用程序。CUDA 具有许多优点，包括高效、可扩展性强、易于开发、适用于各种应用场景等。它被广泛应用于科学计算、深度学习、机器学习、图形处理等领域。下载地址：https://developer.nvidia.com/cuda-toolkit-archive下载版本确认：需要本地CMD输入 nvidia-smi 查看你当前的CUDA版本确认版本之后下载对应的版本；提醒：文件大小有2G，默认安装位置在C盘确认是否安装成功：Win+R进入CMD，在命令行输入 nvcc -V，如下图所示，则表示cuda已经安装成功2、Stable Diffusion WebUI安装2.1：克隆项目源码不建议放在c盘，因为我们会使用一些模型包，都是上G的，所以需要一个容量比较大盘git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git2.2：下载训练模型模型下载链接：https://huggingface.co/CompVis后面如果要用到其他模型，只需要将下载的模型放到sd-webui项目的 models/Stable-diffusion/ 文件夹即可。模型下载：（1）Hugging原文链接（2）Civitai2.3：安装GFPGAN这是腾讯旗下的一个开源项目，可以用于修复和绘制人脸，减少stable diffusion人脸的绘制扭曲变形问题项目地址：https://github.com/TencentARC/GFPGAN下载好之后，放在 sd-webui 项目的根目录下面即可2.4：运行sd-webui下载的东西比较多，需要慢慢等待，而且确保你的网络环境稳定；直到系统提示，running on local URL: http://127.0.0.1:7860；这就可以浏览器访问页面进行操作了四、Stable Diffusion WebUI作画Stable Diffusion checkpoint：选择加载的模型Prompt：图像描述信息Batch count：同时绘图数量以下效果演示参数如下：模型为：majicMIX realistic v5提示词：best quality, masterpiece, ultra high res, photorealistic, 1g…

如何向 ChatGPT 提问以获得高质量答案：提示技巧工程完全指南
type: item
date: 2023-06-11T06:21:00+08:00
description: 本文转载自互联网，已在文末注明来源。介绍我们将探讨如何使用不同的提示工程技术来实现不同的目标。ChatGPT是一款最先进的语言模型，能够生成类似人类的文本。然而，理解如何正确地向ChatGPT提问以获得我们所需的高质量输出非常重要。而这正是本书的目的。无论您是普通人、研究人员、开发人员，还是只是想在自己的领域中将ChatGPT作为个人助手的人，本书都是为您编写的。我使用简单易懂的语言，提供实用的解释，并在每个提示技术中提供了示例和提示公式。通过本书，您将学习如何使用提示工程技术来控制ChatGPT的输出，并生成符合您特定需求的文本。在整本书中，我们还提供了如何结合不同的提示技术以实现更具体结果的示例。我希望您能像我写作时一样，享受阅读本书并从中获得知识。第一章：Prompt 工程技术简介什么是 Prompt 工程？Prompt 工程是创建提示或指导像 ChatGPT 这样的语言模型输出的过程。它允许用户控制模型的输出并生成符合其特定需求的文本。ChatGPT 是一种先进的语言模型，能够生成类似于人类的文本。它建立在 Transformer 架构上，可以处理大量数据并生成高质量的文本。然而，为了从 ChatGPT 中获得最佳结果，重要的是要了解如何正确地提示模型。 提示可以让用户控制模型的输出并生成相关、准确和高质量的文本。 在使用 ChatGPT 时，了解它的能力和限制非常重要。该模型能够生成类似于人类的文本，但如果没有适当的指导，它可能无法始终产生期望的输出。这就是 Prompt 工程的作用，通过提供清晰而具体的指令，您可以引导模型的输出并确保其相关。Prompt 公式是提示的特定格式，通常由三个主要元素组成：任务：对提示要求模型生成的内容进行清晰而简洁的陈述。指令：在生成文本时模型应遵循的指令。角色：模型在生成文本时应扮演的角色。在本书中，我们将探讨可用于 ChatGPT 的各种 Prompt 工程技术。我们将讨论不同类型的提示，以及如何使用它们实现您想要的特定目标。第二章：指令提示技术现在，让我们开始探索“指令提示技术”，以及如何使用它从ChatGPT中生成高质量的文本。指令提示技术是通过为模型提供具体指令来引导ChatGPT的输出的一种方法。这种技术对于确保输出相关和高质量非常有用。要使用指令提示技术，您需要为模型提供清晰简洁的任务，以及具体的指令以供模型遵循。例如，如果您正在生成客户服务响应，您将提供任务，例如“生成响应客户查询”的指令，例如“响应应该专业且提供准确的信息”。提示公式：“按照以下指示生成[任务]：[指令]”示例：生成客户服务响应：任务：生成响应客户查询指令：响应应该专业且提供准确的信息提示公式：“按照以下指示生成专业且准确的客户查询响应：响应应该专业且提供准确的信息。”生成法律文件：任务：生成法律文件指令：文件应符合相关法律法规提示公式：“按照以下指示生成符合相关法律法规的法律文件：文件应符合相关法律法规。”使用指令提示技术时，重要的是要记住指令应该清晰具体。这将有助于确保输出相关和高质量。可以将指令提示技术与下一章节中解释的“角色提示”和“种子词提示”相结合，以增强ChatGPT的输出。第三章：角色提示角色提示技术是通过为ChatGPT指定一个特定的角色来引导其输出的一种方式。这种技术对于生成针对特定上下文或受众的文本非常有用。要使用角色提示技术，您需要为模型提供一个清晰具体的角色。例如，如果您正在生成客户服务回复，您可以提供一个角色，如“客户服务代表”。提示公式：“作为[角色]生成[任务]”示例：生成客户服务回复：任务：生成对客户查询的回复角色：客户服务代表提示公式：“作为客户服务代表，生成对客户查询的回复。”生成法律文件：任务：生成法律文件角色：律师提示公式：“作为律师，生成法律文件。”将角色提示技术与指令提示和种子词提示结合使用可以增强ChatGPT的输出。下面是一个示例，展示了如何将指令提示、角色提示和种子词提示技术结合使用：任务：为新智能手机生成产品描述指令：描述应该是有信息量的，具有说服力，并突出智能手机的独特功能角色：市场代表 种子词：“创新的”提示公式：“作为市场代表，生成一个有信息量的、有说服力的产品描述，突出新智能手机的创新功能。该智能手机具有以下功能[插入您的功能]”在这个示例中，指令提示用于确保产品描述具有信息量和说服力。角色提示用于确保描述是从市场代表的角度书写的。而种子词提示则用于确保描述侧重于智能手机的创新功能。第四章：标准提示标准提示是一种简单的方法，通过为模型提供一个特定的任务来引导ChatGPT的输出。例如，如果您想生成一篇新闻文章的摘要，您可以提供一个任务，如“总结这篇新闻文章”。提示公式：“生成一个[任务]”例如：生成新闻文章的摘要：任务：总结这篇新闻文章提示…

凯文凯利: 5000天后的世界&人类被AI如何塑造
type: item
date: 2023-06-02T15:08:00+08:00
description: 本文转载自互联网，已在文末注明来源。当下，人工智能正以天为周期狂飙。但AI究竟是向善还是作恶？人类科技将去往何处？人人都渴望得到确定性的答案。凯文•凯利在上个世纪90年代曾出版了一本“预言式”书籍——《失控》，预见了当今诸多火热的科技现象。近日，凯文•凯利又出版了他的新书《5000天后的世界》，预言了5000天后的人类世界将如何被AI塑造，以及数百万人一起工作的数字未来。面对飞速变化的世界，人们感到前所未有的压力和恐慌。作为微小的个体，普通人应当如何应对？凯文·凯利在书中给出了不仅适用于当下，而且能应对5000天后的世界的50条生存建议。希望本文会对你有所启发。凯文·凯利在自家书房关于科技与创新：越成功的企业，越难实现真正的创新001.无论哪种科技，能够解决多少问题，就有可能引发多少问题。二者比例看似各占一半，其实不然。科技带来的益处占比为51%，而它引发的问题占比为49%。虽然二者之间只存在2%的微妙差别，但是如果将这个比例放在时间的长河之中，我们就会看到其差别有多么巨大。002.判断一项科技的时候，一定要思考这项技术是否具有广泛的影响力和无限的可能性。比如基因工程、埃博拉疫苗可以挽救无数生命，但是它的意义也无法与CRISPR-Cas9这类基因编辑技术比肩。因为基因编辑技术可以对其他科学技术产生影响，可以带来呈几何级增长的可能性。003.对于科技带来的问题，永远不能靠减少科技解决，而应该发明更好的科技。虽然环保人士和评论家主张“减少科技的使用范围以解决滥用科技造成的问题”，但我认为这样并不正确。如果不能发明出更多、更好的科技，我们是无法解决现有的问题的。004.只有看到一种科技的应用范围下限，我们才能完整地把握它。技术的发展和当初发明者的预期相去甚远，这才是科技所具有的本质的发展趋势。005.人类对科技的态度有点过于谨慎。我们很少去关注落后科技的弊端，而总是在担心新科技可能会带来的风险。比如，我们不会将新科技的风险与旧科技的弊端进行比较。006.只有保持几分饥饿的状态，才能有继续创新的可能。比如只有小企业才能做到革新。有很多风险投资人会为小企业提供资金援助，但是如果投资金额巨大，他们就会直接收购小企业，而不会坐等革新成果。所以，不要以为给初创企业充足的资金是好事。如果资金太多，反而会毁了这些小公司。金额只要能大致维持企业生存即可，真的是所谓的“给口饭吃”就行。007.创新并非集中型，而是分散型的，是根植于企业文化之中的。因此，即便买下小公司，也无法买下它们的创新性，买下的只能是一个具体的解决方案。这样的收购无法带来未来的持续创新，只是普通的商业行为而已。008.创新的本质是要从低效和失败中汲取经验。在硅谷有一个说法，叫作“积极地失败”。失败了，跌倒了，再从原地爬起来，这才能帮助人们吸取教训。硅谷的革新都来自正确对待失败的态度，即使实验失败，也会被当作成功的一部分，没人会对此加以非难。009.亚洲国家如果可以更宽容地对待失败，可能就会更容易产生创新。010.越成功的企业越难以实现真正的创新。例如微软这种在计算机领域致力于开发最佳操作系统的公司，如果想要将重点转移到软件领域，就要暂时从现在的最高峰跌落。这种决断非常难，通常只有疯狂的人才能做到。这种事情比尔·盖茨做不到，但乔布斯就可以。总之，越是成功的企业越难转型，在转型期要面对业绩下滑的现实，这样颠覆性的技术转型确实十分艰难。011.重点在于二次创造。万能的“神”并没有创造世界，而是创造了可以创造世界的生物。关于人生与财富：年轻人一定要，体验一段没钱的生活012.对人生感到满意的人有一个共通之处，他们会一直追问“自己是谁”，什么才最适合自己。想要回答这个问题，就需要深刻地思考，并且认真地审视自己，了解真正的自己。我所知道的艺术家、发明家和编辑都在不断自问自答。013.因为没钱所以不能做自己想做的事情，我觉得这是最没有意义的想法，是不能独立完成一件工作的借口。014.年轻人一定要试着体验一段没有钱的贫困生活。可以去非洲农村生活半个月，或者背着帐篷和少量食物出去徒步。有了这段经历，你会感受到一无所有时才能感受到的小欢喜，也能知道自己可以在一无所有的情况下完成多少事情。015.一个人如果体验过贫困的生活，在遇到高风险的时候就不会那么恐惧。016.人越成功就越难以找到自己存在的意义。究其原因，可能是成功会将人与现实社会隔绝。他们都是众人眼里的成功人士，却被自己的人生和成功束缚得紧紧的，难以挪动。017.想要真正了解自己，就需要经历失败，也需要有从零开始的经历。有很多成功者已经不能接受失败，因此也就很难再有进步。我自己也是一样，越来越不愿挑战成功概率低的项目，也越来越不能忍耐。我们当中有些人已经无法从成功中走出来，面对新的挑战了。018.个人信息价值越高的人，越有必要找代理人。因为若非如…

记录一款好用的基于Windows系统的OCR工具
type: item
date: 2022-12-08T18:55:00+08:00
description: 前言今天无意间在网上发现了一款Windows系统可用、开源、面向普通用户、基于PaddleOCR的本地文本识别工具。经过对它的一系列配置，将本地的配置文件导出并记录在这里，方便日后在其他电脑上进行快速部署。PaddleOCR是一款基于PaddlePaddle的轻量级开源文本识别模型库，今年年初为满足毕设中证件智能识别模块开发需求做过一些研究（这里是当时对PaddleOCR的配置使用笔记）。没想到竟然能在今年年末发现有大佬从今年3月底开始同样基于这款模型库开发并开源了一款面向用户的，方便快捷的文本识别工具！相信很多人和我一样，经常会有在电脑上进行OCR操作的需求。从几年前开始我陆续使用过很多第三方的工具（如：天若OCR、QQ截图OCR等），但是它们终究都没能很好的满足我在体验方面的需求。于是自己开发了一个基于Web异步请求和百度高精接口的轻量级应用，使用范围也局限于自己和身边的个别人。毕竟使用别人的在线接口，还是会有很多不稳定性因素在里面的。原本打算年底在自己服务器上基于PaddleOCR server端模型对该应用进行重构，现在看来已经必要性不大了。Umi-OCR简介按照官方的介绍，这是一款免费，开源，可批量的离线OCR软件：兼容性系统支持 Win10 x64 及以上版本。CPU必须具有AVX指令集。出现初始化引擎失败等问题时请参考 问题排除 。地址Github地址Github Release v1.3.2地址官方提供的蓝奏云地址soarli备用地址更新日志（截至12.8）v1.3.2 2022.12.1 新功能：创建开机启动项时，可选不显示主窗口。 新功能：OCR结果输出到每个图片同名的单独txt文件。 新功能：增加独立的设置语言窗口，可在多处点开，便于切换语言。 新功能：合并段落添加合并自然段-西文模式，可在英文段落换行时补充空格。 新功能：快捷识图可选自动清空面板，只显示本次识别结果，且隐藏时间信息。 修复了一些BUG。 v1.3.1 2022.11.4 修Bug：快捷键模块重写，引入pynput库，舍弃keyboard库，解决几率失效、录制不正确等Bug。 新功能：添加开机自启，桌面快捷方式，开始菜单快捷方式。 新功能：多开软件时提示。 新功能：截图时隐藏窗口。 调整UI：使用频率极低的设置项设为隐藏的高级选项。 优化：检查引擎组件是否存在。 优化：横排-合并多行-自然段 优化逻辑，支持0~2全角空格首行缩进。 v1.3.0 2022.9.29 新功能：框选截屏。 新功能：系统托盘图标。 新功能：引擎进程常驻。 新功能：文本块后处理模块。 新功能：自定义主输出栏字体。 新功能：设置窗口弹出模式（保持置顶）。 调整UI：自适应Win风格组件。 修正了Bug：系统语言兼容性问题 issue #16 。 修正了Bug：微信图片粘贴问题 issue #22 。 更新PaddleOCR-json模块至v1.2.1，提供剪贴板支持。快捷识图通过剪贴板中转，无需再保存临时文件到硬盘。 v1.2.6 2022.9.1 更新PaddleOCR-json模块至v1.2.0，提高识别速度、准确度。 调整UI：更方便地用下拉框切换识别语言。 调整UI：可以从主窗口任意位置/任意选项卡拖入图片。 修正了Bug：提高程序健壮性，增加启动子进程时的更多异常处理情况。 修正了Bug：彻底解决了对边缘过窄的图片，识别结果不准确的问题 issue #7 。 优化适配PP-OCRv3模型，彻底解决了v3版模型比v2慢、不准的问题 issue #4 。 v1.2.5 2022.7.22 新功能：计划任务。识图完成后执行自动关机等任务。 新功能：可选拖入文件夹时递归导入子文件夹中所有图片。 调整UI：添加一些配置文件的快捷入口。 v1.2.4 2022.6.4 新功能：可选识别剪贴板图片后自动复制识别的文本。 补充功能：快捷键调用剪贴板识图时，若程序窗口被最小化，则恢复前台状态并挪到最前位置。 v1.2.3 2022.5.31 新功能：读取剪贴板图片。配置全局快捷键调用该功能。 v1.2.2 2022.4.30 新功能：可选任务完成后自动打开输出文件或目录。 v1.2.1 2022.4.16 更新PaddleOCR-json模块至v1.1.1，修正了可能得到错误包围盒的漏洞。 v1.2.0 2022.4.8 可选生成图文链接.md文件，作为索引使用有更佳的观感。 修改设置面板的样式，改为滚动面板以容纳更多设置选项。 用户修改配置项后可自动保存。 v1.1.1 2022.3.30 修正了Bug：退出忽略区域窗口时，OCR子进程未关闭。 v1.1.0 2022.3.30 新功能：忽略区域窗口以虚线框 展示识别出的文字块。 v1.0.0 2022.3.28 “梦开始…

Linux下CPU环境的YOLOv5搭建
type: item
date: 2022-04-17T06:10:00+08:00
description: 前言昨天收到了腾讯云的活动服务器到期提醒，抱着学习的态度（白嫖的资源到了最后一刻也要压榨到底）进行了Linux YOLOv5的配置试验（有关YOLOv5的详细笔记见今年寒假时我写的Win10下YOLOv5的CPU环境搭建），现将本次笔记记录如下：安装pytorch1、官网地址https://pytorch.org/2、根据自己的需求选择例如此时最新版本对应的安装方法为：pip3 install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cpu但是，对于默认情况下无法访问境外网站的网络环境下（疯狂暗示校园网），可以使用国内镜像下载安装：sudo pip3 install torch torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple安装过程中可能会出现MemoryError（如下图）：这是由于pip安装的缓存机制想要先把整个文件读取到内存以后才开始安装进而导致内存不足导致的。所以我们在安装时指示不启用缓存即可，使用 --no-cache-dir 命令安装即可避坑：sudo pip3 install --no-cache-dir torch torchvision -i https://pypi.tuna.tsinghua.edu.cn/simple还有可能会遇到：Command "/usr/bin/python3 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-6_zbv3dk/pillow/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-pf11hf8u-record/install-record.txt --single-version-externally-managed --compile --user --prefix=" failed with error code 1 in /tmp/pip-build-6_zbv3dk/pillow/此时需要先：# Setuptools 升级(Upgrade) pip3 install --upgrade pip setuptools wheel # 安装pillow(python的图形界面库) python3 -m pip install Pillow测试是否安装成功import torch #查看版本 print(torch.__version__) #查看gpu是否可用 print(torch.cuda.is_available()) #返回设备gpu个数 print(torch.cuda.device_count())下载YOLOv5 github项目sudo mkdir /yolov5 cd /yolov5/ sudo git clone https://github.com/ultralytics/yolov5移出文件cd yolov5/ sudo mv * .[^.]* .. cd .. sudo rm yolov5/ -r安装依赖python3 -m pip install --no-cache-dir -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple下载预训练模型并放到yolo项目根目录。（下载yolov5l.pt, yolov5m.pt, yolov5s.pt, yolov5x.pt）测试使用测试一张网络图片sudo python3 detect.py --weights yolov5s.pt --source http://upload.lcqixing.com/upload/202111/02/d0c4a9d7c3936b7ef4bef056d5cff99e.jpg识别结果：如果要不加sudo也能识别，只需要修改权限：# 修改权限 sudo chown -R ubuntu:ubuntu /yolov5/ # 普通权限也能识别了 python3 detect.py --weights yolov5s.pt --source http://upload.lcqixing.com/upload/202111/02/d0c4a9d7c3936b7ef4bef056d…

记录一次开发Typecho检索图片中文字功能的实战
type: item
date: 2022-04-07T02:08:00+08:00
description: 配置Typecho文本识别能力项目实战笔记，内容原创，转载请注明来源！前言早在去年参与苹果iOS 15内测中体验其在全局融入的文字识别能力以及相册场景文本搜索功能时，我就想给自己的博客也实现搜索图片中所含文本的功能。受限于当时的时间和技术条件，这个想法一直处于“挂起”状态。恰好上个月微信在其新版本也发布了聊天内容中的图片文本搜索功能。刚好寒假期间对PaddlePaddle深度学习框架做了些许研究并在本地部署了OCR项目。择日不如撞日，昨天晚上一口气把这套“前端”逻辑以Python脚本的形式实现了出来。程序代码已公开，可能存在不足之处与优化空间，希望各位大佬能在看过本文后不吝赐教。配置新增Typecho数据表字段：ALTER TABLE `typecho_contents` ADD `ocr` TEXT NULL AFTER `views`;修改Typecho搜索逻辑（1189行）：安装用到的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"} # 维护数据库连接状态 def keepAlive(): cur = conn.cursor() sql = "SELECT ocr FROM `typecho_contents` WHERE cid=1" cur.execute(sql) # 输入markdown文本，输出其中引用图片中的文字结果 def getPageOCRText(text): pic_list = re.findall(r"\!\[.*\]\((.+)\)",text) this_text = '' for i in pic_list: try: img = {'file':requests.get(i,headers=headers).content} img_text = requests.post(url, upload_data, files=img) this_text += img_text.text time.sleep(cool) # 维护数据库连接状态 keepAlive() # print(this_text) except Exception as e: print('Error msg: ' + str(e)) ocrtext = this_text.replace("\n","").replace('\'','\\\'').replace('\"','\\\"').replace('-','\-') if(ocrtext == ''): ocrtext = 'none!' return ocrtext # 返回需要进行ocr操作的cid(直接传入下一个函数) def getUnOCRedCid(): cur = conn.cursor() if(updateAll): …

Linux安装PaddleOCR
type: item
date: 2022-03-28T01:29:00+08:00
description: 3.16前言这是继上一次在我的台式机上部署PaddleOCR两个月之后的又一次实战。毕设上线在即，恰好得到一个月云服务器使用权限。用来测试配置PaddleOCR及Web环境以便在正式环境部署（测试环境：Ubuntu 18.04）。安装宝塔面板wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh安装集成开发环境安装PaddlePaddlepython3 -m pip3 install paddlepaddle==2.2.2 -i https://mirror.baidu.com/pypi/simple若出现下述报错，更新pip即可：# pip3执行pip3 install --upgrade pip # pip执行pip install --upgrade pip # 如果上面升级失败，可以试试python -m pip install --upgrade --force pip正常情况如下图所示：验证是否安装成功：import paddle paddle.utils.run_check()出现下图界面则安装成功：创建OCR环境# 创建目录 sudo mkdir /ocr # 转移所有者 sudo chown -R ubuntu:ubuntu /ocr/上传Clone下来的项目用WinSCP或宝塔把项目压缩包上传到服务器并解压：ubuntu@VM-4-11-ubuntu:~$ cd /ocr ubuntu@VM-4-11-ubuntu:/ocr$ ls PaddleOCR-release-2.4.zip ubuntu@VM-4-11-ubuntu:/ocr$ unzip PaddleOCR-release-2.4.zip Archive: PaddleOCR-release-2.4.zip bca7070ae9a4064ea9cab8a213fcfee8c832ec6e creating: PaddleOCR-release-2.4/ inflating: PaddleOCR-release-2.4/.clang_format.hook creating: PaddleOCR-release-2.4/.github/ creating: PaddleOCR-release-2.4/.github/ISSUE_TEMPLATE/ inflating: PaddleOCR-release-2.4/.github/ISSUE_TEMPLATE/custom.md inflating: PaddleOCR-release-2.4/.gitignore inflating: PaddleOCR-release-2.4/.pre-commit-config.yaml inflating: PaddleOCR-release-2.4/.style.yapf inflating: PaddleOCR-release-2.4/LICENSE inflating: PaddleOCR-release-2.4/MANIFEST.in creating: PaddleOCR-release-2.4/PPOCRLabel/ inflating: PaddleOCR-release-2.4/PPOCRLabel/Makefile inflating: PaddleOCR-release-2.4/PPOCRLabel/PPOCRLabel.py inflating: PaddleOCR-release-2.4/PPOCRLabel/README.md inflating: PaddleOCR-release-2.4/PPOCRLabel/README_ch.md extracting: PaddleOCR-release-2.4/PPOCRLabel/__init__.py inflating: PaddleOCR-release-2.4/PPOCRLabel/combobox.py ...............此时的目录结构：安装所需Python依赖ubuntu@VM-4-11-ubuntu:/ocr$ cd PaddleOCR-release-2.4/ ubuntu@VM-4-11-ubuntu:/ocr/PaddleOCR-release-2.4$ pip3 install -r requirements.txt遇到如下报错：更新pip并重新执行安装命令：pip3 install --upgrade pippip3 install -r requirements.txt如果访问github受阻可以使用国内源：pip3…

深度学习相关概念
type: item
date: 2022-02-05T22:16:00+08:00
description: 本文节选自互联网，已在文末注明来源。感觉这篇文章总结的挺好的。所以在博客留个备份，准备之后自己再结合更加深入的认知进一步的补充。深度学习的发展历程Turing Testing图灵测试是人工智能是否真正能够成功的一个标准，“计算机科学之父”、“人工智能之父”英国数学家图灵在1950年的论文《机器会思考吗》中提出了图灵测试的概念。即把一个人和一台计算机分别放在两个隔离的房间中，房间外的一个人同时询问人和计算机相同的问题，如果房间外的人无法分别哪个是人，哪个是计算机，就能够说明计算机具有人工智能。医学上的发现1981年的诺贝尔将颁发给了David Hubel和Torsten Wiesel，以及Roger Sperry。他们发现了人的视觉系统处理信息是分级的。从视网膜（Retina）出发，经过低级的V1区提取边缘特征，到V2区的基本形状或目标的局部，再到高层的整个目标（如判定为一张人脸），以及到更高层的PFC（前额叶皮层）进行分类判断等。也就是说高层的特征是低层特征的组合，从低层到高层的特征表达越来越抽象和概念化，也即越来越能表现语义或者意图。边缘特征 —–> 基本形状和目标的局部特征——>整个目标 这个过程其实和我们的常识是相吻合的，因为复杂的图形，往往就是由一些基本结构组合而成的。同时我们还可以看出：大脑是一个深度架构，认知过程也是深度的。人脑神经元示意图计算机识别图像的过程Deep Learning的出现低层次特征 - - - - (组合) - - ->抽象的高层特征深度学习，恰恰就是通过组合低层特征形成更加抽象的高层特征（或属性类别）。例如，在计算机视觉领域，深度学习算法从原始图像去学习得到一个低层次表达，例如边缘检测器、小波滤波器等，然后在这些低层次表达的基础上，通过线性或者非线性组合，来获得一个高层次的表达。此外，不仅图像存在这个规律，声音也是类似的。比如，研究人员从某个声音库中通过算法自动发现了20种基本的声音结构，其余的声音都可以由这20种基本结构来合成！机器学习机器学习是实现人工智能的一种手段，也是目前被认为比较有效的实现人工智能的手段，目前在业界使用机器学习比较突出的领域很多，例如：计算机视觉、自然语言处理、推荐系统等等。大家生活中经常用到的比如高速上的ETC的车牌识别，今日头条的新闻推荐，天猫上的评价描述。 机器学习是人工智能的一个分支，而在很多时候，几乎成为人工智能的代名词。简单来说，机器学习就是通过算法，使得机器能从大量历史数据中学习规律，从而对新的样本做智能识别或对未来做预测。人工智能vs机器学习人工智能是计算机科学的一个分支，研究计算机中智能行为的仿真。每当一台机器根据一组预先定义的解决问题的规则来完成任务时，这种行为就被称为人工智能。开发人员引入了大量计算机需要遵守的规则。计算机内部存在一个可能行为的具体清单，它会根据这个清单做出决定。如今，人工智能是一个概括性术语，涵盖了从高级算法到实际机器人的所有内容。我们有四个不同层次的AI，让我们来解释前两个:弱人工智能，也被称为狭义人工智能，是一种为特定的任务而设计和训练的人工智能系统。弱人工智能的形式之一是虚拟个人助理，比如苹果公司的Siri。强人工智能，又称人工通用智能，是一种具有人类普遍认知能力的人工智能系统。当计算机遇到不熟悉的任务时，它具有足够的智能去寻找解决方案。机器学习是指计算机使用大数据集而不是硬编码规则来学习的能力。机器学习允许计算机自己学习。这种学习方式利用了现代计算机的处理能力，可以轻松地处理大型数据集。基本上，机器学习是人工智能的一个子集;更为具体地说，它只是一种实现AI的技术，一种训练算法的模型，这种算法使得计算机能够学习如何做出决策。从某种意义上来说，机器学习程序根据计算机所接触的数据来进行自我调整。监督式学习vs非监督式学习监督式学习需要使用有输入和预期输出标记的数据集。当你使用监督式学习训练人工智能时，你需要提供一个输入并告诉它预期的输出结果。如果人工智能产生的输出结果是错误的，它将重新调整自己的计算。这个过程将在数据集上不断迭代地完成，直到AI不再出错。监督式学习的一个例子是天气预报人工智能。它学会利用历史数据来预测天气。训练数据包含输入(过去天气的压力、湿度、风速)和输出(过去天气的温度)。我们还可以想象您正在提供一个带有标记数据的计算机程序。例如，如果指定的任务是使用一种图像分类算法对男孩和女孩的图像进行分类，那么男孩的图像需要带有“男孩”标签，女孩的图像需要带有“女孩”标签。这些数据被认为是一个“训练”数据集，直到程序能够以可接受的速率成功地对图像进行分类，以上的标签才会失去作用。它之所以被称为监督式学习，是因为算法从训练数据集学习的过程就像是一位老师正在监督学习。在我们预先知道正确的分类答案的情况下，算法对训练数据不断…