Chương 7: KẾT QUẢ VÀ THỰC NGHIỆM
Chương 7: KẾT QUẢ VÀ THỰC NGHIỆM
Chương 7: KẾT QUẢ VÀ THỰC NGHIỆM
Chương 7: KẾT QUẢ VÀ THỰC NGHIỆM
7.2. So sánh
So sánh với những ứng dụng đếm hiện tại có mặt trên chợ ứng dụng
7.2.1. So sánh với ứng dụng CountThings
Ứng dụng CountThings là một ứng dụng đếm vật thể đến từ công ty Dynamic Ventures, Inc. của Mỹ, được phát hành đầu tiên năm 2011 với đội ngũ phát triển cực kỳ mạnh, ứng dụng đang là ứng dụng đứng đầu trong lĩnh vực đếm vật thể mật độ cao.
Bảng chi tiết so sánh ứng dụng My Counter trong đề tài và CountThings:
Mục so sánh My Counter CountThings
Độ chính xác
Cao Rất cao
Thời gian xử lý 75 giây 4 giây
Thời gian đếm 31 giây 4 giây
Giao điện Tương đối Tương đối
Tính năng Tương đối ít, đủ những tính năng chính cần có
Nhiều, đầy đủ hầu hết các tính năng liên quan
Số lượng template 10 loại Hơn 500 loại
Xuất kết quả Lưu hình ảnh, gửi hình ảnh
Xuất file csv, lưu hình ảnh có banner
Giá thành Miễn phí
Quá đắt $159.99 mỗi tháng $30.99 mỗi ngày gói 1 pack $99.99 mỗi ngày gói 4 pack $179 mỗi ngày gói 10 pack
Bảng 7.1 So sánh với CountThings 7.2.2. So sánh với ứng dụng Mediscount 7.2.2. So sánh với ứng dụng Mediscount
Mediscount là một ứng dụng trên chợ ứng dụng dùng để đếm thuốc hoặc vật thể tương tự, thuộc công ty Medity Inc. và được phát hành bản đầu tiên vào tháng 12 năm 2020. Ứng dụng có kết quả khá tốt nhưng chưa thực sự phổ biến, hầu hết sử dụng để đếm thuốc.
Bảng so sánh chi tiết ứng dụng My Counter và Mediscount:
Mục so sánh My Counter Mediscount
Độ chính xác
Cao Cao
Thời gian xử lý 75 giây 3 giây
Chương 7: KẾT QUẢ VÀ THỰC NGHIỆM
Giao điện Tương đối hợp lý Tương đối hợp lý Tính năng Tương đối ít, đủ những
tính năng chính cần có
Tương đối ít, chỉ cho phép chụp hình ảnh và khơng đếm
được ảnh có sẵn Số lượng template 10 loại Không xác định
Chỉnh sửa kết quả Chưa có Khơng có
Xuất kết quả Lưu hình ảnh, chia sẻ hình ảnh
Lưu hình ảnh, chia sẻ hình ảnh
Giá thành Miễn phí
Tương đối cao
$2.99 mỗi tháng hoặc $28.99 mỗi năm
Bảng 7.2 So sánh với Mediscount 7.3. Thực nghiệm 7.3. Thực nghiệm
- Nhóm đã kiểm tra với rất nhiều hình ảnh thực tế tự chụp, kết quả rất đáng khả quan.
- Nhóm đã kiểm tra với rất nhiều hình chụp từ cộng đồng, bạn bè và đều cho kết quả tốt, tỉ lệ đưa ra kết quả sai thấp.
- Thời gian đếm chưa thực sự nhanh, với những hình khó thì người dùng có thể đợi, cịn trong những hình dễ có thể đếm thủ cơng thì hệ thống vẫn tốn khoảng thời gian khá lâu, dẫn đến sự khó chịu của người dùng thật
7.4. Nhận xét và phân tích
- Ứng dụng đang hoạt động rất tốt, nhưng trong trường hợp người dùng chọn sai template, ví dụ chọn đếm trứng nhưng lại đưa hình khoai tây vào thì ứng dụng sẽ nhận diện sai. Tương tự trường hợp đếm trứng nhưng lẫn vào trong hình trứng một củ khoai tây hoặc ngược lại cũng có thể gây ra sai kết quả.
- Ứng dụng khuyến khích người dùng chọn đúng template trước khi đếm, trường hợp người dùng cố tình thử thách và lừa hệ thống thì rất khó kiểm soát và chắc chắn sẽ đưa ra kết quả sai.
- Trong thực tế, những trường hợp hi hữu như vậy rất khó xảy ra. Và nhóm đã có giải pháp là sẽ phát triển tính năng loại bỏ hoặc thêm thủ công cho kết quả. - Ứng dụng khuyến khích người dùng chụp hoặc đưa vào những hình ảnh có các
vật thể tách rời nhau, hoặc phải chụp chính diện khơng để khuất quá nhiều sẽ gây ra nhầm lẫn và ảnh hưởng kết quả.
Kết luận: Ứng dụng đáp ứng được nhu cầu cơ bản của người dùng trong việc đếm các vật thể mật độ dày đặc và rất khó đếm thủ cơng. Và vẫn chỉ đang trong quá
trình phát triển và hồn thiện, chưa thể đưa ra sử dụng một cách rộng rãi được. Người dùng phải chủ động giúp ứng dụng đạt kết quả cao, trường hợp cố tình lừa hệ thống thì rất khó để xử lý và có phương án hợp lý.
Chương 8: TỔNG KẾT
Chương 8
8. TỔNG KẾT
8.1. Kết luận
Sau khi hoàn thành được đề tài với kết quả vượt mong đợi của nhóm, nhóm đã học hỏi thêm được rất nhiều kiến thức từ nhiều lĩnh vực khác nhau như: Làm server bằng python, cách xử lý SSL Secure, sử dụng được OpenCV, sử dụng được nhiều model machine learning khác nhau, có thể đọc hiểu cơ bản và áp dụng được những paper của những chuyên gia đầu ngành vào ứng dụng thực tế, khả năng tìm hiểu công nghệ để làm ứng dụng iOS từ đầu đến cuối,... Nguồn kiến thức mà nhóm tìm hiểu được từ đề tài này thật sự quý giá.
Kết quả của đề tài rất đáng hứa hẹn, nếu sau này đủ thời gian và kiến thức sẽ có thể phát triển mạnh mẽ và đưa vào sử dụng trong đời sống, áp dụng được trong nhiều lĩnh vực.
8.2. Khó khăn
Trong quá trình thực hiện đề tài, nhóm đã gặp rất nhiều khó khăn, nhưng nhờ những kiến thức đã được học tại trường ĐH Sư Phạm Kỹ Thuật TpHCM, sự giúp đỡ của cộng đồng cùng với những tư vấn nhiệt tình của thầy Trần Nhật Quang, nhóm em đã vượt qua được.
8.2.1. Khó khăn trong q trình tìm hiểu phương pháp đếm
- Có rất nhiều phương pháp đếm từ nhiều bài báo khoa học khác nhau, nhưng hầu hết chỉ đúng trong ví dụ của bài báo, đưa ra sử dụng ở những hình ảnh khác thì lại đưa ra kết quả sai.
- Nhóm đã thử và sử dụng rất nhiều phương pháp khác nhau ở lĩnh vực xử lý ảnh số và học máy để tìm ra được phương pháp tối ưu và phù hợp nhất cho hầu hết các trường hợp.
- Những bài báo khoa học về học máy rất khó để sử dụng, mơi trường và các packet của bài khác với mơi trường nhóm thực hiện để chạy chương trình, gây ra rất nhiều khó khăn và lỗi
8.2.2. Khó khăn trong q trình xây dựng server và triển khai server
- Việc xây dựng một server có khả năng xử lý được những mơ hình học máy hoặc thuật toán xử lý ảnh số rất khó khăn, địi hỏi nhóm phải tìm hiểu những cơng nghệ mới như Flask hoặc SocketIO trên python trong thời gian ngắn.
- Khi triển khai server, tìm và lựa chọn hosting chất lượng cũng gặp nhiều trở ngại, vì một hosting có khả năng thực hiện được chương trình học máy cần tốn nhiều
tài nguyên và yêu cầu phần cứng cao, nên nhóm phải th một VM có cấu hình tương đối mới có thể dùng làm hosting cho server.
- Nhóm phải tìm cách để cải tiến thời gian một cách tốt nhất nên việc tìm kiếm phương pháp tối ưu gặp rất nhiều khó khăn. Thời gian đầu mỗi lần đếm mất rất nhiều thời gian, hiện tại thời gian đếm đã giảm nhưng vẫn cịn khá cao.
8.2.3. Khó khăn trong quá trình chuẩn bị dataset
- Việc chuẩn bị dataset là quá trình rất tốn nhiều thời gian, mỗi lần chuẩn bị cho dataset tốn khoảng 2-3 ngày liên tục cho một loại vật thể.
- Để đánh nhãn được những vật thể chuyên dụng, chỉ xuất hiện ở những khu công nghiệp, kho hoặc nhà máy nhưng khơng có sẵn hình ảnh trên mạng địi hỏi nhóm phải trực tiếp đến chụp ảnh để về đánh nhãn.
- Để có được model kết quả chính xác, nhóm đã đánh nhãn rất tỉ mỉ và nhiều hình cùng với bounding box.
8.3. Hướng phát triển
Theo mục đích của đề tài là “Đếm vật thể mật độ cao trên thiết bị iOS” và những thiếu sót cịn tồn đọng của ứng dụng. Nhóm có 3 mục tiêu cần phát triển là: Tăng độ chính xác, giảm thời gian đếm, cải tiến server, cải tiến ứng dụng ở phía client, thêm nhiều vật thể mới phù hợp.
8.3.1. Tăng độ chính xác
- Train thêm nhiều model cho nhiều vật thể hữu ích khác. - Đánh nhãn nhiều object hơn để tăng chính xác.
- Tăng epoch và step per epoch lên để tăng độ chính xác.
8.3.2. Giảm thời gian đếm
- Nâng cấp server cao hơn để xử lý nhanh hơn.
- Cố gắng tìm cách thay đổi việc predict, predict ngay trên thiết bị client, tận dụng tối đa phần cứng của client. Server chỉ có nhiệm vụ lọc lại dữ liệu và xử lý.
8.3.3. Cải tiến ứng dụng phía client
- Tìm hiểu nhu cầu của người dùng về một ứng dụng đếm để phát triển thêm những tính năng phù hợp.
- Cho phép người dùng export kết quả dưới nhiều dạng khác nhau (CSV, lưu tự động vào album trong thư viện).
- Chạy function trong background dể giúp người giúp bớt tốn thời gian chờ đợi. - Thêm giao diện hướng dẫn sử dụng chi tiết cho người sử dụng.
- Cho phép người dùng tự đánh nhãn thủ công cho vật thể tuỳ chọn, để server train tự động cho loại vật thể đó.
Chương 8: TỔNG KẾT
- Cho phép người dùng sửa đổi kết quả (thêm/sửa/xóa những vị trí bị sai) - Chỉnh sửa UI/UX phù hợp với người sử dụng hơn.
- Làm thêm nhiều client khác cho thiết bị android, web, windows application.
8.3.4. Cải tiến server
- Cho phép nhiều người dùng thực hiện đếm cùng một lúc.
- Tổ chức lại cơ sở dữ liệu, tổ chức lại các function logic hiệu quả hơn - Tăng lớp bảo mật cho server
8.3.5. Thêm nhiều loại vật thể mới thiết thực
- Cần tìm hiểu nhu cầu của người dùng về những vật thể cần đếm để chuẩn bị dataset phù hợp.
- Cần thu thập những vật thể có tính ứng dụng cao trong cuộc sống, những loại vật thể thiết thực cần đếm bằng trí tuệ nhân tạo.
TÀI LIỆU THAM KHẢO Tiếng Việt
[1] Vimentor. (2018). Chạy ứng dụng Flask với Gunicorn trên ubuntu. Được truy lục từ https://vimentor.com/vi/lesson/6-chay-ung-dung-flask-voi-gunicorn-tren- ubuntu
[2] TOMOSIA. (2021). SwiftUI là gì? Được truy lục từ https://blog.tomosia.com/swiftui-la-gi/
[3] NIITHanoi. (2019). Flask là gì? Bạn biết gì về framework này? Được truy lục từ https://blog.tomosia.com/swiftui-la-gi/
[4] Keras RetinaNet. (2021). Keras RetinaNet. Được truy lục từ https://github.com/fizyr/keras-retinanet
[5] Viblo Asia. (2020). Giới thiệu mạng ResNet. Được truy lục từ https://viblo.asia/p/gioi-thieu-mang-resnet-vyDZOa7R5wj
[6] OpenCV Official Document. (2021). Image Segmentation with Watershed
Algorithm. Được truy lục từ
https://docs.opencv.org/master/d3/db4/tutorial_py_watershed.html
[7] Praveen. (2020). Color Detection using OpenCV Python. Được truy lục từ https://medium.com/programming-fever/color-detection-using-opencv-python- 6eec8dcde8c7
[8] TopDev. (2020). Heroku là gì? Được truy lục từ https://topdev.vn/blog/heroku- la-gi/
[9] Amazon. (2021). Amazon là gì? Được truy lục từ https://aws.amazon.com/vi/about-aws/
[10] ITNAVI. (2020). Google Cloud Là Gì? Những Dịch Vụ Mà Google Cloud Cung
Cấp. Được truy lục từ https://blog.itnavi.com.vn/google-cloud-la-gi-nhung-dich-
vu-ma-google-cloud-cung-cap/
[11] Wikipedia. (2021). OpenCV. Được truy lục từ https://en.wikipedia.org/wiki/OpenCV
[12] TopDev. (2021). Được truy lục từ https://topdev.vn/blog/opencv-la-gi-hoc- computer-vision-khong-kho/
Tiếng Anh
[13] PapeWithCode. (2019). Precise Detection in Densely Packed Scenes. Được truy lục từ https://paperswithcode.com/paper/precise-detection-in-densely-packed- scenes
[14] PapeWithCode. (2019). Precise Detection in Densely Packed Scenes. Được truy lục từ https://paperswithcode.com/paper/precise-detection-in-densely-packed- scenes
[15] Wikipedia. (2021). OpenCV. Được truy lục từ https://en.wikipedia.org/wiki/OpenCV
[16] Praveen. (2020). Color Detection using OpenCV Python. Được truy lục từ https://medium.com/programming-fever/color-detection-using-opencv-python- 6eec8dcde8c7
[17] OpenCV Official Document. (2021). Image Segmentation with Watershed
Algorithm. Được truy lục từ
https://docs.opencv.org/master/d3/db4/tutorial_py_watershed.html [18] Keras RetinaNet. (2021). Keras RetinaNet. Được truy lục từ