Puddings收获

缘起:语义分割+形状先验,三个样本。
我先想到的是level set,因为“形状先验”这个字眼;而后试了一下distance transform+watershed,因为我真的很喜欢dismap。But, 这两个方案都是非监督,无法handle语义分割,因为无法判别分割出来的某个部分是前景还是背景。
而后溜达了一眼我的博客,因为那里有史上最全传统图像分割。我只有三个样本,还是自己造的,deep learning暂时不考虑了。Unfortunately, I cannot get any idea。
监督+传统+分割,where I need to go? So…

Random Forest

这里要感谢GXP,时常给我指点江山的Parterner,也要感谢一些我自己,去年跟踪过一个实验室的工作,深度+RF两条腿走路。我比较作的是把这篇论文拿到师妹的课上秀了秀,还在自己实验室的组会上耍了一次。XP估计是一转头看见我不务正业,顺便给我普及了一下RF秀场,RF从此在我脑海里有了一点印象。更凑巧的是,我碰到这个题目的时候还在和XP聊天,所以想到这个方案也算水到渠成。
Random Forest可以用classification的思路,也可以用regression的思路,这里我暂且选用了前者。
从论文里的初印象到怼出一个实实在在的结果,还是蛮有挑战性的,我零点左右确定了这个思路,了解基本知识,手敲代码,困难重重,凌晨两点左右上床睡觉了,不然真的要累死啦。以下是夜里发现的好工具:

No.1: Mahotas

老兄,相见恨晚呀!!
Mahotas 是计算机视觉和图像处理 Python 库。它包含大量图像处理算法,C++实现形式,提高了性能。完全基于 numpy 的数组作为它的数据类型。

install

正常情况下一条命令就解决

pip install mahotas

但是我本地需要满足vs c++14的条件,服务器端无法上网网。我一向选择后者,服务器强大的算力充满诱惑哦,手动安装所向披靡:
从官网下载installing packages。一般情况下,我会解压,然后把解压后文件加放到/usr/lib/python3.6/下面。但是昨晚遭遇失败,我用了解压后的文件里的install.py装成功的。

Usage

https://mahotas.readthedocs.io/en/latest/classification.html
不得不说mahotas里的算法太丰富了,连我最爱的distance transform都可以做的那么好。
最重要的是各种特征提取,是我用Random Forest的必备条件。

Note

如果代码中有画图工具包的引入比如

import matplotlib.pyplot as plt
import PIL.Image
import pylab as plt
...

这些引入语句必须在 import mahotas之后,否则会出现关于mahotas无法使用的报错,比如

ValueError: module functions cannot set METH_CLASS or METH_STATIC

No.2: scikit-learn和spark

二者都实现了Random Forest,只不过有点细微差别,我对并行的要求不高,所以选择了scikit-learn。scikit-learn也是一个很丰富的工具包,丰满的目录已经诱惑力满分。

No3:Image Segmentation via Random Forests

https://idac.hms.harvard.edu/segmentation
一个matlab的实现,但是我和matlab阔别有点久了,且留后续翻看。

然后,就是天亮了,做了好多梦,梦见程序running successfully, 结果顺利呈现,收获老师夸赞,梦见自己在心仪的实验室度过了一个愉快的暑假,迷迷糊糊的混沌里,假假真真也分不清楚。一觉醒来,程序没错,但结果好像有点问题。然后折腾了一天,饭也免了,午觉也浓缩了,还好下午五点半,汇报了初步结果。然后开上自行车,听着love me like you do,心满意足吃了顿晚饭。
其实还有很多事要做,程序要优化,一个presentation已经被我脱了三天,真实无法原谅,但我还是起笔写了博客,而且是两篇,也是醉了,谁让今天你最聪明呢。

你可能感兴趣的:(日常休闲)