Skip to content

Latest commit

 

History

History
88 lines (49 loc) · 1.64 KB

README.md

File metadata and controls

88 lines (49 loc) · 1.64 KB

Logo


Spotipy - Accurate and efficient spot detection with CNNs

Installation

Install the correct tensorflow for your CUDA version.

Clone the repo and install it

git clone [email protected]:maweigert/spotipy.git
pip install spotipy

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, Giolele La Manno, Martin Weigert