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:
-
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
-
pemrosesan dataset
Bagian ini merupakan tahapan kedua dari pengolahan dataset yang siap untuk nantinya di training di dalam model segmentation image
-
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,
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 :
-
Import untuk semuanya
from cloudMappingAI import *
tanda (*) merupakan tanda untuk memanggil segala bentuk method yang ada di library cloudMappingAI.
-
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,
-
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. -
Penggunaan method ubah format gambar sekala directory atau folder.
pra_pemrosesan_data.change_image_format_to_png_directory_dataset()
output:
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.
-
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 :
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 -
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:
-
Resolusi ESRGAN gambar secara banyak dalam satu folder.
pra_pemrosesan_data.ESRGAN_resolusi_dataset()
Output:
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".
-
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. -
Menampilkan plot gambar hasil resolusi
pra_pemrosesan_data.plot_image_result_esrgan( image=..., title=... )
Output :
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
-
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.
-
Dwonload dataset
dataset.dwonload_dataset_roboflow( api_key=..., name_workspace=..., name_project=..., vers=..., name_version=... )
Output:
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.
-
Mengklompokan dan menyesuaikan gambar sesuai dengan jenis training, validasi, dan testing
datas = pemrosesan_data.combine_dataset_pra_pemrosesan()
Output:
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.
-
Combinasi dataset untuk model
datas = pemrosesan_data.combine_dataset_to_model(combine_ds=...)
Output :
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:
-
Inisialisasi class
ModelCloudMappingAI = CloudMappingAI( id2label=..., label2id=..., checkpoint_train='...' )
Output:
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.
-
Transfrom dataset
dataset_to_model = ModelCloudMappingAI.dataset_transform_area_model(datas)
Output:
parameter deskripsi dataset parameter ini berisi type datasetDict untuk di ubah format gambarnya menjadi vektor array agar sesuai dan dapat ditraining dengan model. -
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:
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)
-
History model
history = ModelCloudMappingAI.history_model_evaluate()
Output:
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.
-
Save model
ModelCloudMappingAI.model_save( path_output_dir=... )
Output:
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.
-
Testing Model
predic_gambar = ModelCloudMappingAI.testing_model( image_test_area=..., checkpoint_test=... )
Output:
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. -
Prediksi banyak gambar
predic_all_image = ModelCloudMappingAI.predict_all_image_model(data_tes, "/content/best_model")
Output :
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. -
Menampilkan gambar sampel testing
model_testing.show_image_model_prediction(predic_all_image)
output:
-
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:
Hasil :
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31ae1573f1acf17990188bb2c16fe21b2cf7095caa2b22045f0d16577c3379ee
|
|
| MD5 |
f495854b226d8b5bda865bd30b71deba
|
|
| BLAKE2b-256 |
9077a998a2422776ccd9e10b6db8bb5334400aefa44189567664948486285033
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fa90dc70bcc92505a543ea9ef434243b1b981dfef845fa391ee058b4ab337684
|
|
| MD5 |
00ae2a532eebcfe605de04dc3f53318c
|
|
| BLAKE2b-256 |
16fde6224252ed8b8631479ff44b559d9e1e72cdedb3e4ae38ae75aaa8b7d6dc
|