用户您好,请详细描述您所遇到的问题:-
RDK X3 model使用社区提供的rdk_model_zoo-main代码,修改后进行视频流推理,运行2分钟左右卡死,模型自己训练的和官方提供的都试了,都会出现卡死的情况,使用的是yolov5s的模型
官方代码使用的是
修改部分,就是将推理一张图片改为视频流。
def process_video_stream(model: YOLOv5_Detect, camera_index: int = 0):-
# 打开摄像头-
cap = cv2.VideoCapture(camera_index)-
if not cap.isOpened():-
logger.error(“无法打开摄像头!”)-
return-
while True:-
ret, frame = cap.read()-
if not ret:-
logger.warning(“无法读取视频流帧”)-
break-
# 对每一帧进行处理-
input_tensor = model.bgr2nv12(frame)-
outputs = model.c2numpy(model.forward(input_tensor))-
ids, scores, bboxes = model.postProcess(outputs)-
# 渲染-
for class_id, score, bbox in zip(ids, scores, bboxes):-
x1, y1, x2, y2 = bbox-
logger.info(“(%d, %d, %d, %d) → %s: %.2f”%(x1, y1, x2, y2, coco_names[class_id], score))-
draw_detection(frame, (x1, y1, x2, y2), score, class_id)-
# 使用imshow显示每一帧图像-
cv2.imshow(“YOLOv5 Detection”, frame)-
# 按’q’键退出-
if cv2.waitKey(1) & 0xFF == ord(‘q’):-
break-
cap.release()-
cv2.destroyAllWindows()-
def main():-
parser = argparse.ArgumentParser()-
parser.add_argument(‘--model-path’, type=str, default=‘guangxuan.bin’,-
help=“”“Path to BPU Quantized *.bin Model.”“”)-
parser.add_argument(‘--camera-index’, type=int, default=0, help=‘Camera index (default is 0).’)-
parser.add_argument(‘--classes-num’, type=int, default=25, help=‘Classes Num to Detect.’)-
parser.add_argument(‘--iou-thres’, type=float, default=0.45, help=‘IoU threshold.’)-
parser.add_argument(‘--conf-thres’, type=float, default=0.25, help=‘confidence threshold.’)-
parser.add_argument(‘--anchors’, type=lambda s: list(map(int, s.split(‘,’))),-
default=[10, 13, 16, 30, 33, 23, 30, 61, 62, 45, 59, 119, 116, 90, 156, 198, 373, 326],-
help=‘--anchors 10,13,16,30,33,23,30,61,62,45,59,119,116,90,156,198,373,326’)-
parser.add_argument(‘--strides’, type=lambda s: list(map(int, s.split(‘,’))),-
default=[8, 16, 32],-
help=‘--strides 8,16,32’)-
opt = parser.parse_args()-
logger.info(opt)-
# 实例化-
model = YOLOv5_Detect(opt.model_path, opt.conf_thres, opt.iou_thres, opt.classes_num, opt.anchors, opt.strides)-
# 调用处理视频流的函数-
process_video_stream(model, opt.camera_index)
通过free -h查了看cpu内存逐步下降,从700多,最后降到10左右,然后代码自动卡死退出。
社区求助贴发帖建议-
基础信息
1. 板卡型号及板卡外观图片
RDK X3,RDK X3 Module,RDK X5,RDK X5 Module,RDK Ultra,RDK S100,等等
2. 系统软件版本: 提供 sudo cat /etc/version 命令和 sudo rdkos_info 命令的返回结果
3. 问题涉及的技术领域-
硬件开发 / TROS (TogetheROS.Bot)/ 算法工具链 (OpenExplore)/ 多媒体开发
Linux开发 (驱动,RDK OS)/ RDK Studio / 其他
4. 问题描述:-
- 复现概率:必现、高、中、低,并描述大致的概率数值
- 已进行的排查措施、分析及结果:尽可能详细的描述在进行什么功能的开发或者测试,发现了什么问题,问题现象,并且提供预期的结果
- 搜索一下论坛是否有相关的案例
- 如果涉及到社区的资源或者第三方资源,请尽可能提供资源的网址
- 功能异常,先排查一下是不是运行的代码和demo存在差异,修改不多的情况下直接用对比软件先对比
- 提供必要的问题日志
常见问答100条: https://horizonrobotics.feishu.cn/docx/QYfCddrK8o2IIJxVUypcv3b7nsf-
多媒体相关问题发帖请参考:https://developer.d-robotics.cc/forumDetail/266441979142197461-
TROS 问题基础排查
确保您的tros软件包都是最新的:一些问题在新版本中已经被修复,在apt update确保有地瓜的apt源“archive.d-robotics.cc”后进行apt upgrade。在提问时也请使用apt list | grep tros*、apt show tros*命令提供您的软件包版本。
**尝试定位问题出现的node:**参考对应功能报的launch,将日志级别改为debug,重新运行,定位出现问题的node,并提供具体的ros2日志。一般tros的launch处于/opt/tros/share//launch目录下。ros2 日志一般在/root/.ros/log/目录下,排查前可以先rm -rf /root/.ros/log/*清空这个目录,再运行功能包收集日志。
**重新安装相关的tros功能包:**如果launch或者其他功能改乱了可以重装tros的软件包,利用apt重装tros软件包的一般步骤为,以hobot_usb_cam为例,先apt list | grep *hobot* 定位软件包的名称,然后apt remove tros-hobot-usb-cam,然后在apt update确保有地瓜的源“archive.d-robotics.cc”后进行apt install tros-hobot-usb-cam重新安装tros的包。
