Install the correct tensorflow for your CUDA version.
Clone the repo and install it
git clone [email protected]:maweigert/spotipy.git
pip install spotipy
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")
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)
Applying a trained SpotNet
:
img = dummy_data(1)[0][0]
prob, points = model.predict(img)
Albert Dominguez Mantes, Antonio Herrera, Irina Khven, Anjali Schläppi, Giolele La Manno, Martin Weigert