Files
@ 4eb46a5b9c2b
Branch filter:
Location: OneEye/exp/kerokero/k_util.py - annotation
4eb46a5b9c2b
1.1 KiB
text/x-python
Sansa board detection module
247811dfb9be 006c6f1aab13 247811dfb9be 247811dfb9be 006c6f1aab13 006c6f1aab13 006c6f1aab13 006c6f1aab13 006c6f1aab13 006c6f1aab13 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be 247811dfb9be | import random
import numpy as np
import keras.backend as K
def averageDistance(yTrue,yPred):
squares=K.square(yTrue-yPred)
distances=K.sqrt(K.sum(squares,-1))
return K.mean(distances,-1)
def transform(image,label):
if random.choice((True,False)):
image=image[::-1] # reflect vertically
label[...,1]*=-1 # reflect y values
label=label[::-1,...] # switch back to counter-clockwise order
rot=random.randint(0,3)
image=np.rot90(image,rot)
if rot==1:
label=label[...,::-1]
label[...,1]*=-1
elif rot==2:
label*=-1
elif rot==3:
label=label[...,::-1]
label[...,0]*=-1
k=0
val=2
for (i,point) in enumerate(label): # rotate the upper-leftmost point to the first position
v=sum(point)
if v<val:
k=i
val=v
label=np.concatenate((label[k:],label[:k]))
return (image,label)
def generateData(images,labels,batch_size=32):
n=len(images)
keys=list(range(n))
while True:
random.shuffle(keys)
for i in range(0,n,batch_size):
ks=keys[i:i+batch_size]
imgs=images[ks]
labs=labels[ks]
for j in range(len(ks)):
(imgs[j],labs[j])=transform(imgs[j],labs[j])
yield (imgs,labs)
|