Windows 10系统下如何搭建轻量级目标检测NanoDet-plus环境?

        NanoDet与YOLO一样,都是目标检测算法中的经典之作,在NanoDet-plus发布之后,很多CVer都争先恐后地进行尝试,感受其与NanoDet的不同。以上的截图已经将NanoDet-plus的优点完全概括,这里就不再赘述。新的plus版本精度和速度都有提高(与其他轻量级模型如YOLOv5-n、YOLOX-Nano等相比)(1ms的延时换来了30%精度的提升),较为简单的训练辅助模块和易于部署的模型也得到了广大CVer的好评,不多说,我们开始尝试一下吧。下图是NanoDet-plus与其他目标检测算法的对比(来源是Github的NanoDet仓库)。

一、软硬件配置

1、软件:Windows 10专业版、Visual Studio 2019(安装CUDA时需要)、CUDA11.1、Pytorch1.8.1、Pycharm专业版、Python3.9.7。CUDA安装教程连接:目标检测第3步:如何在Windows 10系统下安装CUDA(更新时间2022.03.22)_liO_Oil的博客-CSDN博客_cuda windows

2、硬件:主要是显卡要求,N卡2060。CPU、内存等没有具体要求。

二、下载源代码

        Nanodet-plus源码下载地址:GitHub - RangiLyu/nanodet at v1.0.0-alpha-1 这里使用的是最新的V1.0.0-alpha-1版本。

三、解压并创建虚拟环境

1、解压源码压缩包并使用Pycharm创建对应的虚拟环境。

上图中创建的虚拟环境已有基础的依赖项,接下来我们使用pip命令安装其他依赖。 

2、使用“pip install -r requirements.txt”安装其他依赖项。

        打开Pycharm终端,路径前显示(venv)表明我们已进入先前创建好的虚拟环境,如果你的显示和图片中显示的不一致,那么请看这篇博文:如何设置Pycharm在打开Terminal终端时,自动进入虚拟环境?_liO_Oil的博客-CSDN博客_pycharm terminal 进入虚拟环境

接着输入pip命令:

pip install -r requirements.txt

如果觉得较慢,可以指定软件源为清华源进行下载,命令为:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

         以上的命令默认安装最新的Pytorch(CPU版),所以我们需要进行更换,换为能使用显卡且与CUDA版本相契合的Pytorch(GPU版)。Pytorch的下载地址为:PyTorch 这里我使用的是1.8.1,所以需要到先前的版本里找,下载命令为:

pip install torch==1.8.1+cu111 torchvision==0.9.1+cu111 torchaudio==0.8.1 -f https://download.pytorch.org/whl/torch_stable.html

        安装完Pytorch1.8.1的小伙伴可能会在结尾看到红色的报错,说是pytorch-lighting要求更高版本的Pytorch,这时你可以将pytorch-lighting的版本降为1.6.0的就可以了。

3、最后一步!!!

使用命令行,运行setup.py即可完成nanodet-plus的搭建。

python setup.py develop

四、运行naodet-plus检测图片

推理图片,自然需要权重文件,下载地址还是GitHub - RangiLyu/nanodet at v1.0.0-alpha-1 

        我下载的是红框圈中的权重文件,你们可试试其他的。其中的weight是推理时用到的权重文件,训练时会用到checkpoint文件,可以一起下载下来。下载好权重文件之后,在nanodet-1.0.0-alpha-1的目录下创建一个名为“weights”文件夹来存储权重文件。接下来进行图片的推理,我将YOLOv5的bus.jpg作为测试图片,复制到nanodet-1.0.0-alpha-1目录下,如下图所示。

在Pycharm里打开终端,输入如下命令进行推理:

python demo/demo.py image --config ./config/nanodet-plus-m-1.5x_416.yml --model weights/nanodet-plus-m-1.5x_416.pth --path  bus.jpg

推理图片、视频或开启摄像头推理的命令行,大家自行修改和尝试。 

 

 注意:.yml是NanoDet-plus的配置文件,.pth是权重文件,这两个文件要一一对应哦!!!下面就是检测出的结果:

五、结语

        最近Windows 11在逐步覆盖,我个人认为此款操作系统可能不如Windows 10稳定,与众多软件的兼容性较差,所以还是安装稳定的Windows 10好,除此以外,像Pytorch、CUDA、Python等,也是装较为稳定的好,没必要更新到最新版。如果在搭建环境过程中遇到难以解决的问题,欢迎大家在评论区留言,或私信我。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531038.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

本博打开方式,请详读

1、友好交流的前提是有礼貌,别直接评论遇到的问题,我最恨白嫖党!!!!!!!!!(咨询时多发几条消息,后台回复更快哦&#xff01…

C / C++ 之整体知识总结,点进来,不后悔!

文章目录1. 程序设计和C语言 算法-程序的灵魂2. 数据的表现形式3. 整型数据与字符型数据 运算符与表达式 数据的输入、输出(scanf、putchar、getchar、printf)4.1 if 与switch 语句(含举例)4.2 逻辑运算符与逻辑表达式4.3 关系运算…

C语言 表白代码(I love you!)

0-127 是 7位ASCII 码的范围,是国际标准。 至于汉字,不同的字符集用的ascii 码的范围也不一样,常用的汉字字符集有GB2312-80、GBK、Big5、unicode 等。 其中GB_2312 字符集是目前最常用的汉字编码标准,windows 95/98/2000 中使用…

Web项目:解决eclipse中jsp文件报错javax.servlet.http.HttpServlet 提示 was not found on the Java Build Path的错误

具体错误如图示如下: 具体结局方案如下: 1、右击web工程(你的项目名字)->属性或Build Path->Java Build Path->Libraries-> Add Libray…->Server Runtime ->Tomcat Server 2、切换到Java Build Path界面中的O…

Eclipse继承HttpServlet出现:HttpServlet cannot be resolved to a type的错误的解决方案

显然是Eclipse找不到相应的包,即javax.servlet 。错误如下: 解决方案如下: 1.打开tomcat所在的文件夹,然后打开apache-tomcat-8.5.43(即你的Apache版本文件),进入目录lib 2.进入后,找到并复制s…

Java全栈体系路线(总结不易,持续更新中)

文章目录Java全栈工程师<font colororange>Java基础基础语法面向对象工具类集合框架序列化反射机制注解文件处理设计模式视频教程文档教程练习题面试题GUI模块多线程模块Socket模块JDBC模块数据库操作起步JDBC执行sql数据库进阶操作JDBC进阶视频教程文档教程JVM教程基础实…

Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean 解决方案

SpringBoot启动时的异常信息 "C:\Program Files\Java\jdk1.8.0_161\bin\java" ......... com.fangxing.javalearning.annotationlearning.ComponentScanApp hello world. ____ _ __ _ _/\\ / ____ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | _…

Huffman编码的设计与实现

文章目录&#xff08;一&#xff09;设计描述&#xff08;二&#xff09;需求分析&#xff08;三&#xff09;详细设计&#xff08;四&#xff09;代码实现与测试&#xff08;五&#xff09;个人总结&#xff08;一&#xff09;设计描述 1.题目描述 设计一个利用哈夫曼算法的编…

C / C++ 经典代码和常考类型

文章目录C语言常考类型经典代码1&#xff09; 兔子问题2&#xff09; 斐波那契数列3&#xff09; 百元买百鸡4&#xff09; 实心菱形5&#xff09; 空心菱形6&#xff09; 十进制转换为二进制7&#xff09; 水仙花8&#xff09; 大数相加9&#xff09; 冒泡排序10&#xff09; …

如何在GitHub上下载开源文件

具体实现步骤 1 . 在本地安装Git,下载地址&#xff1a;点击下载 2 . 下载完成后开始安装&#xff0c;安装过程勾选下面内容&#xff1a; 1.Git Bash here2.Git GUI here 然后一直点击next&#xff0c;安装完成即可。 3 . 在打开的git窗口中输入 git init 4 . 在下载的项目的…

IDEA连接mysql报Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' 的错误

IDEA布置好项目后&#xff0c;连接Mysql&#xff0c;提示时区错误&#xff0c;解决方案如下&#xff1a; 在mysql的命令模式下&#xff0c;输入&#xff1a; set global time_zone8:00;如图所示&#xff1a;

C语言小游戏 ——推箱子

文章目录&#xff08;1&#xff09;内容描述&#xff08;2&#xff09;功能&#xff08;3&#xff09;设计目的&#xff08;4&#xff09;总体设计&#xff08;5&#xff09;明显缺点&#xff08;6&#xff09;个人总结7. 实例实例一实例二实例三实例四实例五&#xff1a;&…

Java GUI 实现登录界面

具体效果图&#xff1a; 详细代码&#xff1a; package java_gui;import java.awt.Color; import java.awt.Container; import java.awt.Cursor; import java.awt.Font; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;imp…

C语言 实现登录注册功能

文章目录加载动画实验结果图实验代码加载动画 #include<iostream> #include<windows.h> using namespace std;int main(){cout<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl<<endl;cout.widen(65);co…

Java小案例(二) 用数组实现增删查改排序

文章目录案例一案例二案例三案例四案例五案例一 Student.Java package curd;public class Student {private String stuid;private String name;private int chinese;private int math;private int english;private int avg;private int sum;public int getAvg() {return avg;…

有趣的一行代码

文章目录爱心曼德勃罗集合打印99乘法表实现快速排序禅语漫画迷宫爱心 print(\n.join([.join([(❤❤❤❤❤❤❤❤❤❤❤❤[(x-y)%12]if((x*0.05)**2(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<0 else )for x in range(-30,30)])for y in range(15,-15,-1)]))效果图&#xff1…

JDBC实现图书管理小案例

文章目录项目文件结构项目运行效果项目详细代码项目文件下载相关案例案例一案例二案例三案例四案例五案例六案例七案例八项目文件结构 项目运行效果 项目详细代码 JDBCUtils.java package jdbc;import java.sql.*; import com.mysql.jdbc.Driver;public class JDBCUtils {pri…

基于TCP原理,采用Socket通信技术,实现聊天室

文章目录案例一案例二案例三案例四案例五相关案例案例一 Client.java package SocketCode;import java.awt.Color; import java.awt.Font; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener;import java.io.*; import …

HTML+CSS+JS 实现登录注册界面

文章目录案例一 滑动样式案例二 滑动样式案例三 动态样式案例四 普通样式案例五 滑动样式案例六 普通样式具体怎么获取呢&#xff1f;案例一 滑动样式 login.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8">…

html+css 小案例(一)

文章目录点击下载index.html <!DOCTYPE html> <html lang"ch"> <head><meta charset"UTF-8"><title>Demo_Test</title><link rel"stylesheet" href"css/Dec.css"> </head> <body…