Ứng dụng Django Rest Framework trong tập luyện và dinh dưỡng

MỤC LỤC

Django Rest Framework

Django REST framework là một bộ công cụ mạnh mẽ và linh hoạt để xây dựng các API web. ● Web browsable API là một ưu điểm lớn về tính sử dụng cho các nhà phát triển. ● Tùy chỉnh linh hoạt - chỉ cần sử dụng các chế độ xem dựa trên hàm thông thường nếu bạn không cần những tính năng mạnh mẽ hơn.

● Được sử dụng và tin cậy bởi các công ty được công nhận quốc tế bao gồm Mozilla, Red Hat, Heroku và Eventbrite.

MongoDB

Document lại với nhau, và có thể thực hiện nhiều phép toán đa dạng trên dữ liệu đã được nhóm đó để trả về một kết quả duy nhất. ● Lưu trữ file: MongoDB được dùng như một hệ thống file tận dụng những function trên và hoạt động như một cách phân phối qua sharding. ● Dữ liệu lưu trữ phi cấu trúc, không có tính ràng buộc, toàn vẹn nên tính sẵn sàng cao, hiệu suất lớn và dễ dàng mở rộng lưu trữ.

● Dữ liệu được caching (ghi đệm) lên RAM, hạn chế truy cập vào ổ cứng nên tốc độ đọc và ghi cao. ● Không ứng dụng được cho các mô hình giao dịch nào có yêu cầu độ chính xác cao do không có ràng buộc. ● Không có cơ chế transaction (giao dịch) để phục vụ các ứng dụng ngân hàng.

● Dữ liệu lấy RAM làm trọng tâm hoạt động vì vậy khi hoạt động yêu cầu một bộ nhớ RAM lớn. ● Mọi thay đổi về dữ liệu mặc định đều chưa được ghi xuống ổ cứng ngay lập tức vì vậy khả năng bị mất dữ liệu từ nguyên nhân mất điện đột xuất là rất cao.

Yolo

Ngoài ra, YOLO đạt được hơn gấp đôi Độ chính xác Trung bình (mAP) so với các hệ thống thời gian thực khác, làm cho nó trở thành một ứng viên xuất sắc cho xử lý thời gian thực. YOLO đã có một bước tiến nhỏ so với các phiên bản trước bằng cách cung cấp một tổng thể tốt hơn cho các lĩnh vực mới, điều này làm cho nó trở thành lựa chọn tuyệt vời cho các ứng dụng dựa vào việc nhận diện đối tượng một cách nhanh chóng và mạnh mẽ. Bước đầu tiên này bắt đầu bằng cách chia ảnh gốc (A) thành lưới ô hình vuông NxN có hình dạng đồng đều, trong đó N trong trường hợp của chúng ta là 4 như được hiển thị trên hình ảnh bên phải.

YOLO xác định các thuộc tính của các hộp giới hạn này bằng cách sử dụng một mô-đun hồi quy duy nhất theo định dạng sau, trong đó Y là biểu diễn vectơ cuối cùng cho mỗi hộp giới hạn. Việc đặt ngưỡng cho IOU không phải lúc nào cũng đủ vì một đối tượng có thể có nhiều hộp có IOU vượt quá ngưỡng và việc để lại tất cả các hộp đó có thể gây ra nhiễu. YOLOv8 là phiên bản mới nhất của thuật toán YOLO, vượt trội hơn các phiên bản trước đó bằng cách giới thiệu các sửa đổi khác nhau như mô-đun chú ý không gian, hợp nhất tính năng và tổng hợp ngữ cảnh.

Những cải tiến này dẫn đến việc phát hiện đối tượng nhanh hơn và chính xác hơn, khiến YOLOv8 trở thành một trong những thuật toán phát hiện đối tượng quan trọng trong lĩnh vực này. ● Tăng Cường Độ Chính Xác: YOLOv8 nâng cao độ chính xác trong việc nhận diện đối tượng so với các phiên bản trước thông qua việc tích hợp các kỹ thuật và tối ưu hóa mới. ● Huấn Luyện Linh Hoạt: YOLOv8 sử dụng huấn luyện linh hoạt để tối ưu hóa tỷ lệ học và cân bằng hàm mất mát trong quá trình huấn luyện, từ đó cải thiện hiệu suất của mô hình.

● Tăng Cường Dữ Liệu: YOLOv8 sử dụng các kỹ thuật tăng cường dữ liệu tiên tiến như MixUp và CutMix để cải thiện tính đồng nhất và tổng quát của mô hình. ● Kiến Trúc Có Thể Tùy Chỉnh: Kiến trúc của YOLOv8 có tính tùy chỉnh cao, cho phép người dùng dễ dàng điều chỉnh cấu trúc và các tham số của mô hình phù hợp với nhu cầu cụ thể của họ. ● Mô Hình Đã Được Huấn Luyện Trước: YOLOv8 cung cấp các mô hình đã được huấn luyện sẵn để sử dụng dễ dàng và có thể chuyển giao cho nhiều bộ dữ liệu khác nhau.

● Xe tự lái: YOLOv8 có thể được sử dụng để phát hiện vật thể theo thời gian thực trong xe tự lỏi nhằm phỏt hiện và theo dừi cỏc phương tiện khỏc, người đi bộ và tớn hiệu giao thông. ● Hình ảnh y tế: YOLOv8 có thể được sử dụng trong hình ảnh y tế để phát hiện và phân loại các dị thường và bệnh khác nhau, chẳng hạn như ung thư, khối u và gãy xương. Lúc chúng ta phát triển ứng dụng trên môi trường phát triển và mục tiêu cuối cùng của chúng ta là release sản phẩm, mục tiêu của chúng ta là sản phẩm chạy tốt trên môi trường production.

Nhưng có 1 vấn đề nảy sinh là môi trường phát triển thực sự khác với môi trường thử nghiệm (testing) và thực sự khác với môi trường production, khi đó chúng ta lấy gì đảm bảo rằng code chúng ta chạy tốt trên môi trường dev thì cũng chạy tốt trên môi trường testing và cũng sẽ chạy tốt trên production?. ● Bằng cách tận dụng các phương pháp của Docker để vận chuyển, thử nghiệm và triển khai code một cách nhanh chóng, bạn có thể làm giảm đáng kể sự chậm trễ giữa việc viết code và chạy nó trong môi trường thực tế.

Hình phù hợp nhất cho trường hợp sử dụng cụ thể của họ.
Hình phù hợp nhất cho trường hợp sử dụng cụ thể của họ.

Appium

Appium on Android

Điều này được Appium sử dụng để thực hiện các tương tác trên thiết bị hoặc trình mô phỏng Android được kết nối. Các lệnh kiểm tra do người dùng viết sẽ được chuyển đổi bởi các thư viện trên client. Sau đó, chúng được gửi đến server Appium dưới dạng đối tượng JSON thông qua Mobile JSON wire protocol.

Bây giờ, máy chủ Appium, sử dụng WebDriver, gửi các yêu cầu này đến thiết bị hoặc trình mô phỏng Android vật lý (Emulator) được kết nối. Trong thiết bị, Bootstrap.jar nhận các lệnh này từ tệp APK và chuyển đổi chúng bằng UI Automator framework. Một lần nữa, những phản hồi này được gửi lại cho client, client có thể hiển thị hoặc sử dụng chúng theo bất kỳ cách nào.

Appium sử dụng framework XCUITest để thực hiện các tương tác trên thiết bị hoặc máy mô phỏng iOS đang kết nối. Các lệnh kiểm thử được người dùng viết được chuyển đổi bởi các thư viện client ở tầng dưới. Sau đó, chúng được gửi đến máy chủ Appium dưới dạng đối tượng JSON thông qua giao thức mobile JSON wire.

Bây giờ, máy chủ Appium, sử dụng WebDriver, gửi các yêu cầu này đến thiết bị iOS hoặc máy mô phỏng đang kết nối. Trên thiết bị, ứng dụng WebDriverAgent.app nhận các lệnh này từ tệp IPA và chuyển đổi chúng bằng framework XCUITest. Sau khi chuyển đổi, các bài kiểm tra này - thường là các tương tác - được chạy trên thiết bị.

Lần nữa, các phản hồi này được gửi trở lại cho client, người có thể hiển thị chúng hoặc sử dụng chúng theo bất kỳ cách nào.