Phát hiện và nhận diện biển báo giao thông sử dụng OpenCV TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT HÀN KHOA KHOA HỌC MÁY TÍNH BÁO CÁO ĐỒ ÁN CƠ SỞ 5 PHÁT HIỆN VÀ NHẬN DIỆN BIỂN BÁO GIAO THÔNG SỬ DỤNG OPENCV Sinh viên thực hiện Hoàng Thị Hương – 18IT2 Trần Thị Hương Ngân – 18IT3 Giảng viên hướng dẫn ThS Võ Hùng Cường Đà Nẵng, ngày 25 tháng 03 năm 2021 Phát hiện và nhận diện biển báo giao thông sử dụng OpenCV TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT HÀN KHOA KHOA HỌC M.
Trang 1VÀ TRUYỀN THÔNG VIỆT - HÀN
KHOA KHOA HỌC MÁY TÍNH
BÁO CÁO ĐỒ ÁN CƠ SỞ 5
PHÁT HIỆN VÀ NHẬN DIỆN BIỂN BÁO GIAO THÔNG SỬ DỤNG OPENCV
Sinh viên thực hiện: Hoàng Thị Hương – 18IT2
Trần Thị Hương Ngân – 18IT3 Giảng viên hướng dẫn: ThS Võ Hùng Cường
Đà Nẵng, ngày 25 tháng 03 năm 2021
Trang 2TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
VÀ TRUYỀN THÔNG VIỆT - HÀN
KHOA KHOA HỌC MÁY TÍNH
BÁO CÁO ĐỒ ÁN CƠ SỞ 5
PHÁT HIỆN VÀ NHẬN DIỆN BIỂN BÁO GIAO THÔNG SỬ DỤNG OPENCV
Sinh viên thực hiện: Hoàng Thị Hương – 18IT2
Trần Thị Hương Ngân – 18IT3 Giảng viên hướng dẫn: ThS Võ Hùng Cường
Đà Nẵng, ngày 25 tháng 03 năm 2021
MỞ ĐẦU
Trang 3Ngày nay với các tiến bộ của khoa học kỹ thuật thì mọi công việc hầu như đều cóthể tiến hành trên máy tính một cách tự động hóa hoàn toàn hoặc một phần Một trongnhững sự thay đổi lớn đó là cách thức chúng ta thu nhận và xử lý dữ liệu Các công cụnhập liệu như bàn phím hay máy scan dần bị thay thế bằng các thiết bị tiện lợi hơn nhưmàn hình cảm ứng, camera…
Hơn thế nữa, các máy tính để bàn không còn là công cụ duy nhất có thể hỗ trợ chocon người Chúng ta bước sang thế kỷ 21 với sự phát triển mạnh mẽ của các thiết bị diđộng, giải trí cầm tay hay smartphone Với kích thước ngày càng nhỏ gọn và hiệu suấtlàm việc thì không ngừng được cải tiến, các công cụ mini này hứa hẹn sẽ là một phầnkhông thể thiếu trong xã hội hiện đại Và do đó, phát triển các ứng dụng trên các thiết bịnày cũng là một xu thế tất yếu
Công nghệ nhận dạng là một trong các công nghệ đang được áp dụng cho các thiết
bị di động hiện nay Nhận dạng có thể bao gồm nhận dạng âm thanh, hình ảnh Các đốitượng nhận dạng có nhiều kiểu như tiếng nói, chữ viết, khuôn mặt, mã vạch … và biểnbáo giao thông cùng là một trong số đó Chương trình nhận dạng biển báo giao thôngthường phức tạp và được cài đặt trên những hệ thống có bộ xử lý lớn, camera chất lượngcao Mục tiêu của báo cáo là giúp chúng ta phát hiện biển báo và nhận dạng nó một cáchnhanh nhất
Trang 4LỜI CẢM ƠN
Lời đầu tiên, chúng em xin trân trọng cảm ơn và bày tỏ lòng biết ơn sâu sắc nhấttới giảng viên hướng dẫn môn Đồ án cơ sở 5 - thầy Võ Hùng Cường đã nhiệt tình hướngdẫn
Chúng em xin chân thành cảm ơn các thầy cô giáo đang giảng dạy tại Khoa côngnghệ thông tin và truyền thông – Đại học Đà Nẵng đã nhiệt tình ủng hộ, cung cấp tài liệu
và đưa ra những ý kiến góp ý quý báu
Cuối cùng, chúng tôi xin chân thành cảm ơn tới bạn bè đã động viên, khuyếnkhích và tạo điều kiện cho chúng tôi hoàn thành tốt đề tài của mình
Xin chân thành cảm ơn!
Trang 5NHẬN XÉT
(Của giảng viên hướng dẫn)
………
………
………
………
………
………
………
………
Trang 6
MỤC LỤC
PHẦN MỞ ĐẦU I
1 Đặt vấn đề I
2 Mục đích II
3 Phương pháp nghiên cứu III
4 Phạm vi nghiên cứu III
5 Nội dung nghiên cứu III
6 Cấu trúc báo cáo III
CHƯƠNG 1: TỔNG QUAN 2
1.1 Một số khái niệm cơ bản 2
1.1.1 Trí tuệ nhân tạo 2
1.1.2 Xử lý ảnh 2
1.1.3 OpenCV 5
1.2 Giới thiệu về chương trình nhận diện biển báo giao thông sử dụng OpenCV 8
1.2.1 Mô tả chương trình 8
1.2.2 Ý tưởng 8
CHƯƠNG 2: PHƯƠNG PHÁP ĐỀ XUẤT VÀ TRIỂN KHAI THUẬT TOÁN 10
2.1 Các phương pháp phát hiện và nhận dạng biển báo giao thông 10
2.1.1 Các phương pháp phát hiện 10
2.1.2 Các phương pháp nhận dạng 14
2.2 Phương pháp đề xuất (Mô hình mạng neural tích chập CNN) 14
2.3 Thuật toán chương trình 17
2.3.1 Sơ đồ hoạt động chương trình 17
2.3.2 Tập dữ liệu 17
2.3.3 Tiền xử lý và phân chia dữ liệu 18
Trang 72.3.4 Định nghĩa mô hình 19
2.3.5 Compile mô hình 19
2.3.6 Khởi tạo đồ thị kết quả mô hình 20
2.3.7 Tiến hành training 20
CHƯƠNG 3: DEMO CHƯƠNG TRÌNH 21
3.1 Mô tả bài toán 21
3.2 Yêu cầu 23
3.3 Chạy project 24
3.4 Kết quả chạy 25
KẾT LUẬN 28
Kết quả đạt được 28
Hạn chế 28
Hướng phát triển 28
TÀI LIỆU THAM KHẢO 29
Trang 8DANH MỤC HÌNH ẢNH
Hình 1: Ảnh chụp biển báo trong điều kiện sương mù dày đặc II
Hình 2: Trí tuệ nhân tạo 2
Hình 3: Nhận dạng vật thể 4
Hình 4: Ví dụ về dùng OpenCV để nhận diện khuôn mặt 6
Hình 5: Cấu trúc thư viện OpenCV 7
Hình 6: Ví dụ về biển báo được nhận diện 8
Hình 7: Các vị trí đề cử điểm ảnh cho tâm đối tượng 11
Hình 8: Nhân các góc gradient của một tam giác cho 3 Kết quả các góc sẽ bằng nhau 12
Hình 9: Vùng kiểm soát 13
Hình 10: Xây dựng ảnh biến đổi khoảng cách 13
Hình 11: Mạng lưới thần kinh tích chập hay Convolutional Neural Networks (CNN) 15
Hình 12: Mô hình CNN 15
Hình 13: Sờ đồ hoạt động chương trình 17
Hình 14: Biển báo rẽ trái và rẽ phải 18
Hình 15: Biển báo đi thẳng và biển báo dừng 18
Hình 16: Biển báo đi thẳng rẽ trái - Biển báo đi thẳng rẽ phải 18
Hình 17: Train:validation (0.8:0.2) 19
Hình 18: Định nghĩa mô hình 19
Hình 19: Compile mô hình 19
Hình 20: Khởi tạo đồ thị và kết quả mô hình 20
Hình 21: Tiến hành trainning 20
Hình 22: Bài toán nhận diện biển báo giao thông 22
Hình 23: Mẫu biển báo hiệu lệnh 23
Hình 24: Kết quả nhận dạng biển báo dừng 25
Hình 25: Kết quả nhận dạng biển báo đi thẳng 25
Hình 26: Kết quả nhận dạng biển báo rẽ phải 26
Trang 9Hình 27: Kết quả nhận dạng biển báo rẽ trái 26Hình 28: Kết quả nhận dạng biển báo đi thẳng rẽ trái 27Hình 29: Kết quả nhận dạng biển báo đi thẳng rẽ phải 27
DANH MỤC TỪ VIẾT TẮT
CNN Convolutional Neural Network
GTSRB German Traffic Sign Recognition Benchmark
AI Artificial Intelligence
MLL Machine Learning Library
OpenCV Open Source Computer Vision Library
IPP Integrated Performance Primitives
PCA Principal Components Analysis
SVM Support vector machine
Trang 10PHẦN MỞ ĐẦU
1 Đặt vấn đề
Biển báo giao thông là các qui định cho người điều khiển phương tiện tham giagiao thông bắt buộc phải tuân thủ để đảm bảo an toàn cho người và phương tiện thamgia giao thông Đây là những ký hiệu đơn giản và bắt buộc phải biết đối với nhữngngười tham gia giao thông, chúng được đặt ở những vị trí giúp cho người điều kiểnphương tiện tham gia giao thông dễ quan sát nhất Tuy nhiên, trên thực tế một số biểnbáo giao thông đã bị che khuất bởi một số công trình xây dựng, biển quảng cáo tráiphép hay cây mọc phía trước không được dọn dẹp thường xuyên và đôi khi do tácđộng ngoại cảnh làm biển báo giao thông có thể bị quay nghiêng đi một góc làm choviệc quan sát của người điều khiển phương tiện giao thông gặp rất nhiều khó khăn Ngày nay, khi mà nền khoa học đang phát triển lên những tầm cao mới, các nhàkhoa học mong muốn đưa xe thông minh - loại phương tiện có khả năng tự di chuyểntham gia giao thông cùng với các phương tiện khác do con người điều khiển Để làmđược điều này, có rất nhiều vấn đề được đặt ra từ khâu tự động tránh vật cản tĩnh, tựđộng tránh các phương tiện khác cũng đang tham gia giao thông (vật cản động) chođến vấn đề tuân thủ các qui định bắt buộc trên tuyến đường thông qua biển báo giaothông Vấn đề tự động quan sát và hiểu được biển báo giao thông cho xe thông minhmột cách chính xác trong mọi điều kiện khác nhau về ánh sáng, sương mù, trời mưa,tuyết và ngay cả khi trời tối đang được đặt ra cho các nhà khoa học, với mong muốngiải quyết đồng thời tính chính xác và tốc độ xử lý cao
Rất nhiều nghiên cứu thực nghiệm và lý thuyết đã và đang được thực hiện, tuynhiên thực tế trong nhiều tình huống không mong muốn các nghiên cứu đang gặp rấtnhiều khó khăn Bài báo này phát triển giải thuật cho việc dò tìm và nhận diện các biểnbáo giao thông trong điều kiện khác nhau về thời tiết, ánh sáng và sương mù (chươngtrình này đã được tác giả lập, cho chạy thử nghiệm tại Viện Công nghệ Châu Á, Tháilan và hoàn thiện tại trường Đại học Nha trang) Trong nghiên cứu này, một điểm ảnh
HTHương – TTHNgân – Đồ án cơ sở 5 – Khoa học máy tính I
Trang 11có thể được coi là điểm biên nếu ở đó có sự thay đổi đột ngột về mức xám; tập hợp cácđiểm biên tạo thành biên Ảnh được phân tích, xử lý dựa vào biên Các ảnh dùng trongnghiên cứu này là ảnh đa cấp xám được chụp từ thực tế trên một số tuyến đường trongđiều kiện thời tiết khác nhau, với ảnh màu sẽ được chuyển sang đa cấp xám trước khiđưa vào xử lý.
Hình 1: Ảnh chụp biển báo trong điều kiện sương mù dày đặc
Những năm gần đây, trí thông minh nhân tạo, cụ thể hơn là Machine Learning vàDeep Learning đang nổi lên là bằng chứng cho cuộc công nghệ cách mạng côngnghiệp lần thứ tư Vận dụng từ học phần Trí tuệ nhân tạo và Xử lý ảnh cho đề tài này,với yêu cầu đầu vào là một ảnh từ biển báo giao thông và đầu ra là tên tương ứng củabiển báo, với số lượng biển báo giao thông là cố định và đây là bài toán phân biệt nênchúng ta sẽ coi đây là bài toán phân loại ảnh, với số lớp cần phân loại chính là sốlượng loại biển báo giao thông cần xác định
2 Mục đích
Nghiên cứu và tìm hiểu các phương pháp nhận dạng, áp dụng vào nhận diện biểnbáo giao thông, xây dựng chương trình, cài đặt thực nghiệm chương trình phát hiện vànhận dạng biển báo giao thông từ bộ ảnh tĩnh
HTHương – TTHNgân – Đồ án cơ sở 5 – Khoa học máy tính II
Trang 12Chương trình được xây dựng giúp người dùng có một cách tiếp cận nhanh chónghơn về luật giao thông, cụ thể là công dụng của các biển báo giao thông.
3 Phương pháp nghiên cứu
Phương pháp tài liệu:
Tìm hiểu lập trình Python và cơ sở lý thuyết về thuật toán CNN
Tìm hiểu các phương pháp nhận dạng biển báo giao thông
Tìm hiểu và lựa chọn công cụ hỗ trợ
5 Nội dung nghiên cứu
Tìm hiểu các kĩ thuật xử lý ảnh trong nhận diện hình học
Xây dựng hệ thống nhận diện các biển báo khác nhau
Công cụ thực hiện: Pycharm
Ngôn ngữ: Python
6 Cấu trúc báo cáo
Báo cáo “ Phát hiện và nhận diện biển báo giao thông sử dụng OpenCV ” bao
gồm tất cả 4 phần
Chương I – Tổng quan: Giới thiệu khái quát và mục đích của đề tài này Giới
thiệu về các kiến thức nền tảng cũng như công nghệ và phần mềm được sử dụng trong
đề tài bao gồm kiến thức về xử lý ảnh, thư viện xử lý ảnh OpenCV
Chương II – Phương pháp đề xuất và xây dựng thuật toán: Trình bày tổng quan
về biển báo giao thông Việt Nam, phương pháp đề xuất và từ đó triển khai thuật toánxây dựng để giải quyết bài toán nhận dạng biển báo
HTHương – TTHNgân – Đồ án cơ sở 5 – Khoa học máy tính III
Trang 13Chương III – Demo chương trình: Từ phương pháp và thuật toán đã tìm hiểu, xây
dựng một chương trình để nhận dạng đưa ra đầu ra cho bài toán cần giải quyết
Phần Kết luận – Đánh giá kết quả và kết luận: Tổng kết quá trình thực hiện và rút
ra hướng phát triển sau này
HTHương – TTHNgân – Đồ án cơ sở 5 – Khoa học máy tính IV
Trang 14CHƯƠNG 1: TỔNG QUAN
1.1 Một số khái niệm cơ bản
1.1.1 Trí tuệ nhân tạo
Trí tuệ nhân tạo AI là trí thông minh của máy do con người tạo ra Ngay từ khichiếc máy tính điện tử đầu tiên ra đời, các nhà khoa học máy tính đã hướng đến pháthiển hệ thống máy tính (gồm cả phần cứng và phần mềm) sao cho nó có khả năngthông minh như loài người
Mặc dù cho đến nay, theo quan niệm của người viết, ước mơ này vẫn còn xamới thành hiện thực, tuy vậy những thành tựu đạt được cũng không hề nhỏ: chúng ta
đã làm được các hệ thống (phần mềm chơi cờ vua chạy trên siêu máy tinh GeneBlue)
có thể thắng được vua cờ thế giới; chúng ta đã làm được các phần mềm có thể chứngminh được các bài toán hình học; v.v Hay nói cách khác, trong một số lĩnh vực, máytính có thể thực hiện tốt hơn hoặc tương đương con người (tất nhiên không phải tất cảcác lĩnh vực)
Hình 2: Trí tuệ nhân tạo
1.1.2 Xử lý ảnh
Xử lý ảnh là một trong những mảng quan trọng nhất trong kỹ thuật thị giác máytính, là tiền đề cho nhiều nghiên cứu thuộc lĩnh vực này Hai nhiệm vụ cơ bản của quá HTHương – TTHNgân – Đồ án cơ sở 5 – Khoa học máy tính V
Trang 15trình xử lý ảnh là nâng cao chất lượng thông tin hình ảnh và xử lý số liệu cung cấp chocác quá trình khác trong đó có việc ứng dụng thị giác vào điều khiển.
Quá trình bắt đầu từ việc thu nhận ảnh nguồn (từ các thiết bị thu nhận ảnh dạng
số hoặc tương tự) gửi đến máy tính Dữ liệu ảnh được lưu trữ ở định dạng phù hợp vớiquá trình xử lý Người lập trình sẽ tác động các thuật toán tương ứng lên dữ liệu ảnhnhằm thay đổi cấu trúc ảnh phù hơp với các ứng dụng khác nhau
Quá trình xử lý nhận dạng ảnh được xem như là quá trình thao tác ảnh đầu vàonhằm cho ra kết 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 “đã được xử lý” 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 như là đặctrư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 trongkhông gian và nó có thể xem như một hàm n biến P(c,c1,c2,…).Do đó,ảnh trong xử lýảnh có thể xem như ảnh n chiều
1.1.2.1 Nhận dạng hình ảnh
Nhiều cải tiến công nghệ mới gần đây dựa vào công nghệ nhận dạng hình ảnh –Image Recognition Công nghệ đằng sau tính năng nhận dạng khuôn mặt trong điệnthoại thông minh của chúng ta, chế độ tự hành trong xe tự lái và chẩn đoán hình ảnhtrong chăm sóc sức khỏe,… đã có những bước tiến lớn trong những năm gần đây Tất
cả chúng đều sử dụng các giải pháp giúp cảm nhận về các vật thể trước mặt chúng Do
đó, tại sao chúng thường được gọi là thị giác máy tính hay cách gọi khác là điện toánthị giác Những máy tính này có thể đưa ra quyết định chính xác dựa trên những gìchúng nhìn thấy
Nhận diện hình ảnh hoặc thị giác máy tính là một kỹ thuật tìm kiếm các cách để
tự động hóa tất cả công việc mà một hệ thống thị giác của con người có thể làm Hãynhắc đến những cái tên như TensorFlow của Google, DeepFace của Facebook, Dự ánOxford của Microsoft Chúng đều là những ví dụ tuyệt vời về hệ thống nhận diện hìnhảnh học sâu Mặt khác, các API được lưu trữ cho phép các doanh nghiệp tiết kiệm một
HTHương – TTHNgân – Đồ án cơ sở 5 – Khoa học máy tính VI
Trang 16số tiền lớn cho các nhóm phát triển Ví dụ như Google Cloud Vision, Clarifai,Imagga…
Nhận dạng hình ảnh ngày nay có thể so sánh với nhận thức thị giác của conngười Nó đã đi vào cuộc sống hàng ngày và phục vụ các nhu cầu khác nhau.Facebook và các nền tảng truyền thông xã hội khác sử dụng công nghệ này để tăngcường tìm kiếm hình ảnh và hỗ trợ người dùng khiếm thị Các doanh nghiệp bán lẻ sửdụng nhận dạng hình ảnh để quét cơ sở dữ liệu lớn để đáp ứng tốt hơn nhu cầu củakhách hàng và cải thiện cả trải nghiệm khách hàng tại cửa hàng và trực tuyến Trongchăm sóc sức khỏe, hệ thống nhận dạng và xử lý hình ảnh y tế giúp các chuyên gia dựđoán rủi ro sức khỏe, phát hiện bệnh sớm hơn và cung cấp nhiều dịch vụ tập trung vàobệnh nhân hơn Danh sách này có thể đi và về
Nhận dạng riêng các vật thể có trong hình rơi vào nhóm các nhiệm vụ thị giácmáy tính cũng bao gồm tìm kiếm trực quan, phát hiện đối tượng, phân đoạn ngữ nghĩa
và hơn thế nữa
Bản chất của nhận dạng các vật thể có trong hình là trong việc cung cấp mộtthuật toán có thể lấy một hình ảnh đầu vào thô và sau đó nhận ra những gì trên hìnhảnh này và hiển thị rõ từng vật thể lên Cần lưu ý rằng máy móc không thể nhìn thấy
và cảm nhận hình ảnh như chúng ta làm Đối với họ, đó là tất cả về toán học, và bất kỳđối tượng nào sẽ trông như thế này:
HTHương – TTHNgân – Đồ án cơ sở 5 – Khoa học máy tính VII
Trang 17Hình 3: Nhận dạng vật thể
Các công ty lớn như Tesla, Google, Uber, Adobe Systems… cũng sử dụng côngnghệ nhận diện hình ảnh Để chứng minh rằng công nghệ này đang tồn tại khắp thếgiới, hãy xem xét các số liệu thống kê gần đây Các nhà nghiên cứu dự đoán rằng thịtrường toàn cầu của công nhận diện hình ảnh sẽ đạt 38,92 tỷ USD vào năm 2021 Đó
là một con số rất lớn Vì vậy, không ngạc nhiên khi ngày càng nhiều thứ được gọi làứng dụng imagetech đang tận dụng nhận diện hình ảnh cho các mục đích khác nhau.Thậm chí là trong cả kinh doanh
Điều gì giúp mở rộng công nghệ nhận diện hình ảnh ngày nay? Đó là các công
cụ mã nguồn mở giúp lập trình dễ dàng hơn Trong khi đó giá cả thì ngày càng rẻ hơn.Các khung công tác và thư viện nguồn mở giúp các công ty có thể hưởng lợi từ côngnghệ nhận diện hình ảnh theo cấp số nhân
Ví dụ, các cơ sở dữ liệu mở lớn như Pascal VOC và ImageNet cung cấp quyềntruy cập vào hàng triệu hình ảnh được gắn thẻ Họ giúp các công ty công nghệ hìnhảnh phát triển và cải tiến các thuật toán học máy (Machine learning) của riêng họ Đốivới một nhà phát triển chuyên nghiệp, nhận diện hình ảnh thời gian thực cũng sử dụngmột thư viện đa nền tảng nguồn mở Nó được gọi là OpenCV Đây được xem là điểmgiải quyết đầu tiên Đồng thời nó là nguồn tài nguyên có thẩm quyền nhất cho cácchuyên gia nhận diện hình ảnh Một bộ thư viện tuyệt vời khác cho tầm nhìn máy tínhbao gồm OpenNN, VXL… và nhiều loại khác
1.1.3 OpenCV
OpenCV là một mã nguồn mở, là thư viện thị giác máy tính Thư viện OpenCVđược viết bằng C và C++ và chạy trên Linux, Windows và Mac OS X Phát triển tốttrên các giao diện: Python, Ruby, Matlab, và các ngôn ngữ khác OpenCV được thiết
kế để tính toán hiệu quả và tập trung mạnh vào các ứng dụng thời gian thực OpenCVđược viết tối ưu hóa bằng C và có thể tận dụng lợi thế của bộ vi xử lý đa lõi
OpenCV tự động sử dụng thư viện IPP thích hợp trong thời gian chạy nếu thưviện được cài đặt Một trong những mục tiêu của OpenCV là cơ sở cho thị giác máytính giúp người sử dụng và xây dựng các ứng dụng thị giác máy tính khá phức tạp mộtHTHương – TTHNgân – Đồ án cơ sở 5 – Khoa học máy tính VIII
Trang 18cách nhanh chóng Thư viện OpenCV chứa hơn 500 chức năng được sử dụng trongnhiều lĩnh vực của thị giác máy tính, bao gồm kiểm tra nhà máy sản xuất sản phẩm,hình ảnh y tế, an ninh, giao diện người dùng, hiệu chỉnh máy ảnh, thị giác 3 chiều, vàrobot.
Bởi vì thị giác máy tính và việc học lập trình thường đi chung với nhau.OpenCV có mục đích chung là tạo ra MLL MLL thì rất hữu ích cho những tác vụ củathị giác đó là nhiệm vụ của OpenCV Sublibrary là tập trung vào nhận dạng mẫu thống
kê và phân nhóm
Chức năng có trong thư viện 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 diện khuôn mặt
Nhận diện cử chỉ
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
Điều khiển Robot
Hỗ trợ thực tế tăng cường
HTHương – TTHNgân – Đồ án cơ sở 5 – Khoa học máy tính IX
Trang 19Hình 4: Ví dụ về dùng OpenCV để nhận diện khuôn mặt
Cấu trúc của OpenCV:
OpenCV là một bộ thư viện rất lớn, được cấu trúc thành 5 phần chính, trong đó
có 4 phần được phân chia như hình 4 dưới đây Trong đó, CV chứa các hàm xử lý hìnhảnh căn bản và các thuật toán nhận dạng cấp cao; MLL là bộ thư viện phục vụ chongành máy học HighGUI chứa các lệnh nhập xuất và hàm để truy xuát hình ảnh,video; CXCore chứa các cấu trúc cơ bản, các hàm vẽ và các hàm dùng chung cho toàn
bộ thư viện
Trong hình bên dưới, không bao gồm CvAux, thành phần chứa các thuật toán còntrong giai đoạn thử nghiệm hoặc các hàm bị ngừng phát triển Trong CvAux, ngườidùng có thể tìm thấy khá nhiều hàm có khả năng sẽ xuất hiện chính thức trongOpenCV trong tương lai Có thể kể đến như:
Trang 20- Tìm khung xương của vật thể
Hình 5: Cấu trúc thư viện OpenCV1.2 Giới thiệu về chương trình nhận diện biển báo giao thông sử dụng OpenCV
1.2.1 Mô tả chương trình
Bài báo cáo này trình bày phương pháp phát hiện và nhận dạng các biển báogiao thông đường bộ sử dụng kết hợp các kỹ thuật phát hiện biên và phân tích hìnhdáng đối tượng để phát hiện vùng ứng viên có thể là biển báo giao thông Sau đó, rúttrích đặc trưng và huấn luyện qua thuật toán CNN để nhận dạng biển báo
Nhận diện biển báo giao thông: có rất nhiều loại biển báo giao thông khác nhau như biển báo giới hạn tốc độ, biển cấm đi vào, tín hiệu giao thông, rẽ trái hoặc phải, trẻ em băng qua đường, cấm xe nặng vượt qua,…Nhận diện biển báo giao thông
là quá trình nhận biết nội dung biến báo và xác định biển báo đó thuộc loại nào.
HTHương – TTHNgân – Đồ án cơ sở 5 – Khoa học máy tính XI
Trang 21Hình 6: Ví dụ về biển báo được nhận diện
1.2.2 Ý tưởng
Từ một ảnh thu được, ta dựa vào đặc trưng màu sắc, ứng dụng tốt thư việnOpenCV để nhận dạng màu sắc của các biển báo cụ thể để phân loại và nhận biết đó làbiển báo gì Sau đó đưa ra thông tin về biển báo đã được phát hiện và nhận dạng
Quy trình bài toán: Đầu tiên, ảnh đầu vào là một ảnh có biển báo đơn và có nền.Khi đưa vào hệ thống thì ảnh sẽ được phân đoạn để loại bỏ nền nhằm làm nổi bật cácđối tượng có thể là biển báo giao thông, các đối tượng này được lọc để chọn ra vùngứng viên là biển báo giao thông Tiếp theo, đưa ảnh biển báo giao thông đã được tách
ra vào mô hình CNN đã được huấn luyện trước đó để nhận dạng loại biển báo Cuốicùng, hệ thống sẽ đưa ra thông tin biển báo cho người dùng
HTHương – TTHNgân – Đồ án cơ sở 5 – Khoa học máy tính XII