当前位置: 首页 > news >正文

基于纹理和统计图像特征集成的计算机辅助乳腺癌检测

        诊断通常使用组织病理学切片,可以确定组织是否处于导管原位癌(DCIS)阶段,其中癌细胞尚未扩散到周围乳腺组织,或浸润性导管癌(IDC)阶段,其中细胞已渗透到邻近组织。对于医生来说,检测IDC非常耗时且具有挑战性。因此,这可以建模为图像分类任务,其中模式识别和机器学习可用于帮助医生和医疗从业者做出此类关键决策。

        在本文中,使用包含277,524张图像的IDC乳腺癌数据集(其中78,786张IDC阳性图像和198,738张IDC阴性图像)将图像分为IDC(+)和IDC(-)。为此,使用了特征提取器,包括SIFT、SURF和ORB等纹理特征,以及Haralick纹理特征等统计特征。然后将这些特征组合起来,生成一个包含782个特征的数据集。通过使用各种机器学习分类器(如Random Forest, Extra Trees, XGBoost, AdaBoost, CatBoost和多层感知器)堆叠这些特征,然后使用Pearson相关系数进行特征选择,产生具有四个特征的数据集,然后用于分类。从实验结果中,发现CatBoost产生了最高的准确率(92.55%),这与其他最先进的结果相当,其中大多数使用深度学习架构。


1. 引言

        由于治疗取决于癌症的分期,任何病理学家的初步任务之一包括对苏木精和伊红(H&E)染色的组织病理学切片进行视觉分析。通过切片可以判断组织是导管原位癌(DCIS)期还是浸润性导管癌(IDC)期。乳腺导管原位癌是一种非侵袭性癌症,在乳腺导管内壁发现癌细胞,但尚未扩散到周围乳腺组织。然而,在IDC中,在乳管中开始形成的异常癌细胞扩散到乳管以外的乳腺组织的其他部分。IDC是最常见的乳腺癌类型,约占所有乳腺癌诊断的70-80%。IDC检测作为治疗过程的重要组成部分,是一项极其耗时和困难的工作。

        鉴于上述情况,使用图像处理技术将组织病理切片分类为IDC(+)和IDC(-)的问题委托给ML。机器学习依赖于从图像中提取特征描述符,然后进行分类。这些描述符包括颜色描述符,如RGB直方图;统计描述符,比如哈拉里克特征;和纹理描述符,如加速鲁棒特征(SURF)等。

        ML的替代方案是在DL中使用神经网络,这省去了手工制作特征的需要。然而,这是以更大的复杂性和更高的计算能力为代价的。此外,为了正确地训练DL模型,需要大量的输入样本,而这些样本有时可能无法用于现实问题。

本文中,尝试使用纹理和统计特征的集合将组织病理学图像分为IDC(+)和IDC(-)。

        使用随机森林(Random Forest)、CatBoost (CB)和AdaBoost (AB)等各种标准ML算法,计算了尺度不变特征变换(SIFT)、SURF、定向FAST和旋转BRIEF (ORB)和灰度共生矩阵(GLCM)等纹理特征和统计特征(Haralick特征)的精度。然后将这些分数与这些特征的各种组合的准确性指标进行比较。用叠加的方法将所有的特征集合在一起,得到了最好的结果。

1.1 工作贡献

        提出了一种纹理和统计描述符的集成方法,然后使用ML分类器(如RF和CB)进行分类。用于组合的方法是堆叠。

        利用基于Pearson’s Correlation Coefficient的特征选择,对传统的叠加方法进行了修改,以剔除潜在的冗余特征。

        对SURF、SIFT、ORB、GLCM和Haralick及其各种组合的相对性能进行了全面的比较。

        创建了一个轻量级的ML模型,它在计算上便宜,在算法上易于设计。与其他现有的方法相比,它即使不是更准确,也是同样准确的。

(a)在训练集上训练分类器。然后使用训练好的分类器来预测验证集和测试集的结果。 

 (b)第二阶段,堆叠不同分类器的验证预测以生成新的训练特征,同时堆叠不同分类器的测试预测以生成新的测试特征。利用这些新的训练和测试特征,对分类器进行评估。

(c)提出的模型,其中第二阶段被修改,在模型训练和测试之前对新的训练和测试特征进行特征选择。 

2. 文献调查

        Narayanan等提出了一种新颖的深度CNN架构。图像从50 × 50缩小到48 × 48。在预处理阶段,采用了颜色恒常性技术和直方图均衡化技术。然后将预处理后的图像输入CNN。所提出的架构由五个卷积层组成,然后是一个完全连接(FC)层和一个softmax层。与使用直方图均衡化预处理的图像相比,使用颜色恒定技术预处理的图像产生了更好的性能指标。 

        Debelee等使用CNN提取特征,并采用主成分分析进行降维。使用k-近邻(k-NN)对乳房x线照片进行正常或异常分类。Debelee等使用预训练的Inception-V3及其提出的改进的自适应K-means (MAKM)方法从图像中提取特征。从ROI和基于cnn提取的特征中融合GLCM和Gabor(纹理特征),并将其输入5个分类器(SVM、k-NN、NB、MLP和RF)中,以量化特征的描述能力。 

        Rahman等提出了多层CNN。IDC数据集存在明显的类不平衡。从IDC(+)和IDC(-)两个类别中选取相同数量的图像,以消除类别不平衡问题。图像的选择是随机进行的,以避免偏差。通过应用各种数据增强来减轻过拟合,即随机10度旋转,移动,缩放和水平和垂直翻转。实现的体系结构达到89%的准确率。

        Romano和Hernandez也纠正了IDC(+)数据集中存在的阶级不平衡。对图像进行归一化处理,并对数据进行增强,防止过拟合。使用随机转换数组增强图像,以便分类器永远不会两次查看完全相同的图像。

        Cruz-Roa等提出了一种三层CNN架构,用于自动检测全幻灯片图像(WSI)中的IDC组织区域。CNN在第一层、第二层卷积池化层和FC层分别有16、32和128个神经元。Wang等人将Cruz-Roa等人的架构的工作扩展到四种不同的架构。得出结论,数据增强在使用IDC(+)数据集自动检测乳腺癌方面无效。删除了分割不规则性。有太多的图像不是50 × 50的,必须删除。所有的冗余图像90%的黑色空间或90%的白色空间被删除。

3. 提出的方法

        通过提取IDC(+)和IDC(-)图像的SIFT、SURF和ORB等纹理特征和Haralick特征等统计特征对其进行分类。提取后,对这些特征进行组合,再通过叠加进行集合。然后使用叠加的特征来获得最终的预测。

        从组织病理学图像开始,从中提取256个SIFT, 256个SURF, 256个ORB和14个Haralicks特征。然后将782(= 256 + 256 + 256 + 14)个特征组合起来。然后通过堆叠将这些特征组合起来。为了剔除冗余特征,使用Pearson相关系数。然后进行模型训练和测试,最终将图像分类为IDC(-)和IDC(+)。 

3.1 数据集描述

        IDC乳腺组织病理学图像数据集。原始数据集由162张40倍扫描的乳腺癌标本WSI组成。从WSI中提取277,524个分辨率为50 × 50的斑块。其中,IDC(-)为198738张,IDC(+)为78786张。 

IDC数据集icon-default.png?t=N7T8https://www.kaggle.com/datasets/paultimothymooney/breast-histopathology-images

3.2 特征提取

3.2.1 尺度不变特征变换(SIFT)

        SIFT是一种特征提取方法,用于在图像中检测和描述局部特征。这些特征(或关键点)在图像尺度变化和旋转时都是不变的。这意味着,即使图像被放大、缩小或旋转,这些关键点仍然可以被识别出来。

SIFT的工作流程

        首先,从一组参考图像中提取SIFT关键点,并将这些关键点存储在数据库中。当有新图像需要识别时,算法会模拟新图像中的每个属性与数据库中的属性。基于欧几里得距离(一种衡量两点间“直线”距离的方法),算法会查找与新图像中特征向量相近的候选对象。具体来说,新图像中的每个特征都会与数据库中的特征进行比较,并基于特征向量之间的欧几里得距离来找到候选匹配对象。为了有效地确定一致的特征群集(即指向同一对象的多个关键点),算法使用了一个基于广义霍夫变换的哈希表实现。这有助于快速找到在多个位置都出现的特征,从而指示可能存在的对象。一旦找到指向同一对象的三个或更多特征,算法会进行额外的模型验证来确保这些特征确实属于同一对象。在验证过程中,不符合模型的特征(即异常值)会被剔除。最后,根据匹配的准确性和可能的错误匹配数量,算法会计算某个特征集指示对象存在的可能性。只有通过了所有测试的对象匹配才会被认为是正确的。

        SIFT算法通过提取和比较图像中的关键点来识别对象,这些关键点在图像尺度变化和旋转时都是不变的。它使用广义霍夫变换和哈希表来有效地找到一致的特征群集,并通过模型验证来剔除异常值。最终,算法根据匹配的准确性和可能性来确定哪些对象匹配是正确的。

3.2.2  加速的健壮特性(SURF)

        SURF是一种用于对象识别、图像配准、分类等任务的局部特征检测器和描述符。尽管它受到SIFT描述符的启发,但SURF的执行速度比SIFT快得多。SURF特征检测器通过在不同尺度上应用近似的高斯二阶导数掩模到图像上来工作。与Harris角点检测方法相比,SURF对旋转的鲁棒性更强。SURF之所以非常快,是因为它使用了积分图像。在积分图像中,像素(x, y)的值是由原点和(x, y)定义的矩形内所有值的和。源图像中任何大小的矩形内的像素和都可以通过四个操作找到。这允许以非常少的计算时间应用任何大小的矩形掩模。

3.2.3 ORB (Oriented FAST and Rotated BRIEF)

        ORB是一个旨在为SIFT提供一个高效且快速的替代品的特征检测器和描述符。由Rublee等人提出,是FAST关键点检测器和视觉描述符BRIEF(Binary Robust Independent Elementary Features)的修改版本的结合。ORB在特征检测任务上的性能与SIFT相当,但速度要快得多。ORB的基础检测器,即FAST关键点检测器和BRIEF描述符,都以低成本提供了良好的性能。ORB的主要贡献包括:

  • 为FAST添加了方向组件。
  • 有效地计算了定向BRIEF特征。
  • 一种在旋转不变性下使BRIEF特征去相关的方法,从而在最近邻应用中获得更好的性能。
  • 对定向BRIEF特征的方差和相关性进行分析。

3.2.4 Haralick Features

        Haralick纹理特征是基于灰度共生矩阵(GLC)计算的。灰度共生矩阵是一种用于描述图像中灰度级空间分布和关系的矩阵。通过计算GLC的不同统计量(如对比度、相关性、能量等),可以获得一组能够描述图像纹理的特征。这些特征在医学图像分析、机器视觉、无损检测等领域有广泛应用。

3.3 堆叠集成

        集成学习是一种机器学习范式,其中多个模型(通常被称为“弱学习器”)被训练来解决相同的问题,并通过某种方式组合起来以获得更好的结果。集成学习的主要思想是,当弱学习器被正确组合时,我们可以获得更准确和更鲁棒的模型。
        堆叠是集成学习的一种方法,其中多个弱学习器被训练,并通过训练一个元模型(meta-model)来组合它们。这个元模型基于这些弱学习器返回的多个预测结果来产生最终的预测。堆叠与其他集成算法(如boosting和bagging)的不同之处在于,它考虑了不同类型的算法作为弱学习器,即异质弱学习器。
        对于我们的分类任务,选择了以下算法作为弱学习器:XGBoost(XGB)、AdaBoost(AB)、CatBoost(CB)、随机森林(RF)、Extra Trees(ET)和多层感知器(MLP)。这些弱学习器将基于包含SURF、SIFT、ORB和Haralick特征的数据集进行训练。

堆叠的过程包括以下几个步骤:

  • 分割训练数据:将训练数据分为两部分(两折)。
  • 训练弱学习器:使用第一折训练数据来拟合(训练)选择的弱学习器,即XGB、AB、CB、RF、ET和MLP。
  • 进行预测:对于每个弱学习器,使用它们在验证数据和测试数据上进行预测。
  • 训练元模型:将弱学习器在验证集上的预测结果作为新的训练特征,在测试集上的预测结果作为新的测试特征。然后,使用这些新的特征来训练和测试元模型(如逻辑回归、支持向量机等)。元模型的输出将是最终的预测结果。

        因此,堆叠本质上是两个模型的结合,一个是拟合训练数据并编译其预测的基本模型,另一个是学习如何最好地组合基本模型生成的预测的元模型。在实践中,在步骤3之后,检查新创建的特征之间的Pearson相关系数,以剔除潜在的冗余特征,然后进行最终预测。 

        在机器学习的堆叠集成(Stacking)中,元模型扮演着将多个基本模型的输出作为新的特征输入并进行最终预测的角色。具体来说,堆叠集成首先将原始训练数据划分为训练集和验证集,然后使用训练集训练多个基本模型,每个模型在验证集上生成预测结果。这些预测结果作为新的特征,与原始特征一起输入到元模型中,训练元模型以获得最终的预测。

 

相关文章:

基于纹理和统计图像特征集成的计算机辅助乳腺癌检测

诊断通常使用组织病理学切片,可以确定组织是否处于导管原位癌(DCIS)阶段,其中癌细胞尚未扩散到周围乳腺组织,或浸润性导管癌(IDC)阶段,其中细胞已渗透到邻近组织。对于医生来说,检测IDC非常耗时且具有挑战性。因此&…...

Java基础 - 简介和配置环境变量

目录 一. 简介 二. 开发环境配置 下载JDK 配置环境变量 Java_Home配置, Path 配置 CLASSPATH 配置 三. 编辑器选择 1.JetBrains 2. Eclipse 3.vscode 下载vscode 安装 vscode插件 四. 总结 一. 简介 Java 是由 Sun Microsystems 公司(后被 Oracle 收…...

水域救援装备的详细简介_鼎跃安全

水域救援行动需要救援人员配备全面、专业的装备,以应对各种复杂的水域环境和救援任务。水域救援套装应运而生,它集合了水域救援所需的各类关键装备,为救援人员提供全方位的保护和辅助,确保数援行动的高效与安全。 水域救援头盔&am…...

二、BIO、NIO、直接内存与零拷贝

一、网络通信编程基础 1、Socket Socket是应用层与TCP/IP协议族通信的中间软件抽象层,是一组接口,由操作系统提供; Socket将复杂的TCP/IP协议处理和通信缓存管理都隐藏在接口后面,对用户来说就是使用简单的接口进行网络应用编程…...

生成式AI的发展方向:Chat vs Agent

一、整体介绍 生成式AI作为人工智能领域的重要分支,近年来取得了显著进展,并在多个领域展现出巨大潜力。其核心在于通过机器学习和深度学习算法,从大量数据中学习规律和特征,进而生成具有创新性和多样性的文本、图像、音频和视频…...

吴恩达深度学习笔记:机器学习策略(2)(ML Strategy (2)) 2.9-2.10

目录 第三门课 结构化机器学习项目(Structuring Machine Learning Projects)第二周:机器学习策略(2)(ML Strategy (2))2.9 什么是端到端的深度学习?(What is end-to-end deep learning?&#x…...

变频空调介绍

直流变频空调:只有压缩机是直流变频的,而室外机风电机和室内机风电机都是定频的。 全直流变频空调:它的压缩机是直流变频的,并且室外机风机和室内机风机都是直流变频的。因为大三部件一个不漏,所以就叫做全直流变频。…...

C语言实现二叉树以及二叉树的详细介绍

目录 1.树概念及结构 1.1树的概念 1.2树的相关概念 1.3树的表示 2.二叉树概念及结构 2.1二叉树的概念 2.2特殊的二叉树 2.3二叉树的性质 2.4二叉树的存储结构 3.二叉树顺序结构--特殊的二叉树--堆及其实现 3.1堆的概念及结构 3.2堆的实现 3.2.1堆的结构 3.2.2堆…...

VScode:前端项目中yarn包的安装和使用

一、首先打开PowerShell-管理员身份运行ISE 输入命令: set-ExecutionPolicy RemoteSigned 选择“全是”,表示允许在本地计算机上运行由本地用户创建的脚本,没有报错就行了 二、接着打开VScode集成终端,安装yarn插件 输入 npm ins…...

cmake configure_package_config_file指令详解

在 CMake 中,configure_package_config_file 命令用于生成包配置文件(Package Configuration File),这些文件用于指定如何使用和链接某个库或工具。通常情况下,这些文件用于支持 CMake 的 find_package 命令来查找和加…...

准备跳槽了(仍然底层为主,ue独立游戏为辅)

思考再三,准备跳槽了。 一、跳槽原因: 今年经济形势非常不好。那我为什么还要跳槽呢?因为干不下去了。公司是末位淘汰制,而我绩效垫底了。给我的整改措施中,部门经理让我三个月搞定60个bug,我觉得简直是送…...

汽车免拆诊断案例 | 卡罗拉急加速抖动故障排除

车型信息 2017年改款卡罗拉,排量1.2T,行驶里程48800公里。 故障现象 车辆不管在什么状态下,只要是平缓加速,都不会有抖动。车辆静止时,急加速时,也不会有抖动。但是车速达40公里/小时以上,急加…...

【JAVA】深入理解Hutool中的Pair、Triple和Tuple:组合数据的新方式,方法返回多个值,嘎嘎香,谁用谁知道,比原生好用更强大

Hutool 是一个开源的 Java 工具库,提供了丰富且实用的功能,旨在减少 Java 程序员在日常开发中重复造轮子的工作。在 Hutool 中,Pair、Triple 和 Tuple 是三种用于组合和存储不同数量相关联数据的类。以下是这三个类的简介: 1、添…...

modulepreload 对性能的影响

一、正面影响 减少加载时间: modulepreload 可以让浏览器提前下载模块脚本,减少页面加载时间,特别是对于依赖较多的复杂应用。这种预加载可以让浏览器在遇到 modulepreload 链接时立即开始下载,而不是等到实际需要时才下载提升用…...

问题:向上对齐对象的快捷键是: #学习方法#笔记

问题:向上对齐对象的快捷键是: A、T B、L C、R D、W 参考答案如图所示...

C# 4.List

comboBox使用的下拉框 Lsit 列表 1 创建List对象 List<string> list new List<string>(); 2 Add给list 添加元素 list.Add("吃饭"); list.Add("睡觉"); list.Add("打豆豆"); 3 删除一个元素 list.Remove("吃饭"); // 删…...

界面控件DevExpress Blazor UI v24.1 - 发布全新TreeList组件

DevExpress Blazor UI组件使用了C#为Blazor Server和Blazor WebAssembly创建高影响力的用户体验&#xff0c;这个UI自建库提供了一套全面的原生Blazor UI组件&#xff08;包括Pivot Grid、调度程序、图表、数据编辑器和报表等&#xff09;。 DevExpress Blazor控件目前已经升级…...

docker默认存储地址 var/lib/docker 满了,换个存储地址操作流程

1. 查看docker 存储地址 docker info如下 var/lib/docker2、查看内存大小 按需执行 df -h 找超过100M的大文件 find / -type f -size 100M -exec ls -lh {} \; df -Th /var/lib/docker 查找这个文件的容量 df -h 查找所有挂载点 du -hs /home/syy_temp/*1、df -h 2、sud…...

SpringMVC的底层工作原理?

1.用户发送请求至前端控制器DispatcherServlet. 2.DispatcherServlet 收到请求调用 HandlerMapping 处理器映射器 3.HandlerMapping找到具体的处理器(可以根据 xml 配置、注解进行查找&#xff09;&#xff0c;生成处理器及处理器拦截器(如果有则生成)一并返回给DispatcherSe…...

PyTorch 深度学习实践-处理多维特征的输入

视频指路 参考博客笔记 参考笔记二 通过多个线性模型来模拟非线性的空间变换&#xff0c;矩阵计算就是不同维度之间的空间转换 说明&#xff1a;1、乘的权重(w)都一样&#xff0c;加的偏置(b)也一样。b变成矩阵时使用广播机制。神经网络的参数w和b是网络需要学习的&#xff0c…...

常见逻辑漏洞举例

文章目录 简介用户名可枚举验证码可绕过/验证码回传越权访问任意密码修改验证码回传订单金额任意修改URL跳转漏洞短信轰炸找回密码还有很多逻辑漏洞&#xff0c;其实并没有什么技巧&#xff0c;要分析清楚他的业务逻辑&#xff0c;可能很多正常的流程中就存在着逻辑漏洞。 简介…...

FastAPI 学习之路(五十九)封装统一的json返回处理工具

在本篇文章之前的接口&#xff0c;我们每个接口异常返回的数据格式都不一样&#xff0c;处理起来也没有那么方便&#xff0c;因此我们可以封装一个统一的json。 from fastapi import status from fastapi.responses import JSONResponse, Response from typing import Unionde…...

tg小程序前端-dogs前端源码分析

tg小程序前端-dogs前端源码分析 前端源码 index.html <!DOCTYPE html> <html lang="en"><head><script src="https://telegram.org/js/telegram-web-app.js" onload="window.Telegram.WebApp.expand(); window.Telegram.WebA…...

Linux——多路复用之select

目录 前言 一、select的认识 二、select的接口 三、select的使用 四、select的优缺点 前言 在前面&#xff0c;我们学习了五种IO模型&#xff0c;对IO有了基本的认识&#xff0c;知道了select效率很高&#xff0c;可以等待多个文件描述符&#xff0c;那他是如何等待的呢&a…...

探索.NET内存之海:垃圾回收的艺术与实践

简述 在.NET的广阔天地中&#xff0c;内存管理如同航海中的罗盘&#xff0c;指引着程序的稳健运行和性能的极致优化。作为软件工程师&#xff0c;我们时常在代码的海洋中航行&#xff0c;而内存管理则是确保航程顺畅的关键。本文将带您深入.NET的内存管理世界&#xff0c;一探垃…...

路由数据获取及封装方法

数据库设计 自联表 定义tree字段 public class LabelValue{public int label { get; set; }public string? value { get; set; }public List<LabelValue> children { get; set; }}获取路由方法 public Response<object> getMenuList() {Response<object>…...

Visual Studio Code 实现远程开发

Background 远程开发是指开发人员在本地计算机上进行编码、调试和测试&#xff0c;但实际的开发环境、代码库或应用程序运行在远程服务器上。远程开发的实现方式多种多样&#xff0c;包括通过SSH连接到远程服务器、使用远程桌面软件、或者利用云开发环境等。这里我们是使用VSCo…...

基于STM32设计的人体健康监测系统(华为云IOT)(189)

基于STM32设计的人体健康监测系统(华为云IOT)(189) 文章目录 一、前言1.1 项目介绍【1】项目功能介绍【2】项目硬件模块组成1.2 设计思路【1】整体设计思路【2】整体构架【3】ESP8266模块配置【4】上位机开发思路【5】供电方式1.3 项目开发背景【1】选题的意义【2】可行性分析【…...

开源防病毒工具--ClamAV

产品文档&#xff1a;简介 - ClamAV 文档 开源地址&#xff1a;Cisco-Talos/clamav&#xff1a;ClamAV - 文档在这里&#xff1a;https://docs.clamav.net (github.com) 一、引言 ClamAV&#xff08;Clam AntiVirus&#xff09;是一个开源的防病毒工具&#xff0c;广泛应用…...

【网络】Socket编程

文章目录 正确理解端口号理解源IP地址和目的IP地址认识端口号端口号和进程ID 理解Socket网络字节序socket编程接口创建socket套接字bind绑定套接字listen建立监听accept接受连接connect建立连接sendto发送数据接收数据close关闭套接字 sockaddr结构体 正确理解端口号 理解源IP…...

行政单位门户网站建设方案/全球搜索大全

1、阿里移动推荐算法&#xff1a; 答辩视频&#xff1a;https://space.dingtalk.com/c/gQHOEnXdXw 2、资金流入流出预测&#xff1a; 答辩视频&#xff1a;https://space.dingtalk.com/c/gQHOEnXi6w 3、阿里移动推荐&资金流入流出预测答辩PPT下载&#xff1a; https://ti…...

网站建设合同是否交纳印花税/开发网站用什么软件

一、概念 1.分布式事务 分布式事务通俗来说&#xff0c;一次操作由若干分支组成&#xff0c;这些分支操作分属于不同的应用&#xff0c;分布在不同的服务器上&#xff0c;分布式事务需要保证这些操作要么全部成功&#xff0c;要么全部失败&#xff0c;分支事务与普通事务一样…...

wordpress nginx伪静态/最让顾客心动的促销活动

目前已发行的版本有1.0、1.1、2.0、3.0、3.5、4.0、4.5&#xff08;及4.5.1、4.5.2&#xff09;、4.6&#xff08;及4.6.1&#xff09;。 1.0版本&#xff1a;最初的.net framework版本&#xff0c;作为一个独立的工具包存在。 1.1版本&#xff1a;是1.1的升级版本&#xff0c;…...

东莞高端网站建设多少钱/全球网络营销公司排行榜

七夕情——代腾飞 2009年8月26日 于成都七夕期&#xff0c;七夕许只为期许着这等待了一年的再遇七夕遇&#xff0c;七夕聚只为这一刻诉说衷肠的短暂相聚&#xff01; 牛郎织女谱写着千百年来爱的传奇今晚&#xff0c;我守候在葡萄架下只为向你们学习爱的私语只是啊&#xff0…...

关于配色的网站推荐/百度业务员联系电话

mysql插入数据后获得主键 针对自增主键的表&#xff0c;在插入时不需要主键&#xff0c;而是在插入过程自动获取一个自增的主键&#xff0c;比如MySQL&#xff0c; <insert id"add" parameterType"vo.Category" useGeneratedKeys"true" key…...

wordpress 自动抓取/天津网站排名提升多少钱

我正在使用Webphere服务器。我正在使用Apache FileUpload方法通过servlet执行文件上传。上传文件时的Ajax请求需要很长时间才能完成我附加了一个侦听器到这个FileUpload&#xff0c;它更新了一个“百分比”字段&#xff0c;表示已经处理了多少百分比的请求。请求被定向到一个if…...