做网站html和asp,js制作网页游戏,做网站找酷万,网站创建人目录
前言
1.扩大检测框区域
2.先检测手部#xff0c;后检测手部关键点
3.正面视角检测
4.侧面视角检测
5.摄像头视角检测
6.遮挡视角检测
7.结论 前言 使用YOLOv8-m对图像进行手部检测#xff0c;然后扩大检测框区域#xff0c;并对该区域使用YOLOv8-s-pose使用关键…目录
前言
1.扩大检测框区域
2.先检测手部后检测手部关键点
3.正面视角检测
4.侧面视角检测
5.摄像头视角检测
6.遮挡视角检测
7.结论 前言 使用YOLOv8-m对图像进行手部检测然后扩大检测框区域并对该区域使用YOLOv8-s-pose使用关键点检测实现实时的手部关键点检测。 实现效果 1.扩大检测框区域 参考基于YOLOv8-pose的手部关键点检测2- 模型训练、结果分析和超参数优化 需要将手部区域放大2/3 。放大框的函数如下scale2/3:
def expand_bbox(xyxy, img_width, img_height, scale0.1):# 计算宽度和高度和中心点width xyxy[2] - xyxy[0]height xyxy[3] - xyxy[1]center_x xyxy[0] width / 2center_y xyxy[1] height / 2# 增加10%的宽度和高度new_width width * (1 scale)new_height height * (1 scale)# 计算新的边界框坐标并确保新的边界框坐标不超过图片的边界new_x1 max(2, int(center_x - new_width / 2))new_y1 max(2, int(center_y - new_height / 2))new_x2 min(int(img_width) - 2, int(center_x new_width / 2))new_y2 min(int(img_height), int(center_y new_height / 2))return new_x1, new_y1, new_x2, new_y2 2.先检测手部后检测手部关键点 关键代码如下下面结果开始展示容错因为我把scale错写成了1/3 frame, _ resize_image(frame, 720)img_height, img_width, _ frame.shapeimg cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)hand_all det_shou(img)[0]for i, bbox in enumerate(hand_all.boxes.xyxy):x1, y1, x2, y2 list(map(int, bbox))x11, y11, x22, y22 expand_bbox(bbox, img_width, img_height, scale1 / 3)conf hand_all.boxes.conf[i]cls hand_all.boxes.cls[i]label f{hand_all.names[int(cls)]} {float(conf):.2f}# 绘制边界框和标签cv2.rectangle(frame, (x11, y11), (x22, y22), (0, 255, 0), 2)cv2.putText(frame, label, (x11, y11 - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)image_shou frame[y11:y22, x11:x22]shou_all pose_shou(image_shou)[0].cpu().numpy()if len(shou_all.boxes.conf) 0:kpts [list(map(int, shou_all.keypoints.xy[0].reshape(1, 42)[0].tolist()))]image_shou draw_bboxes_and_keypoints(image_shou, shou_all.boxes.xyxy, shou_all.boxes.conf,shou_all.boxes.cls,kptskpts, cat_order_connections, line_colorline_color)frame[y11:y22, x11:x22] image_shoucv2.imshow(Frame, frame) 以下绿色框表示YOLOv8的bbox扩大得到的检测框 以下红色框表示YOLOv8-pose的bbox。 3.正面视角检测 不遮挡基本都能检测正确。 4.侧面视角检测 开了二倍速也可以完美检测不过在手交叉时候略有检测错误。 5.摄像头视角检测 慢速下关键点都可以识别准确。 6.遮挡视角检测 存在遮挡情况下检测准确度骤降。一方面一只手被手部检测后会得到两个检测框数据集里有两只手交叉的情况会有两个框重叠。另一方面手部关键点数据集没有点的分类被遮挡点当做不可见点处理。这样无法预测不可见的位置。 7.结论 非遮挡情况不存在手部相交基本都可以识别正确。存在手部相交时准确率会骤降。 遮挡情况可能导致模型几乎不可用需要加入前处理和后处理。合并最接近相邻手部检测框即使是两只手也当做一只手来做。如果一个检测框检测出多只手只取置信度最大的那只。增加局部区域物品检测判断是否存在遮挡。