Nhiễu có thể coi như sự đột biến của một điểm ảnh so với các điểm lân cận. Lọc nhiễu ảnh nhằm mục đích loại bỏ các đột biến của ảnh, ở đây ta sử dụng phương pháp lọc số dựa trên tính dư thừa thông tin không gian, các pixel lân cận có thể có cùng hoặc gần cùng một số đặc tính. Trong kỹ thuật này, người ta sử dụng một mặt nạ di chuyển khắp ảnh gốc. Tùy theo tổ hợp điểm đang xét với các điểm lân cận mà ta sử dụng kỹ thuật lọc tuyến tính hay phi tuyến. Điểm ảnh chịu tác động của biến đổi là điểm ở tâm mặt nạ.
Chương 3: THIẾT KẾ - THI CÔNG HỆ THỐNG 3.1 Sơ đồ khối của hệ thống
3.1.1 Yêu cầu hệ thống
Với tiêu chí thiết kế, xây dựng một bãi giữ xe thông minh, dễ sử dụng. Hệ thống có các yêu cầu sau:
Khối xử lý trung tâm nhận được tín hiệu gửi về từ module RFID.
Khối xử lý trung tâm kết nối được với khối xử lý ảnh để nhận dạng biển số. Khối xử lý trung tâm gửi dữ liệu ra khối hiển thị và điều khiển động cơ servo
cho phép xe ra – vào.
3.1.2 Thiết kế sơ đồ khối
Từ yêu cầu của hệ thống nhóm chúng em thiết kế sơ đồ khối như sau:
Hình 3. 1: Sơ đồ khối hệ thống
Chức năng từng khối:
Khối nguồn có chức năng cấp nguồn cho toàn mạch.
Khối xử lý trung tâm: Điều khiển các hoạt động của mạch, lập trình kết nối với các linh kiện, module trong mạch.
Khối RFID RC522: Đọc thẻ khi xe ra vào và đếm số xe sau mỗi lần đọc thẻ. Khối PC: Phần mềm PC có chức năng kết hợp với camera với đầu đọc RFID để
xử lý dữ liệu xe ra vào, cùng đó kết hợp với khối xử lý trung tâm để quản lý hệ thống.
Khối hiển thị: Hiển thị thông báo của bãi xe.
Khối động cơ: Điều khiển Servo đóng mở cho phép xe ra - vào.
3.1.3 Hoạt động của hệ thống
Hệ thống hoạt động có 3 chế độ:
Khi có xe vào đúng vị trí, hành khách được nhận thẻ và tự quẹt thẻ. Khi thẻ được quét thì camera sẽ chụp ảnh và gửi về máy tính để nhận dạng biển số. Các thông tin (biển số, mã thẻ, thời gian gửi) được lưu vào một cơ sở dữ liệu của hệ thống và hệ thống sẽ mở sevor để xe chạy vào. Sau khi xe chạy vào thì hạ sevor xuống. Khi xe ra thẻ được quét, camera cũng sẽ chụp lại hình ảnh xe và biển số xe, dựa vào mã ID của thẻ mà so sánh, nếu đúng với biển số xe ban đầu thì cho xe ra (có thể mở rộng thêm tính thời gian để thu tiền gửi xe) và sevor tự động mở cho xe chạy ra còn nếu không trùng khớp hệ thống sẽ thông báo không trùng biển số. Trường hợp khách hàng mất thẻ từ nên việc lấy xe bằng quá trình quẹt thẻ không
được thực hiện. Như vậy, hành khách muốn lấy xe buộc phải chứng minh xe mình được gửi trong bãi xe bằng các giấy tờ thùy thân. Nhân viên kiểm tra giấy tờ của khách, kiểm tra biển số xe có tồn tại trong hệ thống cơ sở dữ liệu không và sau đó giải quyết.
3.2 Thiết kế
Theo sơ đồ khối ta sẽ thiết kế kế phần cứng bao gồm các phần: Khối xử lý trung tâm: Arduino Uno
Khối RFID: module RC522
Khối động cơ: động cơ servo mini 5V Khối hiển thị: LCD 20x4
Khối nguồn: sử dụng nguồn máy tính
3.2.1 Khối động cơ
Yêu cầu thiết kế: khối này điều khiển đóng – mở cổng khi xe vào và xe ra. Lựa chọn phần cứng: để ứng dụng việc đóng mở cửa ta thường nghĩ đến động cơ
Servo. Vì hệ thống nhỏ nên ta sẽ chọn loại động cơ Servo 5V minni là đủ để đáp ứng cho yêu cầu điều khiển, tối đa giải pháp kinh tế.
Kết nối Arduino: do Servo mini chỉ có 3 chân và đề tài này chỉ sử dụng 2 Servo gồm nguồn, mas và chân điều khiển. Ta kết nối nguồn và mass vào chân nguồn và mas của Arduino còn chân điều khiển nối vào chân 5 và 6.
Hình 3. 2: Sơ đồ kết nối Arduino với 2 servo
Giải thích nguyên lý: khi có tín hiệu từ Arduino gửi về Servo sẽ điều khiển đóng – mở.
3.2.2 Khối hiển thị
Yêu cầu thiết kế: khối hiển thị có chức năng hiển thị thông tin điều khiển giúp cho hành khách quan sát dễ dàng. Trong đề tài này khối hiển thị được nhóm sử dụng để hiển thị trình trạng của bãi giữ xe hoặc thông báo đến hành khách khi hệ thống xảy ra lỗi.
Lựa chọn phần cứng: để thiết kế việc hiển thị trong hệ thống điển tử nhỏ, người ta thường sử dụng LCD, led 7 đoạn, led ma trận. Tuy nhiên led 7 loạn và led ma trận thường thích hợp cho việc hiển thị ngày là chính. Ngày nay, thiết bị hiển thị LCD được sử dụng rất nhiều trong các ứng dụng vi điều khiển.
+ LCD có rất nhiều ưu điểm so với các dạng hiển thị khác.
+ LCD có khả năng hiện thị kí tự đa dạng, trực quan (chữ, số và kí tự đồ họa).
+ Dễ dàng đưa vào mạch ứng dụng theo nhiều giao thức khác nhau. + Tốn rất ít tài nguyên hệ thống và giá thành rẻ.
Trên trị trường có nhiều loại LCD khác nhau với kích thước và tính năng đa dạng, ở đây hệ thống cần hiển thị thông tin, cũng như để thiết kế hệ thống gọn gàng, nhỏ đẹp ta chọn 20x04 là đủ cho yêu cầu thiết kế. Để giao tiếp được arduino với LCD thì ta chọn
phương thức giao tiếp với module I2C vì: hạn chế được số lượng dây và giúp thiết kế phần cứng dễ dàng và gọn gàng. Kết nối: STT LCD I2C ARDUINO 1. VCC 5V 2. GND GND 3. SDA PIN A4 4. SCL PIN A5
Bảng 3. 1: Bảng nối chân giữa LCD và arduino
Sơ đồ nguyên lý:
Hình 3. 3: Sơ đồ kết nối Arduino với LCD
Giải thích nguyên lý: khối hiển thị được kết nối với Arduino Uno để hiển thị thông tin tình hình trạng thái bãi giữ xe.
3.2.3 Khối RFID
Yêu cầu thiết kế: khối RFID có nhiệu vụ đọc mã UID từ thẻ RFID sau đó chuyển mã UID thành chuỗi số rồi gửi về Arduino, gửi về PC.
Phương án chọn phần cứng: như yêu cầu hệ thống phần mềm trên máy tính ta sẽ kết hợp giữa các camera và công nghệ RFID để quản lý xe ra vào. Ở đây ta sử
người ta sẽ thường chọn các module đầu đọc thẻ có sẵn với các tần số nhác nhau như 125khz, 13.56Mhz, 433Mhz,…
Kết luận ở đây ta lựa chọn đầu lọc thẻ 13.56 Mhz RC522 vì khoảng cách không cần xa, với mức giá rẻ thiết kế nhỏ gọn, module này sử dụng lựa chọn hàng đầu cho các ứng dụng về ghi đọc thẻ RFID.
Kết nối với Arduino:
STT RFID RC522 ARDUINO 1. 3.3V 3.3V 2. RST PIN 9 3. GND GND 4. MISO PIN 11 5. MOSI PIN 12 6. SCK PIN 13 7. SDA PIN 10
Bảng 3. 2: Sơ đồ kết nối với RC522
Sơ đồ nguyên lý:
Giải thích nguyên lý: khi có thẻ tag được quét vào hay thẻ mới có tác động vào RC522 thì sẽ gửi mã thẻ đã quét cho PC.
3.2.4 Khối nguồn
Yêu cầu thiết kế: khối này có nhiệm vụ cung cấp điện cho tất cả các khối còn lại trong mạch hoạt động.
Phương án lựa chọn: để đáp ứng được yêu cầu của hệ thống thì ta cần tính toán điện áp và dòng điện để cung cấp cho các linh kiện hoạt động bình thường và sử dụng nguồn một cách hợp lý. Theo đó các giá trị điện áp và tổng dòng điện sẽ được liệt kê trong bảng sau:
STT THIẾT BỊ SỐ LƯỢNG ĐIỆN ÁP DÒNG ĐIỆN TỔNG DÒNG ĐIỆN
1. ARDUINO UNO 3 5V 30mA 90mA
2. MODULE RC522 2 3.3V 13 -26mA 26–52mA
3. SERVO MINI 2 5V 550mA 1100mA
4. LCD 20X4 1 5V 25mA 25mA
TỔNG ~1.3A
Bảng 3. 3: Dòng và áp quy định các link kiện
Phương hướng thiết kế: các thiết bị được sử dụng trong đề tài này chủ yếu sử dụng nguồn trực tiếp từ máy tính.
3.2.5 Sơ đồ nguyên lý toàn mạch
Sau khi thực hiện kết nối các thành phần lại, ta được sơ đồ nguyên lý toàn mạch như sau:
3.3 Thiết kế phần mềm
3.3.1 Thiết kế phần mềm cho PC
Từ yêu cầu của hệ thống ta tiến hành thiết kế giao diện phần mềm để quản lý xe ra vào như sau:
Đọc hình ảnh từ 2 camera.
Sử dụng đầu đọc thẻ RFID để chụp ảnh xe vào và chụp ảnh xe ra. Dữ liệu hệ thống được lưu vào file EXCEL.
3.3.2 Lưu đồ giải thuật chương trình chính
Hình 3. 5: Lưu đồ giải thuật chương trình chính
Giải thích lưu đồ:
Đầu tiên khởi tạo các cổng kết nối UART, khởi tạo các biến xử dụng trong chương trình.
Sau đó kết nối camera và RFID, nhận dữ liệu và xử lý theo vòng lặp của serial port.
Đọc dữ liệu để chụp ảnh sau đó xử lý ảnh để xử lý xe ra/vào.
3.3.3 Lưu đồ chương trình con khởi tạo, điều khiển LCD – Servo
Hình 3. 6: Lưu đồ chương trình khối xử lý trung tâm
Giải thích lưu đồ:
Khởi tạo thư viện, khởi tạo serial port.
Setup cho LCD và servo.
Kiểm tra có nhận dữ liệu từ PC. Hiển thị LCD và mở servo.
3.3.4 Lưu đồ chương trình con RFID
Hình 3. 7: Lưu đồ chương trình RFID
Giải thích lưu đồ:
Đầu tiên khởi tạo thư viện cần thiết, định nghĩa các chân sử dụng, thiết lập chuẩn giao tiếp.
Kiểm tra có quét hay không. Nếu có tiến hành gửi 4 byte cho PC.
3.3.5 Thiết kế giao diện quản lý trên PC
Sau nhiều lần chỉnh sửa, tham khảo các giao diện của các bãi giữ xe, thì nhóm em đã đưa ra được giao diện tối ưu nhất có thể.
Giao diện gồm có camera ngõ ra và ngõ vào hoạt động liên tục, ảnh xe vào, ảnh xe ra, ảnh biển số xe sau khi đã xử lý, bảng thông tin xe của khách, ô hiển thị số lượng xe còn trong bãi, nút xem lịch sử xe trong ngày.
Hình 3. 8: Giao diện quản lý trên PC
3.4 Thi công
3.4.1 Thiết kế mạch in
Sau khi đã thiết kế sơ đồ khối, sơ đồ nguyên lý toàn mạch thì ta tiến hành vẽ mạch in đã thiết kế, bao gồm 2 mạch in giống như hình 3.7 để kết nối giữa Arduino và module RFID nhắm tăng tính ổn định cho hệ thống.
Tiếp theo là mạch in kết nối Arduino với động cơ servo và LCD:
Hình 3. 10: Mạch in kết nối Arduino với servo và LCD
3.4.2 Board mạch đã hoàn thiện
Sau khi thiết kế sơ đồ nguyên lý phần cứng và tiến hành thi công mạch nay nhóm đã hoàn thành xong và hình ảnh của mạch như sau:
Sau đó, tiến hành đóng hộp board mạch cho gọn gàng:
Hình 3. 12: Board mạch đã đóng hộp
Hình 3. 14: Board mạch sau khi đã đóng hộp
3.4.3 Thi công mô hình bãi xe
Dựa theo lựa chọn thiết kế ban đầu, cấu trúc thiết kế mô hình của nhóm gồm 2 làn cho xe ra – vào, có 1 nhà quản lý bãi giữ xe, 2 động cơ servo, các vị trí để xe trong bãi. Formex là vật liệu chính làm nên mô hình.
Chương 4 : HỆ THỐNG NHẬN DẠNG BIỂN SỐ XE MÁY 4.1 Mô hình tổng quát nhận dạng biển số xe máy
Mục đích của đề tài xây dựng một chương trình đọc biển số xe tạo một vị trí cố định, ví dụ lối vào của khu vực bãi đậu xe, hệ thống xây dựng dựa vào một máy tính PC thông thường có giao tiếp với một máy ghi hình (camera hay webcam) nhằm đáp ứng trạng thái chụp ảnh, hay một máy ảnh được chụp từ máy ảnh, để tạo ra một ảnh (ảnh gốc) được đưa vào máy tính PC. Từ những hình ảnh thu được có chứa biển số xe thì phần mền sẽ tự xử lý và kết quả đưa ra biển số xe. Một khi biển số xe được phát hiện (nhận dạng), các chữ số của nó được đọc và xuất ra trên giao diện người dung và đối chiếu lại cơ sở dữ liệu.
Quá trình nhận dạng biển số xe từ ảnh thu được thực hiện theo từng giai đoạn khác nhau, có thể tóm tắt theo sơ đồ khối như sau:
Hình 4. 1: Sơ đồ hệ thống nhận dạng biển số xe máy
Trích vùng biển số: khối này có chức năng tách biển số từ ảnh chụp bằng các phương pháp xử lý ảnh. Kết quả của nó là ảnh biển số cắt ra từ ảnh chụp. Đây là một công việc rất khó khăn vì ta không biết được vị trí chính xác của biển số. Ngoài ra còn phụ thuộc vào độ sáng ảnh chụp.
Tách kí tự: sau khi trích biển số, chúng ta bắt đầu phân đoạn kí tự. Khối này thực hiện tách kí tự có trong biển số, tạo thành tập ảnh riêng biệt các ký tự phục vụ việc nhận dạng kí tự. Ảnh của lỗi kí tự là ảnh trắng đen.
Nhận dạng kí tự: sau khi phân đoạn, tách được ký tự trong biển số và tạo thành một chuỗi ký tự. Chuỗi này đưa vào khối nhận dạng để tiến hành nhận dạng từng ký tự. Sau khi nhận dạng ký tự, hệ thống sẽ hiển thị thông báo trên giao diện của máy tính quản lý hệ thống, đồng thời lưu lại dữ liệu vừa nhận được.
4.2 Ảnh đầu vào
Ảnh được chụp là ảnh chụp phía sau xe chứa một phần xe và ảnh biển số. Ảnh biển số trong phạm vi của đề tài này xử lý là mô phỏng các ký tự tự tạo.
4.3 Tiền xử lý
Ảnh chụp vào thường là ảnh màu, ta tiến hành chuyển ảnh màu thành ảnh xám, tiếp tục nhị phân hóa thành ảnh trắng đen, sau đó tiến hành trích vùng biển số dựa vào các vùng liên thông.
Việc xác định ngưỡng sáng rất quan trọng nó quyết định đến khả năng chọn đúng vùng biển số. Chọn chính xác vùng biển số thật sự rất khó ta chỉ có thể xác định chính xác trong một khoảng nào đó. Thông qua lược đồ xám ta nhận thấy vùng biển số thường sẽ có độ sáng tương đối lớn, vì vậy ta sẽ xác định lược đồ xám lớn nhất trong khoảng này và ngưỡng xám cần chọn sẽ thuộc vùng này nhờ nó ta sẽ giảm được thời gian lặp tìm ngưỡng xám. Kết quả này có được nhờ vào quá trình khảo sát thống kê trên nhiều ảnh và đây là kết quả tối ưu nhất mà ta có thể tìm được.
Ảnh nhị phân là ảnh mà giá trị các điểm ảnh chỉ có hai giá trị 0 và 1 (trắng và đen). Để chuyển từ ảnh xám về ảnh nhị phân ta đặt một ngưỡng thích hợp để so sánh. Mức xám của ảnh sẽ được dùng để so sánh với giá trị ngưỡng này.
Biếu thức f(u) = { 0, 𝑢 < 𝑛1, 𝑥 ≥ 𝑛
Hình 4. 2: Quá trình tiền xử lý
4.3 Phân vùng ảnh và tách biển số 4.3.1 Phân vùng ảnh 4.3.1 Phân vùng ảnh
Phân vùng ảnh là bước then chốt trong xử lý ảnh. Giai đoạn này nhằm phân tích ảnh thành những thành phần có cùng tính chất nào đó dựa theo biên hay các vùng liên thông có thể là cùng mức xám, cùng màu,…
Nếu phân vùng dựa trên các vùng liên thông ta gọi là kỹ thuật phân vùng miền đồng nhất. Nếu ta phân vùng dựa theo biên gọi là kỹ thuật phân vùng biên. Ngoài ra còn có các kỹ thuật khác như phân vùng dựa theo biên độ, phân vùng dựa theo kết cấu. Để phân tích các đối tượng trong ảnh, chúng ta cần phải phân biệt được các đối tượng cần quan tâm với phần còn lại của ảnh. Những đối tượng này có thể tìm được nhờ