![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
CV
文章平均质量分 75
图像分类,语义分割,目标检测
lokvke
It is a secret.
(不定时更新)
展开
-
一种非极大值抑制(non_max_suppression, nms)的代码实现方式
非极大值抑制的实现原创 2022-07-20 01:19:40 · 1182 阅读 · 1 评论 -
python保存h264格式视频(linux和windows)
python保存h264格式视频(linux和windows)原创 2022-06-28 09:16:32 · 5632 阅读 · 1 评论 -
Pytorch模型加密的方法
目录一、难点和原理二、代码三、整体代码四、硬件绑定一、难点和原理对一个文件进行加密或者解密其实有很多种方法,难点主要在于,得到加密文件之后,如何在程序运行时进行解密,而不是先解密再运行程序,这相当于没加密。(脱裤子放屁的感觉。。。)对于pytorch框架,我们进入torch.load里面查看代码,如下图所示:pytorch是可以读取 io.BytesIO 类型的数据的,因此,可以有如下的加密和解密过程:加密过程我们可以将读取的模型先保存成 io.BytesIO的格式;再把io.By原创 2022-04-24 21:05:10 · 11627 阅读 · 27 评论 -
手写深度学习——numpy实现卷积层
numpy实现卷积层原创 2022-04-04 21:55:10 · 3037 阅读 · 0 评论 -
关于yolov5训练输出的混淆矩阵与终端输出的不一致问题
目录1. 问题2. 原因2.1 混淆矩阵绘制2.2 终端指标的计算(太长不看系列)结论:混淆矩阵的值是根据检测框和标注框根据一定的IOU计算的,终端指标的输出是找到最大的f1 score所对应的精确率p和召回率r,所以会不一致。1. 问题之前有同事问,怎么yolov5训练绘制的混淆矩阵,跟终端输出的对不上。(之前我也没注意这个问题)这里以训练烟雾、火焰两个类别为例,输出的混淆矩阵如下所示:而终端的输出截图如下所示:对比两张图可以发现,在混淆矩阵中,fire和smoke类别的灵敏度(数值上等原创 2022-03-13 17:30:25 · 9558 阅读 · 21 评论 -
YOLO数据格式说明与转换
YOLO数据格式说明与转换1. YOLO数据格式说明2. 代码1. YOLO数据格式说明yolo标注格式保存在.txt文件中,一共5个数据,用空格隔开,举例说明如下图所示:假设图像的高和宽分别为h, w,bbox的左上角坐标为(x1, y2),右下角坐标为(x2, y2),则可求得bbox中心坐标(x_c, y_c)为:x_c = x1 + (x2 - x1)/2 = (x1 + x2)/2y_c = y1 + (y2 - y1)/2 = (y1 + y2)/2假设yolo的5个数据分别为原创 2021-07-09 10:57:13 · 28374 阅读 · 1 评论 -
Flask部署深度学习模型的一个例子
Flask部署深度学习模型的一个例子一. Flask二. postman工具一. Flask工程一共包括三个文件:用于测试的图片1.jpgindex_to_name.py定义了一个字典,键是预测类label,值是对应的class_name,如下图所示:主要代码文件app.pyfrom index_to_name import img_class_mapimport torchvision.models as modelsimport torchvision.transf原创 2021-05-19 18:45:49 · 1513 阅读 · 3 评论 -
多目标跟踪算法SORT
目录一. 目标检测简介1.1 目标检测1.2 IOU指标二. 目标跟踪简介三. 卡尔曼滤波器3.1 什么是卡尔曼滤波器3.2 具体计算过程3.3 换个角度看四. 匈牙利算法五. SORT一. 目标检测简介给定一张图像,找出我们需要的类别位置,并给定一个检测框,检测框一般包含位置坐标,检测框置信度,每个类别的分数。1.1 目标检测1.2 IOU指标IOU指标就是Intersection Over Union,也叫交并比。如上图所示,红色框表示groundTruth,蓝色框和绿色框是两个检测框原创 2021-04-16 11:40:11 · 5466 阅读 · 1 评论 -
结合源码和demo例子去理解kalman滤波器
目录一. 简介二. OpenCV里的kalman-filter三. 一个例子:kalman.py四. 总结与需要注意的点一. 简介它是啥?卡尔曼滤波(Kalman filtering)是一种利用线性系统状态方程,通过系统输入输出观测数据,**对系统状态进行最优估计的算法。**由于观测数据中包括系统中的噪声和干扰的影响,所以最优估计也可看作是滤波过程。(来自百度百科)能干嘛?一句话:适用于估计一个动态系统的最优状态。(单单看这一句可能有些抽象,后面主要结合代码进行说明)怎么实现?直接原创 2021-04-06 18:01:32 · 520 阅读 · 0 评论 -
faster-rcnn中RPN网络的anchor实现:numpy和pytorch版本
目录一.pytorch版本二. numpy实现三. 总结一.pytorch版本pytorch版本为1.7.1sizes和aspect_ratio设置如下代码所示:from torchvision.models.detection.rpn import AnchorGeneratoranchor_generator = AnchorGenerator(sizes=((32, 64, 128),), aspect_ratio原创 2021-03-08 22:08:22 · 439 阅读 · 2 评论 -
目标检测简单笔记之YOLOV2
目标检测简单笔记之YOLOV2一. YOLOV2简介二级目录2.1 Batch Normalization2.2 High Resolution Classifier2.3 Convolutional With Anchor Boxes2.4 Dimension Clusters2.5 Direct location prediction2.6 Fine-Grained Features2.7 Multi-Scale Training2.8 darknet-192.9 其他三. 总结一. YOLOV2简介原创 2020-12-14 21:16:49 · 138 阅读 · 1 评论 -
MobileNet-V1
写目录一. 简介二. 模型结构2.1 正常卷积操作2.2 深度可分离卷积三. 总结一. 简介论文地址:mobilenet-v1二. 模型结构mobilenet提出了一种叫做Depthwise separable convolution的卷积结构,翻译过来即 深度可分离卷积。那跟平时的卷积有什么区别呢。首先看下原来正常的卷积结构。2.1 正常卷积操作假设现在有:input channel: Noutput channel: Mkernel size: k那么正常的参数量为:N* M*原创 2020-12-09 15:36:40 · 129 阅读 · 0 评论 -
目标检测简单笔记之YOLOV1
这里写目录标题一级目录二级目录三级目录一级目录二级目录三级目录原创 2020-09-29 13:32:01 · 456 阅读 · 0 评论 -
图像处理之边缘检测:Sobel、Scharr、Laplacian、Canny
目录一. Sobel二. Canny一. Sobel1. 简介Sobel算子利用一个横轴方向的算子和纵轴方向的算子,分别求得图像的梯度,再加权求和。横轴方向的算子为:纵轴方向的算子为:(注意:这里正负号在左边还是邮编并无影响,因为最后计算的时候会取左右或者上下之差的绝对值)2. 举例说明假设现在有输入,如下所示:以a13点为例,横轴方向计算:可得:Gx = | (a9 - a7) +(a14 - a12) +(a19 - 1a17) |纵轴方向计算:2. 代码im原创 2020-08-13 11:26:38 · 1916 阅读 · 0 评论 -
图像处理之常用插值方法:最近邻、双线性、双三次插值
目录一. 最近邻插值二. 双线性插值三. 双三次插值假设现在有:原图像src,大小为MxN,坐标记为(x, y);目标图像dst,大小为PxQ,坐标记为(i, j);一. 最近邻插值1. 最近邻插值:将变换后的图像中的原像素点最邻近像素的灰度值赋给原像素点的方法。(百度百科的解释)2. 理解:其实就是根据坐标的变换,找出目标图像中的坐标 对应于 原图像中的坐标,再把原图像中坐标位置的值 填到 目标图像坐标中的值。3. 转换公式:根据原图像和目标图像的尺寸,可得:P/M = i/x,Q原创 2020-08-11 16:38:40 · 6618 阅读 · 5 评论 -
图像处理之滤波器:均值滤波、中值滤波、高斯滤波
目录一. 均值滤波二. 中值滤波三. 高斯滤波假设,现在有输入:一. 均值滤波代码如下:import cv2import numpy as npx = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]], dtype=np.float32)x_mean = cv2.blur(x, (3, 3))print(x)print('------------------------')print(x_me原创 2020-08-10 13:02:37 · 2443 阅读 · 0 评论 -
语义分割之简单笔记:UNet了解一下
目录一. 简介二.三级目录一. 简介原始论文:《U-Net: Convolutional Networks for Biomedical Image Segmentation》论文地址:https://arxiv.org/abs/1505.04597二.三级目录原创 2020-07-30 10:36:56 · 1104 阅读 · 0 评论 -
目标检测之⊙_⊙简单了解一下fast R-CNN?
目录1 fast R-CNN简介2 检测流程2.1 提取特征图和候选区域2.2 每个候选区域通过ROI pooling得到feature2.3 分类与回归3 总结1 fast R-CNN简介fast R-CNN,是由rgb提出的一种网络结构,用于目标检测和语义分割。在RCNN中,每个proposal都要通过CNN提取一次特征,导致速度特别慢。fast R-CNN在R-CNN的基础上做了改进,...原创 2019-07-27 02:21:41 · 239 阅读 · 0 评论 -
目标检测之⊙_⊙简单了解一下RCNN?
目录1 RCNN简介2 检测流程2.1 提取候选框(region proposals)2.2 region proposals通过CNN提取特征2.3 利用提取到的特征训练SVM2.4 位置回归调整框的位置3 总结1 RCNN简介RCNN,全称Regions with CNN features,是rbg等人提出的一种网络结构,用于目标检测和语义分割。2 检测流程RCNN检测的流程见下图(图...原创 2019-07-25 01:01:39 · 415 阅读 · 0 评论