
开源项目分析与使用
文章平均质量分 92
对与深度学习图像领域相关的开源项目进行基本分析与使用
万里鹏程转瞬至
一名热爱深度学习算法实践的算法工程师,工作日长期活动在线,有项目研发技术问题均可私聊。
展开
-
开源项目介绍:Liger-Kernel 用于 LLM 训练的高效 Triton 内核
Liger Kernel 是专为 LLM 训练设计的 Triton 内核集合。它可以有效地提高 20% 的多 GPU 训练吞吐量,并减少 60% 的内存使用。我们已经实施了 Hugging Face 适配,以及更多即将推出的功能。该内核可与 Flash Attention、PyTorch FSDP 和 Microsoft DeepSpeed 配合使用,开箱即用。我们欢迎社区的贡献,以收集用于 LLM 训练的最佳内核。RMSNorm、RoPE、SwiGLU、CrossEntropy、FusedLinearCr原创 2025-03-23 15:52:04 · 1032 阅读 · 0 评论 -
开源项目介绍:triton
Triton 的核心理念是基于分块的编程范式可以促进神经网络的高性能计算核心的构建。CUDA 编写属于传统的 “单程序,多数据” GPU 执行模型,在线程的细粒度上进行编程,Triton 是在分块的细粒度上进行编程。例如,在矩阵乘法的情况下,CUDA和Triton有以下不同。原创 2025-03-23 09:36:43 · 931 阅读 · 0 评论 -
开源项目介绍:Native-LLM-for-Android
Native-LLM-for-Android项目主要提供2个参考点,1、将LLM模型导出为onnx模型,2、在安卓端实现LLL模型的运行,本博文主要关注将llm导出为onnx推理(对现有的llm模型进行局部修改并导出),并以miniCPM模型为例进行测试。同时,Native-LLM-for-Android项目还有一些列模型量化代码可以学习。原创 2025-03-08 23:28:29 · 1248 阅读 · 0 评论 -
使用LightGlue进行图像配准并提取图像重叠区域
发表日期:2023年6月23日LightGlue是一个在精度上媲美Superglue,但在速度上比Superglue快一倍的模型。通过博主实测,LightGlue的配准效果比Superglue好,LightGlue配准后的结果错误点更少,同时提取的重叠区域更精准。基于Superpoint+Superglue 提取重叠区域的代码可以参考。原创 2025-02-04 21:30:09 · 1299 阅读 · 2 评论 -
一文了解22-24年的7篇知识蒸馏相关论文、实现代码及其有益效果
2024年,SDD指出困难样本中存在类间相似情况,提出基于SPP得到21个分块然后对比局部块与全局块的结果差异区分差异化设置loss权重,其效果比Logit Standardization要好;2024年,Logit Standardization提出了直接基于logit值计算KD loss的偏差问题,将标准化添加到KD中,属于对logit值蒸馏方法的改进,并在各种现有的知识蒸馏方法应用Standardization中,取得了有效增益。可以与SDD方法共同补充到各种基于逻辑值的蒸馏方法中。原创 2025-02-01 22:45:37 · 1591 阅读 · 0 评论 -
项目快过:MARCONet | 适用于文字识别的图像盲超分修复
论文地址:https://arxiv.org/pdf/2303.14726项目地址:https://github.com/csxmli2016/MARCONet发布时间:2023年4月22日盲文本图像超分辨率(SR)是一个挑战,因为人们需要应对不同的字体风格和未知的退化。为了解决这一问题,。尽管如此,。这个问题进一步复杂化了复杂结构的汉字,例如,。在这部工作中,我们提出了一个新颖的模型,更关注文字结果。原创 2024-12-14 11:45:45 · 1080 阅读 · 0 评论 -
项目快过:知识蒸馏 | 目标检测 |FGD | Focal and Global Knowledge Distillation for Detectors
公开时间:2022年3月9号项目地址:https://github.com/yzd-v/FGD论文地址:https://arxiv.org/pdf/2111.11837知识蒸馏已成功地应用于图像分类。然而,。本文指出,在目标检测中,教师和学生的特征在不同的领域有很大的差异,特别是在前景和背景上。如果我们平均地提取它们,。因此,我们。。由于我们的方法。我们在不同骨架的各种检测器上进行了实验,结果表明,该学生检测器取得了良好的mAP改进。原创 2024-12-01 21:43:30 · 1148 阅读 · 0 评论 -
知识蒸馏中有哪些经验| 目标检测 |mobile-yolov5-pruning-distillation项目中剪枝知识分析
项目时间:2022年mobile-yolov5-pruning-distillation是一个以yolov5改进为主的开源项目,主要包含3中改进方向:更改backbone、模型剪枝、知识蒸馏。这里主要研究其知识蒸馏部分,根据其分享的实验数据,获取对目标检测中模型剪枝的认知。希望阅读本博文的读者,能给项目一个satr。该项目中关于知识蒸馏首先介绍了基本分类情况,关于实验主要是分享了三种蒸馏策略下的模型效果。蒸馏是希望将T模型学习到的知识迁移到S模型中。原创 2024-11-29 23:45:00 · 863 阅读 · 0 评论 -
TensorRT-For-YOLO-Series项目:实现yolov10模型的python-tensorrt推理(对比int8与fp16推理差异)
项目地址:https://github.com/Linaom1214/TensorRT-For-YOLO-Series/tree/cuda-python算法支持状态:2024.6.16 Support YOLOv9, YOLOv10, changing the TensorRT version to 10.02023.8.15 Support cuda-python2023.5.12 Update2023.1.7 support YOLOv82022.11.29 fix some bug tha原创 2024-09-08 20:23:41 · 1523 阅读 · 0 评论 -
基于ONNX-YOLOv10-Object-Detection项目实现yolov10模型onnx-python推理
项目依赖:onnxruntime-gpu、opencv-python、imread-from-url、cap-from-youtube、ultralytics。原创 2024-09-08 16:59:10 · 1058 阅读 · 0 评论 -
基于mediamtx+ffmpeg实现视频推流,基于python-deffcode实现视频拉流
软件依赖:mediamtx、ffmpegpython包依赖:deffcodemediamtx下载地址:https://github.com/bluenviron/mediamtx/releasesffmeg下载地址:https://ffmpeg.org/download.htmldeffcode安装命令:pip install deffcode。原创 2024-09-04 08:21:53 · 1274 阅读 · 0 评论 -
MicroNet关键代码解读(Micro-block与Dynamic Shift-Max的实现代码)
在MicroNet论文中提出了Micro-block与Dynamic Shift-Max,这里对其代码实现进行深入分析。最终结论是Micro-block的定义实现十分混乱,MicroNet比Moblienet强主要是深度分离卷积的性能没有充分挖掘到位,可以替换成conv1xk_group+convkx1_group的组合,从而在低flop的约束条件下实现了5个点左右的提升;另外一点是使用了带参数的激活函数,同时激活函数中提供了group间的数据交互,故再次提升了模型精度。原创 2024-09-01 21:04:50 · 1496 阅读 · 0 评论 -
基于ram++与groundingdino实现对图像自动检测
基于ram++算法与groundingdino可以实现对图像自动检测,ram++项目中也分享了与grounded-SAM连用的效果。这里对开源代码进行集成,实现ram++算法与groundingdino的连用。原创 2024-08-17 11:00:45 · 1048 阅读 · 0 评论 -
项目简介:pyiqa-sal | 图像质量评价代码库
这是一个纯python和pytorch编写的图像质量评估工具箱,提供了许多主流全参考(FR)和无参考(NR)指标的重新实现(如果有的话,结果会用官方matlab脚本校准)。借助GPU加速,我们的大多数实现都比Matlab快得多。同时也比torch实现的方法在调用上更加方便。原创 2024-08-17 09:55:51 · 1877 阅读 · 0 评论 -
项目分析:RAM++ | Open-Set Image Tagging with Multi-Grained Text Supervision
发表时间:2023年11月16论文地址:https://arxiv.org/pdf/2310.15200项目地址:https://github.com/xinyu1205/recognize-anythingrecognize-anything项目是Open-Set Image Tagging with Multi-Grained Text Supervision论文(RAM++)算法对应的开源项目,其中有RAM++、RAM、Tag2Text 3个算法的运行代码。原创 2024-08-11 20:36:16 · 1208 阅读 · 0 评论 -
项目快过(图像超分|知识蒸馏)| SRModelCompression | Compressing Deep Image Super-resolution Models
项目地址:https://github.com/Pikapi22/SRModelCompression论文地址:https://arxiv.org/pdf/2401.00523发表时间:2024年2月21日深度学习技术已被应用于图像超分辨率(SR)领域,在重建性能方面取得了显著的进展。现有的技术通常采用高度复杂的模型结构,这将导致较大的模型规模和缓慢的推理速度。这往往导致高能耗,并限制了其在实际应用中的采用。原创 2024-07-28 22:25:02 · 1682 阅读 · 1 评论 -
模型剪枝实战|基于torch-pruning库代码对yolov8进行剪枝
torch-pruning库是一个开源的模型剪枝库,yolov8是是一个2年前较为先进的目标检测模型。在torch-pruning库中有很多模型剪枝案例,本文以yolov8剪枝代码为案例进行分析,代码路径在torch-pruning项目下examples\yolov8\yolov8_pruning.py。本博文基于官方代码对coco128数据进行剪枝尝试,发现剪枝后的map有6个点的下降,这主要是coco128数据不够,同时官方的剪枝代码训练参数不够灵活。最终提出了修改意见,也对代码中关键部分进行分析。原创 2024-07-27 12:25:33 · 3438 阅读 · 9 评论 -
模型剪枝中有哪些经验|mobile-yolov5-pruning-distillation项目中剪枝知识分析
mobile-yolov5-pruning-distillation是一个以yolov5改进为主的开源项目,主要包含3中改进方向:更改backbone、模型剪枝、知识蒸馏。这里主要研究其模型剪枝部分,关于知识蒸馏后续在进行分析。关于更改非coco训出的backbone(使用moblienet替换),可以发现存在相助的精度下降,这表明imagenet域训练处的权重迁移到目标检测领域不如二次迁移的模型(先imagenet,再coco训练)。从项目代码分析中,主要学习到bn层的稀疏化训练是如何实现的(章节2.1原创 2024-07-26 06:15:00 · 1343 阅读 · 1 评论 -
论文快过(图像配准|Coarse_LoFTR_TRT)|适用于移动端的LoFTR算法的改进分析 1060显卡上45fps
项目地址:https://github.com/Kolkir/Coarse_LoFTR_TRT创建时间:2022年相关训练数据:BlendedMVSLoFTR [19]是一种有效的深度学习方法,可以在图像对上寻找合适的局部特征匹配。本文报道了该方法在低计算性能和有限内存条件下的设备上的优化工作。原来的LoFTR方法是基于一个ResNet [6]backbone和两个基于线性transformer[22]架构的模块。原创 2024-07-25 06:49:15 · 1517 阅读 · 0 评论 -
模型剪枝中有哪些经验 | yolov5prune项目中模型剪枝经验分析
项目地址:https://github.com/midasklr/yolov5prune项目时间:2022年1月yolov5prune项目虽然是一个2年前的项目,但其是一个比较良好的剪枝案例。从中可以学习到模型剪枝相关的必要知识,为此对其信息及相关代码进行总结性分析,若要使用该项目则需要自行阅读项目md文档。根据项目分析,得出以下经验信息:1、进行稀疏化训练后,模型精度会有所下降,但稀疏化训练后剪枝模型(withou finetrun)精度下降不大,再次finetrun后精度会恢复;原创 2024-07-22 03:15:00 · 1419 阅读 · 2 评论 -
项目快过(图像配准 | AsPanFormer) Detector-Free Image Matching with Adaptive Span Transformer
论文地址:https://arxiv.org/abs/2208.14201项目地址:https://github.com/apple/ml-aspanformercsdn论文简读:https://blog.youkuaiyun.com/qq_34426949/article/details/133861450在图像之间生成鲁棒和可靠的对应关系是各种应用程序的基本任务。为了在全局和局部粒度上捕获上下文,我们提出了一种基于探测器的匹配器,它基于变换器,采用了一种新的注意操作,能够以自适应的方式调整注意广度。原创 2024-07-21 14:40:49 · 1505 阅读 · 0 评论 -
基于torch-pruning库对resnet18在cifar100数据集上进行剪枝实验
torch-pruning库是一个基于torch的剪枝库,其使用可以参考https://hpg123.blog.youkuaiyun.com/article/details/140421837。在此之外,该项目本身也提供了一些基础代码。本博文主要以benchmarks目录下的main.py代码为运行对象。对比了全局剪枝、局部剪枝、稀疏化训练的效果,训练目的是模型加速3倍。首先进行fineturn,训练的resnet18在cifar100的精度为0.7788,在全局剪枝下,group_norm、l1、l2、lamp、ra原创 2024-07-20 22:39:30 · 1326 阅读 · 5 评论 -
模型剪枝 | Torch-Pruning 库入门级使用介绍
项目地址:https://github.com/VainF/Torch-PruningTorch-Pruning 是一个专用于torch的模型剪枝库,其基于DepGraph 技术分析出模型layer中的依赖关系。DepGraph 与现有的修剪方法(如 Magnitude Pruning 或 Taylor Pruning)相结合可以达到良好的剪枝效果。本博文结合项目官网案例,对信息进行结构话,抽离出剪枝技术说明、剪枝模型保存与加载、剪枝技术的基本使用,剪枝技术的具体使用案例。原创 2024-07-15 02:15:00 · 3604 阅读 · 0 评论 -
项目快过( Self-Calibrated Illumination)Toward Fast, Flexible, and Robust Low-Light Image Enhancement
现有的`低光图像增强技术`大多不仅难以处理视觉质量和计算效率,而且在未知的复杂场景中也通常无效。在本文中,我们开发了一个新的自校准照明(SCI)学习框架,用于在现实世界的弱光场景中快速、灵活和鲁棒的亮化图像。具体来说,我们建立了一个具有权重共享的级联照明学习过程来处理这个任务。考虑到级联模式的计算负担,我们构建了自校准模块,实现了各阶段结果之间的收敛,产生了仅使用单一基本块进行推理的增益(在以前的工作中尚未利用),大大降低了计算成本。然后,我们定义了无监督的训练损失,以提高模型的能力,可以适应一般的场景。进原创 2024-07-14 17:16:29 · 1037 阅读 · 0 评论 -
BasicSR项目(通用图像超分、修复、增强工具库)介绍
项目地址:https://github.com/XPixelGroup/BasicSR文档地址:https://github.com/XPixelGroup/BasicSR-docs/releasesBasicSR 是一个开源项目,旨在提供一个方便易用的图像、视频的超分、复原、增强的工具箱。BasicSR 代码库从2018年4月20日开始第一个提交,然后随着做研究、打比赛、发论文,逐渐发展与完善起来。它从最开始的针对超分辨率算法到后来拓展到其他更多复原增强相关的算法,原创 2024-07-14 13:39:39 · 2020 阅读 · 0 评论 -
基于LoFTR_TRT项目实现LoFTR模型的trt推理与onnx推理,3060显卡下320图像30ms一组图
本博文主要记录了使用LoFTR_TRT项目将LoFTR模型导出为onnx模型,然后将onnx模型转化为trt模型。并分析了LoFTR_TRT与LoFTR的基本代码差异,但从最后图片效果来看是与官网demo基本一致的,具体可以。最后记录了onnx模型的使用【特征点提取、图像重叠区提取】,同时记录了在3060显卡,cuda12.1+ort17.1,输入尺寸为320x320的环境下,30ms一组图。原创 2024-07-07 15:11:01 · 1295 阅读 · 0 评论 -
使用LoFTR模型进行图像配准、重叠区提取
LoFTR模型源自2021年CVPR提出的一篇论文,其基于pytorch实现图像配准,与基于superpoint+superglue的方法不同,是一个端到端的图像配准方法。与LoFTR官方库相关的有loftr2onnx库,整体来说loftr2onnx库使用更方便,效果更好。但loftr2onnx转出的onnx模型是有问题的,不能使用。原创 2024-07-06 22:54:59 · 1958 阅读 · 0 评论 -
AIRNet模型使用与代码分析(All-In-One Image Restoration Network)
本博客对AIRNet的关键结构实现,loss实现,data_patch实现进行深入分析,并对模型进行推理使用。AIRNet提出了一种较为简易的pipeline,以单一网络结构应对多种任务需求(不同类型,不同程度)。但在效果上看,ALL-In-One是不如One-By-One的,且本文方法的亮点是batch内选择patch进行对比学习。在与sota对比上,仅是Denoise任务精度占优,在Derain与Dehaze任务上,效果不如One-By-One的MPRNet方法。原创 2024-06-09 21:12:11 · 2692 阅读 · 4 评论 -
将gdip-yolo集成到yolov9模型项目中(支持预训练的yolov9模型)
YOLOv9意味着实时目标检测的重大进步,引入了可编程梯度信息(PGI)和通用高效层聚合网络(GELAN)等开创性技术。该模型在效率、准确性和适应性方面取得了显著改进,在MS COCO数据集上建立了新的基准。YOLOv9项目由一个独立的开源团队开发,建立在Ultralytics YOLOv5提供的强大代码库的基础上,展示了人工智能研究社区的合作精神。yolov9模型在coco数据集的效果如下所示。原创 2024-04-18 21:43:09 · 662 阅读 · 0 评论 -
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 · 1143 阅读 · 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 · 3301 阅读 · 6 评论 -
将FastSAM中的TextPrompt迁移到MobileSAM中
SAM提到了text prompt,但其代码中没有发布实现方式,MobileSAM也没有实现text prompt,而FastSAM以一种巧妙的方式实现了text prompt。这主要因为,在现有成熟的训练体系下加入Prompt机制是比较复杂的,MobileSAM基于解耦蒸馏绕过Prompt的训练(`使用sam原始的prompt的`),而FastSAM将Prompt看作一种结果稀疏化的方法(`对于位置类prompt,采用逻辑操作进行mask选择;对于text的prompt,基于clip对实例切片进行余弦原创 2024-03-17 15:12:48 · 576 阅读 · 0 评论 -
如何实现sam(Segment Anything Model)|fastsam模型
通过本博文的查阅与分析,实现fastsam是较为简便的,且fastsam的性能可以随着全景实例分割模型的发展而进一步提升,同时也说明了fastsam中prompt的实现。而在sam中,各种实现较为生涩难懂,主要说明sam的模型结构,基本原理,数据生成范式。sam的亮点在于基于少量的语义分割标签,迭代出了一个1.1B 标签超大型数据集,其不断扩展标注数据量的思想是值得学习的;而在fastsam中则是对SAT重新定义得出SAT,基于对全景实例分割模型的后处理实现了类似sam的性能。原创 2024-03-13 22:48:16 · 3488 阅读 · 0 评论 -
3060ti显卡+cuda12.1+win10编译安装生成fastdeploy的c++与python库
在cuda12中,调用官方发布的fastdeploy会出现报错,故此自行编译fastdeploy库。官网编译教程:https://github.com/PaddlePaddle/FastDeploy/blob/develop/docs/cn/build_and_install/gpu.md可选编译选项。原创 2024-02-08 00:03:29 · 540 阅读 · 0 评论 -
gdip-yolo项目解读:gdip模块 |mdgip模块 |GDIP regularizer模块的使用分析|生成带雾图像|生成低亮度图片
gdip-yolo是2022年提出了一个端到端的图像自适应目标检测框架,其论文中的效果展示了良好的图像增强效果。其提出了gdip模块 |mdgip模块 |GDIP regularizer模块等模块,并表明这是效果提升的关键。为此对gdip-yolo的项目进行深入分析。通过对gdip-yolo项目的分析,终于明白了为什么gdip-yolo与ia-yolo的数据存在差异其数据增强比例不一样。原创 2024-01-20 10:21:08 · 2163 阅读 · 6 评论 -
AOT-GAN-for-Inpainting项目解读|使用AOT-GAN进行图像修复
当前的图像修复方法可能会在高分辨率图像(例如 512x512)中产生扭曲的结构和模糊的纹理。这些挑战主要来自:(1)来自较远区域的图像内容推理,(2)对大缺失区域的细粒度纹理合成。为了克服这两个挑战,提出了一种增强的基于GAN的模型,称为(AOT-GAN),用于高分辨率图像修复。具体来说,为了增强上下文推理,AOT-GAN-for-Inpainting通过堆叠所提出的 AOT 块的多层来构建 AOT-GAN 的生成器。原创 2024-01-12 22:39:26 · 4051 阅读 · 7 评论 -
在ultralytics中实现obb检测,官方团队做了哪些修改?
在最新的在ultralytics中,官方团队已经提供了obb检测功能,并发布了相应的预训练模型,其具体使用可以参考。在ultralytics\nn\modules\head.py中,实现了OBB head,用于在网络head中新增预测值用于进行角度预测,可见其是通过cv4 进行角度特征提取,最终预测一个角度值(ne ),`非csl、kdl的方式进行预测,其预测的角度范围为[-pi/4, 3pi/4]`原创 2024-01-08 00:45:00 · 2276 阅读 · 0 评论 -
再次认识ultralytics项目(大目标检测、小目标检测、yolov8-ghost、旋转目标检测、自动标注)
是一款前沿、最先进(SOTA)的模型,基于先前 YOLO 版本的成功,引入了新功能和改进,进一步提升性能和灵活性。YOLOv8 设计快速、准确且易于使用,使其成为各种物体检测与跟踪、实例分割、图像分类和姿态估计任务的绝佳选择。随着其官方团队对ultralytics项目的不断完善,其所支持的功能在不断扩展,为此重新对ultralytics项目进行深入分析。原创 2024-01-07 14:45:00 · 7485 阅读 · 2 评论 -
基于gradio快速部署自己的深度学习模型(目标检测、图像分类、语义分割模型)
gradio是一款基于python的算法快速部署工具,本博文主要介绍使用gradio部署目标检测、图像分类、语义分割模型的部署。相比于flask,使用gradio不需要自己构造前端代码,只需要将后端接口写好即可。此外,基于gradio实现的项目,可以托管到huggingface。原创 2023-12-26 22:14:41 · 3862 阅读 · 2 评论 -
使用ZoeDepth生成深度估计图
目前单目深度估计分为两个派系,。ZoeDepth是 第一个结合相对和绝对深度的多模态单目深度估计网络。本博文仅记录使用ZoeDepth生成深度估计图的过程(因为直接按项目说明中进行使用会报错误)项目地址: https://github.com/isl-org/ZoeDepth论文地址: https://arxiv.org/pdf/2302.12288.pdf。原创 2023-09-20 22:10:07 · 8496 阅读 · 20 评论