火焰识别不一定要CNN:BP神经网络从特征提取到火灾报警落地
简介基于BP神经网络的火焰识别项目面向机器学习初学者与图像识别研究者提供一套完整可运行的MATLAB实现方案用于火焰与火灾图像的自动分类。压缩包内共有八百四十五个文件包括八百一十三张JPG样本图像、十七个MATLAB脚本、十张PNG图片、四个数据文件及一段演示视频整体大小约四百六十七兆字节。目前已有两百零九位学习者下载使用。方案涵盖数据读取、特征提取、网络训练、降维处理与GUI交互识别等关键环节可帮助理解反向传播算法在图像分类中的落地过程。脚本模块包括颜色直方图计算、快速PCA降维、BP网络构建与训练等数据集与代码配套便于直接复现实验适合作为课程设计、毕业设计或火灾预警系统开发的参考资料。1. 火焰识别不是图像题是危机响应题为什么第一版选择BP神经网络做火灾报警系统的第一版模型时别急着上深度卷积网络。多数项目的现状是摄像头装在配电房、仓库、楼道算力板上只有廉价CPU手里的火焰图片可能也就几百张。基于BP神经网络的火焰识别恰恰在这种环境下最稳——它把火焰的颜色、面积、闪烁频率这些可解释特征映射成火灾概率训练快、推理更快调参不依赖显卡。这套方案的另一个好处是容易向客户解释。火灾识别要争分夺秒也要给误报留出事后追溯的通道。BP神经网络输出的每个特征权重能直接指向“为什么报警”相比CNN黑匣子更适合应急系统的验收。适合三类人做智慧园区和森林防火的算法工程师写边缘设备推理程序的嵌入式开发者以及需要快速验证“视频烟雾报警”是否可行的集成商。下面我按自己落地这套方案的路子从特征设计讲到部署踩坑过程我尽量写成能直接照做的步骤。2. 火焰识别建模BP神经网络如何从像素到火灾概率2.1 火焰识别的输入设计从传感器信号到特征向量BP神经网络不是图片分类器而是特征分类器。输入层不能直接接收1920x1080像素那会把输入维度推到两百万参数远大于样本模型必然过拟合。常见做法是先做火焰区域分割再把候选区域的统计特性压成8到15维特征向量。这套流程和纯图像分类的区别在于你完全控制网络能看到什么。我一般在特征向量里放这几个量火焰像素占比、最大连通域面积、外接矩形宽高比、周长和圆形度、平均亮度、面积变化率、质心漂移量。前五个描述空间特性后两个描述时序特性。没有时序特性的火焰识别本质上只是在识别“红黄色的物体”在现场会栽跟头。为什么不用LBP、HOG这类纹理特征火焰没有固定纹理边缘高频成分也不稳定LBP在低分辨率摄像头和夜间画面上几乎失效。相比之下颜色分布和区域形态更抗尺度变化。注意颜色特征不能在RGB上直接取阈值要转到HSV把亮度与色度解耦否则白天窗户反光全被当成火焰。HSV阈值的具体数值我在第3章里会给出可复现的一组。这里还有一个容易被忽略的工程点摄像头视角不同火焰形态变化很大。固定机位俯拍时火焰往往是三角形侧装时火焰细长。因此在特征设计阶段要同时保留宽高比和面积比例而不能只依赖一个形状特征。BP网络虽然能做非线性组合但前提是你把有用的分量喂进去了。2.2 BP神经网络结构图里那几层隐含层节点、学习率与激活函数网上能搜到很多BP神经网络结构图但结构一样不代表能出同样效果。对火焰识别这种二分类任务输入层节点数等于特征维度输出层用1个节点做Sigmoid二分类输出值就是火灾概率。隐含层才是调参重点。我常用两层隐含层例如(16,8)一层隐含层对非线性的表达能力不够节点数超过32后提升又非常有限。很多人把训练不收敛归到网络结构其实学习率往往是先错的那个。我一般从0.01开始观察训练损失是否在50轮后持续下降不降或震荡就调到0.001。激活函数上隐含层用tanh比Sigmoid收敛稳ReLU在BP梯度回传里容易让节点“死亡”尤其特征没有归一化时。输出层必须用Sigmoid这样输出是0到1的概率后处理阈值才好设定。正则化系数alpha不能省。火焰识别样本往往只有几百上千张alpha1e-4能让大部分权重落在小值附近不会出现单个特征牵着整个预测走。再加early stopping让训练在验证集不再变好时停下来这是小数据集上最稳的防过拟合手段。参数我的常用取值说明输入层节点特征维度8到15不需要把整图展开隐含层(16, 8)两层比一层稳节点太多过拟合激活函数tanh Sigmoid隐含层ReLU容易死节点学习率0.01到0.001损失震荡就降一档alpha正则1e-4到1e-3控制权值大小配合小样本早停validation_fraction0.1, n_iter_no_change20防止训练后期震荡2.3 为什么不用CNNBP与CNN的边界条件不是越新的网络越好。CNN能把原始图像端到端学到火焰特征但它需要大量正样本。常见火灾图像数据集里火焰图片往往不足五千张不够CNN做出稳定泛化。另一个差距在部署BP只需几次矩阵乘法模型文件不到100KBCNN即使剪枝也通常在几十MB量级。对几十路视频同时检测的场景这个差距直接决定嵌入式盒子能不能跑得动。但BP也不适合所有地方。户外森林航拍、摄像机转动、目标尺度变化大的场景CNN更合适。我自己的判断标准是固定机位、算力受限、需要逐条解释报警理由时用BP样本量过万、背景杂乱、视角多变时再换CNN。两者也并非互斥可以用BP做火焰概率粗筛用CNN做火焰目标定位在不同环节发挥各自优势。对比维度BP神经网络CNN样本量要求几百到几千通常上万部署算力普通CPU即可最好有GPU或NPU可解释性特征权重可查难以逐条解释适用场景固定机位、特征可控目标小、背景复杂、视角变化3. 构建火焰识别数据集与特征提取从图像中把火焰变成数字3.1 火焰的三个稳定特征颜色、纹理、闪烁火焰识别里没有万能特征但有三类特征在多数室内外场景里是稳定的颜色、形态、动态。颜色上火焰可见光部分集中在红色到橙色区间白炽内芯亮度很高。HSV空间中H在0到30以及150到179两个区间对应红色S至少取50V至少取80。深红色低亮度区域通常是余烬而不是明火如果把它当成火焰后处理会出现大量堆积性误报。形态上火焰边缘不规则圆形度低而烟雾边界平滑且随扩散变化。火焰区域占画面比例和外接矩形宽高比能区分小光源和正在蔓延的火焰。纹理对BP没有直接输入但可以用灰度梯度方差代替火焰边缘的像素梯度变化比均匀的红色车身大得多。动态特征最关键。火焰闪烁频率大约在8到12Hz但30fps摄像头下直接测频容易欠采样我一般统计相邻5帧的面积变化率和质心漂移。这两项能杀掉大部分静态红色物体和匀速运动的车灯。记住一个原则BP网络本身没有记忆所以要在特征向量里把动态信息编码进去而不是指望网络自己学出时序关系。3.2 Python提取特征向量的最小实现颜色比例、面积、质心漂移先把视频帧转成HSV用阈值粗分割出火焰候选区域再取最大连通域统计特征。下面这段代码是一帧的完整特征提取便于后面直接拼训练集。import cv2 import numpy as np from scipy.spatial import distance def extract_frame_features(bgr, prev_centroidNone): # 转到HSV分离亮度与色度 hsv cv2.cvtColor(bgr, cv2.COLOR_BGR2HSV) # 火焰红色的两个区间0~30 和 150~179 lower_red1 np.array([0, 50, 80]) upper_red1 np.array([30, 255, 255]) lower_red2 np.array([150, 50, 80]) upper_red2 np.array([179, 255, 255]) mask cv2.inRange(hsv, lower_red1, upper_red1) mask | cv2.inRange(hsv, lower_red2, upper_red2) # 开运算去噪避免单个亮点影响后续统计 mask cv2.morphologyEx(mask, cv2.MORPH_OPEN, np.ones((3, 3), np.uint8)) contours, _ cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) if not contours: return np.zeros(8), None, 0.0 # 取最大连通域把零散的红点干扰排除 c max(contours, keycv2.contourArea) area cv2.contourArea(c) x, y, w, h cv2.boundingRect(c) perimeter cv2.arcLength(c, True) # 圆形度越接近1越像圆火焰边缘锯齿通常小于0.6 circularity 4 * np.pi * area / (perimeter * perimeter 1e-6) # 外接矩形填充率火焰远低于矩形车灯 extent area / (w * h 1e-6) avg_v float(np.mean(hsv[y:y h, x:x w, 2])) # 用质心漂移量化火焰抖动prev_centroid 来自上一帧 M cv2.moments(c) if M[m00] 0: centroid (M[m10] / M[m00], M[m01] / M[m00]) else: centroid (0.0, 0.0) drift distance.euclidean(centroid, prev_centroid) if prev_centroid else 0.0 # 火焰面积占全帧比例相当于火势大小的粗指标 frame_area float(bgr.shape[0] * bgr.shape[1]) fire_ratio area / frame_area feature np.array([ area, w / max(h, 1e-6), perimeter, circularity, extent, avg_v, fire_ratio, drift ]) return feature, centroid, fire_ratio这段代码里circularity用来排除圆形反光extent用来区分火焰和规则矩形光源drift是把闪烁落进特征的关键。三个阈值都可以按现场调整光线充足的环境可以把S下限从50提到70夜间红外摄像头则要把V下限降低到40。注意prev_centroid要跨帧传下去否则drift永远是0动态特征等于白设。拿到特征后把每帧的feature和标签拼成(N, 8)矩阵即可。我习惯在采集阶段直接用CSV保存列名固定为area, aspect, perimeter, circularity, extent, avg_v, fire_ratio, drift, label方便后面反复训练和排查哪些特征在拖后腿。3.3 数据集构建与样本增强几百张图怎么凑够训练集数据集的取舍比模型结构更影响现场效果。正样本可以来自开源火焰视频和实拍模拟火焰负样本则要多取夕阳、红色车灯、电焊火花、熔炉、视频画面里红色像素较多的场景。负样本里如果缺少“红色但非火”的物体BP就会把颜色当成唯一判据。目录结构建议如下训练和验证必须分成不同目录而且同一段视频抽出的帧不能既放进训练也放进验证。否则相邻帧几乎一样验证集失去意义。目录内容建议帧数train/fire火焰正样本帧300到800train/non_fire红色干扰负样本500到1200val/fire未参与训练的正样本80到200val/non_fire未参与训练的负样本150到400样本增强上我一般做HSV色偏、亮度抖动、水平翻转和5度以内随机旋转。垂直翻转不要做因为火焰上方的热空气和下方燃烧源的关系一旦颠倒模型会学到错误的空间语义。增强的目的是让模型对摄像头亮度和白平衡变化不敏感而不是把图片变得不像火。每轮增强后随机抽取100帧抽查防止过度增强把火焰样本变成红色噪点。4. 用Python训练BP神经网络火焰分类器从归一化到交叉验证4.1 特征归一化与数据集划分把不同量纲拉到同一个数值尺度特征向量里面积动辄几千像素圆形度只有0到1量纲差距可能超过三个数量级。BP训练依靠梯度下降如果输入特征量纲不一致面积项会主导权值更新圆形度、宽高比这些同样重要的特征等于被压住了。所以要先做标准化把每个特征变成均值0、方差1。归一化的坑在于必须先用训练集拟合scaler再用同一个scaler转换验证集。如果先对整个数据集计算均值和方差验证集的信息就泄漏进了训练过程结果会好看但现场会翻车。我习惯在划分后用StandardScaler的fit_transform和transform分别处理训练集和验证集。另外火焰视频按帧抽取时同一段起火过程的相邻帧相关性极高。如果用随机划分训练集里某一秒的帧验证集里很可能也有模型实际上是在“背题”。正确做法是把不同视频文件先切成时间片再按时间片划分数据集保证同一段起火过程只出现在一个集合里。4.2 搭建BP神经网络训练脚本结构、早停与损失曲线使用sklearn的MLPClassifier可以快速验证特征好不好。下面是一个最小可训练版本重点在划分顺序、归一化和早停参数。from sklearn.neural_network import MLPClassifier from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler import numpy as np # 假设X为(N,8)特征矩阵y为(N,)标签1表示火灾 X, y load_feature_csv(features.csv) # 先划分再归一化验证集信息不能进入scaler X_train, X_val, y_train, y_val train_test_split( X, y, test_size0.2, stratifyy, random_state42 ) scaler StandardScaler() X_train_s scaler.fit_transform(X_train) X_val_s scaler.transform(X_val) bp MLPClassifier( hidden_layer_sizes(16, 8), # BP神经网络结构图上常见的两层隐含层 activationtanh, # 比ReLU稳比Sigmoid收敛快 solveradam, alpha1e-4, learning_rate_init0.01, max_iter600, random_state42, early_stoppingTrue, n_iter_no_change20, validation_fraction0.1 ) bp.fit(X_train_s, y_train) train_acc bp.score(X_train_s, y_train) val_acc bp.score(X_val_s, y_val) print(ftrain_acc{train_acc:.4f} val_acc{val_acc:.4f})hidden_layer_sizes(16,8)是我在小样本火焰识别里的默认起点。第一个16用来捕捉颜色和形状的非线性组合第二个8负责把中间表示压成火灾概率。alpha1e-4是正则项太小会过拟合太大会把整个模型推向欠拟合。validation_fraction0.1表示从训练集里再切10%做早停判断验证集和它分离避免早停过程偷看最终评估数据。训练结束后我还会把loss_curve画出来看趋势。如果训练损失稳定下降但验证损失在某个轮次后反弹说明早停起作用了如果一开始就震荡先调低学习率到0.001不要急着加层数。4.3 评估指标准确率、召回率、误报率怎么取舍火灾识别里准确率是很容易误导人的指标。假设负样本占90%模型全部预测为“无火”也能有90%准确率但这个模型毫无用处。火焰识别最不能接受的是漏报所以召回率必须排在第一位。from sklearn.metrics import classification_report, confusion_matrix proba bp.predict_proba(X_val_s)[:, 1] threshold 0.6 y_pred (proba threshold).astype(int) print(confusion_matrix(y_val, y_pred)) print(classification_report(y_val, y_pred, target_names[non_fire, fire]))这里threshold不是固定值。我会在验证集上把0.3到0.9之间每隔0.05扫一遍记录每个阈值下的召回率和误报率。对应急场景我通常要求召回率不低于95%在这个前提下再尽量压低误报。如果只有80%召回率就敢上线等于把火灾报警系统做成了摆设。指标含义在火灾识别中的优先级召回率真实火灾中被报出多少最高漏一次就失去意义误报率无火时误报多少次要控制否则没人信报警F1值两者的调和平均做参数对比时参考5. 火焰识别系统落地的5个坑现象、原因与解决5.1 夕阳和红色墙体被当成火焰现象傍晚时分整面红砖墙或落日余晖频繁触发报警报警时段集中在日落前后。原因负样本里红色物体太少模型没学过“颜色很像火但不是火”的类别。BP只能在你给的特征空间里做判断当红色占据了所有主要特征它自然会把夕阳当火焰。解决负样本里专门扩一类“红色干扰物”包括红车身、红砖、红灯、落日。特征中加入更多形态约束比如圆形度大于0.7就直接降低概率。同时检查HSV阈值是否过宽S低于50的浅红色区域应该被滤掉。5.2 连续帧闪烁特征没进特征向量导致大量误报现象画面没出现火但有人穿红衣服来回走动或红色车辆经过时报警报警呈短促连续状态。原因单帧特征里没有时间维度。一件红色衣服静止时和火焰的颜色分布几乎一样面积、宽高比、亮度都可能落在同一区间。BP没有记忆单帧输入无法区分闪烁和匀速运动。解决把相邻5帧的质心漂移、面积变化率拼进特征向量让输入从8维变成16维。如果不想改动网络就在后处理里加一条规则连续5帧中至少4帧概率超过阈值才报警。5.3 按帧随机划分数据集导致验证集形同虚设现象训练和验证准确率都在98%以上一到现场换摄像头立刻降到80%以下误报漏报一起出现。原因同一个起火视频的相邻帧高度相似随机按帧划分时验证集里混进了大量训练集帧的“复印件”。模型等于提前看过答案验证结果自然失真。解决按视频文件或时间段划分数据集保证同一个视频的帧只进训练集或只进验证集。更要紧的是把不同摄像头的光照差异也分开最好用至少两个场景的数据做验证。5.4 训练环境与部署环境不一致精度掉得莫名其妙现象PC上验证96%换成海思或瑞芯微盒子后掉到83%而且掉的多是漏报。原因BGR与RGB通道顺序不一致、resize插值方式不同、量化从float32变成int8这些都会让输入分布漂移。BP对数值变化很敏感哪怕整体亮度缩放不同也能改变最终输出。解决部署前先固定预处理协议。训练侧统一读BGR还是RGB推理侧必须一致。量化校准图不能用纯黑和纯白应该用现场真实画面的抽样帧让每个量化区间都有实际像素填充。5.5 样本不平衡让模型变成“永不报警”的墙现象模型整体准确率很高但测试集的火警样本大量漏报查看混淆矩阵才发现FN远大于FP。原因负样本远多于正样本默认阈值偏向多数类。BP本质上是在拟合最小误差火灾样本少稍微漏几个对损失影响不大最终模型就学会了“全部判无火”。解决训练时在MLPClassifier里设class_weightbalanced或对火焰样本做过采样。验证时不要只看score要单独打印火灾类别的召回率。只要召回率低于95%就必须调整阈值或增强正样本。6. 让模型更贴近真实火情滑动窗口投票与阈值后处理6.1 多帧滑动窗口把单帧概率变成时间序列的报警决策现场误报往往是一帧或两帧的突发信号真实起火会持续闪烁多帧。我习惯在网络后面加一个滑动窗口过滤器让报警决策基于一段时间的投票结果而不是某一帧的瞬时概率。from collections import deque class FireAlarmFilter: def __init__(self, window_size15, fire_threshold0.6, hit_ratio0.5): self.window deque(maxlenwindow_size) self.fire_threshold fire_threshold self.hit_ratio hit_ratio def step(self, prob): # 单帧概率超过阈值记为一次命中 self.window.append(1 if prob self.fire_threshold else 0) hit_count sum(self.window) / len(self.window) return hit_count self.hit_ratiowindow_size15在30fps下大约是0.5秒的观察窗口hit_ratio0.5表示15帧里至少8帧命中才报警。这个配置对快速起火足够灵敏又能过滤掉单帧红色闪烁。如果现场误报仍然多我会把window_size提高到30观察窗口变成1秒用响应速度换稳定性。注意这个过滤器只能抑制噪声救不回特征设计上的缺陷。6.2 验收脚本与消融实验改一次特征记录一次结果我做火焰识别项目到最后都会收在一个固定验收脚本上准备两段视频一段是真实点火过程一段是红色干扰场景统计报警延迟和误报次数。验收项参考标准测试方式响应时间从火焰出现到报警小于3秒播放点火视频记录时间戳误报次数无火片段每24小时不超过2次连续播放干扰场景召回率不低于95%对验证集所有火焰帧计算我习惯每改一次特征就重新跑一遍这组验收并把误报截图存档。这个习惯帮我少走了很多回头路因为在火焰识别里让你“感觉差不多”的模型往往只差一个特征就会在现场翻车。希望这些记录方法能帮你少踩几个我踩过的坑。本文还有配套的精品资源点击获取

相关新闻

LSTM城市人口预测MATLAB实战:数据处理、训练与调参避坑

LSTM城市人口预测MATLAB实战:数据处理、训练与调参避坑

简介:面向城市人口预测与时间序列建模需求,这份基于MATLAB长短期神经网络(LSTM)的完整代码包,适合本科及以上阶段的研究者、竞赛选手及工程应用人员。资源内含人口数据Excel表格、四个MATLAB脚本及三十余张运行截图&am…

2026/10/10 23:44:17 阅读更多 →
睡岗与玩手机检测数据集:VOC标注转YOLO训练实战

睡岗与玩手机检测数据集:VOC标注转YOLO训练实战

简介:这份睡岗与玩手机行为检测数据集,面向安防监控、工位值守、智慧园区等场景的算法开发与研究人员,可用于训练人员违规行为识别模型,解决长时间值班场景下的脱岗、注意力分散等安全隐患。该数据集面向4653张原始图像构建&#…

2026/10/10 23:44:16 阅读更多 →
基于YOLOv5与PyQt的猪只行为检测系统搭建实战

基于YOLOv5与PyQt的猪只行为检测系统搭建实战

简介:面向养殖场智能化管理场景,这套资源围绕YOLOv5生猪行为状态检测提供成套方案,内含训练权重、1000余条标注数据以及PyQt界面脚本。数据集已按train/val/test划分好,附带data.yaml和txt格式标签,覆盖进食、站立、躺…

2026/10/10 23:43:16 阅读更多 →

最新新闻

太阳能电池板YOLO高变焦检测:24577张数据集训练实战

太阳能电池板YOLO高变焦检测:24577张数据集训练实战

简介:面向太阳能光伏板检测与YOLO模型训练的实际需求,这份压缩包针对高变焦太阳能电池板图像场景,提供了带有标签的光伏板检测标注数据集,能帮助开发者和研究人员快速获得规范标注样本,降低从图像采集、清洗到标注的重…

2026/10/11 0:31:53 阅读更多 →
GANMaster人脸矫正实战:从模糊脸到公安标准证件照

GANMaster人脸矫正实战:从模糊脸到公安标准证件照

简介:本资源是一份面向深度学习初学者与计算机视觉实践者的GAN人脸生成与矫正实战教程,聚焦生成对抗网络原理落地与Python代码实现。资源包含4个核心文件(2个Python脚本、1份Markdown说明文档、1份LICENSE),总大小仅9K…

2026/10/11 0:31:53 阅读更多 →
FCOM参考PDF解析:从性能表到插值函数的工程化指南

FCOM参考PDF解析:从性能表到插值函数的工程化指南

简介:这是一份面向飞行机组、飞行学员及航空爱好者的FCOM(飞行操作手册)参考指南,聚焦B737机型日常运行中的关键操作程序与处置规范。内容涉及驾驶舱区域分工、起降标准动作、着陆后刹车冷却表查算、放行与天气及杰普逊资料认读、…

2026/10/11 0:31:52 阅读更多 →
Spring Boot实战:智慧养老院管理系统的架构设计与权限控制

Spring Boot实战:智慧养老院管理系统的架构设计与权限控制

从需求到落地:我如何用Spring Boot搭起一套智慧养老院管理系统去年年初接手了一个养老院管理系统的开发任务,机构那边的情况比较典型:三百多张床位,护理人员几十号人,老人的健康档案还停留在纸质登记,家属想…

2026/10/11 0:31:52 阅读更多 →
端侧AI导览实战:鸿蒙+蓝耘MaaS的离线多模态落地

端侧AI导览实战:鸿蒙+蓝耘MaaS的离线多模态落地

1. 项目概述:这不是一个App,而是一次端侧AI能力的现场压力测试“鸿蒙AI:国庆我在故宫用了把‘AI 导游’”——这个标题里藏着三个被大众忽略但极其关键的信号:时间(国庆)、空间(故宫&#xff09…

2026/10/11 0:31:52 阅读更多 →
PLC动态加密功能块实战:S7-1200/1500程序防复制与授权管理

PLC动态加密功能块实战:S7-1200/1500程序防复制与授权管理

干自动化这些年,最扎心的场景不是现场调试到凌晨,而是设备刚交出去半年,就发现客户厂里多了一台和你做的设备一模一样的机器,运行逻辑连定时器参数都没改。S7-1200/1500 在国内项目里太常见,上载、反编译、复制项目的门…

2026/10/11 0:30:51 阅读更多 →

日新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

周新闻

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

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

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

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

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

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

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

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

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

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 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/10 5:23:50 阅读更多 →
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/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练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/10 10:38:42 阅读更多 →