Skip to content

maweigert/spotipy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DEPRECATION NOTICE: this repository is not actively maintained. Please visit the Spotiflow repository (yes, we changed the name!) for an up-to-date version with new and improved features.

PyPI - Python Version PyPI - Version PyPI - License PyPI - Status PyPI - Downloads

Logo


Spotipy - Accurate and efficient spot detection with CNNs

Installation

Install the correct tensorflow for your CUDA version.

Then Spotipy can be installed directly via pip:

pip install spotipy-detector

Usage

A SpotNet spot detection model can be instantiated from a custom Config class:

from spotipy.model import Config, SpotNet

config = Config(
        n_channel_in=1,
        unet_n_depth=2,
        train_learning_rate=3e-4,
        train_patch_size=(128,128),
        train_batch_size=4
    )

model = SpotNet(config,name="mymodel", basedir="models")

Training

The training data for a SpotNet model consists of input image X and spot coordinates P (in y,x order):

import numpy as np
from spotipy.utils import points_to_prob

# generate some dummy data 
def dummy_data(n_samples=16):
    X = np.random.uniform(0,1,(n_samples, 128, 128))
    P = np.random.randint(0,128,(n_samples, 21, 2))
    for x, p in zip(X, P):
        x[tuple(p.T.tolist())] = np.random.uniform(2,5,len(p))
    Y = np.stack(tuple(points_to_prob(p[:,::-1], (128,128)) for p in P))
    return X, Y

X,Y = dummy_data(128)
Xv,Yv = dummy_data(16)

model.train(X,Y, validation_data=[X, Y], epochs=10, steps_per_epoch=128)

model.optimize_thresholds(Xv,Yv)

Inference

Applying a trained SpotNet:

img = dummy_data(1)[0][0]

prob, points = model.predict(img)

Contributors

Albert Dominguez Mantes, Antonio Herrera, Irina Khven, Anjali Schläppi, Gioele La Manno, Martin Weigert

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages