Giới thiệu dự án

Trong kỷ nguyên chuyển đổi số ngành dịch vụ ô tô (Automotive Aftermarket), quy trình quản lý hoạt động tại các xưởng dịch vụ và garage đóng vai trò then chốt quyết định năng suất vận hành và sự hài lòng của khách hàng. Theo thống kê thực tế từ các chuỗi bảo dưỡng, hơn 65% sự chậm trễ trong quy trình dịch vụ bắt nguồn từ khâu tiếp nhận xe ban đầu, ghi nhận hiện trạng thủ công và luân chuyển thông tin nội bộ giữa Cố vấn dịch vụ (CVDV) và Kỹ thuật viên (KTV).

Vấn đề cốt lõi mà các garage vừa và nhỏ tại Việt Nam đang đối mặt bao gồm:

  • Tắc nghẽn khâu tiếp nhận: Sử dụng phiếu tiếp nhận bằng giấy tờ dễ gây sai sót, mất từ 7–12 phút để kiểm tra và nhập liệu thông tin xe.
  • Phân tán dữ liệu hình ảnh: Việc chụp ảnh hiện trạng xe (trầy xước, hư hỏng ban đầu) bằng điện thoại cá nhân của CVDV gây thất lạc, khó tra cứu khi xảy ra khiếu nại.
  • Đứt gãy luồng thông tin: Lệnh sửa chữa chuyển giao qua giấy tờ hoặc trao đổi miệng gây chậm trễ tiến độ bảo dưỡng và khó khăn trong kiểm soát thời gian lưu xe.

Dự án "Thiết kế hệ thống quản lý xe ra vào sử dụng phần mềm Python" do nhóm nghiên cứu ngành Công nghệ Kỹ thuật Ô tô, Trường Đại học Sư phạm Kỹ thuật TP.HCM thực hiện, tập trung giải quyết triệt để các rào cản trên.

Mục tiêu cụ thể của đề tài được xác định như sau:

  1. Xây dựng giải thuật xử lý ảnh tự động nhận diện biển số xe (Automatic License Plate Recognition - ALPR) sử dụng thư viện OpenCV trên nền tảng Python.
  2. Thiết kế và triển khai ứng dụng web chuyên biệt hóa theo hai phân quyền người dùng: Giao diện Cố vấn dịch vụ (CVDV) và Giao diện Kỹ thuật viên (KTV).
  3. Tích hợp giải pháp lưu trữ hình ảnh đám mây qua API Cloudinary và quản lý dữ liệu tập trung với hệ quản trị cơ sở dữ liệu MySQL.
  4. Tự động hóa quá trình xuất lệnh sửa chữa và gửi email thông báo tiến độ bảo dưỡng kèm biên bản kiểm tra đến khách hàng thông qua giao thức SMTP (smtplib).

Giải pháp được lựa chọn dựa trên sự kết hợp giữa ngôn ngữ Python linh hoạt, micro-framework Flask tinh gọn và kiến trúc điện toán đám mây. Cách tiếp cận này giúp tối ưu hóa chi phí đầu tư phần cứng, loại bỏ 100% quy trình giấy tờ thủ công, giảm thời gian tiếp nhận xe xuống dưới 2 phút và đảm bảo tính minh bạch xuyên suốt từ khi xe vào xưởng đến khi bàn giao.

Phạm vi nghiên cứu tập trung vào quy trình tiếp nhận, quản lý sửa chữa và giao xe tại garage ô tô với biển số phương tiện cơ giới đường bộ Việt Nam tiêu chuẩn; hệ thống được thử nghiệm trong điều kiện ánh sáng thực tế tại xưởng thực hành và đại lý dịch vụ.


Phân tích và thiết kế giải pháp

Phân tích hiện trạng

Tại thị trường Việt Nam, các phương án quản lý xưởng dịch vụ hiện nay phân hóa rõ rệt thành ba nhóm chính với các ưu - nhược điểm sau:

Tiêu chí Quản lý thủ công (Giấy tờ) Phần mềm ngoại nhập (Shopmonkey/Mitchell) Phần mềm nội địa (CarCRM) Hệ thống đề xuất (Python + Flask + OpenCV)
Chi phí đầu tư Gần như bằng 0 Rất cao ($150 - $400/tháng) Trung bình (thuê bao tháng) Thấp (Mã nguồn mở, tự chủ hạ tầng)
Nhận diện biển số (ALPR) Không có Hạn chế với biển số VN Không có / Tích hợp bên thứ 3 Tích hợp sẵn qua OpenCV
Phân quyền CVDV - KTV Thủ công Phức tạp, dư thừa module Tập trung cho Sale/CSKH Thiết kế chuyên biệt, tinh gọn
Lưu trữ ảnh hiện trạng Điện thoại cá nhân Cloud nước ngoài (độ trễ cao) Giới hạn dung lượng Cloudinary CDN tốc độ cao
Tự động gửi email báo cáo Không có Có (tiếng Anh) Có (hạn chế tùy biến) Tự động hóa qua smtplib

Dựa trên khảo sát thực tế, yêu cầu hệ thống được chuẩn hóa theo mô hình MoSCoW:

  • Must have (Bắt buộc): Chụp ảnh qua camera WebRTC; Xử lý ảnh nhận diện biển số; Tra cứu/thêm mới hồ sơ khách hàng trên MySQL; Đồng bộ dữ liệu phiếu sửa chữa thời gian thực giữa CVDV và KTV.
  • Should have (Nên có): Upload ảnh hiện trạng xe 4 góc lên Cloudinary; Tự động tạo và gửi email xác nhận dịch vụ kèm file báo cáo cho khách hàng.
  • Could have (Có thể có): Cho phép nhập biển số thủ công khi ảnh mờ/nhiễu; Tích hợp xuất file Word/PDF biên bản giao nhận.
  • Won't have (Chưa phát triển): Module kế toán tài chính chuyên sâu và quản lý tồn kho phụ tùng nâng cao.

Thiết kế hệ thống

Kiến trúc hệ thống được xây dựng theo mô hình Client-Server phân tầng, đảm bảo tính tách biệt giữa tầng hiển thị (Frontend), tầng xử lý logic nghiệp vụ (Backend) và tầng lưu trữ dữ liệu (Data Layer).

graph TD
    A[Camera / Mobile Client] -->|Stream WebRTC / Image| B[Frontend: HTML5/CSS3/JS]
    B -->|HTTP POST Request| C[Backend Engine: Python Flask 3.0]
    C -->|Image Buffer| D[Xử lý ảnh: OpenCV ALPR Pipeline]
    D -->|Biển số nhận diện| C
    C -->|Upload ảnh hiện trạng| E[Cloudinary Cloud CDN]
    E -->|URL ảnh an toàn| C
    C -->|Query / Insert| F[(Cơ sở dữ liệu MySQL 8.0)]
    C -->|Trigger Notification| G[SMTP Mail Server - smtplib]
    G -->|Biên bản bảo dưỡng| H[Khách hàng]
    C -->|Cập nhật dữ liệu thời gian thực| I[Giao diện Kỹ thuật viên - KTV]

Technology Stack chuẩn hóa:

  • Ngôn ngữ nền tảng: Python 3.10+ (Đảm bảo hiệu năng và tính ổn định cho các thư viện xử lý ảnh).
  • Backend Framework: Flask 3.0.x (Micro-framework tối ưu hóa tài nguyên máy chủ).
  • Computer Vision: OpenCV (opencv-python 4.9.x) xử lý luồng ảnh nhị phân hóa và contour.
  • Database: MySQL Server 8.0 kết hợp mysql-connector-python 8.3.x.
  • Media Storage: Cloudinary REST API qua thư viện cloudinary 1.39.x.
  • Giao tiếp mạng: Giao thức HTTP/HTTPS, WebRTC capture stream, SMTP (Simple Mail Transfer Protocol) với TLS mã hóa.

Thiết kế Cơ sở dữ liệu (Database Schema): Hệ thống sử dụng các thực thể chuẩn hóa quan hệ nhằm lưu trữ thông tin nhanh chóng:

  • khach_hang (id_kh, ho_ten, so_dien_thoai, email, dia_chi, ngay_tao)
  • thong_tin_xe (bien_so_xe [PK], id_kh [FK], hang_xe, dong_xe, so_khung, so_may, nam_san_xuat)
  • phieu_tiep_nhan (id_phieu [PK], bien_so_xe [FK], ngay_vao, ngay_du_kien_xuat, tinh_trang_xe, yeu_cau_khach_hang, trang_thai_sua_chua, ghi_chu_ktv)
  • hinh_anh_hien_trang (id_anh [PK], id_phieu [FK], url_cloudinary, loai_anh, thoi_gian_chup)

Methodology

Dự án áp dụng phương pháp phát triển Agile/Scrum tinh gọn với chu kỳ Sprint 2 tuần, chia làm 4 giai đoạn rõ rệt:

  1. Milestone 1 (Tháng 02/2024 - 03/2024): Nghiên cứu luồng tiếp nhận thực tế tại garage; xây dựng Pipeline xử lý ảnh biển số xe với OpenCV.
  2. Milestone 2 (Tháng 03/2024 - 04/2024): Thiết kế Database MySQL; lập trình Core Backend bằng Flask; tích hợp Cloudinary API.
  3. Milestone 3 (Tháng 04/2024 - 05/2024): Xây dựng Frontend UI cho CVDV và KTV; tích hợp dịch vụ gửi mail tự động smtplib.
  4. Milestone 4 (Tháng 05/2024 - 06/2024): Thử nghiệm tích hợp hệ thống, đo lường độ chính xác xử lý ảnh và nghiệm thu.

Ma trận quản trị rủi ro:

  • Rủi ro ảnh chụp biển số bị tối/nhiễu: Áp dụng bộ lọc cân bằng sáng thích nghi (Adaptive Histogram Equalization) và phân ngưỡng động OTSU.
  • Rủi ro mất kết nối Internet khi tải ảnh Cloudinary: Triển khai cơ chế đệm bộ nhớ cục bộ (Local Caching) trước khi đẩy lên cloud.

Implementation và kết quả

Development process

Trọng tâm kỹ thuật của hệ thống là module xử lý hình ảnh nhận diện vùng biển số xe và hệ thống điều phối dữ liệu tập trung qua Flask API.

1. Thuật toán tiền xử lý và phân đoạn vùng biển số xe (OpenCV Pipeline): Hình ảnh từ camera được xử lý qua 6 giai đoạn: $$\text{Ảnh gốc} \xrightarrow{\text{Grayscale}} \text{Ảnh xám} \xrightarrow{\text{Gaussian Blur}} \text{Khử nhiễu} \xrightarrow{\text{Canny Edge}} \text{Biên cạnh} \xrightarrow{\text{Contour Filtering}} \text{Vùng biển số}$$

import cv2
import numpy as np

def preprocess_and_detect_plate(image_path):
    # 1. Đọc ảnh và chuyển sang không gian màu xám
    img = cv2.imread(image_path)
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    
    # 2. Tăng cường độ tương phản và lọc nhiễu Gauss
    blurred = cv2.GaussianBlur(gray, (5, 5), 0)
    
    # 3. Phân ngưỡng nhị phân động thích nghi (Adaptive Thresholding)
    thresh = cv2.adaptiveThreshold(
        blurred, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, 
        cv2.THRESH_BINARY_INV, 19, 9
    )
    
    # 4. Phát hiện cạnh viền bằng thuật toán Canny
    edges = cv2.Canny(thresh, 100, 200)
    
    # 5. Tìm kiếm đường bao Contour
    contours, _ = cv2.findContours(edges.copy(), cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
    contours = sorted(contours, key=cv2.contourArea, reverse=True)[:10]
    
    plate_contour = None
    for c in contours:
        perimeter = cv2.arcLength(c, True)
        approx = cv2.approxPolyDP(c, 0.02 * perimeter, True)
        # Biển số xe có dạng hình chữ nhật (4 đỉnh)
        if len(approx) == 4:
            x, y, w, h = cv2.boundingRect(approx)
            aspect_ratio = w / float(h)
            # Tỷ lệ khung hình biển số Việt Nam (dài ~3.5-4.5 hoặc vuông ~1.2-1.4)
            if (aspect_ratio >= 1.1 and aspect_ratio <= 1.6) or (aspect_ratio >= 3.0 and aspect_ratio <= 5.0):
                plate_contour = approx
                plate_crop = gray[y:y+h, x:x+w]
                break
                
    return plate_contour, plate_crop

2. Điều hướng dữ liệu backend và upload Cloudinary qua Flask:

from flask import Flask, request, jsonify, render_template
import cloudinary
import cloudinary.uploader
import mysql.connector

app = Flask(__name__)

cloudinary.config(
    cloud_name="garage_system",
    api_key="892345112345678",
    api_secret="A_bC987XyzSecretKeySample"
)

@app.route('/api/submit_ticket', methods=['POST'])
def submit_ticket():
    try:
        data = request.form
        plate_num = data.get('license_plate')
        customer_id = data.get('customer_id')
        issue_desc = data.get('issue_description')
        
        # Upload ảnh hiện trạng xe lên Cloudinary
        image_file = request.files.get('vehicle_image')
        upload_result = cloudinary.uploader.upload(image_file, folder="garage_intake/")
        image_url = upload_result.get('secure_url')
        
        # Ghi dữ liệu vào MySQL
        conn = mysql.connector.connect(
            host="localhost", user="root", password="password", database="garage_db"
        )
        cursor = conn.cursor()
        query = """INSERT INTO phieu_tiep_nhan (bien_so_xe, id_kh, tinh_trang_xe, url_hinh_anh, trang_thai) 
                   VALUES (%s, %s, %s, %s, 'CHO_XU_LY')"""
        cursor.execute(query, (plate_num, customer_id, issue_desc, image_url))
        conn.commit()
        cursor.close()
        conn.close()
        
        return jsonify({"status": "SUCCESS", "message": "Phiếu sửa chữa đã chuyển giao cho KTV", "img_url": image_url}), 200
    except Exception as e:
        return jsonify({"status": "ERROR", "message": str(e)}), 500

3. Tự động hóa gửi thông báo và biên bản bảo dưỡng qua smtplib:

import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

def send_service_confirmation_email(customer_email, customer_name, plate_number, services_list):
    sender_email = "service@garagedemo.com"
    sender_pwd = "app_specific_password"
    
    msg = MIMEMultipart('alternative')
    msg['Subject'] = f"[GARAGE SERVICE] Xác nhận tiếp nhận bảo dưỡng xe {plate_number}"
    msg['From'] = sender_email
    msg['To'] = customer_email
    
    html_content = f"""
    <h3>Kính gửi Quý khách {customer_name},</h3>
    <p>Xe của Quý khách với biển số <strong>{plate_number}</strong> đã được tiếp nhận thành công vào xưởng dịch vụ.</p>
    <p><strong>Nội dung dịch vụ yêu cầu:</strong> {services_list}</p>
    <p>Kỹ thuật viên đang tiến hành kiểm tra theo quy trình tiêu chuẩn. Quý khách có thể theo dõi tiến độ qua hệ thống trực tuyến.</p>
    <br><p>Trân trọng cảm ơn Quý khách!</p>
    """
    msg.attach(MIMEText(html_content, 'html'))
    
    with smtplib.SMTP('smtp.gmail.com', 587) as server:
        server.starttls()
        server.login(sender_email, sender_pwd)
        server.sendmail(sender_email, customer_email, msg.as_string())

Testing và validation

Hệ thống được đưa vào kiểm thử toàn diện thông qua 150 mẫu ảnh biển số trong nhiều điều kiện vận hành khác nhau tại xưởng thực nghiệm:

Kịch bản kiểm thử Số lượng mẫu Tỷ lệ phân đoạn đúng Thời gian xử lý TB (ms) Kết quả UAT (Đạt/Không đạt)
Ánh sáng ban ngày tiêu chuẩn 60 95.0% (57/60) 280 ms Đạt
Ánh sáng trong xưởng / bóng râm 45 91.1% (41/45) 315 ms Đạt
Biển số nghiêng góc (15° - 30°) 25 84.0% (21/25) 360 ms Đạt
Biển số bám bụi bẩn / trầy xước 20 75.0% (15/20) 390 ms Cần nhập bù thủ công

Hiệu năng xử lý và tải hệ thống:

  • Độ trễ xử lý ảnh (ALPR Latency): Trung bình 325 ms/khung hình.
  • Thời gian đồng bộ dữ liệu (Flask - MySQL): < 45 ms cho mỗi truy vấn ghi.
  • Thời gian tải ảnh lên Cloudinary: Trung bình 850 ms (kết nối băng thông 50 Mbps).
  • Tỷ lệ UAT chấp thuận: 94.2% người dùng là sinh viên và CVDV đánh giá giao diện trực quan, thao tác nhanh gọn.

Kết quả đạt được

[Mục tiêu đặt ra] -------------------------> [Kết quả thực nghiệm]
- Tự động nhận diện biển số                -> Đạt độ chính xác tổng hợp 89.3%
- Số hóa 100% phiếu tiếp nhận              -> Loại bỏ hoàn toàn giấy tờ (Paperless)
- Đồng bộ CVDV - KTV theo thời gian thực   -> Thời gian tiếp nhận giảm từ 10p -> 1.8p
- Lưu trữ hình ảnh an toàn                 -> 100% ảnh lưu tập trung trên Cloudinary CDN
- Tự động hóa gửi mail báo cáo             -> Tích hợp SMTP gửi email dưới 3 giây

Đổi mới và đóng góp

  1. Cấu trúc hóa quy trình đặc thù Garage Ô tô: Khác với các giải pháp quản lý bãi đỗ xe thông thường (chỉ ghi nhận giờ xe vào/ra), hệ thống này kết nối chặt chẽ giữa việc nhận diện xe với quy trình tiếp nhận dịch vụ kỹ thuật, chuyển tiếp trạng thái trực tiếp tới KTV.
  2. Kiến trúc Cloud-Edge kết hợp tối ưu chi phí: Thay vì lưu trữ tệp hình dung lượng lớn trên máy chủ cục bộ (gây đầy ổ cứng và khó backup), hệ thống tách biệt dữ liệu text (lưu tại MySQL) và hình ảnh độ phân giải cao (lưu tại Cloudinary CDN). Giải pháp này giảm 85% tải lưu trữ cho máy chủ tại garage.
  3. Cơ chế dự phòng kép (Fallback Mechanism): Trong trường hợp biển số quá cũ, biến dạng không thể nhận diện qua OpenCV, giao diện cho phép CVDV nhập tay trực tiếp ngay tại màn hình kiểm tra mà không làm gián đoạn luồng công việc.
  4. Đóng góp học thuật và thực tiễn: Cung cấp mô hình tham chiếu hoàn chỉnh kết hợp giữa Lập trình nhúng/Thị giác máy tính (Computer Vision) và Phát triển ứng dụng Web (Web Engineering) cho sinh viên khối ngành Kỹ thuật Ô tô và Cơ điện tử.

Ứng dụng thực tế và triển khai

Kịch bản vận hành thực tế

sequenceDiagram
    autonumber
    actor KH as Khách hàng
    actor CVDV as Cố vấn dịch vụ
    participant SYS as Hệ thống Web Python
    participant CLD as Cloudinary & MySQL
    actor KTV as Kỹ thuật viên

    KH->>CVDV: Lái xe vào khu vực tiếp nhận
    CVDV->>SYS: Mở camera chụp biển số xe
    SYS->>SYS: OpenCV xử lý & truy vấn lịch sử xe
    SYS-->>CVDV: Hiển thị thông tin khách hàng & xe
    CVDV->>SYS: Chụp ảnh hiện trạng trầy xước + nhập yêu cầu
    CVDV->>SYS: Bấm "Xuất phiếu chuyển giao"
    SYS->>CLD: Upload ảnh & Lưu dữ liệu phiếu
    SYS->>KTV: Hiển thị phiếu sửa chữa trên màn hình xưởng
    SYS->>KH: Gửi email tự động biên bản nhận xe
    KTV->>SYS: Cập nhật trạng thái "Đã hoàn thành"

Yêu cầu phần cứng và triển khai

Cấu hình tối thiểu tại Garage:

  • Máy chủ cục bộ/PC điều hành: CPU Intel Core i3 Thế hệ 8 trở lên (hoặc tương đương), RAM 8GB, SSD 128GB, OS Ubuntu 22.04 LTS hoặc Windows 10/11.
  • Thiết bị ghi hình: Camera IP độ phân giải tối thiểu Full HD (1080p) chuẩn nén H.264/H.265 hoặc máy tính bảng/smartphone có kết nối Wi-Fi dành cho CVDV.
  • Hạ tầng mạng: Đường truyền Internet băng thông tối thiểu 30 Mbps.

Phân tích Chi phí - Lợi ích (Cost-Benefit & ROI Analysis):

  • Chi phí triển khai: Khoảng 8.000.000 – 12.000.000 VNĐ (chủ yếu là chi phí phần cứng camera và tablet thao tác). Phần mềm xây dựng trên nền tảng nguồn mở (Python, MySQL, Flask) nên chi phí bản quyền = 0 VNĐ.
  • Lợi ích kinh tế:
    • Tiết kiệm trung bình 1.200.000 VNĐ/tháng tiền in ấn phiếu giấy tờ, sổ sách ghi nhận.
    • Tăng công suất tiếp nhận xe của CVDV lên 40% (xử lý thêm 6–8 lượt xe/ngày).
    • Thời gian hoàn vốn (ROI) ước tính: 2.5 – 3.5 tháng.

Hạn chế và hướng phát triển

Hạn chế kỹ thuật

  • Độ phụ thuộc vào góc chụp và ánh sáng: Thuật toán Contour truyền thống của OpenCV nhạy cảm với sự thay đổi đột ngột của cường độ sáng và biển số bị cong vênh.
  • Phụ thuộc kết nối Internet: Việc upload ảnh lên Cloudinary đòi hỏi đường truyền ổn định; khi mất mạng hệ thống sẽ tạm dừng khâu đồng bộ hình ảnh lên cloud.

Hướng phát triển trong tương lai

  • Tích hợp Deep Learning (YOLOv8/YOLOv9): Nâng cấp module phát hiện biển số và ký tự bằng mô hình học sâu để đạt độ chính xác > 99% trong mọi điều kiện thời tiết và góc nghiêng tới 45°.
  • Phát triển Local Object Storage (MinIO): Xây dựng bộ lưu trữ đối tượng cục bộ song song với Cloudinary để hệ thống vận hành trơn tru cả khi mất kết nối Internet hoàn toàn.
  • Ứng dụng di động chuyên biệt (PWA / Mobile App): Đóng gói ứng dụng thành PWA (Progressive Web App) hỗ trợ CVDV quét mã QR, tích hợp nhận diện giọng nói để ghi chú hư hỏng xe nhanh chóng.

Đối tượng hưởng lợi

  • Sinh viên ngành Kỹ thuật Ô tô / Cơ điện tử: Cung cấp tài liệu tham khảo thực tế về việc ứng dụng Công nghệ thông tin và Thị giác máy tính vào tối ưu hóa dịch vụ kỹ thuật chuyên ngành.
  • Lập trình viên / Kỹ sư phần mềm: Cung cấp mã nguồn tham khảo về kiến trúc tích hợp giữa Flask, OpenCV, MySQL và dịch vụ đám mây Cloudinary.
  • Chủ garage và Doanh nghiệp dịch vụ ô tô: Sở hữu một mô hình giải pháp số hóa quy trình với chi phí cực thấp, dễ dàng làm chủ và triển khai ngay lập tức.
  • Khách hàng sử dụng dịch vụ: Nhận được trải nghiệm dịch vụ chuyên nghiệp, minh bạch về hiện trạng xe và cập nhật tiến độ liên tục qua email.

Câu hỏi thường gặp

1. Hệ thống yêu cầu cấu hình phần cứng như thế nào để triển khai thực tế?

Hệ thống không đòi hỏi GPU chuyên dụng. Một máy tính văn phòng tiêu chuẩn trang bị chip Intel Core i3/i5, RAM 8GB và một camera IP chuẩn RTSP hoặc Web camera Full HD là đủ để vận hành mượt mà với độ trễ dưới 0.5 giây/lượt quét.

2. Khi mất kết nối Internet, hệ thống có tiếp tục hoạt động được không?

Có. Hệ thống Backend Flask và cơ sở dữ liệu MySQL chạy trên mạng cục bộ (LAN), do đó việc nhận diện biển số, tra cứu khách hàng và luân chuyển phiếu giữa CVDV và KTV vẫn hoạt động bình thường. Các ảnh hiện trạng sẽ được lưu tạm tại bộ nhớ đệm máy chủ và tự động đẩy lên Cloudinary khi có mạng trở lại.

3. Hệ thống có thể mở rộng tích hợp với phần mềm kế toán hoặc ERP có sẵn không?

Hoàn toàn có thể. Nhờ xây dựng trên kiến trúc RESTful API của Flask, hệ thống dễ dàng mở rộng các endpoint dạng JSON để đồng bộ dữ liệu khách hàng, biển số xe và trạng thái sửa chữa với các phần mềm ERP như SAP, Odoo, Fast hoặc MISA.

4. Chi phí duy trì hệ thống hàng tháng là bao nhiêu?

Gần như bằng 0 đối với các garage vừa và nhỏ. Gói miễn phí của Cloudinary cung cấp đủ dung lượng cho hàng ngàn lượt ảnh mỗi tháng, cơ sở dữ liệu MySQL và runtime Python hoàn toàn miễn phí.

5. Hệ thống xử lý thế nào khi biển số xe bị bẩn hoặc quá mờ?

Khi thuật toán OpenCV không nhận diện được đường bao biển số hợp lệ, hệ thống sẽ kích hoạt giao diện cảnh báo để CVDV nhập trực tiếp biển số xe bằng tay trong vòng 3 giây, đảm bảo luồng tiếp nhận không bao giờ bị gián đoạn.


Kết luận

Đồ án tốt nghiệp "Thiết kế hệ thống quản lý xe ra vào sử dụng phần mềm Python" của sinh viên Lê Vũ Đức Thịnh và Nguyễn Anh Thi (Trường ĐH Sư phạm Kỹ thuật TP.HCM) là một minh chứng rõ nét cho xu hướng ứng dụng chuyển đổi số vào ngành Công nghệ Kỹ thuật Ô tô. Bằng việc kết hợp nhuần nhuyễn giữa giải thuật xử lý ảnh OpenCV, kiến trúc web Flask linh hoạt, hệ quản trị MySQL tin cậy và nền tảng điện toán đám mây Cloudinary, đề tài đã giải quyết trọn vẹn bài toán tự động hóa quy trình tiếp nhận và quản lý sửa chữa tại xưởng dịch vụ.

Giải pháp không chỉ giúp loại bỏ hoàn toàn các sai sót của phương pháp ghi chép thủ công truyền thống, rút ngắn 80% thời gian tiếp nhận xe, mà còn mở ra hướng tiếp cận chi phí thấp, tính khả thi cao cho hàng ngàn garage ô tô tại Việt Nam trên hành trình hiện đại hóa quy trình vận hành.