Detectron: Format RLE atau Poligon "segmentasi" untuk perluasan ke kumpulan data coco

Dibuat pada 2 Feb 2018  ·  38Komentar  ·  Sumber: facebookresearch/Detectron

Hai Detectron,

Baru-baru ini saya mencoba menambahkan data coco khusus saya untuk menjalankan Detectron dan mengalami masalah berikut.
(1) "segmentasi" dalam data coco seperti di bawah ini,

{"segmentasi": [[ 499.71, 397.28, ...... 342.71, 172.31 ]] , "area": ​​43466.12825, "iscrowd": 0, "image_id": 182155, "bbox": [338.89, 51.69, 205.82, 367.61], "category_id": 1, "id": 1248258},

{"segmentasi": {"counts": [66916, 6, 587, ..... 1, 114303], "size": [594, 640] }, "area": ​​6197, "iscrowd": 1, "image_id": 284445, "bbox": [112, 322, 335, 94], "category_id": 1, "id": 9.001002844e + 11},
Format pertama dari "segmentasi" adalah poligon dan yang kedua adalah perlu dienkode / didekode untuk format RLE.

Format di atas dapat berjalan di Detectron.

(2) Saya menambahkan kategori baru, dan menghasilkan format RLE baru untuk bidang "segmentasi" melalui mask coco api encode () / decode ().
Saya menghasilkan data seperti ini.

"segmentasi": [{ "penting ": "mng = 1fb02O1O1O001N2O001O1O0O2O1O1O001N2O001O1O0O2O1O001O1O1O010000O01000O010000O01000O01000O01000O01N2N2M2O2N2N1O2N2O001O10O B000O10O1O001 ^ OQ ^ O9Pb0EQ ^ O; Wb0OO01O1O1O001O1N2N`jT3?"," size": [600,1000]}]

Saya menemukan karakter yang dicetak tebal berbeda dari format json "segmentasi" coco asli meskipun dapat dijalankan pada implementasi MatterPort ke Mask-RCNN.

Selain itu, saya mencoba memodifikasi beberapa kode Detectron untuk memenuhi kebutuhan saya, tetapi sangat sulit bagi saya karena banyak kode yang perlu diubah.

Bisakah Anda memberi saya beberapa saran untuk menjalankan data khusus saya?

Terima kasih.

community help wanted

Komentar yang paling membantu

@topcomma
Mungkin Anda bisa mencoba mengubah mask menjadi polys.

labels_info = []
for mask in mask_list:
    # opencv 3.2
    mask_new, contours, hierarchy = cv2.findContours((mask).astype(np.uint8), cv2.RETR_TREE,
                                                        cv2.CHAIN_APPROX_SIMPLE)
    # before opencv 3.2
    # contours, hierarchy = cv2.findContours((mask).astype(np.uint8), cv2.RETR_TREE,
    #                                                    cv2.CHAIN_APPROX_SIMPLE)
    segmentation = []

    for contour in contours:
        contour = contour.flatten().tolist()
        # segmentation.append(contour)
        if len(contour) > 4:
            segmentation.append(contour)
    if len(segmentation) == 0:
        continue
    # get area, bbox, category_id and so on
    labels_info.append(
        {
            "segmentation": segmentation,  # poly
            "area": area,  # segmentation area
            "iscrowd": 0,
            "image_id": index,
            "bbox": [x1, y1, bbox_w, bbox_h],
            "category_id": category_id,
            "id": label_id
        },
    )

Semua 38 komentar

Saya mengalami masalah yang serupa: beberapa fungsi di lib / utils / segms.py mengharapkan segmentasi dalam format "poli" dan berhenti saat disediakan dalam RLE.
Ini tidak nyaman tetapi sepertinya sejalan dengan spesifikasi untuk daerah yang tidak ramai (iscrowd = 0):

Format segmentasi bergantung pada apakah instance tersebut mewakili satu objek (iscrowd = 0 dalam hal ini poligon digunakan) atau kumpulan objek (iscrowd = 1 dalam hal ini RLE digunakan).

[1] http://cocodataset.org/#download , bagian "4.1. Anotasi Instance Objek”

Solusi bagi saya adalah mengubah ke format "poli", yang pada dasarnya adalah daftar simpul (x, y).

-Lesha.

Pada 2. Feb 2018, pada 06:41, Hu Xingui [email protected] menulis:

Hai Detectron,

Baru-baru ini saya mencoba menambahkan data coco khusus saya untuk menjalankan Detectron dan mengalami masalah berikut.
(1) "segmentasi" dalam data coco seperti di bawah ini,

{"segmentasi": [[499.71, 397.28, ...... 342.71, 172.31]], "area": ​​43466.12825, "iscrowd": 0, "image_id": 182155, "bbox": [338.89, 51.69, 205.82, 367.61], "category_id": 1, "id": 1248258},

{"segmentasi": {"counts": [66916, 6, 587, ..... 1, 114303], "size": [594, 640]}, "area": ​​6197, "iscrowd": 1, "image_id": 284445, "bbox": [112, 322, 335, 94], "category_id": 1, "id": 9.001002844e + 11},
Format pertama dari "segmentasi" adalah poligon dan yang kedua adalah perlu dienkode / didekode untuk format RLE.

Format di atas dapat berjalan di Detectron.

(2) Saya menambahkan kategori baru, dan menghasilkan format RLE baru untuk bidang "segmentasi" melalui mask coco api encode () / decode ().
Saya menghasilkan data seperti ini.

"Segmentasi": [{ "penting": "mng = 1fb02O1O1O001N2O001O1O0O2O1O1O001N2O001O1O0O2O1O001O1O1O010000O01000O010000O01000O01000O01000O01N2N2M2O2N2N1O2N2O001O10O B000O10O1O001 ^ OQ ^ O9Pb0EQ ^ O; Wb0OO01O1O1O001O1N2N`jT3?", "Size": [600,1000]}]

Saya menemukan karakter yang dicetak tebal berbeda dari format json "segmentasi" coco asli meskipun dapat dijalankan pada implementasi MatterPort ke Mask-RCNN.

Selain itu, saya mencoba memodifikasi beberapa kode Detectron untuk memenuhi kebutuhan saya, tetapi sangat sulit bagi saya karena banyak kode yang perlu diubah.

Bisakah Anda memberi saya beberapa saran untuk menjalankan data khusus saya?

Terima kasih.

-
Anda menerima ini karena Anda berlangganan utas ini.
Balas email ini secara langsung, lihat di GitHub, atau nonaktifkan utasnya.

@ amokeev , Bagaimana cara mengubah format "RLE" ke "poli" untuk solusi Anda?

@amokeev , Anda yakin bilangan yang di segmentasi adalah (x, y) vertex? Misalnya "66916", angka yang besar! Lain, meskipun saya menetapkan "iscrowd" sebagai "1" untuk format RLE, namun tidak dapat berjalan di Detectron.

Saya menafsirkan poli sebagai daftar poligon, yang ditentukan oleh simpul, seperti [[x1, y1, x2, y2… xN, yN],… [x1, y1, x2, y2… xN, yN]], di mana koordinatnya adalah skala yang sama seperti gambar.
Mask, yang dienkode dengan cara ini, ditampilkan dengan benar oleh CocoAPI [1]

Tetapi Anda mungkin ingin mendapatkan jawaban "resmi".

[1] https://github.com/cocodataset/cocoapi https://github.com/cocodataset/cocoapi

Pada 2. Feb 2018, pukul 09:18, Hu Xingui [email protected] menulis:

@amokeev https://github.com/amokeev , Yakin bilangan yang di segmentasi adalah (x, y) vertex? Misalnya "66916", angka yang besar! Lain, meskipun saya menetapkan "iscrowd" sebagai "1" untuk format RLE, namun tidak dapat berjalan di Detectron.

-
Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub https://github.com/facebookresearch/Detectron/issues/100#issuecomment-362516928 , atau nonaktifkan utas https://github.com/notifications/unsubscribe-auth/AFlh63ObnXg- DcaDKwIi3pB4Ppig464Hks5tQsTkgaJpZM4R2tN3 .

@topcomma
Mungkin Anda bisa mencoba mengubah mask menjadi polys.

labels_info = []
for mask in mask_list:
    # opencv 3.2
    mask_new, contours, hierarchy = cv2.findContours((mask).astype(np.uint8), cv2.RETR_TREE,
                                                        cv2.CHAIN_APPROX_SIMPLE)
    # before opencv 3.2
    # contours, hierarchy = cv2.findContours((mask).astype(np.uint8), cv2.RETR_TREE,
    #                                                    cv2.CHAIN_APPROX_SIMPLE)
    segmentation = []

    for contour in contours:
        contour = contour.flatten().tolist()
        # segmentation.append(contour)
        if len(contour) > 4:
            segmentation.append(contour)
    if len(segmentation) == 0:
        continue
    # get area, bbox, category_id and so on
    labels_info.append(
        {
            "segmentation": segmentation,  # poly
            "area": area,  # segmentation area
            "iscrowd": 0,
            "image_id": index,
            "bbox": [x1, y1, bbox_w, bbox_h],
            "category_id": category_id,
            "id": label_id
        },
    )

@bayu_joo ,
@Bayu_joo

Terima kasih atas saran Anda.
Akan mencoba.

@Sundrops , Sebagai metode Anda untuk mengkonversi, bisa mendapatkan hasil dari daftar "poli". Terima kasih banyak! Tapi saya masih belum tahu kenapa koordinat di file COCO json adalah angka besar / kecil seperti "66916" atau "1"?

Anotasi @topcomma COCO memiliki dua jenis anotasi segmentasi

  1. poligon (contoh objek) [[499.71, 397.28, ...... 342.71, 172.31]] simpul
  2. RLE tidak terkompresi (kerumunan). "segmentasi": {"counts": [66916, 6, 587, ..... 1, 114303], "size": [594, 640]}, 66916 mewakili jumlah label 0.

Poligon dan RLE yang tidak dikompresi akan diubah menjadi format RLE kompak dengan MaskApi.
Format RLE kompak:
segmentasi ": [{" penting ": "mng = 1fb02O1O1O001N2O001O1O0O2O1O1O001N2O001O1O0O2O1O001O1O1O010000O01000O010000O01000O01000O01000O01N2N2M2O2N2N1O2N2O001O10O B000O10O1O001 ^ OQ ^ O9Pb0EQ ^ O; Wb0OO01O1O1O001O1N2N`jT3"," size ":? [600,1000]}]

@Bayu_joo
Terima kasih atas bantuan Anda yang luar biasa.
Data seperti coco khusus saya dapat dilatih di Detectron sekarang.

@tokopedia ,
Saya memiliki masalah yang sama seperti Anda.
Sebagai metode Sundrops, saya tidak dapat menemukan file untuk mengkonversi mask ke polys.
Bisakah Anda memberi tahu saya file yang mana? Terima kasih banyak!

@bayu_jooooooooooooooooooo
Anda dapat merujuk kode python coco stuff (https://github.com/nightrome/cocostuff) untuk menerapkannya sendiri.
Di basis kode tidak ada file penjelasan terkait.

@topcomma : Saya memiliki gambar mentah dan gambar label N . Setiap label disimpan dalam satu file, jadi saya memiliki gambar N untuk label. Saya ingin melatih Mask RCNN dalam kumpulan data saya sendiri, jadi saya harus mengonversi ke format COCO terlebih dahulu. Bisakah Anda membagikan kode cara mengubahnya menjadi gaya COCO? Terima kasih

Hanya ingin tahu apakah ada cara untuk mengubah RLE terkompresi menjadi polys / RLE tak terkompresi?

@realwecan setelah mendekode RLE dengan pycocotools.mask.decode, Anda dapat memeriksa implementasi saya untuk menghasilkan poligon dengan opencv:

coco-json-converter.dll

@hazirbas : terima kasih atas kode Anda. Mengapa tidak menggunakan Davis 2017 yang berisi segmenyation instance? Bisakah kami menggunakan kode Anda untuk mengonversi Davis 2017 ke format coco untuk menggunakan implementasi maskrcnn ini?

@ John1231983 Anda perlu mengubah skrip yang sesuai untuk membaca file terpisah serta file db_info.yml. Untuk penelitian saya sendiri, saya membutuhkannya untuk DAVIS 2016.

Solusi lain untuk menghasilkan poligon, tetapi menggunakan skimage daripada opencv .

import json
import numpy as np
from pycocotools import mask
from skimage import measure

ground_truth_binary_mask = np.array([[  0,   0,   0,   0,   0,   0,   0,   0,   0,   0],
                                     [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0],
                                     [  0,   0,   0,   0,   0,   1,   1,   1,   0,   0],
                                     [  0,   0,   0,   0,   0,   1,   1,   1,   0,   0],
                                     [  0,   0,   0,   0,   0,   1,   1,   1,   0,   0],
                                     [  0,   0,   0,   0,   0,   1,   1,   1,   0,   0],
                                     [  1,   0,   0,   0,   0,   0,   0,   0,   0,   0],
                                     [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0],
                                     [  0,   0,   0,   0,   0,   0,   0,   0,   0,   0]], dtype=np.uint8)

fortran_ground_truth_binary_mask = np.asfortranarray(ground_truth_binary_mask)
encoded_ground_truth = mask.encode(fortran_ground_truth_binary_mask)
ground_truth_area = mask.area(encoded_ground_truth)
ground_truth_bounding_box = mask.toBbox(encoded_ground_truth)
contours = measure.find_contours(ground_truth_binary_mask, 0.5)

annotation = {
        "segmentation": [],
        "area": ground_truth_area.tolist(),
        "iscrowd": 0,
        "image_id": 123,
        "bbox": ground_truth_bounding_box.tolist(),
        "category_id": 1,
        "id": 1
    }

for contour in contours:
    contour = np.flip(contour, axis=1)
    segmentation = contour.ravel().tolist()
    annotation["segmentation"].append(segmentation)

print(json.dumps(annotation, indent=4))

bagaimana Anda mengonversi topeng biner atau RLE yang dikodekan menjadi RLE yang tidak terkompresi untuk digunakan dalam bidang "iscrowd: 1" "counts"?

@waspinator Segmentasi dengan kode Anda yang menggunakan skimage berbeda dengan kode @Sundrops yang menggunakan cv2.
Apakah kedua hasil ini benar dan dapatkah kedua hasil ini digunakan oleh Detectron? Tolong beri saya beberapa saran, terima kasih. @waspinator @Sundrops

Hasil menggunakan kode Anda dengan skimage:

{"segmentasi": [[0.0, 252.00196078431372, 1.0, 252.00196078431372, 2.0, 252.00196078431372, 3.0, 252.00196078431372, 4.0, 252.00196078431372, 5.0, 252.00196078431372, 6.0, 252.00196078431360, 8.043.001972, 9.043.001972, 9.043.001972 , 11.0, 252,00196078431372, 12,0, 252,00196078431372, 13,0, 252,00196078431372, 14,0, 252,00196078431372, 15,0, 252,00196078431372, 16.0, 252,00196078431372, 17,0, 252,00196078431372, 18,0, 252,00196078431372, 19,0, 252,00196078431372, 20,0, 252,00196078431372, 21,0, 252,00196078431372, 22,0, 252,00196078431372, 23.0 , 252,00196078431372, 24,0, 252,00196078431372, 25,0, 252,00196078431372, 26,0, 252,00196078431372, 27,0, 252,00196078431372, 28,0, 252,00196078431372, 29,0, 252,00196078431372, 30,0, 252,00196078431372, 31,0, 252,00196078431372, 32,0, 252,00196078431372, 33,0, 252,00196078431372, 34,0, 252,00196078431372, 35,0, 252,00196078431372 , 36.0, 252.00196078431372, 37.0, 252.00196078431372, 38. 0, 252,00196078431372, 39,0, 252,00196078431372, 40,0, 252,00196078431372, 41,0, 252,00196078431372, 42,0, 252,00196078431372, 43,0, 252,00196078431372, 44.0, 252,00196078431372, 45,0, 252,00196078431372, 46,0, 252,00196078431372, 47,0, 252,00196078431372, 48.0, 252,00196078431372, 49,0, 252,00196078431372, 50,0, 252,00196078431372, 51,0, 252,00196078431372, 52,0, 252,00196078431372, 53,0, 252,00196078431372, 54,0, 252,00196078431372, 55,0, 252,00196078431372, 56,0, 252,00196078431372, 57,0, 252,00196078431372, 58,0, 252,00196078431372, 59,0, 252,00196078431372, 60,0, 252,00196078431372, 61,0, 252,00196078431372, 62,0, 252,00196078431372, 63,0, 252,00196078431372, 64.0, 252,00196078431372, 65,0, 252,00196078431372, 66,0, 252,00196078431372, 67,0, 252,00196078431372, 68.0, 252,00196078431372, 69,0, 252,00196078431372, 70,0, 252,00196078431372, 71,0, 252,00196078431372, 72,0, 252,00196078431372, 73,0, 252,00196078431372, 74,0, 252,00196078431372, 75.0, 252.00196078431372, 76.0, 252.00196 078431372, 77,0, 252,00196078431372, 78,0, 252,00196078431372, 79,0, 252,00196078431372, 80,0, 252,00196078431372, 81,0, 252,00196078431372, 82,0, 252,00196078431372, 83.0, 252,00196078431372, 84,0, 252,00196078431372, 85,0, 252,00196078431372, 86.0, 252,00196078431372, 87.0, 252,00196078431372, 88,0, 252,00196078431372, 89.0, 252.00196078431372, 90.0, 252.00196078431372, 91.0, 252.00196078431372, 92.0, 252.00196078431372, 93.0, 252.00196078431372, 93.00196078431372, 252.0, 94.0, 251.00196078431372, 96.0, 251.00196078431372, 95.0, 252.00196078431372, 93.00196078431372, 252.0, 94.0, 251.00196078431372, 96.0 ...

Hasil dengan kode @Sundrops menggunakan cv2:

[94, 252, 93, 253, 0, 253, 0, 286, 188, 286, 188, 269, 187, 268, 187, 252]

@Kongsea Saya belum menguji implementasi @Sundrops cv2, tetapi ide dasarnya harus sama. Mereka akan menghasilkan hasil yang berbeda karena ada jumlah kumpulan titik yang tak terbatas yang dapat Anda gunakan untuk mendeskripsikan sebuah bentuk. Tetapi jika tidak, keduanya harus bekerja. Saya hanya belum menginstal cv2 jadi saya menulis sesuatu yang tidak memerlukannya.

@Kongsea @waspinator Saya telah menguji kode saya. Berhasil.

Terima kasih @Sundrops @waspinator .
Saya akan mencobanya.

@waspinator Apakah ada cara untuk mengubah segmentasi poly vertex ke RLE? Target saya dibuat iscrowd = 1

@Sundrops Mengapa Anda mengomentari bagian ini di kode Anda?

# if len(contour) > 4:
    #     segmentation.append(contour)
# if len(segmentation) == 0:
#     continue

Kami memang perlu menangani kasus seperti itu, bukan?

@ Yuliang-Zou Anda harus menghapus tanda komentar pada bagian ini ketika kontur untuk Detectron ditunjukkan. Beacase the Detectron akan memperlakukannya sebagai persegi panjang jika len (kontur) == 4. Saya telah memperbarui kode saya sebelumnya.

@Srop Terima kasih. Tapi kita masih harus menangani len(contour)==2 , bukan?

@ Yuliang-Zou Ya, tetapi kode if len(contour) > 4: memiliki pegangan len(contour)==2 dan len(contour)==4 .

@Sundrops Begitu , terima kasih!

Saya menulis perpustakaan dan artikel untuk membantu membuat kumpulan data gaya COCO.

https://patrickwasp.com/create-your-own-coco-style-dataset/

@Sundrops & @topcomma Saya punya masalah untuk memuat data yang dianotasi di pycocotols karena anotasi saya termasuk segmentasi tanpa topeng. tahu bagaimana cara memvisualisasikan anotasi tanpa topeng di pycocotools?

@Bayu_joo
ann: {
"segmentasi": [
[312.29, 562.89, 402.25, 511.49, 400.96, 425.38, 398.39, 372.69, 388.11, 332.85, 318.71, 325.14, 295.58, 305.86, 269.88, 314.86, 258.31, 337.99, 217.19.37, 141.29 , 358.55, 159.36, 377.83, 116.95, 421.53, 167.07, 499.92, 232.61, 560.32, 300.72, 571.89]
],
"area": ​​54652.9556,
"iscrowd": 0,
"image_id": 480023,
"bbox": [116,95, 305,86, 285,3, 266,03],
"category_id": 58,
"id": 86
}
Bagaimana cara menghitung luas dengan mask.py di coco-api? Terima kasih.
Kode saya adalah sebagai berikut, tetapi kesalahan:

segmentasi = ann ['segmentasi']
bimask = np.array (segmentasi, dtype = np.uint8, order = 'F')
cetak ("bimask:", bimask)
rleObjs = mask.encode (bimask)
cetak ("rleObjs:", rleObjs)
area = mask.area (rleObjs)
cetak ("area:", area)

@manketon
Mungkin Anda bisa mencoba cv2, tapi saya tidak yakin itu benar. Ini hanya contoh dari Menghapus kontur dari gambar menggunakan Python dan OpenCV .

def is_contour_bad(c):
    # approximate the contour
    peri = cv2.arcLength(c, True)
    approx = cv2.approxPolyDP(c, 0.02 * peri, True)
    # return True if it is not a rectangle
    return not len(approx) == 4
image = cv2.imread('xx.jpg')
contours = ann['segmentation']
mask = np.ones(image.shape[:2], dtype="uint8") * 255
# loop over the contours
for c in contours:
    # if the contour is not a rectangle, draw it on the mask
    if is_contour_bad(c):
        cv2.drawContours(mask, [c], -1, 0, -1)
area = (mask==0).sum()

@Sundrops @waspinator Saya punya pertanyaan. Jika topeng objek asli saya memiliki lubang besar, ketika diubah menjadi poligon, bagaimana saya harus mengubahnya kembali dengan benar? Fungsi decode dan merge dalam coco API akan memperlakukan lubang sebagai bagian dari objek, jadi ketika diubah kembali, lubang tersebut menjadi topeng. Bagaimana yang harus saya lakukan dalam kasus ini?

@ wangg12 Sejauh yang saya tahu, COCO tidak memiliki cara asli untuk menyandikan lubang.

for contour in contours:
        contour = contour.flatten().tolist()
        segmentation.append(contour)
        if len(contour) > 4:
            segmentation.append(contour)

Halo @Sundrops , terima kasih atas kodenya. Saya seorang pemula di Detectron. Saya bingung kenapa panjang kontur (yang merupakan list) harus lebih besar dari 4, dengan kata lain apa yang akan terjadi pada model bila panjangnya lebih kecil dari 4. Salah satu balasan anda mengatakan bahwa Detectron akan memperlakukannya sebagai empat persegi panjang. Dalam perspektif saya, mungkin ada beberapa objek berbentuk persegi panjang, jadi menurut saya tidak masalah. Juga, saya ingin tahu apakah Anda menambahkan kontur untuk dua kali dalam satu iterasi. Saya pikir kode yang tepat seharusnya.

for contour in contours:
        contour = contour.flatten().tolist()
        if len(contour) > 4:
            segmentation.append(contour)

Akan sangat dihargai jika Anda dapat memberi saya beberapa saran. Terima kasih banyak!

@BobZhangHT Ya, itu harus menambahkan kontur untuk sekali dalam satu iterasi.
Untuk pertanyaan pertama Anda, jika len (ann ['segmentation'] [0]) == 4, cocoapi akan menganggap semua persegi panjang.

# cocoapi/PythonAPI/pycocotools/coco.py
def annToRLE(self, ann):
    t = self.imgs[ann['image_id']]
    h, w = t['height'], t['width']
    segm = ann['segmentation']
    if type(segm) == list:
        rles = maskUtils.frPyObjects(segm, h, w) 
        rle = maskUtils.merge(rles)
   ......
# cocoapi/PythonAPI/pycocotools/_mask.pyx
def frPyObjects(pyobj, h, w):
    # encode rle from a list of python objects
    if type(pyobj) == np.ndarray:
        objs = frBbox(pyobj, h, w)
    elif type(pyobj) == list and len(pyobj[0]) == 4:
        objs = frBbox(pyobj, h, w)
    elif type(pyobj) == list and len(pyobj[0]) > 4:
        objs = frPoly(pyobj, h, w)
   ......

@Sundrops Terima kasih atas balasan Anda!

Saya menafsirkan poli sebagai daftar poligon, yang ditentukan oleh simpul, seperti [[x1, y1, x2, y2… xN, yN],… [x1, y1, x2, y2… xN, yN]], di mana koordinatnya adalah skala yang sama seperti gambar. Topeng, yang dikodekan dengan cara ini, ditampilkan dengan benar oleh CocoAPI [1] Tapi Anda mungkin ingin mendapatkan jawaban "resmi". [1] https://github.com/cocodataset/cocoapi https://github.com/cocodataset/cocoapi

Pada 2. Feb 2018, pukul 09:18, Hu Xingui @ . * > menulis: @amokeev https://github.com/amokeev , Yakin bilangan yang di segmentasi adalah (x, y) vertex? Misalnya "66916", angka yang besar! Lain, meskipun saya menetapkan "iscrowd" sebagai "1" untuk format RLE, namun tidak dapat berjalan di Detectron. - Anda menerima ini karena Anda disebutkan. Balas email ini secara langsung, lihat di GitHub < # 100 (komentar) >, atau nonaktifkan utas https://github.com/notifications/unsubscribe-auth/AFlh63ObnXg-DcaDKwIi3pB4Ppig464Hks5tQsTkgaJpZM4R2tN3 .

Bagaimana saya bisa mengubah RLE menjadi poligon ketika "iscrowd" adalah "1" karena matterport / MaskRCNN hanya bekerja dengan poligon. @jodohgratis. Saya ingin menggunakan implementasi matterport maskRCNN dengan kumpulan data coco yang dibuat menggunakan pycococreator.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat