海康卫视摄像头yolo检测,转换gps,用高德api借口显示点

直接上代码和效果图,因为用了高德的api接口,无法达到实时性

海康卫视摄像头yolo检测,转换gps,用高德api借口显示点_第1张图片

import sys
import argparse
from yolo_xie import YOLO, detect_video
from PIL import Image
import cv2
import os
import time
import numpy as np
from datetime import datetime
import math
import glob
import urllib.request
import urllib
from urllib.parse import urlparse
import cv2
import json

timenow = time.strftime('%Y%m%d_%H%M%S')
import socket
os.environ["CUDA_VISIBLE_DEVICES"] = "3"

#  python yolo_video_xie.py --input path

import threading

class RTSCapture(cv2.VideoCapture):
    """Real Time Streaming Capture.
    """

    _cur_frame = None
    _reading = False

    @staticmethod
    def create(url):
        """这个类必须使用 RTSCapture.create 方法创建,请不要直接实例化"""
        rtscap = RTSCapture(url)
        rtscap.frame_receiver = threading.Thread(target=rtscap.recv_frame, daemon=True)
        if isinstance(url, str) and url.startswith(("rtsp://", "rtmp://")):
            rtscap._reading = True

        return rtscap

    def isStarted(self):
        """替代 VideoCapture.isOpened() """
        ok = self.isOpened()
        if ok and self._reading:
            ok = self.frame_receiver.is_alive()
        return ok

    def recv_frame(self):
        """子线程读取最新视频帧方法"""
        while self._reading and self.isOpened():
            ok, frame = self.read()
            if not ok: break
            self._cur_frame = frame
        self._reading = False

    def read2(self):
        """读取最新视频帧
        返回结果格式与 VideoCapture.read() 一样
        """
        frame = self._cur_frame
        self._cur_frame = None
        return frame is not None, frame

    def start_read(self):
        """启动子线程读取视频帧"""
        self.frame_receiver.start()
        self.read_latest_frame = self.read2 if self._reading else self.read

    def stop_read(self):
        """退出子线程方法"""
        self._reading = False
      

你可能感兴趣的:(无人驾驶,海康威视,yolo检测,转gps)