• Yolov7实战,实现网页端的实时目标检测


    关注并星标

    从此不迷路

    计算机视觉研究院

    cf4c5111d08d556b35ffd7348872d3a4.gif

    2319deca0f1750a88cac8cf0f9adc361.png

    计算机视觉研究院专栏

    作者:Edison_G

    今天给大家分享的是yolov7网络实践,并且可以做成web端,只要你输入图像,选择对应模型就可以输出检测结果。让我们开始代码吧!

    01

    概述

    具体内容可以参考CSDN的he_eeeeeeeeeee,进入主页既可以或更加详细的操作流程。

    源码:https://github.com/WongKinYiu/yolov7
    论文:https://arxiv.org/abs/2207.02696

    Yolov7:最新最快的实时检测框架,最详细分析解释(附源代码)

    02

    实验

    43a3081aa02fadc839cbd6b0ce3cfa9e.gif

    搭建环境,这里直接用conda按照源码requirements.txt安装就行。

    具体内容可以见下面链接:

    手把手教学Yolov7的搭建及实践

    接下来我们继续,怎么把训练好的模型部署到web端,这样后期就可以随时可以检测图像。

    首先跟推理一样:

    1. parser = argparse.ArgumentParser()
    2. parser.add_argument('--weights', nargs='+'type=str, default=model+".pt", help='model.pt path(s)') parser.add_argument('--source'type=str, default='Inference/', help='source') # file/folder, 0 for webcam parser.add_argument('--img-size'type=int, default=640, help='inference size (pixels)') parser.add_argument('--conf-thres'type=float, default=0.25, help='object confidence threshold') parser.add_argument('--iou-thres'type=float, default=0.45, help='IOU threshold for NMS') parser.add_argument('--device'default='', help='cuda device, i.e. 0 or 0,1,2,3 or cpu') parser.add_argument('--view-img', action='store_true', help='display results'
    3. parser.add_argument('--save-txt', action='store_true', help='save results to *.txt'
    4. parser.add_argument('--save-conf', action='store_true', help='save confidences in --save-txt labels') parser.add_argument('--nosave', action='store_true', help='do not save images/videos') parser.add_argument('--classes', nargs='+'type=int, help='filter by class: --class 0, or --class 0 2 3') parser.add_argument('--agnostic-nms', action='store_true', help='class-agnostic NMS') parser.add_argument('--augment', action='store_true', help='augmented inference'
    5. parser.add_argument('--update', action='store_true', help='update all models'
    6. parser.add_argument('--project'default='runs/detect', help='save results to project/name') parser.add_argument('--name'default='exp', help='save results to project/name'
    7. parser.add_argument('--exist-ok', action='store_true', help='existing project/name ok, do not increment') parser.add_argument('--trace', action='store_true', help='trace model'
    8. opt = parser.parse_args()

    然后在代码开始增加训练模型pth的位置及一些依赖:

    1. import gradio as gr
    2. import os
    3. os.system("wget https://github.com/***/yolov7.pt")
    4. os.system("wget https://github.com/***/yolov7-e6e.pt")
    5. os.system("wget https://github.com/***/yolov7-e6.pt"
    6. import argparse
    7. import time
    8. from pathlib import Path 
    9. import cv2
    10. import torch
    11. import torch.backends.cudnn as cudnn
    12. ...

    接下来就是初始化、读取模型、读取数据、推理。

    具体代码我这边会分享在知识星球。

    © THE END 

    转载请联系本公众号获得授权

    dbf5cca57bd2b579aa6bb6ee7fee4c4c.gif

    计算机视觉研究院学习群等你加入!

    ABOUT

    计算机视觉研究院

    计算机视觉研究院主要涉及深度学习领域,主要致力于人脸检测、人脸识别,多目标检测、目标跟踪、图像分割等研究方向。研究院接下来会不断分享最新的论文算法新框架,我们这次改革不同点就是,我们要着重”研究“。之后我们会针对相应领域分享实践过程,让大家真正体会摆脱理论的真实场景,培养爱动手编程爱动脑思考的习惯!

    VX:2311123606

    c90f4b6599ac3f9cbefe7b4d89310ff4.jpeg

  • 相关阅读:
    vue3响应式
    linux系统下如何获取文件的创建时间
    速看,ElasticSearch如何处理空值
    Jackson @JsonProperty重复字段处理
    [轻松学会shell编程]-5、计划任务
    vue组件的生命周期详细到胃
    【视觉高级篇】18 # 如何生成简单动画让图形动起来?
    div内文字水平居中+垂直居中
    react(任意组件之间传值--消息订阅与发布、路由)
    阶段总结与展望——我的简历
  • 原文地址:https://blog.csdn.net/gzq0723/article/details/126066304