Bộ giáo dục đào tạo trường đại học bách khoa hà nội - luận văn thạc sĩ khoa học Nghiên cứu ứng dụng phương pháp nhận dạng ảnh điều khiển Robot ngành : tự động hoá xncn m· sè : ngun minh s¬n Ngêi híng dÉn khoa học : TS Nguyễn Văn khang hà nội - 2008 Lời cam đoan Tôi xin cam đoan luận văn thực thân hướng dẫn TS Nguyễn Văn Khang với tài liệu đà trích dẫn phần tài liệu tham khảo phần cuối luận văn Ngun Minh S¬n Mơc Lơc B Trang Trang phơ bìa B Lời cam đoan B Mục lục B Danh mục ký hiệu chữ viết tắt B Lời mở đầu B 6B chương I - Tổng quan ứng dụng phương B pháp nhận dạng ảnh điều khiển Robot nội dung cần nghiên cứu 8B 1.1 Tổng quan ứng dụng phương pháp nhận dạng ảnh B ®iỊu khiĨn Robot 10B 1.1.1 TÝnh thêi sù B 12B 1.1.2 C¬ së khoa học ứng dụng phương pháp nhận dạng B ảnh điều khiển Robot 14B 1.1.3 TÝnh øng dơng B 16B 1.1.4 T×nh hình nghiên cứu ứng dụng nhận dạng ảnh điều B khiĨn Robot trªn thÕ giíi 18B 1.1.5 Tình hình nghiên cứu, ứng dụng nước B 20B 1.2 C¸c bíc chÝnh hƯ thèng nhËn d¹ng B 2B 1.2.1 Thu nhận hình ảnh B 24B 1.2.2 Tiền xư lÝ B 26B 1.2.3 Ph©n vïng B 1.2.4 Phân tích hình ảnh B 1.2.5 NhËn d¹ng B 28B 10 B 10 B 1.2.6 Xö lÝ møc cao B 1.3 Néi dung nghiªn cøu B 1.4 Mục tiêu nội dung luận văn B 1.4.1 Mục tiêu B 1.4.2 Nội dung B Chương II - phân vùng ảnh B 2.1 Phân vùng ảnh theo ngưỡng biên độ B 2.1.1 Ngưỡng cố định B 2.1.2 Ngưỡng dựa lược đồ B 2.1.2.1 Tuật toán đẳng liệu 51B 2.1.2.2 Thuật toán tam giác 53B 2.2 Thuật toán gán nhÃn thành phần liên thông B 2.3 Phân vùng theo miền đồng B 2.3.1 Phương pháp tách tứ phân B 2.3.2 Phương pháp cục B 2.3.3 Phương pháp tổng hợp B 2.4 Phân vùng ảnh theo kết cấu bề mặt B 2.4.1 Phương pháp thống kê B 2.4.2 Phương pháp cấu trúc B 2.4.3 TiÕp cËn theo tÝnh kÕt cÊu 71B Ch¬ng III - Các phương pháp nhận dạng ảnh B 3.1 Khái quát nhận dạng B 3.1.1 Không gian biểu diễn đối tượng, không gian diễn dịch B 3.1.2 Mô hình chất trình nhận dạng B 3.1.2.1 Mô hình B 3.1.2.2 Bản chất trình nhận dạng B 10 B 11 B 12 B 12 B 12 B 14 B 14 B 15 B 15 B 16 B 16 B 17 B 19 B 19 B 21 B 22 B 23 B 23 B 27 B 27 B 28 B 28 B 28 B 29 B 29 B 31 B 33 B 3.2 NhËn dạng dựa phân hoạch không gian B 3.2.1 Phân hoạch không gian B 3.2.2 Hàm phân lớp hay hàm định B 3.2.3 Nhận dạng thống kê B 3.2.4 Một số thuật toán nhận dạng tiêu biểu tự học B 3.2.4.1 Thuật toán dựa vào khoảng cách lớn 95B 3.2.4.2 Thuật toán K trung bình 97B 3.2.4.3 Thuật toán ISODATA 9B 3.3 Nhận dạng theo cấu trúc B 3.3.1 Biểu diễn định tính B 3.3.2 Phương pháp định dựa vµo cÊu tróc B 3.3.2.1 Mét sè khái niệm 107B 3.3.2.2 Phương pháp nhận dạng 109B 3.4 mạng nơ ron nhân tạo Nhận dạng theo mạng nơ ron B 3.4.1.Bộ nÃo nơ ron sinh học B 3.4.2 Mô hình mạng nơ ron nhân tạo B 3.4.2.1 Mô hình nơ ron nhân tạo 17B 3.4.2.2 Mạng nơ ron 19B 3.4.3 Các mạng nơ ron lớp B 3.4.3.1 Mạng Hopfield 123B 3.4.3.2 M¹ng kiĨu bé nhí chiỊu kÕt hợp thích nghi 125B 3.4.3.3 Mạng Kohonen 127B 3.4.3.4 Mạng Perceptron 129B 3.4.4 Các mạng nơ ron nhiều lớp B 3.4.4.1 Mạng nơ ron nhiều lớp lan truyền ngược sai số 13B 3.4.4.2 Mạng nơ ron nhiều lớp ngỵc híng 135B 33 B 33 B 35 B 36 B 36 B 37 B 38 B 39 B 39 B 39 B 39 B 41 B 41 B 42 B 45 B 46 B 47 B 52 B 52 B 56 B 59 B 64 B 66 B 66 B 71 B 74 B Ch¬ng IV B ứng dụng nhận dạng ảnh điều khiển Robot 4.1 ứng dụng nhận dạng ảnh ®iỊu khiĨn chun ®éng B cđa Robot 4.2 Xây dựng tham số cho điều khiển camera B 4.2.1 Tính toán tốc độ quay theo ph¬ng ngang ϕ B 4.2.2 Tính toán tốc độ quay theo phương đứng B 4.3 Xây dựng tham số cho điều khiển robot B 4.3.1 Các tham số ảnh hưởng tới tốc độ Robot B 4.3.2 TÝnh to¸n c¸c tham sè điều khiển B Chương V - Mô B 5.1 Mô trình nhận dạng ảnh B 5.1.1 Cơ sở lý thuyết thực trình nhận dạng B 5.1.2 Kết mô B 5.1.3 NhËn xÐt B 5.2 M« pháng bé điều khiển Robot, quỹ đạo đuổi bắt đối tượng B 5.2.1 Xây dựng sơ đồ khối B 5.2.2 Kết mô B 5.2.3 NhËn xÐt B KÕt luận kiến nghị B Tài liệu tham kh¶o B Phơ lơc B Tóm tắt luận văn B 74 B 75 B 75 B 77 B 78 B 78 B 79 B 83 B 83 B 83 B 85 B 87 B 88 B 88 B 92 B 94 B 95 B Danh mục ký hiệu chữ viết tắt Giá trị ngưỡng mức xám Pixel Điểm ảnh X Là đối tượng ảnh X Là không gian đối tượng Không gian diễn dịch Tập rỗng W Ma trËn träng sè ξx , ξy Täa ®é cđa đối tượng ảnh Góc camera theo phương ngang Góc camera theo phương đứng v Vận tèc dµi ω VËn tèc gãc e Vector sai lƯch vị trí Lời Mở đầu Sự phát triển kỹ thuật điện tử công nghệ thông tin đà kéo theo phát triển loạt ngành liên quan Một ngành ngành xử lý nhận dạng ảnh số Trên giới, công nghệ xử lý nhận dạng ảnh đà phát triển mạnh mẽ có nhiều ứng dụng hầu hết lĩnh vực người Và nay, sản phẩm có ứng dụng công nghệ coi sản phẩm thông minh, có sức cạnh tranh lớn Một lĩnh vực cần trang bị công nghệ nhận dạng ảnh công nghiệp chế tạo Robot Việc ứng dụng công nghệ điều khiển Robot làm tăng khả nhận thức cho Robot, lµm cho nã ngµy cµng hoµn thiƯn vµ gièng người nước, môn xử lý ảnh giảng dạy số trường trọng điểm khoa học kỹ thuật Đại học Bách khoa Hà nội, Đại học Quốc gia Hà nội, Đại học Bách khoa thµnh Hå ChÝ Minh… Vµ míi chØ giới hạn ngành công nghệ thông tin, điện tử viễn thông Hiện, chưa có nhiều nghiên cứu để đưa công nghệ vào ứng dụng thực tiễn ngành, lĩnh vực khác Hiện nay, công nghệ xử lý nhận dạng ảnh số nhiều bạn trẻ quan tâm Đặc biệt bạn sinh viên có ý định tham gia trò chơi Robocon quốc tế Bởi hầu hết Robot tự động chủ yếu rò đường theo vạch kẻ sân không phân biệt cấu kiện hay đội bạn Việc trang bị kỹ thuật nhận dạng ảnh cho Robot tự động làm giảm bớt nhược điểm trên, đồng thời làm tăng khả điều khiển linh hoạt cho Robot Xuất phát từ nhu cầu thực tiễn trên, Tôi đà chọn đề tài Nghiên cứu ứng dụng phương pháp nhận dạng ảnh điều khiển Robot Quyển luận văn tài liệu tham khảo, giúp người đọc có hình dung khái niệm nhận dạng ảnh, phương pháp nhận dạng ảnh biết cách ứng dụng công nghệ điều khiển Robot Cụ thể xây dựng phương pháp nhận dạng ảnh để điều khiển Robot việc tìm đuổi bắt mục tiêu di động có phương vận tốc chưa biết Trong khuôn khổ đề tài với quỹ thời gian không cho phép có số khó khăn việc cập nhập tài liệu hạn chế thân, nên chắn luận văn không tránh khỏi thiếu sót Vậy kính mong thầy cô bạn yêu thích công nghệ đóng góp bảo, phê bình để đề tài ngày hoàn thiện Em xin chân thành cảm ơn thầy giáo TS Nguyễn Văn Khang đà tận tình hướng dẫn bảo em thời gian thực đề tài này! Hà nội, 18/ 11/ 2008 Tác giả Nguyễn Minh Sơn chương I Tổng quan ứng dụng phương pháp nhận dạng ảnh điều khiển Robot nội dung cần nghiên cứu 1.1 Tổng quan ứng dụng phương pháp nhận dạng ảnh điều khiển Robot 1.1.1 Tính thời Ngày nay, trước phát triển vượt bậc khoa học kỹ thuật, thiết bị máy móc thay hỗ trợ cho người lao động sản xuất, sinh hoạt, đòi hỏi ngày phải hoàn thiện Trong năm gần kỹ thuật vi điện tử phát triển mạnh, đà khiến cho tốc độ vi xử lý ngày cao, chất lượng camera kỹ thuật số ngày hoàn thiện Vì vậy, việc ứng dụng công nghệ xử lý ảnh, nhận dạng ảnh ngày sâu rộng tất lĩnh vực công nghiệp, quân sự, an ninh, vũ trụ, y học, giao thôngvv sống hàng ngày Từ xuất hiƯn cho tíi nay, kh«ng cã thĨ phđ nhËn vai trò Robot sản xuất công nghiệp lẫn sinh hoạt gia đình Chúng thực công việc nhàm chán nguy hiểm, công việc mà tốc độ độ xác vượt khả người Khi người máy trở nên tinh vi hơn, thị giác máy tính đóng vai trò ngày quan trọng Người ta đòi hỏi người máy phát nhận dạng phận công nghiệp mà hiểu chúng thấy đưa hành động phù hợp Việc phát triển, hoàn thiện tính giúp cho người máy ngày giống với người đà khiến nhà khoa học giới phải tốn nhiều công sức Ngày nay, với phát triĨn tét bËc cđa khoa häc kü 93 H×nh 5.16 Biểu đồ vận tốc v Robot Hình 5.17 Biểu ®å täa ®é (x, y) cđa vector sai lƯch e theo thời gian 94 Hình 5.18 Trường hợp bóng chuyển động theo đường cong, XY Graph1là quỹ đạo chuyển động Robot, XY Graph2 quỹ đạo chuyển động bóng Hình 5.19 Trường hợp bóng chuyển động theo đường thẳng có lần đổi hướng, XY Graph1là quỹ đạo chuyển động Robot, XY Graph2 quỹ đạo chuyển động bóng 5.2.3 Nhận xét Chương trình mô đà mô trình đuổi bắt bóng Robot Quỹ đạo chuyển động Robot bám theo có dạng gần giống với quỹ đạo bóng 95 Kết luận kiến nghị Nội dung luận văn đà trình bày khái quát tình hình nghiên cứu, ứng dụng công nghệ nhận dạng ảnh điều khiển Robot Đồng thời đà giới thiệu cho người đọc bước trình nhận dạng ảnh số sau sâu nghiên cứu hai bước phân vùng ảnh nhận dạng ảnh Luận văn đà trình bày cách ứng dụng nhận dạng ảnh điều khiển camera để biến camera thành cảm biến vị trí Từ xác định vị trí tương đối đối tượng so với Robot Luận văn đà xây dựng tham số vận tốc dài v tốc độ chuyển hướng việc điều khiển quỹ đạo chuyển động Robot Luận văn đà mô trình nhận dạng đối tượng xác định tham số cần thiết cung cấp cho điều khiển camera Đồng thời luận văn đà mô tham số điều khiển v, quỹ đạo chuyển động Robot đối tượng chuyển động theo quỹ đạo khác Tuy nhiên luận văn chưa thực mô với nhiều phương pháp đà trình bày nên chưa đưa so sánh cần thiết tốc độ, hiệu Bộ điều khiển xây dựng chưa tối ưu, cần phải nghiên cưu thêm Qua tác giả có đưa vài kiến nghị để tiếp tục phát triển đề tài la: - Tối ưu hóa trình điều khiển chuyển động Robot - Tạo thêm chướng ngại vật trình di chuyển Robot - Tạo thêm nhiều đối tượng giống để Robot phân biệt mục tiêu mục tiêu phụ Tài liệu tham khảo [1] Ths Lương Mạnh Bá, PTS Nguyễn Thanh Thủy (1999), Nhập môn xử lý ảnh số, Nhà xuất khoa häc kü thuËt, Hµ néi [2] Francesco Capparella, Luigi Freda, Marco Malagnino, and Giuseppe Oriolo, Visual Servoing of a Wheeled Mobile Robot for Intercepting a Moving Object, Dipartimento di Informatica e Sistemistica Universit` di Roma “La Sapienza” Via Eudossiana 18, 00184 Roma, Italy Tài liệu tham khảo [1] Ths Lương Mạnh Bá, PTS Nguyễn Thanh Thủy (1999), Nhập môn xử lý ảnh số, Nhà xuất khoa học kü thuËt, Hµ néi [2] Francesco Capparella, Luigi Freda, Marco Malagnino, and Giuseppe Oriolo, Visual Servoing of a Wheeled Mobile Robot for Intercepting a Moving Object, Dipartimento di Informatica e Sistemistica Universit` di Roma “La Sapienza” Via Eudossiana 18, 00184 Roma, Italy Phụ lục 6.1 Chương trình đọc ảnh ảnh đọc có định dạng Bitmap, 24 bit mầu, không nén ảnh lưu vào mảng anh() dạng đen trắng Private Type BITMAPPalette r As Byte g As Byte b As Byte lngReserved As Byte End Type Dim f As Long Private Type RGBQUAD rgbBlue As Byte rgbGreen As Byte rgbRed As Byte 'rgbReserved As Byte End Type Private Type BITMAPINFOHEADER '40 bytes biSize As Long biWidth As Long biHeight As Long biPlanes As Integer biBitCount As Integer biCompression As Long biSizeImage As Long biXPelsPerMeter As Long biYPelsPerMeter As Long biClrUsed As Long biClrImportant As Long End Type Private Type BITMAPFILEHEADER bfType As Integer '- type ="BM" i.e &H4D42 - bfSize As Long ' - size in bytes of file - bfReserved1 As Integer ' - reserved, must be - bfReserved2 As Integer ' - reserved, must be - 10 bfOffBits As Long ' offset from this structure to the bitmap bits - 14 End Type Sub doc_anh(tenfile As String, anh() As Byte, wi As Long, he As Long) Dim Fi As Integer, Hf As BITMAPFILEHEADER Dim Inf As BITMAPINFOHEADER, C() As Byte Dim i As Integer, j As Integer, k As Integer, offbit As Integer Fi = FreeFile Open tenfile For Binary As Fi Get Fi, 1, Hf Get Fi, 15, Inf wi = Inf.biWidth he = Inf.biHeight offbit = Hf.bfOffBits ReDim anh(1 To he, i To wi) ReDim C(1 To Hf.bfSize - offbit) k = (Hf.bfSize - offbit - he * wi * 3) / he Get Fi, offbit + 1, C() If Inf.biBitCount = 24 Then For i = To he For j = To wi anh(he - i + 1, j) = C(k * (i - 1) + + * (wi * (i - 1) + j - 1)) \ + C(k * (i - 1) + + * (wi * (i - 1) + j - 1)) \ + C(k * (i - 1) + + * (wi * (i - 1) + j - 1)) \ Next j Next i End If Close Fi End Sub 6.2 Ch¬ng trình hiển thị ảnh Sub ve_anh(anh() As Byte, ByVal w As Long, ByVal H As Long, x As Variant, y As Variant) Dim i As Integer, j As Integer, co As Byte Form1.CurrentX = x Form1.CurrentY = y For i = To H For j = To w co = anh(i, j) PSet (x + 15 * j, y + 15 * i), RGB(co, co, co) Next Next End Sub 6.3 Chương trình phân vùng ảnh Function phan_vung(pixel() As Byte, ByVal w As Long, ByVal H As Long, ByVal ng As Integer, sovung As Long) As Variant() Dim nhan() As Variant Dim i As Long, j As Long, d As Long Dim n As Variant, g As Variant Dim t As Variant Dim nh1 As Variant, nh2 As Variant, k As Variant Dim dnh() As Variant ReDim nhan(1 To H, To w) n=1 For i = To H For j = To w If pixel(i, j) < ng Then y=i x=j-1 If x < Then x = j nh1 = nhan(y, x) x=j+1 y=i-1 If y < Then y = i If x > w Then x = w nh2 = nhan(y, x) If nh1 > Then nhan(i, j) = nh1 If (nhan(i, j) > nh2) And (nh2 > 0) Then nhcu = nhan(i, j) nhmoi = nh2 Call doiten(nhan, w, i, nhcu, nhmoi) For k = nhcu + To n - Call doiten(nhan, w, i, k, k - 1) Next k n=n-1 End If If (nhan(i, j) < nh2) And (nhan(i, j) > 0) Then nhcu = nh2 nhmoi = nhan(i, j) Call doiten(nhan, w, i, nhcu, nhmoi) For k = nhcu + To n - Call doiten(nhan, w, i, k, k - 1) Next k n=n-1 End If If nhan(i, j) < Then nhan(i, j) = n n=n+1 End If End If Next Next ReDim dnh(1 To n) For i = To H For j = To w If nhan(i, j) > Then dnh(nhan(i, j)) = dnh(nhan(i, j)) + Next j Next i sovung = n - For k = To n - If dnh(k) < 100 Then If dnh(k) > Then Call doiten(nhan, w, H, k, 0) sovung = sovung - dnh(k) = End If kk = k + Do While ((kk < n) And (dnh(kk) < 100)) kk = kk + Loop If ((dnh(kk) > 99) And (kk < n)) Then Call doiten(nhan, w, H, kk, k) dnh(k) = dnh(kk) dnh(kk) = End If End If Next k phan_vung = nhan End Function 6.4 Tách ảnh từ ảnh phân vïng Sub tachvung(pixel() As Variant, ByVal w As Long, ByVal H As Long, ByVal nhan As Variant, vung() As Byte, wn As Long, hn As Long, x As Long, y As Long) Dim i As Integer Dim j As Integer Dim maxx As Integer, maxy As Integer Dim minx As Integer, miny As Integer If ((x -1) Or (y -1)) Then maxx = 1: maxy = minx = w: miny = H For i = To H For j = To w If pixel(i, j) = nhan Then If j < minx Then minx = j If j > maxx Then maxx = j If i < miny Then miny = i If i > maxy Then maxy = i End If Next Next maxx = maxx + minx = minx - maxy = maxy + miny = miny - wn = maxx - minx + hn = maxy - miny + x = minx y = miny ReDim vung(1 To hn, To wn) For i = To hn For j = To wn vung(i, j) = 255 If (miny + i - >= 1) And (miny + i - = 1) And (minx + j - = 1) And (hangp = 1) And (cotp 255 Then t = 255 If t < Then t = If i = Or i = he Or j = Or j = wi Then t = p(i, j) = CByte(t) Next Next tichchap = p End Function 6.6 Chương trình nhận dạng hình tròn Function kiemtra(pixel() As Byte, wi As Long, he As Long, xo As Long, yo As Long) As Boolean Dim H1(1 To 3, To 3) As Integer H1(1, 1) = 0: H1(1, 2) = -1: H1(1, 3) = 0: H1(2, 1) = -1: H1(2, 2) = 4: H1(2, 3) = -1: H1(3, 1) = 0: H1(3, 2) = -1: H1(3, 3) = Dim anh() As Byte Dim x As Long, y As Long s=0 t = Round(wi / he, 4) If (t > 0.95) And (t < 1.1) Then ReDim anh(1 To he, To wi) For i = To he For j = To wi If pixel(i, j) < 128 Then s = s + Next j Next i anh = tichchap(pixel, wi, he, H1, 3, 3) p=0 x=0 y=0 For i = To he For j = To wi If anh(i, j) > 128 Then p=p+1 x=j+x y=i+y End If Next j Next i t = Round(4 * Atn(1) * * s / (1.2 * p * p), 4) kiemtra = False If (t > 0.96) And (t < 1.07) Then kiemtra = True xo = x \ p + xo yo = y \ p + yo Else: kiemtra = False End If End Function ... niệm nhận dạng ảnh, phương pháp nhận dạng ảnh biết cách ứng dụng công nghệ điều khiển Robot Cụ thể xây dựng phương pháp nhận dạng ảnh để điều khiển Robot việc tìm đuổi bắt mục tiêu di động có phương. .. S¬n ch¬ng I Tỉng quan vỊ “ ứng dụng phương pháp nhận dạng ảnh điều khiển Robot nội dung cần nghiên cứu 1.1 Tổng quan ứng dụng phương pháp nhận dạng ảnh điều khiển Robot 1.1.1 Tính thời Ngày nay,... Tổng quan ứng dụng phương pháp nhận dạng ảnh điều khiển Robot nội dung cần nghiên cứu Chương 2: Phân vùng ảnh Chương 3: Nhận dạng ảnh Chương 4: ứng dụng nhận dạng ảnh điều khiển Robot Chương 5: