pytorch-ssd目标检测可视化检测结果(代码片段)

xiximayou xiximayou     2023-04-09     199

关键词:

制作类似pascal voc格式的目标检测数据集:https://www.cnblogs.com/xiximayou/p/12546061.html

训练自己创建的数据集:https://www.cnblogs.com/xiximayou/p/12546556.html

验证自己创建的数据集:https://www.cnblogs.com/xiximayou/p/12550471.html

测试自己创建的数据集:https://www.cnblogs.com/xiximayou/p/12550566.html

 

还是以在谷歌colab上为例:

cd /content/drive/My Drive/pytorch_ssd

导入相应的包:

import os
import sys
module_path = os.path.abspath(os.path.join(..))
if module_path not in sys.path:
    sys.path.append(module_path)

import torch
import torch.nn as nn
import torch.backends.cudnn as cudnn
from torch.autograd import Variable
import numpy as np
import cv2
if torch.cuda.is_available():
    torch.set_default_tensor_type(torch.cuda.FloatTensor)

from ssd import build_ssd

加载谷歌网盘:

from google.colab import drive
drive.mount(/content/drive)

加载模型:

net = build_ssd(test, 300, 3)    # initialize SSD
net.load_weights(weights/ssd300_MASK_5000.pth)

可视化要检测的图像:

# image = cv2.imread(‘./data/example.jpg‘, cv2.IMREAD_COLOR)  # uncomment if dataset not downloaded
%matplotlib inline
from matplotlib import pyplot as plt
from data import MASKDetection, MASK_ROOT, MASKAnnotationTransform
# here we specify year (07 or 12) and dataset (‘test‘, ‘val‘, ‘train‘) 
mask_root="/content/drive/My Drive/pytorch_ssd"
testset = MASKDetection(mask_root, "val", None, MASKAnnotationTransform())
img_id = 2
image = testset.pull_image(img_id)
rgb_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
# View the sampled input image before transform
plt.figure(figsize=(10,10))
plt.imshow(rgb_image)
plt.show()

技术图片

调整图片的格式:

x = cv2.resize(image, (300, 300)).astype(np.float32)
x -= (104.0, 117.0, 123.0)
x = x.astype(np.float32)
x = x[:, :, ::-1].copy()
plt.imshow(x)
x = torch.from_numpy(x).permute(2, 0, 1)

技术图片

使用模型进行预测:

xx = Variable(x.unsqueeze(0))     # wrap tensor in Variable
if torch.cuda.is_available():
    xx = xx.cuda()
y = net(xx)

输出结果:

from data import MASK_CLASSES as labels
top_k=3

plt.figure(figsize=(10,10))
colors = plt.cm.hsv(np.linspace(0, 1, 3)).tolist()
plt.imshow(rgb_image)  # plot the image for matplotlib
currentAxis = plt.gca()

detections = y.data
# scale each detection back up to the image
scale = torch.Tensor(rgb_image.shape[1::-1]).repeat(2)
for i in range(detections.size(1)):
    j = 0
    while detections[0,i,j,0] >= 0.6:
        score = detections[0,i,j,0]
        label_name = labels[i-1]
        display_txt = %s: %.2f%(label_name, score)
        pt = (detections[0,i,j,1:]*scale).cpu().numpy()
        coords = (pt[0], pt[1]), pt[2]-pt[0]+1, pt[3]-pt[1]+1
        color = colors[i]
        currentAxis.add_patch(plt.Rectangle(*coords, fill=False, edgecolor=color, linewidth=2))
        currentAxis.text(pt[0], pt[1], display_txt, bbox=facecolor:color, alpha:0.5)
        j+=1

技术图片

由于我的数据集中很少没有戴口罩的样本,因此没有戴口罩的AP较低。

至此,使用pytorch-ssd训练测试自己数据集就全部完成啦。 

 

目标检测:fp(误检)和fn(漏检)统计(代码片段)

...中,会存在一些FP(误检),FN(漏检)。如何对检测的效果进行可视化,以帮助我们改进模型,提高模型recall值。步骤(1):数据需要准备为yolo格式(2)训练数据获得模型model(3)利用训练的模型再测试集上预测,获得pred(4)根据测试集的标签l... 查看详情

基于yolov4的目标检测系统(附matlab代码+gui实现)(代码片段)

...测各种任务下的目标,并在GUI界面中对各种目标检测结果可视化。文章详细介绍了YOLOv4的实现过程,包括算法原理、MATLAB实现代码、训练数据集、训练过程和图形用户界面。在GUI界面中,用户可以选择各种图片、视频、摄像头进... 查看详情

目标检测图像裁剪/标签可视化/图像拼接处理脚本(代码片段)

前言无人机拍摄的图像分辨率往往较大,做目标检测时,需要进行裁剪再标注。本文就来记录从图像裁剪到图像拼接的处理脚本思路。图像裁剪图像编码规则设定因为后面需要将标注好的图片进行融合拼接,因此需要... 查看详情

目标检测小脚本:yolo标签可视化(代码片段)

需求分析在下载别人标注好的目标检测数据集时,我突然想到一个问题:怎么直观得看别人标注的是否正确呢?于是我想到了可以利用opencv将标注数据还原到原图上。更具体的说,指定图片和标签文件夹,批... 查看详情

opencv+cpp系列(卌六)目标检测与计数(代码片段)

文章目录一、计数可视化二、目标检测(对象提取)可视化本文章处理如下两张图一、计数图像算法的综合使用:分析图像(图像目标形状,纹理,颜色)等复杂信息。考虑处理方法,形态学+距... 查看详情

目标检测图像裁剪/标签可视化/图像拼接处理脚本(代码片段)

前言无人机拍摄的图像分辨率往往较大,做目标检测时,需要进行裁剪再标注。本文就来记录从图像裁剪到图像拼接的处理脚本思路。图像裁剪图像编码规则设定因为后面需要将标注好的图片进行融合拼接,因此需要... 查看详情

yolo目标检测

文章大纲简介原理入门网络模型与可视化目标检测的评测mAP代码部分解读使用Demo数据集最佳实践模型大小计数模型部署与框架选择图片或视频推理可调用的封装模型训练模型转换多路摄像头可能出现的问题参考文献简介github:ht... 查看详情

基于深度学习的口罩检测系统(python+清新界面+数据集)(代码片段)

...、视频、连接摄像头等方式的口罩检测,另外支持和结果可视化。在介绍算法原理的同时,给出Python的实现代码以及PyQt的UI界面。口罩检测系统可用于路口、商场等公共场合检测人脸是否佩戴口罩,佩戴和未佩戴口罩的数目、位... 查看详情

目标检测小脚本:xml标签可视化(代码片段)

前言之前写过一个将YOLO中txt格式进行可视化的脚本目标检测】小脚本:YOLO标签可视化,这次来实现一个Xml格式标签可视化的脚本。不啰嗦,直接放代码,效果和上文一样。脚本代码importxml.dom.minidomimportcv2importos... 查看详情

睿智的目标检测53——pytorch搭建yolox目标检测平台(代码片段)

睿智的目标检测53——Pytorch搭建YoloX目标检测平台学习前言源码下载YoloX改进的部分(不完全)YoloX实现思路一、整体结构解析二、网络结构解析1、主干网络CSPDarknet介绍2、构建FPN特征金字塔进行加强特征提取3、利用YoloHea... 查看详情

睿智的目标检测52——keras搭建yolox目标检测平台(代码片段)

睿智的目标检测52——Keras搭建YoloX目标检测平台学习前言源码下载YoloX改进的部分(不完全)YoloX实现思路一、整体结构解析二、网络结构解析1、主干网络CSPDarknet介绍2、构建FPN特征金字塔进行加强特征提取3、利用YoloHead... 查看详情

目标检测雷达目标cfar检测算法(代码片段)

目录一、概述1、基本概念2、基础知识二、CFAR检测算法1、基本原理2、几种典型的CFAR检测算法(1)CA(CellAveraging)-CFAR检测算法(2)GO-CFAR、SO-CFAR检测算法(3)OS-CFAR检测算法(4)补充说明三、不同CFAR检测算法... 查看详情

睿智的目标检测60——pytorch搭建yolov7目标检测平台(代码片段)

睿智的目标检测60——Pytorch搭建YoloV7目标检测平台学习前言源码下载YoloV7改进的部分(不完全)YoloV7实现思路一、整体结构解析二、网络结构解析1、主干网络Backbone介绍2、构建FPN特征金字塔进行加强特征提取3、利用YoloHe... 查看详情

睿智的目标检测51——tensorflow2搭建yolo3目标检测平台(代码片段)

睿智的目标检测51——Tensorflow2搭建yolo3目标检测平台学习前言源码下载YoloV3实现思路一、整体结构解析二、网络结构解析1、主干网络Darknet53介绍2、构建FPN特征金字塔进行加强特征提取3、利用YoloHead获得预测结果三、预测结果的... 查看详情

不显示 TensorFlow 的对象检测结果的可视化

】不显示TensorFlow的对象检测结果的可视化【英文标题】:VisualizationofresultsfromobjectdetectionwithTensorFlownotdisplaying【发布时间】:2021-12-2003:21:32【问题描述】:我正在尝试在TensorFlow中测试SSD:SingleShotMultiBoxDetectordetectionmodelpre-trainedonth... 查看详情

iou计算python代码实现(代码片段)

文章目录一、目标检测中的IOU代码实现二、代码总结一、目标检测中的IOU代码实现目标检测中会用IOU大小的值来衡量检测结果与准确结果之间的差距,IOU的计算公式:IOU=A∩B/A∪B,式中A,B为检测结果和准确结... 查看详情

运动目标检测_单高斯背景建模(代码片段)

1.运动目标背景建模背景建模也称为背景估计,其主要目的是根据当前的背景估计,把对序列图像的运动目标检测问题转化为一个二分类问题,将所有像素划分为背景和运动前景两类,进而对分类结果进行后处理&#... 查看详情

目标检测sahi:切片辅助推理和微调小目标检测(代码片段)

前言在我之前的文章中,写过一种对于微小目标的检测策略,即将大图裁成多个小图,每个小图分别进行检测,最后将所有的检测结果进行叠加,统一使用NMS进行滤除。但是经过实验,该方法的效果并不是... 查看详情