CPP 静态合成
This commit is contained in:
33
web.py
33
web.py
@@ -17,6 +17,21 @@ from PyQt5.QtGui import QImage, QPixmap, QFont
|
||||
from PyQt5.QtCore import Qt, QTimer, pyqtSignal, QObject
|
||||
from PIL import Image, ImageDraw, ImageFont
|
||||
|
||||
# ==========================================================
|
||||
# OpenCL GPU 加速初始化
|
||||
# ==========================================================
|
||||
_OCL_ENABLED = False
|
||||
try:
|
||||
cv2.ocl.setUseOpenCL(True)
|
||||
_OCL_ENABLED = cv2.ocl.useOpenCL()
|
||||
if _OCL_ENABLED:
|
||||
ocl_devs = cv2.ocl.Device.getDefault()
|
||||
print("[INFO] OpenCL GPU 加速已启用: {}".format(ocl_devs.name()))
|
||||
else:
|
||||
print("[WARNING] OpenCL 不可用,将使用 CPU")
|
||||
except Exception as e:
|
||||
print("[WARNING] OpenCL 初始化失败 ({}), 将使用 CPU".format(e))
|
||||
|
||||
try:
|
||||
from surround_view import FisheyeCameraModel, BirdView
|
||||
import surround_view.param_settings as settings
|
||||
@@ -293,6 +308,9 @@ class SerialWorker(threading.Thread):
|
||||
buf.append(b)
|
||||
if len(buf) == 10:
|
||||
self._parse_rx_frame(bytes(buf))
|
||||
print("[RX] active: {} radar: {} stopped: {} reverse: {}".format(
|
||||
self._active_dirs, self._radar_dist, self._stopped, self._reverse))
|
||||
|
||||
buf.clear()
|
||||
elif len(buf) > 10:
|
||||
buf.clear()
|
||||
@@ -317,7 +335,7 @@ class RemoteSignals(QObject):
|
||||
exit_settings = pyqtSignal()
|
||||
|
||||
class RemoteWorker(threading.Thread):
|
||||
def __init__(self, port="/dev/ttyS3", baudrate=115200):
|
||||
def __init__(self, port="/dev/ttyS3", baudrate=9600):
|
||||
super().__init__(daemon=True)
|
||||
self.port = port
|
||||
self.baudrate = baudrate
|
||||
@@ -476,7 +494,7 @@ class BirdViewWorker(threading.Thread):
|
||||
while self.running:
|
||||
self.frame_idx += 1
|
||||
if self.frame_idx % self.framestep != 0:
|
||||
time.sleep(0.005)
|
||||
time.sleep(0.033)
|
||||
continue
|
||||
frames = []
|
||||
for name, model in zip(self.names, self.models):
|
||||
@@ -484,13 +502,14 @@ class BirdViewWorker(threading.Thread):
|
||||
if frame is None:
|
||||
break
|
||||
try:
|
||||
frames.append(
|
||||
model.flip(model.project(model.undistort(frame))))
|
||||
frame = model.process_frame(frame)
|
||||
if frame is not None:
|
||||
frames.append(frame)
|
||||
except Exception as e:
|
||||
print("[BIRD ERROR] {}".format(e))
|
||||
break
|
||||
if len(frames) != 4:
|
||||
time.sleep(0.01)
|
||||
time.sleep(0.033)
|
||||
continue
|
||||
try:
|
||||
self.birdview.update_frames(frames)
|
||||
@@ -670,7 +689,7 @@ class MultiCameraBirdView:
|
||||
return
|
||||
|
||||
self.caps = []
|
||||
self.which_cameras = {"front":0, "left":1, "back":2, "right":3}
|
||||
self.which_cameras = {"front":2, "left":3, "back":0, "right":1}
|
||||
for name in self.names:
|
||||
cap_id = self.which_cameras.get(name, 0)
|
||||
cap = cv2.VideoCapture(cap_id, cv2.CAP_V4L2)
|
||||
@@ -698,7 +717,7 @@ class MultiCameraBirdView:
|
||||
if img is None:
|
||||
continue
|
||||
frames.append(
|
||||
model.flip(model.project(model.undistort(img))))
|
||||
model.process_frame(img))
|
||||
if len(frames) == 4:
|
||||
self.birdview.get_weights_and_masks(frames)
|
||||
print("[INFO] 权重初始化完成")
|
||||
|
||||
Reference in New Issue
Block a user