Robot do duong bang xu ly anh Robot nhoùm thöïc hieän ñeà taøi ñaõ ñöa ra phöông aùn söû duïng moät maùy tính saùch tay, webcam vaø phaàn meàm Matlab keát hôïp vôùi robot thoâng thöôøng ñeå cheá taïo thaønh “ Robot doø ñöôøng baèng phöông phaùp xöû lyù aûnh “ Vôùi phöông aùn treân chuùng ta hoaøn toaøn coù theå chuû ñoäng veà thieát bò nhö: webcam, maùy tính. Beân caïnh ñoù, phaàn meàm maø nhoùm thöïc hieän ñeà taøi söû duïng ñeå xöû lyù aûnh laø phaàn meàm Matlab ñaây laø phaàn meàm raát thoâng duïng vôùi caùc sinh vieân ngaønh kyõ thuaät.
Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ MỤC LỤC Mở đầu .2 I Đặt vấn đề II Nhiệm vụ đề tài .3 III Các bước thực IV Giá trò thực tiễn V Nội dung đề tài .4 Phần 1: Lý thuyết liên quan I Ánh sáng màu sắc II Giao tiếp qua cổng com (giao diện RS – 232) III Phương pháp kết nối máy tính với camera 12 Phần 2: Phương pháp thực kết 13 I Phương pháp thực 14 II Thực nghiệm 19 III Hướng phát triển 22 Phụ luïc .23 Tài liệu tham khảo 30 Trang Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ MỞ ĐẦU I ĐẶT VẤN ĐỀ : Ngày công nghệ xử lý ảnh sử dụng rộng rãi phát triễn mạnh nước Mỹ, Nhật, Trung Quốc … lónh vực : nhận dạng mặt người,nhận dạng dấu vân tay,nội soi lónh vực y tế… gần ứng dụng công nghệ xử lý ảnh thi sáng tạo Robot Châu Á Thái Bình Dương 2007 thi sáng tạo Robot Việt Nam 2007 đội đến từ Học Viện Kỹ Thuật Quân Sự sử dụng kỹ thuật thay cho kỹ thuật dò line hiệu mang lại tốt Ứng dụng kỹ thuật cho toán di chuyển robot gồm bước: Thu thập ảnh (chụp từ webcam) nh đưa vào máy tính xử lý Đưa kết luận vò trí đối tượng để đònh hoạt động robot Tuy nhiên điều đáng tiếc mức độ triễn khai kỹ thuật chưa tốt vấn đề phần mềm nên robot di chuyển chậm chưa đáp ứng nhu cầu thi đấu cấp thiết sân Bên cạnh đó, thiết bò nhập từ nước đặc biệt nên khó sử dụng đắt tiền Hình: Bộ thiết bò xử lý ảnh nhập ngoại Ở Việt Nam công nghệ biết đến từ lâu đựơc ứng dụng lónh vực công nghệ thông tin sản phẩm VNDorc (nhận dạng text) … Viện Khoa Học Công Nghệ Trang Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ Năm 2007 Tập đoàn FPT, nhà bảo trợ kỹ thuật cho thi Robocon Việt Nam triển khai chương trình tập huấn cho đội tham dự công nghệ xử lý ảnh, công nghệ khó nên tiếp cận đội với công nghệ chưa cao khó để làm chủ công nghệ Vì vậy, hai đội BKDC (Đại học Bách Khoa Đà Nẵng) DT03 (Đại học Công Nghiệp Hà Nội) từ chối sử dụng Từ khó khăn đội tham dự thi sáng tạo Robot nhóm thực đề tài đưa phương án sử dụng máy tính sách tay, webcam phần mềm Matlab kết hợp với robot thông thường để chế tạo thành “ Robot dò đường phương pháp xử lý ảnh “ Với phương án hoàn toàn chủ động thiết bò như: webcam, máy tính Bên cạnh đó, phần mềm mà nhóm thực đề tài sử dụng để xử lý ảnh phần mềm Matlab phần mềm thông dụng với sinh viên ngành kỹ thuật II NHIỆM VỤ CỦA ĐỀ TÀI : Đề tài nghiên cứu, thiết kế thi công robot có khả quan sát đường kỹ thuật xử lý ảnh, nhận dạng “quà” đội đối phương từ đưa thao tác phù hợp Ứng dụng thi Robocon (nếu thích hợp) Phương pháp thực mô tả sau: Camera Máy tính Board điều khiển Hình: Sơ đồ khối robot Trang Robot Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ Robot làm nhôm tương đối giống với robot thường thực hiện, robot có gắn thêm camera thực thu ảnh truyền máy tính xách tay qua ngõ USB Trên máy tính có phần mềm thực xử lý ảnh thu để xác đònh vò trí đối tượng (“quà”) sau đưa đình thao tác robot thông qua cổng COM (RS232) Mạch điều khiển nhận thông tin điều khiển thực lệnh thông báo kết thực phần mềm xử lý ảnh Trang Báo cáo NCKH năm 2008 thuật xử lý ảnh III CÁC BƯỚC THỰC HIỆN Robot dò đường kỹ Gồm phần chính: Thiết kế thi công phần khí _ Cơ cấu di chuyển _ Cơ cấu tác động lên đối tượng Thiết kế thi công mạch điều khiển _ Khối điều khiển động _ Khối cảm biến _ Khôi giao tiếp máy tính mạch điều khiển ( RS232) Xây dựng phần mềm xử lý ảnh công cụ Matlab Nhận dạng đối tượng phương pháp nhận dạng màu Không giống yêu cầu công nghệ xử lý ảnh lónh vực nhận dạng mặt người hay nhận dạng dấu vân tay, thi Robocon sân thi đấu thông thường có màu xanh đỏ nên nhóm thực đề tài chọn phương án nhằm làm đơn giản phần mềm xử lý ảnh, giúp cho việc xử lý trở nên nhanh chóng IV GIÁ TRỊ THỰC TIỄN: Chúng ta biết, robot sử dụng thi Robocon chủ yếu dò đường phương pháp dò line lập trình theo quỹ đạo xác đònh trước Các phương pháp có ưu điểm nhanh chóng tương đối xác Nhưng có khuyết điểm thay đổi theo tình sân thi đấu vò trí đối tượng (“quà”) chưa xác đònh trước Do tính cạnh tranh nên kỹ thuật xử lý ảnh mà đội tham dự thi Robocon sử dụng không công bố rộng rãi, bên cạnh giá thành thiết bò chuyên dụng cao Nhóm thực đề tài đưa phương án nhằm tạo tiền đề ngiên cứu kỹ thuật xử lý ảnh cho đội tham dự thi Robocon trường Đại Học Lạc Hồng V NỘI DUNG ĐỀ TÀI: Nội dung đề tài gồm phần sau: Mở đầu: Giới thiệu đề tài Phần 1: Lý thuyết liên quan Giới thiệu tóm tắt số lý thuyết sử dung đề tài: nh sáng máu sắc Giao tiếp qua cổng COM Giao tiếp qua cổng USB Phần 2: Thực nghiệm kết Trang Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ Giới thiệu phương pháp thực kiểm tra kết quả: Phương pháp thực Mô hình thực nghiệm Phương pháp thực nghiệm Nhận xét kết PHẦN LÝ THUYẾT LIÊN QUAN Trang Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ I ÁNH SÁNG VÀ MÀU SẮC Hệ thống màu RGB Nhiều thực nghiệm xác định rằng, nhận gần tất màu sắc tồn thiên nhiên cách trộn chùm ánh sáng màu đỏ , màu lục màu lam theo tỉ lệ xác định Để giải thích điều này, nhiều nhà khoa học đề thuyết khác chế cảm thụ màu mắt người thuyết thành phần cảm thụ màu công nhận rộng rãi Theo thuyết thành phần cảm thụ màu, võng mạc tồn ba loại phần tử nhạy cảm với ánh sáng tế bào hình chóp Các loại phần tử có phản ứng khác ánh sáng có bước sóng khác Do đặc điểm ba loại tế bào này,nên màu sắc tổng hợp từ ba màu Cho đến khoa giải phẫu chưa phat minh ba loại tế bào nhạy cảm với ánh sáng có bước sóng khác đó, q trình thực nghiệm lại phù hợp với lý thuyết này, nên sử dụng Trong thực tế, ánh sáng đồng thời kích thích ba tế bào hình chóp, tùy theo bước sóng,các dạng tế bào hình chóp kích thích khác Sự cảm thụ màu định mức độ kích thích tế bào hình chóp Giá trị tổng lượng kích thích cho ba tế bào cho ta cảm giác độ sáng,còn tỉ lệ chúng tạo cảm giác tính màu Sau thuyết ba màu đời giả thuyết tồn nhóm màu Nhiều nhà thực nghiệm làm nhiều thí nghiệm để chứing minh, ngày rõ ràng tồn nhóm màu bản, mà chọn ba màu làm ba màu Tổ hợp ba màu xem ba màu chúng thỏa mãn yêu cầu: ba màu độc lập tuyến tính Nghĩa là, trộn hai màu ba màu điều kiện bất kỳ, theo tỷ lệ tạo màu thứ ba Vấn đề chọn ba màu làm ba mau để tổng hợp màu xác nhiều màu Nếu màu có trị số dương số lượng màu tổng hợp bị hạn chế Ngược lại, màu có trị số âm tổng hợp màu Đã có nhiều tổ hợp ba màu đề nghị sử dụng để tiêu chuẩn hóa việc đo màu giới, dựa vào kết thực nghiệm CIE quy định ba màu ngày sử dụng rộng rãi, gọi hệ so màu R, G, B Ba màu là: Màu đỏ, ký hiệu chữ R (Red), có bước sóng R 700nm Màu lục, ký hiệu chữ G (Green), có bước sóng G 546.8nm Màu lam, ký hiệu chữ B (Blue), có bước sóng B 435.8nm Mỗi màu có màu phụ tương ứng, mà trộn với màu tạo màu trắng Màu phụ màu đỏ màu lơ, màu phụ màu lục màu mận chín màu phụ màu lam màu vàng Tổng hợp kết nghiên cứu cơng trình nghiên cứu trộn ba màu bản, nhà toán học người Đức H.Grasman phát biểu ba định luất trộn màu sau: Trang Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ Định luật thứ nhất: “Bất kỳ màu sắc tạo cách trộn ba màu độc lập tuyến tính nhau” Định luật thu từ phương trình: S aS1 bS cS thay đổi công suất nguồn xạ mà giữ nguyên tỉ lệ công suất xạ chuẩn màu tạo cách trộn không thay đổi sắc độ, có thay đổi cơng suất màu tổng hợp mà Vậy tỷ lệ R:G:B định chất độ lớn R, G, B định lượng màu tổng hợp S Sự biến đổi liên tục tỷ lệ R:G:B tạo nên biến đổi liên tục sắc độ xạ tổng hợp Từ nhận xét trên, Grasman đưa định luật thứ hai trộn màu: “Sự biến đổi liên tục xạ tạo nên màu khác” Nói cách khác: “Sự biến đổi liên tục hệ số công suất màu dẫn đến biến đổi liên tục màu sắc tổng hợp, chuyển từ màu sang màu khác” Nếu hai màu S1, S2 có thành phần sau: S1 R1 ( R) G1 (G ) B1 ( B) S R2 ( R) G21 (G ) B2 ( B) hai màu trộn lại để thành màu S3 thành phần S3 là: S S1 S ( R1 R2 )( R ) (G1 G2 )(G ) ( B1 B2 )( B ) Như vậy, thành phần màu hỗn hợp tổng thành phần màu cộng mắt người coi có đặc tính tuyến tính, thực phương pháp xếp chồng để xác định màu sắc hỗn hợp Đó kết luận rút từ định luật thứ ba Grasman: “Màu sắc tổng hợp số xạ xác định đặc tính phổ xạ trộn mà xác định màu sắc thành phần xạ đó” Nói cách khác: “Để xác định màu sắc xạ tổng hợp, phải xác định thành phần màu sắc xạ trộn” Trang Baùo caùo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ Hệ thống màu HSI Không gian màu RGB có hạn chế lớn không phù hợp với cách người cảm nhận màu sắc Do đó, không phù hợp với việc nhận dạng màu sắc Hệ thống màu HSI mã hóa thông tin màu sắc cách chia giá trò Intensity I từ hai giá trò mã hóa thuộc độ hội tụ màu: Hue – H Saturation – S Không gian màu HSI gồm ba thành phần: Hue đònh nghóa có giá trò khoảng 2 , mang thông tin màu sắc Saturation có giá trò , mang giá trò độ khiết thành phần Hue Intensity mang thông tin độ sáng điểm ảnh Ta hình dung không gian màu HSI vật hình nón Với trục biểu diễn cường độ sáng Intensity Khoảng cách đến trục biểu thò độ tập trung Saturation Góc quanh trục biểu thò cho sắc màu Hue Hệ thống màu HSI có phân chia rõ rệt ánh sáng màu sắc Do có khả lớn cho việc so sánh màu sắc Công thức chuyển đổi từ không gian màu RGB sang không gian màu HSI sau: I ( R G B) 3 S 1 min( R, G, B) RG B � � ( R G ) ( R B) � � H cos 1 � � 1/ ( R G ) ( R B )(G B ) � �� � � � � Trang Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ II GIAO TIẾP QUA CỔNG COM (GIAO DIỆN RS – 232) Chuẩn RS-232C định nghĩa giao diện logic, điện DTE (data terminal equipment) DCE (data carrier equipment) DTE thường tạo thành máy tính DCE thường tạo thành modem Chuẩn RS-232C định nghĩa 25 đường DTE DCE hầu hết đường dành riêng cho việc truyền liệu đồng Ở ta trình bày việc truyền liệu nối tiếp không đồng Với mục đích có 11 tín hiệu RS-232C cần đến Hơn nửa, IBM định nghĩa kết nối chân cho giao diện nối tiếp nên có tín hiệu thường diện chuẩn RS-232C bỏ qua Bảng sau trình bày tín hiệu chân đầu cắm 25 chân chân 25 chân 20 22 23 chân - Tín hiệu TD RD RTS CTS DSR DCD DTR RI DSRD Hướng DTE DCE DCE DTE DTE DCE DCE DTE DCE DTE DCE DTE DTE DCE DCE DTE DCE DTE DTE DCE Mô tả Protective ground Transmitted data Received data Request to send Clear to send Data set ready Signal ground (common) Data carrier detect Data terminal ready Ring indicator Data signal rate detector Trên kết nối chân, bảo vệ đất (protective ground) đường phát tốc độ liệu (data signal rate detective) bỏ qua, tín hiệu lại đủ để trao đổi liệu nối tiếp không đồng DTE DCE phù hợp với chuẩn RS-232C Các chân 3/2 2/3 truyền liệu, chân lại cho tín hiệu điều khiển Để điều khiển việc truyền liệu DTE DCE, tín hiệu điều khiển RTS (chân 4/7), CTS (chân 5/8), DCD (chân 8/1), DSR (chân 6/6) DTR (chân 20/4) sử dụng Ý nghĩa tín hiệu việc sử dụng chúng sau: RTS (request to send) Tín hiệu gửi từ DTE để yêu cầu DCE chuẩn bị cho việc truyền liệu từ DTE đến DCE Như DTE báo hiệu cho DCE biết DTE dự định phát liệu để DCE nhận liệu DCE kích hoạt tần số sóng mang để phát liệu đến đích (một thiết bị ghép với DCE) CTS (clear to send) Tín hiệu gửi từ DCE đến DTE để DCE sẵn sàng nhận liệu từ DTE Thơng thường DCE tích cực tín hiệu CTS để trả lời cho việc tích cực tín hiệu RTS từ DTE Nếu DCE tích cực tín hiệu CTS, DTE bắt đầu phát liệu Trang 10 Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ Giải thích lưu đồ: Đầu tiên chương trình điều khiển (CTĐK) thu ảnh từ camera Ảnh thu từ camera mặt phẳng gồm điểm ảnh gọi pixel Giá trò pixel, chứa thông tin màu sắc pixle đó, biểu diễn không gian RGB CTĐK phải đổi sang không gian HSI chọn thông số H, S, I thích hợp với màu, từ xác đònh vò trí đối tượng có màu tương ứng Tiếp theo CTĐK so sánh vò trí đối tượng với trục ảnh để xét xem hướng chưa? Nếu chưa hướng phát lệnh xuống board điều khiển yêu cầu xoay theo hướng thích hợp Nếu hướng phát lệnh chạy tới xuống board điều khiển Trong trình chạy tới CTĐK liên tục kiểm tra hướng, có sai lệch phát lệnh xuống board điều khiển diều chỉnh hướng Trên robot có gắn “công tắt hành trình”, robot chạy tới chạm vào “bục quà” “công tắt hành trình” đóng robot dừng lại lấy “quà” Trang 17 Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ Hình: Ảnh quà đỏ thu từ camera Hình: Kết tách màu đỏ Trang 18 Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ Hình: Quà bò lệch bên trái Hình: Quà bò lệch bên phải Trang 19 Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ II Thực nghiệm Tổng quan: Có nhiều yếu tố ảnh hưởng đến kết hoạt động robot, yếu tố chủ quan như: nguồn điện (acquy), độ ổn đònh board điều khiển chương trình điều khiển … lẫn yếu tố khách quan như: ánh sáng, màu sắc, nhiễu màu (màu vật khác có màu với máu quà) … Trong phạm vi nghiên cứu đề tài này, đánh giá giới hạn yếu tố: ánh sáng, màu sắc độ ổn đònh chương trình điều khiển điều kiện yếu tố khác đảm bảo Ta biết ánh sáng màu sắc có mối quan hệ mật thiết với Ngoài yếu tố phản xạ hấp thụï bước sóng ánh sáng khác tạo màu sắc vật cường độ ánh sáng ảnh hưởng tới màu sắc Khi cường độ sáng nhỏ vật có màu đen Khi cường độ sáng lớn vật trở nên trắng lóa Vì vậy, để kết nhận dạng màu đảm bảo ta cần đảm bảo nguồn sáng tương đối, không sáng không tối Mô hình phương pháp thực nghiệm: Mô hình thực nghiệm để đánh giá yếu tố: ánh sáng, màu sắc lên kết hoạt động robot thực điều kiện yếu tố khác đảm bảo Nguồn acquy sạc đầy, board điều khiển hoạt động tốt không bò lỗi, không bò nhiễu màu … Robot hai quà đặt vò trí ngẫu nhiên không thay đổi trình thử nghiệm Robot thực lấy quà đỏ xanh điều kiện ánh sáng ban ngày (cường độ sáng đảm bảo vừa đủ) điều kiện ánh sáng đèn (cường độ sáng thiếu) Các bước lặp lại 100 lần kiểm tra số lần lỗi Để đánh giá yếu tố: độ ổn đònh chương trình điều khiển ta đặt robot mười vò trí khác cách ngẫu nhiên điều kiện ánh sáng ban ngày, vò trí lặp lại 10 lần kiểm tra số lần lỗi Trang 20 Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ Hình: Mô hình thực nghiệm Trang 21 Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ Kết quả: Kết khảo sát từ mô hình thực nghiệm trình bày bảng sau: Bảng 1: Kết khảo sát ánh sáng màu sắc Quà màu đỏ Quà màu xanh nh sáng ban ngày Số lần Số lần Tỷ lệ thử lỗi lỗi 100 1% 100 nh sáng đèn Số lần Số lần Tỷ lệ thử lỗi lỗi 100 2% 3% 100 5% Bảng 2: Kết khảo sát ổn đònh chương trình Đỏ Xanh Vò trí Số Số lần lần thử lỗi 10 10 Vò trí Số Số lần lần thử lỗi 10 10 Vò trí Số Số lần lần thử lỗi 10 10 Vò trí Số Số lần lần thử lỗi 10 10 Đỏ Xanh Vò trí Số Số lần lần thử lỗi 10 10 Vò trí Số Số lần lần thử lỗi 10 10 Vò trí Số Số lần lần thử lỗi 10 10 Vò trí Số Số lần lần thử lỗi 10 10 Đỏ Xanh Vò trí Số lần Số lần thử lỗi 10 10 Vò trí 10 Số lần Số lần thử lỗi 10 10 Số lần thử 100 100 Tổng Số lần lỗi 10 Tỷ lệ lỗi 6% 10% Nhận xét kết Kết thực nghiệm cho thấy, kết nhận dạng màu phụ thuộc vào màu cần nhận dạng Kết nhận dạng màu đỏ (tỷ lệ lỗi 1% và2%) tốt màu xanh (tỷ lệ lỗi 3% và5%) Kết cho thấy cường độ sáng ảnh hưởng đến kết nhận dạng Khi cường độ sáng đảm bảo giảm đáng kể tỷ lệ lỗi Cũng cần nhắc lại kết đạt cô lập ảnh hưởng yếu tố khác, yếu tố nhiễu màu tức vật khác màu với màu quà Tuy nhiên, yếu tố đa số yếu tố chủ quan nên ta chủ động xử lý Trang 22 Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ Với kết nghiên cứu đề tài, ta hoàn toàn ứng dụng tốt thi Robocon Để tăng cao hiệu thi đấu ta kết hợp phương pháp với phương pháp dò line truyền thống để tăng tốc độ thi đấu Việc kết hợp nghiên cứu sau, tùy vào thể lệ thi đấu III Hướng phát triển: Hiện tại, đề tài dừng lại mức nhận dạng màu Vì vậy, không phân biệt hai vật có màu Hướng phát triển nghiên cứu phương pháp nhận dạng vật thể qua hình dạng Khi đó, ta nâng cao khả phân biệt đối tượng cho robot từ nâng cao “thông minh” robot Ngoài ra, nâng cao tốc độ xử lý cho robot vấn đề đáng quan tâm Việc cải thiện “phần cứng” tinh tế giải thuật chương trình điều khiển Trang 23 Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ PHỤ LỤC Chương trình thực ngôn ngữ Matlab Toàn source code nhö sau: function varargout = BCNCKH08(varargin) % BCNCKH08 M-file for BCNCKH08.fig % BCNCKH08, by itself, creates a new BCNCKH08 or raises the existing % singleton* % % H = BCNCKH08 returns the handle to a new BCNCKH08 or the handle to % the existing singleton* % % BCNCKH08('CALLBACK',hObject,eventData,handles, ) calls the local % function named CALLBACK in BCNCKH08.M with the given input arguments % % BCNCKH08('Property','Value', ) creates a new BCNCKH08 or raises the % existing singleton* Starting from the left, property value pairs are % applied to the GUI before BCNCKH08_OpeningFunction gets called An % unrecognized property name or invalid value makes property application % close All inputs are passed to BCNCKH08_OpeningFcn via varargin % % *See GUI Options on GUIDE's Tools menu Choose "GUI allows only one % instance to run (singleton)" % % See also: GUIDE, GUIDATA, GUIHANDLES % Edit the above text to modify the response to help BCNCKH08 % Last Modified by GUIDE v2.5 05-Jun-2008 10:24:08 % Begin initialization code - DO NOT EDIT gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, 'gui_Singleton', gui_Singleton, 'gui_OpeningFcn', @BCNCKH08_OpeningFcn, 'gui_OutputFcn', @BCNCKH08_OutputFcn, 'gui_LayoutFcn', [] , 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % End initialization code - DO NOT EDIT Trang 24 Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ % - Executes just before BCNCKH08 is made visible function BCNCKH08_OpeningFcn(hObject, eventdata, handles, varargin) % This function has no output args, see OutputFcn % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % varargin command line arguments to BCNCKH08 (see VARARGIN) % Choose default command line output for BCNCKH08 handles.output = hObject; % Update handles structure guidata(hObject, handles); % UIWAIT makes BCNCKH08 wait for user response (see UIRESUME) % uiwait(handles.figure1); % - Outputs from this function are returned to the command line function varargout = BCNCKH08_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT); % hObject handle to figure % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) % Get default command line output from handles structure varargout{1} = handles.output; %*********************************************************************** *** %*********************** ADD COMMNAND HERE ******************************** %*********************************************************************** *** set(handles.Start,'Enable','off'); set(handles.Close,'Enable','off'); set(handles.axes1,'HandleVisibility','on'); global buff vid s % buff: bo dem thu cua cong COM % - Khoi dong webcam vid = videoinput('winvideo',1,'RGB24_640x480'); start(vid); wait(vid,5); stop(vid); % - Khoi dong cong COM1 -s = serial('COM1'); s.BytesAvailableFcn = @serial_callback; fopen(s); set(handles.Start,'Enable','on'); %********************** END OF THE MAIN PROGRAM *************************** Trang 25 Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ % - Executes on button press in Start function Start_Callback(hObject, eventdata, handles) % hObject handle to Start (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) set(handles.Close,'Enable','off'); global buff vid s % buff: bo dem thu cua cong COM vidRes = get(vid, 'VideoResolution'); nBands = get(vid, 'NumberOfBands'); hImage = image( zeros(vidRes(2), vidRes(1), nBands) ); preview(vid, hImage); buff = 'B'; buff1 = buff(1); while buff1 ~= 'S' % S: Stop chuong trinh switch buff1 case 'D' % Do while (buff1 ~= 's') % s: stop mau buff1 = buff(1); if (buff1 == 'F')|(buff1 == 'D') buff1 = 'B'; f = getsnapshot(vid); preview(vid, hImage); [g position] = red_seg(f); fwrite(s,position); if (position == 'M') while (position == 'M')&(buff1 ~= 's') buff1 = buff(1); f = getsnapshot(vid); [g position] = red_seg(f); end; if (buff1 ~= 's') fwrite(s,'S'); % Dung tam thoi robot end; end; end; end; case 'X' % Xanh while (buff1 ~= 's') % s: stop mau buff1 = buff(1); if (buff1 == 'F')|(buff1 == 'X') buff1 = 'B'; f = getsnapshot(vid); preview(vid, hImage); [g position] = blue_seg(f); fwrite(s,position); if (position == 'M') while (position == 'M')&(buff1 ~= 's') buff1 = buff(1); f = getsnapshot(vid); [g position] = blue_seg(f); end; if (buff1 ~= 's') fwrite(s,'S'); % Dung tam thoi robot end; end; end; Trang 26 Baùo caùo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ end; end; buff1 = buff(1); end; closepreview(vid); set(handles.Close,'Enable','on'); % - Executes on button press in Close function Close_Callback(hObject, eventdata, handles) % hObject handle to Close (see GCBO) % eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA) global vid s % buff: bo dem thu cua cong COM delete(vid); fclose(s); clear closereq function [g position] = red_seg(f) %G = CS(F) Performs segmentation of a color image % f is input image % g is segmented image g=f; h = rgb2hsi(f); hue = h(:,:,1); sat = h(:,:,2); int = h(:,:,3); [m n] = size(hue); N = 0; % So pixel cua doi tuong H_middle = 0; %V_middle = 0; % Diem chinh giua theo chieu ngang cua doi tuong % Diem chinh giua theo chieu doc cua doi tuong for i=1:m for j=1:n if (int(i,j)= n/2+180 H_position = 'R'; % Right else H_position = 'M'; % Middle end; %if V_middle < V1 % V_position = '1'; %elseif V_middle < V2 % V_position = '2'; %else % V_position = '3'; %end; end; position = H_position; % Vi tri function [g position] = blue_seg(f) %G = CS(F) Performs segmentation of a color image % f is input image % g is segmented image g=f; h = rgb2hsi(f); hue = h(:,:,1); sat = h(:,:,2); int = h(:,:,3); [m n] = size(hue); N = 0; % So pixel cua doi tuong H_middle = 0; %V_middle = 0; % Diem chinh giua theo chieu ngang cua doi tuong % Diem chinh giua theo chieu doc cua doi tuong for i=1:m for j=1:n if (int(i,j)= n/2+180 H_position = 'R'; % Right else H_position = 'M'; % Middle end; %if V_middle < V1 % V_position = '1'; %elseif V_middle < V2 % V_position = '2'; %else % V_position = '3'; %end; end; position = H_position; % Vi tri function hsi = rgb2hsi(rgb) %RGB2HSI Converts an RGB image to HSI % HSI = RGB2HSI(RGB) converts an RGB image to HSI The input image is % assumed to be of size M-by-N-by-3, where the third dimension accounts % for three image planes: red, green, and blue, in that order if all RGB % component images are equal, the HSI conversion is undefined The input % image can be of class double (with values in the range [0,1]),uint8, or % uint16 % % The output image, HSI, is of class double, where: % hsi(:,:,1) = hue image normalized to the range [0,1] by dividing % all angle values by 2*pi % hsi(:,:,2) = saturation image, in the range [0,1] % hsi(:,:,3) = intensity image, in the range [0,1] %Extract the individual component images rgb = im2double(rgb); r = rgb(:,:,1); g = rgb(:,:,2); b = rgb(:,:,3); %Implement the conversion equations num = 0.5*((r-g)+(r-b)); den = sqrt((r-g).^2+(r-b).*(g-b)); theta = acos(num./(den+eps)); H = theta; H(b>g) = 2*pi-H(b>g); H = H/(2*pi); num = min(min(r,g),b); den = r+g+b; den(den==0) = eps; S = 1-3.*num./den; H(S==0) = 0; I = (r+g+b)/3; Trang 29 Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ %Combine all three results into an hsi image hsi = cat(3,H,S,I); Trang 30 Baùo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ TÀI LIỆU THAM KHẢO [1] http://www.toquoc.gov.vn/vietnam/viewNew.asp?newsId=23113 [2] http://blog.360.yahoo.com/blogVyyWIv45cqNZJIqTflTRcKt9WlYE UESYTQ ?cq=1&p=136 [3] Nguyễn Đức Thành, “Matlab ứng dụng điều khiển”, NXB Đại học Quốc Gia TP HCM – 2004 [4] Tống Văn On, Hoàng Đức Hải, “Hợp ngữ lập trình ứng dụng”, NXB Lao Động Và Xã Hội – 2001 [5] Đỗ Hoàng Tiến, Dương Thanh Phương, “Giáo trình kỹ thuật truyền hình”, NXB Khoa Học Và Kỹ Thuật – 2004 [6] Rafael C Gonzalez, Richard E Woods, Steven L Eddins, “Digital Image Processing Using Matlab” Trang 31 ... Board điều khiển Hình: Sơ đồ khối robot Trang Robot Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ Robot làm nhôm tương đối giống với robot thường thực hiện, robot có gắn thêm camera thực... thuật xử lý ảnh Robot dò đường kỹ PHẦN THỰC NGHIỆM VÀ KẾT QUẢ Trang 14 Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường kỹ I Phương pháp thực hiện: Theo kế hoạch, robot làm nhôm, robot có gắn... hướng Trên robot có gắn “công tắt hành trình”, robot chạy tới chạm vào “bục quà” “công tắt hành trình” đóng robot dừng lại lấy “quà” Trang 17 Báo cáo NCKH năm 2008 thuật xử lý ảnh Robot dò đường