PCD - Part 1 34
PCD - Part 1 34
1
berbagai lingkungan yaitu sistem dapat mengenali objek dan
orang dengan cepat, menganalisis demografi khalayak,
memeriksa hasil produksi, melacak pergerakan, dan masih
banyak yang dapat di kembangkan dengan teknologi ini.
Visi Komputer merupakan bidang ilmiah antardisiplin
ilmu yang membahas bagaimana komputer dapat
memperoleh pemahaman tingkat tinggi dari gambar atau
video digital. Dari perspektif teknik, bidang ini berupaya
mengotomatiskan tugas-tugas yang dapat dilakukan oleh
sistem penglihatan manusia. Tugas penglihatan komputer
yang meliputi metode untuk memperoleh, memproses,
menganalisis dan memahami gambar digital, serta ekstraksi
data dimensi tinggi dari dunia nyata untuk menghasilkan
informasi numerik atau simbolis, misalnya, dalam bentuk
keputusan. Dalam konteks ini berarti transformasi gambar
secara visual membutuhkan suatu input atau masukan agar
menjadi deskripsi mengenai gambaran sekitar yang dapat
berinteraksi dengan proses pemikiran sistem dan
memperoleh tindakan yang sesuai. Pemahaman
mentransformasi gambar ini dapat dilihat sebagai
penguraian informasi simbolik dari data gambar
menggunakan model yang dibangun dengan bantuan disiplin
ilmu lainnya seperti geometri, fisika, statistik, dan teori
pembelajaran serta algoritma komputasi.
Sub-domain dari penglihatan komputer meliputi
rekonstruksi adegan, deteksi peristiwa, pelacakan video,
pengenalan objek, estimasi gambar 3D, pembelajaran,
pengindeksan, estimasi gerakan, dan pemulihan gambar.
Berikut ini adalah bagaimana cara komputer melihat citra
atau gambar.
2
Yang dilihat Manusia Yang dilihat computer
Gambar 1.1: Ilustrasi perbedaan citra yang dilihat manusia
dan computer
3
utuh diperlukan susunan potongan gambar yang sesuai. Dari
ilustrasi permainan puzzle itulah cara kerja yang dimiliki
computer vision saat menerjemahkan sebuah objek dan
memberi label pada objek tersebut.
Saat menyusun puzzle, otak manusia bekerja
memasangkan potongan gambar dengan pasangan yang
cocok untuk membentuk gambar yang sesuai agar tidak salah
dalam menempatkan gambar. Tugas ini dilakukan oleh
jaringan saraf atau instruksi algoritma dalam computer vision
yang akan memisahkan bagian gambar yang berbeda-beda,
mengidentifikasi bagian tepi gambar hingga kemudian
menggabungkannya menjadi satu persatu sampai
membentuk gambar yang utuh. Komputer tidak diberi
gambaran besar dari data yang dimasukkan, karena
komputer akan secara otomatis akan memberi label pada
gambar tersebut (misalnya: kucing, wajah, atau kertas).
Jadi, ketika manusia diberi ‗inputan‘ dengan jutaan
gambar tentang suatu objek misalnya objek kucing, maka
otomatis komputer akan mengarahkannya pada algoritma
yang memungkinkan untuk menganalisis warna dalam foto,
bentuk, jarak antar satu bentuk dengan yang lain, di mana
objek berbatasan satu dengan yang lain, dan seterusnya
sampai ia mampu mengidentifikasi profil apa saja yang
diperlukan untuk melabeli sebuah objek sebagai ―kucing‖.
4
hanya mampu menyimpan garis-garis linear dalam satu
bidang.
Gambar dalam bentuk dua dimensi yang terdiri dari
angka-angka akan dijumlahkan oleh komputer menjadi
nilai-nilai tertentu hingga membentuk sebuah kode warna,
seperti #FF0000 atau 255 untuk angka merah. Komputer
biasanya membaca warna sebagai serangkaian angka-
angka yang membentuk tiga warna dasar, yakni merah,
hijau, dan biru (red, green, blue atau biasa disingkat
dengan RGB). Setiap piksel memiliki tiga nilai tersebut
untuk disimpan di dalam sistem pada posisi tertentu. Hal
ini bertujuan untuk proses identifikasi warna agar
komputer bisa memberi penjelasan profil yang lebih detail
dari sebuah objek.
5
C. Pengolahan Citra Digital
Pengolahan Citra Digital (Digital Image Processing)
merupakan suatu bidang ilmu yang mempelajari tentang
bagaimana suatu citra dibentuk, diolah, dan dianalisis
sehingga menghasilkan informasi yang dapat dipahami oleh
manusia. Pengolahan Citra Digital adalah serangkaian usaha
untuk melakukan transformasi suatu citra atau gambar
menjadi citra lain dengan menggunakan teknik tertentu.
Citra adalah gambar dua dimensi yang bisa
ditampilkan pada layar komputer sebagai himpunan atau
diskrit nilai digital yang disebut pixel atau elemen gambar.
Secara matematis, citra merupakan fungsi kontinu dari
intensitas cahaya pada bidang dua dimensi. Berdasarkan
bentuk sinyal penyusunnya, citra dapat digolongkan menjadi
dua jenis yaitu citra analog dan citra digital. Citra analog
adalah citra yang dibentuk dari sinyal analog yang bersifat
kontinyu, sedangkan citra digital adalah citra yang dibentuk
dari sinyal digital yang bersifat diskrit.
Citra analog dihasilkan dari alat akuisisi citra analog,
contohnya adalah mata manusia dan kamera analog.
Gambaran yang tertangkap oleh mata manusia dan foto atau
film yang tertangkap oleh kamera analog merupakan contoh
dari citra analog. Citra tersebut memiliki kualitas dengan
tingkat kerincian atau resolusi yang sangat baik tetapi
memiliki kelemahan di antaranya adalah tidak dapat
disimpan, diolah, dan diduplikasi di dalam komputer.
Citra digital merupakan representasi dari fungsi
intensitas cahaya dalam bentuk diskrit pada bidang dua
dimensi. Citra tersusun oleh sekumpulan piksel (picture
element) yang memiliki koordinat (x,y) dan amplitudo f(x,y).
Koordinat (x,y) menunjukkan letak/posisi piksel dalam suatu
citra, sedangkan amplitudo f(x,y) menunjukkan nilai
intensitas warna citra.
Pada umumnya, berdasarkan kombinasi warna pada
piksel, citra dibagi menjadi tiga jenis yaitu citra RGB, citra
grayscale, dan citra biner. Citra pada Gambar 1 termasuk
6
dalam jenis citra RGB truecolor 24-bit. Citra tersebut tersusun
oleh tiga kanal warna yaitu kanal merah, kanal hijau, dan
kanal biru. Masing-masing kanal warna memiliki nilai
intensitas piksel dengan kedalaman bit sebesar 8-bit yang
artinya memiliki variasi warna sebanyak 2^8 derajat warna (0
s.d 255).
Pada kanal merah, warna merah sempurna
direpresentasikan dengan nilai 255 dan hitam sempurna
dengan nilai 0. Pada kanal hijau, warna hijau sempurna
direpresentasikan dengan nilai 255 dan hitam sempurna
dengan nilai 0. Begitu juga pada kanal biru, warna biru
sempurna direpresentasikan dengan nilai 255 dan hitam
sempurna dengan nilai 0. Representasi citra RGB dan masing-
masing kanal warna penyusunnya ditunjukkan pada Gambar
berikut.
7
kanal hijau, dan 0 pada kanal biru akan menghasilkan warna
kuning. Pada contoh lain, suatu piksel yang memiliki nilai
intensitas warna sebesar 255 pada kanal merah, 102 pada
kanal hijau, dan 0 pada kanal biru akan menghasilkan warna
orange. Banyaknya kombinasi warna piksel yang mungkin
pada citra RGB truecolor 24-bit adalah sebanyak 256 x 256 x
256 = 16.777.216. Representasi nilai intensitas piksel dengan
kombinasi warna R, G, dan B ditunjukkan pada Gambar
berikut.
8
di mana:
Grayscale adalah nilai intensitas citra grayscale,
R adalah nilai intensitas piksel pada kanal merah,
G adalah nilai intensitas piksel pada kanal hijau, dan
B adalah nilai intensitas piksel pada kanal biru.
9
Gambar 1.5: Citra hasil konversi RGB menjadi biner
10
Gambar 1.6: Ilustrasi Posisi Pixel
2. Kualitas citra
Di samping cacah intensitas kecerahan, jumlah
piksel yang digunakan untuk menyusun suatu citra
mempengaruhi kualitas citra. Istilah resolusi citra biasa
dinyatakan jumlah piksel pada arah lebar dan tinggi.
11
Resolusi piksel biasa dinyatakan dengan notasi m x n,
dengan m menyatakan tinggi dan n menyatakan lebar
dalam jumlah piksel.
12
b. Aplikasi Pengenalan pola
Pengenalan pola adalah disiplin ilmu yang
mengklasifikasikan object berdasarkan citra, berat atau
parameter-parameter yang telah ditentukan kedalam
sejumlah kategori atau kelas. Contoh aplikasi yang
menerapkan pengenalan pola adalah sebagai berikut:
c. Machine Vision
Pengenalan pola menjadi dasar dari sistem mesin
ini. Mesin ini menangkap sebuah atau sekelompok
object dengan kamera dan selanjutnya dianalisa untuk
di deskripsikan object atau benda tersebut
13
g. Face recognition
Pengenalan wajah adalah sebuah system yang
mengenali image wajah manusia yang digunakan
dalam otomatisasi dan security sebuah industry.
h. Biometrics
Biometric beguna untuk mengenali suatu pola
mahluk hidup yang d?ihubungkan dengan parameter ?
parameter psikologi maupun tingkah laku
i. Image Data Base Retrieval
Image Data Base Retrival Adalah sebuah sistem
untuk pengembalian citra data base. Sebuah sistem
pengambilan gambar yang digunakan untuk browsing,
mencari dan mengambil gambar dari database besar
dari gambar digital. Metode pengambilan gambar yang
paling tradisional dan umum menggunakan beberapa
metode penambahan metadata seperti teks, kata kunci,
judul, atau deskripsi ke gambar sehingga pengambilan
dapat dilakukan pada kata-kata anotasi.
j. Data mining
Adalah pengelompokan pola objek sejumlah data
yang terurut dengan harapan dapat memberikan
informasi yang berguna dan diinginkan.
k. Bioinformatics
Bioinformatik berhubungan erat dengan disiplin
kedokteran, pengenalan pola atau image dari suatu
image penyakit atau pola dalam sebuah analisa
diagnosa penyakit atau pengenalan pola pola yang
berhubungan dengan dunia biologi secara umum
14
1. Matlab
MATLAB (Matrix Laboratory) adalah sebuah
lingkungan komputasi numerikal dan bahasa
pemrograman komputer generasi keempat.
Dikembangkan oleh The MathWorks, MATLAB
memungkinkan pengguna untuk memanipulasi matriks,
penggunaan plot, fungsi dan data serta implementasi
algoritma. Matlab juga dapat membantu dalam pembuatan
antarmuka pengguna, dan dengan program dalam bahasa
lainnya. Meskipun hanya bernuansa numerik, sebuah
toolbox yang menggunakan mesin simbolik MuPAD,
memungkinkan akses terhadap kemampuan aljabar
komputer. Sebuah paket tambahan, Simulink,
menambahkan simulasi grafis multiranah dan Desain
Berdasar-Model dan dinamik.
2. Scilab
Scilab adalah paket komputasi numerik yang
dikembangkan sejak 1990 oleh para peneliti dari INRIA
dan ENPC, tepatnya sejak pendirian konsorsium Scilab
pada Mei 2003. Scilab adalah bahasa pemprograman
tingkat tinggi, sebagian besar kegunaannya didasarkan
pada seputar kemampuan menspesifikasi banyak
komputasi dengan sedikit baris kode. Scilab melakukan
hal ini dengan mengabstraksi tipe data primitif kepada
matriks ekuivalen menurut fungsinya.
Scilab memiliki kesamaan fungsionalitas dengan
MATLAB, tetapi tersedia untuk diunduh tanpa biaya
lisensi. Program ini memungkinkan pengguna untuk
melakukan komputasi pada cakupan luas operasi-operasi
matematika dari operasi yang relatif sederhana seperti
15
perkalian hingga kepada operasi tingkat tinggi seperti
korelasi dan aritmetika kompleks. Perangkat ini sering
dipakai untuk pemprosesan sinyal, analisis statistika,
perbaikan gambar, simulasi dinamika fluida, dan lain-lain.
3. GNU Octave
GNU Octave merupakan perangkat lunak yang
dapat didistribusikan kembali secara bebas. Pengguna
dapat mendistribusikan ulang atau memodifikasinya di
bawah ketentuan GNU General Public License (GPL) yang
diterbitkan oleh Free Software Foundation. GNU Octave
digunakan untuk analisis numerik, dan setara dengan
kemampuan perangkat lunak MATLAB. Dikembangkan
oleh John W. Eaton yang rilis pada tahun 1988. GNU
Octave adalah bahasa tingkat tinggi, terutama ditujukan
untuk komputasi numerik. Ini menyediakan antarmuka
baris perintah yang nyaman untuk memecahkan masalah
linier dan nonlinier secara numerik, dan untuk melakukan
eksperimen numerik lainnya menggunakan bahasa yang
sebagian besar kompatibel dengan Matlab.
4. Anaconda Navigator
Didalam buku ini penulis akan menggunakan tools
untuk mendukung proses belajar dan Latihan pengolahan
data menggunakan Jupyter Nootebook yang ada di
16
Anaconda Navigator. Oleh sesab itu maka penulis akan
menjabarkan lebih Panjang tentang penggunaan Anaconda
navigator serta Jupyter Nootebook. Berikut ini ulasannya.
Anaconda Navigator adalah antarmuka pengguna
grafis desktop (GUI) yang disertakan dalam distribusi
Anaconda® yang memungkinkan para pengguna
meluncurkan aplikasi dan mengelola paket, lingkungan,
dan saluran conda dengan mudah tanpa menggunakan
perintah baris perintah. Navigator dapat mencari paket di
Anaconda.org atau di Repositori Anaconda local yang
tersedia untuk Windows, macOS, dan Linux.
17
Gambar 1.14: Jendela Anaconda Navigator
18
Gambar 1.16: Learning Tab
19
Setel domain API Edisi Tim jika pengguna akan
menggunakan saluran dan paket dari server TE.
Setel domain Enterprise 4 Repository API jika
pengguna akan menggunakan saluran dan paket dari
server Repo 4.
Mengaktifkan atau menonaktifkan verifikasi SSL.
Secara opsional, tetapkan sertifikat untuk
memverifikasi koneksi SSL.
Mengalihkan opsi untuk memberikan informasi yang
tidak dapat diidentifikasi secara pribadi untuk
membantu meningkatkan produk.
Mengaktifkan atau menonaktifkan mode offline.
Menyembunyikan kotak dialog mode offline.
menyembunyikan kotak dialog Keluar saat keluar dari
program.
menyembunyikan kotak dialog Perbarui saat memulai
program.
menyembunyikan dialog Tutup aplikasi yang berjalan,
yang biasanya ditampilkan saat keluar dari program
jika masih ada aplikasi yang berjalan yang diluncurkan
dari Navigator.
mengubah tampilan Navigator dengan opsi Aktifkan
penskalaan DPI Tinggi. Opsi ini dapat berguna jika
Navigator tidak ditampilkan dengan benar pada
beberapa layar DPI tinggi.
Menampilkan pesan kesalahan startup aplikasi.
Menyetel jalur Edisi Komunitas PyCharm jika tidak
diinstal di lokasi default.
Menyetel jalur PyCharm Pro jika tidak diinstal di lokasi
default.
Menetapkan jalur Kode Visual Studio jika tidak diinstal
di lokasi default.
20
Gambar 1.18: Preference Anaconda cloud API domain
21
Gambar 1.20: Navigator Settings
22
Gambar 1.22: Conda Settings
5. Jupyter Notebook
Notebook Jupyter adalah open-source web application
yang memungkinkan para pengguna membuat dan
berbagi dokumen yang berisi kode langsung, persamaan,
visualisasi, dan teks naratif. Penggunaannya meliputi:
pembersihan dan transformasi data, simulasi numerik,
pemodelan statistik, visualisasi data, pembelajaran mesin,
dan banyak lagi.
23
Terdapat 3 tab utama pada Home Page, Jupyter
Notebook yaitu File, Running, Cluster, pada sisi kanan di
ujung terdapat tab Quit dan Logout. Dan tab Upload dan
New. Pada sisi dibawah terdapat folder-folder untuk
dipilih, yaitu Pilih item untuk melakukan tindakan pada
item tersebut, pada folder yang dipilih akan menempatkan
simpanan file yang akan dibuat.
24
Latihan:
Latihan ini merupakan pemahaman dalam Komposisi
gambar yang kompleks dan sistematik, untuk mengenal
perintah-perintah dasar di dalam memahami komposisi
gambar anda dapat mencoba untuk Latihan dengan code
berikut.
kw = dict(ha="center", va="center",
fontsize=fontsize, color="darkgrey")
for k, ax in ax_dict.items():
ax.text(0.5, 0.5, k,
transform=ax.transAxes, **kw)
[in] np.random.seed(19680801)
hist_data = np.random.randn(1_500)
fig = plt.figure(constrained_layout=True)
ax_array = fig.subplots(2, 2, squeeze=False)
identify_axes(
{(j, k): a for j, r in enumerate(ax_array)
for k, a in enumerate(r)},
)
[out]
25
[in] fig = plt.figure(constrained_layout=True)
ax_dict = fig.subplot_mosaic(
[
["bar", "plot"],
["hist", "image"],
],
)
ax_dict["bar"].bar(["a", "b", "c"], [5, 7, 9])
ax_dict["plot"].plot([1, 2, 3])
ax_dict["hist"].hist(hist_data)
ax_dict["image"].imshow([[1, 2], [2, 1]])
identify_axes(ax_dict)
[out]
[in] print(ax_dict)
26
[in] axd =
plt.figure(constrained_layout=True).subplot_mosai
c(
"""
ABD
CCD
"""
)
identify_axes(axd)
[out]
[in] axd =
plt.figure(constrained_layout=True).subplot_mosai
c(
"""
A.C
BBB
.D.
"""
)
identify_axes(axd)
[out]
[in] axd =
plt.figure(constrained_layout=True).subplot_mosai
c(
"""
aX
Xb
""",
empty_sentinel="X",
)
27
identify_axes(axd)
[out]
[in] axd =
plt.figure(constrained_layout=True).subplot_mosai
c(
"""αб
ℝ☢"""
)
identify_axes(axd)
[out]
[in] axd =
plt.figure(constrained_layout=True).subplot_mosai
c(
"""
.a.
bAc
.d.
""",
gridspec_kw={
# set the height ratios between the rows
"height_ratios": [1, 3.5, 1],
# set the width ratios between the
columns
"width_ratios": [1, 3.5, 1],
},
)
28
identify_axes(axd)
[out]
axd = fig.subplot_mosaic(
mosaic,
gridspec_kw={
"bottom": 0.05,
"top": 0.75,
"left": 0.6,
"right": 0.95,
"wspace": 0.5,
"hspace": 0.5,
},
)
identify_axes(axd)
29
[out]
[in] axd =
plt.figure(constrained_layout=True).subplot_mosai
c(
"AB", subplot_kw={"projection": "polar"}
)
identify_axes(axd)
[out]
[in] axd =
plt.figure(constrained_layout=True).subplot_mosai
c(
[
["main", "zoom"],
["main", "BLANK"],
],
empty_sentinel="BLANK",
gridspec_kw={"width_ratios": [2, 1]},
)
identify_axes(axd)
[out]
30
[in] inner = [
["inner A"],
["inner B"],
]
outer_nested_mosaic = [
["main", inner],
["bottom", "bottom"],
]
axd =
plt.figure(constrained_layout=True).subplot_mosai
c(
outer_nested_mosaic, empty_sentinel=None
)
identify_axes(axd, fontsize=36)
[out]
[out]
31
32
Soal:
Pilih salah satu jawaban yang benar dengan memberi tanda
pada lembar jawaban.
1. Bagaimana cara kerja Computer Vision?
a. Mengidentifikasi dan memproses objek
b. Menghitung dan memfilter teks
c. Menghitung Gambar
d. Menyimpan file Gambar
e. Membuat gambar 3D
33
5. Yang tidak termasuk dalam tipe warna adalah …
a. Biner
b. RGB
c. Grayscale
d. CMYK
e. Piksel
34