- 博客(23)
- 收藏
- 关注
原创 深度学习之模型压缩三驾马车:基于ResNet18的模型剪枝实战(2)
本文针对ResNet18模型剪枝进行了优化改进,主要包含三个方面:1) 将剪枝目标层从底层conv1调整为中间层layer2.0.conv1,减少对基础特征的破坏;2) 采用基于激活值的前向传播方法评估通道重要性,优先剪除低激活通道;3) 改进微调策略,动态解冻关联层并使用更低学习率(0.0001)进行10轮微调。这些优化有效提升了剪枝后模型的稳定性和性能表现,特别是通过中间层剪枝和基于特征贡献的通道选择策略,避免了底层特征破坏带来的连锁反应。
2025-06-05 16:53:26
259
原创 深度学习之模型压缩三驾马车:基于ResNet18的模型剪枝实战(1)
本文探讨了深度学习模型剪枝的必要性与实现方法,针对移动端设备资源受限问题,提出基于PyTorch的结构化通道剪枝方案。以ResNet18在CIFAR-10任务为例,详细阐述了6步流程:环境初始化、原始模型训练、卷积层剪枝(通过L2范数评估通道重要性)、剪枝后结构调整(BN层和残差连接适配)、模型微调及效果评估。重点展示了如何计算通道重要性、生成剪枝掩码、替换卷积层,并解决剪枝引发的后续层通道匹配问题。该方法能在保持模型性能的同时显著减小模型规模,为移动端部署提供有效解决方案。
2025-06-05 16:31:27
756
原创 深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
深度学习模型压缩技术是实现大模型轻量化部署的关键,主要包括模型剪枝、量化和知识蒸馏三种方法。模型剪枝通过移除不重要权重或通道来减小模型体积;量化将高精度参数转为低精度格式(如FP32到INT8)以提升速度;知识蒸馏则让小模型模仿大模型的行为来保持性能。这三种技术可单独使用或组合应用,例如先剪枝再量化,或蒸馏后结合量化。实践表明,通过协同优化能实现模型体积缩小4倍、推理速度提升2倍以上,同时精度损失控制在1%以内,使ResNet、YOLOv8等复杂模型得以部署到手机、摄像头等资源受限设备,推动AI技术在实际场
2025-06-04 16:25:05
671
原创 使用conan进行源码以及依赖包管理时候的注意事项-找不到所需要的依赖包的时候该怎么做
在使用Conan进行包管理时,若遇到MNN库无法找到的问题,原因是该库尚未被上传至Conan中央仓库或私有仓库。解决方法是自行将MNN封装为Conan包并上传。具体步骤包括编写conanfile.py文件,定义包的元数据和配置选项,然后使用conan create命令生成包并上传至本地缓存或私有仓库。以MNN-2.4.0为例,可以通过自定义conanfile.py文件来配置编译选项,并生成相应的Conan包。此方法适用于其他未被Conan官方收录的第三方库。
2025-05-23 15:34:38
681
原创 深度学习之用CelebA_Spoof数据集搭建一个活体检测-用MNN来推理时候如何利用Conan对软件包进行管理
本文介绍了使用Conan作为C/C++包管理器来管理项目依赖的详细步骤。Conan是一个专为C/C++设计的去中心化包管理器,支持多平台和交叉编译,能够自动下载和编译所需的库文件,简化了依赖管理的过程。文章首先提到了在深度学习项目中如何使用MNN进行模型推理,并指出Conan在编译和依赖管理中的重要性。接着,详细说明了如何安装和配置Conan,并展示了项目结构中的关键配置文件conanfile.txt和CMakeLists.txt。conanfile.txt用于声明项目依赖的第三方库及版本,配置构建选项和生
2025-05-20 12:36:57
1117
原创 深度学习之用CelebA_Spoof数据集搭建一个活体检测-训练好的模型用MNN来推理
本文介绍了将PyTorch模型转换为MNN格式并在C++中进行推理的完整流程。首先,确保已完成PyTorch到ONNX的转换,然后使用MNN工具将ONNX模型转换为MNN格式。接着,搭建C++推理工程,工程结构包括CMake配置文件、头文件和源文件。通过CMake配置项目,链接MNN和OpenCV库,并生成可执行文件。核心代码部分展示了如何使用MNN库加载模型、初始化会话并进行推理。通过抽取公共预处理部分,代码具有较好的可扩展性,便于更换不同模型。
2025-05-15 16:50:01
889
原创 深度学习之用CelebA_Spoof数据集搭建一个活体检测-一些模型训练中的改动带来的改善
本文探讨了在活体检测模型中引入傅里叶变换作为辅助特征的效果。实验基于CelebA_Spoof数据集,使用SqueezeNet框架进行训练,并采用蒸馏法进行模型优化。初始模型的评估指标(如准确率、召回率等)表现不佳,因此尝试通过傅里叶变换增强模型对伪造攻击的识别能力。傅里叶变换能够捕捉到翻拍照片中因相机或屏幕闪烁而产生的频域特征,从而提升模型的区分能力。实验对比了基线模型和改进模型(加入傅里叶变换)的训练过程,改进模型在训练过程中对图像数据进行傅里叶变换,并将其用于损失函数的计算。结果表明,傅里叶变换的引入有
2025-05-15 15:14:38
1149
原创 深度学习之用CelebA_Spoof数据集搭建一个活体检测-模型验证与测试
本文基于CelebA_Spoof数据集,详细介绍了如何对训练好的2D活体检测模型进行验证和测试。首先,数据集包含真实人脸图像和伪造样本,如打印攻击和视频重放攻击。模型验证过程中,使用了多种评估指标,包括准确率、精确率、召回率、F1 Score、假正率、ROC AUC、等错误率、PR AUC和平均精度,这些指标在不同场景下各有侧重。验证代码通过计算混淆矩阵、ROC曲线和PR曲线等,评估模型性能。测试结果显示,模型在Epoch 5时的准确率为80.09%,ROC AUC为89.35%。最后,文章还提供了模型测试
2025-05-09 15:27:21
742
原创 深度学习之用CelebA_Spoof数据集搭建一个活体检测-模型搭建和训练
对于活体检测,个人认为一直是个伪命题,在人脸识别中,其实真正意义是不管这个人脸是真还是假,随着人脸识别技术的应用越来越广泛,人脸识别技术已经不再是一种技术,而是技术意外的一个比较重要的工具了,那么安全性就必须得到提高,活体检测自热而然就有了它的用武之地(本人是很不情愿做这个活体检测的)。如何设计一个活体检测的模型呢,当然现在这个领域已经有了很多的研究和很好的方法,在现有的实际应用中已经完全可以安全使用。但是作为入门者,还是得从简单的步骤做起来。
2025-04-28 16:47:32
621
原创 深度学习之用CelebA_Spoof数据集搭建一个活体检测-数据处理
是一个大规模人脸防欺骗数据集,该数据集包含来自10,177个受试者的625,537张图像,包括人脸、光照、环境和欺骗类型等43个丰富的属性。有40个属性属于Live图像,包括皮肤、鼻子、眼睛、眉毛、嘴唇、头发、帽子、眼镜等所有面部成分和配件。3个属性属于恶搞图像,包括恶搞类型、环境和光照条件。如果要做人脸的活体检测,这个数据库是一个不错的选择。下载地址有两个:百度云下载Google云盘。
2025-04-15 15:02:26
1110
原创 深度学习之由yolov1看yolov5
YOLO来源于“you only look once”的简写,作者的想法是只看一次就能知道目标在哪里,跟人眼看到的第一反应一样,作为业内实时性、不错的精度的一种目标检测算法,yolo在过去的几年时间里,已经在工业应用中发挥着巨大的作用,如无人驾驶、农作物病虫害预防、医学检查等。
2025-04-11 16:58:55
623
原创 深度学习之MobileNet
MobileNet 是一种专为移动和嵌入式设备设计的轻量级卷积神经网络架构,其核心优势在于通过创新的结构设计大幅减少参数量和计算量,同时保持较好的模型性能。接下来我们来探讨一下它的原理和优势。
2025-04-09 15:04:05
603
原创 深度学习之卷积神经网络尺寸计算
通常我们在设计或者使用模型网络结构的时候,每一层的卷积数,核心大小和数量等等原因都有他们的作用和有意义,今天就来分享一下基础,怎么计算卷积神经网络的输入输出尺寸,这有利于在后面自己设计网络时候用到。
2025-04-08 16:12:38
740
原创 深度学习之残差网络ResNet
在深度学习的发展历程中,卷积神经网络的设计深度是一个需要精心权衡的关键参数,网络的深度在本质上起到的主要作用有以下两个大方面。解决了梯度消失问题缓解了网络退化现象实现了特征复用机制大幅提升了网络深度上限这种"大道至简"的设计思想也影响了后续Transformer等架构的发展,成为深度学习发展史上的里程碑式创新。
2025-04-08 15:11:54
908
原创 目标检测之YoloV5+旋转目标
YoloV5-OBB通过引入旋转框检测能力,显著提升了模型在倾斜目标场景下的检测性能。其核心改进包括旋转框表示、角度编码策略和旋转IoU计算等。虽然带来了一定的计算开销,但在需要精确检测旋转目标的场景下,这种改进是非常有价值的。未来,随着硬件加速和算法优化的进步,旋转目标检测技术将在更多领域得到广泛应用。
2025-04-07 16:43:00
1240
2
原创 DeepSeek-R1-Distill大模型微调实战
指标数值训练时间(2×RTX4090)3.2小时显存占用(每卡)18GB推荐准确率92.3%平均响应时间1.4秒数据质量优先:500+条高质量样本即可获得不错效果渐进式调参:先小规模测试(100步)验证收敛性领域特征强化:特殊token和模板设计至关重要硬件高效利用:4bit+LoRA实现单卡微调通过本方案,我们成功将7B大模型转化为专业的民宿推荐助手,验证了DeepSeek-R1在垂直领域的强大潜力,这当中也有之前讲过的Accelerate 单机多卡使用指南。
2025-04-03 18:17:25
862
原创 人脸识别之-ArcFace
ArcFace (Additive Angular Margin Loss) 通过 角度间隔惩罚 在超球面特征空间实现了:- 类内特征最大紧凑性- 类间特征最优区分度- 几何解释性强且易于实现。
2025-04-02 16:57:34
1051
原创 Accelerate 单机多卡使用指南
Accelerate是Hugging Face推出的PyTorch扩展库,旨在简化分布式训练流程。它提供了统一的API,让开发者可以用相同的代码在多种硬件配置上运行训练任务,主要特点包括:- 统一代码适配不同硬件(CPU/GPU/TPU)- 简化分布式训练配置- 自动处理混合精度训练- 内置模型保存/加载功能- 支持梯度累积等训练技巧。
2025-04-01 15:18:19
662
原创 调用自己编写的动态库出现hidden symbol `_ZN2cv6imshowERKSsRKNS_11_InputArrayE的原因与解决方法
调用自己编写的动态库出现hidden symbol `_ZN2cv6imshowERKSsRKNS_11_InputArrayE的原因与解决方法
2023-10-09 17:36:13
380
1
原创 利用虾检测模型检测图像生成的txt转成roLabelImg需要的xml
利用虾检测模型检测图像生成的txt转成roLabelImg需要的xml
2023-05-31 15:38:28
305
1
原创 ubuntu18.04成功使用 rolabelimg
最近对Yolov5 for Oriented Object Detection 旋转目标感兴趣,想自己下来玩玩,如果需要对自己的数据进行标注,需要用到旋转目标的标注软件。roLabelImg是一个图形图像注释工具,可以标记旋转的矩形区域,它是从’labelImg’重写的。
2023-04-23 16:37:36
422
1
原创 编译darknet过程链接opencv静态库的问题
最近一个小项目用到yolo的内容,需要用到darknet,因此需要进行darknet进行编译,因为之前也干过这个事情,不过当时只是为了验证,并没有对当时遇到的问题做记录。此次再次用到,应该是遇到了同样的坑,所以讲这次遇到的问题做了一次记录。opencv也用了很久,对它的各种编译都是很熟悉了,之前编译的时候都是用的cmake的方式,非常方便,也因此自己编译了一个常用的版本(够用就行),而且是静态库的方式。不过这次darknet是用makefile的方式进行编译的,这里面有用到opencv,不过darknet是
2023-04-13 11:49:31
324
1
原创 Ubuntu16.04中启动VSCode后几秒钟闪退的问题
本文解决的问题不包括自身系统老旧的问题,同时也不指向VScode版本问题,仅代表在工作中遇到的奇葩问题以及简单的错误记录。
2023-04-06 15:23:36
3309
1
用CelebA-Spoof数据集搭建一个活体检测的训练结果,在验证集的ACC为93.47%,并转成了onnx,方便后续的使用
2025-05-09
利用虾检测模型检测图像生成的txt转成roLabelImg需要的xml,python文件
2023-05-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人