@@ -40,24 +40,27 @@ def getLPInfo(lps, lpKey):
4040 lpString = lp .get ("attributes" , {}).get ("lpString" , {}).get ("value" , None )
4141 lpStringScore = lp .get ("attributes" , {}).get ("lpString" , {}).get ("attributeScore" , 0 )
4242 lpRegion = lp .get ("attributes" , {}).get ("lpRegion" , {}).get ("value" , None )
43+ lpRegionScore = lp .get ("attributes" , {}).get ("lpRegion" , {}).get ("attributeScore" , 0 )
4344
4445 # Find the linked vehicle, if any
4546 vehicleId = getLinkedObjectId (lp , "vehicles" )
4647
47- return lpString , lpStringScore , lpRegion , vehicleId
48+ return lpString , lpStringScore , lpRegion , lpRegionScore , vehicleId
4849
4950# -------------------------------------------------------------------------------
5051def getVehicleInfo (vehicles , vehicleId ):
5152 vehicle = vehicles .get (vehicleId , {})
5253 makeModel = vehicle .get ("attributes" , {}).get ("vehicleType" , {}).get ("value" , {})
54+ makeModelScore = vehicle .get ("attributes" , {}).get ("vehicleType" , {}).get ("attributeScore" , 0 )
5355 if isinstance (makeModel , dict ):
5456 make = makeModel .get ("make" ,"unknown" )
5557 model = makeModel .get ("model" ,"unknown" ) + " " + makeModel .get ("generation" ,"" )
5658 else :
5759 make = makeModel
5860 model = "unknown"
5961 color = vehicle .get ("attributes" , {}).get ("color" , {}).get ("value" , "unknownColor" )
60- return make , model , color
62+ colorScore = vehicle .get ("attributes" , {}).get ("color" , {}).get ("attributeScore" , 0 )
63+ return make , model , makeModelScore , color , colorScore
6164
6265
6366
@@ -72,38 +75,40 @@ def parseSIOMessage(message):
7275
7376 # Process license plates
7477 for lpKey in lps .keys ():
75- lpString , lpStringScore , lpRegion , vehicleId = getLPInfo (lps , lpKey )
78+ lpString , lpStringScore , lpRegion , lpRegionScore , vehicleId = getLPInfo (lps , lpKey )
7679
7780 # Process vehicle associated with LP (if found)
7881 if vehicleId :
79- make , model , color = getVehicleInfo (vehicles , vehicleId )
82+ make , model , makeModelScore , color , colorScore = getVehicleInfo (vehicles , vehicleId )
8083 else :
8184 make = None
8285 model = None
86+ makeModelScore = 0
8387 color = None
88+ colorScore = 0
8489
85- newTuple = [ lpString , lpStringScore , lpRegion , make , model , color ]
90+ newTuple = [ lpString , lpStringScore , lpRegion , lpRegionScore , make , model , makeModelScore , color , colorScore ]
8691 newTupleComplete = all (item is not None for item in newTuple )
8792
8893 if not tuple or (newTupleComplete and not tupleComplete ):
8994 tuple = newTuple
9095
9196 if tuple is None :
9297 for vehicleId in vehicles .keys ():
93- make , model , color = getVehicleInfo (vehicles , vehicleId )
98+ make , model , makeModelScore , color , colorScore = getVehicleInfo (vehicles , vehicleId )
9499 if make and model and color :
95- tuple = [ kInvalidValue , 0 , kInvalidValue , make , model , color ]
100+ tuple = [ kInvalidValue , 0 , kInvalidValue , 0 , make , model , makeModelScore , color , colorScore ]
96101
97102 if tuple is None :
98- tuple = [ kInvalidValue , 0 , kInvalidValue , kInvalidValue , kInvalidValue , kInvalidValue ]
103+ tuple = [ kInvalidValue , 0 , kInvalidValue , 0 , kInvalidValue , kInvalidValue , 0 , kInvalidValue , 0 ]
99104
100105 tuple = [ item if item is not None else kInvalidValue for item in tuple ]
101106
102107 return tuple
103108
104109### ======================================================
105110def convertJson (data , img ):
106- lpString , lpConfidence , lpState , vehicleMake , vehicleModel , vehicleColor = parseSIOMessage (data )
111+ lpString , lpStringScore , lpRegion , lpRegionScore , make , model , makeModelScore , color , colorScore = parseSIOMessage (data )
107112
108113 res = {
109114 kLocation : {
@@ -119,13 +124,16 @@ def convertJson(data, img):
119124 "imageData" : img ,
120125 "licensePlate" : {
121126 "lpString" : lpString ,
122- "lpnConfidence" : lpConfidence ,
123- "lpRegion" : lpState
127+ "lpStringScore" : lpStringScore ,
128+ "lpRegion" : lpRegion ,
129+ "lpRegionScore" : lpRegionScore
124130 },
125131 "vehicle" : {
126- "color" : vehicleColor ,
127- "make" : vehicleMake ,
128- "model" : vehicleModel
132+ "make" : make ,
133+ "model" : model ,
134+ "makeModelScore" : makeModelScore ,
135+ "color" : color ,
136+ "colorScore" : colorScore
129137 }
130138 } ]
131139 } ],
@@ -308,7 +316,7 @@ def analyzeImage(version):
308316 time .sleep (0.05 )
309317
310318 jsonResult , _ = loadJsonAndBase64 (fpResult , False )
311- lpString , lpConfidence , lpState , vehicleMake , vehicleModel , vehicleColor = parseSIOMessage (jsonResult [ "0" ] )
319+ lpString , lpStringScore , lpRegion , lpRegionScore , make , model , makeModelScore , color , colorScore = parseSIOMessage (data )
312320
313321 # Clean up the result
314322 os .remove (fpResult )
@@ -318,13 +326,16 @@ def analyzeImage(version):
318326 "imageData" : image ,
319327 "licensePlate" : {
320328 "lpString" : lpString ,
321- "lpConfidence" : lpConfidence ,
322- "lpRegion" : lpState
329+ "lpStringScore" : lpStringScore ,
330+ "lpRegion" : lpRegion ,
331+ "lpRegionScore" : lpRegionScore
323332 },
324333 "vehicle" : {
325- "color" : vehicleColor ,
326- "make" : vehicleMake ,
327- "model" : vehicleModel
334+ "make" : make ,
335+ "model" : model ,
336+ "makeModelScore" : makeModelScore ,
337+ "color" : color ,
338+ "colorScore" : colorScore
328339 }
329340 }
330341
0 commit comments