YOLOv8旋转机器人目标检测运动模糊问题及方案失效咨询
基于YOLOv8的机器人旋转时运动模糊导致目标检测精度下降的解决方案求助
我正在开发一款基于YOLOv8的机器人,通过摄像头采集视频实现实时目标检测。但机器人旋转时,摄像头输入图像会产生运动模糊,导致检测精度大幅下降。目前只能通过旋转时减速或每转10度暂停来缓解,效率极低。
已尝试的解决方案及问题
1. Sobel边缘检测预处理方案
针对机器人仅做旋转运动(对应相机视角水平x轴移动),我尝试用Sobel x轴滤波器突出垂直边缘,将处理后的图像输入经相同Sobel预处理数据集训练的YOLOv8模型,但该方案仍无法让机器人在旋转时准确检测目标。
实现代码如下:
import cv2 import numpy as np while(True): ret, frame = cap.read() if not ret: print("Can't receive frame (stream end?). Exiting ...") break gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) sobel_x = cv2.Sobel(gray, cv2.CV_64F, 1, 0, ksize = 3) #sobel_y = cv2.Sobel(gray, cv2.CV_64F, 0, 1, ksize = 3) #sobel = cv2.magnitude(sobel_x, sobel_y) #sobel = np.uint8(np.clip(sobel, 0, 255)) absX = cv2.convertScaleAbs(sobel_x) absX_rgb = cv2.cvtColor(absX, cv2.COLOR_GRAY2BGR) cv2.imshow("Sobel Edge3", absX) results = trt_model(absX_rgb) for result in results: boxes = result.boxes # Boxes object for bounding box outputs center = boxes.xyxy shuttlecock_prob = boxes.conf # 其他处理逻辑 if cv2.waitKey(1) == ord('q'): break
相关结果说明:
- 机器人静止时检测结果:目标检测框准确,置信度正常
- 机器人旋转时Sobel滤波处理结果:仅保留垂直边缘,图像细节丢失严重
- 机器人旋转时经模糊数据集训练模型的检测结果:检测框偏移或无有效检测
2. 加入模糊图像到训练集
尝试将机器人采集到的模糊图像标注后加入训练集,虽提升了模糊场景下的目标识别能力,但导致机器人静止时的整体检测精度明显下降。
寻求帮助
希望得到能解决机器人旋转时运动模糊导致检测精度下降问题的有效方案,同时不影响静止状态下的检测精度。
内容的提问来源于stack exchange,提问作者Limit
相关产品推荐
相关产品推荐

