深度学习python库使用
文章平均质量分 88
一些在深度学习中会被应用到的python库的使用记录
万里鹏程转瞬至
一名热爱深度学习算法实践的算法工程师,工作日长期活动在线,有项目研发技术问题均可私聊。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
win10下cuda12.1 +troch2.4.1+vs2022环境下编译安装flash-attn
win10下cuda12.1 +troch2.4.1+vs2022+python3.8环境下编译的flash-attn库,同时有编译好的whl文件的下载地址原创 2024-10-03 20:44:00 · 2684 阅读 · 5 评论 -
LangSAM项目优化,将SAM修改为MoblieSAM,提速5~10倍
Language Segment-Anything 是一个开源项目,它结合了实例分割和文本提示的强大功能,为图像中的特定对象生成蒙版。它建立在最近发布的 Meta 模型、segment-anything 和 GroundingDINO 检测模型之上,是一款易于使用且有效的对象检测和图像分割工具。然而在整个流程中,GroundingDINO 通常耗时0.6s作用,segment-anything 通常耗时5-8s左右。原创 2024-03-28 22:14:36 · 1746 阅读 · 0 评论 -
基于yolo-world与mobile_sam实现类似lang-segment-anything
lang-segment-anything基于segment-anything 和 GroundingDINO 实现基于语言分割出任意对象,但是segment-anything 模型与GroundingDINO 都是运算量比较大的模型。原创 2024-03-24 09:17:46 · 2037 阅读 · 0 评论 -
lang-segment-anything使用介绍
Language Segment-Anything 是一个开源项目,它结合了实例分割和文本提示的强大功能,为图像中的特定对象生成蒙版。它建立在最近发布的 Meta 模型、segment-anything 和 GroundingDINO 检测模型之上,是一款易于使用且有效的对象检测和图像分割工具。基于GroundingDINO 实现Zero-shot text-to-bbox方法。使用 Lightning AI 应用程序平台轻松部署。可自定义的文本提示,用于精确的对象分割。原创 2024-03-19 21:35:34 · 4660 阅读 · 6 评论 -
FastDeploy项目简介,使用其进行(图像分类、目标检测、语义分割、文本检测|orc部署)
FastDeploy是一款全场景、易用灵活、极致高效的AI推理部署工具, 支持云边端部署。提供超过 🔥160+ Text,Vision, Speech和跨模态模型📦开箱即用的部署体验,并实现🔚端到端的推理性能优化。包括 物体检测、字符识别(OCR)、人脸、人像扣图、多目标跟踪系统、NLP、Stable Diffusion文图生成、TTS 等几十种任务场景,满足开发者多场景、多硬件、多平台的产业部署需求。原创 2024-01-25 22:51:16 · 4654 阅读 · 2 评论 -
使用rembg库提取图像前景(移除图像背景),并构建web应用
在传统图像处理中,前景是无法被直接提取出来,都是通过将前景图像的灰度与梯度特征不断进行增强,使得其与背景呈现显著性差异;在深度学习图像处理领域中,图像内容可以被定义为前景与背景两部分,其中感兴趣图形的被定义为前景,不感兴趣区域的背景。如在目标检测中,被框出来的目标则被定义为前景。如果要使用u2net_human_seg、u2net_cloth_seg、u2netp等模型进行前景提取,也可以自行下载。处理本地文件夹,命令如下所示,./image为要处理的图片目录,image_out为处理结果的存放目录。原创 2024-01-10 21:40:12 · 4180 阅读 · 0 评论 -
再次认识ultralytics项目(大目标检测、小目标检测、yolov8-ghost、旋转目标检测、自动标注)
是一款前沿、最先进(SOTA)的模型,基于先前 YOLO 版本的成功,引入了新功能和改进,进一步提升性能和灵活性。YOLOv8 设计快速、准确且易于使用,使其成为各种物体检测与跟踪、实例分割、图像分类和姿态估计任务的绝佳选择。随着其官方团队对ultralytics项目的不断完善,其所支持的功能在不断扩展,为此重新对ultralytics项目进行深入分析。原创 2024-01-07 14:45:00 · 9962 阅读 · 2 评论 -
基于gradio快速部署自己的深度学习模型(目标检测、图像分类、语义分割模型)
gradio是一款基于python的算法快速部署工具,本博文主要介绍使用gradio部署目标检测、图像分类、语义分割模型的部署。相比于flask,使用gradio不需要自己构造前端代码,只需要将后端接口写好即可。此外,基于gradio实现的项目,可以托管到huggingface。原创 2023-12-26 22:14:41 · 5157 阅读 · 2 评论 -
旋转框检测项目相关python库知识总结(mmrotate、ppyolo_r、yolov5_obb)
旋转框常用于检测带有角度信息的矩形框,即矩形框的宽和高不再与图像坐标轴平行。相较于水平矩形框,旋转矩形框一般包括更少的背景信息。旋转框检测常用于遥感等场景中,本博文简单的介绍了可应用于旋转框数据训练的开源库,数据结构、OBB关键知识(如何实现角度预测、标签预测),最后分享了两个基于mmrotate自定义的旋转框模型(yolox_obb)。原创 2023-11-24 20:21:13 · 3922 阅读 · 0 评论 -
使用ZoeDepth生成深度估计图
目前单目深度估计分为两个派系,。ZoeDepth是 第一个结合相对和绝对深度的多模态单目深度估计网络。本博文仅记录使用ZoeDepth生成深度估计图的过程(因为直接按项目说明中进行使用会报错误)项目地址: https://github.com/isl-org/ZoeDepth论文地址: https://arxiv.org/pdf/2302.12288.pdf。原创 2023-09-20 22:10:07 · 11508 阅读 · 20 评论 -
基于pyqt5实现一款简单的界面软件(radioButton、comboBox、pushButton、图片显示)
pyqt5使用记录涉及pyqt界面控件的基本介绍,使用designer设计界面ui,并将其转化为py代码。关于界面主要实现radioButton的互斥选中事件、comboBox的选中事件(依据list添加item)、pushButton的单击事件、槽函数自动绑定、图片的拖入显示。原创 2023-07-06 20:01:15 · 4856 阅读 · 0 评论 -
Segment Anything使用手册(交互式数据标柱|自动数据标柱)
主要内容包含segment-anything项目的安装、基于SamPredictor对单点输入生成mask、基于SamPredictor对多点输入生成mask、基于SamAutomaticMaskGenerator自动生成mask。Segment Anything项目是一个可以对任何图像进行分割的项目,其论文介绍可以查看https://blog.csdn.net/a486259/article/details/131137939,其测试网站为 https://segment-anything.com。原创 2023-06-13 18:57:19 · 18670 阅读 · 7 评论 -
UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte 0x98 in position 1086: illegal multibyte sequence
安装yolov8时报错解决方法原创 2023-04-07 21:36:58 · 1411 阅读 · 0 评论 -
基于python下selenium库实现交互式图片保存操作(批量保存浏览器中的图片)
Selenium是最广泛使用的开源Web UI(用户界面)自动化测试套件之一,可以通过编程与浏览量的交互式操作对网页进行自动化控制。基于这种操作进行数据保存操作,尤其是在图像数据的批量保存上占据优势。本博文基于selenium 与jupyterlab实现批量保存浏览器搜索到的图片Selenium的详细使用可以参考:https://blog.csdn.net/sinat_28631741/article/details/115634230原创 2023-02-10 20:55:27 · 4981 阅读 · 0 评论 -
使用yolov7训练用labelme标注的数据集
训练前必须先将yolov7.pt存储到yolov7的根目录下,下载链接:https://github.com/WongKinYiu/yolov7/releases/download/v0.1/yolov7.pt。数据下载链接:https://gitcode.net/a486259/data/-/blob/master/shipdata_yolo.zip。这里train就是设置训练集的路径,val是设置验证集的路径,test是设置测试集的路径。–data data/myship.yaml 用于设置数据集。原创 2022-10-11 21:11:14 · 4998 阅读 · 2 评论 -
yolov5-6.1的完全使用手册,含模型训练测试(可训练自己的数据集)
将以下代码保存到yolov5的data目录下,文件名为mycoco.yaml。其中的images/train下为训练集图像,images/val为验证集图像` ` 训练过程中的部分输出为: ` ``bash。原创 2022-10-08 16:55:31 · 7886 阅读 · 6 评论 -
使用einops简化数据维度操作
einops主要实现了三个函数:rearrange、reduce、repeat。rearrange用于重排数据,reduce用于对数据进行sum、mean、max等统计,repeat用于重复数据的维度。通过使用einops的函数可以便捷的对数据的维度仅修改操作,此外einops的数据操作还可以在神经网络模型的forward中生效。用法参考:http://einops.rocks/1-einops-basics/官网地址:http://einops.rocks/原创 2022-09-21 20:11:11 · 3188 阅读 · 6 评论 -
ipdb python下的debug利器
ipdb是一个IPython的python下debug神器,支持在代码中添加断点,进行单步调试,支持在调试过程中查看各种变量的值,新增修改断点,或跳过特定断点。以往进行python代码的调试都是通过pycharm或vscode添加断点,在控制台执行时则无法进行断点控制,现在基于ipdb库,可以实现极其便捷的断点调试功能。安装命令ipdb官网介绍https博主把ipdb断点调试的功能分为三部分介绍,分别为基本断点调试,变量管理查看,高级断点调试。这分别对应了不同的ipdb断点调试参数。...原创 2022-07-23 03:30:00 · 5343 阅读 · 0 评论 -
基于hydra库实现yaml配置文件的读取(支持命令行参数)
前几天博主研究了argparse库的使用,发现较为方便。但是应对参数较多的场景时,在命令行里修改参数就变得较为麻烦。因此转向了对配置文件的使用,yaml是一个开放性的配置文件格式。使用yaml库加载不支持命令行参数,使用hydra库加载配置文件时可以支持命令行参数(实现对默认配置的新增、修改与删除)。hydra对于yaml配置文件中支持的格式有str、int、float、bool、list这5种格式,完全满足一般项目的基本配置了。...原创 2022-07-20 22:26:38 · 6358 阅读 · 0 评论 -
argparse库的基本使用
argparse库是python下的一个命令行参数管理库,支持int、str、float、bool、数组等5种基本数据类型。在解析命令行参数时还支持默认值。此外,还支持修改命令行参数,在代码中增加命令行参数等操作。通过argparse库,可以实现参数的简易管理,控制代码执行中的一些流程或参数值。...原创 2022-07-18 14:43:40 · 1521 阅读 · 0 评论 -
AutoAlbument 用于深度学习的自动数据增强库
AutoAlbument是一种自动搜索数据最佳增强策略的工具。AutoAlbument是一种AutoML工具,它使用更快的自动增强算法从数据中学习图像增强策略。它使用户无需手动选择增强和调整其参数。AutoAlbument在后台,使用了更快的自动增强算法。简而言之,这个想法是使用一种类似GAN的架构,其中生成器对一些输入图像应用增强,鉴别器必须确定图像是否增强。此过程有助于找到将生成与原始图像相似的图像的增强策略。AutoAlbument的实现是以Faster AutoAugment论文为理论的(Faste原创 2022-07-09 10:04:22 · 1689 阅读 · 0 评论 -
语义分割模型库segmentation_models_pytorch的详细使用介绍
segmentation_models_pytorch(后文简称smp)是一个用于语义分割的高级模型库,支持9种语义分割网络,400多座编码器,本来对这只支持个别网络的模型库博主是不感兴趣的。但是,在查看到好几个竞赛的top方案都是使用unet++(efficientnet做编码器),博主心动了。如果想要使用更多更全的语义分割模型还是推荐使用MMSegmentation,把MMSegmentation作为语义分割模型库使用可以参考pytorch 24 把MMSegmentation的作为pytorch的语义原创 2022-07-07 19:36:48 · 9903 阅读 · 15 评论 -
mmdetection ValueError: need at least one array to concatenate解决方案
在mmdetection中有时候训练模型会出现ValueError: need at least one array to concatenate的错误,详情如下图所示。很多人都说是mmdet/dataset下coco.py或voc.py中CLASSES设置与数据集对应不上,博主不以为然。因为在mmdetection2中,不需要到mmdet/dataset中修改CLASSES,只需要在训练配置文件中中设置一下就行了。config解释器会通过继承自动修改CLASSES的值,具体可见下图,或参考mmdetect原创 2022-06-26 22:34:03 · 14591 阅读 · 6 评论 -
Flask 的完全使用教程(文件上传下载,cookie,session,template使用)
Flash是python下的一个轻量级web服务框架,通过Flash可以快速的搭建api服务器和各位网站,在深度学习中Flash用的最多的就是模型的部署。配合上一些c++ dll库的调用,比如这个库(python通过导入自定义dll实现显存释放_万里鹏程转瞬至的博客-CSDN博客)可以实现python下的显存释放,在工程上堪称完美。博主在这里简单分析Flash建站的使用经验,如url绑定、get参数获取、上传文件、下载文件等等的实现。Flask的安装:pip install Flask 以下代码实现了fla原创 2022-06-24 15:39:48 · 1469 阅读 · 4 评论 -
MMDeploy快速安装及使用说明
官网原文详细地址快速上手 — mmdeploy 0.4.0 文档在这里对快速上手进行简单说明,mmdeploy支持open-mmlab旗下的多个开源框架中模型的部署,具体如下图所示。我们为 OpenMMLab 各算法库提供了统一的模型部署工具箱。已支持的算法库如下所示,未来将支持更多的算法库MMClassificationMMDetectionMMSegmentationMMEditingMMOCRMMPose模型可以导出为多种推理引擎文件,并在对应的后端上进行推理。 如下后端已经支持,后续将原创 2022-06-22 13:59:09 · 4315 阅读 · 0 评论 -
mmdetection2的使用教程从数据处理、配置文件到训练与测试(支持coco数据和pascal_voc数据)
本文主要讲述mmdetection的训练与测试,以数据处理为起点,到数据集划分、数据集转换、配置文件编写、模型训练与测试和使用。由于mmdetection2默认的数据格式是coco格式,而labelimg生成的标注文件却是xml(最贴近voc数据),为此以coco数据集为基准。我们可以使用mmdetection中的数据转换方法将pascal_voc数据集转换为coco数据集,从而实现对coco数据和pascal_voc数据的支持。pascal_voc数据集转换为coco数据集前需要注意,一定要先划分数据集(原创 2022-05-07 09:48:39 · 3972 阅读 · 15 评论 -
EISeg——应用于语义分割的自动标注软件
1、介绍EISeg(Efficient Interactive Segmentation)是以RITM及EdgeFlow算法为基础,基于飞桨开发的一个高效智能的交互式分割标注软件。涵盖了通用、人像、遥感、医疗等不同方向的高质量交互式分割模型,方便开发者快速实现语义及实例标签的标注,降低标注成本。 另外,将EISeg获取到的标注应用到PaddleSeg提供的其他分割模型进行训练,便可得到定制化场景的高精度模型,打通分割任务从数据标注到模型训练及预测的全流程。模型准备在使用EIseg前,请先下载原创 2022-04-14 20:01:08 · 24464 阅读 · 39 评论 -
Albumentations——强大的数据增强库(图像分类、分割、关键点检测、目标检测)
图像增强的目的是从现有数据中创建新的训练样本。Albumentations是一个用于图像增强的Python库。图像增强用于深度学习和计算机视觉任务,以提高训练模型的质量。之所以分享这个库的使用,是因为这个库极其强大。Albumentations库支持图像分类、语义分割、实例分割、关键点检测、目标检测,同时还支持这些任务的融合(也就是混合数据,多任务)。比如:支持对目标检测+语义分割的数据进行增强。其支持30多种图像扩充方法,且其响应速度极其快。此外,基于ALbumentations的特性,博主在本文的末尾实原创 2022-04-11 19:56:40 · 10992 阅读 · 3 评论 -
__getattribute__的妙用,实现对象实例的“继承“与方法重载
在面向对象编程中,继承当然是子类继承父类。在这里博主基于python内置的魔法函数,突发奇想实现了子类继承一个已经被实例化的对象。其核心原理就是__getattribute__的妙用,__getattribute__可以拦截对象属性访问,通过__getattribute__对访问的属性进行拦截,当访问到的是重载后的方法时,返回子类的方法,当访问到的是未知的方法时返回被实例化对象的方法。1、具体实现这里以继承pytorch的model实现...原创 2022-04-07 13:37:44 · 754 阅读 · 0 评论 -
pytorch_grad_cam——pytorch下的模型特征(Class Activation Mapping, CAM)可视化库
深度学习是一个"黑盒"系统。它通过“end-to-end”的方式来工作,中间过程是不可知的,通过中间特征可视化可以对模型的数据进行一定的解释。最早的特征可视化是通过在模型最后一个conv层的Global average pooling实现,并将分类层设置为单个全连接层。通过Global average pooling的值来确定各个feature map的权重,然后累加到一起实现可视化。后来有衍生出了一系列,基于特定class label反向传播获取梯度的可视化方法,Grad-CAM。更为详细的发展路线可以参原创 2022-04-01 19:58:59 · 18769 阅读 · 33 评论 -
timm——pytorch下的迁移学习模型库·详细使用教程
博主个人认为timm项目是一个站在大佬肩上的图像分类模型库,通过timm可以轻松的搭建出各种sota模型(目前内置预训练模型592个,包含densenet系列、efficientnet系列、resnet系列、vit系列、vgg系列、inception系列、mobilenet系列、xcit系列等等),并进行迁移学习。下面详细介绍timm的基本用法和高级用法,基本用法指用timm实现出迁移学习模型,构造出知识蒸馏模型;高级用法指使用timm的内置模块实现自己的网络,及对timm内置模型的修改和微调。此外,tim原创 2022-03-16 14:41:57 · 54333 阅读 · 12 评论 -
python中偏函数functools.partial 的使用
通过functools.partial偏函数可以固定函数中的特定参数,在不使用偏函数时,固定函数的参数需要重新def函数进行调用,具体的使用方式如下所示def myfun(name,age,major,university): print("my name is {}, age is {},I majored in {} in {} University".format(name,age,major,university))def myfun2(major,university):原创 2022-03-14 15:28:42 · 3507 阅读 · 0 评论 -
更优雅的字符串print——pprint库的使用
pprint是一个python下的输出格式化库,可以美化输出字符串的格式,主要是实现对字符串换行宽度、缩进、嵌套对象打印深度的控制,此外还可以实现对np数组实现更为紧凑的输出。下面对pprint库的使用做一个详细的介绍1、安装pprintpip installpprint2、基本使用mylist = ["Semantic segmentation is a fundamental task in computer vision and enables many downstream a.原创 2022-03-14 13:49:29 · 4156 阅读 · 6 评论 -
win10下安装mmdetection的完整教程(使用gitee完成,对无法访问github的用户友好)
通过在两台不同的电脑上的测试,发现mmdetection对pytorch没有特殊需求,正常的pytorch版本大于1.6都可以使用mmdetection(博主环境为torch 1.10.1+cu113)。但是要求win10系统环境配置好了gpu版的pytorch执行环境。在这里完整的记录win10下安装和测试mmdetection的过程。安装步骤步骤一、安装mmcv 命令pip install mmcv-full==1.4图1安装mmcv-full步骤二、安装git因为安装..原创 2022-03-07 22:21:13 · 3710 阅读 · 3 评论
分享