NanoDet安装教程

news2024/11/6 3:10:24

目录

1.安装NanoDet

1.1官网下载NanoDet

1.2 创建虚拟conda环境

1.3安装Pytorch库

2.侦测

3.训练

3.1yml文件修改

3.训练

3.1yml文件修改


轻量级模型 NanoDet-m
目标检测框架: YOLO SSD Fast R-CNN 等模型 ;但模型太大,不适合移植到移动端或嵌入式设备,
所以需要 轻量级模型 NanoDet-m ,对单阶段检测模型三大模块 (Head Neck Backbone) 进行轻量
化,目标加检测速度很快 ; 模型文件大小仅几兆 ( 小于 4M)
NanoDet-Plus NanoDet 的升级。
DBFace-Loss:DBFace 是用于人脸检测的轻量级网络,可部署于移动端实时运行。
骨干网络为 CenterNet 囚,对比 yolo faster_rcnn 等目标检测网络, CenterNet 具有结构简单优雅,构
建简单,数据处理简单,直接检测目标的中心及方框位置的特点。可以说,它放弃了之前一直被使用
AnchorBox ,直接输出预测框的坐标,而不需通过 Anchorbox 进行转换。它也将输出分为多个
gridQ cell ,每个 grid cell 对应原输入图的对应像素区域。
WingLoss :解决目标大小的问题
人脸检测:检测 7 个点,框的 2 个点,五官 5 个点

1.安装NanoDet

RangiLyu/nanodet: NanoDet-Plus Super fast and lightweight anchor-free object detection
model. 🔥 Only 980 KB(int8) / 1.8MB (fp16) and run 97FPS on cellphone 🔥 (github.com)

1.1官网下载NanoDet

1.2 创建虚拟conda环境

conda create -n nanodet python=3.8 -y
# FinalShell 创建环境后需要
conda init 再断开连接,重新连接 , 再激活环境
conda activate nanodet

1.3安装Pytorch

Pytorch >=1.10.0 , <2.0.0
pytoch 官网取下载 Pytorch1.13.1 cuda11.7 版本
Previous PyTorch Versions | PyTorch
conda create -n nanodet python=3.8 -y
# FinalShell 创建环境后需要
conda init 再断开连接,重新连接 , 再激活环境
conda activate nanodet
# CUDA 11.7
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu117
#Liunx
conda install pytorch==1.7.0 torchvision==0.8.0 torchaudio==0.7.0 cudatoolkit=10.1 -c pytorch

2.侦测

python demo/demo.py image --config config/nanodet-plus-m-1.5x_320.yml --model
weight/nanodet-plus-m-1.5x_320.pth --path demo_mnn/imgs/000252.jpg --save_result
侦测成功,代表环境配置 ok

3.训练

3.1yml文件修改

参考
# 后续操作
3.Clone this repository
git clone https://github.com/RangiLyu/nanodet.git
cd nanodet
4.Install requirements
pip install -r requirements.txt
5.Setup NanoDet
python setup.py develop
# 下载失败可能是网络问题, 更换镜像源
-i https://pypi.tuna.tsinghua.edu.cn/simple

3.训练

3.1yml文件修改

参考

 

 

 

 

 

 

 

 
3.2 在终端进行训练
python tools/train.py config/my_nanodet-plus-m-1.5x_320.yml
# Liunx 上离线训练
nohup python train.py
1. 在后台跑
nohup train.py &
2. 显示日志
tail -n 100 -f nohup.out
3. 查看进程
ps -aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
用户 进程 ID cpu 占用率 内存占用率 虚拟内存 物理内存 tty ……
干掉进程

 

在服务器上
问题 1
解决办法:
S2: 安装 opencv-python-headless

 

apt-get update && apt-get install -y opencv-python-headless
pip install opencv-python-headless
S3: 仅安装依赖项 (libgl1)
以上所有解决方案都将安装 cv2 依赖项,从而增加图像大小。
如果您不想增加图像大小,则可以通过安装 libgl1 依赖项来解决问题,如下所示。这不是推荐的解决方
案,但如果您只是获得 Importerror: libgl.so.1
apt-get update && apt-get install libgl1

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

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

相关文章

HTTP状态码全解

文章目录 常见状态码1XX Informational&#xff08;请求正在处理&#xff09;2XX Success&#xff08;请求成功&#xff09;3XX Redirection&#xff08;重定向&#xff09;4XX Client Error&#xff08;客户端错误&#xff09;5XX Server Error&#xff08;服务器错误&#xf…

ros2安装完成后重要的一步

安装完成ros2之后&#xff0c;每次打开新的终端都需要 source /opt/ros/humble/setup.bash 为了解决这个为题&#xff0c;我们需要做如下操作,避免每次打开一个新的在终端都要设置。 在文件的最后一行添加 source /opt/ros/foxy/setup.bash

浸没式密封连接器

在当今科技快速发展的背景下&#xff0c;电子设备的整合度与性能需求持续提高&#xff0c;而连接技术作为电子设备间交互的关键&#xff0c;其重要性显而易见。在各式各样的连接技术当中&#xff0c;浸没式密封连接器凭借其独到设计和高超性能&#xff0c;在特定使用环境中显示…

学习经验分享【38】YOLOv11解读——最新YOLO版本

YOLO算法更新速度很快&#xff0c;已经出到V11版本&#xff0c;后续大家有想发论文或者搞项目可更新自己的baseline了。后续将改进YOLOv11算法&#xff0c;有需要的朋友可关注&#xff0c;我会持续进行更新。 YOLO11是Ultralytics YOLO系列实时目标检测器的最新迭代版本&#x…

《Linux从小白到高手》理论篇(七):Linux的时间管理运行级别启动过程原理详解

List item 本篇将介绍Linux的时间管理&运行级别相关知识&#xff0c;并将深入介绍Linux的启动过程及原理。 Linux的时间管理 Linux 时钟分为系统时钟&#xff08;System Clock&#xff09;和硬件&#xff08;Real Time Clock&#xff0c;简称 RTC&#xff09;时钟。系统时…

STM32CubeMX创建STM32H743工程

1、下载安装STM32CubeMX STM32CubeMX是STM32Cube工具家族中的一员&#xff0c;从MCU/MPU选型&#xff0c;引脚配置&#xff0c;系统时钟以及外设时钟设置&#xff0c;到外设参数配置&#xff0c;中间件参数配置&#xff0c;它给STM32开发者们提供了一种简单&#xff0c;方便&a…

华为OD机试 - 积木最远距离(Python/JS/C/C++ 2024 E卷 100分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

[Everything] 文件搜索工具的下载及详细安装使用过程(附有下载文件)

快速搜索文件名及其所在路径 下载链接在文末 下载压缩包后解压 &#xff01;&#xff01;安装路径不要有中文 解压后得到文件 双击exe文件得到 选择简体中文&#xff0c;点击OK 点击“我接受” 更改安装目录&#xff0c;最好不要放在C盘&#xff0c;点击下一步 点击下一步 点…

使用SNAP工具处理Sentinel-1数据应注意磁盘和内存问题

近期使用SNAP处理数据比较多&#xff0c;有一些心得给大家分享一下&#xff01;在预处理Sentinel-1数据 的过程中出错基本上是有3种情况&#xff1a; 磁盘被写满 由于JAVA优化一般是通过空间换效率的方式。所以SNAP为了提高效率&#xff0c;本版本升级增加了数据本地缓存的比重…

zabbix7.0监控linux主机案例详解

前言 服务端配置 链接: rocky9.2部署zabbix服务端的详细过程 环境 主机ip应用zabbix-server192.168.10.11zabbix本体zabbix-client192.168.10.12zabbix-agent zabbix-server(服务端已配置) 具体实现过程 zabbix-client配置 安装zabbix-agent 添加扩展包 dnf -y instal…

nlp任务之预测中间词-huggingface

目录 1.加载编码器 1.1编码试算 2.加载数据集 3.数据集处理 3.1 map映射&#xff1a;只对数据集中的sentence数据进行编码 3.2用filter()过滤 单词太少的句子过滤掉 3.3截断句子 4.创建数据加载器Dataloader 5. 下游任务模型 6.测试预测代码 7.训练代码 8.保…

MKV转MP4丨FFmpeg的简单命令使用——视频格式转换

MKV是一种视频封装格式&#xff0c;很好用&#xff0c;也是OBS的默认推荐录制格式&#xff0c;因为不会突然断电关机而导致整个视频录制文件丢失。 但是MKV无法直接导入PR中剪辑&#xff0c;最直接的方法是将MKV转换为MP4格式&#xff0c;最方便且安全无损的转换方法便是用FFmp…

AD软件的分屏显示功能

1.鼠标右键点击上面的窗格&#xff0c;选择“垂直分布”&#xff0c;即可以将AD软件分屏&#xff0c;左边选择原理图&#xff0c;右边选择PCB即可以方便去设计PCB的布局。实现原理图和pcb文件的同时查看。 还可以建立起2个图之间的联动关系。 比如我们在电路图里面选择stm32 m…

Threejs中使用A*算法寻路导航

<!DOCTYPE html> <html><head><title>Threejs中使用A*算法寻路导航&#xff0c;Threejs室内室外地图导航</title><script type"text/javascript" src"libs/three.js"></script><script type"text/javas…

MySQL | union all 和union(去重和不去重)

题1&#xff1a; 现在运营想要分别查看学校为山东大学或者性别为男性的用户的device_id、gender、age和gpa数据&#xff0c;请取出相应结果&#xff0c;结果不去重。 示例&#xff1a;user_profile 根据示例&#xff0c;你的查询应返回以下结果&#xff1a; UNION&#xff08…

【C/C++】 秋招常考面试题最全总结(让你有一种相见恨晚的感觉)

目录 1.C程序编译链接过程 2.浅拷贝和move有区别吗 3.深拷贝和浅拷贝的区别 4.空类的大小 5.类的继承有几种方式&#xff0c;区别是什么&#xff1f; 六、extern 关键字的作用 七、static关键字的作用 八、指针和引用的区别 九、C内存分配方式 十、结构体对齐…

manim中的桌面设计和实现转换

在这段代码中&#xff0c;我们实现了一系列富有创意和动态效果的数学表达式展示。这种展示方式不仅能够吸引观众的注意力&#xff0c;还能有效地传达复杂的数学概念。代码主要围绕一个点 dot 展开&#xff0c;它逐步转变为不同的数学公式和符号&#xff0c;每个转变过程都伴随着…

JUC高并发编程5:多线程锁

1 锁的八个问题演示 标准访问&#xff0c;先打印短信还是邮件 class Phone{public synchronized void sendSMS() throws InterruptedException {System.out.println("----------sendSMS");}public synchronized void sendEmail(){System.out.println("-------…

AndroidStudio导入so文件

点击app 右键依次选择New-Floder-JNI Floder 创建jni目录 将需要的so文件拷贝到jni目录 在app目录下&#xff0c;build.gradle文件的android{}中添加&#xff1a; sourceSets {main{jniLibs.srcDirs [src/main/jni]}}点击一下Sync Project with Gradle Files 然后编译生成AP…