Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 56 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
56
Dung lượng
1,83 MB
Nội dung
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ Nghiên cứu tự động phát điểm mốc ảnh cánh trùng NGƠ XN QUANG Quang.NXCA190079@sis.hust.edu.vn Ngành: Kỹ thuật Điện tử Giảng viên hướng dẫn: TS Võ Lê Cường Viện: Điện tử - Viễn thông Giảng viên đồng hướng dẫn: TS Nguyễn Hoàng Hà Đơn vị: ĐH Khoa học Công nghệ Hà Nội HÀ NỘI, 06/2021 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ Nghiên cứu tự động phát điểm mốc ảnh cánh trùng NGƠ XN QUANG Quang.NXCA190079@sis.hust.edu.vn Ngành Kỹ thuật Điện tử Giảng viên hướng dẫn: TS Võ Lê Cường Viện: Điện tử - Viễn thông Giảng viên đồng hướng dẫn: TS Nguyễn Hoàng Hà Đơn vị: ĐH Khoa học Công nghệ Hà Nội HÀ NỘI, 06/2021 Chữ ký GVHD CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ Họ tên tác giả luận văn: Ngô Xuân Quang Đề tài luận văn: Nghiên cứu tự động phát điểm mốc ảnh cánh côn trùng Chuyên ngành: Kỹ thuật điện tử Mã số SV: CA190079 Tác giả, Người hướng dẫn khoa học Hội đồng chấm luận văn xác nhận tác giả sửa chữa, bổ sung luận văn theo biên họp Hội đồng ngày 27 tháng năm 2021 với nội dung sau: - Chỉnh sửa bổ sung luận văn theo quy định luận văn - Chỉnh sửa luận văn theo ý kiến hội đồng Ngày 27 tháng năm 2021 Giáo viên hướng dẫn Tác giả luận văn TS Võ Lê Cường Ngô Xuân Quang CHỦ TỊCH HỘI ĐỒNG TS Phạm Doãn Tĩnh LỜI CAM ĐOAN Tôi xin cam đoan luận văn cơng trình nghiên cứu cá nhân tơi, thực hướng dẫn TS Võ Lê Cường - cán Viện Điện tử - Viễn thông, trường Đại học Bách Khoa Hà Nội (HUST) thầy TS Nguyễn Hoàng Hà – giảng viên khoa Công nghệ Thông tin Truyền thông, trường Đại học Khoa học Công nghệ Hà Nội (USTH) suốt trình học tập nghiên cứu Trường Đại học Bách khoa Hà Nội Để hoàn thành luận văn này, tham khảo tài liệu liên quan liệt kê cuối luận văn Những tài liệu tham khảo tơi dẫn trích rõ nguồn danh mục tài liệu tham khảo Hà Nội, ngày 26/06/2021 Học viên Ngô Xuân Quang LỜI CẢM ƠN Trong suốt trình học tập nghiên cứu cao học khóa Thạc sỹ 2019A ngành Kỹ thuật Điện tử Viện Điện tử - Viên thông, trường Đại học Bách khoa Hà Nội, nhận dạy dỗ, bảo tận tình cán thầy, cô giáo với nhiều kiến thức mở rộng nâng cao Với đề tài luận văn “Nghiên cứu tự động phát điểm mốc ảnh cánh côn trùng” Tôi bày tỏ lòng biết ơn sâu sắc tới thầy TS Võ Lê Cường - cán Viện Điện tử - Viễn thông, trường Đại học Bách Khoa Hà Nội (HUST) thầy TS Nguyễn Hoàng Hà – giảng viên khoa Công nghệ Thông tin Truyền thông, trường Đại học Khoa học Công nghệ Hà Nội (USTH) dìu dắt, hướng dẫn, giúp tơi hịa nhập với mơi trường nghiên cứu khoa học, tạo điều kiện thuận lợi cho tơi suốt q trình làm thực nghiệm viết khóa luận Tơi xin gửi lời cám ơn tới cán thầy, cô giáo Viện Điện tử Viễn thông trường Đại học Bách khoa Hà Nội mở môi trường học tập nghiên cứu đại tiên tiến để tơi học tập nghiên cứu nâng cao trình độ Cuối cùng, tơi xin bày tỏ lịng biết ơn tới gia đình, bạn bè đồng nghiệp nơi đơn vị cơng tác động viên, khuyến khích tạo điều kiện tối đa cho tơi suốt q trình học tập nghiên cứu trường Đại học Bách khoa Hà Nội Học viên Ngơ Xn Quang TĨM TẮT NỘI DUNG LUẬN VĂN Nhận diện điểm mốc toán thuộc tốn đốn hình dạng Với ảnh đầu vào, hệ thống nhận dạng cố gắng xác định điểm quan trọng ROI ảnh Trong Sinh học, giải pháp ứng dụng Học máy, Học sâu vào nghiên cứu mẻ, đáng quan tâm khai thác Đồng thời, nhận thấy quan trọng việc phân tích hình thái dựa điểm mốc, tiến hành nghiên cứu phát điểm mốc hình thái cánh trùng tự động Học sâu, cụ thể tập liệu ảnh cánh loài ruồi giấm (tên khoa học: Drosophila) Luận văn tập trung vào vấn đề “Nghiên cứu tự động phát điểm mốc ảnh cánh côn trùng” Dựa vào sở Luận văn phân tích so sánh hiệu mơ hình tiêu biểu, từ chọn mơ hình tốt Do số luận điểm đóng góp luận văn bao gồm: Nghiên cứu tổng quan toán Nhận diện đối tượng chi tiết mạng nhận dạng Học sâu Nghiên cứu thực nghiệm, kết đánh giá Trong phần này, nói tới tập liệu trình huấn luyện, kiểm định mơ hình Đồng thời, hiệu độ xác mơ hình Học sâu làm rõ thơng qua thí nghiệm Nghiên cứu tổng kết công việc thực hiện, bàn luận hạn chế đề tài hướng nghiên cứu tương lai MỤC LỤC DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT ii DANH MỤC CÁC BẢNG iii DANH MỤC HÌNH ẢNH iv ĐẶT VẤN ĐỀ iv CHƯƠNG 1: GIỚI THIỆU 1.1 Lý chọn đề tài 1.2 Các nghiên cứu liên quan 1.3 Quá trình nghiên cứu 1.4 Cấu trúc luận án CHƯƠNG 2: PHƯƠNG PHÁP NGHIÊN CỨU 2.1 Tổng quan toán phương pháp Học Sâu .9 2.1.1 Tổng quan toán 2.1.2 Giới thiệu Học Sâu (Machine Learning) 10 2.2 Phương pháp đánh giá mơ hình 11 2.3 Các mạng nhận dạng Học sâu .12 2.3.1 Một số khái niệm thuật ngữ thường dùng 12 2.3.2 Cấu trúc mạng backbone Học sâu 13 CHƯƠNG 3: THỰC NGHIỆM, KẾT QUẢ VÀ ĐÁNH GIÁ 29 3.1 Tập liệu 29 3.2 Thực nghiệm .32 3.2.1 Tiền xử lý .32 3.2.2 Huấn luyện 32 3.2.3 Kiểm định 34 3.3 Kết 35 3.4 Đánh giá 39 CHƯƠNG 4: KẾT LUẬN 40 PHỤ LỤC 41 TÀI LIỆU THAM KHẢO 46 i DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT KÝ HIỆU CHÚ GIẢI TIẾNG ANH CHÚ GIẢI TIẾNG VIỆT ROI Region of Interest Khu vực quan tâm SVM Support Vector Machine Máy véc-tơ hỗ trợ RF Random Forest Rừng ngẫu nhiên CART Classification and Regression Cây phân loại hồi quy Tree PGH Pairwise Geometric Histogram Biểu đồ hình học theo cặp PHT Probabilistic Hough Transform Biến đổi Hough theo xác suất IOU Intersection Over Union Diện tích phần giao chia cho diện tích phần hợp khung chữ nhật đoán khung giá trị thật DNN Deep neural network Mạng nơ-ron sâu RPN Region proposal network Mạng đề xuất khu vực CNN Convolutional Neural Network Mạng nơ-ron tích chập SSD Single MultiBox Shot Detector Mơ hình nhận diện phân loại nhiều đối tượng khung chữ nhật với lần xử lý YOLO You Only Look Once Bạn phải nhìn lần ii DANH MỤC CÁC BẢNG Bảng 1: Thông tin gen alen Drosophila 29 Bảng 2: Kết đánh giá mơ hình Faster R-CNN 36 Bảng 3: Kết đánh giá mơ hình SSD 37 Bảng 4: Kết đánh giá mơ hình YOLO 38 iii DANH MỤC HÌNH ẢNH Hình 1 Sơ đồ khối quy trình nhận dạng điểm mốc Hình 2: Hai phương pháp nhận dạng điểm mốc Hình 1: Khung chữ nhật bao quanh điểm mốc nhận diện Hình 2: Cách tính IOU 11 Hình 3: Ví dụ nhận diện đối tượng 13 Hình 4: Mơ tả phân hình qua thuật tốn tìm kiếm chọn lọc 14 Hình 5: Phân loại khung hình đề xuất khu vực R-CNN 15 Hình 6: Kiến trúc Fast R-CNN .16 Hình 7: So sánh training time, test time R-CNN Fast R-CNN 17 Hình 8: Kiến trúc Faster R-CNN 18 Hình 9: Chi tiết mạng đề xuất khu vực - RPN .18 Hình 10: Cơng dụng cửa sổ trượt đồ đặc trưng 19 Hình 11: Khung hình chữ nhật anchor RPN 20 Hình 12: RPN tạo k mỏ neo tương ứng ảnh gốc 21 Hình 13: So sánh test-time speed R-CNN, Fast R-CNN Faster R-CNN 22 Hình 14: Kiến trúc SSD 23 Hình 15: Kiến trúc multi-sacle convolution prediction sử dụng SSD 24 Hình 16: MultiBox prior And IOU 25 Hình 17: Minh họa cho ý tưởng Fixed Priors 26 Hình 18: Kiến trúc cua YOLO 26 Hình 19: Các bước xử lý mơ hình YOLO 27 Hình 1: Dữ liệu ảnh cánh ruồi giấm Drosophila thu thập [7] 30 Hình 2: Dữ liệu ảnh cánh ruồi giấm Drosophila thu thập [9] 30 Hình 3: Ảnh bên trái gán nhãn 15 điển mốc tay theo bên phải31 Hình 4: Q trình gán nhãn thủ cơng phần mềm TpsDig2 ver2.3131 Hình 5: Quá trình huấn luyện Faster R-CNN theo Tensorflow 33 Hình 6: Quá trình huấn luyện SSD theo Tensorflow 33 Hình 7: Quá trình huấn luyện YOLO theo Darknet 34 Hình 8: Kết kiểm thử ảnh mạng Faster R-CNN SSD 35 Hình 9: Kết kiểm thử ảnh mạng YOLO 35 Hình 10: So sánh độ xác mơ hình nhận diện 39 iv 3.2 Thực nghiệm Công tác chuẩn bị liệu cho mô hình Học sâu tiến hành sau: liệu ảnh đen trắng 1035 cánh phải ruồi giấm chia theo tỉ lệ 4:1 cho việc đào tạo kiểm tra độ xác mơ hình Đoạn mã dùng để chia ngẫu nhiên liệu nhằm phục vụ dự án viết ngôn ngữ Python tác giả Aishwarya Malgonde (xem Phụ lục B) Những khung phần mềm (framework) phổ biến cung cấp tác vụ Nhận diện vật thể kể đến Weka, Darknet, Caffe, Tensorflow,… Trong đó, Tensorflow nội bật phát triển cập nhật liên tục Google Tensorflow cung cấp đa dạng mơ hình Học sâu huấn luyện sẵn nhiều liệu lớn COCO, Kitti, Open Images, AVA v2.1,… mạng Faster R-CNN Inception, Faster R-CNN ResNet, SSD MobileNet, SSD Inception, SSD ResNet,… Cụ thể, chọn số mơ hình có độ chắn cao làm đại diện cho ba họ (Faster R-CNN, SSD, YOLO) để thử nghiệm đề tài này, bao gồm: Faster R-CNN Inception ResNet v2 Atrous, SSD MobileNet v1 FPN COCO, YOLOv3 3.2.1 Tiền xử lý Để huấn luyện mơ hình phân loại vật thể Tensorflow Object Detection API, việc chuyển đổi file chứa giá trị thật liệu từ định dạng TPS sang định dạng XML quan trọng cần thiết Đồng thời, để chuẩn hóa ảnh làm đầu vào huấn luyện mơ hình Tensorflow, ảnh định dạng TIF phải chuyển đổi thành JPG Để thực trình chuẩn hóa ảnh đầu vào huấn luyện mơ hình Tensorflow tơi sử dụng Python để xây dựng đoạn script ngắn cho hai phần việc đảm bảo yêu cầu chuẩn hóa ảnh đầu vào huấn luyện (xem Phụ lục A) 3.2.2 Huấn luyện Quá trình nghiên cứu thực đào tạo hai mơ hình Faster R-CNN, SSD riêng biệt theo hướng dẫn sử dụng Tensorflow YOLO Darknet 32 Cấu hình máy tính tơi sử dụng để thực hin Hun luyn mụ hỡnh: ã CPU: Intelđ Core i79700K @ 3.60 GHz ã GPU: NVIDIAđ GeForce RTX 2070 8GB Quá trình huấn luyện Faster R-CNN, SSD theo Tensorflow YOLO theo Darknet có số hàm Losses gần khơng giảm cho thấy hội tụ mạng huấn luyện tìm kiếm 15 điểm đặc trưng Hình 5: Quá trình huấn luyện Faster R-CNN theo Tensorflow Hình 6: Quá trình huấn luyện SSD theo Tensorflow 33 Hình 7: Quá trình huấn luyện YOLO theo Darknet 3.2.3 Kiểm định Sau hồn tất q trình huấn luyện, xuất tệp đồ thị suy luận (inference graph) dựa checkpoint có lúc đào tạo mơ hình Tiếp đó, chúng tơi cho kiểm thử mơ hình ảnh tập kiểm định Q trình kiểm thử hệ thống mơ hình học sâu huấn luyện nhận diện điểm mốc với ảnh tập kiểm thử đưa thông số độ tin cậy phán đốn Với độ tin cậy thấp khơng nhận diện điểm mốc Với độ tin cậy cao nhận diện điểm mốc đưa phán đoán nhận diện r < Rthres, phán đoán nhận diện sai r ≥ Rthres Kết kiểm thử ảnh hệ thống mô hình học sâu huấn luyện báo lại tỉ lệ phán đoán nhận diện điểm mốc ảnh tập kiểm thử Hệ thống lưu lại phân loại từ điểm mốc có nhận diện hay khơng, nhận diện điểm mốc điểm mốc hay sai Dưới hình ảnh trình kiểm thử cho kết 34 Hình 8: Kết kiểm thử ảnh mạng Faster R-CNN SSD Hình 9: Kết kiểm thử ảnh mạng YOLO Kết việc đề cập chi tiết bảng phần bên 3.3 Kết Như đề cập phần 2.2 Phương pháp đánh giá mơ hình, tính chất điểm mốc khơng có kích thước nên để đánh giá độ xác, nhóm nghiên cứu ý đến khoảng cách từ tâm khung chữ nhật dự đốn tới vị trí thực điểm mốc Trong q trình thực nghiệm, tơi đo khoảng cách nhỏ điểm mốc tập liệu 30 pixel Có thể thấy rằng, việc chọn ngưỡng pixel phù hợp cho việc phân biệt hai điểm mốc 35 gần mắt thường Do đó, tơi lựa chọn Rthres = cho cơng tác kiểm định độ xác Bảng 2: Kết đánh giá mơ hình Faster R-CNN Đúng (r< Sai(r>= Khơng nhận Độ xác Rthres) Rthres) diện (%) 200 96.6 206 99.5 197 10 95.7 205 99.0 207 0 100.0 205 99.0 183 24 88.4 179 28 86.5 180 27 87.0 10 183 24 88.4 11 179 28 86.5 12 177 30 85.5 13 141 66 68.1 14 182 25 87.9 15 181 26 87.4 Điểm mốc Trung bình 90.3 36 Bảng 3: Kết đánh giá mơ hình SSD Đúng (r< Sai(r>= Khơng nhận Độ xác Rthres) Rthres) diện (%) 159 45 76.8 181 24 87.4 147 52 71.0 99 108 47.8 165 42 79.7 162 44 78.3 183 16 88.4 179 20 86.5 149 16 42 72.0 10 103 95 49.7 11 171 16 20 82.6 12 148 23 36 71.5 13 54 27 126 26.1 14 128 16 63 61.8 15 128 16 63 61.8 Điểm mốc Trung bình 69.4 37 Bảng 4: Kết đánh giá mơ hình YOLO Đúng (r< Sai(r>= Khơng nhận Độ xác Rthres) Rthres) diện (%) 149 56 72.0 147 56 71.0 157 44 75.8 153 52 73.9 151 52 72.9 161 44 77.8 132 73 63.8 159 46 76.8 137 64 66.2 10 147 56 71.0 11 161 44 77.8 12 135 66 65.2 13 135 66 65.2 14 141 60 68.1 15 139 66 67.1 Điểm mốc Trung bình 71.0 38 Độ xác họ mơ hình sử dụng thí nghiệm chúng tơi mơ tả theo biểu đồ cột Hình 2.8 Độ xác trung bình mơ hình nhận diện vật thể 100 90 80 70 60 Faster R-CNN Inception V2 PETS 50 SSD MobileNet V1 FPN 40 Yolo V3 30 20 10 Hình 10: So sánh độ xác mơ hình nhận diện 3.4 Đánh giá Các bảng liệu 3.2, 3.3, 3.4 cho thấy mơ hình nhận diện cho kết tương đối tốt Mơ hình Faster R-CNN cho độ xác chung tất điểm mốc cao nhất, khoảng 90.3%, ngun nhân mơ hinh có tách thành hai mạng riêng: đề xuất vùng phân loại Các mơ hình SSD YOLO có chất lượng khá, thua mơ hình Faster R-CNN chút Tuy nhiên tốc độ xử lý SSD YOLO nhanh mạng gồm 01 giai đoạn Những nghiên cứu khác có liên quan trình bày chương I cho kết khả quan, song độ xác chưa thực đạt tới 90% Qua thực nghiệm đề tài luận văn, đặc biệt mô hình Faster R-CNN cho độ xác lên đến 90,3% Do đó, ứng dụng mơ hình Học sâu nhận diện đối tượng để phát điểm mốc cánh côn trùng tự động cần thiết 39 CHƯƠNG 4: KẾT LUẬN Qua luận văn này, liên hệ cần thiết việc áp dụng mô hình Học sâu Nhận diện đối tượng vào lĩnh vực Sinh học, cụ thể nhận diện điểm mốc tự động cánh ruồi Ứng dụng Học sâu vừa có độ xác cao, đáng tin cậy vừa giúp rút ngắn thời gian, công sức chuyên gia Sinh học họ cần phải phân tích hình dạng cánh ruồi Bằng thực nghiệm, nhận thấy mạng Faster R-CNN mang lại độ xác cao ba họ mơ hình – với 90.3% Về tốc độ phát điểm mốc, mạng Faster R-CNN trung bình khoảng 63ms để xử lý ảnh đầu vào với kích thước 1024 x 1360, SSD tốn khoảng 27ms YOLO 32ms Điều hoàn toàn thấy Faster RCNN gồm hai giai đoạn SSD YOLO có giai đoạn cấu trúc mạng Khi làm việc với lượng liệu lớn, tầm 50,000 ảnh trở lên, xem xét sử dụng mạng SSD YOLO để tiết kiệm thời gian xử lý Trong tương lai, đưa tham số để tối ưu hóa mơ hình Nhận diện tập liệu cụ thể khác Đồng thời, phát triển ứng dụng có giao diện người dùng để hỗ trợ nhà nghiên cứu Sinh học nhiệm vụ phân tích hình thái sinh học 40 PHỤ LỤC Phụ lục A import cv2 import os for file in os.listdir("./RightWings"): if(file[-3:]=="tif"): link = os.path.join("./RightWings", file) tmp = cv2.imread(link) cv2.imwrite("./data/"+file[:-4]+".jpg", tmp) Mã nguồn chuyển đổi định dạng file tif sang jpg import numpy as np import cv2 def readtps(input): tps_file = open(input, 'r') tps = tps_file.read().splitlines() tps_file.close() lm, im, ID, coords_array = [], [], [], [] for i, ln in enumerate(tps): if ln.startswith("LM"): lm_num = int(ln.split('=')[1]) lm.append(lm_num) coords_mat = [] for j in range(i + 1, i + + lm_num): coords_mat.append(tps[j].split(' ')) coords_mat = np.array(coords_mat, dtype=float) coords_array.append(coords_mat) if ln.startswith("IMAGE"): im.append(ln.split('=')[1]) if ln.startswith("ID"): ID.append(ln.split('=')[1]) all_lm_same = all(x == lm[0] for x in lm) if all_lm_same: coords_array = np.dstack(coords_array) return {'lm': lm, 'im': im, 'id': ID, 'coords': coords_array} def check(xmin, ymin, xmax, ymax): if((xmax-xmin+1ymax)): return return import os import xml.etree.cElementTree as ET for file in os.listdir('./RightWings'): if(file[-3:]=="tps"): link = os.path.join("./RightWings", file) tps1 = readtps(link) imagename = file[:-4]+".jpg" img = cv2.imread("./data/"+imagename) root = ET.Element("annotation") folder = ET.SubElement(root, "folder").text = "images" filename = ET.SubElement(root,"filename").text =imagename path = ET.SubElement(root,"path").text = "/home/anhnh/dataset/data/"+imagename source = ET.SubElement(root,"source") ET.SubElement(source, "database").text = "unknowned" size = ET.SubElement(root, "size") ET.SubElement(size, "width").text = str(int(1024)) ET.SubElement(size, "height").text = str(int(1360)) ET.SubElement(size, "depth").text = str(int(3)) segment = ET.SubElement(root, "segment").text = str(int(0)) 41 objectt = [] cou = for i in range(15): firstcoord = tps1['coords'][i][0][0] secondcoord = tps1['coords'][i][1][0] secondcoord = img.shape[0] - secondcoord if(firstcoord>=15): xmin = int(firstcoord-15) else: xmin = int(0) if(secondcoord>=15): ymin = int(secondcoord-15) else : ymin = int(0) if(firstcoord+15