1. Trang chủ
  2. » Thể loại khác

ĐẠI HỌC ĐÀ NẴNGKHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNGĐỒ ÁN CƠ SỞ 5ĐỀ TÀI: NHẬN DIỆN HÌNH ẢNH

35 15 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

Định dạng
Số trang 35
Dung lượng 4,93 MB

Nội dung

ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ĐỒ ÁN CƠ SỞ ĐỀ TÀI: NHẬN DIỆN HÌNH ẢNH Sinh viên thực : NGUYỄN ĐỨC NGỌC KỲ Giảng viên hướng dẫn : TS LÊ VĂN MINH Lớp : 17IT1 Đà nẵng, tháng 07 năm 2020 ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG ĐỒ ÁN CƠ SỞ NHẬN DIỆN HÌNH ẢNH Đà Nẵng, tháng 07 năm 2020 LỜI CẢM ƠN Em xin chân thành cảm ơn KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG VÀ ĐẠI HỌC ĐÀ NẴNG tạo điều kiện cho em thực đề tài Em xin gửi lời cảm ơn chân thành đến tất Thầy cô giảng dạy chúng em suốt thời gian quan Cảm ơn đến thầy (cô) TS.LÊ VĂN MINH hướng dẫn em thực đề tài Bên cạnh đó, để hồn thành khóa thực tập này, em nhận nhiều giúp đỡ, lời động viên quý báu bạn bè, anh chị thân hữu, em xin hết lòng cảm ơn Tuy nhiên, thời gian hạn hẹp, nỗ lực mình, đề tài khó tránh khỏi thiếu sót Em mong nhận thơng cảm, bảo tận tình thầy bạn NHẬN XÉT (Của giảng viên hướng dẫn) …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… …………………………………………………………………………………… ……………………………………………………… MỤC LỤC Trang MỞ ĐẦU Chương Giới thiệu 1.1 Tổng quan .7 1.2 Phương pháp, kết 10 1.3 Cấu trúc đồ án .12 Chương Nghiên cứu tổng quan 13 2.1 Phương pháp 13 2.2 Kết luận 13 Chương Thiết kế hệ thống 14 Thiết kế chi tiết .14 Chương Triển khai xây dựng 15 Chương Kết luận Hướng phát triển 34 DANH MỤC TÀI LIỆU THAM KHẢO 35 DANH MỤC HÌNH Trang Hình 1.2 – Nhãn hình 11 Hình 1.2 – Nhãn hình 12 Hình – Nhãn hình sơ đồ thực .12 Hình – Nhãn hình sơ đồ làm việc 12 Hình – Nhãn hình ảnh ban đầu 34 Hình – Nhãn hình ảnh xử lý, nhận dạng .34 Chương Giới thiệu 1.1 Tổng quan - Bối cảnh thực đề tài - Trí tuệ nhân tạo hay trí thơng minh nhân tạo (Artificial intelligence – viết tắt AI) ngành thuộc lĩnh vực khoa học máy tính (Computer science) Là trí tuệ người lập trình tạo nên với mục tiêu giúp máy tính tự động hóa hành vi thơng minh người - Trí tuệ nhân tạo khác với việc lập trình logic ngơn ngữ lập trình việc ứng dụng hệ thống học máy (machine learning) để mơ trí tuệ người xử lý mà người làm tốt máy tính - Cụ thể, trí tuệ nhân tạo giúp máy tính có trí tuệ người như: biết suy nghĩ lập luận để giải vấn đề, biết giao tiếp hiểu ngôn ngữ, tiếng nói, biết học tự thích nghi,… - Tuy trí thơng minh nhân tạo có nghĩa rộng trí thơng minh tác phẩm khoa học viễn tưởng, ngành trọng yếu tin học Trí thơng minh nhân tạo liên quan đến cách cư xử, học hỏi khả thích ứng thơng minh máy móc Trí tuệ nhân tạo (Artificial Intelligence): tên gọi lĩnh vực nghiên cứu, tương tự sinh học hay hoá học Học máy (Machine Learning): phần trí tuệ nhân tạo Một phần quan trọng, tất Mạng neuron (Neural Networks – NN): nhóm thuật tốn học máy Một anh chàng đẹp trai học giỏi lớp học ML đấy, lớp có anh chàng khác học giỏi khơng (các mạng neurons giải thích kỹ phần sau) Học sâu (Deep Learning- DL): phương pháp xây dựng, huấn luyện ứng dụng mạng neuron Cơ là, kiểu kiến trúc Thực tế không tách riêng deep learning với kiểu network truyền thống Cơng nghệ nhận dạng hình ảnh có tiềm lớn việc áp dụng rộng rãi ngành công nghiệp khác Các công ty lớn Tesla, Google, Uber, Adobe Systems vv sử dụng cơng nghệ nhận dạng hình ảnh Để chứng minh công nghệ tồn khắp giới, xem xét số liệu thống kê gần Các nhà nghiên cứu dự đoán thị trường tồn cầu cơng nhận dạng hình ảnh đạt 38,92 tỷ USD vào năm 2021 Đó số lớn! Vì vậy, khơng có thắc mắc ngày nhiều gọi ứng dụng imagetech tận dụng nhận dạng hình ảnh cho mục đích khác kinh doanh - Vấn đề cần giải Nhập ảnh, phân tích, thao tác tạo ảnh - Đề xuất nội dung thực [Computer Vision] Object Detection (nhận diện vật thể) với 10 dòng code sử dụng ImageAI Object Detection Một lĩnh vực quan trọng Trí tuệ nhân tạo (Artificial Intelligence) thị giác máy (Computer Vision) Computer Vision lĩnh vực bao gồm phương pháp thu nhận, xử lý ảnh kỹ thuật số, phân tích nhận dạng hình ảnh, phát đối tượng, tạo ảnh, siêu phân giải hình ảnh nhiều Object Detection có lẽ khía cạnh sâu sắc thị giác máy số lần sử dụng thực tế Object Detection đề cập đến khả hệ thống máy tính phần mềm để định vị đối tượng hình ảnh xác định đối tượng Object Detection sử dụng rộng rãi để phát khuôn mặt, phát xe, đếm số người bộ, hệ thống bảo mật xe không người lái Có nhiều cách để nhận diện đối tượng sử dụng nhiều lĩnh vực thực hành Giống công nghệ khác, loạt ứng dụng sáng tạo tuyệt vời Object Detection đến từ lập trình viên nhà phát triển phần mềm Bắt đầu sử dụng phương pháp nhận diện đối tượng đại ứng dụng hệ thống, xây dựng ứng dụng dựa phương pháp này.Việc triển nhận diện đối tượng sớm liên quan đến việc sử dụng thuật toán cổ điển, giống thuật toán hỗ trợ OpenCV, thư viện computer vision phổ biến Tuy nhiên, thuật toán cổ điển đạt hiệu suất đủ để làm việc điều kiện khác Việc áp dụng đột phát nhanh cóng deep learning vào năm 2012 đưa vào tồn thuật toán phương pháp phát đối tượng đại xác cao R-CNN, Fast-RCNN, Faster-RCNN, RetinaNet nhanh xác SSD YOLO Sử dụng phương pháp thuật toán này, dựa deep learning dựa việc học máy địi hỏi nhiều kiến thức tốn học việc học sâu Có hàng triệu chun gia lập trình nhà phát triển phần mềm muốn tích hợp tạo sản phẩm sử dụng object detection Nhưng công nghệ xa tầm tay họ phức tạp để hiểu sử dụng thực tế ImageAI thư viện python cho phép lập trình viên nhà phát triển phần mềm dễ dàng tích hợp cơng nghệ thị giác máy đại vào ứng dụng có họ, cần sử dụng vài dòng mã ImageAI hỗ trợ danh sách thuật toán học máy đại cho việc dự đốn hình ảnh,, nhận diện vật thể, phát diện video,… ImageAI thư viện python mã nguồn mở xây dựng để trao quyền cho nhà phát triển xây dựng ứng dụng hệ thống với khả Deep Learning Computer Vision độc lập cách sử dụng vài dòng mã đơn giản ImageAI hỗ trợ danh sách thuật toán Machine Learning tiên tiến để dự đốn hình ảnh, dự đốn hình ảnh tùy chỉnh, phát đối tượng, phát video, theo dõi đối tượng video đào tạo dự đốn hình ảnh ImageAI hỗ trợ dự đốn đào tạo hình ảnh thuật toán Machine Learning khác đào tạo liệu ImageNet-1000 ImageAI hỗ trợ phát đối tượng, phát video theo dõi đối tượng RetinaNet, YOLOv3 TinyYOLOv3 đào tạo liệu COCO Cuối cùng, ImageAI cho phép bạn huấn luyện mơ hình tùy chỉnh để thực phát nhận dạng đối tượng ImageAI cung cấp hỗ trợ cho khía cạnh rộng chuyên biệt Computer Vision bao gồm khơng giới hạn nhận dạng hình ảnh môi trường đặc biệt lĩnh vực đặc biệt      ImageAI cung cấp thuật tốn loại mơ hình khác để thực dự đốn hình ảnh, đào tạo liệu ImageNet-1000 thuật toán cung cấp để dự đốn hình ảnh bao gồm: SqueezeNet , ResNet , InceptionV3 DenseNet ImageAI cung cấp nhiều tính hữu ích cho việc triển khai khả tùy chỉnh triển khai việc nhận diện đối tượng Một vài tính hỗ trợ là: Adjusting Minimum Probability: Theo mặc định, đối tượng phát có tỷ lệ phần trăm xác suất nhỏ 50 khơng hiển thị báo cáo Bạn tăng giá trị cho trường hợp chắn cao giảm giá trị cho trường hợp mà tất đối tượng cần phát Custom Objects Detection: Sử dụng lớp CustomObject cung cấp, bạn yêu cầu lớp phát báo cáo phát đối tượng Detection Speeds: Bạn giảm thời gian cần thiết để phát hình ảnh cách đặt tốc độ tốc độ phát thành ‘fast’, ‘faster’ ‘fastest’ Input Types: Bạn định phân tích cú pháp đường dẫn tệp tới hình ảnh, mảng Numpy luồng tệp hình ảnh làm hình ảnh đầu vào Output Types: Bạn định hàm detectObjectsFromImage trả hình ảnh dạng tệp mảng Numpy 1.2 Phương pháp, kết  Trình bày phương pháp triển khai thực đề tài: Hình ảnh sử dụng theo cách khác nhau.Trong hình ảnh phát triển phần mềm di động, web phần mềm phục vụ cho vô số lý do, bao gồm:     Nhận dạng đối tượng Nhận dạng mẫu Định vị (chính xác phần) Tìm kiếm hình ảnh theo phân đoạn 10 Đi kèm với phát triển lập trình nhu cầu lưu trữ an toàn Với Visual Studio Code, người dùng hồn tồn n tâm dễ dàng kết nối với Git kho lưu trữ có  Hỗ trợ web Visual Studio Code hỗ trợ nhiều ứng dụng web Ngồi ra, có trình soạn thảo thiết kế website  Lưu trữ liệu dạng phân cấp Phần lớn tệp lưu trữ đoạn mã đặt thư mục tương tự Ngồi ra, Visual Studio Code cịn cung cấp thư mục cho số tệp đặc biệt quan trọng  Hỗ trợ viết Code Một số đoạn code thay đổi chút để thuận tiện cho người dùng Visual Studio Code đề xuất cho lập trình viên tùy chọn thay có  Hỗ trợ thiết bị đầu cuối Visual Studio Code có tích hợp thiết bị đầu cuối, giúp người dùng khỏi phải chuyển đổi hai hình trở thư mục gốc thực thao tác  Màn hình đa nhiệm Người dùng Visual Studio Code mở lúc nhiều tệp tin thư mục – chúng không liên quan với  Intellisense 21 Hầu hết trình viết mã có tính nhắc mã Intellisense, chương trình chun nghiệp Visual Studio Code Nó phát đoạn mã khơng đầy đủ Thậm chí, lập trình viên qn không khai báo biến, Intellisense tự động giúp họ bổ sung cú pháp thiếu  Hỗ trợ Git Visual Studio Code hỗ trợ kéo chép mã trực tiếp từ GitHub Mã sau thay đổi lưu lại phần mềm  Bình luận Việc để lại nhận xét giúp người dùng dễ dàng nhớ cơng việc cần hồn thành Download visual studio code for windows Việc cài đặt Visual Code (VS) window đơn giản Bạn việc vào link download Chọn cài đặt cho Window 22 Sau tải cài đặt xong, bạn click đúp vào tệp cài đặt (VSCodeSetup-.exe) Sẽ khoảng phút để cài đặt, tùy thuộc vào cấu hình máy tính bạn Ok, bạn nhìn thấy hình cài đặt bên dưới: Bạn chọn NEXT để chuyển sang hình chấp nhận license 23 Mình tin chẳng có rảnh đọc hết điều khoản đâu Vậy chọn “I accept te agreement” để tiếp tục thơi Bạn lựa chọn đường dẫn cài đặt khác tùy ý Nhưng với kinh nghiệm chả sức đâu mà đổi cả, mặc định 24 Phần này, ý họ bạn có muốn tạo menu để chạy Visual Code trình start menu khơng? Nếu khơng muốn tick vào option: “Don’t create a Start Menu folder” 25 Tương tự, phần bạn có thêm lựa chọn như: Tạo sẵn shortcut desktop, thêm option nhấn chuột phải chuột Mình nghĩ tùy người mà chọn option Vậy xong Bạn đợi lúc cài đặt xong, bạn nhấn nút finish để mở visual code lên Cài đặt Visual Code Ubuntu (Linux) Việc download visual studio code ubuntu giống bao phần mềm khác Một bạn chọn tải file Deb trang download trên, cài đặt qua Ubuntu Software center Tuy nhiên, “chuyên nghiệp”, hướng dẫn bạn cách cài đặt dòng lệnh Đầu tiên, bạn chạy lênh update package cài đặt dependencies   $ sudo apt update $ sudo apt install software-properties-common apt-transporthttps wget Sau import Microsoft GPG key lệnh Wget enable Visual Studio Code repository: 26   $ wget -q https://packages.microsoft.com/keys/microsoft.asc -O| sudo apt-key add $ sudo add-apt-repository "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" Cuối gõ lệnh install để cài đặt   $ sudo apt update $ sudo apt install code Vậy xong Anaconda Anaconda tảng mã nguồn mở Khoa học liệu Python thông dụng Anaconda với 11 triệu người dùng, Anaconda cách nhanh dễ để học Khoa học liệu với Python R Windows, Linux Mac OS X Lợi ích Anaconda:   Dễ dàng tải 1500+ packages Python/R cho data science Quản lý thư viện, môi trường dependency thư viện dễ dàng 27  Dễ dàng phát triển mơ hình machine learning deep learning với scikit-learn, tensorflow, keras  Xử lý liệu tốc độ cao với numpy, pandas  Hiện thị kết với Matplotlib, Bokeh  Trong Spyder IDE (mơi trường tích hợp dùng để phát triển phần mềm) tốt cho data science quang trọng cài đặt bạn cài đặt Anaconda Yêu cầu phần cứng phần mềm Hệ điều hành: Win 7, Win 8/8.1, Win 10, Red Hat Enterprise Linux/CentOS 6.7, 7.3, 7.4, and 7.5, and Ubuntu 12.04+  Ram tối thiểu 4GB  Ổ cứng trống tối thiểu 3GB để tải cài đặt Anaconda gì? – Anaconda Distribution miễn phí mã nguồn mở Python R – Anaconda giúp đơn giản hóa việc cài đặt, quản lý triển khai packages (numpy, scipy, tensorflow, …) – Anaconda phục vụ cho nhiều mục địch, đặc biệt Data Science (Khoa học liệu), Machine learnig (Máy học), Big Data (Dữ liệu lớn), Image Processing (Xử lý ảnh), … – Anaconda có triệu người dùng 1400 packages khoa học liệu dành cho Windows, Linux MacOS Cài đặt Anaconda windows – Các bạn truy cập trang chủ Anaconda để tải cài đặt 28 – Ở tải phiên Anaconda cho Python 3.7 (Python 2.x khác Python 3.x chút khuyên bạn bắt đầu với python nên chọn phiên 3.x) – Nhiệm vụ bạn cần nhấn Next, Accept, Skip Finish để thực cài đặt Cài đặt Để thực nhận diện đối tượng ImageAI, tất bạn cần làm là: Cài đặt python 29 Cài đặt ImageAI phụ thuộc Tải xuống file mơ hình Object Detection Chạy chương trình Bây giờ, bắt đầu Tải xuống cài đặt python từ https://python.org Tensorflow 1.4.0 (and later versions) pip3 install upgrade tensorflow Numpy 1.13.1 (and later versions) pip3 install numpy SciPy 0.19.1 (and later versions) pip3 install scipy OpenCV pip3 install opencv-python Pillow pip3 install pillow Matplotlib pip3 install matplotlib h5py pip3 install h5py Keras 2.x pip3 install keras 30 10 ImageAI pip install https://github.com/OlafenwaMoses/ImageAI/releases/download/2.0.1/imageai2.0.1-py3-none-any.whl 11 Tải xuống mơ hình RetinaNet sử dụng để nhận diện đối tượng Mọi thứ sẵn sàng, tạo tệp python ObjectDetection.py Sao chép file mơ hình RetinaNet hình ảnh mà bạn muốn phát vào thư mục chứa file ObjectDetection.py Nhập vào file ObjectDetection.py đoạn mã sau:  Mã nguồn xử lý ảnh from imageai.Detection import ObjectDetection import os execution_path = os.getcwd() detector = ObjectDetection() detector.setModelTypeAsRetinaNet() detector.setModelPath( os.path.join(execution_path , "resnet50_coco_best_v2.0 1.h5")) 31 detector.loadModel() detections = detector.detectObjectsFromImage(input_image=os.path.join(execu tion_path , "image.jpg"), output_image_path=os.path.join(execution_path , "ima genew.jpg")) for eachObject in detections: print(eachObject["name"] , " : " , eachObject["percentage_probability"] ) Ba dòng đầu tiên, import lớp ImageAI Object Detection dòng đầu tiên, dòng thứ import lớp python os xác định biến để giữ đường dẫn đến thư mục chứa file python Tệp mơ hình RetinaNet hình ảnh nằm dịng thứ ba from imageai.Detection import ObjectDetection import os execution_path = os.getcwd() Tiếp dòng mã sau, định nghĩa lớp object detection dịng đầu, thiết lập kiểu mơ hình cho RetinaNet dịng thứ hai, thiết lập đường dẫn mơ hình RetinaNet dịng thứ ba, load mơ hình vào lớp object detection dịng thứ tư, sau ta gọi hàm detection phân tích cú pháp đường dẫn hình ảnh đầu vào đường dẫn hình ảnh đầu dòng thứ năm detector = ObjectDetection() detector.setModelTypeAsRetinaNet() detector.setModelPath( os.path.join(execution_path , "resnet50_coco_best_v2.0.1.h5")) detector.loadModel() detections = detector.detectObjectsFromImage(input_image=os.path.join(execution_path , "image.jpg"), output_image_path=os.path.join(execution_path , "imagenew.jpg") 32 Trong hai dòng mã cuối, ta lặp qua tất kết trả hàm detector.detectObjectsFromImage dịng đầu tiên, sau in tên xác suất phần trăm mơ hình đối tượng phát hình ảnh dịng thứ hai for eachObject in detections: print(eachObject["name"] + " : " + eachObject["percentage_probability"] ) ImageAI hỗ trợ nhiều tùy chỉnh mạnh mẽ trình nhận diện đối tượng Một số khả trích xuất hình ảnh đối tượng phát hình ảnh Bằng cách thêm tham số extract_detected_objects=True vào hàm detectObjectsFromImage Lớp object detection tạo thư mục cho đối tượng hình ảnh, trích xuất ảnh, lưu ảnh vào thư mục detections = detector.detectObjectsFromImage(input_image=os.path.join(execution_path , "image.jpg"), output_image_path=os.path.join(execution_path , "imagenew.jpg"), extract_detected_objects=True) 33 Chương 14 Kết luận  Dữ liệu vào Hình – Nhãn hình ảnh ban đầu  Dữ liệu Hình – Nhãn hình ảnh xử lý, nhận dạng 34 DANH MỤC TÀI LIỆU THAM KHẢO Tiếng Việt: Python Ebook Python tiếng Việt siêu Võ Tuấn Duy Tiếng Anh: A Byte of Python nd Think Python Edition Automate the Boring Stuff with Python Dive into Python Learn Python the Hard Way Invent Your Own Computer Game with Python Making Games with Python and Pygame 35

Ngày đăng: 20/04/2021, 22:26

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
1. A Byte of Python Khác
2. Think Python 2 nd Edition Khác
3. Automate the Boring Stuff with Python Khác
4. Dive into Python 3 Khác
5. Learn Python the Hard Way Khác
6. Invent Your Own Computer Game with Python Khác
7. Making Games with Python and Pygame Khác

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

TÀI LIỆU LIÊN QUAN

w