Báo cáo xử lý ảnh NGUYỄN HỒNG THÁICHƯƠNG 1 GIỚI THIỆU 1.1 - Mục đích của đề tài - Mục đích của đề tài nhận dạng biển số xe trong môn xử lý ảnh là nhằm tìm hiểu và áp dụng các kỹ thuật x
Trang 1TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM VIỆN ĐÀO TẠO CHẤT LƯỢNG CAO KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO BÀI TẬP LỚN HỌC PHẦN XỬ LÝ ẢNH
ĐỀ TÀI:
NHẬN DẠNG BIỂN SỐ XE ĐƠN GIẢN
GIÁNG VIÊN HƯỚNG DẪN : TS Nguyễn Hữu Tuân
Sinh viên thực hiện : NGUYỄN HỒNG THÁI – 86159
Trang 2Báo cáo xử lý ảnh NGUYỄN HỒNG THÁI
Mục lục
CHƯƠNG 1 GIỚI THIỆU 5
1.1 - Mục đích của đề tài 5
1.2 - Yêu cầu của đề tài 5
1.3 - Cách giải quyết: 5
1.4 - Dự kiến kết quả: 5
CHƯƠNG 2 XỬ LÝ ẢNH VÀ OPEN CV 6
2.1 - Giới thiệu về nhận dạng 7
2.2 - Bản chất của quá trình nhận dạng 7
2.3 - Các kiểu nhận dạng 7
2.3.1 Nhận dạng dựa theo cấu trúc 7
2.3.2 Nhận dạng dựa theo miền không gian 9
2.4 - Nhận dạng theo phương pháp thống kê 10
CHƯƠNG 3 CÀI ĐẶT VÀ THỬ NGHIỆM 17
3.1 - Cài đặt 17
3.2 - Thử nghiệm 18
CHƯƠNG 4 KẾT LUẬN 20
Trang 3Báo cáo xử lý ảnh NGUYỄN HỒNG THÁI
Mục lục hình ảnh
Hình 2-1: Quá trình xử lý ảnh 6
Hình 2-2: Các bước cơ bản trong hệ thống xử lý ảnh 6
Hình 2-3 Cấu trúc nôron nhân tạo 12
Hình 2-4 Hình ảnh về OpenCV 14
Hình 3-1: Thử nghiệm biến số xe 18
Trang 4Báo cáo xử lý ảnh NGUYỄN HỒNG THÁI
Lời mở đầu
Hiện nay, với sự phát triển kinh tế xã hội đã bùng nổ số lượng phương tiện giao thông Gây ra những khó khăn trong công tác quản lý, xử lý vi phạm giao thông mà nguồn nhân lực con người khó có thể đảm đương được Vì vậy vẫn để cần thiết là có một hệ thống quản lý, xử lý vi phạm giao thông tự động
Để xây dựng hệ thống quản lý giao thông tự động thì “ Bài toán nhận dạng biển số xe”
là tiến để để xây dựng những mô hình quản lý đó Tuy nhiên, hiện nay ở Việt Nam nhưng
hệ thống quản lý đó chưa nhiều và lĩnh vực nhận dạng còn đang phát triển
Từ những thực tế đó, trong thời gian làm đồ án tốt nghiệp em đã quyết định lựa chọn tìm hiểu về bài toán “ nhận dạng” trong đó chú trọng vào việc nhận dạng biển số xe Để phục vụ cho bước đầu trong hệ thống quản lý phương tiện giao thông tại Việt Nam Trong điều kiện năng lực và thời gian có hạn, nên bảo cáo của em không tránh khỏi những sai sót Em kinh mong thầy cô và các bạn đóng góp những ý kiến để em có thể chỉnh sửa và
bổ sung những phần thiếu sót để em hoàn thiện đề tài của mình
Trong báo cáo lần này em xin trình bày chương sau
Trang 5Báo cáo xử lý ảnh NGUYỄN HỒNG THÁI
CHƯƠNG 1 GIỚI THIỆU
1.1 - Mục đích của đề tài
- Mục đích của đề tài nhận dạng biển số xe trong môn xử lý ảnh là nhằm tìm hiểu và áp dụng các kỹ thuật xử lý ảnh và máy học để tự động phân tích và nhận dạng biển số xe trên ảnh hoặc video Điều này có thể được sử dụng trong nhiều lĩnh vực, chẳng hạn như giám sát giao thông, an ninh, quản lý bãi đỗ xe, đếm xe, tự động thu phí, hay đơn giản là cải thiện trải nghiệm người dùng khi điều khiển xe hơi.Sự cần thiết
-Cụ thể, đề tài nhận dạng biển số xe sẽ tập trung vào việc phát triển các thuật toán để xác định vị trí và phân tích các ký tự trên biển số xe, sau đó sử dụng các kỹ thuật máy học để phân loại và nhận dạng ký tự này
1.2 - Yêu cầu của đề tài
-Để thực hiện yêu cầu của đề tài nhận dạng biển số xe, bạn cần thiết kế một hệ thống nhận dạng tín hiệu ảnh của biển số xe và trích xuất thông tin từ tín hiệu đó
1.3 - Cách giải quyết:
Để chạy được đề tài này thì em sẽ sử dụng phần mềm Pycharm để xây dựng nên một module, trong đó có sẵn các hàm để thực hiện các phép xử lý ảnh trên Sau đó, người dùng
có thể thực hiện các phép xử lý ảnh mong muốn bằng cách gọi chương trình Python và truyền đường dẫn đến file ảnh hoặc là video để đọc các chuỗi ký tự Dựa trên những gì người dùng đưa vào, chương trình sẽ xử lý ảnh, video và hiển thị rõ kết quả
1.4 - Dự kiến kết quả:
Kết quả thu được sau khi chạy chương trình đó là hiển thị ra một chuỗi ký tự trong hình ảnh hoặc video khi mà Pycharm đã xử lý thành công các mã lệnh
Trang 6Báo cáo xử lý ảnh NGUYỄN HỒNG THÁI
CHƯƠNG 2 XỬ LÝ ẢNH VÀ OPEN CV
Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm cho quả mong muốn kết quả đầu ra của một quá trình xử lý ảnh có thể là một ảnh ra két “tốt hơn" (theo ý muốn) hoặc một kết luận
Ảnh có thể xem là tập hợp các điểm ảnh và mỗi điểm ảnh được xem 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à có thể xem như hàm n biển Do đó ảnh trong xử lý ảnh có thể xem như ảnh n chiều
Sơ đồ tổng quát xử lý ảnh:
Và ở chương này chung ta sẽ được biết OpenCV hỗ trợ gì cho những bước xử lý ảnh Tiếp sau em sẽ giới thiệu các bước xử lý và OpenCV hỗ trợ xử lý ảnh như thế nào (cung cấp thư viện gì)
Hình 2-1: Quá trình xử lý ảnh
Hình 2-2: Các bước cơ bản trong hệ thống xử lý ảnh
Trang 7Báo cáo xử lý ảnh NGUYỄN HỒNG THÁI
Tiền xử lý
-Các thao tác xử lý trên ảnh để chuẩn bị cho những bước phân tích tiếp theo Chẳng hạn như các thao tác chọn ngưỡng để chuyển ảnh đa cấp xám, ảnh màu về dạng nhị phân, giám nhiều để loại bỏ những dữ diệu không liên quan, phân đoạn để phân tách cách thành phần trong ảnh và cuối cùng là làm mảnh hay dò biên để đễ dàng xác định các vùng, các đặc trưng thích hợp và đối tượng cần quan tâm
2.1 - Giới thiệu về nhận dạng
-Nhận dạng là quá trình phân loại các đối tượng biểu diễn theo một mô hình nào đó, gán chúng vào một lớp dựa trên các quy luật và các mẫu chuẩn
Có 2 loại nhận dạng:
Nhận dạng học có giám sát: supervised learning
Nhận dạng học không có giám sát: unsupervised learning
2.2 - Bản chất của quá trình nhận dạng
• Qúa trình nhận dạng gồm có 3 giai đoạn sau:
1 Lựa chọn luật ra quyết định và suy diễn quá trình học
2 Lựa chọn mô hình biểu diễn đối tượng
3 Học nhận dạng
Nhận dạng chính là tìm ra các quy luật và các thuật toán có thể gán đối tượng vào một lớp, nói cách khác là gán cho đối tượng cho một tên
Học có giám sát(Supervised learning):
Học giám sát là kỹ thuật của ngành học máy để xây dựng 1 hàm function từ dữ liệu huấn luyện Trong đó dữ liệu huấn luyện bao gồm các đối tượng đầu vào và đầu ra mong muốn Đầu ra của hàm f có thể là 1 giá trị liên tục hoặc có thể dự đoán một nhãn phân lớp cho đối tượng đầu vào
Học không có giám sát(Unsupervised learning)
Unsupervised Learning là một nhóm thuật toán hay phương pháp kỹ thuật cho phép máy
tự học hỏi và tìm ra một mô hình hay cấu trúc nào đó ẩn trong một bộ dữ liệu không được gắn nhãn trước
2.3 - Các kiểu nhận dạng
Có 3 cách tiếp cận nhận dạng đối tượng
• Dựa vào cấu trúc
• Dựa vào phân hoạch không gian
• Dựa vào kỹ thuật mạng neural(cơ chế nhận, lưu trữ, phân biệt đối với đối tượng, mô phỏng theo hoạt động hệ thần kinh)
Trang 8Báo cáo xử lý ảnh NGUYỄN HỒNG THÁI
2.3.1 Nhận dạng dựa theo cấu trúc
A Biểu diễn định tính
Trong cách biểu diễn này thì người ta quan tâm đến các dạng và các mối quan hệ của chúng
Gỉa thiết rằng mỗi đối tượng được biểu diễn bởi một dãy ký tự Các đặc tính biểu diễn bởi cùng một số ký tự Phương phát để nhận dạng ở đây là nhận dạng logic dựa và hàm phân biệt là hàm Bool Cách nhận dạng là nhận dạng các từ có cùng độ dài
Giả sử hàm phân biệt cho mọi ký hiệu là g a (x), g b (x), , tương ứng với các ký hiệu a, b,
Để dễ dàng hình dung, ta giả sử có từ "abc" được biểu diễn bởi một dãy ký tự X = {x
1 ,x 2 , x 3 , x 4 }
ga(x1) + gb(x2) + gc(x3) + gc(x4)
Các phép cộng ở đây chỉ phép toán OR Trên cơ sở tính giá trị cực đại của hàm phân biệt, ta quyết định X có thuộc lớp các từ "abc" hay không
B Một số khái niệm dựa vào cấu trúc
Thủ tục phân loại và nhận dạng ở đây gồm 2 giai đoạn: Giai đoạn đầu là giai đoạn xác định các quy tắc xây dựng, tương đương với việc nghiên cứu một văn phạm trong một ngôn ngữ chính thống
Giai đoạn tiếp theo khi đã có văn phạm là xem xét tập các dạng cóđược sinh ra từ các dạng đó không? Nếu nó thuộc tập đó coi như ta đã phân loại xong
Tuy nhiên trong dạng này thì chúng ta mới chỉ sự dụng được một phần rất nhỏ
Có một ngôn ngữ có thể được áp dụng trong nhận dạng đó là ngôn ngữ
PLD( Picture Language Descripition)
Ví dụ : Ngôn ngữ PLD
Trong ngôn ngữ này, các từ vựng là các vạch có hướng Có 4 từ vựng cơ bản:
Trang 9Báo cáo xử lý ảnh NGUYỄN HỒNG THÁI
Các từ vựng trên các quan hệ được định nghĩa như sau:
C Phương pháp nhận dạng
Tập Vt chung cho mọi đối tượng
Các quy tắc sinh P để sản sinh ra một câu và chúng khác nhau đối với mỗi lớp
Quá trình học với các câu biểu diễn các đối tượng mẫu l nhằm xác định văn phạm
G
Quá trình ra quyết định: xác định một đối tượng X được biểu diễn bởi một câu lx Nếu lx nhận biết bởi ngôn ngữ L(Gx) thì ta nói rằng X Ck
2.3.2 Nhận dạng dựa theo miền không gian
Trong kiểu kỹ thuật này thì các đối tượng nhận dạng là các đối tượng định lượng Mỗi đối tượng được biểu diễn bởi một vectơ nhiều chiều
Trước tiên, ta xem xét một số khái niệm như: phân hoạch không gian, hàm phân biệt sau
đó sẽ đi vào một số kỹ thuật cụ thể
Phân hoạch không gian
Giả sử không gian đối tượng X được định nghĩa: X ={Xi, i=1,2,…, m}, với Xi là một vectơ
Người ta nói D là một phân hoạch của không gian X thành các lớp Ci, Ci X nếu:⊂
Ci ∩ C = Với i j và j Ci = X
Trang 10Báo cáo xử lý ảnh NGUYỄN HỒNG THÁI
Đây là trường hợp lý tưởng khi tập X tách được hoàn toàn Trong thực tế, thường gặp không gian biểu diễn tách được từng phần Như vậy, phân loại là dựa vào việc xây dựng một ánh xạ f: X → D
Hàm phân lớp hay hàm ra quyết định
Để phân đối tượng vào các lớp, ta phải xác định số lớp và ranh giới giữa các lớp đó.Hàm phân lớp hay hàm phân biệt là một công cụ rất quan trọng Gọi {gi} là lớp các hàm phân lớp hay hàm tách biệt Lớp hàm này được định nghĩa như sau:
Nếu ik, g (X) > g (X) thì ta quyết định X lớp kk i
Như vậy để phân biệt k lớp ta cần k-1 hàm phân biệt Hàm phân biệt g(.) của một lớp nàođó thường được dùng trong thực tế do tính đơn giản, dễ xử lý là hàm tuyến tính Hàm tuyến tính
có dạng:
g(X) = W0 + W1X1 + W2X2 + WKXK
Trong đó:
- Wi là trọng số gán cho các thành phần Xi;
- W0 là trọng số hằng
Trong trường hợp hàm g(.) là tuyến tính, người ta nói việc phân lớp là tuyến tính (trong trường hợp một hay hai chiều) hay siêu phẳng (trong trường hợp nhiều chiều)
Phân lớp dựa theo khoảng cách (Distance) là một công cụ tốt để xác định đối tượng có
“gần nhau” về một đặc trưng nào đó hay không Nếu khoảng cách nhỏ hơn một ngưỡng τ nào đấy thì ta coi hai đối tượng là giống nhau Nếu chúng giống nhau ta gộp gộp chúng, nếu chúng khác nhau và ta tách thành hai hoặc nhiều lớp phân biệt
Phân lớp dựa theo xác suất có điều kiện (Conditional Probability) Trong một số trường hợp, người ta dựa vào xác suất có điều kiện để phân lớp cho đối tượng Lý thuyết xác suất có điều kiện được Bayes nghiên cứu khá kỹ lưỡng và được dùng để phân biệt đối tượng
Trang 11Báo cáo xử lý ảnh NGUYỄN HỒNG THÁI
Người ta có dùng phương pháp ra quyết định dựa vào lý thuyết Bayes Lý thuyết Bayes thuộc loại lý thuyết thống kê nên phương pháp nhận dạng dựa trên lý thuyết Bayes có tên là phương pháp thống kê
Quy tắc Bayes:
- Cho không gian đối tượng X ={Xl, l=1,2,…,L},
- Cho không gian diễn dịch Ω={C1, C2…Cr}, với r là số lớp
Quy tắc Bayes phát biểu như sau:
ε: X → Ω sao cho X Ck nếu P(Ck /X) > P(Cl /X) l <>k, l=1,2,…,r.∈ ∀
Trường hợp lý tưởng là nhận dạng đúng (không có sai số) Thực tế, luôn tồn tại sai số ε trong quá trình nhận dạng Vấn đề chính ở đây là xây dựng quy tắc nhận dạng với sai số ε là nhỏ nhất
2.3.3) Nhận dạng dựa theo mạng Nơron
Khái niệm:
Mạng nơron là hệ thống bao gồm nhiều phần tử xử lý đơn giản (nơron) hoạt động song song Tính năng của hệ thống này tuỳ thuộc vào cấu trúc của hệ, các trọng số liên kết nơron
và quá trình tính toán tại các nơron đơn lẻ
A Giới thiệu mạng
Mạng nơron nhân tạo được thiết kế dựa trên mô hình mạng nơron thần kinh với các phần
tử nơron nhân tạo của nó là sự mô phỏng nơron sinh học
Cấu trúc của nơron sinh học
Nơron sinh vật có nhiều dạng khác nhau như dạng hình tháp, dạng tổ ong, dạng rễ cây Tuy khác nhau về hình dạng, chúng có cấu trúc và nguyên lý hoạt động chung Một tế bào nơron gồm bốn phần cơ bản:
Nhánh và rễ: Các nhánh và rễ là các bộ phận nhận thông tin, các đầu nhạy hoặc
các đầu ra của các nơron khác bám vào rễ hoặc nhánh của một nơron
Thân thần kinh: Thân thần kinh chứa các nhân và cơ quan tổng hợp protein Các
ion vào được tổng hợp và biến đổi Khi nồng độ các ion đạt đến một giá trị nhất định, xảy ra quá trình phát xung
Dây thần kinh: Dây thần kinh là đầu ra Đó là phương tiện truyền dẫn tín hiệu.
Trang 12Báo cáo xử lý ảnh NGUYỄN HỒNG THÁI
Khớp thần kinh: là bộ phận tiếp xúc của đầu ra nơron với rễ, nhánh của các
nơron khác
Cấu trúc của nơron nhân tạo
Mô hình nơron nhân tạo gồm 3 phần chính: Bộ tổng liên kết đầu vào, bộ động học tuyến tính và bộ phi tuyến
Hình 2-3 Cấu trúc nôron nhân tạo
Trong đó:
Trang 13Báo cáo xử lý ảnh NGUYỄN HỒNG THÁI
y(t): Tín hiệu đầu ra nơron
θ: Ngưỡng (là hằng số), xác định ngưỡng kích thích hay ức chế.
Bộ động học tuyến tính: Đầu vào của phần động học tuyến tính là v(t), đầu ra của nó là
u(t) gọi là đầu ra tương tự Mô tả bộ động học tuyến tính dưới dạng:
Bộ phi tuyến: Phần này sử dụng hàm quan hệ phi tuyến f(.) cho đầu ra y, để chặn tính
hiệu ở đầu ra Các hàm đầu ra thông thường là các hàm có giới hạn ngưỡng phù hợp với đặc điểm đầura của nơron sinh học
Hàm này thường được gọi là hàm kích hoạt thể hiện đặc điểm kích hoạt của một nơron
Hàm phi tuyến ở đây có thể chia thành hai nhóm: Nhóm hàm bước nhảy và nhóm hàm liên tục
Khái niệm nơron nhân tạo:
Nơron nhân tạo là sự mô phỏng nơron sinh học Có nhiều cách kết hợp các nơron nhân tạo thành mạng, mỗi cách kết hợp tạo thành một lớp mạng nơron nhân tạo khác nhau
Phân loại:
- Dựa vào số lượng lớp có trong mạng, ta phân thành:
+ Mạng một lớp
+ Mạng nhiều lớp
- Dựa vào đường truyền tín hiệu trong mạng, ta phân thành:
+ Mạng truyền thẳng
+ Mạng phản hồi
+ Mạng tự tổ chức
Trang 14Báo cáo xử lý ảnh NGUYỄN HỒNG THÁI
Open CV
Khái niệm về OpenCV
-OpenCV (Open Source Computer Vision Library) là một thư viện mã nguồn mở được phát triển cho các ứng dụng thị giác máy tính và xử lý hình ảnh OpenCV được phát triển bởi Intel vào năm 1999 và được giới thiệu lần đầu tiên vào năm 2000 Hiện nay, OpenCV được duy trì bởi một nhóm các nhà phát triển trên toàn thế giới và được sử dụng rộng rãi trong nhiều ứng dụng thị giác máy tính, như: xử lý ảnh y tế, giám sát an ninh, nhận diện khuôn mặt, phát hiện vật thể, đọc mã vạch, và nhiều ứng dụng khác
Hình 2-4 Hình ảnh về OpenCV
Trang 15Báo cáo xử lý ảnh NGUYỄN HỒNG THÁI
OpenCV cung cấp cho các nhà phát triển một bộ công cụ mạnh mẽ để xử lý các tác vụ liên quan đến thị giác máy tính và xử lý hình ảnh Thư viện này cung cấp cho người dùng các hàm xử lý hình ảnh, xử lý video, xử lý dữ liệu thời gian thực và các tính năng khác như nhận diện đối tượng và phát hiện khuôn mặt OpenCV còn hỗ trợ các ngôn ngữ lập trình như Python, C++, Java và C#
OpenCV được phát triển với mục đích trở thành một công cụ thực sự đa nền tảng, cho phép người dùng phát triển ứng dụng xử lý hình ảnh trên các hệ điều hành khác nhau như Windows, Linux, Mac OS, iOS và Android OpenCV cũng có sẵn trên các nền tảng nhúng, cho phép các nhà phát triển sử dụng thư viện này trong các ứng dụng IoT (Internet of Things)
Một trong những đặc điểm nổi bật của OpenCV là tốc độ xử lý nhanh và khả năng hoạt động trên các ảnh có độ phân giải cao Thư viện này cũng được thiết kế để hỗ trợ các mô hình học sâu và các công nghệ AI khác, cho phép người dùng dễ dàng tích hợp các tính năng thông minh vào các ứng dụng của họ
Ưu điểm và nhược điểm của openCV
Ưu điểm:
Được xây dựng trên nhiều ngôn ngữ lập trình, cho phép sử dụng trên nhiều nền tảng khác nhau
Cung cấp các chức năng xử lý ảnh, thị giác máy tính và học máy phong phú và mạnh mẽ
Có thể tích hợp với các thư viện khác như NumPy, SciPy, Matplotlib để phân tích và hiển thị dữ liệu
Có sẵn các hàm xử lý ảnh tiêu chuẩn để thực hiện các tác vụ xử lý ảnh phổ biến như lọc, phân đoạn, tiền xử lý và các thuật toán nhận dạng đối tượng phổ biến như Haar Cascades, HOG, Deep Learning,
Có một cộng đồng phát triển lớn và tích cực, đóng góp vào các dự án phát triển liên quan đến OpenCV