python纯视觉马路车辆行驶超速速度检测代码

代码语言:python

所属分类:其他

代码描述:python纯视觉马路车辆行驶超速速度检测代码,通过c来设置画面两点之间的真实距离,通过s设置检测区域。

代码标签: python 纯视觉 马路 车辆 行驶 超速 速度 检测 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

import cv2
import numpy as np
from ultralytics import YOLO
from collections import defaultdict
import time

class EnhancedVehicleSpeedTracker:
    def __init__(self, video_source=0, calibration_file=None):
        """
        初始化增强版测速系统
        :param video_source: 摄像头索引或视频文件路径
        :param calibration_file: 相机标定参数文件(JSON格式)
        """
        # 加载YOLOv8模型(使用更精确的模型)
        self.model = YOLO('yolov8s.pt')  # 改用small模型,精度更高
        
        # 初始化视频捕获
        self.cap = cv2.VideoCapture(video_source)
        if not self.cap.isOpened():
            raise IOError("无法打开视频源")
        
        # 设置视频属性
        self.cap.set(cv2.CAP_PROP_FRAME_WIDTH, 1280)
        self.cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 720)
        self.cap.set(cv2.CAP_PROP_FPS, 30)
        
        # 车辆类别(COCO数据集)
        self.vehicle_classes = [2, 3, 5, 7]  # car, motorcycle, bus, truck
        
        # 追踪状态存储
        self.track_history = defaultdict(list)
        self.speed_records = {}
        self.frame_count = 0
        
        # 相机标定参数(需根据实际场景标定)
        self.calibration_data = self.load_calibration(calibration_file)
        
        # 测速区域设置(ROI)
        self.speed_zone = None
        
        # 图像增强参数
        self.clahe = cv2.createCLAHE(clipLimit=2.0, tileGridSize=(8, 8))
        
        # 检测参数优化
        self.conf_threshold = 0.25  # 降低置信度阈值,检测更多目标
        self.iou_threshold = 0.45   # 调整IOU阈值
        
    def load_calibration(self, calibration_file):
   .........完整代码请登录后点击上方下载按钮下载查看

网友评论0