植物表皮细胞和气孔计数,有对 CV, yolo 这些比较熟悉的大佬帮忙看看吗

2023-06-07 05:25:57 +08:00
 cuberwr1

起因

我们研究植物气孔发育时候会拍很多叶表皮的显微照片,需要对照片里面的细胞和气孔进行计数,在这个过程中我发现数这些要花很多时间,想着有没有可能自动化一下。

目标

需要统计图里细胞和气孔的数量,如果准确度很高不需要人工校验,准确度不够的话可能需要绘制识别的区域人工校验,这种图半年大概产出了两千多张。

图里的红色圈里是细胞,形状不规则,还有可能出现层叠遮挡。

绿色圈是气孔,大小方向可能不一样,特征挺明显。

进展

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()

之前看到有做类似的论文,但是形态差异比较大,感觉迁移训练可能不太行,发了邮件问也没回应。

要是有大佬能给评估下可行性和成本指条路就好了

1037 次点击
所在节点    问与答
10 条回复
woooooOOOO
2023-06-07 09:11:50 +08:00
问题 1:要训练到比较精准计数误差 5%内大概需要多少标注的数据
你先找个预训练的,然后自己标个 100 张去训练,使用旋转等数据增强方式。
问题 2:哪家数据标注的靠谱还便宜,一张图大概有 60 左右气孔,细胞七八十个,大概要多少成本
这只能找大学生标了,比如猪八戒网上买的。按工作量算钱,你看看你一天能标几个,然后想下一天准备给别人多少钱,应该一天 100 差不多吧。

感觉迁移训练可能不太行,发了邮件问也没回应。
迁移肯定比你自己从头训练好,发了邮件不回也正常,直接去找开源的。

segmentAnything 毕竟是通用的分割,你这个还得是专门用于细胞分割的效果会好一点。


最好的方法我觉得就是找个开源预训练模型,任务和你差不多的,你再标一些,迁移训练,最后结果人工校对,可以省下不少时间。
youngce
2023-06-07 09:28:44 +08:00
如果是研究拟南芥或者水稻,这种模式植物,还是值得做一做自动化的,加油
SeaRecluse
2023-06-07 09:39:49 +08:00
看上去应该需要语义分割模型而不是 yolo
alalida
2023-06-07 10:18:58 +08:00
cuberwr1
2023-06-07 16:11:41 +08:00
@youngce 哈哈哈,是拟南芥
cuberwr1
2023-06-07 16:20:02 +08:00
@woooooOOOO 我是在别人开源的项目下面找到的邮箱,原文是说模型太大没传 github ,可以邮件找他要,我再等等吧,顺便再看看别的。昨天又找到一个类似项目 https://github.com/jsnagai/Automated-Stomata-Classification-and-Detection-in-Microscope-Images-of-Maize-Cultivars ,但是配环境什么的整了挺久也没跑起来,然后现在在试着在 colab 上跑
cuberwr1
2023-06-07 16:20:41 +08:00
@SeaRecluse 好的我去看看
cuberwr1
2023-06-07 16:21:06 +08:00
@alalida 好的,我去看看,谢谢
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
cuberwr1
2023-06-10 16:01:13 +08:00
@yesh0 谢谢,这个很有帮助

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/946462

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX