地球上的海洋是环境中最有趣和生物活跃的部分之一。不幸的是,这些区域的极端压力和温度等条件使得收集关于这些生态系统的信息变得困难。这一挫折使得分析数据并在海洋中的生物学和水生生物方面得出结论变得具有挑战性。
然而,最近的研究表明,水中的细菌存在,特别是称为浮游植物的单细胞生物的存在,可以帮助我们了解海洋活动和生态系统。
由于浮游生物位于水生食物链的底部,这些细菌的不同物种可能对水下系统产生深远影响,并且可能使我们能够研究人类无法到达的海洋区域。
在该项目中使用的数据是由伍兹霍尔海洋研究所收集的100多个不同浮游植物物种的图像集合。这些数据与马萨诸塞州葡萄园海岸观测站收集的实时图像同时公开。总共,据报道,有350万张原始图像可供数据分析,最近分类的数据来自2014年。
在此模型中,使用了数据集"2014 labeled IFCB images"进行分类。该数据可在MIT许可证下进行商业使用,更详细的信息可以在这里找到。
首先,我们使用Open-CV结合OS命令来分析所有数据的图像像素数据,从而使我们能够以CNN模型能理解的格式对所有图像进行编码。
我们可以通过操作Open-CV库的特性,如更改边界或裁剪图像,并使用灰度图像格式来获取一个单一的数值来表示数据中28x28图像的每个像素的光强度。
for (path, dirs, file1) in os.walk(direct): for file in file1: filename = os.path.join(path, file) nlist = [] randval = 0 image = cv2.imread(filename, 0 ) analysisframe = cv2.resize(image,(28 ,28 )) for i in range (analysisframe.shape[0 ]): for j in range (analysisframe.shape[1 ]): k = analysisframe[i][j] k = k/255 nlist.append(k) actvalues.append(folder) pixeldatalist.append(nlist) nlist = [] xtrain = np.array(pixeldatalist) ytrain = np.array(actvalues)
在导出实际细菌图像分类和像素数据值的NumPy数组后,我们可以使用Keras开发一个顺序CNN模型,该模型可以根据每个图像的灰度值生成一个模型。
CNN模型通过将28x28像素图像分成较小的部分(例如16个较小的7x7像素图像),并使用可变权重和偏置来评估这些分块图像表示每个细菌群体的程度。然后,模型的结构会加权不同图像区域,并重复分块每个图像并评估结果的过程,直到原始图像与单个细菌物种相关联。
通过这个过程,模型可以评估给定图像与细菌物种的相似程度。创建这样一个模型可以帮助我们了解海洋无法到达的区域,自动化浮游植物物种的分类过程。通过找到海洋食物链基础的物种,我们可以将这些细菌的特性和不同的生物特征推导到其他水生生物的行为和进化研究中。
探索地球和它的奇迹有助于我们了解和研究自然现象,并使我们能够通过科学研究推动社会进步。海洋和其他水域是自然界的重要主题,了解其中的事件和生态系统可以带来发现,这些发现可能为创新和改进日常生活提供机会。
本项目开发的模型可以通过对生态系统食物链中的细菌进行分类来帮助我们探索海洋,从而可能更多地了解海洋的各个部分。
该程序通过神经网络建模实现了对细菌物种的分类。该项目的代码可以在GitHub个人资料中找到,下面是链接:
https://github.com/mg343/Phytoplankton-Detection
欢迎加入机器学习爱好者微信群一起和同行交流,目前有机器学习交流群、博士群、博士申报交流、CV、NLP等微信群,请扫描下面的微信号加群,备注:”昵称-学校/公司-研究方向“,例如:”张小明-浙大-CV“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~( 也可以加入机器学习交流qq群772479961 )