yolov8里面实例分割的目标像素点怎么找啊?
阴阳怪气:jia人们,谁懂啊?
如果您是人,我对您的耐心和工作量表示感谢以及跪拜;
如果您是AI,我不得不骂两句了....写的什么牛马,和问题都对不上
这个时候就需要用到我们训练好的YOLOv5人脸识别模型了,利用训练好的YOLOv5人脸识别模型,在detect.py中对代码进行修改,读取出识别框的四个a、b、c、d坐标值。下列代码对应的是detect.py的第168行,直接在下面加即可
if save_img or save_crop or view_img: # Add bbox to image
c = int(cls) # integer class
label = None if hide_labels else (names[c] if hide_conf else f'{names[c]} {conf:.2f}')
annotator.box_label(xyxy, label, color=colors(c, True))
#xyxy中保存的就是识别框的四个坐标值,我们可以直接把它取出来用
修改后的代码如下:
if save_img or save_crop or view_img: # Add bbox to image
c = int(cls) # integer class
label = None if hide_labels else (names[c] if hide_conf else f'{names[c]} {conf:.2f}')
annotator.box_label(xyxy, label, color=colors(c, True))
#xyxy中保存的就是识别框的四个坐标值,我们可以直接把它取出来用
# wrote by ym
a = xyxy[0].item()
b = xyxy[1].item()
c = xyxy[2].item()
d = xyxy[3].item()
rate=1.3
w=c-a
cw = int((a + c) / 2)
h=d-b
ch = int((d + b) / 2)
h = int(413 * w / 295)
box = (cw - rate * w, ch - rate * h, cw + rate * w, ch + rate * h)
#print(box) #box保存的是识别框的四个坐标
# save_path保存的的是处理的每张图片的名字和路径,例如 runs/detect/exp52/133.jpg
#print(save_dir) # 值为runs/detect/exp19
#p保存的是每张待处理图片的路径!
img=Image.open(str(p))
print(p)
ss = str(p).rsplit("\\",1)[1]
im=img.crop(box)
im2 = im.resize((295, 413),Image.ANTIALIAS)
if save_crop:
save_one_box(xyxy, imc, file=save_dir / 'crops' / names[c] / f'{p.stem}.jpg', BGR=True)
关于对人脸的一寸照裁剪,参考如下:https://aistudio.baidu.com/aistudio/projectdetail/438751
只要从中截取一寸照裁剪的代码即可
同时在detect.py的下面配置文件处进行修改:
只需要修改训练好的模型pt文件、需要识别的人脸图片保存的路径和yaml配置文件就可以了。
顺便贴上我的face.yaml文件的配置:
由于只需要训练人脸一个目标,因此nc设为1即可