Ứng dụng xử lý ảnh nhận dạng đường đi cho ô tô chạy tự động
Bạn đang xem tài liệu "Ứng dụng xử lý ảnh nhận dạng đường đi cho ô tô chạy tự động", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- ung_dung_xu_ly_anh_nhan_dang_duong_di_cho_o_to_chay_tu_dong.pdf
Nội dung text: Ứng dụng xử lý ảnh nhận dạng đường đi cho ô tô chạy tự động
- ỨNG DỤNG XỬ LÝ ẢNH NHẬN DẠNG ĐƯỜNG ĐI CHO Ô TÔ CHẠY TỰ ĐỘNG (1)KS.Hồ Văn Thu, (2)TS. Lê Thanh Phúc, (1)hothuoto@gmail.com , (2)phuclt@hcmute.edu.vn (1)Cao Đẳng Kỹ Thuật Cao Thắng, (2)Đại Học Sư Phạm Kỹ Thuật Tp.HCM Tóm tắt Nhận dạng đường đi cho ô tô chạy tự động là một đề tài hỗ trợ cho hệ thống giao thông thông minh. Nghiên cứu này sử dụng phần mềm Matlab và các Toolbox của nó là: Image Processing, Image Acquistion System, Computer Vision System làm công cụ chính để thu thập và xử lý. Trên mô hình đường là đường nhựa với các giả định: vân của đường là đồng nhất, dấu phân cách làn đường tuân theo quy chuẩn của vạch kẻ đường, khoảng cách giữa các dấu phân cách là không đổi. Đề tài nghiên cứu sử dụng webcam làm bộ phận thu thập hình ảnh chính. Từ hình ảnh thu được sử dụng bộ lọc FIR 2D để lọc ảnh và biến đổi ảnh thành ảnh nhị phân, dùng biến đổi Hough để xác định các dấu phân cách đường, làn đường. Tính toán khoảng cách dựa trên các dấu phân cách thu được để đưa ra tín hiệu về đường đi cho phần điều khiển xe tự động thông qua chuẩn giao tiếp RS232. Đề tài đã xây dựng được một chương trình nhận dạng đường đi và đã thực thi có hiệu quả trên các đoạn đường thử nghiệm. Từ khóa: Hough Transform, điều khiển, làn đường, MATLAB, nhận dạng, xe tự hành. Abstract Image processing has many applications in intelligent transportation system. Lane detection and tracking for autonomous vehicle is the one of that. This study uses Matlab software and it’s Toolbox: Image Processing, Image Acquistion System and Computer Vision System as the main tool to collect and process. The road model is assumped that: texture of road are identical. Lane makers follow lane rules. The distance between the lane makers is constant. This project uses webcam to collect the images. From the images obtained by using the 2D FIR filter, grayscale image is achieved. The image are converted into binary images, thenn by using Canny method and Hough transform available in Matlab to determine the lane makers and lane deparment. Calculate the distance based on separator obtained to provide signal for autonomous vehicle via the standard RS232 interface. The experimental results on local streets show that the suggested program is very reliable. Key words: Hough Transform, control, lane, MATLAB, detection, autonomous car. 1. Giới thiệu cơ gây tai nạn giao thông. Đã có nhiều nghiên Ngày nay, chúng tôi nhận thấy rằng cứu về hệ thống hỗ trợ người lái về làn đường các nhà nghiên cứu tập trung vào việc gia tăng như cảnh báo lệch làn đường, hỗ trợ đỗ xe, tính an toàn cho ô tô để giảm thiểu tối đa nguy cảnh báo và chạm dựa trên các hệ thống cảm biến được gắn trên ô tô. Trong đó, công nghệ
- xe tự lái được cho là an toàn hơn, đơn giản vì Ngược lại, mỗi một cặp (r, ) trong toạ độ cực máy móc hoạt động nhanh hơn con người. Số cũng tương ứng biểu diễn một đường thẳng khung hình mỗi giây mà mắt thường chúng ta trong mặt phẳng. nắm bắt ít hơn một máy quay tốc độ cao, não Giả sử M(x,y) là một điểm thuộc chúng ta xử lý dữ liệu và phản ứng chậm hơn đường thẳng được biểu diễn bởi (r, ), gọi CPU máy tính. Và chân tay con người thua xa H(x,y) là hình chiếu của góc tọa độ O trên về tốc độ làm việc so với những cơ cấu điện đường thẳng ta có x = rcos , y = rsin . Mặt tử. khác, ta có: OH.HA=0. Ở Việt Nam, cơ sở hạ tầng giao thông Từ đó có mối liên hệ (x,y) và (r, ) như sau: đang dần được cải thiện. Việc xây dựng một xcos + ysin = r. Xét n điểm thẳng hàng hệ thống giao thông thông minh là vấn đề cấp trong tọa độ Đề-các có phương trình xcos + thiết trong công cuộc công nghiệp hóa, hiện ysin = ro .Biến đổi Hough ánh xạ n điểm này đại hóa đất nước. Nghiên cứu, xây dựng các thành n đường sin trong tọa đô cực mà các công cụ hổ trợ cho hệ thống giao thông thông đường này đều đi qua điểm (r, ). Giao điểm minh trong đó có phương tiện giao thông (r, ) của n đường sẽ xác định một đường thông minh là yêu cầu của thời đại. Ứng dụng thẳng trong hệ tọa độ Đề-các. Như vậy những xử lý ảnh để nhận dạng đường đi cho ô tô chạy đường thẳng đi qua điểm (x,y) sẽ cho duy nhất tự động nhằm lý do đó. một cặp (r, ) và có bao nhiêu đường đi qua 2. Phương pháp nghiên cứu (x,y) sẽ có bấy nhiêu cặp giá trị (r, ). 2.1. Cơ sở lý thuyết MATLAB Dùng biến đổi Hough [1] để xác định dấu phân cách làn đường trong ảnh: TOOLBOX Image Acquistion Toolbox Computer Vision Toolbox Image Processing Toolbox M-file function Hardware driver adaptor Hình 1: Đường thẳng Hough trong tọa độ Đề- các [2] Mỗi điểm (x,y) trong mặt phẳng được biểu diễn bởi cặp (r, ) trong tọa độ cực. Hardware device driver Tương tự mỗ đường thẳng trong mặt phẳng USB Camera cũng có thể biểu diễn bởi một cặp (r, ) trong tọa độ cực với r là khoảng cách từ góc tọa độ RS232 tới đường thẳng đó và là góc tạo bởi trục Ox vớ đường thẳng vuông góc với nó, hình 1 biểu Hình 2: Mô hình tổng quát [1] diễn đường thẳng Hough trong tọa độ Đề-các.
- Trong bài toán của để tài, xét các điểm ảnh ghi hình. Độ phân giải của camera, tốc độ ghi thẳng hàng nằm trên dấu phân cách làn đường, hình. dùng biến đổi Hough để xây dựng mảng tích Camera được sử dụng trong đề tài là lũy các giá trị (r, ). Tím giá trị cực đại trong Logitech webcam 905. Có các thông số: mảng tích lũy, giá trị cực đại đó tương ứng với dấu phân cách làn đường trong ảnh. Độ phân giải: 2MP (up to 8MP). 2.2. Mô hình tổng quát Kích thước khung hình tối đa là: 1600x1200 pixels, ảnh RGB. Đề tài sử dụng mô hình xử lý tham khảo như hình 2. Phần mềm Matlab là công cụ xử lý Giao tiếp máy tính: USB. chính, giao tiếp với thiết bị ngoại vi thông qua cổng usb và cổng COM. Trong đó, camera giao tiếp với máy tính bằng cổng usb, truyền tín hiệu đến phần cứng bằng cổng COM. 2.3. Mô hình của đề tài MATLAB Thu nhận ảnh (Webcam ) Hình 4: Thiết lập góc quay Kích thước khung hình thu thập từ thiết bị này nằm trong khoảng từ 160x90 cho Tiền xử lý và phân đoạn ảnh đến 1600x1200. Thông số webcam được chọn trong đề tài là ‘RGB24_640x480’. Tốc độ ghi hình là 30fps. Biểu diễn và mô tả ảnh Thiết lập góc quay như hình 4, với tỷ lệ Nhận dạng và giải thích Xuất tín hiệu điều khiển (Chuẩn RS232) Hình 3: Mô hình của đề tài 2.4. Thu nhận ảnh Hình 5: Vùng quan tâm [3] 2.4.1. Chọn và thiết lập camera 2.4.2. Thu nhận ảnh từ camera Đây là bước rất quan trong bởi nó có Sử dụng hàm imaq.VideoDevice trong ảnh hưởng rất lớn đến độ chính xác trong quá thư viện Image Acquistion System Toolbox trình xử lý đối với các đề tài ứng dụng xử lý ảnh. Bước này đề cập đến việc thiết lập vị trí
- [3] để thu tập hình ảnh từ webcam. Trong đó Sử dụng hàm chuyển ảnh cường độ sang ảnh vùng quan tâm ROI , với ý nghĩa như hình 5. nhị phân: vision.Autothresholder Sau đó, trích xuất từng khung hình rồi tạo vòng lặp xử lý. 2.5. Tiền xử lý ảnh Hình 7: Ảnh nhị phân 2.7. Nhận dạng và giải thích Bước này sử dụng biến đổi Hough để xác định các đường thẳng trong ảnh. Các đường thẳng ở đây chính là các dấu phân cách làn đường. Từ đó tính toán xác định làn đường bên trái, Hình 6: Ảnh đầu vào bên phải. Ở bước này, ảnh sẽ được cải thiện về Đề tài sử dụng các hàm của công cụ Computer độ tương phản, lọc, xám hóa với mục đích Vision System Toolbox để xử lý đường thẳng cho chất lượng ảnh tốt hơn. trong ảnh, cụ thể là các hàm: Sau đó, chia ảnh đầu vào thành nhiều - vision.HoughTransform phần nhỏ và chọn những vùng ảnh cần cần quan tâm để xử lý. Ví dụ: Ảnh đầu vào như - vision.LocalMaximaFinder, hình 6 thì vùng cần quan tâm chính là nữa - vision.HoughLines. dưới của bức ảnh, nơi có chứa dấu chỉ làn đường. Nguyên tắc để xác định làn đường trái phải và sự lệch tâm đường: Dấu phân cách làn đường Đề tài đã sử dụng bộ công cụ Computer trái phải được xác định dựa vào giao điểm của Vision System Toolbox [4] để xử lý, cụ thể là nó với đường bao phía dưới cùng của ảnh. các hàm: Chương trình sẽ tính toán khoảng cách các từ - Hàm chuyển ảnh màu sang ảnh cường độ: tâm của khung ảnh tới các dấu phân cách làn vision.ColorSpaceConverter đường. Từ đó xuất tín hiệu cảnh báo nếu một trong các trường hợp sau xảy ra: - Hàm lọc ảnh: sử dụng bộ lọc FIR 2D [5] bằng hàm vision.ImageFilter - Dấu phân cách làn đường phía bên phải khung hình giao với đường bao phía dưới cùng 2.6. Biểu diễn và mô tả ảnh của khung hình. Sẽ cho tín hiệu lệch phải. Bước này chính là bước trích chọn đặc - Dấu phân cách làn đường phía bên trái khung trưng của ảnh. Trong bài toán nhận dạng hình giao với đường bao phía dưới cùng của đường đi của đề tài thì đặc trưng quan trọng đó khung hình. Sẽ cho tín hiệu lệch trái. là dấu phân cách làn đường. Bằng phương pháp biến ảnh cường độ thành ảnh nhị phân sẽ - Không có dấu phân cách nào giao với đường làm nỗi bật các dấu phân cách làn đường. bao phía dưới của khung hình. Sẽ cho tín hiệu đúng làn.
- Việc chọn vị trí đặt camera từ bước thu nhận ảnh và chọn vùng quan sát của ảnh có ảnh hưởng rất lớn đến độ chính xác của chương trình. 2.8. Xuất tín hiệu điều khiển Nếu đi đúng làn đường, chương trình sẽ gửi một tín hiệu kiểu String ‘C’ tới chân TX của cổng COM. Khi lệch tim đường, chương trình sẽ gửi một tín hiệu kiểu String ‘L’ nếu lệch trái, ‘R’ nếu lệch phải tới chân TX của cổng COM. Trong phần giao diện, tín hiệu được thể hiện Hình 8: Giao diện bằng hình ảnh trong khung Lane, và hiển thị 3. Thực nghiệm và kết quả dạng chuổi trong vùng Receiver (RX) nếu 3.1. Dữ liệu thực nghiệm chân RX và TX được nối tắt. Địa điểm thực nghiệm Sử dụng các hàm serial, fopen, fclose trong Matlab để xuất tín hiệu ra cổng COM. - Phòng thí nghiệm: Thí nghiệm được thực hiện trên xe mô hình như hình 9, và mô hình Trong quá trình lập trình, người thực hiện đã đường như hình 10. dùng phần mềm Proteus 8 Professional và Configure Virtual Serial Port Driver để mô phỏng và kiểm tra tín hiệu xuất ra của cổng COM. 2.9. Thiết kế giao diện Giao diện của chương trình được thiết kế như hình 8 bằng công cụ MATLAB Creating Graphical User Interfaces [6] Với các nút điều khiển: - Nút Start Webcam: Camera hành trình. Hình 9: Xe mô hình - Nút Detection & Tracking: Bắt đầu xử lý. Kích thước xe mô hình: Chiều rộng cơ sở: 14.3cm; Chiều rộng toàn bộ: 17.5cm; Chiều - Nút Stop: Dừng chương trình. dài cơ sở: 16.5cm; Chiều dài toàn bộ: 33cm; - Nút Exit: Thoát chương trình. Chiều cao xe: 13.8cm. Khoảng cách từ vị trí - Nút Connect: Kết nối và truyền dữ liệu ra camera tới cản trước: 22cm. cổng COM. - Nút Send: Để gửi thử tín hiệu ra cổng COM. Hình 10: Mô hình đường
- Hình 12: Xe đi đúng làn đường Khi xe đi đúng làn đường, chương trình sẽ gửi Hình 11: Mô hình thử nghiệm gửi một chuỗi ký tự C đến cổng COM, đồng - Trên đường: Toàn bộ dữ liệu thực nghiệm thời thể hiện bằng một hình ảnh màu xanh tại của đề tài được thực hiện bằng xe máy trên vị trí Center trong khung Lane của giao diện. nhiều đoạn đường, nhưng cho kết quả tốt nhất là khi thực nghiệm trên các đoạn đường vắng - Khi xe lệch phải: Hình 13 xe (Đường Phạm Văn Đồng, Quận Thủ Đức; Đường Mai Chí Thọ, Quận 2). Về tốc độ xử lí Chương trình thực thi của đề tài này được thử nghiệm trên máy tính có cấu hình: Bộ vi xử lý: Intel Core 2 Duo CPU T5800 @ 2.00GHz ; RAM : 2.00 GB ; HDD: 120 GB ; Hệ điều hành : Windows 8.1 Pro (32 bit) Ngôn ngữ lập trình được sử dụng là Matlab với các bộ công cụ chính là Computer Vision System, Image Acquistion System và Hình 13: Xe lệch phải Image Processing System [7], MATLAB Khi xe lệch phải, chương trình sẽ gửi gửi một Creating Graphical User Interfaces [6]. chuỗi ký tự R đến cổng COM, đồng thời thể Độ phân giải của camera ghi hình là hiện bằng một hình ảnh màu vàng tại vị trí 640x480, tốc độ ghi là 30fps. Right trong khung Lane của giao diện. 3.2. Hình ảnh về kết quả thực nghiệm - Khi xe lệch trái: Hình 14 3.2.1. Trong phòng thí ngiệm - Xe đi đúng làn đường: Hình 12
- Hình 14: Xe lệch trái Hình 15: Xe đi đúng làn đường Khi xe lệch trái, chương trình sẽ gửi gửi một chuỗi ký tự L đến cổng COM, đồng thời thể hiện bằng một hình ảnh màu đỏ tại vị trí Left trong khung Lane của giao diện. 3.2.2. Thực nghiệm trên đường - Khi xe đi đúng làn đường: Hình 15 - Khi xe bị lệch phải: Hình 16 - Khi xe bị lệch trái: Hình 17 4. Đánh giá kết quả Bài toán nhận dạng đường đi có nhiều hạn chế trong việc đánh giá kết quả. Bởi chưa có một tiêu chí chung nào cho việc đánh giá, Hình 16: Xe lệch phải so sánh kết quả giữa các nghiên cứu. Đồng thời mục tiêu đưa ra của mỗi nghiên cứu cũng không giống nhau nên việc đánh giá cũng còn nhiều hạn chế. Tuy nhiên, trong các bài toán thu thập và xử lý dữ liệu phục vụ cho ô tô chạy tự động thì tiêu chí về tốc độ và độ chính xác luôn được xem xét trước tiên. Tiếp đó là tiêu chí về sự đổi mới so với các nghiên cứu trước đó. Trong nghiên cứu này, người thực hiện đã thực nghiệm lặp lại nhiều lần và ghi nhận kết quả chủ yếu dựa trên tiêu chí về tốc độ để so sánh với các nghiên cứu trước đó. Hình 17: Xe lệch trái
- Tốc độ xử lý của chương trình là khá tốt. vọng. Sau khi hoàn thành, đề tài thể hiện Chương trình có thể xử lý trong thời gian thực những kết quả đạt được như sau: dựa trên hình ảnh thu thập từ webcam với tốc - Ứng dụng được phần mềm Matlab để thu độ ghi hình là 30fps, tốc độ xử lý và xuất tín thập, nhận diện và xử lý ảnh ở mức cơ bản dựa hiệu trung bình là 10fps, tốc độ này phụ thuộc vào hình ảnh thu thập được bằng webcam. rất lớn vào tốc độ ghi hình và cấu hình của máy tính. - Xuất được tín hiệu điều khiển và cảnh báo cho người lái biết vị trí của xe so với vị trí Bảng 1: So sánh về tốc độ xử lý của các mục tiêu. nghiên cứu. - Làm cơ sở để thực hiện các đề tài tiếp theo Nghiên cứu Khả năng xử lý Cấu có liên quan đến xử lý ảnh và nhận dạng làn hình đường, điều khiển xe tự động. Tuy nhiên, đề tài chỉ thực hiện ở mức độ cơ M.Bertozzi và 128x128, 5fps CPU bản nên chưa thể ứng dụng vào thực tế, để ứng A.Broggi [8] 1.7GHz, dụng được vào thực tế, cần phải thực hiện sử dụng thêm: Matlab - Nhận dạng làn đường trên những đoạn ZuWhan Kim 176x120, 2-3fps P4 đường cong nghiêm ngặc, có chướng ngại vật. [9] 3GHz, - Sử dụng camera hồng ngoại để quan sát vào C++ sử ban đêm. Nâng cao tốc độ ghi hình và xử lý. dụng OpenCV - Nhận dạng và xử lý làn đường có nhiều tín hiệu giao thông: Đường cấm, biển báo bắt Y. Wang, 128x128, 4spf 128MB buộc rẽ phải, rẽ trái, giới hạn tốc độ, đường E.K.Teoh, and Ram giao nhau D.Shen [10] - Nhận dạng và xử lý trên những làn đường Luận văn 640x480, 30fps Core 2 không có vạch kẻ đường. Duo, 6. Tài liệu tham khảo 2.0GHz, [1] Oge Marques, Practical Image and video Ram processing using Matlab, Wiley, 2011. 2GB. Sử [2] TS.Đỗ năng Toàn, TS.Phạm Việt Bình, dụng Giáo trình Xử lý ảnh, Đại học Thái Matlab. Nguyên, 2007. Như vậy, nếu xét về tốc độ xử lý thì chương [3] The MathWorks Inc, Image Acquisition trình của luận văn khá hiệu quả so với các Toolbox User’s Guide, 2013. nghiên cứu trước đó. [4] The MathWorks Inc, Computer Vision System Toolbox User’s Guide, 2013. 5. Kết luận [5] TS.Hồ Văn Sung, Xử lý ảnh số - Lý thuyết Mặc dù đề tài đáp ứng yêu cầu đặt ra ban đầu và thực hành với Matlab, Nxb Khoa học nhưng kết quả đạt được vẫn chưa như kỳ kỹ thuật, 2013.
- [6] The MathWorks Inc, MATLAB Creating [9] ZuWhan Kim, “Realtime Lane Tracking of Graphical User Interfaces, 2013. Curved Local Road”, in IEEE Intelligent [7] The mathWork Inc, Image Processing Transporation Systems, Toronto, Canada, Toolbox, 2013. 2006, pp.1149-1155. [8] M.Bertozzi and A.Broggi, “GOLD: A [10] Y. Wang, E.K.Teoh, and D.Shen, "Lane parallel real-time stereo vision system for detection and tracking using BSnake," generic obstacle and lane detection”, Image and Vision Computing, vol. 22, IEEE Transaction on Image Processing, no.4, 2004, pp. 269-280. 1998, pp.199-213. Thông tin liên hệ tác giả chính (người chịu trách nhiệm bài viết): Họ tên: Hồ Văn Thu Đơn vị: Khoa Cơ Khí Động Lực, Trường Cao Đẳng Kỹ Thuật Cao Thắng Điện thoại: 090 9298 269 Email: hothuoto@gmail.com
- BÀI BÁO KHOA HỌC THỰC HIỆN CÔNG BỐ THEO QUY CHẾ ĐÀO TẠO THẠC SỸ Bài báo khoa học của học viên có xác nhận và đề xuất cho đăng của Giảng viên hướng dẫn Bản tiếng Việt ©, TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH và TÁC GIẢ Bản quyền tác phẩm đã được bảo hộ bởi Luật xuất bản và Luật Sở hữu trí tuệ Việt Nam. Nghiêm cấm mọi hình thức xuất bản, sao chụp, phát tán nội dung khi chưa có sự đồng ý của tác giả và Trường Đại học Sư phạm Kỹ thuật TP. Hồ Chí Minh. ĐỂ CÓ BÀI BÁO KHOA HỌC TỐT, CẦN CHUNG TAY BẢO VỆ TÁC QUYỀN! Thực hiện theo MTCL & KHTHMTCL Năm học 2016-2017 của Thư viện Trường Đại học Sư phạm Kỹ thuật Tp. Hồ Chí Minh.