首页/在线代码库

在线代码库 · 全部演示脚本

本站全部 34 个 Python 演示脚本,点击任意卡片即可在线查看完整源码(语法高亮 + 行号 + 输出图)。源码仅提供在线学习,不提供文件下载。

34 个脚本 共 2742 行代码 四大系列 + 公共工具

核心讲义 · CG × AI

原理总览 + 齐次变换 → 可微分渲染 · 10 个脚本
demo0_principles.py 182 行

原理图解: 生成入门文档所需的概念示意图。

1. fig_pipeline.png 总流程图: 拆线 -> 分类 -> 识别 -> 拓扑 -> 3D 2. fig_hough_vote.png 霍夫参数空间投票…

核心讲义 在线查看 →
demo11_transforms.py 45 行

演示11: 齐次变换矩阵 — 平移/旋转/缩放 + 复合变换。

2D 演示: 一个三角形依次经过 旋转 -> 缩放 -> 平移 三个变换, 说明齐次坐标如何把三种变换统一成矩阵乘法。

核心讲义 在线查看 →
demo12_projection.py 48 行

演示12: 正交投影 vs 透视投影。

同一个 3D 立方体, 分别用正交投影和透视投影映射到 2D 平面, 对比"近大远小"(透视)与"平行等大"(正交)的区别。

核心讲义 在线查看 →
demo13_bezier.py 56 行

演示13: Bézier 曲线 (de Casteljau 递推) 与 B-Spline 对比。

用控制点拟合自由形状曲线, 展示: - 三次 Bézier: 由 4 个控制点决定, 递推求值; - 均匀三次 B-Spline: 每 4 个控制点一段, 全局平滑。

核心讲义 在线查看 →
demo14_rasterizer.py 67 行

演示14: 光栅化 + 深度缓冲 (Z-Buffer)。

手写一个小型三角形光栅化器: 把两个前后重叠的三角形投影后画到像素网格, 用 Z-Buffer 保证"离相机近的像素覆盖远的", 展示遮挡如何被解决。

核心讲义 在线查看 →
demo15_perceptron.py 55 行

演示15: 感知机/全连接 — 从"原子"到线性分类。

生成两簇线性可分数据, 手写感知机学习规则 w += lr·y·x 训练, 画出决策边界, 对比感知机(硬阈值)与逻辑回归(软概率)决策边界。

核心讲义 在线查看 →
demo16_cnn.py 44 行

演示16: 卷积 — 视觉特征的"扫描器"。

用几个经典卷积核(Sobel 边缘、高斯模糊、锐化)对合成棋盘/数字图做卷积, 可视化"核与局部窗口的点积"如何提取特征。

核心讲义 在线查看 →
demo17_attention.py 56 行

演示17: 注意力机制 — 全局关联的"聚光灯"。

手写 scaled dot-product attention: Query 与 Key 做点积 -> softmax 归一化 -> 加权求和 Value。 用一句话(3 个词)…

核心讲义 在线查看 →
demo18_backprop.py 102 行

演示18: 反向传播 + 梯度下降 — 模型训练的"引擎"。

手写一个 2 层全连接网络在 MNIST 子集(或合成两类点)上训练: 1. 前向传播: y = softmax(W2·relu(W1·x + b1) + b2) 2. 反向传播…

核心讲义 在线查看 →
demo19_activation_loss.py 76 行

演示19: 激活函数与损失函数 — 非线性来源与训练目标。

1. 激活函数: Sigmoid / ReLU / Tanh 曲线及其导数(梯度饱和现象直观可见)。 2. 损失函数: MSE 与 交叉熵 在二分类上的形状对比。

核心讲义 在线查看 →

识别系列 · 从 2D 到 3D

霍夫 → RANSAC → 线框 → 三维重建 → 三维模型处理 · 14 个脚本
demo1_hough_lines.py 70 行

演示1: 霍夫变换检测断裂直线。

生成一张"断成几截"的直线图像, 用 cv2.HoughLinesP 把断裂的直线重新连接起来, 输出 原图 | 边缘图 | 检测结果 三栏对比图。

识别系列 在线查看 →
demo2_hough_circles.py 69 行

演示2: 霍夫梯度法检测断裂圆弧。

生成一张"断成多段"的圆环图像, 用 cv2.HoughCircles 识别出完整圆, 输出 原图 | 中值滤波+边缘 | 检测结果 三栏对比图。

识别系列 在线查看 →
demo3_ransac_line.py 62 行

演示3: RANSAC 从含大量离群噪声中稳健拟合直线。

对比: 普通最小二乘(被离群点带偏) vs RANSAC(忽略离群点, 拟合主流数据)。

识别系列 在线查看 →
demo4_ransac_circle.py 51 行

演示4: RANSAC 从含离群噪声的角点/点集中拟合圆。

生成一个带高斯噪声的圆 + 大量随机离群点, 用 skimage.measure.ransac + CircleModel 拟合。

识别系列 在线查看 →
demo5_wireframe_rooms.py 123 行

演示5: 几何分析法 — 平面线框图的拓扑图构建与房间识别。

合成一张类似建筑平面图的 2x2 网格墙体线框图(含一个门口缺口与噪点), 流程: 霍夫提取线段 -> 求交点(顶点) -> 构建属性邻接图 -> networkx 最小环基(房…

识别系列 在线查看 →
demo6_symbol_isomorphism.py 159 行

演示6: 几何分析法 — 属性邻接图构建 + 子图同构识别图元符号。

场景: 一张线框图中包含多个图元(矩形+双对角线、三角形、圆形)。 先将图元转换成"顶点-边"属性邻接图, 再用 networkx GraphMatcher 在大图中 搜索与"矩…

识别系列 在线查看 →
demo7_triangulation.py 109 行

演示7: 点 — 多视图三角测量恢复三维坐标。

模拟两台相机从不同角度观察一个"正方体角点"点云, 用对极几何/DLT 三角化 从两视图同名点恢复三维坐标, 并与真实值对比误差。

识别系列 在线查看 →
demo8_box_faces.py 94 行

演示8: 面 — 长方体最小环基识别 6 个表面 + 平面拟合校验。

已知一个长方体 3D 线框(8 顶点、12 条边), 用图论方法: 1. 构建顶点-边图; 2. 求最小环基(Minimum Cycle Basis), 期望得到 6 个四边形环…

识别系列 在线查看 →
demo9_pseudo_intersection.py 98 行

演示9: 线 — 破除非真实交点(视觉伪交点)与虚拟延伸补全。

场景: 两条 3D 线段在 2D 投影中交叉(看起来相交), 但实际在空间中一前一后。 用"拓扑一致性"校验: 两条 3D 线的空间最近距离若超过阈值, 判定为视觉交叉并断开。…

识别系列 在线查看 →
demo28_3d_classify.py 95 行

演示1: 三维模型识别与分类 — 三大表示流派对比 + 经典方法.

1. 左: 三种输入表示(多视图 / 体素 / 点云)示意 2. 中: 经典"视图特征 + 形状描述子"分类流程(可运行) — 用 PCA 描述子做简单分类 3. 右: 各流派代…

识别系列 在线查看 →
demo29_3d_segment.py 99 行

演示2: 三维点云分割 — 区域生长 + 平面拟合 (经典方法).

用合成点云(两个平面 + 噪声)演示区域生长分割: 1. 计算每个点法向 (PCA 邻域) 2. 选种子点, 向法向/距离一致的邻域生长 3. 分割出不同平面区域

识别系列 在线查看 →
demo30_3d_reconstruct.py 108 行

演示3: 三维快速建模 — SfM/多视图三角化 + ICP 配准.

1. 左: 多视图三角化重建稀疏点云 (复用双视图 DLT 原理, 扩展到多视图) 2. 右: ICP 点云配准 — 两片点云对齐成完整模型

识别系列 在线查看 →
demo31_3d_automodel.py 72 行

演示4: 三维自动化建模 — 程序化/参数化建模 + 生成式对比.

1. 左: 程序化建模 — 用参数(旋转体/挤出)生成复杂形状, 展示"参数→模型" 2. 中: 参数化建模 — 一个参数变化 → 模型连续变形 (控制柄) 3. 右: 生成式建…

识别系列 在线查看 →
demo32_3d_analysis.py 109 行

演示5: 三维模型分析 — 法向估计 + 曲率分析 + 拓扑(Euler特征).

1. 左: PCA 法向估计 (曲面点云) 2. 中: 主曲率/高斯曲率可视化 (用合成曲面) 3. 右: 拓扑分析 — Euler 特征数 + 面/边/顶点关系

识别系列 在线查看 →

工程实践 · 模型训练实战

初始化 → 训练 → 评价 → 避坑 · 8 个脚本
demo20_init.py 51 行

演示20: 参数初始化策略 — Xavier vs He vs 零初始化。

在 10 层全连接网络上比较三种初始化: - 零初始化: 梯度对称, 无法学习; - Xavier: 适合 Sigmoid/Tanh, 保持前向方差; - He: 适合 ReLU…

工程实践 在线查看 →
demo21_lr.py 49 行

演示21: 学习率调度 — Step / Cosine / Warm-up / Plateau。

画出 4 种经典学习率调度策略随训练步数的变化曲线。

工程实践 在线查看 →
demo22_augment.py 55 行

演示22: 数据增强可视化 — 几何变换 / 颜色抖动 / MixUp。

对一张合成图片依次展示: 旋转、翻转、裁剪缩放、颜色抖动, 以及 MixUp 混合。

工程实践 在线查看 →
demo23_focal.py 53 行

演示23: 类别不平衡 — 交叉熵 vs Focal Loss。

在极不平衡二分类(正例占 1%)上比较普通交叉熵与 Focal Loss 的损失曲线与 "易分样本抑制"效果。Focal Loss: FL = -(1-p_t)^γ · log(…

工程实践 在线查看 →
demo24_overfit.py 69 行

演示24: 过拟合 vs 欠拟合 + 正则化对比。

在多项式回归(真实为 3 次函数, 30 个样本)上: - 欠拟合: 1 次模型; - 恰好: 3 次模型; - 过拟合: 15 次模型(训练误差小, 泛化差); - 正则化:…

工程实践 在线查看 →
demo25_gradient.py 55 行

演示25: 梯度灾难 — 梯度消失/爆炸 与 梯度裁剪。

1. 深层网络激活梯度随层数衰减/爆炸的示意曲线(理论: 梯度 × 权重谱半径 逐层乘)。 2. 梯度裁剪效果: 训练中出现梯度爆炸时, 裁剪 L2 范数到阈值可稳定训练。

工程实践 在线查看 →
demo26_metrics.py 69 行

演示26: 评价指标体系 — 混淆矩阵 / Precision-Recall / ROC-AUC。

对一组模拟的二分类预测(含正负例与不同阈值), 画出: - 混淆矩阵 + 四大指标(P/R/F1/Acc); - Precision-Recall 曲线 与 ROC 曲线(AUC…

工程实践 在线查看 →
demo27_params_flops.py 91 行

演示27: 模型复杂度 — Params 与 FLOPs 的手工计算与对比。

用 numpy 手算常见层的参数量(Params)与浮点运算量(FLOPs): - 全连接 FC: W∈R^{m×n} -> params=mn+m, flops…

工程实践 在线查看 →