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

No packages published

Contributors 3

  •  
  •  
  •  

Languages