3martini's picture
Upload folder using huggingface_hub
68b5c0f verified
# def process_image(img):
# results = detect_solar_panel(img)
# sections = []
# for result in results:
# result: Results
# # print(result)
# try:
# boxes = result.boxes.xyxy[0].tolist()
# # Unpack boxes
# x1, y1, x2, y2 = boxes
# sections.append(((int(x1), int(y1), int(x2), int(y2)), f"{section_labels[0]} Bounding Box"))
# #Create 4 centroids around the true centroid shifted by a delta value
# delta = 0.3
# delta_x = (x2 - x1) * delta
# delta_y = (y2 - y1) * delta
# x_centroid = (x1 + x2) / 2
# y_centroid = (y1 + y2) / 2
# xtop_centroid = x_centroid
# ytop_centroid = y_centroid + delta_y
# xright_centroid = x_centroid + delta_x
# yright_centroid = y_centroid
# xbottom_centroid = x_centroid
# ybottom_centroid = y_centroid - delta_y
# xleft_centroid = x_centroid - delta_x
# yleft_centroid = y_centroid
# sam_mask, sam_scores = sam.segment(img, [[
# [xtop_centroid, ytop_centroid],
# [xright_centroid, yright_centroid],
# [xbottom_centroid, ybottom_centroid],
# [xleft_centroid, yleft_centroid]
# ]])
# squeezed_sam_mask_tensor = sam_mask[0].squeeze()
# squeezed_sam_scores_tensor = sam_scores[0].squeeze()
# print(f"sqeezed sam mask shape {squeezed_sam_mask_tensor.shape}")
# print(f"sqeezed sam scores shape {squeezed_sam_scores_tensor.shape}")
# for i in range(0, squeezed_sam_mask_tensor.shape[0]):
# flat_mask = squeezed_sam_mask_tensor[i].numpy()
# sections.append((flat_mask, f"{section_labels[0]} Mask {i} - Score: {squeezed_sam_scores_tensor[i]}"))
# i += 1
# except IndexError as e:
# print(f"Error processing image: {e}, probably no boxes.")
# return (img, sections)