Khóa luận Ứng dụng xử lý ảnh nhận dạng cử chỉ bàn tay điều khiển robot di động

TRƯỜNG ĐH CÔNG NGHIỆP THỰC PHẨM TP. HCM KHOA CÔNG NGHỆ ĐIỆN – ĐIỆN TỬ ----™&˜---- KHÓA LUẬN TỐT NGHIỆP ỨNG DỤNG XỬ LÝ ẢNH NHẬN DẠNG CỬ CHỈ BÀN TAY ĐIỀU KHIỂN ROBOT DI ĐỘNG GVHD: ThS. TRẦN HOÀN SVTH: NGUYỄN VĂN ĐẠT LỚP: 07DHDT4 MSSV: 2002160185 TP. HỒ CHÍ MINH, NĂM 2020 TRƯỜNG ĐH CÔNG NGHIỆP THỰC PHẨM TP. HCM KHOA CÔNG NGHỆ ĐIỆN – ĐIỆN TỬ ----™&˜---- KHÓA LUẬN TỐT NGHIỆP ỨNG DỤNG XỬ LÝ ẢNH NHẬN DẠNG CỬ CHỈ BÀN TAY ĐIỀU KHIỂN ROBOT DI ĐỘNG GVHD: ThS. TRẦN HOÀN SVTH: NGUYỄ

docx90 trang | Chia sẻ: huong20 | Ngày: 13/01/2022 | Lượt xem: 691 | Lượt tải: 0download
Tóm tắt tài liệu Khóa luận Ứng dụng xử lý ảnh nhận dạng cử chỉ bàn tay điều khiển robot di động, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
N VĂN ĐẠT LỚP: 07DHDT4 MSSV: 2002160185 TP. HỒ CHÍ MINH, NĂM 2020 TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TP. HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc PHIẾU GIAO NHIỆM VỤ (Phiếu này phải đóng vào trang đầu tiên của báo cáo) 1. Họ và tên sinh viên được giao đề tài (Số lượng sinh viên: 1) (1) Nguyễn Văn Đạt MSSV: 2002160185 Lớp: 07DHDT4 2. Tên đề tài: Ứng dụng xử lý ảnh nhận dạng cử chỉ bàn tay điều khiển robot di động 3. Nhiệm vụ của đề tài: _ Thực hiện chức năng: nhận dạng cử chỉ bàn tay điều khiển bobot di chuyển: đi thẳng, rẽ trái, rẽ phải, lùi, dừng lại. _ Cài đặt hệ điều hành và thư viện OpenCV cho Raspberry Pi _ Nghiên cứu lý thuyết lập trình python, OpenCV _ Tìm hiểu lý thuyết xử lý ảnh _ Xây dựng giải thuật nhận dạng cử chỉ bàn tay _ Chất lượng thực hiện nhận diện bàn tay đáp ứng tốt không bị nhiễu 4. Ngày giao nhiệm vụ đồ án tốt nghiệp: 29/02/2020 5. Ngày hoàn thành và nộp về khoa: TP.Hồ Chí Minh, ngày 29 tháng 02 năm 2020 Trưởng khoa Trưởng bộ môn Giảng viên hướng dẫn Lê Thành Tới Nguyễn Phú Công Trần Hoàn NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN LỜI CÁM ƠN Trước hết chúng em xin gửi lời cảm ơn chân thành đến quý thầy cô trường Đại học Công Nghiệp Thực Phẩm thành phố Hồ Chí Minh nói chung và quý thầy cô ở khoa Điện - Điện tử và chuyên ngành Tự Động Hóa nói riêng đã tận tình truyền đạt những kiến thức quý giá trong khoảng thời gian em học đại học. Em xin được gửi lời cảm ơn đến thầy Trần Hoàn, thầy đã hướng dẫn và giúp đỡ tận tình em nghiên cứu và hoàn thành luận văn tốt nghệp này. Những lời nhận xét, góp ý và hướng dẫn của thầy đã giúp em có định hướng đúng đắn trong quá trình thực hiện đề tài, giúp em nhìn ra được ưu khuyết điểm của đề tài và từng bước khắc phục để có được kết quả tốt nhất. Xin gửi đến thầy lời chúc sức khỏe và ngày càng thành công trên trên mục giảng. Em xin gửi lời cảm ơn chân thành đến quý Thầy/Cô đã dành thời gian quý báu để nhận xét và chấm Luận văn tốt nghiệp. Đây sẽ là nhưng đóng góp rất quý giá cho em để hoàn thiện và phát triển đề tài ngày một tốt hơn. Sau cùng, con xin bày tỏ lòng biết ơn sâu sắc tới Mẹ, Ba, Chị, Em những người đã luôn luôn động viên, ở bên con trong những lúc khó khăn nhất, là động lực cho con nỗ lực cố gắng trong suốt những năm tháng học tập tại trường và trên những bước đường tiếp theo trong cuộc sống. TP. Hồ Chí Minh, ngày 14 tháng 08 năm 2020 Tác giả Nguyễn Văn Đạt TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TP. HỒ CHÍ MINH KHOA ĐIỆN – ĐIỆN TỬ CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc TP. HCM, ngày.tháng..năm.. TÓM TẮT ĐỀ TÀI Ngày nay, các mô hình xe, máy bay và robot đang ngày càng phổ biến trong nghiên cứu và đào tạo. Các thiết bị này thường được vận hành tự động hoặc điều khiển trực tiếp bởi con người. Nhờ vào sự tiến bộ của công nghệ xử lý hình ảnh, ngày càng nhiều các thiết bị có khả năng ghi nhận cử chỉ tay và chuyển đổi thành các tín hiệu có thể xử lý bằng máy tính. Đề tài “Ứng dụng xử lý ảnh nhận dạng cử chỉ bàn tay điều khiển robot di động” là mô hình dựa theo ngôn ngữ python với thư viện chính là Opencv và được thực hiện trên Kit Raspberry và Kit Arduino Wifi ESP826 WeMos D1. Xử lý ảnh ở đây sẽ được nhận dạng theo ngưỡng của bàn tay để điều khiển robot thông qua cử chỉ tay. Kết quả nghiên cứu cho thấy cho thấy tính ổn định trong việc điều khiển các mô hình robot bằng cử chỉ tay. MỤC LỤC DANH MỤC KÝ HIỆU, CỤM TỪ VIẾT TẮT KÍ HIỆU THUẬT NGỮ RGB Red Green Blue IDE Integrated Development Environment OpenCV Open Source Computer Vision PEL (Picture Element) hay gọi tắt là Pixel DANH MỤC BẢNG BIỂU DANH MỤC HÌNH ẢNH Hình 1.1: Hình minh họa kết quả thuật toán trừ nền 3 Hình 2.1: Các bước cơ bản trong xử lý ảnh 5 Hình 2.2: Điểm ảnh (pixel - picture element) 8 Hình 2.3: Minh họa mức xám sau khi mã hóa 9 Hình 2.4: Minh họa ảnh nhị phân sau khi mã hóa 9 Hình 2.5: Không gian màu HSV 10 Hình 2.6: Không gian màu RGB 10 Hình 2.7: Raspberry Pi 3 Model B 15 Hình 2.8: Sơ đồ của Raspberry Pi 3 16 Hình 2.9: Màn hình cảm ứng 3.5 inch 17 Hình 2.10: Module camera raspberry pi 17 Hình 2.11: Ngôn ngữ lập trình python trên Raspberry 18 Hình 2.12: Hệ thống tên lửa tích hợp quang hồng ngoại 21 Hình 2.13: Ứng dụng opencv trong lĩnh vực hàng không 22 Hình 2.14: Xử lý ảnh trong phòng chống tội phạm 22 Hình 2.15: Board UNO WiFi (WeMos D1) 23 Hình 2.16: Sơ đồ chân ESP8266MOD 24 Hình 2.17: Phần mềm Arduino IDE 25 Hình 2.18: Mạch điều khiển động cơ DC L298 26 Hình 2.19: Nguyên lý hoạt động 27 Hình 2.20: Trường hợp thứ nhất A ở mức LOW và B ở mức HIGH 28 Hình 2.21: Trường hợp thứ hai A ở mức HIGH và B ở mức LOW 29 Hình 2.22: Động cơ giảm tốc GA25 12V 280 rpm 30 Hình 2.23: Bánh xe 65mm khớp lục giác 31 Hình 3.1: Sơ đồ khối phần cứng 32 Hình 3.2: Sơ đồ kết nối thực tế Raspberry Pi 33 Hình 3.3: Gắn thẻ nhớ vào khe thực tế 34 Hình 3.4: Sơ đồ đấu dây 35 Hình 3.5: Tìm IP của Raspberry Pi 36 Hình 3.6: Nhập IP của Raspberry vào Putty 36 Hình 3.7: Màng hình Terminal xuất hiện 37 Hình 3.8: Nhập thông tin đăng nhập 37 Hình 3.9: Kết nối từ xa dành cho máy chủ Desktop 38 Hình 3.10: Mở Remote Desktop Connection có sẵn trong windows 38 Hình 3.11: Connect vào Raspberry 39 Hình 3.12: Đăng nhập vào màng hình Raspberry 39 Hình 3.13: Raspberry hiển thị lên màng hình laptop 40 Hình 3.14: Hiển thị Raspberry lên màng hình laptop qua cáp ethernet 40 Hình 3.15: Kết nối ethernet với laptop ở IP động 41 Hình 3.16: Tìm IP ethernet 41 Hình 3.17: Connect vào Raspberry qua cáp ethernet 42 Hình 3.18: Gọi chương trình python qua cửa sổ Terminal 42 Hình 3.19: Lưu đồ giải thuật nhận dạng cử chỉ bàn tay 43 Hình 3.20: Khung hình đầu vào 44 Hình 3.21: Cắt một góc khung hình chứa phần bàn tay (top, bottom, left, right) 44 Hình 3.22: Vẽ ô màu có kích thước (top, bottom, left, right) ra màng hình 45 Hình 3.23: Chuyển đổi ảnh BGR sang dạng ảnh xám 45 Hình 3.24: Lọc GaussianBlur làm mờ ảnh 46 Hình 3.25: Lấy ảnh theo ngưỡng 47 Hình 3.26: Đóng khung chữ nhật vùng xuất hiện bàn tay 47 Hình 3.27: Tim đường viền 48 Hình 3.28: Biến đổi khoảng cách để phát hiện tâm và số ngón tay 48 Hình 3.29: Vẽ tâm C 49 Hình 3.30: Vẽ đường tròn tâm C 49 Hình 3.31: Tìm các đoạn cắt nhau để tìm số ngón tay (cv2.bitwise_and) 50 Hình 3.32: Vẽ đường viền để tìm số khe giữa các ngón 50 Hình 3.33: Vẽ bao lồi xung quanh ngón tay 51 Hình 3.34: Điều kiện để tính khe giữa các ngón tay 51 Hình 3.35: Tìm khuyết tật lồi 52 Hình 3.36: Gửi và nhận giao tiếp UDP ESP8266 53 Hình 3.37: Lưu đồ giải thuật điều khiển robot di động 54 Hình 3.38: Gửi và nhận tín hiệu cho robot: (a) là cử chỉ bàn tay dừng 55 Hình 3.39: Gửi và nhận tín hiệu cho robot: (a) là cử chỉ bàn tay tiến 56 Hình 3.40: Gửi và nhận tín hiệu cho robot: (a) là cử chỉ bàn tay lùi 57 Hình 3.41: Gửi và nhận tín hiệu cho robot: (a) là cử chỉ bàn tay rẽ trái 58 Hình 3.42: Gửi và nhận tín hiệu cho robot: (a) là cử chỉ bàn tay rẽ phải 59 Hình 3.43: Bảng vẽ cơ khí 60 Hình 4.1: Kết quả cử chỉ tay robot dừng (stop) 61 Hình 4.2: Kết quả cử chỉ tay robot tiến (up) 62 Hình 4.3: Kết quả cử chỉ tay robot lùi (down) 63 Hình 4.4: Kết quả cử chỉ tay robot rẽ trái (left) 64 Hình 4.5: Kết quả cử chỉ tay robot rẽ phải (right) 65 Hình 4.6: Mô hình khi hoàn thành 66 Chương 1: TỔNG QUAN VỀ ĐỀ TÀI Đặt vấn đề Trong những năm gần đây, các ứng dụng về trí tuệ nhân tạo ngày càng phát triển và được đánh giá cao. Một lĩnh vực đang được quan tâm của trí tuệ nhân tạo nhằm tạo ra các ứng dụng thông minh, mang tính tri thức con người đó là nhận dạng. Với sự phát triển mạnh mẽ của công nghệ và nhu cầu của con người ngày càng cao. Một bài toán được đặt ra là: Làm sao có thể điều khiển máy tính, các thiết bị giải trí, robotbằng những cử chỉ, hành động và lời nói của con người. Nhận dạng hình ảnh và âm thanh là một giải pháp để giải quyết bài toán này và một phần nhỏ trong lĩnh vực đó là nhận dạng cử chỉ bàn tay. Lý do chủ quan khi chọn đề tài: Những năm gần đây robot là một trong những thế mạnh của Khoa. Và em muốn làm sao để trở nên mạnh hơn nữa về công nghệ chế tạo robot thông minh. Để lại một cái gì đó quý báu cho những sinh viên khóa sau của trường phát triển tốt hơn về các công nghệ cao và các ngành khác liên quan. Mục tiêu Nhận dạng cử chỉ tay xây dựng chương trình điều khiển như sau: No hand: Không có bàn tay (Robot không di chuyển) “Up”: Ngón tay thứ nhất trong bàn tay (Robot di chuyển về phía trước) “Down”: Ngón tay thứ hai trong bàn tay (Robot di chuyển về phía sau) “Left”: Ngón tay thứ ba trong bàn tay (Robot di chuyển sang trái) “Right”: Ngón tay thứ tư trong bàn tay (Robot di chuyển sang phải) Nghiên cứu lý thuyết lập trình python, OpenCV. Tìm hiểu lý thuyết xử lý ảnh. Xây dựng giải thuật nhận dạng cử chỉ bàn tay. Phạm vi của luận văn tốt nghiệp Đề tài được nghiên cứu dựa trên nền tảng các kiến thức cơ bản về ngôn ngữ lập trình và vi điều khiển được học ở trường, cùng với việc tự tìm hiểu và học hỏi của các tài liệu đi trước. Hệ thống điều khiển của robot được thực hiện dựa trên máy tính nhúng Raspberry pi 3 kết nối với camera pi và chương trình được viết bằng Python. Do giới hạn về kiến thức của bản thân nên mục tiêu hướng đến đề tài là làm sao để robot di động một cách cơ bản nhất có thể. Tổng quan về các nghiên cứu liên quan Bàn tay con người có cấu trúc xương phức tạp bao gồm rất nhiều khớp nối với nhau. Vì số bậc tự do của bàn tay người là rất lớn nên việc nhận dạng cử chỉ bàn tay trở nên một thách thức lớn. Có nhiều nghiên cứu về nhận dạng cử chỉ với các giải thuật khác nhau như: nhận dạng phép trừ nền, dựa vào màu sắc, hình dáng, các đặc trưng của bàn tay, optical flow, mean shift. Nhận dạng bàn tay dựa vào màu sắc và hình dáng Màu da là một đặc trưng quan trọng để định vị và tracking bàn tay người. Tuy nhiên thuật toán dựa trên màu da phải đối mặt với khó khăn đó là phải phân biệt đối tượng có màu tương tự với bàn tay như khuôn mặt và cánh tay người. Để giải quyết vấn đề này, người sử dụng phải mặc áo sơ mi dài và phải hạn chế trong khung nền trong đó màu sắc các đối tượng không được tương đồng với màu da người. Thuật toán này cũng rất nhạy với các điều kiện chiếu sáng khác nhau. Khi điều kiện ánh sáng không đáp ứng yêu cầu thì bộ nhận dạng thường không nhận ra bàn tay. Wuetal đã đề xuất thuật toán bám theo đối tượng dựa trên màu sắc không ổn định bằng cách học hai phương pháp biểu diễn khác nhau cho sự phân bố màu sắc và gọi thuật toán mới này là structure adaptive self-organizing map (SASOM). Kết quả trong việc định vị bàn tay đã chỉ ra rằng thuật toán có thể kiểm soát tốt một vài điểm khó trong tracking đối tượng có màu sắc không ổn định. Nhận dạng dựa vào ngưỡng trên mỗi kênh màu Thuật toán dựa trên đặc trưng bàn tay trích xuất đặc trưng trong một vùng ảnh nhất định như đầu ngón tay hoặc biên bàn tay, và sử dụng một vài phương pháp suy luận để tìm ra hình dạng hoặc kết hợp những đặc trưng cụ thể để tạo nên một cử chỉ bàn tay. Đối với cách tiếp cận dựa trên đặc trưng bàn tay, việc phân đoạn những ảnh không bị nhiễu là bước cần thiết để phục hồi những đặc trưng của bàn tay. Đây không phải là nhiệm vụ dễ dàng khi gặp phải những ảnh nền phức tạp. Optical Flow Optical flow là thuật toán dựa trên phân tích chuyển động của bàn tay. Việc bám theo bàn tay dựa vào quỹ đạo chuyển động và kết hợp với bộ phát hiện màu da. Bộ lọc theo thời gian dùng thuật toán Viterbi để nhận dạng quỹ đạo của bàn tay và thuật toán kiểm tra phụ được bổ sung vào thuật toán Viterbi để đảm bảo chắc chắn quỹ đạo trích xuất sẽ chứa vị trí bàn tay của cùng một bàn tay đã được nhận dạng trước đó. Những kết quả thực tế cho thấy hệ thống có khả năng bám theo bàn tay ổn định. Phương pháp trừ nền Bàn tay được phát hiện bằng phương pháp trừ nền, sử dụng thuật toán “codebook” của thư viện OpenCV. Các điểm đầu mút được phát hiện bằng thuật toán “convex hull 2”, các điểm lõm được phát hiện bằng thuật toán “convexity defect”. Dựa vào số điểm lồi và lõm người ta sẽ biết được số ngón tay được đưa lên. Hình 1.1: Hình minh họa kết quả thuật toán trừ nền Ý nghĩa khoa học và thực tiễn của đề tài Đưa ra một bản lý thuyết với các nội dung tìm hiểu, các phép toán hình thái trong xử lý ảnh và nhận dạng cử chỉ bàn tay của con người. Nhằm mục đích góp một phần vào lĩnh vực ứng dụng của nhận dạng, cụ thể hơn ở đây là có thể ứng dụng vào việc điều khiển di chuyển robot Ứng với mỗi cử chỉ bàn tay thì robot sẽ xử lý tiến, lùi, qua phải hay qua trái. Chương 2: CƠ SỞ LÝ THUYẾT Giới thiệu về hệ thống xử lý ảnh Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ. Nó là một ngành khoa học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyên dụng riêng cho nó. Xử lý ảnh được đưa vào giảng dạy ở bậc đại học ở nước ta khoảng chục năm nay. Nó là môn học liên quan đến nhiều lĩnh vực và cần nhiều kiến thức cơ sở khác. Đầu tiên phải kể đến xử lý tín hiệu số là một môn học hết sức cơ bản cho xử lý tín hiệu chung, các khái niệm về tích chập, các biến đổi Fourier, biến đổi Laplace, các bộ lọc hữu hạn Thứ hai, các công cụ toán như đại số tuyến tính, xác suất thống kê. Một số kiến thứ cần thiết như trí tuệ nhân tạo, mạng nơron nhân tạo cũng được đề cập trong quá trình phân tích và nhận dạng ảnh. Để dễ tưởng tượng, xét các bước cần thiết trong xử lý ảnh. Đầu tiên, ảnh tự nhiên từ thế giới ngoài được thu nhận qua các thiết bị thu (như camera, máy chụp ảnh). Trước đây, ảnh thu qua camera là các ảnh tương tự (loại camera ống kiểu CCIR). Gần đây, với sự phát triển của công nghệ, ảnh màu hoặc đen trắng được lấy ra từ camera, sau đó nó được chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý tiếp theo (máy ảnh số hiện nay là một thí dụ gần gũi). Mặt khác, ảnh cũng có thể tiếp nhận từ vệ tinh; có thể quét từ ảnh chụp bằng máy quét ảnh. Hình 2.1: Các bước cơ bản trong xử lý ảnh Phần thu nhận ảnh (Image Acquisition): Ảnh có thể nhận qua camera màu hoặc đen trắng. Thường ảnh nhận qua camera là ảnh tương tự, cũng có loại camera đã số hoá. Camera thường dùng là loại quét dòng, ảnh tạo ra có dạng hai chiều. Chất lượng một ảnh thu nhận được phụ thuộc vào thiết bị thu, vào môi trường (ánh sáng, phong cảnh). Tiền xử lý (Image Processing): Sau bộ thu nhận, ảnh có thể nhiễu độ tương phản thấp nên cần đưa vào bộ tiền xử lý để nâng cao chất lượng. Chức năng chính của bộ tiền xử lý là lọc nhiễu, nâng độ tương phản để làm ảnh rõ hơn, nét hơn. Phân đoạn (Segmentation) hay phân vùng ảnh: Phân vùng ảnh là tách một ảnh đầu vào thành các vùng thành phần để biểu diễn phân tích, nhận dạng ảnh.. Đây là phần phức tạp khó khăn nhất trong xử lý ảnh và cũng dễ gây lỗi, làm mất độ chính xác của ảnh. Kết quả nhận dạng ảnh phụ thuộc rất nhiều vào công đoạn này. Biểu diễn ảnh (Image Representation): Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã phân đoạn) cộng với mã liên kết với các vùng lận cận. Việc biến đổi các số liệu này thành dạng thích hợp là cần thiết cho xử lý tiếp theo bằng máy tính. Việc chọn các tính chất để thể hiện ảnh gọi là trích chọn đặc trưng (Feature Selection) gắn với việc tách các đặc tính của ảnh dưới dạng các thông tin định lượng hoặc làm cơ sở để phân biệt lớp đối tượng này với đối tượng khác trong phạm vi ảnh nhận được. Nhận dạng và nội suy ảnh (Image Recognition and Interpretation): Nhận dạng ảnh là quá trình xác định ảnh. Quá trình này thường thu được bằng cách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước. Nội suy là phán đoán theo ý nghĩa trên cơ sở nhận dạng. Theo lý thuyết về nhận dạng, các mô hình toán học về ảnh được phân theo hai loại nhận dạng ảnh cơ bản: Nhận dạng theo tham số Nhận dạng theo cấu trúc Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng trong khoa học và công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn bản (text), nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt người Cơ sở tri thức (Knowledge Base): Như đã nói ở trên, ảnh là một đối tượng khá phức tạp về đường nét, độ sáng tối, dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo theo nhiễu. Trong nhiều khâu xử lý và phân tích ảnh ngoài việc đơn giản hóa các phương pháp toán học đảm bảo tiện lợi cho xử lý, người ta mong muốn bắt chước quy trình tiếp nhận và xử lý ảnh theo cách của con người. Trong các bước xử lý đó, nhiều khâu hiện nay đã xử lý theo các phương pháp trí tuệ con người. Mô tả (biểu diễn ảnh): Ảnh sau khi số hóa sẽ được lưu vào bộ nhớ, hoặc chuyển sang các khâu tiếp theo để phân tích. Nếu lưu trữ ảnh trực tiếp từ các ảnh thô, đòi hỏi dung lượng bộ nhớ cực lớn và không hiệu quả theo quan điểm ứng dụng và công nghệ. Thông thường, các ảnh thô đó được đặc tả (biểu diễn) lại (hay đơn giản là mã hoá) theo các đặc điểm của ảnh được gọi là các đặc trưng ảnh (Image Features) như: biên ảnh (Boundary), vùng ảnh (Region). Những vấn đề cơ bản trong hệ thống xử lý ảnh Điểm ảnh (Picture Element) Gốc của ảnh (ảnh tự nhiên): là ảnh liên tục về không gian và độ sáng. Để xử lý bằng máy tính (số), ảnh cần phải được số hóa. Số hóa ảnh là sự biến đổi gần đúng một ảnh liên tục thành một tập điểm phù hợp với ảnh thật về vị trí (không gian) và độ sáng (mức xám). Khoảng cách giữa các điểm ảnh đó được thiết lập sao cho mắt người không phân biệt được ranh giới giữa chúng. Mỗi một điểm như vậy gọi là điểm ảnh (PEL: Picture Element) hay gọi tắt là Pixel. Trong khuôn khổ ảnh hai chiều, mỗi pixel ứng với cặp tọa độ (x, y). Định nghĩa: Điểm ảnh (Pixel) là một phần tử của ảnh số tại tọa độ (x, y) với độ xám hoặc màu nhất định. Kích thước và khoản cách giữa các điểm ảnh đó được chọn thích hợp sao cho mắt người cảm nhận sự liên tục về không gian và mức xám (hoặc màu) của ảnh số gần như ảnh thật. Mỗi phần tử trong ma trận được gọi là một phần tử ảnh. Một file ảnh là tập hợp nhiều điểm ảnh, thông thường một hình ảnh được chia thành các hàng và cột chứa điểm ảnh. Điểm ảnh là thành phần bé nhất biểu diễn ảnh, có giá trị số biểu diễn màu sắc, độ sáng của một thành phần trong bức ảnh. Hình 2.2: Điểm ảnh (pixel - picture element) Độ phân giải của ảnh Độ phân giải (Resolution) của ảnh là mật độ điểm ảnh được ấn định trên một ảnh số được hiển thị. Theo định nghĩa, khoảng cách giữa các điểm ảnh phải được chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh. Việc lựa chọn khoảng cách thích hợp tạo nên một mật độ phân bổ, đó chính là độ phân giải và được phân bố theo trục x và y trong không gian hai chiều. Mức xám của ảnh Một điểm ảnh (pixel) có hai đặc trưng cơ bản là vị trí (x, y) của điểm ảnh và độ xám của nó. Dưới đây chúng ta xem xét một số khái niệm và thuật ngữ thường dùng trong xử lý ảnh. Mức xám của điểm ảnh là cường độ sáng của nó được gán bằng giá trị số tại điểm đó. Các thang giá trị mức xám thông thường:16, 32, 64, 128, 256 (mức 256 là mức phổ dụng. Lí do: từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn mức xám: Mức xám dùng 1 byte biểu diễn 2^8 = 256 mức (tức là từ 0 đến 255). Hình 2.3: Minh họa mức xám sau khi mã hóa Ảnh đen trắng: là ảnh có hai màu đen, trắng (không chứa màu khác) với mức xám ở các điểm ảnh có thể khác nhau. Ảnh nhị phân: ảnh chỉ có 2 mức đen trắng phân biệt, tức dùng 1bit mô tả 21 mức khác nhau. Nói cách khác mỗi điểm ảnh của ảnh nhị phân chỉ có thể là 0 hoặc 1. Hình 2.4: Minh họa ảnh nhị phân sau khi mã hóa Không gian màu HSV (HSB): Không gian màu HSV (còn gọi là HSB) là một cách tự nhiên hơn để mô tả màu sắc, dựa trên 3 số liệu: H: (Hue) Vùng màu S: (Saturation) Độ bão hòa màu B (hay V): (Bright hay Value) Độ sáng Hình 2.5: Không gian màu HSV Ảnh màu RGB: trong khuôn khổ lý thuyết ba màu (Red, Blue, Green) để tạo nên thế giới màu, người ta thường dùng 3 byte để mô tả mức màu, khi đó các giá trị màu là 28*3 = 224 = 16,7 triệu màu. Hình 2.6: Không gian màu RGB Định nghĩa ảnh số Ảnh số là tập hợp các điểm ảnh với mức xám phù hợp dùng để mô tả ảnh gần với ảnh thật. Chỉnh mức xám Nhằm khắc phục tính không đồng đều của hệ thống gây ra. Thông thường có 2 hướng tiếp cận: Giảm số mức xám: Thực hiện bằng cách nhóm các mức xám gần nhau thành một bó. Trường hợp chỉ có 2 mức xám thì chính là chuyển về ảnh đen trắng. Ứng dụng: in ảnh màu ra máy in đen trắng. Tăng số mức xám: Thực hiện nội suy ra các mức xám trung gian bằng kỹ thuật nội suy. Kỹ thuật này nhằm tăng cường độ mịn cho ảnh. Kỹ thuật năng cao chất lượng ảnh Nâng cao chất lượng là bước cần thiết trong xử lý ảnh nhằm hoàn thiện một số đặc tính của ảnh. Nâng cao chất lượng ảnh gồm hai công đoạn khác nhau: tăng cường ảnh và khôi phục ảnh. Tăng cường ảnh nhằm hoàn thiện các đặc tính của ảnh như: Lọc nhiễu, hay làm trơn ảnh. Tăng độ tương phản, điều chỉnh mức xám của ảnh. Làm nổi biên ảnh. Tăng cường ảnh không phải là làm tăng lượng thông tin vốn có trong ảnh làm nổi bật các đặt trưng đã chọn. Tức điều chỉnh mức xám của điểm ảnh. Dùng phương pháp ánh xạ làm thay đổi giá trị điểm sáng. Khôi phục ảnh bao gồm quá trình lọc ảnh, khử nhiễu do môi trường bên ngoài hay các hệ thống thu nhận, phát hiện và lưu trữ ảnh thu được, thông qua các bọ lọc trong miền không gian và trong miền biến đổi. Nhằm làm giảm bớt các biến dạng để khôi phục lại ảnh giống như ảnh gốc. Kỹ thuật nâng cao chất lượng ảnh gồm: các kỹ thuật không phụ thuộc vào không gian và các kỹ thuật phụ thuộc vào không gian. Kỹ thuật không phụ thuộc vào không gian bao gồm các phép như: tăng giảm độ sáng, tách ngưỡng, bó cụm, cân bằng histogram, tách ngưỡng tự động, biến đổi cấp xám tổng thể,... Kỹ thuật phụ thuộc vào không gian bao gồm các phép như: phép cuộn và mẫu, lọc trung vị, lọc trung bình, Kỹ thuật biến đổi ảnh Thuật ngữ biến đổi ảnh thường dùng để nói tới một lớp các ma trận đơn vị, và các kỹ thuật dùng để biến đổi ảnh làm giảm thứ nguyên của ảnh để việc xử lý ảnh được hiệu quả hơn. Có nhiều loại biến đổi được dùng như: biến đổi Fourier, Sin, Cosin, Kỹ thuật phân tích ảnh Phân tích ảnh liên quan đến việc xác định các độ đo định lượng của một ảnh để đưa ra một mô tả đầy đủ về ảnh. Nhằm mục đích xác định biên của ảnh. Có nhiều kỹ thuật khác nhau như lọc vi phân hay dò theo quy hoạch động. Người ta cũng dụng các kỹ thuật để phân vùng ảnh. Từ ảnh thu được, người ta tiến hành kỹ thuật tách hay hợp dựa theo cách tiêu chuẩn đánh giá như: màu sắc cường độ Phương pháp được biết đến các kỹ thuật phân lớp dựa theo cấu trúc. Kỹ thuật nhận dạng ảnh Nhận dạng ảnh là quá trình liên quan đến các mô tả đối tượng mà người ta muốn đặt tả nó. Quá trình nhận dạng thường đi sau quá trình trích chọn các đặc tính chủ yếu của đối tượng. Có hai kiểu mô tả đối tượng: Mô tả tham số ( nhận dạng theo tham số). Mô tả theo cấu trúc ( nhận dạng theo cấu trúc). Người ta đã áp dụng kỹ thuật nhận dạng khá thành công với nhiều đối tượng khác nhau như: nhận dạng ảnh vân tay, nhận dạng chữ (chữ cái, chữ số, chữ có dấu). Các phương pháp xử lý ảnh số Chuyển ảnh màu RGB thành ảnh mức xám ( Gray level) Ảnh gốc thường là ảnh màu 24bit màu nên khó nhận dạng ta cần phải chuyển về ảnh xám dữ liệu 8bit để dễ nhận dạng hơn. Nghĩa là mỗi pixel được biểu diễn 256 cấp độ xám theo công thức: X = 0,2125*R + 0,7145*G + 0,0721*B Quá trình chuyển đổi mức xám tuy có làm mất đi một số thông tin nhưng cũng có thể chấp nhận được. Phương pháp lọc nhiễu ảnh Ảnh thu được thường sẽ bị nhiễu nên cần phải loại bỏ nhiễu. Ccá toán tử không gian dùng trong kỹ thuật tăng cường ảnh được phân nhóm theo công dụng: làm trơn nhiễu, nổi biên. Đễ làm trơn nhiễu hay tách nhiễu, người ta sử dụng các bộ lọc tuyến tính (lọc trung bình, thông thấp) hoặc loạc phi tuyến (trung vị, giả trung vị, lọc đồng hình). Từ bản chất của nhiễu (thường tương ứng với tần số cao) và từ cơ sở lý thuyết lọc là: bộ lọc chỉ cho tín hiệu có tầng số nào đó thông qua, để lọc nhiễu người ta thường dùng thông thấp (theo quan điểm tầng số không gian) hay lấy tố hợp tuyến tính để san bằng (lọc trung bình). Để làm nổi cạnh (ứng với tầng số cao), người ta dùng bộ lọc thông cao, lọc Laplace. Phương pháp lọc nhiễu. Chia làm 2 loại: Lọc tuyến tính và lọc phi tuyến. Làm trơn nhiễu bằng lọc tuyến tính: Khi chụp ảnh có thể xuất hiện nhiều loại nhiễu vào quá trình xử lý ảnh, nên ta cần phải lọc nhiễu. Gồm các phương pháp cơ bản lọc trung bình, lọc thông thấp,Ví dụ lọc trung bình: Mỗi điểm ảnh được thay thế bằng trung bình trọng số của các điểm lân cận. Làm trơn nhiễu bằng lọc phi tuyến: Các bộ lọc phi tuyến cũng hay được dùng trong kỹ thuật tăng cường ảnh. Một số phương pháp lọc cơ bản bộ lọc trung vị, lọc ngoài,..Với lọc trung vị, điểm ảnh đầu vào sẽ được thay thế bởi trung vị các điểm ảnh còn lọc giả trung vị sẽ dùng trung bình cộng của hai giá trị “trung vị” (trung bình cộng của max và min). Lọc trung vị: Kỹ thuật này đòi hỏi giá trị các điểm ảnh trong cửa sổ phải xếp theo thứ tự tăng hay giảm dần so với día trị trung vị. Kích thước cửa sổ thường chọn sao cho số điểm ảnh trong cửa sổ là lẻ. Phân vùng ảnh Phân vùng ảnh là bước then chốt trong xử lý ảnh. Giai đoạn này nhằm phân tích ảnh thành những thành phần có cùng tính chất nào đó dựa theo biên hay các vùng liên thông. Tiêu chuẩn để xác định các vùng liên thông có thể là cùng mức xám, cùng màu hay cùng độ nhám. Trước hết cần làm rõ khái niệm "vùng ảnh" (Segment) và đặc điểm vật lý của vùng. Vùng ảnh là một chi tiết, một thực thể trông toàn cảnh. Nó là một tập hợp các điểm có cùng hoặc gần cùng một tính chất nào đó: mức xám, mức màu, độ nhám Vùng ảnh là một trong hai thuộc tính của ảnh. Nói đến vùng ảnh là nói đến tính chất bề mặt. Đường bao quanh một vùng ảnh (Boundary) là biên ảnh. Các điểm trong một vùng ảnh có độ biến thiên giá trị mức xám tương đối đồng đều hay tính kết cấu tương đồng. Dựa vào đặc tính vật lý của ảnh, ngƣời ta có nhiều kỹ thuật phân vùng: phân vùng dựa theo miền liên thông gọi là phân vùng dựa theo miền đồng nhất hay miền kề; phân vùng dựa vào biên gọi là phân vùng biên. Ngoài ra còn có các kỹ thuật phân vùng khác dựa vào biên độ, phân vùng dựa theo kết cấu. Phương pháp phân vùng ảnh Để phân tích các đối tượng trong ảnh, chúng ta cần phân biệt được các đối tượng cần quan tâm với phần còn lại của ảnh. Những đối tượng này có thể tìm được nhờ các kỹ thuật phân đoạn ảnh, theo nghĩa tách phần tiền ảnh ra hậu ảnh. Có thể hiểu phân vùng là tiến trình chia ảnh thành nhiều vùng, mỗi vùng chứa một đối tượng hay một nhóm đối tượng cùng kiểu. Chẳng hạn, một đối tượng có thể là một kí tự trên 1 trang văn bản hoặc một đoạn thẳng trong một bản vẽ kỹ thuật hoặc một nhóm đối tượng có thể biểu diễn một từ hay một đoạn thẳng tiếp xúc nhau. Khái niệm biên Biên là một vấn đề chủ yếu trong phân tích ảnh vì các kỹ thuật ảnh chủ yếu dựa vào biên. Một điểm ảnh có thể coi là biên nếu ở đó có sự thay đổi đột ngột về mức xám. Tập hợp các điểm tạo thành biên hay đường bao của ảnh. Máy tính nhúng Raspberry Pi Giới thiệu về Raspberry Pi 3 Raspberry Pi là cái máy tính kích cỡ như một chiếc thẻ ATM và chạy HĐH Linux. Được phát triển bởi Raspberry Pi Foundation – là tổ chức phi lợi nhuận với tiêu chí xây dựng hệ thống mà nhiều người có thể sử dụng được trong những công việc tùy biến khác nhau. Raspbian là một hệ điều hành thuận tiện cho việc cài đặt và sử dụng với sự hỗ trợ lớn từ cộng đồng mã nguồn mở trên thế giới. Hình 2.7: Raspberry Pi 3 Model B Chi tiết về thông số kỹ thuật ( Raspberry Pi 3 ): Bộ xử lý Broadcom BCM2837 tốc độ xử lý 1.2 GHz 64-bit quad-core ARM Cortex-A53 Mạng Wireless LAN chuẩn 802.11 b/g/n Bluetooth 4.1 (Class & Low Energy) Bộ xử lý đa phương tiện Videocore IV® Multimedia Bộ nhớ RAM 1GB Hỗ trợ tất cả các bản phân khối ARM GNU/Linux distributions Đầu nối microusb cho nguồn điện 2.5A 5VDC 1×10/100 Ethernet port 1 x RCA video/audio connector 4 x USB 2.0 ports 40 GPIO pins Chip antenna Kết nối hiển thị DSI Khe cắm thẻ nhớ microsd Kích thước: 85 x 56 x 17 mm Hình 2.8: Sơ đồ của Raspberry Pi 3 Ưu điểm của Raspberry Pi: Hiện nay Raspberry Pi có giá thành khá rẻ cùng kích thước vô cùng nhỏ gọn. Với việc tiêu thụ năng lượng rất thấp, Raspberry Pi chính là thiết bị siêu tiết kiệm điện. Được thiết kế có GPU mạnh. Những thiết bị này có thể phục vụ cho nhiều mục đích sử dụng khác nhau. Raspberry Pi có khả năng hoạt động liên tục không ngừng nghỉ. Có thể được lập trình bằng nhiều ngôn ngữ lập trình. Nhược điểm của Raspberry Pi: CPU cấu hình thấp Không tích hợp Wifi nếu muốn sử dụng phải mua thêm USB Wifi. Để có thể sử dụng thiết bị này yêu cầu người dùng phải có kiến thức cơ bản về Linux, điện tử. Màn hình LCD 3,5 inch Raspberry Pi Hình 2.9: Màn hình cảm ứng 3.5 inch Thông số kỹ thuật: Kích thước: 3.5 inch Độ phân giải: 480x320 pixel Tỉ lệ màn hình: 4:3 Đầu Nối HDMI Raspberry Pi 3B/B+ 1.4 Module camera (Camera Module 5MP Raspberry Pi ) Hình 2.10: Module camera raspberry pi Không tốn thêm cổng USB nào cho camera vì camera được gắn chắc chắn vào socket CSI. Điều này giúp hạn chế tình trạng nghẽn băng thông cho chip xử lý USB trên mạch Raspberry. Chiều dài cáp nối camera đã được tính toán cẩn thận khi vừa đạt được độ dài cần thiết trong khi vẫn đảm bảo tốc độ truyền hình ảnh từ module về RPi. Thông số kỹ thuật: Module Camera V1 cho Raspberry Pi. Cảm biến: OV5647 Độ phân giải: 5MP Độ phân giải hình: 2592x1944 pixel. Quay phim HD 1080P 30, 720P 60, VGA 640x480P 60. Lens: Fixed Focus. Conector: Ribon conector. Kích thước: 25x24x9mm. Ngôn ngữ python và thư viện Opencv Giới thiệu ngôn ngữ lập trình python ( python 2.7) Hình 2.11: Ngôn ngữ lập trình python trên Raspberry Python là ngôn ngữ lập trình hướng đối tượng, cấp cao, mạnh mẽ, được tạo ra bởi Guido van Rossum. Nó dễ dàng để tìm hiểu và đang nổi lên như một trong những ngôn ngữ lập trình nhập môn tốt nhất cho người lần đầu tiếp xúc với ngôn ngữ lập trình. Python hoàn toàn tạo kiểu động và sử dụng cơ chế cấp phát bộ nhớ tự động. Python có cấu trúc dữ liệu cấp cao mạnh mẽ và cách tiếp cận đơn giản nhưng hiệu quả đối với lập trình hướng đối tượng. Cú pháp lệnh của Python là điểm cộng vô cùng lớn vì sự rõ ràng, dễ hiểu và cách gõ li

Các file đính kèm theo tài liệu này:

  • docxkhoa_luan_ung_dung_xu_ly_anh_nhan_dang_cu_chi_ban_tay_dieu_k.docx
Tài liệu liên quan