使用python将mask绘制到对应的图像上

尚无评论

在使用深度学习等方法处理计算机视觉问题而对图像进行处理的过程中,不可避免地要处理原始图像及其相应的mask。比如将mask绘制到原始图像上,将mask的轮廓绘制到原始图像上,提取mask的轮廓,或者已知mask的轮廓而将mask填充,等等。

尽管这些问题都不是复杂的问题,但使用频率比较高,而每一次对其进行处理时都会浪费时间甚至分心,而耽误真正的任务的执行。因此,本文就将在处理这些问题中的经验进行一下总结,同时也为以后的使用备忘。

当然,因为我的经验主要还是在医学图像的处理上,所以这里就以医学图像为例来进行处理。

在 2017-10-13 发布于 人工智能 类别下以来已有313人读过本文
阅读全文

用TensorFlow训练神经网络解决Fizz Buzz问题

尚无评论

在西方国家,Fizz Buzz是一个经典的游戏,经常用来帮助孩子们锻炼学习除法。其从1开始数数,遇到能被3整除的,将数字替换为fizz,遇到能被5整除的,将其替换为buzz,而遇到能同时被3和5整除的数字,则将其替换为fizzbuzz,对其余数字,则保持不变将其直接输出。

当然,这是一个很简单的问题,尤其是编码实现,原本不需要动用TensorFlow这样的牛刀。而本篇博客的来源却是有个牛人在Google面试的时候,面试官出了这个问题给他,他独辟蹊径尝试用TensorFlow训练模型对问题进行了解决。考虑到使用TensorFlow来解决这个问题时,无需外部数据(直接通过程序生成训练数据和测试数据),可以将所有的焦点集中到TensorFlow的使用上,因此,这个问题是一个很好的锻炼TensorFlow的机会,所以我也尝试着用TensorFlow来写一下。

在 2017-09-29 发布于 人工智能 类别下以来已有407人读过本文
阅读全文

用TensorFlow写一个简单网络实现异或(XOR)

尚无评论

最近读到一个网友的博客,记录他在一次面试时,碰到面试官要求他在白板上用TensorFlow写一个简单的网络实现异或(XOR)功能。这个本身并不难,单层感知器不能解决异或问题是学习神经网络中的一个常识,而简单的两层神经网络却能将其轻易解决。但这个问题的难处在于,我们接触TensorFlow通常直接拿来写CNN,或者其他的深度学习相关的网络了,而实现这种简单网络,基本上从未做过;更何况,要求在白板上写出来,如果想bug free,并不是容易的事儿啊。

下面,我们就来简单写一下吧。其实,无论复杂还是简单,用TensorFlow写一个网络无非这样几个部分:

在 2017-09-20 发布于 人工智能 类别下以来已有496人读过本文
阅读全文

TensorFlow保存和恢复模型的方法总结

尚无评论

使用TensorFlow训练模型的过程中,需要适时对模型进行保存,以及对保存的模型进行restore,以方便后续对模型进行处理。比如进行测试,或者部署;比如拿别的模型进行fine-tune,等等。当然,直接的保存和restore比较简单,无需多言,但是保存和restore中还牵涉到其他问题,以及针对各种需求的各种参数等,可能不便一下都记好。因此,有必要对此进行一个总结。本文就是对使用TensorFlow保存和restore模型的相关内容进行一下总结,以便备忘。

在 2017-09-15 发布于 人工智能 类别下以来已有680人读过本文
阅读全文

Python下几种从一个序列中取出元素的方法

尚无评论

随着深度学习以及人工智能领域的火热,Python越发普及和流行。使用Python进行数据处理时,有时候会有这样的操作,比如从一个列表或者numpy array中随机取出一个元素,对一个列表中的元素进行shuffle,等等。虽然这些操作也可以通过编写很简短的程序完成,但我们使用Python有一点很重要,就是不要重复遭轮子,如果有轮子可以直接拿来用,为什么不省时省力地去用呢?

在 2017-09-08 发布于 人工智能 类别下以来已有1,195人读过本文
阅读全文

使用GPU加速numpy运算

尚无评论

自2012年AlexNet横空出世以来,GPU用于为矩阵运算进行加速开始在工业界和研究人员中获得了广泛关注。尤其是近来推出的各种深度学习框架,如mxnet、TensorFlow等,GPU加速更是不可或缺,成了提升运算速度的法宝。

然而,作为在Python中占据基础地位的numpy却始终没能提供这一功能,我们无法灵活地使用GPU为numpy的矩阵运算进行加速。不过,近来,作为mxnet的开发者,dmlc在mxnet的基础上,进一步开发了minpy,其为矩阵运算提供了GPU加速,而且可以做到与numpy近乎完美兼容;甚至有时,不需改动一行代码,只需在程序的开头将import numpy as np改为import minpy.numpy as np即可实现GPU加速,可谓十分省事儿方便。

在 2017-08-04 发布于 人工智能 类别下以来已有1,458人读过本文
阅读全文

Contribute to TensorFlow Successfully

尚无评论

我是去年工作后开始接触TensorFlow的,彼时,人工智能大潮刚刚启幕,Caffe正当其时;然而,Google推出了TensorFlow。依据其时相关行业的研究者以及社区的强烈反响,和很多人一样,我认为这会是一个影响未来的东西,而我若想进入这一行业,TensorFlow不可错过。

但对于当时的我,学习TensorFlow又谈何容易?系统需要Linux,使用最多的是Ubuntu,但我对其一无所知;使用TensorFlow,最匹配的语言是Python,但我对其最多只是知道个名字;了解TensorFlow的应用自然需要对机器学习、深度学习比较熟悉,可我当时不过仅仅看过寥寥几篇相关论文;而我们用TensorFlow,最终是在应用在图像处理上,但我对图像处理的理解尚停留在PS上。

在 2017-06-30 发布于 人工智能 类别下以来已有954人读过本文
阅读全文

可视化mhd文件格式的DICOM图像序列

尚无评论

因为DICOM图像通常是一个序列,普通的dcm格式的图像序列可以直接使用DICOM图像查看软件打开进行查看;但mhd格式的3D图像却无法方便地查看。但为了研究方便,可视化mhd图像文件是绕不开的一项任务。

具体来说,在Python下可视化图像可以选择使用matplotlib,也可以用OpenCV将其保存查看,都非常方便。不过有些细节问题则需要特别注意。下面对这些进行一下简单记录,以防遗忘。

在 2017-05-25 发布于 人工智能 类别下以来已有2,546人读过本文
阅读全文

Python下使用SimpleITK处理DICOM文件备忘

尚无评论

随着最近几大肺部图像处理相关的竞赛的推出,如LUNA16Kaggle Data Science Bowl,AI领域的科研人员对肺部CT图像变得越来越熟悉,尤其是DICOM序列,以及这些竞赛官方所提供的mhd数据格式。

ITK是一个功能很强大的医学图像处理公开库,搭配VTK用以显示图像,可以实现几乎所有医学图像处理的功能需要。ITK通常以C++包进行提供,当然也可以自己编译为Python包,不过编译过程比较繁琐耗时,而且很容易踩坑。但ITK官方进行的Python封装SimpleITK,则直接可以拿来使用;虽然有部分ITK的功能没有包含,但已基本够用了。我们在处理医学图像时,使用的基本都是SimpleITK。

本文就简单总结一下我们在处理这些图像时的经验,以便备忘,并为后来者参考。

在 2017-05-24 发布于 人工智能 类别下以来已有4,132人读过本文
阅读全文

Python正则表达式简记

尚无评论

正则表达式听起来有些让人头痛,但有时候又特别有用,尤其是一些程序中,其更是避不开的存在。不过Python提供了一个方便使用和处理正则表达式的包——re模块,使得在Python中使用正则表达式十分方便。可虽然如此,对正则表达式还是需要进行一番学习,方能在使用时得心应手,挥洒自如。

虽然目前我对正则表达式的学习和掌握还远远达不到这个境界,不过以目前的掌握,也已经足够在写代码时使用了。下面就对这些东西进行一下记录,以方便以后复习和使用。

在 2017-04-22 发布于 人工智能 类别下以来已有1,052人读过本文
阅读全文