基于深度学习的行人检测的python代码
时间: 2023-08-26 09:05:24 浏览: 107
以下是一个简单的基于深度学习的行人检测Python代码:
```python
import cv2
import numpy as np
# 加载预训练的行人检测模型
pedestrian_net = cv2.dnn.readNetFromCaffe('MobileNetSSD_deploy.prototxt', 'MobileNetSSD_deploy.caffemodel')
# 设置模型的输入大小和比例因子
input_size = (300, 300)
scale_factor = 0.007843
# 加载图片并进行预处理
img = cv2.imread('pedestrian.jpg')
blob = cv2.dnn.blobFromImage(img, scale_factor, input_size, (127.5, 127.5, 127.5), swapRB=True)
# 将blob输入到行人检测模型中进行推理
pedestrian_net.setInput(blob)
detections = pedestrian_net.forward()
# 处理检测结果
for i in range(detections.shape[2]):
confidence = detections[0, 0, i, 2]
if confidence > 0.5:
x1 = int(detections[0, 0, i, 3] * img.shape[1])
y1 = int(detections[0, 0, i, 4] * img.shape[0])
x2 = int(detections[0, 0, i, 5] * img.shape[1])
y2 = int(detections[0, 0, i, 6] * img.shape[0])
cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2)
# 显示结果
cv2.imshow('Pedestrian Detection', img)
cv2.waitKey(0)
```
这个代码使用了一个基于MobileNet的行人检测模型,可以在OpenCV中使用`cv2.dnn.readNetFromCaffe()`方法加载预训练模型。然后利用`cv2.dnn.blobFromImage()`方法对输入图片进行预处理,并将其输入到模型中进行推理。最后根据检测结果在原图上绘制矩形框,以标记出检测到的行人。
阅读全文