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