【机器学习系列】M3DM工业缺陷检测部署与训练

一.基础资料

1.Git 地址

地址

2.issues

issues

3.参考

参考 csdn

二.服务器信息

1.GPU 服务器

  • GPU 服务器自带 CUDA 安装(前提是需要勾选上)
  • CUDA 需要选择大于 11.3 的版本
  • 登录服务器后会自动安装 GPU 驱动

2.CUDA 安装

GPU 服务器自带 CUDA

CUDA 版本查看

image-20240303211645896

3.登录信息

删除指定主机的秘钥:

ssh-keygen -R 47.107.139.237

ssh-keygen -R 47.107.139.237 的作用是从 known_hosts 文件中删除指定主机的密钥。known_hosts 文件是 SSH 用来存储已知主机的公钥的文件。通常情况下,当你首次连接到一个主机时,SSH 会将该主机的公钥添加到 known_hosts 文件中,以后的连接中会验证主机的公钥是否匹配,以确保连接的安全性。使用 -R 选项可以从该文件中删除指定主机的条目,这在你知道主机的密钥可能已经发生变化或需要清理旧密钥时很有用。

登录信息:

#
sshpass -p xxxxx ssh -A -g root@47.107.139.237# 给豪哥的
47.107.139.237
root
xxxxx

4.查询系统信息

[root@lavm-ikopaz5aoj ~]# uname -a
Linux lavm-ikopaz5aoj 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
[root@lavm-ikopaz5aoj ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@lavm-ikopaz5aoj ~]#

三.基础环境

1.安装 git

sudo apt update
sudo apt install git
git --version

2.环境准备

Ubuntu 18.04
Python 3.8
Pytorch 1.9.0
CUDA 11.3

3.安装 conda

mkdir -p ~/miniconda3
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O ~/miniconda3/miniconda.sh
bash ~/miniconda3/miniconda.sh -b -u -p ~/miniconda3
rm -rf ~/miniconda3/miniconda.sh
~/miniconda3/bin/conda init bash
~/miniconda3/bin/conda init zsh
vim ~/.bashrc
export PATH=$PATH:~/miniconda3/bin
source ~/.bashrc

4.Python 安装

建议用 conda 安装 python

# 创建虚拟环境
conda create -n m3dm python=3.8# 进入虚拟环境
conda activate m3dm

5.Pytorch 安装

# torch版本---github要求的
pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
# 指定cuda==11.3时,pytorch的版本pytorch==1.12.1
pip install torch==1.12.0+cu113 torchvision==0.13.0+cu113 torchaudio==0.12.0 -f https://download.pytorch.org/whl/torch_stable.html

版本对应关系:

版本关系

当已经装好torch包时,pip install torchvision torchaudio会自动寻找对应的版本安装。

6.网络测试

# 会用到的网站
https://huggingface.co/# 检查是否可以访问
curl https://huggingface.co/telnet huggingface.co 443
(m3dm) root@iZwz9c1tow6mi9lnah1hrtZ:/kwan/M3DM# telnet huggingface.co 443
Trying 162.125.7.1...
Connected to huggingface.co.
Escape character is '^]'.
Connection closed by foreign host.

四.执行步骤

1.创建目录

mkdir /kwan
cd /kwan
mkdir software

2.代码

git clone https://github.com/nomewang/M3DM.git

3.requirements

cd  M3DM
pip install -r requirements.txt

4.安装其他依赖

pip install ninja
pip install open3d

5.knn_cuda

# install knn_cuda
pip install --upgrade https://github.com/unlimblue/KNN_CUDA/releases/download/0.2/KNN_CUDA-0.2-py3-none-any.whl

6.pointnet2_ops_lib

# install pointnet2_ops_lib
pip install "git+http://github.com/erikwijmans/Pointnet2_PyTorch.git#egg=pointnet2_ops&subdirectory=pointnet2_ops_lib"

7.上传数据集

cd /kwan/M3DM
mkdir -p datasets/mvtec3dscp  /Users/qinyingjie/Downloads/000-训练/dowel.tar.xz root@47.107.139.237:/kwan/M3DM/datasets/mvtec3d

8.预处理

#进入目录
cd /kwan/M3DM#解压
cd /kwan/M3DM/datasets/mvtec3d
tar -xvf dowel.tar.xz#数据集预处理
cd /kwan/M3DM
python utils/preprocessing.py datasets/mvtec3d/

9.权重处理

# 下载权重放入文件夹 /checkpoints
cd /kwan/M3DM
mkdir checkpointsscp  /Users/qinyingjie/Downloads/001-资源/B_8-i21k-300ep-lr_0.001-aug_medium1-wd_0.1-do_0.0-sd_0.0--imagenet2012-steps_20k-lr_0.01-res_224.npz root@47.107.139.237:/kwan/M3DM/checkpointsscp  /Users/qinyingjie/Downloads/001-资源/B_8-i21k-300ep-lr_0.001-aug_medium1-wd_0.1-do_0.0-sd_0.0.npz root@47.107.139.237:/kwan/M3DM/checkpointsscp  /Users/qinyingjie/Downloads/001-资源/dino_deitsmall8_pretrain.pth.zip root@47.107.139.237:/kwan/M3DM/checkpointsscp  /Users/qinyingjie/Downloads/001-资源/dino_vitbase8_pretrain.pth root@47.107.139.237:/kwan/M3DM/checkpointsscp  /Users/qinyingjie/Downloads/001-资源/Point-BERT.pth root@47.107.139.237:/kwan/M3DM/checkpointsscp  /Users/qinyingjie/Downloads/001-资源/pointmae_pretrain.pth root@47.107.139.237:/kwan/M3DM/checkpointsscp  /Users/qinyingjie/Downloads/001-资源/uff_pretrain.pth root@47.107.139.237:/kwan/M3DM/checkpoints

10.训练

mkdir -p datasets/patch_lib#开始训练
python3 main.py \
--method_name DINO+Point_MAE \
--memory_bank multiple \
--rgb_backbone_name vit_base_patch8_224_dino \
--xyz_backbone_name Point_MAE \
--save_feature

问题1:

# AttributeError: module 'torch' has no attribute 'frombuffer'
# 升级torch版本
pip install torch==2.0.0+cu117 torchvision==0.15.1+cu117 torchaudio==2.0.1 -f https://download.pytorch.org/whl/torch_stable.html

问题2:

RuntimeError: torch.cat(): expected a non-empty list of Tensors

image-20240304101553703

五.数据集

1.数据集下载

  • The MVTec-3D AD dataset can be download from the Official Website of MVTec-3D AD.
  • 下载地址
  • The Eyecandies dataset can be download from the Official Website of Eyecandies.

After download, put the dataset in dataset folder.

2.数据准备

To run the preprocessing

python utils/preprocessing.py datasets/mvtec3d/

It may take a few hours to run the preprocessing.

六.Checkpoints 与训练

1.Checkpoints

The following table lists the pretrain model used in M3DM:

BackbonePretrain Method
Point TransformerPoint-MAE
Point TransformerPoint-Bert
ViT-b/8DINO
ViT-b/8Supervised ImageNet 1K
ViT-b/8Supervised ImageNet 21K
ViT-s/8DINO
UFFUFF Module

Put the checkpoint files in checkpoints folder.

2.训练

Train and test the double lib version and save the feature for UFF training:

mkdir -p datasets/patch_lib
python3 main.py \
--method_name DINO+Point_MAE \
--memory_bank multiple \
--rgb_backbone_name vit_base_patch8_224_dino \
--xyz_backbone_name Point_MAE \
--save_feature \

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

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

相关文章

小红书图片怎么提取?小红书图片提取原图方法!

说到小红书,不少女性群体都知道这个,他的价值很高而且变现对于大多数做自媒体的小伙伴来说,也是不错的选择! 小红书对于普通大众还是互联网创作者来说,都太实用了,唯一的缺点可能就是当我们需要存储他的图…

2.VDMA视频流显示通路搭建

1.简介 本节主要讲解如何基于ZYNQ7020搭建一个视频流接收以及显示的数据通路。为后续的算法图像验证提供基础。 2.项目框架 整个项目简略框架如图,img_gen负责产生图像像素点,给到video in to AXI_Stream模块后转化为AXI_Stream数据流给到VDMA&#xff…

STM32---SG90舵机控制(HAL库,含源码)

写在前面:在嵌入式的项目中,舵机是一个十分常见的元器件模块,其主要的功能是实现机械转动,实质上舵机是一个伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。例如在机器人的电控制器系统中,…

用户数据的FLASH存储与应用(FPGA架构)

该系列为神经网络硬件加速器应用中涉及的模块接口部分,随手记录,以免时间久了遗忘。 一 背景 我们知道,在FPGA做神经网络应用加速时,涉及到权重参数的存储和加载。通常在推理过程中,会将权重参数存储在外部DDR或片上S…

c++简单实现avl树

文章目录 AVL树节点类节点类的构造函数 AVLinsert()插入RotateL(左单旋)RotateR(右单旋)RotateLR(右双旋)RotateRL(左双旋) Find(查找)IsBalance(检查是否是avl树) AVL树 AVL树:又名高度平衡树,在二叉搜索树的基础上加上了一个条件,条件是左右子树高度差…

vulhub中GitLab 远程命令执行漏洞复现(CVE-2021-22205)

GitLab是一款Ruby开发的Git项目管理平台。在11.9以后的GitLab中,因为使用了图片处理工具ExifTool而受到漏洞CVE-2021-22204的影响,攻击者可以通过一个未授权的接口上传一张恶意构造的图片,进而在GitLab服务器上执行任意命令。 环境启动后&am…

FFmpeg查看所有支持的编码/解码器/封装/解封装/媒体格式/滤镜

查看所有支持的编码器与解码器 ffmpeg -codecs 只查看所有编码器: ffmpeg -encoders 只查看所有解码器: ffmpeg -decoders 只查看H264编码器: ffmpeg -h encoderh264 只查看H264解码器: ffmpeg -h decoderh264 查看所有支持的封装: ffmpeg -muxers 查看所有支持的解封装…

【开源鸿蒙】为QEMU RISC-V虚拟平台构建OpenHarmony轻量系统

文章目录 一、背景介绍二、准备OpenHarmony源代码三、准备hb命令3.1 安装hb命令3.2 检查hb命令 四、编译RISC-V架构的OpenHarmony轻量系统4.1 设置hb构建目标4.2 启动hb构建过程 五、问题解决5.1 hb set 报错问题解决 六、参考链接 开源鸿蒙坚果派,学习鸿蒙一起来&a…

【每日算法】常见AIGC模型; 刷题:力扣单调栈

上期文章 【每日算法】理论:生成模型基础; 刷题:力扣单调栈 文章目录 上期文章一、上期问题二、理论问题1、stable diffusion模型的网络架构2、T5的网络架构(Text-To-Text Transfer Transformer模型)3、SDXL模型4、DA…

Git全套教程一套精通git.跟学黑马笔记

Git全套教程一套精通git.跟学黑马笔记 文章目录 Git全套教程一套精通git.跟学黑马笔记1.版本管理工具概念2. 版本管理工具介绍2.1版本管理发展简史(维基百科)2.1.1 SVN(SubVersion)2.1.2 Git 3. Git 发展简史4. Git 的安装4.1 git 的下载4.2 安装4.3 基本配置4.4 为常用指令配置…

【jeecgboot】微服务实战LISM

目录 一、服务解决方案-Spring Cloud Alibaba1.1选用原因(基于Spring Cloud Alibaba的试用场景)1.2 核心组件使用前期规划 部署 nacos部署 mino使用JavaFreemarker模板引擎,根据XML模板文件生成Word文档使用JavaFlowable 工作流引擎前端 -vue…

【C++中日期类的实现】

一路,一路,一路从泥泞到风景............................................................................................... 目录 前言 一、【什么是日期类】 二、【代码实现】 1.【Date.h】部分: 2.【Date.cpp】部分:…

通用的springboot web jar包执行脚本,释放端口并执行jar包

1、通用的springboot web jar包执行脚本,释放端口并执行jar包: #!/bin/bash set -eDATE$(date %Y%m%d%H%M) # 基础路径 BASE_PATH/data/yitu-projects/yitu-xzhq/sftp # 服务名称。同时约定部署服务的 jar 包名字也为它。 SERVER_NAMEyitu-server # 环境…

大模型语言系列-Agent

文章目录 前言一、Agent是什么?二、LLM Agent1.西部世界小镇Agent2.BabyAGI3.AutoGPT4.Voyager Agent 总结 前言 自2022年ChatGPT诞生以来,LLM获得了收获了大量关注和研究,但究其根本,技术还是要为应用服务,如何将LLM…

探索编程新纪元:Code GeeX、Copilot与通义灵码的智能辅助之旅

在人工智能技术日新月异的今天,编程领域的革新也正以前所未有的速度推进。新一代的编程辅助工具,如Code GeeX、Copilot和通义灵码,正在重塑开发者的工作流程,提升编程效率,并推动编程教育的普及。本文将深入探讨这三款…

Docker 镜像源配置

目录 一、 Docker 镜像源1.1 加速域名1.2 阿里云镜像源(推荐) 二、Docker 镜像源配置2.1 修改配置文件2.1.1 Docker Desktop 配置2.1.2 命令行配置 2.2 重启 Docker 服务2.2.1 Docker Desktop 重启2.2.2 命令行重启 2.3 检查是否配置成功 参考资料 一、 …

SpringCloudAlibaba系列之Seata实战

目录 环境准备 1.下载seata安装包 2.修改配置文件 3.准备seata所需配置文件 4.初始化seata所需数据库 5.运行seata 服务准备 分布式事务测试 环境准备 1.下载seata安装包 Seata-Server下载 | Apache Seata 本地环境我们选择稳定版的二进制下载。 下载之后解压到指定目录…

网络分层架构(七/四层协议)详解

OSI七层模型和TCP/IP四层模型 业内普遍的分层方式有两种:OSI七层模型 和TCP/IP四层模型。记忆则为 “应表会传网数物” 关于协议: ① OSI七层模型详解 结构名 功能 主要设备 应用层 是最靠近用户的OSI层。用户接口、应用程序。应用层向应用进程展示…

详解MySql索引

目录 一 、概念 二、使用场景 三、索引使用 四、索引存在问题 五、命中索引问题 六、索引执行原理 一 、概念 索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。暂时可以理解成C语言的指针,文章后面详解 二、使用场景 数据量较大,且…

P1881 绳子对折

题目描述 FJ 有一个长度为 L(1≤L≤10,000)的绳子。这个绳子上有 N(1≤N≤100)个结,包括两个端点。FJ 想将绳子对折,并使较短一边的绳子上的结与较长一边绳子上的结完全重合,如图所示&#xff…