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

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

74 8 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

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 hóa. Đồ án nhúng: Thiết kế và lập trình mạch thu thập và xử lý ảnh dùng Arduino Due và camera OV5642. Dữ liệu được truyền qua wifi và 3g dùng ESP8266 và SIM5320E. Lập trình webserver và và giao diện web để hiển thị ảnh.

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 DANH MỤC HÌNH VẼ DANH MỤC BẢNG BIỂU 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 ArduCAM-Mini-5MP-Plus (OV5642) phiên cải tiến hiệu ArduCAM-M-5MP Nó camera SPI độ phân giải cao 5MP, giảm phức tạp giao diện điều khiển camera Nó tích hợp cảm biến hình ảnh CMOS 5MP OV5642, dễ dàng sử dụng giao diện phần cứng thư viện mã nguồn mở ArduCAM sử dụng với tảng Arduino, Raspberry, ESP8266, Maple, Chipkit, Beaglebone…với điều kiện chúng có giao diện SPI I2C Ứng dụng: • Máy ảnh IOT • Máy ảnh robot • Máy ảnh thiên nhiên • Máy ảnh HDR Đặc điểm: • Cảm biến hình ảnh OV5642 5MP • Giao diện I2C để cấu hình cảm biến • Giao diện SPI cho lệnh camera luồng liệu • Hiệu cao • Chức điều khiển hình ảnh tự động: điều khiển phơi sáng, cân trắng, • Tỷ lệ khung hình điều chỉnh • Điều khiển chất lượng ảnh: bão hòa màu, hue, gamma, sharpness,… Thơng số kỹ thuật: • Nguồn cấp: 3,3V ~ 5V • Tốc độ SPI tối đa: 8MHz • Bộ đệm khung: 8MB • Len M12 mặc định: 90° • Kích thước: 34 x 24 mm • Khối lượng: 20g • Nhiệt độ: -10℃ ~ +55℃ • Kích thước mảng hot ng: 2592x1944 ã Kớch thc pixel: 1.4àm x 1.4àm • Định dạng hỗ trợ: RAW, YUV, RGB, JPEG 1.3.1.2 Định nghĩa chân Dưới bảng định nghĩa chân ArduCam OV5642 Bảng 1.1: Định nghĩa chân OV5642 STT Chân CS MOSI MISO SCLK GND VCC SDA SCL 1.3.1.3 Sơ đồ khối Loại Đầu vào Đầu vào Đầu Đầu vào Đất Nguồn Hai chiều Đầu vào Mô tả Đầu vào chọn chip slave SPI Đầu master, đầu vào slave SPI Đầu vào master, đầu slave SPI Xung clock nối tiếp SPI Đất Cấp nguồn 3,3 ~ 5V Dữ liệu I/O giao diện nối tiếp dây Xung clock giao diện nối tiếp dây Hình 1.3: Sơ đồ khối ArduCam OV5642 Hình sơ đồ khối ArduCAM OV5642 Cấu tạo OV5642 gồm ống kính, cảm biến hình ảnh ArduChip Cảm biến hình ảnh OV5642 CMOS 5MP từ Omnivision 1.3.1.4 Chức Chế độ chụp đơn: Là chế độ chụp mặc định camera Sau phát lệnh chụp qua cổng SPI, ArduCam đợi frame lưu toàn liệu ảnh vào đệm frame, sau xác nhận bit cờ báo hồn thành ghi Người dùng cần kiểm tra cờ từ ghi để biết việc chụp hoàn thành hay chưa Chế độ chụp multi: Là chế độ chụp nâng cao Bằng việc cài đặt số frame ghi chụp, ArduCam chụp liên tiếp frame sau phát lệnh chụp Chú ý số frame cần cài đặt xác để đảm bảo khơng vượt không gian nhớ tối đa Chế độ chụp multi dùng để chụp cảnh giống với độ phơi sáng khác để tạo ảnh HDR Chế độ chụp phim ngắn: Là chế độ chụp liên tiếp đệm frame 8MB đầy Người dùng sử dụng chế độ để ghi video ngắn (vài giây) lưu file AVI vào thẻ SD Kích hoạt phần cứng ngồi: Đầu vào kích hoạt phần cứng ngồi (tích cực cao) dùng để bắt đầu chụp thủ công, phần mềm cần kiểm tra bit cờ báo hoàn thành trước đọc liệu ảnh Hình 1.4: Chân kích hoạt phần cứng Nén JPEG: Chức nén JPG thực cảm biến hình ảnh Với việc cài đặt ghi thích hợp cho cảm biến, người dùng đạt độ phân giải khác với đầu ảnh JPEG Người dùng khuyến nghị để sử dụng đầu JPEG để nhận độ phân giải cao chế độ RGB, giới hạn đệm khung Hoạt động đọc thường đọc burst: Hoạt động đọc thường đọc liệu ảnh cách gửi lệnh đọc chu kỳ đọc SPI, chế độ đọc burst cần gửi lệnh đọc sau đọc nhiều liệu ảnh chu kỳ đọc SPI Nên sử dụng chế độ đọc burst để đạt hiệu suất cao Hoạt động đọc rewind: 10 Hình 4.74: Dữ liệu ảnh training set (quả) 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 tốn CNN: Input image  Convolutional layer (Conv) + Pooling layer (Pool)  Fully connected layer (FC)  Output 60 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ự đốn hay Ví dụ 90% ảnh bưởi, 70% ảnh nền, Với mục đích hướng đến tố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 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 ∑ ezi PT 4.4 i =1 Output layer có node activation hàm softmax 61 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ự đố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 Hình 4.79: Giá trị thật giá trị dự đoán Mong muốn gần giá trị giá trị 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 đó: 62 Hình 4.80: Đồ thị hàm log Nhận xét: • Hàm L giảm dần từ đến • Khi model dự đốn gần 1, tức giá trị dự đốn gần với giá trị thực L nhỏ, xấp xỉ • Khi model dự đố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ự đoá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 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ự đoá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ự đoán tổng số điểm liệu tập kiểm thử Ví dụ có điểm liệu dự đoán đung tổng số 10 điểm ta kết luận độ xác mơ hình 0.6 (60% ) 63 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 tốn tối ưu Thuật tốn tối ưu RMSProp: Hình 5.82: Đồ thị quan hệ epoch giá trị hàm mát dùng thuật tốn RMSProp 64 Hình 5.83: Đồ thị quan hệ epoch giá trị accuracy dùng thuật tốn RMSProp Thuật tố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 Hình 5.85: Đồ thị quan hệ epoch giá trị accuracy dùng thuật tố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 toá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 65 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 Hình 5.86: Đồ thị quan hệ accuracy epoch Hình 5.87: Đồ thị quan hệ loss epoch Nhận xét: 66 • 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 tố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 tố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 Ảnh đầu vào quả: Hình 5.88: Ảnh chụp để test mơ hình Kết nhận dạng: 67 Hình 5.89: Kết nhận dạng ảnh đầu vào Ảnh đầu vào nền: Hình 5.90: Ảnh chụp để test mơ hình Kết nhận dạng: 68 Hình 5.91: Kết nhận dạng ảnh đầu vào CHƯƠNG KẾT LUẬN 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 69 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 tiếp module SIM5320E để chế độ nhận liệu từ UART USB thực đẩy liệu lên webserver 70 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” PHỤ LỤC CODE VÀ MẠCH 71 [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 72 ... 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... 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. .. chân ArduCam OV5642 Bảng 1.1: Định nghĩa chân OV5642 STT Chân CS MOSI MISO SCLK GND VCC SDA SCL 1.3.1.3 Sơ đồ khối Loại Đầu vào Đầu vào Đầu Đầu vào Đất Nguồn Hai chiều Đầu vào Mô tả Đầu vào chọn

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

w