news 2026/9/30 9:16:53

基于视觉识别与YOLO的教室节能智能控制系统方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于视觉识别与YOLO的教室节能智能控制系统方案

简介:《基于视觉识别的教室智能节能控制系统研究》是一份面向高校后勤管理人员、智能系统开发者及节能研究者的PDF学术文献。原文刊于《现代电子技术》2019年第14期,针对教室照明与空调粗放管理造成的能源浪费问题,提出基于人数视觉识别技术的智能节能控制方案,涵盖系统设计原理、实施效果与未来前景。资源为单文件PDF,压缩包仅2.17MB,便于下载后直接阅读。文中详细展示了视觉识别算法、校园以太网与无线通信的数据对接架构,以及照明、空调、显示、语音模块的联动控制策略。实际测试数据显示,10间教室识别模块平均精确率达91.2%以上,单间教室全天平均精确率为95.0%,标准差3.52%,实施后单间教室日均耗电量下降约20%。这些具体数据与实验方法对同类教室节能改造、智能系统开发具有重要参考价值。目前该资源已有138人学习,适合作为相关课题申报或毕业设计的专业指导文献。

1. 教室节能为什么盯上「视觉识别」而不是红外感应

晚自习的教室,灯全亮着、空调设 22 度,里面却只坐了三四个人,这是绝大多数学校每天都在浪费的场景。传统做法是给教室装红外 PIR 感应器,但人一旦安静坐着超过几十秒,PIR 就把教室判成「无人」,灯当场灭掉,学生站起来挥手臂才亮回来。教室智能节能控制系统的真正难点从来不是「关灯」这个动作,而是「可靠地判断教室里到底有没有人、有几个人」。视觉识别恰好能把这两件事一起解决:检测到人头就是有人,数出人头就是人数,这才是控制策略真正需要的信号。这篇文章就沿这条路线,把技术选型、模型训练、控制联动和落地踩坑拆开讲,适合做校园能源改造和节能集控的工程师参考。

2. 为什么选视觉识别:三条路线选型与整体架构

2.1 PIR、人数统计与人头检测的取舍

PIR 红外感应的优点是便宜、安装简单,十几块钱一个,但它对教室场景有一个天然缺陷:它靠热释电元件感知红外辐射变化,人静止不动时辐射场不变化,输出就归零。学生上课的主要姿态就是坐着不动,所以 PIR 控制的灯经常在上课中途熄灭。有人把延时调到 30 分钟来缓解,结果人走之后灯还会亮半小时,节能率几乎归零。这条路线在走廊、卫生间勉强可用,在教室基本不可取。

第二类是视频人数统计,用行人检测或密度估计去数进出教室的人头。逻辑上说得通,实际用起来误差会累积:课间学生结伴进出,重叠遮挡严重,十分钟内进出门就能累计出错五六人,到下一节课时「在场人数」已经不可信。密度估计这类方法给的是估计值而不是精确检测值,用来判断「有没有人」勉强凑合,做分区控制完全使不上劲。

第三类就是标题里的视觉识别方案,用目标检测模型直接定位画面里的「人」。教室普遍是斜俯视摄像头,学生并排坐,人体相互遮挡,全身检测精度很差;而人头在斜俯视视角下遮挡最少、形状稳定,是教室场景下最值得检测的目标。人头框还有一个附加价值:框的坐标可以映射到座位区域,为「分区照明」「只开有人区域」提供最直接的信息。控制信号需要的是「是否存在人员、人员在哪个区域」,目标检测能一并给出,PIR 和人数统计都做不到,这就是选它的根本原因。

2.2 系统分层:摄像头、推理盒与继电器控制

我一般把整套系统拆成四层:感知层、推理层、控制层、执行层。

感知层是摄像头。优先选支持 RTSP 输出、带宽动态(WDR)的网络摄像头,别用手机摄像头改装的方案。教室宽度按 8~9 米算,镜头视角选 90~110 度,装在黑板一侧、讲台对面墙角或者教室后墙都可以,关键是高度 2.8~3.2 米、斜俯视 30~45 度。这个角度下人头目标通常是 20~40 像素,不会小到无法检测,又不会被前排完全挡住后排。特别提醒:摄像头正对窗户装的话,白天逆光会让靠窗学生过曝到看不清,安装时宁可牺牲一点视角也要避开直射阳光。

推理层是核心。常见做法是一块 Jetson 级别的小盒子或一台无风扇迷你主机,本地跑 YOLO 模型。教室节能对实时性的要求其实很低,人不会瞬移,每 3~5 秒做一次完整推理完全够用。推理频次刻意降下来,除了省电,更重要的是长期稳定性:推理盒持续满载容易过热降频,推理间隔拉长后,负载曲线平缓很多,盒子能连续跑几个月不重启。

控制层和执行层负责把「有没有人」变成「灯亮不亮」。常见做法是用继电器控制板直接切灯光回路,空调则不用断电,通过红外码或 Modbus 写温度设定值。比如「无人且持续 5 分钟」时,灯光继电器断开,空调温度上调 3 度,而不是直接拉闸。空调直接断电再上电,压缩机启动瞬间电流很大,对设备寿命影响明显,节能账算不过维修账。

2.3 模型与分辨率选型:教室不是通用场景

模型我直接用 YOLO 系检测器,这个方向基本没有争议。具体选哪个版本,要看部署环境。老一点的 YOLOv5 生态成熟,从 .pt 转 ONNX 再转 TensorRT FP16 的坑几乎都被人踩平了;新一些的 YOLOv8 系列功能全、训练脚本友好,但在老 GPU 上转引擎时偶尔会遇到算子不兼容的报错。对于教室节能这种低实时性任务,推理速度根本不是瓶颈,稳定性和可维护性才是,所以我倾向选生态更成熟的版本,不追新。

输入分辨率建议从 640 起步。为什么不是默认的 416 或 320?因为教室画幅大、人数多,人头算小目标,分辨率太低会把两个相邻人头糊成一个框。分辨率提到 768 可以让后排人头明显更清楚,但显存占用和推理耗时都会上涨,先量力而行。这里有一个容易犯的错:直接用 COCO 预训练模型去测教室画面,发现检测效果差就说「模型不行」。其实问题不在模型,而在两点:一是 COCO 没有斜俯视人头这种分布,二是输入分辨率被默认设置拖低。正确的做法是按第 3 章讲的数据标注和微调流程走一遍。

部署硬件的选择也有讲究。树莓派这类 ARM 板卡的 CPU 推理一个 640 分辨率要好几秒,勉强能跑但余量太小;Jetson 系列有 GPU 加速,功耗也就 10W 上下,适合 7x24 小时挂机。预算紧也可以拿二手迷你主机跑 CPU 推理,3 秒一帧的节奏下 CPU 占用不会太高,但要注意选低功耗型号,否则「节能系统」自己先成了耗电大户。

3. 用 YOLO 跑通教室人头检测:最小命令与三个必调参数

3.1 数据标注约定:只标头,不标肩膀

如果你直接拿 COCO 预训练权重跑教室画面,效果会惨不忍睹:COCO 里「人」这个类别是全身框,模型学到的是人形特征,而教室摄像头看到的是大脑袋顶、小肩膀和后脑勺,特征分布差太远。训练这一步绕不开。

我一般是在自己教室里录两周视频,抽帧 2000~3000 张,按时间段覆盖早中晚不同光线。标注工具用开源的 labelImg 或 AnyLabeling,导出 YOLO 格式,类别只设一个:person_head。

标注约定有三条铁律。第一,只标头,框从下巴到头顶,不带上半身。第二,遮挡超过 70% 的头可以不标,但不要标一半漏一半,否则模型会学到「露出半个头也算完整头」,多人场景下重复框会变多。第三,单张图的密度分布要均匀:1~5 人的、10~20 人的、40 人以上的都要有,不能让训练集里全是少人场景。很多人训练集里 90% 是少人或空教室,推理时一遇到满员的课,漏检率直接飙升,这是典型的分布偏置。

数据准备好后,按 8:1:1 切训练/验证/测试,固定随机种子,训练命令按这个套路来:

yolo detect train \ model=yolov8n.pt \ data=classroom.yaml \ epochs=150 batch=16 imgsz=640 \ patience=30 optimizer=AdamW \ project=runs/train name=classroom_head

classroom.yaml 里主要写三项:train 和 val 的图片目录路径、nc=1、names 列表写成 ['person_head']。epochs 设 150 是因为教室场景数据量不大,太早停容易欠拟合;patience=30 表示连续 30 轮验证集指标没提升就提前停,省时间。batch 大小看显存,16 不够就降到 8,但不要动 imgsz——训练分辨率和后面推理分辨率必须保持一致。

3.2 最小推理命令:先让模型出框再谈控制

训练拿到 best.pt 后,先在静态图上验一次,再接摄像头。最小推理命令是这样:

yolo detect predict \ model=runs/train/classroom_head/weights/best.pt \ source="../data/sample_classroom.jpg" \ conf=0.35 iou=0.45 imgsz=640 \ max_det=100 class_id=0 \ project=debug_pred name=exp01

这条命令的作用是:用训练好的 best.pt 对 sample_classroom.jpg 做一次检测,置信度大于 0.35 的人头框才会被保留,重叠框用 0.45 的 IoU 阈值做 NMS 合并,输入图像统一缩放到 640 分辨率,最多保留 100 个框,只显示第 0 类 person_head。能不能出框、框画在哪,一眼就能看出来。

class_id=0 这个参数容易被忽略。如果你不写,检测器会把所有类别都画出来,教室里可能出现「椅子」「电视」等一堆无关框,干扰判断。静态图没问题后,再接摄像头流验证:

yolo detect predict \ model=runs/train/classroom_head/weights/best.pt \ source="rtsp://192.168.1.100:554/classroom" \ conf=0.35 iou=0.45 imgsz=640 \ max_det=100 class_id=0 \ project=debug_pred name=rtsp01

source 换成 RTSP 地址即可。如果摄像头是 HTTP MJPEG 流,把地址写成 http://ip:port/video 也能直接跑。Windows 下跑 RTSP 偶尔会因为解码器权限报错,换成 Linux 或 WSL 更省心。

3.3 三个必调参数 conf、iou、imgsz:怎么定才不漏不虚

这三个参数是跑完一次检测后必须调的第一批旋钮。

conf 是置信度阈值,决定候选框能不能留下。教室场景合理区间是 0.25~0.4。设 0.1,桌面保温杯、窗外树叶、黑板粉笔字都会当成头,控制端会把空教室判成有人,灯一直亮,失去节能意义;设 0.6,低头趴桌的学生头发和背景对比度低,置信度上不来,漏检导致「有人判成无人」,这比误检更严重,它会直接把正在上课的教室灯关掉。实践里我从 0.35 起步,然后拿 200 张历史帧做批量统计,让「无人误检率」和「有人漏检率」两个指标都落在可接受范围。

iou 是 NMS 合并阈值,决定重叠框是不是同一个头。人头密集的教室里,相邻学生头的框之间 IoU 可能高达 0.4 以上,默认 0.45 会把两个人头并成一个,人数系统性偏小。如果统计人数比实际少 10% 以上,且画面里能看到两个头只出一个框,把 iou 降到 0.3 试一下。副作用是同一个头可能出重复框,配合 conf 和 max_det 一起压,一般能平衡住。

imgsz 是输入分辨率。最容易忽视的一点:训练用 640,推理就必须用 640,因为模型学的是 640 尺度下的特征,你推理时塞 1280,检测框的数量和置信度分布都会漂移。如果教室后排人头实在太小,正确做法是把训练和推理统一提到 768 重新训一轮,而不是单独改推理端。

参数调优的最终目标不是 mAP 最高,而是「无人误报率趋近于零、有人漏报率尽量低」。节能系统里,灯多亮错一次就白费一整晚的节能,这是它跟学术刷分最大的区别。

4. 从检测结果到关灯:控制状态机与防误触设计

4.1 状态机与帧缓冲:判定「无人」不能只看一帧

检测模型输出的是一帧一帧的独立结果,但控制动作不能跟着每一帧走。上一帧有人、这一帧没人,继电器立刻断开,那课间只要有学生蹲下系鞋带,灯就会闪一下。中间必须加一个稳定期判定的状态机。

我用的状态机只有三个状态:有人、疑似离开、无人。初始状态是有人。从有人切到疑似离开的条件是「连续 60 帧(按 3 秒一帧算,约 3 分钟)都未检测到人头」;从疑似离开切到无人的条件是「再持续 60 帧仍无人」,这时才真正断灯。反过来,从无人切回有人,只需要连续 3 帧检测到 1 个人头即可。

为什么要这么不对称?人进教室是瞬时事件,晚到几秒没关系,所以开灯确认要快;人离开是渐进事件,有人去厕所、去接水,你不希望灯灭掉再重亮,所以关灯确认要慢。这套不对称时间窗口,比固定延时要省电得多,也是节能效果的关键。

状态机对应的核心逻辑,伪代码大致是这样:

frames_unseen = 0 state = "occupied" UNSEEN_THRESHOLD_LEAVE = 60 UNSEEN_THRESHOLD_EMPTY = 120 for result in infer_loop(): num_heads = count_heads(result) if num_heads > 0: frames_unseen = 0 if state == "empty": state = "occupied" turn_on_lights() else: frames_unseen += 1 if state == "occupied" and frames_unseen >= UNSEEN_THRESHOLD_LEAVE: state = "leaving" elif state == "leaving" and frames_unseen >= UNSEEN_THRESHOLD_EMPTY: state = "empty" turn_off_lights()

这是一个低配版实现,按帧数计数,不依赖真实时间戳,代码简单,但推理间隔变化时阈值含义会漂移。正式部署我建议把帧数换成秒数,用带时间戳的检测队列判断「连续 5 分钟无人」,这样即使推理服务重启过,也不会把历史帧误算进去。教室节能不怕慢,就怕误动作,判断条件宁可保守。

4.2 灯光分区与空调联动:一份可以直接套用的控制表

有了「有人/无人」和「人数/位置」两个信号,控制策略就能细化了。我把常见做法整理成一张控制表:

场景判定条件灯光动作空调动作
无人连续 5 分钟 0 个人头全关(含一体机)温度上调 3 度
少量自习1~3 人头,集中在某一排只开对应区域排灯保持设定温度
正常上课4 人以上全开正常制冷
课间人数波动人数频繁变化延后 2 分钟再响应不响应

区域灯怎么分?一般教室灯具是两到三排,可以把人头框中心点坐标映射到排号:框中心 y 坐标在前 1/3 就是第一排,中 1/3 第二排,后 1/3 第三排。用画面坐标归一化后按比例切分就能实现,不用做复杂的空间标定。分区控制的收益在晚自习时段特别明显:十个人分散坐在五排,全开是几百瓦,分区只开有人区域,一小时下来就是一个可观的差值,整楼几十间教室积累起来更明显。

空调联动比灯光复杂一点。常见做法是「无人 5 分钟 → 空调进入节能模式」,设定温度上调 3 度、风速调低,而不是直接断电。空调压缩机直接断电再启动的高峰电流很伤设备,而且每次重新启动要把整个房间重新降温,省下的电在重启瞬间被吃回去了。这条是血泪经验,我见过不止一个项目在空调上强行节能,结果把空调压缩机搞到过保就坏。

还有一层兜底:如果人数统计不稳定、只有「有人/无人」信号可靠,那就不要用「少量自习」这一档,干脆有人就全开、无人就全关。分区控制是锦上添花,但不该为了它牺牲可靠性。

4.3 手动优先、断电保护与冗余设计

除了控制逻辑,硬件层面的可靠性要提前设计。继电器是这套系统里最容易坏的东西。教室灯是感性负载,尤其老式荧光灯带镇流器,关断瞬间的反向电弧会烧蚀继电器触点。选继电器时,触点额定电流必须大于实际负载电流 1.5 倍以上;能选固态继电器(SSR)更好,代价是价格高一些、要配散热片。

断电恢复同样要处理。教室晚上断电后第二天来电,如果控制板默认「无人 → 全灭」,早晨学生进教室发现灯开不了,体验非常差。我一般设计成:上电后 10 分钟内状态强制为「有人」,让灯能正常开,系统在这 10 分钟内只学习不动作,等推理结果稳定后再进入自动控制。这样既避免误灭灯,也避免推理数据还没就绪就乱动。

另外控制端必须留一个硬开关,把整个自动回路从物理层面旁路掉。这不是给自动化留后门,是给突发故障留后悔药。视觉识别再成熟,也总有摄像头被球砸歪、网络断线的一天,物理旁路是最后一层保障。

5. 教室节能系统落地中的 5 个坑:现象、原因、对策

5.1 逆光与窗户反光:靠窗学生集体「隐身」

现象:白天靠窗一排的学生频繁漏检,画面上那个人头区域要么是过曝的惨白,要么是窗户反光把脸和头发亮成一片,检测框出不来。到了傍晚内外光比小一些,漏检又自动恢复。

原因:摄像头斜俯视角度看窗户时,窗外天空比室内亮几个 EV,自动曝光把整个画面压暗,靠窗学生的头发和脸变成黑乎乎一团,检测特征完全丢失。模型本身没问题,是图像质量把特征破坏了。

解决:优先从安装端解决,摄像头不要正对或侧对窗户;必须对窗时,开启摄像头的宽动态(WDR)功能,把高光部分压回来。数据端也要配合,标注时把靠窗、半逆光的样本多标 15% 左右,让模型见过这种退化输入。我见过最彻底的方案是在窗户侧加装半透遮光帘,这已经不是纯技术问题,但效果立竿见影。

5.2 人坐着不动被误判为「无人」:别把运动检测当前置

现象:晚自习大家都低头写题,二十分钟后灯突然灭了,学生纷纷抬头,灯又亮了。如此反复,最后只能把系统关掉。

原因:最常踩的坑是有人图省事,在检测前面加了一层 OpenCV 帧差法运动检测,认为「没运动就没必要跑模型」。但教室里的学生写作业时几乎不动,尤其冬天穿深色衣服,帧差法输出一片黑,直接把静止的人过滤成了背景。这不是模型的问题,是前置逻辑把有效信号抹掉了。

解决:不做运动检测前置,每 3~5 秒直接对原图跑一次模型。如果担心推理资源,那就降低推理频率,但不能用运动检测当门控。训练数据里也要补足「静止人」这类样本,让人头特征在低动作幅度下依然能被稳定检出。

5.3 投影幕布上的「假人」被当真

现象:教室空无一人,投影幕布上在放教学视频,视频里有个人物特写,系统检测到人头判定有人,灯不关,空耗一整晚。

原因:检测器看到的是形状特征,它不知道画面是二维的还是三维的。屏幕上的人脸特写和真人头在框形状上高度相似,模型无法从像素层面区分真假人。

解决:两道关卡。第一道,在检测结果后处理里加 ROI 区域过滤:投影幕布、黑板、一体机屏幕在画面中的位置是固定的,把这些区域设为掩膜,区域内的检测框直接丢弃。第二道,加单人面积上限:真人头在教室画面里再小也有十几像素,幕布上人脸特写可能占几百像素,按框面积过滤能筛掉大部分屏幕内容。两道都做,空教室误判率能压到很低。

5.4 隐私合规:画面不能出教室

现象:系统上线后,有家长投诉「教室里装摄像头监控孩子」,学校迫于压力叫停项目。

原因:视觉识别方案天然踩隐私红线。摄像头采集的画面包含所有学生的面部信息,如果画面实时上传到云端推理,或者本地存了视频回放,都构成对未成年人信息的违规采集。技术没问题,合规没过关,项目一样白做。

解决:把推理全部放在教室本地的小盒子里,摄像头只连本地推理设备,不接入校园网公网,更不传云端。推理结果只输出「有人/无人/人数」这些结构化数字,原始视频帧用完即弃、不落盘。更稳妥的做法是在教室门口贴一张「本教室已启用 AI 节能管理,仅检测人员存在,不采集身份信息」的告示,从程序和观感上把合规风险提前处理掉。没有合规方案,就不该上线,这是底线。

5.5 画面延时与时间戳:控制信号必须「过时作废」

现象:学生进教室坐下已经三分钟,灯还没亮,排查发现推理结果一直积压在队列里;另一个场景是摄像头断线重连后,系统用旧帧又跑出了「有人」,灯被错误点开。

原因:WiFi 摄像头传输有几百毫秒到几秒的延迟,推理盒检测队列如果积压,拿到的就是好几秒前的画面;摄像头断线重连后时间戳错乱,旧帧会再次进入推理,产生「用历史数据控制现在」的结果。

解决:每个检测结果必须带时间戳,控制状态机只接受「当前时间减去时间戳不超过 3 秒」的结果,更旧的一律丢弃并触发告警。摄像头接入尽量走有线网口,WiFi 的不稳定会让整个系统行为变得像玄学。推理队列做有界缓冲,超过 10 帧未处理的旧帧直接丢,宁可少判一帧,也不能用旧帧做控制动作。这条不处理干净,系统永远无法稳定验收。

6. 进阶技巧:用节能率验证效果与模型轻量化的习惯

6.1 用对照实验测节能率:数据比感觉可靠

系统上线后,怎么证明它真有价值?不要凭「感觉灯关得更勤了」来汇报,拿数据说话:同一间教室、同一周、同一个班型,A 周跑原来的定时开关方案,B 周跑视觉识别自动控制,记录电力采集器里的回路用电量。节能率 =(基准用电量 - 系统用电量)/ 基准用电量。

对照时注意控制变量:两周要避开考试周、活动课等异常时段,教室使用班级也应该一致。测出来节能率在 20% 以上,基本就能说服校方继续投入;如果低于 10%,先别急着优化模型,回去查状态机的关灯延时是不是设得太保守。

6.2 模型轻量化:TensorRT 与部署前的验证习惯

教室节能对帧率要求很低,模型轻量化的收益不在速度,而在功耗和发热。一个小盒子 24 小时跑,功耗降 5W,一年下来也有几十度电,别让节能系统自己变成耗电大户。

常用做法是转 FP16 的 TensorRT 引擎:

trtexec --onnx=best_fp16.onnx \ --saveEngine=best_fp16.engine \ --fp16 \ --minShapes=input:1x3x640x640 \ --optShapes=input:1x3x640x640 \ --maxShapes=input:1x3x640x640

转换后的引擎在 Jetson 上推理,显存和延迟都会明显下降。但转完不能直接上线,要做一次引擎一致性验证:拿 100 张验证图像,对比 PyTorch 推理和 TensorRT 推理输出的检测框 IoU,差异超过 0.05 就回头查前处理,最常见的坑是归一化方式不一致。

我自己的习惯是:新教室上线之前,先用静态图像把状态机的每一次切换在本地回放一遍,所有边界情况都跑通了再交钥匙。视觉识别系统最怕的不是模型不准,而是没人验证过就敢全自动。跑通一个最小闭环,再谈铺开,这条路我走了很多次,希望帮到你。

本文还有配套的精品资源,点击获取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 9:16:26

Java仓库管理系统毕设实战:Spring Boot+Vue全栈开发与避坑指南

简介:这份资源是一篇基于Java的仓库管理系统毕业设计论文文档,面向计算机相关专业学生及需要完成课程设计或毕业设计的开发者。论文围绕电子商务背景下传统仓储人工操作效率低、错误率高的痛点,采用Spring Boot后端、Vue前端与MySQL数据库&am…

作者头像 李华
网站建设 2026/9/30 9:16:00

从空白需求到完整博文:用热搜词反推内容方向

选题空白不等于无从下笔:我如何从一行空需求里整理出完整内容 经常有人拿着一个只有标题、甚至标题都还是空白的写作需求来找我,问的第一句话都是"这个怎么弄"。说实话,我自己也经历过不少这样的时刻——打开文档,标题栏…

作者头像 李华
网站建设 2026/9/30 9:15:05

Grounded-SAM+autodistill+X-AnyLabeling:自动标注数据飞轮实战

标注这件事,做过的都懂——模型效果上不去,十有八九不是网络结构的问题,而是数据不够、标注太慢、标注标准还不统一。我最早做检测项目的时候,一个两千张的小数据集,三个人标了将近两周,标完还得交叉检查&a…

作者头像 李华
网站建设 2026/9/30 9:13:16

S7-200与组态王机械手仿真:从PLC顺序控制到HMI动画联调

说实话,我第一次把 S7-200 和组态王放在一起做搬运机械手仿真的时候,心里是真没底。PLC 梯形图自己能写,组态王画面也能画,但这两样东西能不能“跑起来同步动”,完全是另一回事。这套“基于 S7-200 西门子与组态王的搬…

作者头像 李华
网站建设 2026/9/30 9:12:55

Vue 3组合式函数实战:用useRequest/useTable/useForm替代Mixin

在做后台管理系统的时候,我经常跟同事说一句话:别再往组件里堆 Mixin 了,等哪天这些 Mixin 里的 data 互相覆盖出 bug,你查得会比写还累。这句话不是危言耸听,是从 Vue 2 时代一路搬砖过来的真实体会。刚好最近团队项目…

作者头像 李华
网站建设 2026/9/30 9:10:29

5.9GB大模型如何塞进2.7GB显存?Agent场景显存优化实战

1. 5.9GB 模型跑到 2.7GB 显存,这个数据是怎么来的 先交代一下背景,这个项目是我自己一直在维护的一个 Agent 框架,跑在本地工作站上,显卡是一张 8GB 显存的卡。标题里说的这个 5.9GB 模型,是一个基于 Mistral 架构裁剪…

作者头像 李华