ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN TỐT NGHIỆP NGÀNH: CÔNG NGHỆ THÔNG TIN ĐỀ TÀI: XÂY DỰNG ỨNG DỤNG HỖ TRỢ TRA CỨU THỰC VẬT BẰNG HÌNH ẢNH Người hướng dẫn: TS. NINH KHÁNH DUY Sinh viên thực hiện: THÁI QUANG TIẾN Số thẻ sinh viên: 102150136 Lớp : 15T2 Đà Nẵng, 12/2019 Đ Ạ I H Ọ C Đ À N Ẵ N G T R Ư Ờ N G Đ Ạ I H Ọ C B Á C H K H O A KHOA CÔNG NGHỆ THÔNG TIN 54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP. Đà Nẵng Tel. 84. 236 .3.736.949, Fax. 84.511.842.771 - Website: itf.dut.edu.vn - E - mail: cntt@dut.udn.vn PHIẾU DUYỆT ĐỒ ÁN TỐT NGHIỆP I. Phần dành cho Sinh viên 1. Họ và tên: 2. Mã Sinh viên 3. Lớp: 4. Tên đề tài: 5. Số điện thoại: 6. E-mail 7. Họ và tên GVHD: II. Phần dành cho Hội đồng STT Nội dung đánh giá Kết luận 1. T rình bày báo cáo theo đúng mẫu qui định của Khoa 2. Không có sự sao chép nội dung báo cáo và chương trình đã có 3. Biên dịch mã nguồ n và chạy được chương trình 4. C ó kịch bản thực hiện với dữ liệu thử nghiệm 5. Kết quả t hực hiện chương trình đúng theo báo cáo 6. Có sự đóng góp, phát triển của tác giả trong đồ án Ý kiến khác: ................. ................................................... . .. .... . ...... . .. ...... . .. ...... . .. . ................. ................................................ ......................................................................................................................................................................................................... Kết luậ n: Đạt yêu cầu Phải sửa chữa lại Không đạt yêu cầu Đà Nẵng, ngày tháng năm Chủ tịch Hội đồng (Ký và ghi họ tên) Cán bộ duyệt kiểm tra (Ký và ghi họ tên) NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. ................................................................................................................................. i TÓM TẮT Tên đề tài: Xây dựng ứng dụng hỗ trợ tra cứu thực vật bằng hình ảnh Sinh viên thực hiện: Thái Quang Tiến Số thẻ SV: 102150136 Lớp: 15T2 Tóm tắt: Việt Nam là quốc gia có hệ thực vật đa dạng với hơn 11 000 loài khác nhau và con số đó không ngừng tăng lên mỗi năm thông qua việc khám phá các giống loài mới. Tuy nhiên, bởi sự phong phú đó, công tác nhận dạng thực vật bản địa mới hoặc ngoại lai gặp nhiều khó khăn khi phải đối mặt với số lượng loài quá nhiều và độ tương đồng về ngoại hình rất lớn. Nhằm hỗ trợ và giảm thiểu độ phức tạp cho công việc trên, đồ án hướng đến xây dựng một ứng dụng trên nền tảng di động sử dụng mô hình học máy Inception v4 để thực hiện nhận dạng loài thực vật dựa trên hình ảnh và đưa ra thông tin chi tiết. Ứng dụng cho phép người dùng có thể chụp, duyệt ảnh và nhận dạng loài thực vật có trong đó, tìm kiếm loài thực vật theo tên và xem mô tả chi tiết loài. Mô hình nhận dạng của ứng dụng được huấn luyện trên dữ liệu của 109 loài thực vật của Việt N am, với độ chính xác của dự đoán là 90% và độ chính xác trong top 5 là 97%. ii ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN CỘNG HÒA XÃ HÔI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Thái Quang Tiến Số thẻ sinh viên: 102150136 Lớp: 15T2 Khoa: Công Nghệ Thông Tin Ngàn h: Công Nghệ Thông Tin 1. Tên đề tài đồ án: Xây dựng ứng dụng hỗ trợ tra cứu thực vật bằng hình ảnh 2. Đề tài thuộc diện: ☐ Có ký kết thỏa thuận sở hữu trí tuệ đối với kết quả thực hiện 3. Các số liệu và dữ liệu ban đầu: Dữ liệu hình ảnh sử dụng cho xây dựng mô hình học máy được thu thập từ các trang web vncreatures.net, eol.org và Google Image Search. Dữ liệu mô tả chi tiết loài được thu thập từ trang vncreature s.net. 4. Nội dung các phần thuyết minh và tính toán: Nội dung thuyết minh gồm các phần: Cơ sở lý thuyết Triển khai giải pháp Kết quả và đánh giá Kết luận 5. Các bản vẽ, đồ thị ( ghi rõ các loại và kích thước bản vẽ ): 6. Họ tên người hướng dẫn: TS. Ninh Khánh Duy 7. Ngày giao nhiệm vụ đồ án: 05/09/2019. 8. Ngày hoàn thành đồ án: 15/12/2019. Đà Nẵng, ngày 15 tháng 12 năm 201 9 Trưởng Bộ môn …………………….. Người hướng dẫn iii LỜI NÓI ĐẦU Em xin cám ơn người hướng dẫn – TS Ninh Khánh Duy – trong thời gian qua đã định hướng và giúp đỡ em về mặt kiến thức cũng như phương pháp luận trong quá trình làm đồ án tốt nghiệp. Em cũng xin gửi lời cảm ơn đến anh Trần Xuân Mạnh – mentor tại công ty Est Rouge , người đã tạo điều kiện về thời gian và hỗ trợ về mặt kĩ thuật cho việc hoàn thành đề tài. Hơn nữa, em xin cảm ơn toàn bộ giảng viên của khoa Công Nghệ Thông Tin, trường đại học Bách Khoa Đà Nẵng, trong suốt hơn 4 năm em theo học tại trường, đã nhiệt tình giảng dạy, xây dựng nền tảng kĩ thuật vững chắc giúp em có thể thực hiện được đồ án này. Cuối cùng, mặc dù em đã rất cố gắng, nhưng luận văn này có thể vẫn không tránh khỏi sai sót. Trong trường hợp đó, em xin nhận phản hồi từ quý thầy cô và đọc giả để có thể chỉnh sửa và hoàn thiện hơn. Đà Nẵng, ngày 12 tháng 12 năm 2019 Sinh viên thực hiện Thái Quang Tiến iv CAM ĐOAN Tôi xin cam đoan rằng: Nội dung đồ án tốt nghiệp này là do chính tôi thực hiện, không sao chép từ nguồn nào khác và chưa được sử dụng để tham gia các cuộc thi, giải thưởng hay đánh giá nào. Tôi không có quyền sở hữu cá nhân đối với toàn bộ dữ liệu thu thập được từ các nguồn vncreature.net, eol.org và Google Image Search trong quá trình thực hiện đề tài. Toàn bộ dữ liệu trên chỉ được sử dụng vào mục đích nghiên cứu (là thực hiện đồ án này) ngoài ra không có bất cứ mục đích thương mại nào khác. Sinh viên thực hiện Thái Quan g Tiến v MỤC LỤC TÓM TẮT ................................................................................................ .........................i NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP .............................................................................. ii LỜI NÓI ĐẦU ............................................................................................................... iii CAM ĐOAN ...................................................................................................................iv MỤC LỤC ................................................................................................ .......................v DANH SÁCH CÁC BẢNG, HÌNH VẼ ...................................................................... viii DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT ................................ ..........................x MỞ ĐẦU ................................................................................................ .........................1 1. Đặt vấn đề ................................................................................................ ................1 2. Mục tiêu đề tài ................................................................................................ .........1 3. Phạm vi và đối tượng ................................................................ ............................... 2 4. Phương pháp tiếp cận ................................................................ .............................. 2 5. Cấu trúc đồ án ................................................................................................ ..........3 Chương 1: CƠ SỞ LÝ THUYẾT ................................................................ ..............4 1.1. Học máy (Machine learning ) ................................................................ ................4 1.2. Mạng nơ ron nhân tạo và kiến trúc Inception ................................ .......................5 1.2.1. Mạng nơ ron nhân tạo ................................................................ ....................5 1.2.2. Mạng tích chập và kiến trúc Inception ................................ ..........................6 1.3. Học chuyển tiếp (Transfer learning) ...................................................................10 1.4. Hướng tiếp cận của đồ án ...................................................................................10 1.5. Công nghệ sử dụng ............................................................................................. 10 1.5.1. Ngôn ngữ .....................................................................................................10 1.5.2. Hệ điều hành ................................................................................................ 11 1.5.3. Thu thập dữ liệu và xây dựng mô hình........................................................12 1.5.4. Cơ sở dữ liệu và webserver .........................................................................13 vi Chương 2: TRIỂN KHAI GIẢI PHÁP ....................................................................14 2.1. Tổng quan đồ án .................................................................................................14 2.1.1. Ca sử dụng ...................................................................................................14 2.1.2. Cấu trúc hệ thống .........................................................................................14 2.2. Dữ liệu ................................................................................................................15 2 .2.1. Nguồn dữ liệu .............................................................................................. 15 2.2.2. Quy trình thực hiện ......................................................................................17 2.2.3. Thống kê dữ liệu ..........................................................................................18 2.3. Mô hình nhận dạng ............................................................................................. 18 2.3.1. Tiền xử lý dữ liệu ........................................................................................18 2.3.2. Huấn luyện ...................................................................................................20 2.3.3. Lựa chọn mô hình ........................................................................................20 2.3.4. Triển khai mô hình với Tensorflow Serving ...............................................21 2.4. Cơ sở dữ liệu .......................................................................................................21 2.4.1. Bảng Model .................................................................................................22 2.4.2. Bảng Label ...................................................................................................22 2.4.3. Bảng Species ............................................................................................... 23 2.4.4. Bảng Details ................................................................................................ 23 2.4.5. Bảng Image ..................................................................................................23 2.5. Webserver ...........................................................................................................24 2.5.1. Predict API ..................................................................................................24 2.5.2. Search API ...................................................................................................25 2.5.3. Detail API ....................................................................................................25 2.6. Ứng dụng di động ............................................................................................... 26 2.7 Triển khai ứng dụng ............................................................................................ 27 Chương 3: KẾT QUẢ VÀ ĐÁNH GIÁ ..................................................................28 3.1. Module nhận dạng .............................................................................................. 28 3.1.1. Khả năng phân loại ......................................................................................28 vii 3.1.2. Tốc độ xử lý .................................................................................................28 3.2. Ứng dụng ............................................................................................................28 KẾT LUẬN ...................................................................................................................31 TÀI LIỆU THAM KHẢO ............................................................................................. 32 viii DANH SÁCH CÁC BẢNG, HÌNH VẼ Bảng 2.1 Thống kê dữ liệu cho từng tập .......................................................................18 Bảng 2.2 Danh sách các tham số huấn luyện ban đầu ...................................................20 Bảng 2.3 Kết quả đánh giá mô hình ..............................................................................20 Bảng 2.4 Bảng Model ....................................................................................................22 Bảng 2.5 Bảng Label .....................................................................................................22 Bảng 2.6 Bảng Species ..................................................................................................23 Bảng 2.7 Bảng Details ...................................................................................................23 Bảng 2.8 Bảng Image ....................................................................................................23 Bảng 2.9 Chi tiết Predict API ........................................................................................24 Bảng 2.10 Chi tiết Search API ......................................................................................25 Bảng 2.11 Chi tiết Detail API ........................................................................................25 Hình 1.1 Quy trình tổng quát của mô hình học máy ................................ .......................5 Hình 1.2 Minh họa một nơ ron ................................................................ ........................6 Hình 1.3 Cấu trúc minh họa của mạng nơ ron nhân tạo ................................ ..................6 Hình 1.4 Ví dụ về phép tính chập trong mạng nơ ron tích chập ................................ .....7 Hình 1.5 Minh họa cửa sổ trượt (kernel) ................................................................ .........7 Hình 1.6 Cấu trúc minh họa của một mạng nơ ron tích chập ................................ ..........8 Hình 1.7 Cấu trúc của một “inception cell” ................................................................ ....9 Hình 1.8 Mô tả mô hình Inception đầu tiên ................................................................ .....9 Hình 1.9 Cấu trúc giản lược của mô hình Inception v4 ................................ ..................9 Hình 2.1 Sơ đồ ca sử dụng ............................................................................................ 14 Hình 2.2 Sơ đồ cấu trúc hệ thống ..................................................................................15 Hình 2.3 Trang thông tin chi tiết loài trên vncreatures.net ............................................16 Hình 2.4 Dữ liệu hình ảnh trên trang eol.org ................................................................ 16 Hình 2.5 Kết quả tìm kiếm hình ảnh của Google khi nhập tên khoa học của loài ........17 Hình 2.6 Quy trình xây dựng dữ liệu .............................................................................18 Hình 2.7 Quy trình t iền xử lý dữ liệu ............................................................................19 Hình 2.8 Minh họa module nhận dạng ..........................................................................21 Hình 2.9 Sơ đồ thực thể .................................................................................................21 ix Hình 2.10 Sơ đồ luồng ứng dụng ..................................................................................26 Hì nh 3.1 Ảnh demo màn hình bắt đầu và màn hình kết quả nhận dạng .......................29 Hình 3.2 Ảnh demo màn hình kết quả tìm kiếm và màn hình chi tiết l oài ...................30 x DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT API: Application Programming Interface REST API: Representational State Transfer Application Programming Interface EOL: Encyclopedia of Life – eol.org VNC: Vncreatures.net ANN: Artificial Neural Network CNN: Convolutional Neural Network CPU: Central Processing Unit GPU: Graphic Processing Unit RAM: Random Access Memory HDD: Hard Disk Drive RPM: Round per Minute Xây dựng ứng dụng hỗ trợ tra cứu thực vật bằng hình ảnh Sinh viên thực hiện: Thái Quang Tiến Giảng viên hướng dẫn: TS. Ninh Khánh Duy 1 MỞ ĐẦU 1. Đặ t v ấn đề Hằng năm ở Việt Nam, trong những khu bảo tồn thiên nhiên quốc gia, nhiều loài thực vật mới được các chuyên gia phát hiện và đặt tên. Với sự đa dạng sinh học của hơn 11000 loài thực vật bậc cao và hàng nghìn loài thực vật bậc thấp, tảo và nấm [1] , việc xác định và nhận dạng một giống cây trên thực tế yêu cầu người khảo sát phải có một lượng kiến thức đầy đủ và chính xác về từng loài thực vật bản địa. Các loài thực vật có thể có sự sai khác về đặc điểm ngoại hình rất ít, và do đó, thông thường công việc này chỉ có thể được thực hiện bởi các chuyên gia đầu ngành của Việt Nam. Tương tự, sau khi một loài mới được phát hiện, việc đánh dấ u và xác định môi trường sinh sống cũng gặp nhiều khó khăn. Ngoài việc tìm kiếm những loài thực vật chưa được ghi danh, còn có những công tác khác như bảo tồn thực vật, nhận diện và theo dõi thực vật ngoại lai cũng yêu cầu người thực hiện có một sự am hiểu tường tận và nhận định chính xác . Về mặt khối lượng công việc, các chuyên viên phải đi khảo sát thực tế trên một vùng rộng lớn, nhận dạng, đánh dấu và khoanh vùng để theo dõi sự phát triển của các loài thực vật. 2. M ục tiêu đề tài Với sự tiến bộ của khoa học và công nghệ, đặc biệt là lĩnh vực trí tuệ nhân tạo, các hệ thống máy tính đã có khả năng phát hiện, nhận dạng các thực thể phức tạp, có bề ngoài gần giống nhau với độ chính xác đáng kể. Khả năng phán đoán của các mô hình học máy này, tuy chưa thể áp dụng cho mọi lĩnh vực trong cuộc sống, nhưng có thể cho kết quả tương đương với con người trong một phạm vi hẹp nào đó. Với những lý do như trên, đồ án hướng đến xây dựng một hệ thống ứng dụng công nghệ trí tuệ nhân tạo hỗ trợ tra cứu loài thực vật bằng hình ảnh. Thông qua ứng dụng này, người sử dụng có thể tìm kiếm nhanh chóng một loài cây khi đang trong quá trình khảo sát, giúp rút ngắn thời lượng và giảm thiểu sai sót trong công việc. Ứng dụng cho phép người dùng: Chụp, duyệt ảnh thực vật và nhận dạng xem đó là loài thực vật gì Tìm kiếm loài thực vật theo tên Xem mô tả chi tiết loài thực vật Để làm được điều trên, đồ án phải hoàn thành các mục tiêu như sau: Xây dựng ứng dụng hỗ trợ tra cứu thực vật bằng hình ảnh Sinh viên thực hiện: Thái Quang Tiến Giảng viên hướng dẫn: TS. Ninh Khánh Duy 2 Thu thập và xây dựng bộ dữ liệu Xây dựng mô hình nhận dạng thực vật bằng hình ảnh Thiết kế cơ sở dữ liệu Xây dựng webserver Xây dựng ứng dụng di động 3. Ph ạm vi và đối tượ ng Đồ án này được thực hiện trên dữ liệu của 109 loài thực vật Việt Nam, bao gồm hình ảnh, danh pháp khoa học và thông tin chi tiết về đặc điểm và phân bố. Đối tượng sử dụng hệ thống được nhắm đến là các chuyên viên, người đã có những kiến thức cơ bản về thực vật học cần tra cứu nhanh chóng một loài thực vật hoặc các loài tương tự thông qua ảnh chụp. 4. Phương pháp tiế p c ậ n Đồ án này xây dựng một mô hình nhận dạng loài thực vật dựa trên kiến trúc mạng nơ ron tích chập Inception v4. Mô hình đầu tiên được huấn luyện trên bộ dữ liệu ImageNet, tinh chỉnh trên bộ dữ liệu PlantCLEF2017 [2] [3] và cuối cùng được tinh chỉnh lần cuối trên dữ liệu 109 loài của Việt Nam. Điểm mạnh của Inception v4 là nó có khả năng đưa ra dự đoán với một lượng lớn lớp, và với việc được huấn luyện qua các bộ dữ liệu trên, thời gian huấn luyện được rút ngắn đáng kể và mô hình nhanh chóng tìm được cách đặc trưng hiệu quả cho phân loại. Tuy nhiên, điểm yếu của mô hình trên là cấu trúc phức tạp với số lượng tham số lớn, thời gian dự đoán lâu, khó có thể đáp ứng được yêu cầu về thời gian phản hồi trong các hệ thống đa người dùng. Ngoài ra, mô hình được sử dụng dựa trên các giả định: Hình ảnh có xuất hiện loài thực vật Loài thực vật xuất hiện có trong bộ dữ liệu huấn luyện Vì vậy, mô hình không thể phân biệt được ảnh có chứa loài thực vật hay loài trong ảnh có phải là một loài mới hay không Sau khi đã có mô hình nhận dạng, ứng dụng di động được xây dựng nhằm thực hiện các tác vụ nhận dạng, và tra cứu thông tin. Xây dựng ứng dụng hỗ trợ tra cứu thực vật bằng hình ảnh Sinh viên thực hiện: Thái Quang Tiến Giảng viên hướng dẫn: TS. Ninh Khánh Duy 3 5. C ấu trúc đồ án Đồ án được trình bày theo thứ tự các phần như sau: Cơ sở lý thuyết o Tổng quan về học máy o Mạng nơ ron nhân tạo và kiến trúc Inception o Học chuyển tiếp o Hướng tiếp cận của đồ án o Công nghệ sử dụng Triển khai giải pháp o Tổng quan đồ án o Dữ liệu o Mô hình nhận dạng o Cơ sở dữ liệu o Webserver o Ứng dụng Android o Triển khai ứng dụng Kết quả và đánh giá Kết luận Xây dựng ứng dụng hỗ trợ tra cứu thực vật bằng hình ảnh Sinh viên thực hiện: Thái Quang Tiến Giảng viên hướng dẫn: TS. Ninh Khánh Duy 4 Chương 1: CƠ SỞ LÝ THUY Ế T 1.1. H ọ c máy (Machine learning) Học máy (Machine learning) [3] là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tự động từ dữ liệu để giải quyết những vấn đề cụ thể. Ví dụ như các máy có thể "học" cách phân loại thư điện tử xem có phải thư rác (spam) hay không và tự động xếp thư vào thư mục tương ứng. Học máy rất gần với suy diễn thống kê (statistical inference) tuy có khác nhau về thuật ngữ. Học máy có liên quan lớn đến thống kê, vì cả hai lĩnh vực đều nghiên cứu việc phân tích dữ liệu, nhưng khác với thống kê, học máy tập trung vào sự phức tạp của các giải thuật trong việc thực thi tính toán. Nhiều bài toán suy luận được xếp vào loại bài toán NP- khó, vì thế một phần của học máy là nghiên cứu sự phát triển các giải thuật suy lu ận xấp xỉ mà máy tính có thể xử lý được. Học máy có hiện nay được áp dụng rộng rãi bao gồm máy truy tìm dữ liệu, chẩn đoán y khoa, phát hiện thẻ tín dụng giả, phân tích thị trường chứng khoán, phân loại các chuỗi DNA, nhận dạng tiếng nói và chữ viết, dịch tự động, chơi trò chơi và cử động rô - bốt (robot locomotion). Các thuật toán học máy phổ biến gồm: Học có giám sát (Supervised learning) - T huật toán tạo ra một hàm ánh xạ dữ liệu vào tới kết quả mong muốn. Một phát biểu chuẩn về một việc học có giám sát là bài toán phân loại: chương trình cần học (cách xấp xỉ biểu hiện của) một hàm ánh xạ một vector [
Trang 1
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN
Trang 2Đ Ạ I H Ọ C Đ À N Ẵ N G T R Ư Ờ N G Đ Ạ I H Ọ C B Á C H K H O A
KHOA CÔNG NGHỆ THÔNG TIN
54, Nguyễn Lương Bằng, Hoà Khánh, Liên Chiểu, TP Đà Nẵng
Tel 84.236.3.736.949, Fax 84.511.842.771 - Website: itf.dut.edu.vn - E-mail: cntt@dut.udn.vn
PHIẾU DUYỆT ĐỒ ÁN TỐT NGHIỆP
I Phần dành cho Sinh viên
1 Họ và tên: 2 Mã Sinh viên 3 Lớp:
4 Tên đề tài:
5 Số điện thoại: 6 E-mail
7 Họ và tên GVHD:
II Phần dành cho Hội đồng
STT Nội dung đánh giá Kết luận
1 Trình bày báo cáo theo đúng mẫu qui định của Khoa
2 Không có sự sao chép nội dung báo cáo và chương trình đã có
3 Biên dịch mã nguồn và chạy được chương trình
4 Có kịch bản thực hiện với dữ liệu thử nghiệm
5 Kết quả thực hiện chương trình đúng theo báo cáo
6 Có sự đóng góp, phát triển của tác giả trong đồ án
Trang 3
NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN
Trang 4
NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN
Trang 5
i
TÓM TẮT
Tên đề tài: Xây dựng ứng dụng hỗ trợ tra cứu thực vật bằng hình ảnh
Sinh viên thực hiện: Thái Quang Tiến
Tóm tắt:
Việt Nam là quốc gia có hệ thực vật đa dạng với hơn 11000 loài khác nhau và con số đó không ngừng tăng lên mỗi năm thông qua việc khám phá các giống loài mới Tuy nhiên, bởi sự phong phú đó, công tác nhận dạng thực vật bản địa mới hoặc ngoại lai gặp nhiều khó khăn khi phải đối mặt với số lượng loài quá nhiều và độ tương đồng
về ngoại hình rất lớn Nhằm hỗ trợ và giảm thiểu độ phức tạp cho công việc trên, đồ án hướng đến xây dựng một ứng dụng trên nền tảng di động sử dụng mô hình học máy Inception v4 để thực hiện nhận dạng loài thực vật dựa trên hình ảnh và đưa ra thông tin chi tiết Ứng dụng cho phép người dùng có thể chụp, duyệt ảnh và nhận dạng loài thực vật có trong đó, tìm kiếm loài thực vật theo tên và xem mô tả chi tiết loài Mô hình nhận dạng của ứng dụng được huấn luyện trên dữ liệu của 109 loài thực vật của Việt Nam, với độ chính xác của dự đoán là 90% và độ chính xác trong top 5 là 97%
Trang 6ii
ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HÔI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1 Tên đề tài đồ án:
Xây dựng ứng dụng hỗ trợ tra cứu thực vật bằng hình ảnh
2 Đề tài thuộc diện: ☐ Có ký kết thỏa thuận sở hữu trí tuệ đối với kết quả thực hiện
3 Các số liệu và dữ liệu ban đầu:
Dữ liệu hình ảnh sử dụng cho xây dựng mô hình học máy được thu thập từ các trang web vncreatures.net, eol.org và Google Image Search
Dữ liệu mô tả chi tiết loài được thu thập từ trang vncreatures.net
4 Nội dung các phần thuyết minh và tính toán:
Nội dung thuyết minh gồm các phần:
Cơ sở lý thuyết
Triển khai giải pháp
Kết quả và đánh giá
Kết luận
5 Các bản vẽ, đồ thị ( ghi rõ các loại và kích thước bản vẽ ):
6 Họ tên người hướng dẫn: TS Ninh Khánh Duy
7 Ngày giao nhiệm vụ đồ án: 05/09/2019
8 Ngày hoàn thành đồ án: 15/12/2019
Đà Nẵng, ngày 15 tháng 12 năm 2019
Trang 7iii
LỜI NÓI ĐẦU
Em xin cám ơn người hướng dẫn – TS Ninh Khánh Duy – trong thời gian qua đã định hướng và giúp đỡ em về mặt kiến thức cũng như phương pháp luận trong quá trình làm đồ án tốt nghiệp
Em cũng xin gửi lời cảm ơn đến anh Trần Xuân Mạnh – mentor tại công ty Est Rouge, người đã tạo điều kiện về thời gian và hỗ trợ về mặt kĩ thuật cho việc hoàn thành
đề tài
Hơn nữa, em xin cảm ơn toàn bộ giảng viên của khoa Công Nghệ Thông Tin, trường đại học Bách Khoa Đà Nẵng, trong suốt hơn 4 năm em theo học tại trường, đã nhiệt tình giảng dạy, xây dựng nền tảng kĩ thuật vững chắc giúp em có thể thực hiện được đồ án này
Cuối cùng, mặc dù em đã rất cố gắng, nhưng luận văn này có thể vẫn không tránh khỏi sai sót Trong trường hợp đó, em xin nhận phản hồi từ quý thầy cô và đọc giả để
có thể chỉnh sửa và hoàn thiện hơn
Đà Nẵng, ngày 12 tháng 12 năm 2019
Sinh viên thực hiện Thái Quang Tiến
Trang 8iv
CAM ĐOAN
Tôi xin cam đoan rằng:
Nội dung đồ án tốt nghiệp này là do chính tôi thực hiện, không sao chép từ nguồn nào khác và chưa được sử dụng để tham gia các cuộc thi, giải thưởng hay đánh giá nào
Tôi không có quyền sở hữu cá nhân đối với toàn bộ dữ liệu thu thập được từ các nguồn vncreature.net, eol.org và Google Image Search trong quá trình thực hiện
đề tài Toàn bộ dữ liệu trên chỉ được sử dụng vào mục đích nghiên cứu (là thực hiện đồ án này) ngoài ra không có bất cứ mục đích thương mại nào khác
Sinh viên thực hiện Thái Quang Tiến
Trang 9v
MỤC LỤC
TÓM TẮT i
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP ii
LỜI NÓI ĐẦU iii
CAM ĐOAN iv
MỤC LỤC v
DANH SÁCH CÁC BẢNG, HÌNH VẼ viii
DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT x
MỞ ĐẦU 1
1 Đặt vấn đề 1
2 Mục tiêu đề tài 1
3 Phạm vi và đối tượng 2
4 Phương pháp tiếp cận 2
5 Cấu trúc đồ án 3
Chương 1: CƠ SỞ LÝ THUYẾT 4
1.1 Học máy (Machine learning) 4
1.2 Mạng nơ ron nhân tạo và kiến trúc Inception 5
1.2.1 Mạng nơ ron nhân tạo 5
1.2.2 Mạng tích chập và kiến trúc Inception 6
1.3 Học chuyển tiếp (Transfer learning) 10
1.4 Hướng tiếp cận của đồ án 10
1.5 Công nghệ sử dụng 10
1.5.1 Ngôn ngữ 10
1.5.2 Hệ điều hành 11
1.5.3 Thu thập dữ liệu và xây dựng mô hình 12
1.5.4 Cơ sở dữ liệu và webserver 13
Trang 10vi
Chương 2: TRIỂN KHAI GIẢI PHÁP 14
2.1 Tổng quan đồ án 14
2.1.1 Ca sử dụng 14
2.1.2 Cấu trúc hệ thống 14
2.2 Dữ liệu 15
2.2.1 Nguồn dữ liệu 15
2.2.2 Quy trình thực hiện 17
2.2.3 Thống kê dữ liệu 18
2.3 Mô hình nhận dạng 18
2.3.1 Tiền xử lý dữ liệu 18
2.3.2 Huấn luyện 20
2.3.3 Lựa chọn mô hình 20
2.3.4 Triển khai mô hình với Tensorflow Serving 21
2.4 Cơ sở dữ liệu 21
2.4.1 Bảng Model 22
2.4.2 Bảng Label 22
2.4.3 Bảng Species 23
2.4.4 Bảng Details 23
2.4.5 Bảng Image 23
2.5 Webserver 24
2.5.1 Predict API 24
2.5.2 Search API 25
2.5.3 Detail API 25
2.6 Ứng dụng di động 26
2.7 Triển khai ứng dụng 27
Chương 3: KẾT QUẢ VÀ ĐÁNH GIÁ 28
3.1 Module nhận dạng 28
3.1.1 Khả năng phân loại 28
Trang 11vii
3.1.2 Tốc độ xử lý 28
3.2 Ứng dụng 28
KẾT LUẬN 31
TÀI LIỆU THAM KHẢO 32
Trang 12
viii
DANH SÁCH CÁC BẢNG, HÌNH VẼ
Bảng 2.1 Thống kê dữ liệu cho từng tập 18
Bảng 2.2 Danh sách các tham số huấn luyện ban đầu 20
Bảng 2.3 Kết quả đánh giá mô hình 20
Bảng 2.4 Bảng Model 22
Bảng 2.5 Bảng Label 22
Bảng 2.6 Bảng Species 23
Bảng 2.7 Bảng Details 23
Bảng 2.8 Bảng Image 23
Bảng 2.9 Chi tiết Predict API 24
Bảng 2.10 Chi tiết Search API 25
Bảng 2.11 Chi tiết Detail API 25
Hình 1.1 Quy trình tổng quát của mô hình học máy 5
Hình 1.2 Minh họa một nơ ron 6
Hình 1.3 Cấu trúc minh họa của mạng nơ ron nhân tạo 6
Hình 1.4 Ví dụ về phép tính chập trong mạng nơ ron tích chập 7
Hình 1.5 Minh họa cửa sổ trượt (kernel) 7
Hình 1.6 Cấu trúc minh họa của một mạng nơ ron tích chập 8
Hình 1.7 Cấu trúc của một “inception cell” 9
Hình 1.8 Mô tả mô hình Inception đầu tiên 9
Hình 1.9 Cấu trúc giản lược của mô hình Inception v4 9
Hình 2.1 Sơ đồ ca sử dụng 14
Hình 2.2 Sơ đồ cấu trúc hệ thống 15
Hình 2.3 Trang thông tin chi tiết loài trên vncreatures.net 16
Hình 2.4 Dữ liệu hình ảnh trên trang eol.org 16
Hình 2.5 Kết quả tìm kiếm hình ảnh của Google khi nhập tên khoa học của loài 17
Hình 2.6 Quy trình xây dựng dữ liệu 18
Hình 2.7 Quy trình tiền xử lý dữ liệu 19
Hình 2.8 Minh họa module nhận dạng 21
Hình 2.9 Sơ đồ thực thể 21
Trang 13ix
Hình 2.10 Sơ đồ luồng ứng dụng 26Hình 3.1 Ảnh demo màn hình bắt đầu và màn hình kết quả nhận dạng 29Hình 3.2 Ảnh demo màn hình kết quả tìm kiếm và màn hình chi tiết loài 30
Trang 14x
DANH SÁCH CÁC KÝ HIỆU, CHỮ VIẾT TẮT
API: Application Programming Interface
REST API: Representational State Transfer Application Programming Interface EOL: Encyclopedia of Life – eol.org
VNC: Vncreatures.net
ANN: Artificial Neural Network
CNN: Convolutional Neural Network
CPU: Central Processing Unit
GPU: Graphic Processing Unit
RAM: Random Access Memory
HDD: Hard Disk Drive
RPM: Round per Minute
Trang 15Xây dựng ứng dụng hỗ trợ tra cứu thực vật bằng hình ảnh
Sinh viên thực hiện: Thái Quang Tiến Giảng viên hướng dẫn: TS Ninh Khánh Duy 1
Ngoài việc tìm kiếm những loài thực vật chưa được ghi danh, còn có những công tác khác như bảo tồn thực vật, nhận diện và theo dõi thực vật ngoại lai cũng yêu cầu người thực hiện có một sự am hiểu tường tận và nhận định chính xác Về mặt khối lượng công việc, các chuyên viên phải đi khảo sát thực tế trên một vùng rộng lớn, nhận dạng, đánh dấu và khoanh vùng để theo dõi sự phát triển của các loài thực vật
2 Mục tiêu đề tài
Với sự tiến bộ của khoa học và công nghệ, đặc biệt là lĩnh vực trí tuệ nhân tạo, các hệ thống máy tính đã có khả năng phát hiện, nhận dạng các thực thể phức tạp, có bề ngoài gần giống nhau với độ chính xác đáng kể Khả năng phán đoán của các mô hình học máy này, tuy chưa thể áp dụng cho mọi lĩnh vực trong cuộc sống, nhưng có thể cho kết quả tương đương với con người trong một phạm vi hẹp nào đó Với những lý do như trên, đồ án hướng đến xây dựng một hệ thống ứng dụng công nghệ trí tuệ nhân tạo hỗ trợ tra cứu loài thực vật bằng hình ảnh Thông qua ứng dụng này, người sử dụng có thể tìm kiếm nhanh chóng một loài cây khi đang trong quá trình khảo sát, giúp rút ngắn thời lượng và giảm thiểu sai sót trong công việc
Ứng dụng cho phép người dùng:
Để làm được điều trên, đồ án phải hoàn thành các mục tiêu như sau:
Trang 16Xây dựng ứng dụng hỗ trợ tra cứu thực vật bằng hình ảnh
Sinh viên thực hiện: Thái Quang Tiến Giảng viên hướng dẫn: TS Ninh Khánh Duy 2
4 Phương pháp tiếp cận
Đồ án này xây dựng một mô hình nhận dạng loài thực vật dựa trên kiến trúc mạng
nơ ron tích chập Inception v4 Mô hình đầu tiên được huấn luyện trên bộ dữ liệu ImageNet, tinh chỉnh trên bộ dữ liệu PlantCLEF2017 [2] [3] và cuối cùng được tinh chỉnh lần cuối trên dữ liệu 109 loài của Việt Nam
Điểm mạnh của Inception v4 là nó có khả năng đưa ra dự đoán với một lượng lớn lớp, và với việc được huấn luyện qua các bộ dữ liệu trên, thời gian huấn luyện được rút ngắn đáng kể và mô hình nhanh chóng tìm được cách đặc trưng hiệu quả cho phân loại
Tuy nhiên, điểm yếu của mô hình trên là cấu trúc phức tạp với số lượng tham số lớn, thời gian dự đoán lâu, khó có thể đáp ứng được yêu cầu về thời gian phản hồi trong các hệ thống đa người dùng Ngoài ra, mô hình được sử dụng dựa trên các giả định:
Hình ảnh có xuất hiện loài thực vật
Loài thực vật xuất hiện có trong bộ dữ liệu huấn luyện
Vì vậy, mô hình không thể phân biệt được ảnh có chứa loài thực vật hay loài trong ảnh có phải là một loài mới hay không
Sau khi đã có mô hình nhận dạng, ứng dụng di động được xây dựng nhằm thực hiện các tác vụ nhận dạng, và tra cứu thông tin
Trang 17Xây dựng ứng dụng hỗ trợ tra cứu thực vật bằng hình ảnh
Sinh viên thực hiện: Thái Quang Tiến Giảng viên hướng dẫn: TS Ninh Khánh Duy 3
Trang 18Xây dựng ứng dụng hỗ trợ tra cứu thực vật bằng hình ảnh
Sinh viên thực hiện: Thái Quang Tiến Giảng viên hướng dẫn: TS Ninh Khánh Duy 4
Chương 1: CƠ SỞ LÝ THUYẾT
1.1 Học máy (Machine learning)
Học máy (Machine learning) [3] là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tự động từ
dữ liệu để giải quyết những vấn đề cụ thể Ví dụ như các máy có thể "học" cách phân loại thư điện tử xem có phải thư rác (spam) hay không và tự động xếp thư vào thư mục tương ứng Học máy rất gần với suy diễn thống kê (statistical inference) tuy có khác nhau về thuật ngữ
Học máy có liên quan lớn đến thống kê, vì cả hai lĩnh vực đều nghiên cứu việc phân tích dữ liệu, nhưng khác với thống kê, học máy tập trung vào sự phức tạp của các giải thuật trong việc thực thi tính toán Nhiều bài toán suy luận được xếp vào loại bài toán NP-khó, vì thế một phần của học máy là nghiên cứu sự phát triển các giải thuật suy luận xấp xỉ mà máy tính có thể xử lý được
Học máy có hiện nay được áp dụng rộng rãi bao gồm máy truy tìm dữ liệu, chẩn đoán y khoa, phát hiện thẻ tín dụng giả, phân tích thị trường chứng khoán, phân loại các chuỗi DNA, nhận dạng tiếng nói và chữ viết, dịch tự động, chơi trò chơi và cử động rô-bốt (robot locomotion)
Các thuật toán học máy phổ biến gồm:
dữ liệu vào tới kết quả mong muốn Một phát biểu chuẩn về một việc học có giám sát là bài toán phân loại: chương trình cần học (cách xấp xỉ biểu hiện của) một hàm ánh xạ một vector [𝑋1, 𝑋2, … , 𝑋𝑛] tới một vài lớp bằng cách xem xét một số mẫu dữ liệu - kết quả của hàm đó;
liệu, không có sẵn các ví dụ đã được gắn nhãn
Trang 19Xây dựng ứng dụng hỗ trợ tra cứu thực vật bằng hình ảnh
Sinh viên thực hiện: Thái Quang Tiến Giảng viên hướng dẫn: TS Ninh Khánh Duy 5
Hình 1.1 Quy trình tổng quát của mô hình học máy
1.2 Mạng nơ ron nhân tạo và kiến trúc Inception
1.2.1 Mạng nơ ron nhân tạo
Mạng neural nhân tạo [4] hay thường gọi ngắn gọn là mạng neural (Artificial Neural Network - ANN hay Neural Network) là một mô hình toán học hay mô hình tính toán được xây dựng dựa trên các mạng neural sinh học Nó gồm có một nhóm các neural nhân tạo (nút) nối với nhau, và xử lý thông tin bằng cách truyền theo các kết nối và tính giá trị mới tại các nút (cách tiếp cận connectionism đối với tính toán) Trong nhiều trường hợp, mạng neural nhân tạo là một hệ thống thích ứng (adaptive system) tự thay đổi cấu trúc của mình dựa trên các thông tin bên ngoài hay bên trong chảy qua mạng trong quá trình học
Trong thực tế sử dụng, nhiều mạng neural là các công cụ mô hình hóa dữ liệu thống kê phi tuyến Chúng có thể được dùng để mô hình hóa các mối quan hệ phức tạp giữa dữ liệu vào và kết quả hoặc để tìm kiếm các dạng/mẫu trong dữ liệu
Một nơ ron điển hình trong mạng nơ ron nhân tạo giống như một hàm số 𝑦 =𝑓(𝑋), nhận các giá trị đầu vào [𝑋1, 𝑋2, … , 𝑋𝑛], thực hiện tính toán và cho ra kết quả 𝑦
Trang 20Xây dựng ứng dụng hỗ trợ tra cứu thực vật bằng hình ảnh
Sinh viên thực hiện: Thái Quang Tiến Giảng viên hướng dẫn: TS Ninh Khánh Duy 6
Hình 1.2 Minh họa một nơ ron
Một mạng nơ ron nhân tạo gồm các tầng nơ ron Có ba loại tầng nơ ron
của lớp ẩn tiếp theo;
của mạng Phải có ít nhất một tầng ẩn trong mạng nơ ron nhân tạo Những mạng có nhiều hơn một tầng ẩn được gọi là mạng nơ ron sâu (Deep neural network)
Hình 1.3 Cấu trúc minh họa của mạng nơ ron nhân tạo
1.2.2 Mạng tích chập và kiến trúc Inception
Convolutional Neural Network (CNN – Mạng nơ-ron tích chập) [4] là một trong những mô hình Deep Learning tiên tiến giúp xây dựng được những hệ thống thông minh với độ chính xác cao như hiện nay như hệ thống xử lý ảnh lớn như Facebook, Google hay Amazon đã đưa vào sản phẩm của mình những chức năng thông minh như nhận diện khuôn mặt người dùng, phát triển xe hơi tự lái hay drone giao hàng tự động CNN được sử dụng nhiều trong các bài toán nhận dạng các object trong ảnh
Trang 21Xây dựng ứng dụng hỗ trợ tra cứu thực vật bằng hình ảnh
Sinh viên thực hiện: Thái Quang Tiến Giảng viên hướng dẫn: TS Ninh Khánh Duy 7
Convolution là một cửa sổ trượt (Sliding Windows) trên một ma trận như mô tả hình dưới:
Hình 1.4 Ví dụ về phép tính chập trong mạng nơ ron tích chập
Các convolutional layer có các parameter (kernel) đã được học để tự điều chỉnh lấy ra những thông tin chính xác nhất mà không cần chọn các feature Trong hình ảnh
ví dụ trên, ma trận bên trái là một hình ảnh trắng đen được số hóa Ma trận có kích thước 5x5 và mỗi điểm ảnh có giá trị 1 hoặc 0 là giao điểm của dòng và cột Convolution hay tích chập là nhân từng phần tử trong ma trận 3
Sliding Window hay còn gọi là kernel, filter hoặc feature detect là một ma trận
có kích thước nhỏ như trong ví dụ trên là 3x3 Convolution hay tích chập là nhân từng phần tử bên trong ma trận 3x3 với ma trận bên trái Kết quả được một ma trận gọi là Convolved feature được sinh ra từ việc nhận ma trận Filter với ma trận ảnh 5x5 bên trái
Hình 1.5 Minh họa cửa sổ trượt (kernel)
Trang 22Xây dựng ứng dụng hỗ trợ tra cứu thực vật bằng hình ảnh
Sinh viên thực hiện: Thái Quang Tiến Giảng viên hướng dẫn: TS Ninh Khánh Duy 8
Mạng CNN là một tập hợp các lớp Convolution chồng lên nhau và sử dụng các hàm nonlinear activation như ReLU và tanh để kích hoạt các trọng số trong các node Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo Trong mô hình mạng truyền ngược (feedforward neural network) thì mỗi neural đầu vào (input node) cho mỗi neural đầu ra trong các lớp tiếp theo Mô hình này gọi là mạng kết nối đầy đủ (fully connected layer) hay mạng toàn vẹn (affine layer) Còn trong mô hình CNNs thì ngược lại Các layer liên kết được với nhau thông qua cơ chế convolution Layer tiếp theo là kết quả convolution từ layer trước đó, nhờ vậy mà ta có được các kết nối cục bộ Như vậy mỗi neuron ở lớp kế tiếp sinh ra từ kết quả của filter áp đặt lên một vùng ảnh cục bộ của neuron trước đó
Hình 1.6 Cấu trúc minh họa của một mạng nơ ron tích chập
Inception [5] là một mô hình mạng tích chập được công bố bởi Google Mạng gồm các đơn vị gọi là “inception cell” - thực hiện các phép tính chập khác nhau theo nhiều nhánh rồi tổng hợp lại Các “inception cell” này được ghép lại với nhau và với một số cell hoặc layer khác để tạo thành mạng cuối cùng
Trang 23Xây dựng ứng dụng hỗ trợ tra cứu thực vật bằng hình ảnh
Sinh viên thực hiện: Thái Quang Tiến Giảng viên hướng dẫn: TS Ninh Khánh Duy 9
Hình 1.7 Cấu trúc của một “inception cell”
Dưới đây là kiến trúc mạng Inception đầu tiên:
Hình 1.8 Mô tả mô hình Inception đầu tiên
Module nhận dạng trong đồ án này sử dụng mô hình Inception v4 [6] – được Google đưa ra vào năm 2016 Cấu trúc của mô hình được mô tả như sau:
Hình 1.9 Cấu trúc giản lược của mô hình Inception v4