Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 58 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
58
Dung lượng
1,98 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG - ISO 9001:2015 ĐỒ ÁN TỐT NGHIỆP NGÀNH: CÔNG NGHỆ THÔNG TIN Sinh viên : Lê Minh Quý Giảng viên hướng dẫn: TS Ngơ Trường Giang HẢI PHỊNG - 2018 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG - KỸTHUẬTĐỐISÁNHHÌNHDẠNGSỬDỤNGĐẶCTRƯNGDỰATRÊNĐƯỜNGBAOĐỐITƯỢNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY NGÀNH: CƠNG NGHỆ THƠNG TIN Sinh viên : Lê Minh Quý Giảng viên hướng dẫn: TS Ngơ Trường Giang HẢI PHỊNG - 2018 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG NHIỆM VỤ ĐỀ TÀI TỐT NGHIỆP Sinh viên: Lê Minh Quý Lớp: CT1802 Mã SV: 1412101051 Ngành: Công ngh ệ thơng tin Tên đề tài: Kỹthuậtđốisánhhìnhdạngsửdụngđặctrưngdựađườngbaođốitượng Lê Minh Quý - CT1802 MỤC LỤC LỜI CẢM ƠN LỜI MỞ ĐẦU DANH MỤC HÌNH VẼ CHƯƠNG 1: TỔNG QUAN VỀ PHÁT HIỆN BIÊN VÀ ĐỐISÁNH ẢNH 1.1 Biên phát biên 1.1.1 Khái niệm về biên 1.1.2 Phân loại kỹthuật phát biên 1.1.3 Quy trình phát biên trực tiếp 1.1.4 Một số phương pháp phát biên 10 1.2 Mô tả hìnhdạngdựađườngbao 15 1.2.1 Mô tả theo tiếp cận toàn cục 16 1.2.2 Mô tả theo tiếp cận cấu trúc 18 1.3 Đốisánh ảnh 24 1.3.1 Giới thiệu về đốisánh ảnh 24 1.3.2 Đốisánh ảnh dựađặctrưng 27 CHƯƠNG 2: ĐỐISÁNHHÌNHDẠNGSỬDỤNG NGỮ 30 CẢNH HÌNHDẠNG 2.1 Giới thiệu 30 2.2 Độ đo khoảng cách hìnhdạng 30 2.2.1 Khoảng cách min-max 30 2.2.2 Khoảng cách Euclid 31 2.2.3 Khoảng cách toàn phương 31 2.2.4 Khoảng cách Chi Squared distance 31 2.2.5 Khoảng cách Hausdorff 31 2.2.6 Độ đo khoảng cách 32 2.3 Mô tả ảnh sửdụng ngữ cảnh hìnhdạng (Shape context) 35 2.4 Đốisánhhìnhdạng ngữ cảnh 36 2.4.1 Đốisánh shape sửdụng quy hoạch động 36 2.4.2 Đốisánhhìnhdạngdựa đồ thị 37 CHƯƠNG 3: Lê Minh Quý - CT1802 THỰC NGHIỆM 44 3.1 Môi trường thực nghiệm 44 3.1.1 Phần cứng 44 3.1.2 Phần mềm 44 3.2 Đốisánh ảnh dựa ngữ cảnh hìnhdạngsửdụng opencv 45 3.2.1 Tìm đườngbao lấy mẫu điểm đườngbao .45 3.2.2 Tìm khoảng cách đốisánh hai đườngbao lấy mẫu 49 KẾT LUẬN 54 TÀI LIỆU THAM KHẢO 55 Lê Minh Quý - CT1802 LỜI CẢM ƠN Em xin chân thành cảm ơn thầy cô khoa công nghệ thông tin Trường ĐHDL Hải Phòng tận tình giảng dạy, truyền đạt kiến thức kinh nghiệm vô quý báu năm học vừa qua Em xin gửi lời cảm ơn chân thành tới thầy giáo TS Ngơ Trường Giang, Thầy tận tình hướng dẫn giúp đỡ em suốt trình làm đồ án, giúp em hoàn thành báo cáo kế hoạch Với bảo thầy, em có định hướng tốt việc triển khai thực yêu cầu trình làm đồ án tốt nghiệp Ngoài ra, em xin gửi lời cảm ơn tới tất bạn bè, đặc biệt bạn lớp CT1802 ln gắn bó, học tập giúp đỡ em năm qua suốt trình thực đồ án Em xin chân thành cảm ơn Hải Phòng, ngày tháng 11 năm 2018 Sinh viên Lê Minh Quý Lê Minh Quý - CT1802 LỜI MỞ ĐẦU Phát biên ảnh nhiệm vụ quan trọng xử lý ảnh Nhận dạng ảnh dùng máy tính liên quan tới việc nhận dạng phân loại đốitượng ảnh phát biên công cụ quan trọng Phát biên làm giảm cách đáng kể khối lượng liệu cần xử lý loại bỏ thông tin không cần thiết đảm bảo thuộc tính quan trọng về cấu trúc ảnh Có nhiều kỹthuật phát biên sử dụng, kỹthuật thường làm việc cách có hiệu cao loại đường biên cụ thể Còn nghiên cứu hìnhdạng thúc đẩy chủ yếu nhận dạngđối tượng, kỹthuật mô tả biểu diễn hìnhdạng chủ yếu dựa vào ứng dụng cụ thể Trong đó, hiệu xác mối quan tâm kỹthuậtHìnhdạng (Shape) đặctrưng quan trọng việc phân đoạn vùng ảnh, tính hiệu thiết thực đóng vai trò quan trọng việc tra cứu ảnh Phép biểu diễn hìnhdạngsửdụngđường cong rời rạc để làm đơn giản hóa đường viền giúp cho thuận lợi việc lọc nhiễu hai tác giả Latecki Lakamper nghiên cứu, việc sửdụngđường cong rời rạc loại bỏ đặctrưnghìnhdạng khơng thích hợp Một phương pháp mơ tả hìnhdạng để đo độ tương tự sửdụng Shape Context để đốisánhhình dạng, phương pháp đề xuất tác giả Belongie, ưu điểm phương pháp tối ưu, đơn giản hiệu mang lại chưa cao cho việc liên quan đến biến đổihình học tra cứu dựahìnhdạng Trong phạm vi đề tài này, em tập trung tìm hiểu về kỹthuật phát biên, mô tả điểm đặctrưngsửdụng ngữ cảnh hìnhdạngđốisánh tập đặctrưng để ước lượng khoảng cách hai ảnh hìnhdạngđốitượng Lê Minh Quý - CT1802 DANH MỤC HÌNH VẼ Hình 1-1: Một số kiểu đường biên thông dụng .8 Hình 1-2: Tốn tử Sobel 11 Hình 1-3: Tốn tử Prewitt 11 Hình 1-4: Tốn tử Roberts .12 Hình 1-5: Kỹthuật Laplace 13 Hình 1-6: Tốn tử Laplacian 15 Hình 1-7: Minh họa độ lệch tâm hìnhdạng 16 Hình 1-8: Các hướng đoạn thẳng đơn vị: (a): hướng, (b): hướng 20 Hình 1-9: Biểu diễn chuỗi mã ( theo hướng hướng) .20 Hình 1-10: Biểu diễn hìnhdạngsửdụng shape number 21 Hình 1-11: Các bước tính tốn shape number .22 Hình 1-12: Phân tích đường cong mịn 23 Hình 1-13: Ảnh gốc .29 Hình 1-14: Phát cạnh .29 Hình 2-1: Ví dụ khoảng cách .32 Hình 2-2: Ví dụ về khoảng cách x y hình O 33 Hình 2-3: Quá trình biểu diễn khoảng cách đốitượng 34 Hình 2-4: Tính tốn ngữ cảnh hìnhdạng .36 Hình 3-1: Hình hiển thị Shape 46 Hình 3-2: Kết tìm biên phương pháp Canny từ ảnh đầu vào 47 Hình 3-3: Kết tìm đườngbao lấy mẫu .49 Lê Minh Quý - CT1802 CHƯƠNG 1: TỔNG QUAN VỀ PHÁT HIỆN BIÊN VÀ ĐỐISÁNH ẢNH 1.1 Biên phát biên 1.1.1 Khái niệm biên Biên phần chủ yếu phân tích ảnh kỹthuật phân đoạn ảnh chủ yếu dựa vào biên Một điểm ảnh coi điểm biên có thay đổi đột ngột về mức xám Tập hợp điểm biên tạo thành biên hay đườngbao ảnh ảnh Ví dụ, ảnh nhị phân, điểm gọi biên điểm đen có điểm trắng lân cận Để hìnhdung tầm quan trọng biên ta xét ví dụ sau: Khi người hoạ sĩ vẽ bàn gỗ, cần vài nét phác thảo về hìnhdáng mặt bàn, chân bàn mà không cần thêm chi tiết khác, người xem nhận bàn, ứng dụng ta phân lớp nhận diện đối tượng, coi nhiệm vụ hồn thành Tuy nhiên đòi hỏi thêm về chi tiết khác vân gỗ hay màu sắc,v.v với chừng thơng tin chưa đủ Nhìn chung về mặt toán học người ta coi điểm biên ảnh điểm có biến đổi đột ngột về độ xám Đường biên tập điểm biên Một số kiểu đường biên hay gặp thực tế minh họa hình 1-1 Trong đó: a) Biên dạng nhẩy bậc b) Biên dốc c) Biên dạng xung vng d) Biên dạnghình nón Lê Minh Quý - CT1802 Hình 1-1: Một số kiểu đường biên thông dụng Phát biên công cụ quan trọng xử lý ảnh số Phương pháp phát biên làm giảm cách đáng kể khối lượng liệu cần tính tốn, giữ lại số thông tin cần thiết đồng thời bảo toàn cấu trúc quan trọng ảnh Như phát biên cách lý tưởng xác định tất đườngbaođốitượng Định nghĩa toán học biên sở cho kỹthuật phát biên Điều quan trọng biến thiên mức xám ảnh vùng thường nhỏ, biến thiên mức xám điểm vùng giáp ranh (khi qua biên) lại lớn 1.1.2 Phân loại kỹthuật phát biên Xuất phát từ định nghĩa toán học biên người ta thường sửdụng hai phương pháp phát biên phương pháp phát biên trực tiếp phương pháp phát biên gián tiếp Các phương pháp trình bày phần Lê Minh Quý - CT1802 Lê Minh Quý - CT1802 41 2.4.2.3 Bài toán ghép cặp với trọng số lớn Input: Đồ thị hai phần đầy đủ G = (X∪Y, E), X = {X1, X2, , Xn}, Y = {Y1, Y2, , Yn} cho ma trận vng C cỡ n×n, c[i, j] trọng số cạnh nối đỉnh X i với Yj Giả thiết c[i, j] ≥ với i, j Output: Ghép cặp hoàn hảo với trọng số lớn Lê Minh Quý - CT1802 42 2.4.2.3.1 Thuật toán Bước 1: Khởi tạo: Một ghép cặp M = ∅ Khởi tạo hai dãy Fx Fy thỏa mãn Fx[i]+Fy[j] ≥ c[i, j] với i, j; chẳng hạn gán Fx[i] với giá trị lớn dòng i ma trận C Fy[j] = Bước 2: Với đỉnh x∗ ∈ X, ta tìm cách ghép x∗ sau: Với cách hiểu 0−cạnh cạnh thỏa mãn c[i, j] = Fx[i]+Fy[j], đỉnh X∗, thử tìm đưởng mở x∗.Có hai khả xảy ra: Hoặc tìm đường mở dọc theo đường mở, ta loại bỏ cạnh ghép khỏi M thêm vào M cạnh chưa ghép, ta ghép cặp nhiều ghép cũ cạnh đỉnh x∗ trở thành ghép Hoặc khơng tìm đường mở ta xác định hai tập: VisitedX = Tập X_đỉnh đến từ x∗ đường xen kẽ; VisitedY = Tập Y_đỉnh đến từ x∗ đường xen kẽ; Đặt ∆ = x∈[a;b]{Fx[i]+Fy[j]−c[i, j], X[i] thuộc V isitedX, Y [j] không thuộc V isitedY} Với X[i] thuộc tập VisitedX, gán Fx[i]:= Fx[i]−∆; Với Y [j] thuộc tập VisitedY, gán Fx[j]:= Fx[j] + ∆; Lặp lại thủ tục tìm đường mở xuất phát từ x∗ tìm đường mở Bước 3: Sau bước X_đỉnh đều ghép, ta ghép cặp hoàn hảo với trọng số lớn Lê Minh Quý - CT1802 43 CHƯƠNG 3: THỰC NGHIỆM 3.1 Môi trường thực nghiệm 3.1.1 Phần cứng Thành phần Thông số CPU Core i5-2540M 2.60GHz RAM 4GB Hệ điều hành Windows 10 Pro 64-bit Bộ nhớ 250GB 3.1.2 Phần mềm Chương trình cài đặt mơi trường visual studio 2017 với thư viện mã nguồn mở OpenCV (Open Source Computer Vision Library) OpenCV thư viện mã nguồn mở về thị giác máy tính học máy Thư viện xây dựng để cung cấp nền tảng cho ứng dụng thị giác máy tính nhằm đẩy mạnh phát triển về hàm lượng tri thức máy tính sản phẩm thương mại Nhờ giấy phép quyền BSD nhiều công ty lớn hàng đầu giới Google, Yahoo, Microsoft, Intel, IBM, … đóng góp xây dựng thư viện, OpenCV công cụ mạnh sửdụng rộng rãi trường học công ty khởi nghiệp Thư viện OpenCV bao gồm nhiều giao diện dành cho C++, C, Python, Java, MATLAB hỗ trợ cho hệ điều hành khác Windows, Linux, Android, MacOS Trong phiên OpenCV 3.1, giao diện sửdụng cho CUDA OpenCL phát triển hoàn thiện OpenCV viết nguyên ngôn ngữ C++ OpenCV có nhiều chức Sau tóm tắt về hệ thống nhóm hàm OpenCV Image and Video I/O Là nhóm hàm cho phép đọc liệu ảnh từ file trực tiếp từ video Lê Minh Quý - CT1802 44 Các thuật toán xử lý ảnh thị giác máy (General computer-vision and image-processing algorithms (mid – and low level APIs)): Bao gồm hàm thực thuật toán xử lý ảnh từ video Graphic: Bao gồm hàm cho phép viết chữ vẽ hình ảnh Thêm vào hàm sửdụng để ghi nhãn đánh dấu Ví dụ ta viết chương trình cần nhận dạng nhiểu đốitượng có ích cho tạo nhãn ảnh (label image) với kích thước vị trí OpenCV cho Linux MacOSX đóng gói gói mã nguồn lưu trữ Ta phải xây dựng thư viện tĩnh đốitượng chia sẻ (shared-object) Ta cần xây dựng RPM trước tiên cài đặt từ nó, biên dịch cài đặt Cấu trúc cho hai nằm INSTALL Với Window ta cài đặt OpenCV, copy file OpenCV vào thư mục mà ta chọn Mặc định cài đặt đến C:/Program Files/OpenCV/ Trong thư mục OpenCV có vài thư mục khác Thư mục docs chứa file văn html cho toàn hàm OpenCV kiểu liệu Từ file văn ta làm ví dụ, ta muốn xem thư mục “samples” Những file header cần thiết ta dịch chương trình sửdụng OpenCV 3.2 Đốisánh ảnh dựa ngữ cảnh hìnhdạngsửdụng opencv 3.2.1 Tìm đườngbao lấy mẫu điểm đườngbao Bước 1: Đọc hiển thị ảnh Hàm đọc ảnh opencv: imread Mat imread(const string&filename, int flags) Filename: Tên ảnh đầu vào Flags: Lê Minh Quý - CT1802 45 CV_LOAD_IMAGE_ANYDEPTH: Nếu ảnh đầu vào có chiều sâu tương ứng ảnh trả về 16-bit/32-bit, ngược lại trả về ảnh 8bit CV_LOAD_IMAGE_COLOR: Nếu dùng hàm này, ảnh chuyển đổi thành ảnh màu CV_LOAD_IMAGE_GRAYSCALE: Nếu dùng hàm này, trả về hình ảnh đa mức xám Hàm hiển thị ảnh opencv: imshow Void imshow(const string & winname, InputArray mat) Winname: Tên cửa sổ hiển thị ảnh Image: Hình ảnh hiển thị Hàm imshow hiển thị hình ảnh cửa sổ định Nếu cửa sổ tạo CV_WINDOW_AUTOSIZE, hình ảnh hiển thị với kích thước ban đầu nó, nhiên bị giới hạn độ phân giải hình Nếu khơng, hình ảnh thu nhỏ để vừa với cửa sổ Hàm chia tỷ lệ hình ảnh, tùy thuộc vào độ sâu Ví dụ đọc hiển thị ảnh: Mat img = imread("D:/Anh/Shape1.jpg"); imshow("Shape", img); Hình 3-1: Hình hiển thị Shape Lê Minh Quý - CT1802 46 Bước 2: Tìm đườngbao Sửdụng hàm findContours(currentQuery, _contoursQuery, RETR_LIST, CHAIN_APPROX_NONE) để tìm đườngbao currentQuery: Ảnh đầu vào contoursQuery: Các đườngbao tìm.Mỗi đườngbao lưu trữ vector điểm RETR_LIST: Trả về tất đườngbao mà không thiết lập mối quan hệ thứ bậc CHAIN_APPROX_NONE: Lưu trữ tất điểm đường bao.Nghĩa điểm liền x1, y1 x2, y2 đườngbao thuộc láng giềng ngang, dọc chéo, nghĩa max(abs(x1-x2), abs(y2-y1))=1 Kết tìm đườngbao theo thủ tục minh họa hình 3-2: Hình 3-2: Kết tìm biên phương pháp Canny từ ảnh đầu vào Lê Minh Quý - CT1802 47 Bước 3: Lấy mẫu n điểm đườngbao Trong trường hợp số điểm thực tế đườngbao nhỏ n thêm điểm vào cho đủ: Lấy mẫu n điểm ngẫu nhiên đườngbaosửdụng phương thức: random_shuffle(contoursQuery.begin(), contoursQuery.end()); vector contQuery; for (int i = 0; i < n; i++) { contQuery.push_back(contoursQuery[i]); } Việc tìm đườngbao lấy mẫu thực theo thủ tục sau: int k = _contoursQuery.size(); std::vector colors; for (int i = 0; i computeDistance(contQuery1,contQuery2); int bestMatch = 0; float bestDis = FLT_MAX; moveWindow("TEST",0, 0); std::cout