$ tree
.
├── images
│ └── 11.jpg
├── output
│ └── output.avi
├── videos
│ └── overpass.mp4
├── yolo-coco
│ ├── coco.names
│ ├── yolov3.cfg
│ └── yolov3.weights
├── yolo.py
└── yolo_video.py
我们今天的项目由 4 个目录和两个 Python 脚本组成。
目录(按重要性排序)是:
yolo-coco文件夹:YOLOv3 物体检测器模型文件
images文件夹:存放用于评估的图像。
videos文件夹 :存放用于评估的视频
output: 评估后的结果。
yolo.py:评估图像
yolo_video.py :评估视频
===============================================================
新建文件yolo_objectdetection.py
import the necessary packages
import numpy as np
import argparse
import time
import cv2
import os
image_path=‘11.jpg’
yolo=‘yolo_coco’
confidence_t=0.5
threshold=0.3
加载训练 YOLO 模型的 COCO 类标签
labelsPath = os.path.sep.join([yolo, “coco.names”])
LABELS = open(labelsPath).read().strip().split(“\n”)
初始化一个颜色列表来表示每个类标签
np.random.seed(42)
COLORS = np.random.randint(0, 255, size=(len(LABELS), 3),
dtype=“uint8”)
YOLO 对象检测
print(“[INFO] loading YOLO from disk…”)
config_path = ‘./yolo_coco/yolov3.cfg’
weights_path = ‘./yolo_coco/yolov3.weights’
net = cv2.dnn.readNetFromDarknet(config_path, weights_path)
导入包。
定义全局参数:
-
image_path:定义图片的路径。
-
yolo:定义模型存放的路径
-
confidence_t:过滤弱检测的最小概率。
-
threshold:非最大值抑制阈值。
接下来,加载了所有的类 LABELS。然后,为每个标签分配随机颜色。
加载权重文件。
加载我们的输入图像并获取其空间维度
image = cv2.imread(image_path)
(H, W) = image.shape[:2]