我们研究植物气孔发育时候会拍很多叶表皮的显微照片,需要对照片里面的细胞和气孔进行计数,在这个过程中我发现数这些要花很多时间,想着有没有可能自动化一下。
需要统计图里细胞和气孔的数量,如果准确度很高不需要人工校验,准确度不够的话可能需要绘制识别的区域人工校验,这种图半年大概产出了两千多张。
图里的红色圈里是细胞,形状不规则,还有可能出现层叠遮挡。
绿色圈是气孔,大小方向可能不一样,特征挺明显。
1.原图是蔡司显微镜的 czi 文件,我写了个脚本转成了 jpg ,原图灰度集中,不同部分明暗差距很大,在这里拉伸了下灰度,再做了一点点其他处理,源码:
import czifile
import numpy as np
from PIL import Image
import os
import cv2 as cv
def convert(path,name):
czi = czifile.imread(path)
czi = np.squeeze(czi, axis=None)
czi = czi / 256
im = Image.fromarray(czi)
if im.mode != "RGB":
im = im.convert("RGB")
im.save("./jpg/"+name + ".jpg")
def findAllFile(base):
for root, ds, fs in os.walk(base):
for f in fs:
fullname = os.path.join(root, f)
yield [fullname,f]
def convertAndEnance(path,name):
czi = czifile.imread(path)
czi = np.squeeze(czi, axis=None)
czi = czi / 256
clahe = cv.createCLAHE(clipLimit=4, tileGridSize=(8, 8))
czi = czi.astype(np.uint8)
out = clahe.apply(czi)
out = np.power(out/255.0, 0.8)
im=Image.fromarray(out*255)
if im.mode != "RGB":
im = im.convert("RGB")
im.save("./jpg/"+name + ".jpg")
def main():
base = './czi/'
j=0
for i in findAllFile(base):
convertAndEnance(i[0],i[1])
j+=1
print(j/2025,j,'/2025')
main()
了解了下现在常用的 RCNN 和 YOLO ,感觉可以比较准确的识别气孔,但是细胞的效果不太确定,因为没有标注所以没训练,不知道实际效果。
问题 1:要训练到比较精准计数误差 5%内大概需要多少标注的数据
问题 2:哪家数据标注的靠谱还便宜,一张图大概有 60 左右气孔,细胞七八十个,大概要多少成本
之前看到有做类似的论文,但是形态差异比较大,感觉迁移训练可能不太行,发了邮件问也没回应。
看到一篇论文 eCognition 可以做这些事,还没深入了解
试过 segmentAnything 和基于这个的 labelAnything ,能分割出一部分,但是效果很不好
1
woooooOOOO 2023-06-07 09:11:50 +08:00
问题 1:要训练到比较精准计数误差 5%内大概需要多少标注的数据
你先找个预训练的,然后自己标个 100 张去训练,使用旋转等数据增强方式。 问题 2:哪家数据标注的靠谱还便宜,一张图大概有 60 左右气孔,细胞七八十个,大概要多少成本 这只能找大学生标了,比如猪八戒网上买的。按工作量算钱,你看看你一天能标几个,然后想下一天准备给别人多少钱,应该一天 100 差不多吧。 感觉迁移训练可能不太行,发了邮件问也没回应。 迁移肯定比你自己从头训练好,发了邮件不回也正常,直接去找开源的。 segmentAnything 毕竟是通用的分割,你这个还得是专门用于细胞分割的效果会好一点。 最好的方法我觉得就是找个开源预训练模型,任务和你差不多的,你再标一些,迁移训练,最后结果人工校对,可以省下不少时间。 |
2
youngce 2023-06-07 09:28:44 +08:00
如果是研究拟南芥或者水稻,这种模式植物,还是值得做一做自动化的,加油
|
3
SeaRecluse 2023-06-07 09:39:49 +08:00
看上去应该需要语义分割模型而不是 yolo
|
4
alalida 2023-06-07 10:18:58 +08:00 via Android
|
6
cuberwr1 OP @woooooOOOO 我是在别人开源的项目下面找到的邮箱,原文是说模型太大没传 github ,可以邮件找他要,我再等等吧,顺便再看看别的。昨天又找到一个类似项目 https://github.com/jsnagai/Automated-Stomata-Classification-and-Detection-in-Microscope-Images-of-Maize-Cultivars ,但是配环境什么的整了挺久也没跑起来,然后现在在试着在 colab 上跑
|
7
cuberwr1 OP @SeaRecluse 好的我去看看
|
9
yesh0 2023-06-08 13:43:23 +08:00
(感觉楼上的微生物和植物其实还是有挺大不同的)
但查了一下也的确有挺多做气孔计数的,不知道适不适用: StomaAI: https://nph.onlinelibrary.wiley.com/doi/full/10.1111/nph.18765 StomataCounter: https://nph.onlinelibrary.wiley.com/doi/full/10.1111/nph.15892 |