当前位置: 首页 > news >正文

LLMs之PDF:zeroX(一款PDF到Markdown 的视觉模型转换工具)的简介、安装和使用方法、案例应用之详细攻略

LLMs之PDF:zeroX(一款PDF到Markdown 的视觉模型转换工具)的简介、安装和使用方法、案例应用之详细攻略

目录

zeroX的简介

1、支持的文件类型

zeroX的安装和使用方法

T1、Node.js 版本:

安装

使用方法

使用文件 URL:

使用本地路径:

示例输出

T2、Python 版本

安装

使用方法

示例输出(来自“azure/gpt-4o-mini”的输出)

zeroX的案例应用

1、测试手写稿


zeroX的简介

Zerox 是一个简单易用的 PDF 到 Markdown 转换工具,它利用视觉模型(例如 OpenAI 的 GPT 模型)来处理文档的 OCR(光学字符识别)并将其转换为 Markdown 格式。 它能够处理各种复杂的文档布局,包括表格、图表等,这得益于其基于视觉模型的处理方式。 Zerox 的核心逻辑是:将输入文件(PDF、docx、图像等)转换为一系列图像,然后将每个图像传递给 GPT 模型,请求生成 Markdown,最后将所有 Markdown 片段聚合起来返回最终结果。 该项目提供了一个在线演示版本:https://getomni.ai/ocr-demo。

官方地址:https://getomni.ai/ocr-demo

GitHub地址:https://github.com/getomni-ai/zerox

1、支持的文件类型

Zerox 使用 libreoffice 和 graphicsmagick 进行文档到图像的转换,支持以下文件类型

["pdf", // Portable Document Format"doc", // Microsoft Word 97-2003"docx", // Microsoft Word 2007-2019"odt", // OpenDocument Text"ott", // OpenDocument Text Template"rtf", // Rich Text Format"txt", // Plain Text"html", // HTML Document"htm", // HTML Document (alternative extension)"xml", // XML Document"wps", // Microsoft Works Word Processor"wpd", // WordPerfect Document"xls", // Microsoft Excel 97-2003"xlsx", // Microsoft Excel 2007-2019"ods", // OpenDocument Spreadsheet"ots", // OpenDocument Spreadsheet Template"csv", // Comma-Separated Values"tsv", // Tab-Separated Values"ppt", // Microsoft PowerPoint 97-2003"pptx", // Microsoft PowerPoint 2007-2019"odp", // OpenDocument Presentation"otp", // OpenDocument Presentation Template
];

zeroX的安装和使用方法

Zerox 提供了 Node.js 和 Python 两种版本的软件包。

T1、Node.js 版本:

安装

使用 npm 安装

npm install zerox

依赖: Zerox 使用 graphicsmagick 和 ghostscript 进行 PDF 到图像的转换。 这些依赖通常会自动安装,但你可能需要手动安装它们。在 Linux 系统上,可以使用以下命令:

sudo apt-get update
sudo apt-get install -y graphicsmagick

使用方法

使用文件 URL:

import { zerox } from "zerox";const result = await zerox({filePath: "https://omni-demo-data.s3.amazonaws.com/test/cs101.pdf",openaiAPIKey: process.env.OPENAI_API_KEY,
});

使用本地路径:
import path from "path";
import { zerox } from "zerox";const result = await zerox({filePath: path.resolve(__dirname, "./cs101.pdf"),openaiAPIKey: process.env.OPENAI_API_KEY,
});

可选参数: zerox 函数接受许多可选参数,用于控制转换过程:

const result = await zerox({// RequiredfilePath: "path/to/file",openaiAPIKey: process.env.OPENAI_API_KEY,// Optionalcleanup: true, // Clear images from tmp after run.concurrency: 10, // Number of pages to run at a time.correctOrientation: true, // True by default, attempts to identify and correct page orientation.maintainFormat: false, // Slower but helps maintain consistent formatting.model: 'gpt-4o-mini' // Model to use (gpt-4o-mini or gpt-4o).outputDir: undefined, // Save combined result.md to a file.pagesToConvertAsImages: -1, // Page numbers to convert to image as array (e.g. `[1, 2, 3]`) or a number (e.g. `1`). Set to -1 to convert all pages.tempDir: "/os/tmp", // Directory to use for temporary files (default: system temp directory).trimEdges: true, // True by default, trims pixels from all edges that contain values similar to the given background colour, which defaults to that of the top-left pixel.
});cleanup: (boolean, 默认 true) 处理完成后是否清理临时文件。
concurrency: (integer, 默认 10) 并发处理的页面数量。
correctOrientation: (boolean, 默认 true) 是否尝试纠正页面方向。
maintainFormat: (boolean, 默认 false) 是否保持一致的格式 (较慢,但对于表格跨页等情况很有用)。
model: (string, 默认 'gpt-4o-mini') 使用的模型 ('gpt-4o-mini' 或 'gpt-4o')。
outputDir: (string, 可选) 保存合并后的 result.md 文件的目录。
pagesToConvertAsImages: (number 或 array, 可选) 需要转换为图像的页码,-1 表示所有页面。
tempDir: (string, 可选) 临时文件的目录。
trimEdges: (boolean, 默认 true) 是否修剪图像边缘。

maintainFormat选项尝试通过将前一页的输出作为下一页的附加上下文传递,以一致的格式返回 markdown。这需要请求同步运行,因此速度会慢很多。但如果您的文档包含大量表格数据,或者经常有跨页的表格,则此选项非常有用。

Request #1 => page_1_image
Request #2 => page_1_markdown + page_2_image
Request #3 => page_2_markdown + page_3_image

示例输出
{completionTime: 10038,fileName: 'invoice_36258',inputTokens: 25543,outputTokens: 210,pages: [{content: '# INVOICE # 36258\n' +'**Date:** Mar 06 2012  \n' +'**Ship Mode:** First Class  \n' +'**Balance Due:** $50.10  \n' +'## Bill To:\n' +'Aaron Bergman  \n' +'98103, Seattle,  \n' +'Washington, United States  \n' +'## Ship To:\n' +'Aaron Bergman  \n' +'98103, Seattle,  \n' +'Washington, United States  \n' +'\n' +'| Item                                       | Quantity | Rate   | Amount  |\n' +'|--------------------------------------------|----------|--------|---------|\n' +"| Global Push Button Manager's Chair, Indigo | 1        | $48.71 | $48.71  |\n" +'| Chairs, Furniture, FUR-CH-4421             |          |        |         |\n' +'\n' +'**Subtotal:** $48.71  \n' +'**Discount (20%):** $9.74  \n' +'**Shipping:** $11.13  \n' +'**Total:** $50.10  \n' +'---\n' +'**Notes:**  \n' +'Thanks for your business!  \n' +'**Terms:**  \n' +'Order ID : CA-2012-AB10015140-40974  ',page: 1,contentLength: 747}]
}

T2、Python 版本

安装

需要先安装 poppler-utils (确保在系统 PATH 变量中),然后使用 pip 安装

pip install py-zerox

依赖: 依赖于 LiteLLM 库,支持多种视觉模型提供商 (OpenAI, Azure OpenAI, Anthropic, AWS Bedrock 等)。 需要配置相应的环境变量。 请参考 LiteLLM 文档:https://docs.litellm.ai/docs/providers

使用方法

该代码的核心思路是使用pyzerox库中的zerox函数来异步处理PDF文件,通过指定的AI模型提取文本内容,可选择性地处理特定页面,并将结果保存为Markdown文件,同时支持自定义系统提示和不同的AI服务提供商,如OpenAI、Azure OpenAI、Gemini、Anthropic和Vertex AI,通过环境变量或文件加载服务凭证。

zerox 函数的参数与 Node.js 版本类似,但 model 参数需要根据选择的模型提供商和模型名称进行调整。 custom_system_prompt 参数允许自定义系统提示,select_pages 参数允许选择需要处理的页面。

from pyzerox import zerox
import os
import json
import asyncio### Model Setup (Use only Vision Models) Refer: https://docs.litellm.ai/docs/providers ##### placeholder for additional model kwargs which might be required for some models
kwargs = {}## system prompt to use for the vision model
custom_system_prompt = None# to override
# custom_system_prompt = "For the below pdf page, do something..something..." ## example###################### Example for OpenAI ######################
model = "gpt-4o-mini" ## openai model
os.environ["OPENAI_API_KEY"] = "" ## your-api-key###################### Example for Azure OpenAI ######################
model = "azure/gpt-4o-mini" ## "azure/<your_deployment_name>" -> format <provider>/<model>
os.environ["AZURE_API_KEY"] = "" # "your-azure-api-key"
os.environ["AZURE_API_BASE"] = "" # "https://example-endpoint.openai.azure.com"
os.environ["AZURE_API_VERSION"] = "" # "2023-05-15"###################### Example for Gemini ######################
model = "gemini/gpt-4o-mini" ## "gemini/<gemini_model>" -> format <provider>/<model>
os.environ['GEMINI_API_KEY'] = "" # your-gemini-api-key###################### Example for Anthropic ######################
model="claude-3-opus-20240229"
os.environ["ANTHROPIC_API_KEY"] = "" # your-anthropic-api-key###################### Vertex ai ######################
model = "vertex_ai/gemini-1.5-flash-001" ## "vertex_ai/<model_name>" -> format <provider>/<model>
## GET CREDENTIALS
## RUN ##
# !gcloud auth application-default login - run this to add vertex credentials to your env
## OR ##
file_path = 'path/to/vertex_ai_service_account.json'# Load the JSON file
with open(file_path, 'r') as file:vertex_credentials = json.load(file)# Convert to JSON string
vertex_credentials_json = json.dumps(vertex_credentials)vertex_credentials=vertex_credentials_json## extra args
kwargs = {"vertex_credentials": vertex_credentials}###################### For other providers refer: https://docs.litellm.ai/docs/providers ####################### Define main async entrypoint
async def main():file_path = "https://omni-demo-data.s3.amazonaws.com/test/cs101.pdf" ## local filepath and file URL supported## process only some pages or allselect_pages = None ## None for all, but could be int or list(int) page numbers (1 indexed)output_dir = "./output_test" ## directory to save the consolidated markdown fileresult = await zerox(file_path=file_path, model=model, output_dir=output_dir,custom_system_prompt=custom_system_prompt,select_pages=select_pages, **kwargs)return result# run the main function:
result = asyncio.run(main())# print markdown result
print(result)

参数

async def zerox(cleanup: bool = True,concurrency: int = 10,file_path: Optional[str] = "",maintain_format: bool = False,model: str = "gpt-4o-mini",output_dir: Optional[str] = None,temp_dir: Optional[str] = None,custom_system_prompt: Optional[str] = None,select_pages: Optional[Union[int, Iterable[int]]] = None,**kwargs
) -> ZeroxOutput:...

参数

  • cleanup(bool,可选):处理后是否清理临时文件。默认为 True。
  • concurrency(int,可选):要运行的并发进程数。默认为 10。
  • file_path(Optional[str],可选):要处理的 PDF 文件的路径。默认为空字符串。
  • keep_format (bool, 可选):是否保留上一页的格式。默认为 False。
  • model (str,可选):用于生成补全的模型。默认为“gpt-4o-mini”。请参阅 LiteLLM 提供程序以获取正确的模型名称,因为它可能因提供程序而异。
  • output_dir (Optional[str], 可选): 保存 markdown 输出的目录。默认为 None。
  • temp_dir (str,可选):存储临时文件的目录,默认为系统临时目录中的某个命名文件夹。如果已经存在,则在 zerox 使用它之前将删除其内容。
  • custom_system_prompt (str,可选):模型使用的系统提示,它将覆盖 zerox 的默认系统提示。一般情况下,除非您想要某些特定行为,否则不需要它。设置后,它将发出友好警告。默认为 None。
  • select_pages (Optional[Union[int, Iterable[int]]],可选):要处理的页面,可以是单个页码或可迭代的页码,默认为 None
  • kwargs(字典,可选):传递给 litellm.completion 方法的附加关键字参数。有关详细信息,请参阅 LiteLLM 文档和完成输入。

返回

  • ZeroxOutput:包含模型生成的 markdown 内容以及一些元数据(参见下文)。

示例输出(来自“azure/gpt-4o-mini”的输出)
ZeroxOutput(completion_time=9432.975,file_name='cs101',input_tokens=36877,output_tokens=515,pages=[Page(content='| Type    | Description                          | Wrapper Class |\n' +'|---------|--------------------------------------|---------------|\n' +'| byte    | 8-bit signed 2s complement integer   | Byte          |\n' +'| short   | 16-bit signed 2s complement integer  | Short         |\n' +'| int     | 32-bit signed 2s complement integer  | Integer       |\n' +'| long    | 64-bit signed 2s complement integer  | Long          |\n' +'| float   | 32-bit IEEE 754 floating point number| Float         |\n' +'| double  | 64-bit floating point number         | Double        |\n' +'| boolean | may be set to true or false          | Boolean       |\n' +'| char    | 16-bit Unicode (UTF-16) character    | Character     |\n\n' +'Table 26.2.: Primitive types in Java\n\n' +'### 26.3.1. Declaration & Assignment\n\n' +'Java is a statically typed language meaning that all variables must be declared before you can use ' +'them or refer to them. In addition, when declaring a variable, you must specify both its type and ' +'its identifier. For example:\n\n' +'```java\n' +'int numUnits;\n' +'double costPerUnit;\n' +'char firstInitial;\n' +'boolean isStudent;\n' +'```\n\n' +'Each declaration specifies the variable’s type followed by the identifier and ending with a ' +'semicolon. The identifier rules are fairly standard: a name can consist of lowercase and ' +'uppercase alphabetic characters, numbers, and underscores but may not begin with a numeric ' +'character. We adopt the modern camelCasing naming convention for variables in our code. In ' +'general, variables must be assigned a value before you can use them in an expression. You do not ' +'have to immediately assign a value when you declare them (though it is good practice), but some ' +'value must be assigned before they can be used or the compiler will issue an error.\n\n' +'The assignment operator is a single equal sign, `=` and is a right-to-left assignment. That is, ' +'the variable that we wish to assign the value to appears on the left-hand-side while the value ' +'(literal, variable or expression) is on the right-hand-side. Using our variables from before, ' +'we can assign them values:\n\n' +'> 2 Instance variables, that is variables declared as part of an object do have default values. ' +'For objects, the default is `null`, for all numeric types, zero is the default value. For the ' +'boolean type, `false` is the default, and the default char value is `\\0`, the null-terminating ' +'character (zero in the ASCII table).',content_length=2333,page=1)]
)

zeroX的案例应用

该项目提供了 cs101.pdf 作为示例文件。 转换后的 Markdown 输出包含了文档的标题、表格、以及文本内容,准确地反映了原文档的结构和信息。

maintainFormat 参数对于处理表格跨页等复杂布局的文档非常有用。输出结果中包含 completionTime, fileName, inputTokens, outputTokens 和 pages 等元数据信息,其中 pages 数组包含每个页面的 Markdown 内容和页码。

1、测试手写稿

测试地址:https://getomni.ai/ocr-demo

Zerox提供了出色的OCR功能,但这只是整个流程中的第一步。OmniAI可以将文档、文本、图像等转换为结构化数据。只需几分钟即可创建文档流水线,用于批量处理、提取和分类。
文档提取表格
使用Omni,您可以:
>> 结构化数据提取
>> 批量文档处理
>> 实时同步与文档存储库

相关文章:

LLMs之PDF:zeroX(一款PDF到Markdown 的视觉模型转换工具)的简介、安装和使用方法、案例应用之详细攻略

LLMs之PDF&#xff1a;zeroX(一款PDF到Markdown 的视觉模型转换工具)的简介、安装和使用方法、案例应用之详细攻略 目录 zeroX的简介 1、支持的文件类型 zeroX的安装和使用方法 T1、Node.js 版本&#xff1a; 安装 使用方法 使用文件 URL&#xff1a; 使用本地路径&…...

开源数据库 - mysql - mysql-server-8.4(gtid主主同步+ keepalived热切换)部署方案

前置条件 假设主从信息 mysqlhostport主192.168.1.13306从192.168.1.23306vip192.168.1.3 部署流程 导出测试环境表结构与数据 使用mysqldump ./mysqldump -ulzzc -p -S /tmp/mysql3306.sock --single-transaction --database lzzc > databaseLZZCxxxx.sql查看gtid号 …...

Java全栈体系路线

Java全栈体系路线 摘要 Java 是一门广泛应用于企业级开发的语言&#xff0c;具有强大的生态系统和丰富的工具支持。成为一名 Java 全栈开发工程师不仅需要掌握后端开发技能&#xff0c;还需要具备前端开发和数据库管理的能力。本文将详细介绍 Java 全栈开发的学习路线&#x…...

【Unity基础】Unity中如何导入字体?

在Unity中&#xff0c;不能像其他软件一样直接使用字体文件&#xff0c;需要通过FontAssetCreator将其转换成Texture的Asset文件&#xff0c;然后才能使用。 本文介绍了使用FontAssetCreator导入字体的过程&#xff0c;并对其参数设置进行了说明。 Font Asset Creator 是 Uni…...

使用NVIDIA GPU加速FFmpeg视频压制:完全指南

引言 在视频处理领域&#xff0c;FFmpeg是一个强大的工具。结合NVIDIA的硬件编码器NVENC&#xff0c;我们可以实现快速高效的视频压制。本文将详细解析一个实用的视频压制命令&#xff0c;帮助你理解每个参数的作用。 核心命令 ffmpeg -i input.mp4 -vf scale640:360 -c:v h…...

Python学习:scipy是什么?

文章目录 一、Scipy简介二、Scipy的组成部分1. 基础功能&#xff1a;2. 特殊函数&#xff1a;3. 优化&#xff1a;4. 积分&#xff1a;5. 插值&#xff1a;6. 信号处理&#xff1a;7. 图像处理&#xff1a;8. 统计分布&#xff1a;9. 空间数据结构和算法&#xff1a;10. 稀疏矩…...

spark的学习-05

SparkSql 结构化数据与非结构化数据 结构化数据就类似于excel表中的数据&#xff08;统计的都是结构化的数据&#xff09;一般都使用sparkSql处理结构化的数据 结构化的文件&#xff1a;JSON、CSV【以逗号分隔】、TSV【以制表符分隔】、parquet、orc 结构化的表&#xff1a;…...

SQL注入(SQL Injection)详解

SQL注入&#xff08;SQL Injection&#xff09;是一种代码注入技术&#xff0c;它通过在应用程序的输入字段中插入或“注入”恶意的SQL语句&#xff0c;从而操控后端数据库服务器执行非预期的命令。这种攻击方式常用于绕过应用程序的安全措施&#xff0c;未经授权地访问、修改或…...

深入解析 OpenHarmony 构建系统-2-目录结构与核心组件

引言 OpenHarmony作为一款面向全场景的分布式操作系统,其构建系统在开发过程中扮演着至关重要的角色。本文将详细介绍OpenHarmony构建系统的目录结构和核心组件,帮助开发者更好地理解和使用这一强大的工具。 目录结构概览 以下是OpenHarmony构建系统的目录结构,每个目录和…...

网络安全应急响应(归纳)

目录 一、概述二、理论 系统排查 系统基本信息 windowsLinux用户信息 WindowsLinux启动项&#xff1a;开机系统在前台或者后台运行的程序&#xff0c;是病毒等实现持久化驻留的常用方法。 WindowsLinux任务计划&#xff1a;由于很多计算机都会自动加载“任务计划”&#xff0c…...

【网络协议栈】网络层(上)网络层的基本理解、IP协议格式、网络层分组(内附手画分析图 简单易懂)

绪论​ “It does not matter how slowly you go as long as you do not stop.”。本章是自上而下的进入网络协议栈的第三个篇幅–网络层–&#xff0c;本章我将带你了解网络层&#xff0c;以及网络层中非常重要的IP协议格式和网络层的分片组装问题&#xff0c;后面将持续更新网…...

数据库类型介绍

1. 关系型数据库&#xff08;RDBMS&#xff09; 关系型数据库是最常见的一类数据库&#xff0c;它们通过表&#xff08;Table&#xff09;来存储数据&#xff0c;表之间通过关系&#xff08;如主键和外键&#xff09;来关联。 • MySQL&#xff1a;开源的关系型数据库管理系统&…...

一步一步从asp.net core mvc中访问asp.net core WebApi

"从asp.net core mvc中访问asp.net core WebApi"看到这个标题是不是觉得很绕口啊&#xff0c;但的确就是要讲一讲这样的访问。前面我们介绍了微信小程序访问asp.net core webapi(感兴趣的童鞋可以看看前面的博文有关WEBAPI的搭建)&#xff0c;这里我们重点不关心如何…...

linux中kubectl命令使用

一.命令介绍 kubectl 是 Kubernetes 集群管理的命令行工具&#xff0c;用于与 Kubernetes API 交互。你可以通过它来管理和操作 Kubernetes 集群中的资源&#xff0c;如 Pod、Deployment、Service 等。下面是如何在不同操作系统上下载和使用 kubectl 的方法。 二.下载 kubect…...

Linux 系统结构

Linux系统一般有4个主要部分&#xff1a;内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构&#xff0c;它们使得用户可以运行程序、管理文件并使用系统。 1. linux内核 内核是操作系统的核心&#xff0c;具有很多最基本功能&#xff0c;它…...

ESP32-S3设备智能化升级,物联网无线AI语音交互,让生活更加便捷和有趣

在人工智能和物联网技术的推动下&#xff0c;无线AI语音交互技术正在成为智能设备的新选择。这种技术的发展&#xff0c;不仅改变了我们与设备的沟通方式&#xff0c;更开启了一个新的智能交互方案。 想象一下&#xff0c;通过简单的语音指令&#xff0c;就能控制家中的灯光、…...

Python的函数(补充浅拷贝和深拷贝)

一、定义 函数的定义&#xff1a;实现【特定功能】的代码块。 形参&#xff1a;函数定义时的参数&#xff0c;没有实际意义 实参&#xff1a;函数调用/使用时的参数&#xff0c;有实际意义 函数的作用&#xff1a; 简化代码提高代码重用性便于维护和修改提高代码的可扩展性…...

oracle查询字段类型长度等字段信息

1.查询oracle数据库的字符集 SELECT * FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER NLS_CHARACTERSET; 2.查询字段长度类型 SELECT * FROM user_tab_columns WHERE table_name user AND COLUMN_NAME SNAME 请确保将user替换为您想要查询的表名。sname为字段名 这里的字…...

C语言 | Leetcode C语言题解之第559题N叉树的最大深度

题目&#xff1a; 题解&#xff1a; /*** Definition for a Node.* struct Node {* int val;* int numChildren;* struct Node** children;* };*/int maxDepth(struct Node* root) {if (!root) {return 0;}int depth 0;// 创建空队列const int qCap 10e4 1;str…...

光流法(Optical Flow)

一、简介 光流法&#xff08;Optical Flow&#xff09;是一种用于检测图像序列中像素运动的计算机视觉技术。其基于以下假设&#xff1a; 1.亮度恒定性假设&#xff1a;物体在运动过程中&#xff0c;其像素值在不同帧中保持不变。 2.空间和时间上的连续性&#xff1a;相邻像素之…...

Rancher的安装

1. 概览 1.1 用户界面优势 Rancher 提供了一个直观的图形用户界面&#xff08;GUI&#xff09;。对于不熟悉 Kubernetes 复杂的命令行操作&#xff08;如使用kubectl&#xff09;的用户来说&#xff0c;通过 Rancher 的界面可以方便地进行资源管理。例如&#xff0c;用户可以在…...

【Linux】获得同一子网下当前在线设备IP/Latency/MAC 通过nmap指定CIDR扫描当前在线设备

【Linux】获得同一子网下当前在线设备IP/Latency/MAC 通过nmap指定CIDR扫描当前在线设备 通过路由器的后台&#xff0c;查看当前在线设备&#xff0c;受到网卡版本的影响&#xff0c;有时会有部分设备看不见MAC和分配的IP。此时&#xff0c;可以借助命令行工具扫描子网下所有连…...

Ubuntu22.04安装DataEase

看到DataEase的驾驶舱&#xff0c;感觉比PowerBI要好用一点&#xff0c;于是搭建起来玩玩。Dataease推荐的操作系统是Ubuntu22.04/Centos 7。 下载了Ubuntu22.04和DataEase 最新版本的离线安装包 一.安装ubuntu22.04 在安装的时候&#xff0c;没有顺手设置IP地址信息&#xff…...

Taro React-Native IOS 打包发布

http网络请求不到 配置 fix react-native facebook::flipper::SocketCertificateProvider‘ (aka ‘int‘) is not a function or func_rn运行debug提示flipper-CSDN博客 Xcode 15&#xff08;iOS17&#xff09;编译适配报错_no template named function in namespace std-CS…...

【卷积神经网络CNN】基于深度学习动物图像识别系统(完整系统源码+数据库+开发笔记+详细部署教程+启动教程)✅

目录 【卷积神经网络CNN】基于深度学习动物图像识别系统&#xff08;完整系统源码数据库开发笔记详细部署教程启动教程&#xff09;✅ 一、项目背景 二、项目目标 三、项目创新点 四、项目功能 五、开发技术介绍 六、数据库设计 七、启动步骤 八、项目功能展示 九、开…...

图像处理椒盐噪声

椒盐噪声&#xff0c;也称为脉冲噪声&#xff0c;是图像中经常见到的一种噪声。它是一种随机出现的白点或者黑点&#xff0c;可能是亮的区域有黑色像素或是在暗的区域有白色像素&#xff08;或是两者皆有&#xff09;。这些白点和黑点会在图像中随机分布&#xff0c;导致图像中…...

推荐一款完全开源的多端仓库管理系统

简介 模块 安装 UI展示 开源地址 今天给大家介绍一款完全开源的仓库管理系统&#xff0c;本系统采用Python语言开发。 简介 该库存管理系统是目前福特亚太区售后物流仓储供应链流程。离开福特后&#xff0c;开始了这个项目。为了帮助一些有需要的人。OneAPP 理念。支持扫…...

python 爬虫 入门 六、Selenium

Selenium本来是一个自动测试工具&#xff0c;用于模拟用户对网站进行操作。在爬虫领域也有其用处。 一、下载安装Selenium及附属插件 pip install Selenium 安装完成后还需要安装一个浏览器驱动&#xff0c;来让python能启动浏览器。 如果是Edge或者其他基于Chromium的浏览器…...

ReactPress:重塑内容管理的未来

ReactPress Github项目地址&#xff1a;https://github.com/fecommunity/reactpress 欢迎提出宝贵的建议&#xff0c;欢迎一起共建&#xff0c;感谢Star。 ReactPress&#xff1a;重塑内容管理的未来 在当今信息爆炸的时代&#xff0c;一个高效、易用的内容管理系统&#xff0…...

w035基于web的学科竞赛管理

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0…...

网站开发策划案/成都计算机培训机构排名前十

问题描述项目采用: Spring Cloud Boot Gateway服务网关 Consu 注册中心在小程序发起微信支付后&#xff0c; 调用后台服务的发起微信预支付&#xff0c;通过预支付拿到的返回信息小程序在通过API调起微信支付&#xff0c; 支付成功后&#xff0c;按理支付成功后&#xff0c;…...

wordpress菜单属性/app推广渠道

前言&#xff1a;本文主要介绍了因为SELinux对网站目录权限控制的不当而引起网站无法正常操作和访问的问题。 正文开始&#xff1a;今天下午闲着没有事做于是突然兴起想尝试安装下Drupal。以前用Wordpress做博客久了&#xff0c;总想着尝尝新。 按照Installtion Guide提示的安装…...

sae建wordpress/陕西网页设计

脚手架配置代理&#xff08;React ajax&#xff09;一、理解二、常用的ajax请求库三、配置代理的第一种方法四、配置代理的第二种方法五、总结方法一方法二一、理解 React本身只关注于界面, 并不包含发送ajax请求的代码前端应用需要通过ajax请求与后台进行交互(json数据)react…...

四川网站建设seo优化/品牌推广手段

1.中文字两端对齐&#xff1a;text-align:justify; text-justify:inter-ideograph; 2.固定宽度汉字截断&#xff1a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;(不过只能处理文字在一行上的截断&#xff0c;不能处理多行。)(IE5以上) 3.固定宽度汉字(词)折行…...

广东商城网站建设报价/海外网络推广服务

ZOJ Problem Set - 3829Known Notation&#xff08;贪心&#xff09; 题目链接 题目大意&#xff1a;给你一个后缀表达式&#xff08;仅仅有数字和符号&#xff09;&#xff0c;可是这个后缀表达式的空格不幸丢失&#xff0c;如今给你一个这种后缀表达式&#xff0c;问最少须要…...

网站建设工程师培训/广告发布平台app

最近&#xff0c;其实时间挺多&#xff0c;有时我在想是不是人的心理也有周期曲线。好像我又是一段疲惫期。不管如何&#xff0c;我每天回到家里&#xff0c;抱起儿子一顿乱啃的感觉&#xff0c;还是让我的疲惫感都消失了。再过一个来月&#xff0c;儿子就&#xff14;周岁了。…...