深度学习面部表情识别实战:Fer2013数据集与CNN/ResNet源码解析
简介基于深度学习的面部表情识别毕业设计项目包评审分98分面向计算机相关专业正在完成毕业设计、课程设计或期末大作业的学生也适合需要真实项目练手的深度学习和人工智能学习者。压缩包共36个文件大小约446MB包含14个Python脚本、5个Jupyter分析笔记、完整论文与答辩PPT、数据集及模型权重文件另含演示视频和部署说明。资源覆盖表情识别完整流程整合了CNN、VGG、ResNet三种经典网络模型的实现与对比测试代码并配有人脸检测、表情映射、数据划分、模型可视化等工具脚本代码含较多注释可直接对照论文、答辩PPT和README手册逐环节理解。目前已有276人学习下载适合作为深度学习项目的完整参考能帮助读者从零复现并掌握面部表情识别系统的设计思路与落地方法。1. 深度学习面部表情识别毕业设计资源能跑通才是真正的高分代码做面部表情识别毕业设计时最常遇到的情况是模型在 Fer2013 测试集上准确率还行但一接到摄像头实时画面就全线翻车答辩时尴尬到想当场关掉演示。这套基于深度学习的面部表情识别系统是一份包含 Python 源码、论文文档、Fer2013 数据集处理链和答辩 PPT 的完整毕业设计资源模型族覆盖 CNN、VGG、ResNet从数据预处理到训练对比再到实时推理都有对应脚本。它适合正在做毕业设计、课程设计或期末大作业的计算机相关专业学生也适合想快速搭建一个表情识别 Demo 并搞清楚完整训练链路的学习者。拿到手不是看论文而是按头跑通一次才知道每个文件的作用。2. 资源拆包模块划分与一次完整的项目运行链路拿到压缩包第一件事不是装环境而是先搞清目录结构。这份资源里的文件命名比较规范模型脚本、工具脚本、文档、模型权重、数据集各自成组。先把每个文件对应的职责弄清楚后面跑起来才不会被各种同名文件绕晕。2.1 源码目录模型族、测试脚本与工具脚本的分工根目录下所有 Python 文件可以分成三类。第一类是模型定义与训练脚本包括 model_CNN.py、model_VGG.py、model_ResNet.py第二类是模型测试脚本包括 model_CNN_test.py、model_VGG_test.py、model_ResNet_test.py第三类是数据与辅助工具脚本包括 data_process.py、data_separation.py、data_view.py、image_emotion_mapping.py、model_All_Compare.py。另外还有一组 Jupyter Notebook 文件CNN_01.ipynb、CNN_02.ipynb、CNN_03.ipynb、ResNet.ipynb、Facial-expressions.ipynb用于分步演示和调参记录。├── model_CNN.py # CNN 模型构建与训练入口 ├── model_VGG.py # VGG 风格模型训练入口 ├── model_ResNet.py # ResNet 模型训练入口 ├── model_CNN_test.py # 加载 CNN 权重做单张/批量预测 ├── model_VGG_test.py # 加载 VGG 权重做测试 ├── model_ResNet_test.py # 加载 ResNet 权重做测试 ├── model_All_Compare.py # 多个模型训练过程对比绘图 ├── data_process.py # Fer2013 原始 CSV 像素解析与预处理 ├── data_separation.py # 训练集/验证集/测试集划分 ├── data_view.py # 人脸图像可视化与类别分布查看 ├── image_emotion_mapping.py # 表情类别数字标签与中文标签映射 ├── templates/ # 前端页面模板配合摄像头识别界面 ├── dataset/ # 数据集目录需自行解压放置 └── video example_dsh.mp4 # 演示视频样例这里要注意 test 后缀脚本与模型训练脚本在命名上是一一对应的同一个模型族的训练脚本和测试脚本必须配合使用。例如你训练完 model_CNN.py 会产生一个权重文件model_CNN_test.py 默认会按相同结构加载。不要把 ResNet 的权重丢给 CNN 的测试脚本加载网络结构头完全不一样加载时必然报 shape mismatch。从源码组织方式看这个项目把同一个功能链路上的多个模型并列放置对比实验的可复现性是它比一般单模型项目更有优势的地方。2.2 数据集与文档Fer2013 处理链、论文与答辩 PPT 的配套关系dataset 目录对应的是 Fer2013这是一个经典的人脸表情识别数据集图像已经对齐为人脸裁剪图每张图是 48x48 的灰度图共七个表情类别生气、厌恶、恐惧、开心、悲伤、惊讶、中性。原始 Fer2013 以 CSV 形式存储每一行包含 emotion 标签、pixels 像素串和 Usage 字段Training / PublicTest / PrivateTest。这份资源里的 data_process.py 就是围绕这个 CSV 结构写的。论文和答辩材料包括多份 docx、pdf、ppt 文件。文档里有两部分值得重点关注第一部分是模型结构设计和数据预处理的章节和源码实现是对得上的论文里的网络结构图可以直接对应到 model_CNN.py 里的卷积层参数第二部分是实验对比数据多个模型在 Fer2013 上的准确率对比是答辩时展示工作量的核心材料。手册 docx 里写了环境部署步骤和运行顺序第一次跑项目建议先读手册再动代码避免漏装包。2.3 从数据到答辩一次完整运行的整体链路我把整个项目的运行链路拆成五步顺序不能乱。第一步是环境准备安装 Python、PyTorch、OpenCV、NumPy、Pandas、Flask 等依赖第二步是数据准备把 Fer2013 的 CSV 放到 dataset 目录下运行 data_process.py 做像素解析和预处理第三步是数据划分运行 data_separation.py 生成训练集、验证集、测试集第四步是模型训练选择一个模型脚本开始训练第五步是测试与演示用 test 脚本加载权重做验证再用摄像头脚本接实时视频流。这一步一步走完基本就能复现论文里的实验数据。常见的问题是很多同学跳过第二步直接训练结果 dataset 目录下没有找规定的 CSV 路径程序直接抛 FileNotFoundError。不要跳步这份资源的设计是每个脚本都依赖上一个脚本的输出文件。3. 数据预处理实战把 Fer2013 像素串还原成可训练的图像表情识别这个任务模型结构是重要但数据预处理是决定上限的关键环节。Fer2013 原生的 CSV 结构对新手不太友好图像不是 PNG 文件而是以字符串形式存储的 2304 个像素值用空格分隔。如果直接把这个字符串丢给网络模型学不到任何空间特征。所以整个项目的数据链路第一步就是完成字符串到图像的还原。3.1 原始像素解析与归一化从 CSV 到 48x48 灰度图data_process.py 的核心作用就是把 CSV 里的 pixels 列解析成可用的张量。这里给出这个脚本关键部分的逻辑实际源码在此基础上做了封装import csv import numpy as np from PIL import Image def read_fer2013_csv(csv_path): images [] labels [] with open(csv_path, r) as f: reader csv.reader(f) # 跳过表头emotion,pixels,Usage next(reader, None) for row in reader: emotion int(row[0]) pixels row[1].strip() pixel_vals pixels.split( ) # 2304 48 * 48灰度图只有一个通道 img_array np.asarray(pixel_vals, dtypenp.float32).reshape(48, 48) images.append(img_array) labels.append(emotion) return np.array(images), np.array(labels) # 归一化像素值从 [0,255] 缩放到 [0,1] images images.astype(np.float32) / 255.0这里的细节在 reshape 这一步CSV 中的像素串是按行优先排列的 48x48 图像展开结果reshape(48, 48) 之后得到的就是单通道灰度矩阵。dtype 用 float32 是考虑到 PyTorch 默认浮点类型就是 float32如果用 float64 后面转 Tensor 会多一次类型转换。归一化是必须的不归一化直接输入网络初始 loss 会非常大训练很难收敛。3.2 数据划分与可视化data_separation.py 与 data_view.py 的配合Fer2013 原始 CSV 里已经带了 Usage 字段但很多复现项目希望对划分有更多控制比如按比例重新划分训练集和验证集。data_separation.py 就是在解析完像素之后对数据做重新分组from sklearn.model_selection import train_test_split def split_dataset(images, labels, val_ratio0.1, test_ratio0.1, random_seed42): # 先划分测试集再从剩余数据中划分验证集 X_temp, X_test, y_temp, y_test train_test_split( images, labels, test_sizetest_ratio, stratifylabels, random_staterandom_seed ) # 剩余部分以 stratify 方式按类别比例分配 X_train, X_val, y_train, y_val train_test_split( X_temp, y_temp, test_sizeval_ratio, stratifyy_temp, random_staterandom_seed ) return X_train, y_train, X_val, y_val, X_test, y_teststratify 参数非常关键。Fer2013 七个类别的样本数量是不平衡的中性和其他类偏多厌恶类的样本明显偏少。如果不做分层抽样可能出现验证集中恰好没有厌恶类样本的情况训练过程几乎无法评估模型在少数类上的表现。random_seed 设成固定值是为了让每次划分结果一致否则每次重跑实验数据分布都不一样横向对比三个模型时就没有公平性可言。data_view.py 做的事情更直观加载划分后的 numpy 数据用 matplotlib 把每个类别的样张打印出来同时画出类别分布柱状图。我建议在训练前先跑一次这个脚本确认划分后各个集合里的类别分布是均衡的再往下走。3.3 数据增强的边界翻转、旋转与标准化的取舍这套项目里数据增强不算激进常见的做法是随机水平翻转和轻微的随机旋转。人脸表情识别和通用图像分类不同翻转需要谨慎左侧脸和右侧脸的表情特征在生物学上有差异但大多数公开数据集都默认对称处理这个项目也是按常规做法接受水平翻转。旋转角度一般控制在正负 10 度以内太大会毁掉眼睛和嘴巴的相对位置。另一个需要注意的是标准化方式。很多通用图像分类项目用 ImageNet 的 mean 和 std 做标准化但 Fer2013 是灰度人脸图套用 ImageNet 的 RGB 统计值既没必要也不合适。正确做法是在训练集上计算灰度图的像素均值和方法然后应用到训练、验证、测试三个集合。如果源码里已经有 mean 和 std 的缓存变量直接沿用即可。4. 三个模型族的实现与对比CNN、VGG、ResNet 在这份源码里怎么选这个项目值得展开讲的部分是三个模型族的并列实现。三个模型脚本分别对应三种网络设计思路从浅层卷积网络到深层堆叠结构再到残差结构覆盖了表情识别领域最常见的三种基线方案。很多人的毕设只做一个模型工作量单薄而这个项目用对比实验撑起了整篇论文的第四章。4.1 CNN浅层网络做基线两三个卷积块就能出效果model_CNN.py 构建的模型不追求深度在 48x48 的小分辨率输入下过深的网络反而容易过拟合。一个可用的基线结构是三层卷积加两层全连接import torch.nn as nn class ExpressionCNN(nn.Module): def __init__(self, num_classes7): super(ExpressionCNN, self).__init__() self.features nn.Sequential( # 卷积块 1输入 48x48 单通道输出 48x48 特征图 nn.Conv2d(1, 32, kernel_size3, padding1), nn.BatchNorm2d(32), nn.ReLU(inplaceTrue), nn.MaxPool2d(2), # 卷积块 2特征图尺寸减半到 24x24 nn.Conv2d(32, 64, kernel_size3, padding1), nn.BatchNorm2d(64), nn.ReLU(inplaceTrue), nn.MaxPool2d(2), ) self.classifier nn.Sequential( nn.Flatten(), nn.Linear(64 * 12 * 12, 128), nn.ReLU(inplaceTrue), nn.Dropout(0.5), nn.Linear(128, num_classes) ) def forward(self, x): return self.classifier(self.features(x))这里的参数选择有几个讲究。kernel_size 用 3x3 加 padding1 保持了空间尺寸不变后续 MaxPool2d(2) 把尺寸减半计算量可控。BatchNorm2d 放在卷积和 ReLU 之间能缓解梯度消失并加速收敛。Dropout 的比率设为 0.5 是经验值在浅层网络上太小的 drop rate 起不到正则化作用。训练这个模型时学习率我一般用 0.001batch size 用 64Adam 优化器大概 30 到 40 个 epoch 就能看到测试集准确率爬到 60% 附近。4.2 VGG 与 ResNet预训练权重、全局平均池化与残差结构的取舍model_VGG.py 走的是 VGG16 风格的堆叠路线但针对 48x48 的小图做了适配。如果直接把标准 VGG16 搬过来第一个全连接层的输入维度是 7x7x512和 48x48 输入的卷积输出对不上。标准做法是在 ImageNet 预训练权重的基础上冻结前几层或者把后面的全连接层替换成全局平均池化。后一种方案对于小数据集更友好因为全连接层的参数量占了 VGG 总参数量的绝大部分换成 GAP 之后过拟合风险明显下降。model_ResNet.py 采用残差结构核心思想是在堆叠的卷积层之间增加恒等映射。源码里 ResNet 模型主体是 BasicBlock 堆叠每一层在卷积之后把输入加到输出上这样梯度可以从最后一层直接传导到浅层解决了深层网络退化的问题。对于表情识别这种细粒度分类ResNet18 级别的深度已经足够不需要强行上 ResNet50训练时间会成倍增加但精度提升有限。三个模型用同一个数据集、同一套预处理、同一批超参数训练才能在对比实验中说明问题。model_All_Compare.py 做的就是这件事训练过程中记录每个模型的 loss 变化和验证集准确率最后画在同一个坐标图里。视线对比时注意两点一是看最终准确率二是看收敛速度。4.3 多模型对比与模型选择实战中的判断依据如果论文里需要一张多模型实验结果表通常按模型名称、参数量、训练时间、测试准确率四列组织。以 Fer2013 公开测试集为基准浅层 CNN 一般能达到 60% 左右VGG 加全连接替换后通常在 65% 上下ResNet 在预训练加持下能摸到 68% 到 72%。这些数字不一定完全复现因为随机种子、数据划分比例、增强策略都会带来浮动但幅度不会太大。需要明确一点这三个模型脚本不是让你全部跑完再挑一个。跑全部只是为了产出一张对比表实际论文的核心模型应该选 ResNet 或效果最优的那个另外两个作为基线模型放进实验对比章节。5. 踩坑避坑手册训练与复现中最常遇到的五个问题这份资源我自己完整跑过一遍其中几个问题几乎每个复现的人都会撞上。整理成避坑记录按现象、原因、解决三步还原遇到类似问题可以直接对照排查。5.1 第一次训练没问题第二次加载模型准确率暴跌现象训练完保存权重后退出终端第二天用 test 脚本加载同一个权重文件准确率从 70% 掉到 20% 以下甚至完全不收敛。原因 model_CNN.py 每次运行时网络参数初始化是随机的如果你在同一个脚本里先训练后测试测试的是刚训练好的参数没问题。但一旦新开进程加载权重网络结构必须和保存权重时完全一致。最常见的翻车点是模型定义文件里的卷积核数量变动过比如 dropout 位置改了、全连接层维度调整了加载时 torch 的 state_dict 对不上键名。解决保存模型时用完整的 state_dict加载前确认生成该权重的脚本没有被改动。如果你做实验时反复改过网络结构给每个模型权重文件加一个后缀比如 model_resnet_v2.pth不要一直覆盖同一个文件。多模型对比阶段尤其要建立这个习惯。5.2 中文路径导致的数据读取失败现象把数据集放在桌面某个中文目录下data_process.py 运行时 csv.reader 正常打开了文件但训练中断言错误图像数组全是空值。原因Windows 下 Python 默认文件编码和中文路径存在兼容问题某些环境 open() 读中文路径下的文件时编码识别失败导致内容读取不完整。csv 模块对这种错误不会直接抛异常而是返回空行。解决项目全部放在纯英文路径下比如 D:\fer_project所有子目录不要用中文命名。这是最稳妥的办法没有任何额外编码问题。如果你确实需要读取中文路径给 open() 加上 encodingutf-8 参数但 csv 模块内部对文件句柄的处理仍可能有问题不建议冒险。5.3 摄像头识别时表情判定全错但测试集准确率正常现象静态图片测试准确率很高一接摄像头实时画面表情几乎全被识别成中性偶尔蹦出惊讶其他类别基本不出现。原因训练集和测试集的人脸都是已经对齐裁剪好的 48x48 灰度图而摄像头实时帧是人脸在整张画面中占比很小的彩色图。测试脚本直接对整帧做 resize人脸被压缩得面目全非模型当然只能输出它见过最多的类别中性在这种数据分布下最保守。解决先用 haar cascade 人脸检测器从帧里框出人脸再裁剪、转灰度、对齐尺寸。这部分源码里有 haarcascade_frontalface_default.xml示例代码也会做 detectMultiScale 之后再进入模型推理。我在第六章展开讲这个闭环流程。5.4 CPU 上训练 ResNet 一个 epoch 要十几分钟现象没有 GPU 环境强行跑 model_ResNet.py眼看着 console 里 loss 刷得极慢一个 epoch 耗时超出预期。原因ResNet18 即便在 48x48 的小输入上参数量仍然是百万到千万级别CPU 上的卷积计算是非常耗资源的。不是代码跑死是算力不够。解决有两个思路。第一是优先把浅层 CNN 的完整实验流程跑完把论文里的核心章节先写出来ResNet 的结果后续有条件再补。第二是减少训练时间把一个 epoch 的迭代次数减半同时降低 epoch 总数只要求画出一条能说明趋势的曲线。还有一个被很多人忽略的办法检查 PyTorch 的线程数配置torch.set_num_threads 设置成 CPU 逻辑核心数比你什么都不设默认跑要快不少。5.5 加载权重时手工变得很好但预测结果全部是一个固定类别现象模型加载没有任何报错predict 一张开心的人脸输出开心predict 一张生气的人脸输出还是开心所有输入都输出同一个类别。原因模型并没有真正进入推理模式。最典型的两个错误一是没有调用 model.eval()导致 BatchNorm 和 Dropout 在训练模式下运作预测受到随机失活影响二是输入没有做归一化测试图片的像素范围是 0 到 255而训练时模型见到的输入是 0 到 1 的归一化数据。输入分布错位后模型对多数样本的输出会偏向同一类。解决推理前写死两个步骤——model.eval() 固定网络状态同时把输入张量除以 255 做归一化。养成一个习惯所有 test 脚本统一在这个位置加上这两行不要每次单独复制粘贴漏掉。6. 把模型接上摄像头从离线识别到实时闭环的完整流程离线测试脚本只能证明模型权重有效但答辩演示需要的是一段实时摄像头识别画面。这个项目里有 video example 演示视频、模板页面、人脸检测器模型文件凑起来就是一个完整的实时识别闭环。这一章的实操价值在于把数据预处理链在推理阶段完整复现一遍任何一步不一致都会让模型回到随机状态。核心逻辑我一般这样组织import cv2 import torch import numpy as np from torchvision import transforms def emotion_pipeline(frame, face_cascade, model, label_map, device): gray cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) faces face_cascade.detectMultiScale(gray, scaleFactor1.1, minNeighbors5) for (x, y, w, h) in faces: face_roi gray[y:yh, x:xw] face_resized cv2.resize(face_roi, (48, 48)) face_normalized face_resized.astype(np.float32) / 255.0 tensor torch.from_numpy(face_normalized).unsqueeze(0).unsqueeze(0).to(device) with torch.no_grad(): output model(tensor) pred_idx output.argmax(dim1).item() label label_map[pred_idx] cv2.rectangle(frame, (x, y), (xw, yh), (0, 255, 0), 2) cv2.putText(frame, label, (x, y-10), cv2.FONT_HERSHEY_SIMPLEX, 0.9, (0, 255, 0), 2) return framedetectMultiScale 的 scaleFactor 和 minNeighbors 是关键参数。scaleFactor 每次缩放的比例1.1 表示每次缩小百分之十值越小检测越慢但召回率越高minNeighbors 是每个候选矩形至少保留的邻居数调大可以过滤误检但设太大也会漏掉真实人脸。实战里 scaleFactor 1.1、minNeighbors 5 配合正面人脸效果最好。多尺度检测之后的人脸框可能有重叠minNeighbors 本身就是做非极大值抑制的粗粒度替代。predict 前的通道处理很容易出错。摄像头帧是 BGR 三通道先转灰度得到单通道再缩放、归一化、升到四维张量。unsqueeze(0) 加 batch 维unsqueeze(0) 加通道维顺序不能反否则输入维度变成 [1, 48, 48, 1]PyTorch 期望的是 [1, 1, 48, 48]。image_emotion_mapping.py 里把数字标签映射成中文和英文比如 0 对应 angry、1 对应 disgust预测出 int 索引后查一次映射表即可。把这一步和离线测试脚本的预处理链对比一下你会发现差别巨大离线测试读的是已经裁剪好的人脸图实时推理必须先做检测再对齐。这也是很多模型离线准确率高、上线就崩的根本原因。从那以后我每次做摄像头项目都强制走一遍预处理链对照检查人脸检测、灰度转换、resize、归一化、维度变换依次核对与训练时一致才敢把模型接上摄像头。这份资源里已经有了全套素材需要你自己动手把这些片段串起来跑通一次希望帮到你。本文还有配套的精品资源点击获取

相关新闻

分页查询接口实战:从MySQL优化到数据权限设计

分页查询接口实战:从MySQL优化到数据权限设计

1. 需求拆解与接口设计思路先说下背景。我手上的项目是一个面向个人用户的成长管理类应用,里面有一个核心模块叫“学习计划”,用户可以创建自己的学习计划,比如“三个月完成英语词汇量突破”、“每天刷一道算法题”之类的,然后系统…

2026/10/19 5:34:24 阅读更多 →
蓝牙AoA室内定位原理与实战:从相位差到亚米级精度

蓝牙AoA室内定位原理与实战:从相位差到亚米级精度

从蓝牙5.1规范正式引入测向功能开始,蓝牙AoA(到达角)定位就一直被圈内人当成“下一代室内定位技术”来看待。但说实话,在真正上手跑过完整系统之前,我对它更多是观望态度——毕竟从纸面参数到现场稳定可是隔着无数坑。…

2026/10/19 5:34:24 阅读更多 →
2026年10月12日AI行业日报:模型选型与工程落地关键信号

2026年10月12日AI行业日报:模型选型与工程落地关键信号

每天早上打开信息流,AI行业的标题几乎能把人淹没。今天是2026年10月12日,我照例把过去24小时里真正值得看的东西挑出来,做一份能直接指导工作的行业简报。这份简报不是新闻列表,也不是热搜搬运,而是我从技术选型、工程…

2026/10/19 5:34:24 阅读更多 →

最新新闻

双目三维重建从标定到体积测量:误差链分析及5大避坑指南

双目三维重建从标定到体积测量:误差链分析及5大避坑指南

简介:一套聚焦三维重建完整链路的学习型示例工程,面向计算机视觉入门者以及机器人导航、增强现实方向的开发者,解决摄像头标定、双目立体校正和点云体积计算中的核心算法落地问题,整体使用C实现,便于理解底层计算过程。…

2026/10/19 6:06:39 阅读更多 →
CNN与ResNet实战解析:从卷积特征提取到残差连接原理

CNN与ResNet实战解析:从卷积特征提取到残差连接原理

简介:面向深度学习初学者,这份Python源码以简易CNN与ResNet搭建为主线,完整呈现图像分类模型的原理与代码实现,帮助读者理解卷积神经网络的核心组件,并厘清ResNet并非独立于CNN的另一种模型,而是引入残差块…

2026/10/19 6:06:39 阅读更多 →
毕业论文AIGC检测率过高?一文讲透降AI工具原理与实测选型

毕业论文AIGC检测率过高?一文讲透降AI工具原理与实测选型

每年毕业季,我都能收到一堆来自本科生的私信,内容高度相似:老师,论文已经写完,AIGC检测率从35%降到18%,用什么工具能再压到10%以下?字里行间全是焦虑。到了2026年,高校对AIGC自动检测…

2026/10/19 6:06:39 阅读更多 →
大模型八股文:九大核心知识体系与工程实践全解析

大模型八股文:九大核心知识体系与工程实践全解析

“大模型八股文”这个词,前前后后在同行群里传了三四年,从最初调侃性质的学习提纲,慢慢变成了很多团队内部复盘知识体系的默认工具。我最早接触时也觉得“八股文”三个字带着点死记硬背的味道,直到自己真正把资料整理成体系&#…

2026/10/19 6:06:39 阅读更多 →
微博舆情分析系统:爬虫+情感分析+热词图谱全栈实现

微博舆情分析系统:爬虫+情感分析+热词图谱全栈实现

简介:本资源是一套面向计算机专业本科生的毕业设计级微博舆情分析系统实现方案,聚焦社交媒体数据采集、情感分析与可视化呈现,适用于课程设计、毕设选题参考及Python全栈开发实践。压缩包共49个文件,含6个核心Python脚本&#xff…

2026/10/19 6:06:39 阅读更多 →
Docker跑Oracle XE 11g数据持久化完整指南:从踩坑到稳定方案

Docker跑Oracle XE 11g数据持久化完整指南:从踩坑到稳定方案

Docker跑Oracle XE 11g这事,说简单也简单,docker pull一下、docker run一条命令就能把数据库跑起来,开发环境、演示环境、本地学习都很方便。但说坑也是真坑,尤其是数据持久化这一块——只要你把数据写在容器里面,哪天…

2026/10/19 6:05:39 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 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/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 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/19 2:54: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/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练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/18 12:16:16 阅读更多 →