Hari ini, Anda akan mempelajari beberapa topik terpenting dan mendasar dalam pembelajaran mesin dan pembelajaran mendalam. Saya jamin bahwa konten hari ini akan menyampaikan beberapa konsep dasar yang merupakan kunci untuk mulai mempelajari deep learning — bagian dari machine learning Show
Pertama, kita akan mulai menjelaskan dasar-dasar gambar seperti piksel, nilai piksel, properti gambar, dan perbedaan antara gambar RGB dan skala abu-abu. Kemudian kita akan berbicara tentang bagaimana gambar-gambar ini direpresentasikan dalam array NumPy Sebagai bagian bonus, kita akan menjelajahi kumpulan data digit MNIST (lihat kutipan di bagian bawah) yang berisi ribuan gambar skala abu-abu dari digit tulisan tangan. Ini akan membantu Anda untuk lebih memperjelas hal-hal yang Anda pelajari dalam representasi gambar NumPy Oleh karena itu, konten hari ini akan dibagi menjadi dua bagian utama
Kita mulai dengan dasar-dasar gambar Dasar gambarPikselGambar terbuat dari elemen kecil seperti persegi yang disebut piksel. Bahkan sebuah gambar kecil dapat berisi jutaan piksel dengan warna berbeda Properti gambarSetiap gambar memiliki tiga properti utama
Gambar RGB vs gambar skala abu-abuPenting untuk membedakan antara gambar RGB dan gambar skala abu-abu. Gambar RGB memiliki tiga saluran warna. Saluran merah, saluran hijau dan saluran biru. Namun, gambar skala abu-abu hanya memiliki satu saluran Nilai pikselWarna suatu gambar dilambangkan dengan nilai pikselnya. Piksel hanya dapat memiliki satu warna tetapi dapat digabungkan untuk membuat banyak warna Dalam gambar skala abu-abu di mana hanya ada satu saluran, nilai piksel hanya memiliki satu angka mulai dari 0 hingga 255 (keduanya inklusif). Nilai piksel 0 mewakili hitam dan nilai piksel 255 mewakili putih. Nilai piksel dalam gambar skala abu-abu dapat direpresentasikan sebagai berikut [40] Karena nilai 40 mendekati 0 daripada 255, warna piksel juga mendekati hitam Dalam gambar RGB di mana ada tiga saluran warna, nilai piksel memiliki tiga angka, masing-masing berkisar dari 0 hingga 255 (keduanya inklusif). Misalnya, angka 0 piksel pada saluran merah berarti tidak ada warna merah pada piksel tersebut sedangkan angka 255 berarti ada 100% warna merah pada piksel tersebut. Interpretasi ini juga berlaku untuk piksel di dua saluran lainnya. Nilai piksel dalam citra RGB dapat direpresentasikan sebagai berikut [255, 255, 0] _Nilai piksel ini mewakili warna kuning. Lihatlah gambar berikut Gambar oleh OpenClipart-Vectors dari PixabayWarna kuning terbuat dari warna hijau dan merah. Tidak ada warna biru yang terlibat. Itu sebabnya nilai piksel [255, 255, 0] _8 mewakili piksel warna kuning — Merah 100% (255), Hijau 100% (255), dan tanpa Biru (0)Representasi gambar dalam pembelajaran mendalamDalam pembelajaran mesin dan pembelajaran mendalam, gambar direpresentasikan sebagai larik NumPy. Dalam konteks pembelajaran mendalam, array NumPy tersebut secara teknis disebut tensor (Pelajari cara membuat Tensor seperti array NumPy) Sebagian besar dari Anda mungkin bingung saat merepresentasikan gambar dalam array NumPy karena melibatkan banyak dimensi. Pada dasarnya, jumlah dimensi ditentukan oleh faktor-faktor berikut
Representasi gambar skala abu-abu sebagai array NumPyGambar skala abu-abu tunggal dapat direpresentasikan menggunakan larik NumPy dua dimensi (2D) atau tensor. Karena hanya ada satu saluran dalam gambar skala abu-abu, kami tidak memerlukan dimensi ekstra untuk mewakili saluran warna. Dua dimensi mewakili tinggi dan lebar gambar Kumpulan 3 gambar skala abu-abu dapat direpresentasikan menggunakan larik NumPy tiga dimensi (3D) atau tensor. Di sini, kita memerlukan dimensi ekstra untuk mewakili jumlah gambar (Gambar oleh penulis, dibuat dengan draw. io)Bentuk kumpulan 3 gambar skala abu-abu di atas dapat direpresentasikan sebagai (Gambar oleh penulis, dibuat dengan draw. io)Representasi gambar RGB sebagai array NumPyGambar RGB tunggal dapat direpresentasikan menggunakan larik NumPy tiga dimensi (3D) atau tensor. Karena ada tiga saluran warna pada gambar RGB, kita memerlukan dimensi ekstra untuk saluran warna Kumpulan 3 gambar RGB dapat direpresentasikan menggunakan larik NumPy empat dimensi (4D) atau tensor. Di sini, kita memerlukan dimensi ekstra untuk mewakili jumlah gambar (Gambar oleh penulis, dibuat dengan draw. io)Bentuk kumpulan 3 gambar RGB di atas dapat direpresentasikan dalam dua cara berbeda
Teori yang cukup untuk dasar-dasar gambar dan representasi NumPy-nya. Mari mulai menjelajahi kumpulan data digit MNIST Melihat lebih dekat pada kumpulan data MNIST (Opsional)Kumpulan data digit MNIST (lihat kutipan di bagian bawah), dibuat oleh NIST (Institut Standar dan Teknologi Nasional), adalah kumpulan data klasik untuk mempelajari pembelajaran mendalam dan juga pembelajaran mesin umum. Ini telah digunakan secara berlebihan oleh pembelajaran mesin dan komunitas pembelajaran mendalam. Namun, masih perlu ditelusuri dan menggunakan kumpulan data ini, terutama jika Anda akan menyentuh pembelajaran mendalam untuk pertama kalinya. Kumpulan data MNIST berisi 70.000 gambar skala abu-abu dari digit tulisan tangan di bawah 10 kategori (0 hingga 9). Kami akan menggunakan dua API populer untuk memuat dataset. Keras API dan Scikit-learn API. Keduanya menyediakan fungsi utilitas untuk memuat dataset MNIST dengan mudah. Kami juga akan membahas perbedaan antara kedua API untuk kumpulan data MNIST Memuat dataset MNIST menggunakan Keras APIfrom tensorflow.keras.datasets import mnist(train_images, train_labels), (test_images, test_labels) = mnist.load_data() Mendapatkan bentuk data print("Train images shape:", train_images.shape) _(Gambar oleh penulis)Kumpulan gambar kereta dan uji berbentuk tiga dimensi. Ini karena dataset MNIST berisi gambar grayscale, bukan gambar RGB. (60000, 28, 28) berarti rangkaian gambar kereta berisi 60.000 gambar berukuran 28 x 28 px. Dengan kata lain, ini adalah array yang berisi 60.000 matriks dengan nilai bilangan bulat 28 x 28 Label kereta dan uji adalah satu dimensi. Mereka berisi label koresponden untuk 10 kategori (0 hingga 9) import numpy as npnp.unique(test_labels)(Gambar oleh penulis) Mendapatkan tipe array print("Train images type:", type(train_images)) _(Gambar oleh penulis)Semuanya adalah array NumPy Mendapatkan tipe data print("Train images data type:", train_images.dtype) (Gambar oleh penulis)Tipe data nilai piksel adalah "uint8" yang menunjukkan bilangan bulat 8-bit Mendapatkan satu gambar dari kumpulan gambar kereta Satu gambar dari set kereta dapat diakses dengan menggunakan notasi berikut train_images[i] _Indeks ini berbasis 0. Untuk mendapatkan gambar ke-10, kita harus menggunakan i=9 train_images[9] _Bagian dari susunan (Gambar oleh penulis)train_images[9].shape Ini adalah matriks 28 x 28 dari gambar skala abu-abu Memvisualisasikan satu gambar Kami akan memvisualisasikan gambar ke-10 dari kumpulan data pelatihan [255, 255, 0] _0(Gambar oleh penulis)Gambar ke-10 dari set pelatihan mewakili angka 4. Mari kita lihat apakah itu benar dengan melihat label yang sesuai [255, 255, 0] _1Ini juga mengembalikan 4. Jadi, gambar tersebut sesuai dengan labelnya Memuat dataset MNIST menggunakan Scikit-learn API[255, 255, 0] _2Mendapatkan bentuk data [255, 255, 0] _3(Gambar oleh penulis)Nilai piksel dari citra tunggal disusun dalam vektor satu dimensi berukuran 784 yang sama dengan 28 x 28. Ini berarti kita masih bisa membentuk ulang vektor untuk mendapatkan format gambar yang diperlukan seperti di Keras API Mendapatkan tipe array [255, 255, 0] _4(Gambar oleh penulis)Mendapatkan tipe data [255, 255, 0] _5(Gambar oleh penulis)[255, 255, 0] _6(Gambar oleh penulis)Perbedaan antara kedua API untuk kumpulan data MNIST
[255, 255, 0] _7
Baca selanjutnya (Sangat disarankan)Pelajari cara membuat Tensor seperti array NumPy Mari Membuat Tensor seperti NumPy ArraysTensor hanyalah representasi matriks dari array multi-dimensisedang. com Pelajari dasar-dasar NumPy dan pembuatan array NumPy untuk Ilmu Data. Bagian 1Dasar-Dasar NumPy dan Pembuatan Arraymenuju ilmu data. com Iris array NumPy seperti pro Panduan Langkah-demi-Langkah Lengkap untuk Pengindeksan dan Pengirisan NumPy ArrayNumPy untuk Ilmu Data — Bagian 2rukshan pramoditha. sedang. com Baca selanjutnya (Opsional)Kompres gambar menggunakan PCA Kompresi Gambar Menggunakan Analisis Komponen Utama (PCA)Pengurangan Dimensi dalam Tindakanmenuju ilmu data. com Ini adalah akhir dari postingan hari ini Harap beri tahu saya jika Anda memiliki umpan balik Sementara itu, Anda dapat mendaftar keanggotaan untuk mendapatkan akses penuh ke setiap cerita yang saya tulis dan saya akan menerima sebagian dari biaya keanggotaan Anda Terima kasih banyak atas dukungan Anda yang berkelanjutan. Sampai jumpa di cerita selanjutnya. Selamat belajar untuk semuanya Pengutipan dataset digit MNIST Deng, L. , 2012. Database mnist gambar digit tulisan tangan untuk penelitian pembelajaran mesin. Majalah Pemrosesan Sinyal IEEE, 29(6), hlm. 141–142 Sumber dataset digit MNIST http. //yann. lecun. com/exdb/mnist/ Lisensi dataset angka MNIST Yann LeCun (Courant Institute, NYU) dan Corinna Cortes (Google Labs, New York) memegang hak cipta kumpulan data MNIST yang disediakan berdasarkan ketentuan Creative Commons Attribution-Share Alike 3. 0 lisensi Bagaimana cara mengubah gambar menjadi array 2D dengan Python?langkah-langkahnya adalah. . mengonversi gambar menjadi skala abu-abu (opencv) konversi skala abu-abu ke gambar biner (opencv) konversikan ke matriks 2D biner (scipy , pillow, numpy) Apakah array 2D gambar skala abu-abu?Gambar skala abu-abu dapat direpresentasikan sebagai larik dua dimensi , yang sumbu pertamanya sesuai dengan koordinat x gambar dan sumbu kedua sesuai dengan koordinat y. Larik berisi pada setiap pasangan koordinat (x,y) sebuah nilai, yang biasanya berupa float antara 0. 0 dan 1. 0, atau bilangan bulat antara 0 dan 255.
Bagaimana Anda mengubah array gambar menjadi skala abu-abu dengan Python?Gunakan numpy. dot() untuk mengonversi gambar dari RGB ke skala abu-abu
gambar . imread(fname) untuk mendapatkan array NumPy yang mewakili gambar bernama fname. Panggil numpy. titik(a, b) dengan a sebagai larik[. ,. 3] dan b sebagai [0. 2989, 0. 5870, 0. 1140] untuk mengubah larik hasil sebelumnya menjadi skala abu-abu.
Bagaimana cara mengonversi gambar menjadi matriks dengan Python?Konversi Gambar Menjadi Matriks dengan Python . Impor modul Gambar dari pustaka PILLOW Python sebagai PIL Impor modul array dari NUMPY library Python Kedua pustaka ini untuk ekstraksi Gambar dari file sumber dan menentukan dimensi matriks |