yolov5实时人脸检测,代码示例
时间: 2023-07-17 12:07:19 浏览: 102
基于python与yolov5的人脸检测算法设计与实现
5星 · 资源好评率100%
以下是一个使用YOLOv5进行实时人脸检测的简单代码示例:
```python
import torch
from PIL import Image
from torchvision.transforms import functional as F
from models.experimental import attempt_load
from utils.general import non_max_suppression, scale_coords
from utils.torch_utils import select_device
def load_model(weights='yolov5s.pt'):
device = select_device('')
model = attempt_load(weights, map_location=device)
return model
def detect_faces(image, model):
img = F.to_tensor(image)
img = img.unsqueeze(0)
img = img.float() / 255.0
img = img.cuda()
pred = model(img, augment=False)[0]
pred = non_max_suppression(pred, 0.4, 0.5)
faces = []
for det in pred:
if len(det):
det[:, :4] = scale_coords(img.shape[2:], det[:, :4], image.size)
for *xyxy, conf, cls in det:
if int(cls) == 0: # 0 represents the face class
faces.append(xyxy)
return faces
# 加载模型
model = load_model()
# 打开图像文件
image_path = 'path/to/your/image.jpg'
image = Image.open(image_path).convert('RGB')
# 进行人脸检测
faces = detect_faces(image, model)
# 在图像上绘制检测到的人脸框
draw = ImageDraw.Draw(image)
for (x1, y1, x2, y2) in faces:
draw.rectangle([(x1, y1), (x2, y2)], outline='red', width=2)
# 显示结果图像
image.show()
```
请注意,上述示例中的代码是一个简化的版本,仅用于演示如何使用YOLOv5进行实时人脸检测。你可能需要根据自己的需求对代码进行适当的修改和调整。
在使用代码之前,请确保已经安装所需的依赖库,并下载并放置好YOLOv5的权重文件。此外,你可能还需要根据自己的硬件环境和数据集进行相应的配置和调优。
希望这个示例对你有帮助!如果你有任何其他问题,请随时提问。
阅读全文