Home › Forums › Instance Segmentation and SAHI › Bagian 3: Dataset kuzushiji-recognition
- This topic is empty.
-
AuthorPosts
-
February 5, 2026 at 21:04 #12206
mulkan syarif
KeymasterDataset kuzushiji-recognition
lokasi URL untuk download https://www.kaggle.com/c/kuzushiji-recognition/dataProperty Dataset
dengan jumlah gambar di train_image yaitu
df = pd.read_csv('train.csv') len(df)3.605 file dan jumlah unicode tersebut yaitu
def get_unicode(df): df_final = [] for no_record in range(0,len(df)): bounding = df.iloc[no_record]['labels'].split(' ') cols = 5 record = [bounding[i:i+cols] for i in range(0, len(bounding), cols)] df2 = pd.DataFrame(record, columns=['unicode','x','y','w','h']) df2['image_id'] = df.iloc[no_record]['image_id'] df_final.append(df2) df_final = pd.concat(df_final, ignore_index=True) df_final['x'] = df_final['x'].astype(int) df_final['y'] = df_final['y'].astype(int) df_final['w'] = df_final['w'].astype(int) df_final['h'] = df_final['h'].astype(int) return df_final df_final = get_unicode(df) print("jumlah unicode: ",len(df_final['unicode'].unique()))jumlah unicode: 4.212 karakter tapi tidak seimbang jumlah sebaran karakter unicode tersebut.

Berikut contoh gambar dari dataset tersebut (labelling nya tidak berurutan!)

Karena ukuranya sangat besar akan dilakukan croping overlapping dengan ration 20%

untuk block n0 1,2, dan 3 tidak terdapat bounding box! walaupun ada secuil huruf kanji maka tidak dianggap huruf kanji
source code: 1. Show Labelling.ipnyb
Pembuatan Class Dataset
Ukuran gambar walaupun sudah di croping masih sangat terasa besar sekali sehingga akan memakan banyak RAM oleh karena itu saya buat function khusus untuk me resize gambar (juga termasuk memindahkan koordinasi bounding box)
semula ukuran
orig_size = (2404,3874)
menjadi
new_size = (800,1200)
dengan ukuran croping yaitu 400 x 400 dan overlapping ratio 20%
source code: library/lib_dataset.py
Pelatihan
Pelatihan menggunakan model RCNN lebih jelasnya lihat kode berikut
def create_model(num_classes): # load Faster RCNN pre-trained model model = torchvision.models.detection.fasterrcnn_resnet50_fpn(pretrained=True, box_detections_per_img = 100, min_size = 400, max_size = 400) # get the number of input features in_features = model.roi_heads.box_predictor.cls_score.in_features # define a new head for the detector with required number of classes model.roi_heads.box_predictor = FastRCNNPredictor(in_features, num_classes) return modelUntuk pelatihan hanya menggunakan file no 0,1,2,3,4,5 saja dengan kode sebagai berikut
dataset = MyDatasetCroping(df,a=[0,5])
1 file gambar akan di resize
orig_size = (2404,3874)
menjadi
new_size = (800,1200)kemudian croping menjadi 12 bagian dengan ukuran 400×400. Jadi walaupun 6 file gambar saja, sebenarnya ada 6 x 12 croping = 72 tile gambar!
source: 4. kasus dataset croping sekaligus resize.ipynb
Pengujian
Untuk pengujian hasil dalam bentuk croping belum satu gambar utuh (sedang ditulis kode untuk merge hasil dari croping)
Berikut hasil loss

dengan hasil seperti berikut

Source: 5. Cek Hasil Training Resize.ipynb
-
AuthorPosts
- You must be logged in to reply to this topic.