论文推荐:基于深度对抗学习的超声图像乳腺肿瘤分割与分类

件GAN (cGAN) + Atrous卷积(AC) +带权重块的通道注意力(CAW)

该论文提出了一种基于深度对抗学习的超声图像乳腺肿瘤分割分类方法(cGAN+AC+CAW),论文虽然是2019年提出的,但是他提出了使用GAN进行分割的方法在当时来说却是一个非常新奇的想法,该论文基本上把所有当时能够整合的技术全部进行了集成,并且还取得了很好的效果,所以是非常值得我们一读的,此外论文还提出了具有典型对抗损失的SSIM和l1范数损失作为损失函数。

使用 cGAN+AC+CAW 进行语义分割

生成器G

生成器网络包含一个编码器部分:由七个卷积层(En1到En7)和一个解码器:七个反卷积层(Dn1到Dn7)组成。

在En3和En4之间插入一个atrous卷积块。膨胀率1、6和9,内核大小3×3,步长为2。

在En7和Dn1之间还有一个带通道加权(CAW)块的通道注意力层。

CAW块是通道注意模块(DAN)和通道加权块(SENet)的集合,它增加了生成器网络最高级别特征的表示能力。

鉴别器D

它是一个卷积层的序列。

鉴别器的输入是图像和标记肿瘤区域的二值掩模的拼接。

鉴别器的输出是一个10×10矩阵,其值从0.0(完全假的)到1.0(真实的)不等。

损失函数

生成器G的损失函数包括三个项:对抗性损失(二元交叉熵损失)、促进学习过程的l1 -范数和改善分割掩码边界形状的SSIM损失:

其中z是一个随机变量。鉴别器D的损失函数为:

使用随机森林进行分类任务

将每一张图像输入经过训练的生成网络,获得肿瘤边界,然后从该边界计算13个统计特征: fractal dimension, lacunarity, convex hull, convexity, circularity, area, perimeter, centroid, minor and major axis length, smoothness, Hu moments (6) and central moments (order 3 and below)

采用穷举特征选择(Exhaustive feature selection),算法来选择最优的特征集。EFS算法表明, fractal dimension, lacunarity, convex hull, centroid是最优的4个特征。

这些选择的特征被输入一个随机森林分类器,然后训练该分类器来区分良性和恶性肿瘤。

结果对比

分割

数据集包含图像中包含的150个恶性肿瘤和100个良性肿瘤。为了训练的模型,将数据集随机分为训练集(70%)、验证集(10%)和测试集(20%)。

该模型(cGAN+AC+CAW)在所有指标上都优于其他模型。其Dice和IoU得分分别为93.76%和88.82%。

论文模型的IoU和Dice与FCN、SegNet、ERFNet和U-Net等分割头的箱线图对比。

该模型对Dice系数的取值范围为88% ~ 94%,对IoU的取值范围为80% ~ 89%,而其他深度分割方法FCN、SegNet、ERFNet和U-Net的取值范围更大。

分割结果如上图所示,SegNet和ERFNet产生的结果最差,有大量的假阴性区域(红色),以及一些假阳性区域(绿色)。

而U-Net, DCGAN, cGAN提供了很好的分割,论文提出的模型提供了更精确的乳腺肿瘤边界分割。

分类

所提出的乳腺肿瘤分类方法优于[9],总准确率达85%。

论文地址:

https://arxiv.org/abs/1907.00887An Efficient Solution for Breast Tumor Segmentation and Classification in Ultrasound Images Using Deep Adversarial Learning

作者:Sik-Ho Tsang

本文转载于网络 如有侵权请联系删除

相关文章

  • c#操作数据库(winform如何修改数据库设置)

    大家好,又见面了,我是你们的朋友全栈君。鉴于很多童鞋们对数据库操作不是很熟悉,这里对数据库操作的相关知识做个介绍。首先介绍ADO.NET中的几个常用的对象,介绍的很简单。 1.SqlConnection这是数据库连接对象,通过对其进行实例化来创建针对数据库的连接,其参数为数据库连接字符串。如下:SqlConnectionconn=newSqlConnection(strConnection)复制上面strConnection代表连接字符串上面建立了连接,这个连接的名称为conn,这就相当于建立了一天从程序连接到数据库的水管,水管拉好了,但是要想从数据库中取出数据,还得拧开水龙头才可以,所以使用下面的语句打开水龙头(打开连接) conn.Open();OK.,连接打开了,下面就可以取数据了,也就是可以接水了。但是需要注意的是水接完后,还得把水龙头关掉,这就需要下面的语句来执行 conn.close(); 2.SqlCommand当然上面关掉水龙头的的动作应该放在程序的最后,也就是我们取完需要的数据之后。再执行了conn.open()之后,我们就可以对数据库进行操作了。对数据的操作包括插入

  • 定义和构建索引(三)

    定义和构建索引(三)位图索引位图索引是一种特殊类型的索引,它使用一系列位串来表示与给定索引数据值相对应的一组ID值。位图索引具有以下重要功能:位图是高度压缩的:位图索引可以比标准索引小得多。这大大减少了磁盘和缓存的使用量。位图操作针对事务处理进行了优化:与使用标准索引相比,可以在表中使用位图索引,而不会降低性能。位图上的逻辑操作(counting、AND和OR)经过优化以获得高性能。SQL引擎包括许多可以利用位图索引的特殊优化。位图索引的创建取决于表的唯一标识字段的性质:如果表的ID字段定义为具有正整数值的单个字段,则可以使用此ID字段为字段定义位图索引。此类型的表使用系统分配的唯一正整数ID,或使用IdKey定义自定义ID值,其中IdKey基于类型为%Integer且MINVAL>的单个属性,或类型%Numeric型且Scale=0且MINVA>0。如果表的ID字段未定义为具有正整数值的单个字段(例如,子表),则可以定义采用正整数的%BID(位图ID)字段作为代理ID字段;这允许为该表中的字段创建位图索引。受下列限制,位图索引的操作方式与标准索引相同。 索引值将被整理,可

  • 接口测试平台插曲:urls.py 的已知问题汇总

    最近仍然有很多小伙伴会经常来问我一些关于接口测试平台教程攻略的技术问题,当中有大部分是urls.py写的不对。照葫芦画瓢的结果就是,只是抄其形,不得其意。关于urls.py的各种方法,设计,函数,其实很多很多。但是我为了降低初学者的门槛和学习成本,所以就用最简单的1-2个函数来实现所有功能。用宇智波佐助的一句话说就是:高手用普通的写轮眼照样可以打败普通人的万花筒。用独孤求败的一句话说就是:到此境界者,草木竹石皆可为剑。实现功能,完成教程,做一个好的培训教程内容的关键不是填鸭式的疯狂给你灌输所有知识点和函数,而是用最少的函数带你实现最多的功能。等熟悉之后,在逐渐学习新的更高深的函数知识点,不是更好么?一个讲师的能力,不在于教你多少东西,教的再多不如百度官方文档多。而是在于用什么科学的方法,让你循序渐进,一点一点进入门内。教学方法才是根本。现在回过头来说这个urls.py因为django版本的不同,我教程中有的平台用了url()和path()俩个系列。这里先说下,俩个函数其实功能是一样的。我推荐选用后面的path。但是教程已经用了url,没法更改。所以很多同学在抄代码的过程中,不知道url

  • 用AI分析食物成分,让你能更好地进行营养搭配!

    大数据文摘出品 来源:Engadget编译:在赤道的熊猫 本文约700字,建议阅读5分钟人工智能已经进入游戏,自动驾驶和其他领域,并取得了不同的成功,现在它正在尝试烹饪。复制人工智能已经进入游戏,自动驾驶和其他领域,并取得了不同的成功,现在它正在尝试烹饪。在谷歌的人工智能技术击败了英国烘培大赛的赢家之后,索尼开发了一种名为FlavorGraph的深度学习系统将大蒜、橄榄和牛奶等成分配对。Sony和KoreanUniversity(KU)的研究人员指出,厨师们想出了如何通过直觉来搭配各种成分的方法,从而使奶酪和番茄,猪肉,苹果,大蒜和生姜等食品的搭配逐渐发展起来。研究人员意识到有共同的主要风味分子的成分通常搭配的很好,因此许多经典的食物组合后来都被科学原理解释了出来。于此同时,其他组合得很好的成分可能具有截然不同的化学成分。为了弄清原因,该团队研究了食材的分子信息和它们在食谱中的历史使用方式。然后,他们创建了FlavorGraph数据库,该数据库储存了基于1,561个风味分子的风味特征,如苦味,水果味和甜味。他们同时查询了了将近一百万种食谱,来了解食物成分过去是被如何搭配的。结果显示了葡

  • 云计算巨头会战“云+AI”,“商业落地”会是金山云的杀手锏吗?

    文|曾响铃 来源|科技向令说(xiangling0815)云计算的AI风向已经越来越明显。不久前,美国调研机构IDC发布的《IDCMarketScape:2019中国AI云服务市场厂商评估》报告,认为“AI应用迁移、重构到云平台,或直接使用云上的AI服务是大势所趋”。在这个报告之前,下半年包括IDC、Forrester、Frost&Sullivan等权威机构出具的云计算报告,都在着重谈云与AI的融合,例如IDC8月的报告针对AI基础开发,Forrester11月的报告则针对计算机视觉。显然,云+AI已经成为行业默认的规则,搭载AI已经成为云计算未来的标配。值得注意的是,在这场云+AI牌局正式开始时,一向比较低调的金山云“高调出现”,IDC上述最新报告中,金山云与Azure、AWS位于同一象限,成为中国AI云服务的主要玩家:从行业角度看,专注企业级市场和服务的金山云能够在云+AI趋势中冒头成为领导力量,与云+AI融合方式的多样化有直接的关系。“云+AI”同质化的表像下,是全然不同的“+”路径金山云早在2017年6月正式推出了金山云KAP(KingsoftAIPropeller)人

  • 医疗系统被黑,连新加坡总理的个人隐私都被泄露?

    新加坡卫生部(MOH)今日透露,其医疗系统的网络遭到了黑客的破坏,被窃取了约150万公民的个人健康数据,其中也包括新加坡国家总理李显龙的医疗信息。官方表示,这是一起有组织、有预谋、目标明确的黑客组织攻击行为,意图是收集国家领导人的健康数据。卫生部官员声明:“袭击者针对总理的个人资料及就诊治疗信息进行了反复查找及访问。”被盗数据约150万公民信息卫生部表示,在2015年5月1日至2018年7月4日期间访问SingHealth的病人,个人数据均被黑客所窃取,其中也包括新加坡国家总理李显龙的医疗信息。被盗数据包括姓名、身份证号、家庭住址、性别、种族等,并且还有约16000人的配药信息遭到泄露。好的消息是,医院各类临床测试、医生记录等数据完好无损。看起来黑客仅仅是盗取病人数据,对患者的记录并未做出任何更改或删除。黑客入侵后第八天才被发现根据调查显示的结果,黑客最初入侵卫生部系统时间为2018年6月27日,但直至7月4日才被发现。卫生部表示发现问题后立即通知了执法部门。今后将对其网络采取针对性保护措施,并且会尽快联系受到影响的患者。在防护层面,目前采取的措施包括重置所有用户和系统账户,对工作站和

  • .NET平台微服务项目汇集

    最近博客园出现了一篇文章《微服务时代之2017年五军之战:NetPHP谁先死》,掀起了一波撕逼,作者只是从一个使用者的角度来指点江山,这个姿势是不对的。.NETCore就是专门针对模块化的微服务架构而设计,在微服务架构这方面Java的SpringCloud具有非常高的人气,这个正是这篇文章作者的立脚点。然后他没有看到蓬勃发展的.NET社区的微服务的相关框架,本文主要梳理下当前.NET社区微服务的相关项目的汇集。1、ServiceFabric微软作为.NET的主战场,自然在当前的微服务框架上有着丰富的经验,这一领域的代表作就是AzureServiceFabric,在Azure上的众多云服务都是基于ServieFabric构建,而且微软已经明确表态了ServiceFabric将开源,Runtime还没开源,说有计划开源,但目前因为依赖于很多内部工具、组件,在逐步推进runtime的开源进程,具体可以看下我写的一篇博客《期待微软平台即服务技术ServiceFabric开源》。如果你是基于Azure平台来开发,你完全可以使用ServiceFabric做应用开发。当然你如果是在你私有云里用他,也

  • 业界 | CMU和谷歌联手研制左右互搏的对抗性机器人

    选自IEEESpectrum机器之心编译 作者:EvanAckerman参与:蒋思源、SmithCMU和谷歌研究者正在使用基于博弈论和深度学习的对抗性训练策略来提升操作性任务,如抓取物体。对抗者(adversary)可以是一个机器人,其会尝试破坏另一个机器人抓取物体(如下图所示),同时对抗者也可以是双臂机器人中的单臂,其尝试干扰另一只单臂抓取物体。因为教导机器人学会抓取一大堆不同种类的物体是极其枯燥的过程,因此现在有许多机器人学家转向采用人工智能策略,如自监督学习(self-supervisedlearning)等方法,而不是让机器人一遍又一遍地采用不同的技术来弄清楚怎样抓取一件物体。因为即使我们有一大堆的机器人,这仍然需要很长的时间(至少需要数千机器人小时/robot-hours),当然这也许能得到一个很好的通用抓取框架,但是这个框架并没有标准来判断什么是优秀的抓取。因此这样做的问题是,这些技术使用非常基础的传感器以二元类型的方式测量抓取(成功抓取或丢失):那么是否捡起了物体就不算丢失?但真实世界的抓取并不完全是这样的,因为大多数人都可以证明:我们拾起一个物体并不让它掉下来,这并不能

  • 留言板

    欢迎留言! 作者:小菜同学 出处:https://www.cnblogs.com/zihao1/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。

  • react-native字体react-native-vector-icons在ios下的使用

    react-native字体react-native-vector-icons在ios下的使用 官网和网上有各种针对ios/android的安装和使用方法;能够使用了,基本就等于安装成功了。 react-native-vector-icons的图标分为几个模块,使用的时候先importFontAwesomefrom'react-native-vector-icons/FontAwesome';这样才能使用FontAwesome标签,标签内使用name字段指定某个图标. 项目添加依赖: yarnaddreact-native-vector-icons 复制 修改Podfile文件,使用CocoaPods对ios安装这个字体库: vimproject_dir/ios/Podfile pod'RNVectorIcons',:path=>'../node_modules/react-native-vector-icons' 在ios目录下执行podinstall,使用CocoaPods安装这个依赖 复制 修改Info.plist,添加: vimproject_dir/io

  • 从0开始的Hadoop之手写WordCount(Idea版)

    本文将从Hadoop的下载安装开始,手写代码并运行出你的第一个MapReduce程序——WordCount。实验平台为Windows。 目录 1、Hadoop的下载和安装2、使用idea创建一个maven工程3、修改文件内容。4、设置输入输出文件5、效果展示 1、Hadoop的下载和安装 下载地址:https://hadoop.apache.org/releases.html 选择你要需要的版本,然后点击Binary下载。小编使用的是长期支持版3.2.1,点[击进入以后会有下载链接,点击下载。下载的是.tar.gz的压缩文件,我们需要对其进行解压。下载Hadoop在windows下的相关文件https://github.com/cdarlint/winutils下载上图两个文件之后放到E:\hadoop-3.2.1\bin,其中``E:\hadoop-3.2.1`是hadoop的解压目录 之后是环境变量的配置。 ps:其他可选环境变量配置,在本实验中用不到 变量名值/添加值LD_LIBRARY_PATH%HADOOP_HOME%\lib\nativePATH添加%HADOOP_

  • LeetCode141 Linked List Cycle. LeetCode142 Linked List Cycle II

    链表相关题 141.LinkedListCycle Givenalinkedlist,determineifithasacycleinit. Followup:Canyousolveitwithoutusingextraspace?(Easy)   分析: 采用快慢指针,一个走两步,一个走一步,快得能追上慢的说明有环,走到nullptr还没有相遇说明没有环。 代码: 1/** 2*Definitionforsingly-linkedlist. 3*structListNode{ 4*intval; 5*ListNode*next; 6*ListNode(intx):val(x),next(NULL){} 7*}; 8*/ 9classSolution{ 10public: 11boolhasCycle(ListNode*head){ 12if(head==NULL){ 13return0; 14} 15ListNode*slow=head; 16ListNode*fast=head; 17while(fast!=nullptr&&fast->next!

  • Merge data into table in Oracle

    Ifyouneedtomergesomedataintoonetableyouwantbyreplacingmanualinsertingwith'mergeinto'operation,maybethefollowingcodeiswhatyouwant.Youcanuseittomakeugetmoreefficient.Plsfollowstepstooperate.     1.createtablethatyouwanttoinsertdataintoitorcreateitinthefollowingscripttest.sql. --test.sql setserveroutputon; spoolinsert.log droptableproperties; createtableproperties(identifiervarchar2(4000),valuevarchar2(4000)); @query_properties_insert_jeff.sql; showerrors; spooloff 复制  2.createth

  • 谈谈你对前端性能优化的理解

    a.请求数量:合并脚本和样式表,CSSSprites,拆分初始化负载,划分主域 b.请求带宽:开启GZip,精简JavaScript,移除重复脚本,图像优化,将icon做成字体 c.缓存利用:使用CDN,使用外部JavaScript和CSS,添加Expires头,减少DNS查找,配置ETag,使AjaX可缓存 d.页面结构:将样式表放在顶部,将脚本放在底部,尽早刷新文档的输出 e.代码校验:避免CSS表达式,避免重定向

  • clone失败提示 Permission:denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.

     问题:克隆的时候有如下提示:   出现的场景: 之前有一次github上边的全部SSH都给删除了,然后在此进行Clone的时候通过SSH进行不行。   解决办法: 在电脑上重新生成秘钥,然后将秘钥配置在SSH上,重新下载即可success   具体步骤: 终端输入自己的github账号比如:8888@gmail.com ssh-keygen-ted25519-C"youremail@qq.com" 复制    然后根据提示进行输入加密的串,可以选择空即直接enter下一步。   最后会提示一个文件路径以.pub为后缀,然后在目录中找到这个文件,将内容复制在github的个人中心设置SSH的位置,最后重新的clone,即可成功。   对上述的代码,有任何疑问,可以在下方留言。 也可以给我发邮件咨询:673658917@qq.com 或者是直接加qq:673658917 转载请注明出处,谢谢合作。 睡觉舒服,那是给死人准备的,加油吧,一年后你会感谢现在的自己的。

  • 【C++基础 06】explict关键字

    C++提供了关键字explicit,可以阻止不应该允许的经过转换构造函数进行的隐式转换的发生。声明为explicit的构造函数不能在隐式转换中使用。 1.示例 我们先来看一段示例代码: classA { public: A(intv):var(v){};//带一个int型值的构造函数 boolisSame(constA&ref)const{returnvar==ref.var;}//判等函数 private: intvar;//成员变量var }; voidmain() { Aa(5);//构造a对象 Ab(5);//构造b对象 if(a.isSame(b)) cout<<"a==b"<<endl; else cout<<"a!=b"<<endl; }复制 上述代码获得结果是a==b。如果Ab(3),获得的结果就是a!=b。 2.构造函数定义引起的隐式转换 由于构造函数需要传入一个int型初始值,因此可以认为这是一个隐式转换,把一个int型值转换为一个A类型的对象。所以如果修改main函数为如下代码。 classA {

  • 十一、执行引擎篇

    一、执行引擎是做什么的 执行引擎是Java虚拟机的核心组成部分之一 虚拟机是一个相对于“物理机”的概念,这两种机器都有代码执行能力,其区别是物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的,而虚拟机的执行引擎则是由软件自行实现的,因此可以不受物理条件制约地定制指令集与执行引擎的结构体系,能够执行那些不被硬件直接支持的指令集格式。 JVM的主要任务是负责装载字节码到其内部,但字节码并不能够直接运行在操作系统之上,因为字节码指令并非等价于本地机器指令,它内部包含的仅仅只是一些能够被JVM识别的字节码指令、符号表和其他辅助信息 所以,如果想让一个Java程序运行在操作系统上,执行引擎的任务就是将字节码指令解释/编译为对应平台上的本地机器指令才可以。也就是说,JVM中的执行引擎充当了将高级语言翻译为机器语言的翻译者   二、执行引擎是怎么工作的   执行引擎在执行的过程中究竟需要执行什么样的字节码指令完全依赖于PC寄存器 每当执行完一项指令操作后,PC寄存器就会更新下一条需要被执行的指令地址 在方法的执行过程中,执行引擎也有可能会通过存储在局部变量表

  • 艾格文ERP

    管理端 用户创建 用户组-指的是业务组(可以用于管理不同的人看到不同的订单) 系统基础 新增客户: 系统基础-相关公司-客户-填写代码、国家、货币 进度表 进度规则实现自动化填写预定目标日期、目标日期 @shp发货日期 主档案->进度规则->选择进度规则->偏差对象(如@shp)-偏差   进度表如何以百分比显示-在系统基础内添加:加工类别。通过加工单收货来显示进度。 测试自动标记公式时,显示thecurrentautomarkmethoddoesnottolinkedtoselectedjob时 它的实际含义:该自动标记要先被使用于进度表中。   进度表需要使用加工单收货设置自动标记 定义自动标记的数据表、字段 T_WK   加工单 OrderNo   订单编号 Style   款式(加工单款式=销售单款式) WorkOrderNo   加工单编号 ProdLoc   厂商(厂商/加工商代码) IssDate   日期(创建加工单日期) PayTerm   付款方式 PrcTerm   价格条款 EtaDa

  • Hadoop运行环境搭建

    目录: 1.准备虚拟机(最小化安装) 2.配置一台纯净版模板机 --固定ip地址、修改主机名 --用xshell工具连接模板机 --通过yum安装方式安装必要的软件 --关防火墙 --修改hosts文件 --创建普通户用(atguigu)并且提升它能拥有root权限 --在Linux的/opt目录下创建software和module --将software和module目录的所有者和所属组修改为atguigu 3.准备hadoop102机器(通过克隆模板机的方式创建)--修改IP --修改主机名 4.在hadoop102上安装jdk --将jdk的安装包上传到/opt/software下 --将jdk安装到/opt/module下 --配置jdk的环境变量 --在/etc/profile.d目录下创建自定的配置文件my_env.sh --在my_env.sh写入以下内容 #声明JAVA_HOME变量 JAVA_HOME=/opt/module/jdk1.8.0_212 #将JAVA_HOME变量追加到PATH变量上 PATH=$PATH:$JAVA_HOME/b

  • MyBatis的简单介绍和几个基本问题

    第一阶段 MyBatis阶段 2016年3月9日星期三   1.为什么我们学习框架?  提高开发效率,框架是别人写好的工具类,我们需要遵循其规则进行操作 2.我们学习哪些框架   A.持久层框架:MyBatis 什么是持久化? 狭义:把数据永久性的保存到数据当中 广义:针对于数据库的所有操作都称为持久化操作 CreateReadUpdateDelete操作 面试:持久层框架?MyBatis Hibernate Object【Java对象】Relation【数据库】Mapping【映射-通过框架来映射对象和数据中的表和字段的关系】框架? MyBatis和Hibernate之间的区别? MyBatis是半自动化,需要我们私人定制SQL语句进行CRUD的操作 Hibernate全自动化,只是我们针对于对象的操作即可 B.Web层框架:SpringMVC用来替换Servlet Struts2和SpringMVC的区别? C.容器框架:Spring 一站式服务,IoC和AOP的容器框架   3.如果学习框架? A.找到需要的jar B.核心配置文

  • 自动生成小学四则运算题目

    Github项目地址: https://github.com/luorun194154/-/find/master 题目要求: -能自动生成小学四则运算题目(注意是给小学生用的,要是结果出现负数的话他们会迷茫的!) -除了整数外,还要支持真分数的四则运算psp表格复制 PSP2.1 任务内容 计划完成需要的时间(min) 实际完成需要的时间(min) Planning 计划 60 80  Estimate 估计这个任务需要多少时间,并规划大致工作步骤 15 30 Analysis 需求分析(包括学习新技术) 60 80 Design 具体设计 60 80 Coding 具体编码 600 900 test 测试(自我测试,修改代码,提交修改) 200 150 Postmortem&Process ImprovementPlan 事后总结 ,并提出过程改进计划 60 40 Summary 合计 1050 1360 复制 实现代码 import randomimport datetimeimpor

相关推荐

推荐阅读