Bài viết nghiên cứu trình bày một ứng dụng của thuật toán nhận diện MobileNetV1-SSD trong việc nhận diện và phân loại hoa quả, cụ thể ở bài báo này là quả chanh. Ứng dụng kiến trúc MobileNetV1-SSD, là một thuật toán phát hiện vật thể được thiết kế với số lượng tham số tính toán nhỏ và thời gian thực thi tác vụ nhanh.
Trang 1Tóm tắt – Bài báo nghiên cứu trình bày một ứng dụng của
thuật toán nhận diện MobileNetV1-SSD trong việc nhận diện và
phân loại hoa quả, cụ thể ở bài báo này là quả chanh Ứng dụng
kiến trúc MobileNetV1-SSD, là một thuật toán phát hiện vật thể
được thiết kế với số lượng tham số tính toán nhỏ và thời gian thực
thi tác vụ nhanh Do đó, bằng việc tích hợp thuật toán phát hiện
và phân loại chanh MobileNetV1-SSD trên nền tảng máy tính
nhúng Jetson Nano với thời gian phân loại hoa quả theo thời gian
thực
Từ khóa – Trí tuệ nhân tạo, Mạng Nơ ron tích chập,
MobileNet, Single Shot MultiBox Detector
I GIỚI THIỆU
Đề tài “Ứng dụng thuật toán nhận diện MobileNet – SSD
trong việc nhận diện chanh ta, sử dụng cánh tay robot thực hiện
phân loại” được khởi xướng từ một thực trạng của ngành nông
nghiệp Việt Nam Theo số liệu thống kê, chanh được trồng ở
Việt Nam với số lượng cực kỳ lớn và đạt chất lượng cao, có khả
năng xuất khẩu sang các nước như Thái Lan, Malaysia,
Singapore, Liên minh Châu Âu và các nước Trung Đông
Tuy nhiên, những quả chanh tốt ngoài khâu canh tác tốt,
cần có các giai đoạn xử lý khi thu hoạch quả đạt chuẩn để chọn
lựa ra những sản phẩm có chất lượng tốt và phải đảm bảo những
sản phẩm đó giữ nguyên trạng thái tốt nhất, đáp ứng các tiêu chí
khắt khe của các thị trường khó tính như Nhật Bản, Hàn
Quốc,…
Về vấn đề kinh tế, con người có nhiều nhược điểm để có
thể nâng cao hiệu suất Thứ nhất, cần một số lượng lớn nhân
công cho việc phân loại Thứ hai, tốc độ của con người chưa đủ
khả năng để đáp ứng mỗi mùa thu hoạch Cuối cùng, con người
bị cản trở bởi nhiều yếu tố như cảm tính, sức khỏe, … Bởi vậy,
giải pháp cần nghiên cứu tới là nhờ máy móc làm những công
việc lặp đi lặp lại, cải thiện tốc độ và giảm sức người
Hệ thống cần đảm bảo về các yếu tố:
Nhỏ gọn, bền bi, dễ dàng hoạt động để có thể dễ dàng
vận chuyển
Phát hiện nhanh và phân loại chính xác hình ảnh quả
chanh được đưa vào
Xử lý các và đưa ra kết quả phân loại chất lượng hoa quả theo thời gian thực
Năm 2016, nhóm tác giả Wei Liu đã đưa ra một kiến trúc mới (Kiến trúc thuật toán) có tên Single Shot MultiBox Detector (SSD) [1] Đến năm 2017, nhóm tác giả của Andrew
G Howard đưa ra một một kiến trúc mạng trích xuất đặc trưng mới là MobileNet [2] Mạng mới này giúp giảm thiểu khối lượng tính toán so với kiến trúc mô hình mạng nơ-ron tích chập truyền thống Kết hợp với phương pháp SSD xử lý trên từng lớp đặc trưng, khiến cho kỹ thuật MobileNetV1 – SSD đạt hiệu quả cao việc nhận diện các vật thể di chuyển Tốc độ tăng lên do số lượng phép tính được giảm từ tám đến chín lần so với phương pháp truyền thống nhờ kiến trúc MobileNet Khả năng trích xuất đặc trưng cũng được cải thiện nhờ phương pháp SSD MobileNetV1 – SSD dễ dàng được cải đặt và triển khai trên các
hệ máy tính có cấu hình thấp [2]
Năm 2020, nhóm tác giả Valdez, Paolo đã ứng dụng các
mô hình thuật toán nhận diện YOLOv3 và SSD vào nhận diện
và phân loại táo trên thời gian thực [3] [4] Nhóm tác giả đã đánh giá tốc độ và độ chính xác của hai mô hình vào bài toán nhận diện thực tế Machine Learning ngày càng được ứng dụng rộng rãi vào mọi mặt cuộc sống Trong bài báo khoa học về Ứng dụng nhận diện nông sản sử dụng Machine Learning vào các ứng dụng bán lẻ, nhóm tác giả Frida Femling thực hiện việc nhận diện nông sản để truy xuất nhanh các dữ liệu liên quan đến sản phẩm đó, thay vì việc phải gán mã số cho từng sản phẩm, thuận tiện cho người bán hàng [5] Vận dụng các ý tưởng đó, bài báo này sử dụng MobileNetV1-SSD trong việc nhận diện, phân loại vật thể và sử dụng cánh tay Robot để gắp quả chanh tương ứng với chất lượng phân loại được nhận diện
Trong bài báo này trình bày ba đóng góp chính:
Tổng quan về cấu trúc hệ thống Trong mục này chúng tôi giải thích về các chức năng của hệ thống, những thành phần chính và vai trò tương ứng
Kỹ thuật AI (Artificial Intelligence – Trí tuệ nhân tạo) được sử dụng trong bài toán Tại phần này bài báo trình
Ứng dụng thuật toán MobileNet – SSD kết hợp cánh tay
Robot trong việc nhận diện và phân loại hoa quả
Hán Trọng Thanh, Nguyễn Việt Hoàng, Trần Hải Quân
Viện Điện tử Viễn thông, Trường Đại học Bách Khoa Hà Nội
Email: thanh.hantrong@hust.edu.vn
Trang 2bày cơ sở về thuật toán MobileNetV1 – SSD, để thấy rằng
thuật toán phù hợp cho các thiết bị có cấu hình thấp
Cuối cùng là kết quả ứng dụng Bài báo đưa ra các số liệu
về đánh giá về hàm Mất mát, độ chính xác của mô hình
đã được đào tạo
II CÂ ́ U TRÚC HÊ ̣ THÔ ́ NG
A Tổng quan hệ thống
Hệ thống Nhận diện và phân loại hoa quả được phát triển
hai chức năng chính, đó là Chức năng nhận diện và Chức năng
xử lý kết quả nhận diện Hệ thống được vận hành bởi máy tính
nhúng Jetson Nano, trực tiếp nhận diện và điều khiển cánh tay
Robot
Hình 1 Sơ đồ tổng quan hệ thống phân loại hoa quả
Khi chanh được đưa vào băng chuyền trước tiên sẽ được
vận chuyển đến khu vực đặt camera dùng để thu thập dữ liệu
cho quá trình xử lí Camera sẽ chụp lại ảnh chanh từ băng
chuyền và gửi tới Jetson Nano Jetson Nano là một máy tính
nhúng được tối ưu với thuật toán phát hiện và phân loại chanh
theo thời gian thực Khi hình ảnh đã được gửi tới Jetson Nano
thì sẽ được xử lý bằng mô hình phân loại chanh đã qua đào tạo
từ trước trên bộ dữ liệu ảnh chanh tự thu thập Đầu ra của hệ
thống là ảnh chanh đã được gán nhãn chất lượng: hình ảnh gán
nhãn “good” khi là chanh chất lượng tốt và hình ảnh được gán
nhãn “bad” khi là chanh chất lượng xấu Kết quả phân loại được
dùng để điều khiển hành động của cánh tay Robot
B Chi tiết các thành phần
Thành phần nhận diện và phân loại
Phần cứng bao gồm bộ xử lý trung tâm Jetson Nano,
camera ghi lại hình ảnh của quả chanh trong thời gian thực
Chanh được di chuyển từ nơi bắt đầu tới khi khu vực camera
nhận diện trên một băng chuyền Camera sẽ truyền hình ảnh tới
Jetson Nano để xử lý và phân loại chanh Kết quả phân loại
được đưa vào một mảng kết quả, sau đó, tiến trình điều khiển
cánh tay Robot sẽ lấy các kết quả từ mảng đó, điều khiển cánh
tay Robot, đưa quả chanh tới hộp chất lượng tương ứng
Thành phần xử lý kết quả
Phần cứng bao gồm bộ xử lý trung tâm Jetson Nano, mạch PCA9685, cánh tay robot 6 bậc tự do PCA9685 được kết nối với Jetson Nano thông qua giao tiếp I2C qua bus thứ nhất Chân SDA và SCL tương ứng được kết nối với chân 3 và 5 của Jetson Nano Chân GND và V++ được kết nối với chân 6 và 1 của Jetson Nano PCA9685 đóng vai trò giải mã địa chỉ và nhận tín hiệu điều khiển năm động cơ từ Jetson Nano
III KY ̃ THUÂ ̣ T AI
A Sơ đồ tổng quan thuật toán
Hình 2 Sơ đồ tổng quan phân loại chanh
Bắt đầu thuật toán là bài toán Phát hiện vật thể Bài toán Phát hiện vật thể cho phép định vị các đối tượng trong một hình ảnh và xác định từng đối tượng Bài toán có đầu vào là ảnh màu
và kết quả là vị trí của các đối tượng trong ảnh
Tiếp đến là bài toán Phân loại Bài toán Phân loại là quá trình phân lớp một đối tượng dữ liệu vào một hay nhiều lớp đã cho trước nhờ một mô hình phân lớp Thuật toán được xây dựng dựa trên một tập dữ liệu được xây dựng trước đó có gán nhãn
B Mô hình kiến trúc MobileNet
MobileNet là một mô hình kiến trúc mạng tích chập (CNN –
convolution neural network) được sử dụng cho việc Phân loại hình ảnh và Tìm vật thể trong ảnh hoặc video Mô hình này
được thiết kế tối ưu về tốc độ tính toán các lớp tích chập và giảm bớt số lượng tham số trong mô hình Điều này khiến cho kiến trúc MobileNet phù hợp với các thiết bị di động, hay những
chiếc máy tính nhúng với cấu hình thấp như Rasberry Pi hay Jetson Nano, Google TPU Dev Board, …
Spatitial Separable Convolutions (SSC)
So với mạng nơ-ron tích chập truyền thống, SSC giúp giải quyết các bài toán theo thời gian thực khả thi hơn rất nhiều SSC
sẽ chia một convolution thành hai bước SSC dùng chủ yếu các tham số về chiều của không gian của ảnh và kernel, nghĩa là với chiều rộng (width), chiều dài (height) và số lượng kênh (depth)
Trang 3Depthwise Serparable Convolutions (DSC)
Kiến trúc của MobileNet dựa trên Depthwise Serparable
Convolutions [2] DSC chia một kernel thành hai kernel riêng
biệt là Depthwise Convolution và Pointwise Convolution để
thực hiện hai phép tích chập riêng biệt Điều này sẽ giúp giảm
thiểu số lượng phép tính đáng kể, cụ thể sẽ được trình bày dưới
đây
Hình 3 Depthwise Convolution Filter
Đối với phép tính tích chập truyền thống (standard
convolution), hàm chi phí tính toán có công thức:
( , , , ) = ∗ ∗ ∗ ∗ ∗ (2.1)
Trong đó, hàm chi phí trên phụ thuộc vào số lượng kênh đầu
vào M, số lượng kênh đầu ra N, với kernel kích thước DK x DK
và feature map kích thước DF x DF. Đối với Depthwise
convolution, hàm chi phí tính toán được được tính theo công
thức:
( , , ) = ∗ ∗ ∗ ∗ (2.2)
Như vậy, số lượng phép tính trong Depthwise Convolution
đã giảm đi N lần so với standard convolution Số lượng phép
toán tại Depthwise convolution không phụ thuộc vào số lượng
kênh của đầu vào
Hình 4 Pointwise Convolution Filter
Với thành phần Pointwise Convolution, số lượng các phép toán
cần có sau khi đi qua sẽ là:
Kết hợp với thành phần Pontwise Convolution, từ công
thức (2.2) và (2.3), hàm chi phí tính toán của Depthwise
Separable Convolution sẽ là:
Từ công thức (2.4), so sánh với Standard convolution (2.1),
ta thu được:
( , ) = ( , , , )
( , , , ) =
1 + 1 (2.5)
Rõ ràng rằng, 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 tính toán ít hơn
từ tám đến chín lần 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ỏ
Bảng 1 So sánh các mô hình kiến trúc [1]
Kiến trúc Mạng trích xuất
đặc trưng mAP Số lượng tham số
Từ Bảng 1 ta nhận thấy số lượng phép tính và số lượng
tham số của MobileNet so với các kiến trúc tiền nhiệm ít hơn rõ rệt
Kiến trúc của MobileNet
Hình 5 Kiến trúc mô hình MobileNet
C MobileNet - SSD
Hình 6 Kiến trúc của MobileNetV1 - SSD
Kiến trúc của MobileNet - SSD được xây dựng trên kiến trúc MobileNet SSD có thể nhận diện vật thể với các lớp khác nhau
Trang 4Hàm Mất mát
Hàm Mất mát của thuật toán SSD có công thức:
( , , , ) = 1( ( , ) + ( , , )) (2.6)
Trong đó N là số lượng matched default boxes Nếu =
0, loss có giá trị mặc định là 0
IV K ẾT QUẢ ỨNG DỤNG
A Kết quả thử nghiệm hệ thống phân loại chanh
Tiến hành thử nghiệm trên tập Training
Hình 7 Sơ đồ quá trình huấn luyện
Quá trình như mô tả trên Hình 7 bắt đầu bằng việc đưa bộ
đưa bộ dữ liệu bao gồm tập Train và tập Validation đã được thu
thập từ trước lên Google Colab Khi bộ dữ liệu đã được tải lên
hoàn chỉnh thì quá trình đào tạo hệ thống bắt dầu 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 1102 ảnh đã thu
thập được Epoch cần có được xác định dựa vào hàm Mất mát
Hàm Mất mát là đánh giá xác suất sai lệch khi đưa một hình ảnh
đầu vào mà nhận diện sai Nếu giá trị của hàm Mất mát càng
nhỏ thì mô hình học càng tốt Theo dõi qúa trình đào tạo tại
Epoch thứ 100 hàm Mất mát đã có dấu hiệu hội tụ Việc học có
thể dừng lại để tránh hiện tượng mô hình bị quá khớp
Hình 8 Biểu đồ hàm Mất mát của mô hình MobileNetV1 – SSD
Từ đồ thị trên Hình 8 ta có nhận xét, hàm Mất mát trong quá trình đào tạo là dạng dốc thoải Từ epoch 0 đến 60 hàm Mất mát giảm mạnh sau đó từ epoch 90 đến 99 thì hàm Loss có xu hướng ổn định và ít dao động Điều này chứng tỏ mô hình đã hội tụ và ta tiến hành dừng đào tạo Nhận thấy tại epoch thứ 97 hàm Mất mát đạt giá trị nhỏ nhất xấp xỉ 0.4027, ta chọn mô hình tại lần học này là mô hình phân loại chất lượng chanh trong hệ thống
Tiến hành thử nghiệm trên tập Test
Bảng 2 Kết quả tiến hành thử nghiệm trên tập Test
Mô hình Kiến trúc mô
hình
Số lượng hình ảnh trên tập Test
Độ chính xác (%)
lemon.onx MobileNet
Số lượng hình ảnh trên tập Test là 106, kết quả nhận diện đúng là 102 ảnh, sai 4 ảnh Bài báo kết luận độ chính xác của
mô hình đạt 96.23%
Một vài hình ảnh về kết quả thử nghiệm trên tập Test:
Hình 9 Kết quả thực nghiệm nhận diện
Qua kết quả ta thấy, mô hình AI đã có khả năng phân loại với độ chính xác cao Mô hình đã phân loại chính xác chanh chất lượng tốt và chanh chất lượng kém Mô hình phát hiện và phân loại chính xác với đa dạng về nền ảnh trong ảnh và xác định đúng quả chanh với các loại quả khác Tuy nhiên với những đồ vật và loại quả có hình dáng và màu sắc có độ tương đồng cao với quả chanh như: quả lê màu vàng, nắp chai màu xanh, … mô hình vẫn đưa ra dự đoán nhầm lẫn
B Tốc độ xử lý sản phẩm đã được phân loại
Tại chức năng nhận diện, quả nhận diện được rất tốt, đạt độ chính xác xấp xỉ 97% với phông nền được chọn màu trắng là màu của băng chuyền
Tốc độ xử lý khung hình với thuật toán phát hiện và phân loại chanh trên Jetson Nano là ấn tượng với 40 FPS (Frame per
Trang 5Second – Khung hình trên giây) Điều này cho phép hệ thống
hoạt động theo thời gian thực và không bỏ lỡ quả chanh nào khi
đi qua băng chuyền với tốc độ nhanh
V K ẾT LUẬN
Bài báo đề xuất phát triển hệ thống phân loại hoa quả và đã
đạt được những kết quả khả quan Đầu tiên, mô hình được đào
tạo đạt khả năng nhận diện quả chanh và phân loại chất lượng
chanh với độ chính xác cao Bên cạnh đó, bài báo đề xuất một
hệ thống phân loại chanh khép kín và các nền tảng phần cứng
đi kèm Cuối cùng, bài báo đưa ra kết quả phân loại hoa quả ấn
tượng đi kèm với tốc độ phân loại theo thời gian thực trên nền
tảng máy tính nhúng Jetson Nano với tốc độ 40 FPS
Tuy nhiên, hệ thống vẫn tồn tại những hạn chế nhất định
Cánh tay Robot mới dừng lại ở mức mô hình chưa phải là một
cánh tay công nghiệp do đó tốc độ phân loại của cánh tay còn
chậm Điều này sẽ được cải thiện khi lắp đặt hệ thống vào những
nhà máy có các cơ cấu chấp hành phân loại chuyên nghiệp hơn
Thêm vào đó, mô hình phân loại hoa quả còn có sự nhầm lẫn
trong quá trình phân loại đối với các vật thể và loại quả có hình
dáng gần giống quả chanh Hạn chế này có thể cải thiện bằng
việc thu thập thêm dữ liệu ngoài thực tế trong quá trình triển
khai hệ thống sau đó đào tạo lại mô hình AI Từ đó có thể đạt
được mục đích ban đầu đặt ra là nâng cao năng suất thu hoạch,
phân loại chất lượng hoa quả, giảm sức lao động của con người
và tiến lên hiện đại hóa quy trình phân loại hoa quả khép kín
T ÀI LIỆU THAM KHẢO
[1] Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian
Szegedy, Scott Reed, Cheng-Yang Fu, Alexander C Berg, “SSD
Single Shot MultiBox Detertor,” 2016
[2] Andrew G.Howard, Menglong Zhu, Bo Chen, Dmitry
Kalenichenko, Weijun Wang, Tobias Weyand, Marco Andreetoo,
Hartwig Adam, “MobileNets: Efficient Convolutional Neural
Networks for Mobile Vision Applications,” 2017
[3] P Valdez, “Apple Defect Detection Using Deep Learning Based
Object Detection For Better Post Harvest Handling,” arXiv
preprint arXiv:2005.06089 (2020)
[4] Femling, Frida, Adam Olsson, and Fernando Alonso-Fernandez.,
“Fruit and vegetable identification using machine learning for
retail applications,” 14th International conference on
Signal-Image Technology and Internet-based system (SITIS), pp 9-15
IEEE, 2018
[5] C Klyachin, “Recognition of Various Object from a Certain
Categorical Set in Real Time using Deep Convolution Neural
Networks,” 2020