(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

64 6 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

Đ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

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 download by : skknchat@gmail.com 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 download by : skknchat@gmail.com 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 download by : skknchat@gmail.com 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 hồ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! download by : skknchat@gmail.com iii MỤC LỤC LỜI CAM ĐOAN LỜI CẢM ƠN MỤC LỤC DANH MỤC TỪ VIẾT TẮT DANH MỤC CÁC BẢNG DANH MỤC CÁC HÌNH 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 tr 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á 1.2.2 Mơ hình học khơng giám 1.2.3 Mơ hình học bám giám 1.3 Thuật toán phổ biến học máy 1.4 Thư viện TensorFlow 1.4.1Tổng quan thư viện TensorFlow 1.4.2Đặc điểm TensorFlow 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 2.1 Bài toán xử lý ảnh học máy 2.1.1 Mạng Neural truyền thố 2.1.2 Mạng neural tích chập ( 2.2 Máy tính nhúng xử lý ảnh 2.2.1 Một số máy tính nhúng 2.2.2 Cài đặt thư viện TensorF 2.3 Mơ hình hệ thống thiết bị nhận diện đối tư 2.3.1Thuật toán Gradient Descent 2.3.2Gradient Descent ngôn ngữ Python 2.3.3Biến thể Gradient Descent 2.4 Kết luận CHƯƠNG 3: THIẾT KẾ CHẾ TẠO THỬ NGHIỆM HỆ THỐNG 3.1 Thiết kế hệ thống 3.1.1 3.2 Lựa chọn thiết bị Thiết lập phần mềm hệ thống 3.2.1 Thiết lập Python download by : skknchat@gmail.com 3.2.2 3.3 3.3.1 3.3.2 3.4 PHỤ LỤC download by : skknchat@gmail.com v DANH MỤC TỪ VIẾT TẮT Viết tắt AI ML IoT CNN MNIST SVM CPU GPU CUDA M2M MLP ReLU PCM GD SNR OpenCV WAN download by : skknchat@gmail.com 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 download by : skknchat@gmail.com 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 toá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 toá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 download by : skknchat@gmail.com 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 cịn 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 tồ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 download by : skknchat@gmail.com 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 toá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 download by : skknchat@gmail.com 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 download by : skknchat@gmail.com 42 Không cơng cụ phục vụ hữu ích cho tín tốn khoa học, Numpy cịn 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 toá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 download by : skknchat@gmail.com 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 ImagePicker.pickImage(source: ImageSource.gallery); if(image == null) { download by : skknchat@gmail.com 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){ download by : skknchat@gmail.com 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: Paint() color Colors.white,), ) : Container() download by : skknchat@gmail.com = 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ự đoán đầu download by : skknchat@gmail.com 47 Hình 3.10: Đồ thị trình huấn luyện Dựa vào đồ thị trình huấn luyện, quan sát q trình sai số thay đổi, thấy độ hội tụ mạng, độ xác q 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 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.4 Kế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ả download by : skknchat@gmail.com 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 download by : skknchat@gmail.com 49 TÀI LIỆU THAM KHẢO Tiếng Việt: [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 download by : skknchat@gmail.com 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; download by : skknchat@gmail.com 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ị test với Dog Cat style: TextStyle( color: Colors.black, fontSize: 20.0, background: Paint() color Colors.white, ), ) : Container() ], download by : skknchat@gmail.com kết = 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, stride, 1], padding='SAME') x = tf.nn.bias_add(x, b) return tf.nn.relu(x) 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") download by : skknchat@gmail.com 53 beta= tf.Variable(tf.zeros(inputs.get_shape()[1:]), name="beta") pop_mean= tf.Variable(tf.zeros(inputs.get_shape()[1:]), download by : skknchat@gmail.com ... vậy, nghiên cứu làm chủ cơng nghệ chế tạo thiết bị IoT có khả xử lý ảnh cấp thiết cần xúc tiến Vì lý học viên xin chọn đề tài luận văn tốt nghiệp " Nghiên cứu chế tạo thiết bị nhận diện đối tượng. .. 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... đầ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

Ngày đăng: 15/04/2022, 12:09

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

  • Đang cập nhật ...

Tài liệu liên quan