学习日记(2026年3月23日)

今日学习内容

今天主要围绕 YOLOv8 视频目标检测的完整流程进行实践,重点解决内存不足和代码变量错误的问题。上午复习了 Ubuntu 系统中查看 conda 环境的方法,使用 conda env list 快速确认当前环境。下午着手处理一个实际项目:用训练好的 best.pt 模型对一段屏幕录制视频进行检测,并保存标注后的结果。

遇到的主要困难

  1. 内存分配错误:运行预测脚本时,出现 _ArrayMemoryError: Unable to allocate 8.79 MiB 的报错,原因是视频帧分辨率过大(1422×2160),OpenCV 在读取帧时无法分配足够内存。

  2. 变量未定义:修正内存问题后,又遇到 NameError: name 'input_video' is not defined,因为在配置部分用了 video_path,但代码中却引用了 input_video。

解决方法

· 对于内存问题,我在代码中增加了自动缩放机制:当帧面积超过设定阈值(如1080p)时,先等比例缩小帧送入模型预测,再将标注后的帧放大回原始尺寸保存,这样既避免了内存溢出,又保证了输出视频的分辨率不变。

· 对于变量命名错误,我将配置参数统一为 input_video 和 output_video,并修改了代码中所有引用,确保一致性。

收获与反思

今天深刻体会到"细节决定成败":一个变量名不匹配就可能让整个程序崩溃。同时学会了用"先缩放、后还原"的策略处理大尺寸视频,这是工程中应对内存限制的常用技巧。通过这次实践,我对 OpenCV 的视频读写、YOLO 模型推理的内存管理有了更具体的认识。不足的是,没有提前估算视频帧尺寸,导致反复调试,下次应先检查视频属性再设计处理方案。

下一步计划

明天将尝试用 GPU 加速推理,并对比不同缩放比例对检测精度的影响,同时学习如何将结果视频叠加时间戳和类别标签,增强可视化效果。

相关推荐
minglie112 小时前
高等代数试题
学习
Xiaofeng369313 小时前
GPT-5.6 发布后,我用了一个周末重新规划学习路线图
gpt·学习
其实防守也摸鱼14 小时前
运维--怎么看接口的请求和返回
运维·学习·网络安全·网络攻击模型·burpsuite·攻防对抗·蓝队
酷讯网络_24087016015 小时前
区块粮仓宠物NFT源码区块狗/抢购转让预约区块投资理财系统
学习·开源·宠物
Generalzy15 小时前
从本地 Demo 到生产级检索:Milvus 学习笔记(3)
笔记·学习·milvus
心中有国也有家16 小时前
AtomGit Flutter 鸿蒙客户端:ModalBottomSheet 实战
android·javascript·学习·flutter·华为·harmonyos
tyqtyq2216 小时前
求职信生成:AI 智能求职信撰写系统的鸿蒙实现
人工智能·学习·华为·生活·harmonyos
MartinYeung516 小时前
[论文学习]PrivacyLens:评估语言模型在行动中的隐私规范意识
人工智能·学习·语言模型
凉、介17 小时前
Virtio 系列(一):框架概览
笔记·学习·嵌入式·虚拟化·virtio
小心亦新18 小时前
STM32学习12--串口2收发数据包
学习