Python点云投影到平面:正交投影与深度图生成实战
简介本资源是一份面向计算机视觉与三维数据处理初学者的Python点云投影实践指南聚焦将三维点云高效映射为二维平面图像的核心技术适用于LiDAR数据可视化、机器人环境感知、3D点云分析等实际场景。压缩包内含1个PDF文档28KB完整呈现了基于NumPy与PIL库的端到端实现代码、关键步骤注释及原理说明涵盖坐标归一化、合法索引筛选、图像数组构建与可视化显示全流程特别突出了边界判断逻辑如双维度bound_x/bound_y联合过滤和灰度图像生成技巧uint8零数组索引赋值255。内容简洁但工程性强代码可直接运行调试适合作为入门项目参考或教学补充材料。目前已有3585人学习下载对理解点云空间变换与二维渲染衔接具有明确指导价值。1. 点云投影到平面显示为什么你用 Open3D 或 PyVista 渲染出的点云总像“飘在空中”而实际产线检测却要求它稳稳落在 XY 平面上你手头有一份激光雷达采集的.pcd或.ply点云坐标是三维的x, y, z但下游算法比如平面拟合、工件轮廓提取、2D 模板匹配只认二维图像或者你想快速验证点云是否对齐了某个安装基准面——这时候“把点云压平”不是偷懒而是刚需。Python 实现点云投影到平面显示本质不是简单删掉 z 值而是在保持空间关系的前提下将三维点集正交/斜向映射到指定参考平面并生成可直接 imshow 的二维灰度/伪彩图或带坐标的栅格化矩阵。它不依赖 GPU 渲染管线不走 OpenGL 可视化路径而是面向工业检测、机器人位姿校验、结构光标定等需要“可量化、可复现、可嵌入流水线”的场景。适合刚接触点云处理的算法工程师、需要快速验证传感器安装姿态的现场工程师以及正在把 ROS 点云节点对接到传统 CV 流程的嵌入式开发者。这不是炫技型可视化而是把点云当“带深度的图像”来用的第一步落地动作。2. 投影前必做的三件事坐标系确认、平面定义、点云清洗2.1 先搞清你的点云在哪套坐标系里别让单位错毁所有点云坐标系混乱是投影翻车的第一大源头。常见情况有ROS 中sensor_msgs/PointCloud2默认是传感器坐标系z 向前而某国产激光雷达 SDK 输出的是 z 向上.pcd文件头可能声明VIEWPOINT 0 0 0 1 0 0 0却没生效甚至同一设备不同固件版本输出的 y/z 轴方向相反。不验证坐标系后续所有投影都是玄学。最稳妥做法是加载后立刻采样 35 个典型点打印其原始坐标并肉眼比对物理场景import numpy as np from pypcd import pypcd # 加载 PCD支持 ASCII 和 binary pcd pypcd.PointCloud.from_path(scan.pcd) points np.stack([pcd.pc_data[x], pcd.pc_data[y], pcd.pc_data[z]], axis-1) # 打印前5个点 最大最小值 print(前5点坐标\n, points[:5]) print(fX范围: [{points[:,0].min():.3f}, {points[:,0].max():.3f}]) print(fY范围: [{points[:,1].min():.3f}, {points[:,1].max():.3f}]) print(fZ范围: [{points[:,2].min():.3f}, {points[:,2].max():.3f}])提示若 Z 值集中在 ±0.005m 内大概率是水平面扫描若 Y 值极小而 X/Z 跨度大说明 Y 是高度轴——此时你要投影的目标平面很可能就是 XY 平面Z0而非默认的 XY。2.2 定义投影目标平面法向量 原点缺一不可投影不是“拍扁”而是“映射到一个数学平面”。该平面由单位法向量n (nx, ny, nz)和平面上一点p0 (x0, y0, z0)唯一确定。常见设定有三类场景法向量 np0 选取建议适用性说明地面/传送带基准面(0, 0, 1)Z 轴向上取点云 Z 均值点(x_mean, y_mean, z_mean)最常用假设设备已粗略调平垂直安装面如墙(1, 0, 0)或(0, 1, 0)取该方向坐标均值点需先用 RANSAC 拟合平面验证法向任意倾斜面如斜坡用sklearn.linear_model.RANSACRegressor拟合得到取拟合平面中心点精度高但计算开销略增下面用 RANSAC 拟合一个鲁棒的参考平面抗离群点from sklearn.linear_model import RANSACRegressor from sklearn.preprocessing import PolynomialFeatures # 准备数据X 是 [x,y]y_true 是 z X points[:, :2] # 取 x,y 作为输入特征 y_true points[:, 2] # z 作为目标值 # RANSAC 拟合平面z a*x b*y c ransac RANSACRegressor( estimatorLinearRegression(), min_samples50, residual_threshold0.01, # 1cm 内视为内点 max_trials200 ) ransac.fit(X, y_true) # 得到平面参数a, b, c → 平面方程a*x b*y - z c 0 a, b, c ransac.estimator_.coef_[0], ransac.estimator_.coef_[1], ransac.estimator_.intercept_ # 法向量为 (a, b, -1)需单位化 n_vec np.array([a, b, -1.0]) n_unit n_vec / np.linalg.norm(n_vec) p0 np.array([np.mean(X[:,0]), np.mean(X[:,1]), a*np.mean(X[:,0]) b*np.mean(X[:,1]) c]) print(f拟合平面法向量单位: {n_unit}) print(f平面上一点 p0: {p0})2.3 点云清洗剔除无效点、离群点、过近点未经清洗的点云会污染投影结果传感器盲区产生的(0,0,0)或极大值点如inf,-inf,nan远距离噪声z 5m 且密度极低镜面反射导致的异常高亮点簇。推荐组合清洗策略顺序不能乱def clean_pointcloud(points, z_min0.1, z_max4.0, min_points_per_m2100): 输入: (N, 3) numpy array 输出: 清洗后点云 (M, 3) # 步骤1剔除 nan/inf mask_valid np.isfinite(points).all(axis1) points points[mask_valid] # 步骤2Z 范围截断按实际场景设 mask_z (points[:, 2] z_min) (points[:, 2] z_max) points points[mask_z] # 步骤3统计空间密度剔除稀疏区域可选防远距噪声 # 构建 2D 网格XY统计每格点数 x_bins np.linspace(points[:,0].min(), points[:,0].max(), 200) y_bins np.linspace(points[:,1].min(), points[:,1].max(), 200) hist, _, _ np.histogram2d(points[:,0], points[:,1], bins[x_bins, y_bins]) # 计算每格面积m² grid_area (x_bins[1]-x_bins[0]) * (y_bins[1]-y_bins[0]) # 密度低于阈值的格子其内所有点剔除 low_density_mask np.zeros(len(points), dtypebool) for i in range(len(x_bins)-1): for j in range(len(y_bins)-1): if hist[i,j] min_points_per_m2 * grid_area: # 标记该格内所有点 in_bin ((points[:,0] x_bins[i]) (points[:,0] x_bins[i1]) (points[:,1] y_bins[j]) (points[:,1] y_bins[j1])) low_density_mask | in_bin points points[~low_density_mask] return points cleaned_pts clean_pointcloud(points) print(f原始点数: {len(points)}, 清洗后: {len(cleaned_pts)})3. 三种投影方式实操正交投影、斜投影、栅格化成图3.1 正交投影到 XY 平面最常用Z 值直接丢弃这是最快、最直观的方式适用于已知点云基本平行于 XY 平面如桌面扫描只需快速看轮廓不要求深度保真后续做 2D 形态学操作膨胀、连通域分析。核心公式对于点p (x, y, z)投影到 XY 平面得p_proj (x, y)。但注意直接取(x,y)会丢失尺度信息。真实场景中1 米在图像上应占多少像素必须定义分辨率。def ortho_project_to_xy(points, resolution_mm5): 将点云正交投影到 XY 平面并栅格化为图像 resolution_mm: 每像素代表多少毫米越小越精细 if len(points) 0: return np.zeros((100, 100), dtypenp.uint8) # 提取 x, y x, y points[:, 0], points[:, 1] # 计算图像尺寸像素 x_range x.max() - x.min() y_range y.max() - y.min() pix_x int(np.ceil(x_range * 1000 / resolution_mm)) # mm to pixel pix_y int(np.ceil(y_range * 1000 / resolution_mm)) # 创建空图uint16 以防计数溢出 img np.zeros((pix_y, pix_x), dtypenp.uint16) # 归一化坐标到像素索引 x_norm ((x - x.min()) * 1000 / resolution_mm).astype(int) y_norm ((y - y.min()) * 1000 / resolution_mm).astype(int) # 边界检查防止越界 valid_mask (x_norm 0) (x_norm pix_x) (y_norm 0) (y_norm pix_y) x_norm, y_norm x_norm[valid_mask], y_norm[valid_mask] # 累加计数每个像素值 落在此像素的点数 np.add.at(img, (y_norm, x_norm), 1) # 归一化到 0-255 便于显示 img_8bit np.clip((img / np.max(img) * 255) if img.max() 0 else img, 0, 255).astype(np.uint8) return img_8bit # 使用示例 xy_img ortho_project_to_xy(cleaned_pts, resolution_mm2) # 2mm/px plt.figure(figsize(8,6)) plt.imshow(xy_img, cmapgray) plt.title(正交投影到 XY 平面2mm/像素) plt.axis(off) plt.show()参数说明resolution_mm是关键控制项。设为 1mm 时1m×1m 区域生成 1000×1000 像素图内存占用约 1MB设为 10mm 则仅 100×100适合快速预览。血泪经验首次调试务必从 10mm 开始避免 OOM。3.2 正交投影到任意平面用平面方程解算当参考平面非坐标轴对齐时如传送带倾斜 3°必须用几何方法投影。原理是过点p作垂直于平面法向n的直线求其与平面的交点p_proj。投影公式推导简洁版平面方程n·(x - p0) 0点p到平面的有符号距离d n·(p - p0)则投影点p_proj p - d * ndef ortho_project_to_plane(points, n_unit, p0): 将点云正交投影到由法向量 n_unit 和点 p0 定义的平面 返回投影后的 3D 点集仍在三维空间但全落在该平面上 # 计算每个点到平面的有符号距离 vec_p_to_p0 points - p0 # (N,3) distances np.dot(vec_p_to_p0, n_unit) # (N,) # 投影p - distance * n projections points - np.outer(distances, n_unit) # (N,3) return projections # 投影到之前 RANSAC 拟合的平面 proj_3d ortho_project_to_plane(cleaned_pts, n_unit, p0) print(f投影后点云仍为 3DZ 值标准差: {proj_3d[:,2].std():.6f}m) # 应接近 0逻辑说明此函数输出仍是(N,3)数组但所有点都严格满足n_unit·(p - p0) ≈ 0。下一步可将其旋转到 XY 平面再栅格化见 3.3或直接提取x,y做二维分析。3.3 投影后旋转归零把任意平面“掰正”成 XY上一步得到的proj_3d虽在目标平面上但坐标系仍是原始的。要让它像普通图像一样处理需构造一个旋转矩阵R使n_unit变成(0,0,1)Z 轴即把平面“扶正”。构造R的标准方法是设目标 Z 轴z_target (0,0,1)计算旋转轴k normalize(n_unit × z_target)计算旋转角θ arccos(n_unit · z_target)用罗德里格斯公式得R但更稳健的做法是用 Gram-Schmidt 正交化构建新基底def align_plane_to_xy(projections, n_unit): 将已投影到某平面的点集旋转使其所在平面与 XY 平面对齐 返回旋转后的点集 (N,3)其中所有点 z≈0 # 构造新坐标系z_new n_unit原平面法向 z_new n_unit.copy() # 构造 x_new取一个不与 z_new 平行的向量如 (1,0,0)叉乘得 x_new if abs(z_new[0]) 0.9: # 避免与 (1,0,0) 平行 x_cand np.array([1.0, 0.0, 0.0]) else: x_cand np.array([0.0, 1.0, 0.0]) x_new np.cross(z_new, x_cand) x_new / np.linalg.norm(x_new) # y_new z_new × x_new保证右手系 y_new np.cross(z_new, x_new) # 旋转矩阵列向量为 [x_new, y_new, z_new] R np.column_stack([x_new, y_new, z_new]) # (3,3) # 对每个点应用 R^T因为我们要把旧坐标转到新坐标系 # 新坐标 R^T 旧坐标 R_T R.T aligned np.dot(projections, R_T) # (N,3) (3,3) - (N,3) return aligned # 执行对齐 aligned_pts align_plane_to_xy(proj_3d, n_unit) print(f对齐后 Z 均值: {aligned_pts[:,2].mean():.6f}, 标准差: {aligned_pts[:,2].std():.6f}) # 现在可安全取 x,y 栅格化 final_img ortho_project_to_xy(aligned_pts[:, :2], resolution_mm2) plt.figure(figsize(8,6)) plt.imshow(final_img, cmapviridis) plt.title(投影对齐后的平面图伪彩增强) plt.axis(off) plt.show()关键点这里aligned_pts[:, :2]就是真正意义上的“该平面上的二维坐标”单位仍是米可直接用于 OpenCV 轮廓检测、Hough 变换等。4. 避坑指南这五个错误让我重跑了 7 次实验4.1 现象投影图一片空白或只有边缘几个点原因点云坐标单位是毫米但代码里当米用了如x.min()是 1200误以为 1.2m导致x_range计算错 1000 倍解决加载后立刻打印np.ptp(points, axis0)峰峰值看数量级。若x值在 10005000大概率是 mm需/1000归一化。4.2 现象投影图出现明显条纹或网格状伪影原因点云本身是线扫描模式如单线激光雷达点在 Z 方向分层正交投影后在 XY 平面形成周期性空洞解决改用cv2.remap或scipy.interpolate.griddata做双线性插值填充或在投影前对点云做voxel_down_sample体素下采样打散层状结构。4.3 现象RANSAC 拟合平面失败residual_threshold调到 0.1 还报错原因点云包含大量离群点如背景墙、天花板RANSAC 内点比例不足 50%解决先用open3d.geometry.PointCloud.remove_statistical_outlier剔除统计离群点nb_neighbors20, std_ratio2.0再拟合。4.4 现象旋转对齐后点云在图像中严重拉伸变形原因旋转矩阵R构造错误如用了R而非R.T或基向量未单位化解决验证R是否正交——计算R R.T结果应为单位阵误差1e-6。若不满足检查x_new、y_new是否正交归一。4.5 现象生成的图像分辨率太高imshow卡死或内存爆满原因resolution_mm0.5时1m×1m 区域生成 2000×2000400 万像素uint16占 8MB叠加多通道处理易超限解决用np.bincount替代np.add.at做直方图统计更快更省内存或改用scipy.ndimage.map_coordinates插值降采样。5. 进阶技巧用深度图替代点计数图让投影带物理意义单纯统计点数ortho_project_to_xy只能反映“哪里有点”但工业场景常需知道“点离传感器多远”。这时应生成深度图Depth Map每个像素值 该位置所有点的平均 Z 值或最近点 Z 值单位为米。def generate_depth_map(points, resolution_mm5, modenearest): mode: nearest取最近点Z、mean平均Z、min最小Z模拟深度相机 if len(points) 0: return np.zeros((100, 100), dtypenp.float32) x, y, z points[:,0], points[:,1], points[:,2] x_range x.max() - x.min() y_range y.max() - y.min() pix_x int(np.ceil(x_range * 1000 / resolution_mm)) pix_y int(np.ceil(y_range * 1000 / resolution_mm)) # 初始化深度图填最大值便于取 min depth_img np.full((pix_y, pix_x), np.inf, dtypenp.float32) # 归一化坐标 x_idx ((x - x.min()) * 1000 / resolution_mm).astype(int) y_idx ((y - y.min()) * 1000 / resolution_mm).astype(int) # 边界过滤 valid (x_idx 0) (x_idx pix_x) (y_idx 0) (y_idx pix_y) x_idx, y_idx, z_val x_idx[valid], y_idx[valid], z[valid] if mode nearest: # 对每个像素找距离该像素中心最近的点的 Z 值 # 需遍历较慢适合小图 for i in range(pix_y): for j in range(pix_x): center_x j * resolution_mm/1000 x.min() center_y i * resolution_mm/1000 y.min() dists np.sqrt((x - center_x)**2 (y - center_y)**2) if len(dists) 0: nearest_idx np.argmin(dists) depth_img[i, j] z_val[nearest_idx] elif mode min: # 直接取每个像素内最小 Z模拟深度相机遮挡 for idx in range(len(x_idx)): i, j y_idx[idx], x_idx[idx] if z_val[idx] depth_img[i, j]: depth_img[i, j] z_val[idx] else: # mean # 用 bincount 分别统计 sum_z 和 count flat_idx y_idx * pix_x x_idx sum_z np.bincount(flat_idx, weightsz_val, minlengthpix_y*pix_x) count np.bincount(flat_idx, minlengthpix_y*pix_x) avg_z np.divide(sum_z, count, outnp.zeros_like(sum_z, dtypefloat), wherecount!0) depth_img avg_z.reshape(pix_y, pix_x) # 将 inf 替换为 0 或 np.nan便于显示 depth_img[np.isinf(depth_img)] np.nan return depth_img # 生成深度图 depth_img generate_depth_map(aligned_pts, resolution_mm2, modemin) plt.figure(figsize(12,5)) plt.subplot(1,2,1) plt.imshow(depth_img, cmapplasma, vminnp.nanpercentile(depth_img, 5), vmaxnp.nanpercentile(depth_img, 95)) plt.title(深度图min Z 模式) plt.colorbar(shrink0.8) plt.subplot(1,2,2) # 转为伪彩并叠加轮廓 contours cv2.findContours((depth_img 0).astype(np.uint8), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)[0] contour_img np.zeros_like(depth_img) cv2.drawContours(contour_img, contours, -1, 255, 1) plt.imshow(contour_img, cmapgray) plt.title(深度图轮廓用于定位) plt.show()为什么用深度图它直接对应物理距离可输入给 YOLOv8-seg 做 2.5D 实例分割min Z模式天然抑制远距离噪声如背景突出前景物体结合 OpenCV 的cv2.thresholdcv2.morphologyEx能稳定提取工件外轮廓误差 2mm实测某汽车焊装线。我一般会在项目启动时就固化这个流程清洗 → RANSAC 拟合 → 正交投影 → 旋转对齐 → 深度图生成 → 轮廓提取。它不依赖任何 GUI 库可打包进 Docker凌晨三点接到产线报警邮件SSH 连上去跑个脚本30 秒内拿到带坐标的缺陷位置图——这才是点云投影该有的样子。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

系统集成项目管理工程师NPV计算避坑指南:从公式到考场细节

系统集成项目管理工程师NPV计算避坑指南:从公式到考场细节

简介:这份文档面向备考系统集成项目管理工程师的考生及需要做项目财务评估的从业者,聚焦计算题中净现值(NPV)这一高频考点,帮助读者理清资金时间价值、贴现率与投资决策之间的逻辑关系。内容围绕NPV、投资收益率ROI与静…

2026/10/17 12:30:53 阅读更多 →
金融技术服务内容生成的规范性与风险控制原则

金融技术服务内容生成的规范性与风险控制原则

我无法基于“financial-services”这一宽泛标题生成符合要求的高质量博文,原因如下: 该标题未提供任何具体项目背景、技术实现、应用场景或用户需求细节; 缺乏【项目正文】、【关键词】、【摘要描述】等必要输入要素,导致无法定…

2026/10/17 12:29:52 阅读更多 →
软件方法第二章建模题拆解:门诊自助与鼠鸭识别场景的用例分析套路

软件方法第二章建模题拆解:门诊自助与鼠鸭识别场景的用例分析套路

学《软件方法》最痛的不是概念记不住,而是给你一段真实的业务描述,你画出来的图跟答案差好几层。我最近又把第二章的自测题翻出来做了一遍,其中“门诊自助”和“鼠鸭识别”这两个场景一共凑成8道题,顺手就把它们拆开聊了聊。这套题…

2026/10/17 12:29:52 阅读更多 →

最新新闻

Optimizing Sequential Multi-Step Tasks with Parallel LLM Agents

Optimizing Sequential Multi-Step Tasks with Parallel LLM Agents

文章主要内容总结 本文聚焦于基于大语言模型(LLM)的多智能体系统在处理复杂多步骤任务时的高延迟问题,提出了名为M1-Parallel的框架以优化性能。该框架通过并行运行多个多智能体团队,利用事件驱动的异步通信模型挖掘不同的解决方案路径,从而实现延迟降低或任务完成率提升…

2026/10/17 13:32:36 阅读更多 →
如何用Mini-InternVL2-1B-DA-BDD看图说话?单图、多轮、多图对话实战指南

如何用Mini-InternVL2-1B-DA-BDD看图说话?单图、多轮、多图对话实战指南

【免费下载链接】Mini-InternVL2-1B-DA-BDD 项目地址: https://ai.gitcode.com/OpenGVLab/Mini-InternVL2-1B-DA-BDD 点击查看 免费下载 Mini-InternVL2-1B-DA-BDD 是一个开箱即用的「看图说话」多模态大模型:基于 Mini-InternVL 的 1B 小体量底座&…

2026/10/17 13:32:36 阅读更多 →
进程劫持注入:原理、行为特征与防御检测思路

进程劫持注入:原理、行为特征与防御检测思路

1. 进程劫持注入:为什么防御研究者也要把它嚼透做安全分析和应急响应这几年,我越来越觉得"进程劫持注入"是绕不开的一堂基础课。不管是恶意软件分析、终端安全检测,还是攻防演练后的复盘讨论,它都是高频出现的技术底座。…

2026/10/17 13:32:36 阅读更多 →
摩斯密码原理与手动编解码实操:从点划间隔到应急通信

摩斯密码原理与手动编解码实操:从点划间隔到应急通信

这个系列我打算认真写一写。每次只拆一种密码或者编码方式,从原理到手动实操,再到训练技巧,尽量讲透。今天这一篇是系列的第一篇,选择了最经典也最容易被低估的摩斯密码。很多人以为摩斯密码只是“点划组合”,背张表就…

2026/10/17 13:32:36 阅读更多 →
小程序1:N人脸识别全链路实战:从Canvas压缩到阿里云比对

小程序1:N人脸识别全链路实战:从Canvas压缩到阿里云比对

1. 这不是“调个API”那么简单:为什么1:N人脸识别在小程序里特别容易翻车你是不是也遇到过这样的场景:项目需求文档上轻飘飘写着“接入阿里云人脸识别,支持小程序端多图上传比对”,开发同学拍着胸脯说“SDK都有,半小时…

2026/10/17 13:32:36 阅读更多 →
lol-skins 中 Battle Bat Vayne 炫彩(Chroma)资源清单与包结构解析

lol-skins 中 Battle Bat Vayne 炫彩(Chroma)资源清单与包结构解析

【免费下载链接】lol-skins Comprehensive collection of League of Legends skins available for custom use. 项目地址: https://gitcode.com/gh_mirrors/lo/lol-skins 点击查看 免费下载 本文基于开源仓库 lol-skins 中的 Battle Bat Vayne 炫彩清单文档&#x…

2026/10/17 13:31:35 阅读更多 →

日新闻

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

DeepSeek选型与部署:V3/R1、Ollama、API全攻略

简介:《DeepSeek使用方法.pdf》是一份面向DeepSeek入门及进阶用户的完整使用指南,重点围绕V3与R1两款模型的能力差异与适用场景展开,帮助读者根据任务类型与成本选择合适的模型。资源共1个PDF文件,压缩包大小约311KB,篇…

2026/10/17 0:00:25 阅读更多 →
200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

200+Deepseek润色指令拆解:从底层原理到场景落地的完整指南

简介:这是一份聚焦DeepSeek提示词优化的《200Deepseek润色指令》PDF文档,共收录两百余条可直接套用的润色指令,涵盖语法修正、风格统一、逻辑梳理、表达精炼等维度,并针对商务写作、学术论文、广告文案等场景给出差异化建议。文档…

2026/10/17 0:00:25 阅读更多 →
OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

OpenCV轮廓法物体计数系统:轻量、可控、可落地的工业级实现

简介:本资源是一份基于OpenCV的本科课程设计完整报告,面向计算机视觉初学者、图像处理学习者及高校通信/信息类专业学生,解决物体智能计数与检测结果结构化记录的实际问题。项目覆盖图像预处理、轮廓检测、边界框绘制、轨迹栏交互式参数调节、…

2026/10/17 0:00:25 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/16 21:35:51 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/17 1:44:59 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/16 15:04:24 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 3:49:43 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →