YOLOv6人臉檢測(cè)模型
YOLOv6上次(應(yīng)該是很久以前)發(fā)布了一個(gè)0.3.1版本,支持人臉檢測(cè)與五點(diǎn)landmark調(diào)用,后來(lái)我就下載,想使用一下,發(fā)現(xiàn)居然沒(méi)有文檔,也沒(méi)有例子。但是官方有個(gè)infer.py文件是可以調(diào)用的,說(shuō)明這個(gè)模型文件應(yīng)該沒(méi)問(wèn)題。下載打開(kāi)模型文件的輸入與輸出結(jié)構(gòu)如下:
輸出格式8400x16,其中16的輸出表示為人臉框+landmark坐標(biāo)信息。xyxy, conf, cls, lmdks,前面四個(gè)是Box信息、后面是置信度與分類得分、最后是10個(gè)值五點(diǎn)XY坐標(biāo)
輸出解析順序
官方代碼與參考文檔給出的解析順序,xyxy, conf, cls, lmdks,這部分還有官方的參考文件:
https://github.com/meituan/YOLOv6/blob/yolov6-face/yolov6/core/inferer.py
第110行就是這樣說(shuō)明的,于是我按上述格式一通解析,結(jié)果讓我崩潰了,輸入圖像與解析結(jié)果如下:
這個(gè)時(shí)候我才明白為什么這個(gè)發(fā)布了這么久,網(wǎng)上居然一篇文章關(guān)于YOLOv6人臉檢測(cè)的文章都沒(méi)有,網(wǎng)上的文章很多都是YOLOv5跟YOLOv7的人臉+Landmark檢測(cè),原因一切都是有原因的。 我debug一下,發(fā)現(xiàn)預(yù)測(cè)出來(lái)的16個(gè)值,只有最后兩個(gè)值的結(jié)果是小于或者等于1的,所以我當(dāng)時(shí)猜想16個(gè)順序應(yīng)該是:xyxy, lmdks, conf, cls,按照我猜測(cè)的順序我又改下代碼,然后直接運(yùn)行測(cè)試,奇跡出現(xiàn)了:
這張圖是AI生成的,如有雷同純屬巧合! 整個(gè)推理的流程跟YOLOv5、YOLOv6對(duì)象檢測(cè)一樣,就是后處理不同,所以附上后處理部分的代碼:
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
責(zé)任編輯:彭菁
-
模型
+關(guān)注
關(guān)注
1文章
3032瀏覽量
48346 -
代碼
+關(guān)注
關(guān)注
30文章
4670瀏覽量
67760 -
人臉檢測(cè)
+關(guān)注
關(guān)注
0文章
78瀏覽量
16391
原文標(biāo)題:YOLOv6 人臉Landmark檢測(cè)
文章出處:【微信號(hào):CVSCHOOL,微信公眾號(hào):OpenCV學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論