Hệ thống quản lý bãi đỗ xe thông minh với nhận diện biển số tự động (LPR), quản lý thẻ NFC và báo cáo thống kê.
Parking Manager là ứng dụng Windows Forms quản lý bãi đỗ xe toàn diện với các tính năng:
- 🎯 Nhận diện biển số xe tự động (LPR) sử dụng YOLO + ONNX Runtime
- 📹 Hỗ trợ 4 camera (2 cổng vào + 2 cổng ra) với preview realtime
- 💳 Quản lý thẻ NFC - Gán thẻ cho xe, kiểm soát vào/ra
- 💰 Tính phí tự động theo thời gian gửi và loại xe
- 📊 Báo cáo thống kê doanh thu, lưu lượng xe
- 👥 Phân quyền người dùng (Admin, Operator, Viewer)
- 🗄️ Lưu trữ SQL Server với stored procedures
ParkingManager/
├── 📁 Database/ # SQL Scripts
│ ├── 01_CreateDatabase.sql # Tạo database và tables
│ ├── 02_StoredProcedures.sql # Stored procedures
│ └── 03_SampleData.sql # Dữ liệu mẫu
│
├── 📁 ParkingManager/ # Source Code
│ ├── 📁 Core/ # Các module lõi
│ │ ├── Business/ # XuLyLuotGuiXe - Logic nghiệp vụ
│ │ ├── CameraManager/ # QuanLyCamera, CameraStream
│ │ ├── LPR/ # NhanDienBienSo - ONNX inference
│ │ └── NFC/ # QuanLyTheNFC - PC/SC reader
│ │
│ ├── 📁 Data/ # Data Access Layer
│ │ ├── DatabaseHelper.cs # SQL connection helper
│ │ └── Repositories/ # Repository pattern
│ │ ├── BangGiaRepository.cs
│ │ ├── CameraRepository.cs
│ │ ├── CauHinhRepository.cs
│ │ ├── LuotGuiXeRepository.cs
│ │ ├── NguoiDungRepository.cs
│ │ ├── TheNFCRepository.cs
│ │ └── XeRepository.cs
│ │
│ ├── 📁 Models/ # Data Models
│ │ ├── BangGia.cs, Camera.cs, CauHinh.cs
│ │ ├── LuotGuiXe.cs, NguoiDung.cs
│ │ ├── TheNFC.cs, Xe.cs
│ │ └── LPR_Result.cs, Face_Result.cs
│ │
│ ├── 📁 UI/ # Windows Forms
│ │ ├── FormDangNhap.cs # Đăng nhập
│ │ ├── FormDashboard.cs # Dashboard chính
│ │ ├── FormCauHinhCamera.cs # Cấu hình camera
│ │ ├── FormDanhSachXe.cs # Quản lý xe
│ │ ├── FormQuanLyThe.cs # Quản lý thẻ NFC
│ │ ├── FormLuotGuiXe.cs # Lịch sử gửi xe
│ │ ├── FormBangGia.cs # Quản lý bảng giá
│ │ ├── FormNguoiDung.cs # Quản lý người dùng
│ │ ├── FormBaoCaoDoanhThu.cs # Báo cáo doanh thu
│ │ └── FormBaoCaoLuuLuong.cs # Báo cáo lưu lượng
│ │
│ ├── 📁 Utilities/ # Helper Classes
│ │ ├── PasswordHelper.cs # PBKDF2 hashing
│ │ ├── ImageHelper.cs # Xử lý ảnh
│ │ └── Logger.cs # Ghi log
│ │
│ ├── App.config # Configuration
│ └── packages.config # NuGet packages
│
├── 📁 packages/ # NuGet packages (local)
└── ParkingManager.sln # Solution file
| Thành phần | Yêu cầu |
|---|---|
| OS | Windows 10/11 (64-bit) |
| Framework | .NET Framework 4.8 |
| Database | SQL Server 2016+ |
| IDE | Visual Studio 2019/2022 |
| Camera | Webcam USB hoặc IP Camera (RTSP) |
| NFC Reader | PC/SC compatible (tùy chọn) |
- Mở SQL Server Management Studio
- Kết nối đến SQL Server instance của bạn
- Chạy các script theo thứ tự:
-- 1. Tạo database và tables
01_CreateDatabase.sql
-- 2. Tạo stored procedures
02_StoredProcedures.sql
-- 3. Insert dữ liệu mẫu
03_SampleData.sqlSửa file ParkingManager/App.config:
<connectionStrings>
<add name="ParkingDB"
connectionString="Server=YOUR_SERVER;Database=ParkingDB;Trusted_Connection=True;TrustServerCertificate=True;"
providerName="System.Data.SqlClient" />
</connectionStrings>💡 Thay thế
YOUR_SERVERbằng tên SQL Server của bạn (VD:localhost,.\SQLEXPRESS,DESKTOP-ABC)
Đảm bảo 2 file model có trong thư mục bin/Debug/:
LP_detector_nano_61.onnx- Phát hiện biển sốLP_ocr_nano_62.onnx- Đọc ký tự
⚠️ Lưu ý: Hiện tại project sử dụng placeholder model. Để LPR hoạt động thực tế, cần thay bằng model đã train.
Cách 1: Visual Studio
- Mở
ParkingManager.sln - Nhấn
F5hoặcCtrl+F5để build và chạy
Cách 2: Command Line
# Restore packages
nuget restore ParkingManager.sln
# Build
msbuild ParkingManager.sln /p:Configuration=Debug
# Chạy
.\ParkingManager\bin\Debug\ParkingManager.exe| Tài khoản | Mật khẩu | Vai trò | Quyền hạn |
|---|---|---|---|
admin |
123456 |
Admin | Toàn quyền quản lý |
operator1 |
123456 |
Operator | Xử lý vào/ra, xem báo cáo |
| Phím tắt | Chức năng |
|---|---|
F1 |
Xử lý xe VÀO |
F2 |
Xử lý xe RA |
F5 |
Làm mới danh sách |
Esc |
Đóng form |
-
📋 Quản lý
- Danh sách xe - Quản lý xe đăng ký
- Quản lý thẻ - Gán/khóa thẻ NFC
- Lịch sử gửi xe - Tra cứu lượt gửi
-
💰 Tài chính
- Bảng giá - Thiết lập giá theo loại xe
- Báo cáo doanh thu - Thống kê thu nhập
-
📊 Thống kê
- Lưu lượng xe - Biểu đồ vào/ra
-
⚙️ Cấu hình
- Camera - Thiết lập 4 camera
- Người dùng - Quản lý tài khoản (Admin)
Hỗ trợ nhiều loại nguồn:
| Loại | Ví dụ |
|---|---|
| USB Webcam | 0, 1, 2 (index) |
| IP Camera RTSP | rtsp://admin:password@192.168.1.100:554/stream1 |
| HTTP Stream | http://192.168.1.100:8080/video |
| Loại xe | Giá/giờ | Nửa ngày | Cả ngày | Qua đêm | Tháng |
|---|---|---|---|---|---|
| Ô tô | 10,000đ | 50,000đ | 80,000đ | 100,000đ | 1,500,000đ |
| Xe máy | 3,000đ | 15,000đ | 25,000đ | 30,000đ | 200,000đ |
📝 Có thể tùy chỉnh trong Quản lý → Bảng giá
| Package | Version | Mục đích |
|---|---|---|
| Microsoft.ML.OnnxRuntime | 1.21.0 | ONNX model inference |
| OpenCvSharp4 | 4.10.0 | Computer vision |
| OpenCvSharp4.Extensions | 4.10.0 | Bitmap conversion |
| OpenCvSharp4.runtime.win | 4.10.0 | Native libraries |
| System.Drawing.Common | 9.0.4 | GDI+ graphics |
- Thuật toán: PBKDF2 (RFC 2898)
- Iterations: 10,000
- Salt: 32 bytes random
- Hash: 32 bytes
- Capture frame từ camera (OpenCvSharp)
- Preprocess resize 640x640, letterbox padding
- Detect biển số với YOLOv8 ONNX model
- Crop vùng biển số
- OCR đọc ký tự với CTC decoding
Index: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
Char: 1 2 3 4 5 6 7 8 9 A B C D E F G H K L M N P S T U V X Y Z 0
- Mỗi camera stream chạy trên background thread
- Sử dụng
ConcurrentQueue<Mat>để buffer frames - UI update qua
Control.BeginInvoke() - Proper
Dispose()cho Mat và Bitmap
| Table | Mô tả |
|---|---|
NguoiDung |
Tài khoản người dùng |
Xe |
Thông tin xe đăng ký |
TheNFC |
Thẻ NFC |
LuotGuiXe |
Lịch sử gửi xe |
BangGia |
Bảng giá |
Camera |
Cấu hình camera |
CauHinh |
Cấu hình hệ thống |
AuditLog |
Nhật ký hoạt động |
❌ Login failed for user 'xxx'
→ Kiểm tra connection string và quyền truy cập SQL Server
❌ Could not load file or assembly 'OpenCvSharp...'
→ Copy thư mục runtimes từ packages vào bin/Debug
→ Kiểm tra URL camera trong Cấu hình → Camera
MIT License - Copyright © 2024
Dự án được phát triển với sự hỗ trợ của GitHub Copilot.
Parking Manager - Giải pháp quản lý bãi đỗ xe thông minh 🚗