Skip to content

Commit

Permalink
worked with my fake color nu
Browse files Browse the repository at this point in the history
  • Loading branch information
Victor Genty committed May 1, 2016
1 parent a3ae8e9 commit d086df7
Show file tree
Hide file tree
Showing 13 changed files with 221 additions and 119 deletions.
4 changes: 4 additions & 0 deletions mac/config.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
modelfile : /Users/vgenty/Desktop/trial_fake/2_class_deploy.prototxt
pretrainedmodel: /Users/vgenty/Desktop/snapshot_rmsprop_nu_alex_fake_iter_3100.caffemodel.h5
meanfile: /Users/vgenty/Desktop/trial_fake/mean_valid.root
meanproducer: fake_color

tmpmodel: /tmp/test.prototxt

imin : 0
imax : 255

imin_plane0: 0
imin_plane1: 0
imin_plane2: 0
Expand Down
21 changes: 16 additions & 5 deletions mac/pyrgb/display/caffelayout.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,16 @@ def __init__(self,tw):
self.caffe_inputs = QtGui.QGridLayout()

self.open_deploy = QtGui.QPushButton("Open")
self.load_config = QtGui.QPushButton("Load")
self.line_deploy = QtGui.QLineEdit("path/to/deploy")
self.load_config.clicked.connect(self.loadConfig)
self.open_deploy.clicked.connect(self.selectFile)

self.forward = QtGui.QPushButton("Forward")
self.forward.clicked.connect(self.network_forward)

self.scores = QtGui.QLabel("Scores:")

self.tw = tw

def selectFile(self):
Expand All @@ -23,14 +27,21 @@ def grid(self,enable):
if enable == True:
self.caffe_inputs.addWidget(self.line_deploy,0,0)
self.caffe_inputs.addWidget(self.open_deploy,0,1)
self.caffe_inputs.addWidget(self.forward,0,2)

self.caffe_inputs.addWidget(self.load_config,0,2)
self.caffe_inputs.addWidget(self.forward,0,3)
self.caffe_inputs.addWidget(self.scores,1,0)

else:
for i in reversed(range(self.caffe_inputs.count())):
self.caffe_inputs.itemAt(i).widget().setParent(None)

return self.caffe_inputs


def loadConfig(self):
self.tw.set_config( str(self.line_deploy.text()) )

def network_forward(self):
self.tw.forward_result()


scores = self.tw.scores[0]
self.scores.setText("Scores: {}".format(scores))
33 changes: 14 additions & 19 deletions mac/pyrgb/display/rgbdisplay.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
import os,sys,copy,re
from .. import QtGui, QtCore
from .. import pg

import numpy as np
import time

import datamanager
from ..lib.storage import Storage
from ..lib.datamanager import DataManager
from ..lib import storage as STORAGE

from ..lib.hoverrect import HoverRect as HR

from .. import cv2

from caffelayout import CaffeLayout
from ..rgb_caffe.testwrapper import TestWrapper
Expand All @@ -22,14 +22,9 @@ class RGBDisplay(QtGui.QWidget) :
def __init__(self,argv):
super(RGBDisplay,self).__init__()

### Hold constants
self.st = Storage()

### DataManager
self.dm = datamanager.DataManager(argv)
self.dm = DataManager(argv)



self.resize( 1200, 700 )

self.win = pg.GraphicsWindow()
Expand Down Expand Up @@ -299,7 +294,6 @@ def nextEvent(self):
self.plotData()



def setViewPlanes(self):

self.views = []
Expand All @@ -326,18 +320,19 @@ def plotData(self):

self.setViewPlanes()

pimg, self.rois, self.image = self.dm.get_event_image(event,imin,imax,
self.image_producer,
self.roi_producer,
self.views,
self.highres)

pimg, self.rois, plotimage = self.dm.get_event_image(event,imin,imax,
self.image_producer,
self.roi_producer,
self.views,
self.highres)

self.image = plotimage.imgs

if pimg is None:
self.image = None
return

self.caffe_test.set_image(pimg)
self.caffe_test.set_image(plotimage.orig_mat)
self.pimg = pimg
self.imi.setImage(pimg)

Expand Down Expand Up @@ -420,7 +415,7 @@ def drawBBOX(self,kType):
# y = bbox.bl().y

#Set the text
ti = pg.TextItem(text=self.st.particle_types[ roi_p['type'] ])
ti = pg.TextItem(text=STORAGE.particle_types[ roi_p['type'] ])
ti.setPos( x*dw_i , ( y + h_b )*dh_i + 1 )

# print "ix: {} bbox x {} y {} wb {} hb {} dw_i {} dh_i {}".format(ix,x,y,w_b,h_b,dw_i,dh_i)
Expand All @@ -432,7 +427,7 @@ def drawBBOX(self,kType):
h_b * dh_i,
ti,self.plt)

r1.setPen(pg.mkPen(self.st.colors[ix]))
r1.setPen(pg.mkPen(STORAGE.colors[ix]))
r1.setBrush(pg.mkBrush(None))
self.plt.addItem(r1)
self.boxes.append(r1)
Expand Down
2 changes: 2 additions & 0 deletions mac/pyrgb/lib/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
from .. import QtGui
from .. import larcv
from .. import np
32 changes: 19 additions & 13 deletions mac/pyrgb/display/datamanager.py → mac/pyrgb/lib/datamanager.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@

import numpy as np
import time, re

from ..lib.iomanager import IOManager

from ..lib.vic_image import VicImage

from .. import ROOT
from .. import larcv

from iomanager import IOManager
from imagefactory import ImageFactory

class DataManager(object):

def __init__(self,argv):

self.iom = IOManager(argv)
self.keys ={}

self.IF = ImageFactory()

# get keys from rootfile
for i in xrange(larcv.kProductUnknown):
product = larcv.ProductName(i)
Expand Down Expand Up @@ -54,20 +54,26 @@ def get_event_image(self,ii,imin,imax,imgprod,roiprod,planes,highres) :
self.subrun = imdata.subrun()
self.event = imdata.event()

print "imdata.event_key() {}".format(imdata.event_key())

imdata = imdata.Image2DArray()

print "imdata.size(): {}".format(imdata.size())

if imdata.size() == 0 : return (None,None,None)
image = VicImage(imdata,roidata,planes)

image = self.IF.get(imdata,roidata,planes,imgprod)

if roiprod is None:
return ( image.treshold_mat(imin,imax),
None,
image.imgs )
image )

return ( image.treshold_mat(imin,imax),
image.parse_rois(),
image.imgs )
image )










Empty file.
Original file line number Diff line number Diff line change
@@ -1,33 +1,11 @@
from plotimage import PlotImage
from larcv import larcv
from .. import np

class VicImage(PlotImage):
class DefaultImage(PlotImage):

def __init__(self,img_v,roi_v,planes) :
super(VicImage,self).__init__(img_v,roi_v,planes)
self.name = "VicImage"

ometa = None
for img in self.imgs:
if ometa == None: ometa = larcv.ImageMeta(img.meta())
else: ometa = ometa.inclusive(img.meta())

tmp_img_v=[]
for i in xrange(len(self.img_v)):
meta= larcv.ImageMeta( ometa.width(), ometa.height(), ometa.rows(), ometa.cols(), ometa.min_x(), ometa.max_y(), i)
img = larcv.Image2D(meta)
img.paint(0.)
img.overlay(self.imgs[i])
tmp_img_v.append(img)

self.imgs = tmp_img_v
self.img_v = [ larcv.as_ndarray(img) for img in tmp_img_v ]

self.__create_mat__()
self.plot_mat_t = None

self.rois = []
super(DefaultImage,self).__init__(img_v,roi_v,planes)
self.name = "DefaultImage"

def __create_mat__(self):

Expand All @@ -43,11 +21,12 @@ def __create_mat__(self):

self.plot_mat[:,:,ix] = img


self.orig_mat = self.plot_mat.copy()

self.plot_mat[:,:,0][ self.plot_mat[:,:,1] > 0.0 ] = 0.0
self.plot_mat[:,:,0][ self.plot_mat[:,:,2] > 0.0 ] = 0.0
self.plot_mat[:,:,1][ self.plot_mat[:,:,2] > 0.0 ] = 0.0

def __threshold_mat__(self,imin,imax):

#Have to profile this copy operation, could be bad
Expand All @@ -72,7 +51,6 @@ def __create_rois__(self):
r['type'] = roi.Type()
r['bbox'] = []


for iy in xrange(nbb):
bb = roi.BB()[iy]
r['bbox'].append(bb)
Expand Down
54 changes: 54 additions & 0 deletions mac/pyrgb/lib/image_types/fakecolorimage.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
from plotimage import PlotImage
from .. import np

class FakeColorImage(PlotImage):

def __init__(self,img_v,roi_v,planes) :
super(FakeColorImage,self).__init__(img_v,roi_v,planes)
self.name = "FakeColorImage"

def __create_mat__(self):

#compressed images all have the same shape
self.orig_mat = np.zeros(list(self.img_v[0].shape) + [3])

for ix,img in enumerate(self.img_v):

if ix not in self.planes:
continue

self.orig_mat[:,:,ix] = img

self.plot_mat = self.orig_mat.copy()

self.plot_mat = self.plot_mat[:,:,(2,1,0)]

def __threshold_mat__(self,imin,imax):

#Have to profile this copy operation, could be bad
self.plot_mat_t = self.plot_mat.copy()

#I don't know how to slice
self.plot_mat_t[ self.plot_mat_t < imin ] = 0
self.plot_mat_t[ self.plot_mat_t > imax ] = imax

def __create_rois__(self):

for ix,roi in enumerate(self.roi_v) :

nbb = roi.BB().size()

if nbb == 0: #there was no ROI continue...
continue

r = {}

r['type'] = roi.Type()
r['bbox'] = []

for iy in xrange(nbb):
bb = roi.BB()[iy]
r['bbox'].append(bb)

self.rois.append(r)

Original file line number Diff line number Diff line change
Expand Up @@ -7,18 +7,39 @@ class PlotImage(object):

def __init__(self,img_v,roi_v,planes):
self.imgs = [ img_v[i] for i in xrange(img_v.size()) ]
self.img_v = [ larcv.as_ndarray(img) for img in self.imgs ]

if roi_v is not None:
self.roi_v = [ roi_v[i] for i in xrange(roi_v.size()) ]

self.planes = planes

ometa = None
for img in self.imgs:
if ometa == None: ometa = larcv.ImageMeta(img.meta())
else: ometa = ometa.inclusive(img.meta())

tmp_img_v=[]
for i in xrange(len(self.imgs)):
meta= larcv.ImageMeta( ometa.width(), ometa.height(), ometa.rows(), ometa.cols(), ometa.min_x(), ometa.max_y(), i)
img = larcv.Image2D(meta)
img.paint(0.)
img.overlay(self.imgs[i])
tmp_img_v.append(img)

self.imgs = tmp_img_v
self.img_v = [ larcv.as_ndarray(img) for img in tmp_img_v ]
self.orig_mat = None

self.__create_mat__()

self.plot_mat_t = None

self.rois = []

@abc.abstractmethod
def __create_mat__(self):
"""create plot_mat meaningfully"""


@abc.abstractmethod
def __threshold_mat__(self,imin,imax):
"""transform plot_mat meaningfully"""
Expand All @@ -27,15 +48,12 @@ def __threshold_mat__(self,imin,imax):
def __create_rois__(self):
"""create ROIs meaningfully"""


def treshold_mat(self,imin,imax):
self.__threshold_mat__(imin,imax)

return self.plot_mat_t


def parse_rois(self):
self.__create_rois__()

return self.rois

13 changes: 13 additions & 0 deletions mac/pyrgb/lib/imagefactory.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from image_types.defaultimage import DefaultImage
from image_types.fakecolorimage import FakeColorImage

class ImageFactory(object):
def __init__(self):
self.name = "AhoFactory"

def get(self,imdata,roidata,planes,improd):

if improd == "fake_color": return FakeColorImage(imdata,roidata,planes)


return DefaultImage(imdata,roidata,planes)
Loading

0 comments on commit d086df7

Please sign in to comment.