打开一个新文件,将其命名为 object_detection.py ,并插入以下代码:
import numpy as np
import cv2
if name==“main”:
image_name = ‘11.jpg’
prototxt = ‘MobileNetSSD_deploy.prototxt.txt’
model_path = ‘MobileNetSSD_deploy.caffemodel’
confidence_ta = 0.2
初始化MobileNet SSD训练的类标签列表
检测,然后为每个类生成一组边界框颜色
CLASSES = [“background”, “aeroplane”, “bicycle”, “bird”, “boat”,
“bottle”, “bus”, “car”, “cat”, “chair”, “cow”, “diningtable”,
“dog”, “horse”, “motorbike”, “person”, “pottedplant”, “sheep”,
“sofa”, “train”, “tvmonitor”]
COLORS = np.random.uniform(0, 255, size=(len(CLASSES), 3))
导入需要的包。
定义全局参数:
-
image_name:输入图像的路径。
-
prototxt :Caffe prototxt 文件的路径。
-
model_path :预训练模型的路径。
-
confidence_ta :过滤弱检测的最小概率阈值。 默认值为 20%。
接下来,让我们初始化类标签和边界框颜色。
load our serialized model from disk
print(“[INFO] loading model…”)
net = cv2.dnn.readNetFromCaffe(prototxt, model_path)
加载输入图像并为图像构造一个输入blob
将大小调整为固定的300x300像素。
(注意:SSD模型的输入是300x300像素)
image = cv2.imread(image_name)
(h, w) = image.shape[:2]
blob = cv2.dnn.blobFromImage(cv2.resize(image, (