Detectron2安装测试

2023-10-20 11:50
文章标签 安装 测试 detectron2

本文主要是介绍Detectron2安装测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Detectron2安装测试

Detectron2是FAIR开源的基于Pytorch1.3.1的目标检测算法实现.

Detectron2-github

1.Detectron2安装

1.1 安装配置基本环境

可参考项目中的Installtion

  • conda create -n detectron2 python=3.7
  • conda activate detectron2
  • PyTorch 1.3
  • torchvision版本需要和pytorch的版本相适应,可参考 pytorch.org 安装。conda install pytorch torchvision cudatoolkit=10.1 -c pytorch
  • OpenCV, Demo和显示时需要使用, pip install opencv-python
  • fvcore: pip install 'git+https://github.com/facebookresearch/fvcore'
  • pycocotools: pip install cython; pip install 'git+https://github.com/cocodataset/cocoapi.git#subdirectory=PythonAPI'
  • GCC >= 4.9

注意:conda安装添加清华源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --set show_channel_urls yes

1.2 检测coda是否正确安装

运行如下代码,检查cuda安装是否正确

python -c 'import torch; from torch.utils.cpp_extension import CUDA_HOME; print(torch.cuda.is_available(), CUDA_HOME)'

输出:true /usr/local/cuda,我用的是 cuda10.1

如不是上述输出结果,查看.bashrc环境变量设置是否正确,如下设置:

# vim ~/.bashrc
export CUDA_HOME=/usr/local/cuda
export PATH=$PATH:/usr/local/cuda/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/lib
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/cuda/lib64

source .bashrc 使设置的环境变量生效

1.3 detectron2 安装:

git clone https://github.com/facebookresearch/detectron2.git
cd detectron2
python setup.py build develop

2.Detectron2测试

2.1 目标检测

模型提前下载好,存在目录下

python demo/demo.py  \--config-file /home/**/project/detectron2/configs/COCO-Detection/faster_rcnn_R_50_FPN_3x.yaml \--input ceshi/test.jpg --output outputs/ \--opts MODEL.WEIGHTS '/home/**/project/detectron2/pre_train_model/COCO-Detection/faster_rcnn_R_50_FPN_1x/137257794/model_final_b275ba.pkl'

在这里插入图片描述在CPU环境下配置好环境也可以进行测试,可参考Detectron2在CPU上执行出现“ Torch not compiled with CUDA enabled”的错误

2.2 实例分割

eg1:

python demo/demo.py  \--config-file /home/**/project/detectron2/configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml \--input ceshi/test.jpg --output outputs/ \--opts MODEL.WEIGHTS '/home/**/project/detectron2/pre_train_model/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl'

在这里插入图片描述

eg2:

import numpy as np
import cv2 as cv
from PIL import Image
#from matplotlib import pyplot
import matplotlib.pyplot as plt
import random
#from google.colab.patches import cv2_imshowimport detectron2
from detectron2.utils.logger import setup_logger
setup_logger()from detectron2.engine import DefaultPredictor
from detectron2.config import get_cfg
from detectron2.utils.visualizer import Visualizer
from detectron2.data import MetadataCatalog
#下载图片
#wget http://images.cocodataset.org/val2017/000000439715.jpg -O input.jpg
im = cv.imread("/home/**/project/detectron2/ceshi/input.jpg")cfg = get_cfg()
cfg.merge_from_file("/home/**/project/detectron2/configs/COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x.yaml")
cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5  #模型阈值
#cfg.MODEL.WEIGHTS = "./COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl"
cfg.MODEL.WEIGHTS = "/home/**/project/detectron2/pre_train_model/model_final_f10217.pkl"
predictor = DefaultPredictor(cfg)
outputs = predictor(im)pred_classes = outputs["instances"].pred_classes
pred_boxes = outputs["instances"].pred_boxes#在原图上画出检测结果
v = Visualizer(im[:, :, ::-1], MetadataCatalog.get(cfg.DATASETS.TRAIN[0]), scale=1.2)
v = v.draw_instance_predictions(outputs["instances"].to("cpu"))
plt.figure(2)
plt.imshow(v.get_image())
plt.show()

在这里插入图片描述
2.3 关键点检测

eg1:

python demo/demo.py  \--config-file /home/**/project/detectron2/configs/COCO-Keypoints/keypoint_rcnn_R_50_FPN_3x.yaml \--input ceshi/test.jpg ceshi/test1.jpg ceshi/test2.jpg --output outputs/ \--opts MODEL.WEIGHTS '/home/**/project/detectron2/pre_train_model/COCO-Keypoints/keypoint_rcnn_R_50_FPN_3x/137849621/model_final_a6e10b.pkl'

在这里插入图片描述

eg2:

import numpy as np
import cv2 as cv
from PIL import Image
#from matplotlib import pyplot
import matplotlib.pyplot as plt
import random
#from google.colab.patches import cv2_imshowimport detectron2
from detectron2.utils.logger import setup_logger
setup_logger()from detectron2.engine import DefaultPredictor
from detectron2.config import get_cfg
from detectron2.utils.visualizer import Visualizer
from detectron2.data import MetadataCatalogim = cv.imread("/home/**/project/detectron2/ceshi/input.jpg")cfg = get_cfg()
cfg.merge_from_file("/home/**/project/detectron2/configs/COCO-Keypoints/keypoint_rcnn_R_50_FPN_3x.yaml")
cfg.MODEL.ROI_HEADS.SCORE_THRESH_TEST = 0.5  #模型阈值
#cfg.MODEL.WEIGHTS = "./COCO-InstanceSegmentation/mask_rcnn_R_50_FPN_3x/137849600/model_final_f10217.pkl"
cfg.MODEL.WEIGHTS = "/home/**/project/detectron2/pre_train_model/COCO-Keypoints/keypoint_rcnn_R_50_FPN_3x/137849621/model_final_a6e10b.pkl"
predictor = DefaultPredictor(cfg)
outputs = predictor(im)pred_classes = outputs["instances"].pred_classes
pred_boxes = outputs["instances"].pred_boxes#在原图上画出检测结果
v = Visualizer(im[:, :, ::-1], MetadataCatalog.get(cfg.DATASETS.TRAIN[0]), scale=1.2)
v = v.draw_instance_predictions(outputs["instances"].to("cpu"))
plt.figure(2)
#plt.imshow(v.get_image()[:, :, ::-1])
plt.imshow(v.get_image())
plt.show()

在这里插入图片描述

2.4 全景分割

eg1:

python demo/demo.py  \--config-file /home/**/project/detectron2/configs/COCO-PanopticSegmentation/panoptic_fpn_R_101_3x.yaml \--input ceshi/test.jpg ceshi/test1.jpg ceshi/test2.jpg --output outputs/ \--opts MODEL.WEIGHTS '/home/**/project/detectron2/pre_train_model/COCO-PanopticSegmentation/panoptic_fpn_R_101_3x/139514519/model_final_cafdb1.pkl'

在这里插入图片描述

eg2:

import numpy as np
import cv2 as cv
from PIL import Image
#from matplotlib import pyplot
import matplotlib.pyplot as plt
import random
#from google.colab.patches import cv2_imshowimport detectron2
from detectron2.utils.logger import setup_logger
setup_logger()from detectron2.engine import DefaultPredictor
from detectron2.config import get_cfg
from detectron2.utils.visualizer import Visualizer
from detectron2.data import MetadataCatalogim = cv.imread("/home/**/project/detectron2/ceshi/input.jpg")cfg = get_cfg()
cfg.merge_from_file("/home/**/project/detectron2/configs/COCO-PanopticSegmentation/panoptic_fpn_R_101_3x.yaml")
cfg.MODEL.WEIGHTS = "/home/**/project/detectron2/pre_train_model/COCO-PanopticSegmentation/panoptic_fpn_R_101_3x/139514519/model_final_cafdb1.pkl"
predictor = DefaultPredictor(cfg)
panoptic_seg, segments_info = predictor(im)["panoptic_seg"]
v = Visualizer(im[:, :, ::-1], MetadataCatalog.get(cfg.DATASETS.TRAIN[0]), scale=1.2)
v = v.draw_panoptic_seg_predictions(panoptic_seg.to("cpu"), segments_info)
plt.imshow(v.get_image())
plt.show()

在这里插入图片描述

3.感谢

  1. https://github.com/facebookresearch/detectron2/blob/master/INSTALL.md

  2. https://www.aiuai.cn/aifarm1288.html#1.detectron2%E5%AE%89%E8%A3%85

如有错误,请指教。

这篇关于Detectron2安装测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/246922

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

Centos7安装Mongodb4

1、下载源码包 curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.1.tgz 2、解压 放到 /usr/local/ 目录下 tar -zxvf mongodb-linux-x86_64-rhel70-4.2.1.tgzmv mongodb-linux-x86_64-rhel70-4.2.1/

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

字节面试 | 如何测试RocketMQ、RocketMQ?

字节面试:RocketMQ是怎么测试的呢? 答: 首先保证消息的消费正确、设计逆向用例,在验证消息内容为空等情况时的消费正确性; 推送大批量MQ,通过Admin控制台查看MQ消费的情况,是否出现消费假死、TPS是否正常等等问题。(上述都是临场发挥,但是RocketMQ真正的测试点,还真的需要探讨) 01 先了解RocketMQ 作为测试也是要简单了解RocketMQ。简单来说,就是一个分

Centos7安装JDK1.8保姆版

工欲善其事,必先利其器。这句话同样适用于学习Java编程。在开始Java的学习旅程之前,我们必须首先配置好适合的开发环境。 通过事先准备好这些工具和配置,我们可以避免在学习过程中遇到因环境问题导致的代码异常或错误。一个稳定、高效的开发环境能够让我们更加专注于代码的学习和编写,提升学习效率,减少不必要的困扰和挫折感。因此,在学习Java之初,投入一些时间和精力来配置好开发环境是非常值得的。这将为我

【测试】输入正确用户名和密码,点击登录没有响应的可能性原因

目录 一、前端问题 1. 界面交互问题 2. 输入数据校验问题 二、网络问题 1. 网络连接中断 2. 代理设置问题 三、后端问题 1. 服务器故障 2. 数据库问题 3. 权限问题: 四、其他问题 1. 缓存问题 2. 第三方服务问题 3. 配置问题 一、前端问题 1. 界面交互问题 登录按钮的点击事件未正确绑定,导致点击后无法触发登录操作。 页面可能存在

安装nodejs环境

本文介绍了如何通过nvm(NodeVersionManager)安装和管理Node.js及npm的不同版本,包括下载安装脚本、检查版本并安装特定版本的方法。 1、安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash 2、查看nvm版本 nvm --version 3、安装

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能