使用OpenCL在Python中实现GPU加速的图像处理
项目描述
py-clesperanto
py-clesperanto是clesperanto的原型 - 一个多平台多语言的GPU加速图像处理框架。我们主要在生命科学领域使用它来分析3维和4维显微镜数据,例如,在发育生物学中分割细胞并研究其个体属性以及构成组织的细胞复合物的属性。
图像数据来源:Daniela Vorkel,Myers实验室,MPI-CBG,使用napari渲染
为了用户的方便,还提供了napari和Fiji的代码生成器。还可以查看napari工作流程优化器,用于半自动调整clesperanto函数的参数。
参考文献
初步API参考文档可在此处找到。此外,CLIJ2文档中也可找到部分参考内容。
安装
- 获取一个conda/python环境,例如通过mamba-forge。
- 如果您之前从未使用过python/conda环境,请先按照这些说明操作。
conda create --name cle_39 python=3.9
conda activate cle_39
- 使用mamba / conda安装pyclesperanto-prototype
mamba install -c conda-forge pyclesperanto-prototype
或者使用pip
pip install pyclesperanto-prototype
故障排除:显卡驱动程序
如果错误信息包含"ImportError: DLL load failed while importing cl: The specified procedure could not be found" 查看这里 或 "clGetPlatformIDs failed: PLATFORM_NOT_FOUND_KHR",请安装显卡和/或OpenCL设备的最新驱动程序。根据您的硬件从以下列表中选择正确的驱动程序源
有时,mac用户需要安装此软件
mamba install -c conda-forge ocl_icd_wrapper_apple
有时,Linux用户需要安装此软件
mamba install -c conda-forge ocl-icd-system
Linux用户可能需要根据他们的GPU安装诸如intel-opencl-icd
或rocm-opencl-runtime
之类的包。
在中央处理器(CPU)上计算
如果没有可用的OpenCL兼容GPU,pyclesperanto-prototype可以使用CPU进行计算。只需安装oclgrind或pocl,例如使用mamba / conda。Oclgrind推荐用于Windows系统,PoCL用于Linux。MacOS通常自带OpenCL对CPU的支持。
mamba install oclgrind -c conda-forge
或者
mamba install pocl -c conda-forge
兼容的Intel Xeon CPU的所有者也可以安装驱动程序以用于计算
示例代码
一个基本的图像处理工作流程加载blobs.gif并计算对象数量
import pyclesperanto_prototype as cle
from skimage.io import imread, imsave
# initialize / select GPU with "TX" in their name
device = cle.select_device("TX")
print("Used GPU: ", device)
# load data
image = imread('https://imagej.nih.gov/ij/images/blobs.gif')
# process the image
inverted = cle.subtract_image_from_scalar(image, scalar=255)
blurred = cle.gaussian_blur(inverted, sigma_x=1, sigma_y=1)
binary = cle.threshold_otsu(blurred)
labeled = cle.connected_components_labeling_box(binary)
# The maximium intensity in a label image corresponds to the number of objects
num_labels = labeled.max()
print(f"Number of objects in the image: {num_labels}")
# save image to disc
imsave("result.tif", labeled)
示例画廊
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
技术洞察
| |
| |
| |
| |
| |
| |
|
相关项目
|
napari-pyclesperanto-assistant:napari中通用GPU加速图像处理和分析的图形用户界面。 |
|
napari-accelerated-pixel-and-object-classification:用于像素和标记对象分类的GPU加速随机森林分类器 |
|
napari-clusters-plotter:根据对象的定量属性进行聚类 |
基准测试
我们实现了一些基本的基准测试笔记本,可以查看pyclesperanto与其他一些图像处理库之间的性能差异,通常使用CPU。这些基准测试结果因图像大小、核大小、使用的操作、参数和使用的硬件而异。请随意使用这些笔记本,根据您的用例场景进行调整,并在目标硬件上进行基准测试。如果您有其他场景或用例,我们非常欢迎您以拉取请求的形式提交您的笔记本!
另请参阅
还有其他用于代码加速和图像处理的GPU加速库。
欢迎反馈!
clesperanto是在开源中开发的,因为我们相信开源社区。请参阅我们的社区指南。请随意将反馈作为GitHub问题或通过image.sc提交。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分布
构建分布
pylesperanto_prototype-0.24.5.tar.gz 的散列值
算法 | 散列值 | |
---|---|---|
SHA256 | aa38b346e9beaa716fafeb205c7999302aed1b20c07b9749f52d290c278359bc |
|
MD5 | 7d631bb5493d78e7f85bf1379d4b3f83 |
|
BLAKE2b-256 | 59aefa33875c73625e24d4a1eaada7287269a39c9e68496e18e4dc288ed43a80 |
pylesperanto_prototype-0.24.5-py3-none-any.whl 的散列值
算法 | 散列值 | |
---|---|---|
SHA256 | c4b00515744db9c8460710c59b31e67b93de2b15be0de9023cf66cb7d59119c7 |
|
MD5 | 083a5cc594ce7c519f6adb8b457684f7 |
|
BLAKE2b-256 | 431ae24cfe9505e0585cbdafb8ca00248db306149d3334680d469a2ce96ee78e |