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 16 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

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

- Trí tuệ nhân tạo khác với việc lập trình logic trong các ngôn ngữ lập trình là ở việc ứng dụng các hệ thống học máy machine learning để mô phỏng trí tuệ củacon người trong các xử lý mà

Trang 1

Sinh viên thực hiện : NGUYỄN ĐỨC NGỌC KỲ

Giảng viên hướng dẫn : TS LÊ VĂN MINH

Đà nẵng, tháng 07 năm 2020

Trang 3

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 hiện đề tài này

Em xin gửi lời cảm ơn chân thành đến tất cả các Thầy cô đã giảng dạy chúng em trong 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 hiện đề tài này

Bên cạnh đó, để hoàn thành khóa thực tập này, em cũng đã nhận đượcrất nhiều sự giúp đỡ, những lời động viên quý báu của các bạn bè, các anh chị thân hữu, em xin hết lòng cảm ơn

Tuy nhiên, do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức mình, nhưng chắc rằng đề tài này khó tránh khỏi những thiếu sót Em rất mong nhận được sự thông cảm, chỉ bảo tận tình của thầy cô và các bạn

Trang 4

NHẬN XÉT

(Của giảng viên hướng dẫn)

………

………

………

………

………

………

Trang 5

MỤC LỤC Trang MỞ ĐẦU 3

Chương 1 Giới thiệu 7

1.1 Tổng quan 7

1.2 Phương pháp, kết quả 10

1.3 Cấu trúc đồ án 12

Chương 2 Nghiên cứu tổng quan 13

2.1 Phương pháp 13

2.2 Kết luận 13

Chương 3 Thiết kế hệ thống 14

Thiết kế chi tiết 14

Chương 4 Triển khai xây dựng 15

Chương 5 Kết luận và Hướng phát triển 34

DANH MỤC TÀI LIỆU THAM KHẢO 35

Trang 6

DANH MỤC HÌNH

Trang

Hình 1.2 – Nhãn hình 1 11

Hình 1.2 – Nhãn hình 2 12

Hình 3 – Nhãn hình 1 sơ đồ thực hiện 12

Hình 3 – Nhãn hình 2 sơ đồ làm việc 12

Hình 5 – Nhãn hình 1 ảnh ban đầu 34

Hình 5 – Nhãn hình 2 ảnh đã được xử lý, nhận dạng 34

Trang 7

Chương 1 Giới thiệu

1.1 Tổng quan

- Bối cảnh thực hiện đề tài

- Trí tuệ nhân tạo hay trí thông minh nhân tạo (Artificial intelligence – viết tắt là AI) là một ngành thuộc lĩnh vực khoa học máy tính (Computer science) Là trí tuệ do con người lập trình tạo nên với mục tiêu giúp máy tính có thể

tự động hóa các hành vi thông minh như con người

- Trí tuệ nhân tạo khác với việc lập trình logic trong

các ngôn ngữ lập trình là ở việc ứng dụng các hệ thống học máy (machine learning) để mô phỏng trí tuệ củacon người trong các xử lý mà con người làm tốt hơn máy tính

- Cụ thể, trí tuệ nhân tạo giúp máy tính có được những trí tuệ của con người như: biết suy nghĩ và lập luận để giải quyết vấn đề, biết giao tiếp do hiểu ngôn ngữ, tiếng nói, biết học và tự thích nghi,…

- Tuy rằng trí thông minh nhân tạo có nghĩa rộng như là trí thông minh trong các tác phẩm khoa học viễn tưởng, nó là một trong những ngành trọng yếu của tin học Trí thông minh nhân tạo liên quan đến cách cư xử, sự học hỏi và khảnăng thích ứng thông minh của máy móc

Trí tuệ nhân tạo (Artificial Intelligence): là tên gọi của cả

một lĩnh vực nghiên cứu, tương tự như sinh học hay hoá học ấy

Học máy (Machine Learning): là một phần của trí tuệ

nhân tạo Một phần quan trọng, nhưng không phải tất cả

Mạng neuron (Neural Networks – NN): là một trong

những nhóm thuật toán học máy Một anh chàng đẹp trai học giỏi trong lớp học ML đấy, nhưng trong lớp vẫn có

những anh chàng khác học giỏi không kém (các mạng neurons sẽ được giải thích kỹ hơn ở các phần sau).

Học sâu (Deep Learning- DL): một phương pháp hiện đại

để xây dựng, huấn luyện và ứng dụng các mạng neuron

Cơ bản là, nó là một kiểu kiến trúc mới Thực tế là không

ai tách riêng deep learning với các kiểu network truyền thống cả

Trang 8

Công nghệ nhận dạng hình ảnh có tiềm năng lớn trong việc áp dụng rộng rãi trong các ngành công nghiệp khác nhau Các công ty lớn như Tesla, Google, Uber, Adobe Systems vv cũng sử dụng công nghệ nhận dạng hình ảnh

Để chứng minh rằng công nghệ này đang tồn tại khắp thế giới, chúng ta hãy xem xét các số liệu thống kê gần đây Các nhà nghiên cứu dự đoán rằng thị trường toàn cầu của công nhận dạng hình ảnh sẽ đạt 38,92 tỷ USD vào năm

2021 Đó là một con số rất lớn! Vì vậy, không có thắc mắcrằng ngày càng nhiều cái gọi là ứng dụng imagetech tận dụng nhận dạng hình ảnh cho các mục đích khác nhau và trong cả kinh doanh

- Vấn đề cần giải quyết

Nhập ảnh, phân tích, thao tác và tạo ảnh

- Đề xuất nội dung thực hiện

[Computer Vision] Object Detection (nhận diện vật thể) chỉ với 10 dòng code sử dụng ImageAI

Object Detection

Một trong những lĩnh vực quan trọng của Trí tuệ nhân tạo (Artificial Intelligence) là thị giác máy (Computer Vision) Computer Vision là một lĩnh vực bao gồm các phương pháp thu nhận, xử lý ảnh kỹ thuật số, phân tích và nhận dạng các hình ảnh, phát hiện các đối tượng, tạo ảnh, siêu phân giải hình ảnh và nhiều hơn vậy Object

Detection có lẽ là khía cạnh sâu sắc nhất của thị giác máy

do số lần sử dụng trong thực tế

Object Detection đề cập đến khả năng của hệ thống máy tính và phần mềm để định vị các đối tượng trong một hình ảnh và xác định từng đối tượng Object Detection đã được sử dụng rộng rãi để phát hiện khuôn mặt, phát hiện

xe, đếm số người đi bộ, hệ thống bảo mật và xe không người lái Có nhiều cách để nhận diện đối tượng có thể được sử dụng cũng như trong nhiều lĩnh vực thực hành Giống như mọi công nghệ khác, một loạt các ứng dụng sáng tạo và tuyệt vời của Object Detection sẽ đến từ các lập trình viên và các nhà phát triển phần mềm

Bắt đầu sử dụng các phương pháp nhận diện đối tượng hiện đại trong các ứng dụng và hệ thống, cũng như xây dựng các ứng dụng mới dựa trên các 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 các thuật toán cổ điển, giống như các thuật toán được hỗ trợ trong OpenCV, thư viện computer vision phổ

Trang 9

biến Tuy nhiên, các thuật toán cổ điển này không thể đạt được hiệu suất đủ để làm việc trong các điều kiện khác nhau.

Việc áp dụng đột phát và nhanh cóng của deep learningvào năm 2012 đã đưa vào sự tồn tại các thuật toán và phương pháp phát hiện đối tượng hiện đại và chính xác cao như R-CNN, Fast-RCNN, Faster-RCNN, RetinaNet vànhanh hơn nhưng rất chính xác như SSD và YOLO Sử dụng các phương pháp và thuật toán này, dựa trên deep learning và cũng dựa trên việc học máy đòi hỏi rất nhiều kiến thức về toán học và việc học sâu Có hàng triệu

chuyên gia lập trình và các nhà phát triển phần mềm muốntích hợp và tạo ra các sản phẩm mới sử dụng object

detection Nhưng công nghệ này xa tầm tay của họ và phức tạp để hiểu và sử dụng thực tế của nó

ImageAI một thư viện python cho phép các lập trình

viên và các nhà phát triển phần mềm dễ dàng tích hợp các công nghệ thị giác máy hiện đại vào các ứng dụng hiện có

và mới của họ, và chỉ cần sử dụng một vài dòng mã

ImageAI hỗ trợ một danh sách các thuật toán học máy hiệnđại nhất cho việc dự đoán hình ảnh,, nhận diện vật thể, phát diện video,…

ImageAI một thư viện python mã nguồn mở được xây

dựng để trao quyền cho các nhà phát triển xây dựng các ứng dụng và hệ thống với các khả năng Deep Learning và Computer Vision độc lập bằng cách sử dụng một vài dòng

mã đơn giản ImageAI hỗ trợ danh sách các thuật toán

Machine Learning tiên tiến để dự đoán hình ảnh, dự đoán hình ảnh tùy chỉnh, phát hiện đối tượng, phát hiện video, theo dõi đối tượng video và đào tạo dự đoán hình

ảnh ImageAI hiện hỗ trợ dự đoán và đào tạo hình ảnh

bằng 4 thuật toán Machine Learning khác nhau được đào

tạo trên bộ dữ liệu ImageNet-1000 ImageAI cũng hỗ trợ

phát hiện đối tượng, phát hiện video và theo dõi đối tượng bằng RetinaNet, YOLOv3 và TinyYOLOv3 được đào tạo

trên bộ dữ liệu COCO Cuối cùng, ImageAI cho phép bạn

huấn luyện các mô hình tùy chỉnh để thực hiện phát hiện

và nhận dạng các đối tượng mới ImageAI sẽ cung cấp hỗ

trợ cho các khía cạnh rộng hơn và chuyên biệt hơn của Computer Vision bao gồm và không giới hạn ở nhận dạng hình ảnh trong các môi trường đặc biệt và các lĩnh vực đặcbiệt

Trang 10

ImageAI cung cấp 4 thuật toán và loại mô hình khác

nhau để thực hiện dự đoán hình ảnh, được đào tạo trên bộ

dữ liệu ImageNet-1000 4 thuật toán được cung cấp để dự đoán hình ảnh bao gồm:

SqueezeNet , ResNet , InceptionV3 và DenseNet ImageAI cung cấp nhiều tính năng hữu ích cho việc

triển khai khả năng tùy chỉnh và triển khai việc nhận diện đối tượng Một vài tính năng được hỗ trợ là:

 Adjusting Minimum Probability: Theo mặc định, các đối tượng được phát hiện có tỷ lệ phần trăm xác suất nhỏ hơn 50

sẽ không được hiển thị hoặc báo cáo Bạn có thể tăng giá trị này cho các trường hợp chắc chắn cao hoặc giảm giá trị cho các trường hợp mà tất cả các đối tượng có thể cần được phát hiện

 Custom Objects Detection: Sử dụng lớp CustomObject được cung cấp, bạn có thể yêu cầu lớp phát hiện báo cáo các phát hiện trên một hoặc một số đối tượng duy nhất

 Detection Speeds: Bạn có thể giảm thời gian cần thiết để phát hiện một hình ảnh bằng cách đặt tốc độ của tốc độ phát hiện thành ‘fast’, ‘faster’ và ‘fastest’

 Input Types: Bạn có thể chỉ định và phân tích cú pháp trong đường dẫn tệp tới hình ảnh, mảng Numpy hoặc luồng tệp của hình ảnh làm hình ảnh đầu vào

 Output Types: Bạn có thể chỉ định rằng hàm

detectObjectsFromImage sẽ trả về hình ảnh dưới dạng một tệphoặc mảng Numpy

1.2 Phương pháp, kết quả

 Trình bày phương pháp triển khai thực hiện đề tài:

Hình ảnh có thể được sử dụng theo những cách khácnhau.Trong các hình ảnh phát triển phần mềm di động, web vàphần mềm phục vụ cho vô số lý do, bao gồm:

Trang 11

 Xử lý hình ảnh (Retouch, )

 Cải thiện ứng dụng di động UX

 Vv

ImageAI một thư viện python mã nguồn mở được xây dựng

để trao quyền cho các nhà phát triển xây dựng các ứng dụng và

hệ thống với các khả năng Deep Learning và Computer Visionđộc lập bằng cách sử dụng một vài dòng mã đơn giản

 Kết quả đạt được

Dữ liệu vào

Hình 1.2 – Nhãn hình 1

Trang 12

Dữ liệu ra

Hình 1.2 – Nhãn hình 2

1.3 Cấu trúc đồ án

Chương 1 Giới thiệu 7

1.1 Tổng quan 7

1.2 Phương pháp, kết quả 10

1.3 Cấu trúc đồ án 12

Chương 2 Nghiên cứu tổng quan 13

2.1 Phương pháp 13

2.2 Kết luận 13

Chương 3 Thiết kế hệ thống 14

Thiết kế chi tiết 14

Chương 4 Triển khai xây dựng 15

Chương 5 Kết luận và Hướng phát triển 34DANH MỤC TÀI LIỆU THAM KHẢO 35

Trang 13

Chương 2 Nghiên cứu tổng quan

2.1 Phương pháp

Chương 3 Dự đoán hình ảnh

Chương 4 Phát hiện đối tượng

Chương 5 Phát hiện và theo dõi đối tượng video

+ Phát hiện và phân tích đối tượng video

+ Phát hiện đối tượng tùy chỉnh video (Theo dõi đối tượng)

+ Phân tích video trực quan

Chương 6 Đào tạo mô hình tùy chỉnh

Chương 7 Dự đoán hình ảnh tùy chỉnh

Chương 8 Đào tạo mô hình phát hiện tùy chỉnh

Chương 9 Phát hiện đối tượng tùy chỉnh

Chương 10 Phân tích & phát hiện đối tượng video tùy chỉnh

10.1 Kết luận

Thực hiện đúng theo thứ tự phương pháp đã đề ra

Trang 14

Chương 11 Thiết kế hệ thống

Chương 12 Thiết kế chi tiết

Hình 3 – Nhãn hình 1 sơ đồ thực hiện

Hình 3 – Nhãn hình 2 sơ đồ làm việc

Trang 15

Chương 13 Triển khai xây dựng

 Ngôn ngữ thực hiện: PYTHON

Lợi ích khi học lập trình Python là gì?

Python giúp người học dễ tiếp cận, bao gồm những người chưa từng học lập trình

Tính năng chính của Python là gì?

Ngôn ngữ lập trình nhập môn: Rossum hướng đến sự đơn giản

và dễ hiểu nên cấu trúc Python khá rõ ràng, cho phép viết mã lệnh với số lần gõ phím tối thiểu Ngày nay, Python được đánh giá là ngôn ngữ lý tưởng cho việc bắt đầu học lập trình

Mã nguồn mở và hoàn toàn miễn phí: Khác với nhiều ngôn

ngữ lập trình bậc cao, Python cho phép sử dụng một cách miễn phí tất cả phần mềm, chương trình được viết Mã nguồn mở sở hữu cộng đồng đông đảo, giúp bạn giải đáp mọi thắc mắc và liêntục cập nhật, cải thiện

Tương thích nhiều nền tảng: Python dễ dàng tương thích với

nhiều nền tảng như Windows, MacOS, Linux Thậm chí là di chuyển qua lại giữa các nền tảng cũng không gặp nhiều khó khăn

Khả năng nhúng và mở rộng: Có thể kết hợp cùng các ngôn

ngữ lập trình khác để phát triển các ứng dụng phức tạp

Tự động chuyển đổi code: Khi dùng Python, người sử dụng

hoàn toàn không phải lo các vấn đề về quản lý bộ nhớ, dọn dẹp

dữ liệu… Python sẽ tự động chuyển code sang ngôn ngữ máy tính có thể hiểu

Thư viện lớn: Nhờ số lượng thư viện khổng lồ của mình Python

hoàn toàn đáp ứng được mọi nhu cầu lập trình khác nhau

Ngôn ngữ lập trình hướng đối tượng: Dù được đơn giản hóa

cho người mới học song Python vẫn giữ bản chất hướng đối tượng Giải quyết các vấn đề trong lập trình một cách trực quan,

dễ hiểu

Khoa học và phân tích số liệu: Hiếm có ngôn ngữ nào có được

sức mạnh lớn như Python khi có thể sử dụng trong cả Data

Analytics, Machine Learning, Computing Science Bằng số

Trang 16

lượng thư viện chuẩn lớn và các plugin như Numpy, SciPy và Panda, Python hoàn toàn đáp ứng tốt công việc phân tích và tính toán.

Tạo nguyên mẫu hay bản thử của phần mềm: Một tính năng

rất hay dành cho các nhà lập trình, giúp tạo bản mẫu để thử nghiệm trước khi đưa vào thực tiễn

Cách cài đặt Python

Hướng dẫn các bạn cách cài đặt Python trên 2 nền tảng phổ biến nhất hiện nay:

 Cài đặt Python trên Windows

 Cài đặt Python trên Linux

Cách cài đặt Python trên Windows

Chọn phương án cài tự động

Download Python phiên bản mới nhất cho Windows tại đây

Trang 17

Tiến hành cái đặt phần mềm và đóng cửa sổ sau khi hoàn tất.

Download PIP3 cho Windows tại đây, lưu vào một thư mục trên máy

Mở CMD hoặc Windows Powershell và cd thư mục đặt file cài vừa tải

python get-pip.py

Chạy câu lệnh trên để tiến hành cái đặt PIP3 trên Windows

print ('Hello world');

Cuối cùng, chạy Python, tạo một file hello-word.py và chèn dòng codetrên vào

python hello-world.py

Mở CMD và cd tới thư mục chứa file

Cách cài đặt Python trên Linux

Dùng tài khoản root hoặc user có quyền sudo, Package Python 3 được tính hợp sẵn trong repository của Ubuntu

Bước 1: fetch package mới nhất về từ Internet bằng câu lệnh

sudo apt-get update

Bước 2: Kiểm tra package của Python

sudo apt-cache search python | grep ^python3

Bước 3: Cài đặt Python 3

sudo apt-get install python3.7

Trang 18

Bước 4: Kiểm tra version mặc định của Python 3

python3 version

Cấu hình chuyển đổi version của Python, ví dụ version mặc định là 3.6

và muốn chuyển đổi lên 3.7 vừa cài

sudo update-alternatives install /usr/bin/python3 python3

/usr/local/bin/python3.7 2

sudo update-alternatives install /usr/bin/python3 python3

/usr/bin/python3.6 1

sudo update-alternatives config python3

Trường hợp Ubuntu có version thấp và không có sẵn Python 3 có thể cài từ PPA

sudo add-apt-repository ppa:jonathonf/python-3.7

sudo apt-get update

sudo apt-get install python3.7

Cài đặt Python 3 từ Source, có thể chọn bất cứ version nào của Python

sudo make install

Cài đặt PIP3 trên Ubuntu

Cách 1: Cài từ gói có sẵn của Ubuntu

sudo apt-get install python3-pip

Trang 19

 Công cụ hỗ trợ: Visual studio IDE and Anaconda

Visual Studio Code là gì?

Là một trình biên tập lập trình code miễn phí dành cho Windows,Linux và macOS, Visual Studio Code được phát triển bởi Microsoft

Nó được xem là một sự kết hợp hoàn hảo giữa IDE và Code Editor

Visual Studio Code hỗ trợ chức năng debug, đi kèm với Git, có syntaxhighlighting, tự hoàn thành mã thông minh, snippets, và cải tiến mãnguồn Nhờ tính năng tùy chỉnh, Visual Studio Code cũng cho phépngười dùng thay đổi theme, phím tắt, và các tùy chọn khác

Trang 20

Tính năng của Visual Studio

Hỗ trợ nhiều ngôn ngữ lập trình

Visual Studio Code hỗ trợ nhiều ngôn ngữ lập trình như C/C++, C#,F#, Visual Basic, HTML, CSS, JavaScript, … Vì vậy, nó dễ dàng pháthiện và đưa ra thông báo nếu chương chương trình có lỗi

Hỗ trợ đa nền tảng

Các trình viết code thông thường chỉ được sử dụng hoặc cho Windowshoặc Linux hoặc Mac Systems Nhưng Visual Studio Code có thể hoạtđộng tốt trên cả ba nền tảng trên

Cung cấp kho tiện ích mở rộng

Trong trường hợp lập trình viên muốn sử dụng một ngôn ngữ lập trìnhkhông nằm trong số các ngôn ngữ Visual Studio hỗ trợ, họ có thể tảixuống tiện ích mở rộng Điều này vẫn sẽ không làm giảm hiệu năngcủa phần mềm, bởi vì phần mở rộng này hoạt động như một chươngtrình độc lập

Kho lưu trữ an toàn

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

🧩 Sản phẩm bạn có thể quan tâm

w