Compare commits
11 Commits
Author | SHA1 | Date |
---|---|---|
|
84f83c4549 | 6 months ago |
|
362544aa6b | 6 months ago |
|
69663f45ee | 7 months ago |
|
6f5d873ee8 | 7 months ago |
|
814a5cfd11 | 8 months ago |
|
37da4899e1 | 8 months ago |
|
3831668d34 | 8 months ago |
|
47e3e18cbc | 8 months ago |
|
7879ffc1af | 8 months ago |
|
a3a5b921ca | 8 months ago |
|
1f61f60a93 | 9 months ago |
@ -0,0 +1,197 @@ |
|||
import math |
|||
import cv2 |
|||
import threading |
|||
import time |
|||
from myutils.ConfigManager import myCongif |
|||
from myutils.MyDeque import MyDeque |
|||
from myutils.MyLogger_logger import LogHandler |
|||
|
|||
class CapManager: |
|||
def __init__(self): |
|||
self.logger = LogHandler().get_logger("CapManager") |
|||
self.mycap_map = {} #source,VideoCaptureWithFPS |
|||
self.lock = threading.Lock() |
|||
|
|||
def __del__(self): |
|||
pass |
|||
|
|||
def start_get_video(self,source,type=1): |
|||
vcf = None |
|||
with self.lock: |
|||
if source in self.mycap_map: |
|||
vcf = self.mycap_map[source] |
|||
vcf.addcount() |
|||
else: |
|||
vcf = VideoCaptureWithFPS(source,type) |
|||
self.mycap_map[source] = vcf |
|||
return vcf |
|||
|
|||
def stop_get_video(self,source): |
|||
with self.lock: |
|||
if source in self.mycap_map: |
|||
vcf = self.mycap_map[source] |
|||
vcf.delcount() |
|||
if vcf.icount == 0: |
|||
del self.mycap_map[source] |
|||
else: |
|||
self.logger.error("数据存在问题!") |
|||
|
|||
mCap = CapManager() |
|||
|
|||
|
|||
class VideoCaptureWithFPS: |
|||
'''视频捕获的封装类,是一个通道一个 |
|||
打开摄像头 0--USB摄像头,1-RTSP,2-海康SDK |
|||
''' |
|||
def __init__(self, source,type=1): |
|||
self.source = self.ensure_udp_transport(source) |
|||
self.width = None |
|||
self.height = None |
|||
self.bok = False |
|||
self.icount = 1 #引用次数 |
|||
# GStreamer --- 内存占用太高,且工作环境的部署也不简单 |
|||
# self.pipeline = ( |
|||
# "rtspsrc location=rtsp://192.168.3.102/live1 protocols=udp latency=100 ! " |
|||
# "rtph264depay !" |
|||
# " h264parse !" |
|||
# " avdec_h264 !" |
|||
# " videoconvert !" |
|||
# " appsink" |
|||
# ) |
|||
#self.cap = cv2.VideoCapture(self.pipeline, cv2.CAP_GSTREAMER) |
|||
|
|||
|
|||
# opencv -- 后端默认使用的就是FFmpeg -- 不支持UDP |
|||
self.running = True |
|||
#self.frame_queue = queue.Queue(maxsize=1) |
|||
self.frame_queue = MyDeque(5) |
|||
self.frame = None |
|||
self.read_lock = threading.Lock() |
|||
self.thread = threading.Thread(target=self.update) |
|||
self.thread.start() |
|||
|
|||
def addcount(self): |
|||
self.icount += 1 |
|||
|
|||
def delcount(self): |
|||
self.icount -= 1 |
|||
if self.icount ==0: #结束线程 |
|||
self.release() |
|||
|
|||
def openViedo_opencv(self,source): |
|||
self.cap = cv2.VideoCapture(source,cv2.CAP_FFMPEG) |
|||
# self.cap.set(cv2.CAP_PROP_BUFFERSIZE, 3) |
|||
|
|||
if self.cap.isOpened(): # 若没有打开成功,在读取画面的时候,已有判断和处理 -- 这里也要检查下内存的释放情况 |
|||
self.width = int(self.cap.get(cv2.CAP_PROP_FRAME_WIDTH)) |
|||
self.height = int(self.cap.get(cv2.CAP_PROP_FRAME_HEIGHT)) |
|||
# self.fps = fps # 线程保持最大帧率的刷新画面---过高的帧率会影响CPU性能,但过地的帧率会造成帧积压 |
|||
self.fps = math.ceil( |
|||
self.cap.get(cv2.CAP_PROP_FPS) / float(myCongif.get_data("verify_rate"))) - 1 # 向上取整。 |
|||
#print(self.width, self.height, self.fps) |
|||
else: |
|||
raise ValueError("无法打开视频源") |
|||
|
|||
def ensure_udp_transport(self,source): #使用udp拉流时使用 |
|||
# 检查 source 是否已经包含 '?transport=udp' |
|||
# if not source.endswith("?transport=udp"): |
|||
# # 如果没有,则添加 '?transport=udp' |
|||
# if "?" in source: |
|||
# # 如果已有其他查询参数,用 '&' 拼接 |
|||
# source += "&transport=udp" |
|||
# else: |
|||
# # 否则直接添加 '?transport=udp' |
|||
# source += "?transport=udp" |
|||
return source |
|||
|
|||
def update(self): |
|||
sleep_time = myCongif.get_data("cap_sleep_time") |
|||
reconnect_attempts = myCongif.get_data("reconnect_attempts") |
|||
frame_interval = 1 / (myCongif.get_data("verify_rate")+1) |
|||
last_frame_time = time.time() |
|||
while self.running: |
|||
try: |
|||
# ffmpeg_process = subprocess.Popen( |
|||
# ['ffmpeg', '-i', self.source, '-f', 'image2pipe', '-pix_fmt', 'bgr24', '-vcodec', 'rawvideo', '-'], |
|||
# stdout=subprocess.PIPE, stderr=subprocess.PIPE |
|||
# ) |
|||
#读取帧后,对帧数据进行处理 |
|||
# frame = np.frombuffer(raw_frame, np.uint8).reshape((480, 640, 3)) |
|||
# frame = np.copy(frame) # 创建一个可写的副本 |
|||
self.openViedo_opencv(self.source) |
|||
if not self.cap.isOpened(): |
|||
raise RuntimeError("视频源打开失败") |
|||
failure_count = 0 |
|||
self.bok = True |
|||
while self.running: |
|||
#subprocess-udp 拉流 |
|||
#raw_frame = ffmpeg_process.stdout.read(640 * 480 * 3) |
|||
if self.cap.grab(): |
|||
current_time = time.time() |
|||
if current_time - last_frame_time > frame_interval: |
|||
last_frame_time = current_time |
|||
ret, frame = self.cap.retrieve() |
|||
if ret: |
|||
# resized_frame = cv2.resize(frame, (int(self.width / 2), int(self.height / 2))) |
|||
#self.frame_queue.myappend(frame) |
|||
with self.read_lock: |
|||
self.frame = frame |
|||
failure_count = 0 # 重置计数 |
|||
else: |
|||
failure_count += 1 |
|||
time.sleep(0.1) # 休眠一段时间后重试 |
|||
if failure_count >= reconnect_attempts: |
|||
with self.read_lock: |
|||
self.frame = None |
|||
raise RuntimeError("无法读取视频帧") |
|||
continue |
|||
|
|||
#正常结束,关闭进程,释放资源 |
|||
#ffmpeg_process.terminate() |
|||
self.cap.release() |
|||
self.bok = False |
|||
except Exception as e: |
|||
print(f"发生异常:{e}") |
|||
#ffmpeg_process.terminate() |
|||
self.cap.release() |
|||
self.bok = False |
|||
print(f"{self.source}视频流,将于{sleep_time}秒后重连!") |
|||
# 分段休眠,检测 self.running |
|||
total_sleep = 0 |
|||
while total_sleep < sleep_time: |
|||
if not self.running: |
|||
return |
|||
time.sleep(2) |
|||
total_sleep += 2 |
|||
|
|||
def read(self): |
|||
with self.read_lock: |
|||
frame = self.frame.copy() if self.frame is not None else None |
|||
if frame is not None: |
|||
return True, frame |
|||
else: |
|||
return False, None |
|||
# if not self.frame_queue.empty(): |
|||
# try: |
|||
# frame = self.frame_queue.get(timeout=0.05) |
|||
# except queue.Empty: |
|||
# #print("cap-frame None") |
|||
# return False, None |
|||
# else: |
|||
# #print("cap-frame None") |
|||
# return False, None |
|||
|
|||
# ret = False |
|||
# frame = None |
|||
# if self.bok: #连接状态再读取 |
|||
# frame = self.frame_queue.mypopleft() |
|||
# if frame is not None: |
|||
# ret = True |
|||
# else: |
|||
# print("____读取cap帧为空,采集速度过慢___") |
|||
# return ret, frame |
|||
|
|||
def release(self): |
|||
self.running = False |
|||
self.thread.join() |
|||
self.cap.release() |
@ -0,0 +1,673 @@ |
|||
import time |
|||
import copy |
|||
import importlib.util |
|||
import datetime |
|||
import time |
|||
import threading |
|||
import cv2 |
|||
import ffmpeg |
|||
import subprocess |
|||
import select |
|||
import multiprocessing |
|||
from collections import deque |
|||
from myutils.MyLogger_logger import LogHandler |
|||
from core.CapManager import mCap |
|||
from core.ACLModelManager import ACLModeManger |
|||
from model.plugins.ModelBase import ModelBase |
|||
from core.WarnManager import WarnData |
|||
from core.DataStruct import ModelinData,ModeloutData |
|||
from myutils.MyDeque import MyDeque |
|||
from myutils.ConfigManager import myCongif |
|||
from myutils.mydvpp import bgr_to_yuv420 |
|||
|
|||
class ChannelData: |
|||
def __init__(self,channel_id,deque_length,icount_max,warnM): |
|||
self.logger = LogHandler().get_logger("ChannelDat") |
|||
self.model_platform = myCongif.get_data("model_platform") |
|||
self.channel_id = channel_id #该通道的通道ID |
|||
self.warnM = warnM #报警线程管理对象--MQ |
|||
self.ffprocess = self.start_h264_encoder(myCongif.get_data("mywidth"),myCongif.get_data("myheight"))#基于frame进行编码 |
|||
#视频采集相关 |
|||
self.cap = None #该通道视频采集对象 还是vcf对象 |
|||
self.source = None #rtsp 路径 |
|||
self.frame_rate = myCongif.get_data("frame_rate") |
|||
self.frame_interval = 1.0 / int(myCongif.get_data("verify_rate")) |
|||
|
|||
#模型采集相关 |
|||
self.model = None #模型对象 -- 一通道只关联一个模型 |
|||
self.work_th = None #该通道工作线程句柄 |
|||
self.b_model = False #是否有运行模型线程 |
|||
self.bool_run = True # 线程运行标识 |
|||
self.lock = threading.RLock() # 用于保证线程安全 |
|||
self.icount_max = icount_max # 帧序列号上限 |
|||
self.max_len = myCongif.get_data("buffer_len") |
|||
self.deque_frame = deque(maxlen=self.max_len) #视频缓冲区用于保存录像 |
|||
self.last_frame = None # 保存图片数据 |
|||
#self.frame_queue = queue.Queue(maxsize=1) |
|||
self.frame_queue = MyDeque(15) #分析画面MQ |
|||
self.counter = 0 #帧序列号--保存报警录像使用 |
|||
|
|||
#model独立线程相关 |
|||
self.per_th = None #预处理线程句柄 |
|||
self.per_status= False #预处理线程状态 |
|||
self.post_th = None #后处理线程句柄 |
|||
self.post_status = False #后处理线程状态 |
|||
self.model_nM = None # 模型管理对象 |
|||
self.model_node= None #模型对象 -- inmq,outmq |
|||
|
|||
self.out_mq = MyDeque(20) #分析结果存放MQ |
|||
|
|||
#设置JPEG压缩基本 |
|||
self.encode_param = [int(cv2.IMWRITE_JPEG_QUALITY), myCongif.get_data("encode_param")] #压缩质量(0到100) |
|||
|
|||
#添加一帧图片 |
|||
def add_deque(self, value): |
|||
if len(self.deque_frame) == self.max_len: |
|||
removed_frame = self.deque_frame.popleft() |
|||
del removed_frame |
|||
removed_frame = None |
|||
self.deque_frame.append(value) #deque 满了以后会把前面的数据移除 |
|||
|
|||
#拷贝一份数据 |
|||
def copy_deque(self): |
|||
return copy.deepcopy(self.deque_frame) |
|||
|
|||
#获取最后一帧图片 |
|||
def get_last_frame(self): |
|||
if self.b_model: |
|||
# with self.lock: |
|||
# frame = self.last_frame |
|||
# return frame |
|||
frame = self.frame_queue.mypopleft() |
|||
return frame |
|||
else: #如果没有运行,直接从cap获取画面 |
|||
if self.cap: |
|||
ret, frame = self.cap.read() # 除了第一帧,其它应该都是有画面的 |
|||
if not ret: |
|||
self.logger.debug(f"{self.channel_id}--web--获取原画失败,队列空") |
|||
return None |
|||
ret,buffer_bgr_webp = self._encode_frame(frame) |
|||
return buffer_bgr_webp |
|||
return None |
|||
|
|||
def update_last_frame(self,buffer): |
|||
if buffer: |
|||
#print(f"{time.time()}--{self.channel_id}--数据入frame_queue队列\r") |
|||
self.frame_queue.myappend(buffer) |
|||
# with self.lock: |
|||
# self.last_frame = None |
|||
# self.last_frame = buffer |
|||
|
|||
#------------h264编码相关--------------- |
|||
def start_h264_encoder(self,width, height): #宽高一样,初步定全进程一个 libx264 h264_ascend |
|||
process = subprocess.Popen( |
|||
['ffmpeg', |
|||
'-f', 'rawvideo', |
|||
'-pix_fmt', 'yuv420p', |
|||
'-s', f'{width}x{height}', |
|||
'-i', '-', # Take input from stdin |
|||
'-an', # No audio |
|||
'-vcodec', 'libx264', |
|||
'-f', 'flv', |
|||
'-'], |
|||
stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE |
|||
) |
|||
return process |
|||
|
|||
def close_h264_encoder(self): |
|||
self.ffprocess.stdin.close() |
|||
self.ffprocess.wait() |
|||
|
|||
def encode_frame_h264_bak(self,frame): |
|||
try: |
|||
process = ( |
|||
ffmpeg |
|||
.input('pipe:', format='rawvideo', pix_fmt='bgr24', s=f'{frame.shape[1]}x{frame.shape[0]}') |
|||
.output('pipe:', format='flv',vcodec='h264_ascend') |
|||
.run_async(pipe_stdin=True, pipe_stdout=True, pipe_stderr=True) |
|||
) |
|||
out, err = process.communicate(input=frame.tobytes()) |
|||
if process.returncode != 0: |
|||
raise RuntimeError(f"FFmpeg encoding failed: {err.decode('utf-8')}") |
|||
return out |
|||
except Exception as e: |
|||
print(f"Error during frame encoding: {e}") |
|||
return None |
|||
|
|||
def encode_frame_h264(self, frame,timeout=1): |
|||
yuv_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2YUV_I420) |
|||
if self.ffprocess.poll() is not None: |
|||
raise RuntimeError("FFmpeg process has exited unexpectedly.") |
|||
# Write frame to stdin of the FFmpeg process |
|||
try: |
|||
self.ffprocess.stdin.write(yuv_frame.tobytes()) |
|||
self.ffprocess.stdin.flush() |
|||
# Capture the encoded output |
|||
buffer_size = 1024 * 1 # Adjust this based on the size of the encoded frame |
|||
encoded_frame = bytearray() |
|||
start_time = time.time() |
|||
|
|||
while True: |
|||
# Use select to handle non-blocking reads from both stdout and stderr |
|||
#ready_to_read, _, _ = select.select([self.ffprocess.stdout, self.ffprocess.stderr], [], [], timeout) |
|||
ready_to_read, _, _ = select.select([self.ffprocess.stdout.fileno(), self.ffprocess.stderr.fileno()], |
|||
[], [], timeout) |
|||
|
|||
# Check if there's data in stdout (encoded frame) |
|||
if self.ffprocess.stdout.fileno() in ready_to_read: |
|||
chunk = self.ffprocess.stdout.read(buffer_size) |
|||
if chunk: |
|||
encoded_frame.extend(chunk) |
|||
else: |
|||
break # No more data to read from stdout |
|||
|
|||
# Check if there's an error in stderr |
|||
if self.ffprocess.stderr.fileno() in ready_to_read: |
|||
error = self.ffprocess.stderr.read(buffer_size).decode('utf-8') |
|||
raise RuntimeError(f"FFmpeg error: {error}") |
|||
|
|||
# Timeout handling to avoid infinite blocking |
|||
if time.time() - start_time > timeout: |
|||
raise RuntimeError("FFmpeg encoding timed out.") |
|||
|
|||
if not encoded_frame: |
|||
raise RuntimeError("No encoded data received from FFmpeg.") |
|||
|
|||
# Optional: Check for errors in stderr |
|||
# stderr_output = self.process.stderr.read() |
|||
# if "error" in stderr_output.lower(): |
|||
# raise RuntimeError(f"FFmpeg error: {stderr_output}") |
|||
return bytes(encoded_frame) |
|||
|
|||
except Exception as e: |
|||
print(f"Error during frame encoding: {e}") |
|||
return None |
|||
|
|||
def _frame_pre_work(self, frame): |
|||
''' |
|||
对采集到的图片数据进行预处理,需要确保是在原图上进行的修改 |
|||
:param frame: |
|||
:return: |
|||
''' |
|||
# ----------添加时间戳------------- |
|||
# 获取当前时间 |
|||
current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S") |
|||
# 设置字体和位置 |
|||
font = cv2.FONT_HERSHEY_SIMPLEX |
|||
position = (10, 30) # 时间戳在左上角 |
|||
font_scale = 1 |
|||
color = (255, 255, 255) # 白色 |
|||
thickness = 2 |
|||
# 在帧上绘制时间戳 |
|||
cv2.putText(frame, current_time, position, font, font_scale, color, thickness, cv2.LINE_AA) |
|||
return frame |
|||
|
|||
def _encode_frame(self,frame,itype=0): |
|||
ret = False |
|||
buffer_bgr_webp = None |
|||
if frame is not None: |
|||
if itype == 0: #jpg |
|||
self._frame_pre_work(frame) #对图片添加一些信息,目前是添加时间戳(model是入队列的时间,cap是发送前取帧的时间) |
|||
ret, frame_bgr_webp = cv2.imencode('.jpg', frame, self.encode_param) |
|||
if ret: |
|||
buffer_bgr_webp = frame_bgr_webp.tobytes() |
|||
elif itype == 1: #H264 |
|||
try: |
|||
buffer_bgr_webp = self.encode_frame_h264(frame) |
|||
ret = True |
|||
except Exception as e: |
|||
print(e) |
|||
else: |
|||
print("错误的参数!!") |
|||
return ret,buffer_bgr_webp |
|||
|
|||
#帧序列号自增 一个线程中处理,不用加锁 |
|||
def increment_counter(self): |
|||
self.counter += 1 |
|||
if self.counter > self.icount_max: |
|||
self.counter = 0 |
|||
|
|||
def get_counter(self): |
|||
return self.counter |
|||
|
|||
def _start_cap_th(self,source,type=1): |
|||
'''开始cap采集线程 |
|||
type = 打开摄像头 0--USB摄像头,1-RTSP,2-海康SDK |
|||
''' |
|||
ret = False |
|||
if self.cap: |
|||
mCap.stop_get_video(self.source) |
|||
self.cap = None |
|||
self.cap = mCap.start_get_video(source,type) |
|||
self.source = source |
|||
if self.cap: |
|||
ret = True |
|||
return ret |
|||
|
|||
def _stop_cap_th(self): |
|||
'''停止cap采集线程 |
|||
重要约束:停止cap线程前,必须先停止model线程 |
|||
''' |
|||
if self.b_model: |
|||
self.logger.error("停止采集线程前,请先停止model线程") |
|||
return False |
|||
else: |
|||
if self.cap: |
|||
mCap.stop_get_video(self.source) |
|||
self.cap = None |
|||
return True #一般不会没有cap |
|||
|
|||
def _pre_work_th(self,schedule): |
|||
'''一个通道一个线程,关联的模型在一个线程检测,局部变量都是一个通道独有''' |
|||
if not self.cap: |
|||
self.logger.error("采集线程未正常启动,不进行工作") |
|||
return |
|||
while self.model_node.m_p_status.value == 0: #避免模型没启动成功,模型线程在运行 |
|||
time.sleep(1) |
|||
if self.model_node.m_p_status.value == 1: |
|||
# 开始循环处理业务 |
|||
last_frame_time = time.time() # 初始化个读帧时间 |
|||
self.per_status = True |
|||
self.b_model = True |
|||
while self.bool_run: # 基于tag 作为运行标识。 线程里只是读,住线程更新,最多晚一轮,应该不用线程锁。需验证 |
|||
# 帧率控制帧率 |
|||
current_time = time.time() |
|||
elapsed_time = current_time - last_frame_time |
|||
if elapsed_time < self.frame_interval: |
|||
time.sleep(self.frame_interval - elapsed_time) # 若小于间隔时间则休眠 |
|||
last_frame_time = time.time() |
|||
# *********取画面************* |
|||
ret, frame = self.cap.read() # 除了第一帧,其它应该都是有画面的 |
|||
if not ret: |
|||
self.logger.debug(f"{self.channel_id}--model--获取cap画面失败,队列空") |
|||
continue # 没读到画面继续 |
|||
# 验证检测计划,是否在布防时间内 |
|||
now = datetime.datetime.now() # 获取当前日期和时间 |
|||
weekday = now.weekday() # 获取星期几,星期一是0,星期天是6 |
|||
hour = now.hour |
|||
if schedule[weekday][hour] == 1: |
|||
#图片预处理 |
|||
img,scale_ratio, pad_size = self.model_node.model.prework(frame) |
|||
indata = ModelinData(self.channel_id,img,frame,scale_ratio, pad_size) |
|||
self.model_node.pro_add_data(indata) #数据入队列 |
|||
else:# 不在计划则不进行验证,直接返回图片 --存在问题是:result 漏数据 |
|||
ret, frame_bgr_webp = cv2.imencode('.jpg', frame,self.encode_param) |
|||
if not ret: |
|||
buffer_bgr_webp = None |
|||
else: |
|||
buffer_bgr_webp = frame_bgr_webp.tobytes() |
|||
self.update_last_frame(buffer_bgr_webp) |
|||
else: |
|||
self.logger.error("模型线程为启动成功,不进行工作") |
|||
return |
|||
self.b_model = False |
|||
self.per_status = False |
|||
|
|||
def _post_work_th(self,duration_time,proportion,verify_rate,warn_interval,model_name,check_area,polygon,conf_threshold,iou_thres): |
|||
# 初始化业务数据 |
|||
result = [0 for _ in range(duration_time * verify_rate)] # 初始化时间*验证帧率数量的结果list |
|||
warn_last_time = time.time() |
|||
tmpcount = 0 |
|||
while self.bool_run: |
|||
out_data = self.out_mq.mypopleft() #(image,scale_ratio, pad_size,outputs): |
|||
if not out_data: |
|||
tmpcount += 1 |
|||
if tmpcount == 10: |
|||
print(f"{time.time()}--{self.channel_id}--model-outmq 连续10次没有数据\r") |
|||
time.sleep(1) |
|||
continue |
|||
tmpcount = 0 |
|||
#开始后处理 |
|||
bwarn, warn_text = self.model_node.model.postwork(out_data.image,out_data.outputs,out_data.scale_ratio,out_data.pad_size, |
|||
check_area,polygon,conf_threshold,iou_thres) |
|||
# 对识别结果要部要进行处理 |
|||
if bwarn: |
|||
# 绘制报警文本 |
|||
cv2.putText(out_data.image, warn_text, (50, 50), |
|||
cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2) |
|||
result.append(1) # 要验证数组修改,是地址修改吗? |
|||
else: # 没有产生报警也需要记录,统一计算占比 |
|||
result.append(0) |
|||
#分析画面保存 |
|||
# ret, frame_bgr_webp = cv2.imencode('.jpg', out_data.image,self.encode_param) |
|||
# buffer_bgr_webp = None |
|||
# if ret: |
|||
# buffer_bgr_webp = frame_bgr_webp.tobytes() |
|||
ret, buffer_bgr_webp = self._encode_frame(out_data.image) |
|||
|
|||
# 分析图片放入缓冲区内存中 |
|||
self.add_deque(out_data.image) # 缓冲区大小由maxlen控制 超上限后,删除最前的数据 |
|||
# 分析画面一直更新最新帧,提供网页端显示 |
|||
self.update_last_frame(buffer_bgr_webp) |
|||
|
|||
if bwarn: |
|||
# 验证result -是否触发报警要求 --遍历每个模型执行的result |
|||
count_one = float(sum(result)) # 1,0 把1累加的和就是1的数量 |
|||
ratio_of_ones = count_one / len(result) |
|||
# self.logger.debug(result) |
|||
if ratio_of_ones >= proportion: # 触发报警 |
|||
# 基于时间间隔判断 |
|||
current_time = time.time() |
|||
elapsed_time = current_time - warn_last_time |
|||
if elapsed_time < warn_interval: |
|||
continue |
|||
warn_last_time = current_time |
|||
# 处理报警 |
|||
warn_data = WarnData() |
|||
warn_data.model_name = model_name |
|||
warn_data.warn_text = warn_text |
|||
warn_data.img_buffer = self.copy_deque() # 深度复制缓冲区 |
|||
warn_data.width = self.cap.width |
|||
warn_data.height = self.cap.height |
|||
warn_data.channel_id = self.channel_id |
|||
self.warnM.add_warn_data(warn_data) |
|||
|
|||
# 结果记录要清空 |
|||
for i in range(len(result)): |
|||
result[i] = 0 |
|||
|
|||
def _verify(self,frame,model,model_data,schedule,result,isdraw=1): |
|||
'''验证执行主函数,实现遍历通道关联的模型,调用对应模型执行验证''' |
|||
#img = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) |
|||
img = frame |
|||
#验证检测计划,是否在布防时间内 |
|||
now = datetime.datetime.now() # 获取当前日期和时间 |
|||
weekday = now.weekday() # 获取星期几,星期一是0,星期天是6 |
|||
hour = now.hour |
|||
result.pop(0) # 保障结果数组定长 --先把最早的结果推出数组 |
|||
|
|||
warntext = "" |
|||
if model and schedule[weekday][hour] == 1: #不在计划则不进行验证,直接返回图片 |
|||
# 调用模型,进行检测,model是动态加载的,具体的判断标准由模型内执行 ---- ********* |
|||
# bwarn = False |
|||
# warntext = "" |
|||
# time.sleep(2) |
|||
bwarn, warntext = model.verify(img, model_data,isdraw) #****************重要 |
|||
# 对识别结果要部要进行处理 |
|||
if bwarn: |
|||
# 绘制报警文本 |
|||
cv2.putText(img, warntext, (50, 50), |
|||
cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2) |
|||
result.append(1) #要验证数组修改,是地址修改吗? |
|||
else: #没有产生报警也需要记录,统一计算占比 |
|||
warntext = "" |
|||
result.append(0) |
|||
else: |
|||
result.append(0) |
|||
|
|||
# 将检测结果图像转换为帧--暂时用不到AVFrame--2024-7-5 |
|||
# new_frame_rgb_avframe = av.VideoFrame.from_ndarray(img, format="rgb24") # AVFrame |
|||
# new_frame_rgb_avframe.pts = None # 添加此行确保有pts属性 |
|||
# if isinstance(img, np.ndarray): -- 留个纪念 |
|||
|
|||
#处理完的图片后返回-bgr模式 |
|||
#img_bgr_ndarray = cv2.cvtColor(img, cv2.COLOR_RGB2BGR) |
|||
|
|||
ret,buffer_bgr_webp = self._encode_frame(img) |
|||
|
|||
#buffer_bgr_webp = self.encode_frame_to_flv(img) |
|||
return buffer_bgr_webp,img,warntext |
|||
|
|||
def _dowork_thread(self,channel_id,model_data,schedule,verify_rate,warn_interval): |
|||
'''一个通道一个线程,关联的模型在一个线程检测,局部变量都是一个通道独有''' |
|||
if not self.cap: |
|||
self.logger.error("采集线程未正常启动,退出model线程") |
|||
return |
|||
#加载自定义模型文件 |
|||
model = self._import_model(str(channel_id), model_data[5], model_data[8], model_data[9]) # 动态加载模型处理文件py |
|||
if not model: |
|||
self.logger.error("自定义模型文件加载失败,退出model线程") |
|||
return |
|||
#初始化模型运行资源 |
|||
context = None |
|||
device_id = myCongif.get_data("device_id") |
|||
if self.model_platform == "acl": # ACL线程中初始化内容 |
|||
context = ACLModeManger.th_inti_acl(device_id) #创建context |
|||
#初始化模型资源 -- 加载模型文件 |
|||
ret = model.init_acl_resource() #加载和初始化离线模型文件--om文件 |
|||
if not ret: |
|||
print("初始化模型资源出错,退出线程!") |
|||
return |
|||
#初始化业务数据 |
|||
result = [0 for _ in range(model_data[3] * verify_rate)] # 初始化时间*验证帧率数量的结果list |
|||
proportion = model_data[4] # 判断是否报警的占比 |
|||
warn_last_time = time.time() |
|||
#warn_save_count = 0 #保存录像的最新帧初始化为0 |
|||
|
|||
#开始循环处理业务 |
|||
last_frame_time = time.time() #初始化个读帧时间 |
|||
self.b_model = True |
|||
while self.bool_run: #基于tag 作为运行标识。 线程里只是读,住线程更新,最多晚一轮,应该不用线程锁。需验证 |
|||
# 帧率控制帧率 |
|||
current_time = time.time() |
|||
elapsed_time = current_time - last_frame_time |
|||
if elapsed_time < self.frame_interval: |
|||
time.sleep(self.frame_interval - elapsed_time) #若小于间隔时间则休眠 |
|||
last_frame_time = time.time() |
|||
#*********取画面************* |
|||
ret,frame = self.cap.read() #除了第一帧,其它应该都是有画面的 |
|||
if not ret: |
|||
#self.logger.debug(f"{self.channel_id}--model--获取cap画面失败,队列空") |
|||
continue #没读到画面继续 |
|||
|
|||
#执行图片推理 |
|||
buffer_bgr_webp,img_bgr_ndarray,warn_text = self._verify(frame,model,model_data,schedule,result) |
|||
|
|||
#分析图片放入内存中 |
|||
self.add_deque(img_bgr_ndarray) # 缓冲区大小由maxlen控制 超上限后,删除最前的数据 |
|||
|
|||
# 分析画面一直更新最新帧,提供网页端显示 |
|||
self.update_last_frame(buffer_bgr_webp) |
|||
|
|||
if warn_text: |
|||
#验证result -是否触发报警要求 --遍历每个模型执行的result |
|||
count_one = float(sum(result)) #1,0 把1累加的和就是1的数量 |
|||
ratio_of_ones = count_one / len(result) |
|||
#self.logger.debug(result) |
|||
if ratio_of_ones >= proportion: #触发报警 |
|||
# 基于时间间隔判断 |
|||
current_time = time.time() |
|||
elapsed_time = current_time - warn_last_time |
|||
if elapsed_time < warn_interval: |
|||
continue |
|||
warn_last_time = current_time |
|||
# 处理报警 |
|||
warn_data = WarnData() |
|||
warn_data.model_name = model_data[7] |
|||
warn_data.warn_text = warn_text |
|||
warn_data.img_buffer = self.copy_deque() # 深度复制缓冲区 |
|||
warn_data.width = self.cap.width |
|||
warn_data.height = self.cap.height |
|||
warn_data.channel_id = channel_id |
|||
self.warnM.add_warn_data(warn_data) |
|||
|
|||
#结果记录要清空 |
|||
for i in range(len(result)): |
|||
result[i] = 0 |
|||
|
|||
# end_time = time.time() # 结束时间 |
|||
# print(f"Processing time: {end_time - start_time} seconds") |
|||
# 本地显示---测试使用 |
|||
# if channel_id == 2: |
|||
# cv2.imshow(str(channel_id), img) |
|||
# if cv2.waitKey(1) & 0xFF == ord('q'): |
|||
# break |
|||
|
|||
#结束线程 |
|||
print("开始结束工作线程") |
|||
self.b_model = False |
|||
#反初始化 |
|||
if self.model_platform == "acl": |
|||
try: |
|||
model.release() #释放模型资源资源 |
|||
# 删除模型对象 |
|||
del model |
|||
#释放context |
|||
if context: # ACL线程中反初始化内容 -- 若线程异常退出,这些资源就不能正常释放了 |
|||
# 再释放context |
|||
ACLModeManger.th_del_acl(context) |
|||
except Exception as e: |
|||
print(e) |
|||
#cv2.destroyAllWindows() |
|||
print("线程结束!!!!") |
|||
|
|||
#2024-9-9 新增兼容独立model线程 根据self.model_node判断,None:1通道1线程,not None:独立线程 |
|||
#2024-10-14 model调整为独立子进程执行 |
|||
def _start_model_th(self,model_data,schedule,type=1): |
|||
verify_rate = myCongif.get_data("verify_rate") |
|||
warn_interval = myCongif.get_data("warn_interval") |
|||
self.bool_run = True |
|||
if self.model_nM:#要起个预处理线程,和一个后处理线程 |
|||
#启动后处理线程 |
|||
self.post_th = threading.Thread(target=self._post_work_th, |
|||
args=(model_data[3],model_data[4],verify_rate,warn_interval,model_data[7], |
|||
model_data[1],model_data[2],model_data[8],model_data[9])) |
|||
self.post_th.start() |
|||
|
|||
# 启动模型线程,若线程已启动,则+1 |
|||
self.model_nM.start_model_th(self.channel_id,self.out_mq) |
|||
self.model_node = self.model_nM.getModle_Nodel(self.channel_id) |
|||
if not self.model_node: |
|||
self.logger.error("model_node 不应该为空!!") |
|||
self.bool_run = False |
|||
return |
|||
|
|||
#启动预处理线程 |
|||
self.per_th = threading.Thread(target=self._pre_work_th,args=(schedule,)) |
|||
self.per_th.start() |
|||
|
|||
else: |
|||
self.work_th = threading.Thread(target=self._dowork_thread, |
|||
args=(self.channel_id, model_data, schedule, verify_rate, |
|||
warn_interval)) # 一个视频通道一个线程 |
|||
self.work_th.start() |
|||
|
|||
def _stop_model_th(self): |
|||
if self.model_nM: #独立线程,需要停止预处理线程,和后处理线程 |
|||
self.bool_run = False |
|||
#停止预处理线程 |
|||
if self.per_th: |
|||
self.per_th.join() |
|||
self.per_th = None |
|||
#停止model线程 -1 |
|||
self.model_nM.stop_model_th(self.channel_id) |
|||
#停止后处理线程 |
|||
if self.post_th: |
|||
self.post_th.join() |
|||
self.post_th = None |
|||
#清空MQ |
|||
self.out_mq.myclear()#清空后处理mq中未处理的数据 |
|||
|
|||
else: |
|||
if self.work_th: |
|||
if self.b_model: |
|||
self.bool_run = False |
|||
self.work_th.join() #线程结束时,会把b_model置False |
|||
self.logger.debug(f"{self.channel_id}停止工作线程") |
|||
self.work_th = None |
|||
|
|||
def _import_model(self,model_name,model_path,threshold,iou_thres): |
|||
''' |
|||
根据路径,动态导入模块 |
|||
:param model_name: 模块名称 --用通道ID代替 |
|||
:param model_path: 模块路径 |
|||
:param threshold: 置信阈值 |
|||
:param iou_thres: iou阈值 |
|||
:return: |
|||
''' |
|||
try: |
|||
module_path = model_path.replace("/", ".").rsplit(".", 1)[0] |
|||
print(module_path) |
|||
# 动态导入模块 |
|||
module = importlib.import_module(module_path) |
|||
# 从模块中获取指定的类 |
|||
Model = getattr(module, "Model") |
|||
# 使用 Model 类 |
|||
model_instance = Model(model_path,threshold,iou_thres) |
|||
return model_instance |
|||
except ModuleNotFoundError as e: |
|||
print(f"Module not found: {e}") |
|||
return None |
|||
except AttributeError as e: |
|||
print(f"Class not found in module: {e}") |
|||
return None |
|||
except Exception as e: |
|||
print(f"An unexpected error occurred: {e}") |
|||
return None |
|||
# if os.path.exists(model_path): |
|||
# module_spec = importlib.util.spec_from_file_location(model_name, model_path) |
|||
# if module_spec is None: |
|||
# self.logger.error(f"{model_path} 加载错误") |
|||
# return None |
|||
# module = importlib.util.module_from_spec(module_spec) |
|||
# start_time = time.time() |
|||
# print(f"通道{self.channel_id},开始exec_module自定义模型文件") |
|||
# module_spec.loader.exec_module(module) |
|||
# end_time = time.time() |
|||
# print(f"通道{self.channel_id},完成exec_module模型文件实例化耗时{end_time - start_time}") |
|||
# |
|||
# try: |
|||
# md = getattr(module, "Model")(model_path,threshold,iou_thres) #实例化类 |
|||
# except Exception as e: |
|||
# self.logger.error(f"{model_path} 实例化错误,退出模型线程") |
|||
# return None |
|||
# |
|||
# if not isinstance(md, ModelBase): |
|||
# self.logger.error("{} not zf_model".format(md)) |
|||
# return None |
|||
# else: |
|||
# self.logger.error("{}文件不存在".format(model_path)) |
|||
# return None |
|||
# self.logger.debug(f"{model_path} 加载成功!!!!") |
|||
# return md |
|||
|
|||
def start_work(self,cap_data,model_data,schedule,type,model_NodeM=None): |
|||
''' |
|||
开始工作线程,包括视频通道采集和模型处理 |
|||
:param cap_data: [source,type] |
|||
:param model_data: 跟通道关联的模型数据 |
|||
strsql = ( |
|||
f"select t1.model_id,t1.check_area,t1.polygon ,t2.duration_time,t2.proportion,t2.model_path,t1.ID," |
|||
f"t2.model_name,t1.conf_thres,t1.iou_thres " |
|||
f"from channel2model t1 left join model t2 on t1.model_id = t2.ID where t1.channel_id ={channel_id};") |
|||
:param schedule |
|||
:param type: 0-启动所有线程,1-只启动cap采集线程,2-只启动model模型处理线程 |
|||
:return: True,False |
|||
''' |
|||
ret = False |
|||
self.model_nM = model_NodeM |
|||
if type==0: |
|||
self._start_cap_th(cap_data[0],cap_data[1]) #先cap,再model |
|||
self._start_model_th(model_data,schedule) |
|||
ret = True |
|||
elif type == 1: |
|||
self._start_cap_th(cap_data[0],cap_data[1]) |
|||
ret = True |
|||
elif type == 2: |
|||
self._start_model_th(model_data,schedule) |
|||
ret = True |
|||
else: |
|||
self.logger.error("暂时还不支持该类型工作!") |
|||
return ret |
|||
|
|||
def stop_work(self,type=0): |
|||
''' |
|||
清空数据,停止工作线程(若有 ,并删除deque 和 last_frame) |
|||
:param type: 0-停止所有线程,1-只停止cap采集线程,2-只停止model模型处理线程 |
|||
:return: True,False |
|||
''' |
|||
ret = False |
|||
if type == 0: |
|||
self._stop_model_th() |
|||
self._stop_cap_th() |
|||
ret = True |
|||
elif type == 1: |
|||
self._stop_cap_th() |
|||
ret = True |
|||
elif type == 2: |
|||
self.logger.debug("单独停止工作线程") |
|||
self._stop_model_th() |
|||
ret = True |
|||
else: |
|||
self.logger.error("暂时还不支持该类型工作!") |
|||
return ret |
@ -1,120 +1,156 @@ |
|||
import cv2 |
|||
import threading |
|||
from collections import deque |
|||
import numpy as np |
|||
import time |
|||
import copy |
|||
import queue |
|||
|
|||
class ChannelData: |
|||
def __init__(self, str_url, int_type, bool_run, deque_length,icount_max): |
|||
self.str_url = str_url #视频源地址 |
|||
self.int_type = int_type #视频源类型,0-usb,1-rtsp,2-hksdk |
|||
self.bool_run = bool_run #线程运行标识 |
|||
self.deque_frame = deque(maxlen=deque_length) |
|||
self.last_frame = None # 保存图片数据 |
|||
self.frame_queue = queue.Queue(maxsize=1) |
|||
self.counter = 0 #帧序列号--保存报警录像使用 |
|||
self.icount_max = icount_max #帧序列号上限 |
|||
self.lock = threading.RLock() # 用于保证线程安全 |
|||
|
|||
#添加一帧图片 |
|||
def add_deque(self, value): |
|||
self.deque_frame.append(value) #deque 满了以后会把前面的数据移除 |
|||
|
|||
#拷贝一份数据 |
|||
def copy_deque(self): |
|||
return copy.deepcopy(self.deque_frame) |
|||
|
|||
#获取最后一帧图片 |
|||
def get_last_frame(self): |
|||
with self.lock: |
|||
frame = self.last_frame |
|||
return frame |
|||
# if not self.frame_queue.empty(): |
|||
# return self.frame_queue.get() |
|||
# else: |
|||
# return None |
|||
|
|||
|
|||
def update_last_frame(self,buffer): |
|||
if buffer: |
|||
with self.lock: |
|||
self.last_frame = None |
|||
self.last_frame = buffer |
|||
# if not self.frame_queue.full(): |
|||
# self.frame_queue.put(buffer) |
|||
# else: |
|||
# self.frame_queue.get() # 丢弃最旧的帧 |
|||
# self.frame_queue.put(buffer) |
|||
|
|||
|
|||
#帧序列号自增 一个线程中处理,不用加锁 |
|||
def increment_counter(self): |
|||
self.counter += 1 |
|||
if self.counter > self.icount_max: |
|||
self.counter = 0 |
|||
|
|||
def get_counter(self): |
|||
return self.counter |
|||
|
|||
#清空数据,主要是删除deque 和 last_frame |
|||
def clear(self): |
|||
with self.lock: |
|||
self.bool_run = False |
|||
time.sleep(1) #休眠一秒,等待通道对应的子线程,停止工作。 |
|||
self.deque_frame.clear() |
|||
self.last_frame = None |
|||
|
|||
def stop_run(self): |
|||
self.bool_run = False |
|||
|
|||
|
|||
import base64 |
|||
from myutils.ConfigManager import myCongif |
|||
from myutils.MyLogger_logger import LogHandler |
|||
#独立模型线程 |
|||
from core.ModelNodeManager import ModelNodeManger |
|||
#from core.ModelNode import ModelNode |
|||
from core.ChannelData import ChannelData #其实ChannelNode会更加贴切一些 |
|||
|
|||
''' |
|||
通道对象管理类,只针对通道节点的维护,和工作线程的开启和停止, ChannelData的操作必须维护在ChannelManager里面!不能输出ChannelData对象! |
|||
''' |
|||
class ChannelManager: |
|||
def __init__(self): |
|||
self.channels = {} |
|||
self.lock = threading.RLock() # 用于保证字典操作的线程安全 |
|||
self._channels = {} #channel_id ChannelData(C_Node) |
|||
self.cm_lock = threading.RLock() # 用于保证字典操作的线程安全 |
|||
self.logger = LogHandler().get_logger("ChannelManager") |
|||
|
|||
# 独立Model_th相关参数 --- modelNode 用一个类封装下model线程和其相关参数 |
|||
self.model_list = {} # model_id -- modelNode |
|||
self.workType = int(myCongif.get_data("workType")) |
|||
self.device_id = myCongif.get_data("device_id") |
|||
|
|||
#增加节点 |
|||
def add_channel(self, channel_id, str_url, int_type, bool_run, deque_length=10,icount_max=100000): |
|||
with self.lock: |
|||
if channel_id in self.channels: #若已经有数据,先删除后再增加 |
|||
self.channels[channel_id].clear() # 手动清理资源 |
|||
del self.channels[channel_id] |
|||
self.channels[channel_id] = ChannelData(str_url, int_type, bool_run, deque_length,icount_max) |
|||
def add_channel(self, channel_id,deque_length,icount_max,warnM): |
|||
ret = False |
|||
with self.cm_lock: |
|||
if channel_id in self._channels: #若已经有数据,先删除后再增加 |
|||
self._channels[channel_id].stop_work(0) # 停止工作 |
|||
del self._channels[channel_id] |
|||
if self.workType == 2: # 若有model线程停止了,则删除该model节点 |
|||
self.delModelNode() |
|||
#channel_id,deque_length,icount_max,warnM |
|||
ch_data = ChannelData(channel_id, deque_length, icount_max,warnM) |
|||
self._channels[channel_id] = ch_data |
|||
ret = True |
|||
return ret |
|||
|
|||
#删除节点 |
|||
def delete_channel(self, channel_id): |
|||
with self.lock: |
|||
if channel_id in self.channels: |
|||
self.channels[channel_id].clear() # 手动清理资源 |
|||
del self.channels[channel_id] |
|||
|
|||
#获取节点 |
|||
def get_channel(self, channel_id): |
|||
with self.lock: |
|||
return self.channels.get(channel_id) |
|||
|
|||
#停止工作线程 |
|||
def stop_channel(self,channel_id): |
|||
with self.lock: |
|||
def delete_channel(self, channel_id): #需要验证资源的释放清空 |
|||
'''删除节点,包含了停止该节点工作线程''' |
|||
ret = True |
|||
with self.cm_lock: |
|||
if channel_id == 0: |
|||
for clannel_data in self._channels: |
|||
clannel_data.stop_work(0) |
|||
self._channels.clear() #清空节点 |
|||
else: |
|||
if channel_id in self._channels: |
|||
self._channels[channel_id].stop_work(0) #停止工作 |
|||
del self._channels[channel_id] |
|||
if self.workType == 2: #若有model线程停止了,则删除该model节点 |
|||
self.delModelNode() |
|||
return ret |
|||
|
|||
#开始工作线程 |
|||
def start_channel(self,channel_id,cap_data,model_data,schedule,type): |
|||
''' |
|||
启动通道的工作线程 -- 启动应该没有一下子启动所有 |
|||
:param channel_id: 启动通道的ID channel_id == 0的情况已经在上一层处理了,这里不会有0 |
|||
:param cap_data: [source,type] |
|||
:param model_data: 跟该通道关联的模型数据 |
|||
:param schedule |
|||
:param type: 0-启动所有工作线程,1-启动CAP采集线程,2-启动model工资线程 |
|||
:return: |
|||
''' |
|||
ret = False |
|||
with self.cm_lock: |
|||
if channel_id in self._channels: |
|||
c_node = self._channels[channel_id] |
|||
model_nodeM = None |
|||
if self.workType == 2 and type !=1: #需要确保当type!=1时,model_data必须有数据 -- 调用时已经有判断 |
|||
model_nodeM = self.CreateModelNode(model_data[0], model_data[5], channel_id) |
|||
ret = c_node.start_work(cap_data,model_data,schedule,type,model_nodeM) |
|||
return ret |
|||
|
|||
#停止工作线程---要把视频采集线程停止掉 |
|||
def stop_channel(self,channel_id,type): #9-10截止目前就重启模型线程时用到该函数(channel_id,2) |
|||
''' |
|||
停止通道的工作线程 |
|||
:param channel_id: 0-停止所有通道的工作线程,其他值为具体停止哪个工作线程 |
|||
:param type: 0-停止所有工作线程,1-停止CAP采集线程,2-停止model工资线程 |
|||
:return: |
|||
''' |
|||
with self.cm_lock: |
|||
ret = False |
|||
if channel_id == 0: |
|||
for clannel_id,clannel_data in self.channels.items(): |
|||
clannel_data.clear() |
|||
del self.channels |
|||
# for clannel_id,clannel_data in self.channels.items(): |
|||
for clannel_data in self._channels: |
|||
clannel_data.stop_work(type) |
|||
ret = True |
|||
else: |
|||
if channel_id in self.channels: |
|||
self.channels[channel_id].clear() # 手动清理资源 |
|||
del self.channels[channel_id] |
|||
if channel_id in self._channels: |
|||
self._channels[channel_id].stop_work(type) |
|||
ret =True |
|||
|
|||
if self.workType == 2: #若有model线程停止了,则删除该model节点 |
|||
self.delModelNode() |
|||
return ret |
|||
|
|||
def get_channel_data(self,channel_id): |
|||
cdata = None |
|||
if channel_id in self._channels: |
|||
cdata = self._channels[channel_id] |
|||
return cdata |
|||
|
|||
def cm_get_last_frame(self,channel_id): #这里如果加锁的话,阻塞会比较厉害,但具体程度也需要验证。 |
|||
frame = None |
|||
if channel_id in self._channels: |
|||
try: |
|||
frame = self._channels[channel_id].get_last_frame() |
|||
except Exception as e: |
|||
print(e) |
|||
return frame |
|||
|
|||
if __name__ == "__main__": |
|||
# 示例使用 |
|||
manager = ChannelManager() |
|||
manager.add_channel('channel_1', 'test', 123, True, deque_length=5) |
|||
def cm_get_cap_frame(self,channel_id): |
|||
img_base64 = None |
|||
if channel_id in self._channels: |
|||
channel_data = self._channels[channel_id] |
|||
if channel_data.cap: |
|||
try: |
|||
for i in range(5): |
|||
ret, frame = channel_data.cap.read() |
|||
if ret: |
|||
ret, frame_bgr_webp = cv2.imencode('.jpg', frame) |
|||
if ret: |
|||
# 将图像数据编码为Base64 |
|||
img_base64 = base64.b64encode(frame_bgr_webp).decode('utf-8') |
|||
break |
|||
except Exception as e: |
|||
print(e) |
|||
return img_base64 |
|||
|
|||
'''模型独立线程修改2024-9-9,要求是双模式兼容''' |
|||
'''2024-10-13修改独立线程为独立进程---acl初始化需要在子进程中初始化 -- 该方案无法兼容旧版本''' |
|||
'''2025-10-24修改动态通道数量,cm --> mn_m -->model_nodel''' |
|||
def CreateModelNode(self, model_id, model_path, channel_id): |
|||
if model_id in self.model_list: |
|||
modelNM = self.model_list[model_id] |
|||
else: |
|||
modelNM = ModelNodeManger(self.device_id,model_id,model_path) |
|||
self.model_list[model_id] = modelNM |
|||
#modelN = ModelNode(self.device_id, model_path,channel_id) |
|||
return modelNM |
|||
|
|||
def delModelNode(self): #关于modelnodel :1.考虑modelnode是否可以不删除,清空inmq即可,2.mdel_list是否需要加锁。#? |
|||
#return |
|||
for model_id, modelNodeM in self.model_list.items(): |
|||
if modelNodeM.ch_count == 0: |
|||
del self.model_list[model_id] |
|||
|
|||
# 更新和读取操作 |
|||
manager.update_channel_deque('channel_1', 'data1') |
|||
manager.update_channel_buffer('channel_1', np.array([[1, 2], [3, 4]])) |
|||
manager.increment_channel_counter('channel_1') |
|||
|
|||
channel_data = manager.get_channel_data('channel_1') |
|||
print(channel_data) |
|||
if __name__ == "__main__": |
|||
# 示例使用 |
|||
pass |
|||
|
@ -0,0 +1,221 @@ |
|||
import threading |
|||
import time |
|||
import multiprocessing |
|||
import importlib.util |
|||
from multiprocessing.managers import BaseManager |
|||
from myutils.ConfigManager import myCongif |
|||
from myutils.MyLogger_logger import LogHandler |
|||
from core.ACLModelManager import ACLModeManger |
|||
from core.DataStruct import ModelinData,ModeloutData |
|||
from threading import Lock |
|||
|
|||
|
|||
#2024-10-14model处理调整为独立子进程 |
|||
def model_process(device,model,model_platform,m_p_status,brun,in_mq,out_mq): |
|||
# 初始化模型运行资源 |
|||
context = None |
|||
if model_platform == "acl": # ACL线程中初始化内容 |
|||
context = ACLModeManger.pro_init_acl(device) # 初始化acl资源,并创建context |
|||
# 初始化模型资源 -- 加载模型文件 |
|||
ret = model.init_acl_resource() # 加载和初始化离线模型文件--om文件 |
|||
if not ret: |
|||
print("初始化模型资源出错,退出线程!") |
|||
m_p_status.value = 2 |
|||
return |
|||
|
|||
#执行工作 |
|||
m_p_status.value = 1 |
|||
use_time = 0 |
|||
icount = 0 |
|||
while brun.value: |
|||
try: |
|||
inData = in_mq.get(timeout=0.1) #空时-block,直到有值 #(self,channel_id,img,image,scale_ratio, pad_size): |
|||
except: |
|||
#print("in_mq_空") |
|||
continue |
|||
if inData: |
|||
#print(f"{time.time()}--{inData.channel_id}--数据取出进行处理!") |
|||
s_time = time.time() |
|||
outputs = model.execute([inData.img,])#创建input,执行模型,返回结果 --失败返回None |
|||
e_time = time.time() |
|||
outdata = ModeloutData(inData.image,inData.scale_ratio,inData.pad_size,outputs,inData.channel_id) |
|||
del inData.img |
|||
#结果输出 |
|||
if out_mq.full(): |
|||
tmp = out_mq.get() |
|||
#print("model_输出mq满!") |
|||
del tmp |
|||
out_mq.put(outdata) # 需要确保out_mq只有在这里put |
|||
# else: #正常情况不会执行到该条件 |
|||
# time.sleep(0.01) |
|||
icount += 1 |
|||
use_time += (e_time - s_time) |
|||
if icount == 500: |
|||
avg_time = use_time / 500 |
|||
print(f"model_process耗时--{avg_time}秒") |
|||
use_time = 0 |
|||
icount = 0 |
|||
|
|||
#结束进程,释放资源 |
|||
m_p_status.value = 0 |
|||
while not in_mq.empty(): |
|||
try: |
|||
in_mq.get_nowait() # Get without blocking |
|||
except Exception as e: |
|||
break # In case of any unexpected errors |
|||
|
|||
# 反初始化 |
|||
if model_platform == "acl": |
|||
try: |
|||
model.release() # 释放模型资源资源 |
|||
# 删除模型对象 |
|||
del model |
|||
# 释放ACL资源 |
|||
ACLModeManger.pro_del_acl(device,context) |
|||
except Exception as e: |
|||
print(e) |
|||
|
|||
|
|||
class ModelNode: |
|||
def __init__(self,device,model_path,ch_max_count=1): |
|||
self.device = device |
|||
self.model_path = model_path |
|||
self.channel_id = [] #channel_id_list |
|||
self.model = None #模型对象 |
|||
self.ch_max_count = ch_max_count |
|||
self.ch_count = 0 #关联启动的通道数量 |
|||
self.count_Lock = Lock() #count的维护锁 |
|||
self.model_platform = myCongif.get_data("model_platform") |
|||
self.logger = LogHandler().get_logger("ModelNode") |
|||
#分发线程相关 |
|||
self.model_out_th = None |
|||
self.channel_dict = {} |
|||
self.cdict_Lock = Lock() |
|||
self.in_mq_Lock = Lock() |
|||
self.last_in_c_id = 0 |
|||
|
|||
#独立进程方案--共享参数 |
|||
self.process = None |
|||
self.imq_count = ch_max_count * 20 #一个通道20帧缓冲区间 |
|||
self.in_mq = multiprocessing.Queue(maxsize=self.imq_count) |
|||
self.out_mq = multiprocessing.Queue(maxsize=self.imq_count) #调整结构,多线程(预处理)-》in_mq-子进程-out_mq-》线程分发outdata->多线程(后处理) |
|||
self.brun = multiprocessing.Value('b',True) #brun.value = False,brun.value = True |
|||
self.m_p_status = multiprocessing.Value('i',0) |
|||
|
|||
def __del__(self): |
|||
pass |
|||
|
|||
def _import_model(self, model_path, threshold=0.5, iou_thres=0.5): |
|||
''' |
|||
根据路径,动态导入模块 |
|||
:param model_path: 模块路径 |
|||
:param threshold: 置信阈值 |
|||
:param iou_thres: iou阈值 |
|||
:return: |
|||
''' |
|||
try: |
|||
module_path = model_path.replace("/", ".").rsplit(".", 1)[0] |
|||
print(module_path) |
|||
# 动态导入模块 |
|||
module = importlib.import_module(module_path) |
|||
# 从模块中获取指定的类 |
|||
Model = getattr(module, "Model") |
|||
# 使用 Model 类 |
|||
model_instance = Model(model_path, threshold, iou_thres) |
|||
return model_instance |
|||
except ModuleNotFoundError as e: |
|||
print(f"Module not found: {e}") |
|||
return None |
|||
except AttributeError as e: |
|||
print(f"Class not found in module: {e}") |
|||
return None |
|||
except Exception as e: |
|||
print(f"An unexpected error occurred: {e}") |
|||
return None |
|||
|
|||
def pro_add_data(self,data): |
|||
# try: |
|||
# self.in_mq.put(data,timeout=0.1) |
|||
# except multiprocessing.queues.Full: |
|||
# print("mdel_inmq输入满!") |
|||
# del data |
|||
with self.in_mq_Lock: |
|||
if self.ch_count>1 and self.last_in_c_id == data.channel_id: |
|||
return |
|||
self.last_in_c_id = data.channel_id |
|||
if self.in_mq.full(): |
|||
tmp = self.in_mq.get() |
|||
#print("mdel_inmq输入满!") |
|||
del tmp |
|||
self.in_mq.put(data) # 需要确保out_mq只有在这里put |
|||
|
|||
def _modle_th(self): |
|||
'''根据channel_id分发out_data到out_mq''' |
|||
s_time = time.time() |
|||
icount = 0 |
|||
while self.brun.value: |
|||
try: |
|||
outdata = self.out_mq.get(timeout=0.1) |
|||
except: |
|||
continue |
|||
with self.cdict_Lock: |
|||
if outdata.channel_id in self.channel_dict: |
|||
|
|||
self.channel_dict[outdata.channel_id].myappend(outdata) #后面就交给后处理线程了 |
|||
else: |
|||
print(f"{outdata.channel_id}不在channel_dict里面") |
|||
# icount += 1 |
|||
# if icount ==500: |
|||
# e_time = time.time() |
|||
# use_time = (e_time-s_time) /500 |
|||
# print(f"{self.channel_id}_modle_th耗时--{use_time}秒") |
|||
# s_time = time.time() |
|||
# icount = 0 |
|||
|
|||
|
|||
#2024-10-14调整为独立进程执行 -- 一个线程一个MQ MyDeque |
|||
def start_model_th(self,channel_id,out_mq): |
|||
with self.count_Lock: |
|||
with self.cdict_Lock: |
|||
if channel_id in self.channel_dict: |
|||
print(f"{channel_id}已经在channel_dict内") |
|||
return #这个可以删除老的,新增新的--后续验证,若需要则进行修改 |
|||
self.channel_dict[channel_id] = out_mq #增加一个记录 |
|||
print(f"新增一个channel节点--{channel_id}") |
|||
|
|||
if self.ch_count == 0: #第一次启动--需要启动处理线程和进程 |
|||
#加载自定义模型文件 |
|||
self.model = self._import_model(self.model_path) # 动态加载模型处理文件py --置信阈值一直没使用 |
|||
if not self.model: |
|||
self.logger.error("自定义模型文件加载失败,不启动model子进程") |
|||
self.m_p_status.value = 2 |
|||
return |
|||
|
|||
self.brun.value = True |
|||
#创建outMQ的分发线程 |
|||
self.model_out_th = threading.Thread(target=self._modle_th) |
|||
self.model_out_th.start() |
|||
|
|||
# 创建子进程 |
|||
self.process = multiprocessing.Process(target=model_process, |
|||
args=(self.device,self.model,self.model_platform, |
|||
self.m_p_status,self.brun,self.in_mq,self.out_mq)) |
|||
self.process.start() |
|||
|
|||
self.ch_count += 1 #有通道调用一次就加一 |
|||
|
|||
def stop_model_th(self,channel_id): |
|||
with self.count_Lock: |
|||
with self.cdict_Lock: |
|||
if channel_id in self.channel_dict: |
|||
del self.channel_dict[channel_id] |
|||
self.ch_count -= 1 |
|||
if self.ch_count == 0: #所有通道结束 |
|||
self.brun.value = False |
|||
self.model_out_th.join() #等待线程结束 |
|||
self.model_out_th = None |
|||
|
|||
self.process.join() #等待子进程结束 |
|||
self.process = None |
|||
|
|||
|
@ -0,0 +1,76 @@ |
|||
import multiprocessing |
|||
|
|||
from threading import Lock |
|||
from core.ModelNode import ModelNode |
|||
from myutils.ConfigManager import myCongif |
|||
|
|||
class ModelNodeManger: |
|||
def __init__(self,device_id,model_id,model_path,threshold=0.5,iou_thres=0.5): |
|||
self.ch_count = 0 #当前模型关联的通道数量 |
|||
self.channel_list = {} #channel_id modelNodle |
|||
self.clist_Lock = Lock() # count的维护锁 |
|||
self.modelNode_list = [] # model_Node |
|||
self.brun = multiprocessing.Value('b',True) #brun.value = False,brun.value = True |
|||
self.m_p_status = multiprocessing.Value('i',0) |
|||
self.model = None # 模型对象 |
|||
#------- |
|||
self.max_count = myCongif.get_data('maxCount') |
|||
self.device_id = device_id |
|||
self.model_id = model_id |
|||
self.model_path = model_path |
|||
self.threshold = threshold |
|||
self.iou_thres = iou_thres |
|||
|
|||
|
|||
# #添加数据 |
|||
# def pro_add_data(self,channel_id,data): |
|||
# pass |
|||
# # #加锁? -- 对于多线程这里的耗时会不会有点大。。。 model_nodel 反馈出去?????getModle_Nodel |
|||
# # with self.clist_Lock: |
|||
# # if channel_id in self.channel_list: |
|||
# # self.modelNode_list[channel_id].pro_add_data(data) |
|||
|
|||
#暴露modelNodel -- 避免pro_add_data锁竞争 |
|||
def getModle_Nodel(self,channel_id): |
|||
model_nodel = None |
|||
if channel_id in self.channel_list: |
|||
model_nodel = self.channel_list[channel_id] |
|||
return model_nodel |
|||
|
|||
def start_model_th(self, channel_id, out_mq): |
|||
with self.clist_Lock: |
|||
if channel_id in self.channel_list: #已经在List 说明已经启动过了,但不应该重复调用 |
|||
print("不应该重复调用start_model_th") |
|||
return True |
|||
else: # 还没入list ,查找可以插入的model_node |
|||
for model_node in self.modelNode_list: |
|||
if model_node.ch_count < self.max_count: # 没满可以插入 |
|||
model_node.start_model_th(channel_id, out_mq) #+1 |
|||
self.channel_list[channel_id] = model_node #新增 channel_di 与model_node的对应关系 |
|||
return True |
|||
# 执行到这说明没有空的model_nodel -- 需要新建 |
|||
model_node = ModelNode(self.device_id,self.model_path,self.max_count) |
|||
model_node.start_model_th(channel_id, out_mq) # 启动线程,并+1 |
|||
#两个数据结构,新增节点 |
|||
self.modelNode_list.append(model_node) #新增一个model_node节点 |
|||
self.channel_list[channel_id] = model_node #新增 channel_di 与model_node的对应关系 |
|||
#行动完更新数量 |
|||
self.ch_count +=1 |
|||
return True |
|||
|
|||
def stop_model_th(self, channel_id): |
|||
with self.clist_Lock: |
|||
if channel_id in self.channel_list: |
|||
model_node = self.channel_list[channel_id] |
|||
model_node.stop_model_th(channel_id) #减-,根据情况停止工作进程、 |
|||
# 需要考虑下model_node是否要删除,还是保留后重复利用- |
|||
if model_node.ch_count ==0: |
|||
self.modelNode_list.remove(model_node) #如何没有关联通道了,侧删除该modelnodel |
|||
del model_node #删除对象 |
|||
del self.channel_list[channel_id] #删除channel_id 与 model_node的对应关心节点 |
|||
#行动完更新数量 |
|||
self.ch_count -= 1 |
|||
return True |
|||
else: |
|||
print("不在list里面,不应该调用stop_model_th") |
|||
return False |
@ -0,0 +1,110 @@ |
|||
import threading |
|||
import queue |
|||
import datetime |
|||
import cv2 |
|||
from core.DBManager import DBManager |
|||
from myutils.ConfigManager import myCongif |
|||
|
|||
class WarnData: |
|||
def __init__(self): |
|||
self.width = None #视频画面的width |
|||
self.height = None #视频画面的height |
|||
self.channel_id = None |
|||
self.model_name = None #模型名称,如人员入侵 |
|||
self.img_buffer = None #视频缓冲区 赋值时要拷贝一个备份 |
|||
|
|||
self.warn_text = None |
|||
self.channel_name = None |
|||
|
|||
|
|||
|
|||
class WarnManager: |
|||
def __init__(self): |
|||
self.warn_q = queue.Queue() #线程安全 |
|||
self.brun = True |
|||
# 保存视频相关内容 |
|||
self.FPS = myCongif.get_data("verify_rate") # 视频帧率--是否能实现动态帧率 |
|||
self.fourcc = cv2.VideoWriter_fourcc(*'mp4v') # 使用 mp4 编码 |
|||
|
|||
def __del__(self): |
|||
pass |
|||
|
|||
def add_warn_data(self,warn_data): |
|||
self.warn_q.put(warn_data) |
|||
|
|||
def th_warnmanager(self): |
|||
myDBM = DBManager() |
|||
myDBM.connect() |
|||
while self.brun: |
|||
warn_data = None |
|||
try: |
|||
warn_data = self.warn_q.get(timeout=5) |
|||
except queue.Empty: |
|||
continue |
|||
if warn_data: |
|||
ret = self.save_warn(warn_data.model_name,warn_data.img_buffer,warn_data.width,warn_data.height, |
|||
warn_data.channel_id,self.FPS,self.fourcc,myDBM) |
|||
self.send_warn() |
|||
del warn_data.img_buffer |
|||
warn_data.img_buffer = None |
|||
del warn_data |
|||
warn_data = None |
|||
|
|||
|
|||
def start_warnmanager_th(self): |
|||
th_warn = threading.Thread(target=self.th_warnmanager) # 一个视频通道一个线程,线程句柄暂时部保留 |
|||
th_warn.start() |
|||
|
|||
def stop_warnmanager_th(self): |
|||
self.brun = False |
|||
del self.warn_q |
|||
|
|||
def send_warn(self): |
|||
'''发送报警信息''' |
|||
pass |
|||
|
|||
def save_warn(self,model_name,buffer,width,height,channnel_id,FPS,fourcc,myDBM): |
|||
''' |
|||
保存报警信息 --- 涉及到I/O操作可以通过线程取执行 -- 避免主线程阻塞 --还未验证-2024-7-6 |
|||
:param model_name: 模型名称,如人员入侵 |
|||
:param w_s_count: 报警已存储的最新帧序列 |
|||
:param buffer_count: 当前视频缓冲区的最新帧序列 |
|||
:param buffer: 视频缓存区 |
|||
:param width: 视频画面的width |
|||
:param height: 视频画面的height |
|||
:param channnel_id: 视频通道ID |
|||
:return: ret 数据库操作记录 |
|||
''' |
|||
now = datetime.datetime.now() # 获取当前日期和时间 |
|||
current_time_str = now.strftime("%Y-%m-%d_%H-%M-%S") |
|||
filename = f"{channnel_id}_{current_time_str}" |
|||
save_path = myCongif.get_data("warn_video_path") |
|||
# 保存视频 |
|||
str_video = f"{save_path}{filename}.mp4" |
|||
video_writer = cv2.VideoWriter(str_video, fourcc, FPS, (width, height)) |
|||
#print(f"File: {str_video}, FourCC: {fourcc}, FPS: {FPS}, Size: ({width}, {height})") |
|||
if not video_writer.isOpened(): |
|||
print(f"Failed to open video writer for model/warn/{filename}.mp4") |
|||
return False |
|||
ilen = len(buffer) |
|||
istart = 0; |
|||
iend = ilen |
|||
|
|||
for i in range(len(buffer)): |
|||
video_writer.write(buffer[i]) |
|||
video_writer.release() |
|||
# 保存图片 |
|||
ret = cv2.imwrite(f"model/warn/{filename}.png", buffer[-1]) |
|||
# buffer使用完后删除 |
|||
del buffer |
|||
if not ret: |
|||
print("保存图片失败") |
|||
return False |
|||
# 保存数据库 |
|||
|
|||
strsql = (f"INSERT INTO warn (model_name ,video_path ,img_path ,creat_time,channel_id ) " |
|||
f"Values ('{model_name}','model/warn/{filename}.mp4','model/warn/{filename}.png'," |
|||
f"'{current_time_str}','{channnel_id}');") |
|||
ret = myDBM.do_sql(strsql) |
|||
return ret |
|||
|
@ -1,6 +0,0 @@ |
|||
2024-06-04_17:10:19-DBManager-ERROR:do_select异常报错:'DBManager' object has no attribute 'cursor' |
|||
2024-06-04_17:11:04-DBManager-ERROR:do_select异常报错:'DBManager' object has no attribute 'cursor' |
|||
2024-06-04_17:13:06-DBManager-ERROR:do_select异常报错:no such table: user |
|||
2024-06-04_17:20:58-DBManager-ERROR:do_select异常报错:no such table: user |
|||
2024-06-04_17:23:44-DBManager-ERROR:do_select异常报错:no such table: user |
|||
2024-06-04_17:25:04-DBManager-ERROR:do_select异常报错:no such table: user |
@ -1 +0,0 @@ |
|||
2024-06-09_11:44:21-DBManager-ERROR:do_select异常报错:SQLite objects created in a thread can only be used in that same thread. The object was created in thread id 34308 and this is thread id 24980. |
@ -1,2 +0,0 @@ |
|||
2024-06-18_00:01:48-DBManager-ERROR:do_select异常报错:no such column: t1.id |
|||
2024-06-18_00:03:02-DBManager-ERROR:do_select异常报错:no such column: t1.id |
@ -1,257 +0,0 @@ |
|||
2024-06-19_15:55:26-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_15:56:52-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_15:56:54-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_15:56:55-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_15:58:23-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-19_16:06:41-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_16:06:41-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_16:06:41-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_16:06:41-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_16:06:41-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_16:06:41-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_16:10:31-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_16:10:31-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_16:10:31-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_16:10:31-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_16:10:31-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_16:10:31-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_16:23:41-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_16:23:41-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_16:23:41-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_17:48:41-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_17:48:41-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_17:48:41-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_17:48:45-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_17:48:45-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_17:48:45-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_18:00:03-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_18:00:03-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_18:00:03-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_18:00:06-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_18:00:06-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_18:00:06-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_21:47:07-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_21:47:07-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_21:47:07-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_21:47:22-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_21:47:22-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_21:47:22-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_21:50:54-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_21:50:54-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_21:50:54-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_21:50:58-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_21:50:58-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_21:50:58-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_21:52:41-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_21:52:41-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_21:52:41-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_21:52:45-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_21:52:45-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_21:52:45-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:00:09-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_22:00:09-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_22:00:09-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_22:00:12-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:00:12-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:00:12-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:03:44-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_22:03:44-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_22:03:44-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_22:03:47-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:03:47-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:03:47-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:05:40-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_22:05:40-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_22:05:40-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_22:05:43-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:05:43-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:05:43-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:06:01-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_22:06:01-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_22:06:01-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_22:06:04-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:06:04-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:06:04-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:08:14-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_22:08:14-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_22:08:14-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_22:08:18-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:08:18-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:08:18-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:22:23-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_22:22:23-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_22:22:23-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_22:22:28-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:22:28-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:22:28-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:23:20-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_22:23:20-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_22:23:20-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_22:23:25-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:23:25-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:23:25-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:24:02-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_22:24:02-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_22:24:02-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_22:24:05-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:24:05-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:24:05-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:29:54-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_22:29:54-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_22:29:54-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_22:29:58-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:29:58-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:29:58-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:30:03-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_22:30:03-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_22:30:03-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_22:30:08-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:30:08-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:30:08-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:31:09-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_22:31:09-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_22:31:09-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_22:31:14-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:31:14-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:31:14-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:32:15-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_22:32:15-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_22:32:15-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_22:32:19-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:32:19-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:32:19-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:39:04-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_22:39:04-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_22:39:04-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_22:39:08-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:39:08-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:39:08-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:39:08-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-19_22:43:38-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_22:43:38-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_22:43:38-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_22:43:42-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:43:42-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:43:42-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:44:23-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_22:44:23-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_22:44:23-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_22:44:27-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:44:27-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:44:27-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:48:34-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_22:48:34-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_22:48:34-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_22:48:38-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:48:38-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:48:38-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:53:01-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_22:53:01-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_22:53:01-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_22:53:05-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:53:05-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:53:05-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:53:05-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-19_22:54:13-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_22:54:13-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_22:54:13-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_22:54:17-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:54:17-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:54:17-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:55:47-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_22:55:47-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_22:55:47-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_22:55:50-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:55:50-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:55:50-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:57:37-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_22:57:37-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_22:57:37-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_22:57:42-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:57:42-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_22:57:42-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:03:45-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_23:03:45-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_23:03:45-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_23:03:50-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:03:50-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:03:50-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:05:20-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_23:05:20-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_23:05:20-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_23:05:24-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:05:24-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:05:24-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:06:00-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_23:06:00-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_23:06:00-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_23:06:04-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:06:04-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:06:04-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:13:23-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_23:13:23-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_23:13:23-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_23:13:26-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:13:26-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:13:26-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:17:58-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_23:17:58-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_23:17:58-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_23:18:02-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:18:02-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:18:02-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:19:22-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_23:19:22-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_23:19:22-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_23:19:26-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:19:26-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:19:26-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:19:34-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-19_23:19:52-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_23:19:52-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_23:19:52-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_23:19:55-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:19:55-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:19:55-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:21:17-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_23:21:17-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_23:21:17-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_23:21:20-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:21:20-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:21:20-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:25:28-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_23:25:28-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_23:25:28-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_23:25:32-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:25:32-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:25:32-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:26:17-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_23:26:17-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_23:26:17-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_23:26:20-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:26:20-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:26:20-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:27:27-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_23:27:27-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_23:27:27-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_23:27:30-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:27:30-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:27:30-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:28:32-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_23:28:32-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_23:28:32-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_23:28:36-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:28:36-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:28:36-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:30:48-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_23:30:48-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_23:30:48-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_23:30:53-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:30:53-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:30:53-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:33:00-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-19_23:33:00-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-19_23:33:00-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-19_23:33:04-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:33:04-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-19_23:33:04-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
@ -1,91 +0,0 @@ |
|||
2024-06-20_00:19:19-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-20_00:19:19-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-20_00:19:19-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-20_00:19:23-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_00:19:23-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_00:19:23-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_00:21:39-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-20_00:21:39-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-20_00:21:39-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-20_00:21:42-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_00:21:42-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_00:21:42-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_09:10:08-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-20_09:10:08-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-20_09:10:08-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-20_09:10:12-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_09:10:12-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_09:10:12-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_10:23:41-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-20_10:23:41-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-20_10:23:41-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-20_10:23:45-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_10:23:45-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_10:23:45-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_14:13:22-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-20_14:13:22-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-20_14:13:22-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-20_14:13:26-DBManager-ERROR:do_select异常报错:SQLite objects created in a thread can only be used in that same thread. The object was created in thread id 14300 and this is thread id 10436. |
|||
2024-06-20_14:24:20-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-20_14:24:20-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-20_14:24:20-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-20_14:24:25-DBManager-ERROR:do_select异常报错:SQLite objects created in a thread can only be used in that same thread. The object was created in thread id 24356 and this is thread id 28584. |
|||
2024-06-20_14:24:56-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-20_14:24:56-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-20_14:24:56-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-20_14:25:00-DBManager-ERROR:do_select异常报错:SQLite objects created in a thread can only be used in that same thread. The object was created in thread id 5220 and this is thread id 14932. |
|||
2024-06-20_14:28:50-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-20_14:28:50-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-20_14:28:50-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-20_14:28:53-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_14:28:53-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_14:28:53-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_14:50:27-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-20_14:50:27-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-20_14:50:27-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-20_14:50:30-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_14:50:30-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_14:50:30-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_14:51:25-ModelManager-INFO:视频通道:3,未配置算法模块,结束线程! |
|||
2024-06-20_14:51:25-ModelManager-INFO:视频通道:4,未配置算法模块,结束线程! |
|||
2024-06-20_14:51:25-ModelManager-INFO:视频通道:5,未配置算法模块,结束线程! |
|||
2024-06-20_14:51:28-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_14:51:28-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_14:51:28-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_15:29:16-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_15:29:16-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_15:29:16-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_15:29:45-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_15:29:45-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_15:30:46-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_15:34:48-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_15:34:48-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_15:37:21-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_15:39:51-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_15:39:51-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_15:43:55-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_15:44:54-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_15:44:55-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_15:49:58-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_15:49:58-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_15:50:30-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_15:55:01-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_15:55:01-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_15:57:05-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:00:04-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:00:04-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:20:09-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:20:09-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:20:11-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_16:20:11-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_16:20:11-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_16:25:36-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:25:36-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:25:38-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_16:25:38-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_16:25:38-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_17:34:22-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:34:22-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:34:24-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_17:34:24-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-20_17:34:24-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
@ -1,3 +0,0 @@ |
|||
2024-06-24_10:41:16-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-24_10:41:16-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
|||
2024-06-24_10:41:16-ModelManager-ERROR:model/mode_test/yolov5s.pt文件不存在 |
@ -1,4 +0,0 @@ |
|||
2024-05-25_09-59-06-INFO-main:info |
|||
2024-05-25_10:00:46-INFO-main:info |
|||
2024-05-25_10:17:32-main-INFO:info |
|||
2024-05-25_16:16:27-main-INFO:info |
@ -1,3 +0,0 @@ |
|||
2024-06-05_10:56:32-DBManager-ERROR:执行数据库语句INSERT INTO user (username ,password ,status,people,tellnum ) VALUES ('lisi','zfkj_123!@#',1,11,11)出错:'>' not supported between instances of 'sqlite3.Cursor' and 'int' |
|||
2024-06-05_10:58:37-DBManager-ERROR:执行数据库语句INSERT INTO user (username ,password ,status,people,tellnum ) VALUES ('wangliu','zfkj_123!@#',1,'11','11')出错:'>' not supported between instances of 'sqlite3.Cursor' and 'int' |
|||
2024-06-05_18:04:28-DBManager-ERROR:执行数据库语句update device set dev_ip='192.168.1.23',dev_mask='255.255.255.0',dev_gateway='192.168.1.1'出错:near ",dev_gateway": syntax error |
@ -1,6 +0,0 @@ |
|||
2024-06-08_15:56:44-DBManager-ERROR:执行数据库语句UPDATE SET channel area_id=1,channel_name='1',ulr='rtsp://11' where ID=1;出错:near "SET": syntax error |
|||
2024-06-08_15:58:30-DBManager-ERROR:执行数据库语句UPDATE channel SET area_id=1,channel_name='1',ulr='rtsp://11' where ID=1;出错:no such column: channel_name |
|||
2024-06-08_16:13:06-DBManager-ERROR:执行数据库语句delete channel where channel_id=1111;出错:near "channel": syntax error |
|||
2024-06-08_16:13:12-DBManager-ERROR:执行数据库语句delete channel where channel_id=1;出错:near "channel": syntax error |
|||
2024-06-08_16:14:36-DBManager-ERROR:执行数据库语句delete from channel where channel_id=1111;出错:no such column: channel_id |
|||
2024-06-08_16:14:51-DBManager-ERROR:执行数据库语句delete from channel where channel_id=1;出错:no such column: channel_id |
@ -1,4 +0,0 @@ |
|||
2024-06-10_22:46:09-DBManager-ERROR:do_select异常报错:near ";": syntax error |
|||
2024-06-10_22:47:03-DBManager-ERROR:do_select异常报错:near ";": syntax error |
|||
2024-06-10_22:47:09-DBManager-ERROR:do_select异常报错:no such column: channecl_id |
|||
2024-06-10_23:16:44-DBManager-ERROR:do_select异常报错:near ";": syntax error |
@ -1,5 +0,0 @@ |
|||
2024-06-11_00:11:54-DBManager-ERROR:执行数据库语句insert into schedule (channel_id,day,hour,status) values (1,星期日,0,1) on conflict(channel_id,day,hour) do update set status=excluded.status;出错:no such column: 星期日 |
|||
2024-06-11_00:14:09-DBManager-ERROR:执行数据库语句insert into schedule (channel_id,day,hour,status) values (1,'星期日',0,1) on conflict(channel_id,day,hour) do update set status=excluded.status;出错:ON CONFLICT clause does not match any PRIMARY KEY or UNIQUE constraint |
|||
2024-06-11_17:01:36-DBManager-ERROR:do_select异常报错:no such column: t1.model_id |
|||
2024-06-11_17:02:18-DBManager-ERROR:do_select异常报错:no such column: t1.model_id |
|||
2024-06-11_21:10:48-DBManager-ERROR:do_select异常报错:near ";": syntax error |
@ -1,458 +0,0 @@ |
|||
2024-06-20_16:01:43-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:01:43-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:03:14-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:07:11-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:07:11-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:14:34-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:14:34-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:16:05-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:19:37-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:19:37-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:26:37-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:26:37-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:28:08-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:31:40-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:31:40-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:34:42-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:36:43-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:36:43-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:41:17-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:41:46-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:41:46-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:46:50-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:46:50-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:47:51-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:51:53-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:51:53-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:54:25-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:56:56-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_16:56:56-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:01:00-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:01:59-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:01:59-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:07:02-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:07:02-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:07:34-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:12:06-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:12:06-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:14:08-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:17:09-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:17:09-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:20:43-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:22:12-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:22:12-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:27:15-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:27:15-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:27:17-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:32:18-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:32:18-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:35:18-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_17:35:18-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_17:35:18-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_17:35:20-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:35:20-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:37:27-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_17:37:27-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_17:37:27-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_17:37:29-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:37:29-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:39:13-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_17:39:13-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_17:39:13-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_17:39:15-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:39:15-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:40:46-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:48:21-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_17:48:21-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_17:48:21-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_17:48:23-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:48:23-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:49:55-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:53:27-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:53:27-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:56:29-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:58:30-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_17:58:30-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_18:02:46-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_18:02:46-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_18:02:46-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_18:02:49-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_18:02:49-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_18:04:20-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_18:05:37-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_18:05:37-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_18:05:37-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_18:05:42-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_18:05:42-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_18:07:13-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_20:44:00-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_20:44:00-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_20:44:00-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_20:44:01-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_20:44:01-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_20:44:50-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_20:44:50-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_20:44:50-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_20:44:51-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_20:44:51-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_20:46:22-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_20:48:39-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_20:48:39-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_20:48:39-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_20:48:41-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_20:48:41-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_20:49:39-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_20:49:39-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_20:49:39-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_20:49:41-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_20:49:41-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_20:54:30-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_20:54:30-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_20:54:30-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_20:54:32-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_20:54:32-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_20:56:04-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_20:56:48-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_20:56:48-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_20:56:48-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_20:56:49-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_20:56:49-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:07:27-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_21:07:27-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_21:07:27-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_21:07:29-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:07:29-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:09:00-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:12:36-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:12:36-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:15:38-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:17:42-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:17:42-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:22:16-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:22:48-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:22:48-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:27:54-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:27:54-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:28:53-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:33:01-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:33:01-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:35:31-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:38:07-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:38:07-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:42:09-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:43:13-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:43:13-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:48:20-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:48:20-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:48:46-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:49:57-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_21:49:57-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_21:49:57-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_21:49:58-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:49:58-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:51:30-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:57:09-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_21:57:09-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_21:57:09-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_21:57:11-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:57:11-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:58:39-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_21:58:39-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_21:58:39-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_21:58:39-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_21:58:39-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:00:10-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:03:45-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:03:45-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:05:32-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:05:32-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:05:32-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:05:33-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:05:33-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:06:57-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:06:57-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:06:57-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:07:00-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:07:00-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:08:31-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:11:28-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:11:28-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:11:28-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:11:29-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:11:29-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:12:56-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:12:56-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:12:56-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:12:56-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:12:56-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:13:54-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:13:54-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:13:54-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:13:55-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:13:55-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:14:19-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:20-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:20-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:20-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:20-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:20-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:20-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:20-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:20-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:20-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:21-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:21-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:21-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:21-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:21-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:21-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:21-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:21-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:21-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:21-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:22-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:22-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:22-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:22-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:22-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:22-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:22-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:22-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:22-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:23-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:23-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:23-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:23-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:23-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:23-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:23-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:24-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:24-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:24-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:24-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:24-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:24-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:24-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:25-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:25-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:25-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:25-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:25-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:25-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:26-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:26-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:26-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:26-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:26-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:26-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:26-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:26-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:27-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:27-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:27-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:27-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:27-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:27-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:27-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:28-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:28-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:28-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:28-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:28-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:28-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:28-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:28-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:29-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:29-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:29-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:29-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:29-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:29-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:29-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:30-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:30-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:30-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:30-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:30-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:30-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:30-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:31-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:31-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:31-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:31-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:31-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:31-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:32-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:32-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:32-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:32-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:32-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:32-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:32-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:33-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:33-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:33-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:33-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:33-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:33-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:33-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:34-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:34-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:34-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:34-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:34-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:34-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:35-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:35-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:35-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:35-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:35-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:35-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:35-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:35-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:36-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:36-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:36-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:36-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:36-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:36-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:36-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:37-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:37-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:37-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:37-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:37-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:37-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:37-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:38-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:38-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:38-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:38-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:38-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:38-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:38-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:38-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:39-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:39-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:39-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:39-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:39-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:39-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:39-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:40-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:40-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:40-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:40-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:40-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:40-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:40-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:41-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:41-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:41-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:41-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:41-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:41-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:41-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:41-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:42-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:42-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:42-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:42-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:42-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:42-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:42-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:43-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:43-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:43-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:43-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:43-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:43-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:45-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:45-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:45-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:45-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:45-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:45-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:45-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:45-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:46-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:46-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:46-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:46-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:46-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:46-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:46-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:46-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:47-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:47-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:47-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:47-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:47-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:47-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:47-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:48-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:48-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:48-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:48-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:48-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:48-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:49-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:49-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:49-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:49-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:49-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:49-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:49-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:49-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:50-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:50-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:50-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:51-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:51-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:51-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:51-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:52-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:52-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:52-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:52-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:53-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:53-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:53-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:53-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:54-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:54-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:54-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:54-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:55-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:14:55-ModelManager-ERROR:img 是np.darry |
|||
2024-06-20_22:16:06-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:16:06-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:16:06-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:16:08-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:16:08-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:18:00-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:18:00-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:18:00-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:18:01-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:18:01-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:19:32-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:22:41-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:22:41-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:22:41-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:22:42-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:22:42-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:34:21-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:34:21-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:34:21-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:34:23-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:34:23-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:34:55-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:35:54-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:39:29-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:39:29-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:40:03-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:42:21-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:42:21-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:42:21-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-20_22:42:24-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-20_22:42:24-ModelManager-WARNING:view disconnected. Reconnecting... |
@ -1,356 +0,0 @@ |
|||
2024-06-21_09:49:50-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_09:49:50-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_09:49:50-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_09:49:51-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_09:49:51-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_09:51:23-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_09:53:25-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_09:53:25-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_09:53:25-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_09:53:26-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_09:53:26-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_09:54:57-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_09:55:22-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_09:55:22-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_09:55:22-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_09:55:22-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_09:55:22-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_09:56:59-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_09:56:59-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_09:56:59-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_09:57:00-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_09:57:00-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_09:58:46-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_09:58:46-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_09:58:49-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_09:58:49-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_09:58:49-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_10:00:17-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:03:52-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:03:52-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:06:54-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:08:58-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:08:58-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:17:36-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:17:36-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:17:38-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_10:17:38-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_10:17:38-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_10:19:07-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:22:40-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:22:40-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:25:42-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:27:43-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:27:43-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:32:16-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:32:46-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:32:46-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:34:50-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:34:50-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:34:52-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_10:34:52-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_10:34:52-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_10:36:21-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:38:44-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:38:44-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:38:45-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_10:38:45-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_10:38:45-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_10:40:15-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:43:48-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:43:48-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_10:43:50-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_10:43:50-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_10:43:50-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_10:45:19-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_11:15:46-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_11:15:46-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_11:15:48-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_11:15:48-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_11:15:48-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_11:17:17-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_11:18:33-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_11:18:33-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_11:18:34-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_11:18:34-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_11:18:34-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_11:20:04-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_11:21:51-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_11:21:51-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_11:21:53-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_11:21:53-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_11:21:53-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_12:35:42-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_12:35:42-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_12:35:45-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_12:35:45-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_12:35:45-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_12:37:13-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_12:40:45-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_12:40:45-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_12:43:48-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_12:45:49-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_12:45:49-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_12:50:22-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_12:50:52-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_12:50:52-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_12:55:55-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_12:55:55-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_12:56:56-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_13:00:58-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_13:00:58-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_13:03:30-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_13:06:01-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_13:06:01-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_13:10:05-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_13:11:05-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_13:11:05-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_13:16:08-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_13:16:08-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_13:16:39-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_13:21:11-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_13:21:11-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_13:23:13-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_13:26:14-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_13:26:14-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_13:29:47-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_13:31:17-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_13:31:17-ModelManager-WARNING:view disconnected. Reconnecting... |
|||
2024-06-21_14:45:48-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_14:45:48-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_14:45:50-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_14:45:50-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_14:45:50-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_14:47:19-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_15:25:11-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_15:25:12-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_15:25:14-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_15:25:14-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_15:25:14-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_15:25:43-ModelManager-WARNING:通道-2:view disconnected. Reconnecting... |
|||
2024-06-21_15:26:42-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_15:27:44-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_15:27:44-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_15:27:46-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_15:27:46-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_15:27:46-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_15:28:16-ModelManager-WARNING:通道-2:view disconnected. Reconnecting... |
|||
2024-06-21_15:29:15-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_15:32:47-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_15:32:47-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_15:35:50-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_15:37:51-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_15:37:51-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_15:43:49-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_15:43:49-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_15:43:51-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_15:43:51-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_15:43:51-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_15:45:20-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_15:46:00-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_15:46:00-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_15:46:01-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_15:46:01-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_15:46:01-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_15:47:31-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_16:34:33-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_16:34:33-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_16:34:33-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_16:34:34-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_16:34:34-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_16:36:05-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_16:37:11-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_16:37:11-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_16:37:11-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_16:37:17-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_16:37:47-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_16:38:49-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_16:42:29-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_16:42:59-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_16:45:32-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_16:47:41-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_16:48:11-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_16:52:16-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_16:52:54-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_16:53:24-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_16:58:06-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_16:58:36-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_16:58:59-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_17:03:18-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_17:03:48-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_17:05:43-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_17:08:30-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_17:09:00-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_17:12:26-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_17:13:43-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_17:14:13-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_17:18:55-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_17:19:10-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_17:19:25-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_17:23:06-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_17:23:06-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_17:23:06-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_17:23:30-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_17:23:30-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_17:25:01-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_17:29:01-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_17:29:01-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_17:32:02-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_17:34:31-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_17:34:31-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_17:39:03-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_17:40:02-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_17:40:02-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_17:45:32-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_17:45:32-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_17:46:05-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_17:51:03-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_17:51:03-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_17:53:06-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_17:56:33-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_17:56:33-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_18:00:07-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_18:02:04-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_18:02:04-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_18:07:09-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_18:07:34-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_18:07:34-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_18:13:09-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_18:13:09-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_18:14:10-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_18:18:39-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_18:18:39-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_18:21:11-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_18:24:10-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_18:24:10-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_18:28:13-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_18:29:41-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_18:29:41-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_18:35:11-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_18:35:11-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_18:35:14-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_18:40:42-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_18:40:42-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_18:42:15-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_18:46:12-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_18:46:12-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_18:49:17-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_18:51:43-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_18:51:43-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_18:56:18-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_18:57:13-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_18:57:13-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_19:02:44-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_19:02:44-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_19:03:19-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_19:08:14-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_19:08:14-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_19:10:21-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_19:13:45-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_19:13:45-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_19:17:22-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_19:19:15-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_19:19:15-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_19:24:23-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_19:24:46-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-21_19:24:46-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_19:26:01-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_19:26:01-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_19:26:01-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_19:26:24-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_19:27:55-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_19:29:07-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_19:29:07-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_19:29:07-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_19:30:48-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_19:30:48-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_19:30:48-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_19:31:13-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_19:32:25-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_19:32:25-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_19:32:25-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_19:32:49-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_19:34:20-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_19:38:20-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_19:41:22-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_19:43:51-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_19:48:23-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_19:49:21-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_19:54:52-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_19:55:24-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_20:00:22-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_20:02:26-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_20:05:53-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_20:09:27-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_20:11:23-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_20:40:58-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_20:40:58-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_20:40:58-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_20:41:22-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_20:42:53-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_20:44:45-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_20:44:45-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_20:44:45-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_20:45:10-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_20:45:42-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_20:45:42-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_20:45:42-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_20:46:06-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_20:47:37-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_20:51:37-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_20:54:38-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_20:57:07-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_21:01:40-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_21:02:38-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_21:08:08-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_21:08:41-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_21:13:39-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_21:15:42-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_21:19:09-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_21:22:44-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_21:24:40-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_21:29:45-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_21:30:10-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_21:35:45-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_21:36:46-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_21:41:16-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_21:43:48-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_21:46:46-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_21:50:49-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_21:52:17-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_21:57:47-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_21:57:51-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_22:03:18-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_22:04:52-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_22:08:49-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_22:11:53-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_22:14:19-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_22:18:54-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_22:19:50-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_22:25:20-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_22:25:56-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_22:30:51-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_22:32:57-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_22:36:21-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_22:39:58-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_22:41:52-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_22:47:00-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_22:47:22-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_22:53:00-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_22:54:01-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_22:58:31-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_23:01:03-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_23:04:01-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_23:08:04-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_23:09:32-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_23:15:02-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_23:15:05-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_23:20:33-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_23:22:06-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_23:26:03-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_23:29:08-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-21_23:31:34-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-21_23:58:14-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_23:58:14-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_23:58:14-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-21_23:59:09-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
@ -1,238 +0,0 @@ |
|||
2024-06-22_00:00:10-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_00:02:52-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-22_00:02:52-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-22_00:02:52-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-22_00:03:15-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_00:04:46-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_00:06:02-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-22_00:06:02-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-22_00:06:02-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-22_00:06:24-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_00:07:55-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-22_00:07:55-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-22_00:07:55-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-22_00:08:17-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_00:09:48-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_00:13:47-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_00:14:09-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-22_00:14:09-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-22_00:14:09-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-22_00:14:32-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_00:16:03-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_00:20:02-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_00:23:04-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_00:25:33-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_00:30:05-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_00:31:03-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_00:36:34-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_00:37:06-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_00:42:04-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_00:44:08-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_00:47:35-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_00:51:09-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_00:53:05-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_00:58:10-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_00:58:36-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_01:04:11-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_01:05:12-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_01:09:41-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_01:12:13-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_01:15:12-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_01:19:14-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_01:20:42-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_01:26:13-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_01:26:16-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_01:31:43-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_01:33:17-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_01:37:14-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_01:40:18-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_01:42:44-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_01:47:20-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_01:48:15-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_01:53:45-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_01:54:21-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_01:59:16-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_02:01:22-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_02:04:46-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_02:08:24-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_02:10:17-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_02:15:25-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_02:15:47-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_02:21:25-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_02:22:26-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_02:26:56-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_02:29:28-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_02:32:26-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_02:36:29-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_02:37:57-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_02:43:27-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_02:43:30-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_02:48:58-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_02:50:32-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_02:54:28-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_02:57:33-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_02:59:59-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_03:04:34-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_03:05:29-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_03:11:00-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_03:11:36-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_03:16:31-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_03:18:37-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_03:22:01-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_03:25:38-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_03:27:32-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_03:32:40-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_03:33:02-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_03:38:40-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_03:39:41-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_03:44:10-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_03:46:42-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_03:49:41-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_03:53:44-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_03:55:11-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_04:00:42-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_04:00:45-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_04:06:12-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_04:07:46-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_04:11:43-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_04:14:47-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_04:17:13-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_04:21:49-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_04:22:44-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_04:28:15-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_04:28:50-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_04:33:45-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_04:35:51-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_04:39:16-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_04:42:53-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_04:44:46-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_04:49:54-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_04:50:17-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_04:55:54-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_04:56:55-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_05:01:25-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_05:03:57-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_05:06:55-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_05:10:58-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_05:12:26-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_05:17:56-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_05:17:59-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_05:23:27-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_05:25:00-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_05:28:57-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_05:32:02-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_05:34:28-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_05:39:03-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_05:39:58-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_05:45:29-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_05:46:04-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_05:50:59-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_05:53:06-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_05:56:30-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_06:00:07-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_06:02:00-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_06:07:08-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_06:07:31-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_06:13:08-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_06:14:09-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_06:18:39-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_06:21:11-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_06:24:09-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_06:28:12-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_06:29:40-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_06:35:10-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_06:35:13-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_06:40:41-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_06:42:15-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_06:46:12-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_06:49:16-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_06:51:42-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_06:56:17-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_06:57:13-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_07:02:43-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_07:03:19-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_07:08:14-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_07:10:20-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_07:13:44-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_07:17:21-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_07:19:15-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_07:24:22-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_07:24:45-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_07:30:23-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_07:31:24-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_07:35:53-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_07:38:25-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_07:41:24-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_07:45:26-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_07:46:54-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_07:52:25-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_07:52:28-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_07:57:55-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_07:59:29-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_08:03:26-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_08:06:30-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_08:08:56-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_08:13:31-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_08:14:27-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_08:19:57-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_08:20:33-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_08:25:28-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_08:27:34-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_08:30:58-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_08:34:35-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_08:36:29-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_08:41:37-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_08:41:59-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_08:47:37-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_08:48:38-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_08:53:07-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_08:55:39-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_08:58:38-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_09:02:40-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_09:04:08-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_09:09:39-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_09:09:42-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_09:15:09-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_09:16:43-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_09:20:40-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_09:23:44-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_09:26:10-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_09:30:46-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_09:31:41-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_09:37:11-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_09:37:47-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_09:42:42-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_09:44:48-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_09:48:12-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_09:51:50-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_09:53:43-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_09:58:51-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_09:59:14-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_10:04:51-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_10:05:52-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_10:10:22-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_10:12:53-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_10:15:52-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_10:19:55-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_10:21:23-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_10:26:53-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_10:26:56-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_10:32:24-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_10:33:57-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_10:37:54-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_10:40:59-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_10:43:25-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_10:48:00-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_21:19:51-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-22_21:19:51-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-22_21:19:51-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-22_21:20:10-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_21:20:12-ModelManager-WARNING:通道-3:view disconnected. Reconnecting... |
|||
2024-06-22_21:20:40-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-22_21:20:40-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-22_21:20:40-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-22_21:21:01-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_21:22:32-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_21:26:31-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-22_21:29:34-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-22_21:32:02-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
@ -1,15 +0,0 @@ |
|||
2024-06-23_22:51:33-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-23_22:51:33-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-23_22:51:33-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-23_23:00:00-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-23_23:00:00-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-23_23:00:00-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-23_23:00:19-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-23_23:01:49-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-23_23:05:49-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-23_23:08:51-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-23_23:11:20-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-23_23:15:52-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-23_23:16:50-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-23_23:22:21-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-23_23:22:54-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
@ -1,190 +0,0 @@ |
|||
2024-06-24_15:28:34-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:28:34-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:28:34-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:29:30-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_15:30:11-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:30:11-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:30:11-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:30:36-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_15:32:07-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_15:36:06-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_15:38:40-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:38:40-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:38:40-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:39:37-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_15:40:38-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_15:44:59-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:44:59-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:44:59-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:45:16-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:45:16-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:45:16-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:45:41-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_15:47:12-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_15:51:11-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_15:52:18-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:52:18-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:52:18-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:52:43-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_15:54:26-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:54:26-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:54:26-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:54:51-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_15:56:22-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_15:58:13-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:58:13-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:58:13-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_15:58:37-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_16:00:07-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_16:04:07-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_16:07:11-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:07:11-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:07:11-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:07:34-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_16:09:05-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_16:14:10-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:14:10-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:14:10-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:14:36-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:14:36-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:14:36-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:14:53-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_16:16:24-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_16:18:14-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:18:14-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:18:14-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:19:10-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_16:34:32-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:34:32-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:34:32-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:34:57-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_16:36:28-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_16:51:01-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:51:01-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:51:01-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:51:26-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_16:51:56-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:51:56-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:51:56-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:52:52-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_16:53:15-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:53:15-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:53:15-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_16:53:39-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_16:55:10-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_16:59:09-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_17:04:25-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_17:04:25-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_17:04:25-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_17:05:21-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_17:06:22-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_17:10:52-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_17:13:24-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_17:16:22-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_17:20:25-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_17:21:53-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_17:31:10-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_17:31:10-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_17:31:10-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_17:31:35-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_17:33:47-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_17:33:47-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_17:33:47-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_17:34:32-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_17:34:32-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_17:34:32-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_17:34:37-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_17:36:09-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_17:39:50-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_17:42:52-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_17:45:02-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_18:08:47-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_18:08:47-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_18:08:47-ModelManager-ERROR:model/mode_test/yolov5s.pt 加载错误 |
|||
2024-06-24_18:09:25-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_18:10:26-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_18:14:37-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_18:17:10-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_18:19:49-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_18:23:53-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_18:25:02-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_18:30:14-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_18:30:36-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_18:35:26-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_18:37:20-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_18:40:38-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_18:44:03-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_18:45:51-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_18:50:46-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_18:51:03-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_18:56:28-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_18:57:30-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_19:01:41-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_19:04:13-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_19:06:53-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_19:10:56-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_19:12:05-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_19:17:17-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_19:17:40-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_19:22:30-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_19:24:23-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_19:27:42-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_19:31:06-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_19:32:54-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_19:37:50-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_19:38:06-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_19:43:32-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_19:44:33-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_19:48:44-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_19:51:16-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_19:53:56-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_19:58:00-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_19:59:09-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_20:04:21-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_20:04:43-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_20:09:33-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_20:11:26-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_20:14:45-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_20:18:10-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_20:19:58-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_20:24:53-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_20:25:10-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_20:30:35-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_20:31:37-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_20:35:48-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_20:38:20-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_20:41:00-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_20:45:03-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_20:46:12-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_20:51:24-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_20:51:47-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_20:56:37-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_20:58:30-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_21:01:49-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_21:05:13-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_21:07:01-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_21:11:57-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_21:12:13-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_21:17:39-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_21:18:40-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_21:22:51-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_21:25:23-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_21:28:03-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_21:32:07-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_21:33:16-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_21:38:28-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_21:38:50-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_21:43:40-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_21:45:33-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_21:48:52-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_21:52:17-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_21:54:05-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_21:59:00-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_21:59:17-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_22:04:42-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_22:05:44-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_22:09:55-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_22:12:27-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_22:15:07-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
|||
2024-06-24_22:19:10-ModelManager-WARNING:通道-5:view disconnected. Reconnecting... |
|||
2024-06-24_22:20:19-ModelManager-WARNING:通道-4:view disconnected. Reconnecting... |
@ -1,4 +0,0 @@ |
|||
2024-05-25T09:33:17.757522+0800-INFO-main:111 |
|||
2024-05-25T09:41:26.638770+0800-INFO-main:info |
|||
2024-05-25T09:44:17.514570+0800-INFO-main:info |
|||
2024-05-25T09:45:10.481132+0800-INFO-main:info |
@ -1,204 +0,0 @@ |
|||
import torch |
|||
import cv2 |
|||
import numpy as np |
|||
import torch |
|||
import os |
|||
import importlib |
|||
from model.plugins.ModelBase import ModelBase |
|||
from loguru import logger |
|||
|
|||
''' |
|||
class ModelManager_tmp(): |
|||
def __init__(self): |
|||
print("ModelInit") |
|||
|
|||
def __del__(self): |
|||
print("ModelManager DEL") |
|||
|
|||
def __preprocess_image(self,image, cfg, bgr2rgb=True): |
|||
"""图片预处理""" |
|||
img, scale_ratio, pad_size = letterbox(image, new_shape=cfg['input_shape']) |
|||
if bgr2rgb: |
|||
img = img[:, :, ::-1] |
|||
img = img.transpose(2, 0, 1) # HWC2CHW |
|||
img = np.ascontiguousarray(img, dtype=np.float32) |
|||
return img, scale_ratio, pad_size |
|||
|
|||
def __draw_bbox(self,bbox, img0, color, wt, names): |
|||
"""在图片上画预测框""" |
|||
det_result_str = '' |
|||
for idx, class_id in enumerate(bbox[:, 5]): |
|||
if float(bbox[idx][4] < float(0.05)): |
|||
continue |
|||
img0 = cv2.rectangle(img0, (int(bbox[idx][0]), int(bbox[idx][1])), (int(bbox[idx][2]), int(bbox[idx][3])), |
|||
color, wt) |
|||
img0 = cv2.putText(img0, str(idx) + ' ' + names[int(class_id)], (int(bbox[idx][0]), int(bbox[idx][1] + 16)), |
|||
cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 1) |
|||
img0 = cv2.putText(img0, '{:.4f}'.format(bbox[idx][4]), (int(bbox[idx][0]), int(bbox[idx][1] + 32)), |
|||
cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 1) |
|||
det_result_str += '{} {} {} {} {} {}\n'.format( |
|||
names[bbox[idx][5]], str(bbox[idx][4]), bbox[idx][0], bbox[idx][1], bbox[idx][2], bbox[idx][3]) |
|||
return img0 |
|||
|
|||
def __get_labels_from_txt(self,path): |
|||
"""从txt文件获取图片标签""" |
|||
labels_dict = dict() |
|||
with open(path) as f: |
|||
for cat_id, label in enumerate(f.readlines()): |
|||
labels_dict[cat_id] = label.strip() |
|||
return labels_dict |
|||
|
|||
def __draw_prediction(self,pred, image, labels): |
|||
"""在图片上画出预测框并进行可视化展示""" |
|||
imgbox = widgets.Image(format='jpg', height=720, width=1280) |
|||
img_dw = self.__draw_bbox(pred, image, (0, 255, 0), 2, labels) |
|||
imgbox.value = cv2.imencode('.jpg', img_dw)[1].tobytes() |
|||
display(imgbox) |
|||
|
|||
def __infer_image(self,img_path, model, class_names, cfg): |
|||
"""图片推理""" |
|||
# 图片载入 |
|||
image = cv2.imread(img_path) |
|||
# 数据预处理 |
|||
img, scale_ratio, pad_size = self.__preprocess_image(image, cfg) |
|||
# 模型推理 |
|||
output = model.infer([img])[0] |
|||
|
|||
output = torch.tensor(output) |
|||
# 非极大值抑制后处理 |
|||
boxout = nms(output, conf_thres=cfg["conf_thres"], iou_thres=cfg["iou_thres"]) |
|||
pred_all = boxout[0].numpy() |
|||
# 预测坐标转换 |
|||
scale_coords(cfg['input_shape'], pred_all[:, :4], image.shape, ratio_pad=(scale_ratio, pad_size)) |
|||
# 图片预测结果可视化 |
|||
self.__draw_prediction(pred_all, image, class_names) |
|||
|
|||
def __infer_frame_with_vis(self,image, model, labels_dict, cfg, bgr2rgb=True): |
|||
# 数据预处理 |
|||
img, scale_ratio, pad_size = self.__preprocess_image(image, cfg, bgr2rgb) |
|||
# 模型推理 |
|||
output = model.infer([img])[0] |
|||
|
|||
output = torch.tensor(output) |
|||
# 非极大值抑制后处理 |
|||
boxout = nms(output, conf_thres=cfg["conf_thres"], iou_thres=cfg["iou_thres"]) |
|||
pred_all = boxout[0].numpy() |
|||
# 预测坐标转换 |
|||
scale_coords(cfg['input_shape'], pred_all[:, :4], image.shape, ratio_pad=(scale_ratio, pad_size)) |
|||
# 图片预测结果可视化 |
|||
img_vis = self.__draw_bbox(pred_all, image, (0, 255, 0), 2, labels_dict) |
|||
return img_vis |
|||
|
|||
def __img2bytes(self,image): |
|||
"""将图片转换为字节码""" |
|||
return bytes(cv2.imencode('.jpg', image)[1]) |
|||
def __infer_camera(self,model, labels_dict, cfg): |
|||
"""外设摄像头实时推理""" |
|||
|
|||
def find_camera_index(): |
|||
max_index_to_check = 10 # Maximum index to check for camera |
|||
|
|||
for index in range(max_index_to_check): |
|||
cap = cv2.VideoCapture(index) |
|||
if cap.read()[0]: |
|||
cap.release() |
|||
return index |
|||
|
|||
# If no camera is found |
|||
raise ValueError("No camera found.") |
|||
|
|||
# 获取摄像头 --这里可以换成RTSP流 |
|||
camera_index = find_camera_index() |
|||
cap = cv2.VideoCapture(camera_index) |
|||
# 初始化可视化对象 |
|||
image_widget = widgets.Image(format='jpeg', width=1280, height=720) |
|||
display(image_widget) |
|||
while True: |
|||
# 对摄像头每一帧进行推理和可视化 |
|||
_, img_frame = cap.read() |
|||
image_pred = self.__infer_frame_with_vis(img_frame, model, labels_dict, cfg) |
|||
image_widget.value = self.__img2bytes(image_pred) |
|||
|
|||
def __infer_video(self,video_path, model, labels_dict, cfg): |
|||
"""视频推理""" |
|||
image_widget = widgets.Image(format='jpeg', width=800, height=600) |
|||
display(image_widget) |
|||
|
|||
# 读入视频 |
|||
cap = cv2.VideoCapture(video_path) |
|||
while True: |
|||
ret, img_frame = cap.read() |
|||
if not ret: |
|||
break |
|||
# 对视频帧进行推理 |
|||
image_pred = self.__infer_frame_with_vis(img_frame, model, labels_dict, cfg, bgr2rgb=True) |
|||
image_widget.value = self.__img2bytes(image_pred) |
|||
|
|||
def startWork(self,infer_mode,file_paht = ""): |
|||
cfg = { |
|||
'conf_thres': 0.4, # 模型置信度阈值,阈值越低,得到的预测框越多 |
|||
'iou_thres': 0.5, # IOU阈值,高于这个阈值的重叠预测框会被过滤掉 |
|||
'input_shape': [640, 640], # 模型输入尺寸 |
|||
} |
|||
|
|||
model_path = 'yolo.om' |
|||
label_path = './coco_names.txt' |
|||
# 初始化推理模型 |
|||
model = InferSession(0, model_path) |
|||
labels_dict = self.__get_labels_from_txt(label_path) |
|||
|
|||
#执行验证 |
|||
if infer_mode == 'image': |
|||
img_path = 'world_cup.jpg' |
|||
self.__infer_image(img_path, model, labels_dict, cfg) |
|||
elif infer_mode == 'camera': |
|||
self.__infer_camera(model, labels_dict, cfg) |
|||
elif infer_mode == 'video': |
|||
video_path = 'racing.mp4' |
|||
self.__infer_video(video_path, model, labels_dict, cfg) |
|||
''' |
|||
|
|||
''' |
|||
算法实现类,实现算法执行线程,根据配内容,以线程方式执行算法模块 |
|||
''' |
|||
class ModelManager(): |
|||
def __init__(self): |
|||
print("ModelManager init") |
|||
|
|||
def __del__(self): |
|||
print("ModelManager del") |
|||
|
|||
def doWork(self): |
|||
pass |
|||
|
|||
#动态导入文件 -- 方法二 -- 相对推荐使用该方法 但spec感觉没什么用 |
|||
def import_source(spec, plgpath): |
|||
module = None |
|||
if os.path.exists(plgpath): |
|||
module_spec = importlib.util.spec_from_file_location(spec, plgpath) |
|||
module = importlib.util.module_from_spec(module_spec) |
|||
module_spec.loader.exec_module(module) |
|||
else: |
|||
logger.error("{}文件不存在".format(plgpath)) |
|||
return module |
|||
|
|||
#plgpath 为list [poc][file_name][name] |
|||
def run_plugin(plgpath, target,copy_flag=True): |
|||
module = import_source("", plgpath) |
|||
if module: |
|||
classname = "Model" |
|||
plg = getattr(module, classname)() |
|||
if not isinstance(plg, ModelBase): |
|||
raise Exception("{} not rx_Model".format(plg)) |
|||
new_plg = plg |
|||
result = new_plg.doWork("","","","") # 执行plugin基类的run, 返回结果 |
|||
return result |
|||
else: |
|||
print("模型加载失败") |
|||
return None |
|||
|
|||
def test(): |
|||
run_plugin("plugins/RYRQ_Model_ACL.py","") |
|||
|
|||
if __name__ == "__main__": |
|||
test() |
@ -0,0 +1,9 @@ |
|||
CLASSES = ['person', 'bicycle', 'car', 'motorcycle', 'airplane', 'bus', 'train', 'truck', 'boat', 'traffic light', |
|||
'fire hydrant', 'stop sign', 'parking meter', 'bench', 'bird', 'cat', 'dog', 'horse', 'sheep', 'cow', |
|||
'elephant', 'bear', 'zebra', 'giraffe', 'backpack', 'umbrella', 'handbag', 'tie', 'suitcase', 'frisbee', |
|||
'skis', 'snowboard', 'sports ball', 'kite', 'baseball bat', 'baseball glove', 'skateboard', 'surfboard', |
|||
'tennis racket', 'bottle', 'wine glass', 'cup', 'fork', 'knife', 'spoon', 'bowl', 'banana', 'apple', |
|||
'sandwich', 'orange', 'broccoli', 'carrot', 'hot dog', 'pizza', 'donut', 'cake', 'chair', 'couch', |
|||
'potted plant', 'bed', 'dining table', 'toilet', 'tv', 'laptop', 'mouse', 'remote', 'keyboard', 'cell phone', |
|||
'microwave', 'oven', 'toaster', 'sink', 'refrigerator', 'book', 'clock', 'vase', 'scissors', 'teddy bear', |
|||
'hair drier', 'toothbrush'] |
@ -0,0 +1,107 @@ |
|||
import cv2 |
|||
import numpy as np |
|||
from model.base_model.ascnedcl.classes import CLASSES |
|||
|
|||
|
|||
def letterbox(img, new_shape=(640, 640), auto=False, scaleFill=False, scaleup=True, center=True, stride=32): |
|||
# Resize and pad image while meeting stride-multiple constraints |
|||
shape = img.shape[:2] # current shape [height, width] |
|||
if isinstance(new_shape, int): |
|||
new_shape = (new_shape, new_shape) |
|||
|
|||
# Scale ratio (new / old) |
|||
r = min(new_shape[0] / shape[0], new_shape[1] / shape[1]) |
|||
if not scaleup: # only scale down, do not scale up (for better val mAP) |
|||
r = min(r, 1.0) |
|||
|
|||
# Compute padding |
|||
ratio = r, r # width, height ratios |
|||
new_unpad = int(round(shape[1] * r)), int(round(shape[0] * r)) |
|||
dw, dh = new_shape[1] - new_unpad[0], new_shape[0] - new_unpad[1] # wh padding |
|||
if auto: # minimum rectangle |
|||
dw, dh = np.mod(dw, stride), np.mod(dh, stride) # wh padding |
|||
elif scaleFill: # stretch |
|||
dw, dh = 0.0, 0.0 |
|||
new_unpad = (new_shape[1], new_shape[0]) |
|||
ratio = new_shape[1] / shape[1], new_shape[0] / shape[0] # width, height ratios |
|||
|
|||
if center: |
|||
dw /= 2 # divide padding into 2 sides |
|||
dh /= 2 |
|||
|
|||
if shape[::-1] != new_unpad: # resize |
|||
img = cv2.resize(img, new_unpad, interpolation=cv2.INTER_LINEAR) |
|||
top, bottom = int(round(dh - 0.1)) if center else 0, int(round(dh + 0.1)) |
|||
left, right = int(round(dw - 0.1)) if center else 0, int(round(dw + 0.1)) |
|||
img = cv2.copyMakeBorder( |
|||
img, top, bottom, left, right, cv2.BORDER_CONSTANT, value=(114, 114, 114) |
|||
) # add border |
|||
|
|||
return img, ratio, dw, dh |
|||
|
|||
def non_max_suppression_v10(prediction,conf_thres,ratio,dw,dh): |
|||
result = [] |
|||
for i in range(prediction.shape[0]): |
|||
data = prediction[i] |
|||
# 读取类别置信度 |
|||
confidence = data[4] |
|||
# 用阈值进行过滤 |
|||
if confidence > conf_thres: |
|||
# 读取类别索引 |
|||
label = int(data[5]) |
|||
# 读取类坐标值,把坐标还原到原始图像 |
|||
xmin = int((data[0] - int(round(dw - 0.1))) / ratio[0]) |
|||
ymin = int((data[1] - int(round(dh - 0.1))) / ratio[1]) |
|||
xmax = int((data[2] - int(round(dw + 0.1))) / ratio[0]) |
|||
ymax = int((data[3] - int(round(dh + 0.1))) / ratio[1]) |
|||
result.append([xmin, ymin, xmax, ymax, confidence, label]) |
|||
return result |
|||
|
|||
|
|||
def draw_bbox_old(bbox, img0, color, wt): |
|||
det_result_str = '' |
|||
for idx, class_id in enumerate(bbox[:, 5]): |
|||
if float(bbox[idx][4] < float(0.05)): |
|||
continue |
|||
img0 = cv2.rectangle(img0, (int(bbox[idx][0]), int(bbox[idx][1])), (int(bbox[idx][2]), int(bbox[idx][3])), color, wt) |
|||
img0 = cv2.putText(img0, str(idx) + ' ' + CLASSES[int(class_id)], (int(bbox[idx][0]), int(bbox[idx][1] + 16)), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 1) |
|||
img0 = cv2.putText(img0, '{:.4f}'.format(bbox[idx][4]), (int(bbox[idx][0]), int(bbox[idx][1] + 32)), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 1) |
|||
det_result_str += '{} {} {} {} {} {}\n'.format(CLASSES[bbox[idx][5]], str(bbox[idx][4]), bbox[idx][0], bbox[idx][1], bbox[idx][2], bbox[idx][3]) |
|||
return img0 |
|||
|
|||
def draw_box(img, |
|||
box, # [xmin, ymin, xmax, ymax] |
|||
score, |
|||
class_id): |
|||
'''Draws a bounding box on the image''' |
|||
|
|||
# Retrieve the color for the class ID |
|||
color_palette = np.random.uniform(0, 255, size=(len(CLASSES), 3)) |
|||
color = color_palette[class_id] |
|||
|
|||
# Draw the bounding box on the image |
|||
cv2.rectangle(img, (box[0], box[1]), (box[2], box[3]), color, 2) |
|||
|
|||
# Create the label text with class name and score |
|||
label = f'{CLASSES[class_id]}: {score:.2f}' |
|||
|
|||
# Calculate the dimensions of the label text |
|||
(label_width, label_height), _ = cv2.getTextSize(label, cv2.FONT_HERSHEY_SIMPLEX, 0.5, 1) |
|||
|
|||
# Calculate the position of the label text |
|||
label_x = box[0] |
|||
label_y = box[1] - 10 if box[1] - 10 > label_height else box[1] + 10 |
|||
|
|||
# Draw a filled rectangle as the background for the label text |
|||
cv2.rectangle( |
|||
img, |
|||
(int(label_x), int(label_y - label_height)), |
|||
(int(label_x + label_width), int(label_y + label_height)), |
|||
color, |
|||
cv2.FILLED, |
|||
) |
|||
|
|||
# Draw the label text on the image |
|||
cv2.putText(img, label, (int(label_x), int(label_y)), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 0), 1, cv2.LINE_AA) |
|||
|
|||
return img |
@ -1,9 +0,0 @@ |
|||
from model.plugins.ModelBase import ModelBase |
|||
|
|||
class Model(ModelBase): |
|||
def __init__(self): |
|||
super().__init__() |
|||
pass |
|||
|
|||
def doWork(self,image,mode,class_name,cfg,isdraw_box=False,bgr2rgb=True): |
|||
print("AQM_Model") |
@ -0,0 +1,76 @@ |
|||
import os.path |
|||
from model.plugins.ModelBase import ModelBase |
|||
from myutils.ConfigManager import myCongif |
|||
from model.base_model.ascnedcl.det_utils import get_labels_from_txt, letterbox, scale_coords, nms, draw_bbox # 模型前后处理相关函数 |
|||
import cv2 |
|||
import numpy as np |
|||
import torch # 深度学习运算框架,此处主要用来处理数据 |
|||
from core.ACLModelManager import ACLModeManger |
|||
|
|||
class Model(ModelBase): |
|||
def __init__(self,path,threshold=0.5): |
|||
# 找pt模型路径 -- 一个约束py文件和模型文件的路径关系需要固定, -- 上传模型时,要解压好路径 |
|||
dirpath, filename = os.path.split(path) |
|||
self.model_file = os.path.join(dirpath, "yolov5s_bs1.om") # 目前约束模型文件和py文件在同一目录 |
|||
#self.coco_file = os.path.join(dirpath, "coco_names.txt") |
|||
super().__init__(self.model_file) # acl环境初始化基类负责类的实例化 |
|||
|
|||
self.name = "人员模型-yolov5" |
|||
self.version = "V1.0" |
|||
self.model_type = 2 |
|||
|
|||
self.neth = 640 # 缩放的目标高度, 也即模型的输入高度 |
|||
self.netw = 640 # 缩放的目标宽度, 也即模型的输入宽度 |
|||
self.conf_threshold = threshold # 置信度阈值 |
|||
|
|||
|
|||
def verify(self,image,data,isdraw=1): |
|||
labels_dict = get_labels_from_txt('/mnt/zfbox/model/plugins/RYRQ_ACL/coco_names.txt') # 得到类别信息,返回序号与类别对应的字典 |
|||
# 数据前处理 |
|||
img, scale_ratio, pad_size = letterbox(image, new_shape=[640, 640]) # 对图像进行缩放与填充 |
|||
img = img[:, :, ::-1].transpose(2, 0, 1) # BGR to RGB, HWC to CHW #图片在输入时已经做了转换 |
|||
img = np.ascontiguousarray(img, dtype=np.float32) / 255.0 # 转换为内存连续存储的数组 |
|||
|
|||
# 模型推理, 得到模型输出 |
|||
outputs = None |
|||
outputs = self.execute([img,])#创建input,执行模型,返回结果 --失败返回None |
|||
|
|||
filtered_pred_all = None |
|||
bwarn = False |
|||
warn_text = "" |
|||
# 是否有检测区域,有先绘制检测区域 由于在该函数生成了polygon对象,所有需要在检测区域前调用。 |
|||
if data[1] == 1: |
|||
self.draw_polygon(image, data[2], (255, 0, 0)) |
|||
|
|||
if outputs: |
|||
output = outputs[0] #只放了一张图片 |
|||
# 后处理 -- boxout 是 tensor-list: [tensor([[],[].[]])] --[x1,y1,x2,y2,置信度,coco_index] |
|||
boxout = nms(torch.tensor(output), conf_thres=0.3, |
|||
iou_thres=0.5) # 利用非极大值抑制处理模型输出,conf_thres 为置信度阈值,iou_thres 为iou阈值 |
|||
pred_all = boxout[0].numpy() # 转换为numpy数组 -- [[],[],[]] --[x1,y1,x2,y2,置信度,coco_index] |
|||
# pred_all[:, :4] 取所有行的前4列,pred_all[:,1]--第一列 |
|||
scale_coords([640, 640], pred_all[:, :4], image.shape, ratio_pad=(scale_ratio, pad_size)) # 将推理结果缩放到原始图片大小 |
|||
#过滤掉不是目标标签的数据 -- 序号0-- person |
|||
filtered_pred_all = pred_all[pred_all[:, 5] == 0] |
|||
# 绘制检测结果 --- 也需要封装在类里, |
|||
for pred in filtered_pred_all: |
|||
x1, y1, x2, y2 = int(pred[0]), int(pred[1]), int(pred[2]), int(pred[3]) |
|||
# # 绘制目标识别的锚框 --已经在draw_bbox里处理 |
|||
# cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), 2) |
|||
if data[1] == 1: # 指定了检测区域 |
|||
x_center = (x1 + x2) / 2 |
|||
y_center = (y1 + y2) / 2 |
|||
#绘制中心点? |
|||
cv2.circle(image, (int(x_center), int(y_center)), 5, (0, 0, 255), -1) |
|||
#判断是否区域点 |
|||
if not self.is_point_in_region((x_center, y_center)): |
|||
continue #没产生报警-继续 |
|||
#产生报警 -- 有一个符合即可 |
|||
bwarn = True |
|||
warn_text = "People checked!" |
|||
img_dw = draw_bbox(filtered_pred_all, image, (0, 255, 0), 2, labels_dict) # 画出检测框、类别、概率 |
|||
#cv2.imwrite('img_res_peo.png', image) |
|||
return filtered_pred_all, bwarn, warn_text |
|||
|
|||
def testRun(self): |
|||
print("1111") |
@ -0,0 +1,130 @@ |
|||
import os.path |
|||
from model.plugins.ModelBase import ModelBase |
|||
#from model.base_model.ascnedcl.det_utils import get_labels_from_txt, letterbox, scale_coords, nms, draw_bbox # 模型前后处理相关函数 |
|||
from model.base_model.ascnedcl.det_utils_v10 import draw_box,draw_bbox_old, letterbox,non_max_suppression_v10 |
|||
import cv2 |
|||
import numpy as np |
|||
import torch # 深度学习运算框架,此处主要用来处理数据 |
|||
|
|||
class Model(ModelBase): |
|||
def __init__(self,path,threshold=0.5,iou_thres=0.5): |
|||
# 找pt模型路径 -- 一个约束py文件和模型文件的路径关系需要固定, -- 上传模型时,要解压好路径 |
|||
dirpath, filename = os.path.split(path) |
|||
#self.model_file = os.path.join(dirpath, "yolov5s_bs1.om") # 目前约束模型文件和py文件在同一目录 |
|||
self.model_file = os.path.join(dirpath, "yolov10m_310B4.om") # 目前约束模型文件和py文件在同一目录 |
|||
self.coco_file = os.path.join(dirpath, "coco_names.txt") |
|||
#self.labels_dict = get_labels_from_txt(self.coco_file) # 得到类别信息,返回序号与类别对应的字典 |
|||
|
|||
super().__init__(self.model_file) # acl环境初始化基类负责类的实例化 |
|||
|
|||
self.name = "人员入侵-yolov10" |
|||
self.version = "V1.0" |
|||
self.model_type = 2 |
|||
|
|||
self.neth = 640 # 缩放的目标高度, 也即模型的输入高度 |
|||
self.netw = 640 # 缩放的目标宽度, 也即模型的输入宽度 |
|||
|
|||
self.conf_threshold = threshold # 置信度阈值 |
|||
self.iou_thres = iou_thres #IOU阈值 |
|||
|
|||
def prework(self,image): |
|||
'''模型输入图片数据前处理 --- 针对每个模型特有的预处理内容 -''' |
|||
img, scale_ratio, dw,dh = letterbox(image, new_shape=[self.netw, self.neth]) # 对图像进行缩放与填充 |
|||
img = img[:, :, ::-1].transpose(2, 0, 1) # BGR to RGB, HWC to CHW #图片在输入时已经做了转换 |
|||
img = np.ascontiguousarray(img, dtype=np.float32) / 255.0 # 转换为内存连续存储的数组 |
|||
return img,scale_ratio, (dw,dh) |
|||
|
|||
def postwork(self,image,outputs,scale_ratio,pad_size,check_area,polygon,conf_threshold,iou_thres): |
|||
''' |
|||
针对每个模型特有的后处理内容 |
|||
:param image: |
|||
:param outputs: |
|||
:param scale_ratio: |
|||
:param pad_size: |
|||
:param check_area: |
|||
:param polygon: |
|||
:param conf_threshold: |
|||
:param iou_thres: |
|||
:return: |
|||
''' |
|||
filtered_pred_all = None |
|||
bwarn = False |
|||
warn_text = "" |
|||
# 是否有检测区域,有先绘制检测区域 由于在该函数生成了polygon对象,所有需要在检测区域前调用。 |
|||
if check_area == 1: |
|||
self.draw_polygon(image, polygon, (255, 0, 0)) |
|||
|
|||
if outputs: |
|||
output = np.squeeze(outputs[0]) # 移除张量为1的维度 --暂时不明白其具体意义 |
|||
dw,dh = pad_size |
|||
pred_all = non_max_suppression_v10(output, self.conf_threshold, scale_ratio, dw, dh) |
|||
for xmin, ymin, xmax, ymax, confidence, label in pred_all: |
|||
# # 绘制目标识别的锚框 --已经在draw_bbox里处理 |
|||
# cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), 2) |
|||
draw_box(image, [xmin, ymin, xmax, ymax], confidence, label) # 画出检测框、类别、概率 |
|||
if label == 0: # person |
|||
# 判断是否产生告警 |
|||
x1, y1, x2, y2 = int(xmin), int(ymin), int(xmax), int(ymax) |
|||
if check_area == 1: # 指定了检测区域 |
|||
x_center = (x1 + x2) / 2 |
|||
y_center = (y1 + y2) / 2 |
|||
# 绘制中心点? |
|||
cv2.circle(image, (int(x_center), int(y_center)), 5, (0, 0, 255), -1) |
|||
# 判断是否区域点 |
|||
if not self.is_point_in_region((x_center, y_center)): |
|||
continue # 没产生报警-继续 |
|||
# 产生报警 -- 有一个符合即可 |
|||
bwarn = True |
|||
warn_text = "People Intruder detected!" |
|||
# 清理内存 |
|||
del outputs, output |
|||
del pred_all, filtered_pred_all |
|||
# cv2.imwrite('img_res.png', img_dw) |
|||
return bwarn, warn_text |
|||
|
|||
def verify(self,image,data,isdraw=1): |
|||
# 数据前处理 |
|||
img, scale_ratio, dw,dh = letterbox(image, new_shape=[self.netw, self.neth]) # 对图像进行缩放与填充 |
|||
img = img[:, :, ::-1].transpose(2, 0, 1) # BGR to RGB, HWC to CHW #图片在输入时已经做了转换 |
|||
img = np.ascontiguousarray(img, dtype=np.float32) / 255.0 # 转换为内存连续存储的数组 |
|||
|
|||
# 模型推理, 得到模型输出 |
|||
outputs = self.execute([img,])#创建input,执行模型,返回结果 --失败返回None |
|||
|
|||
filtered_pred_all = None |
|||
bwarn = False |
|||
warn_text = "" |
|||
# 是否有检测区域,有先绘制检测区域 由于在该函数生成了polygon对象,所有需要在检测区域前调用。 |
|||
if data[1] == 1: |
|||
self.draw_polygon(image, data[2], (255, 0, 0)) |
|||
|
|||
if outputs: |
|||
output = np.squeeze(outputs[0]) #移除张量为1的维度 --暂时不明白其具体意义 |
|||
pred_all = non_max_suppression_v10(output,self.conf_threshold,scale_ratio,dw,dh) |
|||
|
|||
for xmin, ymin, xmax, ymax, confidence, label in pred_all: |
|||
# # 绘制目标识别的锚框 --已经在draw_bbox里处理 |
|||
# cv2.rectangle(image, (x1, y1), (x2, y2), (0, 255, 0), 2) |
|||
draw_box(image, [xmin, ymin, xmax, ymax], confidence, label) # 画出检测框、类别、概率 |
|||
if label == 0: # person |
|||
#判断是否产生告警 |
|||
x1, y1, x2, y2 = int(xmin), int(ymin), int(xmax), int(ymax) |
|||
if data[1] == 1: # 指定了检测区域 |
|||
x_center = (x1 + x2) / 2 |
|||
y_center = (y1 + y2) / 2 |
|||
# 绘制中心点? |
|||
cv2.circle(image, (int(x_center), int(y_center)), 5, (0, 0, 255), -1) |
|||
# 判断是否区域点 |
|||
if not self.is_point_in_region((x_center, y_center)): |
|||
continue # 没产生报警-继续 |
|||
# 产生报警 -- 有一个符合即可 |
|||
bwarn = True |
|||
warn_text = "People Intruder detected!" |
|||
# 清理内存 |
|||
del outputs, output |
|||
del pred_all,filtered_pred_all |
|||
#cv2.imwrite('img_res.png', img_dw) |
|||
return bwarn, warn_text |
|||
|
|||
def testRun(self): |
|||
print("I am RYRQ-Model-ACL!!!") |
@ -0,0 +1,80 @@ |
|||
person |
|||
bicycle |
|||
car |
|||
motorcycle |
|||
airplane |
|||
bus |
|||
train |
|||
truck |
|||
boat |
|||
traffic_light |
|||
fire_hydrant |
|||
stop_sign |
|||
parking_meter |
|||
bench |
|||
bird |
|||
cat |
|||
dog |
|||
horse |
|||
sheep |
|||
cow |
|||
elephant |
|||
bear |
|||
zebra |
|||
giraffe |
|||
backpack |
|||
umbrella |
|||
handbag |
|||
tie |
|||
suitcase |
|||
frisbee |
|||
skis |
|||
snowboard |
|||
sports_ball |
|||
kite |
|||
baseball_bat |
|||
baseball_glove |
|||
skateboard |
|||
surfboard |
|||
tennis_racket |
|||
bottle |
|||
wine_glass |
|||
cup |
|||
fork |
|||
knife |
|||
spoon |
|||
bowl |
|||
banana |
|||
apple |
|||
sandwich |
|||
orange |
|||
broccoli |
|||
carrot |
|||
hot_dog |
|||
pizza |
|||
donut |
|||
cake |
|||
chair |
|||
couch |
|||
potted_plant |
|||
bed |
|||
dining_table |
|||
toilet |
|||
tv |
|||
laptop |
|||
mouse |
|||
remote |
|||
keyboard |
|||
cell_phone |
|||
microwave |
|||
oven |
|||
toaster |
|||
sink |
|||
refrigerator |
|||
book |
|||
clock |
|||
vase |
|||
scissors |
|||
teddy_bear |
|||
hair_drier |
|||
toothbrush |
@ -1,155 +0,0 @@ |
|||
# 导入代码依赖 |
|||
import cv2 |
|||
import numpy as np |
|||
from myutils.ConfigManager import myCongif |
|||
import os |
|||
import torch |
|||
|
|||
import ipywidgets as widgets |
|||
from IPython.display import display |
|||
from skvideo.io import vreader, FFmpegWriter |
|||
import IPython.display |
|||
from ais_bench.infer.interface import InferSession |
|||
from det_utils import letterbox, scale_coords, nms |
|||
|
|||
def preprocess_image(image, cfg, bgr2rgb=True): |
|||
"""图片预处理""" |
|||
img, scale_ratio, pad_size = letterbox(image, new_shape=cfg['input_shape']) |
|||
if bgr2rgb: |
|||
img = img[:, :, ::-1] |
|||
img = img.transpose(2, 0, 1) # HWC2CHW |
|||
img = np.ascontiguousarray(img, dtype=np.float32) |
|||
return img, scale_ratio, pad_size |
|||
|
|||
def draw_bbox(bbox, img0, color, wt, names): |
|||
"""在图片上画预测框""" |
|||
det_result_str = '' |
|||
for idx, class_id in enumerate(bbox[:, 5]): |
|||
if float(bbox[idx][4] < float(0.05)): |
|||
continue |
|||
img0 = cv2.rectangle(img0, (int(bbox[idx][0]), int(bbox[idx][1])), (int(bbox[idx][2]), int(bbox[idx][3])), |
|||
color, wt) |
|||
img0 = cv2.putText(img0, str(idx) + ' ' + names[int(class_id)], (int(bbox[idx][0]), int(bbox[idx][1] + 16)), |
|||
cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 1) |
|||
img0 = cv2.putText(img0, '{:.4f}'.format(bbox[idx][4]), (int(bbox[idx][0]), int(bbox[idx][1] + 32)), |
|||
cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 1) |
|||
det_result_str += '{} {} {} {} {} {}\n'.format( |
|||
names[bbox[idx][5]], str(bbox[idx][4]), bbox[idx][0], bbox[idx][1], bbox[idx][2], bbox[idx][3]) |
|||
return img0 |
|||
|
|||
def get_labels_from_txt(path): |
|||
"""从txt文件获取图片标签""" |
|||
labels_dict = dict() |
|||
with open(path) as f: |
|||
for cat_id, label in enumerate(f.readlines()): |
|||
labels_dict[cat_id] = label.strip() |
|||
return labels_dict |
|||
|
|||
def draw_prediction(pred, image, labels): |
|||
"""在图片上画出预测框并进行可视化展示""" |
|||
imgbox = widgets.Image(format='jpg', height=720, width=1280) |
|||
img_dw = draw_bbox(pred, image, (0, 255, 0), 2, labels) |
|||
imgbox.value = cv2.imencode('.jpg', img_dw)[1].tobytes() |
|||
display(imgbox) |
|||
|
|||
def infer_image(img_path, model, class_names, cfg): |
|||
"""图片推理""" |
|||
# 图片载入 |
|||
image = cv2.imread(img_path) |
|||
# 数据预处理 |
|||
img, scale_ratio, pad_size = preprocess_image(image, cfg) |
|||
# 模型推理 |
|||
output = model.infer([img])[0] |
|||
|
|||
output = torch.tensor(output) |
|||
# 非极大值抑制后处理 |
|||
boxout = nms(output, conf_thres=cfg["conf_thres"], iou_thres=cfg["iou_thres"]) |
|||
pred_all = boxout[0].numpy() |
|||
# 预测坐标转换 |
|||
scale_coords(cfg['input_shape'], pred_all[:, :4], image.shape, ratio_pad=(scale_ratio, pad_size)) |
|||
# 图片预测结果可视化 |
|||
draw_prediction(pred_all, image, class_names) |
|||
|
|||
def infer_frame_with_vis(image, model, labels_dict, cfg, bgr2rgb=True): |
|||
# 数据预处理 |
|||
img, scale_ratio, pad_size = preprocess_image(image, cfg, bgr2rgb) |
|||
# 模型推理 |
|||
output = model.infer([img])[0] |
|||
|
|||
output = torch.tensor(output) |
|||
# 非极大值抑制后处理 |
|||
boxout = nms(output, conf_thres=cfg["conf_thres"], iou_thres=cfg["iou_thres"]) |
|||
pred_all = boxout[0].numpy() |
|||
# 预测坐标转换 |
|||
scale_coords(cfg['input_shape'], pred_all[:, :4], image.shape, ratio_pad=(scale_ratio, pad_size)) |
|||
# 图片预测结果可视化 |
|||
img_vis = draw_bbox(pred_all, image, (0, 255, 0), 2, labels_dict) |
|||
return img_vis |
|||
|
|||
def img2bytes(image): |
|||
"""将图片转换为字节码""" |
|||
return bytes(cv2.imencode('.jpg', image)[1]) |
|||
|
|||
def infer_video(video_path, model, labels_dict, cfg): |
|||
"""视频推理""" |
|||
image_widget = widgets.Image(format='jpeg', width=800, height=600) |
|||
display(image_widget) |
|||
|
|||
# 读入视频 |
|||
cap = cv2.VideoCapture(video_path) |
|||
while True: |
|||
ret, img_frame = cap.read() |
|||
if not ret: |
|||
break |
|||
# 对视频帧进行推理 |
|||
image_pred = infer_frame_with_vis(img_frame, model, labels_dict, cfg, bgr2rgb=True) |
|||
image_widget.value = img2bytes(image_pred) |
|||
|
|||
def infer_camera(model, labels_dict, cfg): |
|||
"""外设摄像头实时推理""" |
|||
def find_camera_index(): |
|||
max_index_to_check = 10 # Maximum index to check for camera |
|||
|
|||
for index in range(max_index_to_check): |
|||
cap = cv2.VideoCapture(index) |
|||
if cap.read()[0]: |
|||
cap.release() |
|||
return index |
|||
|
|||
# If no camera is found |
|||
raise ValueError("No camera found.") |
|||
|
|||
# 获取摄像头 |
|||
camera_index = find_camera_index() |
|||
cap = cv2.VideoCapture(camera_index) |
|||
# 初始化可视化对象 |
|||
image_widget = widgets.Image(format='jpeg', width=1280, height=720) |
|||
display(image_widget) |
|||
while True: |
|||
# 对摄像头每一帧进行推理和可视化 |
|||
_, img_frame = cap.read() |
|||
image_pred = infer_frame_with_vis(img_frame, model, labels_dict, cfg) |
|||
image_widget.value = img2bytes(image_pred) |
|||
|
|||
if __name__ == "__main__": |
|||
cfg = { |
|||
'conf_thres': 0.4, # 模型置信度阈值,阈值越低,得到的预测框越多 |
|||
'iou_thres': 0.5, # IOU阈值,高于这个阈值的重叠预测框会被过滤掉 |
|||
'input_shape': [640, 640], # 模型输入尺寸 |
|||
} |
|||
model_path = os.path.join(myCongif.get_data('weight_path'),'/yolov5-1/yolov5s.pt') |
|||
label_path = os.path.join(myCongif.get_data('weight_path'),'/yolov5-1/coco_names.txt') |
|||
# 初始化推理模型 |
|||
model = InferSession(0, model_path) |
|||
labels_dict = get_labels_from_txt(label_path) |
|||
|
|||
infer_mode = 'video' |
|||
|
|||
if infer_mode == 'image': |
|||
img_path = 'world_cup.jpg' |
|||
infer_image(img_path, model, labels_dict, cfg) |
|||
elif infer_mode == 'camera': |
|||
infer_camera(model, labels_dict, cfg) |
|||
elif infer_mode == 'video': |
|||
video_path = 'racing.mp4' |
|||
infer_video(video_path, model, labels_dict, cfg) |
@ -1,64 +0,0 @@ |
|||
import torch |
|||
import cv2 |
|||
import numpy as np |
|||
from shapely.geometry import Point, Polygon |
|||
import os |
|||
|
|||
# # 自定义模型文件的路径 |
|||
# model_path = 'yolov5s.pt' # 假设模型文件名为 yolov5s.pt 并与执行文件在同一个目录 |
|||
# # 本地YOLOv5仓库路径 |
|||
# repo_path = '../base_model/yolov5' |
|||
# 自定义模型文件的路径 |
|||
print(f"Current working directory (yolov5.py): {os.getcwd()}") |
|||
model_path = 'D:/Project/FristProject/model/mode_test/yolov5s.pt' # 假设模型文件名为 yolov5s.pt 并与执行文件在同一个目录 |
|||
# 本地YOLOv5仓库路径 |
|||
repo_path = 'D:/Project/FristProject/model/base_model/yolov5' |
|||
|
|||
# 加载自定义模型 |
|||
model = torch.hub.load(repo_path, 'custom', path=model_path, source='local') |
|||
|
|||
# 定义监控区域(多边形顶点) |
|||
region_points = [(100, 100), (500, 100), (500, 400), (100, 400)] |
|||
polygon = Polygon(region_points) |
|||
|
|||
# 打开摄像头 |
|||
cap = cv2.VideoCapture(0) |
|||
|
|||
def is_point_in_polygon(point, polygon): |
|||
return polygon.contains(Point(point)) |
|||
|
|||
while True: |
|||
ret, frame = cap.read() |
|||
if not ret: |
|||
break |
|||
|
|||
# 进行推理 |
|||
results = model(frame) |
|||
detections = results.pandas().xyxy[0] |
|||
|
|||
# 绘制监控区域 |
|||
cv2.polylines(frame, [np.array(region_points, np.int32)], isClosed=True, color=(0, 255, 0), thickness=2) |
|||
|
|||
for _, row in detections.iterrows(): |
|||
if row['name'] == 'person': |
|||
# 获取人员检测框的中心点 |
|||
x_center = (row['xmin'] + row['xmax']) / 2 |
|||
y_center = (row['ymin'] + row['ymax']) / 2 |
|||
|
|||
if is_point_in_polygon((x_center, y_center), polygon): |
|||
# 触发报警 |
|||
cv2.putText(frame, 'Alert: Intrusion Detected', (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2) |
|||
print('Alert: Intrusion Detected') |
|||
|
|||
# 绘制检测框 |
|||
cv2.rectangle(frame, (int(row['xmin']), int(row['ymin'])), (int(row['xmax']), int(row['ymax'])), (255, 0, 0), 2) |
|||
cv2.circle(frame, (int(x_center), int(y_center)), 5, (0, 0, 255), -1) |
|||
|
|||
# 显示结果 |
|||
cv2.imshow('Frame', frame) |
|||
|
|||
if cv2.waitKey(1) & 0xFF == ord('q'): |
|||
break |
|||
|
|||
cap.release() |
|||
cv2.destroyAllWindows() |
@ -0,0 +1,300 @@ |
|||
import subprocess |
|||
import platform |
|||
import locale |
|||
import re |
|||
|
|||
''' |
|||
针对windows和linux的网络信息获取和设置功能类。 |
|||
由于网络接口名字并不一定,又有多网卡等情况,实际应用时需要指定网络接口(固化硬件环境) |
|||
''' |
|||
|
|||
class IPManager: |
|||
def __init__(self): |
|||
self.os_type = platform.system() |
|||
self.encoding = locale.getpreferredencoding() |
|||
|
|||
def set_ip(self, interface_name, ip_address, subnet_mask, gateway): |
|||
if self.os_type == "Windows": |
|||
self._set_ip_windows(interface_name, ip_address, subnet_mask, gateway) |
|||
elif self.os_type == "Linux": |
|||
self._set_ip_linux(interface_name, ip_address, subnet_mask, gateway) |
|||
else: |
|||
raise NotImplementedError("Unsupported OS") |
|||
|
|||
def connect_wifi(self, ssid, password): |
|||
if self.os_type == "Windows": |
|||
self._connect_wifi_windows(ssid, password) |
|||
elif self.os_type == "Linux": |
|||
self._connect_wifi_linux(ssid, password) |
|||
else: |
|||
raise NotImplementedError("Unsupported OS") |
|||
|
|||
def get_wifi_list(self): |
|||
wifis = [] |
|||
if self.os_type == "Windows": |
|||
wifis = self._get_wifi_list_windows() |
|||
elif self.os_type == "Linux": |
|||
wifis = self._get_wifi_list_linux() |
|||
else: |
|||
raise NotImplementedError("Unsupported OS") |
|||
return wifis |
|||
|
|||
def get_connected_wifi(self): |
|||
ssid = None |
|||
if self.os_type == "Windows": |
|||
ssid = self._get_connected_wifi_windows() |
|||
elif self.os_type == "Linux": |
|||
ssid = self._get_connected_wifi_linux() |
|||
else: |
|||
raise NotImplementedError("Unsupported OS") |
|||
return ssid |
|||
|
|||
def get_network_info(self): |
|||
info = None |
|||
if self.os_type == "Windows": |
|||
info = self._get_network_info_windows() |
|||
elif self.os_type == "Linux": |
|||
info = self._get_network_info_linux() |
|||
else: |
|||
raise NotImplementedError("Unsupported OS") |
|||
return info |
|||
|
|||
def _set_ip_windows(self, interface_name, ip_address, subnet_mask, gateway): |
|||
command = f'netsh interface ip set address name="{interface_name}" static {ip_address} {subnet_mask} {gateway} 1' |
|||
#result = subprocess.run(command, shell=True,capture_output=True, text=True, encoding='utf-8') |
|||
# 打印输出结果 |
|||
result = self._run_cmd(command) |
|||
print(result.stdout) |
|||
|
|||
# 检查返回码 |
|||
if result.returncode == 0: |
|||
print("IP address set successfully.") |
|||
else: |
|||
print("Failed to set IP address. Please check the output for errors.") |
|||
|
|||
def _set_ip_linux(self, interface_name, ip_address, subnet_mask, gateway): |
|||
self._run_cmd(f"sudo ip addr flush dev {interface_name}") |
|||
self._run_cmd(f"sudo ip addr add {ip_address}/{subnet_mask} dev {interface_name}") |
|||
self._run_cmd(f"sudo ip route add default via {gateway}") |
|||
|
|||
def _connect_wifi_windows(self, ssid, password): |
|||
command = f'netsh wlan connect name="{ssid}"' |
|||
self._run_cmd(command) |
|||
|
|||
def _connect_wifi_linux(self, ssid, password): |
|||
command = f"nmcli dev wifi connect '{ssid}' password '{password}'" |
|||
self._run_cmd(command) |
|||
|
|||
def _get_wifi_list_windows(self): |
|||
command = "netsh wlan show networks" |
|||
result = self._run_cmd(command) |
|||
wifi_list = [] |
|||
lines = result.stdout.split('\n') |
|||
for line in lines: |
|||
if "SSID" in line and "BSSID" not in line: |
|||
ssid = line.split(":")[1].strip() |
|||
wifi_list.append(ssid) |
|||
|
|||
return wifi_list |
|||
|
|||
def _get_wifi_list_linux(self): |
|||
command = "nmcli dev wifi list" |
|||
result = self._run_cmd(command) |
|||
|
|||
# 解析输出结果 |
|||
wifi_list = [] |
|||
lines = result.stdout.split('\n') |
|||
for line in lines[1:]: # 跳过表头 |
|||
if line.strip(): |
|||
ssid = line.split()[0] |
|||
wifi_list.append(ssid) |
|||
|
|||
return wifi_list |
|||
|
|||
def _get_connected_wifi_windows(self): |
|||
command = "netsh wlan show interfaces" |
|||
result = self._run_cmd(command) |
|||
|
|||
# 使用正则表达式提取SSID |
|||
ssid_match = re.search(r"SSID\s+: (.+)", result.stdout) |
|||
|
|||
if ssid_match: |
|||
ssid = ssid_match.group(1).strip() |
|||
return ssid |
|||
else: |
|||
return None |
|||
|
|||
def _get_connected_wifi_linux(self): |
|||
command = "iwgetid -r" |
|||
result = self._run_cmd(command) |
|||
|
|||
ssid = result.stdout.strip() |
|||
if ssid: |
|||
return ssid |
|||
else: |
|||
return None |
|||
|
|||
def _get_network_info_windows(self): |
|||
command = "ipconfig /all" |
|||
result = self._run_cmd(command) |
|||
|
|||
interfaces = {} |
|||
current_interface = None |
|||
for line in result.stdout.splitlines(): |
|||
# 识别接口名称 |
|||
interface_match = re.match(r"^\s*([^:\s]+.*):$", line) |
|||
if interface_match: |
|||
current_interface = interface_match.group(1).strip() |
|||
interfaces[current_interface] = {"IP": None, "Subnet": None, "Gateway": None, "DNS": []} |
|||
|
|||
if current_interface: |
|||
# 解析IP地址 |
|||
ip_match = re.search(r"^\s*IPv4 地址[^\:]*:\s*(\d+\.\d+\.\d+\.\d+)", line) |
|||
if ip_match: |
|||
interfaces[current_interface]["IP"] = ip_match.group(1).strip() |
|||
|
|||
# 解析子网掩码 |
|||
subnet_match = re.search(r"^\s*子网掩码[^\:]*:\s*(\d+\.\d+\.\d+\.\d+)", line) |
|||
if subnet_match: |
|||
interfaces[current_interface]["Subnet"] = subnet_match.group(1).strip() |
|||
|
|||
# 解析网关 |
|||
gateway_match = re.search(r"^\s*默认网关[^\:]*:\s*(\d+\.\d+\.\d+\.\d+)", line) |
|||
if gateway_match: |
|||
interfaces[current_interface]["Gateway"] = gateway_match.group(1).strip() |
|||
|
|||
# 解析DNS服务器 |
|||
dns_match = re.search(r"^\s*DNS 服务器[^\:]*:\s*(\d+\.\d+\.\d+\.\d+)", line) |
|||
if dns_match: |
|||
interfaces[current_interface]["DNS"].append(dns_match.group(1).strip()) |
|||
else: |
|||
# 匹配后续行的DNS服务器 |
|||
dns_continued_match = re.search(r"^\s*(\d+\.\d+\.\d+\.\d+)", line) |
|||
if dns_continued_match: |
|||
interfaces[current_interface]["DNS"].append(dns_continued_match.group(1).strip()) |
|||
return interfaces |
|||
|
|||
def _get_network_info_linux(self): |
|||
# 获取IP地址、子网掩码和网关 |
|||
ip_info = self._run_cmd("ip addr show").stdout |
|||
route_info = self._run_cmd("ip route show").stdout |
|||
|
|||
# 获取DNS服务器 |
|||
dns_info = self._run_cmd("nmcli dev show | grep DNS").stdout |
|||
|
|||
interfaces = {} |
|||
current_interface = None |
|||
for line in ip_info.splitlines(): |
|||
# 识别接口名称 |
|||
interface_match = re.match(r"^\d+: ([^:\s]+):", line) |
|||
if interface_match: |
|||
current_interface = interface_match.group(1).strip() |
|||
interfaces[current_interface] = {"IP": None, "Subnet": None, "Gateway": None, "DNS": []} |
|||
|
|||
if current_interface: |
|||
# 解析IP地址和子网掩码 |
|||
ip_match = re.search(r"^\s*inet (\d+\.\d+\.\d+\.\d+)/(\d+)", line) |
|||
if ip_match: |
|||
interfaces[current_interface]["IP"] = ip_match.group(1).strip() |
|||
interfaces[current_interface]["Subnet"] = ip_match.group(2).strip() |
|||
|
|||
# 解析网关 |
|||
for line in route_info.splitlines(): |
|||
if "default via" in line: |
|||
gateway_match = re.search(r"default via (\d+\.\d+\.\d+\.\d+)", line) |
|||
interface_match = re.search(r"dev (\S+)", line) |
|||
if gateway_match and interface_match: |
|||
interface = interface_match.group(1).strip() |
|||
if interface in interfaces: |
|||
interfaces[interface]["Gateway"] = gateway_match.group(1).strip() |
|||
|
|||
# 解析DNS服务器 |
|||
for line in dns_info.splitlines(): |
|||
dns_match = re.search(r"DNS\[\d+\]:\s*(\d+\.\d+\.\d+\.\d+)", line) |
|||
if dns_match: |
|||
# 假设第一个接口是主要接口 |
|||
primary_interface = list(interfaces.keys())[0] |
|||
interfaces[primary_interface]["DNS"].append(dns_match.group(1).strip()) |
|||
|
|||
return interfaces |
|||
|
|||
def _get_interface_info_windows(self,interface_name): |
|||
command = f'netsh interface ip show config name="{interface_name}"' |
|||
result = self._run_cmd(command) |
|||
|
|||
info = {"IP": None, "Subnet": None, "Gateway": None, "DNS": []} |
|||
|
|||
# 解析IP地址 |
|||
ip_match = re.search(r"IP Address:\s*(\d+\.\d+\.\d+\.\d+)", result.stdout) |
|||
if ip_match: |
|||
info["IP"] = ip_match.group(1).strip() |
|||
|
|||
# 解析子网掩码 |
|||
subnet_match = re.search(r"Subnet Prefix:\s*(\d+\.\d+\.\d+\.\d+)", result.stdout) |
|||
if subnet_match: |
|||
info["Subnet"] = subnet_match.group(1).strip() |
|||
|
|||
# 解析网关 |
|||
gateway_match = re.search(r"Default Gateway:\s*(\d+\.\d+\.\d+\.\d+)", result.stdout) |
|||
if gateway_match: |
|||
info["Gateway"] = gateway_match.group(1).strip() |
|||
|
|||
# 解析DNS服务器 |
|||
dns_matches = re.findall(r"Statically Configured DNS Servers:\s*(\d+\.\d+\.\d+\.\d+)", result.stdout) |
|||
for dns in dns_matches: |
|||
info["DNS"].append(dns.strip()) |
|||
|
|||
return info |
|||
|
|||
def _get_interface_info_linux(self,interface_name): |
|||
info = {"IP": None, "Subnet": None, "Gateway": None, "DNS": []} |
|||
|
|||
# 获取IP地址和子网掩码 |
|||
ip_command = f"ip addr show dev {interface_name}" |
|||
ip_result = self._run_cmd(ip_command) |
|||
|
|||
ip_match = re.search(r"inet (\d+\.\d+\.\d+\.\d+)/(\d+)", ip_result.stdout) |
|||
if ip_match: |
|||
info["IP"] = ip_match.group(1).strip() |
|||
info["Subnet"] = ip_match.group(2).strip() |
|||
|
|||
# 获取网关信息 |
|||
gateway_command = f"ip route show dev {interface_name}" |
|||
gateway_result = subprocess.run(gateway_command, shell=True, capture_output=True, text=True, encoding='utf-8') |
|||
|
|||
gateway_match = re.search(r"default via (\d+\.\d+\.\d+\.\d+)", gateway_result.stdout) |
|||
if gateway_match: |
|||
info["Gateway"] = gateway_match.group(1).strip() |
|||
|
|||
# 获取DNS服务器信息 |
|||
dns_command = f"nmcli dev show {interface_name} | grep DNS" |
|||
dns_result = subprocess.run(dns_command, shell=True, capture_output=True, text=True, encoding='utf-8') |
|||
|
|||
dns_matches = re.findall(r"DNS\[\d+\]:\s*(\d+\.\d+\.\d+\.\d+)", dns_result.stdout) |
|||
for dns in dns_matches: |
|||
info["DNS"].append(dns.strip()) |
|||
|
|||
return info |
|||
|
|||
def _run_cmd(self,command): |
|||
''' |
|||
为了统一命令执行的返回参数格式,统一定义了一个执行函数 |
|||
:param command: |
|||
:return: |
|||
''' |
|||
result = subprocess.run(command, shell=True, capture_output=True, text=True, encoding=self.encoding) |
|||
return result |
|||
|
|||
IPM = IPManager() |
|||
|
|||
if __name__ == "__main__":#WLAN |
|||
# 示例用法 |
|||
nm = IPManager() |
|||
try: |
|||
#nm.set_ip("以太网 2", "192.168.1.100", "255.255.255.0", "192.168.1.1") |
|||
#nm.set_ip("WLAN", "192.168.3.100", "255.255.255.0", "192.168.3.1") #zhang wifi |
|||
network_info = nm.get_wifi_list() |
|||
print(network_info) |
|||
except Exception as e: |
|||
print(e) |
|||
#nm.connect_wifi("YourSSID", "YourPassword") |
@ -0,0 +1,33 @@ |
|||
from collections import deque |
|||
from threading import Thread, Lock |
|||
|
|||
class MyDeque: |
|||
def __init__(self,maxlen=1): |
|||
self.len = maxlen |
|||
self.dq = deque(maxlen=maxlen) |
|||
self.lock = Lock() |
|||
|
|||
def __del__(self): |
|||
del self.dq |
|||
|
|||
def isfull(self): |
|||
if len(self.dq) == self.len: |
|||
return True |
|||
return False |
|||
|
|||
def myappend(self,object): |
|||
with self.lock: |
|||
self.dq.append(object) |
|||
|
|||
def mypopleft(self): |
|||
object = None |
|||
with self.lock: |
|||
if self.dq: |
|||
object = self.dq.popleft() |
|||
else: |
|||
pass |
|||
return object |
|||
|
|||
def myclear(self): |
|||
with self.lock: |
|||
self.dq.clear() |
@ -0,0 +1,52 @@ |
|||
import socket |
|||
|
|||
class MyRtspManager: |
|||
def __init__(self): |
|||
self.rtsp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) |
|||
pass |
|||
|
|||
def __del__(self): |
|||
pass |
|||
|
|||
def _send_rtsp_request(self,request): |
|||
''' |
|||
发送 RTSP 请求:按照 RTSP 协议的格式发送请求,例如 OPTIONS、DESCRIBE、SETUP 和 PLAY 请求。 |
|||
:param socket: |
|||
:param request: |
|||
:return: |
|||
''' |
|||
self.rtsp_socket.sendall(request.encode()) |
|||
response = self.rtsp_socket.recv(4096).decode() |
|||
print("Response:\n", response) |
|||
return response |
|||
|
|||
def _connectRest(self,IP,Port): |
|||
#self.rtsp_socket.connect(('192.168.3.103', 554)) |
|||
self.rtsp_socket.connect((IP, Port)) |
|||
#需要补充重连机制 |
|||
|
|||
def startGetRtsp(self): |
|||
# 发送 OPTIONS 请求 |
|||
request = "OPTIONS rtsp://192.168.3.103/live1 RTSP/1.0\r\nCSeq: 1\r\n\r\n" |
|||
self._send_rtsp_request(request) |
|||
|
|||
# 发送 DESCRIBE 请求获取 SDP 信息 |
|||
request = "DESCRIBE rtsp://192.168.3.103/live1 RTSP/1.0\r\nCSeq: 2\r\nAccept: application/sdp\r\n\r\n" |
|||
response = self._send_rtsp_request(request) |
|||
|
|||
# 解析 SDP 信息,提取媒体信息(如视频轨道的端口、编码) |
|||
# 此处需解析返回的 response 来提取端口、编码等信息 |
|||
|
|||
# 发送 SETUP 请求来配置 RTP/RTCP 传输 |
|||
request = "SETUP rtsp://192.168.3.103/live1/trackID=0 RTSP/1.0\r\nCSeq: 3\r\nTransport: RTP/AVP;unicast;client_port=5000-5001\r\n\r\n" |
|||
self._send_rtsp_request(request) |
|||
|
|||
# 创建 UDP 套接字来接收 RTP 数据 |
|||
rtp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) |
|||
rtp_socket.bind(('0.0.0.0', 5000)) # 绑定到前面 SETUP 请求中指定的 client_port |
|||
|
|||
while True: |
|||
rtp_packet, _ = rtp_socket.recvfrom(2048) |
|||
# 解析 RTP 包的头部,提取负载数据(视频帧) |
|||
# 可以根据负载类型解析 H264 或其他格式的帧数据 |
|||
print(f"Received RTP packet of size {len(rtp_packet)}") |
@ -0,0 +1,28 @@ |
|||
import tracemalloc |
|||
import time |
|||
|
|||
class MyTraceMalloc: |
|||
def __init__(self): |
|||
tracemalloc.start(25) # 保留25个堆栈级别 |
|||
self.before_snapshot = tracemalloc.take_snapshot() |
|||
self.current_snapshot = None |
|||
self.top_stats = [] |
|||
|
|||
# 内存跟踪情况输出 |
|||
def display_top_stats(self): |
|||
self.current_snapshot = tracemalloc.take_snapshot() |
|||
self.top_stats = self.current_snapshot .compare_to(self.before_snapshot, 'lineno') |
|||
|
|||
print("[ Top 10 differences ]") |
|||
for stat in self.top_stats[:10]: |
|||
print(stat) |
|||
current, peak = tracemalloc.get_traced_memory() |
|||
print(f"当前内存分配: {current / 1024 / 1024:.2f} MiB") |
|||
print(f"峰值内存分配: {peak / 1024 / 1024:.2f} MiB") |
|||
|
|||
self.before_snapshot = self.current_snapshot |
|||
|
|||
def trace_memory(self): |
|||
while True: |
|||
time.sleep(60) # 每隔60秒输出一次 |
|||
self.display_top_stats() |
@ -0,0 +1,16 @@ |
|||
import cv2 |
|||
|
|||
|
|||
def bgr_to_yuv420(bgr_img): |
|||
# Step 1: Convert BGR to YUV 4:4:4 |
|||
yuv_img = cv2.cvtColor(bgr_img, cv2.COLOR_BGR2YUV) |
|||
|
|||
# Step 2: Extract Y, U, V channels |
|||
Y, U, V = cv2.split(yuv_img) |
|||
|
|||
# Step 3: Downsample U and V channels (Subsample by a factor of 2) |
|||
U_downsampled = cv2.resize(U, (U.shape[1] // 2, U.shape[0] // 2), interpolation=cv2.INTER_LINEAR) |
|||
V_downsampled = cv2.resize(V, (V.shape[1] // 2, V.shape[0] // 2), interpolation=cv2.INTER_LINEAR) |
|||
|
|||
# Step 4: Combine Y, U_downsampled, V_downsampled to get YUV 4:2:0 format |
|||
return Y, U_downsampled, V_downsampled |
@ -1,4 +1,4 @@ |
|||
from quart import Blueprint |
|||
#定义模块 |
|||
api = Blueprint('api',__name__) |
|||
from . import user,system,viedo,channel,model |
|||
from . import user,system,viedo,channel,model,warn |
|||
|
@ -0,0 +1,89 @@ |
|||
import os |
|||
from . import api |
|||
from web.common.utils import login_required |
|||
from quart import jsonify, request,send_file |
|||
from core.DBManager import mDBM |
|||
|
|||
@api.route('/warn/search_warn',methods=['POST']) |
|||
@login_required |
|||
async def warn_search(): #查询报警 |
|||
#获取查询参数 |
|||
json_data = await request.get_json() |
|||
s_count = json_data.get('s_count','') |
|||
e_count = json_data.get('e_count','') |
|||
model_name = json_data.get('model_name','') |
|||
channel_name = json_data.get('channel_name','') |
|||
start_time = json_data.get('start_time','') |
|||
end_time = json_data.get('end_time','') |
|||
|
|||
# 动态拼接 SQL 语句 |
|||
sql = "SELECT t1.*,t2.channel_name FROM warn t1 LEFT JOIN channel t2 ON t1.channel_id = t2.element_id WHERE 1=1" |
|||
|
|||
if model_name: |
|||
sql += f" AND t1.model_name = {model_name}" |
|||
if channel_name: |
|||
sql += f" AND t2.channel_name = {channel_name}" |
|||
if start_time and end_time: |
|||
sql += f" AND t1.creat_time BETWEEN {start_time} AND {end_time}" |
|||
|
|||
# 增加倒序排列和分页 |
|||
sql += f" ORDER BY t1.creat_time DESC LIMIT {e_count} OFFSET {s_count}" |
|||
|
|||
# 使用SQLAlchemy执行查询 |
|||
try: |
|||
print(sql) |
|||
data = mDBM.do_select(sql) |
|||
# 将数据转换为JSON格式返回给前端 |
|||
warn_list = [{"ID": warn[0], "model_name": warn[1], "video_path": warn[2], "img_path": warn[3], |
|||
"creat_time": warn[4], "channel_name": warn[6]} for warn in data] |
|||
return jsonify(warn_list) |
|||
except Exception as e: |
|||
return jsonify({"error": str(e)}), 500 |
|||
|
|||
@api.route('/warn/warn_img') |
|||
@login_required |
|||
async def warn_img(): |
|||
# 获取图片路径参数 |
|||
image_path = request.args.get('path') |
|||
if image_path and os.path.exists(image_path): |
|||
# 返回图片文件 |
|||
return await send_file(image_path) |
|||
else: |
|||
# 图片不存在时,返回 404 |
|||
return 'Image not found', 404 |
|||
|
|||
@api.route('/warn/warn_video') |
|||
@login_required |
|||
async def warn_video(): |
|||
# 获取视频路径参数 |
|||
video_path = request.args.get('path') |
|||
if video_path and os.path.exists(video_path): |
|||
# 返回视频文件流 |
|||
return await send_file(video_path, as_attachment=True) |
|||
else: |
|||
# 视频文件不存在时,返回 404 |
|||
return 'Video not found', 404 |
|||
|
|||
@api.route('/warn/warn_del',methods=['POST']) |
|||
@login_required |
|||
async def warn_del(): |
|||
# 获取请求体中的报警ID数组 |
|||
data = await request.get_json() |
|||
alarm_ids = data.get('alarmIds') |
|||
|
|||
if not alarm_ids: |
|||
return jsonify({'success': False, 'message': '没有提供报警ID'}), 400 |
|||
|
|||
try: |
|||
# 根据报警ID进行删除数据的操作,这里是假设数据库删除操作 |
|||
# 例如:delete_from_database(alarm_ids) |
|||
|
|||
# 模拟删除成功 |
|||
success = True |
|||
|
|||
if success: |
|||
return jsonify({'success': True, 'message': '删除成功'}) |
|||
else: |
|||
return jsonify({'success': False, 'message': '删除失败'}) |
|||
except Exception as e: |
|||
return jsonify({'success': False, 'message': f'发生异常: {str(e)}'}), 500 |
@ -1,5 +1,5 @@ |
|||
from quart import Blueprint |
|||
|
|||
main = Blueprint('main', __name__,template_folder='templates') |
|||
main = Blueprint('main', __name__,static_folder='static/resources',template_folder='templates') |
|||
|
|||
from . import routes |
|||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 15 KiB |
@ -1,7 +0,0 @@ |
|||
$axure.loadCurrentPage( |
|||
(function() { |
|||
var _ = function() { var r={},a=arguments; for(var i=0; i<a.length; i+=2) r[a[i]]=a[i+1]; return r; } |
|||
var _creator = function() { return _(b,c,d,e,f,_(g,h,i,_(j,k,l,k)),m,[],n,_(h,o),p,[q],r,_(s,t,u,v,g,w,x,_(),y,[],z,_(A,B,C,D,E,_(F,G,H,I),J,null,K,L,L,M,N,O,null,P,Q,R,S,T,U,V,Q,W,X,Y,_(F,G,H,Z),ba,Q,bb,X,bc,_(bd,be,bf,bg,bh,bg,bi,bg,bj,k,H,_(bk,bl,bm,bl,bn,bl,bo,bp)),i,_(j,k,l,k)),bq,_(),br,_(),bs,_(bt,[_(bu,bv,bw,h,bx,by,u,bz,bA,bz,bB,bC,z,_(i,_(j,bD,l,bE),A,bF),bq,_(),bG,_(),bH,be),_(bu,bI,bw,h,bx,by,u,bz,bA,bz,bB,bC,z,_(i,_(j,bD,l,bJ),A,bF,E,_(F,G,H,bK),Y,_(F,G,H,bL)),bq,_(),bG,_(),bH,be),_(bu,bM,bw,h,bx,by,u,bz,bA,bz,bB,bC,z,_(bN,bO,i,_(j,bP,l,bQ),A,bR,bS,_(bT,bU,bV,bW),bX,bY),bq,_(),bG,_(),bH,be),_(bu,bZ,bw,h,bx,by,u,bz,bA,bz,bB,bC,z,_(bN,bO,i,_(j,ca,l,cb),A,cc,bS,_(bT,cd,bV,ce)),bq,_(),bG,_(),bH,be),_(bu,cf,bw,h,bx,cg,u,bz,bA,bz,bB,bC,z,_(A,ch,V,Q,i,_(j,ci,l,cj),E,_(F,G,H,ck),Y,_(F,G,H,cl),bc,_(bd,be,bf,k,bh,k,bi,cm,bj,k,H,_(bk,bl,bm,bl,bn,bl,bo,cn)),co,_(bd,be,bf,k,bh,k,bi,cm,bj,k,H,_(bk,bl,bm,bl,bn,bl,bo,cn)),bS,_(bT,cp,bV,cq)),bq,_(),bG,_(),cr,_(cs,ct),bH,be),_(bu,cu,bw,h,bx,by,u,bz,bA,bz,bB,bC,z,_(bN,bO,i,_(j,cv,l,cq),A,cw,bS,_(bT,cx,bV,cy)),bq,_(),bG,_(),bH,be),_(bu,cz,bw,h,bx,cA,u,cB,bA,cB,bB,bC,z,_(i,_(j,cC,l,cD),cE,_(cF,_(A,cG),cH,_(A,cI)),A,cJ,bS,_(bT,cK,bV,cL)),cM,be,bq,_(),bG,_(),cN,h),_(bu,cO,bw,h,bx,by,u,bz,bA,bz,bB,bC,z,_(bN,bO,i,_(j,cP,l,cq),A,cw,bS,_(bT,cQ,bV,cR)),bq,_(),bG,_(),bH,be),_(bu,cS,bw,h,bx,cA,u,cB,bA,cB,bB,bC,z,_(i,_(j,cC,l,cD),cE,_(cF,_(A,cG),cH,_(A,cI)),A,cJ,bS,_(bT,cK,bV,cT)),cM,be,bq,_(),bG,_(),cN,h),_(bu,cU,bw,h,bx,cA,u,cB,bA,cB,bB,bC,z,_(i,_(j,cV,l,cD),cE,_(cF,_(A,cG),cH,_(A,cI)),A,cJ,bS,_(bT,cK,bV,cW)),cM,be,bq,_(),bG,_(),cN,h),_(bu,cX,bw,h,bx,by,u,bz,bA,bz,bB,bC,z,_(bN,bO,i,_(j,cv,l,cq),A,cw,bS,_(bT,cx,bV,cY)),bq,_(),bG,_(),bH,be),_(bu,cZ,bw,h,bx,by,u,bz,bA,bz,bB,bC,z,_(i,_(j,da,l,cj),A,db,bS,_(bT,cx,bV,dc),bX,dd),bq,_(),bG,_(),br,_(de,_(df,dg,dh,di,dj,[_(dh,h,dk,h,dl,be,dm,dn,dp,[_(dq,dr,dh,ds,dt,du,dv,_(dw,_(h,ds)),dx,_(dy,r,b,dz,dA,bC),dB,dC)])])),dD,bC,bH,be),_(bu,dE,bw,h,bx,dF,u,dG,bA,dG,bB,bC,z,_(i,_(j,da,l,dH),A,dI,J,null,bS,_(bT,dJ,bV,dK)),bq,_(),bG,_(),cr,_(cs,dL)),_(bu,dM,bw,h,bx,by,u,bz,bA,bz,bB,bC,z,_(i,_(j,da,l,cj),A,dN,bS,_(bT,dJ,bV,dc),bX,dd),bq,_(),bG,_(),bH,be),_(bu,dO,bw,h,bx,by,u,bz,bA,bz,bB,bC,z,_(dP,_(F,G,H,dQ,dR,dS),i,_(j,dT,l,dU),A,dV,bS,_(bT,dW,bV,dX)),bq,_(),bG,_(),bH,be)])),dY,_(),dZ,_(ea,_(eb,ec),ed,_(eb,ee),ef,_(eb,eg),eh,_(eb,ei),ej,_(eb,ek),el,_(eb,em),en,_(eb,eo),ep,_(eb,eq),er,_(eb,es),et,_(eb,eu),ev,_(eb,ew),ex,_(eb,ey),ez,_(eb,eA),eB,_(eb,eC),eD,_(eb,eE)));}; |
|||
var b="url",c="登录.html",d="generationDate",e=new Date(1716520879185.01),f="defaultAdaptiveView",g="name",h="",i="size",j="width",k=0,l="height",m="adaptiveViews",n="sketchKeys",o="s0",p="variables",q="OnLoadVariable",r="page",s="packageId",t="7ecba5060add4e8c88625127aa952ee2",u="type",v="Axure:Page",w="登录",x="notes",y="annotations",z="style",A="baseStyle",B="627587b6038d43cca051c114ac41ad32",C="pageAlignment",D="center",E="fill",F="fillType",G="solid",H="color",I=0xFFFFFFFF,J="image",K="imageAlignment",L="near",M="imageRepeat",N="auto",O="favicon",P="sketchFactor",Q="0",R="colorStyle",S="appliedColor",T="fontName",U="Applied Font",V="borderWidth",W="borderVisibility",X="all",Y="borderFill",Z=0xFF797979,ba="cornerRadius",bb="cornerVisibility",bc="outerShadow",bd="on",be=false,bf="offsetX",bg=5,bh="offsetY",bi="blurRadius",bj="spread",bk="r",bl=0,bm="g",bn="b",bo="a",bp=0.349019607843137,bq="adaptiveStyles",br="interactionMap",bs="diagram",bt="objects",bu="id",bv="c5bc1d2efee44f68879fd659e38e9747",bw="label",bx="friendlyType",by="Rectangle",bz="vectorShape",bA="styleType",bB="visible",bC=true,bD=1280,bE=800,bF="caddf88798f04a469d3bb16589ed2a5d",bG="imageOverrides",bH="generateCompound",bI="2c24030b551d41378f944055f4a44c64",bJ=90,bK=0xFF02A7F0,bL=0xFF81D3F8,bM="fad482ab9b5c46c1952d5aad4ea0a508",bN="fontWeight",bO="700",bP=254,bQ=45,bR="1111111151944dfba49f67fd55eb1f88",bS="location",bT="x",bU=61,bV="y",bW=23,bX="fontSize",bY="40px",bZ="bb91b2fe6e994c93abaa1907c4f474e4",ca=289,cb=21,cc="8c7a4c5ad69a4369a5f7788171ac0b32",cd=496,ce=750,cf="fd8428de1c954a7fb54cb8b737fa8cb8",cg="Shape",ch="26c731cb771b44a88eb8b6e97e78c80e",ci=35,cj=40,ck=0xFF000000,cl=0xFFFFFF,cm=10,cn=0.313725490196078,co="innerShadow",cp=1165,cq=28,cr="images",cs="normal~",ct="images/登录/u4.svg",cu="81dff38c4abb4c299d032505ce1bd3b8",cv=96,cw="b3a15c9ddde04520be40f94c8168891e",cx=427,cy=265,cz="214f4eb955814b23864a6056e1b34ac4",cA="Text Field",cB="textBox",cC=300,cD=25,cE="stateStyles",cF="hint",cG="4889d666e8ad4c5e81e59863039a5cc0",cH="disabled",cI="9bd0236217a94d89b0314c8c7fc75f16",cJ="44157808f2934100b68f2394a66b2bba",cK=553,cL=266,cM="HideHintOnFocused",cN="placeholderText",cO="c1e2c2c547d34189a097fc5a573d1e84",cP=72,cQ=451,cR=343,cS="79ffc447be8549799643c1ef0b212546",cT=345,cU="ddb9300483dd4254bdfbb4ca5ff5723c",cV=136,cW=423,cX="c309227fa1ce48a0b2b15877b05adacb",cY=421,cZ="c17788f3902d49daa20fbbe38be1daa4",da=140,db="cd64754845384de3872fb4a066432c1f",dc=521,dd="18px",de="onClick",df="eventType",dg="OnClick",dh="description",di="Click or Tap",dj="cases",dk="conditionString",dl="isNewIfGroup",dm="caseColorHex",dn="AB68FF",dp="actions",dq="action",dr="linkWindow",ds="Open 实时预览 in Current Window",dt="displayName",du="Open Link",dv="actionInfoDescriptions",dw="实时预览",dx="target",dy="targetType",dz="实时预览.html",dA="includeVariables",dB="linkType",dC="current",dD="tabbable",dE="476ed508a0e641c3821a489ba050926d",dF="Image",dG="imageBox",dH=47,dI="75a91ee5b9d042cfa01b8d565fe289c0",dJ=713,dK=412,dL="images/登录/u12.png",dM="24c27214a4004ee3becff6c24ff7cfe3",dN="c9f35713a1cf4e91a0f2dbac65e6fb5c",dO="70009ea6695547be8b66debf61616908",dP="foreGroundFill",dQ=0xFFD9001B,dR="opacity",dS=1,dT=196,dU=16,dV="2285372321d148ec80932747449c36c9",dW=657,dX=581,dY="masters",dZ="objectPaths",ea="c5bc1d2efee44f68879fd659e38e9747",eb="scriptId",ec="u0",ed="2c24030b551d41378f944055f4a44c64",ee="u1",ef="fad482ab9b5c46c1952d5aad4ea0a508",eg="u2",eh="bb91b2fe6e994c93abaa1907c4f474e4",ei="u3",ej="fd8428de1c954a7fb54cb8b737fa8cb8",ek="u4",el="81dff38c4abb4c299d032505ce1bd3b8",em="u5",en="214f4eb955814b23864a6056e1b34ac4",eo="u6",ep="c1e2c2c547d34189a097fc5a573d1e84",eq="u7",er="79ffc447be8549799643c1ef0b212546",es="u8",et="ddb9300483dd4254bdfbb4ca5ff5723c",eu="u9",ev="c309227fa1ce48a0b2b15877b05adacb",ew="u10",ex="c17788f3902d49daa20fbbe38be1daa4",ey="u11",ez="476ed508a0e641c3821a489ba050926d",eA="u12",eB="24c27214a4004ee3becff6c24ff7cfe3",eC="u13",eD="70009ea6695547be8b66debf61616908",eE="u14"; |
|||
return _creator(); |
|||
})()); |
@ -1,763 +0,0 @@ |
|||
body { |
|||
margin:0px; |
|||
background-image:none; |
|||
position:relative; |
|||
left:0px; |
|||
width:1280px; |
|||
margin-left:auto; |
|||
margin-right:auto; |
|||
text-align:left; |
|||
} |
|||
.form_sketch { |
|||
border-color:transparent; |
|||
background-color:transparent; |
|||
} |
|||
#base { |
|||
position:absolute; |
|||
z-index:0; |
|||
} |
|||
#u0_div { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:1280px; |
|||
height:800px; |
|||
background:inherit; |
|||
background-color:rgba(255, 255, 255, 1); |
|||
box-sizing:border-box; |
|||
border-width:1px; |
|||
border-style:solid; |
|||
border-color:rgba(121, 121, 121, 1); |
|||
border-radius:0px; |
|||
-moz-box-shadow:none; |
|||
-webkit-box-shadow:none; |
|||
box-shadow:none; |
|||
} |
|||
#u0 { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:1280px; |
|||
height:800px; |
|||
display:flex; |
|||
} |
|||
#u0 .text { |
|||
position:absolute; |
|||
align-self:center; |
|||
padding:2px 2px 2px 2px; |
|||
box-sizing:border-box; |
|||
width:100%; |
|||
} |
|||
#u0_text { |
|||
border-width:0px; |
|||
word-wrap:break-word; |
|||
text-transform:none; |
|||
visibility:hidden; |
|||
} |
|||
#u1_div { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:1280px; |
|||
height:90px; |
|||
background:inherit; |
|||
background-color:rgba(2, 167, 240, 1); |
|||
box-sizing:border-box; |
|||
border-width:1px; |
|||
border-style:solid; |
|||
border-color:rgba(129, 211, 248, 1); |
|||
border-radius:0px; |
|||
-moz-box-shadow:none; |
|||
-webkit-box-shadow:none; |
|||
box-shadow:none; |
|||
} |
|||
#u1 { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:1280px; |
|||
height:90px; |
|||
display:flex; |
|||
} |
|||
#u1 .text { |
|||
position:absolute; |
|||
align-self:center; |
|||
padding:2px 2px 2px 2px; |
|||
box-sizing:border-box; |
|||
width:100%; |
|||
} |
|||
#u1_text { |
|||
border-width:0px; |
|||
word-wrap:break-word; |
|||
text-transform:none; |
|||
visibility:hidden; |
|||
} |
|||
#u2_div { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:254px; |
|||
height:45px; |
|||
background:inherit; |
|||
background-color:rgba(255, 255, 255, 0); |
|||
border:none; |
|||
border-radius:0px; |
|||
-moz-box-shadow:none; |
|||
-webkit-box-shadow:none; |
|||
box-shadow:none; |
|||
font-family:'Arial Negreta', 'Arial Normal', 'Arial', sans-serif; |
|||
font-weight:700; |
|||
font-style:normal; |
|||
font-size:40px; |
|||
} |
|||
#u2 { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:61px; |
|||
top:23px; |
|||
width:254px; |
|||
height:45px; |
|||
display:flex; |
|||
font-family:'Arial Negreta', 'Arial Normal', 'Arial', sans-serif; |
|||
font-weight:700; |
|||
font-style:normal; |
|||
font-size:40px; |
|||
} |
|||
#u2 .text { |
|||
position:absolute; |
|||
align-self:flex-start; |
|||
padding:0px 0px 0px 0px; |
|||
box-sizing:border-box; |
|||
width:100%; |
|||
} |
|||
#u2_text { |
|||
border-width:0px; |
|||
white-space:nowrap; |
|||
text-transform:none; |
|||
} |
|||
#u3_div { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:289px; |
|||
height:21px; |
|||
background:inherit; |
|||
background-color:rgba(255, 255, 255, 0); |
|||
border:none; |
|||
border-radius:0px; |
|||
-moz-box-shadow:none; |
|||
-webkit-box-shadow:none; |
|||
box-shadow:none; |
|||
font-family:'Arial Negreta', 'Arial Normal', 'Arial', sans-serif; |
|||
font-weight:700; |
|||
font-style:normal; |
|||
} |
|||
#u3 { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:496px; |
|||
top:750px; |
|||
width:289px; |
|||
height:21px; |
|||
display:flex; |
|||
font-family:'Arial Negreta', 'Arial Normal', 'Arial', sans-serif; |
|||
font-weight:700; |
|||
font-style:normal; |
|||
} |
|||
#u3 .text { |
|||
position:absolute; |
|||
align-self:flex-start; |
|||
padding:0px 0px 0px 0px; |
|||
box-sizing:border-box; |
|||
width:100%; |
|||
} |
|||
#u3_text { |
|||
border-width:0px; |
|||
word-wrap:break-word; |
|||
text-transform:none; |
|||
} |
|||
#u4_img { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:35px; |
|||
height:40px; |
|||
} |
|||
#u4 { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:1165px; |
|||
top:28px; |
|||
width:35px; |
|||
height:40px; |
|||
display:flex; |
|||
} |
|||
#u4 .text { |
|||
position:absolute; |
|||
align-self:center; |
|||
padding:2px 2px 2px 2px; |
|||
box-sizing:border-box; |
|||
width:100%; |
|||
} |
|||
#u4_text { |
|||
border-width:0px; |
|||
word-wrap:break-word; |
|||
text-transform:none; |
|||
visibility:hidden; |
|||
} |
|||
#u5_div { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:96px; |
|||
height:28px; |
|||
background:inherit; |
|||
background-color:rgba(255, 255, 255, 0); |
|||
border:none; |
|||
border-radius:0px; |
|||
-moz-box-shadow:none; |
|||
-webkit-box-shadow:none; |
|||
box-shadow:none; |
|||
font-family:'Arial Negreta', 'Arial Normal', 'Arial', sans-serif; |
|||
font-weight:700; |
|||
font-style:normal; |
|||
} |
|||
#u5 { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:427px; |
|||
top:265px; |
|||
width:96px; |
|||
height:28px; |
|||
display:flex; |
|||
font-family:'Arial Negreta', 'Arial Normal', 'Arial', sans-serif; |
|||
font-weight:700; |
|||
font-style:normal; |
|||
} |
|||
#u5 .text { |
|||
position:absolute; |
|||
align-self:flex-start; |
|||
padding:0px 0px 0px 0px; |
|||
box-sizing:border-box; |
|||
width:100%; |
|||
} |
|||
#u5_text { |
|||
border-width:0px; |
|||
white-space:nowrap; |
|||
text-transform:none; |
|||
} |
|||
#u6_input { |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:300px; |
|||
height:25px; |
|||
padding:2px 2px 2px 2px; |
|||
font-family:'Arial Normal', 'Arial', sans-serif; |
|||
font-weight:400; |
|||
font-style:normal; |
|||
font-size:13px; |
|||
letter-spacing:normal; |
|||
color:#000000; |
|||
vertical-align:none; |
|||
text-align:left; |
|||
text-transform:none; |
|||
background-color:transparent; |
|||
border-color:transparent; |
|||
} |
|||
#u6_input.disabled { |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:300px; |
|||
height:25px; |
|||
padding:2px 2px 2px 2px; |
|||
font-family:'Arial Normal', 'Arial', sans-serif; |
|||
font-weight:400; |
|||
font-style:normal; |
|||
font-size:13px; |
|||
letter-spacing:normal; |
|||
color:#000000; |
|||
vertical-align:none; |
|||
text-align:left; |
|||
text-transform:none; |
|||
background-color:transparent; |
|||
border-color:transparent; |
|||
} |
|||
#u6_div { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:300px; |
|||
height:25px; |
|||
background:inherit; |
|||
background-color:rgba(255, 255, 255, 1); |
|||
box-sizing:border-box; |
|||
border-width:1px; |
|||
border-style:solid; |
|||
border-color:rgba(121, 121, 121, 1); |
|||
border-radius:0px; |
|||
-moz-box-shadow:none; |
|||
-webkit-box-shadow:none; |
|||
box-shadow:none; |
|||
} |
|||
#u6 { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:553px; |
|||
top:266px; |
|||
width:300px; |
|||
height:25px; |
|||
display:flex; |
|||
} |
|||
#u6 .text { |
|||
position:absolute; |
|||
align-self:center; |
|||
padding:2px 2px 2px 2px; |
|||
box-sizing:border-box; |
|||
width:100%; |
|||
} |
|||
#u6_div.disabled { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:300px; |
|||
height:25px; |
|||
background:inherit; |
|||
background-color:rgba(240, 240, 240, 1); |
|||
box-sizing:border-box; |
|||
border-width:1px; |
|||
border-style:solid; |
|||
border-color:rgba(121, 121, 121, 1); |
|||
border-radius:0px; |
|||
-moz-box-shadow:none; |
|||
-webkit-box-shadow:none; |
|||
box-shadow:none; |
|||
} |
|||
#u6.disabled { |
|||
} |
|||
#u7_div { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:72px; |
|||
height:28px; |
|||
background:inherit; |
|||
background-color:rgba(255, 255, 255, 0); |
|||
border:none; |
|||
border-radius:0px; |
|||
-moz-box-shadow:none; |
|||
-webkit-box-shadow:none; |
|||
box-shadow:none; |
|||
font-family:'Arial Negreta', 'Arial Normal', 'Arial', sans-serif; |
|||
font-weight:700; |
|||
font-style:normal; |
|||
} |
|||
#u7 { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:451px; |
|||
top:343px; |
|||
width:72px; |
|||
height:28px; |
|||
display:flex; |
|||
font-family:'Arial Negreta', 'Arial Normal', 'Arial', sans-serif; |
|||
font-weight:700; |
|||
font-style:normal; |
|||
} |
|||
#u7 .text { |
|||
position:absolute; |
|||
align-self:flex-start; |
|||
padding:0px 0px 0px 0px; |
|||
box-sizing:border-box; |
|||
width:100%; |
|||
} |
|||
#u7_text { |
|||
border-width:0px; |
|||
white-space:nowrap; |
|||
text-transform:none; |
|||
} |
|||
#u8_input { |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:300px; |
|||
height:25px; |
|||
padding:2px 2px 2px 2px; |
|||
font-family:'Arial Normal', 'Arial', sans-serif; |
|||
font-weight:400; |
|||
font-style:normal; |
|||
font-size:13px; |
|||
letter-spacing:normal; |
|||
color:#000000; |
|||
vertical-align:none; |
|||
text-align:left; |
|||
text-transform:none; |
|||
background-color:transparent; |
|||
border-color:transparent; |
|||
} |
|||
#u8_input.disabled { |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:300px; |
|||
height:25px; |
|||
padding:2px 2px 2px 2px; |
|||
font-family:'Arial Normal', 'Arial', sans-serif; |
|||
font-weight:400; |
|||
font-style:normal; |
|||
font-size:13px; |
|||
letter-spacing:normal; |
|||
color:#000000; |
|||
vertical-align:none; |
|||
text-align:left; |
|||
text-transform:none; |
|||
background-color:transparent; |
|||
border-color:transparent; |
|||
} |
|||
#u8_div { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:300px; |
|||
height:25px; |
|||
background:inherit; |
|||
background-color:rgba(255, 255, 255, 1); |
|||
box-sizing:border-box; |
|||
border-width:1px; |
|||
border-style:solid; |
|||
border-color:rgba(121, 121, 121, 1); |
|||
border-radius:0px; |
|||
-moz-box-shadow:none; |
|||
-webkit-box-shadow:none; |
|||
box-shadow:none; |
|||
} |
|||
#u8 { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:553px; |
|||
top:345px; |
|||
width:300px; |
|||
height:25px; |
|||
display:flex; |
|||
} |
|||
#u8 .text { |
|||
position:absolute; |
|||
align-self:center; |
|||
padding:2px 2px 2px 2px; |
|||
box-sizing:border-box; |
|||
width:100%; |
|||
} |
|||
#u8_div.disabled { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:300px; |
|||
height:25px; |
|||
background:inherit; |
|||
background-color:rgba(240, 240, 240, 1); |
|||
box-sizing:border-box; |
|||
border-width:1px; |
|||
border-style:solid; |
|||
border-color:rgba(121, 121, 121, 1); |
|||
border-radius:0px; |
|||
-moz-box-shadow:none; |
|||
-webkit-box-shadow:none; |
|||
box-shadow:none; |
|||
} |
|||
#u8.disabled { |
|||
} |
|||
#u9_input { |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:136px; |
|||
height:25px; |
|||
padding:2px 2px 2px 2px; |
|||
font-family:'Arial Normal', 'Arial', sans-serif; |
|||
font-weight:400; |
|||
font-style:normal; |
|||
font-size:13px; |
|||
letter-spacing:normal; |
|||
color:#000000; |
|||
vertical-align:none; |
|||
text-align:left; |
|||
text-transform:none; |
|||
background-color:transparent; |
|||
border-color:transparent; |
|||
} |
|||
#u9_input.disabled { |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:136px; |
|||
height:25px; |
|||
padding:2px 2px 2px 2px; |
|||
font-family:'Arial Normal', 'Arial', sans-serif; |
|||
font-weight:400; |
|||
font-style:normal; |
|||
font-size:13px; |
|||
letter-spacing:normal; |
|||
color:#000000; |
|||
vertical-align:none; |
|||
text-align:left; |
|||
text-transform:none; |
|||
background-color:transparent; |
|||
border-color:transparent; |
|||
} |
|||
#u9_div { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:136px; |
|||
height:25px; |
|||
background:inherit; |
|||
background-color:rgba(255, 255, 255, 1); |
|||
box-sizing:border-box; |
|||
border-width:1px; |
|||
border-style:solid; |
|||
border-color:rgba(121, 121, 121, 1); |
|||
border-radius:0px; |
|||
-moz-box-shadow:none; |
|||
-webkit-box-shadow:none; |
|||
box-shadow:none; |
|||
} |
|||
#u9 { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:553px; |
|||
top:423px; |
|||
width:136px; |
|||
height:25px; |
|||
display:flex; |
|||
} |
|||
#u9 .text { |
|||
position:absolute; |
|||
align-self:center; |
|||
padding:2px 2px 2px 2px; |
|||
box-sizing:border-box; |
|||
width:100%; |
|||
} |
|||
#u9_div.disabled { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:136px; |
|||
height:25px; |
|||
background:inherit; |
|||
background-color:rgba(240, 240, 240, 1); |
|||
box-sizing:border-box; |
|||
border-width:1px; |
|||
border-style:solid; |
|||
border-color:rgba(121, 121, 121, 1); |
|||
border-radius:0px; |
|||
-moz-box-shadow:none; |
|||
-webkit-box-shadow:none; |
|||
box-shadow:none; |
|||
} |
|||
#u9.disabled { |
|||
} |
|||
#u10_div { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:96px; |
|||
height:28px; |
|||
background:inherit; |
|||
background-color:rgba(255, 255, 255, 0); |
|||
border:none; |
|||
border-radius:0px; |
|||
-moz-box-shadow:none; |
|||
-webkit-box-shadow:none; |
|||
box-shadow:none; |
|||
font-family:'Arial Negreta', 'Arial Normal', 'Arial', sans-serif; |
|||
font-weight:700; |
|||
font-style:normal; |
|||
} |
|||
#u10 { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:427px; |
|||
top:421px; |
|||
width:96px; |
|||
height:28px; |
|||
display:flex; |
|||
font-family:'Arial Negreta', 'Arial Normal', 'Arial', sans-serif; |
|||
font-weight:700; |
|||
font-style:normal; |
|||
} |
|||
#u10 .text { |
|||
position:absolute; |
|||
align-self:flex-start; |
|||
padding:0px 0px 0px 0px; |
|||
box-sizing:border-box; |
|||
width:100%; |
|||
} |
|||
#u10_text { |
|||
border-width:0px; |
|||
white-space:nowrap; |
|||
text-transform:none; |
|||
} |
|||
#u11_div { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:140px; |
|||
height:40px; |
|||
background:inherit; |
|||
background-color:rgba(22, 155, 213, 1); |
|||
border:none; |
|||
border-radius:5px; |
|||
-moz-box-shadow:none; |
|||
-webkit-box-shadow:none; |
|||
box-shadow:none; |
|||
font-size:18px; |
|||
} |
|||
#u11 { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:427px; |
|||
top:521px; |
|||
width:140px; |
|||
height:40px; |
|||
display:flex; |
|||
font-size:18px; |
|||
} |
|||
#u11 .text { |
|||
position:absolute; |
|||
align-self:center; |
|||
padding:2px 2px 2px 2px; |
|||
box-sizing:border-box; |
|||
width:100%; |
|||
} |
|||
#u11_text { |
|||
border-width:0px; |
|||
word-wrap:break-word; |
|||
text-transform:none; |
|||
} |
|||
#u12_img { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:140px; |
|||
height:47px; |
|||
} |
|||
#u12 { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:713px; |
|||
top:412px; |
|||
width:140px; |
|||
height:47px; |
|||
display:flex; |
|||
} |
|||
#u12 .text { |
|||
position:absolute; |
|||
align-self:center; |
|||
padding:2px 2px 2px 2px; |
|||
box-sizing:border-box; |
|||
width:100%; |
|||
} |
|||
#u12_text { |
|||
border-width:0px; |
|||
word-wrap:break-word; |
|||
text-transform:none; |
|||
visibility:hidden; |
|||
} |
|||
#u13_div { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:140px; |
|||
height:40px; |
|||
background:inherit; |
|||
background-color:rgba(255, 255, 255, 1); |
|||
box-sizing:border-box; |
|||
border-width:1px; |
|||
border-style:solid; |
|||
border-color:rgba(121, 121, 121, 1); |
|||
border-radius:5px; |
|||
-moz-box-shadow:none; |
|||
-webkit-box-shadow:none; |
|||
box-shadow:none; |
|||
font-size:18px; |
|||
} |
|||
#u13 { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:713px; |
|||
top:521px; |
|||
width:140px; |
|||
height:40px; |
|||
display:flex; |
|||
font-size:18px; |
|||
} |
|||
#u13 .text { |
|||
position:absolute; |
|||
align-self:center; |
|||
padding:2px 2px 2px 2px; |
|||
box-sizing:border-box; |
|||
width:100%; |
|||
} |
|||
#u13_text { |
|||
border-width:0px; |
|||
word-wrap:break-word; |
|||
text-transform:none; |
|||
} |
|||
#u14_div { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:0px; |
|||
top:0px; |
|||
width:196px; |
|||
height:16px; |
|||
background:inherit; |
|||
background-color:rgba(255, 255, 255, 0); |
|||
border:none; |
|||
border-radius:0px; |
|||
-moz-box-shadow:none; |
|||
-webkit-box-shadow:none; |
|||
box-shadow:none; |
|||
color:#D9001B; |
|||
} |
|||
#u14 { |
|||
border-width:0px; |
|||
position:absolute; |
|||
left:657px; |
|||
top:581px; |
|||
width:196px; |
|||
height:16px; |
|||
display:flex; |
|||
color:#D9001B; |
|||
} |
|||
#u14 .text { |
|||
position:absolute; |
|||
align-self:flex-start; |
|||
padding:0px 0px 0px 0px; |
|||
box-sizing:border-box; |
|||
width:100%; |
|||
} |
|||
#u14_text { |
|||
border-width:0px; |
|||
white-space:nowrap; |
|||
text-transform:none; |
|||
} |
Before Width: | Height: | Size: 429 B |
Before Width: | Height: | Size: 278 B |
Before Width: | Height: | Size: 283 B |
Before Width: | Height: | Size: 113 KiB |
Before Width: | Height: | Size: 175 B |
Before Width: | Height: | Size: 176 B |
Before Width: | Height: | Size: 152 B |
Before Width: | Height: | Size: 257 B |
Before Width: | Height: | Size: 220 B |
Before Width: | Height: | Size: 214 B |
Before Width: | Height: | Size: 152 B |
Before Width: | Height: | Size: 257 B |
Before Width: | Height: | Size: 220 B |