Accelerated Pixel and Object Classifiers based on OpenCL
Project description
Accelerated Pixel and Object Classifiers (APOC)
clesperanto meets scikit-learn to process images together, on a GPU.
Object segmentation
With a given blobs image and a corresponding annotation...
from skimage.io import imread, imshow
import pyclesperanto_prototype as cle
import numpy as np
import apoc
image = imread('blobs.tif')
imshow(image)
manual_annotations = imread('annotations.tif')
imshow(manual_annotations, vmin=0, vmax=3)
... objects can be segmented (see full example):
# define features: original image, a blurred version and an edge image
features = features = apoc.PredefinedFeatureSet.medium_quick.value
clf = apoc.ObjectSegmenter(opencl_filename='object_segmenter.cl', positive_class_identifier=2)
clf.train(features, manual_annotations, image)
segmentation_result = clf.predict(image=image)
cle.imshow(segmentation_result, labels=True)
Object classification
With a given annotation, blobs can also be classified according to their shape (see full example).
features = 'area,mean_max_distance_to_centroid_ratio,standard_deviation_intensity'
# Create an object classifier
classifier = apoc.ObjectClassifier("object_classifier.cl")
# train it
classifier.train(features, segmentation_result, annotation, image)
# determine object classification
classification_result = classifier.predict(segmentation_result, image)
imshow(classification_result)
More detailed examples
- Object segmentation
- Object classification
- Pixel classifier (including benchmarking).
- Output probability maps
- Continue training of pixel classifiers using multiple training image pairs
- Generating custom feature stacks
Installation
You can install apoc
using pip. Note: you need to install pyopencl in advance using conda:
conda install pyopencl
pip install apoc
Contributing
Contributions are very welcome. Tests can be run with pytest
, please ensure
the coverage at least stays the same before you submit a pull request.
License
Distributed under the terms of the BSD-3 license, "apoc" is free and open source software
Issues
If you encounter any problems, please open a thread on image.sc along with a detailed description and tag @haesleinhuepf.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.