Membuat sistem pengenal gambar dengan PHP melibatkan beberapa langkah, termasuk pengolahan gambar, ekstraksi fitur, dan penggunaan model pembelajaran mesin. Di sini, saya akan memberikan gambaran umum tentang bagaimana Anda dapat membangun sistem pengenal gambar sederhana menggunakan PHP, tetapi perlu dicatat bahwa PHP bukanlah bahasa yang paling umum digunakan untuk tugas-tugas pembelajaran mesin. Biasanya, Python lebih umum digunakan untuk ini karena banyaknya pustaka yang tersedia.
Namun, Anda masih bisa menggunakan PHP untuk mengintegrasikan model yang sudah dilatih. Berikut adalah langkah-langkah umum yang dapat Anda ikuti:
Langkah 1: Persiapkan Lingkungan
- Instal PHP: Pastikan Anda memiliki server web yang menjalankan PHP (seperti Apache atau Nginx).
- Instal Ekstensi PHP untuk Gambar: Pastikan Anda memiliki ekstensi GD atau Imagick untuk memproses gambar.
Langkah 2: Siapkan Model Pembelajaran Mesin
Anda perlu melatih model pengenalan gambar menggunakan bahasa pemrograman seperti Python dengan pustaka seperti TensorFlow atau PyTorch, kemudian ekspor model tersebut untuk digunakan dalam aplikasi PHP. Anda dapat menyimpan model dalam format yang dapat diakses oleh PHP, seperti ONNX atau TensorFlow SavedModel.
Langkah 3: Buat Antarmuka Pengguna
Buat antarmuka pengguna untuk mengunggah gambar. Berikut adalah contoh sederhana menggunakan HTML dan PHP:
1<!DOCTYPE html>
2<html lang="en">
3<head>
4 <meta charset="UTF-8">
5 <meta name="viewport" content="width=device-width, initial-scale=1.0">
6 <title>Pengenalan Gambar</title>
7</head>
8<body>
9 <h1>Unggah Gambar untuk Pengenalan</h1>
10 <form action="process_image.php" method="post" enctype="multipart/form-data">
11 <input type="file" name="image" accept="image/*" required>
12 <input type="submit" value="Unggah">
13 </form>
14</body>
15</html>Langkah 4: Proses Gambar
Buat file process_image.php untuk memproses gambar yang diunggah:
1<?php
2if ($_SERVER['REQUEST_METHOD'] == 'POST') {
3 if (isset($_FILES['image']) && $_FILES['image']['error'] == UPLOAD_ERR_OK) {
4 $fileTmpPath = $_FILES['image']['tmp_name'];
5 $fileName = $_FILES['image']['name'];
6 $fileSize = $_FILES['image']['size'];
7 $fileType = $_FILES['image']['type'];
8
9 // Validasi file gambar
10 $allowedfileExtensions = array('jpg', 'jpeg', 'png', 'gif');
11 $fileExtension = pathinfo($fileName, PATHINFO_EXTENSION);
12
13 if (in_array($fileExtension, $allowedfileExtensions)) {
14 // Pindahkan file ke lokasi yang diinginkan
15 $uploadFileDir = './uploaded_images/';
16 $dest_path = $uploadFileDir . $fileName;
17
18 if(move_uploaded_file($fileTmpPath, $dest_path)) {
19 echo "File berhasil diunggah. <br>";
20
21 // Panggil model untuk melakukan pengenalan gambar
22 // Contoh: menggunakan Python script
23 $command = escapeshellcmd("python3 recognize_image.py " . $dest_path);
24 $output = shell_exec($command);
25 echo "Hasil Pengenalan: " . $output;
26 } else {
27 echo "Terjadi kesalahan saat mengunggah file.";
28 }
29 } else {
30 echo "Ekstensi file tidak valid. Hanya JPG, JPEG, PNG, GIF yang diperbolehkan.";
31 }
32 } else {
33 echo "Tidak ada file yang diunggah.";
34 }
35}
36?>Langkah 5: Skrip Pengenalan Gambar
Buat skrip Python (recognize_image.py) yang akan memuat model dan melakukan prediksi:
1import sys
2import cv2
3import numpy as np
4from keras.models import load_model
5
6# Load model
7model = load_model('path_to_your_model.h5')
8
9# Ambil path gambar dari argumen
10image_path = sys.argv[1]
11
12# Proses gambar
13image = cv2.imread(image_path)
14image = cv2.resize(image, (224, 224)) # Sesuaikan ukuran sesuai model
15image = np.expand_dims(image, axis=0) / 255.0 # Normalisasi
16
17# Prediksi
18predictions = model.predict(image)
19predicted_class = np.argmax(predictions, axis=1)
20
21# Output hasil
22print(predicted_class[0])Catatan