基于OpenCV与CNN的手语识别系统完整开发指南
简介面向高校计算机相关专业毕业设计及课程设计这份手语识别系统项目以PythonOpenCV完成图像处理与关键点检测Flask作为后端服务MySQL存储用户及模型数据前端通过HTML、CSS与JavaScript构建交互界面。系统支持自定义字典用户上传手势视频即可训练神经网络模型配合降噪算法提升识别准确率并可在摄像头实时画面中将手势转换为文字输出。压缩包共85个文件包含11个Python脚本模型训练、手势关键点提取、预测与用户管理、16个HTML页面、4个JS交互文件及1个训练好的模型文件另有数十张界面与数据集图片整体大小30.17MB目录组织清晰。已有73人学习下载适合需要完整可运行系统参考的毕设作者可直接基于此二次开发或作为论文配套项目。1. 手语识别系统到底在做什么适合毕设课设的完整技术链路手语识别系统并不是一个新鲜方向但很多初学者拿到类似标题的项目后第一反应就是“用 OpenCV 做模板匹配”或者“随便训练一个 CNN”结果做出来的东西只能在纯色背景、固定角度下工作一换环境就废。这个标题的真正价值在于它把四个技术栈串成了一条完整的工程链路OpenCV 负责手势定位与图像预处理Python 承担模型推理与后端服务JavaScript 负责前端交互MySQL 存储词汇库与用户学习记录。也就是说它不是一个“模型 demo”而是一个“可演示、可答辩、可扩展”的小型系统。对于毕设和课设来说这类项目最大的优势在于每一层都有明确的交付物模型文件能跑通前端能实时显示识别结果后端能记录每一次识别的日志。哪怕模型准确率只有 90% 左右只要这条链路完整、代码结构清晰答辩时的说服力就比一个孤零零的 .py 脚本强很多。我一般会建议选了这类题目的同学把重点放在“OpenCV 的预处理效果”和“前后端数据交互的稳定性”上因为这两块是最容易在演示环节翻车的地方。2. 识别原理与选型为什么用 CNN 而不是全靠 OpenCV 模板匹配2.1 手语识别的技术路线从传统视觉到深度学习的取舍手语识别从技术路线上分三代。第一代是纯手工特征加传统分类器比如用 HOG 提取手势轮廓特征再喂给 SVM这类方法对背景极其敏感。第二代是基于 OpenCV 的模板匹配或形状匹配比如计算手势轮廓的 Hu 矩然后和模板库比对这种方式在固定背景下确实能跑但遇到光照变化、手部旋转Hu 矩的区分度就会急剧下降。第三代就是标题里选择的 CNN 路线把 OpenCV 定位裁剪出来的手部图像归一化到固定尺寸然后输入卷积网络提取高层语义特征。标题里没有显式提到训练框架但常见做法是使用 TensorFlow 或 Keras 训练一个轻量级 CNN导出模型文件后在 Python 侧用 cv2.dnn.readNetFromTensorflow 或 Keras 的 load_model 加载推理。选 CNN 而不是传统方法的核心原因是手语动作的区分往往在手指细节上比如数字“1”和“8”在手势轮廓上差异极小传统形状描述子很难分开而 CNN 能从大量样本里自动学到“指尖伸展角度”这类隐式特征。代价是需要准备数据集但毕设场景下完全可以用公开的手势数据集或者自己录制几百张样本做数据增强。2.2 模型输入与输出设计归一化、类别映射与置信度不管用哪种 CNN 结构模型输入基本都是 64x64 或 128x128 的单通道灰度图输出是 Softmax 概率分布。这里有一个容易被忽略的细节OpenCV 默认读图是 BGR 通道而训练时如果用的是 RGB 图推理前必须做通道转换否则模型精度会大幅下降。我见过不少同学在 OpenCV 里直接 cv2.imread 后丢给模型结果准确率只有 30%查了半天发现是通道顺序错了。类别映射要单独做一个 JSON 或 Python 字典文件比如 {0: A, 1: B, ..., 24: Y}。注意手语里通常不包含 J 和 Z因为这两个字母涉及动态动作静态 CNN 无法识别。这个细节在答辩时经常被老师提问提前在文档里写清楚“本系统只支持静态手势字母”反而能体现你对边界的理解。置信度阈值建议设在 0.6 到 0.7 之间低于阈值就显示“无法识别”而不是硬给一个错误结果。这个设计在演示时很加分因为真实场景下总会有非手势物体入镜。3. 系统架构与数据流转Python、JavaScript、MySQL 如何协作3.1 四层架构划分采集端、推理端、应用端、存储端整套系统我一般建议拆成四层。采集端用 OpenCV 调用摄像头每一帧先做肤色检测和轮廓提取拿到手部边界框后裁剪并缩放。推理端是 Python 写的一个 HTTP 服务接收前端传来的 base64 图片或字节流经过模型推理后返回 JSON包含识别结果和置信度。应用端用 JavaScript HTML 实现负责视频流显示、识别结果渲染和用户交互。存储端就是 MySQL建三张表用户表、词汇表、识别记录表。分层的好处是每一层可以独立测试。比如你先用一个小脚本验证 OpenCV 的裁剪效果再单独测试 Python 推理接口的吞吐最后才接前端。如果一上来就把所有代码揉在一起出了问题根本不知道是摄像头帧率太低、模型加载失败还是前端请求格式错误。我一般会先用 Postman 直接给 Python 服务发一张测试图片确认返回结果后再去调 JavaScript 的请求代码。3.2 请求链路JavaScript 捕获帧到 Python 推理的完整流程前端用navigator.mediaDevices.getUserMedia打开摄像头然后把视频帧绘制到 Canvas 上。关键操作是定时器每隔 200 毫秒从 Canvas 取一帧转成 base64 字符串通过fetch发送到 Python 的/predict接口。这里有两个常见问题一是 base64 字符串太大建议在 Canvas 上先用drawImage把图像缩到 128x128 再转能大幅减少网络开销二是getUserMedia在非 localhost 环境下会被浏览器拦截所以本地调试时要么用 localhost要么配 HTTPS。这个坑我踩过部署到服务器上演示时摄像头直接黑屏换回 localhost 就好了。Python 推理服务常用 Flask 或 FastAPI 实现接收 JSON 后把 base64 解码成 numpy 数组再做一次预处理喂给模型。注意 OpenCV 的imdecode得到的是 HWC 结构而模型输入一般是 NCHW要 reshape 加 expand_dims。推理结果组装成 JSON 返回时还要附带一个时间戳和手部中心坐标前端可以在画面上画一个框显示“检测到手势 A置信度 0.87”这个视觉反馈让系统看起来更完整。3.3 MySQL 表结构与数据落库逻辑用户表很简单字段就是 id、username、password_hash、create_time。词汇表存手势对应的含义字段为 id、gesture_label、gesture_name、description。识别记录表是核心字段为 id、user_id、gesture_label、confidence、create_time每次识别成功后前端会调用另一个接口把记录写入 MySQL。这里我不建议每次识别都写库因为摄像头实时识别一秒四五次全写的话 MySQL 压力太大。更稳的做法是前端攒 5 条记录一次性批量提交或者只把置信度高于阈值的结果落库。MySQL 连接在 Python 侧用 PyMySQL创建连接池而不是每次新建连接。有个容易忽略的点是字符集建库时一定要指定utf8mb4否则手势名称里有中文时插入会报错。另外时间字段用DATETIME类型Python 侧传字符串MySQL 会自动转换不要自己拼 SQL 时手动格式化时间容易踩格式坑。4. 用 OpenCV 实现手部检测与预处理关键步骤与参数调整4.1 肤色检测与轮廓提取从一帧摄像头画面到手部边界框OpenCV 在手势识别里的作用不是分类而是定位。第一步是肤色检测常见做法是在 YCrCb 色彩空间里划定 Cr 和 Cb 的阈值范围。BGR 直接做颜色阈值非常不稳定因为光照变化会同时改变三个通道的值而 YCrCb 把亮度分离到 Y 通道Cr 和 Cb 对肤色相对稳定。我常用的阈值范围是(0, 133, 77)到(255, 173, 127)这是 YCrCb 下的经典肤色区间但实际使用时要根据你摄像头的白平衡微调建议把这几个值做成配置文件不要写死在代码里。提取肤色掩膜后先用cv2.medianBlur去噪再用cv2.morphologyEx做开运算去掉小噪点最后cv2.findContours找轮廓。选轮廓时按面积排序取最大的一个这样可以过滤掉背景里类似肤色的物体。拿到最大轮廓后用cv2.minEnclosingCircle或cv2.boundingRect得到手部区域前者更适合手指伸展时的不规则形状后者计算更快。我一般偏向用外接圆因为圆形区域的直径信息在后续裁剪时比较直观。import cv2 import numpy as np def detect_hand_region(frame): # 转换到 YCrCb 色彩空间分离亮度通道 ycrcb cv2.cvtColor(frame, cv2.COLOR_BGR2YCrCb) lower np.array([0, 133, 77], dtypenp.uint8) upper np.array([255, 173, 127], dtypenp.uint8) mask cv2.inRange(ycrcb, lower, upper) # 中值滤波去噪开运算去除零散噪点 mask cv2.medianBlur(mask, 5) kernel np.ones((3, 3), np.uint8) mask cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel, iterations2) contours, _ cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) if not contours: return None # 按轮廓面积排序取最大轮廓作为手部区域 largest max(contours, keycv2.contourArea) area cv2.contourArea(largest) if area 5000: return None # 面积过小视为噪声 (x, y), radius cv2.minEnclosingCircle(largest) center (int(x), int(y)) radius int(radius) return center, radius, mask这段代码的核心逻辑分四步颜色空间转换、形态学滤波、轮廓提取、面积过滤。面积阈值 5000 是针对 640x480 分辨率设置的如果你的摄像头是 1280x720这个阈值要相应放大到 12000 左右否则手离镜头稍远就会被过滤掉。中值滤波的核大小 5 也需要注意核太大会模糊掉手指轮廓核太小则椒盐噪声压不掉。开运算的迭代次数 2 是经验值主要看你的摄像头噪点程度。拿到中心点和半径后下一步是裁剪并缩放。裁剪时建议把半径外扩 20%因为手部边缘往往有肤色误检留一点余地。然后cv2.resize到模型输入尺寸再做灰度化和直方图均衡化。直方图均衡化能显著提升不同光照下的识别稳定性但注意要在灰度图上做不要对彩色图做否则颜色会失真。4.2 指尖缺陷检测一种可选的形状特征增强方案如果只靠 CNN 识别OpenCV 的活儿基本到上一步就完了。但如果你想在论文里多写一个创新点可以加一个指尖检测模块。方法是提取手部轮廓后找到凸包和凸性缺陷。手指自然伸展时指缝位置会产生深度较大的凸性缺陷点根据这些点的数量和位置能判断手指数。def count_fingers(contour): hull cv2.convexHull(contour, returnPointsFalse) defects cv2.convexityDefects(contour, hull) count 0 if defects is not None: for i in range(defects.shape[0]): s, e, f, depth defects[i, 0] far tuple(contour[f][0]) if depth 15000: # 深度阈值过滤小噪声 count 1 return count凸性缺陷的深度阈值需要根据手到摄像头的距离调整。手离镜头远时一个指缝的深度可能只有几千像素阈值设 15000 就什么都检测不到。我一般会用上一节手部区域的半径做参考比如深度大于半径平方的某个比例才计数。这个模块的定位是辅助验证不是主识别路径所以不需要做到完美能出几个数值、画几个关键点在界面上就已经是很好的效果展示了。说实话凸缺陷这个方法在复杂背景下的稳定性比较差但作为 CNN 之外的一个交叉验证手段至少能体现你在图像处理层面的基本功。而且答辩时老师问“你的系统除了 CNN 还有没有传统视觉的融合”这就是现成的回答素材。5. 避坑指南模型加载、跨域请求与 SQL 编码的常见故障排查5.1 OpenCV 版本不匹配导致 cv2.error排查方向与解决方案热词检索里频繁出现cv2.error: opencv(4.4.0) ... pip-req-build这类报错这是 Windows 环境下编译安装 OpenCV 时最常见的翻车现场。很多同学直接用pip install opencv-python然后遇到这个错误以为是版本问题其实是 pip 在下载预编译 Wheel 包失败后自动回退到源码编译而源码编译需要 Visual Studio 环境没有就报错。解决办法很简单换一个镜像源强制从清华源或阿里源下载预编译包或者指定版本安装比如pip install opencv-python4.8.1.78。另一个容易踩的坑是import cv2成功但cv2.dnn.readNetFromTensorflow报错这是因为 OpenCV 的 DNN 模块对 TensorFlow 模型的版本兼容有限。Keras 训练出的 .h5 模型经常加载失败我的做法是导出为 OpenVINO 格式或 ONNX 格式OpenCV 对 ONNX 的支持好很多。如果不想折腾格式就直接用 Keras 原生load_model加载推理时用model.predict但这样系统里就多了一个 TensorFlow 依赖打包部署时体积会多几百 MB。5.2 JavaScript 请求 Python 接口时的跨域与数据格式问题前端 fetch 发送到 Python 服务时如果前端页面在 5500 端口、Python 服务在 5000 端口就必然触发跨域。Flask 侧要加flask-cors或者手动在响应头写Access-Control-Allow-Origin: *。不加的话浏览器控制台会出现 CORS 报错而 Python 侧其实已经收到了请求并返回了结果只是前端被浏览器拦截了。这个坑非常隐蔽因为它不影响 Python 服务本身的运行你单独测试接口一切正常但一接前端就失败。数据格式上还有个细节fetch 发送 base64 字符串时默认的 Content-Type 是text/plainFlask 侧用request.get_json()解析会拿到None然后报 400 错误。解决方法是发送时显式指定Content-Type: application/json同时在封装的 JSON 结构里固定字段名比如{image: data:image/jpeg;base64,...}。解码时记得要拆分逗号去掉前缀data:image/jpeg;base64,否则base64.b64decode会直接抛异常。5.3 MySQL 安装与连接故障字符集和认证插件是两大高频问题MySQL 侧的高频坑集中在安装和连接上。连接时报Authentication plugin caching_sha2_password cannot be loaded这是 MySQL 8.0 默认认证插件与 PyMySQL 旧版本不兼容导致的。两个解决办法升级 PyMySQL 到 1.0 以上版本或者在 MySQL 里给用户改成mysql_native_password认证。我一般建议升级 PyMySQL因为改认证插件在 MySQL 8.0 里只是缓解症状后续其他客户端工具可能还会遇到同类问题。另一个高频坑是写入中文乱码或者干脆报Incorrect string value。这个上面提过建库时用utf8mb4连接字符串里也要指定charsetutf8mb4。还有一个小细节是 Windows 下 MySQL 的 my.ini 里要配置character-set-serverutf8mb4有些版本默认是 latin1你 Python 侧连接时指定 utf8mb4 也会被服务器端覆盖成 latin1插入中文就报错。配置改完后要重启 MySQL 服务然后检查SHOW VARIABLES LIKE character_set_server是否生效。5.4 摄像头打不开或画面卡顿权限、分辨率与帧率的三重检查getUserMedia返回 NotAllowedError九成是浏览器权限问题。Chrome 里检查地址栏旁边的摄像头图标允许访问后刷新页面。如果是 HTTPS 页面摄像头权限要求更严格必须要有有效的 SSL 证书自签名证书也会被拦截。本地开发就用 localhost 规避服务器部署就配正式的 HTTPS 证书。画面卡顿的原因通常是前端定时器频率和 Python 推理耗时之间互相拖累。假设你 200 毫秒发一帧Python 推理一次要 300 毫秒请求就会排队前端 Canvas 上视频流其实还在正常走但识别结果一直不刷新。这时候要么降低采样频率到 500 毫秒一帧要么在 Python 侧把模型换得更轻量。我一般建议在代码里打印每次推理的耗时如果超过 200 毫秒就改成异步队列不要让前端傻等。6. 进阶验证用离线视频批量测试识别准确率并定位模糊手势系统跑通后最容易被问住的一个问题是“你的识别准确率到底是多少”。如果你只是现场演示几个手势然后说“挺准的”这在毕设答辩里没有说服力。我建议做一个离线验证脚本录制一段包含已知手势序列的视频然后用你的系统逐帧识别最后统计 Top-1 准确率顺手把置信度低于 0.6 的帧保存下来看看究竟是哪些手势容易被混淆。做法很简单先准备一段测试视频每一帧的手势标签用一个文本文件按时间戳标注。然后脚本读取这段视频对每一帧跑一遍 OpenCV 定位 CNN 推理把预测结果和标注结果对比。统计时按帧数而不是按视频段数因为同一个手势你保持了 2 秒30 帧里面只有 25 帧识别对按帧算准确率就是 83%这比按段算更严格也更能暴露问题。import cv2 import numpy as np from keras.models import load_model model load_model(gesture_model.h5) cap cv2.VideoCapture(test_sequence.mp4) total 0 correct 0 confused {} while True: ret, frame cap.read() if not ret: break result detect_hand_region(frame) if result is None: continue center, radius, mask result x max(0, center[0] - radius) y max(0, center[1] - radius) roi frame[y:y 2 * radius, x:x 2 * radius] if roi.size 0: continue roi cv2.cvtColor(roi, cv2.COLOR_BGR2GRAY) roi cv2.resize(roi, (128, 128)) roi cv2.equalizeHist(roi) roi roi.reshape(1, 128, 128, 1).astype(np.float32) / 255.0 pred model.predict(roi, verbose0)[0] label int(np.argmax(pred)) confidence float(np.max(pred)) ground_truth get_label_for_frame(cap.get(cv2.CAP_PROP_POS_FRAMES)) total 1 if label ground_truth: correct 1 else: key f{ground_truth}-{label} confused[key] confused.get(key, 0) 1 if confidence 0.6: cv2.imwrite(flow_conf_{total}.jpg, roi) print(faccuracy: {correct / total:.2%}) print(confused)跑完这个脚本你能拿到两类非常有用的信息。一类是整体准确率比如 91.3%这直接写进论文的“实验结果”章节。另一类是混淆矩阵你会发现 2 和 3、4 和 9 这种手指数相近的手势最容易互相认错。拿到混淆数据后可以做两件事一是对易错类别做定向数据增强比如把训练集里 2 和 3 的样本通过旋转、缩放增加一倍重新训练后准确率通常会提升三到五个点二是在前端识别时如果置信度在 0.5 到 0.7 之间就把 Top-2 结果都显示出来让用户确认这在人机交互上是更务实的设计。至于那些低置信度的截图不要删留着它们是排查图像预处理参数的重要素材。你会看到有些帧是手掌在画面边缘被裁掉了一半有些是背景里出现了肤色物体抢走主轮廓还有些是光照急剧变化导致肤色检测范围失准。每一类问题对应一个调整方向边缘问题可以扩大检测范围或加一个边缘缓冲肤色的误检测可以缩小阈值范围或提高面积过滤阈值光照问题则需要在预处理时做自适应直方图均衡化。我自己的习惯是把这些低置信度样本按失败原因分类命名每类挑两三张放进论文的“局限性分析”章节比单纯写一句“系统在复杂光照下性能下降”有说服力得多。这套验证流程我已经在多个类似项目里用过了它最大的好处是让“准确率”从口头描述变成一组带样本截图的可复现数据希望这篇笔记能帮你把这个项目的每一步都落地得踏实一点。本文还有配套的精品资源点击获取

相关新闻

Ever Gauzy 图标体系解析:@gauzy/ui-core/icons 中的 Eva 到 Tabler 图标映射与注册机制

Ever Gauzy 图标体系解析:@gauzy/ui-core/icons 中的 Eva 到 Tabler 图标映射与注册机制

后端前端企业应用MCP 服务 【免费下载链接】ever-gauzy Ever Gauzy™ - Open Business Management Platform (ERP/CRM/HRM/ATS/PM) - https://gauzy.co 项目地址: https://gitcode.com/GitHub_Trending/ev/ever-gauzy 点击查看 免费下载 本篇技术指南围绕 Ever Gau…

2026/10/11 20:19:07 阅读更多 →
YOLOv8实时人体检测落地指南:从环境配置到模型部署

YOLOv8实时人体检测落地指南:从环境配置到模型部署

简介:基于YOLOv8的实时人体检测项目,面向深度学习初学者和计算机视觉工程师,聚焦视频流与图像中的人体目标识别,可广泛用于安防监控、人流统计等实时场景;YOLOv8在检测速度与精度之间做了较好平衡,这套资源…

2026/10/11 20:18:07 阅读更多 →
高考志愿填报参考系统:Python+MySQL源码解析与位次冲稳保算法

高考志愿填报参考系统:Python+MySQL源码解析与位次冲稳保算法

简介:一套基于Python与Django的高考志愿填报参考系统完整源码及SQL数据库包,面向需要搭建高考志愿检索平台的学生、教师或开发者,也适合作为Python Web与数据入库项目的实践案例。系统支持以高校城市、高考排名、高校层次、专业等条件组合查询…

2026/10/11 20:18:07 阅读更多 →

最新新闻

同城家政服务平台搭建,多商户派单方案详解

同城家政服务平台搭建,多商户派单方案详解

同城家政服务平台搭建:多商户入驻与智能派单方案详解同城家政行业早已从单一门店自营模式,转向多商户平台化联营发展。平台整合全城多家家政公司、个体服务商、持证服务师傅,统一承接用户订单,通过智能调度完成订单分发与履约。相…

2026/10/11 23:39:46 阅读更多 →
PDF加密权限解除实战:用qpdf免费命令行一键解锁

PDF加密权限解除实战:用qpdf免费命令行一键解锁

上周同事甩过来一个PDF,说打印店打不了,让我帮忙看看。我一看,文件本身没坏,是加了权限限制——允许查看,但打印和复制都被锁了。这种问题我一年能遇到几十次:文档在手机上看一点毛病没有,真要用…

2026/10/11 23:39:46 阅读更多 →
大数据缓存实战:Redis与Alluxio定位配置与踩坑

大数据缓存实战:Redis与Alluxio定位配置与踩坑

干大数据这行的人,迟早会被一个词拦住:慢。任务跑得慢、查询出得慢、报表刷得慢,追根问底,大多不是因为计算引擎不给力,而是存储访问拖了后腿。我在几个大数据平台的项目里折腾过缓存方案,常用的两样是Redi…

2026/10/11 23:39:46 阅读更多 →
基于蝴蝶优化算法的IEEE30节点无功优化Matlab实现与参数调优

基于蝴蝶优化算法的IEEE30节点无功优化Matlab实现与参数调优

1. 从"网损"到算法:先搞懂无功优化到底在优化什么说到电力系统优化调度,"有功优化"大家都很熟——机组出多少钱、发多少有功,直接影响运行成本。但大部分人第一次接触"无功优化"时都会有一个疑问:无…

2026/10/11 23:39:46 阅读更多 →
四月修复版H5农场养殖鸡蛋理财鸡源码部署与支付对接避坑指南

四月修复版H5农场养殖鸡蛋理财鸡源码部署与支付对接避坑指南

简介:最新修复版H5农场牧场养殖理财鸡游戏运营源码,定位为可直接运营的网站游戏项目,适合有建站基础、希望搭建休闲理财类H5游戏的个人或团队二次开发。资源包共2271个文件,约88.4MB,主体由HTML页面、JavaScript逻辑、…

2026/10/11 23:39:46 阅读更多 →
改进版Q-learning实战:Double Q、n步回报与经验回放

改进版Q-learning实战:Double Q、n步回报与经验回放

简介:基于Q-learning的改进版强化学习算法项目,聚焦路径规划场景,面向MATLAB用户及强化学习入门者。项目针对经典Q-learning收敛慢的问题,融合学习率衰减、动态ε-greedy探索、经验回放、目标网络与双线性更新等改进策略&#xff…

2026/10/11 23:38:45 阅读更多 →

日新闻

流感时间序列预测实战: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/11 10:45:37 阅读更多 →
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/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练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/11 14:36:54 阅读更多 →