SSD-Mobilenet là một trong những mô hình được phát triển mới đây, với khả năng phân loại đối tượng nhanh và chính xác.. Sau khi mô hình đã được huấn luyện, chúng ta sẽ áp dụng thuật toán
Trang 1ĐỀ TÀI:
HỆ THỐNG PHÂN LOẠI QUẢ CHANH SỬ DỤNG
TRÍ TUỆ NHÂN TẠO
Giáo viên hướng dẫn:
Thành viên nhóm:
TS Hán Trọng ThanhHoàng Thị Kim PhượngNguyễn Thị Thùy LinhNguyễn Hoàng ChungNguyễn Tiến Vang
Hà Nội, 2023
Trang 2MỤC LỤC
1 Tổng quan đề tài 3
1.1 Giới thiệu 3
1.2 Nhiệm vụ 3
1.3 Mục tiêu thiết kế 4
2 Cơ sở lý thuyết thuật toán SSD-MobileNet 4
2.1 Giới thiệu 4
2.2 Thuật toán SSD (Single Shot Multibox Detector) 5
2.3 Kiến trúc model MobileNet 6
2.4 Mô hình MobileNet áp dụng 8
3 Huấn luyện thuật toán AI 14
3.1 Bộ dữ liệu (Dataset) 14
3.2 Kết quả train model 14
4 Thiết kế hệ thống 15
4.1 Yêu cầu chức năng 15
4.2 Yêu cầu phi chức năng 15
4.3 Sơ đồ khối 16
4.3.1 Khối nhận hình ảnh đầu vào 16
4.3.2 Khối xử lý trung tâm 17
4.3.3 Khối triển khai hệ thống 18
5 Kết luận 20
6 Tài liệu tham khảo 21
Trang 31 Tổng quan đề tài
1.1 Giới thiệu
Đề tài này sẽ tập trung vào việc ứng dụng thuật toán SSD-Mobilenet để phânloại các hình ảnh chanh Trong những năm gần đây, Deep Learning và các mô hìnhmạng nơ-ron sâu đã trở thành xu hướng phổ biến trong lĩnh vực xử lý ảnh và nhận dạng đối tượng SSD-Mobilenet là một trong những mô hình được phát triển mới đây, với khả năng phân loại đối tượng nhanh và chính xác
Trong đề tài này, chúng ta sẽ sử dụng mô hình SSD-Mobilenet để phân loại các hình ảnh chanh thành chanh tốt và chanh hỏng Việc phân loại này sẽ được thực hiện thông qua việc huấn luyện mô hình với tập dữ liệu ảnh chanh đầy đủ và
đa dạng Sau khi mô hình đã được huấn luyện, chúng ta sẽ áp dụng thuật toán để phân loại các hình ảnh chanh mới và đánh giá độ chính xác của mô hình
Việc áp dụng SSD-Mobilenet để phân loại hình ảnh chanh không chỉ có ứng dụng trong lĩnh vực nông nghiệp và sản xuất, mà còn có thể được sử dụng trong nhiều ứng dụng khác như nhận diện đối tượng trong hình ảnh và các ứng dụng liên quan đến xử lý ảnh
3 Xây dựng cánh tay robot và băng truyền: Đây là công việc quan trọng để đảm bảo rằng cánh tay robot có thể hoạt động một cách chính xác và hiệu quả Thiết kế cánh tay phải đáp ứng các yêu cầu về độ cứng, độ chính xác và
độ bền
4 Huấn luyện mô hình phân loại: Để phân loại hình ảnh hoạt động chính xác, cần phải huấn luyện mô hình với tập dữ liệu ảnh chanh đầy đủ và đa dạng Quá trình huấn luyện này cần có sự chính xác và tốn thời gian
Trang 45 Lập trình phần mềm: Để điều khiển cánh tay robot, cần phải xây dựng phần mềm điều khiển Phần mềm này cần có khả năng giao tiếp với các linh kiện của robot, điều khiển servo và lấy thông tin từ camera
6 Đánh giá và cải tiến mô hình: Sau khi hoàn thành việc huấn luyện mô hình, cần đánh giá độ chính xác của mô hình và thực hiện các cải tiến nếu cần thiết Việc đánh giá và cải tiến mô hình sẽ giúp cải thiện khả năng phân loại hình ảnh của robot
1.3 Mục tiêu thiết kế
Mục tiêu thiết kế của cánh tay robot trong ứng dụng phân loại chanh bao gồm:
1 Đảm bảo độ chính xác và độ tin cậy: Cánh tay robot phải được thiết kế sao cho độ chính xác và không gây thiệt hại cho sản phẩm
2 Đảm bảo tính linh hoạt và tương thích: Cần có tính linh hoạt cao, có thể thích nghi với nhiều vị trí và ánh sáng trong quá trình phân loại chanh
3 Tối ưu hóa hiệu suất và tốc độ: Cánh tay robot phải được thiết kế để có hiệu suất và tốc độ cao để đảm bảo rằng quá trình phân loại chanh được thực hiệnnhanh chóng và hiệu quả
Tóm lại, mục tiêu thiết kế của cánh tay robot là đảm bảo rằng robot có thể phân loại chanh một cách chính xác, nhanh chóng và hiệu quả mà vẫn đảm bảo an toàn cho người sử dụng và các sản phẩm khác trong quá trình làm việc
2 Cơ sở lý thuyết thuật toán SSD-MobileNet
2.1 Giới thiệu
Thuật toán SSD-MobileNet là một trong những thuật toán phổ biến được sử dụng trong bài toán nhận dạng và phân loại đối tượng trong ảnh Đây là một thuật toán học sâu (Deep Learning Algorithm) dựa trên mô hình Convolutional Neural Network (CNN)
Mô hình SSD (Single Shot Multibox Detector) được sử dụng để phát hiện vàphân loại đối tượng trong ảnh một cách hiệu quả, kết hợp việc sử dụng đa lớp phânloại (multi-class classification) và đa lớp phát hiện (Multi-box Detection) SSD-MobileNet sử dụng mô hình MobileNet, một mô hình CNN được tối ưu hóa để có thể chạy trên các thiết bị di động với tốc độ nhanh và độ chính xác cao
Trang 5Hình 1: Sơ đồ tổng quan của thuật toán SSD-MobileNet V1
Các bước chính của thuật toán SSD-MobileNet gồm:
1 Tạo các feature map từ ảnh đầu vào bằng cách sử dụng mô hình CNN MobileNet
2 Tại mỗi vị trí trên feature map, tạo ra các anchor box với kích thước và tỷ lệ khác nhau
3 Dự đoán xác suất và tọa độ của các đối tượng trong các anchor box
4 Sử dụng thuật toán non-maximum suppression để loại bỏ các anchor box trùng lặp và giữ lại các anchor box có xác suất dự đoán cao nhất
Thuật toán SSD-MobileNet cho phép phân loại và phát hiện đối tượng trong ảnh một cách nhanh chóng và chính xác, đặc biệt là khi sử dụng trên các thiết bị cótài nguyên hạn chế
2.2 Thuật toán SSD (Single Shot Multibox Detector)
SSD (Single Shot MultiBox Detector) là một thuật toán phát hiện đối tượng trong ảnh (Object Detection) nhanh và hiệu quả Nó là một trong những thuật toán được sử dụng phổ biến trong lĩnh vực thị giác máy tính (Computer Vision) hiện nay
Thuật toán SSD được xây dựng trên cơ sở của hai thành phần chính: thuật toán MobileNet để trích xuất đặc trưng và thuật toán MultiBox để phát hiện đối tượng
MobileNet là một mô hình mạng học sâu (Deep Learning Network) được thiết kế đặc biệt cho thiết bị di động và máy tính nhúng, nhằm đạt được cân bằng giữa độ chính xác và tốc độ xử lý Nó sử dụng các phép tích chập (Convolutional) đặc biệt để giảm số lượng tham số, từ đó giảm chi phí tính toán và bộ nhớ
Trang 6MultiBox là một phương pháp phát hiện đối tượng dựa trên bounding box được đề xuất bởi một đề xuất trước đó Nó giúp giảm đáng kể số lượng hộp cần được xử lý và tăng hiệu quả cho việc phát hiện đối tượng.
Kết hợp cả hai thành phần, thuật toán SSD có thể phát hiện đối tượng trong ảnh với tốc độ nhanh và độ chính xác cao, đồng thời đáp ứng được yêu cầu của nhiều ứng dụng thực tế
2.3 Kiến trúc model MobileNet
Hình 2: Sơ đồ kiến trúc MobileNetV1.
Thuật toán MobileNet là một mạng học sâu (deep learning) được thiết kế để giảm kích thước mô hình và tăng tốc độ tính toán so với các mô hình truyền thống
Nó được phát triển bởi Google và đã được sử dụng trong nhiều ứng dụng như phânloại hình ảnh, phát hiện đối tượng, nhận dạng giọng nói và dịch vụ trực tuyến
Depthwise Separable Convolution (DSC) là một phương pháp giảm kích
thước mô hình bằng cách sử dụng hai loại convolution là Depthwise Convolution
và Pointwise Convolution
Hàm chi phí đối với phép tích chập truyền thống (Standard Convolution):
(2.3.1)Trong đó, D * D là kích thước kernel, M là số kênh đầu vào, N là số kênh đầuK K
ra, D * D là kích thước feature map.F F
Tích chập chiều sâu (Depthwise Convolution - DW): Tương tự như
Convolution thông thường, tuy nhiên DW sẽ áp dụng bộ lọc (kernel) trên từngkênh đầu vào riêng lẻ
Hàm chi phí đối với phép tích chập Depthwise Convolution:
Trang 7(2.3.2)
Số lượng phép tính của Depthwise Convolution giảm đi N lần so với Standard Convolution, không phục thuộc vào số lượng kênh đầu vào
Tích chập điểm (Pointwise Convolution - PW): áp dụng một bộ lọc 1x1
(kernel size = 1) trên tất cả các kênh đầu vào để giảm số lượng kênh đầu ra PW được đặt ngay sau DW và lấy đầu vào là đầu ra của DW
Hàm chi phí đối với phép tích chập Pointwise Convolution:
(2.3.3)Như vậy, kết hợp (2.2) và (2.3) hàm chi phí của Depthwise Separable Convolution là:
(2.3.4)
So sánh với Standard Convolution:
(2.3.5)Hàm chi phí tính toán của DSC ít hơn rất nhiều MobileNet sử dụng 3x3 DSC, các phép toán ít hơn nhiều so với phép tích chập truyền thống trong khi độ chính xác giảm đi một phần nhỏ
Trang 13Hình 4: Sơ đồ model MobileNet áp dụng
Trang 143 Huấn luyện thuật toán AI
3.1 Bộ dữ liệu (Dataset)
Bộ dữ liệu gồm:
1 Qua việc thu thập dữ liệu bằng tay,bộ dữ liệu dẫ thu được 1002 ảnh
2 Bộ dữ liệu dùng 1002 ảnh để train và 177 ảnh đề dùng làm validation dataset
3 Dataset được tải lên Google Colab để bắt đầu đào tạo
Hình 4: Sơ đồ quá trình huấn luyện.
3.2 Kết quả train model
Hệ thống được đào tạo bằng thuật toán MobileNet V1-SSD với epoch bằng
100 Epoch ở đây là số lần học của máy với một epoch hoàn thành là khi máy đã học đầy đủ và hoàn chình 1002 ảnh đã thu thập được, epoch phụ thuộc vào bộ dữ liệu và tùy vào đặc điểm của mỗi thuật toán sẽ có một epoch phù hợp
Epoch được xác định dựa vào hàm loss Hàm loss là thang đo cho việc model có được học tốt hay không Nếu giá trị của hàm loss càng nhỏ thì model học càng tốt để đào tạo hệ thống phân loại chanh cần epoch bằng 100 do trong quatrình đào tạo khi đến lần epoch thứ 100 hàm loss đã ngừng giảm, nếu khi hàm loss ngừng giảm mà vấn tiếp tục lần đào tạo tiếp theo có thể dẫn đến trường hợp máy chỉ ghi nhớ chứ không học nữa do đã overfiting Sau quá trình đào tạo bằng thuật toán MobileNet V1-SSD kết quả thu được là một model hệ thống phân loại chanh
Trang 15Hình 5: Biểu đồ hàm mất mát của mô hình SSD-MobileNet V1
Ta thấy từ tại epoch 95 hàm mất mát đạt giá trị nhỏ nhất, xấp xỉ 0.4138607,
ta chọn mô hình lần học này là mô hình phân loại chất lượng chanh trong hệ thống
4 Thiết kế hệ thống
4.1 Yêu cầu chức năng
Một số yêu cầu chức năng mà cánh tay robot phải thực hiện để nhận diện quả chanh bằng camera:
1 Kết nối với camera: Cánh tay robot phải có khả năng kết nối với camera, thuthập hình ảnh từ camera
2 Xử lý hình ảnh: Cánh tay robot cần có khả năng xử lý hình ảnh để phân tích
và nhận diện các đặc trưng của quả chanh trên hình ảnh thu được từ camera
3 Điều khiển cánh tay robot: Sau khi nhận diện được vị trí của quả chanh, cánh tay robot cần điều khiển động cơ và các bộ phận khác để di chuyển và tiếp cận với quả chanh Tiếp đó là gắp và đưa quả chanh đến vị trí phân loại mong muốn
4.2 Yêu cầu phi chức năng
Một số yêu cầu phi chức năng của cánh tay robot nhận diện quả chanh bằng camera:
Trang 161 Độ chính xác cao: Cánh tay robot phải có khả năng nhận diện quả chanh với
độ chính xác cao để đảm bảo tính an toàn và hiệu quả cho quá trình sử dụng
2 Tốc độ xử lý nhanh: Cánh tay robot cần xử lý hình ảnh và nhận diện quả chanh với tốc độ nhanh để đáp ứng yêu cầu thời gian thực
3 Độ tin cậy cao: Cánh tay robot cần đảm bảo tính tin cậy và ổn định của hệ thống để tránh các lỗi không mong muốn
4.3 Sơ đồ khối
Hình 6: Sơ đồ khối của hệ thống
4.3.1 Khối nhận hình ảnh đầu vào
Trang 17- Cân bằng trắng tự động (AWB)
- Phơi sáng tự động (AEC)
- Kiểm soát mức tăng tự động (AGC)
Thông số kỹ thuật camera
- Kích thước CCD: 1 / 4inch
- Khẩu độ (F): 2.8
- Tiêu cự (EFL): 3,34mm
- Trường nhìn (Đường chéo): 70 °
Giao diện: USB2.0
Thu thập hình ảnh đầu vào
Truyền dữ liệu đến khối xử lý trung tâm
4.3.2 Khối xử lý trung tâm
Linh kiện chính:
Hình 8: NVIDIA Jetson Nano
Thông số kĩ thuật:
Trang 18 GPU: Maxwell 128 lõi.
CPU: ARM A57 lõi tứ @ 1,43 GHz
Ký ức: 4 GB 64-bit LPDDR4 25,6 GB / giây
Lưu trữ: microSD (không bao gồm)
Mã hóa video:4K @ 30 | 4x 1080p @ 30 | 9x 720p @ 30 (H.264 / H.265)
Giải mã video: 4K @ 60 | 2x 4K @ 30 | 8x 1080p @ 30 |18x 720p @ 30 (H.264 / H.265)
Hiển thị: HDMI và cổng hiển thị
USB: 4x USB 3.0, USB 2.0 Micro-B
Chức năng:
Xử lý ảnh thu được
Truyền tín hiệu đến khối triển khai hệ thống
4.3.3 Khối triển khai hệ thống
Linh kiện chính:
Hình 9: Cánh tay robot 6 bậc tự do
Trang 19 OperatingSpeed: 0.1sec/60degree (4.8v), 0.08sec/60degree(6v).
Bánh răng: Kim loại
Độ dài dây nối: 175mm
Trọng lượng: about 13.4g
Kích thước: 22.8 x 12.2 x 28.5mm
Chức năng:
Nhận tín hiệu từ khối xử lí trung tâm
Xác định hướng cho cánh tay
Điều khiển cánh tay robot
Trang 205 Kết luận
Trong báo cáo này, chúng tôi đã trình bày về quá trình thiết kế và phát triển cánh tay robot nhằm phân loại quả chanh bằng thuật toán SSD-Mobilenet Đầu tiên, chúng tôi đã trình bày về yêu cầu chức năng và phi chức năng của cánh tay robot, cũng như mô tả chi tiết về kiến trúc của thuật toán SSD-Mobilenet
Sau đó, chúng tôi đã trình bày chi tiết về quá trình thiết kế cánh tay robot, bao gồmviệc lựa chọn phần cứng và lập trình các chức năng cơ bản như điều khiển động cơ
và thu thập dữ liệu từ camera Sau đó, chúng tôi đã huấn luyện mô hình Mobilenet trên tập dữ liệu quả chanh và tích hợp thuật toán này vào cánh tay robot.Kết quả thực nghiệm cho thấy cánh tay robot của chúng tôi có thể phân loại quả chanh với độ chính xác cao, giúp tăng năng suất và giảm tải công việc cho con người trong quá trình thu hoạch quả chanh
SSD-Tổng kết lại, chúng tôi tin rằng cánh tay robot phân loại chanh của chúng tôi đáp ứng được yêu cầu chức năng và phi chức năng đã đề ra, đồng thời là một bước tiến lớn trong việc áp dụng công nghệ vào nông nghiệp và giải quyết các vấn đề về tăngnăng suất và giảm chi phí
Trang 216 Tài liệu tham khảo