1. Trang chủ
  2. » Thể loại khác

ĐỒ ÁN CƠ SỞ 5 ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG NHẬN DẠNG BIỂN SỐ XE. GIẢNG VIÊN HƯỚNG DẪN: ThS. NGUYỄN VĂN BÌNH

34 23 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Ứng Dụng Nhận Dạng Biển Số Xe
Tác giả Võ Thị Minh Nguyệt
Người hướng dẫn ThS. Nguyễn Văn Bình
Trường học Đại học Đà Nẵng
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ án
Năm xuất bản 2021
Thành phố Đà Nẵng
Định dạng
Số trang 34
Dung lượng 1,99 MB

Cấu trúc

  • LỜI CẢM ƠN

  • CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI

  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

  • CHƯƠNG 3: KHẢO SÁT THỰC TRẠNG

    • 3.1 Phần mềm nhận dạng biển số xe tự động của VietParking.vn

    • 3.2 Phần mềm nhận dạng biển số xe STM01

  • CHƯƠNG 4: THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH

    • 4.1 Xây dựng ý tưởng tổng quát

    • 4.2 Xây dựng mã nguồn

      • 4.2.1 Chuyển ảnh sang ảnh nhị phân

    • 4.2.4 Đánh dấu đối tượng và tách biển số xe

      • 4.2.2 Nhận và đọc lại văn bản

  • CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

    • 5.1 Hướng phát triển

    • 5.2 Kết luận chung

  • TÀI LIỆU THAM KHẢO

Nội dung

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT HÀN ĐỒ ÁN CƠ SỞ 5 ĐỀ TÀI XÂY DỰNG ỨNG DỤNG NHẬN DẠNG BIỂN SỐ XE SINH VIÊN THỰC HIỆN VÕ THỊ MINH NGUYỆT LỚP 18IT2 GIẢNG VIÊN HƯỚN[.]

CƠ SỞ LÝ THUYẾT

Trí tuệ nhân tạo là gì?

Trí tuệ nhân tạo (AI) là một lĩnh vực trong khoa học máy tính, được phát triển nhằm mục đích lập trình cho máy tính thực hiện các hành vi thông minh tự động, tương tự như con người.

Trí tuệ nhân tạo (AI) khác biệt với lập trình logic truyền thống nhờ vào việc áp dụng các hệ thống học máy, cho phép mô phỏng trí tuệ con người trong những tác vụ mà con người thực hiện hiệu quả hơn máy tính.

Trí tuệ nhân tạo cho phép máy tính phát triển khả năng tương tự như con người, bao gồm khả năng suy nghĩ, lập luận để giải quyết vấn đề, và giao tiếp hiệu quả nhờ vào việc hiểu ngôn ngữ.

Có bao nhiêu loại trí tuệ nhân tạo?

Công nghệ AI được chia làm 4 loại chính:

- Loại 1: Công nghệ AI phản ứng.

Công nghệ AI phản ứng có khả năng phân tích các động thái khả thi của cả bản thân và đối thủ, từ đó đưa ra giải pháp tối ưu nhất cho từng tình huống.

Deep Blue, một sản phẩm nổi bật của công nghệ AI, là chương trình chơi cờ vua tự động do IBM phát triển Nó có khả năng phân tích các nước cờ và dự đoán bước đi tiếp theo của đối thủ, từ đó đưa ra những nước đi tối ưu nhất.

Công nghệ AI với bộ nhớ hạn chế sử dụng kinh nghiệm quá khứ để đưa ra quyết định trong tương lai Đặc điểm nổi bật của công nghệ này là khả năng kết hợp với cảm biến môi trường, giúp dự đoán các tình huống có thể xảy ra và đưa ra quyết định tối ưu cho thiết bị.

Xe không người lái được trang bị nhiều cảm biến xung quanh và ở đầu xe, giúp tính toán khoảng cách với các phương tiện phía trước Công nghệ AI sẽ dự đoán khả năng va chạm và điều chỉnh tốc độ xe để đảm bảo an toàn.

- Loại 3: Lý thuyết trí tuệ nhân tạo

Công nghệ AI hiện nay có khả năng học hỏi và tự suy nghĩ, cho phép nó áp dụng kiến thức đã học để thực hiện các nhiệm vụ cụ thể Tuy nhiên, công nghệ này vẫn chưa được coi là một giải pháp khả thi trong thực tế.

Công nghệ AI hiện nay đã đạt đến mức độ tự nhận thức, có ý thức và khả năng hành xử giống như con người Nó không chỉ có thể thể hiện cảm xúc mà còn hiểu được cảm xúc của con người, đánh dấu một bước tiến vượt bậc trong lĩnh vực công nghệ.

AI và đến thời điểm hiện tại, công nghệ này vẫn chưa khả thi.

Giới thiệu về ngôn ngữ Python

Python là một ngôn ngữ lập trình hướng đối tượng, mạnh mẽ và dễ học, được phát triển bởi Guido van Rossum Với kiểu dữ liệu cấp cao và cơ chế cấp phát bộ nhớ tự động, Python nổi bật như một lựa chọn lý tưởng cho người mới bắt đầu Cú pháp rõ ràng và dễ hiểu của Python giúp nó nhanh chóng trở thành ngôn ngữ phổ biến cho việc viết script và phát triển ứng dụng trên nhiều nền tảng khác nhau.

Tính năng chính của Python

Python là một ngôn ngữ lập trình đơn giản và dễ học, với cú pháp rõ ràng và dễ đọc So với các ngôn ngữ khác như C++, Java hay C#, Python giúp lập trình viên tập trung vào việc tìm kiếm giải pháp thay vì lo lắng về cú pháp phức tạp, làm cho quá trình lập trình trở nên thú vị hơn.

Python là một ngôn ngữ lập trình miễn phí và mã nguồn mở, cho phép người dùng tự do sử dụng, phân phối và thậm chí áp dụng cho mục đích thương mại Với tính chất mã nguồn mở, bạn không chỉ có thể sử dụng các phần mềm và chương trình viết bằng Python mà còn có thể tùy chỉnh mã nguồn theo nhu cầu của mình Cộng đồng Python rất lớn và năng động, luôn nỗ lực cải thiện và cập nhật ngôn ngữ này.

Python có khả năng di chuyển linh hoạt giữa các nền tảng khác nhau mà không cần thay đổi mã nguồn Ngôn ngữ lập trình này hoạt động mượt mà trên hầu hết các hệ điều hành như Windows, macOS và Linux.

Khả năng mở rộng và tích hợp của Python cho phép dễ dàng kết hợp các đoạn mã viết bằng C, C++ và các ngôn ngữ khác, mang lại cho ứng dụng sự linh hoạt và sức mạnh vượt trội Điều này không chỉ cải thiện tính năng của ứng dụng mà còn cung cấp khả năng scripting mà các ngôn ngữ lập trình khác khó đạt được.

Python là một ngôn ngữ lập trình thông dịch cấp cao, giúp lập trình viên không phải lo lắng về việc quản lý bộ nhớ hay dọn dẹp dữ liệu thừa như trong C/C++ Khi chạy mã Python, ngôn ngữ này tự động chuyển đổi mã nguồn sang ngôn ngữ máy tính, cho phép bạn tập trung vào việc phát triển ứng dụng mà không cần quan tâm đến các hoạt động ở cấp thấp.

Python cung cấp một thư viện tiêu chuẩn phong phú, giúp đơn giản hóa quá trình lập trình bằng cách giảm thiểu khối lượng code cần viết Ví dụ, để kết nối với cơ sở dữ liệu MySQL trên máy chủ web, bạn chỉ cần nhập thư viện MySQLdb và sử dụng nó Những thư viện này đã được kiểm tra kỹ lưỡng và được hàng trăm lập trình viên sử dụng, đảm bảo tính ổn định và độ tin cậy cho code và ứng dụng của bạn.

Lập trình hướng đối tượng (OOP) trong Python cho phép bạn giải quyết các vấn đề phức tạp một cách trực quan Bằng cách sử dụng OOP, bạn có thể chia nhỏ những vấn đề này thành các phần dễ quản lý hơn thông qua việc tạo ra các đối tượng Mọi thứ trong Python đều mang tính chất hướng đối tượng, giúp tối ưu hóa quy trình lập trình.

Hình 2: Ứng dụng của Python

Xử lí ảnh

2.3.1 Xử lí ảnh là gì?

Con người thu nhận thông tin chủ yếu qua các giác quan, trong đó thị giác là yếu tố quan trọng nhất Gần đây, sự phát triển mạnh mẽ của phần cứng máy tính đã thúc đẩy sự tiến bộ trong lĩnh vực xử lý ảnh và đồ hoạ, với nhiều ứng dụng thiết thực trong đời sống hàng ngày Xử lý ảnh không chỉ là thao tác trên hình ảnh đầu vào mà còn nhằm tạo ra kết quả đầu ra mong muốn, có thể là một bức ảnh “tốt hơn” hoặc một kết luận cụ thể Vai trò của xử lý ảnh và đồ hoạ cũng rất quan trọng trong việc cải thiện tương tác giữa con người và máy móc.

Quá trình xử lý ảnh là thao tác trên ảnh đầu vào để đạt được kết quả mong muốn Kết quả đầu ra có thể là một bức ảnh “tốt hơn” theo yêu cầu hoặc một kết luận cụ thể.

Hình 3: Quá trình xử lý ảnh

2.3.2 Các bước cơ bản của hệ thống xử lí ảnh Ảnh có thể xem là tập hợp các điểm ảnh và mỗi điểm ảnh được xem như là đặc trưng cường độ sáng hay một dấu hiệu nào đó tại một vị trí nào đó của đối tượng trong không gian và nó có thể xem như một hàm n biến P(c1, c2, , cn) Do đó, ảnh trong xử lý ảnh có thể xem như ảnh n chiều Sơ đồ tổng quát của một hệ thống xử lý ảnh:

Hình 4 Các bước cơ bản của xử lý ảnh

Qua các camera (tương tự, số)

- Từ vệ tinh qua các bộ cảm ứng (Sensors)

- Qua các máy quét ảnh (Scaners)

Các thiết bị thu nhận ảnh có khả năng tạo ra ảnh đen trắng và được chia thành hai loại chính: Raster và Vector, tương ứng với hai loại ảnh phổ biến Việc xử lý ảnh là một phần quan trọng trong quá trình này.

Kết luận Ảnh “tốt hơn”

Nhìn chung các hệ thống thu nhận ảnh thực hiện 1 quá trình

 Cảm biến: biến đổi năng lượng quang học thành năng lượng điện

 Tổng hợp năng lượng điện thành ảnh

Sau khi hình ảnh được thu nhận, có thể xảy ra hiện tượng nhiễu hoặc độ tương phản thấp Do đó, cần sử dụng bộ tiền xử lý để cải thiện chất lượng ảnh.

Chức năng: lọc nhiễu, tăng hoặc giảm độ tương phản

Phân vùng ảnh là quá trình tách một hình ảnh thành các vùng thành phần để phục vụ cho việc phân tích và nhận dạng Chẳng hạn, khi nhận dạng chữ hoặc mã vạch trên phong bì thư nhằm phân loại, cần phải chia các thông tin như địa chỉ và tên người thành các từ và ký tự riêng biệt Đây là giai đoạn phức tạp nhất trong xử lý ảnh, dễ dẫn đến lỗi và làm giảm độ chính xác của kết quả nhận dạng Do đó, hiệu quả của việc nhận dạng hình ảnh phụ thuộc nhiều vào công đoạn phân vùng này.

2.3.2.4 Biểu diễn ảnh Ảnh trên máy tính là kết quả thu nhận theo các phương pháp số hoá được nhúng trong các thiết bị kỹ thuật khác nhau

Quá trình lưu trữ ảnh nhằm 2 mục đích:

Việc giảm thời gian xử lý ảnh phụ thuộc vào cách lưu trữ thông tin trong bộ nhớ, ảnh hưởng lớn đến hiển thị, in ấn và xử lý ảnh Ảnh được coi là tập hợp các điểm với kích thước đồng nhất; càng nhiều điểm ảnh, bức ảnh càng đẹp, mịn và chi tiết hơn, được gọi là độ phân giải Lựa chọn độ phân giải phù hợp cần dựa vào nhu cầu sử dụng và đặc trưng của từng ảnh cụ thể, thường được biểu diễn theo hai mô hình cơ bản.

2.3.2.5 Nhận dạng và nội suy

Nhận dạng ảnh là quá trình xác định và phân loại hình ảnh bằng cách so sánh với các mẫu đã được học trước đó Quá trình này cho phép nội suy, tức là đưa ra phán đoán dựa trên những gì đã được nhận diện.

Có nhiều phương pháp phân loại ảnh, và theo lý thuyết nhận dạng, các mô hình toán học về ảnh được chia thành hai loại nhận dạng cơ bản.

- Nhận dạng theo tham số

- Nhận dạng theo cấu trúc.

Hiện nay, trong lĩnh vực khoa học và công nghệ, có nhiều phương pháp nhận dạng phổ biến, bao gồm nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn bản (Text), nhận dạng vân tay, nhận dạng mã vạch và nhận dạng khuôn mặt.

Ảnh là một đối tượng phức tạp với nhiều yếu tố như đường nét, độ sáng tối và dung lượng điểm ảnh, gây ra nhiễu trong quá trình thu ảnh Trong các khâu xử lý và phân tích ảnh, việc đơn giản hóa các phương pháp toán học là cần thiết để thuận tiện cho việc xử lý Đồng thời, người ta cũng mong muốn mô phỏng quy trình tiếp nhận và xử lý ảnh giống như con người Hiện nay, nhiều bước xử lý đã áp dụng các phương pháp trí tuệ nhân tạo, từ đó phát huy các cơ sở tri thức trong lĩnh vực này.

Bài toán chuyển hệ màu của ảnh

2.4.1 Ảnh màu Ảnh màu là một ma trận các pixel mà mỗi pixel biểu diễn một điểm màu Mỗi điểm màu được biểu diễn bằng bộ 3 số (r,g,b là ba màu chính của ánh sáng khi tách ra từ lăng kính Khi trộn ba màu trên theo tỉ lệ nhất định có thể tạo thành các màu khác nhau) Để tiện cho việc xử lý ảnh thì sẽ tách ma trận pixel ra 3 channel red,green, blue.

Hình 5 Ví dụ ảnh màu

2.4.2 Ảnh xám Ảnh xám hay còn gọi là ảnh đơn sắc (monochromatic) Ảnh 8 mức xám mỗi điểm ảnh sẽ có giá trị nằm trong đoạn [0-7], ảnh 256 mức xám mỗi điểm ảnh sẽ có giá trị nằm trong đoạn [0-255].

Giá trị của điểm ảnh bằng 0 đại diện cho điểm ảnh tối (đen), giá trị điểm ảnh lơn nhất đại diện cho điểm ảnh sáng (trắng).

2.4.3 Chuyển hệ màu của ảnh

Mỗi pixel trong ảnh màu được biểu diễn bằng ba giá trị (r, g, b), trong khi ảnh xám chỉ cần một giá trị x Để chuyển đổi từ ảnh màu sang ảnh xám, ta sử dụng công thức x = r * 0.299 + g * 0.587 + b * 0.114 Tuy nhiên, việc chuyển đổi ngược lại từ giá trị x để tìm ra các giá trị r, g, b sẽ không đảm bảo độ chính xác.

Trong không gian màu RGB, để có 1 ảnh xám cần có phải có giá trị kênh màu Red(x, y) = Green(x, y) = Blue(x, y) (với x, y lần lượt là tọa độ của điểm ảnh).

Biến đổi ảnh xám: Khi ta đưa vào một ảnh màu, ta sẽ nhận được một ảnh xám

Hình 6 Ảnh màu biến đổi thành ảnh xám

Hình ảnh lưu trữ dưới dạng RGB (Đỏ-Xanh lá-Xanh dương) bao gồm ba ma trận xám tương ứng với các màu này Nhiệm vụ của bạn là tổng hợp ba ma trận này thành một ma trận duy nhất, và một trong những công thức phổ biến để thực hiện điều này là

 Y: ma trận xám cần tìm

 R: ma trận xám đỏ của ảnh

 G: ma trận xám lục của ảnh

 B: ma trận xám lam của ảnh

Giới thiệu về OpenCV

OpenCV là thư viện mã nguồn mở hàng đầu cho thị giác máy tính, giúp xử lý ảnh và hỗ trợ máy học Thư viện này còn cung cấp các tính năng tăng tốc GPU, cho phép thực hiện các tác vụ trong thời gian thực một cách hiệu quả.

OpenCV là một thư viện mã nguồn mở được phát hành theo giấy phép BSD, hoàn toàn miễn phí cho cả mục đích học thuật và thương mại Thư viện hỗ trợ nhiều ngôn ngữ lập trình như C++, C, Python, và Java, đồng thời tương thích với các hệ điều hành Windows, Linux, Mac OS, iOS và Android Được thiết kế với hiệu suất cao và tập trung vào ứng dụng thời gian thực, OpenCV được viết bằng C/C++ tối ưu hóa, cho phép tận dụng xử lý đa lõi Với hơn 47 nghìn người dùng và hơn 6 triệu lượt tải xuống, OpenCV được sử dụng rộng rãi trong nhiều lĩnh vực, từ nghệ thuật tương tác đến khai thác mỏ, bản đồ trên web và công nghệ robot.

2.5.2 Chức năng có trong OpenCV

Thư viện OpenCV bao gồm một số tính năng nổi bật như:

 Bộ công cụ hỗ trợ 2D và 3D

 Nhận dạng chuyển động, đối tượng, hành vi,

 Tương tác giữa con người và máy tính

 Hỗ trợ thực tế tăng cường

2.5.3 Các ứng dụng của OpenCV

OpenCV được áp dụng rộng rãi trong nhiều lĩnh vực, bao gồm hình ảnh street view, kiểm tra và giám sát tự động, robot và xe hơi tự lái, phân tích hình ảnh y tế, tìm kiếm và phục hồi hình ảnh/video, tạo phim với cấu trúc 3D từ chuyển động, cũng như nghệ thuật sắp đặt tương tác.

Trong bài hôm nay em sẽ thực hiện ứng dụng openCV vào Python để nhận diện biển số xe.

Giới thiệu về các thư viện sử dụng

Numpy là thư viện cốt lõi cho khoa học máy tính trong Python, giúp tính toán các mảng nhiều chiều lớn với các hàm tối ưu Thư viện này đặc biệt hữu ích cho các phép toán liên quan đến Đại Số Tuyến Tính.

Python-tesseract là thư viện nhận dạng ký tự quang học (OCR) dành cho Python, cho phép người dùng nhận diện và trích xuất văn bản từ hình ảnh một cách hiệu quả.

Bài viết này sẽ hướng dẫn cách tích hợp Tesseract vào dự án Android Studio Mặc dù Android SDK đã cung cấp API nhận dạng chữ viết, nhưng số lượng ngôn ngữ hỗ trợ còn hạn chế, chủ yếu là các ngôn ngữ có nguồn gốc Latin như tiếng Anh, Pháp, Ý Đối với các ngôn ngữ như tiếng Việt, Nhật Bản và Trung Quốc, Tesseract OCR là giải pháp hiệu quả Tesseract-android-tools là kho lưu trữ chính thức cho thư viện này, tuy nhiên, để sử dụng, người dùng cần tự xây dựng thư viện thông qua một loạt lệnh, điều này có thể phức tạp.

Instead, we can utilize the rmtheis/tess-two repository, which is a fork of the tesseract-android-tools The author has added several useful features, making it easy to integrate into an Android Studio project Now, let's proceed to work with rmtheis/tess-two.

Matplotlib là một thư viện toàn diện để tạo trực quang tĩnh, hoạt hình và tương tác trong Python.

Matplotlib là một thư viện mạnh mẽ cho phép tạo ra các biểu đồ chất lượng xuất bản ở nhiều định dạng khác nhau, phù hợp với cả môi trường bản cứng và tương tác Thư viện này có thể được sử dụng trong các tập lệnh Python, shell Python và Ipython, cũng như trên các máy chủ ứng dụng web và trong các bộ công cụ giao diện người dùng đồ họa khác nhau.

Pillow (PIL) là một thư viện mã nguồn mở miễn phí cho ngôn ngữ lập trình Python, cung cấp khả năng mở, xử lý và lưu trữ nhiều định dạng tệp hình ảnh khác nhau.

Nó có sẵn cho Windows, Mac OS X và Linux.

Pillow cung cấp một số thủ tục tiêu chuẩn cho thao tác hình ảnh Bao gồm các:

• Thao tác trên mỗi pixel

• Mặt nạ và xử lý minh bạch

• Lọc hình ảnh, chẳng hạn như làm mờ, đường viền, làm mịn hoặc tìm cạnh

• Tăng cường hình ảnh, chẳng hạn như làm sắc nét, điều chỉnh độ sáng, độ tương phản hoặc màu sắc

• Thêm văn bản vào hình ảnh và nhiều hơn nữa

KHẢO SÁT THỰC TRẠNG

Phần mềm nhận dạng biển số xe tự động của VietParking.vn

a, Lợi ích mang lại từ ứng dụng Đối với chủ xe:

Bảo vệ tài sản phương tiện là một quy trình quản lý khép kín, sử dụng hệ thống thông minh hiện đại để lưu trữ hình ảnh và thông tin xe ra vào, đảm bảo mọi dữ liệu phải khớp chính xác với biển số đăng ký.

 Trả phí có lưu lại thông tin rõ ràng, chính xác Tránh xảy ra mâu thuẫn

 Không tốn thời gian chờ đợi xe vào bãi hoặc ra bãi

 Các thông tin của chủ xe được bảo mật hơn Tránh bị kẻ gian lợi dụng lấy cắp thông tin để lấy cắp xe. Đối với ban quản lý:

 Tiết kiệm chi phí quản lý với số lượng xe lớn

Hệ thống bảo vệ tự động giúp tiết kiệm chi phí thuê nhân viên, với khả năng hoạt động thay thế con người lên đến 80% Nhờ đó, chỉ cần 1 hoặc 2 nhân viên bảo vệ có thể quản lý hiệu quả khoảng 10.000 xe.

 Quản lý doanh thu chặt chẽ, tránh thất thoát.

 Truy Xuất dữ liệu thông tin xe, biển số xe, doanh thu theo thời gian nhanh.

 Thể hiện bãi giữ xe văn minh, lịch sự, hiện đại trong mắt khách hàng b, Các thiết bị của hệ thống

Máy tính để bàn là thiết bị thiết yếu trong hệ thống nhận dạng biển số xe, giúp cài đặt phần mềm quản lý xe ra vào cổng và lưu trữ thông tin Ngoài ra, nó còn kết nối với các thiết bị khác để đảm bảo hệ thống hoạt động hiệu quả theo nhu cầu.

 Barrier tự động là thiết bị công nghệ hiện đại làm việc hoàn to

Phần mềm nhận dạng biển số xe đóng vai trò quan trọng nhất trong hệ thống Nếu phần mềm không ổn định và chưa được thử nghiệm rộng rãi trong các điều kiện và khu vực khác nhau, sẽ dẫn đến nhiều vấn đề phát sinh.

Phần mềm nhận dạng là phần quan trọng nhất của hệ thống

Tuy nhiên phần mềm còn có một số nhược điểm cần khắc phục như sau:

+ Hệ thống bị đơ, không hoạt động

+ Phần mềm báo lỗi liên tục

+ Khả năng tách TEST từ biển số để so sánh dữ liệu không chuẩn xác

Khi có lượng xe ra vào lớn và liên tục, các thiết bị liên quan có thể gặp khó khăn trong việc truyền dữ liệu về máy chủ để xử lý.

Phần mềm nhận dạng biển số xe STM01

Phần mềm này có các tính năng nổi bật như sau:

Công nghệ nhận dạng biển số xe cơ giới tại Việt Nam đạt độ chính xác trên 95% và thời gian nhận dạng nhanh chóng từ 50-100ms với ảnh có kích thước 640×480 Nhờ đó, hệ thống có khả năng phát hiện vi phạm giao thông ngay cả khi xe di chuyển với tốc độ trên 80km/h.

- Phân tích đặc điểm của các loại biển số xe tại Việt Nam để tích hợp công nghệ nhận dạng

- Tích hợp công nghệ phân tích ảnh để xác định tín hiệu đèn xanh, đèn đỏ trong ứng dụng quản lý giám sát vi phạm vượt đèn đỏ.

- Tích hợp công nghệ phát hiện chuyển động

Ứng dụng phát hiện biển số đen đã được tích hợp công nghệ tìm kiếm và đối chiếu linh hoạt, tối ưu hóa khả năng nhận diện với độ chính xác vượt trội lên đến 98,5%.

Tích hợp công nghệ web server giúp người quản lý dễ dàng tìm kiếm, thiết lập báo cáo, in biên bản và kiểm tra hoạt động của hệ thống thông qua mạng nội bộ hoặc internet.

Phần mềm được tích hợp cơ chế giao tiếp Client-Server, cho phép thực hiện quá trình bắt tay và giao tiếp hiệu quả Điều này giúp gửi và nhận thông tin qua lại một cách linh hoạt giữa nhiều phần mềm khác nhau.

Phần mềm được ứng dụng cho:

Phòng cảnh sát giao thông tỉnh Kiên Giang đã ứng dụng thành công công nghệ trong quản lý vi phạm giao thông, đồng thời áp dụng hệ thống quản lý phương tiện tự động tại trạm cân xi măng Hoàng Thạch Việc này không chỉ nâng cao hiệu quả giám sát giao thông mà còn cải thiện quy trình kiểm tra và quản lý phương tiện, góp phần đảm bảo an toàn và trật tự giao thông trên địa bàn.

Sau khi hoàn tất lắp đặt và vận hành tại thành phố Rạch Giá, tỉnh Kiên Giang, hệ thống sẽ được triển khai ứng dụng tại nhiều tỉnh, thành phố khác trên toàn quốc, bao gồm Đồng Nai, Quảng Nam, Nghệ An và các địa phương khác.

THIẾT KẾ VÀ XÂY DỰNG CHƯƠNG TRÌNH

Xây dựng ý tưởng tổng quát

 Chuyển ảnh màu đưa vào ảnh xám.

 Dựa vào thuật toán GrabCut để thực hiện việc khai thác ảnh nền, tách nền đối với các hình ảnh chứa nọi dung cần xác định.

 Vẽ một hình chữ nhật xung quanh vùng tiền cảnh.

Hình 8 Sơ đồ các bước thực hiện

Xây dựng mã nguồn

Xây dựng mã nguồn và code trên phần mềm Pycharm, ta sử dụng các thư viện của OpenCv và Numpy để thực hiện.

Dưới đây là các bước thực hiện để code chương trình:

4.2.1 Chọn ảnh, hiện ảnh, chuyển ảnh xám

Sử dụng hàm imread để chọn ảnh và hàm imshow để hiện ảnh đó.

Tìm hiểu đề tài, lên ý tưởng xây dựng chương trình

Tải các thư viện cần thiết, code chương trình

Lệnh cvtColor(source, mode) cho phép chuyển đổi ảnh màu source sang ảnh xám, trong đó mode.COLOR_BGR2GRAY được sử dụng để chuyển đổi từ định dạng BGR sang ảnh xám.

Hình 9 Hình ảnh góc ban đầu

4.2.1 Chuyển ảnh sang ảnh nhị phân

Giải thuật Adaptive Thresholding lựa chọn ngưỡng (threshold) động trong vùng lân cận (neighborhood) Cụ thể giải thuật nó sẽ làm như sau:

 Đối với mỗi pixel ảnh, ta xét vùng ảnh con có blockSize x blockSize (blockSize là số lẻ) với pixel đang xét là trung tâm của vùng ảnh con này.

Trong vùng ảnh có kích thước blockSize x blockSize, các mức sáng được xác định bằng cách sử dụng giá trị ngưỡng cho phương pháp “cv2.ADAPTIVE_THRESH_GAUSSIAN_C” hoặc giá trị trung bình M cho phương pháp khác.

Độ chính xác của phương pháp Adaptive Thresholding phụ thuộc vào ba tham số chính: adaptiveMethod, được xác định là cv2.ADAPTIVE_THRESH_GAUSSIAN_C; blockSize, là kích thước của vùng lân cận; và hằng số C, có thể là số dương, số âm hoặc bằng 0, được sử dụng để điều chỉnh kết quả.

4.2.3 Khoanh vùng và nhận diện biển số xe

Contour là đường cong khép kín được biểu diễn bằng danh sách các điểm có màu sắc hoặc cường độ sáng đồng nhất Contours có nhiều ứng dụng thực tiễn trong xử lý ảnh, đặc biệt trong việc khoanh vùng và nhận diện vật thể.

Mỗi bức ảnh có thể chứa nhiều đường viền (contours) Trong OpenCV, quá trình tìm kiếm contours thường được thực hiện trên ảnh đơn kênh, nhưng hiệu quả nhất là trên ảnh nhị phân Việc sử dụng hàm findContours() trong OpenCV giúp tìm kiếm contours một cách đơn giản, trả về danh sách các contours với mỗi contour là tập hợp các tọa độ điểm.

Sau khi tìm thấy các đường viền (Contours), cần kiểm tra xem diện tích của mỗi đường bao có lớn hơn giá trị diện tích hình chữ nhật (largest_rectangle) hay không Nếu không, hãy loại bỏ những đường viền có diện tích nhỏ hơn để đảm bảo tính chính xác trong quá trình phân tích.

Sử dụng hàm cv2.arcLength() để tìm chu vi đường viền.

Sử dụng hàm cv2.approxPolyDP() để tìm xấp xỉ đường viền.

Khu vực viền được cho bởi hàm cv2.contourArea().

4.2.4 Đánh dấu đối tượng và tách biển số xe Để đánh dấu đối tượng, ta sử dụng hàm cv2.drawContours() Nó cũng có thể được sử dụng để vẽ bất kỳ hình dạng nào miễn là bạn có các điểm biên của nó Đối số đầu tiên của nó là hình ảnh nguồn, đối số thứ hai là các đường viền nên được truyền dưới dạng danh sách Python, đối số thứ ba là chỉ số của các đường viền và các đối số còn lại là màu sắc, độ dày…

Kích thước của của khung nhận dạng được tính theo trục tọa độ x, y với x : x + width, y : y + height.

Hình 10 Đánh dấu đối tượng bằng khung màu xanh

4.2.2 Nhận và đọc lại văn bản Để hiện thông tin trên Command Prompt, phải cài đặt phần mềm tesseract.exe Dùng hàm cv2.cvtColor() để chuyển ảnh màu thành ảnh xám.

Để sử dụng lọc Gaussian với hàm cv2.GaussianBlur(), cần xác định chiều rộng và chiều cao của kernel là số dương và lẻ Đồng thời, cần chỉ định độ lệch chuẩn theo hướng X và Y, tức là sigmaX và sigmaY Nếu chỉ có sigmaX được chỉ định, sigmaY sẽ tự động bằng sigmaX Trong trường hợp cả hai đều là số không, chúng sẽ được tính từ kích thước hạt nhân Lọc Gaussian rất hiệu quả trong việc loại bỏ nhiễu Gaussian khỏi hình ảnh.

Hình 11 Ảnh cắt được từ khung đánh dấu

 Dùng hàm cv2.getStucturingElement() để có được hình hộp chữ nhật

Hàm opening = cv2.morphologyEx() được sử dụng để phân tích và xử lý cấu trúc hình học, dựa trên lý thuyết tập hợp, lý thuyết lưới, cấu trúc liên kết và chức năng ngẫu nhiên.

 Dùng invert để đảo ngược hình ảnh

In ra màn hình kết quả

Ngày đăng: 19/04/2022, 22:43

HÌNH ẢNH LIÊN QUAN

Hình 1: Công nghệ AI - ĐỒ ÁN CƠ SỞ 5 ĐỀ TÀI:  XÂY DỰNG  ỨNG DỤNG NHẬN DẠNG BIỂN SỐ XE. GIẢNG VIÊN HƯỚNG DẪN:  ThS. NGUYỄN VĂN BÌNH
Hình 1 Công nghệ AI (Trang 9)
Hình 2: Ứng dụng của Python - ĐỒ ÁN CƠ SỞ 5 ĐỀ TÀI:  XÂY DỰNG  ỨNG DỤNG NHẬN DẠNG BIỂN SỐ XE. GIẢNG VIÊN HƯỚNG DẪN:  ThS. NGUYỄN VĂN BÌNH
Hình 2 Ứng dụng của Python (Trang 11)
Hình 4 Các bước cơ bản của xử lý ảnh - ĐỒ ÁN CƠ SỞ 5 ĐỀ TÀI:  XÂY DỰNG  ỨNG DỤNG NHẬN DẠNG BIỂN SỐ XE. GIẢNG VIÊN HƯỚNG DẪN:  ThS. NGUYỄN VĂN BÌNH
Hình 4 Các bước cơ bản của xử lý ảnh (Trang 12)
Hình 3: Quá trình xử lý ảnh - ĐỒ ÁN CƠ SỞ 5 ĐỀ TÀI:  XÂY DỰNG  ỨNG DỤNG NHẬN DẠNG BIỂN SỐ XE. GIẢNG VIÊN HƯỚNG DẪN:  ThS. NGUYỄN VĂN BÌNH
Hình 3 Quá trình xử lý ảnh (Trang 12)
Hình 5 Ví dụ ảnh màu - ĐỒ ÁN CƠ SỞ 5 ĐỀ TÀI:  XÂY DỰNG  ỨNG DỤNG NHẬN DẠNG BIỂN SỐ XE. GIẢNG VIÊN HƯỚNG DẪN:  ThS. NGUYỄN VĂN BÌNH
Hình 5 Ví dụ ảnh màu (Trang 15)
Hình 6 Ảnh màu biến đổi thành ảnh xám - ĐỒ ÁN CƠ SỞ 5 ĐỀ TÀI:  XÂY DỰNG  ỨNG DỤNG NHẬN DẠNG BIỂN SỐ XE. GIẢNG VIÊN HƯỚNG DẪN:  ThS. NGUYỄN VĂN BÌNH
Hình 6 Ảnh màu biến đổi thành ảnh xám (Trang 16)
Hình 7 OpenCv và Python - ĐỒ ÁN CƠ SỞ 5 ĐỀ TÀI:  XÂY DỰNG  ỨNG DỤNG NHẬN DẠNG BIỂN SỐ XE. GIẢNG VIÊN HƯỚNG DẪN:  ThS. NGUYỄN VĂN BÌNH
Hình 7 OpenCv và Python (Trang 17)
Matplotlib là một thư viện toàn diện để tạo trực quang tĩnh, hoạt hình và tương tác trong Python. - ĐỒ ÁN CƠ SỞ 5 ĐỀ TÀI:  XÂY DỰNG  ỨNG DỤNG NHẬN DẠNG BIỂN SỐ XE. GIẢNG VIÊN HƯỚNG DẪN:  ThS. NGUYỄN VĂN BÌNH
atplotlib là một thư viện toàn diện để tạo trực quang tĩnh, hoạt hình và tương tác trong Python (Trang 18)
Hình 9 Hình ảnh góc ban đầu - ĐỒ ÁN CƠ SỞ 5 ĐỀ TÀI:  XÂY DỰNG  ỨNG DỤNG NHẬN DẠNG BIỂN SỐ XE. GIẢNG VIÊN HƯỚNG DẪN:  ThS. NGUYỄN VĂN BÌNH
Hình 9 Hình ảnh góc ban đầu (Trang 24)
Hình 10 Đánh dấu đối tượng bằng khung màu xanh - ĐỒ ÁN CƠ SỞ 5 ĐỀ TÀI:  XÂY DỰNG  ỨNG DỤNG NHẬN DẠNG BIỂN SỐ XE. GIẢNG VIÊN HƯỚNG DẪN:  ThS. NGUYỄN VĂN BÌNH
Hình 10 Đánh dấu đối tượng bằng khung màu xanh (Trang 26)
Hình 11 Ảnh cắt được từ khung đánh dấu - ĐỒ ÁN CƠ SỞ 5 ĐỀ TÀI:  XÂY DỰNG  ỨNG DỤNG NHẬN DẠNG BIỂN SỐ XE. GIẢNG VIÊN HƯỚNG DẪN:  ThS. NGUYỄN VĂN BÌNH
Hình 11 Ảnh cắt được từ khung đánh dấu (Trang 27)
Hình 12 Kết quả dự án - ĐỒ ÁN CƠ SỞ 5 ĐỀ TÀI:  XÂY DỰNG  ỨNG DỤNG NHẬN DẠNG BIỂN SỐ XE. GIẢNG VIÊN HƯỚNG DẪN:  ThS. NGUYỄN VĂN BÌNH
Hình 12 Kết quả dự án (Trang 29)
Hình 13 Hình ảnh bị nhỏ không nhận dạng được - ĐỒ ÁN CƠ SỞ 5 ĐỀ TÀI:  XÂY DỰNG  ỨNG DỤNG NHẬN DẠNG BIỂN SỐ XE. GIẢNG VIÊN HƯỚNG DẪN:  ThS. NGUYỄN VĂN BÌNH
Hình 13 Hình ảnh bị nhỏ không nhận dạng được (Trang 30)

TỪ KHÓA LIÊN QUAN

w