目标检测 YOLO5部署安装测试

 一、下载模型

yolov5: 同步更新官方最新版 Yolov5 ,发行版提供模型下载地址 (gitee.com)https://gitee.com/monkeycc/yolov5?_from=gitee_search二、导入需要的包

pip install -r requirements.txt -i https://pypi.douban.com/simple/

三、下载模型yolov5s.pt放到根目录

https://github.com/ultralytics/yolov5/releases/download/v6.2/yolov5s.pt

四、运行detect.py看效果

python detect.py

会在runs文件夹下生成图片

五、检测 

COCO数据集

在正确配置好环境后就可以检测自己的图片或视频了。YOLOv5已经在COCO数据集上训练好,COCO数据集一共有80个类别,如果您需要的类别也在其中的话,可以直接用训练好的模型进行检测。这80个类分别是:

[‘person’, ‘bicycle’, ‘car’, ‘motorcycle’, ‘airplane’, ‘bus’, ‘train’, ‘truck’, ‘boat’, ‘traffic light’, ‘fire hydrant’, ‘stop sign’, ‘parking meter’, ‘bench’, ‘bird’, ‘cat’, ‘dog’, ‘horse’, ‘sheep’, ‘cow’, ‘elephant’, ‘bear’, ‘zebra’, ‘giraffe’, ‘backpack’, ‘umbrella’, ‘handbag’, ‘tie’, ‘suitcase’, ‘frisbee’, ‘skis’, ‘snowboard’, ‘sports ball’, ‘kite’, ‘baseball bat’, ‘baseball glove’, ‘skateboard’, ‘surfboard’, ‘tennis racket’, ‘bottle’, ‘wine glass’, ‘cup’, ‘fork’, ‘knife’, ‘spoon’, ‘bowl’, ‘banana’, ‘apple’, ‘sandwich’, ‘orange’, ‘broccoli’, ‘carrot’, ‘hot dog’, ‘pizza’, ‘donut’, ‘cake’, ‘chair’, ‘couch’, ‘potted plant’, ‘bed’, ‘dining table’, ‘toilet’, ‘tv’, ‘laptop’, ‘mouse’, ‘remote’, ‘keyboard’, ‘cell phone’, ‘microwave’, ‘oven’, ‘toaster’, ‘sink’, ‘refrigerator’, ‘book’, ‘clock’, ‘vase’, ‘scissors’, ‘teddy bear’, ‘hair drier’, ‘toothbrush’]

用预训练模型进行测试

下面我们先演示如何检测图片中的目标。我们一般将要检测的数据放在’./data/images’路径下,其中 ‘.’ 代表当前路径即解压好的yolov5-master文件夹,然后我们在cmd中输入下面代码:

python detect.py --source ./data/images/example.jpg --weights yolov5s.pt --conf-thres 0.25

我们也可以对视频进行检测:

python detect.py --source ./data/images/happysheep.mp4 --weights yolov5s.pt --conf-thres 0.25

或一个文件夹中的所有图片和视频(图片支持的格式:‘bmp’, ‘jpg’, ‘jpeg’, ‘png’, ‘tif’, ‘tiff’, ‘dng’, ‘webp’, ‘mpo’,视频支持的格式:‘mov’, ‘avi’, ‘mp4’, ‘mpg’, ‘mpeg’, ‘m4v’, ‘wmv’, ‘mkv’),检测结果同样放在’./runs/detect’下。

python detect.py --source ./data/images/ --weights yolov5s.pt --conf-thres 0.25
# 快速推理,--source 指定检测源,以下任意一种类型都支持:
$ python detect.py --source 0  # 本机默认摄像头
                            image.jpg  # 图片 
                            video.mp4  # 视频
                            path/  # 文件夹下所有媒体
                            path/*.jpg # 使用glob模块匹配文件
                            screen # 检测本机屏幕
                            rtsp://170.93.143.139/rtplive/470011e600ef003a004ee33696235daa  # rtsp视频流
                            http://112.50.243.8/PLTV/88888888/224/3221225900/1.m3u8  # http视频流

 

### YOLO目标检测部署教程 YOLO(You Only Look Once)作为一款高效的目标检测框架,因其速度快、性能优越而被广泛应用。以下是关于如何部署YOLO进行目标检测的具体方法。 #### 1. 安装依赖环境 为了成功部署YOLO模型,首先需要安装必要的库和工具包。通常情况下,YOLO支持多种编程语言,但在大多数应用场景下,Python是最常用的开发语言之一。可以通过以下命令安装所需的依赖项: ```bash pip install numpy opencv-python torch torchvision matplotlib ``` 这些库分别用于数值计算、图像处理、深度学习建模以及数据可视化[^2]。 #### 2. 下载预训练权重文件 YOLO官方提供了多个版本的预训练模型权重文件,可以直接下载并加载到项目中使用。例如,YOLOv4或YOLOv5的权重可以从GitHub仓库获取。以YOLOv5为例,执行如下命令克隆代码库并下载权重文件: ```bash git clone https://github.com/ultralytics/yolov5.git cd yolov5 wget https://github.com/ultralytics/yolov5/releases/download/v6.0/yolov5s.pt ``` 上述操作将下载YOLOv5的小型版本`yolov5s.pt`作为初始权重文件[^3]。 #### 3. 加载模型与配置参数 在完成环境搭建之后,下一步是编写脚本来加载YOLO模型并对输入图片或视频流进行推理。下面展示了一个简单的Python脚本实例: ```python import cv2 from PIL import Image import torch from models.experimental import attempt_load # 初始化模型 weights_path = 'yolov5s.pt' # 权重路径 device = 'cuda' if torch.cuda.is_available() else 'cpu' model = attempt_load(weights_path, map_location=device) # 设置模型为评估模式 model.eval() def detect_objects(image_path): img = Image.open(image_path).convert('RGB') # 打开测试图片 results = model(img) # 进行推断 return results.pandas().xyxy[0] if __name__ == '__main__': result_df = detect_objects('test.jpg') print(result_df) ``` 此代码片段展示了如何利用PyTorch加载YOLO模型,并对指定图片中的对象进行识别。 #### 4. 处理实时视频流 除了静态图片外,YOLO还可以应用于动态视频流。通过OpenCV读取摄像头或者本地存储的视频文件,逐帧传递给YOLO模型进行分析。下面是针对视频流的一个简单例子: ```python cap = cv2.VideoCapture(0) # 使用默认摄像头 (index=0),也可以替换为其他视频源路径 while cap.isOpened(): ret, frame = cap.read() if not ret: break # 将每一帧转换成PIL格式供YOLO处理 pil_frame = Image.fromarray(cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)) detections = model(pil_frame).pandas().xyxy[0] for _, row in detections.iterrows(): label = f'{row["class"]} {row["confidence"]:.2f}' x_min, y_min, x_max, y_max = int(row['xmin']), int(row['ymin']), int(row['xmax']), int(row['ymax']) cv2.rectangle(frame, (x_min, y_min), (x_max, y_max), color=(0, 255, 0), thickness=2) cv2.putText(frame, label, (x_min, y_min - 10), fontFace=cv2.FONT_HERSHEY_SIMPLEX, fontScale=0.9, color=(0, 255, 0), thickness=2) cv2.imshow('Object Detection', frame) key = cv2.waitKey(1) & 0xFF if key == ord('q'): break cap.release() cv2.destroyAllWindows() ``` 这段程序实现了从摄像头捕获画面并通过YOLO实时标注出其中的对象名称及其置信度得分。 #### 5. 性能优化建议 尽管YOLO本身已经具备较高的效率,但仍可通过一些手段进一步提升其表现效果: - **量化感知训练**:采用INT8量化减少内存占用的同时维持较高精度; - **GPU加速**:充分利用NVIDIA CUDA/GPU硬件特性加快运算速度; - **剪枝技术**:移除冗余神经元降低整体复杂度; 以上策略能够帮助解决某些特定条件下可能遇到的速度瓶颈问题[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

萤火的微亮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值