Skip to content

code: 抽取并发布 15 章配套代码#2

Open
luwill wants to merge 4 commits into
masterfrom
code/companion-2026
Open

code: 抽取并发布 15 章配套代码#2
luwill wants to merge 4 commits into
masterfrom
code/companion-2026

Conversation

@luwill

@luwill luwill commented Jun 4, 2026

Copy link
Copy Markdown
Owner

概要

将《深度学习图像分割》15 章修订稿中的代码抽取出来,按章组织到 code/chXX/ 目录,作为本书的配套代码库。

改动概览

  • README.md:从 v1.0 时期的简介页升级为面向 15 章的配套代码索引页(含目录树、各章索引表、抽取流水线说明)。
  • 新增 code/:每章一个子目录,含:
    • 源代码文件(.py / .cpp / .sh / .yaml / .cmake)
    • README.md:章节概览 + 依赖 + 文件状态分类
    • inventory.md:源稿全部 fenced block 的盘点(按源稿行号定位)
  • .gitignore:忽略 __pycache__/、模型权重、CMake build 等。
  • Scripts/:保留不动(与 code/ch02/cpp/ 内容重合,作为历史链接兼容)。

各章文件数

主题 py cpp 其他
01 预备知识 2 1
02 传统图像分割算法 5
03 DL 分割基础 4
04 FCN / U-Net 8
05 DeepLab / PSPNet 2
06 Attention / Transformer 2
07 3D 分割 1
08–10 实例/全景/基础模型/半监督综述
11 数据集 shell×1
12 工程实战 23 yaml×1 + shell×3
13 医学影像实战 15 2 CMake×2 + shell×3
14 遥感/工业实战 11 shell×2
15 全书总结

共 88 个代码文件 + 15 个 inventory + 15 个章节 README。

抽取与验证流水线

book-review/drafts/chXX-vN.md
  │  extract_code.py
  ▼
code/chXX/*
  │  validate_code.py  (py_compile + pyflakes)
  ▼
validate_report.md

抽取脚本与验证脚本不进入本仓库(保留在 book-review/scripts/),保证仓库面向读者干净。

验证结果

  • Python:68 个 .py 文件,66/68 通过 py_compile;25/68 通过 pyflakes 无告警。
    • 2 个语法骨架是源稿教学占位(def __init__(self, ...): 与 module-top-level return),忠于书稿不修改,README 标注为"语法骨架"。
    • 其余 pyflakes 告警主要是依赖书稿上下文的教学片段(undefined name),属预期;README 标注为"教学片段"。
  • C++:8 个 .cpp(ch02×5、ch13×2、ch01×1),本地未装 OpenCV/LibTorch,未做编译验证;内容与源稿逐字一致。
  • Shell / yaml / CMake:未做语法验证,作为参考资料。

文件状态分类

每章 README 中表格按以下四类标注:

  • 可独立运行:py_compile + pyflakes 都通过。
  • 教学片段:依赖书稿上下文,单文件不能运行。
  • 语法骨架:源稿用 Ellipsis / module-top return 等教学截断写法,本仓库保留原貌。
  • 需 OpenCV 4.x / LibTorch:C++ 示例。

已知限制

  • 大模型权重(SAM/SAM 2 等)不包含在仓库中,读者需自行下载。
  • ch12/13/14 的实战代码主要面向有 GPU + 数据集 + 权重的工程环境,本仓库未做端到端运行验证。
  • .github/workflows/msbuild.yml 是早期 MSBuild CI(无 .sln),与本 PR 无关,若失败为既有状态。

测试计划

  • python3 -m py_compile 全部 68 个 .py(66 通过;2 个教学骨架已标注)
  • python3 -m pyflakes 全部 68 个 .py(结果在每章 README 中分类)
  • 读者本地验证:随机抽 2–3 章对照书稿正文核对一致性
  • 读者验证:ch02 用 OpenCV 4.x 编译 5 个 cpp 文件
  • 读者验证:ch12 的 snippet_NN.py 在自有数据集上端到端跑通

后续工作(不在此 PR 内)

  • 视读者反馈,补充各章 requirements.txt / environment.yml
  • 第 1 章 PDF 之外,可在后续 PR 中陆续补充其他章节的 PDF。

luwill added 4 commits June 4, 2026 22:07
将早期 v1.0 简介替换为面向 15 章配套代码库的索引页,
新增 code/ 目录结构、各章代码索引表、抽取/验证流水线说明,
保留 Scripts/ 兼容历史链接。
按章组织 code/chXX/,每章含 README + inventory + 源代码。

- ch01: 环境配置与 PyTorch/OpenCV 调用示例 (Python×2 + C++×1)
- ch02: 传统分割算法 C++ 实现 (Canny / Otsu / 区域生长 / 分水岭 / GrabCut)
- ch03: 分割网络基础组件 (SegNet 编码器 / ViT / 残差块 / 深监督)
- ch04: FCN-8s 与 U-Net 等典型编解码网络 PyTorch 实现
- ch05: DeepLab 与 PSPNet 中 PPM 模块
- ch06: 注意力机制与 Transformer 分割组件
- ch07: 3D 卷积示例
- ch08–10: 综述性章节,无独立代码
- ch11: 数据集下载脚本

每个文件在 header 中标注源稿行号;inventory.md 列出全章 fenced
block 与抽取后文件的映射;README 以"可独立运行 / 教学片段 /
语法骨架"区分文件状态,对源稿不做修改以保持与书稿一致。
- ch12 工程实战(27 文件):预处理、Dataset、训练循环、推理
  API、Web 部署,含 1 yaml + 3 shell 脚本。
- ch13 医学影像分割实战(22 文件):含 ICH 出血分割训练流水线
  与 LibTorch C++ 推理示例(2 cpp + 2 CMakeLists)。
- ch14 遥感与工业缺陷分割实战(13 文件)。
- ch15 总结章无代码,保留 inventory 说明。

每章 README 给出依赖列表与文件状态分类(可独立运行 /
教学片段 / 语法骨架);ch12/13/14 大模型权重需读者自行下载,
本仓库不包含权重。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant