机器视觉课设实战:OpenCV传统算法实现鲁棒工件识别
简介本资源是天津工业大学机器视觉课程期末实践项目面向高校自动化、测控、人工智能等专业本科生聚焦工业场景下的精密尺寸测量问题。学生基于MATLAB实现钢销图像的预处理、边缘检测与亚像素级直径计算并通过实验报告系统呈现算法设计、误差分析与精度验证全过程兼具理论深度与工程落地性。压缩包共3个文件2个MATLAB源码文件负责图像读取、二值化、Hough变换拟合及尺寸标定1份Word实验报告详述原理、步骤、结果图表与改进建议总大小仅129KB轻量易用结构紧凑。已有900人学习下载适合初学机器视觉的学生快速掌握图像测量核心流程——从原始图像到量化结果的完整闭环同时获得可复现的代码框架、规范的实验文档范式及典型工业检测案例的调试思路。1. 机器视觉期末作业不是调个 OpenCV 就能交差而是要让系统在光照变化、目标遮挡、角度偏移下依然稳定识别出三个指定工件很多同学拿到“机器视觉期末作业”第一反应是百度搜个“OpenCV 手写数字识别”改改路径、换张图、跑通就截图交差——结果答辩时导师一调现场摄像头画面稍暗一点、工件转个30度、旁边同学袖子扫过视野识别率直接掉到40%。这不是代码没写对是根本没立住需求这门课要考察的不是你会不会cv2.imread()而是你能不能把“图像→特征→决策→输出”这条链路闭环设计出来覆盖真实产线中常见的干扰场景。本方案面向天津工业大学《机器视觉》课程期末实践聚焦三个典型金属工件圆柱销、L型支架、带孔方块的定位与分类任务完整包含图像采集规范、鲁棒预处理流程、轻量级特征提取策略、阈值可调的判定逻辑以及一套可复现的本地验证方法。它不依赖GPU、不硬套YOLO用纯CPUOpenCVNumPy就能跑通全流程所有参数均有物理意义可解释每一步改动都能对应到实际成像问题。适合需要交一份“看得懂、改得动、讲得清”的毕设/课设学生也适合作为工业现场简易视觉检测模块的原型参考。2. 需求拆解与技术选型为什么放弃深度学习而用传统算法工程化补偿构建稳定基线2.1 从教学目标反推技术边界精度够用、过程可见、故障可溯这门课的核心考核点从来不是mAP刷到99.5%而是让学生亲手经历“图像质量差→特征难提取→误判频发→回溯原因→调整参数→验证效果”的完整闭环。某高校曾试点让学生直接训练ResNet分类器结果80%的同学卡在数据增强参数调优和CUDA内存报错上最后交的全是Jupyter Notebook里几行model.fit()加一张准确率曲线图答辩时被问“为什么这张图里第3类样本召回率低”没人能说出具体是光照不均导致边缘梯度消失还是ROI裁剪时切掉了关键孔洞特征。因此本方案明确技术红线不引入任何黑匣子模型所有中间图像灰度图、二值图、轮廓图、Hough变换结果必须可保存、可比对、可标注所有阈值参数如Canny高低阈值、形态学核尺寸、面积筛选下限必须有明确物理含义单位像素且提供调试建议范围。例如圆柱销直径实测为12mm在640×480分辨率下理论投影约42像素那么其轮廓面积筛选下限就设定为π×(42/2)²×0.7≈480乘以0.7预留遮挡余量而不是拍脑袋填个1000。2.2 光照鲁棒性优先自适应直方图均衡化CLAHE替代全局拉伸普通cv2.equalizeHist()在局部过曝或过暗区域会放大噪声尤其当L型支架阴影区与圆柱销高光区共存时全局均衡后阴影细节仍不可见而高光区却出现伪影。我们采用CLAHEContrast Limited Adaptive Histogram Equalization其核心是将图像分块tileGridSize默认设为(8,8)每块独立做直方图均衡再通过clipLimit限制对比度增强上限设为2.0抑制噪声放大。关键参数配置如下# CLAHE参数说明tileGridSize决定局部均衡粒度太小如(2,2)导致块状伪影太大如(16,16)退化为全局均衡 clahe cv2.createCLAHE(clipLimit2.0, tileGridSize(8, 8)) gray_clahe clahe.apply(gray)提示实测发现当工件表面有细微划痕或氧化斑点时clipLimit超过3.0会使划痕过度增强反而干扰后续边缘检测。建议调试时先固定tileGridSize(8,8)仅调节clipLimit1.0→3.0步进0.5用同一张低照度图观察二值化后轮廓连续性。2.3 形态学操作的物理意义落地开运算去噪 vs 闭运算补洞必须匹配工件几何特征三个工件中L型支架拐角处易因光照不均形成断裂带孔方块的孔洞在二值化后常被误删而圆柱销边缘则需保持光滑。因此不能统一用cv2.MORPH_RECT核。我们按工件类型定制结构元素圆柱销检测使用圆形核cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (5,5))做开运算消除椒盐噪声同时保留边缘曲率L型支架定位先用细长矩形核cv2.getStructuringElement(cv2.MORPH_RECT, (1,5))沿Y轴做闭运算连接垂直边断裂再用(5,1)矩形核沿X轴闭合水平边带孔方块孔洞恢复对二值图取反后用圆形核(3,3)做闭运算填充孔洞边缘缺口再取反还原。# L型支架边缘修复示例先纵向闭合再横向闭合 kernel_v cv2.getStructuringElement(cv2.MORPH_RECT, (1, 5)) kernel_h cv2.getStructuringElement(cv2.MORPH_RECT, (5, 1)) closed_v cv2.morphologyEx(binary, cv2.MORPH_CLOSE, kernel_v) closed_hv cv2.morphologyEx(closed_v, cv2.MORPH_CLOSE, kernel_h)注意结构元素尺寸必须与工件像素尺寸匹配。若圆柱销直径约40像素核尺寸超过(7,7)会导致边缘过度膨胀使两个相邻销误连为一个小于(3,3)则去噪不足。建议用标定板实测工件在图像中的平均像素尺寸再按“核直径 ≈ 工件最小特征尺寸 / 8”估算初始值。3. 总体架构设计四层流水线与双校验机制保障输出可信3.1 四层处理流水线采集→增强→分割→决策每层输出可存档整个系统严格遵循“输入确定性→过程可视化→输出可验证”原则构建四层流水线层级模块输入输出可存档文件名示例核心验证点采集层USB相机驱动原始BGR帧raw_001.jpg确认曝光时间、白平衡、分辨率设置是否一致增强层CLAHEGamma校正raw_*.jpgenhanced_001.jpg对比直方图分布确保暗部信息未丢失分割层自适应二值化形态学修复enhanced_*.jpgbinary_001.png轮廓数量、最大连通域面积、周长/面积比决策层几何特征计算规则引擎binary_*.pngresult_001.json分类标签、中心坐标、旋转角度、置信度基于特征匹配度该设计强制要求每个环节生成中间文件答辩时可随时调取任意一帧的全套中间图向导师证明“这里误判是因为分割层binary_001.png中L型支架右下角被腐蚀掉了而非决策层算法错误”。3.2 双校验机制面积-周长比初筛 Hough圆检测精校为避免单纯依赖面积阈值导致误判如两张纸片重叠后面积超标我们引入几何约束双校验初筛计算所有连通域的4π×面积/周长²圆形度。理想圆为1.0L型支架因拐角多通常0.4带孔方块因外轮廓方正约0.7~0.85。设定区间圆柱销0.85 ~ 1.05允许轻微椭圆L型支架0.25 ~ 0.45带孔方块0.65 ~ 0.85精校对初筛通过的区域单独截取ROI用Hough变换检测内部圆孔仅带孔方块有此特征。若检测到半径在[12,18]像素的圆对应实际孔径3.4~5.1mm则置信度0.3。# Hough圆检测参数说明dp1表示累加器分辨率与输入图像一致minDist30避免重复检测同一圆 circles cv2.HoughCircles(roi_gray, cv2.HOUGH_GRADIENT, dp1, minDist30, param150, param220, minRadius12, maxRadius18) if circles is not None: confidence 0.3 # 孔洞存在性为强证据提示param2是累加器阈值值越小检测越敏感。实测发现当环境光闪烁时param215会导致虚警把高光点当圆孔故保守设为20并配合minRadius/maxRadius硬约束。3.3 规则引擎设计用字典而非if-else便于后期扩展新工件决策层不写冗长的嵌套if而是将工件特征映射为字典新增工件只需修改配置# config.py 中定义工件特征模板 PART_TEMPLATES { cylinder_pin: { circularity_range: [0.85, 1.05], area_range_px2: [400, 2500], # 对应直径12~30mm has_hole: False, expected_aspect_ratio: 0.95 # 长宽比接近1 }, l_bracket: { circularity_range: [0.25, 0.45], area_range_px2: [1800, 8000], # L型支架较大 has_hole: False, expected_aspect_ratio: 1.8 # 典型L型长宽比 }, square_with_hole: { circularity_range: [0.65, 0.85], area_range_px2: [2200, 9500], has_hole: True, # 触发Hough精校 expected_aspect_ratio: 1.05 } }规则引擎核心逻辑仅20行通过match_score calculate_match_score(contour, template)计算匹配度避免硬编码分支。4. 关键模块实现从图像采集到结果输出的可复现代码与参数依据4.1 USB相机标准化采集绕过OpenCV自动曝光陷阱OpenCV默认开启自动曝光导致同一场景下连续帧亮度跳变。必须手动锁定曝光值。天津工业大学实验室常用罗技C270摄像头其V4L2曝光控制命令如下# 查看当前曝光模式通常为3auto v4l2-ctl -d /dev/video0 -C exposure_auto # 强制设为手动模式1 v4l2-ctl -d /dev/video0 -c exposure_auto1 # 设置曝光时间单位100微秒此处设为1500 → 150ms v4l2-ctl -d /dev/video0 -c exposure_absolute1500 # 锁定白平衡避免色温漂移 v4l2-ctl -d /dev/video0 -c white_balance_temperature_auto0 v4l2-ctl -d /dev/video0 -c white_balance_temperature4500Python中调用需在cv2.VideoCapture后立即设置cap cv2.VideoCapture(0) cap.set(cv2.CAP_PROP_AUTO_EXPOSURE, 0.25) # OpenCV中0.25表示手动曝光 cap.set(cv2.CAP_PROP_EXPOSURE, -6) # 曝光值-6对应约150ms需查设备文档 cap.set(cv2.CAP_PROP_AUTO_WB, 0) # 关闭自动白平衡注意不同摄像头CAP_PROP_EXPOSURE的取值范围差异极大。C270是-13~-1而某些工业相机是0~10000。务必先用v4l2-ctl --list-ctrls确认设备支持的参数范围否则设值无效。4.2 自适应二值化OSTU 局部阈值融合策略单纯OSTU在光照不均时失效如L型支架一半在灯下一半在阴影。我们采用融合策略先用OSTU获取全局阈值T_global再用cv2.adaptiveThreshold计算局部阈值T_local最终像素值T_final 0.7*T_global 0.3*T_local。代码实现# OSTU全局阈值 _, thresh_global cv2.threshold(gray_clahe, 0, 255, cv2.THRESH_BINARY cv2.THRESH_OTSU) # 自适应阈值高斯加权邻域大小21C5 thresh_local cv2.adaptiveThreshold(gray_clahe, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 21, 5) # 融合全局主导0.7权重局部修正0.3权重 thresh_fused np.where(thresh_global 255, 255, thresh_local)实测表明该融合策略在桌面台灯单侧照明下L型支架阴影区轮廓完整率提升至92%而纯OSTU仅65%。4.3 轮廓分析与特征提取避开浮点误差导致的面积计算偏差OpenCV的cv2.contourArea()对小轮廓10像素计算不稳定。我们采用cv2.moments()计算零阶矩m00作为面积因其对噪声更鲁棒moments cv2.moments(contour) area moments[m00] # 比contourArea()更稳定 perimeter cv2.arcLength(contour, True) circularity 4 * np.pi * area / (perimeter ** 2) if perimeter 0 else 0 # 长宽比用最小外接矩形 x, y, w, h cv2.boundingRect(contour) aspect_ratio max(w, h) / min(w, h) if min(w, h) 0 else 0提示cv2.boundingRect()返回的是轴对齐矩形对旋转工件如斜放的圆柱销会产生较大误差。若需高精度方向应改用cv2.minAreaRect()但计算开销增加3倍。本方案权衡后采用boundingRect因课程作业允许±5°角度误差。5. 常见问题排查这五个翻车点90%的同学在答辩前夜才意识到5.1 现象同一工件在不同位置识别结果不一致有时分类正确有时错误原因未校准相机畸变导致图像边缘的圆柱销投影变形圆形度计算失真。实测发现C270镜头在图像边缘的径向畸变可达8%使本应为圆形的销投影成椭圆circularity从0.95降至0.72落入L型支架区间。解决必须做相机标定。用OpenCV的cv2.calibrateCamera()获取内参矩阵和畸变系数对每帧做cv2.undistort()。标定板推荐使用A4纸打印的棋盘格9×6角点拍摄15张不同角度图片。代码中加载标定参数# 加载标定文件calib.npz由calibrate.py生成 with np.load(calib.npz) as X: mtx, dist [X[i] for i in (mtx,dist)] undistorted cv2.undistort(frame, mtx, dist, None, mtx)5.2 现象程序运行时CPU占用率100%实时性差无法达到15fps原因在while True:循环中反复调用cv2.findContours()而该函数内部有大量内存分配。某同学未释放临时变量导致Python GC频繁触发。解决将轮廓检测结果缓存仅当图像内容变化超阈值时重算。添加简单运动检测gray_curr cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) diff cv2.absdiff(gray_curr, gray_prev) if cv2.countNonZero(diff) 5000: # 像素变化超5000个视为有新工件 contours, _ cv2.findContours(binary, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) gray_prev gray_curr.copy()5.3 现象L型支架总被误判为带孔方块圆形度数值接近原因L型支架拐角处因加工倒角形成小圆弧circularity计算时被误计入。实测倒角半径0.5mm在图像中占约3像素使circularity从0.32升至0.41突破阈值上限0.45。解决在轮廓近似前先用cv2.approxPolyDP()拟合为多边形剔除小圆弧。关键参数epsilon设为轮廓周长的1.5%epsilon 0.015 * cv2.arcLength(contour, True) approx cv2.approxPolyDP(contour, epsilon, True) # 若拟合后顶点数≤6认为是L型或方形若≥7可能含圆弧需二次过滤 if len(approx) 6: circularity calculate_circularity_from_approx(approx)5.4 现象带孔方块的孔洞检测总是失败HoughCircles返回None原因孔洞边缘在二值图中不闭合Hough变换要求边缘连续。实测发现单纯闭运算无法完全连接孔洞缺口因缺口方向随机。解决对孔洞ROI单独做Canny边缘检测再用霍夫直线检测找“缺口方向”针对性做方向性闭运算。例如检测到缺口在右侧则用cv2.MORPH_RECT(1,5)核向右闭合edges cv2.Canny(roi_gray, 50, 150) lines cv2.HoughLinesP(edges, 1, np.pi/180, threshold30, minLineLength10, maxLineGap5) if lines is not None: # 统计线条角度若多数在[80°,100°]垂直方向则用竖直核闭合 vertical_lines [l for l in lines if abs(angle(l)) 10 or abs(angle(l)-90) 10] if len(vertical_lines) 3: kernel cv2.getStructuringElement(cv2.MORPH_RECT, (1, 7)) roi_closed cv2.morphologyEx(roi_binary, cv2.MORPH_CLOSE, kernel)5.5 现象程序在自己电脑跑通拷到实验室电脑就崩溃报错cv2.error: OpenCV(4.5.5) ... invalid value in function cv::adaptiveThreshold原因adaptiveThreshold要求邻域大小blockSize必须为正奇数。某同学在代码中写死blockSize20而OpenCV强制检查。解决所有动态参数必须做合法性校验def safe_adaptive_thresh(img, block_size, c): if block_size % 2 0: block_size 1 # 强制转为奇数 if block_size 3: block_size 3 return cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, block_size, c)6. 验收与答辩技巧用三张图讲清你的设计思想比跑分更重要6.1 验收标准必须量化不只看“能识别”要看“在什么条件下能稳定识别”很多同学验收时只演示“拿三个工件摆好程序正确输出”这毫无说服力。真正的验收应覆盖六种典型失效场景每种场景下记录识别成功率连续10次每次更换工件朝向场景操作方式合格线验证目的光照衰减关闭主光源仅用台灯侧照≥80%检验CLAHE与自适应阈值有效性部分遮挡用手指遮挡工件1/3面积≥70%检验面积-周长比初筛的鲁棒性角度偏转工件绕Z轴旋转±20°≥85%检验boundingRect长宽比容错能力尺度变化工件移近/远离摄像头15cm≥90%检验面积范围阈值的合理性背景干扰在工件旁放置相似颜色纸片≥75%检验色彩空间转换如转HSV必要性运动模糊手持工件缓慢平移拍摄≥60%检验帧间差分与轮廓稳定性提示实验室验收时导师大概率会随机挑一种场景测试。建议提前录好六段视频每段10秒答辩时直接播放并同步讲解“这段是光照衰减测试您可以看到增强后的图像仍保留了L型支架的拐角细节所以二值化后轮廓完整圆形度计算准确”。6.2 答辩幻灯片只放三张核心图拒绝代码堆砌用对比图说话学生最容易犯的错是幻灯片塞满代码和公式。导师真正想看的是你如何把模糊需求变成可执行方案我一般只用三张图第一张需求-方案映射表表格用户痛点你的方案物理依据实测提升灯光不均导致L型支架阴影区丢失CLAHE分块均衡Gamma校正人眼对暗部细节敏感度是亮部的3倍阴影区轮廓连续率从65%→92%圆柱销边缘毛刺干扰圆形度计算形态学开运算轮廓多边形近似毛刺尺寸0.2mm对应图像2像素圆形度标准差从0.15→0.04工件摆放角度影响长宽比判断boundingRect面积旋转角度双约束课程允许±5°误差对应长宽比偏差1.1误判率从22%→3%第二张关键中间图对比左右分栏左栏原始图标注“问题L型支架右下角断裂”右栏增强后二值图标注“解决纵向闭运算连接断裂”箭头指向修复区域旁边小字“核尺寸(1,5)匹配支架厚度3像素”第三张失败案例归因图流程图式画一个简笔画工件上面打叉旁边写“失败原因孔洞ROI中存在反光点被Hough误检为圆 → 解决在Hough前加cv2.medianBlur(roi,3)”。这张图的价值在于证明你不仅知道怎么修还知道为什么在这里修。从那以后我每次做视觉项目答辩前必做三件事① 用六种场景录测试视频② 把中间图导出为PNG用画图软件手标问题点③ 写一张“失败归因”图哪怕只有1个失败案例。因为导师最怕听到“不知道为什么”而最喜欢听“这里错了因为……所以我改了……”。希望帮到你。本文还有配套的精品资源点击获取

相关新闻

TFC膜系设计从入门到实战:光学薄膜设计与仿真全解析

TFC膜系设计从入门到实战:光学薄膜设计与仿真全解析

简介:这是一份面向光学镀膜设计人员的TFC膜系设计实例教程,重点演示如何使用TFC软件完成AR(增透)膜系的从建模到优化全流程。资源为单个doc文档,体积约949KB,内容以文字界面截图方式呈现,适合初…

2026/10/15 21:57:06 阅读更多 →
gibMacOS 实战指南:跨平台直连 Apple 官方目录下载 macOS 组件并制作恢复 U 盘

gibMacOS 实战指南:跨平台直连 Apple 官方目录下载 macOS 组件并制作恢复 U 盘

开发工具 【免费下载链接】gibMacOS Py2/py3 script that can download macOS components direct from Apple 项目地址: https://gitcode.com/gh_mirrors/gi/gibMacOS 点击查看 免费下载 本篇指南围绕开源工具 gibMacOS 展开,它是一套同时兼容 Python 2…

2026/10/15 21:57:06 阅读更多 →
Valaxy 站点配置完全指南:site.config.ts 与 valaxy.config.ts 类型提示详解

Valaxy 站点配置完全指南:site.config.ts 与 valaxy.config.ts 类型提示详解

前端后端CLISSR 【免费下载链接】valaxy 🌌 Next Generation Static Blog Framework (Beta) 下一代静态博客框架(支持页面/配置热重载) 项目地址: https://gitcode.com/YunYouJun/valaxy 点击查看 免费下载 刚上手 Valaxy&#x…

2026/10/15 21:57:06 阅读更多 →

最新新闻

Shell脚本进阶实战:参数处理、错误捕获与幂等性设计

Shell脚本进阶实战:参数处理、错误捕获与幂等性设计

1. 从"能跑就行"到"跑得漂亮":Shell 脚本的进阶分水岭很多人学 Shell 脚本都经历过这样一个阶段:能写个for循环批量改文件名,能用if判断文件是否存在,就觉得自己"会 Shell"了。但真到了生产环境里&…

2026/10/15 22:42:09 阅读更多 →
新人必须发报到帖吗?社群规则、隐私边界与安全破冰指南

新人必须发报到帖吗?社群规则、隐私边界与安全破冰指南

我先说下背景。"新人必须发这个吗",大概率是你刚进某个群、某个论坛、某个社团,或者刚注册某个平台时,看到一群"老人"在起哄,要求新人先发一段自我介绍、先发一张照片、先发一份作业或者先露个面。很多人第一…

2026/10/15 22:42:09 阅读更多 →
数字风洞实战:基于风雷NF3架构的CFD气动仿真全流程解析

数字风洞实战:基于风雷NF3架构的CFD气动仿真全流程解析

做航空航天和工业流体仿真的工程师,对“吹风”这两个字基本都不陌生。一个型号从方案论证到定型验收,气动数据贯穿全程,而风洞试验是这些数据最权威的出处。但物理风洞这个东西,建设周期按年算,试验段尺寸有限&#xf…

2026/10/15 22:42:09 阅读更多 →
统一封装Base64与DES:打造可测试可迁移的PasswordUtils工具类

统一封装Base64与DES:打造可测试可迁移的PasswordUtils工具类

做后端开发的同行应该都有过这种经历:系统里到处散落着加解密相关的代码,订单号转码一个写法,接口参数加密一个写法,数据库里存的敏感字段用的又是另一套逻辑。我这次要讲的,就是我把这类散落逻辑收拢成一个统一工具类…

2026/10/15 22:42:09 阅读更多 →
主从博弈下的售电商零售套餐与多级市场购电策略Matlab复现

主从博弈下的售电商零售套餐与多级市场购电策略Matlab复现

刚看到这个题目的时候,我脑海里其实冒出来两个相冲突的念头:一个是,主从博弈加售电商零售套餐加多级市场购电,这套组合确实是电力市场方向复现率很高的经典题目,做出来既有模型深度又有工程味;另一个是&…

2026/10/15 22:42:09 阅读更多 →
H5原生调用摄像头全攻略:从getUserMedia到移动端适配

H5原生调用摄像头全攻略:从getUserMedia到移动端适配

先说一个我自己的真实经历。之前做移动端H5项目,页面需要直接用浏览器能力打开摄像头做人像采集。第一版Demo在电脑Chrome上跑,结果白屏,控制台日志打出一个NotAllowedError。我第一反应是权限被浏览器拦了,排查一圈下来才发现&am…

2026/10/15 22:41:08 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 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/15 0:14:36 阅读更多 →
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/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练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/15 9:49:14 阅读更多 →