Skip to content

Commit c4b5ee2

Browse files
committed
move object_data.yaml out of source repo. now it is part of the data dir.
also removed usage of global variable utils.objectData, now functions take objectData as an argument
1 parent 0c3c60f commit c4b5ee2

File tree

6 files changed

+23
-97
lines changed

6 files changed

+23
-97
lines changed

config/object_data.yaml

-72
This file was deleted.

modules/labelfusion/objectalignmenttool.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -261,8 +261,7 @@ def makeAlignmentTool(cameraView, pathDict, objectName='phone'):
261261

262262
pointCloud = ioUtils.readPolyData(pathDict['reconstruction'])
263263
pointCloud = filterUtils.transformPolyData(pointCloud, firstFrameToWorldTransform)
264-
objectMeshFilename = utils.getObjectMeshFilename(objectName)
265-
objectMesh = ioUtils.readPolyData(objectMeshFilename)
264+
objectMesh = utils.getObjectPolyData(utils.loadObjectData(), objectName)
266265

267266
alignmentTool = ObjectAlignmentTool(cameraView, modelPolyData=objectMesh, pointCloud=pointCloud)
268267

modules/labelfusion/registration.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ def __init__(self, view, cameraView, measurementPanel, affordanceManager,
3030
firstFrameToWorldTransform=None):
3131
self.view = view
3232
self.cameraView = cameraView
33+
self.objectData = utils.loadObjectData()
3334
self.objectToWorldTransform = dict()
3435
self.measurementPanel = measurementPanel
3536
self.affordanceManager = affordanceManager
@@ -48,7 +49,6 @@ def initializeFields(self):
4849
self.logFolder = "logs/scratch"
4950

5051
self.pathDict = utils.getFilenames(self.logFolder)
51-
self.objectData = utils.getObjectDataYamlFile()
5252
self.objectAlignmentResults = dict() # stores results of object alignment tool
5353
self.objectAlignmentTool = None
5454

@@ -74,7 +74,7 @@ def loadStoredObjects(self):
7474
for objName, data in registrationResult.iteritems():
7575
objectMeshFilename = data['filename'] # should be relative to getLabelFusionDataDir()
7676
if len(objectMeshFilename) == 0:
77-
objectMeshFilename = utils.getObjectMeshFilename(objName)
77+
objectMeshFilename = utils.getObjectMeshFilename(self.objectData, objName)
7878
else:
7979
objectMeshFilename = os.path.join(utils.getLabelFusionDataDir(), objectMeshFilename)
8080

@@ -98,7 +98,7 @@ def fitObjectToPointcloud(self, objectName, pointCloud=None, downsampleObject=Tr
9898

9999
if objectPolyData is None:
100100
if filename is None:
101-
filename = utils.getObjectMeshFilename(objectName)
101+
filename = utils.getObjectMeshFilename(self.objectData, objectName)
102102

103103
objectPolyData = ioUtils.readPolyData(filename)
104104

@@ -281,7 +281,7 @@ def launchObjectAlignment(self, objectName, useAboveTablePointcloud=True):
281281

282282
pointCloud = self.aboveTablePolyData
283283
# pointCloud = om.findObjectByName('reconstruction').polyData
284-
objectPolyData = utils.getObjectPolyData(objectName)
284+
objectPolyData = utils.getObjectPolyData(self.objectData, objectName)
285285
resultsDict = dict()
286286
self.objectAlignmentResults[objectName] = resultsDict
287287
parent = om.getOrCreateContainer('global registration')

modules/labelfusion/rendertrainingimages.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ def __init__(self, view, viewOptions, pathDict):
2525
self.view = view
2626
self.viewOptions = viewOptions
2727
self.pathDict = pathDict
28+
self.objectData = utils.loadObjectData()
2829
self.storedColors = {}
2930
self.colors = cm.nipy_spectral(np.linspace(0, 1, 12))
3031
self.colors = np.append(self.colors, [[0.5, 0.5, 0.5, 1.0]], axis=0)
@@ -62,7 +63,7 @@ def disableLighting(self):
6263

6364
for obj in om.findObjectByName('data files').children():
6465
objName = obj.getProperty('Name')
65-
objLabel = utils.getObjectLabel(objName)
66+
objLabel = utils.getObjectLabel(self.objectData, objName)
6667
obj.actor.GetProperty().LightingOff()
6768
self.storedColors[obj.getProperty('Name')] = list(obj.getProperty('Color'))
6869
obj.setProperty('Color', [objLabel / 255.0] * 3)
@@ -149,7 +150,7 @@ def getCameraPoseAtUTime(self, utime):
149150
return transformUtils.transformFromPose(pos, quat)
150151

151152
def getColorFromIndex(self, objName):
152-
objLabel = utils.getObjectLabel(objName)
153+
objLabel = utils.getObjectLabel(self.objectData, objName)
153154
return self.colors[objLabel][:3]
154155

155156
def loadObjectMeshes(self):
@@ -161,7 +162,7 @@ def loadObjectMeshes(self):
161162

162163
filename = data['filename']
163164
if len(filename) == 0:
164-
filename = utils.getObjectMeshFilename(objName)
165+
filename = utils.getObjectMeshFilename(self.objectData, objName)
165166
else:
166167
filename = os.path.join(utils.getLabelFusionDataDir(), filename)
167168

@@ -240,7 +241,7 @@ def saveObjectPoses(self, imageFilename, cameraToCameraStart, baseName):
240241
continue
241242
if val > 0:
242243
cameraStartToCamera = cameraToCameraStart.GetLinearInverse()
243-
objectName = utils.getObjectName(index)
244+
objectName = utils.getObjectName(self.objectData, index)
244245
target.write(objectName + ":")
245246
target.write("\n")
246247
target.write(" label: " + str(index))

modules/labelfusion/setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ def setupLabelFusionDirector(affordanceManager, openniDepthPointCloud, logFolder
5858

5959

6060
def testStartup(robotSystem, affordanceManager, openniDepthPointCloud, logFolder="logs/moving-camera", globalsDict=None):
61-
objectData = utils.getObjectDataYamlFile()
61+
objectData = utils.loadObjectData()
6262

6363
for objectName, data in objectData.iteritems():
6464
utils.loadObjectMesh(affordanceManager, objectName, visName=objectName)

modules/labelfusion/utils.py

+12-14
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ def printObjectPose(name):
6969
def loadObjectMesh(affordanceManager, objectName, visName=None, pose=None):
7070
if visName is None:
7171
visName = objectName + "_raw"
72-
filename = getObjectMeshFilename(objectName)
72+
filename = getObjectMeshFilename(loadObjectData(), objectName)
7373

7474
if pose is None:
7575
pose = [[0,0,0],[1,0,0,0]]
@@ -99,7 +99,7 @@ def loadObjectMeshes(affordanceManager, registrationResultFilename,
9999
for objName, data in registrationResult.iteritems():
100100
objectMeshFilename = data['filename'] # should be relative to getLabelFusionDataDir()
101101
if len(objectMeshFilename) == 0:
102-
objectMeshFilename = getObjectMeshFilename(objName)
102+
objectMeshFilename = getObjectMeshFilename(loadObjectData(), objName)
103103
else:
104104
objectMeshFilename = os.path.join(getLabelFusionDataDir(), objectMeshFilename)
105105

@@ -138,20 +138,16 @@ def getGRBaseDir():
138138
return os.getenv('FGR_BASE_DIR')
139139

140140
def getObjectDataFilename():
141-
return os.path.join(getLabelFusionBaseDir(), 'config/object_data.yaml')
141+
return os.path.join(getLabelFusionDataDir(), 'object_data.yaml')
142142

143-
def getObjectDataYamlFile():
144-
stream = file(getObjectDataFilename())
145-
return yaml.load(stream)
143+
def loadObjectData():
144+
return getDictFromYamlFilename(getObjectDataFilename())
146145

147146
def getDictFromYamlFilename(filename):
148147
stream = file(filename)
149148
return yaml.load(stream)
150149

151-
objectDataFilename = os.path.join(getLabelFusionBaseDir(), 'config/object_data.yaml')
152-
objectData = yaml.load(file(objectDataFilename))
153-
154-
def getObjectMeshFilename(objectName):
150+
def getObjectMeshFilename(objectData, objectName):
155151
"""
156152
Returns the filename of mesh corresponding to this object.
157153
Filename is relative to getLabelFusionDataDir()
@@ -162,11 +158,13 @@ def getObjectMeshFilename(objectName):
162158

163159
return os.path.join(getLabelFusionDataDir(), objectData[objectName]['mesh'])
164160

165-
def getObjectPolyData(objectName):
166-
filename = getObjectMeshFilename(objectName)
161+
162+
def getObjectPolyData(objectData, objectName):
163+
filename = getObjectMeshFilename(objectData, objectName)
167164
return ioUtils.readPolyData(filename)
168165

169-
def getObjectLabel(objectName):
166+
167+
def getObjectLabel(objectData, objectName):
170168
"""
171169
Returns the object label specified in object_data.yaml
172170
:param objectName:
@@ -178,7 +176,7 @@ def getObjectLabel(objectName):
178176

179177
return objectData[objectName]['label']
180178

181-
def getObjectName(objectLabel):
179+
def getObjectName(objectData, objectLabel):
182180
"""
183181
Returns the object label specified in object_data.yaml
184182
:param objectLabel:

0 commit comments

Comments
 (0)