這是 COCO RLE 遮罩的範例 - https://pastebin.com/ZhE2en4C
這是 YOLOv8 驗證運行的輸出,取自產生的 Predictions.json 檔案。
我正在嘗試在 JavaScript 中解碼該字串並將其呈現在畫布上。編碼的字串是有效的,因為在 python 中我可以這樣做:
from pycocotools import mask as coco_mask from PIL import Image example_prediction = { "image_id": "102_jpg", "category_id": 0, "bbox": [153.106, 281.433, 302.518, 130.737], "score": 0.8483, "segmentation": { "size": [640, 640], "counts": "<RLE string here>" } } def rle_to_bitmap(rle): bitmap = coco_mask.decode(rle) return bitmap def show_bitmap(bitmap): img = Image.fromarray(bitmap.astype(np.uint8) * 255, mode='L') img.show() input("Press Enter to continue...") img.close() mask_bitmap = rle_to_bitmap(example_prediction["segmentation"]) show_bitmap(mask_bitmap)
我可以看到解碼後的遮罩。
是否有一個函式庫可以用來解碼 JavaScript 中的相同字串並將其轉換為 Image
?我嘗試深入研究 pycocotools 的源代碼,但我做不到。
您可以在畫布上繪製蒙版,然後根據需要匯出影像。
對於實際繪圖,您可以使用兩種方法:
以下是兩者的範例: