下载W3Cschool手机App,0基础随时随地学编程导语

Hi~~~

“浮云一别后,流水十年间。”忙忙碌碌中发现又有多日没有更新公众号了,过来更一发~~~

【下个月再开始推一些爬虫相关的内容吧,这个月确实没什么时间。】

利用全卷积网络+滤波器实现细胞检测。

让我们愉快地开始吧!

相关文件

密码: 5f5k

开发工具

Python版本:3.6.4

相关模块:

numpy模块;

PIL模块;

scipy模块;

TensorFlow-GPU模块;

tensorlayer模块;

matplotlib模块;

以及一些Python自带的模块。

TensorFlow-GPU版本:

1.6.0

测试平台:

Windows10

环境搭建

安装Python并添加到环境变量,pip安装需要的相关模块即可。

其中,TensorFlow-GPU的环境搭建请自行参考相关的网络教程,注意版本和驱动严格对应即可。

原理简介

利用简单的全卷积网络+高斯和统计排序滤波器实现的细胞检测算法。

其中全卷积网络的结构为:

python整合单细胞数据 python细胞计数_python 排序统计滤波器

训练集包含6种类型的细胞图像:

(依据其中心进行分类)

(1)细胞重叠:

python整合单细胞数据 python细胞计数_python整合单细胞数据_02

(2)非目标细胞:

python整合单细胞数据 python细胞计数_Python_03

(3)细胞边缘

python整合单细胞数据 python细胞计数_python整合单细胞数据_04

(4)细胞间隙:

python整合单细胞数据 python细胞计数_卷积网络_05

(5)背景:

python整合单细胞数据 python细胞计数_python 排序统计滤波器_06

(6)细胞中心点:

python整合单细胞数据 python细胞计数_Python_07

T_T相信聪明的小伙伴已经猜到了:

我们采用的细胞检测算法其实就是利用滑动窗口遍历给定的图像,把每个窗口的图像感受野输入到训练好的网络,判断该窗口的中心是否为细胞中心,若是则标出。该思想类似于RCNN,不过我们对检测结果加了滤波器来提高其精度。

至于具体实现过程,详见相关文件中的源代码。

使用演示

模型训练:

在cmd窗口运行train.py文件即可。

相关文件中提供了原始数据集和转为tfrecords格式的数据集。训练只需使用tfrecords格式的数据集即可。若想自己生成,则将下图中的注释去掉,并将该函数中的原始数据集路径修改为你自己的数据集路径:

python整合单细胞数据 python细胞计数_数据集_08

训练效果图:

python整合单细胞数据 python细胞计数_Python_09

模型测试:

相关文件中提供了训练好的模型,在cmd窗口运行test.py文件即可,运行前请自行修改该文件内的测试图像路径:

python整合单细胞数据 python细胞计数_数据集_10

效果展示

原图像1:

python整合单细胞数据 python细胞计数_卷积网络_11

检测效果1(注意红点):

原图像2:

python整合单细胞数据 python细胞计数_卷积网络_12

检测效果2:

python整合单细胞数据 python细胞计数_卷积网络_13

That'all~~~

更多

模型设计的比较简单,效率比较低。之后会推送一些高端点的算法~~~

代码截止2018-05-30测试无误。