Trang 1 1HỘI NGHỊ TỔNG KẾT HOẠT ĐỘNG SINH VIÊN NGHIÊN CỨU KHOA HỌC VÀ NHÓM SRT NĂM HỌC 2019-2020XÂY DỰNG MƠ HÌNH TRÍ TUỆ NHÂN TẠOVÀO PHÂN LOẠI RÁC THẢI TRÊN THIẾT BỊ NHÚNGBUILDING AI MOD
Trang 11 HỘI NGHỊ TỔNG KẾT HOẠT ĐỘNG SINH VIÊN NGHIÊN CỨU KHOA HỌC VÀ NHÓM SRT NĂM HỌC 2019-2020
XÂY DỰNG MÔ HÌNH TRÍ TUỆ NHÂN TẠOVÀO PHÂN LOẠI RÁC THẢI TRÊN THIẾT BỊ NHÚNG
BUILDING AI MODEL TO CLASSIFY WASTES ON EMBEDDED DEVICE
SVTH: Phạm Duy Thanh
Lớp 18T2, Khoa Điện – Điện Tử, Trường Đại học Sư phạm Kỹ thuật - Đại học Đà Nẵng
GVHD: TS Phạm Tuấn
Khoa Điện – Điện Tử, Trường Đại học Sư phạm Kỹ thuật - Đại học Đà Nẵng
Tóm tắt - Mức sống cao hơn dẫn đến nhiều vấn đề về môi
trường, và vấn đề đáng báo động nhất là rác thải Rác thải ngày
nay vẫn được thu gom và phân loại bằng các phương pháp thủ
công sử dụng nhiều lao động và ảnh hưởng đến sức khỏe của
người lao động Nhận thấy sự bất cập trong quy trình phân loại
chất thải, dự án này đã phát triển mô hình Trí tuệ nhân tạo để
phân loại chất thải như lon, chai nhựa và túi nhựa trên các thiết bị
nhúng Mô hình này sử dụng kiến trúc mạng SSD (Phát hiện một
lần chụp) để giúp mô hình trả về kết quả nhanh chóng và chính
xác Thành công của dự án này có thể tạo cơ hội cho các dự án
lớn hơn có thể giúp ích rất nhiều cho các vấn đề liên quan đến
chất thải như: chế tạo phương tiện tự lái nhằm thu gom và phân
loại chất thải tự động và máy tự động để phân loại chất thải.
Abstract - Higher standard of living leads to numerous
environmental issues, and the most alarming issue is waste Waste today is still collected and classified by manual methods that are labor-intensive and affect the health of workers Realizing the inadequacies in the waste classification process, this project developed an Artificial Intelligence model for classifying wastes such as cans, plastic bottles and plastic bags on embedded devices This model uses the SSD network architecture (Single Shot Detector) to help the model return results quickly and accurately The success of this project can produce a chance for larger projects that can help a lot in waste-related issues such as: building self-driving vehicles aims to collect and classify wastes automatically and automatic machine for classifying waste.
Từ khóa - phân loại rác bằng trí tuệ nhân tạo; ứng dụng trí
tuệ nhân tạo; ứng dụng deep learning; phân loại rác trên thiết bị
nhúng
Key words - Waste classification by AI, Application of
artificial intelligence, Deep learning application, Waste classification, Waste separation on embedded equipment
1 Cơ sở lý thuyết
1.1 Khái niệm học sâu – Deep learning
Deep learning là một nhánh của máy học với đặc điểm
là sử dụng các mô hình phi tuyến tính có chiều sâu để dự
đoán Mạng nơ-ron nhân tạo nền tảng của deep learning,
là một dạng mô hình được lấy ý tưởng từ bộ não con
người với nhiều lớp chồng lên nhau nhằm học được các
khái niệm từ đơn giản đến phức tạp Hiện tại, mạng
nơ-ron nhân tạo đang nắm giữ hầu hết các kỉ lục trên các bài
toán máy học phổ thông và là con đường phát triển của
máy học trong tương lai
Một số đặc điểm của Python Deep Learning là:
Nó sử dụng một loạt các lớp của các đơn vị xử lý
phi tuyến để trích xuất các tính năng và thực hiện
chuyển đổi; đầu ra ở một lớp là đầu vào tiếp theo
Nó học theo những cách được giám sát và không
giám sát (ví dụ bao gồm phân loại và phân tích mẫu
tương ứng)
Nó học nhiều cấp độ biểu diễn cho các mức độ
trừu tượng khác nhau
1.2 Mô hình chung cho bài toán học sâu
Huấn luyện một mô hình trí tuệ nhân tạo cần có hai
giai đoạn là giai đoạn huấn luyện và giai đoạn kiểm thử
Với các bài toán học có giám sát ta có các cặp dữ liệu
(đầu vào, đầu ra), còn với các bài toán học không có giám
Hình 1: Mô hình chung cho bài toán học sâu
sát, ta chỉ có đầu vào mà thôi
1.2.1 Giai đoạn huấn luyện
Giai đoạn huấn luyện là bước quan trọng để xây dựng
mô hình Trí tuệ nhân tạo Ở giai đoạn huấn luyện cần dữ liệu vào và tập dữ liệu nhãn mong muốn
Dữ liệu vào là tất cả các thông tin ta biết về dữ liệu Ví dụ: với ảnh thì là giá trị của từng pixel, với văn bản thì là từng từ, từng câu; với file âm thanh thì nó là một đoạn tín hiệu; với cơ sở dữ liệu Iris thì nó là độ dài các cánh hoa
Trang 2Phạm Duy Thanh 2
và đài hoa, … Dữ liệu thô này thường không ở dạng
vector, không có số chiều như nhau Thậm chí có thể có
số chiều như nhau nhưng số chiều quá lớn, như một bức
ảnh màu 1000 pixel x 1000 pixel thì số phần tử đã là 3 x
106 (3 vì ảnh màu thường có 3 kênh: đỏ, lục, xanh) Đây
là một con số quá lớn, không lợi cho lưu trữ và tính toán
Đầu ra mong muốn của mô hình đã được xác định
trước dựa vào tập nhãn của bộ dữ liệu Quá trình huấn
liệu sẽ ép buộc mô hình học theo tập dữ liệu nhãn Sau
khi học được trích xuất đặc trưng thì ta cũng sẽ thu được
đặc trưng đã trích xuất cho dữ liệu thô đầu vào data
Những đặc trưng đã trích xuất này được dùng để huấn
luyện các thuật toán phân loại, phân cụm, quy hồi…ở
phía sau
1.2.2 Giai đoạn kiểm thử
Bước này đơn giản hơn nhiều Với dữ liệu thô đầu vào
mới, ta sử dụng mô hình đã huấn luyện ở trên để tạo ra
các vector đặc trưng Vector đặc trưng được đưa vào thuật
toán chính đã được học ở giai đoạn huấn luyện để dự
đoán đầu ra
1.3 Kỹ thuật Single Shot Multibox Detector
Single Shot Multibox Detector (SSD) là một thuật
toán phổ biến trong phát hiện đối tượng Nó thường
nhanh hơn Faster Region-based Convolutional Network
(Faster RCNN) được thiết kế để phát hiện đối tượng trong
thời gian thực
Tên của mô hình có ý nghĩa:
Single Shot: Có nghĩa là việc định vị và phân loại
đối tượng được thực hiện trên một phase duy nhất từ
đầu đến cuối
MultiBox: Tên của kĩ thuật về khung vị trí
Detector: Mạng này có khả năng nhận biết và phân
loại được đối tượng
Hình 2: Rác thải được đinh vị bởi SSD
1.4 Ứng dụng thư viện Tensorflow của Python để xây
dựng mô hình nhận dạng rác
Tensorflow là một khung xương mã nguồn mở cho
deep learning được viết bằng Python Với các API bậc
cao, dễ sử dụng, dễ mở rộng, Tensorflow giúp người dùng
xây dựng các deep learning mô hình một cách đơn giản
Những lý do nên chọn Tensorflow để bắt đầu:
Tensorflow ưu tiên trải nghiệm của người lập trình
Tensorflow đã được sử dụng rộng rãi trong doanh
nghiệp và cộng đồng nghiên cứu
Tensorflow giúp dễ dàng biến các thiết kế thành
sản phẩm
Tensorflow hỗ trợ huấn luyện trên nhiều GPU phân rã
1.5 Giới thiệu về tập dữ liệu rác thải
TACO là một bộ dữ liệu hình ảnh mở của chất thải trong tự nhiên Nó chứa hình ảnh của rác được chụp trong môi trường đa dạng, từ các bãi biển nhiệt đới đến đường phố London Những hình ảnh này được dán nhãn thủ công và phân đoạn theo phân loại phân cấp để đào tạo và đánh giá các thuật toán phát hiện đối tượng
Hiện tại máy chủ có 1500 hình ảnh với 4784 chú thích Những chú thích này được dán nhãn trong 60 các danh mục thuộc về 28 mục lớn hơn
Hình 3: Một vài hình ảnh trong TACO
2 Xây dựng mô hình
2.1 Mô tả vấn đề
Xã hội ngày càng đông đúc và phát triển, đồng nghĩa với vấn đề giải quyết vệ sinh và rác thải đang dần trở thành một trong những bài toán khó đối với chính quyền
ở nhiều tỉnh và thành phố, việc sử dụng các nhân công vệ sinh để thu gom rác là một trong những phương án rất phổ biến hiện nay Chiếc xe thu gom rác xuất hiện trên mọi nẻo đường đã trở thành hình ảnh quen thuộc với người dân lẫn khách du lịch đến nơi đây Nhưng sử dụng lao động tay chân khi tiếp xúc với rác thải hay điều kiện thời tiết không thuận lợi có thể gây ra nhiều vấn đề về tính hiệu quả và cả sức khoẻ con người Việc thuê nhân công,
áp dụng các biện pháp bảo hộ, sản xuất các loại xe của các công ty môi trường làm tốn kém một lượng chi phí to lớn, chưa kể đến chất lượng sống thấp và sức khoẻ của một bộ phận người công nhân lao động
Nhận thấy những vấn đề nảy sinh của biện pháp thu gom rác truyền thống vốn chiếm vị trí độc tôn trong những biện pháp thu gom rác thải ở nước ta, đi kèm đó là
sự phát triển vượt bậc về công nghệ trong những năm gần đây, những ứng dụng thực tiễn của máy móc trong cuộc sống đang dần dần cải thiện chất lượng sống của con người, đặc biệt là khả năng tiềm tàng của trí tuệ nhân tạo đang dần giải phóng chúng ta khỏi những công việc đặt nặng về sức khoẻ và tính mạng của con người
Tác giả đề xuất nghiên cứu đề tài “Xây Dựng Mô Hình Trí Tuệ Nhân Tạo Vào Phân Loại Rác Thải Trên
Trang 33 HỘI NGHỊ TỔNG KẾT HOẠT ĐỘNG SINH VIÊN NGHIÊN CỨU KHOA HỌC VÀ NHÓM SRT NĂM HỌC 2019-2020
Thiết Bị Nhúng”, nếu thành công sẽ tạo tiền đề để ứng
dụng, mở rộng mô hình đó cho việc phát triển hoàn thiện
biện pháp thu gom rác mới và có thể thay thế hoàn toàn
và giải quyết những vấn đề của biện pháp cũ đã mang lại
Việc sử dụng biện pháp mới với máy móc thay vì nhân
công sẽ hiệu quả hơn, chất lượng sống tốt hơn và đặc biệt
là mang đến môi trường sạch sẽ và thấy rõ bước tiến của
công nghệ hiện đại trong đời sống
2.2 Xây dựng dữ liệu
TACO cung cấp cho nghiên cứu này 1500 bức hình
Những bức hình đó sẽ được chia thành hai tập hợp:
Bộ dữ liệu để huấn luyện: 1200 bức hình ngẫu
nhiên
Bộ dữ liệu để kiểm thử: 300 bức hình còn lại
Mô hình trí tuệ nhân tạo cần có một số lượng lớn dữ
liệu để có thể trích xuất các đặc trưng Tuy TACO đã
cung cấp 1500 bức ảnh khá đa dạng và phong phú về rác
thải nhưng thật sự là không đủ so với nhu cầu của mô
hình, do đó phải làm giàu dữ liệu để đáp ứng nhu cầu của
mô hình bằng cách xoay trái, phải lật hình, kéo hình, từ
đó làm tăng thêm số bức ảnh đầu vào
2.3 Thiết lập các thông số cho Tensorflow
Mô hình lõi của SSD là mobilenet V2 có tên gọi là
Bottleneck Residual block, trong 1 block có 3 nhóm:
Nhóm đầu tiên là 1x1 convolution với ReLU6
Nhóm thứ 2 là depthwise convolution
Lớp thứ 3 là một tổ hợp 1×1 convolution khác
nhưng không có sự phi tuyến tính
Hình 4: Mô hình mobilenet V2 với 3 lớp
Mô hình lõi được khởi tạo từ mô hình đã huấn luyện
của Google thay vì khởi tạo ngẫu nhiên
Số nhãn là 5 gồm 1 backround, và 4 nhãn phân loại chính (can, bottle, plastic bag, other) Batch size=32, và learning rate=0.005
2.4 Tối ưu hoá mô hình trên máy tính nhúng
Để giảm số lượng tính toán cần thiết khi mô hình chỉ được sử dụng cho việc kiểm thử, chúng ta có thể loại bỏ một số phần của mô hình chỉ cần cho huấn luyện Ví dụ:
Loại bỏ các tính toán chỉ được sử dụng cho huấn luyện
Loại bỏ các phần của mô hình không được sử dụng trong quá trình kiểm thử
Chuyển đổi Float32 sang int8
3 Triển khai và đánh giá
3.1 Kết quả đánh giá trên tập dữ liệu kiểm thử
Hình 5: Bottle được phát hiện
Trong một bài toán phát hiện đôi tượng cần có rất nhiều thông số, cũng như là khái niệm như Intersection over Union (IoU), độ chính xác, mất mát… để đánh giá một mô hình
IoU đơn giản chỉ là một chỉ số đánh giá Mọi thuật toán có khả năng dự đoán ra các khung vị trí làm đầu ra đều có thể được đánh giá thông qua IoU Để áp dụng được IoU để đánh giá một object detector bất kì ta cần:
Những khung định vị đúng của đối tượng được
khoanh vùng và đánh nhãn bằng tay sử dụng trong
tập test
Những khung định vị dự đoán được mô hình sinh
ra
IoU được tính bằng cách lấy diện tính phần chồng lên nhau giữa khung định vị dự đoán và khung định vị đúng của đối tượng chia cho diện tích phần hợp - hay đơn giản
hơn là diện tích mà hai khung định vị này đang chiếm Ở
mô hình này, IoU phải lớn hơn 50% mới được trả về khung định vị dự đoán
Độ chính xác và mất mát là hai thông số quan trọng trong việc đánh giá tính hiệu quả của mô hình Độ chính xác được tính bằng số nhãn dự đoán đúng chia cho tổng
số nhãn của mô hình Mất mát được tính bằng số nhãn dự đoán thiếu chia cho tổng số nhãn của mô hình Bên cạnh
đó dự đoán sai cũng là một thông số dùng để đánh giá một mô hình Dự đoán sai được tính bằng số nhãn dự đoán sai chia cho tổng số nhãn dự đoán được Dưới đây là thông số của mô hình này
Độ chính xác trung bình: 0.440
Mất mát trung bình: 0.560
Dự đoán sai: 0.414
Trang 4Phạm Duy Thanh 4
3.2 Xây dựng giao diện kiểm thử
Hình 6: Giao diện kiểm thử của mô hinh
Tại giao diện này, chúng ta có thể thấy được các
khung định vị, nhãn và chỉ số IoU của vật thể (chỉ số này
phải lớn hơn 0.5)
3.3 Đánh giá kết quả
Kết quả mô hình trả về độ chính xác khá khả quan, cho thấy sự hiệu quả của mô hình, từ đó có thể đem mô hình áp dụng trong các hệ thống hay thiết bị lớn hơn nhằm đem lại lợi ích to lớn
Tài liệu tham khảo
[1] Các bài báo định vị vật thể bằng trí tuệ nhân tạo [2] Cái bài báo về phân loại vật thể bằng trí tuệ nhân tạo [3] Các tài liệu về tensorflow
[4] Các tài liệu về tối ưu hóa mô hình [5] https://www.pyimagesearch.com/2016/11/07/intersection-over-union-iou-for-object-detection/
[6] https://towardsdatascience.com/review-mobilenetv2-light-weight-model-image-classification-8febb490e61c
[7]http://tacodataset.org/
[8] https://machinelearningcoban.com/general/2017/02/06/
featureengineering/