YOLOv3的应用

本文介绍YOLOv3的多种应用场景,包括图片、视频和实时摄像头检测,并提供具体操作步骤及命令参数说明。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.0 前言

        本文是YOLOv3系列第2篇,记录YOLOv3的几种应用方法。

        YOLOv3系列第1篇:win10下YOLOv3下载与编译

        YOLOv3系列第2篇:YOLOv3的应用

        YOLOv3系列第3篇:YOLOv3训练自己的模型


        建议参考github上作者的说明,写的十分清楚。

        参考的网页:
        https://blog.youkuaiyun.com/u012235274/article/details/51253947?locationNum=6&fps=1

        

2.1 用于图片检测

        操作:
        下载yolov3.weights,放在目录..\darknet-master\build\darknet\x64下,双击此目录下的darknet_yolo_v3.cmd。

        

        检测结果:

        

        darknet_yolo_v3.cmd文件功能:检测darknet.exe同目录下的dog.jpg文件,结果存储在darknet.exe同目录下的predctions.jpg中。

          自定义图片路径:删去darknet_yolo_v3.cmd文件中的dog.jpg(不是删掉dog.jpg文件)之后双击darknet_yolo_v3.cmd文件,命令行会提示输入测试图片的路径。

         darknet_yolo_v3.cmd文件内容:

    darknet.exe detector test data/coco.data yolov3.cfg yolov3.weights -i 0 -thresh 0.25 dog.jpg -ext_output
    pause


2.2 用于视频检测

        操作:
        下载yolov-voc.weights,放在目录..\darknet-master\build\darknet\x64下,双击此目录下的darknet_demo_voc.cmd

        下载地址见2.1图片检测

        检测结果截图:

        

        darknet_demo_voc.cmd文件功能:检测darknet.exe同目录下的test.mp4文件。

       存储检测后的视频:双击darknet_demo_store.cmd而非darknet_demo_voc.cmd(其实只是添加了一个参数)。

        darknet_demo_voc.cmd文件内容:

    darknet.exe detector demo data/voc.data cfg/yolov2-voc.cfg yolo-voc.weights test.mp4 -i 0
    pause

        darknet_demo_store.cmd文件内容:

    darknet.exe detector demo data/voc.data cfg/yolov2-voc.cfg yolo-voc.weights test.mp4 -i 0 -out_filename res.avi
    pause

        

2.3 用于摄像头实时检测

        2.3.1 使用电脑摄像头

        操作:

        下载yolov-voc.weights,放在...\darknet-master\build\darknet\x64目录下,

        双击此目录下的darknet_web_cam_voc.cmd

        下载地址见2.1照片检测

        检测结果:
        

         darknet_web_cam_voc.cmd文件功能:实时检测电脑摄像头中的物体。

        更改摄像头:修改-c后的数字。

        darknet_web_cam_voc.cmd文件内容:

    # play video from Web-Camera number 0
    rem darknet.exe detector demo data/voc.data cfg/yolov2-voc.cfg yolo-voc.weights -c 0
    darknet.exe detector demo data/coco.data cfg/yolov3.cfg yolov3.weights -c 0
    pause

        2.3.2 使用手机摄像头

        操作:

        下载yolov-voc.weights,放在...\darknet-master\build\darknet\x64目录下,

         双击此目录下的darknet_net_cam_voc.cmd。

        注意:

        在双击cmd文件之前需要:手机和电脑在同一个局域网内(手机和电脑连同一个wifi或者手机连电脑的wifi),安卓端需要下载IP Webcam 或者 Smart WebCam,然后打开软件,开启服务器,手机上会显示IP地址和端口,将cmd文件中的IP和端口(下边代码中的"http://192.168.0.80:8080")改为手机上显示的值。

        github上给出的 IP Webcam下载地址需要翻墙,此处给出网盘下载地址:

        IP Webcam:下载链接:https://pan.baidu.com/s/1foa7T2lJAe546plQUdz7Kw 密码:hzzz


        darknet_net_cam_voc.cmd文件功能:实时检测手机摄像头(作为网络摄像头)中的物体。

        darknet_net_cam_voc.cmd文件内容:

    # Download for Android phone mjpeg-stream: IP Webcam / Smart WebCam
    #
    # Smart WebCam - preferably: https://play.google.com/store/apps/details?id=com.acontech.android.SmartWebCam
    # IP Webcam: https://play.google.com/store/apps/details?id=com.pas.webcam
    #
    # Replace the address below, on shown in the phone application
    darknet.exe detector demo data/voc.data cfg/yolov2-voc.cfg yolo-voc.weights http://192.168.0.80:8080/video?dummy=param.mjpg -i 0 
    pause


2.4 部分命令参数说明

        双击cmd文件相当于在命令行输入命令。

         -dont_show:不显示过程。

         -ext_output:输出预测物体的坐标。

         -ext_output < data/valid.txt > result.txt:输出预测结果并写入result.txt文件。

         -thresh <val>: 修改阈值,物体置信度超出此阈值时才会被框出。

         如:darknet.exe detector test data/obj.data yolo-obj.cfg backup/yolo-obj_2300.weights -dont_show -ext_output < data/valid.txt > result.txt
        # 将预测结果写入txt文件,不显示中间过程,可以使用这个命令来输出并存储测试的坐标。
        # backup/yolo-obj_2300.weights:使用的模型相对于darknet.exe的路径。
        # < data/valid.txt >:存储测试集路径的文件相对于darknet.exe的路径。
        #  result.txt:输出结果的存储路径。
        

2.5 修改源代码来附加更多的功能

         示例:修改image.c让图片上显示置信度,修改后重新生成darknet.exe即可。

          

    // 显示的图片上添加置信度
    char buff[5];
    _gcvt((selected_detections[i].det.prob[selected_detections[i].best_class] * 100), 5, buff);
    char prob[] = "prob: ";
    strcat(prob, buff);
    image prob_label = get_label_v3(alphabet, prob, (im.h*.03));
    draw_label(im, top + width - 25, left, prob_label, rgb);

         左侧为修改前,右侧为修改后。

        


### YOLOv3应用场景 YOLOv3 是一种实时目标检测算法,在多个领域具有广泛的应用价值。它能够快速识别图像中的物体并标注其位置,适用于需要高效处理大量数据的任务[^1]。 #### 工业自动化 在工业生产线上,YOLOv3 可用于产品缺陷检测、质量控制以及物品分类等任务。通过训练模型来识别特定类型的瑕疵或零件,可以显著提高生产线效率和产品质量[^2]。 #### 自动驾驶汽车 自动驾驶技术依赖于精确的目标检测能力以确保安全行驶。YOLOv3 能够帮助车辆感知周围环境,比如行人、其他车辆、交通标志及信号灯的位置信息,从而做出及时反应决策[^3]。 #### 安防监控系统 安防行业利用 YOLOv3 实现视频流分析功能,如入侵报警、人群密度统计、异常行为监测等功能。该算法能够在低延迟条件下完成多目标跟踪操作,满足实际应用需求[^4]。 --- ### YOLOv3 的实现方式 YOLOv3 使用卷积神经网络 (CNN) 构建了一个端到端的学习框架来进行对象定位与类别预测工作。以下是其实现的关键部分: #### 多尺度特征提取 为了更好地捕捉不同大小的对象,YOLOv3 引入了 Darknet-53 作为骨干网络结构,并采用路径聚合网络(PANet)机制融合高低层特征图,增强了小尺寸物体的检测效果[^5]。 #### 锚框设计优化 相比前代版本,YOLOv3 增加了更多的锚定框(anchor box),这些预定义形状有助于提升边界框回归精度。同时引入 K-means 方法计算最佳初始 anchor 尺寸分布参数设置方案[^6]。 #### 类别无关置信度评分 不同于传统 R-CNN 系列方法先生成候选区域再判断类别的两阶段流程,YOLOv3 提出了单次推理架构(single-shot detection architecture),即直接输出每个网格单元格内的所有可能目标及其对应概率值列表[^7]。 ```python import torch from torchvision import models, transforms from PIL import Image # 加载预训练权重文件 model = torch.hub.load(&#39;ultralytics/yolov3&#39;, &#39;yolov3&#39;) def detect_objects(image_path): img = Image.open(image_path) results = model(img) # 显示结果 results.print() results.show() detect_objects("example.jpg") ``` 上述代码片段展示了如何基于 PyTorch 和 Ultralytics 库加载 YOLOv3 模型并对图片执行目标检测任务[^8]。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值