- 博客(358)
- 收藏
- 关注
原创 Android记事本App设计开发项目实战教程2025最新版Android Studio
Android记事本课程涉及 适合学完Android基础或有App开发经验的同学,最新Android Studio Koala | 2024.1.1 Patch 2,原生Java开发,从新建工程到打包apk,全程实操,不遗漏任何细节,约束布局、线性布局、SQLite、RecyclerView、AlertDialog、TextView、EditText、Button、ImageView的综合应用。
2025-02-01 21:40:08
2182
原创 Android应用开发项目式教程——序
本书定位于Android开发的入门书籍,力求做到看得懂、能练习,具有以下特点:**1.提供简单且必要的基础知识和技能。**在Android应用开发领域,知识点和技能点非常丰富,但本书并不追求面面俱到,也不做百科全书式的讲解。相反,本书专注于编写读者能够理解和实践的知识和技能,以降低读者入门的难度,并提高学习的成就感。**2.描述力求详尽,从非科班初学者的角度描述实现步骤。**本书采用循序渐进的方式,项目1和项目2来详细描述实现步骤,让读者能够跟随书中的指导完成项目任务。**3.案例简单、完整、丰富,提
2024-09-07 12:59:48
1793
原创 Android初学者书籍推荐
从学安卓到用安卓再到教安卓,我翻阅了不下二十本书,培养了多位Android开发者,《疯狂Android讲义》的第二版、第三版、第四版,《第一行代码Android》的第二版、第三版,各种大学出的Android教材,培训机构出的Android教材等等。下面挑几本比较好的,点评一下,仅供参考,不当之处还望指正。
2024-07-11 11:03:18
4549
原创 Pascal VOC数据集简介及数据格式说明
Pascal VOC是计算机视觉领域经典的目标检测数据集,包含20类常见物体(如人、车、动物等)。核心结构包括: JPEGImages存放原始图像 Annotations存储XML格式标注文件,详细记录每个目标的类别和边界框坐标 ImageSets提供数据集划分清单 标注文件采用XML格式,包含图像尺寸、目标位置(xmin/ymin/xmax/ymax)和类别信息,支持多目标标注。该数据集被广泛用于目标检测算法(如YOLO)的训练和评估,其规范化的数据格式成为后续数据集的参考标准。
2026-02-08 09:51:45
522
原创 YOLOv1数据增强
本文详细介绍了目标检测数据增强的核心原则与具体实现方法,重点强调图像与标签的同步变换。数据增强需遵循几何变换(如缩放、裁剪、翻转)同步调整目标框坐标,而色彩变换(亮度、对比度等)不影响坐标位置。文章通过具体示例演示了水平翻转、随机缩放和随机裁剪等操作的坐标调整逻辑,并提供了完整的Python实现代码,包含图像处理和标签同步转换功能。这些增强方法能有效提升模型泛化能力,同时确保标注信息的准确性。
2026-02-08 09:44:55
677
原创 YoloV1数据集格式转换,VOC XML→YOLOv1张量
摘要: YOLOv1数据集格式转换需将VOC XML标注转换为7×7×25标签张量。关键步骤包括: 坐标计算:目标中心网格索引由绝对坐标除以网格大小(64像素)确定,网格内相对坐标通过取余运算归一化至0~1; 标签填充:仅在目标中心所在网格填充(x,y,w,h,conf)和类别one-hot编码(如dog对应第10位为1); 代码实现:解析XML后,计算目标中心、宽高,转换为相对坐标并填充至张量,其余网格保持为0。示例代码完整展示了从VOC到YOLOv1格式的转换逻辑。 (字数:150)
2026-02-08 09:32:42
689
原创 YOLOv1损失函数代码实现(详细注释版)
上述代码完整复现了YOLOv1损失函数的理论逻辑,核心亮点的是:通过掩码区分正负样本、通过IOU选择负责框、通过加权系数平衡各部分损失、通过宽高开根号优化小目标检测。代码结构清晰、注释详细,可直接用于教学演示或简化版YOLOv1模型的训练,同时便于后续结合理论深入理解损失函数的设计思路。
2026-02-08 09:04:25
608
原创 yolov1的损失函数详细说明
YOLOv1损失函数由五部分组成,通过加权平方误差协同优化目标检测任务。核心设计包括:1)坐标损失采用根号宽高处理小目标敏感问题,加权系数λ_coord=5强化定位精度;2)置信度损失区分正负样本,λ_noobj=0.5缓解样本不平衡;3)类别损失仅作用于含目标网格。整体通过指示函数控制计算范围,实现端到端训练,平衡定位精度与分类准确性。损失函数设计反映了YOLO"全局推理"的特性,将检测问题转化为回归任务,为后续单阶段检测器奠定基础。
2026-02-08 08:59:26
632
原创 如何在Android工程中配置NDK版本
版本匹配:Gradle插件与NDK版本必须兼容,优先选推荐版本;配置方式新手用「界面自动配置」;团队协作用「手动配置」锁定版本;自定义路径用「方式3」;架构优化:仅编译arm64-v8a,大幅减小APK体积;验证生效:通过Gradle命令/APK解压/编译C++代码验证配置。针对YOLO集成场景,配置NDK后可进一步用C++实现图像预处理(如RGB转BGR、归一化)或后处理(如NMS),相比Java/Kotlin可提升20%~50%的推理速度。
2026-02-07 20:18:34
296
原创 Android App如何集成yolo?
本文介绍了在Android应用中集成YOLO实现实时目标检测的完整方案。针对移动端特性,推荐使用YOLOv8n或YOLOv5s轻量模型,并转换为TensorFlow Lite格式以优化性能。文章详细说明了从模型转换(PyTorch→ONNX→TFLite)到Android工程集成的关键步骤,包括环境配置、权限设置和核心代码实现。重点解决了模型轻量化、移动端适配和推理优化三大问题,提供了可落地的技术方案,使中低端手机也能达到15FPS以上的实时检测性能。通过GPU加速和量化优化,在保证精度的同时显著提升运行效
2026-02-07 20:13:54
975
原创 YOLOv1 核心知识点笔记
YOLOv1是一种创新的单阶段目标检测方法,将检测任务重构为回归问题。其核心是将图像划分为7×7网格,每个网格预测2个边界框和20类概率,输出7×7×30张量。网络采用24个卷积层+2个全连接层结构,使用带泄漏ReLU激活函数。通过多部分加权损失函数(坐标、置信度和类别损失)和NMS后处理实现高效检测。在VOC2007上达到63.4%mAP和45FPS,Fast YOLO版本更达155FPS。优势是速度快、背景误检率低,但存在小目标检测差、定位精度不足等局限。该方法开创了实时目标检测新范式。
2026-02-07 20:04:04
331
原创 举例说明YOLOv1 输出坐标到原图像素的映射关系
中心坐标映射:核心是「网格位置(j/i×网格尺寸) + 网格内偏移(bx/by×网格尺寸)」,把相对网格的偏移转为原图绝对像素;宽高映射:直接用「相对比例(bw/bh)× 原图宽/高」,把相对比例转为绝对像素;坐标转换:中心坐标±宽高/2,即可得到可视化所需的矩形框对角坐标。这个例子的数值是简化过的,但完全复现了YOLOv1坐标映射的核心逻辑,无论图像尺寸、网格数如何变化,计算方法都完全一致。
2026-02-07 18:51:03
552
原创 YOLOv1 的最终输出结果解析
YOLOv1输出解析与后处理:模型输出张量形状为[2,7,7,30],其中7×7网格每个预测2个边界框(含5个参数)和20类概率。关键步骤包括:1) 坐标映射(将相对偏移转换为原图绝对坐标);2) 计算类别置信度;3) 阈值过滤和NMS去重。最终输出边界框的像素坐标、类别及置信度。
2026-02-07 18:47:39
838
原创 基于Pytorch的YOLOv1 的网络结构代码
本文提供了YOLOv1目标检测网络的PyTorch完整实现代码,包含6个卷积层和全连接层。代码实现了从输入图像(448×448)到最终输出(7×7×30)的完整网络结构,其中30表示20个类别+2个边界框(每个框5个参数)。代码特别设计了逐层打印功能,清晰展示了特征图从输入到输出的尺寸变化过程(112×112→56×56→28×28→14×14→7×7),便于理解YOLOv1的网络架构和数据处理流程。该实现完整复现了原始论文的网络设计,可用于目标检测任务的基础研究和开发。
2026-02-07 18:42:22
85
原创 YOLOv1 核心结构解析
YOLOv1是首个单阶段目标检测模型,将检测任务转化为回归问题。其网络结构分为三部分:卷积主干网络(提取特征并降采样)、全连接层(展平特征)和输出层(7×7×30张量)。关键设计包括7×7网格划分、每个网格预测2个边界框和20类概率。相比改进版,原始YOLOv1结构简单但精度较低,改进版采用ResNet-18等优化模块提升性能。该模型实现了端到端快速检测,为后续目标检测算法奠定了基础。
2026-02-07 18:40:12
476
原创 深度学习中卷积后特征图(Feature Map)的尺寸计算公式
摘要:本文介绍了深度学习卷积层中计算特征图尺寸的核心公式,适用于标准卷积和膨胀卷积情况。关键公式为输出尺寸=⌊(输入尺寸+2×填充-卷积核)/步幅⌋+1,并解释了各参数含义。文章还对比了Valid和Same两种填充模式,通过实例演示了计算过程(224×224输入经7×7卷积后输出110×110)。最后补充了池化层和全连接层的尺寸变化规律,为网络设计提供实用参考。
2026-02-06 11:13:39
476
原创 Turtle库的用法
Python的Turtle库是一个内置图形库,通过控制屏幕光标绘制图形,适合初学者学习编程和创作艺术图案。本文介绍了Turtle库的核心用法:1) 基础设置包括创建画布、画笔对象和背景;2) 核心绘图方法如移动、转向、抬笔落笔等;3) 画笔样式控制包括线条粗细、颜色和填充;4) 常用辅助函数如返回原点、清空画布等。文章还提供了彩色正方形的完整示例代码,并解释了坐标系和画笔状态两个重要概念。Turtle库无需安装,直接导入即可使用。
2026-02-04 18:37:44
151
原创 开放神经网络交换ONNX的用法
ONNX(开放神经网络交换)是AI模型的通用中间格式,支持不同深度学习框架(如PyTorch、TensorFlow)和硬件设备间的无缝转换。通过将模型导出为.onnx文件,用户可在支持ONNX的环境中直接部署,无需重新训练。ONNX Runtime作为高性能推理引擎,能优化模型执行效率。示例展示了如何将PyTorch模型转换为ONNX格式并进行推理,适用于跨平台部署、硬件加速和模型压缩等场景,显著提升AI模型的兼容性和运行效率。
2026-02-01 16:02:05
391
原创 Pytorch如何加载和读取VOC数据集用来做目标检测?
本文介绍了一个自定义的Pascal VOC目标检测数据集类,可直接用于PyTorch训练。该数据集类会自动解析XML标注文件,将其转换为模型所需的边界框和类别标签格式。代码实现了完整的Dataset功能,包括图像加载、XML解析和数据增强支持。使用时只需配合DataLoader即可开始训练。文章还解释了关键设计点:返回字典格式的目标数据、坐标格式要求以及批量处理的注意事项。这个实现简化了VOC数据集的使用流程,省去了原始XML处理的麻烦,可以直接用于目标检测模型的训练。
2026-01-31 17:24:59
122
原创 目标检测数据标注的工具与使用方法
如果你只是个人随便标几百张图:用 LabelImg 更快。如果你需要团队协作、管理进度、或者数据包含图片+文本、视频等复杂类型、或者想用 AI 自动标Label Studio 是绝对的首选。。
2026-01-31 17:20:17
571
原创 目标检测的常见数据集
本文介绍了目标检测领域常用的数据集,分为通用场景和专用领域两类。通用数据集包括MS COCO(80类复杂场景)、Pascal VOC(20类经典基准)和Open Images(600类大规模数据)。专用数据集有KITTI(自动驾驶,含3D数据)和DOTA(航拍图像,旋转边界框)。通过对比各数据集的特点、类别数和应用场景,帮助研究者根据需求选择合适的数据集进行算法开发与验证。
2026-01-31 17:14:18
306
原创 什么是目标检测?
目标检测是计算机视觉的核心任务,通过识别图像中的物体并定位其位置(边界框)来实现智能化应用。其技术流程包括特征提取、候选区域生成、分类回归和后处理,主流算法分为两阶段(如R-CNN,精度高)和单阶段(如YOLO,速度快)两类。广泛应用于自动驾驶、安防监控、零售物流和医疗影像等领域,成为AI感知环境的重要基础。
2026-01-31 17:10:47
564
原创 Pytorch如何验证模型?
本文介绍了PyTorch中验证模型的两种主要场景:训练过程中的验证和训练结束后的测试/推理。在训练过程中,通过验证集监控模型泛化能力,需切换为eval模式并禁用梯度计算。训练完成后,可在测试集评估最终性能或进行单图预测。关键注意事项包括正确使用model.eval()和torch.no_grad(),以及保持数据预处理的一致性。这些方法共同确保模型评估的准确性和高效性。
2026-01-31 09:54:47
419
原创 Pytorch模型GPU训练
本文介绍了PyTorch模型训练的标准流程,以MNIST手写数字识别任务为例,详细讲解了6个核心步骤:1)导入库并设置设备;2)数据准备与预处理;3)定义CNN模型结构;4)配置损失函数和优化器;5)实现训练和验证循环;6)执行训练并保存最佳模型。流程总结为数据准备→模型构建→损失优化→训练循环→验证保存的标准化模板,适用于大多数图像分类任务。通过这个完整的示例,读者可以快速掌握PyTorch模型训练的基本套路。
2026-01-31 08:42:15
319
原创 Pytorch完整的模型训练流程
本文介绍了PyTorch模型训练的标准流程,以MNIST手写数字识别任务为例,详细讲解了6个核心步骤:1)导入库并设置设备;2)数据准备与预处理;3)定义CNN模型结构;4)配置损失函数和优化器;5)实现训练和验证循环;6)执行训练并保存最佳模型。流程总结为数据准备→模型构建→损失优化→训练循环→验证保存的标准化模板,适用于大多数图像分类任务。通过这个完整的示例,读者可以快速掌握PyTorch模型训练的基本套路。
2026-01-30 20:26:38
606
原创 Pytorch如何保存和加载模型
本文总结了PyTorch模型保存与加载的三种主要方法:1)仅保存模型参数(推荐部署使用),文件小但需预定义结构;2)保存整个模型(不推荐生产),方便但依赖代码路径;3)保存检查点(适合训练中断恢复),包含优化器状态等完整信息。关键技巧包括正确切换eval/train模式、处理设备不匹配问题、解决多卡训练权重前缀问题等。建议部署使用方式1,训练恢复使用方式3,并注意使用.pt或.pth后缀。
2026-01-30 20:21:53
311
原创 Pytorch新版本如何使用现有网络模型,怎么修改现有模型
PyTorch新版本中模型加载和修改方法发生重要变化:1)使用weights参数替代已弃用的pretrained参数来加载预训练权重;2)修改模型结构主要通过替换最后一层(如修改VGG16/ResNet的输出维度)或添加新层实现;3)推荐使用state_dict()保存模型参数,加载时需先重建相同结构。新方法通过Weights枚举类显式管理权重,提高了代码兼容性和可维护性。文中提供了从模型加载、修改到训练保存的完整示例代码。
2026-01-30 20:19:49
334
原创 反向传播及其用法
在 PyTorch 中,是模型训练的核心环节。简单来说,它的作用就是**“自动算出每个参数(权重)对最终错误(损失)的影响有多大”**,从而指导优化器知道该往哪个方向调整参数才能让模型变得更好。PyTorch 的核心优势在于它通过模块实现了,你不需要手动推导复杂的导数公式,只需要构建前向计算过程,PyTorch 就能自动帮你搞定反向传播。
2026-01-30 20:14:46
340
原创 Pytorch中的优化器及其用法
优化器全称特点适用场景SGD随机梯度下降最基础,可加动量(Momentum)教学、简单任务、需要精细调参Adam自适应矩估计最常用。自适应学习率,收敛快默认推荐!90% 的场景都可用AdamWAdam + 权重衰减Adam 的改进版,正则化效果更好训练 Transformer 等大模型时首选RMSprop均方根传播自适应学习率,适合非稳态目标RNN、GAN 等复杂模型必须在之前调用,防止梯度累加。必须在之后调用,执行参数更新。选择建议新手/通用:直接用Adam,省心且效果好。
2026-01-30 20:13:30
417
原创 优化器、反向传播、损失函数之间是什么关系,Pytorch中如何使用和设置?
PyTorch模型训练的核心闭环由损失函数、反向传播和优化器组成,形成"五步走"标准流程:1)定义损失函数和优化器;2)前向传播计算预测;3)计算损失值;4)梯度清零后反向传播;5)优化器更新参数。损失函数评估误差,反向传播计算梯度,优化器调整参数,三者协作不断优化模型。关键代码模板包括loss.backward()计算梯度和optimizer.step()更新参数,通过循环迭代逐步降低损失值,实现模型训练目标。
2026-01-30 20:11:33
965
原创 Pytorch中的损失函数及其用法
损失函数PyTorch 类名适用任务关键特点均方误差回归任务对大误差惩罚重,对异常值敏感交叉熵多分类任务输入为 logits,标签为整数索引二元交叉熵二分类/多标签内置 Sigmoid,数值稳定L1 损失回归任务对异常值更鲁棒# 伪代码:训练循环中的典型用法criterion = nn.CrossEntropyLoss() # 1. 定义optimizer.zero_grad() # 梯度清零output = model(data) # 2. 前向传播。
2026-01-30 20:05:55
385
原创 Pytorch自定义数据集的用法
继承Dataset: 这是所有数据集的基类。实现: 这是最关键的一步,定义了如何读取单个样本。配合DataLoader: 自定义好Dataset后,用DataLoader来实现批量加载、打乱顺序和多进程读取。
2026-01-29 14:34:51
408
原创 Python中__call__和__init__的区别
特性构造方法 (__init____call__方法中文名初始化方法调用方法作用对象作用于类(创建实例时)作用于实例(实例被调用时)执行次数仅一次(对象诞生时)无数次(你想调用几次就几次)主要任务设置初始属性、定义结构定义对象被调用时的行为你的例子定义self.fc1层执行forward计算输出__init__是在配置一个对象,而__call__是在使用这个对象。
2026-01-29 14:28:48
364
原创 为什么模型前向传播要写两步?
是用来创建模型的(初始化参数,配置结构)。model(...):是用来使用模型的(输入数据,计算输出)。这就是为什么必须先,然后再。
2026-01-29 14:22:11
421
原创 torch.nn.Module的用法
PyTorch中的torch.nn.Module是所有神经网络模块的基类,用于构建和管理神经网络模型。使用它需要三个步骤:定义继承nn.Module的类,在__init__中初始化网络层,在forward中定义前向传播逻辑。nn.Module提供自动参数管理、训练/评估模式切换、模型保存加载等功能,并能结合nn.Sequential简化模型搭建。通过继承nn.Module并实现关键方法,用户可以灵活构建各种神经网络结构,这是PyTorch模型开发的核心基础。
2026-01-29 14:17:23
282
原创 DataLoader的用法
这段代码展示了如何使用PyTorch加载CIFAR-10测试集并通过TensorBoard可视化数据。主要步骤包括:1) 定义测试数据集,应用ToTensor转换;2) 创建DataLoader,设置batch_size=64并打乱数据;3) 使用循环遍历DataLoader,将每个batch的64张图片写入TensorBoard。关键点在于DataLoader作为可迭代对象,每次生成一个迭代器来批量读取数据,并通过drop_last确保每批数据形状一致。最终可在TensorBoard中查看所有测试图片的分
2026-01-28 17:42:09
701
原创 torchvision.datasets的用法
PyTorch的torchvision.datasets模块简化了计算机视觉数据集的加载与预处理流程。它提供统一接口访问MNIST、CIFAR10等内置数据集,支持自动下载和数据转换。核心使用流程包括:1) 定义transform预处理操作;2) 实例化Dataset对象;3) 通过DataLoader实现批量加载。该模块还包含ImageFolder等通用工具,可快速构建自定义数据集。这种"即插即用"的设计极大降低了数据准备复杂度,使开发者能专注于模型训练。
2026-01-28 16:49:56
343
原创 PyTorch与TensorBoard兼容性问题解决方案
本文分析了PyTorch环境中TensorBoard配置时的两个常见报错及解决方案。针对"distutils.version"缺失问题,建议降级setuptools至59.5.0;对于"ANTIALIAS"属性错误,推荐安装Pillow 9.5.0。这些版本兼容性问题在深度学习开发中较为常见,通过针对性降级关键依赖库可快速解决。文章强调在复杂开发环境中,精确的依赖版本管理对项目稳定性至关重要。
2026-01-28 16:38:37
211
原创 PyTorch transforms的用法
本文介绍了PyTorch中torchvision.transforms模块的核心功能与使用方法,该模块主要用于图像预处理和数据增强。文章详细讲解了如何通过transforms.Compose将多个处理步骤组合成流水线,包括调整大小、裁剪、翻转、色彩调整和标准化等常用操作。重点强调了不同场景下的应用策略:训练时使用随机变换增强数据多样性,测试时采用确定性变换保证结果可复现。文中还提供了训练集和测试集预处理流程的具体示例,并指出关键注意事项,如操作顺序和数据类型要求。
2026-01-28 14:44:43
519
原创 Pycharm下新建一个conda环境后,如何在该环境下安装包?
在PyCharm中为Conda环境安装包的常用方法包括:1)通过图形界面在Python Interpreter设置中添加包;2)使用内置终端激活环境后用conda或pip命令安装;3)新版PyCharm可通过Python Packages工具栏直接安装。关键要注意选择正确的解释器路径,避免将包安装到base环境。安装后可通过import语句验证是否成功。
2026-01-23 09:18:20
461
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅