学习日记(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 加速推理,并对比不同缩放比例对检测精度的影响,同时学习如何将结果视频叠加时间戳和类别标签,增强可视化效果。

相关推荐
吃着火锅x唱着歌9 小时前
Effective C++ 学习笔记 条款43 学习处理模板化基类内的名称
c++·笔记·学习
weixin_4316004410 小时前
Agent Workflow 学习向:Code 节点,比模板更强的变量加工
后端·python·学习·ai·
Xuanzang Road11 小时前
第 40 届学习强企玄奘路戈壁挑战赛:在绝境中重塑自我
学习
tju新生代魔迷12 小时前
Python学习日记3
学习
hsjiasb13 小时前
FreeRTOS学习(三十九)——最终总结
学习·学习笔记·freertos
m4Rk_14 小时前
【论文阅读】Agent 记忆机制(47):Nemori——用“预测误差”判断什么经验值得被记住
论文阅读·人工智能·学习·开源·github
约克314 小时前
2024年空调除甲醛技术参数与性能评测解析
学习
kkkkkkkkkk_Z14 小时前
学嵌入式和C语言编程数据结构|学习日记Day21:内核链表与队列学习
c语言·数据结构·学习
kdxiaojie17 小时前
Linux USB驱动阅读笔记(1)
linux·笔记·学习·usb
呼噜想睡觉17 小时前
Bootstrap3完成从导航到页脚完整页面开发
学习