- Phân tích, thu thập dữ liệu hình Ánh trái cây để huÃn luyện phát hiện đối t°ÿng.. Māc tiêu cÿa nó là phát triển các mô hình tính toán để cung cÃp thông tin c¡ bÁn nhÃt cần thiết cho cá
Phát hiện đối t°ÿng
Khái niệm
Phát hiện đối t°ÿng, mát lĩnh vực quan trọng trong thị giác máy tính và xử lý Ánh, liờn quan đến việc xỏc định cỏc tr°òng hÿp cā thể cÿa đối t°ÿng ngữ nghĩa thuác mát lớp nhÃt định trong hình Ánh và video kỹ thuật số Các mô hình phát hiện đối t°ÿng th°òng đ°ÿc huÃn luyện để xỏc định cỏc đối t°ÿng cā thể trong hỡnh Ánh, video hoặc trong thòi gian thực [1]
Phát hiện đối tượng đóng vai trò quan trọng trong sự phát triển của học sâu và xử lý ảnh Mục tiêu của nó là phát triển các mô hình tính toán để cung cấp thông tin cơ bản nhất cần thiết cho các ứng dụng thị giác máy tính, trả lời hai câu hỏi chính là: "Đối tượng cần tìm có xuất hiện trong hình ảnh không?" và "Nếu có, vị trí của nó là gì?" [1]
Hình 1.3: Phát hiện đối tượng luan van tot nghiep khoa luan
Phát hiện đối t°ÿng là mát trong những vÃn đề c¡ bÁn cÿa thị giác máy tính, t¿o nền tÁng cho nhiều nhiệm vā khác nh° phân đo¿n thực thể và hình Ánh, t¿o chú thích cho hình Ánh, theo dõi đối t°ÿng, và nhiều h¡n nữa Các āng dāng cā thể cÿa phỏt hiện đối t°ÿng bao gòm phỏt hiện ng°òi đi bỏ, phỏt hiện đỏng vật, phỏt hiện xe cỏ, đếm ng°òi, phỏt hiện khuụn mặt, phỏt hiện văn bÁn, phỏt hiện t° thế, nhận d¿ng biển số và nh° á đây là phát hiện trái cây [1]
Cách phát hiện đối t°ÿng
Để phát hiện đối tượng, có thể sử dụng các kỹ thuật xử lý Ánh truyền thống hoặc mạng học sâu hiện đại Mỗi phương pháp có ưu điểm và nhược điểm riêng, phù hợp với các yêu cầu và điều kiện khác nhau Trong khi xử lý Ánh truyền thống dựa trên các thuật toán thủ công, mạng học sâu tận dụng sức mạnh tính toán và dữ liệu lớn để học các đặc điểm phức tạp từ dữ liệu Tùy thuộc vào độ chính xác, tốc độ và chi phí mong muốn, nhà phát triển có thể lựa chọn phương pháp phù hợp nhất.
Cỏch 1: Kỹ thuÁt xā lý Ánh truyòn thòng
Các kỹ thuật xử lý Ánh truyền thống không yêu cầu dữ liệu lịch sử để đào t¿o và tự giám sát OpenCV là mát công cā phá biến cho các nhiệm vā xử lý Ánh truyền thống Mỏt số °u và nh°ÿc điểm cÿa ph°Ăng phỏp này bao gòm ¯u điòm:
Không yêu cầu hình Ánh đ°ÿc gán nhãn thÿ công, giúp giÁm bớt khối l°ÿng công việc và chi phí liên quan đến việc t¿o dữ liệu đào t¿o.
- H¿n chế trong cỏc tỡnh huống phāc t¿p nh° nền khụng đòng nhÃt, đối t°ÿng bị che khuÃt mát phần, điều kiện ánh sáng và bóng tối thay đái, và các hiệu āng nhiễu.
- Đỏ chớnh xỏc và đỏ tin cậy th°òng khụng cao bằng cỏc ph°Ăng phỏp học sõu [1]
Cách 2: M¿ng hác sâu hiãn đ¿i
Các phương pháp học sâu không giám sát hoặc có giám sát ít phổ biến hơn học có giám sát theo dõi trong các nhiệm vụ thị giác máy tính, mặc dù phương pháp tiếp cận không giám sát đã trở nên phổ biến hơn trong những năm gần đây Các phương pháp học không giám sát tìm ra cấu trúc trong dữ liệu chưa được gắn nhãn, trong khi các phương pháp học có giám sát sử dụng dữ liệu đã được gắn nhãn.
Phát hiện đối tượng bằng học sâu trở nên hiệu quả hơn đáng kể trong các trường hợp đối tượng bị che khuất, cảnh quan phức tạp và điều kiện ánh sáng thách thức.
- Đá chính xác cao h¡n so với các ph°¡ng pháp truyền thống
- Yêu cầu mát l°ÿng lớn dữ liệu đào t¿o Quá trình gán nhãn hình Ánh là công việc tốn nhiều thòi gian và chi phớ Vớ dā, gỏn nhón 500.000 hỡnh Ánh để đào t¿o thuật toán phát hiện đối t°ÿng tùy chỉnh đ°ÿc coi là mát tập dữ liệu nhỏ.
- Cần có sāc m¿nh tính toán cao, đặc biệt là GPU, để xử lý và đào t¿o mô hình. Để giÁm bớt khó khăn trong việc thu thập và gán nhãn dữ liệu, có thể sử dāng các bá dữ liệu đã đ°ÿc gán nhãn sẵn nh° MS COCO, Caltech, KITTI, PAS- CAL VOC, và V5 Những bá dữ liệu này cung cÃp mát l°ÿng lớn hình Ánh đã đ°ÿc gán nhãn, giúp rút ngắn quá trình thu thập và chuẩn bị dữ liệu cho việc đào t¿o mô hình học sâu [1]
Hình 1.4: Phát hiện đối tượng dựa trên học sâu cho các phương tiện luan van tot nghiep khoa luan
Các Ph°¡ng pháp phát hiện phá biến hiện nay
1.2.3.1 Phương pháp mô t¿ đặc trưng (HOG)
Hình 1.5: Kiến trúc hệ thống HOG để phát hiện đối tượng
Ph°¡ng pháp mô tÁ đặc tr°ng (Histogram of Oriented Gradient – HOG) là mỏt trong những ph°Ăng phỏp phỏt hiện đối t°ÿng lõu đòi nhÃt Nú đ°ÿc giới thiệu lần đầu tiên vào năm 1986 Mặc dù có mát số phát triển trong thập kỷ sau đó, cách tiếp cận này không trá nên phá biến cho đến năm 2005 khi nó bắt đầu đ°ÿc sử dāng trong nhiều nhiệm vā liên quan đến thị giác máy tính HOG sử dāng trình trích xuÃt đặc tr°ng để xác định các đối t°ÿng trong hình Ánh [2]
BÁn chÃt cÿa ph°¡ng pháp HOG là sử dāng thông tin về sự phân bố cÿa các c°òng đỏ gradient hoặc cÿa h°ớng biờn để mụ tÁ cỏc đối t°ÿng cāc bỏ trong Ánh Cỏc toán tử HOG đ°ÿc cài đặt bằng cách chia nhỏ mát bāc Ánh thành các vùng con, đ°ÿc gọi là cell và với mòi cell, ta sẽ tớnh toỏn mỏt histogram về cỏc h°ớng cÿa gradients cho các điểm nằm trong cell Ghép các histogram l¿i với nhau ta sẽ có mát biểu diễn cho bāc Ánh ban đầu Để tăng c°òng hiệu năng nhận d¿ng, cỏc histogram cāc bỏ cú thể đ°ÿc chuẩn húa về đỏ t°Ăng phÁn bằng cỏch tớnh mỏt ng°ỡng c°òng đỏ trong mỏt vùng lớn h¡n cell, gọi là các khối và sử dāng giá trị ng°ỡng đó để chuẩn hóa tÃt cÁ các luan van tot nghiep khoa luan
Quá trình chuẩn hóa ảnh bao gồm 20 bước Kết quả của quá trình này là một vector đặc trưng không thay đổi khi điều kiện ánh sáng thay đổi.
Tr°ớc khi chúng ta hiểu kiến trúc táng thể cÿa HOG, hãy xem cách nó ho¿t đỏng Đối với mỏt điểm Ánh cā thể trong hỡnh Ánh, biểu đò tần suÃt cÿa gradient đ°ÿc tính bằng cách xem xét các giá trị dọc và ngang để có đ°ÿc các vect¡ đối t°ÿng Với sự trÿ giúp cÿa đá lớn gradient và các góc gradient, chúng ta có thể có đ°ÿc giá trị rõ ràng cho điểm Ánh hiện t¿i bằng cách khám phá các thực thể khác trong mụi tr°òng xung quanh ngang và dọc cÿa chỳng [2]
Nh° thể hiện trong biểu diễn hình Ánh á trên, chúng tôi sẽ xem xét mát phân đo¿n hình Ánh có kích th°ớc cā thể B°ớc đầu tiên là tìm gradient bằng cách chia toàn bá tính toán cÿa hình Ánh thành các biểu diễn gradient cÿa 8×8 ô Với sự trÿ giỳp cÿa 64 vectĂ gradient đ¿t đ°ÿc, chỳng ta cú thể chia mòi ụ thành cỏc gúc và tớnh toỏn biểu đò cho diện tớch cā thể Quỏ trỡnh này làm giÁm kớch th°ớc cÿa 64 vect¡ xuống kích th°ớc nhỏ h¡n là 9 giá trị [2]
Khi chỳng tụi cú đ°ÿc kớch th°ớc cÿa cỏc giỏ trị biểu đò điểm 9 cho mòi ụ, chỳng tụi cú thể chọn t¿o chòng chộo cho cỏc khối ụ Cỏc b°ớc cuối cựng là t¿o cỏc khối đặc tr°ng, chuẩn hóa các vect¡ đặc tr°ng thu đ°ÿc và thu thập tÃt cÁ các vect¡ đặc tr°ng để có đ°ÿc đặc tr°ng HOG táng thể [2]
• M¿ng n¢-ron tích chÁp theo vùng (R-CNN)
Hình 1.6: Mô hình R-CNN [17] luan van tot nghiep khoa luan
Các mạng nơ-ron tích chập dựa trên khu vực là cải tiến trong quy trình phát hiện đối tượng từ các phương pháp HOG và SIFT (biến đổi đặc trưng không thay đổi theo tỉ lệ) trước đây Trong các mô hình R-CNN, chúng ta cố gắng trích xuất các đặc trưng thiết yếu nhất (thường là khoảng 2000 đặc trưng) bằng cách sử dụng các đặc trưng chọn lọc Quá trình lựa chọn các trích xuất quan trọng nhất có thể được thực hiện với sự trợ giúp của thuật toán tìm kiếm chọn lọc, nhằm đạt được các đề xuất khu vực quan trọng hơn.
Quy trình làm việc cÿa thuật toán tìm kiếm chọn lọc để chọn các đề xuÃt khu vực quan trọng nhÃt bao gòm việc t¿o nhiều phõn đo¿n phā trờn mỏt hỡnh Ánh cā thể và chọn các māc āng cử viên cho nhiệm vā cÿa b¿n Thuật toán tham lam sau đó có thể đ°ÿc sử dāng để kết hÿp các māc hiệu quÁ phù hÿp cho mát quy trình định kỳ, nhằm kết hÿp các phân đo¿n nhỏ h¡n thành các phân đo¿n lớn h¡n phù hÿp [2]
Khi thuật toán tìm kiếm chọn lọc hoàn thành thành công, nhiệm vā tiếp theo cÿa chúng ta là trích xuÃt các đặc tr°ng và đ°a ra dự đoán thích hÿp Sau đó, chúng ta có thể đ°a ra các đề xuÃt āng cử viên cuối cùng và các m¿ng n¡-ron tích chập có thể đ°ÿc sử dāng để t¿o vect¡ đặc tr°ng n chiều (2048 hoặc 4096) làm đầu ra Với sự trÿ giúp cÿa m¿ng n¡-ron tích chập đ°ÿc đào t¿o tr°ớc, chúng ta có thể đ¿t đ°ÿc nhiệm vā trích xuÃt đặc tr°ng mát cách dễ dàng [2]
B°ớc cuối cùng cÿa R-CNN là đ°a ra các dự đoán thích hÿp cho hình Ánh và gắn nhãn háp giới h¿n t°¡ng āng cho phù hÿp Để có đ°ÿc kết quÁ tốt nhÃt cho mòi nhiệm vā, cỏc dự đoỏn đ°ÿc thực hiện bằng cỏch tớnh toỏn mụ hỡnh phõn lo¿i cho từng nhiệm vā, trong khi mụ hỡnh hòi quy đ°ÿc sử dāng để sửa phõn lo¿i hỏp giới h¿n cho các vùng đ°ÿc đề xuÃt [2]
R-CNN, mát mô hình phát hiện đối t°ÿng, đã đ¿t đ°ÿc kết quÁ đáng chú ý nh°ng l¿i gặp phÁi vÃn đề về tốc đá Để khắc phāc điều này, Fast R-CNN đã đ°ÿc giới thiệu Trong Fast R-CNN, toàn bá hình Ánh đ°ÿc truyền qua mát m¿ng n¡-ron tích chập đã đ°ÿc huÃn luyện tr°ớc, thay vì chỉ xem xét các phân đo¿n con cÿa hình Ánh [2] luan van tot nghiep khoa luan
Hình 1.7: Faster R-CNN – Sơ đồ kiến trúc [2]
Tiếp theo, Faster R-CNN, một phiên bản nâng cấp của Fast R-CNN, đã được ra mắt Điểm khác biệt lớn nhất của Faster R-CNN là thay thế thuật toán tìm kiếm chọn lọc được sử dụng trong Fast R-CNN bằng một mạng đề xuất vùng, giúp tăng tốc đáng kể quá trình phát hiện đối tượng.
R-CNN và Fast R-CNN để tính toán các đề xuÃt vùng, bằng mát m¿ng đề xuÃt vùng v°ÿt trái h¡n M¿ng đề xuÃt vùng (RPN) tính toán hình Ánh từ mát ph¿m vi ráng và các tỷ lệ khác nhau để t¿o ra các đầu ra hiệu quÁ [2]
Hình 1.8: Mạng đề xuÁt vùng (RPN) [18] luan van tot nghiep khoa luan
RPN giÁm thòi gian tớnh toỏn biờn xuống cũn khoÁng 10 ms cho mòi hỡnh Ánh M¿ng này bao gòm mỏt lớp tớch chập từ đú chỳng ta cú thể lÃy đ°ÿc cỏc bÁn đò đặc tr°ng cần thiết cÿa mòi pixel Đối với mòi bÁn đò đặc tr°ng, chỳng ta cú nhiều hỏp neo cú cỏc tỷ lệ, kớch th°ớc và tỷ lệ khớa c¿nh khỏc nhau Đối với mòi hỏp neo, chỳng ta dự đoán mát lớp nhị phân cā thể và t¿o ra mát háp giới h¿n cho nó [2]
Thông tin sau đó được truyền qua giai đoạn giảm tối đa để loại bỏ bất kỳ dữ liệu không cần thiết nào vì nhiều chồng chéo được tạo ra khi tạo bản đồ đặc trưng Đầu ra từ giai đoạn giảm tối đa được truyền qua vùng quan tâm, và phần còn lại của quá trình và tính toán tương tự như cách hoạt động của Fast R-CNN.
Đánh giá đá tin cậy cÿa bài toán phân lo¿i
Precision và Recall
Precision – đ¿i diện cho đá tin cậy cÿa cÿa model sẽ cho biết rằng trong những cái model dự đoán là Positive thì có bao nhiêu % là Positive thật.
Precision = �㕇�㕃+ �㔹�㕃 �㕇�㕃 (1-1)
Recall – đ¿i diện cho đá nh¿y cÿa model sẽ cho biết model có thể tóm đúng đ°ÿc bao nhiêu Positive trong dữ liệu đ°ÿc cho.
Recall = �㕇�㕃+ �㔹�㕁 �㕇�㕃 (1-2)
True Positive (TP): Đõy là những tr°òng hÿp mà mụ hỡnh dự đoỏn đỳng Cā thể, mụ hỡnh đó phỏt hiện chính xác mát đối t°ÿng thực sự có trong hình Ánh.
Ví dā: Nếu có mát quÁ táo trong hình và mô hình đúng là đã dự đoán đó là mát quÁ táo, thì đây là mát TP
False Positive (FP): Đõy là những tr°òng hÿp mà mụ hỡnh dự đoỏn sai, tāc là mụ hỡnh nhận diện mát đối t°ÿng mà thực tế không có.
Ví dā: Nếu không có quÁ táo nào trong hình nh°ng mô hình l¿i dự đoán rằng có mát quÁ táo, thì đây là mát FP. luan van tot nghiep khoa luan
True Negative (TN): Đõy là những tr°òng hÿp mà mụ hỡnh dự đoỏn đỳng rằng khụng cú đối t°ÿng nào Mô hình chính xác trong việc nhận diện sự vắng mặt cÿa đối t°ÿng
Ví dā: Nếu không có quÁ táo nào trong hình và mô hình cũng không dự đoán rằng có mát quÁ táo, thì đây là mát TN
False Negative (FN): Đõy là những tr°òng hÿp mà mụ hỡnh bỏ sút đối t°ÿng, tāc là mụ hỡnh khụng phát hiện ra mát đối t°ÿng thực sự có trong hình.
Ví dā: Nếu có mát quÁ táo trong hình nh°ng mô hình không phát hiện ra nó, thì đây là mát FN.
AP
Average Precision là giá trị trung bình cÿa Precision t¿i các māc Recall khác nhau AP đ°ÿc tính cho từng lớp đối t°ÿng và đ¿i diện cho sự cân bằng giữa Precision và Recall
Sử dāng Tính toán nái suy 11 điểm là tính trung bình đá chính xác á mát tập hÿp 11 māc thu hòi (0,0,1, ,1) Cỏc giỏ trị chớnh xỏc nỏi suy thu đ°ÿc bằng cỏch lÃy đỏ chớnh xỏc tối đa cú giỏ trị thu hòi lớn hĂn giỏ trị thu hòi hiện t¿i cÿa nú nh° sau:
�㔴�㕃 = 11 1 ∑�㕟∈{0,0.1,&,1}�㕃�㕖Ā�㕡�㕒�㕟�㕝(�㕟) (1-3)
�㕝�㕖Ā�㕡�㕒�㕟�㕝 = max�㕟̃:�㕟̃g�㕟�㕝(�㕟̃) (1-4)
�㕝 (�㕟̃) là đỏ chớnh xỏc khi thu hòi �㕟̃ luan van tot nghiep khoa luan
Thay vỡ sử dāng đỏ chớnh xỏc quan sỏt đ°ÿc t¿i mòi điểm, AP thu đ°ÿc bằng cỏch nỏi suy đỏ chớnh xỏc chỉ ỏ 11 māc lÃyđỏ chớnh xỏc tối đa cú giỏ trị thu hòi lớn h¡n
Hình 1.9: ví dụ biểu đồ thể hiện P và R để tính AP
Bằng cách áp dāng nái suy 11 điểm:
mAP
Độ chính xác trung bình (mAP) là chỉ số đo hiệu suất phổ biến trong các bài toán phát hiện vật thể Nó được tính bằng cách lấy giá trị trung bình của tất cả các giá trị Độ chính xác trung bình (AP).
Ví dā: có táng cáng 3 lớp AP lần l°ÿt là a,b,c Khi đó mAP đ°ÿc tính nh° sau: ÿ�㔴�㕃 =ý�㕃 ÿ +ý�㕃 3 Ā +ý�㕃 ā (1-5) luan van tot nghiep khoa luan
Giới thiệu mát số lo¿i trái cây
Cam
CamquÁ cam tên tiếng anh là Orange, là mát lo¿i cây ăn quÁ cùng họ với b°ái nh°ng kích th°ớc nhỏ h¡n và vỏ mỏng h¡n, tùy vàocác lo¿i cam khác nhau mà khi chín có màu da cam, màu xanh hoặc màu vàng, có vị ngọt hoặc h¡i chua Cam bắt nguòn từ Chõu Á, sau lan rỏng ra khắp nĂi trờn thế giới, hiện nay cam cú mặt á khắp mọi n¡i và nhân giống thành nhiều lo¿i khác nhau à n°ớc ta cam có nhiều lo¿i, phá biến nh°:
- Cam sành:hình Ánh quÁ camsành khá to, vỏ sần sùi, quÁ h¡i dẹt, màu xanh, cú mựi thĂm và vị ngọt và chua dịu, nhiều n°ớc, vā thu ho¿ch th°òng đỳng dịp Tết.
- Cam xoàn: trái nhỏ, thịt quÁ có màu vàng nh¿t, hầu nh° không có h¿t, n°ớc ít nh°ng rÃt ngọt thanh.
- Cam ham lin: cú nguòn gốc từ Mỹ, du nhập vào Việt Nam khoÁng từ năm
1971, vỏ quÁ mỏng, nhiều n°ớc và có vị ngọt đậm đà
- Cam Xã Đoài: tập trung nhiều á vùng Xã Đoài, Nghệ An, quÁ ngọt th¡m vị rÃt đặc tr°ng, nhiều n°ớc nên rÃt đ°ÿc °a chuáng [3]
Hình 2.1 : Hình dạng qu¿ cam luan van tot nghiep khoa luan
Xoài
Đã trá thành mát biểu t°ÿng cÿa vùng nhiệt đới, phát triển m¿nh mẽ trong khớ hậu Ãm ỏp Xoài cú nguòn gốc từ Nam Á, đặc biệt Ân Đỏ đ°ÿc biết đến nh° cỏi nụi cÿa lo¿i quÁ ngọt ngào này Qua thòi gian, xoài đó du nhập và phỏt triển m¿nh mẽ ỏ nhiều quốc gia nhò cỏc cuỏc hành trỡnh cÿa cỏc nhà thỏm hiểm và th°Ăng nhõn từ thòi cỏ đ¿i.QuÁ xoài, từ lỳc non mang màu xanh mỏt mắt, dần dần chuyển sang màu vàng rực rỡ khi chín Thịt quÁ màu vàng t°¡i, mềm m¿i, đậm đà h°¡ng vị với mát chút x¡ nhẹ Hình d¿ng cÿa quÁ xoài thay đái từ tròn đến bầu dāc, t¿o nên sự đa d¿ng trong từng lo¿i.
Xoài Cát Hòa Lác: có quÁ to, vỏ xanh, khi chín chuyển sang màu vàng
Xoài Cát Chu: Xoài Cát Chu có quÁ nhỏ h¡n xoài Cát Hòa Lác, vỏ xanh, khi chín chuyển sang màu vàng
Xoài keo: có quÁ nhỏ, vỏ xanh, khi chín chuyển sang màu vàng
Xoài keo: có quÁ nhỏ, vỏ xanh, khi chín chuyển sang màu vàng Thịt xoài dày, màu vàng cam, vị ngọt thanh, h¡i chua, nhiều x¡
Xoài Úc: có quÁ to, vỏ xanh, khi chín chuyển sang màu vàng Thịt xoài dày, màu vàng cam [4]
Hình 2.2 : Hình ¿nh trái xoài luan van tot nghiep khoa luan
Táo
Tỏo cú nguòn gốc từ chõu Á và Kazakh; nú đó đ°ÿc phỏ biến rỏng rói qua miền tõy Trung Quốc, dọc theo Con đ°òng TĂ lāa và qua Biển Đen Bằng cỏch này, nú đó lan rỏng khắp chõu Âu và chinh phāc thị hiếu cÿa nhiều ng°òi, sau đú nó đ°ÿc du nhập vào lãnh thá Châu Mỹ, cÁ Bắc Mỹ và Nam Mỹ, n¡i nó có khÁ năng thích nghi cao á những vùng l¿nh nhÃt cÿa lāc địa và cho đến ngày nay nó đ°ÿc tròng với quy mụ lớn, để buụn bỏn, tiờu dựng trong dõn chỳng và xuÃt khẩu
Quả có màu từ hồng đỏ đến tím sẫm, số quả trên một chùm nhiều, những loại khác có tông sáng hơn và được coi là cỡ vừa, chỉ vài cm.
Chuối
Chuối là mỏt lo¿i cõy ăn quÁ thuỏc họ Musaceae, cú nguòn gốc từ khu vực Đông Nam Á, đặc biệt là các n°ớc nh° Malaysia, Indonesia, và Philippines Từ đõy, chuối đó đ°ÿc con ng°òi tròng và lan rỏng ra khắp cỏc khu vực nhiệt đới và cận nhiệt đới trờn thế giới Hiện nay, chuối đ°ÿc tròng phỏ biến t¿i nhiều quốc gia, bao gòm Ân Đỏ, Trung Quốc, Brazil, và cỏc n°ớc vựng Trung Mỹ và chõu Phi [6]
QuÁ chuối th°òng cú hỡnh dỏng cong, vỏ màu vàng khi chớn và màu xanh khi ch°a chín Bên trong là phần thịt màu trắng hoặc vàng nh¿t, mềm, ngọt và nhiều n°ớc Chuối mọc thành từng nÁi, mòi nÁi cú nhiều quÁ Mòi cõy chuối th°òng cho ra mỏt buòng chuối, và mòi buòng cú thể chāa từ vài chāc đến hàng trăm quÁ. luan van tot nghiep khoa luan
- Chuối tây (chuối tiêu): Có kích th°ớc lớn, vỏ dày, thịt ngọt và mùi th¡m đặc tr°ng.
- Chuối ngự: Kớch th°ớc nhỏ hĂn, vỏ mỏng, thịt thĂm ngon và th°òng đ°ÿc dựng trong các dịp lễ tết
- Chuối sā (chuối hỏt): Kớch th°ớc trung bỡnh, vỏ mỏng, thịt ngọt dịu và th°òng đ°ÿc dùng làm nguyên liệu chế biến các món ăn.
Nho
Nho là mỏt lo¿i cõy ăn quÁ cú nguòn gốc từ khu vực Địa Trung HÁi, Trung Á và Tõy Nam Á Từ đõy, nho đó đ°ÿc tròng rỏng rói và phỏ biến trờn toàn thế giới, đặc biệt là á các n°ớc có khí hậu ôn đới và cận nhiệt đới Những khu vực nái tiếng về tròng nho bao gòm Phỏp, í, Tõy Ban Nha, Mỹ (California), Chile, và Úc [8]
- QuÁ nho th°òng mọc thành chựm, mòi chựm cú thể chāa từ vài chāc đến vài trăm quÁ.
- QuÁ nho có kích th°ớc nhỏ, hình tròn hoặc hình bầu dāc, vỏ mỏng, màu sắc đa d¿ng từ xanh, đỏ, tím đến đen tùy theo giống.
- Bờn trong quÁ nho cú thịt mềm, ngọt, chāa nhiều n°ớc và th°òng cú h¿t nhỏ (mỏt số giống nho khụng h¿t cũng đ°ÿc tròng rỏng rói). luan van tot nghiep khoa luan
ài
ài là mỏt lo¿i cõy ăn quÁ thuỏc họ Myrtaceae, cú nguòn gốc từ khu vực nhiệt đới châu Mỹ, cā thể là Mexico, Trung Mỹ và phía bắc Nam Mỹ Từ đây, ái đã đ°ÿc tròng rỏng rói ỏ nhiều vựng nhiệt đới và cận nhiệt đới trờn toàn thế giới, bao gòm cỏc quốc gia châu Á nh° Ân Đá, Thái Lan và Việt Nam [9]
- QuÁ ái có hình d¿ng bầu dāc hoặc hình tròn, kích th°ớc thay đái từ nhỏ đến trung bỡnh, với đ°òng kớnh khoÁng 4-12 cm.
- Vỏ quÁ ái có thể mỏng hoặc dày, màu sắc từ xanh nh¿t đến vàng khi chín Mát số giống ỏi cú vỏ màu hòng nh¿t.
- Thịt ỏi bờn trong cú màu trắng, hòng, đỏ hoặc vàng, tựy thuỏc vào giống Thịt ỏi giòn, ngọt và th¡m, có nhiều h¿t nhỏ cāng á trung tâm. luan van tot nghiep khoa luan
D°a HÃu
D°a hÃu là mỏt lo¿i cõy ăn quÁ thuỏc họ Cucurbitaceae D°a hÃu cú nguòn gốc từ vựng Tõy Phi, nĂi những d¿ng hoang dó cÿa cõy này vẫn cũn tòn t¿i Từ đõy, d°a hÃu đó đ°ÿc tròng và lan rỏng ra khắp cỏc vựng nhiệt đới và cận nhiệt đới trờn thế giới Hiện nay, d°a hÃu đ°ÿc tròng phỏ biến ỏ nhiều quốc gia nh° Trung Quốc, Ân Đá, Thá Nhĩ Kỳ, Brazil và Hoa Kỳ [7]
QuÁ d°a hÃu th°òng cú hỡnh trũn hoặc hỡnh bầu dāc, kớch th°ớc lớn, cú thể nặng từ vài kilogram đến h¡n 20 kilogram
Vỏ d°a hÃu th°òng dày, màu xanh lỏ cõy, cú thể cú cỏc võn hoặc đốm trắng.
Thịt quÁ d°a hÃu cú màu đỏ, hòng, vàng, hoặc cam, ngọt và nhiều n°ớc Bờn trong thịt quÁ chāa nhiều h¿t nhỏ, màu đen hoặc trắng [7]
Hình 2.9: Một số hình ¿nh dưa hÁu khác luan van tot nghiep khoa luan
2.2 SÂ đỏ ho¿t đỏng căa mụ hỡnh hó thòng phỏt hión trỏi cõy.
Hình 2.10 : Sơ đồ hoạt động cÿa mô hình phát hiện trái cây
(1) Bá phát hiện và phân lo¿i trái cây
(2) Bá phát hiện lo¿i trái cây
- ChÃt l°ÿng Ành: Ành cần có đá phân giÁi đÿ cao để các đối t°ÿng có thể đ°ÿc nhận diện rõ ràng, ngay cÁ khi chúng nhỏ hoặc á xa.
- Số l°ÿng Ánh: quÁ cam (1087), quÁ chuối (985), nho (875), d°a hÃu (878), xoài (935), ái (810), táo (1189). luan van tot nghiep khoa luan
- Đa d¿ng: Bỏ dữ liệu nờn bao gòm Ánh với cỏc điều kiện ỏnh sỏng khỏc nhau, góc chāp, và cÁnh quan để mô hình có thể học cách phát hiện đối t°ÿng trong nhiều hoàn cÁnh
Các hòm khép phải được vẽ chính xác xung quanh đối tượng, không quá rộng hoặc quá hẹp so với kích thước thực tế của đối tượng Điều này đảm bảo rằng mô hình có thể học cách nhận dạng và định vị đối tượng một cách chính xác.
- Cân Bằng Dữ Liệu: Tránh tình tr¿ng mÃt cân bằng, n¡i mát số lớp có nhiều mẫu h¡n đáng kể so với các lớp khác, điều này có thể dẫn đến đá chệch trong quá trình huÃn luyện.
- Chia Tập Dữ Liệu: Chia bá dữ liệu thành các tập train, validation, và test để đánh giá mô hình mát cách khách quan.
Để phù hợp với yêu cầu đầu vào của mô hình, kích thước ảnh đôi khi cần được điều chỉnh Quá trình này không chỉ giúp ảnh tương thích với mô hình mà còn làm giảm tải trọng tính toán Đối với YOLOv8, kích thước ảnh được yêu cầu là 640.
- Augmentation: Sử dāng kỹ thuật tăng c°òng dữ liệu (data augmentation) nh° xoay, lật, thay đỏi màu sắc, để tăng c°òng khÁ năng tỏng quỏt húa cÿa mụ hỡnh.
2.3.2 Quá trình đánh nhãn cho các đối t°ợng
Sử dāng các công cā có sẵn trên m¿ng nh°: CVAT, Labelbox, LabelMe, Roboflow. Đối với việc đánh nhãn ta sẽ sử dāng Roboflow để là n¡i tập chung Ánh và đánh nhãn cho các đối t°ÿng (Cam, Xoài, Táo, Chuối, Nho, ài, D°a HÃu).
2.4 Phát hiãn lo¿i trái cây bằng YOLO
You Only Look Once (YOLO) đề xuÃt sử dāng mát m¿ng n¡-ron đầu-cuối để đ°a ra dự đoán về các háp giới h¿n và xác suÃt lớp cùng mát lúc Nó khác với cách tiếp cận cÿa các thuật toán phát hiện đối t°ÿng tr°ớc đó, mà sử dāng l¿i các bá phân lo¿i để thực hiện phát hiện
Theo mát cách tiếp cận hoàn toàn khác với phát hiện đối t°ÿng, YOLO đ¿t đ°ÿc kết quÁ hàng đầu, v°ÿt xa cỏc thuật toỏn phỏt hiện đối t°ÿng thòi gian thực khỏc. luan van tot nghiep khoa luan
Trong khi các thuật toán nh° Faster RCNN ho¿t đáng bằng cách phát hiện các vùng quan tâm có thể có bằng M¿ng Đề xuÃt Vùng và sau đó thực hiện nhận d¿ng trên các vùng đó riêng biệt, YOLO thực hiện tÃt cÁ các dự đoán cÿa nó với sự trÿ giúp cÿa mát lớp kết nối đầy đÿ duy nhÃt
Các ph°¡ng pháp sử dāng M¿ng Đề xuÃt Vùng thực hiện nhiều lần lặp l¿i cho cùng mát hình Ánh, trong khi YOLO chỉ cần mát lần lặp.
Kể từ khi phát hành phiên bÁn YOLO đầu tiên vào năm 2015, đã có nhiều phiờn bÁn mới cÿa cựng mỏt mụ hỡnh đ°ÿc đề xuÃt, mòi phiờn bÁn đều xõy dựng và cÁi thiện phiờn bÁn tr°ớc đú D°ới đõy là mỏt dũng thòi gian trỡnh bày sự phỏt triển cÿa YOLO trong những năm gần đây
YOLO chia hình ảnh thành nhiều lưới và tính toán độ tin cậy cũng như hộp bao cho mỗi ô lưới, phản ánh xác suất của một đối tượng nằm trong ô lưới đó Sau đó, dựa trên xác suất của đối tượng lớn hơn 0, thuật toán tính toán các xác suất lớp tương ứng và nhân chúng với xác suất đối tượng để tạo ra một điểm xác suất tổng thể và hộp bao Với kiến trúc này, YOLOv1 đã vượt qua R-CNN với độ chính xác trung bình (mean average precision - mAP) là 63,4 và tốc độ suy luận (inference speed) là 45 khung hình mỗi giây (FPS) trên bộ dữ liệu Pascal Visual Object Classes 2007 nguồn mở.
Các điểm nái bật cÿa YOLOv1:
- Phân chia hình Ánh thành l°ới: Hình Ánh đ°ÿc chia thành nhiều ô l°ới để phân tích
- Tớnh toỏn điểm tin cậy và hỏp bao: Mòi ụ l°ới sẽ tớnh toỏn điểm tin cậy và háp bao cho các đối t°ÿng có thể nằm trong ô đó.
- Tích hÿp xác suÃt lớp: Nếu xác suÃt cÿa đối t°ÿng lớn h¡n không, thuật toán sẽ tính toán các xác suÃt lớp t°¡ng āng và nhân chúng với xác suÃt đối t°ÿng. luan van tot nghiep khoa luan
- Hiệu suÃt v°ÿt trái: YOLOv1 đ¿t mAP 63.4 và tốc đá suy luận 45 FPS, v°ÿt trái h¡n so với R-CNN trên bá dữ liệu Pascal VOC 2007 [11]
Năm 2016, Joseph Redmon và Ali Farhadi đã giới thiệu YOLOv2, có khả năng phát hiện hơn 9000 loại đối tượng YOLOv2 mang lại một số cải tiến quan trọng, trong đó có việc giới thiệu anchor box – các hộp bao định sẵn được gọi là priors mà mô hình sử dụng để xác định vị trí lý tưởng của các đối tượng Thuật toán tính toán điểm IoU cho hộp bao dự đoán so với anchor box Nếu IoU đạt đến ngưỡng nhất định, mô hình sẽ tạo ra dự đoán.
Các điểm nái bật cÿa YOLOv2:
- Anchor Boxes: Sử dāng các háp bao định sẵn (priors) để cÁi thiện đá chính xác trong việc xác định vị trí đối t°ÿng Điều này giúp mô hình dễ dàng định vị các đối t°ÿng có hình d¿ng và kích th°ớc khác nhau
- Intersection over Union (IoU): Thuật toán tính toán điểm IoU giữa háp bao dự đoán và anchor box Nếu điểm IoU v°ÿt qua ng°ỡng xác định, mô hình sẽ t¿o ra dự đoán cuối cùng cho vị trí và lo¿i đối t°ÿng.
Quá trình HuÃn Luyện
Chuẩn bị Ánh
- ChÃt l°ÿng Ành: Ành cần có đá phân giÁi đÿ cao để các đối t°ÿng có thể đ°ÿc nhận diện rõ ràng, ngay cÁ khi chúng nhỏ hoặc á xa.
- Số l°ÿng Ánh: quÁ cam (1087), quÁ chuối (985), nho (875), d°a hÃu (878), xoài (935), ái (810), táo (1189). luan van tot nghiep khoa luan
- Đa d¿ng: Bỏ dữ liệu nờn bao gòm Ánh với cỏc điều kiện ỏnh sỏng khỏc nhau, góc chāp, và cÁnh quan để mô hình có thể học cách phát hiện đối t°ÿng trong nhiều hoàn cÁnh
- Gán Nhãn Chính Xác: Các bounding box cần đ°ÿc vẽ chính xác xung quanh đối t°ÿng, không quá ráng hoặc quá hẹp so với kích th°ớc thực tế cÿa đối t°ÿng
- Cân Bằng Dữ Liệu: Tránh tình tr¿ng mÃt cân bằng, n¡i mát số lớp có nhiều mẫu h¡n đáng kể so với các lớp khác, điều này có thể dẫn đến đá chệch trong quá trình huÃn luyện.
- Chia Tập Dữ Liệu: Chia bá dữ liệu thành các tập train, validation, và test để đánh giá mô hình mát cách khách quan.
- Tối ¯u Hóa Kích Th°ớc Ành: Đôi khi cần phÁi điều chỉnh kích th°ớc Ánh để phự hÿp với yờu cầu đầu vào cÿa mụ hỡnh, đòng thòi giÁm bớt gỏnh nặng tính toán (640 là yêu cầu đối với YOLOv8
- Augmentation: Sử dāng kỹ thuật tăng c°òng dữ liệu (data augmentation) nh° xoay, lật, thay đỏi màu sắc, để tăng c°òng khÁ năng tỏng quỏt húa cÿa mụ hỡnh.
Phát hiện lo¿i trái cây bằng YOLO
YOLO
You Only Look Once (YOLO) đề xuÃt sử dāng mát m¿ng n¡-ron đầu-cuối để đ°a ra dự đoán về các háp giới h¿n và xác suÃt lớp cùng mát lúc Nó khác với cách tiếp cận cÿa các thuật toán phát hiện đối t°ÿng tr°ớc đó, mà sử dāng l¿i các bá phân lo¿i để thực hiện phát hiện
Theo mát cách tiếp cận hoàn toàn khác với phát hiện đối t°ÿng, YOLO đ¿t đ°ÿc kết quÁ hàng đầu, v°ÿt xa cỏc thuật toỏn phỏt hiện đối t°ÿng thòi gian thực khỏc. luan van tot nghiep khoa luan
Trong khi các thuật toán như Faster RCNN hoạt động bằng cách phát hiện các vùng quan tâm tiềm năng bằng Mạng Đề xuất Vùng rồi thực hiện nhận dạng trên từng vùng riêng biệt, thì YOLO thực hiện toàn bộ các dự đoán của mình chỉ với sự trợ giúp của một lớp kết nối đầy đủ duy nhất.
Các ph°¡ng pháp sử dāng M¿ng Đề xuÃt Vùng thực hiện nhiều lần lặp l¿i cho cùng mát hình Ánh, trong khi YOLO chỉ cần mát lần lặp.
Kể từ khi phát hành phiên bÁn YOLO đầu tiên vào năm 2015, đã có nhiều phiờn bÁn mới cÿa cựng mỏt mụ hỡnh đ°ÿc đề xuÃt, mòi phiờn bÁn đều xõy dựng và cÁi thiện phiờn bÁn tr°ớc đú D°ới đõy là mỏt dũng thòi gian trỡnh bày sự phỏt triển cÿa YOLO trong những năm gần đây.
Các phiên bÁn
YOLO chia hình Ánh thành nhiều l°ới và tính toán điểm tin cậy và các háp bao cho mòi ụ l°ới, phÁn ỏnh xỏc suÃt cÿa mỏt đối t°ÿng nằm trong ụ l°ới đú Tiếp theo, dựa trên xác suÃt cÿa đối t°ÿng lớn h¡n không, thuật toán tính toán các xác suÃt lớp t°¡ng āng và nhân chúng với xác suÃt đối t°ÿng để t¿o ra mát điểm xác suÃt táng thể và háp bao Với kiến trúc này, YOLOv1 đã v°ÿt qua R-CNN với đá chính xác trung bình (mean average precision - mAP) là 63.4 và tốc đá suy luận (inference speed) là 45 khung hỡnh mòi giõy (FPS) trờn bỏ dữ liệu Pascal Visual Object Classes 2007 mó nguòn mỏ [11]
Các điểm nái bật cÿa YOLOv1:
- Phân chia hình Ánh thành l°ới: Hình Ánh đ°ÿc chia thành nhiều ô l°ới để phân tích
- Tớnh toỏn điểm tin cậy và hỏp bao: Mòi ụ l°ới sẽ tớnh toỏn điểm tin cậy và háp bao cho các đối t°ÿng có thể nằm trong ô đó.
Thuật toán tính xác suất lớp bằng cách nhân xác suất của từng lớp con với xác suất của đối tượng Nếu xác suất của đối tượng lớn hơn 0, thuật toán tính toán xác suất của các lớp tương ứng.
- Hiệu suÃt v°ÿt trái: YOLOv1 đ¿t mAP 63.4 và tốc đá suy luận 45 FPS, v°ÿt trái h¡n so với R-CNN trên bá dữ liệu Pascal VOC 2007 [11]
Năm 2016, Joseph Redmon và Ali Farhadi đã giới thiệu YOLOv2, có khÁ năng phát hiện h¡n 9000 lo¿i đối t°ÿng YOLOv2 mang đến mát số cÁi tiến quan trọng, trong đó có việc giới thiệu anchor boxes – các háp bao định sẵn đ°ÿc gọi là priors mà mô hình sử dāng để xác định vị trí lý t°áng cÿa mát đối t°ÿng Thuật toán tính toán điểm IoU cho háp bao dự đoán so với anchor box Nếu IoU đ¿t đến ng°ỡng nhÃt định, mô hình sẽ t¿o ra dự đoán.
Các điểm nái bật cÿa YOLOv2:
Anchor box là những hộp định sẵn được sử dụng để cải thiện độ chính xác trong việc xác định vị trí đối tượng Chúng được sử dụng trong các mô hình học máy để dễ dàng định vị các đối tượng có hình dạng và kích thước khác nhau.
Thuật toán Intersection over Union (IoU) được sử dụng để tính điểm giữa hộp bao dự đoán và hộp neo Điểm IoU này là thước đo mức độ trùng lặp giữa hai hộp Nếu điểm IoU vượt quá ngưỡng xác định, mô hình sẽ đưa ra dự đoán cuối cùng về vị trí và loại đối tượng xuất hiện trong hình ảnh.
- Hiệu suÃt v°ÿt trái: YOLOv2 đ¿t đ°ÿc đá chính xác trung bình (mean Average Precision - mAP) là 76.8 và tốc đỏ suy luận 67 khung hỡnh mòi giây (FPS) trên bá dữ liệu VOC 2007.
Nhò cỏc cÁi tiến này, YOLOv2 đó nõng cao khÁ năng phỏt hiện đối t°ÿng, không chỉ má ráng số l°ÿng lo¿i đối t°ÿng có thể nhận diện mà còn cÁi thiện tốc đá và đá chính xác cÿa quá trình phát hiện Điều này giúp YOLOv2 trá thành mát công cā m¿nh mẽ trong các āng dāng thị giác máy tính yêu cầu phát hiện đối t°ÿng nhanh chóng và chính xác [11]
Năm 2018, Joseph Redmon và Ali Farhadi đã công bố mát bài báo giới thiệu YOLOv3, phiên bÁn mới với đá chính xác cao h¡n các phiên bÁn tr°ớc đó luan van tot nghiep khoa luan
YOLOv3 đ¿t đ°ÿc đỏ chớnh xỏc trung bỡnh (mAP) là 28.2 với thòi gian xử lý chỉ 22 mili giây [11]
Hình 2.11: Āng dụng YOLOv3 cho tÿ lạnh thông minh trong ẩm thực và nhà hàng
YOLOv3 sử dāng Darknet-53 làm kiến trúc x°¡ng sống (backbone) cho mô hình Darknet-53 là mát m¿ng n¡-ron tích chập sâu với 53 lớp, đ°ÿc thiết kế để cân bằng giữa đá chính xác và hiệu suÃt tính toán
Logistic Classifiers: Để dự đoán các lớp, YOLOv3 sử dāng bá phân lo¿i logistic thay vì softmax Việc sử dāng logistic classifiers giúp mô hình có thể dự đoán nhiều nhãn cho mát đối t°ÿng, phù hÿp với các tình huống mà mát đối t°ÿng có thể thuác nhiều lo¿i cùng mát lúc. luan van tot nghiep khoa luan
YOLOv3 áp dāng hàm mÃt mát Binary Cross-entropy cho việc huÃn luyện, thay vì sử dāng các hàm mÃt mát truyền thống Binary Cross-entropy loss giúp cÁi thiện quá trình tối °u hóa và đá chính xác cÿa mô hình
Với những cÁi tiến trên, YOLOv3 đ¿t mAP 28.2 và có khÁ năng xử lý với tốc đỏ 22 mili giõy cho mòi hỡnh Ánh, t°Ăng đ°Ăng với khoÁng 45 khung hỡnh mòi giõy (FPS) Điều này cho thÃy YOLOv3 khụng chỉ tăng c°òng đỏ chớnh xỏc mà cũn duy trì tốc đá xử lý nhanh chóng.
Nhò những cÁi tiến về kiến trỳc và thuật toỏn, YOLOv3 trỏ thành mỏt trong những mô hình phát hiện đối t°ÿng hàng đầu, đ°ÿc sử dāng ráng rãi trong nhiều āng dāng thị giác máy tính đòi hỏi đá chính xác và tốc đá cao [11]
Năm 2020, Alexey Bochkovskiy phát hành YOLOv4, giới thiệu khái niệm Túi quà tặng (BoF) và Túi đặc biệt (BoS) BoF là mát tập hÿp các kỹ thuật tăng c°òng dữ liệu giỳp tăng đỏ chớnh xỏc mà khụng mÃt thờm chi phớ suy luận (BoS tăng c°òng đỏng kể đỏ chớnh xỏc với chi phớ tăng nhẹ) Mụ hỡnh đ¿t đ°ÿc 43,5 mAP á tốc đá 65 FPS trên bá dữ liệu COCO [11]
YOLOv4 sử dāng mát số đặc tr°ng sáng t¿o ho¿t đáng cùng nhau để tối °u húa hiệu suÃt cÿa nú Chỳng bao gòm Weighted-Residual-Connections, Cross- Stage-Partial-connections, Cross-mini-Batch Normalization, Self-adversarial- training, Mish-activation, Mosaic data augmentation, DropBlock regularization, và CIoU loss Các đặc tr°ng này đ°ÿc kết hÿp để đ¿t đ°ÿc kết quÁ hiện đ¿i [11]
Mụi tr°òng thử nghiệm
Ngôn nhữ lập trình Python
Python, một ngôn ngữ lập trình bậc cao đa năng do Guido van Rossum phát triển lần đầu vào năm 1991, nổi bật với sự dễ đọc, dễ học và dễ nhớ Cú pháp Python trực quan, cấu trúc rõ ràng, phù hợp cho người mới học lập trình Ngôn ngữ này cũng được sử dụng rộng rãi trong phát triển trí tuệ nhân tạo, cho phép người dùng viết mã với số lần nhập phím tối thiểu Vào tháng 7 năm 2018, Van Rossum đã từ chức lãnh đạo cộng đồng ngôn ngữ Python sau 30 năm cống hiến.
Python hoàn toànt¿o kiểu đángvà dùng c¡ chếcÃp phát bá nhớ tự đáng; do vậy nó t°¡ng tự nh°Perl,Ruby,Scheme,Smalltalk, vàTcl Python đ°ÿc phát triển trong mát dự án mã má, do tá chāc phi lÿi nhuận Python Software Foundation quÁn lý
Ban đầu, Python đ°ÿc phỏt triển để ch¿y trờn nền Unix Nh°ng ròi theo thòi gian, Python dần má ráng sang mọi hệ điều hành từ MS-DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành khác thuác họ Unix Mặc dù sự phát triển cÿa Python có sự đóng góp cÿa rÃt nhiều cá nhân, nh°ng Guido van Rossum hiện nay vẫn là tác giÁ chÿ yếu cÿa Python Ông giữ vai trò chÿ chốt trong việc quyết định h°ớng phát triển cÿa Python.
Python luôn đ°ÿc xếp h¿ng vào những ngôn ngữ lập trình phá biến nhÃt [14]
Python đang trỏ nờn phỏ biến trong cỏng đòng lập trỡnh nhò cú cỏc đặc tớnh sau:
- Ngụn ngữ thụng dịch: Python đ°ÿc xử lý trong thòi gian ch¿y bỏi trỡnh thông dịch Python luan van tot nghiep khoa luan
- Ngụn ngữ h°ớng đối t°ÿng: Nú hò trÿ cỏc đặc tr°ng và kỹ thuật lập trỡnh h°ớng đối t°ÿng.
- Ngụn ngữ lập trỡnh t°Ăng tỏc: Ng°òi dựng cú thể t°Ăng tỏc trực tiếp với trình thông dịch python để viết ch°¡ng trình
- Ngụn ngữ dễ học: Python rÃt dễ học, đặc biệt là cho ng°òi mới bắt đầu
- Cú pháp đ¡n giÁn: Việc hình thành cú pháp Python rÃt đ¡n giÁn và dễ hiểu, điều này cũng làm cho nó trá nên phá biến.
- Mó nguòn mỏ: Python cho phộp ng°òi dựng cú thể sử dāng, chỉnh sửa và phõn phối mó nguòn mỏt cỏch tự do.
- Di đáng: Mã Python có thể ch¿y trên nhiều nền tÁng phần cāng có cùng giao diện.
- Cú thể mỏ rỏng: Ng°òi dựng cú thể thờm cỏc mụ-đun cÃp thÃp vào trỡnh thông dịch Python
- Cú thể cÁi tiến: Python cung cÃp mỏt cÃu trỳc cÁi tiến để hò trÿ cỏc ch°Ăng trình lớn sau đó là shell-script
- Hò trÿ cỏng đòng: python cú mỏt cỏng đòng lớn với nhiều ng°òi dựng và nhà phát triển trên khắp thế giới đóng góp vào việc phát triển cà cÁi tiến Python Cỏng đòng này cũng cung cÃp hò trÿ và tài liệu để giỳp ng°òi dựng python giÁi quyết cá vÃn đề mát cách nhanh chóng và hiệu quÁ [15]
Python đã đ°ÿc Guido van Rossum t¿o ra vào những năm 1980 t¿i Trung tâm Toán học – Tin học (Centrum Wiskunde & Informatica, CWI) á Hà Lan nh° là mát ngôn ngữ kế tāc ngôn ngữ ABC – mát ngôn ngữ đ°ÿc lÃy cÁm hāng từ SETL (ngụn ngữ đ°ÿc phỏt triển bỏi Jacob T Schwartz và cỏc đòng nghiệp), cú khÁ năng xử lý ngo¿i lệ và giao tiếp với hệ điều hành Amoeba Nó bắt đầu đ°ÿc triển khai vào tháng 12 năm 1989.
Python 2.0 đ°ÿc ra mắt vào ngày 16 tháng 10 năm 2000, với nhiều đặc tr°ng mới mẻ, bao gòm mỏt bỏ dọn rỏc phỏt hiện theo chu kỳ và khÁ năng hò trÿ Unicode. luan van tot nghiep khoa luan
Mụi tr°òng phỏt triển tớch hÿp Pycharm
Python 3.0 đ°ÿc ra mắt vào ngày mùng 3 tháng 12 năm 2008 Đây là mát phiên bÁn lớn cÿa Python không t°¡ng thích ng°ÿc hoàn toàn Nhiều đặc tr°ng lớn cÿa nó đã đ°ÿc chuyển mã ng°ÿc (backport) về lo¿t phiên bÁn Python 2.6.x và 2.7.x Các bÁn phát hành cÿa Python 3 có đi kèm với công cā 2to3, có tác dāng tự đáng hoá việc dịch mã Python 2 sang Python 3
Python 3.9.2 và 3.8.8 đ°ÿc xúc tiến vì tÃt cÁ các phiên bÁn tr°ớc cÿa Python (bao gòm cÁ 2.7) gặp mỏt số vÃn đề bÁo mật, cú thể dẫn đến thực thị mó từ xa và
"đầu đác" bá nhớ đệm.
Trong năm 2022, Python 3.10.4 và 3.9.12 đ°ÿc xúc tiến cùng với 3.8.13 và 3.7.13, nguyên nhân là do mát vài vÃn đề về bÁo mật Khi Python 3.9.13 đ°ÿc phát hành vào tháng Năm năm 2022, lo¿t phiên bÁn 3.9 (cùng với lo¿t 3.8 và 3.7) đ°ÿc thông báo rằng sẽ chỉ nhận đ°ÿc các bÁn vá bÁo mật trong t°¡ng lai Vào ngày 7 tháng Chín năm 2022, bốn bÁn cập nhật mới đ°ÿc phát hành do có khÁ năng xÁy ra mát cuác tÃn công từ chối dịch vā: 3.10.7, 3.9.14, 3.8.14 và 3.7.14
Tính đến tháng 10 năm 2023, Python 3.12 là bÁn phát hành án định mới nhÃt Mỏt số thay đỏi đỏng chỳ ý từ bÁn 3.11 bao gòm cỏc thay đỏi về ngụn ngữ và th° viện chuẩn.[14]
3.1.2 Môi tr°ờng phát triển tích hợp Pycharm
PyCharm là mỏt mụi tr°òng phỏt triển tớch hÿp (IDE) đ°ÿc sử dāng để lập trỡnh bằng Python Nú cung cÃp phõn tớch mó, trỡnh gỡ lòi đò họa, trỡnh kiểm tra đĂn vị tớch hÿp, tớch hÿp với cỏc hệ thống kiểm soỏt phiờn bÁn và hò trÿ phỏt triển web với Django PyCharm đ°ÿc phát triển bái công ty JetBrains cÿa Séc
Nó là đa nền tÁng, ho¿t đáng trên Microsoft Windows, macOS và Linux PyCharm có Professional Edition, đ°ÿc phát hành theo giÃy phép đác quyền và Community Edition đ°ÿc phát hành theo GiÃy phép Apache PyCharm Community Edition ít má ráng h¡n Professional Edition [12] luan van tot nghiep khoa luan
- Hò trÿ và phõn tớch mó húa, với việc hoàn thành mó, tụ sỏng cỳ phỏp và lòi, tớch hÿp lớp lút và sửa lòi nhanh
- Điều h°ớng dự án và mã: chế đá xem dự án chuyên biệt, chế đá xem cÃu trúc tệp và nhÁy nhanh giữa các tệp, lớp, ph°¡ng thāc và cách sử dāng
- Tỏi cÃu trỳc mó Python: bao gòm đỏi tờn, ph°Ăng thāc trớch xuÃt, giới thiệu biến, giới thiệu hằng số, kéo lên, đẩy xuống và các biến khác
- Hò trÿ cho cỏc khung web: Django, web2py và Flask
- Trỡnh gỡ lòi Python tớch hÿp
- Kiểm tra đ¡n vị tích hÿp, với ph¿m vi bao phÿ từng dòng
- Công cā āng dāng Google Phát triển Python
- Tớch hÿp kiểm soỏt phiờn bÁn: giao diện ng°òi dựng hÿp nhÃt cho Mercurial, Git, Subversion, Perforce và CVS với danh sách thay đái và hÿp nhÃt
- Tích hÿp công cā khoa học: tích hÿp với IPython Notebook, có bÁng điều khiển Python t°Ăng tỏc và hò trÿ Anaconda cũng nh° nhiều gúi khoa học bao gòm Matplotlib và NumPy [12]
PyCharm đó đ°ÿc phỏt hành ra thị tr°òng cỏc IDE tập trung vào Python để c¿nh tranh với PyDev (cho Eclipse) hoặc Komodo IDE tập trung ráng rãi h¡n cÿa ActiveState.
Phiên bÁn beta cÿa sÁn phẩm đ°ÿc phát hành vào tháng 7 năm 2010, với phiên bÁn 1.0 đến 3 tháng sau đó Phiên bÁn 2.0 đ°ÿc phát hành vào ngày 13 tháng
12 năm 2011, phiên bÁn 3.0 đ°ÿc phát hành vào ngày 24 tháng 9 năm 2013 và phiên bÁn 4.0 đ°ÿc phát hành vào ngày 19 tháng 11 năm 2014
PyCharm trỏ thành mó nguòn mỏ vào ngày 22 thỏng 10 năm 2013 Biến thể
The open-source version of Power BI is released under the name Community Edition, while the commercial variant, Professional Edition, features additional business intelligence modules.
Công cā trực tuyến Google Collab
3.1.3 Công cụ trực tuyến Google Collab
Colaboratory hay còn gọi là Google Colab, là mát sÁn phẩm từ Google Re- search, nó cho phép ch¿y các dòng code python thông qua trình duyệt, đặc biệt phù hÿp với Data analysis, machine learning và giáo dāc Colab không cần yêu cầu cài đặt hay cÃu hình máy tính, mọi thā có thể ch¿y thông qua trình duyệt, b¿n có thể sử dāng tài nguyên máy tính từ CPU tốc đá cao và cÁ GPUs và cÁ TPUs đều đ°ÿc cung cÃp cho b¿n.
Colab cung cÃp nhiều lo¿i GPU, th°òng là Nvidia K80s, T4s, P4s and P100s, tuy nhiờn ng°òi dựng khụng thể chọn lo¿i GPU trong Colab, GPU trong Colab thay đỏi theo thòi gian Vỡ là dịch vā miễn phớ, nờn Colab sẽ cú những thā tự °u tiờn trong việc sử dāng tài nguyờn hệ thống, cũng nh° giới h¿n thòi gian sử dāng, thòi gian sử dāng tối đa lờn tới 12 giò [13]
3.1.3.2 Những đặc trưng chính trong Google Colab
- Sā dāng Jupyter Notebooks trực tuy¿n
Google Colab cho phép t¿o và ch¿y các Jupyter Notebooks trực tuyến mà khụng cần cài đặt mụi tr°òng phỏt triển phāc t¿p trờn mỏy tớnh cỏ nhõn.
Giao diện sử dāng t°¡ng tự nh° Jupyter Notebook truyền thống với các cell cho phép thực thi mã Python hoặc viết markdown để t¿o nái dung h°ớng dẫn [16]
- KhÁ năng chia sẻ và cáng tác
Ng°òi dựng cú thể chia sẻ notebook với những ng°òi khỏc để cựng làm việc trên cùng mát notebook, t¿o điều kiện thuận lÿi cho việc học tập và làm việc nhóm
Cỏc đặc tr°ng nh° bỡnh luận và chế đỏ chỉnh sửa đòng thòi giỳp tăng tớnh t°¡ng tác và hiệu quÁ cÿa quá trình cáng tác [16] luan van tot nghiep khoa luan
- Dùng GPU và TPU mián phí
Google Colab cung cÃp truy cập miễn phí đến GPU và TPU, đặc biệt hữu ích cho các tác vā tính toán nặng về mặt số học, đặc biệt là trong lĩnh vực học máy và học sâu
Sử dụng card GPU hoặc TPU có sẵn có thể giúp tăng tốc quá trình xử lý và huấn luyện mô hình so với các CPU thông thường.
- L°u trữ dữ liãu trên Google Drive và tích hÿp Google Cloud
Người dùng có thể truy cập và lưu trữ trực tiếp dữ liệu từ Google Drive, mang đến sự dễ dàng cho việc làm việc với các tập tin dữ liệu lớn.
Tích hÿp với điện toán đám mây cÿa Google cũng cho phép sử dāng các dịch vā nh° BigQuery, Cloud Storage, và các API khác từ dịch vā điện toán đám mây trong quá trình làm việc [16]
3.2 T¿o bỏ dữ lióu hỏc đò huÃn luyón
Roboflow là mát framework dành cho nhà phát triển Thị giác Máy tính để thu thập dữ liệu tốt h¡n để xử lý tr°ớc và các kỹ thuật đào t¿o mô hình Roboflow có sẵn cỏc tập dữ liệu cụng khai cho ng°òi dựng và cũng cú quyền truy cập để ng°òi dựng tÁi lên dữ liệu tùy chỉnh cÿa riêng họ Roboflow chÃp nhận các định d¿ng chú thích khác nhau Trong quá trình xử lý tr°ớc dữ liệu, có các b°ớc liên quan nh° định h°ớng hình Ánh, thay đỏi kớch th°ớc, đỏ t°Ăng phÁn và tăng c°òng dữ liệu.
Toàn bá quy trình làm việc có thể đ°ÿc điều phối với các nhóm trong khuôn khá Đối với đào t¿o mô hình, có mát lo¿t th° viện mô hình đã có mặt nh° EfficientNet, MobileNet, Yolo, TensorFlow, PyTorch, v.v Sau đó, các tùy chọn trực quan và triển khai mụ hỡnh cũng cú sẵn do đú bao gòm toàn bỏ hiện đ¿i.
Roboflow đ°ÿc sử dāng trong các ngành công nghiệp thị giác máy tính khác nhau cho cỏc tr°òng hÿp sử dāng nh° – phỏt hiện rũ rỉ khớ đốt, phỏt hiện thực vật và cỏ d¿i, bÁo trì máy bay, °ớc tính thiệt h¿i mái nhà, hình Ánh vệ tinh, ô tô tự lái, bá đếm giao thông, dọn rác và nhiều h¡n nữa [17] luan van tot nghiep khoa luan
Táng số l°ÿng Ánh : 12.076 Ánh
BÁng 3-1: Số L°ÿng Ành cÿa từng lo¿i
Với táng số 12.076 Ánh trong đó 6.719 Ánh đ°ÿc thu thập thÿ công trên các trang m¿ng xã hái: facebook, pinterest, pixel, và mát số Ánh đ°ÿc thu thập từ việc chāp trực tiếp trái cây bên ngoài, với 3995 Ánh còn l¿i đ°ÿc thêm vào thông qua đặc tr°ng tiền xử lý hay tăng c°òng hỡnh Ánh trờn Roboflow.
Hình 3.1: đặc trưng tăng cường hình ¿nh trên Roboflow luan van tot nghiep khoa luan
Hình 3.2: Health check được thống kê trên Roboflow
Phân chia tệp dữ liệu:
Train (Training Set): Đây là tập dữ liệu đ°ÿc sử dāng để huÃn luyện mô hình
Mô hình học máy sẽ