Setelah memanfaatkan kekuatan cloud computing untuk pengolahan gambar yolo v3, karena raspberry pi zero w resource nya terbatas (baca dulu disini), maka kini saatnya melakukan upgrade ke seri raspberry pi yang lebih tinggi yaitu raspi 3B yang memang support komputasi 64bit. Jadi berdasarkan bantuan chatGPT disarankan untuk mencoba yolo v5 dimana berbasis engine TORCH sehingga pas dijalankan di arm 64 bit. Jadi jangan lupa instal versi raspbbery pi melalui imagernya yaitu OS lite legacy (bullseye) 64 bit tanpa desktop. Jadi jangan sampai salah install OS karena memang sangat terbatas resource raspi 3B yang quad core CPU 64bit 1.2 Ghz dengan ram 1GB saja.
Jika sudah sukses instalasi OS maka bisa lanjut menghubungkan ke wifi dan gunakan putty untuk ssh ke ip raspi kamu dan jalankan urutan perintah berikut :
1. Update raspi kamu
sudo apt-get update
sudo apt-get upgrade
2. Install python, pip dan git
sudo apt-get install python3
sudo apt-get install python3-pip
sudo apt-get install git
3. Install yolo v5 beserta script requirements-nya
git clone https://github.com/ultralytics/yolov5
cd yolov5
pip3 install -r requirements.txt
4. Install pytorch beserta turunannya
sudo apt-get install libopenblas-dev libblas-dev m4 cmake cython python3-yaml
wget https://github.com/nmilosev/pytorch-arm-builds/releases/download/v1.4/pytorch-1.4.0a0+6bfc3e0-cp37-cp37m-linux_armv7l.whl
pip3 install torch-1.4.0a0+6bfc3e0-cp37-cp37m-linux_armv7l.whl
Kemudian jika instalasi selesai maka dapat menjalankan script contoh detect.py dan usahakan ukuran gambarnya tidak besar.
python detect.py --source nolkm.jpg
Hasilnya sebagai berikut, sangat memuaskan :
Hasil diatas mungkin bisa berbeda jika ada dependencies atau library yang gagal instal atau bahkan salah instal. Saya sangat mengandalkan chatGPT setiap ada kesalahan yang saya temukan dan agak lupa apa saja error yg muncul itu. Dan yang paling penting adalah menggunakan CPU untuk pengolahan gambar karena raspberry pi tidak punya GPU sekelas Nvidia untuk menjalankan torch.
Salah satu error yang saya ingat adalah, karena OS saya tanpa desktop maka runtime QT untuk menampilkan gambar akan selalu dianggap error :
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/lampuku/.local/lib/python3.9/site-packages/cv2/qt/plugins" even though it was found. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Jadi hal ini disolusikan oleh chatGPT dengan melakukan instalasi manual "headless" sebagai berikut :
1. Install QT dan Xwindows environment. Ini mungkin tidak di perlukan jika kamu menggunakan desktop pada raspberry pi 3 kamu
sudo apt-get update
sudo apt-get install libgl1-mesa-glx libxcb-xinerama0
export QT_QPA_PLATFORM_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins # Adjust path as necessary
3. Jika diperlukan install open cv dengan headless environment
pip install opencv-python-headless
4. Lakukan pengecekan instalasi dengan script testing dibawah ini :
import torch
from PIL import Image
# Load YOLOv5 model
model = torch.hub.load('ultralytics/yolov5', 'yolov5s', pretrained=True)
# Set image path
image_path = 'path/to/your/image.jpg'
# Perform inference
results = model(image_path)
# Display results
results.show() # Displays the image with bounding boxes
# Optionally, save the results
results.save(save_dir='results/') # Saves results in the 'results' directory
Dan jika hasilnya muncul seperti dibawah ini berarti instalasi sudah benar
Fusing layers... YOLOv5s summary: 213 layers, 7225885 parameters, 0 gradients, 16.4 GFLOPs Adding AutoShape...
Selanjutnya kita akan mendeteksi orang pada kamera cctv pada tulisan berikutnya disini.