Quazim0t0 commited on
Commit
c514e33
·
verified ·
1 Parent(s): 5a753ff

Upload 37 files

Browse files
src/components/MultiSourceCaptioningView.tsx CHANGED
@@ -16,6 +16,24 @@ function parseFlatBoxArray(arr: any[]): { label: string, bbox_2d: number[] }[] {
16
  return [];
17
  }
18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  function isImageFile(file: File) {
20
  return file.type.startsWith("image/");
21
  }
@@ -64,6 +82,7 @@ export default function MultiSourceCaptioningView() {
64
  if (boxes.length === 0 && Array.isArray(output)) {
65
  boxes = parseFlatBoxArray(output);
66
  }
 
67
  if (boxes.length === 0) setInferenceStatus("No boxes detected or model output invalid.");
68
  drawBoundingBoxesOnCanvas(ctx, boxes);
69
  });
@@ -184,6 +203,7 @@ export default function MultiSourceCaptioningView() {
184
  if (boxes.length === 0 && Array.isArray(output)) {
185
  boxes = parseFlatBoxArray(output);
186
  }
 
187
  if (boxes.length === 0) setInferenceStatus("No boxes detected or model output invalid.");
188
  drawBoundingBoxesOnCanvas(ctx, boxes);
189
  setImageProcessed(true);
 
16
  return [];
17
  }
18
 
19
+ function normalizeBoxes(raw: any): { label: string, bbox_2d: number[] }[] {
20
+ let boxes = [];
21
+ if (Array.isArray(raw)) {
22
+ boxes = raw;
23
+ } else if (typeof raw === "object" && raw !== null) {
24
+ boxes = [raw];
25
+ }
26
+ // Normalize bbox_2d to flat [x1, y1, x2, y2]
27
+ return boxes.map(obj => {
28
+ let bbox = obj.bbox_2d;
29
+ if (Array.isArray(bbox) && Array.isArray(bbox[0])) {
30
+ // Convert [[x1, y1], [x2, y2]] to [x1, y1, x2, y2]
31
+ bbox = [bbox[0][0], bbox[0][1], bbox[1][0], bbox[1][1]];
32
+ }
33
+ return { ...obj, bbox_2d: bbox };
34
+ });
35
+ }
36
+
37
  function isImageFile(file: File) {
38
  return file.type.startsWith("image/");
39
  }
 
82
  if (boxes.length === 0 && Array.isArray(output)) {
83
  boxes = parseFlatBoxArray(output);
84
  }
85
+ boxes = normalizeBoxes(boxes);
86
  if (boxes.length === 0) setInferenceStatus("No boxes detected or model output invalid.");
87
  drawBoundingBoxesOnCanvas(ctx, boxes);
88
  });
 
203
  if (boxes.length === 0 && Array.isArray(output)) {
204
  boxes = parseFlatBoxArray(output);
205
  }
206
+ boxes = normalizeBoxes(boxes);
207
  if (boxes.length === 0) setInferenceStatus("No boxes detected or model output invalid.");
208
  drawBoundingBoxesOnCanvas(ctx, boxes);
209
  setImageProcessed(true);