Niv Sardi commited on
Commit
d48129a
1 Parent(s): 9477f68

python: fixups

Browse files

Signed-off-by: Niv Sardi <xaiki@evilgiggle.com>

Files changed (3) hide show
  1. python/augment.py +3 -0
  2. python/entity.py +6 -2
  3. python/imtool.py +2 -3
python/augment.py CHANGED
@@ -140,9 +140,12 @@ with pipeline.pool(processes=-1, seed=1) as pool:
140
  label = logo_labels[orig.tobytes()]
141
  logo = batch_aug.images_aug[logo_idx]
142
 
 
 
143
  # XXX(xaiki): we get alpha from heatmap, but will only use one channel
144
  # we could make mix_alpha into mix_mask and pass all 3 chanels
145
  alpha = cv2.split(batch_aug.heatmaps_aug[logo_idx])
 
146
  try:
147
  bb = imtool.mix_alpha(img, logo, alpha[0],
148
  random.random(), random.random())
 
140
  label = logo_labels[orig.tobytes()]
141
  logo = batch_aug.images_aug[logo_idx]
142
 
143
+ assert(logo.shape == orig.shape)
144
+
145
  # XXX(xaiki): we get alpha from heatmap, but will only use one channel
146
  # we could make mix_alpha into mix_mask and pass all 3 chanels
147
  alpha = cv2.split(batch_aug.heatmaps_aug[logo_idx])
148
+
149
  try:
150
  bb = imtool.mix_alpha(img, logo, alpha[0],
151
  random.random(), random.random())
python/entity.py CHANGED
@@ -4,8 +4,12 @@ from typing import NamedTuple
4
 
5
  from common import defaults
6
 
7
- def read_entities(fn):
8
- with open(defaults.MAIN_DATA_PATH, newline='') as csvfile:
 
 
 
 
9
  reader = csv.DictReader(csvfile)
10
  bcos = { d['bco']:update(d, {'id': i}) for i, d in enumerate(reader)}
11
  return bcos
 
4
 
5
  from common import defaults
6
 
7
+ def update(d, i):
8
+ d.update(i)
9
+ return d
10
+
11
+ def read_entities(fn = defaults.MAIN_CSV_PATH):
12
+ with open(fn, newline='') as csvfile:
13
  reader = csv.DictReader(csvfile)
14
  bcos = { d['bco']:update(d, {'id': i}) for i, d in enumerate(reader)}
15
  return bcos
python/imtool.py CHANGED
@@ -21,7 +21,6 @@ class BoundingBox(NamedTuple):
21
  @classmethod
22
  def from_centroid(cls, c, shape):
23
  (ih, iw, ic) = shape
24
- print(cls, c, shape)
25
  self = cls(x=math.floor(w*(c.x - c.w/2))
26
  , y=math.floor(h*(c.y - c.h/2))
27
  , w=math.ceil(w*c.w)
@@ -158,7 +157,7 @@ def mix_alpha(a, b, ba, fx, fy):
158
  if (aw*p < bw or ah*p < bh):
159
  f = min(p*aw/bw, p*ah/bh)
160
  nw, nh = floor_point(bw*f, bh*f)
161
- print(f'resizing, factor {f} to fit in {aw}x{ah}\n -- {bw}x{bh} => {nw}x{nh}')
162
  r = cv2.resize(b, (nw, nh), interpolation = cv2.INTER_LINEAR)
163
  rba = cv2.resize(ba, (nw, nh), interpolation = cv2.INTER_LINEAR)
164
 
@@ -232,7 +231,7 @@ def crop(id, fn, logos: List[Centroid], out = './data/squares'):
232
  li.append(p)
233
 
234
  nim = cut_img(im, start, end)
235
- rnim = cut_img(im, start, end)
236
  img_name =f"{img_out}/{basename}-x{x}y{y}.jpg"
237
  txt_name =f"{txt_out}/{basename}-x{x}y{y}.txt"
238
 
 
21
  @classmethod
22
  def from_centroid(cls, c, shape):
23
  (ih, iw, ic) = shape
 
24
  self = cls(x=math.floor(w*(c.x - c.w/2))
25
  , y=math.floor(h*(c.y - c.h/2))
26
  , w=math.ceil(w*c.w)
 
157
  if (aw*p < bw or ah*p < bh):
158
  f = min(p*aw/bw, p*ah/bh)
159
  nw, nh = floor_point(bw*f, bh*f)
160
+ print(f'resizing to fit in {aw}x{ah}\t {bw}x{bh}\t=> {nw}x{nh}\tfactor {f}')
161
  r = cv2.resize(b, (nw, nh), interpolation = cv2.INTER_LINEAR)
162
  rba = cv2.resize(ba, (nw, nh), interpolation = cv2.INTER_LINEAR)
163
 
 
231
  li.append(p)
232
 
233
  nim = cut_img(im, start, end)
234
+ rnim = cut_img(rim, start, end)
235
  img_name =f"{img_out}/{basename}-x{x}y{y}.jpg"
236
  txt_name =f"{txt_out}/{basename}-x{x}y{y}.txt"
237