Đề tài này nhằm mục đích phát triển ứng dụng xử lý ảnh, thị giác máy tính và hệ thống nhúng vào xe tự hành, tăng cường khả năng quy hoạch quỹ đạo, giúp robot dò đường, phát hiện những ch
GIỚI THIỆU ĐỀ TÀI
Ngành khoa học công nghệ mới, tạo ra các sản phẩm robot và nghiên cứu ứng dụng chính hình thành trong những thập kỷ gần đây được gọi là Robotics
Trong Robotics có hầu hết các vấn để của “cơ-điện tử” Thuật ngữ “cơ - điện tử “( mechatronics) thể hiện sự kết hợp giữa cơ học máy và điều khiển điện tử Đồng thời sự phát triển của mechatronics cũng được phản ánh trong khoa học công nghệ robot
Một trong những tiêu chí đặc trưng cho robot là khả năng “lập trình được “(programable) Muốn có khả năng đó robot phải dùng đến máy tính hoặc các thiết bị khác có chức năng tương tự Máy tính có vai trò như bộ não của robot Robot ngày càng đóng vai trò quan trọng trong công nghiệp và cuộc sống hàng ngày Chúng sẽ thực hiện những công việc rất nhàm chán hoặc nguy hiểm, những công việc mà tốc độ và độ chính xác vượt quá khả năng của con người
Ngày nay sự cải thiện của tốc độ máy tính đã tạo ra những bước trưởng thành đáng kể cho robot trong từng giai đoạn phát triển và đang mở ra những triển vọng trở thành những robot thông minh nhờ khả năng xử lý rất nhanh của bộ điều khiển dùng máy robot) là lĩnh vực nghiên cứu có tính ứng dụng cao, áp dụng kĩ thuật tiên tiến hỗ trợ con người thực hiện những công việc nguy hiểm như thám hiểm hang động, dò tìm chất nổ, hay hỗ trợ con người trong việc lái xe an toàn , hệ thống xe điện, tàu lửa tự động Đề tài này nhằm mục đích phát triển ứng dụng xử lý ảnh, thị giác máy tính và hệ thống nhúng vào xe tự hành, tăng cường khả năng quy hoạch quỹ đạo, giúp robot dò đường, phát hiện những chướng ngại vật hay nhận ra mục tiêu cần đến
MỤC ĐÍCH NGHIÊN CỨU
Vấn đề chính cần giải quyết khi thực hiện đề tài này đó là làm sao phải phát hiện nhanh chóng phát hiện những chướng ngại vật hay nhận ra mục tiêu cần đến và tính toán tìm đường đi dựa trên sự phát triển của lĩnh vực thị giác máy tính (computer vision) và hệ thống nhúng (embedded system) Mục tiêu cần đến có các đặc điểm cụ thể về màu sắc, hình dạng và kiểu dáng Môi trường làm việc tương đối phức tạp , mobile robot phải có khả năng tự quy hoạch ra đường đi đến mục tiêu Để tăng tính ứng dụng thực tiễn của đề tài, học viên đã tìm hiểu, lựa chọn các giải pháp, thuật toán tìm kiếm tăng khả năng nhận dạng, phân loại chính xác mục tiêu và thực thi được trên nền hệ thống nhúng sử dụng hệ điều hành Linux (hệ điều hành Linux được lựa chọn do sự hoạt động ổn định, gọn nhẹ phù hợp cho việc phát triển các ứng dụng nhúng trên nền thiết bị phần cứng cấu hình thấp, tiêu tốn năng lượng hoạt động thấp).
TỔNG QUAN VỀ GIẢI THUẬT
webcam Xác định mục tiêu
Phát hiện mục tiêu dựa trên các thông tin đã biết trước như màu sắc, hình dạng, kích thước, … ta xây dựng một tập các đặc trưng nhằm phân biệt được nó với các vật khác trong môi trường hoạt động cuả mobile robot Ảnh từ webcam đi qua bộ tiền xử lý ảnh giữ lại các màu sắc cần quan tâm, lọc bỏ bớt nhiễu Sau đó xác định các vùng quan tâm, tính toán hình dạng và kích thước so sánh với tập đặc trưng để tìm ra mục tiêu và đưa qua bộ xử lý tìm quỹ đạo đến mục tiêu
Trên cơ sở xác định được mục tiêu, tìm ra vị trí toạ độ trong frame ảnh bắt được từ webcam, ta tính toán góc lệch so với trục chính của robot và khoảng cách đến mục tiêu Tiếp theo tìm quỹ đạo bằng cách phân đoạn thành các tác vụ nhỏ như: tiến tới, lùi lại, rẽ trái, rẽ phải, tránh vật cản,…hình thành đường đi đến mục tiêu
LÝ DO THỰC HIỆN ĐỀ TÀI
Trên cơ sở tìm hiểu về kĩ thuật lập trình hệ thống nhúng và xử lý ảnh, học viên muốn ứng dụng chúng trên mô hình mobile robot, xây dựng giải thuật điều khiển tìm quỹ đạo, tránh vật cản và tăng cường khả năng linh hoạt cuả chúng Xa hơn nữa học viên muốn tạo một lớp hàm cơ bản dùng về xử lý ảnh và hệ thống nhúng dùng để phát triển trên các robot thực tế ứng dụng công nghệ thị giác máy tính Được xây dựng trên mô hình và hệ thống board nhúng có tốc độ tương đối thấp, trong khi bài toán xử lý ảnh và quy hoạch quỹ đạo đòi hỏi rất nhiều phép tính nên tìm kiếm một phương pháp để giải quyết bài toán và các yêu cầu đặt ra về độ chính xác, tốc độ xử lý, khả năng thực thi là mục đích của đề tài này.
MOBILE ROBOT
Mobile robot là loại robot tự hành có khả năng di chuyển tự do trong một môi trường đã được định sẵn Nó khác với các loại robot công nghiệp như các loại tay máy chỉ có khả năng đạt tới một vị trí nhất định
Mobile robot hiện đang là một đề tài trọng tâm được đề cập đến trong những nghiên cứu hiện tại và hầu hết các trường đại học lớn trên thế giới đều có một hoặc nhiều phòng thí nghiệm nghiên cứu về mobile robot Hiện nay, mobile robot có thể được tìm thấy trong rất nhiều các lĩnh vực như công nghiệp, quân sự, y tế và cả trong lĩnh vực giải trí và phục vụ công việc nhà
Mobile robot có thể được phân loại dựa vào không gian hoạt động (robot di chuyển trên mặt đất, mobile robot trên không -UAVs và mobile robot hoạt động trong môi trường nước –AUVs) hoặc dựa vào thiết bị hỗ trợ di chuyển (chân, bánh xe hoặc đường ray) b Thị giác máy tính (computer vision) : xây dựng những hệ thống nhân tạo có khả năng thu thập thông tin từ hình ảnh Dữ liệu hình ảnh này có thể lấy được từ nhiều dạng khác nhau như tín hiệu video thu được từ một hoặc nhiều camera, hay dữ liệu nhiều chiều từ một máy chụp cắt lớp… Về mặt kĩ thuật, thị giác máy tính là tìm cách áp dụng các lý thuyết và mô hình của thị giác máy tính để xây dựng một hệ thống thị giác máy tính Ví dụ như ứng dụng hệ thống thị giác máy vào các hệ thống để :
Điều khiển quá trình (như robot công nghiệp hay thiết bị vận chuyển tự động)
Phát hiện đối tượng (ví dụ như giám sát hay đếm số người)
Thiết lập thông tin (xây dựng cơ sở dữ liệu hình ảnh hay chuỗi hình ảnh)
Mô hình hoá đối tượng hay môi trường (như việc kiểm tra trong công nghiệp, phân tích hình ảnh trong y tế hay phục vụ việc xây dựng bản đồ địa hình)
Tín hiệu ngõ vào cho một thiết bị tương tác người – máy
Thị giác máy tính cũng có thể được miêu tả như một thành phần của thị giác sinh vật học (biological vision) Trong thị giác sinh vật học, năng lực thị giác của con người và các động vật khác được nghiên cứu để xây dựng một hệ thống có khả năng hoạt động trong những điều kiện của quá trình sinh lý học Thị giác máy tính, nói cách khác, nghiên cứu và mô tả hệ thống thị giác nhân tạo để bổ sung cho các phần mềm và phần cứng
Về cơ bản, ta có thể chia mobile robot thành hai dạng : mobile robot tự động và mobile robot được điều khiển bởi con người
Dạng mobile robot tự động : đây là dạng mobile robot hoạt động theo những chương trình đã được lập trình sẵn và ít giao tiếp với con người, các robot nay hoạt
Mobile robot tránh vật cản dùng thị giác máy tính :
Những nghiên cứu đầu tiên về mobile robot là dạng mobile robot tránh vật cản
Robot có khả năng tránh được vật cản trên đường đi nhờ vào hệ thống cảm biến như cảm biến siêu âm, và gần đây là dùng thị giác máy tính để xác định vật cản Hệ thống thị giác của robot thường là hệ thống camera (có thể là 1,2 hoặc nhiều camera) Robot sẽ xác định vật cản trên đường đi nhờ vào kĩ thuật phân tích ảnh
Mobile robot bám theo đối tượng di động :
Một hướng nghiên cứu khác về mobile robot là robot bám theo đối tượng di động : robot có khả năng phát hiện và bám theo đối tượng di động nhờ hệ thống camera So với mobile robot tránh vật cản thì mobile robot dạng này đòi hỏi kĩ thuật phân tích ảnh phức tạp hơn : có khả năng phát hiện và xác định được vật thể di chuyển từ các dữ liệu truyền về từ camera
Hình 2.1 Mobile Robot bám đối tượng di động SRV1
XÂY DỰNG BÀI TOÁN TÌM QUỸ ĐẠO
2.2.1 Đặt vấn đề chạm vật cản trên đường đi Có hai loại bài toán tìm đường cho robot: bài toán cục bộ (local) và bài toán toàn cục (global)
Trong bài toán toàn cục, bản đồ môi trường làm việc của robot hoàn toàn được biết trước, vấn đề chính phải giải quyết là tìm được đường đi cho robot trước khi nó xuất phát Ở bài toán cục bộ, môi trường làm việc của robot hoàn toàn không được biết trước hoặc chỉ biết được một phần, robot hoàn toàn phải nhờ vào sự cảm nhận môi trường thông qua cảm biến gắn trên nó để dò đường
Thuật toán toàn cục có ưu điểm là biết trước đường đi tối ưu đến đích trước khi robot khởi hành Tuy nhiên, thuật toán này có nhược điểm là đòi hỏi nhiều lệnh tính toán và bộ nhớ Đặc biệt, nếu bản đồ môi trường làm việc không được khai báo chính xác thì có thể xảy ra tình huống xấu Ngoài ra, việc yêu cầu biết trước hoàn toàn môi trường hoạt động cũng là một nhược điểm của thuật toán này.
Trong khi đó, robot tìm đường cục bộ chỉ biết được thông tin xung quanh qua sensor cảm nhận môi trường gắn cùng Vì thế, robot tìm đường cục bộ có thể không hoàn thành việc tới đích (mặc dù thực tế có đường đi tới đích), khái niệm tối ưu không có ý nghĩa trong bài toán này Tuy nhiên, yêu cầu tính toán, dung lượng nhớ thấp cùng tính linh hoạt cao (như tránh được vật cản ngay cả khi vật đó di động) khiến tìm đường cục bộ trở thành một công cụ mạnh của robot tự hành Hiện nay, cách tiếp cận kết hợp giữa cục bộ và toàn cục đang ở ngày càng phổ biến, giúp robot tự hành tăng tính linh hoạt và hiệu quả
Học viên tập trung vào giải quyết cả hai bài toán nhưng ở mức độ đơn giản, môi trường hoạt động của robot là một mặt phẳng Các vật cản được xem là vật cản hai chiều, tĩnh hoàn toàn Trong bài toán cục bộ, robot được trang bị 3 sensor xác định khoảng cách vật cản, đã biết trước vị trí đích (cụ thể là quả bóng có màu sắc biết trước)
Trong bài toán toàn cục, từ đầu vào là vị trí xuất phát, vị trí đích, kích thước robot, bản đồ hoạt động, ta tìm ra đường đi để robot tự hành Đây là kiểu mô hình xuất hiện đầu tiên, trong đó robot cố bắt chước cách con người suy nghĩ: sau khi cảm nhận được về thế giới xung quanh, người ta sẽ suy nghĩ để lập kế hoạch, và hành động đáp ứng
Với dữ liệu cảm nhận đầy đủ, mô hình lập kế hoạch điều hướng robot bằng cách xử lý dữ liệu, không cho phép phản xạ vô điều kiện, làm chậm tốc độ phản ứng Kiểu mô hình này hiện đã lỗi thời và không còn được sử dụng.
Phản xạ không theo thứ bậc là kiểu phản xạ ngược hẳn với kiểu thứ bậc Nó không liên quan đến quá trình lập kế hoạch, các tín hiệu cảm nhận của robot được truyền trực tiếp đến hành động.
Theo kiểu này, robot chứa sẵn nhiều cặp tương ứng Cảm nhận - Hành động, được gọi là các bộ hành vi Các hành vi xảy ra có tính đồng thời, do
Hình 2.2 a Kiểu mô hình thứ bậc
Hình 2.2b Kiểu mô hình phản hồi này đã mang đến nhiều thành tựu to lớn, nhưng rõ ràng nó không thích hợp với các loại robot nhiều chức năng Nó giống như kiểu người ta dạy các con vật mà không làm cho con vật đó suy nghĩ thông minh hơn Kiểu mô hình này đòi hỏi sự hiểu biết về không gian hoạt động toàn cục trước khi lập trình để tìm ra tất cả các hành vi có thể có của robot Các nhà nghiên cứu thực hiện mô hình này để giảm thiểu giá thành phần cứng của sản phẩm bằng cách tăng mức độ tính toán ban đầu khi tạo ra các hành vi của robot c Kiểu mô hình tổng hợp
Kiểu tổng hợp là sự kết hợp 2 khái niệm trên, làm cho robot suy nghĩ uyển chuyển giống người hơn, và hiện nay hầu hết các nghiên cứu đi theo hướng này Kiểu này tách việc lập kế hoạch ra khỏi các hành vi của robot
Hình 0.3: Kiểu mô hình tổng hợp
Lập kế hoạch tương tác với các bộ hành vi bằng một phương thức mà người ta gọi là “nghe lén” “Nghe lén” là một phương thức lấy thông tin từ bộ phận Cảm nhận để điều chỉnh lại các thông tin toàn cục, tác động trở lại các hành vi của robot Đề tài này dựa trên sự phát triển của kiểu mô hình tổng hợp vì kiểu mô hình này,
Hình 2.2 c Kiểu mô hình tổng hợp như ở mô hình thứ bậc, và lại cho phép robot thực hiện nhiều chức năng hơn so với mô hình phản hồi.
LÝ THUYẾT VỀ XỬ LÝ ẢNH ĐƯỢC SỬ DỤNG TRONG ĐỀ TÀI
Khái niệm về ảnh số xuất hiện từ năm 1964 Chẳng bao lâu, một nhánh mới của khoa học gọi là xử lý ảnh số ra đời Kể từ đó , liên tục phát triển và tạo ra các kỹ thuật quan trọng ảnh hưởng trực tiếp đến các lĩnh vực truyền thông , tivi , kỹ xảo đồ họa ,
Xử lý ảnh là một trong các vấn đề ngày nay được thế giới quan tâm , nghiên cứu và ứng dụng Ở Việt Nam , vấn đề xử lý ảnh cũng được quan tâm và nghiên cứu trong thời gian gần đây
Cùng với sự phát triển mạnh mẽ của máy tính số , xử lý ảnh số với sự hổ trợ của máy tính cũng được phát triển và có nhiều ứng dụng Các ứng dụng cụ thể như : Trong lãnh vực truyền hình , cũng như việc lấy hình ảnh từ vệ tinh về trái đất thì ảnh có thể giảm chất lượng do tác động của nhiễu từ môi trường hay nhiễu trong các thiết bị xuất nhập Trong đo đạc bản đồ phục vụ cho việc xây dựng các bản đồ , trong quá trình chụp ảnh đôi khi bản đồ bị mờ, nhòe hoặc bị nhiễu do điều kiện khách quan của môi trường chụp Do đó, việc xử lý khôi phục lại ảnh gốc là rất quan trọng
Vấn đề xử lý hình ảnh bằng kỹ thuật số đã được quan tâm , có thể tóm tắt các hướng nghiên cứu chính trong xử lý hình ảnh bằng phương pháp số như sau :
- Mã hóa , xấp xỉ và nén hình ảnh (digitalization , approximation , compression) - Khôi phục ảnh, làm nổi bật các đặc trưng lọc, biến đổi, tạo lại hình ảnh (restoration, filtering , enhancement , transforms , reconstrustion)
- Các đặc trưng phân đoạn , phân tích ảnh (feature detection , segmentation image analysis)
- Ghép (matching) và biến đổi thời gian (time varying imaging)
- Tạo dạng và mẫu (shape , pattern)
Hình ảnh của một đối tượng là sự sao chụp lại đối tượng đó Qua hình ảnh mắt ta cảm thụ hình ảnh một cách gián tiếp Ảnh được hình thành qua hệ thống ảnh Trong thực tế ảnh sao chụp không phải là lý tưởng , ảnh bị méo , sai lệch với nhiều mức độ khác nhau , vì vậy việc xử lý khôi phục hình ảnh là nhằm khôi phục lại ảnh nguyên gốc theo một tiêu chuẩn nào đó
Khôi phục là quá trình so sánh một hình ảnh nào đó với một tập các hình ảnh chuẩn Khôi phục các hình ảnh giảm chất lượng (do chụp và ghi nhận trong điều kiện không thuận lợi hoặc do lưu trữ lâu ngày ) bằng phương pháp số cho hiệu quả cao và nhanh (trong nhiều trường hợp không thể giải quyết bằng phương pháp tương tự )
Hình ảnh được phân vào hai loại : - Hình ảnh tĩnh (static image) - Hình ảnh động (dynamic image)
Hình ảnh được biểu diễn theo nhiều chiều (hai hoặc ba chiều) Tất nhiên hình ảnh nhiều chiều sẽ phức tạp hơn hình ảnh một chiều khi biểu diễn và xử lý
Xử lý hình ảnh là thực hiện các phép toán lên các tín hiệu số của hình ảnh Khối lượng thông tin trong một bức ảnh là rất lớn (đến vài trăm mêga bít/ảnh) Bản chất các thông số ảnh có tính vectơ Để xử lý với tốc độ nhanh , cần có yêu cầu thích hợp về dung lượng bộ nhớ Các phương pháp mã hóa có hiệu quả , giảm độ dư thừa về thông tin trong ảnh và các thuật toán xử lý nhanh b) Khái niệm về phần tử ảnh : Ảnh trong thực tế liên tục về không gian và độ sáng, để ảnh có thể xử lý bằng máy tính ta cần thiết phải số hóa ảnh Quá trình này, người ta biến đổi tín hiệu tương tự thành tín hiệu rời rạc thông qua quá trình lấy mẫu (rời rạc về không gian) và lượng thành phần giá trị mà về mặt nguyên tắc bằng mắt thường không phân biệt được hai điểm liền kề nhau Quá trình này người ta sử dụng khái niệm phần tử ảnh mà ta thường gọi là pixel, nó là phần tử nhỏ nhất của ảnh Như vậy, một ảnh là một tập hợp các pixel
Một ảnh số là một mảng các điểm ảnh được số hóa và đưa vào bộ nhớ của máy tính Một số nhị phân chứa trong mỗi điểm ảnh thể hiện cường độ hay bước sóng ánh sáng trong ảnh Độ phân giải của một ảnh là khu vực của mỗi điểm ảnh, thông thường nó là số điểm ảnh trên mỗi hàng của ảnh, nó là một hàm của khoảng cách từ camera đến khung nhìn, chiều dài hội tụ của thấu kính và số điểm ảnh mỗi hàng của ảnh Như màn hình máy tính có nhiều loại với độ phân giải khác nhau: màn hình CGA có độ phân giải 320x200, màn hình VGA là 640x350
Hình 2.3: Phần tử ảnh c) Cấu trúc một file ảnh :
Tổng quát, một file ảnh là một tập hợp nhiều điểm ảnh, mỗi điểm ảnh được biểu như thế nào còn tùy vào file ảnh đó là màu hay xám, nhưng cơ bản ảnh vẫn là mảng hai chiều
Ảnh màu là ảnh kỹ thuật số chứa thông tin màu sắc cho từng pixel Mỗi pixel gồm 3 kênh màu theo không gian màu, thường là RGB Không gian màu này được sử dụng rộng rãi trên máy tính, ngoài ra còn có YCbCr và HSV Ảnh màu thường được lưu trữ dưới dạng ma trận hoặc ba ma trận quét, mỗi ma trận dành riêng cho một kênh màu.
Một biểu đồ vạch quét là một mảng hai chiều chứa các số nguyên nhỏ
Thông thường, mỗi mẫu bao gồm 8 bits (mỗi pixel là 24 bits) Tuy nhiên, trong một số ứng dụng đặc biệt yêu cầu chất lượng hình ảnh cao, mỗi mẫu có thể bao gồm 10 bits hoặc cao hơn Một ảnh 24 bits màu (24 bits cho mỗi pixel) sẽ có tổng cộng 2 24 16.777.216 màu sắc khác nhau
2.3.2 Không gian màu RGB và HSV
Màu sắc có thể được phân tích theo hai thành phần : thành phần màu và độ sáng Giá trị thành phần màu của một vật thể xác định đặc tính màu của vật thể đó trong khi giá trị độ sáng là một đặc tính của môi trường xung quanh tác động lên vật thể Đối với một ảnh màu, ta có thể xác định được cả hai giá trị thành phần màu và độ chói Một không gian màu là một mô hình toán học mô tả cách biểu diễn màu sắc bằng các con số, thông thường là 3 hay 4 thành phần Bước đầu tiên của việc xác định vị trí mắt là xác định được khuôn mặt người trong một ảnh dựa trên việc sử dụng đặc tính màu sác của da trên khuôn mặt Xác định vật thể dựa trên đặc tính màu có thể gặp vấn đề khi thay đổi điều kiện ánh sáng xung quanh sẽ làm thay đổi màu sắc bên ngoài của vật thể
Hình 2.5: Các kiểu không gian màu a) Không gian màu RGB(RGB color space) :
Không gian màu RGB là không gian màu được xây dựng dựa trên mô hình màu RGB (RGB color model) Ánh sáng trắng được hình thành từ bảy màu khác nhau: đỏ, cam, vàng, lục, lam, chàm, tím Các màu này tạo nên một dãy màu liên tục mà ta không thấy được ranh giới giữa chúng Nhưng xét về cấu tạo của mắt và việc nhìn thì tất cả các màu đều được liên kết bởi các màu cơ bản sau:
THUẬT TOÁN TRÁNH VẬT CẢN KẾT HỢP CẢM BIẾN THỊ GIÁC VÀ XÚC GIÁC
Con người có thể dễ dàng ước lượng khoảng cách và xác định biên dạng vật thể nhờ kinh nghiệm học được từ môi trường thực tế Tương tự, xúc giác cũng có khả năng xác định biên dạng vật thể thông qua tiếp xúc vật lý Trong giới hạn của đề tài này, cảm biến quang được sử dụng để xác định vật cản dựa trên nguyên lý đo khoảng cách từ biên của vật thể đến cảm biến bằng sóng siêu âm hoặc ánh sáng.
Sử dụng 3 cảm biến GP2D12 : là cảm biến đo khoảng cách, đặt lệch với nhau một góc α như hình vẽ Với các đặt như trên thì vùng xác định khả năng có vật cản được tăng lên so với cách đặt 3 cảm biến song song, tuy nhiên ta chỉ có thể phát hiện được những vật có kích thước tường đối lớn Khi tiến đến vật cản thì các trường hợp có thể xảy ra
Hình 2.10 mô hình gắn cảm biến đo khoảng cách GP2D12
Chúng trả về 3 giá trị dl, dm, dr dl : khoảng cách trả về của cảm biến bên trái dr : khoảng cách trả về của cảm biến bên phải dm: khoảng cách trả về của cảm biến ở giữa
Tình huống 1 (TH1): cả 3 cảm biến đều phát hiện vật cản
+ Nếu dl>dr thì robot quay sang trái + Nếu dl