
计算机视觉图像处理人工智能【免费下载链接】imagededup Finding duplicate images made easy!项目地址https://gitcode.com/gh_mirrors/im/imagededup点击查看免费下载本指南以仓库mkdocs/目录中的 mkdocs/README.md 为核心系统讲解 imagededup 项目文档站点的构建、本地预览与自动生成流程。你将掌握如何使用 MkDocs Material 主题搭建文档站点、如何通过autogen.py将 Python 源码中的 docstring 自动转换为 API 参考文档以及如何借助build_docs.sh/run_docs.sh一键完成构建与本地服务从而为类似的开源 Python 项目快速搭建一套源码即文档的维护体系。一、文档基础设施概览imagededup 的文档体系全部集中在仓库根目录下的 mkdocs 文件夹中其核心文件与职责如下文件作用mkdocs/README.md文档构建的快速上手说明安装依赖、本地预览、自动生成 API 文档mkdocs/mkdocs.ymlMkDocs 站点配置文件站点元信息、导航结构、主题与扩展mkdocs/autogen.py基于 Pythonast模块的 API 文档自动生成脚本mkdocs/build_docs.sh一键构建脚本复制内容、生成 API 文档、执行mkdocs buildmkdocs/run_docs.sh一键本地预览脚本复制内容、生成 API 文档、启动mkdocs servemkdocs/docs手写 Markdown 文档的存放目录用户指南、示例、图片素材其中 mkdocs/README.md 给出的构建流程只有三个步骤但背后对应着一套完整的手写指南 自动生成 API 参考双轨文档体系下面逐一展开。二、环境准备安装 MkDocs 与 Material 主题按照 mkdocs/README.md 的要求构建文档前需要先安装 MkDocs 及其 Material 主题pip install mkdocs mkdocs-materialmkdocs-material是 Material for MkDocs 主题包imagededup 的文档站即使用该主题渲染。安装完成后即可在mkdocs/目录下执行后续的 serve 与 build 命令。适用前提本文介绍的所有命令均应在mkdocs/目录下执行需要 Python 环境及 pip 可用。仓库根目录的 requirements.txt 与 setup.py 面向的是 imagededup 运行时依赖构建文档仅需上面这条安装命令。三、本地预览mkdocs serve执行以下命令即可启动文档本地服务mkdocs serve启动后打开浏览器访问http://127.0.0.1:8000/即可实时预览文档站点。mkdocs serve内置热重载能力——修改mkdocs/docs下的 Markdown 文件或 mkdocs/mkdocs.yml 配置时页面会自动刷新适合在写作过程中持续预览。需要特别说明的是直接执行mkdocs serve只会渲染已存在的Markdown 文件。项目文档站点中的 API 参考页如methods/cnn.md、evaluation/evaluation.md等并非手写而是由 mkdocs/autogen.py 从源码 docstring 自动生成的。因此如果要完整预览包括 API 参考在内的全站内容建议使用仓库提供的 mkdocs/run_docs.sh./run_docs.sh该脚本会在启动服务前自动完成复制首页与贡献/许可证页面 生成 API 文档两步预处理具体见本文第五、六节。四、站点的心脏mkdocs.yml 配置解读虽然 mkdocs/README.md 没有展开配置文件但 mkdocs/mkdocs.yml 直接决定了文档站的结构与呈现方式是理解整套文档体系的关键。4.1 站点元信息site_name: Imagededup site_author: idealo Data Science Teamsite_name将显示在浏览器标签页与站点导航栏中site_author用于标注站点作者。4.2 导航结构nav文档站按四大板块组织导航User Guide用户指南finding_duplicates.md、encoding_generation.md、custom_model.md、plotting_duplicates.md、evaluating_performance.md、benchmarks.md、windows.md对应 mkdocs/docs/user_guide 下的手写指南API referenceAPI 参考按methods、evaluation、utils分组分别指向cnn.md、hashing.md、evaluation.md、plotter.md、models.md——这些文件由autogen.py自动生成Example示例CIFAR10_deduplication.md对应 mkdocs/docs/examples 中的 CIFAR10 去重实战教程Contribution / License从仓库根目录复制而来的 CONTRIBUTING.md 与 LICENSE。4.3 主题与扩展theme: name: material palette: primary: indigo accent: indigo logo: img/logo.svg favicon: img/favicon.ico markdown_extensions: - codehilite站点使用 Material 主题主色与强调色均为 indigoLogo 与 favicon 分别取自 mkdocs/docs/img/logo.svg 和 mkdocs/docs/img/favicon.ico。codehilite扩展为代码块提供语法高亮因此文档中的 Python 示例均带有高亮样式。此外配置中还包含repo_url与google_analytics字段分别用于在页面上挂接仓库链接与站点统计。五、自动生成 API 文档autogen.py 原理剖析autogen.py 是整个文档体系的自动化工匠。它的作用正如 mkdocs/README.md 所述——Runpython autogen.pyto auto-generate the code documentation运行python autogen.py自动生成代码文档。其实现思路值得任何希望源码即文档的项目借鉴。5.1 工作流程脚本的入口是extract_comments(../imagededup/)整体流程如下使用os.walk递归遍历 imagededup 源码包目录筛选所有.py文件并跳过__init__.py对每个文件调用get_comments_str用ast.parse解析出 AST 语法树分别提取模块级函数与类以及类中的公有方法把 docstring 转换为 Markdown将生成的.md文件写入docs/下与源码包结构对应的目录中。由此生成的文档结构自然与源码结构一一对应imagededup/methods/cnn.py→docs/methods/cnn.mdimagededup/evaluation/evaluation.py→docs/evaluation/evaluation.mdimagededup/utils/plotter.py→docs/utils/plotter.mdimagededup/utils/models.py→docs/utils/models.md。5.2 docstring 解析细节parse_func_string实现了对 docstring 的精细解析识别Args、Attributes、Returns、Raises、Example等标准段落Example:之后的代码块会被抽取并包裹进python 代码栅栏同时去除标记change_args_to_dict把参数名: 描述逐行转换为字典结构remove_next_line将跨行描述合并为单行保证 Markdown 排版整洁。to_md最终将解析结果组装为统一格式##### Args、##### Attributes、##### Returns段落使用列表呈现每个参数及其说明##### Example usage则以 Python 代码块呈现示例。5.3 函数签名提取parse_func_args与get_func_comments配合为每个函数生成如下形式的签名块def find_duplicates(image_dir, encoding_map, min_similarity_threshold, scores, outfile, recursive, num_enc_workers, num_sim_workers)脚本会过滤掉以_开头的私有方法除非是__xx__双下划线方法因此生成的 API 文档只包含面向使用者的公开接口。从源码结构看自动生成的 API 文档与 imagededup/methods/cnn.py、imagededup/methods/hashing.py 等文件中的类与方法定义保持严格同步这保证了文档不落后于代码。例如PHash、AHash、DHash、WHash四个哈希算法类定义在 imagededup/methods/hashing.pyCNN类定义在 imagededup/methods/cnn.py它们对应的 API 参考页均由本脚本自动产出。六、一键构建与发布build_docs.sh 与 run_docs.sh仓库提供了两个 bash 脚本将文档构建流水线封装为一条命令。6.1 内容准备步骤两脚本共用cp ../README.md docs/index.md cp ../CONTRIBUTING.md docs/CONTRIBUTING.md cp ../LICENSE docs/LICENSE.md cp -R ../readme_figures docs/ python autogen.py这四步的作用是将仓库根目录 README.md 复制为站点首页docs/index.md导航中的Home页将 CONTRIBUTING.md 复制为文档站内的贡献指南将 LICENSE 复制为许可证页面将 readme_figures 中的图片素材复制进docs/供首页插图使用执行autogen.py生成 API 参考文档。6.2 构建发布版./build_docs.sh脚本最后执行mkdocs build -c -d ../docs/其中-c--clean在构建前清理旧的站点输出-d ../docs/将静态站点输出到仓库根目录下的docs/目录。构建产物为纯静态 HTML可直接托管到任意静态站点服务或 GitHub Pages。6.3 本地实时预览./run_docs.sh与构建版唯一的区别是最后一步执行mkdocs serve而非mkdocs build适用于写作调试阶段。七、手写指南与自动生成文档的分工理解这套文档体系后会发现imagededup 采用了双轨维护模式手写用户指南mkdocs/docs/user_guide由开发者人工撰写的实操教程涵盖查找重复图片、编码生成、自定义模型、绘制重复图、性能评估、基准测试与 Windows 使用等主题。例如 finding_duplicates.md 详细介绍了find_duplicates()与find_duplicates_to_remove()的 API 用法、阈值参数哈希方法的max_distance_threshold、CNN 的min_similarity_threshold、scores、outfile、recursive等选项自动生成的 API 参考由autogen.py从源码 docstring 实时生成保证与 imagededup 包内的类、方法签名完全一致。手写指南解决怎么用自动生成文档解决接口长什么样二者通过 mkdocs/mkdocs.yml 中的nav统一编排在同一站点下。八、常见操作场景速查目标命令仅安装文档构建依赖pip install mkdocs mkdocs-material手写文档快速预览不含 API 参考mkdocs serve访问http://127.0.0.1:8000/完整站点本地预览含 API 参考./run_docs.sh只重新生成 API 参考文档python autogen.py构建发布版静态站点./build_docs.sh输出到根目录docs/九、小结imagededup 的文档构建体系以 mkdocs/README.md 的三条命令为入口背后是配置完善的mkdocs.yml、以 AST 解析为核心的autogen.py以及一键化的构建/预览脚本。对于任何希望为 Python 开源项目建立低维护成本、高同步率文档站点的团队这套模式的核心价值在于将 API 参考文档的维护从人工撰写转变为源码 docstring 自动转换开发者只需把功夫花在编写高质量的 docstring 上文档站点便会随之保持最新。赞分享计算机视觉图像处理人工智能【免费下载链接】imagededup Finding duplicate images made easy!项目地址https://gitcode.com/gh_mirrors/im/imagededup点击查看免费下载相关推荐Hammerspoon 文档编写与生成指南基于 Docstring 注释构建 Dash/HTML/Markdown API 文档Hammerspoon 文档编写与生成指南基于 Docstring 注释构建 Dash/HTML/Markdown API 文档 导读 本文是 Hammers桌面应用工作流自动化AutoKeras 文档构建指南基于 MkDocs 的自动化文档生成与发布工作流AutoKeras 文档构建指南基于 MkDocs 的自动化文档生成与发布工作流 AutoKeras 是面向深度学习的 AutoML 库其官方文档的源码位于AutoML机器学习深度学习人工智能Evidently API 参考文档自动生成指南基于 pdoc 从本地源码与 Git 版本构建文档站Evidently API 参考文档自动生成指南基于 pdoc 从本地源码与 Git 版本构建文档站 导读 本文介绍 Evidently 开源仓库中 api人工智能大模型模型评测AI 评测机器学习MLOpsLLMOps数据可视化上一篇3个技巧让你的普通鼠标在Mac上超越触控板体验下一篇TiXL 安装完整性验证与安全启动从「打地鼠式补丁」到集中式安装校验方案创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考