1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Mô hình nhận dạng đối tượng sử dụng huskylens hỗ trợ cho người khiếm thị

77 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Mô Hình Nhận Dạng Đối Tượng Sử Dụng HuskyLens Hỗ Trợ Cho Người Khiếm Thị
Tác giả Huỳnh Hữu Khương, Lâm Hoài Sơn
Người hướng dẫn TS. Phạm Văn Khoa
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Công Nghệ Kỹ Thuật Điện Tử - Viễn Thông
Thể loại Đồ Án Tốt Nghiệp
Năm xuất bản 2023
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 77
Dung lượng 8,82 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI (14)
    • 1.1. Giới thiệu (14)
    • 1.2. Mục tiêu đề tài (14)
    • 1.3. Tổng quan tình hình nghiên cứu (14)
      • 1.3.1. Tình hình nghiên cứu ngoài nước (14)
      • 1.3.2. Tình hình nghiên cứu trong nước (15)
    • 1.4. Phạm vi nghiên cứu (15)
    • 1.5. Phương pháp nghiên cứu (15)
    • 1.6. Bố cục đề tài (15)
  • CHƯƠNG 2: CƠ SỞ LÝ THUYẾT (16)
    • 2.1. Tổng quan về AI và ứng dụng AI (17)
    • 2.2. Tổng quan về khiếm thị (17)
    • 2.3. Tổng quan về nhận dạng đối tượng (18)
      • 2.3.1. Khái niệm (18)
      • 2.3.2. Kỹ thuật nhận dạng đối tượng (18)
    • 2.4. Tổng quan về thuật toán KNN (21)
    • 2.5. Tổng quan về tập đối tượng sử dụng (22)
    • 2.6. Linh kiện được sử dụng (23)
      • 2.6.1. Arduino Nano (23)
      • 2.6.2. Mạch phát âm thanh DF Player Mini (26)
      • 2.6.3. Loa (28)
      • 2.6.4. Camera AI HuskyLens (28)
    • 2.7. Chuẩn giao tiếp I2C (34)
      • 2.7.1. Giới thiệu (34)
      • 2.7.2. Cách hoạt động của I2C (35)
    • 2.8. Chuẩn giao tiếp UART (35)
      • 2.8.1. Giới thiệu (35)
      • 2.8.2. Cách hoạt động của UART (36)
  • CHƯƠNG 3: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG (16)
    • 3.1. Giới thiệu (38)
      • 3.1.1. Yêu cầu của hệ thống (38)
      • 3.1.2. Sơ đồ khối (38)
      • 3.1.3. Hoạt động của hệ thống (39)
    • 3.2. Thiết kế hệ thống phần cứng (39)
      • 3.2.1. Camera HuskyLens (39)
      • 3.2.2. Khối nút nhấn (39)
      • 3.2.3. DF Player Mini (40)
      • 3.2.4. Loa (40)
      • 3.2.5. Arduino Nano (41)
      • 3.2.6. Khối nguồn (42)
    • 3.3. Thi công hệ thống (42)
      • 3.3.1. Giới thiệu (42)
      • 3.3.2. Lắp ráp và kiểm tra (43)
      • 3.3.3. Đóng gói và thi công mô hình (43)
      • 3.3.4. Nâng cấp firmware cho camera HuskyLens (44)
      • 3.3.5. Quá trình HuskyLens học và nhận diện đối tượng (45)
      • 3.3.6. Quá trình lấy tệp và thiết lập âm thanh thoại (49)
      • 3.3.7. Lập trình hệ thống (51)
  • CHƯƠNG 4: KẾT QUẢ (16)
    • 4.1. Nhận diện tập đối tượng trái cây (56)
      • 4.1.1. Lượng dữ liệu cần cho mỗi đối tượng trái cây (56)
      • 4.1.2. Nhận xét và đánh giá tập đối tượng trái cây (60)
    • 4.2. Nhận diện tập đối tượng đồ dùng học tập (60)
      • 4.2.1. Lượng dữ liệu cần cho mỗi đồ dùng học tập (61)
      • 4.2.2. Nhận xét và đánh giá tập đối tượng đồ dùng học tập (64)
    • 4.3. Nhận diện tập đối tượng đồ dùng hằng ngày (66)
      • 4.3.1. Lượng dữ liệu cần cho mỗi đồ dùng hằng ngày (66)
      • 4.3.2. Nhận xét và đánh giá tập đối tượng đồ dùng hằng ngày (69)
  • CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (16)
    • 5.1. Kết luận (72)
      • 5.1.1. Ưu điểm (72)
      • 5.1.2. Nhược điểm (72)
    • 5.2. Hướng phát triển (73)
  • TÀI LIỆU THAM KHẢO (74)
  • PHỤ LỤC (75)

Nội dung

CƠ SỞ LÝ THUYẾT

Tổng quan về AI và ứng dụng AI

Trí tuệ nhân tạo (AI) là công nghệ cho phép máy tính, robot và phần mềm hoạt động một cách thông minh, tương tự như cách con người suy nghĩ Theo thông tin từ tutorialspoint, AI được phát triển dựa trên nghiên cứu về cách não bộ con người hoạt động, học hỏi, quyết định và giải quyết vấn đề Mục tiêu của AI là tạo ra trí thông minh tương tự trong máy móc, phục vụ cho nhiều ứng dụng trong cuộc sống hàng ngày Hiện nay, AI đã trở thành một phần quan trọng trong nhiều lĩnh vực khác nhau.

AI đóng vai trò quan trọng trong các trò chơi chiến lược như cờ vua, nơi mà máy tính có khả năng phân tích và đưa ra quyết định dựa trên một lượng lớn các vị trí khả thi thông qua kiến thức heuristic.

- Xử lý ngôn ngữ tự nhiên - Có thể tương tác với máy tính hiểu ngôn ngữ tự nhiên do con người nói

Hệ thống chuyên gia là một ứng dụng tích hợp giữa máy móc, phần mềm và thông tin đặc biệt, nhằm truyền đạt lý luận và tư vấn cho người dùng Những hệ thống này cung cấp giải thích và lời khuyên giá trị, giúp người dùng đưa ra quyết định thông minh hơn.

Hệ thống thị giác máy tính giúp nhận diện và phân tích thông tin trực quan, cho phép các ứng dụng như nhận diện khuôn mặt trong công tác của cảnh sát, giúp xác định tội phạm thông qua hình ảnh được lưu trữ từ camera.

Nhận dạng giọng nói là công nghệ cho phép các hệ thống thông minh nghe và hiểu ngôn ngữ mà con người sử dụng khi giao tiếp Các hệ thống này có khả năng phân tích câu và ý nghĩa, mang lại trải nghiệm tương tác tự nhiên hơn cho người dùng.

Nó có thể xử lý các trọng âm khác nhau, từ lóng, tiếng ồn trong nền,…

Phần mềm nhận dạng chữ viết tay cho phép đọc và chuyển đổi văn bản được viết trên giấy bằng bút hoặc trên màn hình bằng bút stylus Công nghệ này nhận diện hình dạng của các chữ cái và biến chúng thành văn bản có thể chỉnh sửa, mang lại sự tiện lợi trong việc xử lý thông tin.

Robot thông minh là những thiết bị có khả năng thực hiện nhiệm vụ theo chỉ dẫn của con người Chúng được trang bị cảm biến để thu thập dữ liệu từ môi trường như ánh sáng, nhiệt độ, chuyển động, âm thanh, va chạm và áp suất Với bộ vi xử lý mạnh mẽ, nhiều cảm biến và bộ nhớ lớn, robot có thể thể hiện trí thông minh của mình Đặc biệt, robot còn có khả năng học hỏi từ những sai lầm và thích nghi với các môi trường mới.

Tổng quan về khiếm thị

Trong cuộc sống hiện đại, nhiều người gặp phải các vấn đề về thị giác, như không nhìn thấy rõ vật ở xa hoặc khó khăn trong việc đọc chữ in nhỏ Những vấn đề này thường được khắc phục dễ dàng bằng kính đeo mắt Tuy nhiên, khi mắt hoặc não bị tổn thương, có thể dẫn đến mất thị lực nghiêm trọng hoặc hoàn toàn, và trong những trường hợp này, thị lực không thể được phục hồi hoàn toàn thông qua điều trị y tế, phẫu thuật hoặc kính điều chỉnh như kính cận và kính áp tròng.

Khiếm thị đề cập đến mọi dạng mất thị lực, từ những người hoàn toàn không nhìn thấy đến những người chỉ bị mất một phần Một số cá nhân có thể bị mù hoàn toàn, trong khi nhiều người khác chỉ được xác định là mù pháp lý.

Sức ảnh hưởng của việc nhận dạng đối tượng đến người khiếm thị là rất lớn Việc nhận diện các đối tượng trong cuộc sống giúp người khiếm thị hiểu rõ hơn về thế giới xung quanh, mặc dù họ không thể nhìn thấy.

Tổng quan về nhận dạng đối tượng

Nhận dạng đối tượng là kỹ thuật thị giác máy tính nhằm xác định các đối tượng trong hình ảnh hoặc video Đây là đầu ra chính của thuật toán học máy và học sâu Con người có khả năng dễ dàng nhận ra con người, đồ vật, cảnh và các chi tiết trong hình ảnh, do đó mục tiêu của nhận dạng đối tượng là dạy máy tính đạt được mức độ hiểu biết tương tự về nội dung hình ảnh.

Hình 2 1: Sử dụng nhận dạng đối tượng để xác định các loại đối tượng khác nhau 2.3.2 Kỹ thuật nhận dạng đối tượng

Gần đây, học máy và học sâu đã trở thành những phương pháp phổ biến trong nhận dạng đối tượng Cả hai kỹ thuật này đều nhằm mục tiêu xác định các đối tượng trong hình ảnh, tuy nhiên, chúng có những cách tiếp cận và thực hiện khác nhau.

Hình 2 2: Kỹ thuật học máy và học sâu để nhận dạng đối tượng

 Nhận dạng đối tượng bằng học sâu

Mô hình học sâu, như mạng thần kinh tích chập (CNN), tự động tìm hiểu các đặc điểm của đối tượng để xác định chúng Chẳng hạn, CNN có khả năng phân biệt mèo và chó bằng cách phân tích hàng nghìn hình ảnh huấn luyện, từ đó nhận diện các đặc điểm khác biệt giữa hai loài này.

Có hai cách tiếp cận để thực hiện nhận dạng đối tượng bằng học sâu:

Đào tạo một mô hình từ đầu đòi hỏi thu thập một tập dữ liệu có nhãn lớn và thiết kế kiến trúc mạng phù hợp để nhận diện các tính năng Phương pháp này cần một lượng lớn dữ liệu huấn luyện và yêu cầu thiết lập các lớp cũng như trọng số trong mạng nơ-ron tích chập (CNN).

Sử dụng mô hình học sâu đã được đào tạo trước là một phương pháp hiệu quả trong các ứng dụng học sâu, thường được thực hiện thông qua quá trình học chuyển đổi Bắt đầu với các mạng hiện có như AlexNet hoặc GoogLeNet, chúng ta có thể tinh chỉnh mô hình bằng cách cung cấp dữ liệu mới với các lớp chưa biết Phương pháp này không chỉ tiết kiệm thời gian mà còn mang lại kết quả nhanh chóng, nhờ vào việc mô hình đã được đào tạo trên hàng triệu hình ảnh trước đó.

Học sâu mang lại mức độ chính xác cao nhưng cần một lượng lớn dữ liệu để đưa ra dự đoán chính xác

Hình 2 3: Ứng dụng học sâu hiển thị nhận dạng đối tượng của thức ăn nhà hàng

 Nhận dạng đối tượng bằng học máy

Các kỹ thuật học máy ngày càng được ưa chuộng trong việc nhận dạng đối tượng và mang đến những phương pháp khác biệt so với học sâu Một số ví dụ điển hình về kỹ thuật học máy bao gồm:

+ Trích xuất tính năng HOG với mô hình học máy SVM

+ Các mô hình túi từ với các tính năng như SURF và MSER

+ Thuật toán Viola-Jones, có thể được sử dụng để nhận dạng nhiều đối tượng, bao gồm khuôn mặt và phần thân trên

Để thực hiện nhận dạng đối tượng bằng phương pháp học máy tiêu chuẩn, cần có bộ sưu tập hình ảnh hoặc video và lựa chọn các tính năng liên quan trong từng hình ảnh Thuật toán trích xuất tính năng sẽ giúp xác định các đặc điểm như cạnh hoặc góc, từ đó phân biệt các lớp trong dữ liệu.

Mô hình máy học được cải tiến với các tính năng mới, cho phép phân tách chúng thành các danh mục riêng biệt Thông tin này sẽ được sử dụng để phân tích và phân loại các đối tượng mới Nhiều thuật toán máy học và phương pháp trích xuất tính năng có thể được áp dụng, mang lại nhiều cách kết hợp nhằm tạo ra mô hình nhận dạng đối tượng chính xác hơn.

Hình 2 4: Quy trình học máy để nhận dạng đối tượng

 So sánh học máy và học sâu

Sử dụng máy học trong nhận dạng đối tượng cung cấp sự linh hoạt trong việc lựa chọn kết hợp tối ưu giữa các tính năng và bộ phân loại Phương pháp này có khả năng đạt được độ chính xác cao ngay cả khi chỉ có dữ liệu tối thiểu.

Việc chọn phương pháp nhận dạng đối tượng tối ưu phụ thuộc vào ứng dụng và vấn đề cụ thể cần giải quyết Học máy thường là một kỹ thuật hiệu quả trong nhiều trường hợp, đặc biệt khi chúng ta xác định được các đặc điểm hoặc tính năng quan trọng của hình ảnh để phân loại các lớp đối tượng một cách chính xác.

Khi lựa chọn giữa học máy và học sâu, cần xem xét liệu bạn có GPU mạnh và nhiều hình ảnh đào tạo được gắn nhãn hay không Nếu thiếu một trong hai yếu tố này, học máy có thể là lựa chọn hợp lý hơn Học sâu thường hiệu quả hơn với số lượng hình ảnh lớn, trong khi GPU giúp rút ngắn thời gian đào tạo mô hình.

Hình 2 5: Các yếu tố chính để lựa chọn giữa học sâu và học máy

 Các kỹ thuật nhận dạng đối tượng khác

Các kỹ thuật nhận diện đối tượng cơ bản khác để nhận dạng đối tượng tùy thuộc vào ứng dụng:

+ So khớp mẫu – sử dụng một hình ảnh nhỏ hoặc mẫu để tìm các vùng phù hợp trong một hình ảnh lớn hơn

+ Phân đoạn hình ảnh và phân tích đốm màu – sử dụng các thuộc tính đối tượng đơn giản, chẳng hạn như kích thước, màu sắc hoặc hình dạng

Tổng quan về thuật toán KNN

K-Nearest Neighbors (KNN) là một thuật toán học máy có giám sát (supervised learning) có thể được sử dụng trong cả phân loại (classification) và hồi quy (regression)

KNN hoạt động dựa trên nguyên lý rằng giá trị của một điểm dữ liệu được xác định bởi các điểm dữ liệu xung quanh Theo thông tin từ trang web của Nguyen (2021), phương pháp này sử dụng khoảng cách giữa các điểm để phân loại hoặc dự đoán giá trị.

KNN, hay K-Nearest Neighbors, có thể được hiểu đơn giản qua ví dụ về mối quan hệ bạn bè Khi ta có một người bạn rất thân và dành nhiều thời gian bên nhau, ta sẽ phát triển sở thích và trải nghiệm tương đồng, tương ứng với KNN với K = 1 Ngược lại, nếu ta thường xuyên đi chơi với một nhóm 5 người, mỗi cá nhân trong nhóm sẽ ảnh hưởng đến hành vi của ta, khiến ta trở thành trung bình của 5 người đó, tương ứng với KNN với K = 5.

Bộ phân loại KNN xác định lớp của một điểm dữ liệu dựa trên nguyên tắc biểu quyết đa số Khi K được thiết lập là 5, các lớp của 5 điểm gần nhất sẽ được xem xét để đưa ra quyết định.

Dự đoán lớp dữ liệu dựa vào số lượng lớp chiếm ưu thế trong 5 điểm gần nhất, trong khi hồi quy KNN lấy giá trị trung bình của 5 điểm này Để xác định các điểm dữ liệu gần nhau, cần đo khoảng cách giữa chúng, và có nhiều phương pháp để thực hiện điều này Theo thông tin từ javaTpoint, phép đo khoảng cách Euclid là một trong những phương pháp phổ biến nhất Khoảng cách Euclid giữa hai điểm trong không gian 2 chiều được tính bằng công thức: d = √((x2 − x1)² + (y2 − y1)²).

Hình 2 6: Cách tính khoảng cách Euclid Ưu điểm của thuật toán KNN:

+ Đơn giản và dễ giải thích

+ Không dựa trên bất kỳ giả định nào, vì thế nó có thể được sử dụng trong các bài toán phi tuyến tính

+ Hoạt động tốt trong trường hợp phân loại với nhiều lớp

+ Sử dụng được trong cả phân loại và hồi quy

Nhược điểm của thuật toán KNN:

+ Trở nên rất chậm khi số lượng điểm dữ liệu tăng lên vì mô hình cần lưu trữ tất cả các điểm dữ liệu

+ Nhạy cảm với các dữ liệu bất thường (nhiễu)

Tổng quan về tập đối tượng sử dụng

Dựa trên các yếu tố nhỏ gọn và dễ cầm nắm cho người khiếm thị, nhóm thực hiện đề tài đã tiến hành lựa chọn các đối tượng và phân chia thành ba tập đối tượng khác nhau.

- Trái cây: lê, xoài, mận, cam, măng cụt, na, dâu, táo, ớt

- Đồ dùng học tập: bút bi, bút chì, thước kẻ, gọt bút chì, cục tẩy, cục phấn, bút sáp màu, cây kéo, bút xóa, comba

- Đồ dùng sinh hoạt hằng ngày: cái chén, cái muỗng, đôi đũa, cái lược, bót đánh răng, dao bếp, dao cạo râu, cái ly, đồng hồ, mắt kính.

Linh kiện được sử dụng

Hiện nay, thị trường có đa dạng các loại bo mạch Arduino, nhưng tất cả đều có một đặc điểm chung là có khả năng lập trình thông qua Arduino IDE.

Các loại bo mạch khác nhau xuất phát từ các yêu cầu cung cấp điện, tùy chọn kết nối và ứng dụng cụ thể của chúng Bo mạch Arduino có nhiều kích cỡ, hình thức và chân I/O khác nhau Một số bo mạch Arduino phổ biến bao gồm Arduino Uno R3, Arduino Mega 2560 Rev3 và Arduino Nano Các bo mạch này thường được ứng dụng trong lĩnh vực IoT và AI, như được mô tả trong Bảng 2.1.

Bảng 2 1: So sánh đặc tính kỹ thuật các dòng vi điều khiển

Vi điều khiển Arduino Uno R3 Arduino Nano Arduino Mega 2560

Bộ vi xử lý ATMega328P ATMega328 ATMega 2560 Điện áp hoạt động

Bộ nhớ FLASH 32 KB 32 KB 256 KB

Bộ nhớ SRAM 2 KB 2 KB 8 KB

Giao tiếp Cáp Micro-USB Cáp Mini-USB Cáp Micro-USB

Chuẩn giao tiếp SPI, I2C, UART,

Kích thước 53.4x68.6mm 18.5x43mm 53.3x101.52 mm

Nhìn Bảng 2.1, chúng ta có thể thấy vi điều khiển Arduino Mega 2560 Rev3 có số chân digital, analog, bộ nhớ FLASH, EEPROM, SRAM và kích thước lớn hơn

11 vi điều khiển Arduino Uno R3 và Arduino Nano (Arduino, Arduino Mega 2560 Rev3,

Arduino Nano và Arduino Uno R3 có các đặc tính kỹ thuật tương tự, nhưng Arduino Nano có số chân analog và digital ít hơn, cùng kích thước nhỏ gọn hơn Dựa trên yêu cầu của dự án cần một vi điều khiển nhỏ và mạnh mẽ, nhóm đã quyết định chọn Arduino Nano để đáp ứng đủ số chân kết nối linh kiện.

Arduino Nano là bo mạch phát triển nhỏ gọn, lý tưởng cho việc tạo nguyên mẫu nhanh chóng Là thành viên lâu đời nhất trong dòng Nano, nó cung cấp giao diện thân thiện với breadboard, cho phép khởi động nhanh từ đèn flash khi nạp phần mềm Với bộ nhớ đệm tốc độ cao, Arduino Nano tối ưu hóa hiệu suất hệ thống và bộ nhớ Nó dễ dàng tích hợp với các module cảm biến và thiết bị ứng dụng thông qua các GPIO, sử dụng giao thức nối tiếp để kết nối với màn hình LCD hỗ trợ I2C, thẻ SD, và nhiều thiết bị khác Arduino Nano có thể được cấp nguồn qua cổng mini-USB hoặc chân VIN từ nguồn bên ngoài.

Arduino Nano sở hữu 30 chân, trong đó một số chân dùng làm điện áp ngõ ra hoặc không được sử dụng Người dùng có khả năng cấu hình chức năng cho các chân còn lại theo mục đích thiết kế của mình.

Bảng 2 2: Các chân kết nối Arduino Nano

Tên chân Kí hiệu Chức năng

Nguồn +3V3 Cấp nguồn 3V3 cho board hoạt động

Chân Analog A0 ~ A7 Ngõ vào của tín hiệu tương tự

Nguồn +5V Cấp nguồn 5V cho board hoạt động

Ground GND Chân nối đất

Nguồn vào Vin Đầu vào điện áp

Chân Digital D0 ~ A13 Ngõ vào của tín hiệu số

Chân UART TX, RX TX (gửi) và RX (nhận) dữ liệu

Hình 2 8: Sơ đồ chân của Arduino Nano

Hình 2 9: Sơ đồ nguyên lý của Arduino Nano 2.6.2 Mạch phát âm thanh DF Player Mini

Mạch phát âm thanh được sử dụng để phát tệp âm thanh thông qua thẻ nhớ

DF Player Mini là mạch phát âm thanh nhỏ gọn, dễ sử dụng, cho phép người dùng nghe âm thanh thoại với chất lượng tốt Mạch này hỗ trợ phát tệp âm thanh MP3 và có độ trễ thấp, là lựa chọn lý tưởng cho việc phát âm thanh trong các ứng dụng khác nhau.

Mạch DF Player Mini là mô-đun MP3 nối tiếp với khả năng giải mã phần cứng MP3 và WMV tích hợp Nó hỗ trợ thẻ TF lên đến 32 GB và tương thích với hệ thống tệp FAT16 và FAT32 Người dùng có thể điều khiển phát nhạc thông qua các lệnh nối tiếp đơn giản, cho phép chỉ định cách phát nhạc và các chức năng khác.

14 khác, dễ sử dụng, ổn định và đáng tin cậy là những tính năng quan trọng nhất của mô- đun này

Mạch DF Player Mini hỗ trợ nhiều tỷ lệ lấy mẫu từ 8KHz đến 48KHz và cung cấp các chế độ điều khiển như chế độ nối tiếp và chế độ điều khiển phím AD Với tính năng điểm ngôn ngữ phát sóng, mạch cho phép tạm dừng nhạc nền và quản lý âm thanh theo thư mục, hỗ trợ tối đa 100 thư mục, mỗi thư mục có thể chứa 1000 bài hát Mạch còn tích hợp bộ khuếch đại 3W, đầu ra DAC 24 bit, dải động 90dB, SNR 85dB, cùng khả năng điều chỉnh âm lượng 30 mức và EQ 10 mức.

Bảng 2 3: Thông số kỹ thuật mạch DF Player Mini Định dạng MP3 Hỗ trợ giải mã âm thanh layer3 11172-3 và ISO13813-3

Hỗ trợ đa dạng thể loại nhạc như Jazz, Cổ điển, Pop và Rock Thiết bị được trang bị cổng UART nối tiếp tiêu chuẩn với mức độ TTL và tốc độ truyền có thể điều chỉnh, trong đó tốc độ mặc định là 9600 bps Điện áp hoạt động của thiết bị dao động từ 3.2 đến 5.0V.

Dòng điện hoạt động 20 mA

Nhiệt độ hoạt động -40 ~ 70 Độ ẩm 5% ~ 95%

Hình 2 10: Sơ đồ chân mạch DF Player Mini

Mạch DF Player Mini có 16 chân, cho phép người dùng tùy chỉnh chức năng từng chân theo nhu cầu thiết kế Bảng 3.2 dưới đây sẽ liệt kê chi tiết chức năng của các chân kết nối trên mạch DF Player Mini.

Bảng 2 4: Các chân kết nối mạch DF Player Mini

Ký hiệu Tên chân Chức năng

VCC Điện áp đầu vào DC: 3.2~5.0V

RX Đầu vào nối tiếp UART

TX Đầu ra nối tiếp UART

DAC_R và DAC_L là các kênh đầu ra âm thanh cho tai nghe và bộ khuếch đại, với DAC_R điều khiển âm thanh bên phải và DAC_L điều khiển âm thanh bên trái, đảm bảo trải nghiệm nghe nhạc sống động và cân bằng.

GND Đất Chân nối đất

IO1 Cổng kích hoạt 1 Nhấn nhanh để phát trước đó (nhấn lâu để giảm âm lượng)

GND Đất Chân nối đất

IO2 Cổng kích hoạt 2 Nhấn nhanh để phát tiếp theo (nhấn lâu để tăng âm lượng)

ADKEY1 Cổng AD1 Kích hoạt chơi đoạn đầu tiên

ADKEY2 Cổng AD2 Kích hoạt chơi đoạn thứ năm

USB+ USB+ DP Cổng USB

USB- USB- DM Cổng USB

BUSY Trạng thái play Thấp có nghĩa là play/Cao có nghĩa là không

Trong hệ thống âm thanh, loa đóng vai trò quan trọng trong việc phát ra và tái tạo âm thanh cho người nghe Loa chỉ hoạt động khi được kết nối với nguồn điện trong mô hình hoạt động, trong khi ở mô hình thụ động, cần có dữ liệu từ mạch phát âm thanh gửi đến loa để phát ra âm thanh.

 Một số thông số kỹ thuật cơ bản của loa:

- Chất liệu: Kim loại, Nhựa

HuskyLens là một cảm biến thị giác máy AI do công ty DFRobot sản xuất, nổi bật với tính năng dễ sử dụng AI, viết tắt của trí tuệ nhân tạo, có thể được mô tả là công nghệ cho phép máy móc nhận diện và xử lý thông tin từ môi trường xung quanh.

Trí tuệ nhân tạo nhằm mục đích mô phỏng khả năng của bộ não con người để đưa ra kết luận, lập kế hoạch, giải quyết vấn đề và hiểu ngôn ngữ tự nhiên Camera hiện đại tích hợp nhiều chức năng như nhận dạng khuôn mặt, theo dõi đối tượng, nhận dạng màu sắc và mã QR (Dr.T.Prem Jacob, 2021) HuskyLens có thể kết nối với các main điều khiển phổ biến như Arduino, micro:bit, Raspberry Pi và LattePanda thông qua cổng UART/I2C.

HuskyLens tích hợp công nghệ máy học tiên tiến, cho phép nhận diện khuôn mặt và đối tượng hiệu quả Sản phẩm sử dụng chip AI Kendryte K210 thế hệ mới, mang lại hiệu suất nhanh hơn 1.000 lần so với STM32H743 khi thực hiện các thuật toán mạng thần kinh Đặc biệt, camera của HuskyLens có khả năng chụp ảnh các vật thể chuyển động nhanh, nâng cao khả năng quan sát và phân tích.

Chuẩn giao tiếp I2C

I2C (Inter-Integrated Circuit) là một giao thức do Philips Semiconductors phát triển, cho phép truyền dữ liệu giữa bộ xử lý trung tâm và nhiều IC trên cùng một board mạch chỉ với hai đường tín hiệu Với tính đơn giản và hiệu quả, I2C được sử dụng phổ biến trong giao tiếp giữa vi điều khiển và các thiết bị như cảm biến, thiết bị hiển thị, thiết bị IoT và EEPROM Giao thức này sử dụng hai dây tín hiệu, SCL (Serial Clock Line) và SDA (Serial Data Line), để truyền thông tin giữa các thiết bị kết nối trên bus Mỗi thiết bị trong hệ thống I2C được xác định bằng một địa chỉ 7-bit.

Trong giao tiếp I2C, thiết bị điều khiển được gọi là MASTER, có nhiệm vụ tạo tín hiệu clock Các thiết bị được định địa chỉ bởi MASTER được gọi là SLAVE Mỗi MASTER chịu trách nhiệm tạo ra tín hiệu xung nhịp riêng khi truyền dữ liệu trên bus I2C.

Hình 2 20: Sơ đồ kết nối I2C 2.7.2 Cách hoạt động của I2C

Master bắt đầu quá trình giao tiếp bằng cách gửi bit START, theo sau là địa chỉ của thiết bị mà nó muốn truy cập Tất cả các IC trên bus sẽ so sánh địa chỉ này với địa chỉ của chúng; nếu không khớp, dữ liệu sẽ không được truyền và sẽ đợi đến bit STOP Khi địa chỉ khớp, thiết bị slave sẽ phát tín hiệu ACK để xác nhận rằng chúng đã sẵn sàng truyền dữ liệu.

Sau khi xác nhận địa chỉ của slave, master tiến hành truyền dữ liệu Đối với thao tác ghi, master gửi dữ liệu và slave xác nhận từng byte đã nhận Trong trường hợp thao tác đọc, master giải phóng dòng dữ liệu và đồng hồ từ slave Sau khi nhận mỗi byte, master tạo điều kiện xác nhận trên bus, và xác nhận này bị bỏ qua khi nhận byte cuối cùng Cuối cùng, master kết thúc mọi hoạt động bằng cách tạo điều kiện stop trên bus, và có thể hủy truyền dữ liệu bất kỳ lúc nào bằng cách tạo điều kiện stop.

THIẾT KẾ VÀ THI CÔNG HỆ THỐNG

Giới thiệu

3.1.1 Yêu cầu của hệ thống

Nhóm đã bắt đầu bằng việc tìm hiểu và xác định mục tiêu, sau đó lên kế hoạch thực hiện đề tài Hệ thống được xây dựng với nhiều chức năng đa dạng.

- Học các tập đối tượng nhỏ gọn, dễ cầm nắm từ phần cứng thu được từ camera HuskyLens của hệ thống

- Có thể nhận diện đối tượng phù hợp cho người khiếm thị từ 6 – 10 tuổi và phát ra âm thanh thoại để người khiếm thị có thể học tập

- Có thể điều chỉnh cho phép phát âm thanh thoại bằng nút nhấn

- Có thể điều khiển bật/tắt hệ thống nhận dạng

Hình 3 1: Sơ đồ khối hệ thống

Sơ đồ khối toàn hệ thống được mô tả như Hình 3.1, hệ thống gồm có 5 khối chính là khối nguồn, Arduino Nano, camera HuskyLens, khối nút nhấn và loa

Khối nguồn: Được kết nối với hệ thống qua cổng cáp mini-USB, cung cấp nguồn cho hệ thống hoạt động

Arduino Nano đóng vai trò quan trọng trong việc truyền và xử lý dữ liệu Dữ liệu đầu vào từ các nút nhấn và camera HuskyLens được gửi đến khối xử lý trung tâm, nơi thực hiện tính toán và phát tín hiệu điều khiển tới loa.

Camera HuskyLens được kết nối với Arduino Nano qua giao tiếp I2C, giúp thu thập dữ liệu và nhận diện đối tượng để gửi về cho Arduino Nano xử lý.

Khối nút nhấn được kết nối với Arduino Nano qua các chân Digital, bao gồm hai nút nhấn: một nút dùng để thiết lập phát âm thanh thoại và nút còn lại để điều khiển bật/tắt hệ thống nhận dạng.

DF Player Mini được kết nối với Arduino Nano qua giao tiếp UART, cho phép lưu trữ và phát tệp âm thanh thoại một cách linh hoạt Thiết bị này hỗ trợ chỉ định phát và điều khiển cách thức phát âm thanh, mang lại sự tiện lợi cho các dự án âm thanh.

Loa: Được kết nối với khối DF Player Mini, có chức năng phát ra tín hiệu âm thanh thoại thích hợp cho từng đối tượng

3.1.3 Hoạt động của hệ thống Đầu tiên, hệ thống sử dụng camera HuskyLens để nhận diện đối tượng và đưa dữ liệu vào Arduino Nano bằng đường giao tiếp I2C Arduino dựa vào dữ liệu có được điều khiển DF Player Mini thông qua đường giao tiếp UART để đưa ra dữ liệu âm thanh thoại phù hợp với dữ liệu thu được từ camera Loa nhận dữ liệu âm thanh thoại và phát ra để người khiếm thị có thể nghe được Để hệ thống dễ sử dụng và tiện lợi hơn, mô hình có thêm hai nút nhấn để người sử dụng có thể cho phép phát âm thanh thoại của đối tượng bất kỳ lúc nào và bật tắt hệ thống nhận dạng đối tượng.

Thiết kế hệ thống phần cứng

Nhóm đã chọn camera HuskyLens để nhận diện đối tượng nhờ vào tính phổ biến, dễ lập trình và sử dụng đơn giản Camera này giao tiếp với Arduino Nano qua giao thức I2C, trong đó hai chân cấp nguồn + (VCC) và – (GND) được kết nối với chân 5V và GND của Arduino Hai chân truyền dẫn dữ liệu T (SDA) và R (SCL) lần lượt kết nối với chân A4 và A5 của Arduino, như được minh họa trong Hình 3.2.

Hình 3 2: Sơ đồ kết nối Arduino Nano với camera HuskyLens

3.2.2 Khối nút nhấn Để tránh camera nhận diện đối tượng chưa chính xác và phát ra âm thanh không mong muốn cũng như tránh trường hợp loa phát âm thanh liên tục, nhóm thực hiện sử dụng nút nhấn để điều khiển phát âm thanh thoại và nút nhấn điều khiển bật/tắt hệ thống nhận dạng

Khi chưa nhấn nút, điện áp tại chân D7 và D4 của Arduino Nano ở mức LOW (0) Khi nhấn nút, điện áp ngõ ra sẽ tăng lên mức HIGH (1) Nút nhấn được kết nối với Arduino Nano như mô tả trong Hình 3.3.

DF Player Mini là một mạch phát âm thanh nhỏ gọn, dễ sử dụng, cho phép phát tệp âm thanh MP3 với độ trễ thấp, lý tưởng cho các dự án Arduino Mạch này giao tiếp với Arduino Nano thông qua giao thức UART, với chân VCC và GND kết nối lần lượt với chân 5V và GND của Arduino Chân RX và TX của DF Player Mini được kết nối với chân D10 và D11 của Arduino, như mô tả trong Hình 3.4.

Hình 3 4: Sơ đồ kết nối Arduino Nano với DF Player Mini

Hệ thống âm thanh dành cho người khiếm thị từ 6 đến 10 tuổi sử dụng loa dễ lắp đặt, không cần kết nối thêm linh kiện bên ngoài Loa được kết nối với chân SPK2 và SPK1 của DF Player Mini, giúp phát ra âm thanh thoại một cách hiệu quả.

Để đảm bảo hệ thống hoạt động ổn định và dễ dàng trong việc điều khiển cũng như giám sát các thiết bị, nhóm đã chọn sử dụng Arduino Nano Đây là lựa chọn phổ biến trong học tập nhờ vào tính năng tiết kiệm năng lượng và chi phí thấp.

Kết nối của Arduino Nano với các khối khác như sau:

- Chân A4 và A5 lần lượt kết nối với chân T (SDA) và R (SCL) của camera HuskyLens

- Chân D10 và D11 lần lượt kết nối với chân RX (UART) và TX (UART) của

- Chân D7 được kết nối với nút nhấn để điều khiển phát âm thanh thoại

- Chân D4 được kết nối với nút nhấn để điều khiển bật/tắt hệ thống nhận dạng

Từ các mô tả trên, nhóm có sơ đồ nguyên lý toàn mạch

Hình 3 6: Sơ đồ nguyên lý toàn mạch

Khối nguồn là thành phần thiết yếu trong mô hình, cung cấp điện cho toàn bộ mạch hoạt động Để đảm bảo sự ổn định và tính chính xác trong hoạt động của mô hình, việc lựa chọn và tính toán các nguồn điện phù hợp là rất quan trọng Nhóm đã thực hiện các bước cần thiết để liệt kê và chọn lựa các nguồn điện thích hợp nhằm duy trì hiệu suất tối ưu cho hệ thống.

Dòng điện trên mỗi I/O của Arduino Nano vào khoảng 40mA và sử dụng 6 chân của Arduino Nano nên ta có: IArduino = 6 x 40 = 240 mA (3.1)

Bảng 3 1: Thông số hoạt động của các linh kiện hệ thống

Tên linh kiện Điện áp (V) Dòng tiêu thụ (mA) Số lượng

Sau khi xem xét tổng dòng điện tiêu thụ của các thiết bị sử dụng nguồn 5VDC được liệt kê trong Bảng 3.1, nhóm đã quyết định chọn nguồn 5V với dòng điện 2.1A để cung cấp cho hệ thống.

KẾT QUẢ

Nhận diện tập đối tượng trái cây

4.1.1 Lượng dữ liệu cần cho mỗi đối tượng trái cây

Trái cây là một phần thiết yếu trong cuộc sống hàng ngày, với mỗi loại có hình dạng đặc trưng riêng Điều này làm cho trái cây trở thành đối tượng lý tưởng cho việc học của HuskyLens, vì nó có giới hạn về dung lượng học Những đối tượng có sự khác biệt rõ ràng sẽ giúp HuskyLens nhận diện dễ dàng hơn.

Dự kiến, lượng dữ liệu tối đa cho tập đối tượng trái cây dao động từ 300-330/1000, với mỗi ID hay đối tượng có thể học được khoảng 30-33 dữ liệu Lượng dữ liệu cần thiết cho mỗi đối tượng phụ thuộc vào độ đơn giản hoặc phức tạp của đối tượng đó Dưới đây là quy trình học tập các đối tượng trong tập trái cây.

Hình 4 1: Học đối tượng quả lê

Quả lê có màu vàng sáng và bề mặt mịn màng, giúp HuskyLens dễ dàng nhận diện Do đó, lượng dữ liệu cần thiết để học thường dao động từ 15 đến 20 trên tổng số 30.

Hình 4 2: Học đối tượng quả xoài

Quả xoài và quả lê có màu sắc tương tự nhưng dễ dàng phân biệt nhờ hình dạng khác nhau Mặc dù quả lê có hình dáng tương đối giống với quả xoài, HuskyLens có khả năng phân biệt chúng nhờ vào lượng dữ liệu học tập phong phú Để nhận diện quả xoài, HuskyLens cần khoảng 10-15/30 dữ liệu.

Hình 4 3: Học đối tượng quả mận

Quả mận có màu sắc khác biệt so với hai loại quả trước đó và có hình dạng tương tự như quả lê Để nhận biết quả mận, lượng dữ liệu cần thiết là từ 10-15/30.

Hình 4 4: Học đối tượng quả cam

Quả cam có kích thước lớn và màu sắc, hình dạng dễ nhận diện, tuy nhiên, tán lá của nó lại tương đồng với nhiều loại trái cây khác Điều này khiến cho Huskylens gặp khó khăn trong việc nhận diện chính xác, đôi khi dẫn đến việc nhận diện sai với các loại trái cây có tán lá tương tự Do đó, lượng dữ liệu cần thiết để nhận diện quả cam chỉ nằm trong khoảng 10-15/30.

Hình 4 5: Học đối tượng quả măng cụt

Quả măng cụt có kích thước nhỏ và màu sắc đen nhánh, thường bị tán lá che khuất, dẫn đến việc ID6 nhận diện với độ chính xác từ 25-30/30 Để HuskyLens dễ dàng phân biệt quả măng cụt, cần thay đổi nhiều góc độ trong quá trình học Điều này cũng áp dụng cho các đối tượng khác sử dụng lượng dữ liệu phong phú.

Hình 4 6: Học đối tượng quả na

Quả na có bề ngoài sần sùi nên quả na cần một lượng dữ liệu trong khoảng 15- 20/30 để Huskylens nhận biết được

Hình 4 7: Học đối tượng quả khế

Quả khế có bề ngoài đơn giản, dễ nhận biết nên lượng dữ liệu trong khoảng 10-15/30

Hình 4 8: Học đối tượng quả dâu

Để nhận diện quả dâu, cần cung cấp lượng dữ liệu khoảng 20-25/30 Điều này là cần thiết vì đối tượng quả dâu có kích thước nhỏ, và HuskyLens có thể dễ dàng phân biệt sai với các đối tượng nhỏ khác có màu sắc tương tự.

Hình 4 9: Học đối tượng quả táo

Quả táo dễ nhận biết và có hình dạng đủ lớn để camera HuskyLens có thể nhận biết nên lượng dữ liệu cần là 10-15/30

Hình 4 10: Học đối tượng quả ớt

Quả ớt có hình dạng khác biệt so với 9 loại quả trên nên quả ớt cũng chỉ cần một lượng dữ liệu trong khoảng 10-15/30

Hình 4 11: Tập ảnh phân biệt tập đối tượng trái cây

4.1.2 Nhận xét và đánh giá tập đối tượng trái cây

Bảng 4 1: Bảng đánh giá tập đối tượng trái cây

ID Trái Lượng dữ liệu

Tổng dữ liệu Đánh giá đối tượng

Phần trăm nhận dạng đối tượng

Ghi chú (nhận dạng mọi góc độ đối tượng)

Hình dạng vừa, dễ nhận biết

Trái cây là nhóm đối tượng dễ nhận diện, mặc dù một số loại có màu sắc và hình dạng tương tự nhau Tuy nhiên, trái mận thường bị nhầm lẫn với trái dâu do cả hai đều có màu đỏ.

Hình dạng vừa, dễ nhận biết

Hình dạng vừa, dễ nhận biết

Hình dạng to, dễ nhận biết

Hình dạng nhỏ vừa, sần sùi, khó nhận biết

Hình dạng vừa, sần sùi, khó nhận biết

Hình dạng to, dễ nhận biết

Hình dạng nhỏ, khó nhận biết

Hình dạng to, dễ nhận biết

Hình dạng vừa, dễ nhận biết

So với lượng dữ liệu dự kiến từ 300-330, tập dữ liệu sử dụng cho đối tượng trái cây vẫn còn dư Điều này cho phép chia sẻ thêm dữ liệu cho những đối tượng bị Huskylens nhận diện trùng nhau, từ đó giảm thiểu tỷ lệ phân biệt sai của HuskyLens.

Nhận diện tập đối tượng đồ dùng học tập

4.2.1 Lượng dữ liệu cần cho mỗi đồ dùng học tập

Đối với trẻ em khiếm thị từ 6 đến 10 tuổi, đồ dùng học tập là rất quan trọng Mặc dù các dụng cụ học tập có hình dạng tương tự nhau, việc lựa chọn những công cụ phù hợp giúp HuskyLens phân biệt rõ ràng giữa các loại như bút bi và bút chì.

Tập đối tượng đồ dùng học tập dự kiến sử dụng lượng dữ liệu tối đa khoảng 300-330/1000 Khác với trái cây, đồ dùng học tập có nhiều hình dạng khác nhau nhưng cùng một chức năng, điều này làm cho việc học trở nên phức tạp hơn.

Hình 4 12: Học đối tượng bút bi

Bút bi có nhiều loại khác nhau trên thị trường, và việc Huskylens học để nhận diện một cây bút bi cùng với khả năng phân biệt các loại bút bi khác đòi hỏi một lượng dữ liệu lớn mà HuskyLens không thể cung cấp Hình 4.12 minh họa ba loại bút bi phổ biến nhất, và để đạt được độ chính xác cao, cần khoảng 20-25/30 mẫu dữ liệu cho mỗi loại bút.

Hình 4 13: Học đối tượng bút chì

Để HuskyLens có thể phân biệt bút bi và bút chì, việc học bút chì ở ID13 là cần thiết, vì hình dạng của chúng tương đối giống nhau Do đó, cần thu thập khoảng 15-20/30 dữ liệu để việc phân biệt giữa bút bi và bút chì trở nên khả thi hơn.

Hình 4 14: Học đối tượng thước kẻ

Cũng như hai đối tượng trước, Hình 4.14 là ba loại thước kẻ với ba màu khác nhau, lượng dữ liệu dành cho thước kẻ nằm trong khoảng 15-20/30

Hình 4 15: Học đối tượng gọt bút chì

Tương tự, gọt bút chì cũng sử dụng hai loại màu sắc khác biệt với lượng dữ liệu dành cho gọt bút chì nằm trong khoảng 15-20/30

Hình 4 16: Học đối tượng cục tẩy

Hình 4 17: Học đối tượng cục phấn

Hình 4.16 và Hình 4.17 đơn giản là quá trình học một đối tượng độc lập nên lượng dữ liệu nằm trong khoảng 10-15/30

Hình 4.18 trình bày 12 bút màu khác nhau, cho thấy quá trình học về cục tẩy và phấn cũng tương tự như trong ID18 Việc học nhiều đối tượng với màu sắc đa dạng giúp tăng cường lượng dữ liệu, đạt khoảng 30-35/30.

Hình 4 19: Học đối tượng cây kéo

Hình 4 20: Học đối tượng bút xóa

Hình 4 21: Học đối tượng comba

Các đối tượng độc lập có hình dáng khác biệt so với các ID khác, do đó chỉ cần học từ 10-15/30 dữ liệu Đối với kéo và comba, là những dụng cụ kim loại màu trắng có khả năng phản xạ ánh sáng, lượng dữ liệu cần thiết nằm trong khoảng từ 20-25/30.

Hình 4 22: Tập ảnh phân biệt tập đối tượng đồ dùng học tập

4.2.2 Nhận xét và đánh giá tập đối tượng đồ dùng học tập

Bảng 4 2: Bảng đánh giá tập đối tượng đồ dùng học tập

ID Đồ dùng học tập

Tổng dữ liệu Đánh giá đối tượng

Phần trăm nhận dạng đối tượng

Ghi chú (nhận dạng mọi góc độ đối tượng)

Có nhiều loại bút bi

Giống bút bi và có nhiều màu

14 Thước kẻ 15-20 Nhiều loại thước

Nhiều loại gọt bút chì

16 Cục tẩy 10-15 Ít loại tẩy nhưng nhiều màu khác nhau

Một loại phấn nhưng có nhiều màu phấn

Một dạng bút sáp nhưng có nhiều màu

70% Phải để ít nhất là

3/10 bút màu sáp, Huskylens mới có thể nhận diện được

Thường dùng loại kéo như ID19

Phổ biến với loại bút xóa như ID20

60% Bị ảnh hưởng bởi sự phản ánh sáng của kim loại, dễ gây nhầm lẫn với các đối tượng bằng

HuskyLens không thể học hết các đối tượng cùng loại, vì vậy nó ưu tiên nhận diện những đối tượng phổ biến hơn Ví dụ, trong hình 4.12 có ba loại bút bi khác nhau, và kết quả ở Hình 4.22 cho thấy khi mỗi loại bút bi được đặt riêng lẻ trên giá đỡ, HuskyLens vẫn có khả năng phân biệt chúng là bút bi Quá trình học bút bi đã hoàn thành với ID12, và HuskyLens tiếp tục nhận diện bút bi ở ID12 Dưới đây là kết quả khi sử dụng bút chì mà HuskyLens chưa được học nhận diện trước đó.

Hình 4 23: Kết quả không cho camera học trước bút chì

Huskylens đã nhận diện sai bút bi thành bút chì do hình dạng tương đối của chúng Để Huskylens có thể phân biệt chính xác các đối tượng khác nhau về chức năng, cần cung cấp cho nó một lượng dữ liệu đầy đủ về tất cả các đối tượng đó.

Ngày đăng: 08/12/2023, 15:30

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w