Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 50 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
50
Dung lượng
1,87 MB
Nội dung
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT – HÀN KHOA KHOA HỌC MÁY TÍNH - - BÁO CÁO ĐỒ ÁN CHUYÊN NGÀNH ĐỀ TÀI: PHÁT TRIỂN ỨNG DỤNG BÉ YÊU ĐỘNG VẬT Sinh viên thực : Nguyễn Duy Sỹ Nguyễn Thị Nguyệt Minh Lớp: 18IT5 + 18IT2 GVHD: TS Trần Văn Đại Đà Nẵng, tháng 12, năm 2021 TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VIỆT – HÀN KHOA KHOA HỌC MÁY TÍNH - - BÁO CÁO ĐỒ ÁN CHUYÊN NGÀNH ĐỀ TÀI: PHÁT TRIỂN ỨNG DỤNG BÉ YÊU ĐỘNG VẬT Sinh viên thực : Nguyễn Duy Sỹ Nguyễn Thị Nguyệt Minh Lớp: 18IT5 + 18IT2 GVHD: TS Trần Văn Đại Đà Nẵng, tháng 12, năm 2021 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… Chữ ký giảng viên hướng dẫn ……………………………… MỤC LỤC LỜI CẢM ƠN LỜI NÓI ĐẦU CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI .8 1.1 Giới thiệu đề tài 1.2 Lý chọn đề tài 1.3 Mục đích đề tài 1.4 Vấn đề cần giải 1.5 Đề xuất nội dung thực 1.6 Tổng quan xử lý ảnh .10 1.6.1 Xử lý ảnh gì? 10 1.6.2 Các trình xử lý ảnh 10 1.6.3 Những vấn đề hệ thống xử lý ảnh 12 1.7 Giới thiệu python 15 1.8 Giới thiệu thư viện 16 1.8.1 Tổ chức thư viện OpenCV 17 1.8.2 Hàm cho số chức cụ thể .18 1.9 Tìm hiểu về Flutter 19 1.9.1 Ngơn ngữ DART gì? 19 1.9.2 Những thành phần Flutter 20 1.9.3 Những tính Flutter 20 1.9.4 Ưu nhược điểm Flutter 20 CHƯƠNG TÌM HIỂU VÀ PHÂN TÍCH THUẬT TỐN 22 2.1 Công nghệ nhận diện xử lí hình ảnh .22 2.1.1 Cơng nghệ nhận diện hình ảnh gì? 22 2.1.2 Mục đích việc sử dụng cơng nghệ hình ảnh 22 2.1.3 Các kỹ thuật xử lý hình ảnh kỹ thuật số phổ biến 23 2.2 Tổng quan về Yolov5 24 2.2.1 Kiến trúc mạng YOLO 25 2.2.2 Nguyên lý hoạt động của mạng YOLO 27 2.2.3 Output của YOLO 27 2.2.4 Dự báo nhiều feature map 28 2.2.5 Anchor box 29 2.2.6 Hàm mất mát ( Loss Function) .31 2.2.7 Dự báo bounding box 33 2.2.8 Thuật toán sử dụng YOLOv5 35 2.3 Tìm hiểu về Rest API 37 2.3.1 REST API gì? 37 2.3.2 Chức REST API gì? 38 2.3.3 Quy trình hoạt động REST API gì? 39 CHƯƠNG TRIỂN KHAI VÀ DEMO SẢN PHẨM 42 3.1 Cài đặt môi trường .42 3.1.1 Python Visual studio 42 CHƯƠNG ĐÁNH GIÁ KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI .43 4.1 Đánh giá kết quả đạt được: 43 4.2 Hướng phát triển đề tài: 44 4.3 Kết luận .44 TÀI LIỆU THAM KHẢO .45 MỤC LỤC HÌNH ẢNH Hình 1 Nhận diện hình ảnh Hình Quá trình xử lý ảnh Hình Các thành phần hệ thông xử lý ảnh Hình Những tác dụng việc sử dụng nhận dạng hình ảnh 18 Hình 2 Kiến trúc mạng YOLO 20 Hình Các layer mạng darknet-53 21 Hình Cách hoạt đợng của mạng YOLO 22 Hình Cơng thức ngõ 22 Hình Kiến trúc một output model YOLO 23 Hình Các feature maps mạng YOLOv3 24 Hình Xác định anchor box cho một vật thể 25 Hình Khi vật thể người xe trùng mid point thuộc một cell 26 Hình 10 Tính tốn Loss Function cho object: tam giác hình thoi 27 Hình 11 Công thức ước lượng bounding box từ anchor box 29 Hình 12 So sánh kích thước lưu trữ Model mẫu mã YOLOv5 31 Hình 13 So sánh đợ trễ trung bình giữa phiên bản YOLO(v3,v4,v5) 31 Hình 14 Cấu trúc nhận diện vật thể YOLOv5 .32 Hình 15 Rest API là gì? .33 Hình 16 Cách thức hoạt đợng Rest AIP .34 Hình Cài đặt python 38 Hình Thiết kế giao diện ứng dụng 38 Hình Giao diện thông tin chi tiết 39 Hình 3 Giao diện thông tin các loài 39 Hình Giao diện trang hính 39 Hình Giao diện quét vật 39 LỜI CẢM ƠN Trên thực tế khơng có thành cơng mà khơng gắn liền với hỗ trợ, giúp đỡ dù hay nhiều, dù trực tiếp hay gián tiếp người khác Trong suốt quãng thời gian từ bắt đầu học tập giảng đường Trường Đại học Công nghệ thông tin Truyền thông Việt Hàn - Đại học Đà Nẵng, nhận nhiều quan tâm, giúp đỡ thầy cô bạn Với lịng biết ơn sâu sắc nhất, nhóm chúng tơi xin gửi lời cảm ơn chân thành tới tồn thể thầy cô giáo khoa Công nghệ thông tin truyền thông Đại học Việt Hàn, người dạy dỗ truyền đạt vốn kiến thức vô q báu cho chúng tơi suốt quãng thời gian học Những tình cảm kiến thức mà thầy cô gửi trao cho hành trang cho để bước đoạn đường tương lai Nhóm chúng tơi xin gửi lời cảm ơn sâu sắc tới Thầy Trần Văn Đại, người tận tình hỗ trợ dẫn dắt nhóm chúng tơi suốt q trình thực đồ án để có kết cách tốt Một lần nhóm chúng tơi xin chân thành cảm ơn! LỜI NĨI ĐẦU Trí tuệ nhân tạo (AI) xu hướng phát triển có nhiều tiềm lĩnh vực công nghệ thông tin, nắm giữ vai trị chủ đạo dịng chảy cơng nghệ đại với nhiều ứng dụng lĩnh vực đời sống xã hội trợ lí ảo, nhà thông minh, xe tự lái, hệ thống nhận diện,… Nhận diện khuôn mặt một lĩnh vực nghiên cứu ngành thị giác máy tính, xem lĩnh vực nghiên cứu ngành sinh trắc học tương tự nhận dạng vân tay, hay nhận dạng mống mắt Nhận dạng hay nhận biết khả người loài vật, theo cách loài vật qua cảm nhận từ quan mắt, mũi, miệng, hành động nhìn nghe ngửi… cảm nhận đối tượng tiếp xúc với quen hay lạ Chính vậy, nói thể lồi vật hệ thống nhận dạng tối ưu Với phát triển khoa học công nghệ đặc biệt khoa học robot ngày mong ước tạo nhận dạng máy học có khả tương tự vượt trội hệ thống nhận dạng sinh học khát khao cháy bỏng nhà khoa học Một hệ thống nhân dạng đối tượng hệ thống nhận vào ảnh đoạn video (một chuỗi ảnh) Qua xử lý tính tốn hệ thống xác định vị trí đối tượng ảnh (nếu có) đối tượng số đối tượng hệ thống biết (qua trình học) đối tượng Yêu cầu đặt hệ thống nhận dạng đối tượng độ xác cao, hệ thống địi hỏi phải có đặc trưng tốt Hệ thống phải chọn đặc trưng để biểu diễn tốt thông tin đối tượng cần nhận dạng Đồng thời đặc trưng phải tính tốn nhanh để khơng làm chậm q trình nhận dạng Thêm vào hệ thống phải có phương pháp học hiệu quả, có khả nhận biết mẫu không làm tốt mẫu học Đồ án môn học gồm chương: Chương 1: Tổng quan đề tài Chương 2: Cơ sở lý thuyết Chương 3: Phân tích Chương 4: Đánh giá kết đạt hướng phát triển CHƯƠNG TỔNG QUAN VỀ ĐỀ TÀI 1.1 Giới thiệu đề tài Ngày nay, với tiến vượt bậc khoa học kỹ thuật nói chung, mơn khoa học xử lý ảnh thu thành tựu lớn lao chứng tỏ vai trị khơng thể thiếu với ứng dụng sâu rộng khoa học kỹ thuật đời sống xã hội Một phận khoa học xử lý ảnh lĩnh vực thị giác máy tính thu hút nhiều quan tâm nhà nghiên cứu xử lý ảnh với mục tiêu xây dựng nên giới hệ thống thị giác kỳ diệu người mơ hệ thống máy tính, đem lại khả cảm nhận thị giác cho hệ thống môi trường xung quanh Mơ ước hệ thống máy tính hồ nhập vào giới người với đầy đủ giác quan thị giác đóng vai trị quan trọng thực hoá với đóng góp nghiên cứu nhà khoa học phạm vi toàn giới 1.2 Lý chọn đề tài Trẻ em mầm non đất nước, đứa trẻ có quyền học tập vui chơi lành mạnh Nhưng để bé vừa chơi vừa học, vừa phát triển trí tuệ, cảm xúc thể chất ln mối bận tâm hàng đầu bậc phụ huynh Giai đoạn từ đến tuổi chương đời đứa trẻ lúc trưởng thành Đó giai đoạn bé nhìn giới với mắt đầy tị mị Trong đó, với nhịp sống ngày bận rộn, thời gian cha mẹ sát bên quan sát lại ít, độ phức tạp lượng kiến thức việc ni dạy trẻ lại tăng lên Trong vài năm trở lại đây, Object detection là một những đề tài rất hot của deep learning khả ứng dụng cao, dữ liệu dễ chuẩn bị và kết quả ứng dụng thì cực kì nhiều Các thuật toán của Object detection YOLO, SSD có tốc độ nhanh và độ chính xác cao nên giúp cho Object Detection co thể thực hiện được tác vụ dường là real time, chí là nhanh so với người mà độ chính xác không giảm Các mô hình trở nên nhẹ nên co thể hoạt động thiết bị IoT để tạo nên thiết bị thông minh Với những lý đó, nhóm đã suy nghĩ và muốn xây dựng một ứng dụng đa nền tảng kết hợp giữa việc học và chơi cho trẻ Nhằm thu hút trẻ tiếp cận những thông tin cần thiết, giúp bé tìm hiểu các thông tin về các loài động vật một cách hấp dẫn nhất Đây nơi bé học kiến thức thông qua game sống động, vui tươi, câu truyện thú vị hay video độc đáo Chính vì vậy, nhóm đã chọn đề tài “ Xây dựng ứng dụng bé yêu động vât” để thực hiện đờ án lần này 1.3 Mục đích đề tài Xây dựng phần mềm ứng dụng đa nền tảng nhận diện đợng vật Tìm hiểu số thư viện opencv, phần mềm visual studio code, flutter Tìm hiểu phương pháp nhận diện khn mặt( Face Detection) Tìm hiểu phương pháp xử lý ảnh Xây dựng một số trò chơi bản về động vật ứng dụng 1.4 Vấn đề cần giải Hệ thống nhận động vật ứng dụng máy tính tự động xác định nhận dạng người từ hình ảnh kỹ thuật số khung hình video từ nguồn video Một cách để thực điều so sánh đặc điểm khuôn mặt chọn trước từ hình ảnh sở liệu khuôn mặt Hệ thống thường sử dụng hệ thống an ninh so sánh với dạng sinh trắc học khác hệ thống nhận dạng vân tay hay tròng mắt Từ thu thập, phân tích tài liệu nhận dạng khn mặt, tìm hiểu phương pháp nhận dạng khuôn mặt, nghiên cứu công cụ xây dựng hệ thống 1.5 Đề xuất nội dung thực Hình 1 Nhận diện hình ảnh Đối với đề tài Tìm hiểu, nghiên cứu thực xây dựng hệ thống nhận diện các vật quen thuộc, giúp hỗ trợ trẻ em học hỏi tìm hiều thêm về đợng vật Việc hệ thống nhận dạng xác việc quan trọng Đối với đề tài này, chúng em thực Hình 11 Cơng thức ước lượng bounding box từ anchor box Hình chữ nhật nét đứt bên ngoài là anchor box có kích thước là (pw,ph) Tọa độ của một bounding box được xác định dựa đồng thời cả anchor box và cell mà nó tḥc về Điều này giúp kiểm sốt vị trí của bounding box dự đoán đâu đó quanh vị trí của cell và bounding box mà không vượt xa bên ngoài giới hạn này Do đó trình huấn luyện ổn định rất nhiều so với YOLOv1 Ngoài tọa độ được hiệu chỉnh theo width và height của bức ảnh nên có giá trị nằm ngưỡng [0, 1] Do đo áp dụng hàm sigmoid giúp ta giới hạn được tọa độ không vượt xa ngưỡng này Non-max suppression Do thuật toán YOLO dự báo rất nhiều bounding box một bức ảnh nên đối với những cell có vị trí gần nhau, khả khung hình bị overlap là rất cao Trong trường hợp đo YOLO cần đến non-max suppression để giảm bớt số lượng khung hình được sinh một cách đáng kể Các bước của non-max suppression: • Bước 1: Đầu tiên chúng ta tìm cách giảm bớt số lượng bounding box cách lọc bỏ toàn bộ những bounding box có xác suất chứa vật thể nhỏ một ngưỡng threshold nào đó, thường là 0.5 • Bước 2: Đối với bouding box giao nhau, non-max suppression lựa chọn một bounding box có xác xuất chứa vật thể là lớn nhất Sau đó tính tốn số giao thoa IoU với bounding box cịn lại Nếu sớ này lớn ngưỡng threshold thì điều đó chứng tỏ bounding boxes overlap rất cao Ta xóa bounding có xác xuất thấp và giữ lại bouding box có xác xuất cao nhất Cuối cùng, ta thu được một bounding box nhất cho một vật thể 30 2.2.8 Thuật toán sử dụng YOLOv5 YOLOv5 là một bản cải tiến mang tính mở rộng theo một cách tự nhiên của YOLOv3 PyTorch tác giả Glenn Jocher Kho lưu trữ YOLOv3 PyTorch là điểm đến phổ biến cho nhà phát triển để chuyển trọng số YOLOv3 Darknet sang PyTorch và sau đó chuyển sang sản xuất Những cải tiến này ban đầu được gọi là YOLOv4 việc phát hành gần của YOLOv4 khuôn khổ Darknet, để tránh xung đột phiên bản, nó được đổi tên thành YOLOv5 Thuật toán YOLOv5 về bản thừa kế phương pháp bản của YOLO, nhiên YOLOv5 áp dụng một số thuật tóan phát hiện vật thể nhanh, tối ưu hóa phép tóan thực hiện song song giúp tăng tốc độ nhận diện và giảm thời gian huấn luyện một cách tối ưu a) Phân loại YOLOv5 Có mô hình khác nhau: YOLOv5s, YOLOv5m, YOLOv5l, YOLOv5x Đầu tiên là nhỏ nhất và chính xác nhất, cuối là lớn nhất với độ chính xác lớn nhất Tất cả mô hình đều chạy PyTorch Về hiệu năng: YOLOv5 nhỏ và thường dễ sử dụng sản xuất Đó nó được triển khai nguyên bản PyTorch (chứ không phải Darknet), việc sửa đổi kiến trúc và rất đơn giản việc xuất sang nhiều môi trường triển khai khác Hình 12 So sánh kích thước lưu trữ Model mẫu mã YOLOv5 Về tốc độ: YOLOv5 thực hiện suy luận hàng loạt khoảng 140 FPS theo mặc định Về độ chính xác: YOLOv5 gần chính xác YOLOv4 tác vụ nhỏ (0,895 mAP so với 0,892 mAP BCCD) Trên tác vụ lớn COCO, YOLOv4 hoạt đợng hiệu quả 31 Hình 13 So sánh độ trễ trung bình giữa phiên bản YOLO(v3,v4,v5) b) Cấu trúc của YOLOv5 việc nhận diện vật thể (Object Detection) Bao gồm phần chính: - Backbone: Backbone là mô hình pre-train của mô hình học chuyển (transfer learning) khác để học đặc trưng và vị trí của vật thể Các mô hình học chuyển thường là VGG16, ResNet-50, - Head: Phần head được sử dụng để tăng khả phân biệt đặc trưng để dự đoán class và bounding-box Ở phần head có thể áp dụng tầng hoặc tầng: Tầng 1: Dense Prediction, dự đốn toàn bợ hình với mơ hình RPN, YOLO, SSD, Tầng 2: Sparse Prediction dự đoán với mảng được dự đốn có vật thể với mơ hình R-CNN series, Neck: Ở phần giữa Backbone và Head, thường có thêm một phần Neck Neck thường được dùng để làm giàu thông tin cách kết hợp thông tin giữa trình bottom-up và trình top-down (do có một số thông tin nhỏ qua trình bottom-up bị mất mát nên trình top-down không tái tạo lại được) 32 Hình 14 Cấu trúc nhận diện vật thể YOLOv5 c) Những cai tiến của YOLOv5 so với các phiên ban trước YOLOv5 được triển khai PyTorch ban đầu nên no được hưởng lợi từ hệ sinh thái PyTorch được thiết lập: hỗ trợ đơn giản và triển khai dễ dàng Hơn nữa, là một khung nghiên cứu được biết đến rộng rãi hơn, việc lặp lại YOLOv5 có thể dễ dàng cho cộng đồng nghiên cứu rộng lớn Điều này làm cho việc triển khai đến thiết bị di động đơn giản vì mô hình có thể được biên dịch sang ONNX và CoreML một cách dễ dàng Khả đào tạo khả suy luận rất là nhanh, độ chính xác cao Cuối YOLOv5 có dung lượng nhỏ YOLOv5 rất nhỏ Cụ thể, một tệp trọng số cho YOLOv5 là 27 megabyte Trong đo một tệp trọng số của cho YOLOv4 (với kiến trúc Darknet) là 244 megabyte YOLOv5 nhỏ gần 90% so với YOLOv4 Điều này có nghĩa là YOLOv5 có thể được triển khai cho thiết bị nhúng dễ dàng nhiều 2.3 Tìm hiểu về Rest API 2.3.1 REST API gì? Trong lập trình web nói chung lập trình ứng dụng nói riêng nguyên lý REST cấu trúc liệu RESTful coi biết đến rộng rãi Trên thực tế REST phương thức dùng để tạo API với nguyên lý tổ chức định Nhờ có ngun lý mà lập trình viên tạo mơi trường xử lý API request tồn diện REST API thực tế tiêu chuẩn sử dụng việc thiết kế API khác cho ứng dụng web (hay gọi web services) để tạo thuận tiện cho việc quản lý nguồn tài nguyên – resource Tiêu chuẩn trọng vào tài nguyên hệ 33 thống kể đến tệp văn bản, âm thanh, video hay liệu động khác Đặc biệt bao gồm nguồn tài nguyên có trạng thái định dạng truyền tải qua HTTP Để hiểu rõ REST API bạn hiểu thành phần tiêu chuẩn Đây tập bao gồm quy tắc chế mà dựa điều ứng dụng hay thành phần tương tác với ứng dụng hay thành phần khác Điều mà API đem lại việc trả liệu mà bạn cần sử dụng cho ứng dụng loại hay kiểu liệu phổ biến nhất, JSON hay XML,… Hình 15 Rest API là gì? REST có ý nghĩa REpresentational State Transfer, biết đến dạng chuyển đổi cấu trúc liệu kiểu cấu trúc dùng để viết API Kiểu kiến trúc sử dụng phương thức HTTP đơn giản để tạo giao tiếp máy Do đó, để xử lý số thơng tin người dùng REST gửi yêu cầu HTTP (có thể GET, POST, DELETE,…) đến URL thực trình xử lý liệu Gộp lại RESTful API tiêu chuẩn sử dụng việc thiết kế API dùng ứng dụng web để quản lý resource Và dễ dàng nhận thấy REStful kiểu thiết kế API sử dụng cách phổ biến ứng dụng khác thực việc giao tiếp với 34 2.3.2 Chức REST API gì? Một điều bạn cần nhớ chức quan trọng REST việc quy định cách sử dụng HTTP method cách định dạng URL cho ứng dụng web cụ thể để thực việc quản lý nguồn Thêm vào đó, RESTful khơng quy định logic code khơng giới hạn ngơn ngữ lập trình ứng dụng Vì mà ngơn ngữ hay framework sử dụng để thiết kế RESTful API Có thể nói, API điều quan trọng khơng thể thiếu hay có điều phải bàn cãi ứng dụng ngày Bạn hiểu ứng dụng khơng có API máy tính khơng có kết nối Internet Và theo thời gian, thứ dần phát triển theo kế hoạch, lối mịn cụ thể hình thành nên chuẩn mực chung áp dụng vấn đề tương tự Với API RESTful 2.3.3 Quy trình hoạt động REST API gì? Đóng vai trò quan trọng ứng dụng web nên việc tìm hiểu nắm bắt thơng tin REST API điều cần thiết với lập trình viên nói chung Vậy, REST API hoạt động nào? Hay quy trình hoạt động RESTful API sao? Việc hiểu nguyên lý hoạt động vấn đề tiến đề giúp bạn hiểu rõ chất vấn đề Hình 16 Cách thức hoạt động Rest AIP Hoạt động chủ yếu REST việc dựa giao thức HTTP Với hoạt động sử dụng giao thức HTTP khác nhau, nhắc đến như: 35 GET (Select): Sẽ thực việc trả lại liệu resource hay danh sách resource POST (Create): Thực việc tạo resource PUT (Update): Thực việc cập nhật thông tin cho resource DELETE: Thực việc xóa resource theo yêu cầu Những phương thức, hoạt động lập trình thường gọi với tên CRUD Cái tên viết tắt từ mà bao gồm đó, Create, Read, Update Delete Dịch sang tiếng Việt có ý nghĩa tạo, đọc, sửa xóa Hiện nay, trình viết RESTful API đa số lập trình viên lựa chọn JSON format thức Tuy nhiên, bạn lựa chọn XML không Miễn bạn cảm thấy tiện, nhanh phù hợp với cách Trong trình hoạt động RESTful API, bạn cần lưu ý đến số vấn đề như: a) Authentication cấu trúc liệu trả về: Khác với cấu trúc khác RESTful API khơng sử dụng cookie session request đưa ra, thay vào sử dụng access_token để thay Tùy vào ứng dụng hoạt động lập trình viên trả cấu trúc tương tự, list user sử dụng hệ thống b) Status Code Khi thực request API ta nhận được.một vài status code dùng để nhận biết sau: 200 OK – Trả thành công cho phương thức GET, PUT, PATCH DELETE 201 Created – Trả Resouce vừa tạo thành công 204 No Content – Trả Resource xố thành cơng 304 Not Modified – Client sử dụng liệu cache 400 Bad Request – Request không hợp lệ 401 Unauthorized – Request cần có auth 403 Forbidden – bị từ chối không cho phép 404 Not Found – Khơng tìm thấy resource từ URI 405 Method Not Allowed – Phương thức không cho phép với user 36 410 Gone – Resource khơng cịn tồn tại, Version cũ khơng cịn hỗ trợ 415 Unsupported Media Type – Không hỗ trợ kiểu Resource 422 Unprocessable Entity – Dữ liệu không xác thực 429 Too Many Requests – Request bị từ chối bị giới hạn Trong Ruby on Rails sử dụng symbol status code chữ số integer c) Sử dụng version Việc sử dụng version điều cần thiết Khi bạn thực hiện.việc thiết kế API cho app IOS hay client side thì.nên đặt version cho API Tại lại vậy? Bởi điều giúp cho hệ thống sau.khi nâng cấp lên version hỗ.trợ API version cũ Bên cạnh việc bảo trì,.sửa chữa thực cách dễ dàng d) API Document Có thể nói việc viết API document điều cần thiết, nhiên,.một API document lại tốn thời gian Thực tế, API document phần có tính chất, chức tương.tự Unit Test, có nghĩa lấy ngắn để ni dài sau Trong q trình viết hay chăm sóc API document cần phải.thực cách kỹ Bởi khơng maintain hay spec có thay đổi có thể.gây hậu ảnh hưởng nghiêm trọng Vì vậy, bạn cần nắm bắt số lưu ý việc viết API document sau: Viết mô tả đầy đủ params request: cần thể đủ thơng tin.u cầu có params viết,.các loại data type, require hay optional liên quan Cần đưa ví dụ HTTP requests responses với data chuẩn Thực việc cập nhật document cách thường xuyên Điều nhằm mục đích cho document có.thể sát với API có thay đổi Đặc biệt format, cú pháp sử dụng cần phải rõ ràng, quán với Việc mơ tả phải xác thể rõ chi tiết cách 37 CHƯƠNG TRIỂN KHAI VÀ DEMO SẢN PHẨM 3.1 Cài đặt môi trường 3.1.1 Python Visual studio Đầu tiên cần cài đặt python 3.7.2, phiên ổn định python phát hành vào ngày 24/12/2018(Dec 24, 2018) Hình Cài đặt python 3.1.2 Thiết kế giao diện bằng Figma Hình Thiết kế giao diện ứng dụng 38 3.1.3 Giao diện sản phẩm Hình 3 Giao diện trang hính Hình Giao diện thông tin các loài Hình Giao diện quét vật Hình Giao diện thông tin chi tiết 39 CHƯƠNG ĐÁNH GIÁ KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 4.1 Đánh giá kết quả đạt được: Do trình độ có hạn thời gian đầu tư cho đề tài chưa nhiều nên đề tài đạt kết sau: - Trình bày báo cáo cách khoa học có hệ thống kiến thức hiểu biết thân, có tham khảo tài liệu vấn đề có liên quan đến nội dung tìm hiểu, nghiên cứu - Trong thời gian làm đờ án đề tài hồn thiện thêm kiến thức học trường suốt học kì - Tăng khả tư logic, nghiên cứu độc lập vấn đề mà trước chúng em không quan tâm - Trau dồi kinh nghiệm quý giá trình thiết kế, làm quen sử dụng các mô hình mạng - Tạo ứng dụng nhận diện động vật * Nhận xét báo cáo + Ưu điểm: • Đã cố gắng trình bày báo cáo cách khoa học có hệ thống kiến thức hiểu biết thân, có tham khảo tài liệu vấn đề có liên quan đến nội dung tìm hiểu, nghiên cứu • Cố gắng bám sát đề cương làm theo hướng dẫn TS Trần Văn Đại báo cáo làm thời gian ngắn nên khơng thể tránh khỏi sai sót, mong đóng góp ý kiến thầy để báo cáo hồn thiện + Nhược điểm: • Chưa thử nghiệm mạng diện rộng • Chưa thử nghiệm hệ điều hành khác • Báo cáo chưa giải trọn vẹn vấn đề phát sinh trình xử lý 40 • Bài báo cáo chưa đạt tính thẩm mỹ cao, phong cách hành văn lủng củng, cịn nhiều vấn đề chưa xác cần khắc phục trình phát triển, nâng cấp phần mềm giai đoạn sau * Thu hoạch cho thân - Về nhận thức: Trong thời gian làm đồ án đề tài hoàn thiện thêm kiến thức học trường suốt học kì Báo cáo giúp chúng em tăng khả tư logic, nghiên cứu độc lập vấn đề mà trước chúng em không quan tâm - Trau dồi kinh nghiệm quý giá trình thiết kế, làm quen sử dụng các mô hình mạng 4.2 Hướng phát triển đề tài: Đây tốn có nhiều tiềm trình hội nhập, để phát triển thành hệ thống hồn chỉnh đưa ứng dụng vào thực tế cách rộng rãi chương trình cần: • Nâng cấp hệ thống để áp dụng mạng diện rộng nhiều hệ điều hành khác • Thiết kế giao diện chương trình mang tính chun nghiệp • Phần mềm ứng dụng áp dụng cho hầu hết doanh nghiệp không doanh nghiệp vừa nhỏ 4.3 Kết luận Với kiến thức học trường, tham khảo tài liệu chuyên ngành với nỗ lực thân giúp đỡ, hướng dẫn nhiệt tình TS Trần Văn Đại, chúng em tìm hiểu xây dựng ứng dụng bé yêu động vật với tính nhận diện các vật thơng qua chụp ảnh Chương trình chưa phải sản phẩm phần mềm hồn hảo góp phần thể hướng nghiên cứu cho ngành công nghệ thông tin Rất mong nhận đánh giá, góp ý q thầy giáo bạn để chương trình ngày hồn thiện Một lần chúng em xin chân thành cảm ơn! 41 42 TÀI LIỆU THAM KHẢO [1] Deep Learning Face Representation by Joint Identification-Verification - Yi Sun, Xiaogang Wang, Xiaoou Tang [2] Machine Learning For Absolute Beginners: A Plain English Introduction Oliver Theobald [3] Python for Data Analysis: Data Wrangling with Pandas, NumPy, and Python Wes McKinney [4] RESTful Web APIs: Services for a Changing World - Sam Ruby, Leonard Richardson [5] Hands-On RESTful Python Web Services: Develop RESTful Web Services Or APIs with Modern Python 3.7, 2nd Edition - C Hillar Gastn 43 44 ... ĐỒ ÁN CHUYÊN NGÀNH ĐỀ TÀI: PHÁT TRIỂN ỨNG DỤNG BÉ YÊU ĐỘNG VẬT Sinh viên thực : Nguyễn Duy Sỹ Nguyễn Thị Nguyệt Minh Lớp: 18 IT5 + 18 IT2 GVHD: TS Trần Văn Đại Đà Nẵng, tháng... .10 1. 6 .1 Xử lý ảnh gì? 10 1. 6.2 Các trình xử lý ảnh 10 1. 6.3 Những vấn đề hệ thống xử lý ảnh 12 1. 7 Giới thiệu python 15 1. 8 Giới thiệu thư viện 16 1. 8 .1. .. viện 16 1. 8 .1 Tổ chức thư viện OpenCV 17 1. 8.2 Hàm cho số chức cụ thể .18 1. 9 Tìm hiểu về Flutter 19 1. 9 .1 Ngơn ngữ DART gì? 19 1. 9.2 Những thành phần