You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Jetson Nano持续while循环运行DeepFace出现内存泄漏及OOM(进程被终止)

Jetson Nano 4GB(JetPack 4.6.1)下Deepface情绪分析内存泄漏解决建议

1. 定位内存泄漏根源

  • 用htop或ps aux --sort=-%mem实时监控进程内存变化,确认内存攀升的时间段和关联操作。
  • 在Python脚本中加入tracemalloc跟踪内存分配,定位泄漏代码段:
    import tracemalloc
    tracemalloc.start()
    
    while True:
        # 循环处理逻辑
        snapshot = tracemalloc.take_snapshot()
        top_stats = snapshot.statistics('lineno')
        print("[Top 3 memory allocations]")
        for stat in top_stats[:3]:
            print(stat)
    

2. 优化Deepface模型调用

  • 避免循环内重复加载模型:将模型初始化移到循环外,复用已加载的模型实例,减少重复分配内存:
    from deepface import DeepFace
    # 仅初始化一次模型
    emotion_model = DeepFace.build_model("Emotion")
    
    while True:
        # 循环内复用模型
        analysis_result = DeepFace.analyze(
            img_path=frame,
            model=emotion_model,
            actions=['emotion'],
            enforce_detection=False
        )
    
  • 仅保留必要的分析项(仅emotion),关闭人脸检测强制校验(enforce_detection=False),减少冗余计算。

3. 手动释放资源与垃圾回收

  • 每次循环处理完成后,手动删除图像对象、分析结果等大内存对象,强制触发Python垃圾回收:
    import gc
    import cv2
    
    cap = cv2.VideoCapture(0)
    while True:
        ret, frame = cap.read()
        if not ret:
            continue
        # 处理帧逻辑...
        # 释放资源
        del frame
        del analysis_result
        gc.collect()
    
  • 若使用窗口显示图像,每次循环后关闭临时窗口:cv2.destroyAllWindows(),避免窗口资源累积。

4. 系统层面内存优化

  • 调整OOM Killer触发策略:编辑/etc/sysctl.conf添加vm.swappiness=10,执行sudo sysctl -p生效,降低swap交换优先级,减少磁盘IO带来的性能损耗。
  • 关闭闲置后台服务:停止docker、cups等非必要服务,执行sudo systemctl stop docker && sudo systemctl disable docker。
  • 启用内存压缩:执行sudo systemctl enable nvidia-l4t-memory-compression && sudo reboot,利用Jetson硬件特性压缩内存,缓解物理内存压力。

5. 控制循环执行速率

  • 按照预期1-2帧/秒的需求,在循环末尾添加延时,避免无限制占用CPU和内存:
    import time
    while True:
        # 处理逻辑
        time.sleep(0.5)  # 控制约2帧/秒,可根据实际耗时调整
    

内容的提问来源于stack exchange,提问作者洪莙茹

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 10:35:58