Tải bản đầy đủ (.pdf) (67 trang)

Xây dựng hệ thống nhận dạng thức ăn và dinh dưỡng trên nền tảng Android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.81 MB, 67 trang )

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

ĐẶNG THANH TUẤN
XÂY DỰNG HỆ THỐNG NHẬN DẠNG THỨC ĂN VÀ DINH
DƯỠNG TRÊN NỀN TẢNG ANDROID

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

HÀ NỘI - 2016


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
---------------------------------------

ĐẶNG THANH TUẤN

XÂY DỰNG HỆ THỐNG NHẬN DẠNG THỨC ĂN VÀ DINH
DƯỠNG TRÊN NỀN TẢNG ANDROID

CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ: 60.48.01.01

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

NGƯỜI HƯỚNG DẪN KHOA HỌC

TS. NGÔ QUỐC DŨNG


HÀ NỘI - 2016


i

LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi dưới sự hướng
dẫn của TS. Ngô Quốc Dũng, kết quả đạt được trong luận văn là sản phẩm của
riêng cá nhân, không sao chép lại của người khác. Trong toàn bộ nội dung của luận
văn, những điều được trình bày hoặc là của cá nhân hoặc là được tổng hợp từ nhiều
nguồn tài liệu. Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng
và trung thực về tên tác giả, tên công trình, thời gian và địa điểm công bố.
Các số liệu, kết quả nghiên cứu và kết luận được trình bày trong luận văn
là trung thực và chưa được công bố dưới bất kỳ hình thức nào.
Hà Nội, Ngày…..tháng…..năm 2016
Tác giả

Đặng Thanh Tuấn


ii

LỜI CẢM ƠN
Để hoàn thành được luận văn này, ngoài sự nghiên cứu và những cố gắng
của bản thân, em xin gửi lời cảm ơn sâu sắc tới Tiến sĩ Ngô Quốc Dũng, giảng viên
trực tiếp hướng dẫn, tận tình chỉ bảo và định hướng cho em trong suốt quá trình
nghiên cứu và thực hiện luận văn.
Em xin gửi lời cảm ơn chân thành cảm ơn tất cả các thầy cô giáo của Học
viện Công nghệ Bưu chính Viễn thông đã giảng dạy và dìu dắt em trong trong suốt
quá trình học tập tại trường từ khi còn học đại học cho đến sau đại học.

Cuối cùng, em xin gửi lời cảm ơn tới gia đình, bạn bè và những người đã
luôn ở bên cổ vũ tinh thần, tạo điều kiện thuận lợi cho em để em có thể học tập tốt
và hoàn thiện luận văn.
Em xin chân thành cảm ơn!


iii

MỤC LỤC
LỜI CAM ĐOAN .............................................................................................. i
LỜI CẢM ƠN ................................................................................................... ii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT ...................................... v
DANH SÁCH BẢNG ...................................................................................... vi
DANH SÁCH HÌNH VẼ ................................................................................ vii
MỞ ĐẦU ........................................................................................................... 1
1. Lý do chọn đề tài ....................................................................................... 1
2. Mục đích nghiên cứu ................................................................................. 2
3. Đối tượng và phạm vi nghiên cứu ............................................................. 2
4. Phương pháp nghiên cứu ........................................................................... 2
CHƯƠNG 1 : TỔNG QUAN VỀ BÀI TOÁN NHẬN DẠNG THỨC ĂN VÀ
DINH DƯỠNG ................................................................................................. 4
1.1. Đặt vấn đề ............................................................................................... 4
1.2. Những nghiên cứu trước đây về nhận dạng ảnh..................................... 5
1.2.1. Các nghiên cứu đáng chú ý trên thế giới: ....................................... 5
1.2.2. Các nghiên cứu đáng chú ý tại Việt Nam: ...................................... 8
1.3. Cách tiếp cận .......................................................................................... 8
1.4. Bài toán đặt ra ....................................................................................... 10
1.5. Tổng quan về ứng dụng ........................................................................ 11
1.6. Kết luận chương 1................................................................................ 12
CHƯƠNG 2 : PHƯƠNG PHÁP NHẬN DẠNG THỨC ĂN VÀ DINH

DƯỠNG. ......................................................................................................... 13
2.1. Giới thiệu .............................................................................................. 13
2.2. Đặt vấn đề ............................................................................................. 13
2.3. Phân đoạn và tiền xử lý ảnh ................................................................. 13
2.3.1. Giới thiệu ....................................................................................... 13
2.3.2. Phân đoạn ảnh bằng thuật toán K-MEAN . ................................... 14
2.3.3. Phân đoạn bằng phương pháp K-Nearest Neighbor(KNN)[14] ... 16
2.3.4. Tiền xử lý ảnh ................................................................................ 16


iv

2.4. Một số phương pháp trích chọn đặc trưng và đo độ tương đồng giữa
các ảnh. ........................................................................................................ 17
2.4.1. Khái niệm đặc trưng ảnh số ........................................................... 17
2.4.2. Tại sao phải trích chọn đặc trưng ảnh số ? .................................... 17
2.4.3. Trích chọn đặc trưng dựa trên điểm nổi bật .................................. 18
2.4.4. Các phương pháp trích chọn đặc trưng[2]..................................... 20
2.5. Các phương pháp phân loại ảnh ........................................................... 30
2.5.1. Tổng quan...................................................................................... 30
2.5.2. Quy trình phân loại ảnh ................................................................. 31
2.5.3. Phân loại ảnh bằng phương pháp Support Vector Machine (SVM)
................................................................................................................. 32
2.6. Phương pháp đề xuất ............................................................................ 35
2.6.1. Các bước cơ bản ............................................................................ 36
2.7. Kết luận chương 2 ................................................................................ 38
CHƯƠNG 3: CÀI ĐẶT THỬ NGHIỆM VÀ ĐÁNH GIÁ ............................ 40
3.1. Xây dựng bộ dữ liệu ............................................................................. 40
3.1.1. So sánh giữa các thuật toán trích chọn đặc trưng ......................... 40
3.1.3. Xây dựng bộ dữ liệu của ứng dụng ............................................... 42

3.2. Giao diện chương trình chạy trên Android .......................................... 49
3.3. Những vấn đề gặp phải ........................................................................ 52
3.4. Kết luận chương 3 ................................................................................ 53
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ...................................................... 54
DANH MỤC TÀI LIỆU THAM KHẢO ........................................................ 55


v

DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT

Viết tắt
IDF

Tiếng Anh
International Diabetes
Federation

Tiếng Việt
Hiệp hội đái tháo đường thế giới

K-Nearest Neighbor

K láng giềng gần nhất

Scale Invarian Feature

Phép biến đổi đặc trưng trong bất

Transform


biến tỷ lệ

Speeded Up Robust

Thuật toán tăng cường khả năng

Features

trích chọn đặc trưng

SVM

Support Vector Machine

Thuật toán hỗ trợ học máy Véc tơ

WHO

World Health Organization

Tổ chức Y tế thế giới

KNN
SIFT

SURF


vi


DANH SÁCH BẢNG
Bảng 3.1. So sánh các thuật toán trích chọn đặc trưng

41

Bảng 3.2. Tỷ lệ xác suất Test ảnh

42


vii

DANH SÁCH HÌNH VẼ
Hình 1.1. Giao diện phần mềm quản lý dinh dưỡng Wellness Diary

5

Hình 1.2. Sơ đồ nhận dạng thức ăn

10

Hình 1.3. Bảng Tính Calo của YAZIO

11

Hình 1.4. Bảng tính Calo của FatSecret

11


Hình 2.1. Các điểm nổi bật trong ảnh

20

Hình 2.2. Bộ mô tả

23

Hình 2.3. Ảnh tích hợp

24

Hình 2.4. Sử dụng ảnh tích hợp cho phép tăng tỷ lệ lọc với giá trị không đổi

26

Hình 2.5. Biểu đồ tỷ lệ phát hiện

27

Hình 2.6. Những điểm quan tâm được phát hiện trên một cánh đồng hoa hướng
dương

27

Hình 2.7. Phép lọc Haar wavelet

28

Hình 2.8. Gán hướng


29

Hình 2.9. Chi tiết của ảnh

30

Hình 2.10. Xây dựng bộ mô tả

30

Hình 2.11. Các mục mô tả của miền con

31

Hình 2.12. So khớp

31

Hình 2.13. Quy trình huấn luyện ảnh

32

Hình 2.14. Quy trình kiểm thử ảnh

32

Hình 2.15. Bài toán phân 2 lớp với SVM

35


Hình 2.16. Tổng quan phương pháp phân nhiều lớp với SVM

37

Hình 2.17. Trích chọn đặc trưng

37

Hình 2.18. Nhóm các descriptor

38

Hình 2.19. Biều đồ xác suất

39

Hình 2.20. Phân loại với SVM

39

Hình 3.1. Bộ dữ liệu thức ăn

42

Hình 3.2. Hình ảnh bộ dữ liệu thức ăn

46



viii

Hình 3.3. Quá trình nhận dạng ảnh

50

Hình 3.4. Giao diện khởi động ứng dụng Sfood

51

Hình 3.5. Chụp hình món ăn

51

Hình 3.6. Nhận dạng món ăn

52

Hình 3.7. Thông tin dinh dưỡng

52

Hình 3.8. Một số chức năng phụ của ứng dụng

53


1

MỞ ĐẦU

1. Lý do chọn đề tài
Thức ăn hàng ngày là một phần tất yếu của cuộc sống. Thức ăn với chế độ
dinh dưỡng hợp lý sẽ đem lại sức khỏe tốt cho con người. Ngược lại, chế độ dinh
dưỡng không hợp lý có thể dẫn tới một số bệnh lý như tiểu đường, béo phì, mỡ
trong máu, tim mạch.
Trong những năm gần đây, bệnh tiểu đường (hay còn gọi là đái tháo đường)
đang trở thành vấn đề lo ngại lớn đối với giới y khoa và cả cộng đồng. Theo hội
nghị khoa học “Chăm sóc sức khỏe tim mạch và chuyển hóa thế kỷ 21” diễn ra
ngày 12-13/4/2014, bệnh tim mạch và tiểu đường đang là gánh nặng cho toàn nhân
loại. Theo thống kê của Hiệp hội đái tháo đường thế giới IDF (International
Diabetes Federation), đến 11/2013 thế giới có 382 triệu người mắc bệnh tiểu đường
và dự đoán sẽ tăng lên 592 triệu người trong năm 2035. Cũng theo thống kê này,
trung bình hàng năm trên thế giới, căn bệnh này cướp đi sinh mạng của gần 5 triệu
người trên thế giới [19].
Chi phí chữa trị cho bệnh tiểu đường cũng ngốn ngân sách khá lớn ở các
quốc gia. Theo nghiên cứu về chi phí cho bệnh tiểu đường được thực hiện bởi IDF
thì tại Ấn Độ, mỗi người mắc tiểu đường sẽ tốn 25% thu nhập của gia đình dành
cho việc điều trị, ở Mỹ là 10%, ở một số quốc gia khác, con số này dao động từ 10 –
20%. Tại Việt Nam, theo khảo sát của Viện Nội tiết Trung ương, công bố vào giữa
năm 2013, nước ta có 5,7% người mắc bệnh tiểu đường và là một trong những nước
có tốc độ phát triển bệnh tiểu đường nhanh nhất toàn cầu. Người tuổi trên 65 bị tiểu
đường gấp hai lần người tuổi 45–54. Tỷ lệ người mắc bệnh đái tháo đường ở các
thành phố lớn chiếm tỷ lệ 7,2% dân số.
Theo dự kiến người mắc tiểu đường sẽ tăng lên khoảng 7-8 triệu người vào
năm 2025. Đây chính là con số đáng báo động cho thấy tốc độ gia tăng rất nhanh về
số lượng người bệnh. Nghiêm trọng hơn, thực trạng bệnh tiểu đường và tim mạch
đang bị trẻ hóa do béo phì gây ra nhiều biến chứng khó lường. Điều này cho thấy


2


cần có một chế độ dinh dưỡng khoa học riêng cho từng cá nhân, đảm bảo tốt cuộc
sống mà vẫn duy trì được sức khỏe cơ thể của mình.
Bên cạnh đó, hiện nay, để có một chiếc điện thoại thông minh không còn là
một vấn đề khó khăn nữa, việc sử dụng điện thoại di động hỗ trợ chế độ dinh dưỡng
hợp lý thông qua hình ảnh là một phương pháp đem lại hiệu quả đáng kể. Nó kết
nối nhanh khoảng cách giữa sức khỏe cá nhân và công nghệ, người dùng và thông
tin dinh dưỡng của họ, bằng cách giám sát thực phẩm dựa trên thiết bị tính toán cầm
tay cá nhân thông qua chế độ ăn uống hàng ngày. Cho phép họ theo dõi tình trạng
sức khỏe hàng ngày để giảm chi phí y tế tổng thể. Do đó, việc xây dựng một hệ
thống nhận dạng thức ăn và dinh dưỡng hàng ngày dựa trên điện thoại di động với
một chi phí thấp, tự động, mang tính cá nhân là cần thiết. Chính vì vậy, em quyết
định chọn đề tài: “Xây dựng hệ thống nhận dạng thức ăn và dinh dưỡng trên
nền tảng Android”.

2. Mục đích nghiên cứu
Hệ thống nhận dạng thức ăn và dinh dưỡng dựa trên điện thoại di động giúp
cho người dùng thuận tiện hơn trong việc quản lý và theo dõi chế độ dinh dưỡng
hàng ngày thông qua việc ăn uống, góp phần nâng cao hiệu quả trong việc giữ gìn,
duy trì sức khỏe hoặc giảm cân.

3. Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu: Trên thực tế thức ăn hàng ngày rất đa dạng, phong
phú và rất khó nhận dạng vì đặc điểm bên ngoài của chúng có thể khá giống nhau
(ví dụ như thịt lợn và thịt bò). Nên trong khuôn khổ luận văn này đề tài tập trung
vào nhận dạng thức ăn đơn.
Phạm vi nghiên cứu: Phát triển một hệ thống nhận dạng thức ăn đơn trên
điện thoại di động thông qua việc phân loại hình ảnh của chúng.

4. Phương pháp nghiên cứu

Luận văn sử dụng thuật toán phân cụm K-means để phân đoạn ảnh rau quả
và các món ăn thường ngày. Sau đó sử dụng thuật toán hỗ trợ máy vector SVM
(support vector machine) để phân loại thức ăn. Dữ liệu về hình ảnh thức ăn (khoảng


3

300 - 400 ảnh từ 15 loại thức ăn khác nhau) sẽ được thu thập bằng cách chụp hình
trên điện thoại di động với độ phân giải thấp và một số hình ảnh được tìm kiếm từ
internet. Cuối cùng thuật toán nhận dạng sẽ được đánh giá trên tập dữ liệu này.
Cấu trúc của luận văn bao gồm những phần như sau:
- MỞ ĐẦU
- NỘI DUNG
- KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
- DANH MỤC TÀI LIỆU THAM KHẢO
Phần Nội Dung của luận văn sẽ được trình bày trong 3 chương chính với
những nội dung như sau :
Chương 1. Tổng quan về nhận dạng thức ăn và dinh dưỡng
Trong chương này, Luận văn sẽ trình bày tính cấp thiết cần phải có một ứng
dụng quản lý dinh dưỡng. Từ đó mục tiêu của Luận văn là nhắm đến xây dựng một
ứng dụng dựa trên nền tảng android nhằm quản lý chế độ dinh dưỡng cho người sử
dụng đồng thời giới thiệu tổng quan về bài toán nhận dạng thức ăn và dinh dưỡng
trên nền tảng Android.
Chương 2. Phương pháp nhận dạng thức ăn và dinh dưỡng
Chương này sẽ trình bày một số khái niệm về phân loại và xử lý ảnh, một số
phương pháp liên quan đến các thuộc tính, kỹ thuật của việc nhận dạng thức ăn dựa
trên hình ảnh thông qua các thuật toán trích chọn đặc trưng. Qua đó làm tiền đề để
nghiên cứu sâu hơn các kỹ thuật trích chọn nội dung ảnh và đối sánh ảnh.
Chương 3. Cài đặt thử nghiệm và đánh giá
Chương này sẽ tiến hành cài đặt, xây dựng chương trình nhận dạng thức ăn

và dinh dưỡng trên nền tảng Android, chạy thử, đưa ra các kết quả của hệ thống dựa
trên một số thuật toán trích chọn đặc trưng ảnh, đồng thời sẽ có những đánh giá
khách quan về các kết quả đạt được.


4

CHƯƠNG 1 : TỔNG QUAN VỀ BÀI TOÁN NHẬN DẠNG
THỨC ĂN VÀ DINH DƯỠNG

1.1.

Đặt vấn đề
Ngày nay, chất lượng sống của người dân được nâng cao, vì vậy những đáp

ứng về nhu cầu thực phẩm của mỗi người càng trở nên cần thiết nhưng đôi khi lại
trở nên dư thừa. Và đây cũng chính là những nguyên nhân gây nên bệnh béo phì, từ
đó phát sinh thêm nhiều bệnh khác là điều khó tránh. Bệnh phổ biến thường gặp ở
đây là bệnh tiểu đường. Từ năm 2006 bệnh tiểu đường đã được Liên hiệp quốc công
nhận là căn bệnh mãn tính nguy hiểm gây ảnh hưởng tới cuộc sống toàn nhân loại.
Theo Tổ chức Y tế thế giới (WHO) và Liên đoàn Đái tháo đường thế giới (IDF)
Việt Nam không phải là quốc gia có tỷ lệ đái tháo đường lớn nhất thế giới, nhưng
bệnh đái tháo đường ở Việt Nam phát triển thuộc vào hàng nhanh so với thế giới.
Đối tượng mắc bệnh đái tháo đường thường ở độ tuổi từ 30-65, tuy nhiên hiện nay
có những bệnh nhân đái tháo đường mới chỉ 9-10 tuổi, điều này phản ánh sự trẻ hóa
về bệnh này ở nước ta.
Vấn đề kiểm soát ăn uống trở nên vô cùng hệ trọng cho từng trường hợp cá
biệt, nhất là những người có vấn đề không tốt về sức khỏe. Chính vì vậy mà áp
dụng một chương trình dinh dưỡng hợp lý là một trong những biện pháp điều trị căn
bản, cần thiết và quan trọng, không chỉ giúp phòng ngừa bệnh tiểu đường mà còn

giúp phòng ngừa hàng loạt các bệnh mãn tính khác như tim mạch, cao huyết áp, ung
thư,... Nhờ đó góp phần giúp cho cuộc sống của những thành viên trong gia đình và
rộng hơn nữa là cuộc sống của cộng đồng xã hội ngày càng được cải thiện hơn.
Cùng với đó, thực phẩm cung cấp cho mỗi bữa ăn thường rất đa dạng, việc
lựa chọn thực phẩm như thế nào cho phù hợp đang là những băn khoăn cho nhiều
người nội trợ. Họ cần rất nhiều hiểu biết về vấn đề này cũng như cần có những hỗ
trợ riêng để ước tính lượng Calo từ thực phẩm cung cấp cho các bữa ăn hàng ngày.,
nhu cầu năng lượng cho người già, người lao động, người trẻ, trẻ em, người bệnh,..


5

Để có được tư vấn thường xuyên của các chuyên gia Y tế là một hạn chế và
thường gây ra sự tốn kém cho người cần tư vấn về sức khỏe.
Do đó, việc xây dựng một hệ thống nhận dạng thức ăn và dinh dưỡng trên
mobile trợ giúp cho người bình thường ăn kiêng, giảm cân..., đặc biệt không chỉ cho
những người bị bệnh tiểu đường mà những người bệnh khác một chế độ dinh dưỡng
hợp lý là bắt buộc và cần thiết.

1.2.

Những nghiên cứu trước đây về nhận dạng ảnh
Xử lý ảnh, phân loại ảnh trong những năm gần đây là lĩnh vực đang được

giới khoa học quan tâm không những trong mà còn ngoài nước. Dưới đây là một số
công trình liên quan đến vấn đề xử lý ảnh và phân loại ảnh:

1.2.1. Các nghiên cứu đáng chú ý trên thế giới:
Một hệ thống quản lý chế độ dinh dưỡng tại Đại học Carnegie Mellon dựa
trên thực đơn ghi lại thực phẩm tiêu thụ hàng ngày. Hệ thống giúp giảm thời gian

tương tác người dùng với thiết bị, là một kỹ thuật nhận dạng tự động thực phẩm để
theo dõi lượng calo. Wellness Diary là một thiết bị dựa trên ứng dụng di động cũng
cho phép theo dõi sức khỏe hàng ngày của người sử dụng, yêu cầu người dùng nhập
thông tin về thói quen ăn uống của họ.

Hình 1.1: Giao diện phần mềm quản lý dinh dưỡng Wellness Diary


6

- Đề tài của đồng tác giả Svetlana Lazebnik, Cordelia Schmid, Jean Ponce
[8].
Trong đề tài này tác giả đưa ra phương pháp xác định loại quang cảnh dựa
vào độ xấp xỉ hình học toàn cục. Trong những năm gần đây, các công trình nghiên
cứu đã đưa ra các khái niệm về đặc trưng cục bộ và đặc trưng toàn cục nhưng việc
tính toán trên các đặc trưng này còn gặp rất nhiều hạn chế vì lý do có rất nhiều đặc
trưng trong một bức ảnh khiến cho việc tính toán trở nên phức tạp và hao tốn nhiều
tài nguyên hệ thống. Chính vì lẽ đó mà các tác giả trong đề tài đã nghiên cứu và đưa
ra khái niệm Bags of Features hay Bags of Words (BOF hay BOW), được áp dụng
để phân loại hình ảnh, bằng cách xử lý các tính năng hình ảnh như lời nói. Trong
phân loại tài liệu, đó là một vector được dùng để đếm số lần xuất hiện của một từ
vựng,... nhằm mục đích giảm thiểu thời gian tính toán cho hệ thống.
- Bài báo của đồng tác giả Xuezheng Liu, Lei Zhang, Mingjing Li,
Hongjiang Zhang, Dingxing Wang [10].
Bài báo này sử dụng thuật toán LDA để gán tên lớp cho những thuộc tính mà
đã rút ra được. LDA – SVM thường được thấy trong các đề tài tính toán hoặc làm
việc trên văn bản. LDA dùng để gán nhãn vào các đặc trưng sau đó các đặc trưng sẽ
được tính toán và phân vào các nhóm theo một tiêu chí nào đó nhờ vào SVM.
Trong đề tài các tác giả đã dùng LDA cho việc gán nhãn các đặc trưng hình ảnh
nhằm mục đích tránh sử dụng thuật toán phân cụm, một trong những nguyên nhân

gây hao tốn tài nguyên hệ thống khi phải làm việc trên một số lượng lớn các đặc
trưng.
- Bài báo của Qian Du, Department of Electrical and Computer Engineering,
Missisippi State University, MS 39762, USA. Accepted 14 August 2006 [7].
Khi số lượng các đặc trưng trở lên nhiều thì việc tính toán sẽ gặp nhiều khó
khăn tác giả Qian Du đã cải thiện được thuật toán CLDA theo cách không giám sát
nhằm mục đích các đặc trưng được phân vào các nhóm trong khi các khái niệm
nhóm đó là chưa có. Vốn dĩ CLDA là một phương pháp có giám sát tức là các đặc
trưng cần được gán cho một trọng số, một nhãn nào đó mà đã có khái niệm trước


7

đó. Trong thực tế thì việc làm này gặp khó khăn vì phải phân định rõ ràng trọng số
hay tên nhóm trước.
- Đề tài của tác giả Javier Ruiz và Patricio Loncomila thuộc Trường Cao
đẳng New Jersey, Ewing, NJ, 08.620, Hoa Kỳ [11].
Trong đề tài này tác giả đã sử dụng đặc trưng cục bộ bất biến để xác thực đối
tượng trong ảnh, mục đích chính là dùng để tìm ảnh và cũng đã đưa ra cách xây
dựng cơ sở dữ liệu để cải tiến tốc độ tìm kiếm, đó là sử dụng K-trees (cây k-chiều)
là một cấu trúc dữ liệu không gian phân vùng để tổ chức các điểm trong một không
gian k chiều.
- Bài báo của tác giả David G. Lowe, thuộc khoa khoa học máy tính, trường
đại học British Columbia [9].
David G. Lowe cũng chính là tác giả đưa ra khái niệm về đặc trưng cục bộ
bất biến Local Scale-Invariant Features (SIFT), được ứng dụng nhiều trong các bài
toán truy tìm ảnh, phân loại ảnh và xác thực. Các đặc trưng hình ảnh bao gồm nhiều
loại: màu sắc, kết cấu, hình dạng, … tuy nhiên các đặc trưng này ít nhiều lại phụ
thuộc vào không gian ảnh, biến đổi ảnh.
Trong công việc xác định đối tượng trong ảnh, tác giả đã lưu trữ các đặc

trưng và đánh chỉ mục cho chúng khi các ảnh tham gia truy vấn sẽ được rút ra các
đặc trưng SIFT và đem ra so sánh với các đặc trưng đã có trong cơ sở dữ liệu. Việc
làm này sẽ làm hao tốn rất nhiều thời gian tính toán của hệ thống.
- Bài báo của YU Xin, ZHENG Zhaobao, ZHANG Haitao, YE Zhiwei [14].
Bài báo đã có sự so sánh hai phương thức Bayesian Networks Augmented
Naive Bayes (BAN) và Naive Bayes Classifiers (NBC) and PCA-NBC trong phân
loại ảnh và nhận thấy BAN chạy tốt hơn NBC và PCA-NBC.
- Bài báo “Speeded-up Robust Features (SURF)”, Herbert Bay, Andreas Ess,
Tinne Tuytelaars, Luc Van Gool, 12/2007 [6].
Bài báo với mong muốn thay thế đặc trưng SIFT bằng SURF và sử dụng ma
trận Hessian để đo bộ phát hiện đặc trưng, nhằm ứng dụng trong các hệ thống
camera.


8

1.2.2. Các nghiên cứu đáng chú ý tại Việt Nam:
Trong nước tuy còn ít đề tài nghiên cứu về lĩnh vực phân loại ảnh, mà chỉ tập
trung chủ yếu vào nghiên cứu các công cụ đối sánh ảnh, tìm ảnh nhưng có sử dụng
các đặc trưng bất biến cùng các kỹ thuật phân cụm và cây quyết định. Điển hình cho
vấn đề này có các bài báo sau:
- Đề tài của Nguyễn Thị Hoàn, trường Đại học công nghệ, Đại học Quốc gia
Hà Nội, năm 2010 [3].
Đề tài đã tìm hiểu các đặc trưng của ảnh bao gồm đặc trưng văn bản đi kèm
ảnh và đặc trưng nội dung ảnh. Đồng thời, tìm hiểu các phương pháp trích chọn đặc
trưng nội dung ảnh cũng như một số độ đo tương đồng tương ứng với các đặc trưng
đó. Đề tài đã sử dụng phương pháp trích chọn đặc trưng SIFT của ảnh với tập dữ
liệu cho sẵn trước.
- Đề tài của Trần Phước Long, Nguyên Văn Lượng, Trường Đại học Khoa
học tự nhiên Thành phố Hồ Chí Minh, năm 2003 [4].

Đề tài sử dụng hai mô hình xử lý được đánh giá là mạnh trong lĩnh vực trí
tuệ nhân tạo, đó là mô hình phân cách với thuật toán SVM và mô hình thống kê với
thuật toán HMM làm công cụ xử lý chính cho việc nhận dạng người dựa vào thông
tin khuôn mặt trên ảnh.
- Đề tài của Nguyễn Đức Năng, luận văn thạc sĩ, trường Đại Học Lạc Hồng,
năm 2013 [5],[9].
Đề tài đã tiến hành nghiên cứu, giải quyết bài toán phân loại ảnh dựa vào đặc
trưng cục bộ bất biến SIFT. Bài toán là nền tảng cho nhiều ứng dụng quan trọng
thực tế như hệ thống khuyến cáo người dùng, cải thiện tìm kiếm ảnh, lọc Web,....
Phương pháp giải quyết của luận văn tập trung vào quá trình rút trích đặc trưng ảnh
cho cả dữ liệu học máy và dữ liệu cần phân loại dựa vào đặc trưng cục bộ bất biến
SIFT, và biểu diễn ảnh dưới dạng vector. Tiếp đến dùng thuật toán Kmean để gom
nhóm các đặc trưng lại.

1.3.

Cách tiếp cận


9

Để thuận lợi cho việc theo dõi tình trạng sức khỏe hàng ngày, việc xây dựng
một hệ thống nhận dạng thức ăn bằng hình ảnh là cần thiết, nó mang tính cá nhân
với chi phí thấp, rất tiện lợi cho người dùng. Từ thực phẩm được nhận dạng sẽ ước
tính lượng calo tương ứng cho mỗi loại. Đây cũng là giải pháp cho vấn đề quản lý
dinh dưỡng đã được đề cập ở trên. Hình ảnh thức ăn có được từ người dùng chụp lại
bằng điện di động với độ phân giải thấp. Từ những hình ảnh này hệ thống sẽ thực
hiện phân loại thực phẩm qua hai bước: phân đoạn và làm mịn ảnh. Mỗi hình ảnh có
được là từ bề mặt của các loại thức ăn, rau, quả, củ, số lượng màu sắc chưa xác
định, một phương thức không có giám sát là cần thiết để phân vùng ảnh. Và thuật

toán phân cụm K-mean được thực hiện cho việc phân đoạn màu sắc thực của ảnh.
Khi chụp hình trong khung cảnh thực những hình ảnh chứa đựng những đối tượng
xung quanh đầy ý nghĩa, làm phát sinh một số cụm (nhỏ) không có liên quan đến
đối tượng quan tâm. Để loại bỏ những đối tượng này, ta áp dụng các toán tử hình
thái (mathematical morphology) bao gồm open và close để làm mịn hình ảnh phân
đoạn. Vùng chính cần quan tâm có thức ăn sẽ được trích xuất bằng việc sử dụng các
thuộc tính màu sắc và SURF cho việc xác nhận thức ăn. Cuối cùng thực hiện sự
phân lớp ảnh cho việc xác nhận từng loại thức ăn dựa trên đặc trưng SURF và thuộc
tính màu sắc thông qua thuật toán máy hỗ trợ vector (SVM) [1][5].

Hình 1.2 : Sơ đồ nhận dạng thức ăn


10

1.4.

Bài toán đặt ra
Hầu hết các ứng dụng quản lý dinh dưỡng trước đây đều yêu cầu phải lựa

chọn các thức ăn bằng tay như: Bảng Tính Calo của YAZIO, Calorie Counter by
FatSecret,... người dùng muốn biết giá trị dinh dưỡng của món ăn đó thì phải nhập
vào tên món ăn cần sử dụng, sau đó các ứng dụng này sử dụng các hình ảnh mẫu
tiêu biểu có sẵn, tạo sẵn trong cơ sở dữ liệu để tiến hành nhận dạng, tính toán và
cho ra giá trị Calo của thực phẩm cần sử dụng, Việc nhận dạng này thường cho kết
quả chung chung cho từng loại thức ăn, việc người dùng phải nhập vào thông tin
món ăn có thể gây ra nhiều bất tiện, vì họ không thể biết chính xác lượng dinh
dưỡng mà họ đã nhập vào với món ăn đó.

Hình 1.3: Bảng Tính Calo của YAZIO



11

Hình 1.4: Bảng tính Calo của FatSecret

Trước khó khăn này, luận văn xây dựng một ứng dụng nhằm giải quyết vấn
đề trên. Thao tác của người dùng rất đơn giản, họ chỉ việc chụp ảnh món ăn, các
thao tác còn lại như tính toán và quản lý về thông tin lượng dinh dưỡng của món ăn
sẽ do ứng dụng đảm nhiệm.

1.5.

Tổng quan về ứng dụng
Ứng dụng sẽ nhận dạng thức ăn và hàm lượng dinh dưỡng (calo) cho mỗi

người dùng dựa trên cơ sở dữ liệu mà ứng dụng đã học được thông qua việc chụp
ảnh thức ăn bằng camera của điện thoại Android và các hình ảnh về món ăn được
sưu tầm thông qua internet. Từ đó giúp cho người dùng có thể tự tính toán, điều
chỉnh được chế độ ăn theo từng bữa ăn cho phù hợp [12],[16].
Các thông tin nhận dạng bao gồm:
-

Tên thức ăn

-

Hàm lượng dinh dưỡng ( Calo ) trong thức ăn mà ứng dụng nhận dạng được.



12

Trong phạm vi Luận văn này, ứng dụng chứa 15 món ăn Việt Nam mà hệ
thống có thể nhận dạng được bằng cách chụp lại món ăn này.
Ứng dụng đưa ra thông tin về các món ăn khá phong phú.
Các bước cơ bản để nhận diện món ăn:
Người sử dụng dùng điện thoại thông minh chụp lại ảnh món ăn trước khi
lựa chọn. Hệ thống liên tục nhận lại khung hình ảnh từ điện thoại ở chế độ nền .
Người sử dụng kéo một khung giới hạn với mặt hàng thực phẩm trên màn
hình điện thoại. Người sử dụng có thể điều chỉnh khung giới hạn cho phù hợp với
món ăn.
Nhận dạng thực phẩm được thực hiện tại vùng trong khung giới hạn.
Hệ thống đưa ra tên món ăn nhận dạng được cũng như lượng dinh dưỡng mà
món ăn này chứa.
Người dùng có thể chọn món ăn này nếu như kết quả là chính xác, hoặc có
thể quay lại bước trước để nhận dạng lại nếu thấy thông tin chưa hoàn toàn chính
xác.

1.6.

Kết luận chương 1
Trong chương này, Luận văn đã trình bày tính cấp thiết cần phải có một ứng

dụng quản lý dinh dưỡng và một số hạn chế của các ứng dụng đã có. Từ đó mục
tiêu Luận văn là nhắm đến là xây dựng một ứng dụng trên nền tảng android nhằm
quản lý chế độ dinh dưỡng cho người sử dụng.
Để nâng cao tính tương tác giữa ứng dụng và người sử dụng, Luận văn sẽ
nhắm đến một ứng dụng thời gian thực với độ chính xác cao.
Trước khi giới thiệu chi tiết ứng dụng, Luận văn sẽ giới thiệu một cách tổng
quan các kỹ thuật và phương pháp tồn tại cùng với các điểm yếu và mạnh của

chúng trong chương tiếp theo.


13

CHƯƠNG 2 : PHƯƠNG PHÁP NHẬN DẠNG THỨC ĂN
VÀ DINH DƯỠNG.
2.1.

Giới thiệu
Chương này đi sâu vào trình bày hai thuật toán chính sử dụng trong hệ thống

nhận dạng thực phẩm bằng hình ảnh là thuật toán K-mean và thuật toán máy hỗ trợ
vector (SVM). Cách phân đoạn ảnh đầu vào dựa trên thuật toán K-mean để trích
chọn các đặc trưng. Và sử dụng thuật toán SVM cho việc phân loại ảnh.

2.2.

Đặt vấn đề
Phân loại hình ảnh là một trong nhiều lĩnh vực được chú ý nhất và đã được

nghiên cứu trong những năm gần đây.
Một cách tổng quan, phân loại hình ảnh là quá trình gán các ảnh vào một hay
nhiều lớp ảnh đã được xác định từ trước. Người ta có thể phân loại ảnh bằng cách
thủ công, tức là nhìn vào nội dung tấm ảnh sau đó gán chúng vào một hay nhiều lớp
cụ thể nào đó. Hệ thống quản lý tập ảnh gồm nhiều ảnh cho nên việc làm này sẽ tốn
rất nhiều thời gian, công sức và do đó là không khả thi. Do vậy mà phải có các
phương pháp phân loại tự động. Để phân loại tự động, người ta sử dụng các phương
pháp máy học trong trí tuệ nhân tạo như cây quyết định, Naive Bayes, K láng giềng
gần nhất, giải thuật clustering,…[14]

Một trong những ứng dụng quan trọng nhất của phân loại ảnh tự động là
trong các hệ thống tìm kiếm ảnh. Từ một tập con các ảnh đã phân lớp sẵn, tất cả các
ảnh trong miền tìm kiếm sẽ được xử lý rút ra những vector đặc trưng sau đó được
đưa qua phân nhóm để hình thành các nhóm đặc trưng và được gán nhãn lớp tương
ứng.

2.3.

Phân đoạn và tiền xử lý ảnh

2.3.1. Giới thiệu
Phân đoạn ảnh là một thao tác ở mức thấp trong toàn bộ quá trình xử lý ảnh.
Quá trình này thực hiện việc phân vùng ảnh thành các vùng rời rạc và đồng nhất với


14

nhau hay nói cách khác là xác định các biên của các vùng ảnh đó. Các vùng ảnh
đồng nhất này thông thường sẽ tương ứng với tòan bộ hay từng phần của các đối
tượng thật sự bên trong ảnh. Vì thế, trong hầu hết các ứng dụng của lĩnh vực xử lý
ảnh (image processing), thị giác máy tính, phân đoạn ảnh luôn đóng một vai trò cơ
bản và thường là bước tiền xử lý đầu tiên trong toàn bộ quá trình trước khi thực
hiện các thao tác khác ở mức cao hơn như nhận dạng đối tượng, biểu diễn đối
tượng, nén ảnh dựa trên đối tượng, hay truy vấn ảnh dựa vào nội dung … Vào
những thời gian đầu, các phương pháp phân vùng ảnh được đưa ra chủ yếu làm việc
trên các ảnh mức xám do các hạn chế về phương tiện thu thập và lưu trữ.
Ngày nay, cùng với sự phát triển về các phương tiện thu nhận và biểu diễn
ảnh , các ảnh màu đã hầu như thay thế hoàn toàn các ảnh mức xám trong việc biểu
diễn và lưu trữ thông tin do các ưu thế vượt trội hơn hẳn so với ảnh mức xám. Do
đó, các kỹ thuật, thuật giải mới thực hiện việc phân vùng ảnh trên các loại ảnh màu

liên tục được phát triển để đáp ứng các nhu cầu mới. Các thuật giải, kỹ thuật này
thường được phát triển dựa trên nền tảng các thuật giải phân vùng ảnh mức xám đã
có sẵn.

2.3.2. Phân đoạn ảnh bằng thuật toán K-MEAN .
Phân đoạn ảnh là bước đầu tiên trong quá trình xử lý ảnh. Quá trình này thực
hiện phân vùng ảnh thành các vùng rời rạc và đồng nhất với nhau, nó chính là việc
xác định các biên của các vùng ảnh đó. Mỗi vùng gồm một nhóm điểm ảnh liên
thông hoặc đồng nhất theo một tiêu chí lựa chọn như màu sắc, hình dạng, kết cấu,
…. Sau khi phân đoạn mỗi điểm ảnh chỉ thuộc về một vùng duy nhất. Những vùng
ảnh đồng nhất này thông thường sẽ tương ứng với toàn bộ hay từng phần của các
đối tượng thật sự có trong ảnh. Giả sử màu sắc bề mặt của các đối tượng trong ảnh
là một thuộc tính không đổi và màu sắc đó được ánh xạ vào một không gian 2 chiều
và màu. Khi đó áp dụng giải thuật phân cụm K-mean cho việc xác định các cụm
màu, mỗi cụm màu có tập các điểm ảnh tương tự nhau.
K-Mean là thuật toán rất quan trọng và được sử dụng phổ biến trong kỹ thuật
phân cụm. Tư tưởng chính của thuật toán K-Mean là tìm cách phân nhóm các đối


15

tượng đã cho vào K cụm (K là số các cụm được xác đinh trước, K nguyên dương)
sao cho tổng bình phương khoảng cách giữa các đối tượng đến tâm nhóm là nhỏ
nhất.
Bài toán phân cụm dữ liệu trong thuật toán K-mean:
Cho tập các điểm D = {x1, x2,…, xn}, Trong đó xi = (xi1, xi2,…, xir) là một
vector có r chiều trong không gian Rr, và r là một số thuộc tính của tập dữ liệu D.
Giải thuật K-Mean phân cụm dữ liệu dựa trên khoảng cách Euclidean nhỏ nhất giữa
đối tượng đến phần tử trung tâm của các nhóm.
Khoảng cách Euclidean:

Ta giả sử: xi = (xi1, xi2,…, xir) - đối tượng thứ i cần phân phân loại, (i=1..n)
cj = (cj1, cj2,…, cjr) - phần tử trung tâm nhóm j (j=1..k) Khoảng cách Euclidean từ
đối tượng ai đến cj (phần tử trung tâm nhóm j) được tính toán dựa trên công thức:
(2.1)
Trong đó:
δji : Khoảng cách từ Euclidean từ ai đến cj
Xis : Thuộc tính thứ s của đối tượng xi
xjs : Thuộc tính thứ s của phần tử trung tâm cj
Phần tử trung tâm của nhóm được xác định bằng giá trị trung bình các phần
tử trong nhóm.
Phần tử trung tâm
k phần tử trung tâm (k nhóm) ban đầu được chọn ngẫu nhiên, sau mỗi lần
nhóm các đối tượng vào các nhóm, phần tử trung tâm được tính toán lại.
Clusteri{x1, x2,…, xt} – Nhóm thứ i
i=1..k, k số số nhóm cần phân chùm ; j= 1..r, r số thuộc tính
t - số phần tử hiện có của nhóm thứ I;
xsj - thuộc tính thứ j của phần tử s s=1..t
cij - toạ độ thứ j của phần tử trung tâm nhóm i;


×