变形检测 Transformer | Lung-DETR 提升图像识别率 !

Transformer应用之图像识别中的应用 - Transformer教程 本文介绍了Transformer模型在图像识别中的应用,包括Vision Transformer、Swin Transformer和DETR等模型,并探讨了其优势、面临的挑战及未来发展方向。Transformer凭借其强大的特征提取和建模能力,正逐渐成为图像识别领域的重要工具。 阅读详情

图片

在计算机断层扫描(CT)图像中准确检测肺结节是具有挑战性的,因为结节的出现较为稀疏,同时与其他解剖结构具有相似性。在典型的阳性案例中,结节仅在CT切片中的3%中出现,使得检测变得更加复杂。

本文提出了一种名为 Lung-DETR 的肺肿瘤检测方法,将肺癌检测任务视为异常检测,目标为在主要为正常数据集中的结节出现。

作者的新颖方法 Lung-DETR 将变形检测 Transformer 、Focal Loss和最大强度投影合并到一个统一框架中,用于稀疏肺结节的检测。采用7.5mm最大强度投影(MIP),将相邻的肺切片合并,降低结节的稀疏度,增强空间上下文,以便更好地区分结节、支气管和其他复杂的血管结构。

Lung-DETR 使用自定义的Focal Loss函数进行训练,以更好地处理不平衡的数据集,并输出检测到结节的边界框。

作者的模型在LUNA16数据集上获得了94.2%的F1分数(95.2%的召回率,93.3%的精度),测试数据集的结节稀疏度为4%,这反映了真实世界临床数据的状况。

1 Introduction and Related Work

肺癌是全球癌症死亡的主要原因之一,尽早发现对于改善患者预后至关重要。尽管在医学影像方面取得了显著的进步,但这些模型在实际应用中推广有限。有许多成功架构可以实现LUNA16结节检测,这些架构在大多数主要为结节阳性图像的数据集上取得高精度,但作者未能找到一个能充分解决实际数据中结节稀疏问题的综合解决方案。

一个真正有效的模型必须在处理大量健康切片的同时,减轻巨大的类不平衡问题,在这种情况中,仅含有健康组织的切片数量远高于包含肺部结节的切片。作者的目标是实现高肿瘤检测精度,同时尽可能减少假正率和假负率。这样一个模型能够为患者提供有意义的医学洞察,并可以部署到医疗资源匮乏的地区,为其他无法获得医生诊断的患者提供负担得起和准确的诊断。

计算机断层扫描(CT)数据包括由重叠横截面切片合成的体层图像,这些切片提供了对内部结构的详细视图。这些切片然后堆叠形成对解剖区域全面的3D表示。然而,如果结节存在,结节的出现是稀疏的,通常在0到3%的切片上显示结节的迹象 [12]。这种不平衡现象对深度学习模型构成了挑战,因为这些模型必须在处理大量健康切片的同时检测结节。

深度学习模型处理不平衡数据的难点在于,模型被优化为最小化整体误差,这会导致模型更倾向于对多数类(如健康组织)分类,而牺牲少数类(如结节切片)的分类。在严重的类不平衡情况下,模型可能会收敛到多数类分类器。这种情况下,虽然错误较小,但准确率较高,这就导致了肺结节检测的严重不准确。在医学背景下,这种不准确尤其重要,因为错误的负例(即漏诊的结节)会产生严重后果。结节数据的缺乏也阻碍了模型学习区分结节和其他结构所需的精微细微差别。

减轻类不平衡现象有许多策略,包括过采样、类别加权和高关注损失。过采样通过人为增加少数类实例的数量,从而通过增加数据集来平衡数据集,然而这种方法并不能真实反映实际世界中的条件,因此导致模型在测试时期望的肿瘤比例高于实际观察到的比例。类别加权则通过增加少数类实例的损失贡献,强制模型更多关注像肿瘤这样的被低估的案例,从而解决不平衡问题 [1]。然而,这也可能增加假阳性率,因为模型可能过于估计少数类的存在 [3, 4]。一种更为先进的损失方法,即关注损失,通过根据预测置信度下权重良好分类的示例(例如正常切片)并强调难以分类的示例(例如肿瘤),调整损失,从而优先处理难以分类的示例,从而有效解决类不平衡问题,提高罕见类的精确率和召回率。

LUNA16数据集包含888个CT扫描组,包含1186个肺结节。LUNA16中的肺结节根据至少三位放射科医生的共识进行标注,只有结节大于3毫米被视为相关发现,小于3毫米的结节或由少于三位放射科医生识别的结节被排除在评价之外。LUNA16来源于LIDC-IDRI数据集,是开发深度学习模型进行肺癌结节检测的 critical 基准。许多研究使用如CNNs、3D-CNNs、U-Net、SAM和V-Net等架构表明在该数据集上的检测准确率很高。[6,8]

然而,各个研究的数据处理方式存在变异性,这使得直接比较变得复杂。这些研究通常专注于检测已知含有肿瘤的切片中的结节,这项任务不能反映实际应用场景[13]。此外,单个切片通常缺乏区分结节和其他结构所需的三维上下文,因此将相邻切片纳入分析中非常必要。

最大强度投影(MIP)通过将相邻的CT整合为一个单一的2D图像,并将相邻切片中的最高强度 Voxel 投影到2D图像中,以保留关键的三维空间信息。放射科医生广泛使用MIP,这有助于区分结节和血管、血管结构和支气管滋养。结节通常呈紧密的块状物,而血管是细长的管状结构。这种方法在检测3毫米到10毫米之间的肺部结节时非常有效,同时减少了假阳性。

检测Transformer(DETR)Transformer架构已经成为医学计算机视觉中CNNs的强有力替代品。尽管CNNs捕获局部特征,但它们在处理远程依赖关系时存在困难,远程依赖关系指的是模型理解图像中远离局部像素的部分的能力,例如识别扫描图像角落中的模式可能与图像中另一端特征有关。CNNs具有受限制的可接收场,这意味着它们主要关注周围的像素,而没有充分捕捉全局上下文。Transformer利用自注意力机制在图像的整个区域内捕获复杂的关系。这对区分结节和血管等结构至关重要。DETR通过自注意力机制直接预测物体的位置[2]。然而,DETR在收敛性慢和检测小目标(例如结节)方面存在困难[15]。Deformable-DETR通过将自注意力机制与可自定义的注意力机制相结合,仅将注意力聚焦在参考点周围的稀疏一组相关采样点上,而不是关注整个特征图,从而提高了效率。这种方法使模型能够动态地将关注点调整到最具信息性的区域,从而增强了对于CT扫描中小特征(如结节)的效率和性能[15]。

方法概述本文提出了一种新颖的肺癌检测方法,将任务转化为异常检测,重点关注实际应用性。作者的方法是首个将变电站DETR、关注边缘损失和最大强度投影(MIP)相结合,形成一个专门针对检测稀疏肺结节的统一框架。作者为处理后LUNA16数据集构建了一个定制的 Transformer 培训方案,通过关注模型学习难以案例来解决严重类别不均衡问题。这种在本文中未涉及的结构选择与训练策略的组合使作者的模型在临床相关环境中实现了高敏感性和精确度。

2 Methodology

在本节中,作者描述了使用 Deformable-DETR 检测 CT 图像中的稀疏肺结节的方法,并在 LUNA16 数据集上进行评估。作者训练 Deformable-DETR 实现高敏感性和高特异性的平衡,在占主导地位为健康组织的数据集中检测结节,同时最小化假阳性和假阴性。作者的自定义 LUNA16 预处理 Pipeline 开始于使用 Otsu 的方法进行分割以隔离肺区域,然后应用 CLAHE 以增强对比并指导模型关注最相关的区域。最大强度投影 (MIP) 被用于将相邻的 CT 切片合并为单个 2D 图像。为了进一步提高检测准确率,作者集成了一个结合了Focal Loss和 DETR 损失函数的自定义损失函数。各个组件的详细信息将在以下子节中描述。

Data Preprocessing

在本处理流程中,作者对LUNA16数据集中的CT扫描数据进行预处理,以输入到DETR,并增强关键特征,减少噪声。将此过程可视化为图1。CT数据和 Mask 标注以MetaImage(mhd/raw)格式加载。为了标准化解剖结构,通过计算基于原始和目标 Voxel 间距的重新采样因子,对图像进行重采样,解决扫描之间的不一致性。重采样因子R计算如公式(1)所示,其中图像相应地缩放以实现所需的 Voxel 间距:

图片

在这里插入图片描述

Otsu的方法是一种图像阈值技术,通过最小化类内方差自动确定最佳阈值,从而将前景与背景分离。为了减少信息,作者利用Otsu的方法设置一个阈值,将肺组织从周围的背景结构中分割出来,以隔离肺区域。此步骤随后进行形态学操作,包括连接组件分析(connected component analysis)和区域侵蚀(region erosion),以获得用于将肺与其它特征分离的干净的二进制 Mask 。靠近边缘的切片,提供最小的诊断信息,也根据非零区域的尺寸以自动去除。这些步骤将每个患者非零像素数量从约150万个减少到平均每个患者的525万个,使模型能够专注于最重要的解剖结构。

最大强度投影(MIP)将3D体积中最高衰减 Voxel 展现在2D图像上 [5]。该过程可以数学地描述为公式(2),其中沿z轴选择每个(x,y)坐标的最高强度 Voxel ,生成一个2D图像,突出显示 Voxel 的最密集特征。基于经验测试,厚度为7.5mm的最佳slab可突出显示无周圍结构的结节。此步骤如图1的右箭头所示。

在这里插入图片描述

作者将LUNA16数据集的原始CT扫描数据通过MetaImage格式加载到MetaImage中,实现数据集的预处理。在预处理过程中,作者通过计算 Voxel 间距的重新采样因子,实现了不同扫描器之间以及同一扫描器的多个切片之间的标准化;通过Otsu的方法设定一个阈值,将肺组织从周围背景结构中分离,同时移除靠近边缘的切片以获取干净的二进制 Mask ,从而减少了非关键区域的像素数量,降低了模型的计算量。此外,作者还通过最大强度投影将CT数据中具有最高衰减的 Voxel 投影到2D图像上,有助于突出显示密部结节,从而更好地检出肺部结节病变。

Dataset

最终的预处理数据集包括9676个CT扫描切片,每个切片都应用了7.5mm最大强度投影(MIP)。在这些切片中有1226张图像带有结节标注,而剩下的8450张图像包含健康组织。在应用任何预增强之前,数据集被分为70%用于训练,20%用于验证,10%用于测试,以避免数据污染并确保严格的评估。在训练和验证集中,12.7%的图像含有肺部结节。为了更好地模拟实际世界的情况,测试集中的肺部结节比例降低了3%,与训练时使用的高比率形成对比。

在训练中使用较高比率是必要的,以在真实性和模型性能之间取得平衡,因为较低的比率会导致数据集过于稀疏,难以进行有效训练。经验测试证实,当暴露于测试更低结节稀疏度时,在这些较高比率上训练的模型表现良好。分割后,仅对训练集应用了一组数据增强,以增加数据集的大小和变异性。这包括水平翻转,垂直翻转,在-15°至+15°之间的旋转,以及-15%至+15%的亮度调整,还有模拟典型CT扫描传感器噪声的0.001至0.18%标准差(SD)的高斯噪声。

Deformable-Detection Transformer

由于在复杂物检测任务中DETR具有强大的性能,作者选择DETR进行肺部肿瘤检测。为了进一步增强这些能力,作者采用了DETR的变形变体,这是由朱等人在[15]中提出的。变形注意力动态地将注意力集中在参考点周围的稀疏采样点上,使其具有空间适应性和计算效率。通过将注意力集中在最相关的区域,Deformable-DETR显著提高了检测准确率,同时减少了不必要的计算和加速收敛。

使用DETR的初步实验在20个epoch后获得了42%的召回率,在超过10mm的肿瘤中表现良好,但在较小肿瘤上表现挣扎。切换到Deformable-DETR仅需8个epoch即可将召回率提高到80%以上,适用于所有肿瘤大小。在LUNA16数据集中,有74%的肿瘤尺寸为3-10mm,因此选择变形注意力变体进行肿瘤检测。

图2展示了用于稀疏肺部结节检测的自定义变形-DETR架构。检测任务被形式化为边界框区域建议问题,其中模型预测潜在肿瘤区域的边界框和类别概率。这些预测通过使用50%的Intersection over Union(IoU)阈值与地面真理标注进行评估。

图片

所提出的架构首先将预处理的最大强度投影(MIP)图像输入到ResNet-50后端网络。该CNN后端网络从ResNet-50的阶段C3到C5提取多尺度特征图,捕获低层次纹理和高层次语义特征,突出关键肺部区域。这些特征图通过2D正弦余弦位置编码进行增强,这对于在2D医学图像中保留空间关系至关重要,从而为编码器提供必要的位置语境。

编码器利用一系列Deformable Self-Attention(DSA)层动态地细化多尺度特征图。每个DSA层选择性地关注每个 Query 周围的稀疏可学习采样点。自注意的计算复杂度为,其中和分别是特征图的高度和宽度,表示通道数。编码器还集成了一种多尺度注意力机制,以处理不同特征尺度上的信息,增强模型检测不同大小结节的能力。编码器输出富含上下文感知表示的细化多尺度特征图。

解码阶段包括交叉注意力模块和自注意力模块。它首先将编码器的细化特征图与目标 Query (图像中的潜在结节)进行结合,目标 Query 是一个可学习的位移嵌入表示。交叉注意力模块利用这些目标 Query 与编码器的特征图动态地进行互动。这种方法确保解码器高效地进行结节搜索,优化了在复杂肺部结构中检测小结节的能力。

流水线在解码器输出处理上由两个头完成:边界框回归头,预测潜在结节的坐标(中心,宽度,高度),以及分类头,估计每个边界框包含结节与否的概率与背景。

Focal Loss for Classification

为了处理LUNA16数据集中的显著类不平衡问题,作者自定义了DETR损失函数以包含Focal损失。通过添加调节因子,Focal损失在预测正确类别的概率时对分类好的样本进行下权,同时强调难以分类的样本,有助于检测稀有结节实例。Focal损失函数定义在公式(3)中:

在这里插入图片描述

其中是正确类别的预测概率,平衡正负样本,调节关注度以应对挑战性样本。

实证分析表明,和有效平衡了模型对难以分类样本的关注度,从而提高了对小肺部结节的检测。这些值优化了精确度和召回率之间的权衡,最小化了假阳性假阴性。

3 Results

本节评估了所提出的Lung-DETR架构在LUNA16数据集上的性能,重点关注关键指标,如召回率、精确率和国际F1得分。图3提供了模型在结节切片上的预测可视化,展示了其能够精确地区分结节和非结节区域的能力。

图片

所提出的模型在一个Google Colab环境中使用L4 GPU进行训练和评估,以确保有足够的计算能力进行高分辨率3D CT扫描。训练采用AdamW优化器,主参数和backbone参数的学习率分别为1e-4和1e-5,伴有权重衰减1e-4以降低过拟合。学习率使用具有步长10和γ为0.1的Step Learning Rate Scheduler动态调整,每10个周期将学习率降低一个数量级以帮助稳定训练。模型使用6个批处理(mixed precision,16位浮点数),以提高训练速度和效率。梯度截断设置为0.1以防止梯度爆炸,梯度更新累积6个批次以稳定学习。

1总结了Lung-DETR在LUNA16测试数据集上的性能指标。结节根据大小进行分类:较小(最大7mm),中等(7mm至15mm)和大(大于15mm)。精确度测量所有预测中正确识别结节的比例,而召回率表示实际检测到的结节的比例。平均精确度(AP)在交并集(IoU)阈值0.5下,反映与GT至少重合50%的检测精度,具体针对重合度达GT的模型,显示了模型在精度和召回之间的平衡。平均召回率(AR)测量不同结节大小时实际检测到的真阳性比例。平均F1分数结合精确率和召回率,提供对模型在处理假阳性和假阴性的准确性平衡评价。

结果表明,对于大多数肿瘤大小带,Lung-DETR在精确率和召回率上都取得了强的性能,证明其在尽管存在显著的类平衡(仅12.7%的数据代表阳性类)的情况下,区分肿瘤和非肿瘤区域的有效性。对于中等和较大的肿瘤,模型保持高精确率(分别为96.7%和100%),高召回率(均为100%),最小化假阳性,这在医学影像中至关重要,可避免不必要的测试、程序和患者焦虑。高召回率也表明模型对于实际肿瘤的检测率较高,这对于早期诊断和治疗至关重要,尤其是在数据集中阳性案例稀少的情况下。

模型对于小结节(最大7mm直径)的精确率和召回率相对较低,反映了由于CT扫描中较低的对比度而检测小结节的固有挑战。这也在实际临床实践中造成了困难。值得注意的是,小于6mm的结节中恶性的患病率非常低,范围在0和1%之间,欧洲呼吸学会的指南现在建议由于与这些小结节的低恶性风险相关,在进行随访考虑时使用6mm作为阈值。

图3显示了包括六个CT切片的阳性结节区域,绿色框表示真实标注,红框表示Lung-DETR的预测。图像揭示了复杂的血管结构和支气管,这些结构均可轻松模拟或隐藏小结节。尽管存在这些复杂性,但Lung-DETR的预测与GT在各切片上均非常接近,即使在靠近密集血管网络或具有最小视觉对比度的气道中。模型对肺结节的持续准确检测以及检测间隔切片内的消失结节的能力表明其在实际场景中具有潜力。

这项工作提出了Lung-DETR,一种基于变形检测 Transformer 的稀疏肺肿瘤检测方法,将肺结节稀疏性作为异常检测问题进行处理,以有效地管理实际数据集中的肺结节稀疏性。运用自定义预处理技术,如最大强度投影(MIP)以增强3D上下文表示,并采用Focal Loss以优先处理困难的检测,Lung-DETR在LUNA16数据集上取得了94.2%的F1得分,达到尖端性能。模型在多数中等和较大肿瘤大小带上

​

如何学习大模型

现在社会上大模型越来越普及了,已经有很多人都想往这里面扎,但是却找不到适合的方法去学习。

作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。现在我想把我的经验和知识分享给你们,帮助你们学习AI大模型,能够解决你们学习中的困难。

我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习路线、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。

一、AGI大模型系统学习路线

很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱撞,我下面分享的这个学习路线希望能够帮助到你们学习AI大模型。

在这里插入图片描述

二、AI大模型视频教程

在这里插入图片描述

三、AI大模型各大学习书籍

在这里插入图片描述

四、AI大模型各大场景实战案例

在这里插入图片描述

五、结束语

学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技术。通过学习AI大模型,我们可以深入了解深度学习、神经网络等核心概念,并将其应用于自然语言处理、计算机视觉、语音识别等领域。同时,掌握AI大模型还能够为我们的职业发展增添竞争力,成为未来技术领域的领导者。

再者,学习AI大模型也能为我们自己创造更多的价值,提供更多的岗位以及副业创收,让自己的生活更上一层楼。

因此,学习AI大模型是一项有前景且值得投入的时间和精力的重要选择。

图像质量评估(5) -- 畸变(Distortion) 当图像中原本应该是直线的地方看起来发生了不自然的变形或扭曲时,我们称为图像畸变。有三种类型的镜头畸变:桶形畸变(后文使用英文barrel),枕形畸变(后文使用pincushion)和胡子畸变(后文使用英文wavef或mustache,这种畸变里包含了桶形畸变和枕形畸变)。有一个重要的点需要注意,根据透镜的类型以及透镜是否能够从相机中移除等条件不同,畸变会有不同的表现。 总的来说,旋转对称光学系统功能上会产生和物体几何相似的图形。但也有少数特殊的系统是例外,例如鱼眼镜头,这种镜头几何是故意设计为 阅读详情

相关推荐

图像识别中的 Vision Transformers (ViT)

在 ICLR 2021 上作为会议论文发表的一篇研究论文中介绍了 Vision Transformer (ViT) 模型架构,题为“An Image is Worth 16*16 Words: Transformers for Image Recognition at Scale”。它由 Neil Houlsby、Alexey Dosovitskiy 以及Google 研究大脑团队的另外 10 位作者开发和发布。微调代码 和预训练的ViT模型可在 Google 研究团队的 GitHub 上获取。你可以在。

GarryWang1248的博客 4189

如何用transformer做视觉检测

Transformer是一个用于自然语言处理任务的模型,但它也可以用于视觉检测。在使用Transformer进行视觉检测时,需要将图像分割为不同的区域,并为每个区域提取特征向量。这些特征向量可以输入Transformer模型,从而对图像进行分类、检测或分割等任务。 通常情况下,可以使用卷积神经网络(CNN)来提取图像特征,然后将这些特征输入Transformer模型进行处理。此外,还可以将Tran...

weixin_42579969的博客 560

Transformer | Lung-DETR 提升图像识别率 !

在典型的阳性案例中,结节仅在CT切片中的3%中出现,使得检测变得更加复杂。本文提出了一种名为 Lung-DETR 的肺肿瘤检测方法,将肺癌检测任务视为异常检测,目标为在主要为正常数据集中的结节出现。作者的新颖方法 Lung-DETR。

爱CV 424

图像识别之深度:从CNN到Transformer

1.背景介绍 图像识别是人工智能领域的一个重要分支,它涉及到计算机对于图像的理解和分析。随着深度学习技术的发展,图像识别的准确性和效率得到了显著提高。在这篇文章中,我们将从CNN到Transformer探讨图像识别的核心算法,并深入了解它们的原理、数学模型和实例代码。 1.1 图像识别的历史和发展 图像识别的历史可以追溯到1960年代,当时的研究主要基于人工智能和模式识别。随着计算机硬件的发...

AI天才研究院 3299

医学图像分割:DETR Python 应用与扩展

其中,DETR(Detection Transformer)是一种基于Transformer架构的目标检测模型,在自然图像领域取得了很好的效果。本文将介绍如何使用Python实现DETR模型进行医学图像分割,并探讨DETR在医学领域的应用与扩展。总结而言,DETR模型是一种非常有潜力的医学图像分割方法,它能够准确地识别和分割医学图像中的感兴趣结构和病变区域。库加载了预训练的DETR模型,并将其设置为评估模式。在医学图像分割领域,我们可以将DETR模型应用于像CT扫描、MRI图像等医学影像的分割任务中。

PixelShadeZ的博客 646

第四章 汇川技术InoProShop入门之串口自由协议解读

摘要: 串口自由协议是工业自动化中针对特定需求设计的自定义通信协议,具有高度灵活性和针对性,适用于小型设备、实时控制等场景。其核心包括自定义帧结构(起始符、地址码、数据区、校验位等)和通信规则(波特率、交互机制)。相比标准协议,自由协议效率更高但兼容性弱,设计时需注重可靠性、效率和可扩展性,适用于定制化或高实时性需求,如传感器数据采集或老旧设备改造。典型应用需平衡精简帧结构与抗干扰能力,同时预留扩展空间。

zyfucking2010的博客 2216

【DETR】1、DETR | 首个使用 Transformers 的目标检测器

本文主要介绍 DETR

呆呆的猫的博客 3657

青龙面板实战:用快手极速版脚本日赚XX元的核心参数解析

本文深入解析了青龙面板运行快手极速版脚本的核心参数配置,旨在帮助进阶用户提升收益稳定性。重点剖析了设备标识符(did)的获取原理、多账号Cookie的精准拼接规则,以及如何通过科学设置定时任务频率来量化并优化收益,实现细水长流的稳定收益。

weixin_29310605的博客 1075

Swin Transformer—— 基于Transformer的图像识别模型

Swin Transformer是微软研究院于2021年在ICCV上发表的一篇论文,因其在多个视觉任务中的出色表现而被评为当时的最佳论文。它引入了移动窗口的概念,提出了一种层级式的Vision Transformer,将Shifted Windows(移动窗口)作为其主要贡献。这个概念使得Swin Transformer可以像卷积神经网络一样进行分块,并进行层级式的特征提取,从而在特征表示中引入多尺度的概念。

知来者逆的博客 3158

Unity内存优化:从崩溃到流畅的终极指南

Emscripten 为 WebAssembly 设定的内存布局(Static、Stack 和 Heap)为开发者提供了一个清晰的内存管理框架。理解这些内存区域的特性和用途,有助于开发者在 WebGL 项目中更有效地管理内存,优化性能,减少内存使用峰值。在 Unity WebGL 中,Dynamic Memory 是 UnityHeap 的主要组成部分,负责存储游戏运行时所需的各种数据。Dynamic Memory 主要分为两类:Managed Memory 和 Native Memory。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 358

保姆级教程!Python爬虫爬取知乎回答,保存为Markdown文件

本教程实现了知乎公开回答的完整爬取与Markdown保存,核心流程为「请求页面→解析作者/时间/正文/图片→下载图片→保存MD文件」,步骤清晰,代码可直接复用关键特性:支持合并/单文件两种保存模式、自动下载图片并引用、中文乱码防护、非法文件名过滤,满足日常整理知乎回答的需求新手友好:无需复杂配置,仅需修改知乎问题URL即可运行,全程无坑,5分钟内可看到运行结果灵活扩展:支持进阶优化(登录、分页、格式完善),可根据个人需求调整功能。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1232

计算机视觉算法——基于Transformer的目标检测(DN DETR / DINO / Sparser DETR / Lite DETR)

在介绍最终的方法前,论文中首先提到了一种使用Objectness Score的方法,Objectness Score指的是在Backbone的Feature上直接接一个和最终检测头相同的结构的检测头,并同样使用匈牙利计算损失,这个检测头输出的前。

weixin_44580210的博客 2329

【VisDrone数据集】YOLOX训练VisDrone数据集步骤与结果

YOLOX训练VisDrone数据集步骤与结果。

Gorgeous_wxd 2233

综述 | Transformer小目标检测

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达Transformer在计算机视觉领域迅速普及,特别是在目标识别和检测领域。在检查了最先进的目标检测方法的结果后,我们注意到Transformer在几乎每个视频或图像数据集上的表现都优于成熟的基于CNN的检测器。虽然基于Transformer的方法仍然处于小目标检测(SOD)技术的前沿,但本文旨在探索这种广泛的网络提供的性能优势...

小白学视觉 501

ComfyUI 局部重绘工作流示例

本文介绍了使用ComfyUI进行图像局部重绘的基础工作流程,重点讲解如何修改人物眼睛颜色和表情。主要内容包括:1.准备工作(可选下载DreamShaperv8模型);2.加载素材图片和工作流文件;3.使用遮罩编辑器绘制需要修改的区域;4.修改提示词控制生成内容;5.调整denoise参数优化效果。教程提供了详细的提示词示例(如"smile,blackeyes"等)和参数设置建议,帮助用户通过多次尝试获得理想效果。该工作流适用于修改图像局部区域而不影响整体画面。

云域A的博客 331

路径规划 | 图解Informed RRT*算法(附ROS C++/Python/Matlab仿真)

Informed RRT*算法针对RRT*算法进行了采样优化,用椭圆采样代替全局均匀采样,避免了RRT*算法搜索树上产生过多冗余分支的缺陷。本文图解Informed RRT*原理,并提供ROS C++/Python/Matlab三种实现加深理解

FRIGIDWINTER的博客 7485

Transformer在医学影像中的应用综述-分割

继在自然语言任务上取得前所未有的成功之后,Transformers 已经成功地应用于几个计算机视觉问题,取得了最先进的结果,并促使研究人员重新考虑卷积神经网络(cnn)作为事实上的算子的霸主地位。利用计算机视觉的这些进步,医学成像领域也见证了与具有局部接受域的cnn相比,能够捕获全局上下文的Transformers的兴趣越来越大。受这种转变的启发,在本调查中,我们试图全面回顾Transformers 在医学成像中的应用,涵盖各个方面,从最近提出的建筑设计到未解决的问题。

qq_45745941的博客 3840

基于STM32设计的环境检测系统(OneNet)_365

本项目设计并实现了一种基于STM32F103RCT6单片机的环境检测系统,系统集成了多种传感器模块,具备对环境温湿度、烟雾浓度、易燃气体浓度、一氧化碳浓度和整体空气质量的实时检测功能。系统通过1.44寸SPI接口LCD实现本地数据显示,同时配备有源蜂鸣器用于环境异常报警。在数据通信方面,系统利用ESP8266-WIFI模块,采用MQTT协议将各类传感器数据上传至OneNet云平台,并借助其可视化框架实现网页端可视化界面,可通过电脑和手机浏览器远程访问,实现环境数据的远程监控。该系统设计结构简单、功能全面,适

2191

TransUNet:变压器成为用于医学图像分割的强大编码器

TransUNet: Transformers Make Strong Encoders for Medical Image Segmentation 摘要 医学图像分割是开发医疗保健系统(尤其是疾病诊断和治疗计划)的必要先决条件。在各种医学图像分割任务中,u型架构(也称为U-Net)已成为事实上的标准,并取得了巨大的成功。但是,由于卷积运算的固有局部性,U-Net通常在明确建模远程依赖关系方面显示出局限性。设计用于序列到序列预测的变压器已经成为具有先天性全局自注意机制的替代体系结构,但由于底层细节不足,可

weixin_42046845的博客 3887

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

[深度学习论文笔记]TransUNet: Transformers Make Strong Encoders for Medical Image Segmentation

[深度学习论文解读] TransUNet: Transformers Make Strong Encoders for Medical Image Segmentation TransUNet:用于医学图像分割的Transformers强大编码器 论文:https://arxiv.org/pdf/2102.04306 代码:https://github.com/Beckschen/TransUNet 发表时间:Feb 2021 一、基本介绍 1.1问题动机 医学图像分割是开发医疗保健系统(尤其是疾病诊断和治

Slientsake的博客 1万+

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

基于Transformer的遥感图像变化检测

1 摘要 提出了一种双时间图像转换器(BIT)用来高效并有效地在空间-时间域内对上下文进行建模。 2 介绍 基于高分辨率遥感图像的变化检测(CD)在两个方面仍然具有挑战: (1)场景中对象的复杂性 (2)不同的成像条件 这两者都促使同一语义概念的对象在不同的时间、不同的空间位置表现出不同的光谱特征。例如一张图像中不同位置的建筑物具有不同的形状和外观,如下图Image1和Image2中的黄框所示;同一个建筑物在不同的光照下或不同的时间具有不同的颜色,如Image1和Image2两图红框对比所示。 为了识

m0_46599997的博客 5807

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

基于Transformer 实现车辆检测与车牌识别(一)

车辆检测阶段:使用 Deformable DETR 检测图像中的车辆车牌识别阶段:使用 TrOCR (Transformer-based OCR) 识别裁剪出的车牌区域。

跬步千里,窥叶知秋 979

一种创新的白细胞检测方法:多级特征融合与变形自注意力DETR(MFDS-DETR)

作者的创新模型使用高级特征作为权重来过滤低级特征,将过滤后的特征与高级特征融合,从而显著增强模型检测效果。在标准的医院血液检查中,传统的流程需要医生通过显微镜手动从患者的血液显微图像中分离白细胞,然后通过自动白细胞分类器对分离的白细胞进行分类,以确定血样中不同类型白细胞的数量和体积,从而帮助疾病诊断。在随后的比较实验部分,作者将作者专门设计的MFDS-DETR模型与其他先进的白细胞目标检测模型进行了对比,使用的数据集有三个,分别是WBCDD、LISC和ALL-IDB,以证明作者模型的有效性和泛化能力。

小鹏AI 4319

DETR类型检测网络---思考和Tricks测试

中,query_pos(query_embed):预设的shape为(n,embed_dim),query:预设的shape为(n,embed_dim),reference_point:利用query_pos线性映射为shape(n,3)中是预设的query_pos shape为(n,embed_dim), 而query=zeros.shape为(n,embed_dim)query_pos(query_embed):利用reference_point线性映射为shape(n,embed_dim)

zwhdldz的博客 1138

自训Transformer模型:识别图像是否由AI生成?

无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。:与传统的卷积神经网络(CNN)相比,Transformer模型更擅长捕捉图像中的全局上下文信息,使其在识别AI生成图像时,尤其在细节和纹理方面,表现得更加精准。:Transformer模型具有强大的特征提取和表示能力,能够从图像中学习到细微的特征差异,识别出AI生成图像与真实图像之间的细微区别。随着AI生成图像技术的迅猛发展,特别是生成对抗网络(GANs)和深度学习的不断进步,生成的图像变得越来越逼真。

python1234567_的博客 1552
上一篇: 大模型技术基础学习路线,想要学好大模型应该具备哪些能力?
下一篇: 利用LLMs自动寻找量化投资策略
AI_小站
博客等级 码龄3年 6255粉丝 1152原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值