1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án nhúng xử lý ảnh dùng arduino due

75 14 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

Cấu trúc

  • CHƯƠNG 1. TỔNG QUAN VỀ HỆ THỐNG

    • 1.1 Lựa chọn phần cứng

    • 1.2 Tổng quan về hệ thống camera

    • 1.3 Giới thiệu phần cứng sử dụng

      • ATSAM3X8EAU

      • ArduCam OV5642

        • 1.3.1.1. Giới thiệu

        • 1.3.1.2. Định nghĩa chân

        • 1.3.1.3. Sơ đồ khối

        • 1.3.1.4. Chức năng

        • 1.3.1.5. Giao tiếp I2C

        • 1.3.1.6. Giao tiếp SPI

        • 1.3.1.7. Bảng thanh ghi

        • 1.3.1.8. Sim5320E

        • Module SIM5320 là giải pháp module hai băng tần HSDPA/WCDMA hỗ trợ HSDPA lên đến 3,6Mb/s tải dữ liệu xuống. Hỗ trợ nhiều giao tiếp như UART, USB2.0, SPI, I2C, bàn phím, PCM,...với việc hỗ trợ nhiều kiểu truyền dữ liệu bằng việc lập trình LUA script, cũng như việc module hỗ trợ điều khiển bằng tập lệnh AT. Do thời gian không cho phép nên nhóm lập trình truyền nhận dữ liệu thông qua tập lệnh AT mà hãng SIMCOM cung cấp.

        • 1.3.1.9. ESP8266-07

  • CHƯƠNG 2. THIẾT KẾ PHẦN CỨNG VÀ LẬP TRÌNH HỆ THỐNG

    • 2.1 Thiết kế Board Dev

      • Khối nguồn

      • Khối ESP8266

      • Khối ATSAM3X8EAU

    • 2.2 Thiết kế module SIM5320E

    • 2.3 Lập trình thiết bị

      • Lập trình đọc ghi dữ liệu I2C

      • Lập trình đọc ghi dữ liệu SPI

      • Cấu hình hoạt động của ArduCam OV5642

        • 2.3.1.1. Khởi tạo OV5642

        • 2.3.1.2. Cài đặt định dạng hình ảnh

        • 2.3.1.3. Cài đặt số khung hình trong mỗi lần chụp

        • 2.3.1.4. Chụp ảnh

      • Lập trình truyền nhận dữ liệu ảnh trong hệ thống gồm ATSAM3X8EA, SIM5320E và ArduCam OV5642

      • Lập trình truyền nhận dữ liệu ảnh trong hệ thống gồm ESP8266 và ArduCam OV5642

      • Thiết kế Webserver

        • 1.1.1.1. Sơ lược về NodeJS và SocketIO

        • 2.3.1.5. Lưu đồ thuật toán

      • Truyền dữ liệu ảnh qua internet

  • CHƯƠNG 3. KẾT QUẢ VÀ THỬ NGHIỆM TRUYỀN NHẬN ẢNH

    • 3.1 Kết quả thiết kế mạch

    • 3.2 Arduino Due đọc hình ảnh từ camera gửi về máy tính

    • 3.3 ESP8266 làm webserver

    • 3.4 Giao diện website hiển thị ảnh thiết bị gửi lên Server

    • 3.5 So sánh 3G và WiFi

  • CHƯƠNG 4. TỔNG QUAN VỀ CONVOLUTION NEURAL NETWORK VÀ ỨNG DỤNG VÀO BÀI TOÁN NHẬN DẠNG ẢNH

    • 4.1 Khái niệm Neural network

      • Hoạt động của các nơ-ron

        • 4.1.1.1. Neural sinh học

        • 4.1.1.2. Neural nhân tạo

      • Mô hình neural network

    • 4.2 Thuật toán học

      • Gradient Descent

      • Truyền thẳng

      • Lan truyền ngược

    • 4.3 Giới hiệu về xử lý ảnh

      • Biểu diễn ảnh

      • Phép tính convolution

    • 4.4 Sơ lược về convolutional neural network

      • Convolutional layer

      • Pooling layer

      • Fully connected layer

      • Mô hình convolutional neural network

    • 4.5 Sơ lược về Keras

    • 4.6 Ứng dụng vào bài toán nhận dạng ảnh trong nông nghiệp

      • Xây dựng bài toán

      • Chuẩn bị dữ liệu

      • Xây dựng model

      • Loss function

      • Đánh giá mô hình

  • CHƯƠNG 5. THỰC NGHIỆM XỬ LÝ ẢNH

    • 5.1 Thực nghiệm tìm tham số mô hình:

      • Chọn mô hình

      • Chọn thuật toán tối ưu

      • Thực nghiệm tìm số lần lặp lại

    • 5.2 Thực nghiệm nhận dạng

  • CHƯƠNG 6. KẾT LUẬN

    • 6.1 Kết luận

    • 6.2 Hướng phát triển của đồ án trong tương lai

  • TÀI LIỆU THAM KHẢO

  • PHỤ LỤC CODE VÀ MẠCH

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI Ngành Kỹ thuật Điều khiển và Tự động hoá Thiết kế hệ thống thu thập và xử lý ảnh dùng Arduino Due và camera OV5642. Dữ liệu được truyền qua module wifi ESP8266 và module 3g Sim5320e

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI ĐỒ ÁN TỐT NGHIỆP Thiết kế hệ thống thu thập xử lý ảnh NGUYỄN VĂN TÙNG Ngành Kỹ thuật Điều khiển Tự động hóa Chuyên ngành Kỹ thuật đo tin học công nghiệp Giảng viên hướng dẫn: Bộ môn: Viện: Chữ ký GVHD Tin học đo lường công nghiệp Điện HÀ NỘI, 1/2020 Lời cảm ơn Chúng em xin bày tỏ lòng biết ơn chân thành sâu sắc tới TS.Nguyễn Hồng Nam, người tận tình dìu dắt bảo chúng em suốt trình học tập thực đề tài Chúng em xin cảm ơn chân thành thầy cô viện Điện, ban lãnh đạo Trường đại học Bách Khoa Hà Nội tạo điều kiện cho chúng em thực đề tài Chúng em xin chân thành cảm ơn bạn bè với gia đình ln động viên khích lệ tạo điều kiện giúp đỡ chúng em suốt trình thực đề tài Em xin chân thành cảm ơn! Tóm tắt nội dung đồ án Ngành cơng nghệ ngày phát triển, không ngừng thay đổi để đáp ứng nhu cầu giám sát người tiêu dùng, camera giám sát mang lại nhiều lợi ích định với đời sống nay, đâu ta thấy camera quan sát, giải pháp tối ưu để đảm bảo an ninh cho nơi lắp camera, bảo vệ tài sản tránh tệ nạn xã hội diễn nơi có camera quan sát Camera lĩnh vực xử lý ảnh có ột tiềm vơ to lớn áp dụng nông nghiệp thông minh phát sâu bệnh hay robot thu hoạch nông sản tự động nhằm giảm sức lao động người Chính nhóm chọn đề tài “Thiết kế hệ thống thu thập xử lý ảnh” làm nội dung nghiên cứu Trong đề tài báo cáo này, em xin trình bày nội dung sau: Chương 1: Tổng quan hệ thống Chương 2: Thiết kế phần cứng lập trình hệ thống Chương 3: Kết thử nghiệm truyền nhận ảnh Chương 4: Tổng quan convolutional neural network ứng dụng vào toán nhận dạng ảnh Chương 5: Thực nghiệm xử lý ảnh Chương 6: Kết luận Trong trình thực đề tài, thời gian không cho phép với số hạn chế khác kiến thức kinh nghiệm nên đề tài nhóm cịn nhiều thiếu xót Chúng em mong thầy cô bạn đóng góp ý kiến để hồn thiện đề tài Sinh viên thực Ký ghi rõ họ tên MỤC LỤC CHƯƠNG TỔNG QUAN VỀ HỆ THỐNG 1.1 Lựa chọn phần cứng 1.2 Tổng quan hệ thống camera 1.3 Giới thiệu phần cứng sử dụng 1.3.1 ATSAM3X8EAU .2 1.3.2 ArduCam OV5642 CHƯƠNG THIẾT KẾ PHẦN CỨNG VÀ LẬP TRÌNH HỆ THỐNG 12 2.1 Thiết kế Board Dev .12 2.1.1 Khối nguồn .12 2.1.2 Khối ESP8266 12 2.1.3 Khối ATSAM3X8EAU 14 2.2 Thiết kế module SIM5320E 17 2.3 Lập trình thiết bị 20 2.3.1 Lập trình đọc ghi liệu I2C 20 2.3.2 Lập trình đọc ghi liệu SPI 21 2.3.3 Cấu hình hoạt động ArduCam OV5642 22 2.3.4 Lập trình truyền nhận liệu ảnh hệ thống gồm ATSAM3X8EA, SIM5320E ArduCam OV5642 23 2.3.5 Lập trình truyền nhận liệu ảnh hệ thống gồm ESP8266 ArduCam OV5642 25 2.3.6 Thiết kế Webserver 25 2.3.7 Truyền liệu ảnh qua internet 29 CHƯƠNG KẾT QUẢ VÀ THỬ NGHIỆM TRUYỀN NHẬN ẢNH .33 3.1 Kết thiết kế mạch 33 3.2 Arduino Due đọc hình ảnh từ camera gửi máy tính 36 3.3 ESP8266 làm webserver 37 3.4 Giao diện website hiển thị ảnh thiết bị gửi lên Server 38 3.5 So sánh 3G WiFi .39 CHƯƠNG TỔNG QUAN VỀ CONVOLUTION NEURAL NETWORK VÀ ỨNG DỤNG VÀO BÀI TOÁN NHẬN DẠNG ẢNH .40 4.1 Khái niệm Neural network 40 4.1.1 Hoạt động nơ-ron .40 4.1.2 4.2 4.3 4.4 Mơ hình neural network 41 Thuật toán học .41 4.2.1 Gradient Descent 41 4.2.2 Truyền thẳng 43 4.2.3 Lan truyền ngược 44 Giới hiệu xử lý ảnh 44 4.3.1 Biểu diễn ảnh 44 4.3.2 Phép tính convolution .46 Sơ lược convolutional neural network 48 4.4.1 Convolutional layer 48 4.4.2 Pooling layer 51 4.4.3 Fully connected layer .51 4.4.4 Mơ hình convolutional neural network 52 4.5 Sơ lược Keras 52 4.6 Ứng dụng vào toán nhận dạng ảnh nơng nghiệp 53 4.6.1 Xây dựng tốn 53 4.6.2 Chuẩn bị liệu .53 4.6.3 Xây dựng model .55 4.6.4 Loss function 56 4.6.5 Đánh giá mơ hình 58 CHƯƠNG THỰC NGHIỆM XỬ LÝ ẢNH .59 5.1 5.2 Thực nghiệm tìm tham số mơ hình: .59 5.1.1 Chọn mơ hình 59 5.1.2 Chọn thuật toán tối ưu 59 5.1.3 Thực nghiệm tìm số lần lặp lại .60 Thực nghiệm nhận dạng 62 CHƯƠNG KẾT LUẬN .64 6.1 Kết luận 64 6.2 Hướng phát triển đồ án tương lai 64 PHỤ LỤC CODE VÀ MẠCH 65 TÀI LIỆU THAM KHẢO 66 DANH MỤC HÌNH VẼ Hình 1.1: Sơ đồ khối hệ thống thu thập ảnh Hình 1.2: ArduCam OV5642 Hình 1.3: Sơ đồ khối ArduCam OV5642 Hình 1.4: Chân kích hoạt phần cứng Hình 1.5: Giản đồ thời gian trình ghi I2C .6 Hình 1.6: Giản đồ thời gian trình đọc I2C Hình 1.7: Giản đồ thời gian trình đọc SPI Hình 1.8: Giản đồ thời gian trình đọc đơn SPI .8 Hình 1.9: Giản đồ thời gian q trình đọc gói SPI Hình 1.10: Module ESP8266-07 .11 Hình 2.1: Sơ đồ khối nguồn Board Dev 12 Hình 2.2: Sơ đồ khối truyền UART cho ESP8266 13 Hình 2.3: Sơ đồ khối module ESP8266 .13 Hình 2.4: Khối nút nhấn ESP8266 14 Hình 2.5: Khối ATSAM3X8EU 15 Hình 2.6: Sơ đồ khối UART cho ATSAM3X8EAU 16 Hình 2.7: Sơ đồ khối thạch anh cho chip ATSAM3X8EAU 16 Hình 2.8: Sơ đồ khối kết nối USB cho ATSAM3X8EAU 16 Hình 2.9: Sơ đồ khối kết nối module camera ATSAM3X8EAU 17 Hình 2.10: Sơ đồ khối truyền UART từ ATSAM3X8EAU đến SIM5320E .17 Hình 2.11: Sơ đồ khối SIM5320E .18 Hình 2.12: Sơ đồ khối chuyển mức logic cho SIM5320E 18 Hình 2.13: Sơ đồ khối led báo trạng thái SIM5320E 19 Hình 2.14: Lưu đồ ghi liệu I2C 20 Hình 2.15: Lưu đồ đọc liệu I2C 21 Hình 2.16: Lưu đồ ghi liệu SPI 21 Hình 2.17: Lưu đồ đọc liệu SPI 21 Hình 2.18: Lưu đồ thuật toán hệ thống gồm ATSAM3X8EA, SIM5320E ArduCam OV5642 24 Hình 2.19: Lưu đồ thuật tốn hệ thống gồm ESP8266 ArduCam OV5642 25 Hình 2.20: NodeJS 26 Hình 2.21: Các đơn vị dùng NodeJS để xây dựng hệ thống 26 Hình 2.22: SocketIO 27 Hình 2.23: Lưu đồ thuật tốn server NodeJS .28 Hình 2.24: Giao diện người dùng 29 Hình 2.25: Modem GPON H646EW Viettel .30 Hình 2.26: Giao diện cài đặt Modem (1) 30 Hình 2.27: Hình 26: Giao diện cài đặt Modem (2) 31 Hình 2.28: Giao diện cài đặt Modem (3) 31 Hình 2.29: Giao diện web https://ping.eu/port-chk/ 32 Hình 3.1: Top 3D Board Dev 33 Hình 3.2: Bottom 3D Board Dev 33 Hình 3.3: Top 3D module SIM5320E 34 Hình 3.4: Bottom 3D module SIM5320E 34 Hình 3.5:Ảnh chụp mạch hoàn thiện 35 Hình 3.6: Sản phẩm sau đóng hộp .35 Hình 3.7: Ứng dụng C# truyền nhận ảnh máy tính qua cổng USB .36 Hình 3.8: Chế độ capture ESP8266 làm webserver .37 Hình 3.9: Chế độ stream ESP8266 làm webserver 37 Hình 3.10: Chế độ capture ESP8266 làm webserver dùng NAT port 38 Hình 3.11: Giao diện Webserver .38 Hình 3.12: Chế độ xem nhiều ảnh .39 Hình 4.1: Tế bào thần kinh 40 Hình 4.2: Mơ hình neural nhân tạo 40 Hình 4.3: Mơ hình neural network 41 Hình 4.4: Đồ thị hàm số y=f(x) 42 Hình 4.5: Gradient Descent với Momemtum 43 Hình 4.6: Kí hiệu dùng neural network 43 Hình 4.7: Hệ màu RGB .44 Hình 4.8: Ví dụ ảnh màu 45 Hình 4.9: Ảnh màu biểu diễn dạng tensor 46 Hình 4.10: Phép tính convolution 47 Hình 4.11: Ma trận X thêm viền bên ngồi 47 Hình 4.12: Padding = 1, Stride = 48 Hình 4.13: Mơ hình neural network 48 Hình 4.14: Phép tính convolution ảnh màu với k = 49 Hình 4.15: Tensor X, W đực viết dạng ma trận 50 Hình 4.16: Convolution layer tổng quát 50 Hình 4.17: Max pooling layer với size = (3,3), stride = 1, padding = .51 Hình 4.18: Fully connected layer 51 Hình 4.19: Ví dụ mơ hình convolutional neural network 52 Hình 4.20: Các deep learning framework phổ biến 52 Hình 4.21: Ảnh liệu tập train 53 Hình 4.22: Cửa sổ ạo sở liệu 54 Hình 4.23: Dữ liệu ảnh training set (quả) 54 Hình 4.24: Dữ liệu ảnh training set (nền) 55 Hình 4.25: Model cho tốn 55 Hình 4.26: Hàm softmax 56 Hình 4.27: One-hot encoding 56 Hình 4.28: Giá trị thật giá trị dự đoán 57 Hình 4.29: Đồ thị hàm log 57 Hình 5.1: Mơ hình convolutional neural network 59 Hình 5.2: Đồ thị quan hệ epoch giá trị hàm mát dùng thuật toán RMSProp 59 Hình 5.3: Đồ thị quan hệ epoch giá trị accuracy dùng thuật toán RMSProp 59 Hình 5.4: Đồ thị quan hệ epoch giá trị hàm mát dùng thuật toán Adam 60 Hình 5.5: Đồ thị quan hệ epoch giá trị accuracy dùng thuật toán Adam 60 Hình 5.6: Đồ thị quan hệ accuracy epoch .61 Hình 5.7: Đồ thị quan hệ loss epoch .61 Hình 5.8: Ảnh chụp để test mơ hình 62 Hình 5.9: Kết nhận dạng ảnh đầu vào 62 Hình 5.10: Ảnh chụp để test mơ hình 63 Hình 5.11: Kết nhận dạng ảnh đầu vào 63 DANH MỤC BẢNG BIỂU Bảng 1.1: Định nghĩa chân OV5642 Bảng 1.2: Mô tả chi tiết ghi ArduChip Bảng 3.1: So sánh thời gian truyền ảnh 3G WiFi 39 Bảng 5.1: Mối quan hệ số epoch giá trị loss accuracy .60 CHƯƠNG TỔNG QUAN VỀ HỆ THỐNG 1.1 Lựa chọn phần cứng Chọn camera: Qua thơng tin tìm hiểu từ nhiều nguồn internet, nhóm thấy module camera hãng ArduCam cung cấp đa dạng dều mở Có nhiều loại với cảm biến hình ảnh từ 1MP đến 15MP, nhiên cần lựa chọn module hỗ trợ truyền nhận liệu với vi điều khiển chất lượng tốt nên nhóm lựa chọn module Camera OV5642 mini 5MP plus ArduCam cung cấp tài liệu đầy đủ thư viện code C cho vi điều khiển Chọn vi điều khiển: Để chọn vi điều khiển đủ nhanh để đáp ứng tốc độ truyền nhận hỗ trợ chuẩn giao tiếp I2C SPI để giao tiếp đọc ghi liệu với module camera Arduino tảng mã nguồn mở phần cứng lẫn phần mềm để dễ dàng xây dựng ứng dụng tương tác với Từ điều nên bọn em lựa chọn vi điều khiển ARM 32 bit SAM3X8E lập trình tảng Arduino Chọn module WiFi: Để quan sát hình ảnh từ xa cần thiết bị kết nối internet để gửi liệu hình ảnh nên việc sử dụng module Wifi cần thiết Dữ liệu ảnh nhận từ vi điều khiển SAM3X8E truyền qua module Wifi để truyền lên mạng, nhiên có nhiều module Wifi hỗ trợ lập trình trực tiếp điều khiển chân I/O thông qua lập trình Arduino module ESP8266-07 Module giá rẻ, dễ mua, dễ lập trình có sẵn giao tiếp SPI, I2C UART nên bọn em lựa chọn module Chọn module 3G: Trên thị trường Việt Nam sử dụng module 2G, 3G SIMCOM QUECTEL Tuy nhiên với module SIMCOM có cộng đồng người sử dụng nhiều nên tiện cho trình sử dụng liệu hình ảnh liệu lớn có thơng tin vào năm 2022 xóa bỏ mạng 2G nên nhóm lựa chọn module SIMCOM 3G module SIM5320E 1.2 Tổng quan hệ thống camera Hệ thống thu thập ảnh từ camera đề tài có sơ đồ khối sau: Hình 1.1: Sơ đồ khối hệ thống thu thập ảnh Hệ thống gồm có thành phần sau:  Camera ảnh số: cảm biến biến đổi pixel điểm ảnh màu xám thành từ số liệu Tốc độ biến đổi phải đủ nhanh để đáp ứng yêu cầu xử lý theo thời gian thực  Khối SAM3X8E+SIM5320E (hoặc ESP8266): Là khối vi điều khiển trung tâm có nhiệm vụ đọc liệu ảnh từ camera OV5642, sau gửi liệu lên webserver theo phương thức HTTP  Webserver có nhiệm vụ nhận ảnh từ thiết bị gửi lên, lưu ảnh nhớ đồng thời xử lý yêu cầu truy cập từ người dùng  Phần xử lý ảnh có nhiệm vụ lấy ảnh từ webserver gửi đến, sau xử lý ảnh gửi kết xử lý webserver 1.3 Giới thiệu phần cứng sử dụng ATSAM3X8EAU Vi điều khiển ATSAM3X8EAU:  Điện áp hoạt động: 3.3V  Số chân digital I/O: 54 (12 chân PWM)  Số chân analog I/O: 12  Dòng DC tất chân I/O: 130mA  Dòng DC cho chân 3.3V: 800mA  Dòng DC cho chân 5V: 800mA  Bộ nhớ Flash: 512KB available  SRAM: 96KB (2 bank: 64KB 32KB)  Tần số hoạt động: 84Mhz ArduCam OV5642 1.3.1.1 Giới thiệu Hình 1.2: ArduCam OV5642 Keras framework mã nguồn mở cho deep learning viết python Nó chạy deep learning framework khác như: Tensorflow, Theano Với API bậc cao, dễ sử dụng, dễ mở rộng, Keras giúp người dùng xây dựng mô hình deep learning cách đơn giản 4.6 Ứng dụng vào tốn nhận dạng ảnh nơng nghiệp Xây dựng toán Bài toán mà ta dang xây dựng nhằm mục đích detect đếm số lượng (bưởi) nhằm phục vụ cho robot thu hoạch tự động Đầu vào ảnh chụp ăn (bưởi) với định dạng file ảnh (*.bmp,*.jmp,…) Yêu cầu xây dựng chương trình detect đếm số lượng file ảnh chụp sử dụng công cụ convolutional neural network Đầu ảnh vị trí đánh dấu Hình 4.72: Ảnh liệu tập train Chuẩn bị liệu Tiến hành tạo sở liệu bưởi, gồm 100 ảnh chụp 100 ảnh chụp Từ tập liệu train đó, ta chia thành tập con: training set validate set Tiến hành thu thập ảnh cho dataset: Ý tưởng:  Tiến hành quay video điện thoại Mỗi video có độ dài tối thiểu khoảng phút, độ phân giải khung hình (1280×720px)  Load video, tạo sổ hình vng có kích thước 150×150 cửa sổ hiển thị video sau tiến hành cắt ảnh mẫu từ video Mỗi frame cắt từ video đực lưu vào mảng, sau tiến hành resize ảnh  Kết ta thu thập tập ảnh mẫu có kích thước 150×150 53 Hình 4.73: Cửa sổ ạo sở liệu Hình 4.74: Dữ liệu ảnh training set (quả) 54 Hình 4.75: Dữ liệu ảnh training set (nền) Xây dựng model Vì input model ảnh nên ta nghĩ đến convoluional neural network (CNN) Mơ hình chung toán CNN: Input image  Convolutional layer (Conv) + Pooling layer (Pool)  Fully connected layer (FC)  Output Hình 4.76: Model cho tốn Input model ảnh màu kích thước 64×64 Hàm softmax: Thay muốn chương trình phân biệt ảnh đầu vào ảnh chụp bưởi (1) hay (0), ta muốn dự đoán phần trăm ảnh dự đoán hay Ví dụ 90% ảnh bưởi, 70% ảnh nền, Với mục đích hướng đến toán phân loại nhiều lớp đối tượng, ta dùng hàm softmax Nhắc lại toán neural network, layer thực bước: tính tổng linear node layer trước thực activation funcion (ví dụ sigmoid 55 function, softmax function) Do sau bước tính tổng linear cho giá trị thực nên cần dùng hàm softmax để chuyển đổi giá trị thực node output layer sang giá trị phần trăm Hình 4.77: Hàm softmax Tổng quát sau hàm activation: ak  e zk ez  i 1 PT 4.4 i Output layer có node activation hàm softmax Loss function Để định nghĩa loss function, trước hết ta dùng one-hot coding chuyển đổi label ảnh từ giá trị số sang vector kích thước với output model Hình 4.78: One-hot encoding Để ý nhãn liệu vector kích thước 2×1 với giá trị thứ i giá trị lại (i=1,2) Bây ta có giá trị thật (label) dạng one-hotencoding giá trị dự đoán output layer sau hàm softmax có kích thước 2×1 Ta cần định nghĩa hàm loss function để đánh giá độ tốt model 56 Hình 4.79: Giá trị thật giá trị dự đoán Mong muốn gần giá trị cịn giá trị cịn lại gần có nghĩa model dự đốn ảnh đầu vào Ta định nghĩa hàm loss function sau: L   yi *log( yˆi ) PT 4.5 i 1 Thử đánh giá hàm L Giả sử ảnh ảnh chụp đó: Hình 4.80: Đồ thị hàm log Nhận xét:  Hàm L giảm dần từ đến  Khi model dự đoán gần 1, tức giá trị dự đoán gần với giá trị thực L nhỏ, xấp xỉ  Khi model dự đoán gần 0, tức giá trị dự đoán ngược lại với giấ trị thật L lớn Vậy hàm L nhỏ giá trị model dự đoán gần với giá trị thật lớn model dự đốn sai, hay nói cách khác L nhỏ hì model dự đoan gần với giá trị thật Khi đó, tốn tìm model trở thành tìm giá trị nhỏ L 57 Hàm loss function định nghĩa keras gọi “categoricalcrossentropy” Đánh giá mơ hình Khi xây dựng mơ hình machine learning, ta cần phép đánh giá để xem mơ hình sử dụng có hiệu khơng để so sánh khả mơ hình Hiệu mơ hình thường đánh giá dựa tập liệu kiểm thử Giả sử đầu mơ hình đầu vào tập kiểm thử mơ tả vector y_pred (là vector dự đốn đầu phần tử class dự đoán điểm liệu tập kiểm thử) Ta cần so sánh vector dự đoán y_pred bày với vecor class thật liệu, mô tả vector y_true Một cách đơn giản hay dùng để đánh giá mơ hình phân lớp accuracy (độ xác) Cách đánh giá đơn giản tính tỉ lệ số điểm dự đốn tổng số điểm liệu tập kiểm thử Ví dụ có điểm liệu dự đốn đung tổng số 10 điểm ta kết luận độ xác mơ hình 0.6 (60% ) CHƯƠNG THỰC NGHIỆM XỬ LÝ ẢNH 5.1 Thực nghiệm tìm tham số mơ hình: Chọn mơ hình Chọn mơ hình convolution layer: Hình 5.81: Mơ hình convolutional neural network Chọn thuật toán tối ưu Thuật toán tối ưu RMSProp: 58 Hình 5.82: Đồ thị quan hệ epoch giá trị hàm mát dùng thuật toán RMSProp Hình 5.83: Đồ thị quan hệ epoch giá trị accuracy dùng thuật toán RMSProp Thuật toán tối ưu Adam: Hình 5.84: Đồ thị quan hệ epoch giá trị hàm mát dùng thuật tốn Adam 59 Hình 5.85: Đồ thị quan hệ epoch giá trị accuracy dùng thuật toán Adam Nhìn vào đồ thị ta thấy đồ thị dùng thuật tốn tối ưu Adam nhấp nhơ ổn định Sau 40 epoch dùng thuật tốn Adam, giá trị hàm mát tiến gần tới cịn độ xác accuracy tiến gần tới Do đó, ta chọn thuật tốn tối ưu Adam Thực nghiệm tìm số lần lặp lại Bảng thể giá trị hàm mát độ xác theo số lần lặp Bảng 5.4: Mối quan hệ số epoch giá trị loss accuracy Epoch Loss Accuracy Val_loss Val_accuracy 1.3066 0.4824 0.6538 0.5667 0.3219 0.8765 0.5089 0.7333 10 0.1808 0.9412 0.1544 0.9667 20 0.0789 0.9765 0.0368 1.0000 30 0.1398 0.9471 0.0238 1.0000 40 50 0.0693 0.1307 0.9647 0.9471 0.0202 0.0724 1.0000 0.9333 Dưới đồ thị quan hệ số lần lặp với giá trị hàm mát độ xác 60 Hình 5.86: Đồ thị quan hệ accuracy epoch Hình 5.87: Đồ thị quan hệ loss epoch Nhận xét:  Nhìn vào đồ thị hình 5.7 ta thấy epoch tăng, giá trị hàm loss giảm dần epoch khoảng 20÷50 giá trị hàm loss tiến gần tới khơng giảm thêm Do đó, mơ hình thuật toán tối ưu lựa chọn tốt  Nhìn vào đồ thị hình 5.1 ta thấy epoch tăng độ xác tăng epoch > 20 độ xác ổn định xấp xỉ khoảng 0.95 Độ xác chấp nhận Do đặc trưng mạng neural chấp nhận sai xót sử dụng số lần lặp lớn tốn nhiều thời gian cho việc huần luện dẫn đến tốn chi phí huấn luyện Do đó, ta chọn mơ hình convolutional layer, thuật toán tối ưu adam, số lần lặp = 40 5.2 Thực nghiệm nhận dạng Sau huấn luyện xong, ta lưu mơ hình vào file my_model.h5 61 Ảnh đầu vào quả: Hình 5.88: Ảnh chụp để test mơ hình Kết nhận dạng: Hình 5.89: Kết nhận dạng ảnh đầu vào Ảnh đầu vào nền: 62 Hình 5.90: Ảnh chụp để test mơ hình Kết nhận dạng: Hình 5.91: Kết nhận dạng ảnh đầu vào CHƯƠNG KẾT LUẬN 63 6.1 Kết luận  Những việc làm o Có kiến thức Arduino Due o Có kiến thức ESP8266 o Có kiến thức lập trình AT SIM5320E o Biết lập trình Arduino Due o Biết lập trình ESP8266 o Biết lập trình giao diện o Hiểu nguyên lý hoạt động Camera o Biết lập trình webserver o Biết xử lý ảnh o Mạch chạy ổn định o Truyền nhận ảnh o Xử lý phân loại ảnh chứa bưởi với ảnh không chứa bưởi 6.2 Hướng phát triển đồ án tương lai Trong thời đại việc ứng dụng xử lý hình ảnh quan trọng cần thiết đời sống, công nghiệp nơng nghiệp, bước lấy hình ảnh xử lý phân loại ảnh chứa bưởi không bước quan trọng nhất, tiền đề để áp dụng cho xử lý phức tạp phân loại bưởi đạt chất lượng không đạt chất lượng ứng dụng cho toán nhận dạng khác Arduino thực tốt nhiều người cung cấp nhiều mã nguồn mở nhiên việc truyền nhận hình ảnh thực cần cấu hình cao hơn, nên để giải việc mạch Rasberrypi hồn tồn đáp ứng xử lý ảnh nhận trực tiếp Rasberrypi Việc truyền liệu ảnh lên webserver thông qua module SIM5320E thực chưa hiệu việc giao tiếp với module qua tập lệnh AT Để việc truyền nhận liệu ảnh qua 3G nhanh phải lập trình trực tiếp SIM5320E để đọc liệu từ module camera gửi liệu đi, lập trình trực 64 tiếp module SIM5320E để chế độ nhận liệu từ UART USB thực đẩy liệu lên webserver 65 TÀI LIỆU THAM KHẢO [1] “Omnivision”, “OV5642 Camera Module Datasheet”, http://blog.uctronics.com/downloads/modules/OV5642/1Inch4_5_Megapixel_O V5642_CMOS_Camera_Module_DS_V1.1.pdf [2] “Omnivision”, “OV5642 Sensor Datasheet”, https://www.uctronics.com/download/cam_module/OV5642DS.pdf [3] “Omnivision”, “OV5642 Sensor Software Application Note”, http://blog.uctronics.com/downloads/modules/OV5642/OV5642_camera_module _software_application_notes_1.1.pdf [4] “ArduCam”, “ArduCAM Mini 5MP Plus Camera Module Datasheet”, http://blog.uctronics.com/downloads/shields/ArduCAM_Mini_5MP_Plus_OV56 42_Camera_Module_DS.pdf [5] “ArduCam”, “ArduCAM Mini 5MP Plus Camera Module Hardware Application Note”, http://blog.uctronics.com/downloads/shields/ArduCAM_Mini_5MP_Plus_OV56 42_Camera_Module_Hardware_Application_Note.pdf [6] “Atmel”, “Datasheet”, http://ww1.microchip.com/downloads/en/devicedoc/atmel-11057-32-bit-cortexm3-microcontroller-sam3x-sam3a_datasheet.pdf [7] “Espressif Systems”, “ESP8266 Hardware Design Guidelines”, https://www.espressif.com/sites/default/files/documentation/esp8266_hardware_ design_guidelines_en.pdf [8] https://machinelearningcoban.com/2016/12/26/introduce/ [9] “Tài liệu SIMCOM cung cấp”,” https://simcom.ee/documents/?dir=SIM5320” [10] “Tài liệu học web”,” https://www.w3schools.com/” [11] “Nguyễn Thanh Tuấn”, “Deep learning bản” 66 PHỤ LỤC CODE VÀ MẠCH [1] Link driver code file thiết kế mạch: https://drive.google.com/drive/folders/1HDGuJJJMWV1Q-qHoSWGsKxzBvoDAKs-J? usp=sharing [2] chu.trinhvan@gmail.com [3] tung.nv154270@sis.hust.edu.vn 67 ... nhiệm vụ nhận ảnh từ thiết bị gửi lên, lưu ảnh nhớ đồng thời xử lý yêu cầu truy cập từ người dùng  Phần xử lý ảnh có nhiệm vụ lấy ảnh từ webserver gửi đến, sau xử lý ảnh gửi kết xử lý webserver... puplic thư muc chứa liệu ảnh Khi người dùng muốn xem ảnh server gửi mảng tên file ảnh Phía client xử lý liệu gửi để truy cập đến file ảnh thư mục public Giao diện người dùng viết Javascrip, HTML,... 3.2 Arduino Due đọc hình ảnh từ camera gửi máy tính Hình bên giao diện phần mềm C# để nhận ảnh, với chức chụp ảnh đơn, chụp ảnh liên tục, chụp nhiều ảnh lúc sau gửi liên tục Chế độ hiệu ứng ảnh

Ngày đăng: 19/10/2022, 22:23

HÌNH ẢNH LIÊN QUAN

Bảng 1.1: Định nghĩa chân OV5642 - Đồ án nhúng xử lý ảnh dùng arduino due
Bảng 1.1 Định nghĩa chân OV5642 (Trang 12)
Hình 1.10: Module ESP8266-07 - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 1.10 Module ESP8266-07 (Trang 19)
Hình 2.16: Sơ đồ khối UART cho ATSAM3X8EAU - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 2.16 Sơ đồ khối UART cho ATSAM3X8EAU (Trang 24)
Hình 2.20: Sơ đồ khối truyền UART từ ATSAM3X8EAU đến SIM5320E - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 2.20 Sơ đồ khối truyền UART từ ATSAM3X8EAU đến SIM5320E (Trang 25)
Hình 2.19: Sơ đồ khối kết nối module camera của ATSAM3X8EAU - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 2.19 Sơ đồ khối kết nối module camera của ATSAM3X8EAU (Trang 25)
Hình 2.21: Sơ đồ khối SIM5320E - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 2.21 Sơ đồ khối SIM5320E (Trang 26)
Hình 2.23: Sơ đồ khối led báo trạng thái SIM5320E - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 2.23 Sơ đồ khối led báo trạng thái SIM5320E (Trang 27)
Hình 2.31: Các đơn vị dùng NodeJS để xây dựng hệ thống - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 2.31 Các đơn vị dùng NodeJS để xây dựng hệ thống (Trang 34)
Hình 2.34: Giao diện người dùng - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 2.34 Giao diện người dùng (Trang 37)
Hình 2.36: Giao diện cài đặt Modem (1) - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 2.36 Giao diện cài đặt Modem (1) (Trang 38)
CHƯƠNG 3. KẾT QUẢ VÀ THỬ NGHIỆM TRUYỀN NHẬN ẢNH 3.1 Kết quả thiết kế mạch - Đồ án nhúng xử lý ảnh dùng arduino due
3. KẾT QUẢ VÀ THỬ NGHIỆM TRUYỀN NHẬN ẢNH 3.1 Kết quả thiết kế mạch (Trang 41)
Hình 3.40: Top 3D của Board Dev - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 3.40 Top 3D của Board Dev (Trang 41)
Hình 3.42: Top 3D của module SIM5320E - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 3.42 Top 3D của module SIM5320E (Trang 42)
Hình dưới đây là hình 3D của mạch thiết kế cho module SIM5320E trong phần mềm ALTIUM. - Đồ án nhúng xử lý ảnh dùng arduino due
Hình d ưới đây là hình 3D của mạch thiết kế cho module SIM5320E trong phần mềm ALTIUM (Trang 42)
Hình 3.47: Chế độ capture khi ESP8266 làm webserver - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 3.47 Chế độ capture khi ESP8266 làm webserver (Trang 45)
Hình 4.52: Tế bào thần kinh - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 4.52 Tế bào thần kinh (Trang 48)
Hình 4.55: Đồ thị hàm số y=f(x) - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 4.55 Đồ thị hàm số y=f(x) (Trang 50)
Hình 4.60: Ảnh màu biểu diễn dưới dạng tensor - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 4.60 Ảnh màu biểu diễn dưới dạng tensor (Trang 54)
Ta đã biết về mơ hình neural network như sau: - Đồ án nhúng xử lý ảnh dùng arduino due
a đã biết về mơ hình neural network như sau: (Trang 56)
Hình 4.70: Ví dụ về mơ hình convolutional neural network - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 4.70 Ví dụ về mơ hình convolutional neural network (Trang 60)
Hình 4.74: Dữ liệu ảnh trong training set (quả) - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 4.74 Dữ liệu ảnh trong training set (quả) (Trang 62)
Hình 4.73: Cửa sổ ạo cơ sở dữ liệu - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 4.73 Cửa sổ ạo cơ sở dữ liệu (Trang 62)
Mơ hình chung của bài tốn CNN: Input image  Convolutional layer (Conv) + Pooling layer (Pool)  Fully connected layer (FC)  Output. - Đồ án nhúng xử lý ảnh dùng arduino due
h ình chung của bài tốn CNN: Input image  Convolutional layer (Conv) + Pooling layer (Pool)  Fully connected layer (FC)  Output (Trang 63)
Hình 4.80: Đồ thị hàm log - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 4.80 Đồ thị hàm log (Trang 65)
Đánh giá mơ hình - Đồ án nhúng xử lý ảnh dùng arduino due
nh giá mơ hình (Trang 66)
Hình 5.87: Đồ thị quan hệ giữa loss và epoch - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 5.87 Đồ thị quan hệ giữa loss và epoch (Trang 69)
Hình 5.86: Đồ thị quan hệ giữa accuracy và epoch - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 5.86 Đồ thị quan hệ giữa accuracy và epoch (Trang 69)
Hình 5.89: Kết quả nhận dạng khi ảnh đầu vào là quả - Đồ án nhúng xử lý ảnh dùng arduino due
Hình 5.89 Kết quả nhận dạng khi ảnh đầu vào là quả (Trang 70)
w