Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web...

37
ĐẠI HỌC ĐÀ NẴNG KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG Đồ Án Cơ Sở 5 ỨNG DỤNG TRÍ TUỆ NHÂN TẠO NHẬN DIỆN ĐỐI TƯỢNG Sinh viên thực hiện : NGUYỄN QUỐC TOÀN NGÔ QUANG MINH Giảng viên hướng dẫn : THS.TRẦN THU THỦY Lớp : 17IT2 1

Transcript of Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web...

Page 1: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

ĐẠI HỌC ĐÀ NẴNG

KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

Đồ Án Cơ Sở 5

ỨNG DỤNG TRÍ TUỆ NHÂN TẠONHẬN DIỆN ĐỐI TƯỢNG

Sinh viên thực hiện : NGUYỄN QUỐC TOÀN

NGÔ QUANG MINH

Giảng viên hướng dẫn : THS.TRẦN THU THỦY

Lớp : 17IT2

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

1

Page 2: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

ĐẠI HỌC ĐÀ NẴNG

KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

ĐỒ ÁN CƠ SỞ 5

Ứng Dụng Trí Tuệ Nhân TạoNhận Diện Đối Tượng

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

2

Page 3: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

LỜI CẢM ƠNLời đầu tiên, chúng em xin chân thành cảm ơn quý thầy cô trong khoa Công nghệ

thông tin và truyền thông cũng như các quý thầy cô đang giảng dạy và công tác tại trường Đại học đà nẵng đã truyền đạt những kiến thức quý báu cho chúng em trong những năm học vừa qua.

Đặc biệt, chúng em xin chân thành cảm ơn Cô Trần Thu Thủy khoa Công nghệ thông tin và truyền thông đã tận tình hướng dẫn, giúp đỡ và động viên chúng em trong suốt thời gian thực hiện đề tài. Và để có được kết quả như ngày hôm nay, chúng em rất biết ơn gia đình đã động viên, khích lệ, tạo mọi điều kiện thuận lợi nhất trong suốt quá trình học tập cũng như quá trình thực hiện đề tài của môn này.

Và cũng xin chân thành cám ơn các bạn sinh viên trong khoa Công nghệ thông tin khóa 2019-2022, đặc biệt là các bạn lớp 17IT2 đã ủng hộ, giúp đỡ, chia sẻ kiến thức, kinh nghiệm và tài liệu có được cho chúng em trong quá trình nghiên cứu và thực hiện đề tài này.

Một lần nữa xin chân thành cám ơn!

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

3

Page 4: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

NHẬN XÉT (Của giảng viên hướng dẫn)

………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………………

4

Page 5: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

MỤC LỤC Trang

MỞ ĐẦU................................................................................................................1

Chương 1: Giới thiệu....................................................................................................71.1. Tổng Quan............................................................................................................71.2. Mục đích của đề tài..............................................................................................81.3. AI (Artificial Intelligence) là gì ?........................................................................81.4. Ngôn ngữ lập trình...............................................................................................9

Chương 2. Tổng quan về xử lý ảnh.............................................................................92.1 Tổng Quan............................................................................................................92.2 Các Bước Trong Quá Trình Xử Lý Ảnh..........................................................102.3. Một số vấn đề cơ bản trong xử lý ảnh..............................................................13

2.3.1. Điểm ảnh( Picture Element)....................................................................132.3.2. Độ Phân Giải Của Ảnh ( Resolution).....................................................132.3.3. Mức Xám Của Ảnh..................................................................................132.3.4. Biến đổi ảnh( Image Transform):...........................................................14

2.4. Xử Lý Nâng Cao Chất Lượng Ảnh...................................................................142.4.1. Toán tử điểm với xử lý ảnh...............................................................................15a. Tăng độ tương phản (Stretching Contrast).....................................................15b. Tách nhiễu và Phân ngưỡng..............................................................................15c. Biến đổi âm bản( Digital Negative)...................................................................15d. Cắt theo mức( Intensity Level Slicing).............................................................15e. Trích chọn bit (Bit Extraction).........................................................................16f. Trừ Ảnh...............................................................................................................16g. Nén Dải Độ Sáng.................................................................................................162.5. Toán Tử Không Gian Với Xử Lý Ảnh.............................................................172.5.1. Làm trơn nhiễu bằng lọc tuyến tính : lọc trung bình và lọc dải thông thấp.17

Chương 3. Giới thiệu thư viên OpenCV...................................................................193.1. OpenCV là gì ?...................................................................................................203.2. Cấu Trúc Của OpenCV.....................................................................................20

Chương 4. Bài toán phát hiện và nhận diện đối tượng............................................214.1. Object Detection.................................................................................................214.2. Bài toán xác định đối tượng..............................................................................22

Chương 5. Xây dựng chương trình nhận dạng đối tượng với Open cv.................245.1 Thiết kế chương trình........................................................................................245.1.1 Thêm các thư viện..............................................................................................255.1.2 Tạo Cửa Sổ Và Hiển Thị Ảnh...........................................................................255.1.3 Phát Hiện Đối Tượng.........................................................................................265.2 Kết quả DEMO...................................................................................................27

TÀI LIỆU THAM KHẢO...............................................................................................27

5

Page 6: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

DANH MỤC HÌNH

Hình 1: Quá trình xử lý ảnh...................................................................................10Hình 2: Các bước cơ bản trong quá trình xử lý ảnh..............................................11Hình 3: Sơ đồ phân tích và xử lý ảnh....................................................................12Hình 4: Các thành phần của thư viện OPENCV...................................................20Hình 5: Mô hình YOLO........................................................................................22Hình 6: Cách mô hình YOLO hoạt động..............................................................23Hình 7: Thêm các thư viện....................................................................................25Hình 8: Chạy YOLO.............................................................................................25Hình 9: Tạo cửa số và hiển thị ảnh........................................................................25Hình 10: Kích thước ảnh.......................................................................................26Hình 11: Phát hiện đối tượng................................................................................26Hình 12: Hiển thị trên màn hình............................................................................27Hình 13: Kết quả DEMO......................................................................................27

6

Page 7: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

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

1.1. Tổng Quan

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.

Việc áp dụng đột phát và nhanh cóng của deep learning và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ốn tí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ó.

1.2. Mục đích của đề tài- Xây dựng một chương trình ứng dụng nhận dạng đối tượng thông qua hình

ảnh hoặc video- Tìm hiểu về thư viện OpenCv, YOLO. - Tìm hiểu các phương pháp xác định đối tượng (Object Detection). - Nghiên cứu phân tích Deep Learning

1.3. AI (Artificial Intelligence) là gì ?

AI (Artificial intelligence) là trí thông minh nhân tạo. Nó là sự mô phỏng các quá trình trí tuệ của con người bằng máy móc, đặc biệt là các hệ thống hệ máy tính. Các ứng dụng cụ thể của AI bao gồm xử lý các ngôn ngữ tự nhiên, nhận dạng giọng nói và thị giác, quản lý hệ thống…Lập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận và tự điều chỉnh.

7

Page 8: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

1. Quá trình Learning Quá trình này của lập trình AI tập trung vào việc thu thập dữ liệu và tạo ra các quy tắc về cách biến dữ liệu thành thông tin có thể thực hiện được. Các quy tắc, được gọi là thuật toán, cung cấp cho các thiết bị máy tính các hướng dẫn từng bước về cách hoàn thành một nhiệm vụ cụ thể.

2. Quá trình suy luận Khía cạnh này của lập trình AI tập trung vào việc chọn đúng thuật toán để đạt được kết quả mong muốn.

3. Quá trình tự điều chỉnh Khía cạnh này của lập trình AI được thiết kế để liên tục tinh chỉnh các thuật toán và đảm bảo chúng cung cấp kết quả chính xác nhất có thể.

1.4. Ngôn ngữ lập trìnhPython là một ngôn ngữ lập trình thông dịch (Interpreted), hướng đối tượng (Object-

Oriented), và là một ngôn ngữ bậc cao . Python hỗ trợ các module và gói (packages), khuyến khích chương trình module hóa và tái sử dụng mã. Trình thông dịch Python và thư viện chuẩn mở rộng có sẵn dưới dạng mã nguồn hoặc dạng nhị phân miễn phí cho tất cả các nền tảng chính và có thể được phân phối tự do.Lý do Python được sử dụng phổ biến nhất trong các dự án Machine Learning và Artificial Intelligence bao gồm :

Tính đơn giản và nhất quán Cho phép truy cập vào các thư viện và framework tuyệt vời cho Machine

Learning và Artificial Intelligence Tính linh hoạt Độc lập nền tảng Và cộng đồng rộng lớn.

8

Page 9: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

Chương 2. Tổng quan về xử lý ảnh

2.1 Tổng Quan Xử lý ảnh là một lĩnh vực mang tính khoa học và công nghệ. Nó là một ngành khoa

học mới mẻ so với nhiều ngành khoa học khác nhưng tốc độ phát triển của nó rất nhanh, kích thích các trung tâm nghiên cứu, ứng dụng, đặc biệt là máy tính chuyên dụng riêng cho nó.

Các phương pháp xử lý ảnh bắt đầu từ các ứng dụng chính: nâng cao chất lượng ảnh và phân tích ảnh. Ứng dụng đầu tiên được biết đến là nâng cao chất lượng ảnh báo được truyền qua cáp từ Luân đôn đến New York từ những năm 1920. Vấn đề nâng cao chất lượng ảnh có liên quan tới phân bố mức sáng và độ phân giải của ảnh. Việc nâng cao chất lượng ảnh được phát triển vào khoảng những năm 1955. Điều này có thể giải thích được vì sau thế chiến thứ hai, máy tính phát triển nhanh tạo điều kiện cho quá trình xử lý ảnh số thuận lợi.

Các phương pháp tri thức nhân tạo như mạng nơron nhân tạo, các thuật toán xử lý hiện đại và cải tiến, các công cụ nén ảnh ngày càng được áp dụng rộng rãi và thu nhiều kết quả khả quan.

Xử lý ảnh đóng vai trò quan trọng trong tương tác giữa người với máy tính. Quá trình xử lý nhận dạng ảnh là một quá trình gồm các thao tác nhằm biến đổi một ảnh đầu và để cho ra một kết quả hoặc một kết luận.

Hình 1 : Quá trình Xử lý ảnh

Đầu tiên, ảnh tự nhiên từ thế giới ngoài được thu nhận qua các thiết bị thu (như Camera, máy chụp ảnh). Sau đó, qua Xử lý ảnh thì ảnh được chuyển trực tiếp thành ảnh số tạo thuận lợi cho xử lý tiếp theo. Kết quả của xử lý ảnh có thể là: cho ra một ảnh tốt hơn theo mong muốn của người dùng; Phân tích ảnh để thu được thông tin để phân loại ảnh và nhận biết ảnh; Rút ra những nhận xét, kết luận .v.v…

9

Ảnh đầu vào

Ảnh ra tốt hơn

Xử lý ảnhKết luận

Page 10: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

2.2 Các Bước Trong Quá Trình Xử Lý Ảnh

Hình 2 : Các bước cơ bản trong quá trình xử lý ảnh

2.2.1.2.2.

2.2.1. Thu nhận ảnh (Image Acquisition)

Ảnh có thể thu nhận qua máy ảnh màu hoặc trắng đen, máy quét ảnh , máy quay,.v.v… Chất lượng một ảnh thu nhận được phụ thuộc vào thiết bị thu, vào môi trường (ánh sáng, phong cảnh). Sau đó, ảnh được chuyển đổi ADC(số hóa ảnh) .Quá trình chuyển đổi ADC( Analog to Digital Converter) để thu nhận dạng số hóa của ảnh

2.2.2. Tiền xử lý ảnh (Image Processing)

Sau bộ thu nhận, ảnh có thể nhiễu độ tương phản thấp nên cần đưa vào bộ tiền xử lý để nâng cao chất lượng. Chức năng chính của bộ tiền xử lý ảnh là lọc nhiễu, nâng độ tương phản để làm ảnh rõ hơn, nét hơn. Ảnh sẽ được cải thiện về độ tương phản, khử nhiễu, khôi phục ảnh, nắn chỉnh hình học, ...

Khử nhiễu: nhiễu có hai loại: nhiễu hệ thống và nhiễu ngẫu nhiên. Đặc trưng của nhiễu hệ thống là tính tuần hoàn nên có thể khử nhiễu bằng việc sử dụng phép biến đổi Fourier và loại bỏ các đỉnh điểm. Nhiễu ngẫu nhiên có thể được khử bằng phương pháp nội suy, lọc trung vị và lọc trung bình.

Chỉnh mức xám: là chỉnh sửa tính không đồng đều của thiết bị thu nhận hoặc độ tương phản giửa các vùng ảnh.

Chỉnh tán xạ ảnh: Ảnh thu được từ các thiết bị quang học hay điện tử có thể bị mờ, nhòe ảnh. Phương pháp biến đổi Fourier dựa trên tích chập của

10

Biểu diễn và mô tả

Nhận dạng và nội suy

Tiền xử lý ảnh

Phân đoạn ảnh

Thu nhận ảnh

CƠ SỞ

Page 11: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

ảnh với hàm tán xạ.

2.2.3. Phân Đoạn Ảnh (Segmentation)Phân đoạn ảnh là tách một ảnh đầu vào thành các vùng thành phần để biểu diễn phân

tích, nhận dạng ảnh. Ví dụ: để nhận dạng chữ (hoặc mã vạch) trên phong bì thư cho mục đích phân loại

bưu phẩm, cần chia các câu, chữvề địa chỉ hoặc tên người thành các từ, các chữ, các số(hoặc các vạch) riêng biệt để nhận dạng. Đây là phần phức tạp khó khăn nhất trong xử lý ảnh và cũng dễ gây lỗi, làm mất độ chính xác của ảnh. Kết quả nhận dạng ảnh phụ thuộc rất nhiều vào công đoạn này. Kết quả của việc phân đoạn ảnh thường là các dữ liệu điểm ảnh thô, hàm chứa biên của một vùng ảnh hoặc tập hợp tất cả các điểm ảnh trong một vùng ảnh đó

2.2.4. Cơ sở trí thức( Knowledge Base)Ảnh là một đối tượng khá phức tạp về đường nét, độ sáng tối, dung lượng điểm

ảnh, môi trường để thu ảnh phong phú kéo theo nhiễu. Trong nhiều khâu xử lý ảnh và phân tích ảnh ngoài việc đơn giản hóa các phương pháp toán học đảm bảo tiện lợi cho xử lý, người ta mong muốn bắt chước quy trình tiếp nhận và xử lý ảnh theo cách của con người. Trong các bước xử lý ảnh đó, nhiều khâu hiện nay đã xử lý theo các phương pháp trí tuệ con người. Vì vậy, ở đây các cơ sở tri thức được phát huy.

Trong thực tế, các quá trình sử dụng ảnh số không nhất thiết phải qua hết các khâu đó tùy theo đặc điểm ứng dụng. Ảnh sau khi được số hóa được nén, và lưu lai để truyền đi cho các hệ thống khác sử dụng hoặc để xử lý tiếp theo. Mặt khác, ảnh sau khi số hóa có thể bỏ qua công đoạn nâng cao chất lượng để chuyển tới khâu phân đoạn hoặc bỏ tiếp khâu phân đoạn chuyển trực tiếp tới khâu trích chọn đặc trưng.

11

Page 12: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

Hình 3: Sơ đồ phân tích và xử lý ảnh

Việc trích chọn hiệu quả các đặc điểm giúp cho việc nhận dạng các đối tường ảnh chính xác, với tốc độ tính toán cao và dung lượng lưu trữ được giảm xuống. Các đặc điểm của đối tượng được trích chọn tùy theo mục đích nhận dạng trong quá trình xử lý ảnh. Một số đặc điểm của ảnh:

Đặc điểm không gian: phân bố mức xám, xác suất, biên độ, điểm uốn,.v.v… Đặc điểm biến đổi: các đặc điểm được trích chọn bằng việc thực hiện lọc

vùng( Zonal filtering). Các mặt nạ đặc điểm(feature mask) thường là các khe hẹp với hình dạng khác nhau( hình chữ nhật, hình vuông, hình tam giác.v.v…).

Đặc điểm biên và đường biên: là đặc trưng cho đường biên của đối tượng và trích chon các thuộc tính bất biến được dung khi nhận dạng đối tượng. Nhờ sử dụng các phương pháp toán tử Laplace, toán tử Gradient, toán tử La bàn, toán tử chéo không( zero crossing).v.v…

2.3. Một số vấn đề cơ bản trong xử lý ảnh

2.3.1. Điểm ảnh( Picture Element)Gốc của ảnh( ảnh tự nhiên) là ảnh liên tục về không gian và độ sáng. Để xử lý bằng

máy tính thì ảnh cần phải được số hoá. Số hoá ảnh là sự biến đổi gần đúng một ảnh liên tục thành một tập điểm phù hợp với ảnh thật về vị trí( không gian) và độ sáng( mức xám). Khoảng cách giữa các điểm ảnh đó được thiết lập sao cho mắt người không phân biệt được ranh giới giữa chúng. Mỗi một điểm như vậy gọi là điểm ảnh( PEL: Picture Element) hay gọi tắt là Pixel.

12

Page 13: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

Trong khuôn khổ ảnh hai chiều, mỗi pixel ứng với cặp tọa độ ( x, y). Định nghĩa: Điểm ảnh( Pixel) là một phần tử của ảnh số tại toạ độ( x, y) với độ xám hoặc màu nhất định. Kích thước và khoảng cách giữa các điểm ảnh đó được chọn thích hợp sao cho mắt người cảm nhận sự liên tục về không gian và mức xám( hoặc màu) của ảnh số gần như ảnh thật. Mỗi phần tử trong ma trận được gọi là một phần tử ảnh

2.3.2. Độ Phân Giải Của Ảnh ( Resolution)

Định nghĩa: Độ phân giải( Resolution) của ảnh là mật độ điểm ảnh được ấn định trên một ảnh số được hiển thị. Khoảng cách giữa các điểm ảnh phải được chọn sao cho mắt người vẫn thấy được sự liên tục của ảnh. Việc lựa chọn khoảng cách thích hợp tạo nên một mật độ phân giải và được phân bố theo trục x và y trong không gian hai chiều .

2.3.3. Mức Xám Của ẢnhMột điểm ảnh( pixel) có hai đặc trưng cơ bản là vị trí( x, y) của điểm ảnh và độ xám

của nó. Mức xám của điểm ảnh là cường độ sáng của nó được gán bằng giá trị số tại điểm đó. Các thang giá trị mức xám thông thường: 16, 32, 64, 128, 256( Mức 256 là mức thông dụng. Lý do từ kỹ thuật máy tính dùng 1 byte (8 bit) để biểu diễn mức xám: Mức xám dùng 1 byte biểu diễn: 28= 256 mức, tức là từ 0 đến 255).

Ảnh đen trắng: là ảnh có hai màu đen, trắng( không chứa màu khác) với mức xám ở các điểm ảnh có thể khác nhau.

Ảnh nhị phân: ảnh chỉ có 2 mức đen trắng phân biệt. tức dùng 1 bit mô tả 21 mức khác nhau. Nói cách khác mỗi điểm ảnh của ảnh nhị phân chỉ có thể là 0 hoặc 1.

Ảnh màu : trong khuôn khổ lý thuyết ba màu( Red, Blue, Green) để tạo nên thế giới màu, người ta thường dùng 3 byte đểmô tảmức màu, khi đó các giá trịmàu: 28∗3= 224≈16,7 triệu màu.

2.3.4. Biến đổi ảnh( Image Transform):Trong xử lý ảnh do số điểm ảnh lớn các tính toán nhiều( độ phức tạp tính toán cao)

đòi hỏi dung lượng bộ nhớ lớn, thời gian tính toán lâu. Các phương pháp khoa học kinh điển áp dụng cho xử lý ảnh hầu hết khó khả thi. Người ta sử dụng các phép toán tương đương hoặc biến đổi sang miền xử lý khác để dễ tính toán. Sau khi xử lý dễ dàng hơn được thực hiện, dùng biến đổi ngược để đưa về miền xác định ban đầu, các biến đổi thường gặp trong xử lý ảnh gồm:

Biến đổi Fourier, Cosin, Sin…

13

Page 14: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

Biến đổi( mô tả) ảnh bằng tích chập, tích Kronecker (theo xử lý số tín hiệu [3]).

Các biến đổi khác như KL( Karhumen Loeve), Hadamard. Một số công cụ xác suất thông kê cũng được sử dụng trong xử lý ảnh.

2.4. Xử Lý Nâng Cao Chất Lượng ẢnhNâng cao chất lượng là bước cần thiết trong xử lý ảnh nhằm hoàn thiện một số đặc

tính của ảnh. Nâng cao chất lượng ảnh gồm hai công đoạn khác nhau: tăng cường ảnh và khôi phục ảnh. Tăng cường ảnh nhằm hoàn thiện các đặc tính của ảnh như:

Lọc nhiễu, hay làm trơn ảnh, Tăng độ tương phản, điều chỉnh mức xám của ảnh, Làm nổi biên ảnh.

Các thuật toán triển khai việc nâng cao chất lượng ảnh hầu hết dựa trên các kỹ thuật trong miền điểm, không gian và tần số.

2.4.1. Toán tử điểm với xử lý ảnha. Tăng độ tương phản (Stretching Contrast)

Độ tương phản biểu diễn sự thay đổi độ sáng của đối tượng so với nền. Hay, độ tương phản là độ nổi của điểm ảnh hay vùng ảnh so với nền .

Các cấp độ α, β, γ xác định độ tương phản tương đối. Llà số mức xám cực đại.

α = β= γ=1 ( ảnh kết quả trùng với ảnh gốc ) α, β, γ > 1 ( dãn độ tương phản ) α, β, γ < 1 ( co độ tương phản )

b. Tách nhiễu và Phân ngưỡngTách nhiễu là trường hợp đặc biệt của dãn độ tương phản khi hệ số góc α= γ= 0. Tách

nhiễu được ứng dụng có hiệu quả để giảm nhiễu khi biết tín hiệu vào trên khoảng[ a, b]. Phân ngưỡng là trường hợp đặc biệt của tách nhiễu khi a=b=const

0 , 0 ≤ 𝑢 < 𝑎𝑓(𝑢) = {𝛼𝑢 , 𝑎 ≤ 𝑢 < 𝑏 𝐿 , 𝑏 ≤ 𝑢 Trong đó a= b= t gọi là phân ngưỡng

c. Biến đổi âm bản( Digital Negative)

14

Page 15: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

Âm bản nhận được bằng phép biến đổi âm

𝑓(𝑢) = 𝐿 − 𝑢

d. Cắt theo mức( Intensity Level Slicing)

Có 2 phép ánh xạ khác nhau cho trường hợp có nền và không nền

e. Trích chọn bit (Bit Extraction)

Mỗi điểm ảnh thường được mã hóa trên B bit. Nếu B= 8 ta có ảnh 2 8=256 mức xám( ảnh nhị phân ứng với B= 1). Trong các bit mã hóa này, người ta chia làm 2 loại: bit bậc thấp và bit bậc cao.Với bit bậc cao, độ bảo toàn thông tin cao hơn so với bit bậc thấp. Các bit bậc thấp thường biểu diễn nhiễu hay nền

u= k12B-1+ k22B-2+ … + kB-1 2 + kB

Để trích chọn bit có nghĩa nhất: bit thứ nvà hiện thị chúng, ta dùng biến đổi sau:

15

Page 16: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

Với kn=in-2in-1

f. Trừ Ảnh

Trừ ảnh được dùng để tách nhiễu khỏi nền. Người ta quan sát ảnh ở 2 thời điểm khác nhau, so sánh chúng để tìm ra sự khác nhau. Người ta dóng thẳng 2 ảnh rồi trừ đi và thu được ảnh mới. Ảnh mới này chính là sự khác nhau. Kỹ thuật này hay được dùng trong dự báo thời tiết, trong y học

g. Nén Dải Độ Sáng

Đôi khi do dải động của ảnh lớn, việc quan sát ảnh không thuận tiện. Cần phải thu nhỏ dải độ sáng lại mà ta gọi là nén giải độ sáng. Ta dùng phép biến đổi logarit sau:

v (m,n) = c*log10(δ+ u(m,n))

Với c là hằng số tỉ lệ, δ được coi là nhỏ so với u(m, n). Thường δ được chọn trong khoảng 3-10.

2.5. Toán Tử Không Gian Với Xử Lý ẢnhThông thường là ảnh thu nhận được có nhiễu cần phải loại bỏ nhiễu hay ảnh không

được sắc nét bị mờ hoặc cần làm tõ các chi tiết như đường biên ảnh. Các toán tử không gian dùng trong kỹ thuật tăng cường ảnh được phân nhóm theo công dụng: làm trơn nhiễu, nổi biên. Để làm trơn nhiễu hay tách nhiễu, người ta sử dụng các bộ lọc tuyến tính( lọc trung bình, thông thấp) hay lọc phi tuyến( trung vị, giả trung vị, lọc đồng hình). Từ bản chất của nhiễu( thường tương ứng với tần số cao) và từ cơ sở lý thuyết lọc là: bộ lọc chỉ cho tín hiệu có tần số nào đó thông qua do đó, để lọc nhiễu người ta thường dùng lọc thông thấp( theo quan điểm tần số không gian) hay lấy tổhợp tuyến tính đểsan bằng( lọc trung bình). Để làm nổi cạnh (ứng với tần số cao), người ta dùng các bộ lọc thông cao, lọc Laplace. Trước khi xem xét chi tiết các kỹ thuật áp dụng, cần phân biệt các loại nhiễu hay can thiệp trong quá trình xử lý ảnh. Trên thực tế tồn tại nhiều loại nhiễu, tuy nhiên người ta thường xem xét 3 loại nhiễu chính: nhiễu cộng, nhiễu nhân và nhiễu xung:

Nhiễu cộng: Nhiễu cộng thường phân bố khắp ảnh. Nếu gọi ảnh quan sát (ảnh thu được) là Xqs, ảnh gốc là Xgốc, nhiễu là η, ảnh thu được có thể biểu diễn với công thức:

Xqs = Xgốc + η

16

Page 17: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

Nhiễu nhân: Nhiễu nhân thường phân bố khắp ảnh và ảnh thu được sẽ biểu diễn với công thức:

Xqs = Xgốc* η

Nhiễu xung: Nhiễu xung thường gây đột biến tại một số điểm ảnh

2.5.1. Làm trơn nhiễu bằng lọc tuyến tính : lọc trung bình và lọc dải thông thấp

a. Lọc trung bình không gian: Với lọc trung bình, mỗi điểm ảnh được thay thế bằng trung bình trọng số của các

điểm lân cận. v(m, n) = ∑ ∑a(k, l)y(m − k, n − l) (k,l)∈WTa dùng các trọng số như nhau, phương trình trên sẽ trở thành:

Với: y(m,n): ảnh đầu vào

v(m,n): ảnh đầu ra

a(k,l): cửa sổ lọc

với ak,l= 1/Nw và Nw là số điểm ảnh trong cửa sổ lọc W.

Lọc trung bình có trọng số chính là thực hiện chập ảnh đầu vào với nhân chập H. Nhân chập H có dạng:

Trong lọc trung bình, thường được ưu tiên cho các hướng để bảo vệ biên của ảnh khỏi bị mờ khi làm trơn ảnh. Các kiểu mặt nạ được sử dụng tùy theo các trường hợp khác nhau. Các bộ lọc tuyến tính trên là điểm ảnh ở tâm cửa số sẽ được thay bởi tổ hợp các điểm lân cận chập với mặt nạ.

Một bộ lọc trung bình không gian khác cũng hay được sử dụng. Phương trình của bộ lọc đó có dạng:

17

Page 18: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

Nhân chập H có kích thuớc 2x2 và mỗi điểm ảnh kết quả có giá trị bằng trung bình cộng của nó với trung bình cộng của 4 lân cận gần nhất. Lọc trung bình trọng số là một trường hợp riêng của lọc thông thấp. b. Lọc thông thấp:

Lọc thông thấp thường được sử dụng để làm trơn nhiễu. Trong lọc thông thấp người ta hay dùng một số nhân chập có dạng sau:

Ta dễ dàng nhận thấy khi b= 1, Hb chính là nhân chập Ht1 (lọc trung bình). Để hiểu rõ

hơn bản chát khử nhiễu cộng của các bộ lọc này, ta viết lại phương trình thu nhận ảnh

dưới dạng:

Xqs[m,n]= Xgốc[m,n] + η[m,n]

Trong đó η[m, n] là nhiễu cộng có phương sai σ2n. Như vậy, theo cách tính của lọc

trung bình ta có:

Như vậy, nhiễu cộng trong ảnh đã giảm đi Nw lần.

b. Lọc đồng hình (Homomorphie Filter):

Kỹ thuật lọc đồng hình hiệu quả với ảnh có nhiễu nhân. Thực tế, ảnh quan sát được gồm ảnh gốc nhân với một hệ số nhiễu. Gọi �̅�(𝑚, 𝑛) là ảnh thu được, X(m, n) là ảnh gốc và η(m, n) là nhiễu, nhưvậy:

X(m, n) = �̅�(𝑚, 𝑛)* η(m, n).

Lọc đồng hình thực hiện lấy logarit của ảnh quan sát. Do vậy ta có kết quả sau: Log(X(m, n)) = log(�̅�(𝑚, 𝑛)) + log(η(m, n))

Nhiễu nhân có trong ảnh sẽ bị giảm. Sau quá trình lọc tuyến tính, ta chuyển về ảnh cũ bằng phép biến đổi hàm e mũ

18

Page 19: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

Chương 3. Giới thiệu thư viên OpenCV

2.3.3.1. OpenCV là gì ?

OpenCV là một mã nguồn mở, là thư viện thị giác máy tính. Thư viện OpenCV được viết bằng C và C++ và chạy trên Linux, Windows và Mac OS X. Phát triển tốt trên các giao diện: Python, Ruby, Matlab, và các ngôn ngữ khác. OpenCV được thiết kế để tính toán hiệu quả và tập trung mạnh vào các ứng dụng thời gian thực. OpenCV được viết tối ưu hóa bằng C và có thể tận dụng lợi thế của bộ vi xử lý đa lõi.

OpenCV tự động sử dụng thư viện IPP thích hợp trong thời gian chạy nếu thư viện được cài đặt. Một trong những mục tiêu của OpenCV là cơ sở cho thị giác máy tính giúp người sử dụng và xây dựng các ứng dụng thị giác máy tính khá phức tạp một cách nhanh chóng. Thư viện OpenCV chứa hơn 500 chức năng được sử dụng trong nhiều lĩnh vực của thị giác máy tính, bao gồm kiểm tra nhà máy sản xuất sản phẩm, hình ảnh y tế, an ninh, giao diện người dùng, hiệu chỉnh máy ảnh, thị giác 3 chiều, và robot.

Bởi vì thị giác máy tính và việc học lập trình thường đi chung với nhau. OpenCV có mục đích chung là tạo ra Machine Learning Library( MLL). MLL thì rất hữu ích cho những tác vụ của thị giác đó là nhiệm vụ của OpenCV. Sublibrary là tập trung vào nhận dạng mẫu thống kê và phân nhóm

3.2. Cấu Trúc Của OpenCV

19

Page 20: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

Cấu trúc tổng quan của OpenCv bao gồm 5 phần chính. Hình vẽ dưới đây, mô tả 4 trong 5 thành phần đó

Hình 4. Các thành phần của thư viện OpenCV

Cxcore: chứa các định nghĩa kiểu dữ liệu cơ sở. Ví dụ, các cấu trúc dữ liệu cho ảnh, điểm và hình chữ nhật được định nghĩa trong ctypes.h. Cxore cũng chứa các phép tính đại số tuyến tính và phương pháp thống kê, chức năng đồ họa để vẽ trên ảnh.

Cv: chứa các thuật toán để xử lý ảnh, thị giác máy tính và lấy chuẩn(calibration) camera, các chức năng tái tạo ảnh 3D.

Cvaux: được mô tả trong văn bản của OpenCV như là module cũ và chỉ dung để thí nghiệm. Tuy nhiên, nó giao diện đơn giản cho nhận dạng khuôn mặt.

Highgui: Chứa các giao diện vào ra cơ bản, nó cũng chứa các khả năng cửa sổ mở rộng và vào ra video.

Cvcam: Chứa các giao diện cho video truy cập qua DirectX trên nền Windows 32 bit

20

Page 21: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

Chương 4. Bài toán phát hiện và nhận diện đối tượng

4.4.1. Object Detection

Object Detection là một bài toán quan trọng trong lĩnh vực Computer Vision, thuật toán Object Detection được chia thành 2 nhóm chính :

Họ các mô hình RCNN ( Region-Based Convolutional Neural Networks) để giải quyết các bài toán về định vị và nhận diện vật thể.

Họ các mô hình về YOLO (You Only Look Once) dùng để nhận dạng đối tượng được thiết kế để nhận diện các vật thể real-time Yolo là một mô hình mạng CNN cho việc phát hiện, nhận dạng, phân loại đối tượng.

Yolo được tạo ra từ việc kết hợp giữa các convolutional layers và connected layers.Trong đóp các convolutional layers sẽ trích xuất ra các feature của ảnh, còn full-connected layers sẽ dự đoán ra xác suất đó và tọa độ của đối tượng.

21

Page 22: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

Hình 5. Mô hình YOLO

4.2. Bài toán xác định đối tượng

Đầu vào của mô hình là một ảnh, mô hình sẽ nhận dạng ảnh đó có đối tượng nào hay không, sau đó sẽ xác định tọa độ của đối tượng trong bức ảnh. Ảnh đầu vào thường thì sẽ là 3×3, 7×7, 9×9... việc chia ô này có ảnh hưởng tới việc mô hình phát hiện đối tượng,

22

Page 23: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

Hình 6. Cách mô hình YOLO hoạt động

Với Input là 1 ảnh, đầu ra mô hình là một ma trận 3 chiều có kích thước S×S×(5×N+M) với số lượng tham số mỗi ô là (5×N+M) với N và M lần lượt là số lượng Box và Class mà mỗi ô cần dự đoán.

Ví dụ với hình ảnh trên chia thành 7×7 ô, mỗi ô cần dự đóan 2 bounding box và 3 object : con chó, ô tô, xe đạp thì output là 7×7×13, mỗi ô sẽ có 13 tham số, kết quả trả về (7×7×2=98) bounding box. Chúng ta sẽ cùng giải thích con số (5×N+M) được tính như thế nào. Dự đoán mỗi bounding box gồm 5 thành phần : (x, y, w, h, prediction) với (x, y ) là tọa độ tâm của bounding box, (w, h) lần lượt là chiều rộng và chiều cao của bounding box, prediction được định nghĩa Pr(Object)∗ IOU(pred,truth).

Với hình ảnh trên như ta tính mỗi ô sẽ có 13 tham số, ta có thể hiểu đơn giản như sau tham số thứ 1 sẽ chỉ ra ô đó có chứa đối tượng nào hay không P(Object), tham số 2, 3, 4, 5 sẽ trả về x, y ,w, h của Box1. Tham số 6, 7, 8, 9, 10 tương tự sẽ Box2, tham số 11, 12, 13 lần lượt là xác suất ô đó có chứa object1( P(chó|object), object2(P(ô tô|object)), object3(P( xe đạp|object)). Lưu ý rằng tâm của bounding box nằm ở ô nào thì ô đó sẽ chứa đối tượng, cho dù đối tượng có thể ở các ô khác thì cũng sẽ trả về là 0. Vì vậy việc mà 1 ô chứa 2 hay nhiều tâm của bouding box hay đối tượng thì sẽ không thể detect được, đó là một hạn chế của mô hình YOLO1, vậy ta cần phải tăng số lượng ô chia trong 1 ảnh lên đó là lí do vì sao mình nói việc chia ô có thể làm ảnh hưởng tới việc mô hình phát hiện đối tượng.

23

Page 24: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

24

Page 25: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

Chương 1.

Chương 2.

Chương 3.

Chương 4.Chương 5. Xây dựng chương trình nhận dạng đối tượng

với Open cv

3455.1 Thiết kế chương trình5.1.1 Thêm các thư viện

Import các thư viện OpenCV , Numpy

Hình 7 : Thêm các thư viện

Chúng ta cần 3 File : Weights : Là mô hình được đào tạo, cốt lõi của đại số để phát hiện các đối tượng. Cfg : Là tệp cấu hình, nơi có tất cả các cài đặt của đại số. Names : Chứa tên của các đối tượng mà đại số có thể phát hiện.

Hình 8 : Chạy YOLO

5.1.2 Tạo Cửa Sổ Và Hiển Thị Ảnh

25

Page 26: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

Hiển thị ảnh :

Hình 9 : Tạo cửa sổ và hiển thị ảnh

Blob là những điểm nhỏ, nhóm điểm. Blob được sử dụng để trích xuất tính năng từ hình ảnh và thay đổi kích thước chúng. YOLO chấp nhận ba kích thước :

320 × 320 nó nhỏ nên độ chính xác thấp hơn nhưng tốc độ tốt hơn 609 × 609 nó lớn hơn nên độ chính xác cao và tốc độ chậm 416 × 416 nó ở giữa và bạn có được một chút của cả hai.

Hình 10 : Kích thước ảnh5.1.3 Phát Hiện Đối Tượng

Mức tin cậy của đối tượng là 0,5, nếu lớn hơn đối tượng được phát hiện chính xác, nếu không bỏ qua nó. Ngưỡng tin cậy từ 0 đến 1. Càng gần 1 thì độ chính xác của phát hiện càng cao và càng gần 0 thì độ chính xác càng thấp nhưng số lượng đối tượng được phát hiện càng lớn.

26

Page 27: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

Hình 11 : Phát hiện đối tượngCuối cùng chúng tôi trích xuất tất cả các thông tin và hiển thị chúng trên màn hình.

Box : chứa tọa độ của hình chữ nhật bao quanh đối tượng được phát hiện. Label : đó là tên của đối tượng được phát hiện Confidence : Độ tin cậy về việc phát hiện đối tượng từ 0 đến 1.

27

Page 28: Chương 1: Giới thiệudaotao.sict.udn.vn/uploads/2020/08/1597814801-doancoso5... · Web viewLập trình AI tập trung vào ba kỹ năng nhận thức: học tập, lý luận

Hình 12 : Hiển thị trên màn hình5.2 Kết quả DEMO

Hình 13 : Kết quả DEMO

TÀI LIỆU THAM KHẢOTiếng Việt:

1. Giáo trình xử lý ảnh , Đỗ Hồng Tuấn , Nhà xuất bản Đại học Quốc gia TP HCM 20172. Giáo trình xử lý ảnh số, TS. Nguyễn Đăng Bình, lưu hành nội bộ, 2017.

Tiếng Anh:

1. Gray Bradski and Adrian Kaeber ( September 2008 ), OReilly-LearningOpenCV.2. Mauricio Menegaz (2020) Understanding YOLO

<https://hackernoon.com/understanding-yolo-f5a74bbc7967>

28