• Tidak ada hasil yang ditemukan

Aplikasi Pemrosesan Citra untuk Mengenali Permutation of Last Layer (PLL) pada Rubik s Cube

N/A
N/A
Protected

Academic year: 2022

Membagikan "Aplikasi Pemrosesan Citra untuk Mengenali Permutation of Last Layer (PLL) pada Rubik s Cube"

Copied!
9
0
0

Teks penuh

(1)

Aplikasi Pemrosesan Citra untuk Mengenali Permutation of Last Layer (PLL) pada Rubik’s

Cube

Muhammad Naufal Fakhrizal / 13518115 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jalan Ganesha 10 Bandung

mnaufalfakhrizal@gmail.com

Abstrak—Permutation of Last Layer (PLL) adalah tahap terakhir dalam menyelesaikan Rubik’s Cube dengan metode CFOP. Pada tahap ini, pemain perlu mengenali jenis PLL dan menjalankan algoritma yang sesuai. Pemain dapat menentukan jenis PLL dengan mengenali pola warna pada sisi-sisi Rubik’s Cube. Proses pengenalan ini dapat diotomatisasi menggunakan komputer. Pada makalah ini, digunakan pustaka OpenCV untuk membangun sebuah sistem yang mengambil sebuah foto Rubik’s Cube yang berada pada tahap PLL, kemudian menentukan jenis PLL dari Rubik’s Cube tersebut.

Kata kunci—CFOP, OpenCV, Pemrosesan Citra, PLL, Rubik’s Cube

I. PENDAHULUAN

Rubik’s Cube adalah permainan puzzle berbentuk kubus.

Kubus ini terdiri dari 26 kubus kecil bernama piece sehingga setiap sisi terbagi menjadi grid 3x3. Setiap sisi memiliki warna berbeda dapat diputar. Tujuan dari permain ini. adalah memutar sisi-sisi dari kubus sehingga setiap sisi memiliki warna yang seragam.

Makalah ini ditujukan untuk menunjukkan bagaimana mengplikasikan teknik pemrosesan citra untuk menentukan state dari Rubik’s Cube dan menentukan langkah selanjutnya untuk menyelesaikan Rubik’s Cube.

II. TEORI

A. Struktur dari Rubik’s Cube

Rubik’s Cube terdiri dari 26 kubus kecil yang disebut pieces. Terdapat tiga jenis piece.

1) Center Piece

Terletak di tengah-tengah sisi kubus. Terdapat 6 center piece pada Rubik’s Cube, dengan setiap piece memiliki 1 warna.

2) Edge Piece

Terletak di tengah rusuk kubus. Terdapat 12 edge piece pada Rubik’s Cube, dengan setiap piece memiliki 2 warna.

3) Corner Piece

Terletak di setiap titik sudut kubus. Terdapat 8 corner piece pada Rubik’s Cube, dengan setiap piece memiliki 3 warna.

B. Metode CFOP

Metode CFOP (Cross, F2L, OLL, PLL) adalah salah satu metode menyelesaikan Rubik’s Cube dengan cepat. Metode ini dipopulerkan oleh Jessica Fridrich. Metode ini terdiri dari empat tahap

1) Cross

Pada tahap ini, pemain menentukan layer pertama (biasanya sisi putih) dan memposisikan edge piece pada layer pertama sehingga pada posisi yang sebenarnya. Pada akhir tahap ini, pemain akan mendapatkan bentuk silang (cross) pada sisi putih, yang ditempatkan di sisi bawah kubus.

(2)

2) First 2 Layer (F2L)

Pada tahap ini, pemain menyelesaikan dua layer pertama dari Rubik’s Cube. Pada akhir tahap ini, pemain akan mendapatkan sisi putih sudah berwarna seragam dan keempat sisi yang bersebelahan dengan sisi putih hampir berwarna seragam kecuali piece pada layer terakhir (berseberangan dengan layer/sisi putih)

3) Orient Last Layer (OLL)

Pada tahap ini, pemain menyusun piece pada layer terakhir (biasanya sisi kuning) sehingga sisi teratas berwarna seragam (kuning).

4) Permute Last Layer (PLL)

Pada tahap ini, pemain menyusun piece pada layer terakhir sehingga warna sisi-sisi samping pada layer terakhir menjadi seragam. Terdapat 22 kasus yang mungkin terjadi (dengan satu kasus adalah kubus sudah terselesaikan), dan setiap kasus diberi label huruf seperti permutasi A, permutasi Gb, dan sebagainya.

III. METODE

Tahap-tahap berikut dilakukan dengan asumsi ketiga tahap sebelumnya (Cross, F2L, dan OLL) sudah diselesaikan

A. Citra input

Citra yang digunakan sebagai input adalah citra Rubik’s Cube yang diletakkan pada sebuah permukaan berwarna polos.

Sudut pandang citra dibuat sedemikian rupa sehingga tiga sisi dari Rubik’s Cube terlihat, yaitu satu sisi atas dan dua sisi samping. Sudut pertemuan antara ketiga sisi berada di tengah citra. Ukuran citra adalah 512x512 piksel.

(3)

B. Konversi Citra ke Domain Grayscale

Untuk keperluan deteksi tepi, citra dikonversi ke dalam domain grayscale. Hal ini dapat dilakukan dengan OpenCV menggunakan fungsi cv.cvtColor(img, cv.BGR2GRAY). Citra berwarna tetap disimpan untuk digunakan pada tahap selanjutnya

C. Pengenalan Tepi

Deteksi tepi dilakukan untuk menemukan tepi-tepi dari objek Rubik’s Cube. Pada eksperimen ini, Deteksi tepi dilakukan menggunakan detektor Canny.

D. Penentuan Sisi Samping Rubik’s Cube

Setelah itu, daerah-daerah pada citra yang menjadi sisi samping dari Rubik’s Cube perlu ditentukan. Sisi atas tidak perlu dideteksi karena diasumsi sudah memiliki warna yang seragam setelah melalui tahap sebelumnya (OLL). Untuk menentukan daerah yang menjadi sisi samping dari Rubik’s Cube, titik-titik sudut dari kedua sisi perlu ditentukan. Secara keseluruhan, terdapat enam titik sudut yang perlu ditentukan.

Pertama-tama, citra biner hasil deteksi tepi perlu dikonversi menjadi garis lurus. Hal ini dilakukan menggunakan transformasi Hough. Pada OpenCV, hal ini dilakukan dengan memanggil fungsi cv.HoughLinesP.

Hasil transformasi Hough masih mengandung garis-garis yang berada di dalam sisi samping Rubik’s Cube. Sementara itu, hanya garis-garis yang berada pada tepi yang dibutuhkan untuk menentukan titik-titik sudut yang diperlukan. Dengan membuang garis yang tidak perlu, didapatkan enam garis, dengan tiga garis pada tiap sisi.

(4)

Keenam titik sudut dapat ditentukan dengan menentukan titik persilangan antara dua garis yang bersebelahan.

E. Ekstraksi Sisi Samping Rubik’s Cube

Setelah mendapatkan lokasi titik-titik sudut dari setiap sisi pada citra, dapat dilakukan image warping pada setiap sisi untuk mendapatkan grid 3x3 dari setiap sisi. Karena distorsi sisi pada citra disebabkan oleh perspektif kamera, digunakan fungsi cv.warpPerspective untuk mendapatkan citra kedua sisi dari tampak depan. Matriks tranformasi diperoleh dengan fungsi cv.getPerspectiveTransform yang menentukan matriks transformasi yang mentransformasi posisi titik sudut sisi pada citra asal menuju titik sudut citra tujuan. Hasil image warping adalah dua citra untuk setiap sisi berukuran 90x90 piksel.

Dengan citra hasil warping, akan lebih mudah untuk menentukan warna setiap piece pada setiap sisi.

F. Pelabelan warna

Setelah itu, setiap piece pada kedua perlu diberi label warna. Pertama-tama, Sebuah citra sisi dibagi menjadi grid 3x3, dengan setiap sel pada grid mewakili piece pada sisi tersebut. Nilai warna dari setiap piece ditentukan dengan merata-ratakan nilai piksel pada daerah pusat sel yang terkait.

Nilai rata-rata setiap sel disimpan pada sebuah citra 3x3.

Terdapat tujuh label warna untuk keperluan eksperimen ini, enam di antaranya berkorespondensi dengan warna pada sisi Rubik’s Cube.

 Putih (w)

 Kuning (y)

 Merah (r)

 Jingga (o)

 Biru (b)

 Hijau (g)

 Tidak diketahui (u)

kedua citra sampel warna di atas dikonversi ke domain HSV, kemudian diberi label dengan menentukan range dari ketiga channel yang berkorespondensi dengan setiap label yang tepat. Kedua citra tersebut akan diberi label sebagai berikut.

(5)

G. Mengenali pola dan pengambilan keputusan

Dari setiap sisi, tiga label teratas (warna piece pada layer teratas) diambil untuk dikenali polanya. Pola yang dimaksud adalah hubungan antara warna dari ketiga piece. Hubungan antara dua warna adalah apabila kedua warna merupakan warna sisi yang sama, sisi yang bersebelahan, atau sisi yang berseberangan. Pada umumnya, susunan warna pada Rubik’s Cube adalah sebagai berikut:

 Sisi putih berseberangan dengan sisi kuning.

 Sisi merah berseberangan dengan sisi jingga.

 Sisi biru berseberangan dengan sisi hijau.

Terdapat sepuluh pola yang mungkin muncul:

Dua piece yang bersebelahan memiliki warna bersebeangan, dengan piece ketiga memiliki warna bersebelahan dengan warna kedua piece (2 varian)

Dua piece yang bersebelahan memiliki warna sama, dengan piece ketiga memiliki warna bersebelahan dengan warna kedua piece (2 varian)

Dua piece yang bersebelahan memiliki warna sama, dengan piece ketiga memiliki warna berseberangan dengan warna kedua piece (2 varian)

Dua piece berwarna sama mengapit piece dengan warna berseberangan

Dua piece berwarna sama mengapit piece dengan warna bersebelahan

Dua piece dengan warna berseberangan mengapit piece dengan warna bersebelahan

Ketiga piece berwarna sama

Diagram yang mengasosiasikan setiap pola dengan sebuah angka adalah sebagai berikut:

Pola dari keempat sisi samping pada Rubik’s cube menentukan jenis permutasi yang Sebagai contoh, pada permutasi H, setiap edge piece berada pada sisi yang berseberangan. Pola yang terlihat adalah “dua piece berwarna sama mengapit piece dengan warna berseberangan” pada keempat sisi samping.

Beberapa jenis permutasi dapat dikenali dengan melihat pola dari dua sisi saja. Tahap ini mengenali pola dari kedua sisi, kemudian menentukan jenis PLL yang mungkin dari kedua pola tersebut.

Pada hasil pelabelan sebelumnya, sisi kiri memiliki label warna merah, hijau, dan jingga, sementara sisi kanan memiliki label warna biru, biru, dan hijau. pola pada sisi kiri adalah dua piece dengan warna berseberangan mengapit piece dengan warna bersebelahan (pola 9 pada diagram). Pola pada sisi

(6)

warna sama, dengan piece ketiga memiliki warna berseberangan dengan warna kedua piece (pola 6 pada diagram). Hal ini berkoresponden dengan permutasi Y yang menukar sepasang edge piece yang bersebelahan dan sepasang corner piece yang berseberangan. Untuk menyelesaikan Rubik’s Cube ini, pemain cukup menjalankan serangkaian gerakan (algoritma) untuk permutasi Y sehingga setiap piece pada layer terakhir berada pada posisi yang seharusnya.

IV. HASIL EKSPERIMEN

Eksperimen menggunakan pustaka OpenCV versi 4.5.5 dan Python versi 3.10.4.

Citra Ground

Truth Prediksi Solved Solved

T Perm T Perm

Jb Perm Jb Perm

Na Perm Na Perm

Ua Perm Ua Perm

(7)

F Perm F

Y Perm Y Perm

Y Perm Fail

V. ANALISIS

Secara umum, sistem dapat mengekstrak sisi samping dari Rubik’s Cube, melabeli warna, dan menentukan permutasi dengan baik jika latar, dan pencahayaan baik. Terdapat kendala ketika citra input memiliki latar dengan tekstur seperti pada hasil eksperimen terakhir. Sistem gagal mendeteksi tepi pada sisi samping kubus sehingga tidak dapat menentukan titik-titik sudut pada sisi samping.

(8)

VI. KESIMPULAN

Pemrosesan citra dapat digunakan untuk menentukan state dari Rubik’s Cube, seperti menentukan permutasi dari layer terakhir (PLL). Pengenalan state dari Rubik’s Cube yang terotomatisasi dapat ditindaklanjuti dengan membangun sebuah robot yang dapat menyelesaikan Rubik’s Cube atau puzzle yang serupa.

UCAPAN TERIMA KASIH

Penulis memenjatkan puji syukur kepada Allah SWT yang seatas izin-Nya, penulisan makalah ini dapat terlaksana dengan baik. Ucapan terimakasih penulis sampaikan kepada Bapak Dr.

Rinaldi Munir M.T. sebagai dosen pengampu mata kuliah IF 4073 Interpretasi dan Pengolahan Citra Semester II Tahun 2021/2022 atas semua ilmu dan pengetahuan yang telah diberikan dalam mata kuliah ini. Selain itu, ucapan terima kasih juga disampaikan kepada pihak-pihak lain yang membantu kelancaran penulisan makalah ini.

REFERENCES

[1] Munir, Rinaldi. (2022). Kuliah Interpretasi dan Pengolahan Citra:

Kontur. Bandung.

[2] Munir, Rinaldi. (2022). Kuliah Interpretasi dan Pengolahan Citra:

Pendeteksian Tepi. Bandung.

[3] Klise, Andy. Andy Klise’s Rubik’s Cube Guides, kungoomanchu.com.

2017. [Online]. Available: htps://kungfoomanchu.com [Accessed: 25- May-2022]

[4] Daniel Duberg dan Jakob Tidestrom. (2015). Comparison of Rubik’s Cube Solving Methods Made for Humans. Stockholm: KTH Royal Institute of Technology.

PERNYATAAN

Dengan ini saya menyatakan bahwa makalah yang saya tulis ini adalah tulisan saya sendiri, bukan saduran, atau terjemahan dari makalah orang lain, dan bukan plagiasi.

Bandung, 25 Mei 2022

Muhammad Naufal Fakhrizal / 13518115

(9)

Gambar

Diagram yang mengasosiasikan setiap pola dengan sebuah angka adalah sebagai berikut:

Referensi

Dokumen terkait

bahwa berdasarkan pertimbangan sebagaimana dimaksud dalam huruf a, perlu menetapkan Peraturan Daerah tentang Perubahan Atas Peraturan Daerah Kabupaten Banjarnegara

19 RANCANG BANGUN APLIKASI JOINT SPORTS BERBASIS ANDROID ILFIYANTRI INTYAS judul lebih diperjelas lagi masalahnya apa, tujuannya apa, metodenya apa 20 RANCANG BANGUN

sesungguhnya jarang terjadi kecuali perusahaan mengalami ke pailitan. Kemampuan operasi perusahaan dicerminkan dari aset-aset yang dimiliki oleh perusahaan. Adapun

Sedangkan kelompok yang mengalami kenaikan indeks adalah : kelompok makanan jadi, minuman, rokok, dan tembakau sebesar 3,66 persen; kelompok perumahan, air, listrik,

Laporan Tugas akhir yang bertemakan Perancangan Komunkasi Visual Publikasi Pernikahan Batak dari Masa ke Masa, dibuat dengan tujuan melestarikan budaya Indonesia kepada

Nilai moral yang terkandung dalam sistem keluarga Ie memiliki nilai yang universal sebagai pengikatnya. Sebagaimana dalam keluarga pada umumnya baik keluarga kecil

Opencart juga menyediakan berbagai macam extension, maksud dari extension di sini adalah sebuah plug-in atau add-on yang dapat kita tambahkan di toko online

Actived seismic device bekerja pada saat gempa terjadi dengan cara menerima data getaran dari sensor yang dipasang disekeliling struktur, melalui komputer data tersebut