(Luận Văn Thạc Sĩ) Nghiên Cứu Chế Tạo Thiết Bị Nhận Diện Đối Tượng Ứng Dụng Thư Viện Xử Lý Ảnh Tensorflow.pdf

62 1 0
(Luận Văn Thạc Sĩ) Nghiên Cứu Chế Tạo Thiết Bị Nhận Diện Đối Tượng Ứng Dụng Thư Viện Xử Lý Ảnh Tensorflow.pdf

Đ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

Untitled HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG TRƯƠNG MINH ĐỨC NGHIÊN CỨU CHẾ TẠO THIẾT BỊ NHẬN DIỆN ĐỐI TƯỢNG ỨNG DỤNG THƯ VIỆN XỬ LÝ ẢNH TENSORFLOW LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng d[.]

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - TRƯƠNG MINH ĐỨC NGHIÊN CỨU CHẾ TẠO THIẾT BỊ NHẬN DIỆN ĐỐI TƯỢNG ỨNG DỤNG THƯ VIỆN XỬ LÝ ẢNH TENSORFLOW LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) HÀ NỘI-2021 HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG - TRƯƠNG MINH ĐỨC NGHIÊN CỨU CHẾ TẠO THIẾT BỊ NHẬN DIỆN ĐỐI TƯỢNG ỨNG DỤNG THƯ VIỆN XỬ LÝ ẢNH TENSORFLOW CHUYÊN NGÀNH : KỸ THUẬT VIỄN THÔNG MÃ SỐ: 8.52.02.08 LUẬN VĂN THẠC SĨ KỸ THUẬT (Theo định hướng ứng dụng) NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS ĐẶNG HOÀI BẮC HÀ NỘI-2021 i LỜI CAM ĐOAN Tôi cam đoan: Luận văn tốt nghiệp với đề tài “Nghiên cứu chế tạo thiết bị nhận diện đối tượng ứng dụng thư viện xử lý ảnh Tensorflow” cơng trình nghiên cứu cá nhân tôi, số liệu, kết nêu luận văn trung thực chưa cơng bố cơng trình khác Tơi xin chịu trách nhiệm cơng trình nghiên cứu riêng ! Tác giả luận văn ii LỜI CẢM ƠN Lời cảm ơn em xin gửi đến PGS.TS Đặng Hoài Bắc người hướng dẫn em nhiều từ sinh viên đại học học viện trường nhiều năm học quay trở lại học tập môn học tiến hành xây dựng bước đầu hoàn thành luận văn “Nghiên cứu chế tạo thiết bị nhận diện đối tượng ứng dụng thư viện xử lý ảnh Tensorflow” Lời cảm ơn em xin gửi đến Thầy, Cô giáo Khoa quốc tế đào tạo sau đại học, em Thầy Cô giáo học viên dạy em để lại em tình cảm nồng thắm sâu sắc Các Thầy Cơ ln nhiệt tình tâm huyết với giảng, tận tâm động lực để em học tập nghiên cứu nhiều Thời gian thực luận văn khoảng thời gian phải dãn cách, việc học tập tiến hành thử nghiệm gặp khó khăn định, bên cạnh ln có bạn học viên giúp đỡ, lời động viên bạn bè giúp em hoàn thành tốt luận văn Trong lúc hoàn thành có điểm chưa thơng suốt, mong nhận đóng góp Thầy Cơ bạn học viên quan tâm Xin chân thành cảm ơn! iii MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC TỪ VIẾT TẮT v DANH MỤC CÁC BẢNG vi DANH MỤC CÁC HÌNH vii MỞ ĐẦU CHƯƠNG 1: TỔNG QUAN VỀ HỌC MÁY VÀ XỬ LÝ ẢNH 1.1 Tổng quan học máy 1.1.1 1.2 Sự hình thành phát triển học máy Các mơ hình học máy học sâu 1.2.1 Mơ hình học có giám sát 1.2.2 Mơ hình học khơng giám sát 1.2.3 Mơ hình học bám giám sát 10 1.3 Thuật toán phổ biến học máy 11 1.4 Thư viện TensorFlow 15 1.4.1 Tổng quan thư viện TensorFlow 15 1.4.2 Đặc điểm TensorFlow 17 CHƯƠNG 2: XÂY DỰNG MƠ HÌNH HỆ THỐNG NHẬN DIỆN ĐỐI TƯỢNG BẰNG CƠNG NGHỆ XỬ LÝ ẢNH 19 2.1 Bài toán xử lý ảnh học máy 19 2.1.1 Mạng Neural truyền thống 20 2.1.2 Mạng neural tích chập (CNN – Convolution Neural Network) 22 2.2 Máy tính nhúng xử lý ảnh 25 2.2.1 Một số máy tính nhúng 25 2.2.2 Cài đặt thư viện TensorFlow Raspberry Pi 28 2.3 Mơ hình hệ thống thiết bị nhận diện đối tượng 29 2.3.1 Thuật toán Gradient Descent 29 2.3.2 Gradient Descent ngôn ngữ Python 30 2.3.3 Biến thể Gradient Descent 32 2.4 Kết luận 34 CHƯƠNG 3: THIẾT KẾ CHẾ TẠO THỬ NGHIỆM HỆ THỐNG 35 3.1 Thiết kế hệ thống 35 3.1.1 3.2 3.2.1 Lựa chọn thiết bị 35 Thiết lập phần mềm hệ thống 39 Thiết lập Python 39 iv Thiết lập TensorFlow 40 3.2.2 3.3 Lập trình đánh giá hệ thống 43 3.3.1 Lập trình hệ thống 43 3.3.2 Đánh giá hệ thống 46 3.4 Kết luận 47 KẾT LUẬN 48 DANH MỤC CÁC TÀI LIỆU THAM KHẢO 49 PHỤ LỤC 50 v DANH MỤC TỪ VIẾT TẮT Viết tắt Tiếng Anh Tiếng Việt AI Artificial Intelligence Trí tuệ nhân tạo ML Machine Learning Học máy IoT Internet of Thing Vạn vật kết nối CNN Convolution Neural Network Mạng Neural tích chập MNIST Modified National Institute of Tập liệu chữ viết tay tiêu Standards and Technology chuẩn SVM Support Vector Machine Máy hỗ trợ vector CPU Central Processing Unit Bộ xử lý trung tâm GPU Graphics Processing Unit Bộ xử lý đồ họa CUDA Compute Unified Device Kiến trúc thiết bị tính tốn hợp Architecture M2M Machine to Machine Máy tới máy MLP Multilayer Perceptron Mạng nhiều lớp lan truyền thẳng ReLU Rectified Linear Unit Điều chế biên độ xung PCM Pulse Code Modulation Đơn vị hiệu chỉnh tuyến tính GD Gradient Descent SNR Signal to noise ratio Tỉ số tín hiệu nhiễu OpenCV OpenSource Computer Vision Thị giác máy tính mã nguồn mở WAN Wide High Frequency Mạng diện rộng vi DANH MỤC CÁC BẢNG Bảng 1.1: Một số mốc quan trọng học máy Bảng 2.1: So sánh ba loại máy tính nhúng phổ biến 27 vii DANH MỤC CÁC HÌNH Hình 1.1: Mơ hình phép thử Turning Hình 1.2: Xe tự lái Tesla model X Hình 1.3: Mơ tả luồng hoạt động học có giám sát Hình 1.4: Đồ thị hồi quy tuyến tính Hình 1.5: Mơ hình thuật tốn học bán giám sát 10 Hình 1.6: Điểm hội tụ phương pháp Gradient Descent 13 Hình 1.7: So sánh tốc độ thuật tốn tiêu tốn nhớ 15 Hình 1.8: Khả nhận diện số qua ảnh nhiễu dùng TensorFlow 17 Hình 2.1: Chạy thử xe tự lái hệ thứ tư VinFast 19 Hình 2.2: Kiến trúc mạng Neural 20 Hình 2.3: Dữ liệu tốn phân loại 21 Hình 2.4: Bài tốn phân loại hai giá trị dùng mạng tích chập 22 Hình 2.5: Kiến trúc CNN 23 Hình 2.6: Kết sau nhân tích chập 23 Hình 2.7: Kết sau tiến hành hợp 24 Hình 2.8: Trình cài đặt gói TensorFlow trang chủ 28 Hình 2.10: tập liệu tạo ngẫu nhiên 31 Hình 2.11: Ví dụ Gradient Desent biến thể momentum 33 Hình 3.1: mơ hình hệ thống nhận diện đối tượng ứng dụng thư viện TensorFlow 35 Hình 3.2: Camera xử lý ảnh 36 Hình 3.3: Một số định dạng cảm biến ảnh phổ biến 37 Hình 3.4: Camera sử dụng cho đề tài với độ phân giải HD720P 37 Hình 3.7: Cài đặt thành công Python 40 Hình 3.8: Phát đối tượng đường ứng dụng OpenCV 43 Hình 3.9: Phát đặc trưng đối tượng 46 Hình 3.10: Đồ thị trình huấn luyện 47 MỞ ĐẦU Thuật ngữ cách mạng cơng nghiệp lần thứ tư thức đặt móng hội chợ cơng nghệ Hannover thuộc Cộng hịa Liên bang Đức vào năm 2011, trải qua thập kỉ, khái niệm cách mạng công nghiệp lần thứ tư hay ngắn gọn cách mạng 4.0 không vấn đề giới nghiên cứu đại phận người dân Cách mạng công nghiệp diễn mạnh mẽ khắp nơi giới, đặc biệt khu vực Châu Á Thái Bình Dương, Việt Nam quốc gia chịu ảnh hưởng trực tiếp Đặc trưng cách mạng công nghiệp trước ứng dụng kỹ thuật khác vào sản xuất Cuộc cách mạng Công nghiệp lần thứ dùng máy nước để khí hóa sản xuất Cách mạng lần thứ hai sử dụng điện phục vụ cho sản xuất hàng loạt Cách mạng lần thứ ba sử dụng điện tử công nghệ thông tin để tự động hóa sản xuất Và Cách mạng Cơng nghiệp lần thứ tư dựa tảng Cách mạng lần thứ ba kèm với cách mạng số khởi nguồn từ kỷ trước để làm móng, đặc trưng cách mạng lần ranh giới yếu tố vật chất, kĩ thuật số, sinh học bị xóa mờ Sự cải tiến công nghệ đến mức tinh gọn đồng thời phát triển công nghệ làm thay đổi chất lượng lực lượng lao động toàn giới, cơng nghệ như: AI- trí tuệ nhân tạo, công nghệ robot, BigData-dữ liệu lớn, công nghệ Nano, công nghệ sinh học in 3D, phương tiện tự điều khiển thiết bị IoT diện mạo của cách mạng công nghiệp 4.0 Đặc biệt, mạng vạn vật kết nối-IoT có lớn mạnh hết, theo báo cáo McKinsey, Công ty hàng đầu giới lĩnh vực tư vấn quản lý chiến lược kinh doanh, tỷ lệ doanh nghiệp sử dụng IoT tăng từ 13% lên 25% [7], giai đoạn từ năm 2014-2019 Các ứng dụng công nghệ IoT đa dạng, bao gồm công nghiệp, nông nghiệp, bán lẻ dịch vụ y tế Nghiên cứu ngành dịch vụ cơng cộng, ví dụ đồng hồ đo thơng minh, phân khúc lắp đặt sử dụng cao nhất, chiếm 1/4 tổng số thiết bị đầu cuối Báo cáo nhấn mạnh, số lượng thiết bị IoT toàn giới tăng vọt Ước tính có 75 tỷ thiết bị IoT lắp đặt vào năm 2025 [8], gấp lần so với năm 2015 Sự tăng trưởng tạo hội cho doanh nghiệp lớn nhỏ để xây dựng sản phẩm IoT Ở nước ta, việc nghiên cứu công nghệ liên quan cách mạng công nghiệp 4.0 đặt biệt trọng, nhiều tập đoàn lớn Viettel, FPT, BKAV… nhiều viện nghiên cứu nước tập trung đầu tư nguồn lực 39 c) Màn hình hiển thị Học viên sử dụng hình độ phân giải 1024 × 600, kết nối HDMI, IPS siêu sáng, tiêu thụ điện thấp Màn hình hỗ trợ chuẩn sau:  Hỗ trợ Raspbian, cảm ứng điểm, không cần cài driver  Hỗ trợ Ubuntu / Kali / WIN10 IoT, cảm ứng đơn điểm, không cần cài driver  Hỗ trợ Retropie, khơng cần cài driver  Tương thích phiên Raspberry Pi Hình 3.6: Kết nối hình HDMI inch Raspberry Pi Để hình chạy ổn định sau kết nối cần tiến hành thực Config cho hình: max_usb_current=1 hdmi_group=2 hdmi_mode=1 hdmi_mode=87 hdmi_cvt 1024 600 60 0 3.2Thiết lập phần mềm hệ thống 3.2.1 Thiết lập Python Học viên sử dụng python từ thời sinh viên áp dụng ngôn ngữ lập trình dự án ngày, nói ngơn ngữ lập trình quen thuộc học viên Python trở nên phổ biến có khả chạy đa tảng, đồng thời khai báo biến linh động, lập trình dễ dàng với hệ thống thư viện cộng đồng hỗ trợ lớn mạnh Sử dụng python cho ứng dụng học máy trở nên phổ biến, đa số thư viện hỗ trợ lập trình tảng Python Phần mềm khả cấp phát nhớ linh động, cấu hình nhanh chóng, phù hợp với chương trình sử dụng nhớ cấp phát biến động chương trình học máy 40 Thơng thường, sau có tổng hợp nghiên cứu mạng tích chập mơ hình hệ thống, cần tiến hành tối ưu hóa tốc độ đáp ứng, lúc lựa chọn tốt nhấp sử dụng ngơn ngữ máy, đồng thời tính tốn phần cứng tương thích, tốt sử dụng hệ thống chạy dựa FPGA nhận hiệu tốt Các hệ thống thường có chi phí cao, thiết kế khó khăn, thường phù hợp với hệ thống lớn, toán phức tạp thật Trong phạm vi luận văn này, học viên lựa chọn python vừa để mơ phỏng, tính tốn chạy thử mơ hình huấn luyện, mơ hình mạng Sử dụng python linh hoạt thay đổi kiến trúc mạng, dễ dàng thử nghiệm đánh giá hệ thống $sudo apt-get install build-essential checkinstall $sudo apt-get libncursesw5-dev install libssl-dev libreadline-gplv2-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev Hình 3.7: Cài đặt thành công Python 3.2.2 Thiết lập TensorFlow Thư viện Tensorflow thư viện Google tạo với mục đích hỗ trợ người dùng nghiên cứu thiết kế chương trình Machine Learning Như trình bày trên, số lượng người dùng thư viện nhiều số lượng nghiên cứu, sản phẩm tạo từ Tensorflow phát triển với tốc độ nhanh Với toán học máy, số lượng phép tính ma trận, vector lớn Việc cải thiện tốc độ tính tốn ma trận làm tăng tốc độ xử lý chương trình lên nhiều Thư viện Tensorflow hỗ trợ tính tốn phép toán ma trận tốt sở phương pháp tính tốn ma trận tối ưu từ nhà tốn học Ngồi phép tính tốn ma trận, vector Tensorflow tích hợp nhiều phép huấn luyện phổ biến nghiên cứu công bố thời gian gần Với thuật tốn tối ưu phức tạp để hiểu thực lập trình để tạo hàm huấn luyện lấy nhiều thời gian nhà nghiên cứu lập trình viên, tính Tensorflow giúp cho người sử dụng tiết kiệm nhiều thời gian 41 Để thiết lập TensorFlow cần cập nhật Raspberry Pi để tránh bị xung đột cài tiến hành phân giải gói cài đặt TensorFlow Để cài đặt gói này, chạy lệnh sau terminal: sudo apt update sudo apt install python3-dev python3-pip python3-venv Điều hướng đến thư mục muốn lưu trữ môi trường ảo Python 3.0 tiến hành thiết lập: mkdir tensorflow_files cd tensorflow_files Khi bên thư mục Để tạo môi trường ảo, chạy lệnh sau: python3 -m venv virtualenv Lệnh tạo thư mục có tên virtualenv Nó chứa tệp nhị phân Python, trình quản lý gói PIP, thư viện Python tiêu chuẩn tệp hỗ trợ khác Tiến hành kích hoạt mơi trường ảo: source virtualenv/bin/activate Sau kích hoạt mơi trường, thư mục bin môi trường ảo thêm vào đầu biến $PATH, hiển thị tên môi trường ảo sử dụng, tức virtualenv Cập nhật gói PIP trước cài đặt: pip install –upgrade pip Tiến hành cài đặt TensorFlow: pip install — upgrade TensorFlow 3.2.3 Thư viện Numpy Numpy thư viện tảng sử dụng cho tính tốn số học sử dụng cho ngơn ngữ lập trình Python Nó bao gồm: Mảng N-chiều mạnh mẽ Các hàm tối ưu tinh vi Thư viện tích hợp cho ngơn ngữ C/C++ Fortan Hữu ích tính tốn đại số tuyến tính, biến đổi Fourier, tạo chuỗi số ngẫu nhiên 42 Không công cụ phục vụ hữu ích cho tín tốn khoa học, Numpy cung cấp khả chứa liệu nhiều chiều hiệu để chứa loại liệu tổng quát hỗ trợ định nghĩa nhiều kiểu liệu Numpy cho phép tích hợp nhanh chóng tính tốn nhiều loại sở liệu khác Trong luận văn này, học viên sử dụng thư viện Numpy để làm công cụ chuyển liệu từ tập liệu huấn luyện tập liệu thử nghiệm kiểu liều chuẩn phù hợp với thư viện Tesorflow nhằm phục vụ tính tốn dễ dàng Khi pip cài đặt, tiến hành cài đặt thư viện numpy với lệnh tương tự để cài đặt Numpy sudo apt install python-numpy 3.2.4 Thư viện OpenCV Thư viện mã nguồn mở thị giác máy tính OpenCV, hệ thư viện tuân thủ theo giấy phép BSD tương tự GNU hay apache nên hồn tồn miễn phí kể áp dụng vào thương mại Hệ thư viện OpenCV hỗ trợ tảng C++, C, hay Python, Java hỗ trợ đa hệ điều hành Windows, Linux, Mac OS, chạy tốt với iOS Android Nếu cần tính tốn tốt và mục đích tập trung vào ứng dụng thời gian thực lựa chọn OpenCV hiệu Thư viện viết tối ưu hóa C/C++ nên có lợi xử lý đa lõi tốt Một số thành phần OpenCV phải kể đến sau: Core: Các hàm xử lý Imgproc: Xử lý ảnh Videoio: Đọc vào ghi video HighUI: Giao diện người dùng bậc cao ML: Học máy Cudaarithm: Các toán tử ma trận CudaFilter: Lọc ảnh Và số cơng cụ khác 43 Hình 3.8: Phát đối tượng đường ứng dụng OpenCV Trong phạm vi luận văn này, số lượng ảnh nhãn khơng cân bằng, q trình sử dụng tập mẫu cần sử dụng thư viện OpenCV để làm cơng cụ thực thuật tốn đơn giản OpenCV giúp cân chỉnh từ cân số lượng hình ảnh mức tương đối cân bằng, giúp thuận tiện cho việc đào tạo mơ hình thực huấn luyện Trong đó, tiến hành xử lý mơ hình tập liệu thực tế, học viên dự kiến sử dụng OpenCV vào lọc tiền xử lý thực chuẩn đầu vào liệu phù hợp với mơ hình huấn luyện 3.3 Lập trình đánh giá hệ thống 3.3.1 Lập trình hệ thống Sau nghiên cứu sử dụng công cụ học viên xây dựng chương trình thử nghiệm tiến hành huấn luyện vớp tập mẫu xây dựng (Chương trình chi tiết đính kèm phụ lục) Xây dựng hàm để đưa model vào huấn luyện: viết function để đưa models mà ta train vào Tflite.loadModel() để lưu model // Data load vào model TF loadModel() async{ await Tflite.loadModel( model: "assets/model_unquant.tflite", labels: "assets/labels.txt");} Thêm funtion để lấy ảnh: // Lấy image từ máy chooseImage() async{ var image = await ImageSource.gallery); if(image == null) { ImagePicker.pickImage(source: 44 return null; } setState(() { _isLodaing = true; _image = image; }); runModelonImage(image); } //Đưa ảnh vào TFlite phân tích với model train runModelonImage(File image) async { var output = await Tflite.runModelOnImage( path: image.path, numResults: 2, imageMean: 127.5, imageStd: 127.5, threshold: 0.5); setState(() { _isLodaing = false; _outputs = output; }); } Hiển thị ảnh: class _HomePageState extends State<HomePage> { bool _isLodaing = false; File _image; List _outputs; @override void initState() { // TODO: implement initState super.initState(); _isLodaing = true; loadModel().then((value){ 45 setState(() { _isLodaing = false; }); }); } Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Detech Animals"), ), body: _isLodaing ? Container ( alignment: Alignment.center, child: CircularProgressIndicator(), ) : Container( width: MediaQuery.of(context).size.width, child: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ _image == null ? Container() : Image.file(_image), SizedBox(height: 20,), _outputs != null ? Text( "${_outputs[0]["label"]}", style: TextStyle( color: Colors.black, fontSize: 20.0, background: Colors.white,), ) : Container() Paint() color = 46 ],),), floatingActionButton: FloatingActionButton( onPressed: () { chooseImage();}, child: Icon(Icons.image),), );} Hình 3.9: Phát đặc trưng đối tượng 3.3.2 Đánh giá hệ thống Sau tiến hành huấn luyện kết cho thấy thời gian huấn luyện cho mạng chiếm khoảng 67 phút, với lần huấn luyện tập Toàn liệu 39.029 ảnh duyệt lại 50 lần liên tiếp (1.952.650 ảnh huấn luyện) Kết độ khớp với tập huấn luyện 98,64% cho tỉ lệ xác huấn luyện Tiến hành lấy mơ hình huấn luyện thử nghiệm với tập mẫu thử, độ kết xác 92,62% Trong chương trình thử nghiệm, sau tiến hành huấn luyện, học viên tiến hành xây dựng thêm hàm tính tốn thời gian, nhằm phục vụ xử lý ảnh đầu vào hệ thống định Kết đạt 0,25s tính thời gian trung bình từ lúc đưa ảnh vào đến lúc đạt dự đốn đầu 47 Hình 3.10: Đồ thị trình huấn luyện Dựa vào đồ thị q trình huấn luyện, quan sát trình sai số thay đổi, thấy độ hội tụ mạng, độ xác trình thay đổi Mạng huấn luyện khoảng 35.000 bước với 50 lần lặp huấn luyện, với độ xác đạt 92,5% Từ bước thứ 10.000, giai đoạn có giá trị sai số, độ xác mạng thay đổi chậm, từ cho thấy sau khoảng 13 lần lặp mạng đạt hội tụ Ở giai đoạn sau, tốc độ thông số mạng thay đổi chậm, phần học củng cố thêm Nhìn vào q trình huấn luyện, nhận thấy suốt thời gian huấn luyện mạng có điểm dị thường huấn luyện, biểu số thời điểm giá trị sai số tăng, với độ xác giảm khoảng giá trị, sau quay trở lại khoảng giá trị cũ Để đạt kết trình huấn luyện, trước dừng chạy huấn luyện, người lập trình nên kiểm tra thay đổi thơng số này, nhằm đảm bảo ổn định hệ thống 3.4Kết luận Chương cuối luận văn trình bày trình xây dựng phần mềm thử nghiệm, trình huấn luyện đánh giá khả hoạt động mạng Kết cho thấy mạng thiết kế có kiến trúc khơng phức tạp cho kết đáp ứng với độ xác tương đối cao Kết cho thấy mơ hình hoạt động tốt nhiên cần có điều chỉnh triển khai nghiên cứu thêm để nâng cao độ xác tốc độ đáp ứng mạng phục vụ cho nghiên cứu tác giả 48 KẾT LUẬN Trải qua thời gian nghiên cứu tìm hiểu nhận dạy tận tình thầy hướng dẫn khoa học, vấn đề đặt đề cương luận luận văn học viên hoàn thành, đáp ứng yêu cầu đặt Qua trình thực tế học viên tiếp thu ứng dụng nhiều kiến thức sở nghành nói chung chun mơn riêng liên quan đến học máy xử lý ảnh nói riêng, bật điểm sau: Có hiểu biết tổng quan xử lý ảnh thuật toán xử lý ảnh nói chung mạng tích chập nói riêng Xây dựng thành công thiết bị nhận diện đối tượng máy tính nhúng Raspberry Pi Về định hướng nghiên cứu tiếp theo, học viên dự kiến thực công việc sau: Tiếp tục nghiên cứu vấn đề nhận diện đối tượng ngữ cảnh sử dụng kiến trúc mạng RCNN phát triển từ kiến trúc mạng CNN để thử nghiệm nhận diện biển báo giao thơng camera điều kiện thực tế từ đưa định hướng nghiên cứu cho thân Cuối cùng, học viên xin chân thành cảm ơn Thầy, Cô bạn Học viên quan tâm đến vấn đề trình bày luận văn 49 Tiếng Việt: TÀI LIỆU THAM KHẢO [1] Đặng Hoài Bắc, Nguyễn Ngọc Minh (2013), Thiết kế hệ thống nhúng, nhà xuất thông tin truyền thơng, Hà Nội, Việt Nam, 275 trang [2] Hồng Minh Sơn (2006), Mạng truyền thông công nghiệp, nhà xuất khoa học kĩ thuật, Hà Nội, Việt Nam, 256 trang Tiếng Anh: [3] D Ciregan, U Meier and J Schmidhuber (2012), “Multi-column deep neural network for image classification”, IEEE Conference on Computer Vision and Pattern Recognition, Providence, RI, 2012, pp 3642-3649 [4] Klaus Schwab (2017), The fourth industrial revolution, Founder and executive chairman of the World Economic Forum, 192 pages [5] Pramod Singh, Avish Manure (2020), Learn TensorFlow 2.0, Apress 177 pages [6] Samuel Greengard (2015), The Internet OF Things, The MIT press essential knowledge series, 296 pages [7] Fredrik Dahlqvist, Mark Patel, Alexander Rajko, and Jonathan Shulman (2019), Growing opportunities in the Internet of Things, McKinsey & Company, https://www.mckinsey.com/industries/private-equity-and principalinvestors/our-insights/growing-opportunities-in-the-internet-of-things Truy cập ngày 18 tháng năm 2021 [8] Statista Research Department (2016), Internet of Things (IoT) connected devices installed base worldwide from 2015 to 2025, Statista Company, https://www.statista.com/statistics/471264/iot-number-of-connected-devicesworldwide/#:~:text=By%202025%2C%20forecasts%20suggest%20that,IoT% 20installed%20base%20in%202019 Truy cập ngày 18 tháng năm 2021 50 PHỤ LỤC // Data load vào model TF loadModel() async{ await Tflite.loadModel( model: "assets/model_unquant.tflite", labels: "assets/labels.txt"); } // Lấy image từ máy chooseImage() async{ var image = await ImagePicker.pickImage(source: ImageSource.gallery); if(image == null) { return null; } setState(() { _isLodaing = true; _image = image; }); runModelonImage(image); } //Đưa ảnh vào TFlite phân tích với model train runModelonImage(File image) async { var output = await Tflite.runModelOnImage( path: image.path, numResults: 2, imageMean: 127.5, imageStd: 127.5, threshold: 0.5 ); setState(() { _isLodaing = false; _outputs = output; }); } class _HomePageState extends State<HomePage> { bool _isLodaing = false; File _image; List _outputs; 51 @override void initState() { // TODO: implement initState super.initState(); _isLodaing = true; loadModel().then((value){ setState(() { _isLodaing = false; }); }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text("Detech Animals"), ), body: _isLodaing ? Container( alignment: Alignment.center, child: CircularProgressIndicator(), ) : Container( width: MediaQuery.of(context).size.width, child: Column( crossAxisAlignment: CrossAxisAlignment.center, mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ _image == null ? Container() : Image.file(_image), SizedBox(height: 20,), _outputs != null ? Text( "${_outputs[0]["label"]}", // Hiển thị kết test với Dog Cat style: TextStyle( color: Colors.black, fontSize: 20.0, background: Paint() color = Colors.white, ), ) : Container() ], 52 ), ), floatingActionButton: FloatingActionButton( onPressed: () { chooseImage(); }, child: Icon(Icons.image), ), ); } Huấn luyện import tensorflow as tf import pickle import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt from matplotlib import pylab import numpy as np import cv2 def build_graph(training): def conv2d(x, W, b, stride=1): x = tf.nn.conv2d(x, W, strides=[1, stride, 1], padding='SAME') x = tf.nn.bias_add(x, b) return tf.nn.relu(x) stride, def maxpool2d(x, k=2): return tf.nn.max_pool( x, ksize = [1, k, k, 1], strides = [1, k, k, 1], padding='SAME') def batch_norm(inputs, training, decay=0.85, eps=1e-5): gamma = tf.Variable(tf.ones(inputs.get_shape()[1:]), name="gamma") 53 beta= tf.Variable(tf.zeros(inputs.get_shape()[1:]), name="beta") pop_mean= tf.Variable(tf.zeros(inputs.get_shape()[1:]),

Ngày đăng: 23/04/2023, 13:56

Tài liệu cùng người dùng

Tài liệu liên quan