- 博客(113)
- 资源 (6)
- 收藏
- 关注
原创 分割3-转置卷积可逆吗?
分割2——语义分割评价指标这是因为普通卷积的操作图 1.其卷积可等效为图 2.其卷积操作可等效为图 3.图 2. 卷积 还可等效为图 4. 扩展为图 5. -> 图 6.输入特征图、卷积与输出特征图展平后可整理成:接下来出现一个问题,已知矩阵与矩阵能否反向求得矩阵答案是不能。当然,如果能在等号左右两边乘上的逆矩阵,则能反向求得矩阵;但是,但是不为方阵,则不能反向求得(没法通过矩阵与矩阵还原矩阵这样也就说明了!并且也说明了下,!接下来,放宽条件,我们只想通过与。
2023-07-13 17:20:39
275
原创 CV+Deep Learning——网络架构Pytorch复现系列——Detection(二:RetinaNet)更换backbones(DarkNet)
上一话CV+Deep Learning——网络架构Pytorch复现系列——Detection(一:SSD:Single Shot MultiBox Detector 4.推理Detect)https://blog.csdn.net/XiaoyYidiaodiao/article/details/128683973?spm=1001.2014.3001.5501复现Object Detection,会复现的网络架构有:1.SSD: Single Shot MultiBox Detector(√)2.Reti
2023-01-14 21:46:22
1297
1
原创 CV+Deep Learning——网络架构Pytorch复现系列——Detection(一:SSD:Single Shot MultiBox Detector 4.推理Detect)
上一话CV+Deep Learning——网络架构Pytorch复现系列——Detection(一:SSD:Single Shot MultiBox Detector 3.loss)https://blog.csdn.net/XiaoyYidiaodiao/article/details/127535159?spm=1001.2014.3001.5501复现Object Detection,会复现的网络架构有:1.SSD: Single Shot MultiBox Detector(√)2.RetinaNe
2023-01-14 12:35:58
793
原创 找工作-体能修复8-编程-剑指offer-JZ3、JZ4、JZ5、JZ7、JZ8、JZ9、JZ10、JZ11、JZ12、JZ13、JZ14
说明: [0,0],[0,1],[0,2],[0,3],[0,4],[0,5],[0,6],[0,7],[0,8],[0,9],[0,10],[0,11],[0,12],[0,13],[0,14],[0,15],[0,16],[0,17],[0,18],[0,19],[0,20],[0,21],[0,22],[0,23],[0,24],[0,25],[0,26],[0,27],[0,28] 这29种,后面的[0,29],[0,30]以及[0,31]等等是无法到达的。请找出数组中任意一个重复的数字。
2022-11-07 15:55:08
228
原创 CV+Deep Learning——网络架构Pytorch复现系列——Detection(一:SSD:Single Shot MultiBox Detector 3.loss)
利用ground truth(match)与生成的anchor产生预测的offset。
2022-10-26 18:57:12
913
1
原创 CV+Deep Learning——网络架构Pytorch复现系列——Detection(一:SSD:Single Shot MultiBox Detector 2.anchor)
首先计算f_k(300/step_i),在通过f_k计算每组anchor的中心点cx,cy,计算两个aspect ratios=1时的s_k,再通过s_k计算w,h;接着计算aspect ratios!=1时的s_k,再通过s_k计算w,h。
2022-08-19 10:46:39
1025
1
原创 CV+Deep Learning——网络架构Pytorch复现系列——Detection(一:SSD:Single Shot MultiBox Detector 1.网络模型,根据mmLab格式编写)
之前使用Pytorch深度学习架构复现了Classification,链接如下:CV+Deep Learning——网络架构Pytorch复现系列——classification(一:LeNet5,VGG,AlexNet,ResNet)CV+Deep Learning——网络架构Pytorch复现系列——classification(二:ResNeXt,GoogLeNet,MobileNet)......
2022-08-17 21:31:27
872
1
原创 CV+Deep Learning——网络架构Pytorch复现系列——classification(三:MobileNet,ShuffleNet)
上一话CV+Deep Learning——网络架构Pytorch复现系列——classification(二)因为没人看,我想弃坑了...引言此系列重点在于复现()中,以便初学者使用(浅入深出)!首先复现深度学习的经典分类网络模块,其中专门做目标检测的Backbone(10.,11.)但是它的主要目的是用来提取特征所以也放在这里,有:1.LeNet5(√,一)2.VGG(√,一)3.AlexNet(√,一)4.ResNet(√,一)5.ResNeXt(√,二).........
2022-08-08 16:14:52
1479
原创 CV+Deep Learning——网络架构Pytorch复现系列——classification(二:ResNeXt,GoogLeNet,MobileNet)
上一话CV+DeepLearning——网络架构Pytorch复现系列——classification(一)https引言此系列重点在于复现计算机视觉()中,以便初学者使用(浅入深出)!首先复现深度学习的经典分类网络模块,其中专门做目标检测的Backbone(10.,11.)但是它的主要目的是用来提取特征所以也放在这里,有1.LeNet5(√,上一话)2.VGG(√,上一话)3.AlexNet(√,上一话)4.ResNet(√,上一话)10.VovNet11.DarkNet...............
2022-07-09 17:52:37
1506
原创 3D视觉——4.手势识别(Gesture Recognition)入门——使用MediaPipe含单帧(Singel Frame)和实时视频(Real-Time Video)
上一话3D视觉——3.人体姿态估计(Pose Estimation) 算法对比 即 效果展示——MediaPipe与OpenPosehttps://blog.csdn.net/XiaoyYidiaodiao/article/details/125571632?spm=1001.2014.3001.5502这一章 讲述 使用MediaPipe的手势识别1.solutions.handsmediapipe手势模块(.solutions.hands)将手分成21个点(0-20)如下图1. ,可通过判断手势的
2022-07-04 11:33:24
3550
3
原创 3D视觉——3.人体姿态估计(Pose Estimation) 算法对比 即 效果展示——MediaPipe与OpenPose
运行结果MediaPipe人体姿态估计效果展示demo_video.pysrc/util.pysrc/hand.pysrc/body.py运行结果OpenPose效果展示需要安装OpenPose,请看我的另一篇博客:3D视觉——2.人体姿态估计(Pose Estimation)入门——OpenPose含安装、编译、使用(单帧、实时视频)运行结果OpenPose运行结果其实:1.MediaPipe比较成熟,并且不需要下载或者配置一些乱七八糟的东西,而Op
2022-07-02 13:09:41
5571
9
原创 3D视觉——2.人体姿态估计(Pose Estimation)入门——OpenPose含安装、编译、使用(单帧、实时视频)
本章博客就是对OpenPose工具包进行开发;我呕心沥血(笑哭),经历重重困难,想放弃了很多次(因为openpose的编译实在是太麻烦了)但是后来还是成功了,各位点个赞吧!这个真的太麻烦了。按照单帧图像和实时视频的顺序述写,其中单帧是使用的Pytorch编程只是调用OpenPose的模型;实时视频中使用Python调用OpenPose的包,所以必须得安装OpenPose,并对其进行编译,最后再使用。首先从github上,下载CMU提供的源码下来:https://github.com/CMU-Perceptu
2022-07-01 21:43:02
7524
14
原创 CV+Deep Learning——网络架构Pytorch复现系列——classification(一:LeNet5,VGG,AlexNet,ResNet)
引言此系列重点在于复现计算机视觉()中,以便初学者使用(浅入深出)!首先复现深度学习的经典分类网络模块,其中专门做目标检测的Backbone(10.,11.)但是它的主要目的是用来提取特征所以也放在这里,有2.VGG(√)5.ResNeXt10.VovNet11.DarkNet...注意a)完整代码上传至我的githubhttpshttpsb)编译环境设置为(其实不用这个编译环境,你会调bug也行!)d)使用了amp混精度使gpu加速,若不知如何使用可参考如下链接。.........
2022-06-28 17:18:42
74104
原创 对在运动的刘耕宏进行抠图(含单帧与视频的分割算法应用)
使用MediaPipe代码讲解(1)对应结果代码讲解(2) 对应结果 代码讲解(3)对应结果 代码讲解(4)对应结果代码讲解(5) 对应结果代码讲解(6) 对应结果代码讲解(7) 对应结果完整代码2.视频公用代码部分处理每帧的函数1.将背景扣掉2.将前景扣掉3.替换背景实时摄像头捕捉亲测3个函数都能正常运行!实时视频运行结果1.将背景扣掉背景扣掉2.将前景扣掉前景扣掉3.替换背景背景扣掉.................
2022-06-16 11:49:17
379
5
原创 3D视觉——1.人体姿态估计(Pose Estimation)入门——使用MediaPipe含单帧(Signel Frame)与实时视频(Real-Time Video)
使用Mediapipe工具包进行开发MediaPipe是一款由Google Research 开发并开源的多媒体机器学习模型应用框架,用于处理视频、音频等时间序列数据。这个跨平台架构使用于桌面/服务器、Android、iOS和嵌入式设备等。我们使用MeidaPie下的Solutions(方案特定的模型),共有16个Solutions:1.solutions.posemediapipe姿态检测模块(.solutions.pose),将人体各个部位分成33个点(0-32)如下图1.图1.通常可以通过判断角
2022-06-14 16:12:19
11634
25
原创 计算机视觉可解释性——将特征图的某一通道转化为一张图来可视化
本实验是将某一层的特征图中的某一通道对其进行的可视化,有两种方式一种是使用opencv;另一种是使用tensorboard。运行结果使用的resnet50作为backbone的效果更好,将layer1的特征中第一层通道(256中的第1层)转化为图像 layer1. channels1.将layer1的特征中第一层通道(256中的第1层)转化为图像,将代码改为: layer1. channels2. layer1. channels3.... layer1. channels10....若
2022-06-10 21:25:00
1164
1
原创 分割2——语义分割评价指标
语义分割 (Semantic Segmentation):从像素水平(pixel-level)上,理解、识别图片的内容。根据语义信息对图像中的像素进行分割。评价指标像素准确率(Pixel Accuracy PA) or (global acc)类别像素准确率(Class Pixel Accuracy CPA)类别平均像素准确率(Mean Accuracy or Mean Pixel Accuracy MPA)平均交并比(Mean Intersection over Union MIoU)若想理解
2022-06-06 16:48:08
2425
原创 如何利用Pytorch针对自己所设计的数据集进行的简单迁移学习
本博客的内容是讲解新手如何利用Pytorch针对自己所设计的数据集进行简单的迁移学习。以VGG16为Backbone,CIFAR10为数据集,AdamW为梯度下降策略,ReduceLROnPlateau为学习调整机制。注意:显卡是2060,电脑是拯救者;VGG16网络便对此进行了改进(img_size为)!也就是说这个小Demo自己的电脑也可以跑,不用在服务器下运行。文件结构 未进行迁移学习之前的vgg16,我们要用这个vgg16网络预训练CIFAR10数据集,之后再做迁移学习vgg16.py(对i
2022-06-04 23:43:43
1086
原创 GitHub的常规使用
理论知识1. repository(仓库):版本库,一个目录里面的所有文件可以被git管理起来,且每个文件的修改,删除,添加,git都能跟踪,用来还原某一时刻最满意的代码(自己的理解)。2. commit(提交):将代码从暂存区提交到仓库(如下图右半部分:工作区(workspace)->暂存区(Index)->仓库(Repository))先使用git add .(所有文件用点,单个文件用文件名)将代码从工作区(workspace)存到暂存区(Index),在使用git commit将代
2022-05-28 00:05:42
199
1
原创 目标检测——梯度均衡机制GHM(Gradient Harmonized Mechanism)的理解
论文:Gradient Harmonized Single-stage Detector论文地址:Gradient Harmonized Single-stage Detectorhttps://arxiv.org/pdf/1811.05181.pdf注意 PPT图片为实验室论文研讨组会讲解所需,为笔者自己所做,慎用!Research Problems(问题)对于一阶段目标检测器的训练来说,最具挑战性的问题是: 简单和困难样本的急剧不平衡 与 正负样本的急剧不平衡 -> 并且这两种可以
2022-05-22 16:22:02
1423
原创 如何使用Pytorch让网络模型加速训练?(autocast与GradScaler)
题外话,我为什么要写这篇博客,就是因为我穷!没钱!租的服务器一会钱就烧没了,急需要一种trick,来降低内存加速。回到正题,如果我们使用的数据集较大,且网络较深,则会造成训练较慢,此时我们要想加速训练可以使用Pytorch的AMP(autocast与Gradscaler);本文便是依据此写出的博文,对Pytorch的AMP(autocast与Gradscaler进行对比)自动混合精度对模型训练加速。注意Pytorch1.6+,已经内置torch.cuda.amp,因此便不需要加载NVIDIA的ape
2022-05-19 17:46:51
2738
6
原创 目标检测——COCO数据集的处理与评估
coco数据集是我们计算机视觉中最常用的数据集,因此我们需要知道并且熟悉其处理与评估1. coco数据集的处理代码:"""COCO Dataset Classes"""import osimport numpy as npfrom torch.utils.data import Datasetfrom pycocotools.coco import COCOfrom utils.path import COCO2017_path, COCO2014_pathfrom skimage
2022-05-14 16:41:24
2684
1
原创 使用python的parser.add_argument()在卷积神经网络中如何预定义参数?
在训练卷积神经网络时需要预定义很多参数,例如batch_size, backbone,dataset,dataset_root等等,这些参数多而且特别零散;如果我们最初不把这些参数定义,到时候修改是一件特别麻烦的事情,需要逐个修改;所以这个时候用到了python的add_argument()很好的规避了这些问题。首先讲,argparse是Python内置的一个用于命令项选项与参数解析的模块,argparse模块可以让人轻松编写用户友好的命令接口。程序定义它需要的参数,然后argparse将弄清如何从sy
2022-05-12 16:51:14
4288
原创 Pytorch中几种调整学习率scheduler机制(策略)的用法即其可视化
申明此篇博文是以AlexNet为网络架构(其需要输入的图像大小为227x227x3),CIFAR10为数据集,SGD为梯度下降函数举例。运行此程序时,文件的结构:/content/drive/MyDrive/coder/Simple-CV-Pytorch-master||||----AlexNet----train.py(train_adjust_learning_rate.py,train_MultiStepLR.py等等)||||----tensorboard(保存tensor
2022-05-11 01:15:01
4908
1
原创 目标检测——RetinaNet-Focal Loss 焦点损失函数的理解
论文 Focal Loss for Dense Object Detection论文地址:RetinaNet-Focal Losshttps://arxiv.org/pdf/1708.02002.pdf论文代码:RetinaNet-Focal Losshttps://github.com/yhenon/pytorch-retinanet简介问题:应用于对可能的目标位置进行定期密集采样的一阶段检测可能更快、更简单,但是迄今为止其准确率落后于二阶段检测器。所以,简单的一阶段检测器能达到二阶段
2022-05-04 19:31:02
3295
1
原创 体能修复7-编程-剑指offer-JZ35 复杂链表的复制
描述输入一个复杂链表(每个节点中有节点值,以及两个指针,一个指向下一个节点,另一个特殊指针random指向一个随机节点),请对此链表进行深拷贝,并返回拷贝后的头结点。(注意,输出结果中请不要返回参数中的节点引用,否则判题程序会直接返回空)。 下图是一个含有5个结点的复杂链表。图中实线箭头表示next指针,虚线箭头表示random指针。为简单起见,指向null的指针没有画出。示例 输入:{1,2,3,4,5,3,5,#,2,#} 输出:{1,2,3,4,5,3,5,#,2,#}
2022-04-29 16:02:38
1047
原创 体能修复6-编程-剑指offer-JZ22 链表中倒数最后k个结点
描述输入一个长度为 n 的链表,设链表中的元素的值为 ai ,返回该链表中倒数第k个节点。如果该链表长度小于k,请返回一个长度为 0 的链表。结果
2022-04-28 15:53:03
537
原创 体能修复5-编程-剑指offer-JZ23 链表中环的入口结点
给一个长度为n链表,若其中包含环,请找出该链表的环的入口结点,否则,返回null (python None)。
2022-04-26 23:44:34
375
原创 使用opencv-python(cv2)如何将视频裁成图像?
在制作数据集时,首先将网上搜集到的视频裁成图像,可是如何去实现呢?考虑到opencv-python中有此类方法,故此篇博客由此诞生。注意,视频文件在笔者文件:D:\data\element (由于此数据集现处于研究阶段,尚未发布,且对于笔者特别重要,于是将其马赛克)产生新的数据集在笔者文件:D:\data\Video一个视频会裁成很多图片于是,生成的数据集细分为:D:\data\Video\1D:\data\Video\2D:\data\Video\3D:\data\Video\4D:\
2022-04-26 18:51:54
5380
2
原创 体能修复4-编程-剑指offer-JZ52 两个链表的第一个公共结点
描述输入两个无环的单向链表,找出它们的第一个公共结点,如果没有公共节点则返回空。(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的)数据范围: n<=1000要求:空间复杂度 O(1),时间复杂度 O(n)例如,输入{1,2,3},{4,5},{6,7}时,两个无环的单向链表的结构如下图所示:可以看到它们的第一个公共结点的结点值为6,所以返回结点值为6的结点。输入描述:输入分为是3段,第一段是第一个链表的非公共部分,第二段是第二个链表的非公共部分,第
2022-03-31 13:02:10
117
原创 体能修复3-编程-剑指offer-JZ25 合并两个排序的链表
描述输入两个递增的链表,单个链表的长度为n,合并这两个链表并使新链表中的节点仍然是递增排序的。数据范围: 0\leq n\leq 1000 ,−1000≤节点值≤1000要求:空间复杂度 O(1),时间复杂度 O(n)。如输入{1,3,5},{2,4,6}时,合并后的链表为{1,2,3,4,5,6},所以对应的输出为{1,2,3,4,5,6},转换过程如下图所示:或输入{-1,2,4},{1,3,4}时,合并后的链表为{-1,1,2,3,4,4},所以对应的输出为{-1,1,2,3,4,4},
2022-03-30 15:34:49
592
原创 体能修复2-编程-剑指offer-JZ24 反转链表
描述给定一个单链表的头结点pHead(该头节点是有值的,比如在下图,它的val是1),长度为n,反转该链表后,返回新链表的表头。数据范围: 0≤n≤10000要求:空间复杂度 O(1) ,时间复杂度O(n) 。如当输入链表{1,2,3}时,经反转后,原链表变为{3,2,1},所以对应的输出为{3,2,1}。以上转换过程如下图所示:示例1:输入:{1,2,3}输出:{3,2,1}示例2:输入:{}输出:{}说明:空链表则输出空 代码:# cl
2022-03-29 17:11:24
538
原创 体能修复1-编程-剑指offer-JZ6 从尾到头打印链表
知识点:链表描述:输入一个链表的头节点,按链表从尾到头的顺序返回每个节点的值(用数组返回)。如输入{1,2,3}的链表如下图:返回一个数组为[3,2,1]0 <= 链表长度 <= 10000示例1:输入:{1,2,3}输出:[3,2,1]示例2:输入:{67,0,24,58}输出:[58,24,0,67]代码:# class ListNode:# def __init__(self, x):# self.val = x#
2022-03-29 12:38:03
381
原创 手把手教你北邮操作系统小学期实验六——Linux环境下嵌入式数据库mSQL的集成2
接上一章 手把手教你北邮操作系统小学期实验六——Linux环境下嵌入式数据库mSQL的集成1
2022-02-02 16:30:46
1764
原创 手把手教你北邮操作系统小学期实验六——Linux环境下嵌入式数据库mSQL的集成1
接上一章 手把手教你北邮操作系统小学期实验五——Linux环境下的Ramdisk技术及其实验2此实验是我做的。1.实验环境:硬件:Intel i5操作系统:Windows 8.1虚拟机:VMware Workstation 12.5.0软件:Red Hat Enterprise Linux 9 (Linux 内核 2.4.20-8)2.实验目的:实时嵌入式应用常常需要数据库的支持。虽然很多情况下可以用文件方式实现部分数据库功能,但是当应用程序需要执行一些比较复杂的数据操作时,文件方式就无能
2022-02-02 12:40:21
1727
原创 手把手教你北邮操作系统小学期实验五——Linux环境下的Ramdisk技术及其实验2
接上一章 手把手教你北邮操作系统小学期实验五——Linux环境下的Ramdisk技术及其实验13.6. 编写一个文件访问程序,对比将此文件分别存储于外设硬盘、ramdisk 分区时,程 序的执行速度。要求:程序反复多次读、写文件,以便对比不同方式下的访问时间差异。ramdisk读:非ramdisk读:ramdisk写:非ramdisk写:代码:读文件使用ramdisk不使用ramdisk写文件使用ramdisk不使用ramdisk源码:读操作#!/bin/sh
2022-02-02 12:09:51
1915
原创 手把手教你北邮操作系统小学期实验五——Linux环境下的Ramdisk技术及其实验1
接上一章 手把手教你北邮操作系统小学期实验四——Linux Shell小型化31. 实验目的:ramdisk 技术利用内存模拟硬盘空间,将一个内存块作为 1 个盘分区使用,可以提高访问速度。多某些特定的访问频率高的文件,将其存储于 ramdisk 上,可以提高访问性能。在嵌入式系统中,利用 ramdisk 技术,可以实现应用程序预加载,即初始化完成后立即加载,而不是等到需要使用时才从硬盘读取, 从而提高系统速度:将一些系统启动后经常使用的程序,如浏览器、Xwindows,利用ramdisk 将整个应
2022-02-02 11:40:04
243
原创 手把手教你北邮操作系统小学期实验四——Linux Shell小型化3
接上一章 手把手教你北邮操作系统小学期实验四——Linux Shell小型化2切换shell查看全部shell:cat/etc/shells切换shell chsh -s /bin/ash切换后需要登入和登出才能可以完成切换。试验命令:ls、pwd、hostname、date、pingls:pwd:hostname:date:ping:下一章 手把手教你北邮操作系统小学期实验五——Linx环境下的Ramdisk技术及其实验1...
2022-02-02 10:56:17
549
原创 手把手教你北邮操作系统小学期实验四——Linux Shell小型化2
接上一章 手把手教你北邮操作系统小学期实验四——Linux Shell小型化1配置busybox$ make defconfig : 针对大多数用户的默认配置$ make allnoconfig : 全不选$ make allyesconfig : 全选以上三个指令可以完成不同需要的配置,也可以使用make menuconfig来进行菜单配置General Configuration:Show verbose applet usage messagesRuntime SUID/SGID
2022-02-02 10:29:37
1341
蓝桥杯入门题1
2018-02-01
Matlab2016a
2018-02-01
JAVA数据结构与算法分析
2016-10-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人