Để các ứng dụng vision nhỏ triển khai với giá thành rẻ nhất chúng ta sử máy tính nhúng Raspberry để triển khai dự án. Nhược điểm cấu hình yếu, tốc độ xử lý chậm nhưng vẫn đáp ứng các yêu cầu xử lý ảnh tối thiểu. Chúng ta sẽ tìm hiểu cách cái môi trường thư viện xử lý ảnh thông dụng OpenCV. Chúng ta sẽ cài OpenCV 4 cho Raspberry Pi 4.
Bước 1 : Mở rộng file hệ thống và dung lượng lưu trữ
gõ lệnh :
$ sudo raspi-config
chọn 6. Advanced options
Chọn A1 Expand Filesystem
Tiến hành reboot:
$ sudo reboot
sau đó kiểm tra bằng lệnh:
$ dh -f
Bước 2: Cài các thư viện liên quan
update các gói cài đặt sẵn:
$ sudo apt-get update && sudo apt-get upgrade
cài đặt tool CMake
$ sudo apt-get install build-essential cmake pkg-config
Tiếp theo, chúng ta cần cài đặt một số gói thư viện I / O hình ảnh cho phép chúng ta tải các định dạng tệp hình ảnh khác nhau từ ổ cứng. Ví dụ về các định dạng tệp JPEG, PNG, TIFF, v.v
$ sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng-dev
Tiếp theo các thư viện hỗ trợ đọc ghi video :
cài thư viên GTK và thư viện hỗ trợ đi kèm:
cài thư viện tối ưu ma trận ảnh:
$ sudo apt-get install libatlas-base-dev gfortran
Tiếp theo cài thư viện hỗ trợ HDF5 và GUI QT:
Tiếp theo cài hỗ trợ liên kết header file giữa OpenCV và Python 3
$ sudo apt-get install python3-dev
Bước 3: Tạo môi trường ảo Python và cài Numpy
cài theo các lệnh sau:
cài đặt môi trường ảo:
$ sudo pip install virtualenv virtualenvwrapper
mở file .bashrc
$ nano ~/.bashrc
và thêm các dòng sau vào cuối dòng:
bấm ctrl + x, y, enter để lưu và đóng file.
tiến hành reload lại file:
$ source ~/.bashrc
Tiếp theo tạo môi trường aỏ Python3
$ mkvirtualenv cv -p python3
ở đây bạn có 1 môi trường ảo có tên là “cv”
nếu bạn có Pi Camera
,cài đặt API PiCamera:
$ pip install “picamera[array]”
Bước 4: Sử dụng PIP cài đặt OpenCV
$ pip install opencv-contrib-python==4.1.0.25
Bước 5: Kiểm tra cài đặt OpenCV4 trên Raspberry 4.
mở terminal mới gõ các lệnh sau:
Bước 6: Viết chương trình chụp ảnh đơn giản
Viết đoạn chương trình chụp ảnh bằng ấn phím space,lưu tên ảnh theo thời gian chụp và thoát chương trình bằng phím ESC.
import cv2
import time
cam = cv2.VideoCapture(0)
cv2.namedWindow(“Camera”)
img_counter = 0
while True:
ret, frame = cam.read()
if not ret:
print(“failed to grab frame”)
break
cv2.imshow(“camera”, frame)
k = cv2.waitKey(1)
if k%256 == 27:
# ESC pressed
print(“Escape hit, closing…”)
break
elif k%256 == 32:
# SPACE pressed
timestr = time.strftime(“%Y%m%d-%H%M%S”)
img_name = “img_{}.JPEG”.format(timestr)
cv2.imwrite(img_name, frame)
print(“{} written!”.format(img_name))
img_counter += 1
cam.release()
cv2.destroyAllWindows()
bạn dùng IDE Thonny có sẵn trong Raspberry để chạy chương trình:
Chúc các bạn thành công.