Giới thiệu dự án
Trong kỷ nguyên Internet of Things (IoT) và Đô thị thông minh (Smart City), các hệ thống an ninh gia đình – đặc biệt là chuông cửa thông minh (Smart Doorbell) – đang chứng kiến sự tăng trưởng vượt bậc với tốc độ tăng trưởng kép hàng năm (CAGR) toàn cầu đạt trên 15%. Tuy nhiên, các thiết bị giám sát đầu cuối (Edge IoT devices) thường xuyên phải đối mặt với bài toán nghẽn băng thông mạng truyền tải không dây (Wi-Fi/3G/4G), dung lượng bộ nhớ giới hạn và năng lượng tiêu thụ khắt khe.
Đồ án tốt nghiệp "Ứng dụng thuật toán nén ảnh BPG vào trong chuông cửa IoT" do sinh viên Nguyễn Phạm Thanh Hoàng (MSSV: 13119085), ngành Công nghệ Kỹ thuật Máy tính, Khoa Đào tạo Chất lượng cao – Trường Đại học Sư phạm Kỹ thuật TP.HCM thực hiện dưới sự hướng dẫn của PGS. Võ Minh Huân, tập trung giải quyết bài toán cốt lõi: Tối ưu hóa dung lượng truyền tải hình ảnh độ nét cao qua mạng Internet mà vẫn giữ nguyên độ trung thực của dữ liệu thị giác.
+-----------------------------------------------------------------------------------+
| PROBLEM STATEMENT |
| Camera Full HD -> Dung lượng ảnh JPEG lớn (1-3MB) -> Nghẽn băng thông truyền tải |
| -> Thời gian trễ gửi cảnh báo cao -> Trải nghiệm người dùng Smart Home giảm sút |
+-----------------------------------------------------------------------------------+
|
v
+-----------------------------------------------------------------------------------+
| SOLUTION APPROACH |
| Edge IoT (Raspberry Pi Zero W + Sony IMX219) + Bộ mã hóa BPG (dựa trên HEVC) |
| -> Giảm >50% dung lượng tệp -> Đẩy dữ liệu qua Gmail REST API -> Android Client |
+-----------------------------------------------------------------------------------+
Mục tiêu của đề tài
- Thiết kế phần cứng hệ thống nhúng: Xây dựng mạch điều khiển chuông cửa thông minh dựa trên KIT máy tính nhúng Raspberry Pi Zero W kết hợp module camera 8MP Sony IMX219 và hệ thống cảnh báo ngoại vi.
- Nghiên cứu và triển khai chuẩn nén ảnh BPG: Tích hợp thư viện mã hóa
libbpg lên môi trường Linux nhúng nhằm chuyển đổi ảnh chụp độ phân giải cao thành tệp định dạng BPG với tỷ lệ nén vượt trội so với JPEG tiêu chuẩn.
- Phát triển giao thức truyền dữ liệu đám mây: Tích hợp Google Gmail REST API để tự động gửi thông báo thời gian thực kèm tệp ảnh nén đến hộp thư người dùng khi có sự kiện bấm chuông.
- Xây dựng ứng dụng di động Android: Phát triển ứng dụng "Smart Doorbell" trên nền tảng Android hỗ trợ cơ chế giải mã (decode) và hiển thị định dạng BPG, quản lý lịch sử khách bấm chuông.
Phạm vi và Giới hạn đề tài
- Phạm vi: Thu nhận ảnh tĩnh khi có tương tác nút nhấn, nén ảnh tại biên (Edge Computing), truyền dữ liệu qua giao thức Internet và hiển thị trên ứng dụng Android di động.
- Giới hạn: Hệ thống tập trung tối ưu hóa thuật toán nén ảnh tĩnh (Intra-frame coding), chưa tích hợp nén luồng video động thời gian thực (Live Streaming); việc giải mã trên hệ điều hành Android đòi hỏi module tích hợp thư viện giải mã riêng do Android chưa hỗ trợ định dạng tệp
.bpg theo dạng Native Image Engine.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Phần lớn các thiết bị IoT Camera và Smart Doorbell truyền thống sử dụng định dạng JPEG (ra đời từ năm 1992) hoặc PNG để lưu trữ và truyền nhận hình ảnh. Tuy nhiên, các định dạng này bộc lộ nhiều hạn chế nghiêm trọng về hiệu quả nén và tối ưu tài nguyên mạng:
| Tiêu chí so sánh |
JPEG (Joint Photographic Experts Group) |
PNG (Portable Network Graphics) |
WebP (Google) |
BPG (Better Portable Graphics) |
| Loại nén |
Lossy (Chủ yếu) |
Lossless |
Lossy & Lossless |
Lossy & Lossless |
| Công nghệ nền tảng |
Biến đổi DCT 8x8, Huffman Coding |
Deflate (LZ77 + Huffman) |
VP8 Intra-frame |
HEVC / H.265 Intra-frame |
| Kích thước khối biến đổi |
Cố định 8×8 pixel |
Không áp dụng |
4×4 đến 16×16 pixel |
Biến thiên từ 4×4 đến 32×32 (DCT/DST) |
| Mã hóa Entropy |
Huffman Coding |
Huffman Coding |
Arithmetic / Huffman |
CABAC (Context-Adaptive Binary Arithmetic) |
| Kênh Alpha (Trong suốt) |
Không hỗ trợ |
Hỗ trợ 8-bit / 16-bit |
Hỗ trợ 8-bit |
Hỗ trợ đầy đủ (8 đến 14-bit) |
| Không gian màu |
YCbCr (8-bit) |
RGB, Grayscale, Indexed |
YUV 4:2:0 |
YCbCr, RGB, YCgCo, Grayscale (8-14 bit) |
| Tỷ lệ giảm kích thước |
Mức cơ sở (Baseline) |
Kém hơn JPEG với ảnh thực |
Giảm ~25-34% so với JPEG |
Giảm >50% so với JPEG ở cùng chất lượng |
Yêu cầu hệ thống theo mô hình MoSCoW
- Must have (Bắt buộc): Chụp ảnh độ nét cao qua camera Sony IMX219, nén định dạng BPG bằng
bpgenc, gửi thông báo qua Gmail API, giải mã và hiển thị ảnh trên Android.
- Should have (Nên có): Đèn LED hiển thị trạng thái đa chức năng (chờ, đang chụp, đang nén, đang gửi), chuông báo âm thanh tức thời (Buzzer), lưu trữ tạm thời tại bộ nhớ cục bộ.
- Could have (Có thể có): Cơ chế xác thực OAuth 2.0 an toàn trên Android, chế độ xem trước ảnh theo danh sách thời gian thực.
- Won't have (Chưa thực hiện đợt này): Truyền video trực tiếp RTSP/WebRTC, tích hợp cảm biến chuyển động PIR hồng ngoại tự động kích hoạt.
Thiết kế hệ thống
Kiến trúc giải pháp được phân tầng rõ ràng từ tầng thiết bị phần cứng (Edge Hardware), tầng dịch vụ đám mây (Cloud Middleware) đến tầng ứng dụng người dùng cuối (Mobile Client):
+-----------------------------------------------------------------------------+
| EDGE HARDWARE LAYER |
| [Push Button] ---> [GPIO Trigger] |
| | |
| v |
| [Camera Module V2] -> [Capture Raw/JPEG] -> [libbpg Engine] -> [bpg file] |
| (Sony IMX219 8MP) |
| | |
| +---> [LED Status] & [Buzzer Audio] |
+-----------------------------------------------------------------------------+
| (TLS/HTTPS Encrypted Network)
v
+-----------------------------------------------------------------------------+
| CLOUD SERVICES LAYER |
| Google Cloud Console / Gmail REST API |
| (OAuth 2.0 Authentication, MIME Attachment Storage) |
+-----------------------------------------------------------------------------+
| (JSON REST Response / Base64 Payload)
v
+-----------------------------------------------------------------------------+
| APPLICATION CLIENT LAYER |
| [Android Smart Doorbell App] |
| -> Fetch Messages List via Gmail API |
| -> Extract BPG Binary Attachment |
| -> libbpg Decoder (C++/JNI or JS Engine) -> Render UI Bitmap |
+-----------------------------------------------------------------------------+
Technology Stack và Đặc tả kỹ thuật
- Khối điều khiển trung tâm: Máy tính nhúng Raspberry Pi Zero W (SoC Broadcom BCM2835 Single-core 1.0 GHz ARM1176JZF-S, RAM 512MB LPDDR2, Wi-Fi 802.11 b/g/n, Bluetooth 4.1 BLE, 40 chân GPIO, cổng kết nối máy ảnh MIPI CSI-2).
- Khối cảm biến thu nhận hình ảnh: Raspberry Pi Camera Module V2 (Cảm biến Sony IMX219PQ CMOS 8.08 Megapixel, kích thước cảm biến 1/4.0", hỗ trợ ảnh tĩnh lên tới 3280 × 2464 pixel, video 1080p30).
- Môi trường nhúng & Ngôn ngữ: Hệ điều hành Raspbian Linux Buster Lite, ngôn ngữ Python 3.7 điều khiển phần cứng và quy trình nén.
- Thư viện nén ảnh BPG:
libbpg v0.9.8 (biên dịch mã nguồn mở từ tác giả Fabrice Bellard, kết hợp các module tối ưu từ FFmpeg và HEVC HM reference software).
- Phần mềm thiết kế mạch in: Altium Designer 19 thiết kế mạch mở rộng nguồn, nút nhấn chống rung phần cứng và giao tiếp LED/Buzzer.
- Tầng Cloud & API: Google Gmail REST API v1 qua giao thức HTTPS, xác thực bằng Token OAuth 2.0.
- Tầng di động: Hệ điều hành Android SDK 28 (Android 9.0 Pie) trở lên.
+-----------------------------------------------------------------------------+
| GMAIL REST API INTEGRATION |
| |
| 1. Endpoint Gửi Mail: |
| POST https://gmail.googleapis.com/upload/gmail/v1/users/me/messages/send |
| Headers: Authorization: Bearer <ACCESS_TOKEN> |
| Content-Type: message/rfc822 |
| Payload: MIME multipart (Plaintext Notification + Image.bpg Attachment) |
| |
| 2. Endpoint Lấy Danh Sách Tin Nhắn: |
| GET https://gmail.googleapis.com/gmail/v1/users/me/messages?q=SmartDoor |
| |
| 3. Endpoint Tải Tệp Đính Kèm: |
| GET https://gmail.googleapis.com/gmail/v1/users/me/messages/{id}/ |
| attachments/{attach_id} |
+-----------------------------------------------------------------------------+
Methodology
Quy trình nghiên cứu và phát triển được xây dựng theo mô hình lặp tiếp cận từng giai đoạn (Iterative Prototyping Approach):
- Giai đoạn 1 (Tuần 1 - Tuần 3): Khảo sát lý thuyết xử lý ảnh, cấu trúc nén HEVC/H.265 và thuật toán BPG; thiết lập môi trường Cross-compilation trên Raspberry Pi.
- Giai đoạn 2 (Tuần 4 - Tuần 7): Thiết kế sơ đồ nguyên lý (Schematic) và layout mạch in (PCB) trên Altium Designer; lắp ráp và kiểm thử khối phần cứng ngoại vi (Nút bấm, LED trạng thái, Camera CSI).
- Giai đoạn 3 (Tuần 8 - Tuần 11): Lập trình kịch bản nhúng trên Python; tích hợp
bpgenc để tự động mã hóa ảnh chụp; kết nối Google Cloud Platform (GCP) để định cấu hình Gmail API Client.
- Giai đoạn 4 (Tuần 12 - Tuần 15): Phát triển ứng dụng Android Client; tích hợp bộ giải mã BPG sang Bitmap Android; tối ưu bộ nhớ đệm hiển thị danh sách ảnh.
- Giai đoạn 5 (Tuần 16): Đo lường số liệu thực nghiệm (dung lượng file, thời gian nén, chất lượng ảnh trực quan), đóng gói sản phẩm và hoàn thiện báo cáo tốt nghiệp.
Implementation và kết quả
Development process
Quá trình hiện thực hóa giải pháp tập trung vào 2 khâu cốt lõi: Quy trình tự động hóa tại bộ điều khiển trung tâm và Thuật toán mã hóa BPG.
#!/usr/bin/env python3
"""
Module: smart_doorbell.py
Chức năng: Thu nhận sự kiện bấm chuông, chụp ảnh, gọi mã hóa BPG và gửi qua Gmail API.
"""
import os
import time
import subprocess
import RPi.GPIO as GPIO
from picamera import PiCamera
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
from email import encoders
BUTTON_PIN = 17
LED_STATUS_PIN = 27
BUZZER_PIN = 22
GPIO.setmode(GPIO.BCM)
GPIO.setup(BUTTON_PIN, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(LED_STATUS_PIN, GPIO.OUT)
GPIO.setup(BUZZER_PIN, GPIO.OUT)
def compress_bpg(input_jpg, output_bpg, qp=28):
"""
Thực thi mã hóa BPG thông qua công cụ dòng lệnh bpgenc
Tham số qp (Quantization Parameter): 0 (lossless) - 51 (kém nhất). Mặc định: 28
"""
cmd = ["bpgenc", "-q", str(qp), "-o", output_bpg, input_jpg]
result = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
return result.returncode == 0
def capture_and_process():
GPIO.output(LED_STATUS_PIN, GPIO.HIGH)
GPIO.output(BUZZER_PIN, GPIO.HIGH)
time.sleep(0.2)
GPIO.output(BUZZER_PIN, GPIO.LOW)
timestamp = time.strftime("%Y%m%d-%H%M%S")
raw_img = f"/home/pi/doorbell/captures/img_{timestamp}.jpg"
bpg_img = f"/home/pi/doorbell/captures/img_{timestamp}.bpg"
# Khởi tạo Camera và chụp ảnh Full HD
with PiCamera() as camera:
camera.resolution = (1920, 1080)
camera.start_preview()
time.sleep(1) # Chờ cảm biến cân bằng trắng và phơi sáng
camera.capture(raw_img)
# Thực hiện nén BPG dựa trên chuẩn HEVC
success = compress_bpg(raw_img, bpg_img, qp=27)
if success:
send_email_notification(bpg_img, timestamp)
GPIO.output(LED_STATUS_PIN, GPIO.LOW)
def send_email_notification(attachment_path, timestamp):
# Logic đóng gói MIME và gửi qua máy chủ SMTP / Gmail API
pass
Cơ chế hoạt động của thuật toán nén BPG (HEVC-based Intra-coding)
- Giai đoạn tiền xử lý (Initialization Phase): Đọc siêu dữ liệu (Metadata), xác định không gian màu (RGB, YCbCr 4:2:0/4:2:2/4:4:4), độ sâu bit (8, 10, hoặc 12-bit) và tách kênh Alpha.
- Giai đoạn phân vùng khối (Coding Tree Unit - CTU): Hình ảnh được chia thành các khối CTU kích thước lên tới 64×64 pixel. Từng CTU được đệ quy phân chia thành các Coding Units (CU) từ 64×64 xuống 8×8 pixel thông qua cấu trúc cây tứ phân (Quad-tree).
- Dự đoán nội khung (Intra-frame Prediction): BPG tận dụng 35 chế độ dự đoán không gian của HEVC (33 chế độ định hướng Directional, 1 chế độ DC và 1 chế độ Planar), dự đoán giá trị pixel dựa trên các pixel lân cận đã được tái tạo.
- Biến đổi và Lượng tử hóa (Transform & Quantization): Tính toán ma trận sai số dự đoán (Residual) và áp dụng phép biến đổi Cosine rời rạc số nguyên (Discrete Cosine Transform - DCT) hoặc Sin rời rạc số nguyên (DST) với kích thước khối từ 4×4 đến 32×32.
- Mã hóa Entropy CABAC: Sử dụng thuật toán mã hóa số học nhị phân thích ứng theo ngữ cảnh (Context-Adaptive Binary Arithmetic Coding - CABAC) thay cho thuật toán Huffman truyền thống của JPEG, giúp nén triệt để luồng bit đầu ra (Bitstream).
+-----------------------------------------------------------------------------+
| BPG ENCODING PIPELINE |
| |
| [Input Image: JPEG / PNG / RAW] |
| | |
| v |
| +----------------------------+ |
| | 1. Image Initialization | -> Check Color Space & Bit Depth (8-14bit) |
| +----------------------------+ |
| | |
| v |
| +----------------------------+ |
| | 2. Quad-Tree Partitioning | -> Divide into CTU (64x64 down to 8x8) |
| +----------------------------+ |
| | |
| v |
| +----------------------------+ |
| | 3. HEVC Intra-Prediction | -> 35 Spatial Modes (Directional/DC/Planar)|
| +----------------------------+ |
| | |
| v |
| +----------------------------+ |
| | 4. Integer DCT/DST & Quant | -> Transform Residual to Frequency Domain |
| +----------------------------+ |
| | |
| v |
| +----------------------------+ |
| | 5. CABAC Entropy Coding | -> Bitstream Generation into NAL Units |
| +----------------------------+ |
| | |
| v |
| [Output File: .bpg Format] |
+-----------------------------------------------------------------------------+
Testing và validation
Hiệu năng nén ảnh của thuật toán BPG được tiến hành thực nghiệm đối chứng trực tiếp trên các tập ảnh chuẩn kích thước đa dạng (từ ảnh đồ họa đến ảnh chân dung thực tế):
| Tên tệp dữ liệu thử nghiệm |
Độ phân giải (Pixel) |
Định dạng gốc JPEG (Bytes) |
Định dạng BPG sau nén (Bytes) |
Tỷ lệ giảm dung lượng (%) |
Đánh giá chất lượng trực quan |
| Gấu trúc (Bear) |
255 × 255 |
11,438 |
5,412 |
52.68% |
Chi tiết sợi lông sắc nét, không xuất hiện khối mờ (blocking) |
| Leo núi băng (Ice Climbing) |
512 × 512 |
27,614 |
12,890 |
53.32% |
Giữ nguyên độ tương phản và chuyển màu vùng tuyết mượt mà |
| Lena Standard Test Image |
512 × 512 |
31,852 |
14,210 |
55.39% |
Vùng da mịn màng, các viền chi tiết mũ và tóc bảo toàn hoàn hảo |
| Ảnh chụp thực tế Doorbell |
1920 × 1080 (Full HD) |
1,845,200 |
784,320 |
57.49% |
Nhận diện rõ nét khuôn mặt khách đến bấm chuông ở cự ly 1.5m |
So sánh kích thước file sau nén giữa JPEG và BPG (Đơn vị: Bytes):
JPEG (Gốc) [████████████████████████████████████] 31,852 Bytes (Lena 512x512)
BPG (Nén) [███████████████] 14,210 Bytes (-55.39%)
Khi tiến hành thử nghiệm nén cưỡng bức tệp ảnh chuẩn Lena về cùng một dung lượng cực thấp là 5,836 Bytes:
- Định dạng JPEG: Hình ảnh bị suy giảm chất lượng nghiêm trọng, xuất hiện hiệu ứng khối vuông (Blocking Artifacts) 8x8 rõ rệt trên toàn bộ khuôn mặt, mất hoàn toàn chi tiết mắt và cấu trúc nền.
- Định dạng BPG: Thuật toán khử khối (Deblocking Filter) và bộ lọc bù trừ mẫu thích ứng (Sample Adaptive Offset - SAO) tích hợp trong HEVC giúp hình ảnh vẫn duy trì độ mịn màng, chuyển sắc tự nhiên và đọc rõ được các đường nét chính.
Kết quả đạt được
+-----------------------------------------------------------------------------+
| KẾT QUẢ ĐẠT ĐƯỢC DỰ ÁN |
+-----------------------------------+-----------------------------------------+
| Mục tiêu đề ra | Mức độ hoàn thành thực tế |
+-----------------------------------+-----------------------------------------+
| 1. Khối phần cứng chuông cửa IoT | Hoàn thành 100% (Vỏ hộp nhỏ gọn, |
| | tích hợp RPi Zero W, Camera Sony 8MP, |
| | nút bấm chống rung, LED 2 màu). |
| 2. Tích hợp thuật toán nén BPG | Hoàn thành 100% (Giảm trung bình |
| | 52% - 57.5% kích thước tệp). |
| 3. Hệ thống gửi email tự động | Hoàn thành 100% (Đính kèm tệp .bpg |
| | qua Gmail API, thời gian trễ < 3.5s). |
| 4. Ứng dụng Android Smart Doorbell| Hoàn thành 100% (Đọc hộp thư, tải tệp, |
| | giải mã BPG sang Bitmap và hiển thị). |
+-----------------------------------+-----------------------------------------+
Đổi mới và đóng góp
- Tiên phong ứng dụng chuẩn nén HEVC Intra-frame (BPG) trên thiết bị nhúng IoT cấp thấp: Thay vì phụ thuộc vào các chuẩn nén truyền thống (JPEG/PNG) vốn tiêu tốn nhiều băng thông, dự án đã hiện thực hóa thành công việc nhúng bộ mã hóa BPG vào máy tính đơn bo SoC BCM2835 tài nguyên giới hạn (RAM chỉ 512MB).
- Nâng cao hiệu suất truyền thông mạng (>50%): Tiết kiệm từ 52% đến 57.5% băng thông mạng Wi-Fi/di động trong quá trình truyền tải cảnh báo giám sát an ninh, giảm tải chi phí lưu trữ đám mây cho người dùng.
- Chất lượng thị giác vượt trội ở cùng mức bitrate: Khắc phục hoàn toàn hiện tượng tạo tác khối (blocking artifacts) của chuẩn JPEG khi truyền nhận trong môi trường sóng yếu hoặc mạng băng thông hẹp.
- Kiến trúc tích hợp xuyên suốt Edge-to-Cloud-to-Mobile: Xây dựng thành công chuỗi giá trị khép kín từ khâu phần cứng chụp ảnh nhúng, xử lý nén biên, định tuyến dữ liệu bảo mật qua Google Cloud và tái tạo hình ảnh trên thiết bị Android di động.
Ứng dụng thực tế và triển khai
Kịch bản sử dụng thực tế (Use Cases)
- Hệ thống an ninh gia đình thông minh (Smart Home Security): Lắp đặt tại cổng ra vào các căn hộ, tự động ghi nhận khuôn mặt khách bấm chuông và gửi cảnh báo ngay tức khắc về điện thoại chủ nhà.
- Giám sát vùng sâu/vùng xa sử dụng mạng 3G/4G: Ứng dụng cho các trạm quan trắc, chuông cửa trang trại hoặc trạm thời tiết nơi băng thông di động chập chờn và dung lượng data đắt đỏ.
- Thiết bị giám sát đeo tay (Wearable Camera): Tích hợp vào các camera hành trình nhỏ gọn đòi hỏi bộ nhớ lưu trữ tối thiểu.
+-----------------------------------------------------------------------------+
| QUY TRÌNH TRIỂN KHAI PHẦN CỨNG |
| |
| 1. Chuẩn bị phần cứng: |
| - Raspberry Pi Zero W + Thẻ nhớ MicroSD 16GB (Class 10). |
| - Raspberry Pi Camera Module V2 (Cáp CSI 15cm). |
| - Mạch mở rộng PCB (Nút nhấn, LED báo nguồn/trạng thái, Buzzer). |
| - Nguồn điện 5V - 1A qua cổng Micro USB. |
| |
| 2. Cài đặt môi trường phần mềm: |
| $ sudo apt-get update && sudo apt-get install -y cmake libpng-dev libjpeg-dev|
| $ git clone https://github.com/bellard/bpg.git && cd bpg |
| $ make && sudo make install |
| $ pip3 install picamera google-api-python-client oauth2client |
| |
| 3. Cấu hình dịch vụ Google API: |
| - Kích hoạt Gmail API trên Google Cloud Console. |
| - Tải tệp xác thực `credentials.json` lưu vào thư mục dự án. |
| - Chạy kịch bản tự động khởi động cùng hệ điều hành (systemd service). |
+-----------------------------------------------------------------------------+
Phân tích hiệu quả kinh tế (Cost-Benefit & ROI Analysis)
| Hạng mục chi phí phần cứng |
Đơn giá ước tính (VNĐ) |
Lợi ích kinh tế & Vận hành mang lại |
| KIT Raspberry Pi Zero W |
350.000 VNĐ |
Tiết kiệm >60% chi phí so với việc dùng Raspberry Pi 4 hoặc Mini PC |
| Module Camera V2 8MP (Sony IMX219) |
450.000 VNĐ |
Cung cấp ảnh tĩnh độ phân giải cao 8MP, tiêu thụ điện năng cực thấp (<250mA) |
| Mạch PCB, Nút bấm, LED, Loa, Vỏ hộp |
120.000 VNĐ |
Thiết kế nhỏ gọn, dễ dàng lắp ráp thay thế |
| Nguồn Adapter 5V-1A & Phụ kiện |
50.000 VNĐ |
Nguồn cấp thông dụng, chi phí vận hành điện < 2.000 VNĐ/tháng |
| Tổng chi phí phần cứng |
~970.000 VNĐ |
Rẻ hơn 50-70% so với các giải pháp Smart Doorbell thương mại trên thị trường |
Hạn chế và hướng phát triển
Hạn chế kỹ thuật hiện tại
- Thời gian xử lý nén phần mềm: Do vi xử lý BCM2835 trên Raspberry Pi Zero W là lõi đơn 1.0 GHz không có bộ tăng tốc phần cứng riêng cho HEVC Encoding, thời gian nén ảnh tĩnh kích thước Full HD qua lệnh
bpgenc mất từ 1.8 đến 2.5 giây.
- Hạn chế nền tảng di động: Định dạng BPG chưa được hệ điều hành Android và iOS hỗ trợ ở tầng hiển thị gốc (Native ImageView), đòi hỏi phải nhúng thư viện giải mã độc lập (Native C++ qua NDK hoặc WebAssembly/JS).
- Chưa hỗ trợ Live Stream Video: Hệ thống mới chỉ đáp ứng phương thức chụp và truyền ảnh tĩnh khi có sự kiện kích hoạt.
Hướng phát triển trong tương lai
- Nâng cấp phần cứng: Chuyển đổi sang các dòng chip nhúng hỗ trợ tập lệnh NEON hoặc GPU hỗ trợ mã hóa HEVC phần cứng (như Raspberry Pi 4 Model B, Raspberry Pi Zero 2 W hoặc module ESP32-S3/K210).
- Tích hợp trí tuệ nhân tạo (AI at the Edge): Tích hợp mô hình nhận diện khuôn mặt cục bộ (Local Face Recognition với MobileNet/Tiny-YOLO) để phân loại người quen/người lạ trước khi gửi ảnh.
- Mở rộng cảm biến: Bổ sung cảm biến chuyển động hồng ngoại PIR (Passive Infrared Sensor) để phát hiện người đứng trước cửa tự động mà không cần nhấn chuông.
Đối tượng hưởng lợi
- Sinh viên & Học viên chuyên ngành Máy tính / Điện tử: Là tài liệu tham khảo thực tiễn chuyên sâu về việc đưa các thuật toán mã hóa đa phương tiện hiện đại (HEVC/BPG) vào môi trường phần cứng nhúng Linux thực tế.
- Kỹ sư nhúng & Lập trình viên IoT: Cung cấp mã nguồn mẫu và kiến trúc hoàn chỉnh từ điều khiển GPIO, xử lý camera CSI, giao tiếp Cloud REST API đến lập trình ứng dụng Android.
- Doanh nghiệp sản xuất thiết bị Smart Home: Nắm bắt giải pháp công nghệ giúp giảm thiểu hơn một nửa chi phí băng thông đường truyền và dung lượng máy chủ lưu trữ hình ảnh giám sát.
- Nhà nghiên cứu xử lý tín hiệu số: Dữ liệu thực nghiệm giá trị chứng minh tính khả thi của định dạng BPG trong môi trường mạng IoT băng thông hạn chế.
Câu hỏi thường gặp
1. Yêu cầu kỹ thuật tối thiểu để triển khai hệ thống chuông cửa BPG là gì?
Hệ thống yêu cầu bo mạch máy tính nhúng có bộ nhớ RAM tối thiểu 256MB (khuyến nghị từ 512MB như Raspberry Pi Zero W hoặc tương đương), hỗ trợ hệ điều hành Linux nhân chuẩn, module camera giao tiếp qua CSI/USB và kết nối Internet không dây Wi-Fi băng tần 2.4GHz.
2. Giới hạn mở rộng và giải pháp khi số lượng thiết bị tăng cao?
Khi triển khai hàng ngàn chuông cửa, việc gửi mail qua tài khoản Gmail cá nhân sẽ chạm hạn ngạch (Rate limit: 500 email/ngày). Giải pháp là chuyển đổi tầng Cloud sang sử dụng dịch vụ trung gian chuyên dụng như MQTT Broker (Mosquitto/EMQX) kết hợp dịch vụ AWS S3 / Cloudflare Images để lưu trữ ảnh BPG và Firebase Cloud Messaging (FCM) để đẩy thông báo Push Notification tức thời.
3. Khả năng tích hợp hệ thống vào các nền tảng Smart Home có sẵn (Home Assistant, Apple HomeKit)?
Hoàn toàn khả thi. Do BPG có thể được biên dịch thành thư viện C/C++ hoặc nhúng qua mã nguồn Python, hệ thống có thể xuất tín hiệu qua giao thức MQTT hoặc HTTP Webhook để kết nối trực tiếp với máy chủ Home Assistant (HASS), cho phép kích hoạt ngữ cảnh tự động như bật đèn hành lang khi có khách bấm chuông.
4. Chi phí duy trì và bảo trì hệ thống hàng tháng là bao nhiêu?
Với mô hình sử dụng Gmail API và Google Cloud Platform ở mức sử dụng gia đình (Free Tier), chi phí dịch vụ đám mây là 0 VNĐ. Điện năng tiêu thụ của Raspberry Pi Zero W ở mức trung bình ~1.2W, tương đương chưa đến 1 kWh điện mỗi tháng (chi phí tiền điện dưới 3.000 VNĐ/tháng).
5. Tại sao không sử dụng trực tiếp chuẩn ảnh WebP của Google thay vì BPG?
Mặc dù WebP được hỗ trợ rộng rãi hơn trên trình duyệt web, nhưng các nghiên cứu và thực nghiệm cho thấy chuẩn BPG (dựa trên HEVC/H.265) có hiệu suất nén vượt trội hơn WebP từ 15% đến 20% ở cùng mức chất lượng hiển thị hình ảnh tự nhiên, đặc biệt là khả năng bảo toàn chi tiết biên cạnh và không gian màu rộng hơn.
Kết luận
Đồ án tốt nghiệp "Ứng dụng thuật toán nén ảnh BPG vào trong chuông cửa IoT" của tác giả Nguyễn Phạm Thanh Hoàng đã hoàn thành xuất sắc các mục tiêu đề ra, minh chứng tính khả thi và ưu thế vượt trội của việc áp dụng thuật toán nén ảnh thế hệ mới BPG trong các hệ thống nhúng thông minh. Giải pháp không chỉ giải quyết triệt để bài toán thắt nút cổ chai về băng thông truyền tải hình ảnh trên mạng không dây mà còn tạo tiền đề vững chắc cho việc phát triển các thiết bị IoT thế hệ mới tiết kiệm tài nguyên và hiệu năng cao.
Bạn đang tìm kiếm giải pháp tối ưu hóa băng thông truyền nhận hình ảnh cho các dự án IoT của mình? Hãy trải nghiệm việc tích hợp thư viện BPG ngay hôm nay hoặc đóng góp ý kiến để cùng hoàn thiện hệ thống chuông cửa thông minh!