Skip to main content

Library for cloud mapping using Artificial Intelligence by semantic segmentation image

Project description

CloudMappingAI

Intisari

Library yang bertujuan untuk membantu para peneliti untuk membangun dan menggunakan model pemetaan awan dalam penelitian Geografis. librayr ini terdiri dari 3 tahapan dalam penggunaannya:

  1. pra-pemrosesan dataset

    Bagian ini merupakan tahapan awal dari pengolahan dataset yang berbentuk gambar dalam pemetaan awan. Isi dari pra-pemrosesan dataset ini adalah mengubah format gambar secara default ke .png dan meningkatkan resolusi gambar menggunakan model ESRGAN

  2. pemrosesan dataset

    Bagian ini merupakan tahapan kedua dari pengolahan dataset yang siap untuk nantinya di training di dalam model segmentation image

  3. CloudMappingAI

    Bagian ini merupakan tempat untuk pelatihan model, penyimpanan model, evaluasi model, penggunaan model kembali dalam melakukan pemetaan awan.

Model

Model yang digunakan iyalah berbasi transfer learning transformer dengan nama nvidia/mti-b0 :Segformer adapun gambaran arsitektur dari model ini sebagai berikut,

Screenshot 2024-11-06 103907

Cara Penggunaan

Mengenal Beberapa Fungsi Dari Library

Fungsi/method Deskripsi
change_image_format_to_png_directory_dataset metod dari class pra_pemrosesanDataset (cla-ss) yang disimpan di variabel pra_pemrosesan_data yaitu change_image_format_to_png_directory_dataset (method) yang akan mengubah gambar ke format png pada sekalah gambar folder.
change_image_format_to_png_for_on_image_dataset berfungsi untuk mengubah format gambar secara satu per satu, dengan memasukan path file lokasi gambar dan path folder yang menampung hasil dari perubahan format gambar ke png.
list_change_image_format_to_png_directory_dataset bertujuan untuk meletakan hasil dari path Lokasi gambar yang sudah diubah format nya ke dalam sebuah array.
ESRGAN_resolusi_dataset penggunaan untuk melakukan resolusi gambar dengan model ESRGAN dengan method yang dipanggil ESRGAN_ resolusi_dataset (method) , method ini merupakan pengubah resolusi gambar sekala folder dan menghasilkan type data dictionary yang terdiri dari list image serta image_hasil yang sudah di resolusi dengan model ESRGAN.
ESRGAN_resolusi_on_image dan plot_image_result_esrgan bertujuan untuk meningkatkan resolusi gambar satu per satu dengan memasukan Lokasi path gam-bar di parameter method terse-but, dan menggunakan me-thod dari plot_image_result (method) yang bertujuan untuk menampilkan gambar hasil resolusi dari esrgan.
dwonload_dataset_roboflow bertujuan untuk menginisialisasi untuk meng-gunakan method pemrosesan gambar yang akan siap di masukan ke dalam training model. Penggunaan metohd yang dipanggil iyalah dwonload_dataset_roboflow (method) bertujuan untuk mendwonlod data dari hasil pemrosesan di aplikasi pihak ke-3 yaitu roboflow.
combine_dataset_pra_pemrosesan bertujuan untuk mengkelompokkan dataset berdasarkan jenis data seperti training, validasi, dan testing.
combine_dataset_to_model bertujuan untuk menjadikan di tiap kelompok gambar untuk di jadikan format PIL agar dapat mudah di tampilkan dan dibentuk ke dataset pelatihan model yang terparti menjadi “image” dan “label”.
dataset_transform_area_model bertujuan untuk mengubah struktur gambar menjadi array pixel_velues agar dapat mudah melakukan training model serta labelnya diubah ke dalam array yang berisi nilai 0 dan 1.
train bertujuan untuk melatih model.
history_model_evaluate bertujuan untuk mendwon-load dan menampilkan data history hasil evaluasi training model
model_save bertujuan untuk menyimpan model yang sudah di training sebelumnya.
testing_model betujuan untuk melakukan prediksi pada satu gambar dengan memasukan gambar dari data_tes yang sudah di proses sebelumnya menjadi format PIL image dan model yang sudah kita latih dari path lokasinya kedalam method.
predict_all_image_model bertujuan untuk melakukan sekaligus pada semua gambar dari data_tes yang sudah di olah. Gambar yang ada di data_tes ada 6 gambar dan di prediksi secara sekaligus.
show_image_model_prediction bertujuan untuk menampilkan sampel gambar yang sudah di prediksi berserta target yang sudah memenuhi.

Implementasi

Penggunaan library ini dapat diterapkan dengan penggunaan code serta parameter yang di ikutsertakan pada saat pengeksekusian code berlangsung, berikut implementasi dalam code yang dijalankan.

Penginstalan Library

pip install cloudmappingai

Import Library

Dalam mengimport library di cloudMappingAI ada dua cara penggunaan :

  1. Import untuk semuanya

    from cloudMappingAI import *
    

    tanda (*) merupakan tanda untuk memanggil segala bentuk method yang ada di library cloudMappingAI.

  2. Import untuk satu per satu method atau class nya

    from cloudMappingAI.cloud_mapping_ai import pra_pemrosesanDataset
    from cloudMappingAI.cloud_mapping_ai import pemrosesanDataset
    from cloudMappingAI.cloud_mapping_ai import CloudMappingAI
    

    Dalam code di atas ada 3 jenis class utama yang akan di panggil yaitu tahapan pra-pemrosesan dataset, pemrosesan datasetm, dan CloudMappingAI sebagai class training model.

Pra-pemrosesan datasets

Ada beberapa class dan method yang digunakan pada libraray cloudmappingai ini di tahapan pra-pemrosesan dataset,

  1. Inisialisasi tahapan pra-pemrosesan dataset

    pra_pemrosesan_data = pra_pemrosesanDataset(
       path_directory_input=...,
       path_directory_output=...,
       path_directory_output_result_esrgan=...
    )
    

    Inisialisasi pra_pemrosesanDataset melibatkan pemasukan beberapa parameter terdiri dari:

    parameter deskripsi
    path_directory_input Sebagai parameter yang bernilai (string) yang menyimpan string berupa lokasi dari gambar directory atau penyimpanan inputan
    path_directory_output Sebagai parameter yang bernilai (string) yang menyimpan string berupa lokasi dari gambar directory atau penyimpanan outputan
    path_directory_output_result_esrgan Sebagai parameter yang bernilai (string) yang menyimpan string berupa lokasi dari gambar yang sudah di ubah format nya menjadi .png yang nantinya akan siap di tingkatkan resolusinya.
  2. Penggunaan method ubah format gambar sekala directory atau folder.

    pra_pemrosesan_data.change_image_format_to_png_directory_dataset()
    

    output: Screenshot 2024-12-11 111114

    Penggunaan method ini bertujuan untuk mengubah gambar dari yang semulanya adalah format mentahan dari citra setelit yaitu .tif diubah ke format .png secara keseluruhan dalam sekala directory.

  3. Penggunaan method ubah format gambar dalam satu per satu gambar.

    pra_pemrosesan_data.change_image_format_to_png_for_on_image_dataset
    (
       path_image=....,
       path_output_image=...,
    )
    

    Output : image

    Penggunaan method ini bertujuan untuk mengubah format gambar dengan menginputkan satu gambar, yang mana meletakan path atau lokasi dari satu gambar berformat .tif dan akan disimpan ke dalam alokasi path outputnya yang berisi format .png. Berikut parameter yang ada di dalam method tersebut:

    parameter deskripsi
    path_image Parameter yang menyimpan nilai (string) yaitu berupa lokasi path image yang berformat .tif
    path_output Paramater yang menyimpan nilai (string) yaitu berupa lokasi path directory untuk output hasil pengubahan gambar ke .png
  4. Penggunaan method ubah format gambar secara keseluruhan dari satu folder dan menyimpan lokasi path gambar ke dalam sebuah array

    data_gambar = pra_pemrosesan_data.list_change_image_format_to_png_directory_dataset()
    

    Output: Screenshot 2024-12-11 165018

  5. Resolusi ESRGAN gambar secara banyak dalam satu folder.

    pra_pemrosesan_data.ESRGAN_resolusi_dataset()
    

    Output: Screenshot 2024-12-11 165505

    Method ini berfungsi untuk meresolusikan gambar menggunakan model ESRGAN, dengan sekali banyak gambar dalam satu directory yang akan diresolusikan dengan ESRGAN ini dan mengembalikan nilai dictionary yang berisi "image", "image_hasil".

  6. Resolusi ESRGAN gambar secara satu per satu

    fake_tes_gambar = pra_pemrosesan_data.ESRGAN_resolusi_on_image(
       path_image=...
    )
    
    Parameter Deskripsi
    path_image parameter yang berisi nilai (string) yaitu lokasi path image yang akan diresolusikan.
  7. Menampilkan plot gambar hasil resolusi

    pra_pemrosesan_data.plot_image_result_esrgan(
       image=...,
       title=...
    )
    

    Output : Screenshot 2024-12-11 170841

    Prameter Deskripsi
    image parameter yang berisi nilai tensor berdimensi 3D yang terdiri dari panjang, lebar, dan tinggi.
    title parameter yang berisi nilai string untuk memberikan judul di plot.

    Method ini berfungsi untuk menampilkan resolusi gambar dengan menggunakan plot matplotlib.

Pemrosesan dataset

Ada beberapa class dan method yang digunakan pada libraray cloudmappingai ini di tahapan pemrosesan dataset

  1. Inisialisasi Pemrosesan dataset

    pemrosesan_data = pemrosesanDataset(
       path_train=...,
       path_valid=...,
       path_test=...
       )
    
    parameter deskripsi
    path_train Parameter yang menyimpan nilai (string) yaitu path lokasi data train saat sudah mendwonload data dari roboflow.
    path_valid Parameter yang menyimpan nilai (string) yaitu path lokasi data valid saat sudah mendwonload data dari roboflow.
    path_test Parameter yang menyimpan nilai (string) yaitu path lokasi data test saat sudah mendwonload data dari roboflow.

    Method ini merupakan inisialisais untuk penggunaan class dan method di bagian pemrosesan dataset yang mengimputkan 3 parameter yaitu data train, validasi, dan testing.

  2. Dwonload dataset

    dataset.dwonload_dataset_roboflow(
       api_key=...,
       name_workspace=...,
       name_project=...,
       vers=...,
       name_version=...
    )
    

    Output: image

    parameter deskripsi
    api_key parameter yang menyimpan nilai string yaitu api key dari roboflow.
    name_workspace parameter yang menyimpan nilai string yaitu workspace dari roboflow.
    name_project parameter yang menyimpan nilai string yaitu nama projek di roboflow.
    vers parameter yang menyimpan nilai string yaitu versi dataset di roboflow.
    name_version parameter yang menyimpan nilai string yaitu nama versi dataset di roboflow.

    method ini berfungsi untuk mendwonload dataset di roboflow dengan mengakses data di roboflow untuk di dwonload datasetnya.

  3. Mengklompokan dan menyesuaikan gambar sesuai dengan jenis training, validasi, dan testing

    datas = pemrosesan_data.combine_dataset_pra_pemrosesan()
    

    Output: image

    method tersebut bertujuan untuk mengelompokan data serta mengurutkan data sesuai dengan mask atau semantic tiap gambar sesuai dengan index unik, kemudian mengembalikan nilai _dictionary yang terdiri dari train_image, validasi_image, dan testing image.

  4. Combinasi dataset untuk model

    datas = pemrosesan_data.combine_dataset_to_model(combine_ds=...)
    

    Output :

    image

    parameter deskripsi
    combine_ds parameter ini berisi data dictionary dengan key 'train_image', 'validasi_image', 'test_image'.

    Pada method ini dataset yang sudah di kelompokan dari dictionary akan dijadikan menjadi datasetDict yang menampung nilai dari semua gambar yang di ubah ke bentuk format PIL image.

Model CloudMappingAI

Pada bagian ini bertujuan untuk menjalankan area pengembangan model, evaluasi model, serta menyimpan model untuk melakukan testing dan penerapan model untuk pemetaan awan, berikut beberapa class dan method yang ada di bagian ini:

  1. Inisialisasi class

    ModelCloudMappingAI = CloudMappingAI(
       id2label=...,
       label2id=...,
       checkpoint_train='...'
    )
    

    Output: image

    parameter deskripsi
    id2label parameter ini menyimpan nilai dictionary class dengan key nya adalah index class objek itu sendiri.
    label2id parameter ini menyimpan nilai dictionary class dengan key nya adalah name class objek itu sendiri.
    checkpoint_train parameter yang menyimpan nilai string dari model yang diimputkan di hugging face dengan prinsip transfer learning

    Bagian inisialisasi ini adalah awalan untuk menggunakan method platihan model yang ada di library.

  2. Transfrom dataset

    dataset_to_model = ModelCloudMappingAI.dataset_transform_area_model(datas)
    

    Output:

    image

    parameter deskripsi
    dataset parameter ini berisi type datasetDict untuk di ubah format gambarnya menjadi vektor array agar sesuai dan dapat ditraining dengan model.
  3. Training model

    model_baru = ModelCloudMappingAI.train(
       train_ds=...,
       validation_ds=...,
       learning_rate=...,
       num_train_epochs=...,
       per_device_train_batch_size=...,
       per_device_eval_batch_size=...,
       output_dir=...
    )
    

    Output:

    image

    parameter deskripsi
    train_ds parameter yang berisi nilai array gambar untuk dataset train yang sudah di normalisasai dari method "dataset_transform_area_model".
    validation_ds parameter yang berisi nilai array gambar untuk dataset validation yang sudah di normalisasi dari method "dataset_transform_area_model".
    learning_rate parameter yang berisi nilai float untuk mengatur seberapa besar atau batasan perubahan bobot dalam model setiap langkah platihan model.
    num_train_epochs parameter yang berisi nilai integer untuk menentukan berapa banyak jumlah iterasi pelatihan yang akan dilakukan pada model yang kita latih dengan dataset.
    per_device_train_batch_size parameter yang berisi nilai integer untuk sebagai penentu jumlah sampel data yang akan diproses secara bersamaan dalam satu langkah pelatihan.
    per_device_eval_batch_size parameter yang berisis nilai integer yang fungsi nya sama dengan parameter "per_device_train_batch_size" tapi di bagian data validasi.
    output_dir parameter yang berisi lokasi tempat menyimpan hasil atau data chece dari berjalannya pelatihan model.

    method yang digunakan tersebut bertjuan untuk melakukan training pada model dengan menginputkan dataset yang sudah di normalisasikan agar sesuai dengan model yang dilatih serta pengaturan parameter platihan seperti bacth size dan iterasi platihan (epoch)

  4. History model

    history = ModelCloudMappingAI.history_model_evaluate()
    

    Output: image

    method history_model_evaluate bertujuan untuk mendwonload dan melihat history dari evaluasi selama pelatihan pada tiap becth nya dengan mendwonload data hasil evaluasi nya ke dalam bentuk CSV.

  5. Save model

    ModelCloudMappingAI.model_save(
       path_output_dir=...
    )
    

    Output:

    image

    parameter deskripsi
    path_output_dir parameter ini berisi nilai string yang berupa lokasi folder output untuk menyimpan model yang sudah dilatih.

    method model_save ini bertujuan untuk menyimpan model apabila model sudah melakukan pelatihan dan memiliki evaluasi yang bagus dengan performa model yang baik.

  6. Testing Model

    predic_gambar = ModelCloudMappingAI.testing_model(
       image_test_area=...,
       checkpoint_test=...
    )
    

    Output:

    image

    parameter diskripsi
    image_test_area parameter yang berisi gambar berforma PIL image
    checkpoint_test paraemter yang berisi path model yang sudah dilatih untuk digunakan pada data testing untuk implementasi dan pengujian.
  7. Prediksi banyak gambar

    predic_all_image = ModelCloudMappingAI.predict_all_image_model(data_tes, "/content/best_model")
    

    Output :

    image

    parameter diskripsi
    test_ds parameter yang berisi array gambar berforma PIL image yang siap untuk di uji coba
    checkpoint_test paraemter yang berisi path model yang sudah dilatih untuk digunakan pada data testing untuk implementasi dan pengujian.
  8. Menampilkan gambar sampel testing

    model_testing.show_image_model_prediction(predic_all_image)
    

    output: image

  9. Melakukan penghapusan awan di gambar asli

hasil_gambar_hasil_hapus_awan = ModelCloudMappingAI.remove_cloudh_with_transparansy(
   original_image="",
   segmentation_image="",
   cloud_label=""
)

Paramater yang digunakan :

parameter penjelasan
original_image Sebagai parameter yang menampung variabel gambar yang asli atau inputan gambar berbentuk vector
segmentation_image Sebagai parameter yang menampung variabel gamba hasil prediksi model berbentuk vector
cloud_label sebagai parameter yang menampung nilai interger label yang mendeskripsikan awan contoh 1,2,3,....

cara penggunaannya:

Image

Hasil :

Image

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cloudmappingai-0.0.2.tar.gz (55.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cloudmappingai-0.0.2-py3-none-any.whl (15.8 kB view details)

Uploaded Python 3

File details

Details for the file cloudmappingai-0.0.2.tar.gz.

File metadata

  • Download URL: cloudmappingai-0.0.2.tar.gz
  • Upload date:
  • Size: 55.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for cloudmappingai-0.0.2.tar.gz
Algorithm Hash digest
SHA256 31ae1573f1acf17990188bb2c16fe21b2cf7095caa2b22045f0d16577c3379ee
MD5 f495854b226d8b5bda865bd30b71deba
BLAKE2b-256 9077a998a2422776ccd9e10b6db8bb5334400aefa44189567664948486285033

See more details on using hashes here.

File details

Details for the file cloudmappingai-0.0.2-py3-none-any.whl.

File metadata

  • Download URL: cloudmappingai-0.0.2-py3-none-any.whl
  • Upload date:
  • Size: 15.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for cloudmappingai-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 fa90dc70bcc92505a543ea9ef434243b1b981dfef845fa391ee058b4ab337684
MD5 00ae2a532eebcfe605de04dc3f53318c
BLAKE2b-256 16fde6224252ed8b8631479ff44b559d9e1e72cdedb3e4ae38ae75aaa8b7d6dc

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page