LỜI NÓI ĐẦUTrí tuệ nhân tạo AI đang là xu hướng phát triển có nhiều tiềm năng trong lĩnh vựccông nghệ thông tin, nắm giữ vai trò chủ đạo trong dòng chảy công nghệ hiện đại vớinhiều
TỔNG QUAN VỀ ĐỀ TÀI
Lý do chọn đề tài
Trẻ em là mầm non của đất nước, mỗi đứa trẻ đều có quyền được học tập và vui chơi lành mạnh, đồng thời phát triển toàn diện về trí tuệ, cảm xúc và thể chất Giai đoạn từ 0 đến 6 tuổi là thời kỳ quan trọng trong sự hình thành nhân cách và tương lai của trẻ, khi trẻ bắt đầu nhìn thế giới bằng con mắt đầy tò mò và sợ hãi Trong bối cảnh cuộc sống ngày càng bận rộn, thời gian cha mẹ dành để quan sát và gần gũi trẻ cũng giảm đi, trong khi đó, kiến thức và các phương pháp chăm sóc trẻ ngày càng phong phú và phức tạp hơn, đặt ra những thách thức lớn trong việc giúp trẻ vừa chơi vừa học để phát triển toàn diện.
Trong những năm gần đây, Object detection đã trở thành một chủ đề nóng trong lĩnh vực Deep Learning nhờ khả năng ứng dụng rộng rãi, dữ liệu dễ chuẩn bị và kết quả mang lại đa dạng Các thuật toán mới như YOLO và SSD nổi bật với tốc độ xử lý nhanh, độ chính xác cao, cho phép thực hiện các tác vụ gần như trong thời gian thực, thậm chí nhanh hơn cả con người mà vẫn duy trì độ chính xác Đồng thời, các mô hình này ngày càng trở nên nhẹ hơn, giúp chúng có thể hoạt động trên các thiết bị IoT, mở ra khả năng phát triển các thiết bị thông minh, tối ưu hóa trải nghiệm người dùng.
Nhóm đã quyết định phát triển một ứng dụng đa nền tảng kết hợp giữa học và chơi để giúp trẻ tiếp cận thông tin về các loài động vật một cách hấp dẫn và dễ tiếp thu Ứng dụng cung cấp các trò chơi sinh động, câu chuyện thú vị và video độc đáo nhằm giúp trẻ học kiến thức cơ bản một cách vui vẻ và hiệu quả Chính vì lý do nà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.
Mục đích của đề tài
Xây dựng một phần mềm ứng dụng đa nền tảng nhận diện động vật.
Tìm hiểu về một số thư viện như opencv, phần mềm visual studio code, flutter.
Tìm hiểu các phương pháp nhận diện khuôn mặt( Face Detection).
Tìm hiểu về các phương pháp xử lý ảnh.
Xây dựng một số trò chơi cơ bản về động vật trong ứng dụng
1.4 Vấn đề cần giải quyết
Hệ thống nhận dạng động vật là ứng dụng máy tính tự động xác định hoặc nhận dạng động vật từ hình ảnh kỹ thuật số hoặc video Phương pháp phổ biến là so sánh đặc điểm khuôn mặt hoặc đặc điểm riêng biệt của động vật với dữ liệu trong cơ sở dữ liệu để xác định chính xác Công nghệ này giúp nâng cao hiệu quả trong việc theo dõi và phân loại các loài động vật trong các lĩnh vực như bảo tồn, nghiên cứu và quản lý động vật hoang dã.
Hệ thống này thường được sử dụng trong các hệ thống an ninh để nâng cao mức độ bảo vệ Nó có thể được so sánh với các dạng sinh trắc học khác như hệ thống nhận dạng vân tay hoặc tròng mắt, mang lại tính chính xác và đáng tin cậy cao.
Chúng tôi tiến hành thu thập và phân tích các tài liệu về nhận dạng khuôn mặt để hiểu rõ các phương pháp nhận dạng phổ biến hiện nay Đồng thời, chúng tôi nghiên cứu các công cụ xây dựng hệ thống nhận dạng khuôn mặt nhằm nâng cao độ chính xác và hiệu quả của các ứng dụng trong thực tế Các bước này giúp phát triển các giải pháp công nghệ tiên tiến, phù hợp với yêu cầu của thị trường và xu hướng phát triển của lĩnh vực nhận dạng hình ảnh.
1.5 Đề xuất nội dung thực hiện
Dưới đây là các câu chính giúp xây dựng một đoạn văn rõ ràng và tối ưu hóa SEO dựa trên nội dung ban đầu:Hệ thống nhận diện các con vật quen thuộc là công cụ hỗ trợ trẻ em học hỏi và khám phá thế giới động vật Việc đảm bảo hệ thống có khả năng nhận dạng chính xác các loài vật là yếu tố vô cùng quan trọng Đề tài này tập trung vào việc nghiên cứu và phát triển hệ thống nhận diện dựa trên công nghệ Deep Learning, giúp nâng cao hiệu quả trong việc phân biệt các loài động vật phổ biến Việc ứng dụng công nghệ Deep Learning trong nhận diện hình ảnh đã mang lại khả năng nhận dạng nhanh chóng và chính xác hơn, góp phần thúc đẩy giáo dục và giáo dục trẻ em về thế giới tự nhiên.
“Nhận dạng động vật nhanh chóng và chính xác” và xây dựng trên đa nền tảng.
Với hệ thống này, chúng em sẽ sử dụng các thư viện được cung cấp bởi PIP trong python và sử dụng Visual Studio Code để lập trình.
1.6 Tổng quan về xử lý ảnh
1.6.1 Xử lý ảnh là gì?
Xử lý ảnh (XLA) là lĩnh vực nghiên cứu trong thị giác máy, nhằm biến đổi hình ảnh ban đầu thành các hình ảnh mới với các đặc tính mong muốn của người dùng Quá trình này bao gồm phân tích và phân lớp các đối tượng trong hình, nâng cao chất lượng hình ảnh, phân đoạn và tách cạnh, cũng như gán nhãn cho các vùng khác nhau Xử lý ảnh còn bao gồm biên dịch thông tin hình ảnh để phục vụ các ứng dụng đa dạng trong công nghiệp và nghiên cứu.
Xử lý ảnh số là một lĩnh vực của tin học ứng dụng, liên quan đến việc biến đổi và mã hóa các ảnh tự nhiên nhằm truyền tải thông tin hiệu quả Các ảnh nhân tạo được xem như là cấu trúc dữ liệu được tạo ra bởi các chương trình, phục vụ cho các mục đích đa dạng như phân tích, lưu trữ hoặc xử lý hình ảnh Các phương pháp và kỹ thuật xử lý ảnh giúp nâng cao chất lượng hình ảnh, tối ưu hóa dữ liệu và hỗ trợ các ứng dụng trong công nghiệp, y tế và truyền thông Mục tiêu của xử lý ảnh là truyền tải thông tin chính xác, giảm nhiễu và tăng cường khả năng nhận biết của hệ thống.
Biến đổi ảnh làm tăng chất lượng ảnh.
Tự động nhận dạng ảnh, đoán nhận ảnh, đánh giá các nội dung của ảnh.
Nhận biết và đánh giá nội dung của ảnh là quá trình phân tích hình ảnh thành các phần có ý nghĩa nhằm phân biệt đối tượng trong ảnh với các đối tượng khác Quá trình này giúp mô tả cấu trúc của hình ảnh ban đầu, từ đó cung cấp cơ sở để hiểu rõ hơn về nội dung bên trong Các phương pháp nhận dạng cơ bản bao gồm nhận dạng đối tượng trong ảnh, tách cạnh và phân đoạn hình ảnh, đóng vai trò quan trọng trong lĩnh vực xử lý hình ảnh.
Kỹ thuật này được dùng nhiều trong y học (xử lý tế bào, nhiễm sắc thể), nhận dạng chữ trong văn bản.
1.6.2 Các quá trình của xử lý ảnh
Hình 1 2 Quá trình xử lý ảnh
Hệ thống xử lý hình ảnh bắt đầu với phần thu nhận ảnh, trong đó ảnh có thể được lấy từ camera màu hoặc đen trắng Thông thường, ảnh từ camera là ảnh tương tự, sử dụng loại camera ống chuẩn CCIR với tần số 1/25 và mỗi ảnh gồm 25 dòng Ngoài ra, cũng có loại camera đã được số hóa như CCD (Charge Coupled Device), loại photodiode tạo cường độ sáng tại mỗi điểm ảnh để đảm bảo độ chính xác cao trong quá trình xử lý hình ảnh.
Camera thông thường là loại quét dòng, tạo ra hình ảnh hai chiều Chất lượng của một ảnh thu nhận phụ thuộc vào thiết bị quét, điều kiện môi trường như ánh sáng và phong cảnh Tiết diện quá trình tiền xử lý ảnh (Image Processing) cũng đóng vai trò quan trọng trong việc nâng cao chất lượng hình ảnh cần thiết cho các ứng dụng công nghiệp và nghiên cứu.
Sau bộ thu nhận, ảnh thường có độ tương phản thấp, do đó cần sử dụng bộ tiền xử lý để nâng cao chất lượng ảnh Chức năng chính của bộ tiền xử lý là lọc nhiễu và tăng độ tương phản để làm ảnh rõ nét và chân thực hơn Quá trình phân đoạn (Segmentation) hay phân vùng ảnh cũng là bước quan trọng trong quá trình xử lý ảnh, giúp phân chia hình ảnh thành các vùng có đặc điểm đồng nhất nhằm phục vụ các phân tích tiếp theo.
Phân vùng ảnh là quá trình tách một ảnh đầu vào thành các vùng thành phần để biểu diễn, phân tích và nhận dạng Ví dụ, để nhận dạng chữ hoặc mã vạch trên phong bì thư nhằm phân loại bưu phẩm, cần chia các phần như địa chỉ hoặc tên người thành các từ, chữ, số hoặc vạch riêng biệt Đây là bước phức tạp và dễ gây lỗi, ảnh hưởng lớn đến độ chính xác của kết quả nhận dạng Kết quả nhận dạng ảnh phụ thuộc nhiều vào quá trình phân vùng này Biểu diễn ảnh sau phân vùng bao gồm các điểm ảnh của vùng đã phân vùng và mã liên kết các vùng lân cận, phục vụ cho các bước xử lý tiếp theo Việc chọn các đặc tính thể hiện ảnh, hay còn gọi là trích xuất đặc trưng, rất quan trọng để xác định các tính chất của ảnh dưới dạng thông tin định lượng, giúp phân biệt các lớp đối tượng trong ảnh Cuối cùng, nhận dạng và nội suy ảnh là các bước giúp phân tích và diễn giải nội dung hình ảnh một cách chính xác và hiệu quả.
Nhận dạng ảnh là quá trình xác định nội dung của hình ảnh, thường dựa trên việc so sánh với mẫu chuẩn đã được học hoặc lưu trữ trước đó Quá trình nội suy liên quan đến việc đưa ra dự đoán dựa trên nhận dạng đã thực hiện Có nhiều phương pháp phân loại ảnh khác nhau, dựa trên các mô hình toán học về ảnh Theo lý thuyết nhận dạng, các mô hình này được chia thành hai loại chính: các mô hình nhận dạng ảnh cơ bản và nâng cao, giúp xác định chính xác nội dung hình ảnh trong các ứng dụng khác nhau.
Nhận dạng theo tham số.
Nhận dạng theo cấu trúc.
Hiện nay, các đối tượng nhận dạng phổ biến trong khoa học và công nghệ gồm nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn bản (Text), nhận dạng vân tay, nhận dạng mã vạch và nhận dạng khuôn mặt người Các công nghệ này đóng vai trò quan trọng trong việc cải thiện bảo mật, tự động hóa và xử lý thông tin chính xác, nhanh chóng Ngoài ra, cơ sở tri thức (Knowledge Base) là yếu tố then chốt giúp tích hợp và phân tích dữ liệu hiệu quả, hỗ trợ hệ thống trí tuệ nhân tạo ra quyết định chính xác hơn.
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
1.6.3 Những vấn đề cơ bản trong hệ thống xử lý ảnh a) Điểm ảnh (Picture Element)
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
Mức xám của điểm ảnh: là cường độ sáng của nó được gán bằng giá trị số của nó tại điểm đó
Tổng quan về xử lý ảnh
1.6.1 Xử lý ảnh là gì?
502 Bad GatewayUnable to reach the origin service The service may be down or it may not be responding to traffic from cloudflared
Xử lý ảnh số là một lĩnh vực của tin học ứng dụng, liên quan đến việc biến đổi và mã hoá các hình ảnh tự nhiên để truyền tải thông tin hiệu quả Các ảnh nhân tạo được xem như là cấu trúc dữ liệu, được tạo ra bởi các chương trình máy tính Mục tiêu của xử lý ảnh số bao gồm sử dụng các phương pháp và kỹ thuật để biến đổi hình ảnh, nâng cao chất lượng và tối ưu hoá việc truyền tải dữ liệu hình ảnh trong các ứng dụng khác nhau.
Biến đổi ảnh làm tăng chất lượng ảnh.
Tự động nhận dạng ảnh, đoán nhận ảnh, đánh giá các nội dung của ảnh.
Nhận biết và đánh giá nội dung của ảnh là quá trình phân tích hình ảnh thành các phần có ý nghĩa nhằm phân biệt đối tượng này với đối tượng khác Quá trình này giúp mô tả cấu trúc của hình ảnh ban đầu một cách chính xác Các phương pháp nhận dạng cơ bản bao gồm nhận dạng đối tượng trong ảnh, tách cạnh và phân đoạn hình ảnh, góp phần nâng cao khả năng phân tích và hiểu biết hình ảnh một cách hiệu quả.
Kỹ thuật này được dùng nhiều trong y học (xử lý tế bào, nhiễm sắc thể), nhận dạng chữ trong văn bản.
1.6.2 Các quá trình của xử lý ảnh
Hình 1 2 Quá trình xử lý ảnh
Hệ thống gồm các thành phần chính như phần thu nhận ảnh (Image Acquisition), trong đó ảnh có thể được nhận qua camera màu hoặc đen trắng, phổ biến nhất là camera tương tự chuẩn CCIR với tần số 1/25 và mỗi ảnh gồm 25 dòng Ngoài ra, còn có loại camera đã số hoá, như camera CCD (Charge Coupled Device), sử dụng các photodiode để tạo cường độ sáng tại từng điểm ảnh, đảm bảo chất lượng hình ảnh chính xác và rõ nét.
Camera thường sử dụng loại quét dòng để tạo ra ảnh hai chiều, trong đó chất lượng hình ảnh phụ thuộc vào thiết bị thu và yếu tố môi trường như ánh sáng và phong cảnh Quá trình tiền xử lý (Image Processing) đóng vai trò quan trọng trong việc cải thiện chất lượng hình ảnh, giúp tối ưu hoá các yếu tố đã thu nhận được từ môi trường và thiết bị.
Sau bộ thu nhận, ảnh có thể có độ tương phản thấp, gây giảm chất lượng hình ảnh, do đó cần sử dụng bộ tiền xử lý để nâng cao chất lượng hình ảnh Chức năng chính của bộ tiền xử lý là lọc nhiễu và tăng độ tương phản, giúp ảnh rõ nét và sắc sảo hơn Quá trình phân đoạn (Segmentation) hay phân vùng ảnh đóng vai trò quan trọng trong việc xác định các đối tượng chính để xử lý hình ảnh hiệu quả hơn.
Phân vùng ảnh là quá trình tách một ảnh đầu vào thành các vùng thành phần để biểu diễn phân tích và nhận dạng ảnh, ví dụ như phân chia chữ hoặc mã vạch trên phong bì thư thành các thành phần riêng biệt để xác định mục đích phân loại Đây là bước phức tạp và dễ gây lỗi nhất trong xử lý ảnh, ảnh hưởng lớn đến độ chính xác của kết quả nhận dạng Kết quả sau phân vùng thể hiện dưới dạng các điểm ảnh của các vùng đã phân đoạn kèm mã liên kết với các vùng lân cận, giúp biến đổi dữ liệu thành dạng phù hợp cho xử lý tiếp theo của máy tính Việc lựa chọn đặc trưng ảnh phù hợp, còn gọi là trích xuất đặc điểm, là bước quan trọng để tách các thuộc tính của ảnh thành dạng định lượng hoặc làm cơ sở phân biệt các lớp đối tượng khác nhau trong quá trình nhận dạng và nội suy ảnh.
Nhận dạng ảnh là quá trình xác định nội dung của hình ảnh dựa trên việc so sánh với các mẫu chuẩn đã được học hoặc lưu trữ trước đó Quá trình nội suy liên quan đến việc đưa ra phán đoán dựa trên kết quả nhận dạng này để hiểu ý nghĩa của ảnh Có nhiều cách phân loại ảnh khác nhau dựa trên các tiêu chí khác nhau, nhằm mục đích phân biệt và xử lý hình ảnh hiệu quả hơn Theo lý thuyết về nhận dạng ảnh, các mô hình toán học về ảnh được chia thành hai loại chính, phản ánh các phương pháp nhận dạng ảnh cơ bản và đa dạng trong thực tiễn.
Nhận dạng theo tham số.
Nhận dạng theo cấu trúc.
Hiện nay, các đối tượng nhận dạng phổ biến trong lĩnh vực khoa học và công nghệ bao gồm nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn bản (Text), nhận dạng vân tay, nhận dạng mã vạch và nhận dạng khuôn mặt người Các công nghệ này giúp cải thiện tính chính xác và hiệu quả trong xử lý dữ liệu, đồng thời đóng vai trò quan trọng trong các hệ thống an ninh và quản lý thông tin Ngoài ra, cơ sở tri thức (Knowledge Base) đóng vai trò then chốt trong việc lưu trữ và truy xuất dữ liệu để hỗ trợ các hệ thống nhận dạng hoạt động chính xác hơn.
Ảnh là một đối tượng phức tạp với nhiều đặc điểm như đường nét, độ sáng tối và dung lượng điểm ảnh, phản ánh môi trường chụp phong phú Trong quá trình xử lý và phân tích ảnh, ngoài việc áp dụng các phương pháp toán học đơn giản để đảm bảo tiện lợi, người ta còn mong muốn mô phỏng quy trình tiếp nhận và xử lý ảnh theo cách của con người Hiện nay, nhiều bước xử lý đã được thực hiện dựa trên các phương pháp trí tuệ nhân tạo, qua đó các cơ sở tri thức đóng vai trò quan trọng trong việc nâng cao hiệu quả phân tích và xử lý ảnh.
1.6.3 Những vấn đề cơ bản trong hệ thống xử lý ảnh a) Điểm ảnh (Picture Element)
Ảnh tự nhiên (ảnh gốc) là ảnh liên tục về không gian và độ sáng, nhưng để xử lý bằng máy tính cần phải số hoá Quá trình số hoá biến đổi ảnh liên tục thành tập điểm phù hợp với ảnh thật về vị trí và mức xám, sao cho mắt người không phân biệt ranh giới giữa chúng Mỗi điểm này gọi là điểm ảnh (Pixel), tương ứng với cặp tọa độ (x, y) trong ảnh hai chiều Điểm ảnh là phần tử của ảnh số tại tọa độ (x, y) với mức xám hoặc màu nhất định, và kích thước cùng khoảng cách giữa các điểm ảnh được chọn sao cho tạo cảm giác liên tục về không gian và màu sắc Trong ma trận ảnh, mỗi phần tử được gọi là phần tử ảnh, thể hiện mức xám của ảnh số.
Mức xám của điểm ảnh: là cường độ sáng của nó được gán bằng giá trị số của nó tại điểm đó
Điểm ảnh (pixel) là đơn vị cấu thành của ảnh số, tại tọa độ (x, y) với độ xám hoặc màu sắc nhất định Kích thước và khoảng cách giữa các điểm ảnh được chọn lựa phù hợp để tạo cảm giác liên tục về không gian và mức xám hoặc màu sắc chân thực, gần giống ảnh thật Mỗi phần tử trong ma trận ảnh chính là một điểm ảnh, góp phần tạo nên hình ảnh số hoàn chỉnh.
Độ phân giải của ảnh thể hiện mật độ điểm ảnh được xác định trên một hình ảnh số, đóng vai trò quan trọng trong việc đảm bảo chất lượng hình ảnh Khoảng cách giữa các điểm ảnh cần được chọn một cách chính xác để mắt người không nhận thấy các khoảng trống, giúp duy trì sự liên tục và tự nhiên của hình ảnh Việc lựa chọn khoảng cách phù hợp tạo ra một mật độ phân bố điểm ảnh tối ưu, phản ánh độ phân giải và được phân bố đều theo trục x và y trong không gian hai chiều.
Các thang giá trị mức sáng thông thường gồm các mức 16, 32, 64, 128 và 256, trong đó mức 256 là mức phổ biến nhất Điều này xuất phát từ lý do kỹ thuật máy tính sử dụng 1 byte (8 bit) để biểu diễn mức xám, với khả năng phản ánh 2^8 (256) mức xám từ 0 đến 255.
Ảnh đen trắng: là ảnh có hai màu đen, trắng (không chứa màu khác) với mức xám ở các điểm ảnh có thể khác nhau
Ảnh nhị phân là loại ảnh chỉ gồm hai mức đen trắng rõ ràng, được mô tả bằng 1 bit cho mỗi điểm ảnh Mỗi điểm ảnh trong ảnh nhị phân chỉ có thể có giá trị là 0 hoặc 1, giúp đơn giản hóa quá trình xử lý hình ảnh Với định dạng này, ảnh nhị phân thường được sử dụng trong các ứng dụng yêu cầu độ phân biệt cao giữa các vùng rõ ràng như nhận diện ký tự hoặc xử lý hình ảnh cơ bản.
Tìm hiểu về Flutter
Flutter là framework UI mã nguồn mở hoàn toàn miễn phí, được phát triển bởi Google từ giữa năm 2017 Điểm nổi bật của Flutter là khả năng cho phép người dùng tạo ra ứng dụng di động gốc (native app) chỉ với một mã nguồn duy nhất, giúp tiết kiệm thời gian và công sức trong quá trình phát triển Với Flutter, bạn chỉ cần sử dụng một ngôn ngữ lập trình duy nhất là Dart để xây dựng hai ứng dụng chạy trên hai nền tảng Android và iOS, đảm bảo hiệu suất cao và trải nghiệm người dùng mượt mà.
1.9.1 Ngôn ngữ DART là gì?
Ngôn ngữ Dart là ngôn ngữ hướng đối tượng hiện đại do Google phát triển và chính thức công bố vào năm 2011 Dart được thiết kế nhằm cung cấp một ngôn ngữ lập trình tối ưu hơn cho người lập trình viên, với khả năng hỗ trợ đa nền tảng, phù hợp cho các dự án ứng dụng đa dạng.
Năm 2018, Dart bị trang Codementor.io xếp vào danh sách các ngôn ngữ không nên học Tuy nhiên, nhờ nỗ lực của đội ngũ phát triển, Dart nhanh chóng trở thành một trong những ngôn ngữ được quan tâm và sử dụng phổ biến nhất Sự phát triển của Dart đã giúp cặp đôi Flutter/Dart trở nên nổi bật và gây ấn tượng mạnh trên thị trường Dart hỗ trợ tối đa trong việc lập trình, đặc biệt khi tích hợp tốt với các phần mềm như Android Studio và Visual Studio Code.
Dart là một ngôn ngữ lập trình hỗ trợ rất tốt cho phát triển Front-end, giúp các nhà phát triển xây dựng giao diện người dùng một cách dễ dàng và hiệu quả Ngoài ra, Dart còn được sử dụng để thiết kế các ứng dụng di động và web, mang lại hiệu suất cao và trải nghiệm người dùng mượt mà Với khả năng linh hoạt và mạnh mẽ, Dart là lựa chọn hàng đầu cho phát triển đa nền tảng, giúp tối ưu hóa quá trình xây dựng ứng dụng và tăng cường trải nghiệm người dùng.
1.9.2 Những thành phần chính trong Flutter
Flutter có 2 thành phần quan trọng nhất bao gồm:
A widget-based UI framework is a collection of customizable UI components that can be tailored to meet your specific needs These components are reusable, enabling efficient development and consistent design across your application By leveraging this framework, you can streamline your user interface creation process while ensuring flexibility and scalability.
SDK (Software Development Kit) là bộ công cụ hỗ trợ phát triển ứng dụng dễ dàng và hiệu quả hơn Nó bao gồm các công cụ cần thiết để tạo ra các ứng dụng mạnh mẽ, đồng thời có khả năng chuyển đổi mã nguồn thành codebase để phát triển đa nền tảng, phù hợp cho cả Android và iOS.
1.9.3 Những tính năng của Flutter
Dù chỉ mới phát triển gần đây, nhưng Flutter và Dart có rất nhiều những tính năng vượt trội hơn cả đàn anh như:
Khả năng hỗ trợ UI trên nhiều nền tảng khác nhau
Flutter đã là một react framework
Ngôn ngữ Dart cực kỳ đơn giản, dễ hiểu và dễ học
Hỗ trợ xây dựng giao diện đẹp lung linh và cực kỳ linh hoạt
Giúp bạn có thể phát triển ứng rất nhanh
Hiệu năng của ứng sẽ trở nên vượt trội
1.9.4 Ưu và nhược điểm của Flutter Ưu điểm của Flutter
Khả năng giao tiếp gần như trực tiếp với hệ thống
Ngôn ngữ có cú pháp hiện đại và trình biên dịch linh động
Khả năng vượt trội về hiệu suất cũng như hiệu ứng cho ứng dụng rất cao
Bạn có thể tạo ra một phiên bản giả lập thiết bị di động ngay trên nền tảng web giúp việc phát triển ứng dụng dễ dàng hơn.
Các bộ công cụ hỗ trợ đo lường hiệu suất giúp các coder kiểm soát, đánh giá và khắc phục các lỗi về hiệu suất của ứng dụng.
Flutter không phải là một ngôn ngữ “thần thánh” có thể đạt đến trình độ không thể chê, dù được Google tập trung nguồn lực phát triển Tuy nhiên, Flutter vẫn gặp phải một số nhược điểm cần xem xét khi sử dụng.
Nếu bạn muốn phát triển ứng dụng bằng Flutter, bạn cần học thêm ngôn ngữ lập trình Dart Mặc dù Dart là một ngôn ngữ dễ học, nhưng nó chưa linh hoạt và đa dạng như các ngôn ngữ phổ biến khác như Python hoặc JavaScript, đòi hỏi người dùng có thể thích nghi và làm quen với cú pháp và năng lực của ngôn ngữ này.
Mặc dù Flutter là "con cưng" của Google và nhận được sự chú trọng phát triển, nhưng các phần mềm hoặc dịch vụ mang lại ít lợi nhuận như Google+, Hangout hay Angular thường bị Google bỏ rơi hoặc không tiếp tục đầu tư phát triển.
Sử dụng mô hình dữ liệu mới như DART Streaming hay Bloc Pattern, những mô hình dữ liệu này sẽ làm bạn tốn thêm thời gian tìm hiểu.
Bộ UI được phát triển riêng biệt với hệ điều hành giúp đảm bảo tính nhất quán trong trải nghiệm người dùng trên các phiên bản khác nhau Điều này có nghĩa là, mặc dù ứng dụng được tạo ra trên các nền tảng khác nhau, nhưng chúng vẫn giữ được sự giống nhau về giao diện và chức năng Sự tách biệt này giúp tối ưu hóa khả năng tương thích và nâng cao hiệu quả cho việc phát triển ứng dụng đa nền tảng.
Bộ Render UI được phát triển lại hoàn toàn mới, không liên quan đến giao diện người dùng sẵn có của Framework native, dẫn đến việc tiêu thụ lượng bộ nhớ rất lớn Việc này ảnh hưởng đến hiệu suất của ứng dụng và yêu cầu tối ưu hóa để giảm thiểu tiêu thụ tài nguyên Để nâng cao trải nghiệm người dùng, cần xem xét cải tiến trong quá trình xây dựng Render UI nhằm giảm bớt gánh nặng bộ nhớ và tối ưu hóa hiệu quả vận hành.
CHƯƠNG 2 TÌM HIỂU VÀ PHÂN TÍCH THUẬT TOÁN
2.1 Công nghệ nhận diện và xử lí hình ảnh
2.1.1 Công nghệ nhận diện hình ảnh là gì?
Công nghệ nhận dạng và xử lý hình ảnh là một trong những ứng dụng rộng rãi trong nhiều ngành công nghiệp hiện nay, giúp nâng cao hiệu quả và chất lượng sản phẩm Nhiều công ty lớn và tập đoàn công nghệ đã tích cực ứng dụng công nghệ hình ảnh để phát triển các thiết bị hiện đại và tiên tiến Sử dụng công nghệ nhận dạng hình ảnh góp phần tối ưu hóa quy trình sản xuất, nâng cao độ chính xác và giảm thiểu sai sót trong các sản phẩm Đây là xu hướng công nghệ đang ngày càng phát triển mạnh mẽ, mở ra nhiều cơ hội mới trong các ngành công nghiệp khác nhau.
Công nghệ nhận dạng hình ảnh, còn gọi là thị giác máy tính, là kỹ thuật nhằm tự động hóa các công việc mà hệ thống thị giác của con người có thể thực hiện Hiện nay, có nhiều định nghĩa khác nhau về công nghệ này, nhưng đều tập trung vào việc phát triển các phương pháp giúp máy móc nhận biết và xử lý hình ảnh một cách chính xác và hiệu quả.
Trong cuộc sống hiện nay, có rất nhiều ứng dụng công nghệ tiên tiến như TensorFlow của Google, DeepFace của Facebook và dự án Oxford của Microsoft Các chương trình này đều sử dụng hệ thống nhận dạng hình ảnh dựa trên học sâu, mang lại hiệu quả vượt mong đợi trong nhiều lĩnh vực.
Các API nhận diện hình ảnh phổ biến như Google Cloud Vision, Clarifai, Imagga hiện lưu trữ dữ liệu giúp các doanh nghiệp tiết kiệm chi phí và nâng cao hiệu quả hoạt động kinh doanh Ưu điểm lớn của dịch vụ mã nguồn mở nhận diện hình ảnh là khả năng tích hợp dễ dàng vào hệ thống nội bộ mà không gặp phải vấn đề về bản quyền hay sự cố Ngoài ra, các API này không chỉ giúp nhận dạng hình ảnh trên đám mây mà còn mở ra cơ hội phát triển doanh nghiệp mới trong lĩnh vực nhận diện hình ảnh, mang lại lợi ích vượt trội về chi phí và hiệu quả vận hành.
2.1.2 Mục đích chính của việc sử dụng công nghệ hình ảnh