0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

YOLOv6模型文件的输入与输出结构

OpenCV学堂 ? 来源:OpenCV学堂 ? 2023-06-25 15:37 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

YOLOv6人脸检测模型

YOLOv6上次(应该是很久以前)发布了一个0.3.1版本,支持人脸检测与五点landmark调用,后来我就下载,想使用一下,发现居然没有文档,也没有例子。但是官方有个infer.py文件是可以调用的,说明这个模型文件应该没问题。下载打开模型文件的输入与输出结构如下:

9294c64c-117e-11ee-962d-dac502259ad0.png

输出格式8400x16,其中16的输出表示为人脸框+landmark坐标信息。xyxy, conf, cls, lmdks,前面四个是Box信息、后面是置信度与分类得分、最后是10个值五点XY坐标

输出解析顺序

官方代码与参考文档给出的解析顺序,xyxy, conf, cls, lmdks,这部分还有官方的参考文件:

https://github.com/meituan/YOLOv6/blob/yolov6-face/yolov6/core/inferer.py

92d37716-117e-11ee-962d-dac502259ad0.png

第110行就是这样说明的,于是我按上述格式一通解析,结果让我崩溃了,输入图像与解析结果如下:

92ed582a-117e-11ee-962d-dac502259ad0.png

这个时候我才明白为什么这个发布了这么久,网上居然一篇文章关于YOLOv6人脸检测的文章都没有,网上的文章很多都是YOLOv5跟YOLOv7的人脸+Landmark检测,原因一切都是有原因的。 我debug一下,发现预测出来的16个值,只有最后两个值的结果是小于或者等于1的,所以我当时猜想16个顺序应该是:xyxy, lmdks, conf, cls,按照我猜测的顺序我又改下代码,然后直接运行测试,奇迹出现了:

这张图是AI生成的,如有雷同纯属巧合! 整个推理的流程跟YOLOv5、YOLOv6对象检测一样,就是后处理不同,所以附上后处理部分的代码:

defwrap_detection(self,input_image,out_data):
confidences=[]
boxes=[]
kypts=[]
rows=out_data.shape[0]

image_width,image_height,_=input_image.shape

x_factor=image_width/640.0
y_factor=image_height/640.0

sd=np.zeros((5,2),dtype=np.float32)
sd[0:5]=(x_factor,y_factor)
sd=np.squeeze(sd.reshape((-1,1)),1)
#xyxy,lmdks,conf,cls,
forrinrange(rows):
row=out_data[r]
conf=row[14]
cls=row[15]
if(conf>0.25andcls>0.25):
confidences.append(conf)
x,y,w,h=row[0].item(),row[1].item(),row[2].item(),row[3].item()
left=int((x-0.5*w)*x_factor)
top=int((y-0.5*h)*y_factor)
width=int(w*x_factor)
height=int(h*y_factor)
box=np.array([left,top,width,height])
boxes.append(box)
kypts.append(np.multiply(row[4:14],sd))

indexes=cv.dnn.NMSBoxes(boxes,confidences,0.25,0.25)

result_confidences=[]
result_boxes=[]
result_kypts=[]

foriinindexes:
result_confidences.append(confidences[i])
result_boxes.append(boxes[i])
result_kypts.append(kypts[i])

returnresult_kypts,result_confidences,result_boxes

责任编辑:彭菁

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 模型
    +关注

    关注

    1

    文章

    3547

    浏览量

    50737
  • 代码
    +关注

    关注

    30

    文章

    4907

    浏览量

    71240
  • 人脸检测
    +关注

    关注

    0

    文章

    86

    浏览量

    16903

原文标题:YOLOv6 人脸Landmark检测

文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Yolov5算法解读

    ,这几个模型结构基本一样,不同的是depth_multiple模型深度和width_multiple模型宽度这两个参数。 yolov5主要
    的头像 发表于 05-17 16:38 ?1.3w次阅读
    <b class='flag-5'>Yolov</b>5算法解读

    YOLOV7网络架构解读

    继美团发布YOLOV6之后,YOLO系列原作者也发布了YOLOV7。
    的头像 发表于 11-29 10:00 ?2542次阅读
    <b class='flag-5'>YOLOV</b>7网络架构解读

    怎样使用PyTorch Hub去加载YOLOv5模型

    图像会自动传输到正确的模型设备。静音输出模型可以静默加载_verbose=False:输入通道要加载具有 4 个输入通道而不是默认的 3 个
    发表于 07-22 16:02

    YOLOv6中的用Channel-wise Distillation进行的量化感知训练

    1、YOLOv6中的用Channel-wise Distillation进行的量化感知训练来自哪里  知识蒸馏 (KD)已被证明是一种用于训练紧凑密集预测模型的简单有效的工具。轻量级学生网络通过
    发表于 10-09 16:25

    YOLOv5网络结构解析

    1、YOLOv5 网络结构解析  YOLOv5针对不同大小(n, s, m, l, x)的网络整体架构都是一样的,只不过会在每个子模块中采用不同的深度和宽度,  分别应对yaml文件
    发表于 10-31 16:30

    全志V853 在 NPU 转换 YOLO V3 模型

    原内部格式表示文件,分别对应原始模型文件yolov3.weights 和 yolov3.cfg创建 YML
    发表于 12-19 10:36

    yolov7 onnx模型在NPU上太慢了怎么解决?

    yolov7tiny.onnx。输入大小为 224x224,但 npu 推理时间为 127 毫秒。好像太慢了。这个时间合理吗?以下是我的onnx模型转换步骤和我的onnxruntime执行代码: 1. 从 https
    发表于 04-04 06:13

    YOLOv3的darknet模型先转为caffe模型后再转为fp32bmodel,模型输出和原始模型输出存在偏差是怎么回事?

    YOLOv3的darknet模型先转为caffe模型后再转为fp32bmodel,模型输出和原始模型
    发表于 09-19 06:26

    一个YOLO系列的算法实现库YOLOU

    这里主要是对于YOLO系列经典化模型的训练对比,主要是对于YOLOv5、YOLOv6YOLOv7以及YOLOX的对比,部分模型还在训练之中
    的头像 发表于 07-31 11:47 ?2143次阅读

    关于YOLOU中模型的测试

    整个算法完全是以YOLOv5的框架进行,主要包括的目标检测算法有:YOLOv3、YOLOv4、YOLOv5、YOLOv5-Lite、
    的头像 发表于 08-16 10:24 ?1119次阅读

    YOLOv6在LabVIEW中的推理部署(含源码)

    YOLOv6 是美团视觉智能部研发的一款目标检测框架,致力于工业应用。如何使用python进行该模型的部署,官网已经介绍的很清楚了,但是对于如何在LabVIEW中实现该模型的部署,笔者目前还没有看到
    的头像 发表于 11-06 16:07 ?1072次阅读
    <b class='flag-5'>YOLOv6</b>在LabVIEW中的推理部署(含源码)

    一文彻底搞懂YOLOv8【网络结构+代码+实操】

    从上面可以看出,YOLOv8 主要参考了最近提出的诸如 YOLOX、YOLOv6YOLOv7 和 PPYOLOE 等算法的相关设计,本身的创新点不多,偏向工程实践,主推的还是 ultralytics 这个框架本身。
    的头像 发表于 06-15 17:15 ?1.4w次阅读
    一文彻底搞懂<b class='flag-5'>YOLOv</b>8【网络<b class='flag-5'>结构</b>+代码+实操】

    YOLOv8+OpenCV实现DM码定位检测与解析

    YOLOv8是YOLO系列模型的最新王者,各种指标全面超越现有对象检测与实例分割模型,借鉴了YOLOv5、YOLOv6、YOLOX等
    的头像 发表于 08-10 11:35 ?1796次阅读
    <b class='flag-5'>YOLOv</b>8+OpenCV实现DM码定位检测与解析

    深度学习YOLOv3 模型设计的基本思想

    在检测任务中,将图中C0后面的平均池化、全连接层和Softmax去掉,保留从输入到C0部分的网络结构,作为检测模型的基础网络结构,也称为骨干网络
    发表于 10-17 10:32 ?551次阅读
    深度学习<b class='flag-5'>YOLOv</b>3 <b class='flag-5'>模型</b>设计的基本思想

    yolov5训练部署全链路教程

    1.Yolov5简介YOLOv5模型是Ultralytics公司于2020年6月9日公开发布的。YOLOv5
    的头像 发表于 07-25 15:22 ?297次阅读
    <b class='flag-5'>yolov</b>5训练部署全链路教程