Spaces:
Sleeping
Sleeping
# 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) |