Python是一种功能强大的编程语言,用它可以实现各种各样的功能,其中之一就是目标检测。目标检测是指在图像中识别出特定的目标,如人脸、行人、动物等。下面就介绍一下用10行Python代码实现目标检测的方法:
1. 导入必要的库
import cv2 import numpy as np import matplotlib.pyplot as plt from PIL import Image
2. 加载图片
img = cv2.imread('image.jpg') plt.imshow(img)
3. 加载模型
net = cv2.dnn.readNetFromCaffe('model.prototxt', 'model.caffemodel')
4. 将图片转换为blob格式
blob = cv2.dnn.blobFromImage(img, scalefactor=1.0, size=(300, 300), mean=(104.0, 177.0, 123.0))
5. 将blob输入模型中进行推断
net.setInput(blob) detections = net.forward()
6. 遍历检测结果
for i in range(detections.shape[2]): confidence = detections[0, 0, i, 2] if confidence > 0.5: # 获取目标的坐标 box = detections[0, 0, i, 3:7] * np.array([w, h, w, h]) (startX, startY, endX, endY) = box.astype("int") # 画出检测框 cv2.rectangle(img, (startX, startY), (endX, endY), (0, 255, 0), 2)
7. 显示检测结果
image = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) plt.imshow(image)
8. 保存检测结果
cv2.imwrite('detected.jpg', img)
以上就是实现目标检测功能的10行Python代码,它们分别是:导入必要的库、加载图片、加载模型、将图片转换为blob格式、将blob输入模型中进行推断、遍历检测结果、显示检测结果、保存检测结果。