Trang 4 TÓM TẮT Nhận diện và xử lý ảnh đang là một trong phân đoạn được ứng dụng nhiều trong các dự án như nhận diện biển số xe nhận diện khuôn mặt, … Luận văn này trình bày thuật toán M
TỔNG QUAN
Lý do chọn đề tài
Học máy là một lĩnh vực con của trí tuệ nhân tạo, cho phép máy tính nâng cao hiệu suất dựa trên dữ liệu hoặc kinh nghiệm đào tạo Công nghệ này có khả năng dự đoán và đưa ra quyết định độc lập mà không cần lập trình rõ ràng, cách mạng hóa cách chúng ta tiếp cận giải quyết vấn đề phức tạp và cải thiện độ chính xác Trong lĩnh vực nông nghiệp, học máy đã đạt được sức hút đáng kể trong việc phát hiện và chẩn đoán sâu bệnh gây hại cho thực vật, giúp nâng cao chất lượng cây trồng và đảm bảo các hoạt động nông nghiệp bền vững Ngoài việc xác định sâu bệnh, các thuật toán học máy cũng có thể hỗ trợ nhận dạng khuôn mặt và đối tượng, nâng cao hơn nữa tiện ích của nó trong lĩnh vực nông nghiệp Việc triển khai hiệu quả học máy trong nông nghiệp có thể mở đường cho một cách tiếp cận hiệu quả và bền vững hơn đối với canh tác cây trồng, cuối cùng dẫn đến cải thiện kết quả kinh tế.
Mục tiêu đề tài
Xây dựng hệ thống nhận diện sâu bệnh trên lá cây sầu riêng dựa trên tập dữ liệu video và hình ảnh sau khi thu thập được.
Cách tiếp cận và phương pháp nghiên cứu
Xây dựng hệ thống nhận diện sâu bệnh trên lá cây sầu riêng dựa trên tập dữ liệu video và hình ảnh sau khi thu thập được
Phạm vi nghiên cứu của đề tài có thể bao gồm các chủ đề như:
- Tìm hiểu các thông tin cần thiết để xây dựng một bài toán
- Đưa ra giải pháp xử lý cho hệ thống
- Tìm kiếm thu thập các tập dữ liệu cho bài toán
- Thiết kế và xây dựng hệ thống dựa trên kiến trúc của YOLO v7
- Chuẩn hóa dữ liệu loại bỏ các thuộc tính không cần thiết, gán nhãn cho dữ liệu
- Huấn luyện mô hình từ dữ liệu thu thập ban đầu
- Thực nghiệm và đánh giá mô hình
1.4 Cách tiếp cận và phương pháp nghiên cứu
Tiếp cận các lý thuyết liên quan về kiến trúc và các công nghệ mới của YOLO v7 là một bước quan trọng trong lĩnh vực xử lý ảnh Các lý thuyết này cung cấp nền tảng vững chắc cho việc hiểu và ứng dụng các mô hình Machine Learning trong việc nhận dạng và phân tích hình ảnh Bằng cách nghiên cứu và áp dụng các công nghệ mới của YOLO v7, chúng ta có thể nâng cao hiệu suất và độ chính xác của các mô hình xử lý ảnh, đồng thời khám phá các ứng dụng thực tế của Machine Learning trong lĩnh vực này.
- Tiếp cận theo cách thực nghiệm để đảm bảo rằng các giải pháp công nghệ nhóm thực hiện đưa ra là khả thi và có khả năng triển khai
- Phương pháp phân tích và tổng hợp lý thuyết
Bố cục đề tài
Chương này cung cấp cái nhìn tổng quan về đề tài nghiên cứu, bao gồm cả việc đặt vấn đề và lý do lựa chọn đề tài Mục tiêu nghiên cứu được xác định rõ ràng, cùng với nội dung nghiên cứu chi tiết và phương pháp nghiên cứu phù hợp Bên cạnh đó, chương này cũng nêu rõ các giới hạn của đề tài và bố cục tổng thể của đề tài nghiên cứu.
- Chương 2: Cơ sở lý thuyết
Chương này giới thiệu các cơ sở lý thuyết nền, thông tin liên quan đến đề tài
➢ Trình bày về các đặc tính sinh học và một số bệnh thường gặp của cây sầu riêng
➢ Trình bày về Machine Learning và các ứng dụng của nó trong Xử lý ảnh
➢ Phần mềm trình bày các kiến thức về thư viện sử dụng trong ngôn ngữ Python, tìm hiểu về google colab, tìm hiểu về kiến trúc YOLO
- Chương 3: Xây dựng mô hình thuật toán nhận diện hình ảnh
Chương này trình bày mô hình biểu diễn và phân tích hình ảnh, sử dụng thư viện YOLO và Google Colab để tiến hành huấn luyện hệ thống
- Chương 4: Kết quả và đánh giá mô hình
Chương này trình bày kết quả mô hình sau khi huấn luyện, phân loại các loại sâu bệnh của cây và các chỉ số đánh giá của mô hình
- Chương 5: Kết luận và hướng phát triển
Chương này cung cấp bản tóm tắt về những thành tựu đã đạt được và những hạn chế còn tồn tại của mô hình so với kế hoạch ban đầu, đồng thời đề xuất hướng phát triển cho thời gian sắp tới.
Giới hạn đề tài
Đề tài này tập trung vào việc phát triển phần mềm nhận diện sâu bệnh trên lá cây sầu riêng, không bao gồm việc phát triển phần cứng như máy bay không người lái (drone) hoặc thuật toán điều khiển drone, giúp tối ưu hóa quá trình phát hiện và xử lý sâu bệnh trên cây sầu riêng.
CƠ SỞ LÝ THUYẾT
Đặc điểm sinh học của cây sầu riêng
Cây sầu riêng là loại cây thân gỗ có thân cao và cứng cáp, với khả năng đạt chiều cao từ 15 đến 25 mét và tán lá thưa Đặc điểm đáng chú ý của loài này là bản chất cứng của thân cây, kết hợp với vỏ thường có màu nâu vàng Đường kính của cây sầu riêng thường dao động trong khoảng từ 1 đến 1,2 mét, tạo nên một hình dạng đặc trưng.
Cây sầu riêng trưởng thành thường có chiều cao trung bình từ 10 đến 12 mét ở những vùng được trồng và sản xuất Tán lá của cây rộng và rộng ở gốc, thuôn dần thành hình nón ở phần trên cùng Cành của cây mọc theo chiều ngang, tạo nên hình dạng đặc trưng Lá của cây sầu riêng tồn tại quanh năm, có hình elip đến thuôn dài, dài từ 10 đến 18 centimet, được sắp xếp theo kiểu so le với các phiến lá dày có hình trứng thuôn dài và màu hơi vàng ở mặt dưới.
Hình 2.2 Lá cây sầu riêng
Hình 2.3 minh họa cụm hoa thường phát triển thành từng chùm với 1 đến 15 hoa mỗi chùm, treo trên cành cây Cụm hoa này bao gồm một đài hoa và năm cánh hoa, mặc dù có thể có bốn hoặc sáu cánh hoa trong một số trường hợp Hoa mọc thành nhóm từ ba đến ba mươi trên các nhánh lớn hoặc trực tiếp trên thân cây, đặc trưng bởi kích thước lớn và sản xuất mật hoa dồi dào Mùi hương của hoa rất đặc biệt, mang theo hương hăng, nồng, nặng, chua và bơ trong tự nhiên.
Hoa sầu riêng yêu cầu điều kiện phát triển tối ưu trong khoảng thời gian khoảng 3 đến
Để tối ưu hóa năng suất cây trồng sầu riêng, cần lưu ý đến quá trình thụ phấn của phôi Thông thường, hoa sầu riêng sẽ nở trong khoảng thời gian từ 3 giờ chiều đến 6 giờ sáng hôm sau, với bao phấn nứt ra từ 7 giờ tối đến 11 giờ tối Tuy nhiên, trong cùng thời gian này, nhụy hoa sẽ hết hạn, ảnh hưởng đến tỷ lệ thụ phấn Vì vậy, việc tính đến các yếu tố này là quan trọng khi trồng cây sầu riêng, giúp tăng cường khả năng thụ phấn và đạt được năng suất cây trồng cao hơn.
Thực vật thường đòi hỏi các tác nhân bên ngoài như gió hoặc côn trùng để quá trình thụ phấn diễn ra Do đó, tự thụ phấn không phổ biến ở các loài thực vật Cây sầu riêng cũng không ngoại lệ, với tỷ lệ đậu quả thấp dù có nhiều hoa Chỉ khoảng một nửa số hoa trên cây sầu riêng có thể thụ phấn thành công và tạo quả.
Một số bệnh thường gặp ở cây sầu riêng
Bệnh thối rễ vàng lá là tình trạng có thể dẫn đến sự yếu đi của cây sầu riêng do sự tấn công của nấm, gây thối rễ cám, trượt vỏ rễ và làm đen hoặc thối rễ lớn trên cổ rễ Tùy thuộc vào mức độ nghiêm trọng của bệnh, cây có thể chỉ bị vàng lá, sinh trưởng kém, giảm năng suất cây trồng và chất lượng quả, hoặc xuất hiện các triệu chứng nghiêm trọng hơn.
Sự hiện diện của một số lá mục nát hoặc thối rữa trên cây có thể cản trở sự sinh trưởng và phát triển của cây Điều này dẫn đến lá bị khô dần và cuối cùng là chết ngọn, gây ra các vấn đề bệnh lý nghiêm trọng hơn Nếu không được kiểm soát, tình trạng này có thể dẫn đến mất tất cả các lá trên cây con, ảnh hưởng nghiêm trọng đến sự phát triển của cây.
Bệnh nấm rong biển là một trong những bệnh phổ biến ảnh hưởng đến cây sầu riêng trong mùa mưa, nếu không được khắc phục kịp thời có thể gây thiệt hại nghiêm trọng trên diện rộng Tình trạng này không chỉ ảnh hưởng đến các bộ phận khác nhau của cây mà còn cản trở khả năng quang hợp, kìm hãm sự sinh trưởng và phát triển, dẫn đến năng suất kém Điều này tác động tiêu cực đến sản lượng kinh tế của cây trồng, gây ảnh hưởng trực tiếp đến lợi ích của người nông dân.
Bộ điều khiển
Drone là máy bay trên không có thể được điều khiển từ xa thông qua các hệ thống điều khiển hiện đại Về cơ bản, Drone là một robot bay thông minh có thể hoạt động linh hoạt dưới sự điều khiển của con người hoặc tự động theo các đường bay được lập trình sẵn Trang bị cảm biến và khả năng định vị tiên tiến, Drone đã trở thành một công cụ phổ biến và đa năng trong nhiều lĩnh vực như nông nghiệp, giám sát an ninh và dịch vụ giao hàng nhanh chóng.
2.3.1.2 Cấu tạo cơ bản của drone
Máy bay không người lái (drone) là một hệ thống bao gồm nhiều thành phần riêng biệt như bộ phận động cơ điều khiển, bộ xử lý trung tâm, cánh quạt, anten, giá treo, pin và máy ảnh Hoạt động của drone có thể được điều khiển từ xa thông qua bộ điều khiển hoặc được lập trình sẵn theo một tuyến đường cụ thể dựa trên tọa độ GPS Việc kết hợp công nghệ GPS đã nâng cao đáng kể khả năng sử dụng và hiệu quả của máy bay không người lái, cho phép chúng hoạt động chính xác và hiệu quả hơn.
Bộ điều khiển Drone có thiết kế tương đồng với bộ điều khiển máy bay mô hình, bao gồm hai nút và anten có thể thu gọn, thường hoạt động trên sóng vô tuyến tần số 2.4GHz Một số bộ điều khiển hiện đại kết hợp cả tín hiệu 2.4GHz và Wi-Fi, cho phép điều khiển thông qua ứng dụng trên thiết bị di động Sự linh hoạt này đã mở rộng phạm vi hoạt động và dễ tiếp cận hơn với nhiều đối tượng Nhờ những tiến bộ trong công nghệ bộ điều khiển, máy bay không người lái đã trở thành lựa chọn phổ biến cho nhiều ứng dụng khác nhau.
Những chiếc Drone thông thường hoạt động dựa vào năng lượng từ pin cung cấp cho cánh quạt, tuy nhiên một số mẫu cao cấp hiện nay đã ứng dụng động cơ phản lực thay thế cho cánh quạt truyền thống, cho phép chúng bay xa tới 800 km và đạt độ cao lên tới 15 km Ngoài ra, các loại Drone cũng có thể hoạt động theo hai chế độ chính: hoạt động tự động dựa vào chương trình lập trình sẵn hoặc hoạt động dưới sự điều khiển của con người thông qua bảng điều khiển từ xa.
Drone sở hữu cấu trúc nhỏ gọn và nhẹ, cho phép vận chuyển dễ dàng và thuận tiện, đồng thời mang lại thời gian bay kéo dài Với khả năng cơ động cao, tiện lợi và hoạt động hiệu quả, Drone đã trở thành công cụ lý tưởng cho nhiều ứng dụng thực tế Thiết kế nhỏ gọn và tính cơ động của Drone cho phép chúng được sử dụng trong nhiều lĩnh vực, bao gồm chụp ảnh trên không, giám sát cây trồng nông nghiệp và nhiệm vụ tìm kiếm và cứu nạn Sự kết hợp giữa hiệu suất cao và tuổi thọ pin kéo dài giúp Drone thực hiện các nhiệm vụ với sự can thiệp tối thiểu của con người, đặc biệt là trong các địa hình khó khăn và vùng sâu vùng xa.
Ban đầu, Drone chủ yếu được sử dụng cho mục đích quân sự, thực hiện các nhiệm vụ trinh sát, thăm dò địa hình và tiêu diệt mục tiêu Tuy nhiên, gần đây, Drone đã trở nên phổ biến và đáp ứng nhu cầu của nhiều người Với tính linh hoạt cao, Drone đã được khai thác để giải quyết nhiều mối quan tâm dân sự, mở rộng ứng dụng của chúng trong nhiều lĩnh vực khác nhau.
- Quay film, chụp ảnh từ trên cao
- Hỗ trợ xây dựng bản đồ
- Khảo sát công trình xây dựng, những nơi địa hình phức tạp, khó tiếp cận
- Hỗ trợ tìm kiếm cứu nạn, vận chuyển đồ cứu trợ
- Trong nông nghiệp nó còn giúp rải phân bón, tìm kiếm mầm bệnh của cây, phun thuốc trừ sâu
Hình 2.9 Drone rải thuốc trừ sâu
Trong đồ án lần này, nhóm thực hiện sử dụng Drone Mavic Air 2 để lấy data
Gấp lại: 180 × 97 × 84 mm (Dài × Rộng × Cao)
Mở ra: 183 × 253 × 77 mm (Dài × Rộng × Cao)
Khoảng cách đường chéo: 302 mm
- Thời gian bay tối đa (không có gió): 34 phút
- Thời gian di chuyển tối đa (không có gió): 33 phút
- Khoảng cách bay tối đa: 18,5 km
- Tốc độ bay ngang tối đa: 19 m/s (Chế độ S), 12 m/s (Chế độ N), 5 m/s (Chế độ T)
- Sức cản của gió tối đa: 8,5-10,5 m / s (Cấp 5)
➢ Điểm ảnh: 12 MP và 48 MP
➢ Tiêu cự tương đương: 24 mm
➢ Phạm vi lấy nét: 1 m đến vô cùng
➢ Định dạng hình ảnh: JPEG / DNG (RAW)
➢ Độ phân giải video và tốc độ khung hình: 4K Ultra HD: 3840 × 2160
➢ Độ phân giải video và tốc độ khung hình: 4K Ultra HD: 3840 × 2160
➢ 4K Ultra HD HDR: 3840 × 2160 24/25/30 khung hình / giây
➢ FHD HDR: 1920 × 1080 24/25/30 khung hình / giây
➢ Chế độ màu: D-Cinelike, Bình thường
➢ Định dạng video: MP4 / MOV (H.264 / MPEG-4 AVC, H.265 / HEVC)
➢ Định dạng video: MP4 / MOV (H.264 / MPEG-4 AVC, H.265 / HEVC) Bit rate tối đa: 120 Mbps
➢ Thẻ SD được hỗ trợ: Hỗ trợ thẻ nhớ microSD với dung lượng lên tới 256
➢ Hệ thống tệp được hỗ trợ: FAT32 và exFAT
➢ Khoảng cách truyền hình ảnh tối đa: 10 km (FCC), 6 km (CE), 6 km
➢ Chất lượng xem trực tiếp: 720p @ 30fps / 1080 @ p30fps
➢ Độ trễ (tùy thuộc vào điều kiện môi trường và thiết bị di động): 120-130 ms
➢ Định dạng mã hóa truyền video: H.265
➢ Tốc độ bit xem trực tiếp tối đa: 40 Mbps
➢ Hệ thống truyền điều khiển từ xa: OcuSync 2.0
➢ Hỗ trợ kết nối thiết bị di động: Lightning, Micro USB, USB Type-C
➢ Tối đa Kích thước thiết bị di động được hỗ trợ: 180 × 86 × 10 mm (Chiều cao × Chiều rộng × Độ dày)
2.3.2.2 Các cổng kết nối trên Mavic Air 2
Bộ điều khiển và máy bay không người lái Mavic Air 2 đều được trang bị cổng kết nối chuẩn Type-C, mang đến sự tiện lợi khi kết nối thiết bị Tay cầm điều khiển được thiết kế thông minh, cho phép người dùng gắn smartphone lên trên để dễ dàng quan sát và điều khiển máy bay không người lái một cách mượt mà hơn.
Hình 2.10 Cổng Type-C trên Mavic Air 2
Hình 2.11 Bộ điều khiển cho phép gắn Smartphone lên
Drone Mavic Air 2 được trang bị cảm biến Quad-CMOS 1/2 inch hiện đại, cho phép chụp ảnh với độ phân giải 48 MP và quay video 4K/60fps với tốc độ ghi dữ liệu lên đến 120Mbps Ngoài ra, thiết bị này còn hỗ trợ ghi Dải động cao (HDR) và video chuyển động chậm 240 fps/s ở chất lượng FullHD 1080p khi giảm xuống 4K/30p, mang lại trải nghiệm hình ảnh sống động và chân thực cho người dùng.
Theo thông tin chính thức từ nhà sản xuất, chiếc drone này sở hữu thời gian bay ấn tượng lên tới 34 phút, đồng thời cho phép phát trực tiếp video với khoảng cách lên đến 10 km đến một chiếc điện thoại thông minh tương thích.
2.3.2.5 Các công nghệ hỗ trợ khác
Mavic Air 2 được trang bị hệ thống hỗ trợ phi công nâng cao (APAS) 3.0, giúp Drone phát hiện và tránh chướng ngại vật hiệu quả Công nghệ ánh xạ 3D cho phép Mavic Air 2 lập bản đồ và điều hướng linh hoạt qua các môi trường phức tạp, đảm bảo chuyển tiếp mượt mà và chuyển động an toàn xung quanh các vật thể Nhờ đó, Mavic Air 2 có thể định tuyến lại hướng bay để đảm bảo hoạt động bay an toàn và không bị gián đoạn.
Chiếc máy này được trang bị công nghệ AirSense tiên tiến bậc nhất hiện nay, tương tự như công nghệ hàng không ADS-B, giúp cảnh báo người sử dụng về các Flycam khác gần đó thông qua thông báo trên màn hình, âm thanh và rung trên các thiết bị di động tương thích, đảm bảo an toàn khi bay.
Machine Learning
2.4.1 Tổng quan về Machine Learning
Học máy (Machine Learning) là một ngành học thuộc lĩnh vực trí tuệ nhân tạo, tập trung vào nghiên cứu và phát triển các phương pháp cho phép các hệ thống máy tính tự động học hỏi từ dữ liệu để giải quyết các vấn đề cụ thể Trong nông nghiệp đương đại, việc áp dụng Machine Learning khá chính xác và nhắm mục tiêu chủ yếu vào việc xác định các giống cây trồng trong tự nhiên và phân loại các loại trái cây dựa trên nhận dạng màu sắc Tuy nhiên, ngành nông nghiệp đã trải qua những tổn thất tích lũy đáng kể do các bệnh khác nhau, dẫn đến giảm năng suất và thiệt hại kinh tế cao hơn Để khắc phục những trở ngại này, nhóm thực hiện đề xuất nhận diện riêng biệt và xác định vị trí sâu bệnh trên lá sầu riêng - một loại cây kinh tế cao trong ảnh dựa vào ứng dụng Machine Learning và ngôn ngữ lập trình Python Bằng cách tận dụng khả năng tự cải thiện của Machine Learning, hệ thống có thể được tối ưu hóa để đạt được mức độ chính xác tối ưu trong cả nhận dạng và tạo cơ sở dữ liệu, từ đó đảm bảo sự phát triển của ngành nông nghiệp.
2.4.2 Các bước cơ bản trong Machine Learning
Gồm 5 bước cơ bản được thể hiện ở hình 2.13:
Để máy tính có thể học hỏi, dự đoán và phân tích, các lập trình viên phải cung cấp một tập dữ liệu (dataset) cho máy Dữ liệu này có thể được thu thập thông qua nhiều phương tiện khác nhau hoặc sử dụng bộ dữ liệu có sẵn trên các nền tảng hỗ trợ lập trình học máy Sự sẵn có của các bộ dữ liệu này đã nâng cao đáng kể tính khả thi của việc phát triển và triển khai các thuật toán học máy, cho phép máy tính tiến hành dự đoán và phân tích chính xác hơn.
Giai đoạn tiền xử lý trong Machine Learning đóng vai trò quan trọng trong việc chuẩn hóa dữ liệu thu thập được, giảm thiểu sự hiện diện của các thuộc tính thừa và dữ liệu bị hỏng hoặc bị mất Quá trình này bao gồm các bước như ghi nhãn, mã hóa đặc điểm, trích xuất tính năng và phân tách tập dữ liệu để đảm bảo đầu ra chất lượng Tuy nhiên, giai đoạn này cũng là giai đoạn tốn nhiều thời gian nhất trong quy trình làm việc, chiếm khoảng 70% tổng thời gian Việc áp dụng các kỹ thuật tiền xử lý phù hợp và hiệu quả là điều kiện tiên quyết để đảm bảo rằng các mô hình Machine Learning tiếp theo có thể tạo ra kết quả chính xác.
Huấn luyện mô hình
Bước huấn luyện mô hình là giai đoạn quan trọng trong quy trình máy học, nơi mô hình được đào tạo trên dữ liệu cung cấp và thực hiện các thao tác cần thiết để đánh giá mô hình Trong bước này, mô hình sẽ được huấn luyện dựa trên dữ liệu đầu vào và thực hiện các tính toán để tạo ra kết quả Sau đó, kết quả sẽ được đánh giá để xác định mức độ chính xác và hiệu suất của mô hình.
Sau khi hoàn thành quá trình huấn luyện mô hình, bước tiếp theo quan trọng là đánh giá mô hình mới được tạo ra Việc đánh giá này sẽ giúp xác định xếp hạng của mô hình, và xếp hạng này có thể thay đổi tùy thuộc vào loại phép đo cụ thể được sử dụng trong quá trình đánh giá.
Một mô hình được coi là hiệu quả khi đạt mức độ chính xác vượt quá 70% Ngược lại, nếu mô hình không đáp ứng yêu cầu này, nó sẽ được xem là không tối ưu Việc tuân thủ các tiêu chuẩn trên là điều quan trọng để đảm bảo hiệu quả của mô hình.
Giai đoạn cải thiện là bước quan trọng trong quy trình làm việc của học máy, nơi các mô hình được đánh giá nghiêm ngặt để đảm bảo độ chính xác mong đợi Những mô hình không đáp ứng tiêu chuẩn quy định sẽ phải trải qua giai đoạn thứ ba lặp đi lặp lại cho đến khi đạt được kết quả như mong muốn Đặc biệt, ba giai đoạn cuối cùng của quy trình làm việc cho học máy chiếm khoảng 30% hoạt động tổng thể, nhấn mạnh tầm quan trọng của việc tuân thủ quy trình đánh giá tỉ mỉ để đạt được kết quả mong muốn.
2.4.3 Ứng dụng của Machine Learning
Machine Learning được ứng dụng khá phổ biến trong các lĩnh vực khác nhau như:
Xử lý ảnh (image processing) là một bài toán quan trọng trong lĩnh vực công nghệ thông tin, giúp giải quyết các vấn đề liên quan đến hình ảnh và thực hiện các phép biến đổi trên dữ liệu dạng ảnh Bài toán này thường được ứng dụng trong các lĩnh vực như nhận dạng hình ảnh, phân tích hình ảnh, tạo ảnh và chỉnh sửa ảnh.
Thuật toán Image Tagging cho phép tự động xác định khuôn mặt của người dùng và gắn thẻ thích hợp cho các cá nhân xuất hiện trong hình ảnh Quá trình này diễn ra liền mạch và dễ dàng nhờ nền tảng được thiết lập dựa trên các hình ảnh tự gắn thẻ đã được thiết lập trước đó, mang lại trải nghiệm người dùng hiệu quả và tiện lợi hơn.
- Optical Character Recognition (nhận dạng ký tự): Thuật toán sử dụng chuyển đổi dữ liệu dạng văn bản trên giấy tờ thành dữ liệu số
Hình 2.14 Machine Learning được ứng dụng trong xử lý ảnh
Phân tích văn bản
Phân tích văn bản hay Text analysis là một công nghệ sử dụng trong việc trích xuất và phân loại thông tin từ văn bản, bao gồm cả bài đăng Facebook, thư điện tử, tài liệu và nhiều loại nội dung khác Công nghệ này cho phép chúng ta tự động hóa quá trình phân tích và xử lý dữ liệu từ văn bản, giúp tiết kiệm thời gian và tăng độ chính xác.
Lọc tin nhắn rác là ứng dụng phổ biến nhất của Machine Learning trong phân tích văn bản, giúp phân loại và xác định xem một thư email có phải là thư rác hay không dựa trên nội dung của nó Công nghệ này hoạt động bằng cách phân biệt hiệu quả sự liên quan của nội dung tin nhắn với người nhận, từ đó hợp lý hóa các quy trình giao tiếp và giảm lãng phí thời gian.
Khai thác thông tin là quá trình phân tích văn bản để máy tính có thể xác định và trích xuất các thông tin quan trọng Quá trình này cho phép máy tính xem xét kỹ lưỡng văn bản và suy ra các chi tiết cần thiết, bao gồm tên người, từ khóa quan trọng và các thông tin khác có giá trị.
Khai phá dữ liệu (Data mining) là quá trình xác định và trích xuất thông tin có ý nghĩa từ các bộ dữ liệu lớn thông qua việc sử dụng các thuật toán và mô hình thống kê phức tạp Quá trình này liên quan đến việc phân tích và giải thích các mẫu và xu hướng dữ liệu để đạt được các dự đoán hoặc hiểu biết chính xác Với sự hỗ trợ của học máy (Machine Learning), máy có thể dự đoán chính xác giá trị của các bản ghi mới bằng cách tận dụng nội dung của các bản ghi đã học trước đó Một số ứng dụng phổ biến của Machine Learning trong khai phá dữ liệu bao gồm việc phân tích và dự đoán các mẫu dữ liệu phức tạp, giúp doanh nghiệp và tổ chức đưa ra quyết định sáng suốt hơn.
- Anomaly detection (Phát hiện những bất thường): Sử dụng để tìm ra những ngoại lệ (có thể là phát hiện gian lận khi sử dụng thẻ tín dụng)
Dự đoán giá trị tài sản như giá nhà, giá xe, là một ứng dụng phổ biến của công nghệ trí tuệ nhân tạo Thông qua việc nhập dữ liệu cần thiết vào các bản ghi, hệ thống có thể tiến hành dự đoán chính xác sau khi đã được huấn luyện trên các dữ liệu cơ bản trước đó.
Hình 2.15 Data mining sử dụng thuật toán Machine Learning
Visual Studio
Visual Studio là một trong những công cụ lập trình nổi tiếng và mạnh mẽ nhất được phát triển bởi Microsoft, cho đến nay vẫn chưa có phần mềm nào khác có thể thay thế nó Được xây dựng bằng hai ngôn ngữ lập trình chính là C# và VB+, công cụ này hỗ trợ người dùng lập trình hệ thống một cách dễ dàng và nhanh chóng, giúp tăng cường hiệu suất và chất lượng của dự án.
Visual Studio là một phần mềm lập trình hệ thống được phát triển bởi Microsoft, cung cấp nhiều biến thể khác nhau để đáp ứng nhu cầu sử dụng đa dạng của người dùng Các phiên bản này cho phép người dùng lựa chọn phiên bản phù hợp nhất với mô hình và cấu hình sử dụng cụ thể của họ Ngoài ra, Visual Studio cũng cung cấp tính năng tùy chỉnh giao diện chính cho máy tính dựa trên nhu cầu sử dụng cụ thể của từng người dùng, mang lại trải nghiệm lập trình linh hoạt và hiệu quả.
Visual Studio là một phần mềm linh hoạt và đa năng, cung cấp nhiều khả năng cho người dùng, bao gồm cả việc tạo ứng dụng cho thiết bị di động, nền tảng web và hệ điều hành Windows Phần mềm này được thiết kế để mang lại một môi trường phát triển toàn diện, thân thiện với người dùng và dễ điều hướng Ngoài ra, Visual Studio còn hỗ trợ một loạt các ngôn ngữ và nền tảng lập trình, giúp người dùng có thể phát triển ứng dụng một cách hiệu quả và linh hoạt.
Visual Studio cung cấp bộ công cụ toàn diện giúp các nhà phát triển làm việc hiệu quả và hiệu quả hơn Với khả năng gỡ lỗi, phân tích mã và kiểm tra tích hợp, các nhà phát triển có thể xác định và giải quyết vấn đề nhanh chóng và dễ dàng Ngoài ra, phần mềm này còn hỗ trợ các hệ thống kiểm soát phiên bản, cho phép cộng tác hiệu quả trong các dự án với đồng nghiệp và các bên liên quan, từ đó nâng cao chất lượng và tốc độ phát triển dự án.
Visual Studio là một phần mềm lập trình hệ thống toàn diện, cung cấp môi trường phát triển dễ điều hướng và sử dụng Phần mềm này cho phép các nhà phát triển làm việc hiệu quả hơn và hợp tác trên nhiều dự án, nền tảng và ngôn ngữ lập trình khác nhau Tính linh hoạt và giao diện thân thiện với người dùng của Visual Studio làm cho nó trở thành lựa chọn lý tưởng cho các nhà phát triển ở mọi cấp độ kinh nghiệm.
➢ Một số tính năng của phần mềm Visual Studio:
Visual Studio là một môi trường phát triển tích hợp toàn diện, bao gồm một trình soạn thảo mã mạnh mẽ với khả năng hỗ trợ tô sáng cú pháp và hoàn thành mã thông minh với IntelliSense Tính năng này không chỉ hỗ trợ cho các hàm, biến và phương pháp, mà còn mở rộng cho các cấu trúc ngôn ngữ như truy vấn hoặc vòng điều khiển, giúp người dùng viết mã một cách hiệu quả và chính xác hơn.
Trình soạn thảo mã trong Visual Studio hỗ trợ cài đặt dấu trang, cho phép điều hướng nhanh chóng và dễ dàng đến các phần quan trọng của mã Ngoài ra, tính năng điều hướng như thu hẹp các khối mã và tìm kiếm gia tăng cũng được tích hợp, giúp sắp xếp và tối ưu hóa quá trình mã hóa một cách hiệu quả.
Visual Studio cũng được trang bị một thuộc tính biên dịch nền, cho phép chương trình tự động biên dịch mã trong khi đang được viết, cung cấp phản hồi cú pháp và xác định các lỗi biên dịch một cách hiệu quả.
Visual Studio sở hữu trình gỡ lỗi tinh vi, kết hợp lợi thế của cả lập trình gỡ lỗi cấp máy và mã nguồn, mang lại sự linh hoạt trong việc xử lý mã quản lý cũng như các ứng dụng được viết bằng ngôn ngữ được hỗ trợ Tính năng này cho phép các nhà phát triển dễ dàng và thành thạo khắc phục sự cố và gỡ lỗi ứng dụng của mình Nhờ đó, trình gỡ lỗi của Visual Studio trở thành công cụ không thể thiếu cho các nhà phát triển trong việc tối ưu hóa và hoàn thiện sản phẩm của mình.
Windows Forms là công cụ lý tưởng để tạo giao diện người dùng đồ họa (GUI) và cung cấp nhiều bố cục để xây dựng các nút điều khiển trong mẫu, đồng thời cho phép cố định chúng ở bên cạnh giao diện Ngoài ra, việc triển khai các kiểm soát trình bày dữ liệu được thực hiện thông qua liên kết của các nguồn dữ liệu như cơ sở dữ liệu hoặc truy vấn, giúp quản lý dữ liệu hiệu quả và thúc đẩy trải nghiệm người dùng liền mạch.
Tính năng hoạt động của Windows Presentation Foundation được thiết kế tương tự như Windows Forms Designer, cho phép người dùng thực hiện chức năng kéo và thả ẩn dụ một cách dễ dàng Điều này phục vụ cho việc tạo ra các tương tác giữa người và máy tính được thiết kế riêng biệt, nhằm tối ưu hóa trải nghiệm người dùng tổng thể và hợp lý hóa năng suất làm việc.
Visual Studio được trang bị một trình soạn thảo và thiết kế trang web toàn diện, cho phép người dùng dễ dàng kéo và thao tác các trang web và đối tượng, tạo điều kiện thuận lợi cho việc phát triển và thiết kế web hiệu quả.
Google Colab
Google Colaboratory, hay còn được gọi là Google Colab, là một nền tảng trực tuyến miễn phí hỗ trợ người dùng phát triển và chạy mã bằng Python, đồng thời cung cấp một môi trường lý tưởng để phân tích dữ liệu, nghiên cứu trí tuệ nhân tạo và học máy.
Google Colab được lưu trữ và vận hành trên nền tảng Cloud của Google, giúp người dùng không cần cài đặt hoặc định cấu hình phần mềm trên máy cục bộ Điều này cho phép người dùng truy cập công việc của mình từ bất kỳ đâu có kết nối Internet, mang lại sự linh hoạt và tiện lợi trong việc làm việc.
Google Colab nổi bật với tính năng cung cấp quyền truy cập miễn phí vào các tài nguyên máy tính mạnh mẽ, bao gồm CPU, GPU và TPU, giúp chạy các tính toán quy mô lớn và đào tạo mô hình Machine Learning phức tạp Ngoài ra, ứng dụng này còn tích hợp với Google Drive, cho phép người dùng lưu trữ và chia sẻ công việc dễ dàng Với thư viện phân tích dữ liệu và Machine Learning phong phú, bao gồm NumPy, Pandas, TensorFlow và PyTorch, Google Colab trở thành công cụ lý tưởng cho các nhà phát triển và nghiên cứu.
Tổng quan, Google Colab là một công cụ mạnh mẽ cho bất kỳ ai muốn làm việc với dữ liệu và mã bằng Python Đặc biệt, công cụ này hữu ích cho các dự án máy học và trí tuệ nhân tạo, giúp người dùng dễ dàng thực hiện các tác vụ phức tạp.
Hình 2.18 Giao diện chào của Google Colab
2.6.2 Các tính năng nổi trội của Google Colab
Hình 2.19 Một số tính năng nổi trội của Google colab
Người dùng miễn phí của Colab được cấp đặc quyền sử dụng thời gian chạy GPU và TPU trong tối đa 12 giờ, giúp tăng tốc quá trình tính toán và xử lý dữ liệu Cụ thể, thời gian chạy GPU này được tăng cường bởi CPU Intel Xeon @ 2.2 GHz, RAM 13 GB, bộ tăng tốc Tesla K80 và VRAM 12 GB, mang lại hiệu suất cao cho người dùng.
GDDR5 Sự phân bổ tài nguyên hào phóng này cho phép người dùng thực hiện các tác vụ phức tạp với tốc độ và dễ dàng tương đối
Thời gian chạy TPU bao gồm CPU Intel Xeon @2 30 GHz mạnh mẽ, đi kèm với RAM
Với 13 GB và TPU đám mây cung cấp sức mạnh tính toán khổng lồ lên đến 180 teraflop, Colab Pro và Pro + mang đến cho bạn quyền truy cập vào nhiều lựa chọn CPU, TPU và GPU trong khoảng thời gian từ 12 giờ trở lên, cho phép thực hiện các bài kiểm tra và đánh giá toàn diện Điều này mở ra khả năng vô hạn cho thử nghiệm và phân tích, làm cho Colab trở thành một lựa chọn lý tưởng cho mục đích nghiên cứu và phát triển.
Chia sẻ sổ ghi chép
Trước khi Colab ra đời, việc truy cập và chia sẻ sổ ghi chép mã Python là một thách thức Tuy nhiên, hiện nay, các tệp Colab được lưu trên Google Drive có thể được chia sẻ dễ dàng thông qua các liên kết có thể chia sẻ Điều này cho phép người dùng phân phối các liên kết đến những người khác một cách nhanh chóng và tiện lợi, tạo điều kiện cho sự hợp tác và phát triển dự án Tính năng này được khuếch đại thêm bởi khả năng mời các lập trình viên khác tham gia dự án thông qua email Google, giúp việc làm việc cộng tác trở nên dễ dàng hơn bao giờ hết.
Cài đặt thư viện đặc biệt
Nền tảng Colab cung cấp khả năng cài đặt các thư viện không cộng tác như AWS S3, GCP, SQL, MySQL, giúp người dùng truy cập và tích hợp các công nghệ này một cách dễ dàng.
Thư viện được cài đặt sẵn
Google Colab cung cấp một loạt các thư viện được cài đặt sẵn, cho phép nhập dễ dàng các thư viện cần thiết từ các đoạn mã, bao gồm NumPy, Pandas, Matplotlib, PyTorch, TensorFlow, Keras và nhiều thư viện máy học khác Sự đa dạng của các nguồn lực có sẵn thông qua Google Colab giúp nó trở thành một công cụ vô giá cho cả cá nhân và tổ chức muốn tối ưu hóa quy trình mã hóa của họ.
Mã hóa cộng tác là một kỹ thuật quan trọng trong các dự án nhóm, giúp nhóm hoàn thành các mốc quan trọng sớm hơn dự kiến Quá trình này cho phép chia sẻ liên kết có thể chỉnh sửa với các cộng tác viên hoặc mời họ viết mã nhóm, giúp toàn bộ sổ ghi chép Python tự động cập nhật dưới dạng mã nhóm, tương tự như trải nghiệm làm việc trên Google Sheets hoặc các tài liệu được chia sẻ.
Google Colab sử dụng hạn ngạch lưu trữ của Google Drive cho mục đích bảo quản tệp
Với khả năng truy cập từ bất kỳ thiết bị nào, chúng ta có thể dễ dàng tiếp tục công việc của mình từ mọi nơi Ngoài ra, lưu trữ đám mây trên Google Drive còn cung cấp một lớp bảo mật bổ sung, giúp bảo vệ dữ liệu quan trọng của chúng ta khỏi những rủi ro không lường trước được Nhờ những lợi ích đa dạng này, Google Colab đã trở thành lựa chọn ưa thích của nhiều chuyên gia và tổ chức trong việc lưu trữ và truy cập dữ liệu một cách linh hoạt và an toàn.
Liên kết tài khoản GitHub với Google Colab mang lại cơ hội nhập và xuất tệp mã một cách liền mạch Để bắt đầu nhập tệp, bạn có thể nhấn Ctrl+O và chọn tab GitHub Ngược lại, chức năng xuất tệp có thể được thực hiện bằng cách chọn "Lưu bản sao vào GitHub" từ menu Tệp, cho phép bạn gửi tệp đến GitHub một cách dễ dàng và không gặp biến chứng.
Google Colaboratory cung cấp nhiều nguồn dữ liệu đa dạng, phục vụ cho các dự án đào tạo về máy học và trí tuệ nhân tạo Người dùng có thể nhập dữ liệu từ máy cục bộ, đính kèm Google Drive, tìm nạp dữ liệu từ xa hoặc sao chép kho lưu trữ GitHub vào Colab, mang lại vô số tùy chọn để đáp ứng các yêu cầu đào tạo ML và AI.
Kiểm soát phiên bản tự động
Google Colab cung cấp tính năng theo dõi lịch sử toàn diện, ghi lại mọi sửa đổi được thực hiện cho một tệp kể từ khi tạo ban đầu Người dùng có thể dễ dàng truy cập nhật ký bằng cách điều hướng đến menu tệp và chọn tùy chọn lịch sử sửa đổi Tính năng này cung cấp cho người dùng một lớp kiểm soát và minh bạch bổ sung, làm cho nó trở thành một nguồn tài nguyên có giá trị cho các dự án hợp tác hoặc những dự án yêu cầu cập nhật thường xuyên.
2.6.3 So sánh Google Colab và Jupyter Notebook
Tính năng Code Doc Google Colaboratory Jupyter Notebook
Xem tập tin mã ngay lập tức Có Không
Chia sẻ tài liệu mã Có Không
Thư viện đã cài đặt Có Không Đám mây lưu trữ Có Không Đồng bộ hóa tập tin Có Không
Khác với Jupyter Notebook, Colab không yêu cầu cài đặt phần mềm trên máy tính cục bộ, giúp tối ưu hóa các nhiệm vụ tính toán mà không cần thêm gánh nặng cài đặt Điều này đặc biệt có lợi cho những người muốn hợp lý hóa quy trình làm việc của mình Trong khi đó, Jupyter Notebook đòi hỏi người dùng phải cài đặt phần mềm bổ sung và sử dụng tài nguyên máy tính cục bộ để tính toán, điều này có thể ảnh hưởng đến năng suất làm việc của họ.
Ngôn ngữ lập trình Python
- Google sẽ yêu cầu chọn một tài khoản để ủy quyền
Lưu vào và nhập từ Google Trang tính
Chúng ta có thể dễ dàng lưu dữ liệu sổ ghi chép của mình vào tệp Google Trang tính để xử lý thêm
Hình 2.26 Lưu vào Google Trang Tính
- Nhấp vào nút Đoạn mã ở góc dưới cùng bên trái
- Một ngăn điều hướng sẽ mở ra ở phía bên phải
- Nhập Trang tính vào bộ lọc và bạn sẽ tìm thấy Lưu dữ liệu và Nhập đoạn mã dữ liệu
- Nhấp đúp chuột vào tiêu đề để đưa mã vào sổ ghi chép
2.7 Ngôn ngữ lập trình Python
Python là ngôn ngữ lập trình được sử dụng rộng rãi trong nhiều lĩnh vực, bao gồm phát triển ứng dụng web, phần mềm, khoa học dữ liệu và học máy Ưu điểm của Python là hiệu quả, dễ học và khả năng tương thích cao với nhiều nền tảng, khiến nó trở thành lựa chọn hàng đầu cho các nhà phát triển Với phần mềm miễn phí và tích hợp liền mạch với nhiều hệ thống, Python giúp tăng tốc quá trình phát triển Nhìn chung, Python là ngôn ngữ lập trình đa năng, phục vụ như một công cụ lý tưởng cho các nhà phát triển muốn xây dựng các ứng dụng hiệu quả và có thể mở rộng trên nhiều lĩnh vực.
Những lợi ích của Python bao gồm:
Python giúp cải thiện năng suất làm việc của các nhà phát triển nhờ khả năng sử dụng ít dòng mã hơn so với các ngôn ngữ lập trình khác, cho phép họ viết chương trình hiệu quả và nhanh chóng hơn.
Python sở hữu một thư viện tiêu chuẩn rộng lớn với hàng loạt mã có thể tái sử dụng, cho phép giải quyết hầu như bất kỳ tác vụ nào Điều này giúp giảm đáng kể gánh nặng phát triển phần mềm từ đầu, do đó nhu cầu viết mã mới trở nên không cần thiết Nhờ đó, các nhà phát triển có thể tập trung vào các khía cạnh phức tạp hơn của dự án, từ đó tối ưu hóa quy trình phát triển và nâng cao hiệu suất làm việc.
- Các nhà phát triển có thể dễ dàng sử dụng Python với các ngôn ngữ lập trình phổ biến khác như Java, C và C++
Cộng đồng Python là một cộng đồng tích cực và đông đảo, bao gồm hàng triệu nhà phát triển nhiệt tình trên toàn thế giới Khi gặp phải vấn đề, bạn có thể nhận được sự hỗ trợ nhanh chóng và kịp thời từ cộng đồng này, giúp bạn giải quyết khó khăn một cách hiệu quả.
Python được biết đến là ngôn ngữ lập trình giúp nâng cao hiệu quả của các nhà phát triển vì nó yêu cầu số lượng dòng mã ít hơn để viết một chương trình so với các ngôn ngữ lập trình khác Điều này giúp làm tăng năng suất của nhà phát triển, cho phép họ hoàn thành công việc nhanh chóng và hiệu quả hơn.
- Python có thể được sử dụng trên nhiều hệ điều hành máy tính khác nhau, chẳng hạn như Windows, macOS, Linux và Unix
2.7.3 Một số thư viện Python phổ biến
Thư viện là một kho lưu trữ mã thường được sử dụng, giúp các lập trình viên Python tiết kiệm thời gian và công sức bằng cách loại bỏ sự cần thiết phải tạo mã từ đầu Với hơn 137.000 thư viện Python có sẵn, các nhà phát triển có thể tận dụng các chức năng có sẵn để đẩy nhanh quá trình phát triển ứng dụng đa dạng, bao gồm phát triển web, khoa học dữ liệu và học máy Thư viện chuẩn của Python cũng cung cấp một mảng các hàm có thể tái sử dụng, giúp duy trì tính chính xác và hiệu quả trong quá trình phát triển.
Một số thư viện Python phổ biến:
NumPy là một thư viện nổi tiếng được áp dụng rộng rãi trong việc tạo và quản lý mảng, thao tác các hình dạng logic và thực hiện các phép toán đại số tuyến tính Với khả năng tích hợp đa dạng với các ngôn ngữ như C và C++, NumPy mang lại tính linh hoạt và dễ sử dụng cao Nhờ đó, người dùng có thể tận dụng các chức năng của NumPy để thực hiện các phép tính số phức tạp, các hoạt động khoa học và phân tích dữ liệu một cách hiệu quả và chính xác.
Keras là một thư viện mạng nơ-ron mạnh mẽ của Python, cung cấp nhiều chức năng như xử lý dữ liệu, trực quan hóa và các tiện ích khác Với cấu trúc module linh hoạt, Keras cho phép phát triển các ứng dụng trí tuệ nhân tạo tiên tiến và cách mạng Là một công cụ không thể thiếu, Keras giúp các lập trình viên tạo ra các giải pháp AI hiện đại và hiệu quả.
Pandas cung cấp một cấu trúc dữ liệu linh hoạt và hợp lý tỉ mỉ, giúp thao tác dữ liệu có cấu trúc một cách hiệu quả Thư viện này trang bị nhiều chức năng như đọc, viết, hợp nhất, lọc và nhóm dữ liệu, đáp ứng nhu cầu thực hiện các nhiệm vụ khoa học dữ liệu và phân tích dữ liệu khác nhau Với tiện ích và tính linh hoạt to lớn, Pandas trở thành lựa chọn hàng đầu của nhiều nhà thực hành khoa học dữ liệu trong việc giải quyết các mối quan tâm quản lý dữ liệu đa dạng Sự áp dụng rộng rãi và tiếp tục sử dụng của thư viện trong lĩnh vực phân tích dữ liệu là minh chứng cho tính hiệu quả và tính không thể thiếu của nó.
Thư viện Matplotlib là công cụ phổ biến được các nhà phát triển sử dụng để trực quan hóa dữ liệu dưới dạng đồ họa 2D và 3D chất lượng cao, đặc biệt trong các ứng dụng khoa học Với Matplotlib, người dùng có thể tạo ra nhiều loại biểu đồ khác nhau, bao gồm biểu đồ đường và biểu đồ cột, đồng thời hiển thị nhiều biểu đồ cùng lúc trên bất kỳ nền tảng nào Tính linh hoạt và khả năng thích ứng của thư viện này đã làm cho nó trở thành lựa chọn hàng đầu trong cộng đồng khoa học Nhờ khả năng trình bày dữ liệu phức tạp một cách rõ ràng và súc tích thông qua các phương tiện trực quan, Matplotlib hỗ trợ việc hiểu các xu hướng và mẫu dữ liệu, đồng thời là công cụ tuyệt vời để trực quan hóa và phân tích dữ liệu với giao diện thân thiện và các tính năng nâng cao.
OpenCV-Python là một thư viện phần mềm mạnh mẽ và linh hoạt, được sử dụng rộng rãi trong lĩnh vực thị giác máy tính để thao tác hình ảnh cho các ứng dụng khác nhau Với khả năng cung cấp nhiều chức năng xử lý hình ảnh, thư viện này cho phép các nhà phát triển đọc và viết hình ảnh đồng thời, tạo môi trường 3D từ môi trường 2D và ghi, kiểm tra hình ảnh từ video một cách dễ dàng và chính xác.
Thư viện Request là một nguồn tài nguyên vô giá cho các nhà phát triển web, cung cấp vô số chức năng hữu ích cho việc phát triển các ứng dụng web Với thư viện này, bạn có thể thực hiện nhiều tác vụ khác nhau, bao gồm gửi yêu cầu HTTPS, thêm tiêu đề và tham số URL, cũng như bổ sung dữ liệu khi giao tiếp với các ứng dụng web.
Khung Python là một bản tóm tắt của các gói và module đa dạng, giúp đẩy nhanh sự phát triển của các ứng dụng Python Việc áp dụng phương pháp Pythonic có thể tăng đáng kể tốc độ và hiệu quả của chương trình, do đó, bắt buộc phải sử dụng khung Python để xây dựng các ứng dụng web theo cách tuân thủ các quy ước Pythonic Điều này giúp nâng cao hiệu suất của chương trình và mang lại kết quả tối ưu.
- Khung full - stack bao gồm hầu hết mọi thứ cần thiết để xây dựng một ứng dụng lớn
Khung micro là một cấu trúc cơ bản cung cấp chức năng cơ bản để phát triển các ứng dụng Python đơn giản Về bản chất, khung này đóng vai trò là nền tảng cho việc tạo ra các ứng dụng Python với độ phức tạp tối thiểu, đồng thời cung cấp các tính năng bổ sung trong trường hợp ứng dụng yêu cầu các hoạt động phức tạp hơn.
Có thể sử dụng nhiều khung Python để giúp hoạt động phát triển hiệu quả hơn, bao gồm các khung sau:
Django là một framework web Python full-stack mạnh mẽ và linh hoạt, được ưa chuộng rộng rãi trong việc phát triển các ứng dụng web quy mô lớn Với bộ tính năng đa dạng, Django cung cấp một máy chủ web phục vụ cho phát triển và thử nghiệm, cùng với công cụ sáng tạo để xây dựng giao diện người dùng trang web Ngoài ra, Django cũng tích hợp nhiều biện pháp bảo mật, giúp các nhà phát triển dễ dàng xử lý các dự án phức tạp và trở thành lựa chọn hàng đầu trong lĩnh vực phát triển web.
YOLO version 7
Mô hình YOLO (You Only Look Once) là một phương pháp tiên tiến được sử dụng rộng rãi để phát hiện, xác định và phân loại các đối tượng khác nhau trong thời gian thực Bằng cách kết hợp các lớp tích chập và lớp kết nối, mô hình này có thể trích xuất các đặc điểm hình ảnh và dự đoán xác suất và tọa độ của đối tượng Mô hình YOLO thực hiện quá trình phát hiện đối tượng trong một bước duy nhất, làm cho nó trở thành một phương pháp hiệu quả và chính xác hơn so với các phương pháp truyền thống như R-CNN Tuy nhiên, quá trình tối ưu hóa hệ thống này có thể gặp khó khăn do hiệu suất chậm và nhu cầu đào tạo các thành phần riêng lẻ Để đảm bảo toàn bộ quá trình chạy hiệu quả, cần phải chú ý tỉ mỉ đến từng chi tiết, đặc biệt là dự đoán xác suất của lớp, PR, được điều chỉnh dựa trên sự hiện diện của một đối tượng trong ô lưới.
2.8.1.1 Cách hoạt động của YOLO Đầu vào của mô hình là một ảnh, mô hình sẽ nhận dạng ảnh đó có đối tượng nào hay không, sau đó sẽ xác định tọa độ của đối tượng trong bức ảnh Ảnh đầu vào được chia thành thành SS ô thường thì sẽ là 33, 7×7, 9×9, việc chia ô này có ảnh hưởng tới việc mô hình phát hiện đối tượng Đầu ra mô hình là một ma trận 3 chiều có kích thước SS(5N+M) với số lượng tham số mỗi ô là (5×N+M) với N và M lần lượt là số lượng khung và lớp mà mỗi ô biến độc lập Khung giới hạn mỗi biến độc lập gồm 5 thành phần (x, y, w, h, prediction) Với (x, y) là tọa độ tâm của khung giới hạn; w, h lần lượt là chiều rộng và chiều cao của khung giới hạn; prediction được định nghĩa Pr(Object)IoU(pred,truth) Tâm của khung giới hạn nằm ở ô nào thì ô đó sẽ chứa đối tượng, cho dù đối tượng có thể ở các ô khác thì cũng sẽ trả về là 0 Vì vậy, việc mà 1 ô chứa 2 hay nhiều tâm của khung giới hạn hay đối tượng thì sẽ không thể detect được, khí đó, cần phải tăng số lượng ô chia trong 1 ảnh lên Trình tự của các lớp giảm 1x1 và các lớp tích chập 3x3 được lấy cảm hứng từ mô hình Googlenet (Inception), lớp cuối cùng sử dụng chức năng kích hoạt tuyến tính Tất cả các lớp khác sử dụng relu rò rỉ (φ(x) = x, nếu x > 0; 0,1x khác)
YOLO v7 sở hữu một số điểm nổi bật quan trọng, bao gồm khả năng phát hiện và nhận dạng đối tượng trong thời gian thực với tốc độ vượt trội và hiệu suất cao Công nghệ này cũng cho phép xử lý video liên tục với độ chính xác cao và ổn định Ngoài ra, YOLO v7 sử dụng mạng nơ-ron tích chập sâu để thu thập thông tin về các tính năng của đối tượng, nâng cao độ chính xác và độ phức tạp của nhiệm vụ Đặc biệt, công nghệ này còn hỗ trợ phát hiện và nhận dạng đối tượng nhiều lớp, giúp xác định và phân loại các đối tượng khác nhau trong cùng một hình ảnh hoặc video, trở thành một công cụ nổi bật cho các nhà nghiên cứu và nhà phát triển.
- Backbone: ELAN (YOLOv7-p5, YOLOv7-p6), E-ELAN (YOLOv7-E6E)
- Neck: SPPCSPC + (CSP-OSA)PANet (YOLOv7-p5, YOLOv7-p6) + RepConv
- Head: YOLOR + Auxiliary Head (YOLOv7-p6)
YOLOv7 sử dụng backbone là ELAN (Efficient Layer Aggregation Network) Backbone của YOLOv7 được tạo từ các ELAN block
Hình 2.27 Cấu tạo của 1 ELAN Block
Một khối ELAN bao gồm ba thành phần chính: khối Cross Stage Partial (CSP), Computation Block và PointWiseCv, cho phép trích xuất tính năng hiệu quả và hiệu quả cho nhiều ứng dụng khác nhau Khối CSP chịu trách nhiệm tạo ra nhánh "cross stage partial", trong khi đó, Khối Computation Block bao gồm các lớp Conv được tính toán để tạo ra các tính năng mới thông qua 3×3 và 3×3 Convs Quá trình này kết thúc bằng việc tổng hợp feature maps lại ở cuối sử dụng toán tử concatenate trên chiều channel, trước khi được chuyển qua Pointwiseconv (1×1×1 Conv).
Các ELAN Block được kết nối với nhau thông qua các Transition Block (Hình 2.28) Mỗi Transition Block là một lần giảm kích cỡ của feature maps đi 2 lần
Hình 2.28 ELAN Block được kết nối với nhau thông qua Transition Block
Trước khi tiến vào ELAN Block đầu tiên trong backbone, ảnh đầu vào sẽ đi qua Stem Block (Hình 2.29)
Hình 2.29 Stem block ở giữa ảnh đầu vào và ELAN Block đầu tiên
Backbone hoàn chỉnh của YOLOv7 là tập hợp của các ELAN Block và các Transition block, cụ thể như hình 2.30
SPP lần đầu tiên được áp dụng trong mô hình YOLOv4 và sau đó được cải tiến thành SPPF trong YOLOv5 Tiếp đó, trong mô hình YOLOv7, SPP tiếp tục được cải tiến bằng cách áp dụng kiến trúc CSP, tạo nên SPPCSP như được minh họa trong hình 2.31.
Hình 2.31 Kiến trúc của SPPCSPC
Panet là một phiên bản mở rộng của Feature Pyramid Network (FPN), nhưng trong YoLoV7, sự kết hợp của 2 feature maps đối tượng từ 2 scale được thực hiện bằng cách sử dụng toán tử concatenate Điều này tạo ra một feature maps trung gian trải qua quá trình xử lý thêm bằng cách sử dụng module CSP-OSA, thay vì được hợp nhất trực tiếp với bản đồ đối tượng từ scale thấp hơn Cách tiếp cận này giúp nâng cao khả năng của mô hình, cho phép nó tạo ra các kết quả tiên tiến trong các nhiệm vụ phát hiện và nhận dạng đối tượng.
Hình 2.32 Sự khác biệt của (CSP-OSA)PANet (phải) so với PANet thông thường
Trong kiến trúc PANet truyền thống, Top Down pathway chỉ sử dụng một FPN, kết hợp trực tiếp feature maps từ backbone ở các scale khác nhau mà không có bước xử lý trung gian Ngược lại, YOLOv7 áp dụng quy trình phức tạp hơn, trong đó feature maps từ scale /16 được kết hợp với scale /8 và sau đó xử lý thêm qua CSP-OSA module trước khi kết hợp với scale /8 Tương tự, Bottom Up pathway của YOLOv7 cũng áp dụng quy trình xử lý feature maps qua CSP-OSA và downsample qua Transition Block, khác biệt so với việc sử dụng 3x3 Conv trong PANet.
OSA module bắt nguồn từ VoVNet, là một module cực kì nhanh và tiết kiệm điện năng CSP-OSA module có kiến trúc ở hình 2.33
Hình 2.33 OSA module thông thường trong VoVNet (trên) và CSP-OSA module sử dụng trong neck của YOLOv7 (dưới)
Feature maps thu được từ các tỷ lệ khác nhau sẽ được xử lý thêm bằng cách áp dụng Conv 3 × 3 × 3 cho từng tỷ lệ, sau đó được chuyển qua mạng FPN hoặc Panet để tạo ra các tính năng chi tiết hơn.
Trong kiến trúc Neck của YOLOv7, quá trình xử lý hình ảnh được thực hiện bởi RepConv, một module có cấu trúc Conv 3 × 3 giống hệt với các module cùng thời, nhưng sở hữu độ chính xác cao hơn đáng kể RepConv áp dụng phương pháp Re-param để tạo ra một module có tốc độ xử lý cao và độ chính xác ấn tượng, trở thành một bổ sung thay đổi cuộc chơi trong lĩnh vực xử lý hình ảnh.
Kiến trúc tổng quát của Neck:
Head của YOLOv7 là YOLOR, sử dụng implicit knowledge
2.8.3 Các khái niệm và kĩ thuật mới trong mô hình YOLO v7
2.8.3.1 Model scaling Để tạo ra các phiên bản khác nhau một cách efficient (hiệu quả), tác giả của YOLOv7 đề xuất ra một phương pháp model scaling mới cho model dạng concatenate Các phương pháp model scaling từ trc tới giờ như EfficientNet, RegNet đều là các plain model (model không bao gồm phép concatenate) Trong Scaled-YOLOv4, tác giả cũng đã đề xuất ra một phương pháp model scaling nhưng nó vẫn chưa tốt, vì lúc đó tác giả chỉ thực hiện tăng số stage trong model [7]
Khi scale một model, ta sẽ scale theo 3 chiều như sau:
• Depth scaling: scale theo độ sâu, đây là cách phổ biến nhất Scale theo độ sâu là tăng số lượng layer lên (VD: ResNet-50 -> ResNet-101 -> ResNet-152)
• Width scaling: scale theo chiều rộng của mạng Scale theo chiều rộng là tăng số lượng channels ở trong layer lên
• Resolution scaling: scale kích cỡ của ảnh đầu vào
• Stage (number of feature pyramids): Số lượng feature trong pyramids
EfficientNet đã thực hiện phân tích đầu tiên về mối liên hệ giữa việc mở rộng mô hình theo ba chiều chiều rộng, chiều sâu và chiều phân giải, đồng thời đề xuất một phương pháp để mở rộng đồng thời cả ba chiều này Kết quả cho thấy phương pháp này không chỉ giúp tăng độ chính xác mà còn hạn chế sự gia tăng số lượng tham số, từ đó được gọi là phương pháp mở rộng hiệu quả.
Các phương pháp model scaling hiện tại chưa đề cập đến dạng model concatenate, một hạn chế đáng kể trong việc phát triển các mô hình học sâu Xét đến Compatation Block bên trong ELAN Block, các tác giả của YOLOv7 như Wang, Chien-Yao, Bochkovskiy, Alexey và Liao, Hong-Yuan Mark đã đề xuất các giải pháp mới để cải thiện hiệu suất của mô hình Tuy nhiên, vẫn còn nhiều cơ hội để khám phá và phát triển các phương pháp model scaling hiệu quả hơn cho dạng model concatenate.
A study in 2022 observed that scaling in depth, or increasing the number of layers within a computation block, results in a corresponding increase in the number of channels generated during concatenation.
Hình 2.35 Mô hỉnh up scaling chiều sâu của ELAN Block – Nguồn: Wang, Chien-Yao and Bochkovskiy, Alexey and Liao, Hong-Yuan Mark, 2022
Sau quá trình tính toán, tác giả của YOLOv7 đã xác định được tỷ lệ scale chiều sâu lên 1.5 lần và chiều rộng lên 1.25 lần Áp dụng phương pháp này vào ELAN Block, số lượng layers trong computation block tăng từ 4 lên 6 (tương đương 1.5 lần) và số lượng channels khi concatenate tăng từ 64x4 lên 64x5 (tương đương 1.25 lần).
Hình 2.36 Mô hình sau khi up scaling
Re-parametrizationlà một kỹ thuật được sử dụng sau khi đào tạo để cải thiện mô hình
Việc sử dụng re-parametrization giúp cải thiện kết quả suy luận, mặc dù nó có thể làm tăng thời gian đào tạo Có hai loại re-parametrization chính được sử dụng để hoàn thiện các mô hình: Level và Module Level, giúp tối ưu hóa quá trình đào tạo và đạt được kết quả tốt hơn.
Việc re-parameter module level có thể được thực hiện theo hai cách sau:
XÂY DỰNG MÔ HÌNH THUẬT TOÁN NHẬN DIỆN HÌNH ẢNH
Lưu đồ thuật toán nhận diện hình ảnh
- Layer 1 (data transformation): Lớp chuyển đổi dữ liệu khởi tạo
- Layer 2 (data transformation): Lớp chuyển đổi dữ liệu sau tinh chỉnh trọng số
- Prediction Y’: Kết quả dự đoán thu được
- True Target Y: Mô hình mẫu từ kết quả huấn luyện
- Weights 1: Trọng số khởi tạo ngẫu nhiên
- Weights 2: Trọng số đã tinh chỉnh
- Optimizer: Chương trình tối ưu hóa trọng số
- Loss function: Hàm tổn thất
- Loss score: Kết quả tổn thất
Hình 3.1 Lưu đồ thuật toán nhận diện hình ảnh
Huấn luyện hệ thống
3.2.1 Xây dựng cơ sở dữ liệu nguồn
Tạo một hệ cơ sở dữ liệu ban đầu về vật thể muốn nhận dạng là sâu bệnh trên cây, được thực hiện gồm 4 bước [8]:
Bước 1: Phân tích và điều chỉnh mức độ điểm ảnh của dữ liệu đầu vào:
- Đầu tiên, huấn luyện trước 20 lớp kết hợp đầu tiên bằng cách sử dụng bộ dữ liệu cạnh tranh lớp 1000 ImageNet, sử dụng kích thước đầu vào là 224x224
- Sau đó, tăng độ phân giải đầu vào lên 448x448
- Huấn luyện toàn bộ mạng cho khoảng 135 epochs sử dụng kích thước nhóm là 64, động lượng 0,9 và phân rã là 0,0005
- Đối với các vòng lặp đầu tiên, tỷ lệ học được tăng chậm từ 0,001 lên 0,01 Huấn luyện cho khoảng 75 vòng lặp và sau đó bắt đầu giảm
- Sử dụng phép gia tăng dữ liệu với tỷ lệ và chuyển đổi ngẫu nhiên và điều chỉnh ngẫu nhiên độ phơi sáng và bão hòa
Hình 3.2 Mô hình biểu diễn phân tích hình ảnh
Bước 2: Quét các điểm ảnh để xác định vùng các điểm nổi bật:
Hệ thống hiện tại hoạt động bằng cách quét tuần tự các pixel của dữ liệu đầu vào, sau đó thực hiện kiểm tra phân vùng cơ bản Quá trình này tiếp tục với việc so sánh mật độ điểm ảnh với kết quả phù hợp, từ đó xác định khu vực có các pixel nổi bật nhất Toàn bộ quá trình được thực hiện với độ chính xác cao nhất, chú trọng đến từng chi tiết để đảm bảo kết quả tối ưu.
Bước 3: Định vị vật thể:
Hệ thống đề xuất sẽ phụ thuộc vào việc sử dụng các hình ảnh gốc để định vị các đối tượng trong hình ảnh, sau đó đối chiếu chúng để xác định các điểm chung của một số đối tượng chiếm ưu thế, đặc biệt là các đối tượng sâu bệnh Để đảm bảo độ chính xác và hiệu quả tối ưu trong quá trình đào tạo, dữ liệu đầu vào cần bao gồm một tập hợp các hình ảnh chất lượng cao, cung cấp sự thể hiện đầy đủ của các đối tượng được đề cập.
Hình 3.3 Phân tích khung định vị vật thể
Bước 4: Chọn các thuộc tính mẫu từ các điểm ảnh trong các vùng đã được định vị là giai đoạn quan trọng trong việc bảo toàn các thuộc tính của các đối tượng được lựa chọn cẩn thận làm tham số tham chiếu Hệ thống sẽ xác định mức độ giống nhau để nhận dạng các thực thể một cách chính xác Tuy nhiên, khi số lượng ảnh tăng lên và phạm vi góc mở rộng, số lượng và độ phức tạp của các tham số tham chiếu cũng sẽ tăng lên tương ứng, đòi hỏi mức độ chi tiết và tính toàn diện của các tham số tham chiếu phải tương xứng với phạm vi của cơ sở dữ liệu.
3.2.2 Xử lý đầu vào và xác định vị trí Đầu vào của mô hình là một ảnh, mô hình sẽ nhận dạng ảnh đó có đối tượng nào hay không, sau đó sẽ xác định tọa độ của đối tượng trong bức ảnh [9] Ảnh đầu vào được chia thành thành SS ô thường thì sẽ là 33, 7×7, 9×9, việc chia ô này có ảnh hưởng tới việc mô hình phát hiện đối tượng Đầu ra mô hình là một ma trận 3 chiều có kích thước SS(5N+M) với số lượng tham số mỗi ô là (5×N+M) với N và M lần lượt là số lượng khung và lớp mà mỗi ô biến độc lập Khung giới hạn mỗi biến độc lập gồm 5 thành phần (x, y, w, h, prediction) Với (x, y) là tọa độ tâm của khung giới hạn; w, h lần lượt là chiều rộng và chiều cao của khung giới hạn; prediction được định nghĩa Pr(Object)IOU(pred,truth) Tâm của khung giới hạn nằm ở ô nào thì ô đó sẽ chứa đối tượng, cho dù đối tượng có thể ở các ô khác thì cũng sẽ trả về là 0 Vì vậy, việc mà 1 ô chứa 2 hay nhiều tâm của khung giới hạn hay đối tượng thì sẽ không thể detect được, khí đó, cần phải tăng số lượng ô chia trong 1 ảnh lên [8] Trình tự của các lớp giảm 1x1 và các lớp tích chập 3x3 được lấy cảm hứng từ mô hình Googlenet (Inception), lớp cuối cùng sử dụng chức năng kích hoạt tuyến tính Tất cả các lớp khác sử dụng relu rò rỉ (φ(x) = x, nếu x > 0; 0,1x khác)
Sau 32 lần lấy mẫu, kỹ thuật lấy mẫu ngược được thực hiện với kích thước bước từ 2 đến gấp đôi kích thước của bảng tính năng kết quả, tạo ra một bảng tính năng có kích thước gấp 16 lần kích thước của mẫu đã lấy trước đó Quá trình này được lặp lại, tăng bước nhảy lên 2 cho đến khi đạt được kích thước của 8 mẫu, cho phép sử dụng độ sâu để xác định mục tiêu Tuy nhiên, phát hiện mục tiêu ở các quy mô khác nhau có thể gặp khó khăn, đặc biệt là với mục tiêu nhỏ Để giải quyết vấn đề này, Kim tự tháp mạng đặc trưng (FPN) đã được phát triển như một tính năng triết xuất nâng cao độ chính xác và tốc độ phát hiện mục tiêu, tạo ra các kim tự tháp đồ thị đối tượng chất lượng cao hơn, chính xác và hiệu quả hơn trong việc xác định mục tiêu.
Hình 3.4 Cấu trúc mạng lưới kết nối
Kiến trúc của mạng kết nối bao gồm 2 tuyến (tuyến trên, tuyến dưới) và kết nối ngang
Các tuyến trên và dưới đóng vai trò quan trọng trong quá trình chuyển đổi của mạng, nơi trích xuất các đặc điểm đầu ra của lớp cuối cùng của mỗi giai đoạn để tạo thành kim tự tháp đặc tính Quá trình này được thực hiện thông qua kỹ thuật lấy mẫu từ trên xuống dưới và kết nối ngang để hợp nhất các kết quả Kết quả của quá trình hợp nhất này là hình thành bảng đặc điểm có cùng kích thước từ dưới lên, giúp cấu trúc mạng kết nối thực hiện các chức năng một cách liền mạch và hiệu quả.
Nhân tích chập 1*1 đóng vai trò quan trọng trong việc giảm số lượng nhân tích chập mà không làm thay đổi kích thước của bảng đặc điểm, đồng thời cung cấp thông tin chi tiết hơn về các thuộc tính quan trọng của đối tượng được đề cập Quá trình này kết hợp các đặc điểm quan trọng nhất với các đặc điểm lấy mẫu lên và lấy mẫu giảm, trong khi mỗi danh mục được dự đoán tự động, đảm bảo dữ liệu ổn định về mặt cấu trúc và chính xác.
Phần 1: coord S i 0 = 2 B j 0 ij = 1 (x obj i −x )ˆ i 2 +(y i −y )ˆ i 2 (3.1) Phương trình (3.1) tính toán tổn thất liên quan đến vị trí khung giới hạn biến độc lập (x,y) Ở đây coord là một hằng số Hàm tính toán một tổng trên mỗi bộ khung giới hạn (j = 0 B) của mỗi ô lưới (i = 0 S^2) Trong đó, 1 obj ij được định nghĩa là 1, nếu một đối tượng có mặt trong ô lưới I và khung giới hạn biến độc lập jth là "chịu trách nhiệm" cho biến độc lập đó; ngược lại, 1 ij obj = 0
YOLO dự đoán nhiều khung giới hạn trên mỗi ô lưới, với mỗi khung giới hạn được gán cho một biến độc lập chịu trách nhiệm dự đoán đối tượng Biến độc lập này được chọn dựa trên dự đoán có giá trị IOU (Intersection over Union) cao nhất với độ chính xác cơ sở Vị trí khung giới hạn dự đoán được biểu diễn bởi (x, y), trong khi vị trí thực tế từ dữ liệu huấn luyện được biểu diễn bởi (x̂, ŷ).
Phần 2: coord S i 0 = 2 B j 0 ij = 1 ( w obj i − w )ˆ i 2 +( h i − h )ˆ i 2 (3.2) Phương trình (3.2) là tổn thất liên quan đến chiều rộng / chiều cao khung dự đoán Tương tự như phương trình (1), ngoại trừ căn bậc hai Số liệu lỗi đã phản ánh rằng độ lệch nhỏ trong các khung lớn hơn và có vấn đề ít hơn các khung nhỏ, trong đó, căn bậc hai của chiều rộng và chiều cao của khung bị giới hạn thay vì chiều rộng và chiều cao trực tiếp
Phần 3: S i 0 = 2 B j 0 ij = 1 (C obj i −C )ˆ i 2 + noobj S i 0 = 2 B j 0 ij = 1 noobj (C i −C )ˆ i 2 (3.3) Tính toán tổn thất liên quan đến điểm tin cậy cho mỗi khung giới hạn biến độc lập thể hiện trong (3.3) C là độ tin cậy và Ĉ là sự tương giao qua kết hợp giữa khung giới hạn biến độc lập với độ chính xác cơ sở Giá trị 1 obj bằng 1 nếu có đối tượng trong ô, và bằng 0 nếu không Riêng đối với 1 noobj thì ngược lại
Tham số noobj đóng vai trò quan trọng trong việc điều chỉnh trọng số của các phần khác nhau trong hàm tổn thất, nhằm tăng sự ổn định của mô hình Thông thường, giá trị cao nhất được áp dụng cho các dự đoán tọa độ ( coord) và giá trị thấp nhất cho các dự đoán tin cậy khi không có đối tượng ( noobj) Để tránh sự sai lệch quá lớn so với dữ liệu thực tế, người ta thường thiết lập coord = 5 và noobj = 0,5.
Phần 4: S i 0 i = 2 1 obj c classes (p (c) i −p (c))ˆ i 2 (3.4) Để phân loại, (3.4) khá tương tự như một lỗi tổng bình phương bình thường, ngoại trừ số hạng 1 obj Số hạng này được sử dụng, vì vậy không bù lỗi phân loại khi không có đối tượng nào trên ô (do đó xác suất lớp có điều kiện) obj
1i : Một hàm chỉ báo về việc liệu ô I có chứa một đối tượng hay không obj
1ij : Nó cho biết hộp giới hạn thứ J của ô I "chịu trách nhiệm" cho dự đoán đối tượng
Cij: Điểm tin cậy của CELL I, PR (chứa một đối tượng) * iou (pre, sự thật) ˆCij: Điểm tin cậy dự đoán
C: Tập hợp tất cả các lớp p (c)i : Xác suất có điều kiện của liệu tế bào I có chứa một đối tượng của lớp C∈C hay không ˆp (c)i : Xác suất lớp có điều kiện dự đoán
3.3 Tệp dữ liệu hình ảnh
Tập dữ liệu này bao gồm các mẫu ảnh lá cây sầu riêng được thu thập và phân loại thành 4 nhóm chính, bao gồm Algal Leaf Spot, Leaf Blight, Leaf Spot và No Disease, tương ứng với 3 loại bệnh phổ biến trên lá cây sầu riêng là bệnh nấm rong biển, bệnh cháy lá và bệnh đốm lá, cùng với lá cây sầu riêng khỏe mạnh Mỗi nhóm đều có các mẫu ảnh chụp từ nhiều góc độ khác nhau của lá cây sầu riêng, giúp tăng độ chính xác và đa dạng cho tập dữ liệu.
Phát hiện đối tượng
Phát hiện đối tượng là một công nghệ máy tính hiện đại có mối liên hệ chặt chẽ với thị giác máy tính và xử lý hình ảnh, tập trung vào việc xác định và phát hiện các đối tượng ngữ nghĩa của một lớp cụ thể trong hình ảnh và video kỹ thuật số Công nghệ này có nhiều ứng dụng trong các lĩnh vực như truy xuất hình ảnh, giám sát video, nhận dạng khuôn mặt và phát hiện người đi bộ trên đường Với khả năng phát hiện và xác định các đối tượng với độ chính xác cao, công nghệ phát hiện đối tượng đã trở thành một công cụ không thể thiếu trong nhiều lĩnh vực Việc tích hợp khả năng phát hiện đối tượng trong công nghệ máy tính đã mở đường cho các ứng dụng tiên tiến hơn trong tương lai, chứng minh là một yếu tố thay đổi cuộc chơi quan trọng.
Hình 3.5 Đối tượng (lá cây) bị bệnh
Hình 3.6 Đối tượng (lá cây) bị bệnh
KẾT QUẢ THỰC HIỆN VÀ ĐÁNH GIÁ MÔ HÌNH SAU KHI HUẤN LUYỆN
Giới thiệu Dataset
Việc phân chia tập dữ liệu thành các tập huấn luyện, kiểm thử và thử nghiệm là một bước quan trọng trong quá trình huấn luyện và đánh giá mô hình Quá trình này giúp đảm bảo rằng mô hình được huấn luyện và đánh giá một cách khách quan và chính xác Tập dữ liệu được chia thành ba phần chính: tập huấn luyện để huấn luyện mô hình, tập kiểm thử để đánh giá hiệu suất của mô hình và tập thử nghiệm để kiểm tra mô hình trong môi trường thực tế Việc tổ chức dữ liệu thành các thư mục con cũng giúp cho quá trình huấn luyện và đánh giá mô hình trở nên dễ dàng và hiệu quả hơn.
Tập dữ liệu này bao gồm 3000 mẫu ảnh lá cây sầu riêng được thu thập và phân loại thành 4 nhóm chính, bao gồm Algal Leaf Spot, Leaf Blight, Leaf Spot và No Disease, tương ứng với bệnh đốm rong biển, bệnh cháy lá, bệnh đốm và lá cây sầu riêng bình thường Mỗi nhóm chứa 750 mẫu ảnh chụp từ các góc khác nhau của lá cây sầu riêng, cung cấp một bộ dữ liệu đa dạng và toàn diện.
Hình 4.1 Ảnh nấm rong biển (Algal Leaf Spot)
Hình 4.2 Ảnh cháy lá (Leaf Blight)
Hình 4.3 Ảnh đốm lá (Leaf Spot)
Hình 4.4 Ảnh lá bình thường (No Disease)
Để bắt đầu với dự án, chúng ta cần phân chia tập dữ liệu thành hai phần chính, bao gồm 70% dữ liệu dùng cho tập huấn luyện và 30% dữ liệu dùng cho tập kiểm thử và thử nghiệm Tổ chức dữ liệu một cách khoa học là điều cần thiết, vì vậy chúng ta sẽ tạo một thư mục chính có tên là "dataset" và các thư mục con bên trong để lưu trữ dữ liệu một cách hệ thống.
"train" (tập huấn luyện) chứa 2100 ảnh (70% tổng số ảnh ban đầu)
"val" (tập kiểm thử) chứa 452 ảnh (15% tổng số ảnh ban đầu)
"test" (tập thử nghiệm) chứa 452 ảnh (15% tổng số ảnh ban đầu)
Các thư mục con "train," "val," và "test" được thiết kế để chứa các ảnh tương ứng với từng lớp bệnh, đồng thời đảm bảo tỷ lệ phân chia giữa các lớp bệnh vẫn được giữ nguyên, giúp duy trì tính đại diện và chính xác của dữ liệu.
Việc tổ chức dữ liệu vào các thư mục con đóng vai trò quan trọng trong việc quản lý dữ liệu một cách hiệu quả và tối ưu hóa quá trình huấn luyện mô hình nhận diện lá sâu bệnh trên cây sầu riêng Bằng cách phân loại dữ liệu vào các thư mục con, chúng ta có thể dễ dàng truy cập và quản lý dữ liệu, từ đó giúp quá trình huấn luyện và kiểm tra mô hình trở nên nhanh chóng và chính xác hơn.
Việc chuẩn bị nhãn dán (labels) cho mô hình nhận diện lá sâu bệnh trên cây sầu riêng là một bước quan trọng để đảm bảo mô hình có thể học và nhận diện đúng vị trí của lá sâu bệnh trên ảnh Các nhãn dán này thường được thể hiện dưới dạng các bounding box (hộp giới hạn) xác định vị trí của đối tượng trên ảnh, giúp mô hình nhận diện chính xác hơn.
Để xác định các vị trí và lớp của lá sâu bệnh trên ảnh, chúng ta thực hiện hai bước quan trọng Đầu tiên, chúng ta xác định vị trí của lá sâu bệnh trên mỗi ảnh trong tập dữ liệu, giúp chúng ta định vị chính xác lá bị ảnh hưởng Tiếp theo, chúng ta phân loại lá sâu bệnh thành các lớp cụ thể, bao gồm "bệnh đốm rong", "bệnh cháy lá", "bệnh đốm" và "lá bình thường", giúp chúng ta hiểu rõ hơn về tình trạng của lá.
Tạo các bounding box cho lá sâu bệnh:
Để xác định lá sâu bệnh trên ảnh, chúng ta cần tạo một hộp giới hạn (bounding box) bao quanh nó Hộp giới hạn này là một hình chữ nhật được xác định bởi các thông số (x_min, y_min) của góc trên bên trái và (x_max, y_max) của góc dưới bên phải, giúp xác định vị trí chính xác của lá sâu bệnh trên ảnh.
Hình 4.5 Vẽ bounding box trên Labelimg
Để chuẩn bị dữ liệu cho quá trình nhận dạng lá sâu bệnh, chúng ta cần tạo ra các file nhãn dán cho mỗi ảnh Các file nhãn dán này thường là các file văn bản đơn giản (.txt) chứa thông tin về vị trí và lớp của lá sâu bệnh trên ảnh Mỗi dòng trong file nhãn dán đại diện cho một lá sâu bệnh và bao gồm các thông số của bounding box và lớp tương ứng, được thể hiện theo cấu trúc "class, x_min, y_min, x_max, y_max".
Hình 4.6 Ảnh minh họa nhãn (label) file cấu hình
Thiết lập môi trường huấn luyện
Kích thước ảnh đầu vào (image size): Ảnh đầu vào có kích thước 640 x 640
Mô tả qúa trình huấn luyện: chạy file train.py với batch-size = 32 và số epochs = 500 Batch: số ảnh dùng để huấn luyện trong mỗi lượt
Epochs: số lượt huấn luyện cho tất cả các ảnh trong tập dữ liệu train
Data: đường dẫn đến file cấu hình của tập dữ liệu
Cfg: đường dẫn đến file cấu hình của mô hình
Weights: đường dẫn đến file weight chứa độ liên kết giữa các neuron (để '' là để huấn luyện từ đầu)
Cache: dùng bộ nhớ đệm để huấn luyện nhanh hơn
Phương pháp thường được sử dụng trong bài là Adam
Adam là một phương pháp tối ưu hóa mạnh mẽ, kết hợp ưu điểm của SGD (Stochastic Gradient Descent) với giảm trung bình của đạo hàm bậc nhất và bậc hai của hàm mất mát, giúp tăng tốc độ hội tụ của mô hình so với SGD thông thường Điều này cho phép mô hình đạt được độ chính xác cao hơn trong thời gian ngắn hơn, làm cho Adam trở thành một lựa chọn phổ biến trong nhiều ứng dụng học máy.
Adam tự động điều chỉnh learning rate dựa trên lịch sử đạo hàm, cho phép từng tham số có tỷ lệ học riêng biệt Điều này giúp mô hình hội tụ nhanh hơn và giảm thiểu khả năng rơi vào các vùng cực tiểu cục bộ, từ đó cải thiện hiệu suất tổng thể của mô hình.
Adam là một thuật toán tối ưu hóa hiệu quả khi làm việc với dữ liệu lớn và không đồng nhất Ưu điểm của Adam là khả năng tự điều chỉnh learning rate và tối ưu hóa linh hoạt trên mô hình có nhiều tham số, giúp nó đạt được kết quả tốt hơn trong việc xử lý dữ liệu phức tạp.
Adam thường được coi là một lựa chọn tốt với các giá trị mặc định của nó, giúp giảm thiểu sự cần thiết phải tinh chỉnh quá nhiều hyperparameter so với các phương pháp tối ưu hóa khác.
Các chỉ số đánh giá hệ thống phân loại đối tượng
IoU (Intersection over Union) là hàm đánh giá độ chính xác của object detector trên tập dữ liệu cụ thể IoU được tính bằng công thức
The Intersection over Union (IoU) metric is calculated by dividing the Area of Overlap, which represents the intersecting area between the predicted bounding box and the ground-truth bounding box, by the Area of Union, representing the combined area of both boxes The bounding boxes are manually labeled in both the training and test sets A prediction is considered accurate if the IoU exceeds 0.5, indicating a high degree of overlap between the predicted and actual bounding boxes.
4.3.2 Chỉ số Recall và Precision
Hình 4.8 Hình ảnh vẽ khung hình trên Labelimg
True positives: Các điểm Positive thực được nhận Đúng là Positive
False positives: Các điểm Negative thực được nhận Sai là Positive
True negatives: Các điểm Negative thực được nhận Đúng là Negative
False negatives: Các điểm Positive thực được nhận Sai là Negative
Chỉ số Precision là một thước đo quan trọng để đánh giá hiệu suất của mô hình, được tính toán dựa trên số lượng dự đoán đúng (true positive - TP) trong số các dự đoán dương (positive) của mô hình Công thức tính toán Precision được sử dụng để xác định tỷ lệ dự đoán chính xác, giúp các nhà phát triển mô hình đánh giá và cải thiện hiệu suất của mô hình.
- TP là số lượng các lá sâu bệnh mà mô hình dự đoán đúng là lá sâu bệnh
- FP là số lượng các lá không bị nhiễm bệnh nhưng mô hình dự đoán là bị nhiễm bệnh
Tập kiểm thử bao gồm 200 ảnh sầu riêng và mô hình đã đưa ra 180 dự đoán dương Sau quá trình huấn luyện và đánh giá trên tập kiểm thử, mô hình đã đạt được các thông số đáng chú ý.
- Tổng số lượng dự đoán dương (positive) trong tập kiểm thử: 180
- Số lượng dự đoán đúng (true positive) trong tập kiểm thử: 160
- Số lượng dự đoán sai (false positive) trong tập kiểm thử: 20
Từ đó, tính toán Precision như sau:
Với Precision khoảng 0.8889, mô hình dự đoán chính xác khoảng 88.89% lá sâu bệnh trong số tất cả các lá sâu bệnh mà nó nhận diện là dương
Chỉ số Recall là một chỉ số quan trọng trong việc đánh giá độ chính xác của mô hình dự đoán, đặc biệt là trong lĩnh vực phân tích dữ liệu y sinh Chỉ số này đo lường tỷ lệ các dự đoán đúng (true positive - TP) trong số lượng thực tế các lá sâu bệnh (positive) Công thức tính toán Recall được thể hiện như sau: Recall = TP / (TP + FN), trong đó TP là số lượng dự đoán đúng và FN là số lượng dự đoán sai.
- TP là số lượng các lá sâu bệnh mà mô hình dự đoán đúng là lá sâu bệnh
- FN là số lượng các lá sâu bệnh mà mô hình dự đoán sai là không phải là lá sâu bệnh
Có tổng cộng 200 ảnh sầu riêng Sau khi huấn luyện và đánh giá mô hình trên tập kiểm thử, chúng ta thu được các thông số sau:
- Tổng số lượng thực tế các lá sâu bệnh (positive) trong tập kiểm thử: 180
- Số lượng dự đoán đúng (true positive - TP) trong tập kiểm thử: 160
- Số lượng dự đoán sai (false negative - FN) trong tập kiểm thử: 20
Từ đó, tính toán Recall như sau:
Với Recall khoảng 0.8889, mô hình đã đúng 88.89% số lượng các lá sâu bệnh trong số tất cả các lá sâu bệnh trong tập kiểm thử
Chỉ số F1-score là một trong những phương pháp đánh giá hiệu suất của mô hình, kết hợp cả Precision và Recall để cung cấp cái nhìn tổng quan về khả năng xác định chính xác và đầy đủ các lá sâu bệnh F1-score được tính toán dựa trên công thức kết hợp giữa Precision và Recall, giúp đánh giá mô hình một cách toàn diện.
2precision recall F1 score precision recall
+ Sau khi huấn luyện và đánh giá mô hình trên tập kiểm thử, chúng ta đã thu được các thông số sau:
- Tổng số lượng dự đoán dương (positive) trong tập kiểm thử: 180
- Số lượng dự đoán đúng (true positive - TP) trong tập kiểm thử: 160
- Số lượng dự đoán sai (false positive - FP) trong tập kiểm thử: 20
- Số lượng thực tế các lá sâu bệnh (positive) trong tập kiểm thử: 180
- Số lượng dự đoán sai (false negative - FN) trong tập kiểm thử: 20
Từ đó, tính toán Precision và Recall như đã thể hiện trong các báo cáo trước đó:
Tiếp theo, tính toán F1-score như sau:
Mô hình nhận diện lá sâu bệnh trên sầu riêng đạt được hiệu suất tốt với F1-score khoảng 0.8889, thể hiện khả năng xác định chính xác các lá sâu bệnh và độ tin cậy cao trong việc phát hiện nhiều lá sâu bệnh trong số tất cả các lá sâu bệnh thực tế.
Trong lĩnh vực nhận diện đối tượng và phân loại, chỉ số AP (Average Precision) đóng vai trò quan trọng trong việc đánh giá hiệu suất của mô hình Chỉ số này đo lường khả năng của mô hình trong việc xác định chính xác các đối tượng thuộc các lớp khác nhau, từ đó giúp đánh giá hiệu quả tổng thể của mô hình.
Khi đánh giá hiệu suất của mô hình nhận diện đối tượng, độ chính xác của dự đoán vị trí và lớp của đối tượng trong ảnh có thể bị ảnh hưởng bởi nhiều yếu tố như kích thước của đối tượng, độ tương đồng giữa dự đoán và đối tượng thực tế, độ phân giải của ảnh, và ngưỡng xác suất dự đoán Để tính toán chỉ số AP (Average Precision), cần xây dựng đồ thị Precision-Recall (PR curve), trong đó Precision là tỷ lệ số lượng đối tượng dự đoán chính xác trong tổng số các dự đoán, và Recall là tỷ lệ số lượng đối tượng dự đoán chính xác trong tổng số các đối tượng thực tế Chỉ số AP được tính bằng cách tính toán diện tích dưới đồ thị PR curve, đại diện cho giá trị trung bình của Precision khi Recall thay đổi từ 0 đến 1.
Mô hình có giá trị AP cao cho thấy khả năng xác định chính xác các đối tượng trong các lớp khác nhau, ngược lại, mô hình có giá trị AP thấp có thể gặp khó khăn trong việc nhận diện đối tượng đúng lớp, dẫn đến giảm độ chính xác trong quá trình phân loại.
Chỉ số mAP (mean Average Precision) là một phương pháp quan trọng để đánh giá hiệu suất của mô hình trong các bài toán nhận diện đối tượng và phân loại, đặc biệt khi có nhiều lớp đối tượng khác nhau Chỉ số này giúp đo lường độ chính xác của mô hình trong việc nhận diện và phân loại đối tượng, từ đó đánh giá hiệu suất tổng thể của mô hình Việc sử dụng chỉ số mAP giúp các nhà phát triển mô hình có thể so sánh và đánh giá hiệu suất của mô hình một cách chính xác và khách quan.
Khi đánh giá hiệu suất của mô hình nhận diện đối tượng, các dự đoán về vị trí và lớp của đối tượng trong ảnh có thể bị ảnh hưởng bởi nhiều yếu tố như kích thước đối tượng, độ tương đồng giữa dự đoán và đối tượng thực tế, độ phân giải của ảnh và ngưỡng xác suất dự đoán Để tính toán mAP, cần tính toán chỉ số AP (Average Precision) cho từng lớp đối tượng bằng cách xây dựng đồ thị Precision-Recall (PR curve) và tính diện tích dưới đồ thị Giá trị trung bình của các chỉ số AP này chính là mAP, cung cấp cái nhìn tổng quan về hiệu suất của mô hình trong việc nhận diện đối tượng trên nhiều lớp, đo lường khả năng xác định chính xác các đối tượng trong từng lớp và đưa ra giá trị tổng quát về hiệu suất của mô hình.
Mô hình có giá trị mAP cao chứng tỏ khả năng xác định chính xác các đối tượng trên nhiều lớp, ngược lại, mô hình có mAP thấp có thể gặp khó khăn trong việc nhận diện đối tượng đúng lớp Việc đánh giá mAP là một phương pháp phổ biến và hữu ích trong bài toán nhận diện đối tượng và phân loại, đặc biệt khi làm việc với các tập dữ liệu có nhiều lớp đối tượng, giúp đánh giá chính xác khả năng phân loại và nhận diện của mô hình.
Kết quả thực hiện
4.4.1 Kết quả đánh giá ở các batch Đánh giá kết quả trên tập kiểm thử giúp lựa chọn các siêu tham số của mô hình và đánh giá hiệu suất trên các thông số này
Khi mô hình đạt được kết quả tốt trên tập kiểm thử, điều đó chứng tỏ mô hình đã được điều chỉnh và tối ưu hóa đáng kể, giúp nó có khả năng tổng quát hóa và làm việc hiệu quả trên dữ liệu chưa từng thấy trước đó.
Hình 4.9 Kết quả nhận diện nhãn của tập thử nghiệm trên batch 1
Hình 4.10 Kết quả dự đoán tập thử nghiệm trên batch 1
Hình 4.11 Kết quả đánh giá nhãn của tập thử nghiệm trên batch 2
Kết quả đánh giá ở các batch trong quá trình huấn luyện mô hình đóng vai trò quan trọng và hữu ích, giúp theo dõi hiệu suất và đánh giá sự tiến bộ của mô hình theo từng giai đoạn Các batch là các phần dữ liệu con được sử dụng để đưa vào mô hình, tính toán gradient và cập nhật trọng số trong quá trình huấn luyện, qua đó mang lại một số tác dụng quan trọng như đánh giá hiệu suất và theo dõi tiến bộ của mô hình.
Theo dõi hiệu suất là một bước quan trọng trong quá trình huấn luyện mô hình Kết quả đánh giá ở mỗi batch cho phép theo dõi sự thay đổi và cải thiện hiệu suất của mô hình qua từng vòng lặp huấn luyện, giúp phát hiện sớm các vấn đề và sai sót Điều này cho phép điều chỉnh mô hình kịp thời để đạt hiệu suất tốt hơn, đảm bảo mô hình hoạt động hiệu quả và chính xác.
Khi đánh giá kết quả trên tập huấn luyện và tập kiểm thử, chúng ta có thể xác định xem mô hình có đang bị overfitting hoặc underfitting với dữ liệu huấn luyện, từ đó thực hiện các biện pháp khắc phục như điều chỉnh mô hình, tăng kích thước dữ liệu hoặc sử dụng kỹ thuật regularization để cải thiện hiệu suất Việc điều chỉnh tham số huấn luyện dựa trên kết quả đánh giá ở các batch cũng đóng vai trò quan trọng, giúp tối ưu hóa hiệu suất và tránh các vấn đề như hội tụ chậm hoặc bị kẹt trong cục bộ tối ưu bằng cách tinh chỉnh các tham số như learning rate, batch size, số lượng epoch và optimizer.
Việc đánh giá ở mỗi batch mang lại hai lợi ích quan trọng trong quá trình huấn luyện mô hình Thứ nhất, nó giúp tiết kiệm tài nguyên tính toán và bộ nhớ đáng kể so với việc đánh giá toàn bộ dữ liệu kiểm thử sau mỗi vòng lặp huấn luyện Thứ hai, kết quả đánh giá ở các batch có thể được sử dụng để tính toán trung bình các chỉ số đánh giá quan trọng như precision, recall, F1-score, mAP, từ đó đưa ra cái nhìn tổng quan về hiệu suất của mô hình trong quá trình huấn luyện.
Kết quả đánh giá ở mỗi batch cung cấp cái nhìn sâu sắc về quá trình học của mô hình, giúp chúng ta hiểu rõ cách nó học hỏi từ dữ liệu và điều chỉnh trọng số để cải thiện hiệu suất Quá trình này cho phép chúng ta theo dõi và phân tích cách mô hình phát triển và cải thiện qua từng giai đoạn, từ đó đưa ra những điều chỉnh cần thiết để đạt được kết quả tốt nhất.
4.4.2 Kết quả một số ảnh trên tập thử nghiệm Đánh giá kết quả trên tập thử nghiệm giúp đo lường hiệu suất cuối cùng của mô hình sau khi đã hoàn thành quá trình huấn luyện và điều chỉnh siêu tham số
Tập thử nghiệm đóng vai trò quan trọng trong việc đánh giá khả năng tổng quát hóa của mô hình và đo lường hiệu suất trên dữ liệu mới, chưa từng được tiếp xúc trước đó Điểm số chung đạt được trên tập thử nghiệm phản ánh khả năng tổng quát hóa và hiệu suất thực tế của mô hình khi được áp dụng vào các ứng dụng thực tế, giúp đánh giá chính xác khả năng thích nghi và hiệu quả của mô hình trong các tình huống thực tế.
Hình 4.13 Ảnh bệnh cháy lá sau khi nhận diện
Hình 4.14 Ảnh bệnh nấm rong biển sau khi nhận diện
Hình 4.15 Ảnh bệnh đốm sau khi nhận diện
Hình 4.16 Ảnh lá sầu riêng không bị bệnh sau khi nhận diện
Kết quả nhận diện trên tập thử nghiệm đóng vai trò quan trọng trong việc đánh giá hiệu suất và độ tin cậy của mô hình nhận diện đối tượng Bằng cách áp dụng mô hình vào các dữ liệu mới chưa từng thấy trong quá trình huấn luyện, kết quả nhận diện giúp xác định mức độ chính xác và độ tin cậy của mô hình trong điều kiện thực tế, từ đó hướng dẫn cải thiện mô hình nếu cần.
Khả năng tổng quát hóa của mô hình được xác định thông qua kết quả nhận diện trên tập thử nghiệm, cho thấy mô hình có thể xử lý dữ liệu mới mà nó chưa từng gặp Kết quả tốt trên tập thử nghiệm là dấu hiệu của khả năng tổng quát hóa tốt, giúp mô hình có thể áp dụng hiệu quả vào các bài toán thực tế.
Việc đánh giá hiệu quả của mô hình thông qua kết quả nhận diện trên tập thử nghiệm đóng vai trò quan trọng trong việc xác định hiệu quả của các thay đổi trong mô hình, đưa ra quyết định về việc triển khai mô hình trong môi trường thực tế và đánh giá độ tin cậy của mô hình Kết quả này giúp xác định liệu các thay đổi trong kiến trúc mạng, tham số huấn luyện hoặc tăng kích thước dữ liệu có thực sự cải thiện hiệu suất của mô hình hay không Đồng thời, kết quả nhận diện trên tập thử nghiệm cũng là cơ sở để quyết định triển khai mô hình trong thực tế, đảm bảo rằng mô hình đạt được độ chính xác và độ tin cậy mong muốn Ngoài ra, kết quả này còn giúp đánh giá độ tin cậy của mô hình trong việc đưa ra dự đoán, từ đó xác định khả năng của mô hình trong việc giải quyết các bài toán thực tế.
4.4.3 Hình ảnh nhận diện sau khi huấn luyện xong Đánh giá kết quả trên tập huấn luyện giúp kiểm tra hiệu suất của mô hình trên dữ liệu đã sử dụng trong quá trình huấn luyện
Khi mô hình đạt được độ chính xác cao và độ tin cậy đáng tin cậy trên tập huấn luyện, điều này chứng tỏ rằng mô hình đã học hỏi hiệu quả từ dữ liệu huấn luyện và có khả năng nhận diện đối tượng trong các trường hợp đã biết trước một cách chính xác.
Hình 4.17 Kết quả của mô hình nhận diện webcam
Hình 4.18 Mô hình sau khi huấn luyện
Đánh giá mô hình
Biểu đồ Recall-Confusion Curve cho thấy mô hình có khả năng phát hiện đúng nhiều đối tượng ở mức độ cao khi độ tin cậy thấp, nhưng chỉ số Recall giảm nhẹ khi độ tin cậy tăng cao Điều này cho thấy mô hình ưu tiên chọn ra những dự đoán có độ tin cậy cao hơn để đảm bảo tính chính xác, nhưng có thể bỏ sót một số dự đoán có độ tin cậy thấp hơn Ưu điểm của biểu đồ Recall là giúp ta hiểu rõ hơn về khả năng nhận diện đúng của mô hình đối với từng lớp và tổng hợp, từ đó điều chỉnh độ tin cậy để tối ưu hóa hiệu suất của mô hình và đảm bảo khả năng phát hiện đúng các đối tượng quan trọng trong bài toán nhận diện lá sâu bệnh trên cây sầu riêng.
Biểu đồ Recall có một hạn chế đáng kể, đó là không cung cấp thông tin về độ chính xác của các dự đoán (Precision) và cũng không tính đến số lượng dự đoán sai (false positive) Điều này đòi hỏi cần phải kết hợp với các chỉ số khác để có được đánh giá tổng thể về hiệu suất của mô hình, bao gồm Precision, F1-score, và các chỉ số khác.
AP để có cái nhìn toàn diện hơn
Biểu đồ Precision-Confidence Curve là công cụ trực quan hóa mối quan hệ giữa độ tin cậy của mô hình và độ chính xác của các dự đoán Trên biểu đồ này, mỗi điểm đại diện cho một ngưỡng độ tin cậy cụ thể, đồng thời thể hiện giá trị Precision tương ứng cho ngưỡng đó, giúp người dùng đánh giá hiệu suất của mô hình một cách chính xác hơn.
Dựa trên biểu đồ, chúng ta có thể quan sát thấy rằng khi độ tin cậy tăng lên, chỉ số Precision của mô hình cũng tăng theo Điều này cho thấy mô hình có xu hướng lựa chọn những dự đoán chắc chắn hơn với độ tin cậy cao, từ đó dẫn đến tính chính xác cao hơn.
Mô hình có độ tin cậy cao, đạt điểm gần 1.0, đồng thời sở hữu độ chính xác cao với Precision gần 1.0, giúp đảm bảo khả năng nhận diện chính xác và chắc chắn các đối tượng.
Biểu đồ Precision-Confidence Curve chỉ tập trung vào mối quan hệ giữa Precision và độ tin cậy, nhưng lại bỏ qua thông tin về hiệu suất Recall của mô hình Điều này hạn chế khả năng đánh giá toàn diện về khả năng phát hiện đúng của mô hình ở các mức độ tin cậy khác nhau Đối với bài toán nhận diện đối tượng, việc cân bằng giữa Precision và Recall là rất quan trọng, do đó chỉ sử dụng Precision-Confidence Curve có thể làm mất đi một phần quan trọng của thông tin đánh giá mô hình.
Biểu đồ có thể thiếu linh hoạt trong việc tùy chỉnh mô hình để đáp ứng các yêu cầu cụ thể của bài toán Để đạt được sự cân bằng giữa độ chính xác (Precision) và độ hoàn chỉnh (Recall), việc thay đổi ngưỡng độ tin cậy một cách thủ công là cần thiết.
Biểu đồ F1-Confidence Curve là một công cụ hữu ích giúp thể hiện mối quan hệ giữa độ tin cậy của mô hình và F1-score của các dự đoán F1-score là một chỉ số tổng hợp quan trọng, kết hợp giữa Precision và Recall, thường được sử dụng để đánh giá hiệu suất của mô hình trong các bài toán nhận diện đối tượng hoặc phân loại.
Biểu đồ F1-Confidence Curve đóng vai trò quan trọng trong việc đánh giá hiệu suất của mô hình nhận diện đối tượng ở các mức độ tin cậy khác nhau Thông qua biểu đồ này, chúng ta có thể xác định rõ ràng hiệu suất của mô hình tại từng mức độ tin cậy, từ đó lựa chọn ngưỡng độ tin cậy phù hợp để mô hình đạt được hiệu suất tối ưu trong việc nhận diện đối tượng.
Một mô hình có độ tin cậy cao và điểm F1-score cao sẽ đảm bảo khả năng nhận diện chính xác và tính chính xác cao hơn ở các dự đoán, giúp tăng cường độ tin cậy của kết quả.
Biểu đồ F1-Confidence Curve cung cấp cái nhìn sâu sắc về mối quan hệ giữa F1-score và độ tin cậy của mô hình, nhưng không thể hiện rõ hiệu suất của mô hình khi xét riêng lẻ Recall và Precision Thay vào đó, nó giúp chúng ta hiểu rõ hơn về cách độ tin cậy ảnh hưởng đến F1-score, từ đó đánh giá tổng quan về hiệu suất của mô hình.
Biểu đồ F1-Confidence Curve cũng giống như các biểu đồ khác dựa trên độ tin cậy, không cung cấp cơ chế linh hoạt để điều chỉnh mô hình cho phù hợp với các yêu cầu cụ thể của bài toán, hạn chế khả năng tùy chỉnh và tối ưu hóa mô hình.
4.5.4 Chỉ số AP (Precision – Recall Curve)
Hình 4.22 Chỉ số Precision Recall Curve
Biểu đồ Precision-Recall Curve là một công cụ quan trọng trong việc đánh giá hiệu suất của mô hình phân loại, đặc biệt là trong các bài toán có sự mất cân bằng giữa các lớp Biểu đồ này thể hiện mối quan hệ giữa Precision và Recall của mô hình khi thay đổi ngưỡng quyết định để xác định lớp dự đoán Điểm trên biểu đồ gần với góc trên bên trái, nơi Precision cao và Recall cao, cho thấy hiệu suất tốt của mô hình.
Precision-Recall Curve không phản ánh được tổng quan hiệu suất của mô hình như ROC Curve, do nó chỉ tập trung vào hai chỉ số Precision và Recall
Cần phải chọn ngưỡng quyết định phù hợp để đảm bảo độ tin cậy của mô hình
Chỉ số mAP @0.5 là một phép đo quan trọng và phổ biến trong bài toán nhận diện đối tượng và object detection, giúp đánh giá hiệu suất tổng quát của mô hình phân loại khi có sự chồng chéo giữa các đối tượng dự đoán và các đối tượng thực tế trong bức ảnh Chỉ số này được tính bằng cách tính trung bình của Average Precision (AP) cho tất cả các lớp ở ngưỡng chồng chéo (IoU) cụ thể là 0.5 mAP @0.5 cung cấp cái nhìn tổng quan về hiệu suất của mô hình phân loại đối tượng, cho biết mức độ chính xác của mô hình trong việc phân loại các đối tượng và đánh giá khả năng dự đoán các vùng chồng chéo giữa dự đoán và thực tế Ngoài ra, mAP @0.5 cũng đo lường độ chính xác và độ phủ của mô hình, tính toán trung bình của AP ở ngưỡng IoU 0.5, giúp mô hình cân bằng giữa độ chính xác và độ phủ trong việc dự đoán các đối tượng.
Việc so sánh hiệu suất giữa các mô hình là một bước quan trọng trong việc lựa chọn mô hình tốt nhất cho bài toán cụ thể mAP @0.5 là một trong những tiêu chí quan trọng giúp thực hiện việc so sánh này, cho phép đánh giá và lựa chọn mô hình có hiệu suất cao nhất.