对于计算机视觉爱好者来说,YOLO (You Only Look Once)是一个非常流行的实时目标检测算法,因为它非常快,同时性能非常好。
在本文中,我将共享一个视频处理的代码,以获取视频中每个对象目标的边框。我们将不讨论YOLO的概念或架构,因为很多好的文章已经在媒体中详细阐述了这些知识点。这里我们只讨论函数代码。
![](https://i-blog.csdnimg.cn/blog_migrate/9e756d89505f79566c46de22ae0649bc.png)
开始
谷歌Colab地址:https://colab.research.google.com/github/vindruid/yolov3-in-colab/blob/master/yolov3_video.ipynb。
yolo的git仓库:https://github.com/ultralytics/yolov3。尽管仓库已经包含如何使用YOLOv3的教程,教程只需要运行python detect.py --source file.mp4
,但是我简化了代码,具体在谷歌Colab / Jupyter笔记本中。
准备YoloV3和LoadModel
首先克隆YoloV3仓库,然后导入通用包和repo函数
!git clone https://github.com/ultralytics/yolov3import timeimport globimport torchimport os
import argparsefrom sys import platform%cd yolov3from models import *from utils.datasets import *from utils.utils import *
from IPython.display import HTMLfrom base64 import b64encode
设置参数解析器,初始化设备(CPU / CUDA),初始化YOLO模型,然后加载权重。
parser = argparse.ArgumentParser()parser.add_argument('--cfg', type=str, default='cfg/yolov3-spp.cfg', help='*.cfg path')parser.add_argument('--names', type=str, default='data/coco.names', help='*.names path')parser.add_argument('--weights', type=str, default='weights/yolov3-spp-ultralytics.pt', help='weights path')parser.add_ar