Refactor: change output payload to socket
This commit is contained in:
parent
5f9050e04e
commit
9a1496f224
1 changed files with 32 additions and 6 deletions
38
app.py
38
app.py
|
@ -301,15 +301,41 @@ async def detect(websocket: WebSocket):
|
||||||
"box": [0, 0, 0, 0]
|
"box": [0, 0, 0, 0]
|
||||||
}
|
}
|
||||||
|
|
||||||
# Convert detection format to match protocol - flatten detection attributes
|
# Convert detection format to match backend expectations exactly as in worker.md section 4.2
|
||||||
detection_dict = {}
|
detection_dict = {
|
||||||
|
"carModel": None,
|
||||||
|
"carBrand": None,
|
||||||
|
"carYear": None,
|
||||||
|
"bodyType": None,
|
||||||
|
"licensePlateText": None,
|
||||||
|
"licensePlateConfidence": None
|
||||||
|
}
|
||||||
|
|
||||||
# Handle different detection result formats
|
# Handle different detection result formats
|
||||||
if isinstance(highest_confidence_detection, dict):
|
if isinstance(highest_confidence_detection, dict):
|
||||||
# Copy all fields from the detection result
|
# Extract and flatten branch results from parallel classification
|
||||||
for key, value in highest_confidence_detection.items():
|
branch_results = highest_confidence_detection.get("branch_results", {})
|
||||||
if key not in ["box", "id"]: # Skip internal fields
|
if branch_results:
|
||||||
detection_dict[key] = value
|
logger.debug(f"Processing branch results: {branch_results}")
|
||||||
|
|
||||||
|
# Transform branch results into backend-expected detection attributes
|
||||||
|
for branch_id, branch_data in branch_results.items():
|
||||||
|
if isinstance(branch_data, dict):
|
||||||
|
# Map common classification fields to backend-expected names
|
||||||
|
if "brand" in branch_data:
|
||||||
|
detection_dict["carBrand"] = branch_data["brand"]
|
||||||
|
if "body_type" in branch_data:
|
||||||
|
detection_dict["bodyType"] = branch_data["body_type"]
|
||||||
|
if "class" in branch_data:
|
||||||
|
class_name = branch_data["class"]
|
||||||
|
|
||||||
|
# Map based on branch/model type
|
||||||
|
if "brand" in branch_id.lower():
|
||||||
|
detection_dict["carBrand"] = class_name
|
||||||
|
elif "bodytype" in branch_id.lower() or "body" in branch_id.lower():
|
||||||
|
detection_dict["bodyType"] = class_name
|
||||||
|
|
||||||
|
logger.info(f"Detection payload: {detection_dict}")
|
||||||
|
|
||||||
detection_data = {
|
detection_data = {
|
||||||
"type": "imageDetection",
|
"type": "imageDetection",
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue