TRƯỜNG ĐẠI HỌC DUY TÂN KHOA ĐIỆN ĐIỆN TỬ NGUYỄN ĐÌNH ĐỨC ỨNG DỤNG MACHINE LEARNING PHÂN TÍCH ĐỘ CHÍN CÀ CHUA KHOÁ LUẬN KĨ SƯ CÔNG NGHỆ KỸ THUẬT ĐIỆN – ĐIỆN TỬ Đà Nẵng, 2022 ĐATN Ứng dụng Machine Learn. MỤC LỤC MỞ ĐẦU........................................................................................................................1 1. Lý do chọn đề tài....................................................................................................2 2. Mục đích của đề tài................................................................................................2 3. Đối tượng và phạm vi nghiên cứu :......................................................................3 4. Phương pháp nghiên cứu :....................................................................................3 5. Nội dung nghiên cứu : ...........................................................................................3 CHƯƠNG I. TỔNG QUAN LÝ THUYẾT ................................................................4 1. Xử lý ảnh và các vấn đề cơ bản ............................................................................4 1.1 Xử lý ảnh là gì :...................................................................................................4 1.2 Định nghĩa về xử lý ảnh .....................................................................................5 1.3 Các bước chính trong xử lý ảnh số ...................................................................6 1.4 Giới thiệu về không gian màu ...........................................................................7 1.4.1 Cải thiện ảnh ..............................................................................................10 1.4.2 Giản ảnh ( Dialtion )..................................................................................10 1.4.3 Co ảnh ( Erosion )......................................................................................13 1.4.4 Lọc màu. .....................................................................................................14 1.5 Ứng dụng của Xử Lý Ảnh : .............................................................................15 1.6 Tổng quan về trí tuệ nhân tạo. ........................................................................16 1.6.1 Machine Learning......................................................................................16 1.6.2 Feature Extraction ( trích xuất đặc trưng ). ...........................................18 1.6.3 Neural Network ( mạng thần kinh nhân tạo ).........................................20 1.7 Sơ lược lý thuyết về Android Studio...............................................................22 CHƯƠNG II. QUÁ TRÌNH THỰC HIỆN...............................................................23 2. Tổng quan về bài toán phân tích độ chín của cà chua. ....................................23 2.1 Tính cấp thiết của đề tài...................................................................................23 2.2 Xử lý ảnh và OpenCV. .....................................................................................23 2.3 Hướng giải quyết. .............................................................................................24 2.4 Giai đoạn tiền xử lý ảnh...................................................................................25 2.4.1 Hướng giải quyết........................................................................................25 2.4.2 Chụp ảnh từ camera..................................................................................26 2.4.3 Thay đổi kích cỡ ảnh ( Resize Image ).....................................................27 2.4.4 Chuyển đổi sang không gian màu HSV...................................................28ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hoàng Thắng 2.4.5 Tách nền ảnh ( Remove Background ). ...................................................29 2.4.6 Cắt ảnh ra làm 3 phần...............................................................................30 2.4.7 Xuất biểu đồ Histogram............................................................................31 2.4.8 Tính trung bình màu HSV........................................................................32 2.4.9 Xuất dữ liệu màu HSV sang Excel hoàn tất labels. ................................33 2.5 Giai đoạn phân loại. .........................................................................................34 2.5.1 Thuật toán Random Forest.......................................................................34 2.5.2 Hướng giải quyết: ......................................................................................36 CHƯƠNG III. KẾT QUẢ THỰC NGHIỆM và HƯỚNG PHÁT TRIỂN. ..........43 3. Kết quả thực hiện. ..................................................................................................43 3.1 Cách thức đo đạc, thử nghiệm. .......................................................................43 3.2 Kết quả và giải thích. .......................................................................................44 3.3 Kết luận và hướng phát triển. .........................................................................46 3.3.1 Kết luận: .....................................................................................................46 3.3.2 Hướng phát triển. ......................................................................................47 PHỤ LỤC BỔ SUNG .................................................................................................48 TÀI LIỆU THAM KHẢO..........................................................................................53 CHƯƠNG I. TỔNG QUAN LÝ THUYẾT 1. Xử lý ảnh và các vấn đề cơ bản 1.1 Xử lý ảnh là gì : Con người thu nhận thông tin qua các giác quan, trong đó thị giác đóng vai trò quan trọng nhất. Những năm trở lại đây với sự phát triển của phần cứng máy tính, xử lý ảnh và đồ hoạ đó phát triển một cách mạnh mẽ và có nhiều ứng dụng trong cuộc sống. Xử lý ảnh và đồ hoạ đóng một vai trò quan trọng trong tương tác người máy. Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm cho ra kết quả mong muốn. Kết quả đầu ra của một quá trình xử lý ảnh có thể là một ảnh “tốt hơn” hoặc một kết luận. Hình 1.1 – 1 : Tổng quan quá trình xử lý ảnh. Ảnh có thể xem là tập hợp các điểm ảnh và mỗi điểm ảnh được xem như là đặc trưng cường độ sáng hay một dấu hiệu nào đó tại một vị trí nào đó của đối tượng trong không gian và nó có thể xem như một hàm n biến P(c1, c2,..., cn). Do đó, ảnh trong xử lý ảnh có thể xem như ảnh n chiều. Sơ đồ tổng quát của một hệ thống xử lý ảnh: Hình 1.1 – 2 : Các bước cơ bản trong quá trình xử lý ảnh.ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hoàng Thắng SVTH : Nguyễn Đình Đức 5 1.2 Định nghĩa về xử lý ảnh Xử lý ảnh (XLA) là đối tượng nghiên cứu của lĩnh vực thị giác máy, là quá trình biến đổi từ một ảnh ban đầu sang một ảnh mới với các đặc tính và tuân theo ý muốn của ngƣời sử dụng. Xử lý ảnh có thể gồm quá trình phân tích, phân lớp các đối tượng, làm tăng chất lượng, phân đoạn và tách cạnh, gán nhãn cho vùng hay quá trình biên dịch các thông tin hình ảnh của ảnh. Cũng như xử lý dữ liệu bằng đồ hoạ, xử lý ảnh số là một lĩnh vực của tin học ứng dụng. Xử lý dữ liệu bằng đồ họa đề cập đến những ảnh nhân tạo, các ảnh này được xem xét như là một cấu trúc dữ liệu và được tạo bởi các chương trình. Xử lý ảnh số bao gồm các phương pháp và kỹ thuật biến đổi, để truyền tải hoặc mã hoá các ảnh tự nhiên. Mục đích của xử lý ảnh gồm: Biến đổi ảnh làm tăng chất lượng ảnh Tự động nhận dạng ảnh, đoán nhận ảnh, đánh giá các nội dung của ảnh. Nhận biết và đánh giá các nội dung của ảnh là sự phân tích một hình ảnh thành những phần có ý nghĩa để phân biệt đối tượng này với đối tượng khác, dựa vào đó ta có thểmô tả cấu trúc của hình ảnh ban đầu. Có thể liệt kê một số phương pháp nhận dạng cơ bản như nhận dạng ảnh của các đối tượng trên ảnh, tách cạnh, phân đoạn hình ảnh,… Kỹ thuật này được dùng nhiều trong y học (xử lý tế bào, nhiễm sắc thể), nhận dạng chữ trong văn bản.ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hoàng Thắng SVTH : Nguyễn Đình Đức 6 1.3 Các bước chính trong xử lý ảnh số Các bước chính trong xử lý ảnh số : Thu nhận ảnh • Biến đổi thông tin hình ảnh về các cấu trúc được lưu trữ trong máy tính, có thể hiển thị qua các thiết bị ngoại vi như máy in, màn hình,… • Ảnh được thu từ nhiều người khác nhau : Camera chụp ảnh, video, máy scan,… Tiền xử lý ảnh • Là quá trình sử dụng các kỹ thuật xử lý ảnh để làm ảnh tốt lên theo mục đích sử dụng • Mục đích : Lọc nhiễu, nâng cao độ tương phản Phân đoạn ảnh • Là quá trình phân chia nội dung các đối tượng cần khảo sát ra khỏi ảnh. • Phân chia các đối tượng tiếp giáp nhau. • Phân tách các đối tượng riêng biệt thành các đối tượng con. Biểu diễn và mô tả • Tìm các vùng đặc trưng của điểm ảnh và biểu diễn lại thông qua các điểm đặc trưng Nhận dạng và nội suy • Nhận dạng là quá trình xác định ảnh bằng cách so sánh với mẫu chuẩn đã được lưu trước. • Nội suy là phán đoán dự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ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hoàng Thắng SVTH : Nguyễn Đình Đức 7 Hình 1.1 : Các bước chính trong xử lý ảnh số. 1.4 Giới thiệu về không gian màu Mắt người có thể phân biệt được vài chục màu nhưng chỉ có thể cảm nhận được hàng ngàn màu. Ba thuộc tính của một màu đó là: Sắc (Hue), Độ thuần khiết (Saturation), và độ sáng hay độ chói (Itensity). Trong xử lý ảnh và đồ họa, mô hình màu là một chỉ số kỹ thuật của một hệ tọa độ màu 3 chiều với tập các màu nhỏ thành phần có thể trông thấy được trong hệ thống tọa độ màu thuộc một gam màu đặc trưng. Ví dụ như mô hình màu RGB (Red, Green, Blue): là một đơn vị tập các màu thành phần sắp xếp theo hình lập phương của hệ trục tọa độ Đề các. Mục đích của mô hình màu là cho phép các chỉ số kỹ thuật quy ước của một số loại màu sắc thích hợp với các màu sắc của một số gam màu khác. Chúng ta có thể nhìn thấy trong mô hình màu này, không gian màu là một tập hợp nhỏ hơn của không gian các màu có thể nhìn thấy được, vì vậy một mô hình màu không thể được sử dụng để định rõ tất cả có thể nhìn thấy. Sau đây, ta xem xét một số mô hình hay được sử dụng nhất.
TRƯỜNG ĐẠI HỌC DUY TÂN KHOA ĐIỆN-ĐIỆN TỬ NGUYỄN ĐÌNH ĐỨC ỨNG DỤNG MACHINE LEARNING PHÂN TÍCH ĐỘ CHÍN CÀ CHUA KHỐ LUẬN KĨ SƯ CƠNG NGHỆ KỸ THUẬT ĐIỆN – ĐIỆN TỬ Đà Nẵng, 2022 ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hoàng Thắng TRƯỜNG ĐẠI HỌC DUY TÂN KHOA ĐIỆN-ĐIỆN TỬ KHOÁ LUẬN TỐT NGHIỆP ỨNG DỤNG MACHINE LEARNING PHÂN TÍCH ĐỘ CHÍN CÀ CHUA CHUYÊN NGÀNH : ĐIỆN TỰ ĐỘNG GVHD: T.S HỒNG THẮNG SVTH : NGUYỄN ĐÌNH ĐỨC LỚP : K24 - EDT1 MSSV : 24216609433 Đà Nẵng, 2022 ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hồng Thắng LỜI CAM ĐOAN Kính gửi: Hội đồng bảo vệ đồ án tốt nghiệp Khoa Điện – Điện tử, Trường Đại Học Duy Tân Em tên là: Nguyễn Đình Đức Lớp: K24 - EDT1, Khoa Điện – Điện tử, Trường Đại Học Duy Tân Em xin cam đoan cơng trình nghiên cứu riêng em Các số liệu, kết nêu khóa luận trung thực chưa cơng bố cơng trình khác Đây đồ án em thực hướng dẫn trực tiếp T.S Hoàng Thắng Mọi tài liệu tham khảo dùng đồ án trích dẫn rõ ràng tên tác giả, thời gian, địa điểm công bố Mọi chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em xin chịu hoàn toàn trách nhiệm Đà Nẵng, ngày tháng năm 2022 Giảng viên hướng dẫn Sinh viên thực TS Hồng Thắng Nguyễn Đình Đức ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hoàng Thắng LỜI CẢM ƠN Qua bốn năm phấn đấu học hỏi không ngừng, cuối em cũng đã hoàn thành đồ án tốt nghiệp Để đạt thành này, phải kể đến công lao to lớn tồn thể thầy cơ, bạn bè đã tận tình dạy dỡ giúp đỡ em suốt q trình học tập từ em bước vào trường còn nhiều bỡ ngỡ Qua em xin gửi lời cảm ơn chân thành đến toàn thể thầy giáo, cô giáo trường Đại học Duy Tân, đặc biệt thầy T.S Hồng Thắng – Người đã ln ln giúp đỡ, hướng dẫn tận tình em suốt trình làm đồ án Em đã học hỏi ở thầy phương pháp làm việc khoa học, tính kiên trì, sáng tạo nghiên cứu nhiều kiến thức bở ích Em cũng xin gửi lời cảm ơn chân thành đến thầy cô khoa Điện - Điện Tử anh chị chuyên viên ở Trung Tâm CEE Trường Đại Học Duy Tân Các thầy cô, anh chị đã truyền đạt hướng dẫn chúng em những kiến thức tảng quan trọng ngành học giúp chúng em vận dụng phát huy vào thực tế đồ án Tuy nhiên trình nghiên cứu đề tài, kiến thức chuyên ngành hạn chế nên em nhiều thiếu sót tìm hiểu, đánh giá trình bày đề tài Rất mong nhận quan góp ý thầy/cơ mơn để tài em đầy đủ hoàn chỉnh Em xin kính chúc thầy giáo, giáo, anh chị bạn mạnh khỏe, hạnh phúc thành công sống ! Sinh viên thực Nguyễn Đình Đức ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hồng Thắng MỤC LỤC MỞ ĐẦU 1 Lý chọn đề tài 2 Mục đích đề tài Đối tượng phạm vi nghiên cứu : Phương pháp nghiên cứu : Nội dung nghiên cứu : CHƯƠNG I TỔNG QUAN LÝ THUYẾT Xử lý ảnh vấn đề 1.1 Xử lý ảnh : 1.2 Định nghĩa xử lý ảnh 1.3 Các bước xử lý ảnh số 1.4 Giới thiệu không gian màu 1.4.1 Cải thiện ảnh 10 1.4.2 Giản ảnh ( Dialtion ) 10 1.4.3 Co ảnh ( Erosion ) 13 1.4.4 Lọc màu 14 1.5 Ứng dụng Xử Lý Ảnh : 15 1.6 Tổng quan trí tuệ nhân tạo 16 1.6.1 Machine Learning 16 1.6.2 Feature Extraction ( trích xuất đặc trưng ) 18 1.6.3 Neural Network ( mạng thần kinh nhân tạo ) 20 1.7 Sơ lược lý thuyết Android Studio 22 CHƯƠNG II QUÁ TRÌNH THỰC HIỆN 23 Tổng quan tốn phân tích độ chín cà chua 23 2.1 Tính cấp thiết đề tài 23 2.2 Xử lý ảnh OpenCV 23 2.3 Hướng giải 24 2.4 Giai đoạn tiền xử lý ảnh 25 2.4.1 Hướng giải 25 2.4.2 Chụp ảnh từ camera 26 2.4.3 Thay đổi kích cỡ ảnh ( Resize Image ) 27 2.4.4 Chuyển đổi sang không gian màu HSV 28 ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hoàng Thắng 2.4.5 Tách ảnh ( Remove Background ) 29 2.4.6 Cắt ảnh làm phần 30 2.4.7 Xuất biểu đồ Histogram 31 2.4.8 Tính trung bình màu HSV 32 2.4.9 Xuất liệu màu HSV sang Excel hoàn tất labels 33 2.5 Giai đoạn phân loại 34 2.5.1 Thuật toán Random Forest 34 2.5.2 Hướng giải quyết: 36 CHƯƠNG III KẾT QUẢ THỰC NGHIỆM HƯỚNG PHÁT TRIỂN 43 Kết thực 43 3.1 Cách thức đo đạc, thử nghiệm 43 3.2 Kết giải thích 44 3.3 Kết luận hướng phát triển 46 3.3.1 Kết luận: 46 3.3.2 Hướng phát triển 47 PHỤ LỤC BỔ SUNG 48 TÀI LIỆU THAM KHẢO 53 ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hồng Thắng DANH MỤC HÌNH MINH HOẠ Hình 1.1 – : Tởng quan q trình xử lý ảnh Hình 1.1 – : Các bước trình xử lý ảnh Hình 1.3 : Các bước xử lý ảnh số Hình 1.4 – : Mơ hình khơng gian màu RGB Hình 1.4 - : Mơ hình khơng gian màu HSV Hình 1.4.4 : Phương pháp Masking ảnh 14 Hình 1.6 : Các lớp AI 16 Hình 1.6.1 : Phân loại thuật toán Machine Learning 17 Hình 1.6.3 : Cấu trúc Neural Network 21 Hình 2.4.1 : Tởng thể q trình tiền xử lý 25 Hình 2.4.2 – : Hậu kì trình chụp ảnh cà chua 26 Hình 2.4.2 – : Giao diện phần mềm Pylon Vỉewer 26 Hình 2.4.3 : Ảnh gốc ảnh sau thay đởi kích cỡ 27 Hình 2.4.4 : Q trình chuyển đởi khơng gian màu RGB sang HSV 28 Hình 2.4.5 : Ảnh ban đầu ảnh sau đã tách 29 Hình 2.4.6 : Ảnh sau đã cắt phần 30 Hình 2.4.7 : Biểu đồ Histogram biểu thị khác màu sắc hai 31 Hình 2.4.8 : Giá trị ngưỡng màu không gian màu HSV 32 Hình 2.5.1 : Minh hoạ thuật tốn Random Forest 34 Hình 2.5.2 – : Hàm khai báo thư viện huấn luyện labels 37 Hình 2.5.2 – : Tởng quan q trình huấn luyện 38 Hình 2.5.2 – : Giao diện thiết kế UI Android Studio 39 Hình 2.5.2 – : Khai báo thư viện biến Android Studio 39 Hình 2.5.2 – : Khai báo biến Nút Nhấn xử lý Click cho phép quyền liên quan 40 Hình 2.5.2 – : Triển khai model Machine Learning đã huấn luyện vào Android Studio 41 Hình 2.5.2 – : Xuất kết 42 Hình 3.2 – : Biểu đồ đánh giá trình huấn luyện 44 Hình 3.2 – : Độ xác ứng dụng dựa mơ hình đã huấn luyện 45 DANH MỤC BẢNG SỐ LIỆU Bảng : Labels độ chín cà chua 33 Bảng : Xét độ chín cà chua 35 Bảng : Đánh giá mức độ xác mơ hình 45 ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hoàng Thắng MỞ ĐẦU Đối với loại trái cây, đặc biệt chất lượng độ chín đã trở thành mối quan tâm hàng đầu ngành công nghiệp trồng, độ chín thứ đầu tiên mà khách hàng quan tâm đến Ngồi ra, hình thức bên sản phẩm số những vấn đề đáng lo ngại nhà sản xuất có ảnh hưởng cao chất lượng sản phẩm sở thích người tiêu dùng Tuy nhiên với tình hình tại, việc thu hoạch chưa tối ưu dự đốn độ chín chủ yếu dựa kinh nghiệm thực tế Do đó, tự động hóa quy trình lợi ích lớn cho lĩnh vực nông nghiệp công nghiệp Đối với nơng nghiệp, sử dụng để phát triển hệ thống thu hoạch tự động Mặt khác, ngành cơng nghiệp, sử dụng để phát triển thiết bị phân loại tự động hệ thống hoặc kiểm tra chất lượng trái để tăng mức độ hài lòng khách hàng Theo cách khách quan xác nhằm đánh giá độ chín trồng nông nghiệp quan trọng việc đảm bảo suất tối ưu sản phẩm chất lượng cao Hơn nữa, xác định độ chín từ việc thu hoạch trồng nông nghiệp trở nên xác đảm bảo thu hoạch kịp thời để tránh chín hoặc chưa chín trồng nơng nghiệp q chín Nói cách ngắn gọn, động lực nghiên cứu phương pháp cung cấp phương pháp tiếp cận phân loại để đo độ chín cà chua đánh giá thơng qua việc xử lý phân loại độ chín / giai đoạn chín dựa màu sắc SVTH : Nguyễn Đình Đức ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hồng Thắng Lý chọn đề tài Với phát triển không ngừng khoa học công nghệ, đặc biệt với những điện thoại thông minh (smartphone) ngày đại sử dụng phổ biến đời sống người đã làm cho lượng thông tin thu hình ảnh ngày tăng Theo đó, lĩnh vực xử lý ảnh cũng trọng phát triển, ứng dụng rộng rãi đời sống xã hội đại Không dừng lại ở việc chỉnh sửa, tăng chất lượng hình ảnh mà với cơng nghệ xử lý ảnh giải toán nhận dạng vật thể chuyển động, nhận dạng dấu vân tay, nhận dạng màu sắc… Một những tốn phở biến xử lý ảnh phân loại hình ảnh ( Image Classification ), hay hiểu đơn giản phân loại hình ảnh những nhiệm vụ phổ biến Computer Vision Mục tiêu tốn phân loại hình ảnh đầu vào (input) thành nhãn (label) đầu (output) Một ví dụ đơn giản cần phân biệt ảnh đầu vào chó hay mèo chẳng hạn Do tốn đời với vai trị quan trọng nhiều lĩnh vực với đời sống người phân loại, định dạng hay đếm đối tượng có liên quan Bài tốn Image Classification bao gồm nhiều toán khác tảng cho tốn : nhận dạng hình ảnh ( Image recognition ), phân đoạn ảnh ( Image Segmentation ), xác định vật thể dựng toạ độ ( Bounding Box ) toán ứng dụng nhiều phát đối tượng ( Object Detection ) Trong thực tế, phân loại hình ảnh ( Image Classification ) hướng nghiên cứu nhiều nhà khoa học quan tâm, nghiên cứu để ứng dụng thực tiễn Mục đích đề tài - Xây dựng ứng dụng di động dự đốn độ chín cà chua - Tìm hiểu ứng dụng thư viện OpenCV ngơn ngữ Python - Tìm hiểu phương pháp phân loại hình ảnh ứng dụng Xử Lý Ảnh - Tìm hiểu ứng dụng thuật toán Machine Learning - Ứng dụng Machine Learning tạo Model dự đoán độ chín - Tìm hiểu dùng phần mềm Android Studio để tạo ứng dụng cho thiết bị di động SVTH : Nguyễn Đình Đức ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hoàng Thắng Đối tượng phạm vi nghiên cứu : a Đối tượng : Các phương pháp, thuật tốn phục vụ cho việc phân loại độ chín cà chua Thư viện OpenCV ngôn ngữ Python Phần mềm điện thoại dựa tảng Android ( Android Studio ) b Phạm vi nghiên cứu : Tập trung tìm hiểu phân loại hình ảnh ( Image Classification ) giới hạn mục tiêu nghiên cứu cà chua nên khơng trọng tìm hiểu phát đối tượng ( Object Detection ) Giới hạn đề tài tập trung vào việc nghiên cứu ứng dụng Neural Network Việc ứng dụng Machine Learning phải thoả mãn điều kiện : • Ảnh cà chua, với số lượng mẫu phải nhiều ( CSDL tự chụp ) • Dữ liệu đưa vào Machine Learning phải xác • Ứng dụng thuật tốn phù hợp với dữ liệu đầu vào đảm bảo accuracy ( độ xác ) đầu phù hợp Phương pháp nghiên cứu : Thu thập đọc tài liệu liên quan đến Xử Lý Ảnh Machine Learning, từ áp dụng vào tốn Tìm hiểu ứng dụng Neural Network Tìm hiểu phương pháp phân loại hình ảnh thuật tốn Machine Learning Nội dung nghiên cứu : Nội dung khoá luận gồm chương : ▪ Chương : Tổng quan lý thuyết ▪ Chương : Quá trình thực ▪ Chương : Kết thực nghiệm hướng phát triển SVTH : Nguyễn Đình Đức ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hồng Thắng Hình 2.5.2 – : Khai báo biến Nút Nhấn xử lý Click cho phép quyền liên quan SVTH : Nguyễn Đình Đức 40 ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hồng Thắng Hình 2.5.2 – : Triển khai model Machine Learning huấn luyện vào Android Studio SVTH : Nguyễn Đình Đức 41 ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hồng Thắng Hình 2.5.2 – : Xuất kết SVTH : Nguyễn Đình Đức 42 ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hồng Thắng CHƯƠNG III KẾT QUẢ THỰC NGHIỆM HƯỚNG PHÁT TRIỂN Kết thực 3.1 Cách thức đo đạc, thử nghiệm Ảnh chụp bởi “ Vision Camera Computar acA640-120uc “, phần mềm viết Android Studio hoạt động điện thoại Xiaomi Redmi K20 Pro Chương trình Xử Lý Ảnh viết giao diện ứng dụng Pycharm ngôn ngữ Python ( 3.10.0 ) bao gồm thư viện OpenCV, Numpy, Math Chương trình huấn luyện viết ngôn ngữ Python bao gồm thư viện Sklearn, Pandas, Numpy, Math giao diện JupyterLab NPH Anaconda Phần mềm ứng dụng điện thoại di động viết Android Studio chạy dòng Android 8.0 trở lên Sau đã tạo ứng dụng điện thoại di động với phông cường độ ánh sáng môi trường khác nhau, ta có Tỉ lệ xác định xác chín, chưa chín = 100 × SVTH : Nguyễn Đình Đức 𝑆ố 𝑞𝑢ả 𝑐ℎí𝑛,𝑐ℎư𝑎 𝑐ℎí𝑛 𝑇ổ𝑛𝑔 𝑠ố 𝑚ẫ𝑢 (%) 43 ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hoàng Thắng 3.2 Kết giải thích Hình 3.2 – : Biểu đồ đánh giá trình huấn luyện Từ biểu đồ q trình huấn luyện ta thấy phần thử nghiệm có kết gần tuyệt đối Tuy nhiên phần tập mẫu huấn luyện còn nên kết tính tốn mơ hình hầu có vài yếu tố “ test lost “, nên tính kết lý thuyết Accuracy Train lẫn Test cho 100% train thành cơng 96% test xác SVTH : Nguyễn Đình Đức 44 ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hồng Thắng Và phần thử nghiệm ứng dụng Android ta thấy mức độ xác tồn q trình huấn luyện chưa khớp hồn tồn Khả cao số lượng tập mẫu chưa đủ dẫn đến việc dự đốn chưa thể xác hồn tồn Hình 3.2 – : Độ xác ứng dụng dựa mơ hình huấn luyện Sau đã kiểm thử tồn q trình, sau rút kết : Loại Tổng Mức độ xác Đỏ ( đã chín ) 44 / 100 80% Vàng ( chưa chín ) 56 / 100 91% Bảng : Đánh giá mức độ xác mơ hình Với việc đỏ có mức độ xác thấp tập mẫu còn với nên chưa thể đáp ứng với yêu cầu, ngược lại vàng cũng có độ xác tương đối Thêm vào còn có yếu tố gây nhiễu camera điện thoại khác dẫn đến việc dự đoán cũng bị sai lệch, việc thay đổi ánh sáng từ camera người dùng cũng ảnh hưởng đến độ xác SVTH : Nguyễn Đình Đức 45 ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hoàng Thắng 3.3 Kết luận hướng phát triển 3.3.1 Kết luận: Từ những kết thu cảm thấy phương pháp xác định độ chín cà chua Xử Lý Ảnh thuật tốn Random Forest có những ưu khuyết điểm sau : a Ưu điểm : - Dễ cài đặt sử dụng - Phù hợp với đối tượng sinh viên nghiên cứu trí tuệ nhân tạo a Khuyết điểm : - Thuật toán Random Forest dễ bị overfitting ( khớp ), tập dữ liệu nhiều tăng thời gian xử lý phải qt hết tồn tập train - Khả dự đoán còn hạn chế, di ảnh, chói sáng mơi trường xung quanh, kèm theo với mỡi điện thoại khác cho kết cũng khác Vì tốt cần dùng camera cố định, với ánh sáng thống nhất, phông cũng hạn chế tối đa những chi tiết gây nhiễu Phương pháp cần giám sát người nhiều nên chưa thể hồn tồn tự động SVTH : Nguyễn Đình Đức 46 ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hồng Thắng 3.3.2 Hướng phát triển Nâng cấp thêm thuật tốn nhận diện hình ảnh ( Object Detection ) ở trình Xử Lý Ảnh, hoặc dùng những thư viện có sẵn nổi tiếng giới YOLO, YOLOv5,… Có thể dùng thuật tốn Machine Learning SVM ( Support Vector Machine ) , Neural Network, hoặc Deep Learning để can thiệp vào phần trích xuất đặc trưng thay cho Xử Lý Ảnh, hoặc sử dụng Feature Extraction Xử Lý Ảnh HOG ( Histogram of Oriented Gradients ) từ cho kết xác Ngồi việc xác định độ chín cho cà chua, ta phát triển thêm vài thứ quan trọng chất lượng dinh dưỡng có cà chua, dự đốn thời gian chín hay thời hạn bảo quản, hay dự đốn sản phẩm Organic hay khơng Kết hợp với chương trình khác ROS ( Robot Operating System ) để điều khiển robot tự động thu thập cà chua chín, hay xây dựng chương trình quản lý bảo quản cà chua chín,… SVTH : Nguyễn Đình Đức 47 ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hoàng Thắng PHỤ LỤC BỔ SUNG Code Xử Lý Ảnh import numpy as np import cv2 as cv from matplotlib import pyplot as plt from numpy import mean import sys from PIL import Image # Đọc ảnh img = cv.imread('E:/tomatoes/ca chua do/ca chua ( ).bmp') # Resize 250x250 pixel img_rs =cv.resize(img,dsize=(250,250)) original = img_rs.copy() result = original # Tách xanh dương, vật # Convert sang HSV để tách, màu xanh đối lập hsv với đỏ image = cv.cvtColor(original, cv.COLOR_BGR2HSV) lower = np.array([80,0,0]) upper = np.array([130,255,255]) mask = cv.inRange(image, lower, upper) mask = cv.bitwise_not(mask) # tạo bg_image = np.zeros([img_rs.shape[0],img_rs.shape[1],img_rs.shape[2]],dtype=np.uint8) condition = np.stack( (mask,) * 3, axis=-1) > 0.5 # Hoàn tất tạo output_image = np.where(condition, img_rs, bg_image) cv.imshow('Hinh da tach',output_image) # Convert sang hệ màu HSV để trích đặc trưng #result = cv.cvtColor(result, cv.COLOR_BGR2HSV) img_hsv = cv.cvtColor(output_image, cv.COLOR_BGR2HSV) # Đặt tham số để vẽ Histogram # HSV tổng H, S, V = img_hsv[:,:,0],img_hsv[:,:,1],img_hsv[:,:,2] # Tính trung bình H dataH_Tong = [img_hsv[:,:,0]] avgH_Tong = mean(dataH_Tong) print("avgH_Tong",round(avgH_Tong)) # Tính trung bình S dataS_Tong = [img_hsv[:,:,1]] avgS_Tong= mean(dataS_Tong) print("avgS_Tong",round(avgS_Tong)) SVTH : Nguyễn Đình Đức 48 ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hồng Thắng # Tính trung bình V dataV_Tong = [img_hsv[:,:,2]] avgV_Tong= mean(dataV_Tong) print("avgV_Tong",round(avgV_Tong)) # Ảnh tách result[mask == 0] = [0] # Cắt làm phần top, mid bot cut_num = int(round(img_hsv.shape[0]/3)) # Cắt phần xuất Histogram top = img_hsv[0:cut_num, :, :] mid = img_hsv[cut_num:cut_num*2,:,:] bottom = img_hsv[cut_num*2:,:,:] # H,S,V mặt top H_top, S_top, V_top = top[:,:,0],top[:,:,1],top[:,:,2] # Tính trung bình H top dataH_Top = [top[:,:,0]] avgH_Top= mean(dataH_Top) print("avgH_Top",round(avgH_Top)) # Tính trung bình S top dataS_Top = [top[:,:,1]] avgS_Top= mean(dataS_Top) print("avgS_Top",round(avgS_Top)) # Tính trung bình V top dataV_Top = [top[:,:,2]] avgV_Top= mean(dataV_Top) print("avgV_Top",round(avgV_Top)) # H,S,V mặt mid H_mid, S_mid, V_mid = mid[:,:,0],mid[:,:,1],mid[:,:,2] # Tính trung bình H mid dataH_mid = [mid[:,:,0]] avgH_mid= mean(dataH_mid) print("avgH_mid",round(avgH_mid)) # Tính trung bình S mid dataS_mid = [mid[:,:,1]] avgS_mid= mean(dataS_mid) print("avgS_mid",round(avgS_mid)) # Tính trung bình V mid dataV_mid = [mid[:,:,2]] SVTH : Nguyễn Đình Đức 49 ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hoàng Thắng avgV_mid= mean(dataV_mid) print("avgV_mid",round(avgV_mid)) # H,S,V mặt bottom H_bottom, S_bottom, V_bottom = bottom[:,:,0],bottom[:,:,1],bottom[:,:,2] # Tính trung bình H bottom dataH_bottom = [bottom[:,:,0]] avgH_bottom= mean(dataH_bottom) print("avgH_bottom",round(avgH_bottom)) # Tính trung bình S bottom dataS_bottom = [bottom[:,:,1]] avgS_bottom = mean(dataS_bottom) print("avgS_bottom",round(avgS_bottom)) # Tính trung bình V bottom dataV_bottom = [bottom[:,:,2]] avgV_bottom= mean(dataV_bottom) print("avgV_bottom",round(avgV_bottom)) # Xuất biểu đồ Histogram plt.figure(figsize=(10,8)) plt.subplot(311) #Biểu đồ cột Hue plt.subplots_adjust(hspace=.5) plt.title("Hue") plt.hist(np.ndarray.flatten(H), bins=180,range=(1,255)) plt.subplot(312) #Biểu đồ cột Saturation plt.title("Saturation") plt.hist(np.ndarray.flatten(S), bins=128,range=(1,255)) plt.subplot(313) #Biểu đồ cột Value plt.title("Luminosity Value") plt.hist(np.ndarray.flatten(V), bins=128,range=(1,255)) plt.show() # Show ảnh cv.imshow('anh goc',img_rs) cv.imshow('anh xu ly',result) cv.imshow('anh hsv',img_hsv) cv.imshow('top',top) cv.imshow('mid',mid) cv.imshow('bottom',bottom) cv.waitKey() cv.destroyAllWindows() Code giao diện Android Studio Code Manifest Android Studio SVTH : Nguyễn Đình Đức 51 ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hoàng Thắng SVTH : Nguyễn Đình Đức 52 ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hoàng Thắng TÀI LIỆU THAM KHẢO Tiếng Việt [1] VuHuuTiep (2007) Machine Learning [2] Tuấn, N T (2019) Sách Deep Learning - v2.pdf [3] Trí tuệ nhân tạo.pdf (n.d.) [4] Mì AI - Học AI theo cách mì ăn liền! (miai.vn) [5] Mì AI - YouTube [6] Machine Learning (machinelearningcoban.com) Tiếng Anh [7] Garcia, M B., Ambat, S., & Adao, R T (2019) Tomayto, Tomahto: A Machine Learning Approach for Tomato Ripening Stage Identification Using Pixel-Based Color Image Classification 2019 IEEE 11th International Conference on Humanoid, Nanotechnology, Information Technology, Communication and Control, Environment, and Management, HNICEM 2019 https://doi.org/10.1109/HNICEM48295.2019.9072892 [8] Rosebrock, A (2016) Case Studies 127 [9] Gonzales, R C., & Woods, R E (2018) Digital Image Processing Fourth Edition In Pearson Education, Inc (Vol 1, Issue 4) [10] El-Bendary, N., El Hariri, E., Hassanien, A E., & Badr, A (2015) Using machine learning techniques for evaluating tomato ripeness Expert Systems with Applications, 42(4), 1892–1905 https://doi.org/10.1016/j.eswa.2014.09.057 [11] Liu, G., Mao, S., & Kim, J H (2019) A mature-tomato detection algorithm using machine learning and color analysis Sensors (Switzerland), 19(9), 1–19 https://doi.org/10.3390/s19092023 [12] Sahyadri, E., Sahyadri, E., Sahyadri, E., & Sahyadri, E (2019) Identification of Ripeness of Tomatoes 7(08), 1–4 [13] Supervised Machine Learning: Regression and Classification | Coursera [14] Liu, G., Mao, S., & Kim, J H (2019) A mature-tomato detection algorithm using machine learning and color analysis Sensors (Switzerland), 19(9), 1–19 https://doi.org/10.3390/s19092023 SVTH : Nguyễn Đình Đức 53 ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua [15] GVHD : T.S Hoàng Thắng Géron, A (2019) Hands-on Machine Learning whith Scikit-Learing, Keras and Tensorfow In O’Reilly Media, Inc SVTH : Nguyễn Đình Đức 54 ...ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua GVHD : T.S Hoàng Thắng TRƯỜNG ĐẠI HỌC DUY TÂN KHOA ĐIỆN-ĐIỆN TỬ KHOÁ LUẬN TỐT NGHIỆP ỨNG DỤNG MACHINE LEARNING PHÂN TÍCH ĐỘ CHÍN CÀ CHUA. .. độ chín cà chua Cà chua chín Cà chua chưa chín H S V Hình 2.4.7 : Biểu đồ Histogram biểu thị khác màu sắc hai SVTH : Nguyễn Đình Đức 31 ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua. .. cận phân loại để đo độ chín cà chua đánh giá thông qua việc xử lý phân loại độ chín / giai đoạn chín dựa màu sắc SVTH : Nguyễn Đình Đức ĐATN : Ứng dụng Machine Learning phân tích độ chín cà chua