Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

7.4 系统性能优化

资源监控工具

项目中实现资源监控功能:

# 在control.py中添加资源监控
@app.route('/api/system_status')
def system_status():
    import psutil
    cpu_percent = psutil.cpu_percent()
    memory = psutil.virtual_memory()
    return jsonify({
        "cpu": cpu_percent,
        "memory": memory.percent,
        "memory_used": memory.used // (1024 * 1024),  # MB
        "memory_total": memory.total // (1024 * 1024)  # MB
    })

关键路径优化

识别并优化关键路径:

# mycv/color.py中的性能优化
class ColorDetector:
    def process(self, frame):
        # 1. 降低分辨率
        small_frame = cv2.resize(frame, (320, 240))
        
        # 2. 限定处理区域 (ROI)
        h, w = small_frame.shape[:2]
        roi = small_frame[h//4:3*h//4, w//4:3*w//4]
        
        # 3. 简化处理流程
        hsv = cv2.cvtColor(roi, cv2.COLOR_BGR2HSV)
        mask = cv2.inRange(hsv, self.lower, self.upper)
        
        # 4. 优化形态学操作
        kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3))
        mask = cv2.morphologyEx(mask, cv2.MORPH_OPEN, kernel)
        mask = cv2.morphologyEx(mask, cv2.MORPH_CLOSE, kernel)
        
        # 5. 快速轮廓查找
        contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
        
        # 后续处理...

实时性提升策略

在项目中,实现实时性保障措施:

# color_detect.py中的实时性优化
def test():
    # 设置进程优先级
    os.nice(-10)  # 提高进程优先级
    
    # 主循环
    while True:
        start_time = time.time()
        
        # 处理帧
        # ...
        
        # 控制处理频率
        elapsed = time.time() - start_time
        if elapsed < 0.05:  # 20fps
            time.sleep(0.05 - elapsed)

关键函数总结表

函数参数返回值功能描述项目位置
CarCV.process_data()data, nodeMoveData状态机决策car_cv.py
MoveData.to_arrow_array()pa.Array序列化运动指令common/move_data.py
SerialManager.send_command()command安全串口通信color_detect.py
setup_logger()logger日志系统初始化color_detect.py
generate_frames()生成器视频流生成control.py
ColorDetector.process()frame(processed, mask, data)优化网球检测mycv/color.py
system_status()JSON系统资源监控control.py