自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

_天涯__的博客

思维没有边界

  • 博客(91)
  • 资源 (17)
  • 收藏
  • 关注

原创 基于Yolov5目标检测的物体分类识别及定位(一) -- 数据集原图获取与标注

从本篇博客正式开始深度学习项目的记录,实例代码只会放通用的代码,数据集和训练数据也是不会全部放出。想要让人工智能有智能,得先训练它,训练要有数据集,制作数据集要有原始数据。所以搭建系统的第一步,就是从网上爬一些图片来构建数据集,为什么是爬虫爬取呢,因为太多了,手动下载根本不现实。写个爬虫在百度谷歌爬取图片,搜索关键字然后下拉界面到底(设置一个超级大的数或者一直下拉),获取所有的图片元素。比如百度图片搜索结果的 <li/>@..

2023-06-04 13:12:11 5269 6

原创 基于Yolov5目标检测的物体分类识别及定位(二) -- yolov5运行环境搭建及label格式转换

刚开始跟着网上的教程做,把环境安装错了,后来直接用GitHub的官方教程。地址是yolov5官方团队代码及教程,看readme文件就可以。很简单,不要想的复杂。 先下载完整的官方代码。地址在开头,下完解压。 用conda为例,新建一个python3.8的版本的环境,可以就叫yolov5,然后进入下好的代码文件夹根目录,命令行激活新建的yolov5这个环境,并运行下面这句话来安装所有的必须的依赖包:

2023-06-04 13:11:02 5559

原创 yolov5 + second_classify -- 代码

因内容重要,故做此笔记,也仅做笔记。detect_correct.pyfrom yolov5 import YOLOv5import torchfrom torchvision import transforms# import numpy as npfrom PIL import Imageimport cv2import osdef detect(image_path, yolov5_model, recog_model): img = cv2.imre..

2022-04-14 15:54:54 1291 8

原创 从零构建一个图像分类项目 -- 代码

因内容重要,故做此笔记,也仅做笔记。imports、创建日志、创建全局参数读取数据、构建Dataset、Dataloader创建网络模型结构设置优化器、loss函数、LR及下降变化方式mixup、训练、打印日志记录训练信息、保存模型权重验证、统计混淆矩阵、做一些结果可视化读取模型权重、测试train.pyimport torchimport adaboundfrom tensorboardX import SummaryWriterfrom to..

2022-04-14 15:48:36 707

原创 目标检测的数据增强 -- 代码实现

与分类任务不同的是,目标检测任务的数据集有boxes位置的标注,而若进行上下翻转、裁剪等操作,坐标位置也就随之改变,需要在transform时对boxes坐标作出对应的转换。import mathimport randomimport torchfrom PIL import Image, ImageDraw1、resizedef resize(img, boxes, size, max_size=1000): # 调整大小缩放 w, h = img.size...

2022-03-26 12:25:31 2711

原创 经典神经网络 -- RetinaNet的Focal_Loss : 设计原理与pytorch实现

原理损失函数:a 是用来调解正负样本,根据不同的比例来减少正负样本loss的比例,从而提高模型学习能力,一般情况下正样本远远小于负样本,所以设置a=0.25,负样本为0.75就能缩小loss的比例。γ 负责降低简单样本的损失值, 以解决加总后负样本loss值很大,这样可以让模型学习的时候多学习到困难样本的特征来达到更好的识别效果。(1-pt)这里可以代表预测的分值越高则值越小,pt越小值越大,这种的好处是一旦分很低,造成的loss更大,让模型学...

2022-03-23 11:22:05 2569

原创 经典神经网络 -- SSD : 设计原理与pytorch实现

原理 ssd采用的是VGG16的特征提取,在vgg16中提取二个特征图,之后又通过额外的增加卷积操作再次提取四个特征图,一共6个特征图。 前半部分是vgg-16的架构,作者在vgg-16的层次上,将vgg-16后边两层的全连接层(fc6,fc7)变换为了卷积层,conv7之后的层则是作者自己添加的识别层。 在conv4_3层,有一层Classifier层,使用一层(3,3,(4*(Classes+4)))卷积进行卷积(Classes是识别的物体的种类数,...

2022-03-22 21:00:12 2443

原创 经典神经网络 -- VGG : 设计原理与pytorch实现

原理 VGG网络结构:输入为224×224大小的RGB图像,首先经过两个3×3的卷积层 → 一个最大下采样层 → 两个3×3的卷积层 → 一个最大下采样层 → 三个3×3的卷积层 → 一个最大下采样层 → 三个3×3的卷积层 → 一个最大下采样层 → 三个3×3的卷积层 → 一个最大下采样层 → 三个全连接层 → soft-max处理得到概率分布 网络中的亮点:通过堆叠多个3×3的卷积核来替代大尺度卷积核(减少所需参数),可以拥有相同的感受野 论文中提到,可...

2022-03-22 19:17:47 1009

原创 经典神经网络 -- FPN : 设计原理与pytorch实现

原理FPN总体架构主要包含自下而上网络、自上而下网络、横向连接与卷积融合4个部分。自下而上:C2到C5代表不同的ResNet卷积组,这些卷积组包含了多个Bottleneck结构,组内的特征图大小相同,组间大小递减。自下而上:首先对C5进行1x1卷积降低通道数得到P5,然后对P5依次进行上采样得到P4、P3、P2.目的是得到与C4、C3与C2长宽相同的特征,方便下次进行逐元素相加。采用2倍最近邻上采样(直接对临近元素进行复制,而非线性插值)。横向连接:(Lateral Connection

2022-03-22 16:55:54 2940

原创 经典神经网络 -- MobileNet : 设计原理与pytorch实现

原理 mobilenet是一种轻量级网络,主要是想用于实时检测,那么那么它的优点就是训练速度快 采用了深度卷积和逐点卷积,还有对通道数和分辨率加以改变,大幅度减少参数量 Depthwise Conv 深度卷积的核心在 逐点卷积 nn.Conv2d的参数groups,等于1就是普通的卷积,当设置为groups = input_channels,就是深度可分离卷积的depthwise conv代码实现# mobilenet是一种轻量级...

2022-03-22 15:46:39 636

原创 经典神经网络 -- ResNeXt : 设计原理与pytorch实现

原理 Resnext就是一种典型的混合模型,由基础的inception+resnet组合而成(学习掌握每个模型的精髓就是为了融合创造新的模型) resnext的本质在gruops分组卷积,nn.Conv2d中的groups这个参数自动为我们分组,编写代码提供了方便 resnet里面除了通道数与resnext不同其他参数完全相同代码实现# Resnext就是一种典型的混合模型,由基础的inception+resnet组合而成# 学习掌握每个模型的...

2022-03-22 13:15:25 1184

原创 经典神经网络 -- DPN : 设计原理与pytorch实现

原理 DPN这个模型融入了三种基础模型,inception,resnet,densenet。有inception的宽度,又有resnet的shortcut利用,和densenet的浅层特征重复利用 tensor的切片操作:a 是 [2,3,5,5], 那么 a[:,:1,:,:] 就是 [2,1,5,5]。a,b 都是 [2,3,5,5] ,那么 torch.cat([a[:,:1,:,:] + b[:,:1,:,:]], dim=1) 还是 2, 1, 5, 5], 数据相...

2022-03-22 11:03:34 1237

原创 经典神经网络 -- GoogLeNet / Inception : 设计原理与pytorch实现

原理一共有四种卷积通道,它的输入层的特征图都是同一个,唯一不同的就是中间经历不同的卷积层。该结构采用了四个分支,每个分支分别由1x1卷积、3x3卷积、5x5卷积和3x3maxpooling组成,既增加了网络的宽度,也增加了网络对不同尺度的适用性。四个分支输出后在通道维度上进行叠加,作为下一层的输入。四个分支输出的featuremap的尺寸可由padding的大小进行控制,以保证它们的特征维度相同(不考虑通道数)每进过一次inception模块大小变为原来的二分之一 尺寸大小的计算公式是

2022-03-21 21:25:06 589

原创 经典神经网络 -- DenseNet : 设计原理与pytorch实现

原理概念与网络结构 DenseNet模型,它的基本思路与ResNet一致,但是它建立的是前面所有层与后面层的密集连接(dense connection) DenseNet的一大特色是通过 特征在channel上的连接 来实现特征重用(feature reuse) DenseNet在参数和计算成本更少的情形下实现比ResNet更优的性能 相比ResNet,DenseNet提出了一个更激进的密集连接机制:即互相连接所有的层,具体来说就是每个层都...

2022-03-21 19:26:15 4442

原创 CV求职面经 -- PyTorch、YOLO、深度学习基础

CV求职面经

2022-03-17 09:23:39 1179

原创 Pytorch 入门之数据处理 -- Dataset、Sampler、DataLoader

做个学习笔记。迭代器概念:迭代的意思类似于循环,每一次重复的过程被称为一次迭代的过程,而每一次迭代得到的结果会被用来作为下一次迭代的初始值。提供迭代方法的容器称为迭代器,通常接触的迭代器有序列(列表、元组和字符串)还有字典,这些数据结构都支持迭代操作。实现迭代器的魔法方法有两个:__iter__(self) 和 __next__(self)一个容器如果是迭代器,那就必须实现 __iter__(self) 魔法方法,这个方法实际上是返回是一个迭代器(通常是迭代器本身)。接下来重点要实现.

2022-03-15 15:42:20 2760

原创 经典神经网络 -- ResNet : 设计原理与pytorch实现

ResNet 全称 residual neural network ,主要是解决过深的网络带来的梯度弥散,梯度爆炸,网络退化(即网络层数越深时,在数据集上表现的性能却越差)的问题。创新 把输入 x 和网络的输出 f(x) 加了起来,作为原本的输出 F(x)。输入输出 网络输入是 x,网络的输出是 F(x),假设我们想要网络学习到的映射(要拟合的目标)为H(x),而直接学习H(x)是很难学习到的。但我们学习另一个残差...

2022-02-28 20:23:28 1482

原创 Python实现桌面程序:PyQt5 + QtDesigner -- 界面设计与逻辑编写

Python,入门简单,上手快,所以我朋友想要用 Python 写一个简单的桌面程序,Qt 界面那种风格都行,于是有了这篇博客。 这篇博客是针对 完全不懂python 却还想要写一个界面程序的小白的(Windows系统)。步骤内容很多,简略写,没有耐心仔细总结了,直接搬运一部分。Python基础教程Python3 教程 | 菜鸟教程 既然是针对小白,当然先放入门教程,主要学习一下import、基本语法、基本数据类型、类型转换原理和操作、解释器、注释、...

2022-01-24 23:02:30 2604 1

原创 CV求职面经 -- 数学基础

各种CV领域、机器学习领域需要用到的数学知识

2022-01-06 15:55:00 1240

原创 NMS(非极大值抑制)算法 -- 理论、代码

目的消除 anchor-based 算法中因为滑动窗口或者重叠采样等方式产生的众多冗余候选框,保留效果最佳的框。定义非极大值抑制(Non-Maximum Suppress,NMS)算法,就是抑制非极大值的目标(去冗余),从而搜索出局部极大值的目标(找最优)。原理输入给定所有可能的预测边框 predictions = [ [x_max, x_min, y_max, y_min, score], [*], ..., [*]] 以及一个给定的IoU阈值 iou_threshold.(有多少

2022-01-04 10:51:01 1030

原创 PyTorch实现CNN

原理及步骤数据处理 PyTorch中对于数据集的处理有三个非常重要的类:Dataset、Dataloader、Sampler,它们均是torch.utils.data包下的模块(类)。它们的关系可以这样理解: Dataset是数据集的类,主要用于定义数据集 Sampler是采样器的类,用于定义从数据集中选出数据的规则,比如是随机取数据还是按照顺序取等等 Dataloader是数据的加载类,它是对于Dataset和Sampler的进一步包...

2021-12-29 12:58:44 12038 6

原创 Tensorflow实现CNN

原理步骤 定义变量 => 搭建网络 => 选定优化目标 => 如何达到目标 => 启动 => 做记录/看效果 定义变量是为了承载网络的输入,tf 里面,可以是 Variable,也可以是 Placeholder,两者的区别是,在开始训练网络时,后者需要你喂给它数据,也就是在 run 的时候都需要加一个 feed_dict = {} 来指定一下输入的数据。 搭建网络比较直接,通过一些 api 就可以构建了。 选定优化...

2021-12-22 20:40:44 3507

原创 数据库 -- SQL注入攻击

SQL注入攻击_百度百科概念 SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。 SQL注入攻击属于数据库安全攻击手段之一,可以通过数...

2021-12-07 11:32:08 1543

原创 深度优先搜索(DFS)与广度优先搜索(BFS) -- 总结

刷题过程中经常遇到DFS和BFS问题,在此总结一下。参考:白话解释 DFS 与 BFS 算法 (二叉树的先序遍历,中序遍历、后序遍历、层次遍历)_欢迎来到Gorit的博客-CSDN博客_dfs和先序遍历深度优先遍历(DFS)1、先序遍历(先遍历根节点,然后左节点,右节点)2、中序遍历(先遍历左节点,然后根节点,然后右节点)3、后序遍历(先遍历左右节点,然后遍历根节点) 使用递归或栈实现广度优先比例(BFS)1、层次遍历(每层从左到右遍历节点) ...

2021-12-07 11:22:18 410

原创 Ubuntu系统重装 -- 制作启动盘、装机过程问题、环境配置

这篇文章是我为了记录第一次重装 Ubuntu 系统。 Windows 系统的重装很简单,用老毛桃做一个 WinPE盘 然后下载 win10 镜像,启动,之后傻瓜式操作就可以,剩下的无非就是激活 Windows 等问题。 而重装 Ubuntu 系统,尤其我之前是 Windows 10 + Ubuntu 18.04 双系统,我在不小心的情况下格式化了 EFI 分区,导致 BootLoader 坏了,启动不了,而我又不会修复,加上之前感觉双系统的诸多不便,索性直...

2021-11-22 19:49:52 11674

原创 面试进阶 -- 计算机基础原理知识、面试经验、高频题目

计算机操作系统OS知识点计算机组成原理看课本计算机网络计网知识点数据库什么是数据库索引 - 王小鑫 - 博客园智力&情景题智力题剑指Offer刷题总结快速刷剑指

2021-11-02 16:46:20 290

原创 Ubuntu -- 无法正常安装卸载ssh以及chattr无反应的问题

首先,坦白的说,我的工作站可能是被黑了,因为一开始的口令确实太弱,也没想到有人敢来中科院iie黑电脑。 当然,也可能是我乱改东西改坏了吧......安装命令及报错信息1、sudo apt-get install openssh-server报错信息:Preparing to unpack .../openssh-server_1%3a7.6p1-4ubuntu0.5_amd64.deb ...Unpacking openssh-server (1:7....

2021-10-19 13:08:40 1689 6

原创 刷题进阶 -- 剑指Offer、力扣算法题

力扣的刷题计划展览罢了懒得记录题解了,刷题地址「剑指 Offer」 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台刷题过程中发现动态规划是弱项,找了动态规划的学习计划:「动态规划」 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台以及递归、回溯、BFS、DFS:「算法」 - 学习计划 - 力扣(LeetCode)全球极客挚爱的技术成长平台发现一个面试小题库:「高效制胜」 - 学习计划 - 力扣(LeetCode)全...

2021-09-28 15:09:06 313

原创 Ubuntu与Docker -- Docker安装、使用、容器环境搭建

目录一、安装DockerDocker 教程Docker的应用场景Docker 的优点1、快速,一致地交付您的应用程序2、响应式部署和扩展3、在同一硬件上运行更多工作负载二、镜像和容器三、Docker里的Ubuntu一、安装Docker 安装可以按照菜鸟教程的步骤来,我在安装的时候没有出现异常。 教程地址:Docker 教程 | 菜鸟教程Docker 教程Docker 是一个开源的应用容器引擎,基于Go 语言并遵从 Apac...

2021-09-22 15:39:15 1575

原创 Python数据处理 - 查看海量图片

目标检测模型在测试集上做推理的时候,有时会是几十万张的规模,这样就没办法用文件资源管理器打开,会卡死,只能用程序一张张打开查看效果。import matplotlib.pyplot as plt # plt 用于显示图片import matplotlib.image as mpimg # mpimg 用于读取图片import numpy as npimport timeimport os# backend = matplotlib.get_backend() # 后端内核...

2021-09-17 12:41:32 226

原创 CV进阶 -- 目标检测原理及代码实现、YOLO源码解读学习

同样的,为了求职和更好的进行组里的项目,学习之后,总结一下文章内容及链接合集。

2021-09-14 15:14:31 455

原创 Ubuntu18.04无法连接向日葵服务器的问题及解决

向日葵连不上服务器了,解决之后写一篇记录一下。 问题:向日葵软件打开之后左下角显示连接失败,n秒后重连。 附加情况:网络正常,lightdm组件正常,权限正常。 真实问题原因:查看向日葵的日志,发现连接网址失败,猜测是443端口关闭了。 解决:打开443端口。sudo ufw allow 443 输入sudo ufw status查看,出现:Status: activeTo ...

2021-09-10 13:10:18 9383

原创 Ubuntu18.04无法进入图形界面桌面的问题及解决

某天我的机器连不上向日葵的服务器了,我以为是向日葵和lightdm的问题,于是就重装了一下向日葵和lightdm,结果进不去图形界面的桌面了,用了两天来寻找各种原因和解决方法,结果弄好后我发现是研究所的网络有问题导致连不上向日葵服务器。特此记录,以免再出问题浪费时间。一、问题描述 在Ubuntu图形界面登陆界面输入密码之后,黑屏一闪,又跳转到登录界面,如此循环。二、原因分析1、.Xauthority文件问题(这也是我的机器在这次出的问题) 主目...

2021-09-09 10:51:43 4699

原创 Ubuntu远程办公 -- 设置SSH服务

SSH分客户端(连接端)openssh-client和服务端(被连接端)openssh-server,Linux和Windows系统都有。目录1、查看当前的ubuntu系统是否安装了ssh-server服务(默认只安装了ssh-client服务)2、安装ssh-server服务3、再次查看安装成功与否4、确认ssh-server是否已启动5、配置SSH自定义端口6、重启SSH服务7、远程连接SSH服务端1、查看当前的ubuntu系统是否安装了ssh-s...

2021-08-20 13:24:12 583

原创 爬虫进阶 -- 爬虫相关定义、反爬机制及其破解

经历了好几个小爬虫项目的“摧残”,我想着不能白做,于是有了这篇文章。什么是爬虫和反爬虫爬虫:使用任何技术手段,批量获取网站信息的一种方式。反爬虫:使用任何技术手段,阻止别人批量获取自己网站信息的一种方式。Headers相关概念

2021-08-18 21:22:31 1718 9

原创 Python日志保存 -- print内容输出到txt文件、nohup&时的输出保存

想要将每次爬虫的日志保存一下,查阅资料后,总结两种。一是使用脚本内的代码来保存,二是使用命令行的命令来保存。代码保存代码保存的好处是通用化,但是也不用每次都追加,那样会得到一个超大的文件。几次运行后,可以修改输出文件位置。不修改则是继续在源文件后追加写入。import sys # 需要引入的包# 以下为包装好的 Logger 类的定义class Logger(object): def __init__(self, filename="Default.log"):..

2021-03-05 23:27:08 3376 1

原创 Linux与Xshell:登陆服务器与后台执行程序

参考文章:https://blog.csdn.net/qq_23128065/article/details/88257680https://jenrey.blog.csdn.net/article/details/86717859https://www.cnblogs.com/jackadam/p/9814173.htmlhttps://blog.csdn.net/weixin_44485744/article/details/109806272

2021-02-09 18:02:07 500

原创 Selenium爬虫 -- Pyhton进阶:使用cookie登陆某网站

今天下午运行着爬虫就出门了一趟,等回来后发现早就运行完了,仔细一看输出的信息原来是遇到了领英的登录异常检查,需要输入安全验证代码。想想也确实应该被检测到了,每次运行爬虫的时候都是一个新的浏览器,然后重新登陆,几天之内我登录了好多次,正常人应该不会,所以我决定这次学一下cookie登陆。大致思想很简单:先手动在selenium中输入代码登录到个人空间,然后获取页面的cookie保存起来。然后就可以使用这个cookie来登录了,也不会被发现

2021-02-08 19:45:52 374 3

原创 Linux笔记 -- Pyhton虚拟环境&Linux系统基本操作&Vim编辑器基本操作

Linux基本操作:Linux 命令大全 | 菜鸟教程Vim基本操作:Linux vi/vim | 菜鸟教程目录Python虚拟环境virtualenv安装创建激活装包退出Python虚拟环境virtualenv点此查看完整官网介绍安装pip install virtualenv # 在根目录中运行此命令pip3 install virtualenvwrapper # 在根目录中运行此命令创建virtualenv venv_lks # 在根.

2021-01-20 16:30:49 119

原创 Python数据库 -- 查询结果处理、SQL表内数据去重

Python脚本查询数据库及返回结果的处理MySQL表内既有数据的去重思想及SQL语句

2021-01-13 11:59:23 2196

rufus-3.17安装程序

rufus-3.17安装程序 重装Ubuntu系统

2021-11-22

json2txt4yolov5.py

python代码。将labelme标注好的json文件,经过读取数据并转换计算坐标后,转为yolov5训练时需要的txt文件

2021-06-25

基于知识图谱的问答系统 - SpringBoot整合Neo4j开发问答系统(完整版)

基于知识图谱的问答系统 -- SpringBoot整合Neo4j开发问答系统 代码和资源完整,请尽量自行学习 PS:资源的下载积分会随下载次数自动增加越来越多,如果您积分不够的话可以私信我重置下载分数

2020-06-09

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除