1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ Án Cơ Sở 4 - Đề Tài - Phần Mềm Nhận Dạng Trái Cây Dựa Trên Nền Tảng Deep Learning

65 13 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

Tiêu đề Phần Mềm Nhận Dạng Trái Cây Dựa Trên Nền Tảng Deep Learning
Người hướng dẫn Thầy Nguyễn Hà Huy Cường
Trường học Đại Học Đà Nẵng
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đồ Án
Năm xuất bản Năm 3
Thành phố Đà Nẵng
Định dạng
Số trang 65
Dung lượng 5,36 MB

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

Nội dung

MẪU ĐỒ ÁN KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VIỆT HÀN ĐỒ ÁN CƠ SỞ 4 ĐỀ TÀI PHẦN MỀM NHẬN DẠNG TRÁI CÂY DỰA TRÊN NỀN TẢNG DEEP LEARNING LỜI CẢM ƠN NHẬN XÉT (Của cơ[.]

Trang 2

LỜI CẢM ƠN

NHẬN XÉT

(Của cơ quan thực tập, nếu có) Bold, size 16, xếp sau trang Lời cảm ơn

size 13………

………

………

………

………

………

Là sinh viên năm 3 của Trường Đại Học Công Nghệ Thông Tin và Truyền Thông Việt – Hàn Chúng em đã ý thức được việc phát triển bản thân, những kỹ năng

và điều thiết yếu trong quá trình làm đồ án Tiếp thu và hoàn thiện những kỹ năng còn thiếu trong quá trình đang học tập tại trường Để có thể tạo ra những sản phẩm bóa cáo hoàn thiện trong môn đồ án 4 này

Nhóm đồ án chúng em xin gửi lời cảm ơn đến thầy Nguyễn Hà Huy Cường – giảng viên hướng dẫn đồ án cơ sở 4 đã trang bị cho em những kiến thức, kỹ năng cơ bản cần có để hoàn thành đề tài này

Tuy nhiên trong quá trình nghiêm cứu đề tài, do kiến thức chuyên ngành còn hạn chế nên nhóm chúng em vẫn còn nhiều thiếu sót khi tìm hiểu, đánh giá và trình bày về đề tài Rất mong nhận được sự quan tấm và góp ý của thầy/cô bộ môn để tài của

em được đầy đủ và hoàn chỉnh hơn

Xin chân thành cảm ơn!

Trang 3

1.2 Tổng quan kiến trúc của một hệ thống nhận dạng mẫu 21.3 Hạn chế tồn tại của bài toán nhận dạng 3

1.4.1 Giới thiệu ngôn ngữ lập trình Python 4

1.4.3 Giới thiệu về thư viện Tensorflow 61.4.4 Môi trường lập trình Visual Studio Code 7

2.1.1 Một số phương pháp xác định khuôn mặt người 8

2.2.1 Kỹ thuật phát hiện Haar Cascade Classifier 10

2.2.2.6 Cascade of boosting classifiers: 14

2.4.1 Mô hình mạng neural trong huấn luyện 212.5 Tập dữ liệu hình ảnh trái cây tiền đề 22

Trang 4

Chương 3 Phân tích và triển khai xây dựng 25

3.3 Triển khai cài đặt, mô phỏng hệ thống 27

3.3.1.2 Cài đặt các thư viện phụ thuộc cần thiết 28

Trang 5

DANH MỤC HÌNH

Trang

Hình 1: Các bước xử lý chính trong bài toán nhận dạng 3

Hình 2: Ngôn ngữ lập trình Python 4

Hình 3: Thư viện OpenCV 5

Hình 4: Thư viện Tensorflow 6

Hình 5: Môi trường lập trình Visual Studio Code 7

Hình 6: Phát hiện vật thể 8

Hình 7 Đặt trưng Haar-like cơ bản 12

Hình 8 Cách tính Integral Image của ảnh 13

Hình 9 Cascade of classifiers 14

Hình 10 Cascade of boosting classifiers 14

Hình 11: Mô hình CNN - Deep Learning 15

Hình 12 Lớp convolutional neural networks 16

Hình 13: Lớp Convolutional layers 16

Hình 14: Lớp Pooling layers 17

Hình 15: Lớp fully connected layers 18

Hình 16 Lớp loss layers 18

Hình 17 Lớp recurrent netral network 19

Hình 18: Lớp Deep belief network 19

Hình 19 Mô hình CNN khi sử dụng thư viện Tensorflow 20

Hình 20 Cấu trúc mạng neural trong mô hình và mô phỏng 21

Hình 21 Sơ đồ ngữ cảnh hệ thống 25

Hình 22 Huấn luyện mô hình CNN sử dụng tập dữ liệu trái cây 25

Hình 23 Sơ đồ hệ thống phát hiện trái cây và lưu vào tập dữ liệu 26

Hình 24 Sơ đồ hệ thống huấn luyện mô hình 26

Hình 25 Sơ đồ hệ thống nhận dạng trái cây 26

Hình 26 Sơ đồ tổng thể của hệ thống nhận dạng trái cây 27

Hình 27 Tải và cài đặt môi trường Python 27

Hình 28 Tạo môi trường Python trên Pycharm 28

Hình 29 Kiểm tra OpenCV có được hỗ trợ trong Python 28

Hình 30 Kiểm tra quá trình import thư viện 28

Hình 31 Cài đặt thư viện Numpy 29

Hình 32 Cài đặt thư viện Pillow 29

Hình 33 Cài đặt framwork Flask 29

Hình 34 Cài đặt thư viện Tensorflow 29

Hình 35 Sơ đồ thư mục đồ án 30

Hình 36 Tập dữ liệu của 131 loại trái cây được thu thập trong đồ án 30

Hình 37 Hình ảnh của 1 loại trái cây cụ thể trong tập dữ liệu 30

Hình 38 Hàm tạo 2 biểu đồ đánh giá quá trình huấn luyện 31

Hình 39 Hàm chuyển đổi màu RGB sang HSV và xám 31

Trang 6

Hình 40 Hàm thay đổi màu sắc và độ bão hòa theo điều kiện ánh sáng 31

Hình 41 Lớp network xây dựng mô hình từ hình ảnh 32

Hình 42 Hàm train_and_evaluate_model 33

Hình 43 Hàm đưa tới đường dẫn chính của trang website 33

Hình 44 Thực hiện việc lưu hình ảnh từ website gửi về 33

Hình 45 Thực hiện công việc so sánh và gửi trả kết quả về website 34

Hình 46 Quá trình huấn luyện của tập dữ liệu 34

Hình 47 Kết thúc của mỗi vòng lặp huấn luyện 35

Hình 48 Mô hình độ chính xác (trái) và mô hình độ hao hụt của quá trình huấn luyện 35

Hình 49 Trang website chính của hệ thống nhận dạng 35

Hình 50 Dưa Lê với độ chính xác là 99,999905% 36

Hình 51 Trái Thơm với độ chính xác 100% 36

Hình 52 Quả Dưa Hấu với độ chính xác là 100% 36

Hình 53 Trái Cà Chua với độ chính xác là 100% 36

Trang 7

9 Local Binary Patterns LBP

11 Local Binary Patterns Histogram LBPH

Trang 8

Phần I Mở đầu

1 Tổng quan

Dưới công cuộc phát triển vượt trội cả cuộc cách mạng 4.0 cùng với cácvấn đề liên quan như Trí Tuệ Nhân Tạo, Điện Toán Đám Mây, Internet VạnVật và BigData Hiện nay Trí Tuệ Nhân Tạo đang là một xu hướng có tiềmnăng trong lĩnh vực công nghệ thông tin và là yếu tố then chốt với vô số ứngdụng trong mọi khía cạnh của cuộc sống như Smart Home, xe tự hành, hệthống nhận dạng

Hiện nay, do sự phổ biến theo nhu cầu của con người đã làm cho lượngthông tin thu được bằng hình ảnh ngày càng tăng Theo đó lĩnh vực xử lý ảnhcũng được chú trọng và phát triển, ứng dụng rộng rãi trong đời sống xã hộihiện đại Không chỉ dừng lại ở việc chỉnh sửa, tăng chất lượng hình ảnh màvới công nghệ xử lý ảnh hiện nay giúp con người có thể giải quyết các bàitoán nhận dạng chữ viết, nhận dạng vân tay, nhận dạng thực phẩm an toàn

Nhận dạng thực phẩm là một mô hình mới được triển khai gần đây Cóthể được ứng dụng trong công nghiệp, nông nghiệp và dịch vụ Khi áp dụng

hệ thống vào đời sống, việc lựa chọn thực phẩm sạch, an toàn được cải thiệnnhư nhận biết được trái cây đang trong tình trạng như thế nào, đánh giá tìnhtrạng thực phẩm dựa trên bề mặt của nó hoặc với ứng dụng trong mô hìnhnông nghiệp, hệ thống nhận dạng có thể dự đoán những trái xoài hay tráithơm khi nào có thể thu hoạch trên diện rộng

Và được tích lũy kinh nghiệp từ hệ thống nhận dạng khuôn mặt ở đồ án

cơ sở 3 và bài báo kỹ thuật tự động chấm công trong dạy học thông minhdựa trên phương pháp Machine Learning ở Hội thảo CITA 2020 Chính vì thế,

nhờ những yếu tố trên, nhóm đồ án đưa ra mô hình hệ thống nhận dạng trái

cây dựa trên nền tảng Deep Learning.

2 Mục đích

- Xây dựng Mô hình hệ thống nhận dạng trái cây

- Tìm hiểu về mô hình mạng neural tích chập(CNN)

- Tìm hiểu thư viện của Python trong việc tiền xử lý hình ảnh

- Tìm hiểu về Deep Learning và Machine Learning

3 Phương pháp

a) Đối tượng:

- Các phương pháp, thuật toán phục vụ cho việc phát hiện và nhận dạngkhuôn mặt người trên ảnh

- Bộ thư viện xử lý ảnh OpenCv

- CSDL tự tạo bằng cách thu thập dữ liệu sinh viên (khuôn mặt)

Trang 9

b) Phạm vi nghiên cứu:

- Tập trung tìm hiểu nhận dạng khuôn mặt (Face Recognition)

- Xử lí ảnh khuôn mặt và huấn luyện để nhận diện

- Nhận dạng khuôn mặt với webcam và điểm danh

Phần II Nội dung

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

1 Các phương pháp

1.1 Bài toán nhận dạng mẫu

Nhận dạng mẫu là một ngành thuộc lĩnh vực học máy (machine learning).Nói cách khác, nó có thể được xem là việc “cần thực hiện một tác động vào dữliệu thô mà tác động cụ thể là gì sẽ tùy thuộc vào loại dữ liệu đó” Nhận dạngmẫu nhằm mục đích phân loại dữ liệu dựa trên: kiến thức tiên nghiệm hoặc dựavào thông tin thống kê được trích rút từ các mẫu có sẵn Các mẫu cần đượcphân loại thường được biễu diễn thành các nhóm của các dữ liệu đo đạc hayquan sát được, mỗi nhóm là một điểm ở trong một không gian đa chiều phùhợp Đó là không gian của các đặc tính để dựa vào đó ta có thể phân loại

Việc phân loại thường dựa vào sự có sẵn của một tập các mẫu mà đãđược phân loại sẵn Tập các mẫu này được gọi là tập huấn luyện và chiến lượchọc nhằm phân loại mẫu vào một trong các lớp có sẵn được gọi là học có giámsát Việc học cũng có thể là không có giám sát, theo nghĩa là hệ thống khôngđược cung cấp các mẫu được đánh nhã tiên nghiệm mà nó được tự đưa ra cáclớp để phân loại dựa vào tính ổn định trong thông kê của các mẫu

Các ứng dụng phổ biến là nhận dạng tiếng nói tự động, phân loại văn bảnthành nhiều loại các nhau, nhận dạng tự động các mã bưu điện viết tay trên cácbao thư, hay hệ thông nhận dạng danh tính dựa vào mặt người Cả ba ví dụ cuốitạo thành lĩnh vực con phân tích ảnh của nhận dạng mẫu với đầu vào là các ảnhsố

1.2 Tổng quan kiến trúc của một hệ thống nhận dạng mẫu

Cùng với sự phát triển của kinh tế xã với ngành kỹ thuật hiện nay Đòi hỏi

sự quản lý và xử lý thông tin chính xác mà nó vượt quá sức của con người Vì vậychúng ta cần có máy móc hoặc giảm tải hoặc thay thế công việc nặng nhọc, đòihỏi sự chính xác cao và tiết kiệm nhân lực sức người Việc giúp máy móc nhậndạng (thu thập, phân loại thông tin) như con người sẽ giúp máy móc hoạt độnghiệu quả như con người và độ chính xác cao hơn nhiều

 Một số ứng dụng của bài toán nhận dạng

Nhận dạng giọng nói: ứng dụng này được tích hợp trên nhiều sản phẩm,bạn sẽ điều khiển các thiết bị qua giọng nói của mình thay vì phải thao tác trực

Trang 10

tiếp bằng tay, như trong mô hình nhà thông minh, trên điện thoại, … Ví dụ: ứngdụng Jibbigo trên điện thoại di động Ứng dụng này có thể dịch được tiếng nóicủa người sử dụng với 8 ngôn ngữ khác nhau như tiếng Anh, Pháp, Đức, Nhật,Hàn Quốc, Tây Ban Nha, Trung Quốc.

Trang 11

Nhận dạng dấu vân tay: thuộc ngành sinh trắc học, ở Việt Nam đã được sử dụngtrong việc chấm công, điểm danh và làm khóa an toàn cho các loại cửa sắt, máytính xách tay, … Nó tạo sự tiện dụng và tính an toàn.

Nhận dạng khuôn mặt: thuộc ngành sinh trắc học Tương tự như ở nhậndạng dấu vân tay Sử dụng một mẫu huấn luyện cho trước để có thể so sánh vớikhuôn mặt của người dùng Hiện nay đang được phát triển mạnh mẽ trong việcquản lý công dân, giám sát và kiểm tra thông qua camera, giúp nhà nước quản lý

dễ dàng hơn

Thông thường, một bài toán nhận dạng thường có các bước xử lý sau:

1.3 Hạn chế tồn tại của bài toán nhận dạng

Bài toán nhận dạng là bài toán đã được nghiên cứu từ những năm 70 Tuynhiên, đây là bài toán khó nên những nghiên cứu hiện tại vẫn chưa được kết quảmong muốn Chính vì thế, vấn đề này vẫn đang được nhiều nhóm nghiên cứutrên thế giới quan tâm Khó khăn của nhận dạng có thể kể đến như sau:

a) Tư thế chụp, góc chụp: ảnh chụp có thể đánh giá chất lượng rất nhiều bởi

vì góc chụp giữa camera và vật thể không chính xác hoàn toàn Ở cả bướctiền xử lý tập dữ liệu và nhận dạng Chẳng hạn như: chụp thẳng, chụpchéo bên trái độ hay chụp chéo bên phải 45 độ, chụp từ trên xuống haychụp từ dưới lên, … Với các tư thế khác nhau, các thành phần trên khuônmặt như mắt, mũi, miệng có thể bị khuất môt phần hoặc thậm khuấthoàn toàn

b) Sự xuất hiện hoặc mất một số thành phần của vật thể: các đặc trưng củavật thể có thể xuất hiện hoặc không Vấn đề này làm bài toán trở nên khókhăn hơn nhiều

c) Sự che khuất: Vật thể có thể bị che khuất bởi các đối tượng khác hoặc vậtthể khác

d) Hướng của ảnh: Các ảnh khuôn mặt có thể biến đổi rất nhiều với các gócquay khác nhau của trục camera Chẳng hạn chụp với trục máy ảnhnghiêng làm cho vật thể bị nghiêng so với trục

e) Điều kiện của ảnh: Ảnh được chup trong các điều kiện khác nhau về:chiếu sang, tính chất camera, ảnh có chất lượng thấp so với chất lượng

Hình 1: Các bước xử lý chính trong bài toán nhận dạng

Trang 12

vật thể Việc nhận dạng thay đổi theo thời gian còn là một vấn đề khókhăn, ngay cả đối với khả năng nhận dạng của con người.

Trang 13

1.4 Công nghệ thực hiện

Để giải quyết bài toán phát hiện trái cây sử dụng thư viện OpenCV, chúng

ta có thể sử dụng các ngôn ngữ lập trình như: NET C#, IronPython, Java, C++, …

Trong đồ án này ngôn ngữ lập trình được sử dụng là Python, được viếttrên phần mềm Pycharm làm giao diện lập trình và sử dụng môi trường Python3.8 Trong hệ thống nhận diện trái cây, nhóm đồ án sử dụng nhiều thư viện củapython cụ thể như: Numpy, Tensorflow, Keras, Pillow, OpenCV, …

1.4.1 Giới thiệu ngôn ngữ lập trình Python

Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đanăng, do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991 Pythonđược thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ Python là ngônngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới họclập trình Cấu trúc của Python còn cho phép người sử dụng viết mã lệnh với sốlần gõ phím tối thiểu

Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động;

do vậy nó tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl Python được pháttriển trong một dự án mã mở, do tổ chức phi lợi nhuận Python SoftwareFoundation quản lý

Ban đầu, Python được phát triển để chạy trên nền Unix Nhưng rồi theothời gian, Python dần mở rộng sang mọi hệ điều hành từ MS-DOS đến Mac OS,OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix Mặc dù sự pháttriển của Python có sự đóng góp của rất nhiều cá nhân, nhưng Guido vanRossum hiện nay vẫn là tác giả chủ yếu của Python Ông giữ vai trò chủ chốttrong việc quyết định hướng phát triển của Python

Trang 14

Hình 2: Ngôn ngữ lập trình Python

Trang 15

1.4.2 Giới thiệu về thư viện OpenCV

OpenCv (Open Source Computer Vision) là một thư viện mã nguồn mở vềthị giác máy với hơn 500 hàm và hơn 2500 các thuật toán đã được tối ưu về XLA,

và các vấn đề liên quan tới thị giác máy OpenCv được thiết kế một cách tối ưu,

sử dụng tối đa mạnh của các dòng chip đa lõi… để thực hiện các phép tính toántrong thời gian thực, nghĩa là tốc độ đáp ứng của nó thể đủ nhanh cho các ứngdụng thông thường

OpenCv là thư viện được thiết kế để chạy trên nhiều nền tảng khác nhau(cross-platform), nghĩa là nó có thể chạy trên hệ điều hành Window, Linux, Mac,iOS… Việc sử dụng thư viện OpenCv tuân theo các quy định về sử dụng phầnmềm mã nguồn mở BSD do đó bạn có thể sử dụng thư viện này một cách miễnphí cho các mục đích phi thương mại lẫn thương mại

Dự án về OpenCv được khởi động từ những năm 1999, đến năm 2000 nóđược giới thiệu trong một hội nghị của IEEE về các vấn đề trong thị giác máy vànhận dạng, tuy nhiên bản OpenCV 1.0 mãi tới tận năm 2006 mới chính thứcđược công bố và năm 2008 bản 1.1 (prerelease) mới được ra đời Tháng 10 năm

2009, bản OpenCV thế hệ thứ hai ra đời (thường gọi là phiên bản 2.x), phiên bảnnày có giao diện của C++ (khác với phiên bản trước có giao diện của C) và cónhiều điểm khác biệt so với phiên bản thứ nhất

Thư viện OpenCV ban đầu được sự hỗ trợ từ Intel, sau đó được hỗ trợbởi Willow Garage, một phòng thí nghiệm chuyên nghiên cứu về công nghệrobot Cho đến nay, OpenCV vẫn là thư viện mở, được phát triển bởi nguồn quỹkhông lợi nhuận (none-profit foundation) và được sự hưởng ứng rất lớn củacộng đồng

Hình 3: Thư viện OpenCV

Trang 16

1.4.3 Giới thiệu về thư viện Tensorflow

Trong đồ án này, với mục đích triển khai đào tạo và thử nghiệm network.Nhóm đồ án đã sử dụng thư viện Tensorflow Đây là mã nguồn mở dành cho họcmáy do Google tạo ra để tính toán số sử dụng biểu đồ luồng dữ liệu Các núttrong biểu đồ đại diện cho các phép toán, trong khi các cạnh của đồ thị đại diệncho các mảng dữ liệu nhiều chiều được gọi là tensors Các thành phần chínhtrong Tensorflow là máy khách, sử dụng giao diện Session để giao tiếp với máychủ và một hoặc nhiều quy trình công nhân, với mỗi quy trình công nhận chịunhiều trách nhiệm phân xử quyền truy cập vào môt hoặc nhiều thiết bị tính toán

để thực hiện các nút đồ thị trên các thiết bị đó

Tensorflow cung cấp một số tính năng mạnh mẽ như: nó cho phép ánh xạtính toán với nhiều máy, không giống như hầu hết các framework tương tựkhác; nó đã được tích hợp hỗ trợ tính toán gradient tự động; nó có thể thực thimột phần các đồ thị con của toàn bộ đồ thị và nó có thể thêm các ràng buộc chocác thiết bị, như đặt các nút trên một loại thiết bị nhất định, đảm bảo rằng haihoặc nhiều đối tượng được đặt trong cùng một không gian, v.v Bắt đầu vớiphiên bản 2.0, TensorFlow bao gồm các tính năng của khung Keras Keras cungcấp các trình bao bọc cho các hoạt động được triển khai trong TensorFlow, đơngiản hóa đáng kể các cuộc gọi và giảm lượng mã tổng thể cần thiết để đào tạo vàkiểm tra một mô hình

TensorFlow được sử dụng trong một số dự án, chẳng hạn như Mô hìnhphân loại hình ảnh ban đầu Dự án này đã giới thiệu một mạng hiện đại để phânloại và phát hiện trong Thử thách nhận dạng hình ảnh quy mô lớn ImageNetnăm 2014 Trong dự án này, việc sử dụng tài nguyên máy tính được cải thiệnbằng cách điều chỉnh chiều rộng và chiều sâu của mạng trong khi vẫn giữ ngânsách tính toán không đổi Một dự án khác sử dụng khung công tác TensorFlow làDeepSpeech, được phát triển bởi Mozilla Kiến trúc là một hệ thống nhận dạnghiện đại được phát triển bằng cách sử dụng học sâu end-to-end Đơn giản hơn làcác kiến trúc khác và không cần các thành phần được thiết kế thủ công cho tiếng

ồn xung quanh, độ vang hoặc sự biến đổi của loa Chúng tôi sẽ trình bày cácphương pháp và kiểu dữ liệu được sử dụng quan trọng nhất từ TensorFlow cùngvới mô tả ngắn gọn cho từng phương pháp đó

Trang 17

Hình 4: Thư viện Tensorflow

Trang 18

1.4.4 Môi trường lập trình Visual Studio Code

Visual Studio Code là một trình biên tập mã được phát triển bởi Microsoftdành cho Windows, Linux và macOS Nó hỗ trợ chức năng debug, đi kèm với Git,

có syntax highlighting, tự hoàn thành mã thông minh, snippets, và cải tiến mãnguồn Nó cũng cho phép tùy chỉnh, do đó, người dùng có thể thay đổi theme,phím tắt, và cá tùy chọn khác Nó miễn phí và là phần mềm mã nguồn mở, mặc

dù gói tải xuống chính thì là có giấy phép

Visual Studio Code được dựa trên Electron, một nền tảng được sử dụng đểtriển khai các ứng dụng Node.js máy tính cá nhân chạy trên động cơ bố trí Blink.Mặc dù nó sử dụng nền tảng Electron nhưng phần mềm này không phải là mộtbản khác của Atom, nó thực ra được dựa trên trình biên tập của Visual StudioOnline (tên mã là "Monaco")

Hình 5: Môi trường lập trình Visual Studio Code

Trang 19

Chương 2 Tổng quan về Nhận Dạng Trái Cây

2 Hệ thống phát hiện đối tượng

2.1 Định nghĩa

Phát hiện đối tượng (ObjectDetection) là một công nghệ máy tính liênquan đến thị giác máy tính và xử lý hình ảnh nhằm phát hiện các trường hợp đốitượng được nghiên cứu kỹ lưỡng bao gồm phát hiện khuôn mặt và phát hiệnngười đi bộ Phát hiện đối tượng có ứng dụng trong nhiều lĩnh vực của thị giácmáy tính, bao gồm truy xuất hình ảnh và giám sát video

Phát hiện đối tượng được sử dụng rộng rãi trong các tác vụ thị giác máytính như chú thích hình ảnh, nhận dạng hoạt động, phát hiện khuôn mặt, nhậndạng khuôn mặt, đồng phân đoạn đối tượng video Cũng như được sử dụng đểtheo dõi đối tượng, ví dụ theo dõi một quả bóng trong trận đấu bóng đá, theodõi chuyển động của gậy cricket hoặc theo dõi một người trong video

Hình 6: Phát hiện vật thể

Trang 20

2.1.1 Một số phương pháp xác định khuôn mặt người

Các phương pháp phát hiện đối tượng thường rơi vào cách tiếp cận dựa trênmáy học hoặc tiếp cận dựa trên học sâu Đối với các phương pháp tiếp cận Họcmáy, trước tiên cần xác định các tính năng bằng một trong các phương pháp bêndưới, sau đó sử dụng kỹ thuật như support vector machine(SVM) để thực hiệnphân loại Mặt khác, các kỹ thuật học sâu có thể thực hiện phát hiện đối tượngend-to-end mà không cần xác định cụ thể các tĩnh năng và thường dựa trênmạng nơron tích chập (CNN)

 Các phương pháp tiếp cận máy học:

o Khung phát hiện đối tượng Viola – Jones dựa trên các tính năngHaar

o Chuyển đổi tính năng bất biến tỷ lệ

o Biểu đồ của các tính năng gradient có định hướng (HOG)

 Phương pháp học sâu:

o Đề xuất khu vực (R-CNN, Fast R-CNN faster, …)

o Máy dò MultiBox Single Shot (SSD)

o Mạng nơron làm tinh chỉnh một lần để phát hiện đối tượng

o Retina – Net

2.1.2 Phương pháp áp dụng trong đồ án

Để xây dựng một hệ thống nhận dạng mặt, cũng không hề đơn giản, bướcđầu tiên cần thực hiện là face detection, tức là phát hiện phần ảnh mặt trong dữliệu input (CSDL ảnh, video …) và cắt lấy phần ảnh mặt để thực hiện nhận dạng(face cropping), bước thứ hai là tiền xử lý ảnh (preprocessing) bao gồm các bướccăn chỉnh ảnh (face image alignment) và chuẩn hóa ánh sáng (illuminationnormalization), tiếp đến là bước trích chọn đặc điểm (feature extraction), ởbước này một phương pháp trích chọn đặc điểm nào đó (mẫu nhị phân cục bộ –Local Binary Pattern – LBP, Gabor wavelets, …) sẽ được sử dụng với ảnh mặt đểtrích xuất các thông tin đặc trưng cho ảnh, kết quả là mỗi ảnh sẽ được biểu diễndưới dạng một vector đặc điểm (feature vector), bước tiếp theo là bước nhậndạng (recognition) hay phân lớp (classification), tức là xác định danh tính(identity) hay nhãn (label) của ảnh – đó là ảnh của ai

Ở bước classification, thường thì phương pháp k-láng giềng gần nhất nearest neighbor: kNN) sẽ được sử dụng, thực tế cho thấy việc dùng SVM(Support Vector Machine) không mang lại hiệu quả cao hơn mà còn chậm hơn

(k-Dữ liệu cho một hệ thống nhận dạng mặt được chia làm 3 tập: tập huấn luyện(training set), tập tham chiếu (reference set hay gallery set) và tập để nhận dạng(probe set hay query set, đôi khi còn gọi là test set) Trong nhiều hệ thống, tậptraining trùng với tập reference

Tập training gồm các ảnh được dùng để huấn luyện (hay học-learning), thôngthường tập này được dùng để sinh ra một không gian con (projection subspace)

là một ma trận và phương pháp hay được sử dụng là PCA (Principal ComponentAnalysis), WPCA (Whitened PCA), LDA (Linear Discriminant Analysis), KPCA

Trang 21

(Kernel PCA) Tập reference gồm các ảnh đã biết danh tính được chiếu(projected) vào không gian con ở bước training

Bước training nhằm 2 mục đích: giảm số chiều (dimension reduction) củacác vector đặc điểm (feature vector) vì các vector này thường có độ dài khá lớn(vài nghìn tới vài trăm nghìn) nên nếu để nguyên thì việc tính toán sẽ rất rất lâu,thứ hai là làm tăng tính phân biệt (discriminative) giữa các ảnh khác lớp (địnhdanh khác nhau), ngoài ra có thể làm giảm tính phân biệt giữa các ảnh thuộc vềmột lớp (tùy theo phương pháp, ví dụ như Linear Discriminant Analysis LDA- còngọi là Fisher Linear Discriminant Analysis-Fisherface là một phương pháp làmviệc với tập training mà mỗi đối tượng có nhiều ảnh mặt ở các điều kiện khácnhau)

Sau khi thực hiện chiếu tập reference vào không gian con, hệ thống lưulại kết quả là một ma trận với mỗi cột của ma trận là một vector tương ứng vớiảnh (định danh đã biết) để thực hiện nhận dạng (hay phân lớp) Nhận dạng (hayphân lớp) được thực hiện với tập các ảnh probe, sau khi tiền xử lý xong, mỗi ảnh

sẽ được áp dụng phương pháp trích chọn đặc điểm (như với các ảnh thuộc tậptraining và reference) và được chiếu vào không gian con Tiếp đến việc phân lớp

sẽ dựa trên phương pháp k-NN, định danh của một ảnh cần xác định sẽ đượcgán là định danh của ảnh có khoảng cách (distance) gần với nó nhất Ở đây cầnlưu ý là mỗi ảnh là một vector nên có thể dùng khái niệm hàm khoảng cách giữahai vector để đo sự khác biệt giữa các ảnh

2.2 Tổng quan về kỹ thuật phát hiện

2.2.1 Kỹ thuật phát hiện Haar Cascade Classifier

2.2.1.1 Tổng quan về Adaboost

Học theo adaboost là một cách trong hướng tiếp cận dựa trên diện mạo,Viola và AdaBoost kết hợp cascade để xác định khuôn mặt người [1] với các đặctrưng dạng Haar wavelet-like Tốc độ xử lý khá nhanh và tỷ lệ chính xác hơn 80%trên ảnh xám

2.2.1.2 Tiếp cận Boosting

Về lịch sử, boosting bắt nguồn từ câu nói nổi tiền được đưa ra bởi Kearnsvào đầu năm 1989: “Liệu có thể tạo ra một strong classifier từ một tệp các bộphân loại yếu?” Năm 1990, Robert Schapire và Simard kiểm nghiệm trong cácchương trình nhận dạng (OCR application) Freund đã tiếp tục các nghiên cứucủa Schapire và đến năm 1995 thì ông cùng với Schapire phát triển boostingthành adaboost

Như vậy, nguyên lý cơ bản của boosting là sự kết hợp các weak classifiers thànhmột strong classifiers Trong đó, weak classifiers là các bộ phân loại đơn giản chỉ

Trang 22

cần có độ chính xác trên 50% Bằng cách này, chúng ta nói bộ phân loại đã được

“boost”

Để hiểu cách hoạt động của thuật toán boosting, ta xét một bài toán phânloại 2 lớp (mẫu cần nhận dạng chỉ thuộc một trong hai lớp) với D là tập huấnluyện gồm có n mẫu Trước tiên, chúng ta sẽ chọn ngẫu nhiên ra n1 mẫu từ tập

D (n1<n) để tạo tập D1 Sau đó, chúng ta sẽ xây dựng weak classifier đầu tiên C1

từ tập D1 Tiếp theo, chúng ta xây dựng tập D2 để huấn luyện bộ phân loại C2.D2 sẽ được xây dựng sao cho một nửa số mẫu của nó được phân loại đúng bởiC1 và nửa còn lại bị phân loại sai bởi C1 Bằng cách này, D2 chứa đựng nhữngthông tin bổ sung cho C1 Bây giờ chúng ta sẽ xây huấn luyện C2 từ D2

Tiếp theo, chúng ta sẽ xây dựng tập D3 từ những mẫu không được phânloại tốt bởi sự kết hợp giữa C1 và C2: những mẫu còn lại trong D mà C1 và C2cho kết quả khác nhau Như vậy, không hiệu quả Sau cùng, chúng ta sẽ huấnluyện bộ phân loại C3 từ D3 Bây giờ chúng ta đã có một strong classifier: sự kếthợp C1, C2 và C3 Khi tiến hành nhận dạng một mẫu X, kết quả sẽ được quyếtđịnh bởi sự thỏa thuận của 3 bộ C1, C2 và C3: Nếu cả C1 và C2 đều phân X vàocùng một lớp thì lớp này chính là kết quả phân loại của X; ngược lại, nếu C1 vàC2 phân X vào 2 lớp khác nhau, C3 sẽ quyết định X thuộc về lớp nào

2.2.2.3 Adaboost

Như đã biết, AdaBoost (Adaptive Boost) là một bộ phân loại mạnh phituyến phức dựa trên hướng tiếp cận boosting được Freund và Schapire đưa ravào năm 1995 Adaboost hoạt động trên nguyên tắc kết hợp tuyến tính các weakclassifier dựa trên các đặc trưng Haar- Line để hình thành một strong classifier

Để có thể kết hợp các bộ phân loại yếu, adaboost sử dụng một trọng số (weight)

để đánh dấu các mẫu khó nhận dạng Trong quá trình huấn luyện, cứ mỗi weakclassifier được xây dựng, thuật toán sẽ tiến hành cập nhật lại trọng số để chuẩn

bị cho việc xây dựng weak classifier tiếp theo: tăng trọng số của các mẫu bị nhậndạng sai và giảm trọng số của các mẫu được nhận dạng đúng bởi weak classifiervừa xây dựng Bằng cách này, các weak classifier sau có thể tập trung vào cácmẫu mà các weak classifier trước đó chưa thực hiện tốt Sau cùng các weakclassifier sẽ được kết hợp tùy theo mức độ ‘tốt’ của chúng để tạo nên mộtstrong classifier

Các weak classifiers hk(x) là các bộ phân loại yếu, được biểu diễn như sau:

Trong đó:

x: mẫu hay cửa sổ con cần xét (x = (x1, x2, …, xn) là vector đặc trưng của mẫu)θk: ngưỡngk: ngưỡng

fk: giá trị của đặc trưng Haar-like

pk: hệ số quyết định chiều của bất phương trình

Công thức trên có thể diễn giải như sau: Nếu giá trị đặc trưng của mẫu

Trang 23

đấy là khuôn mặt (gọi là object: đối tượng cần nhận dạng), ngược lại thì mẫu làbackground (không phải là đối tượng).

Thuật toán adaBoost:

 Cho một tập gồm n mẫu có đánh dấu (x1,y1), (x2,y2),… (xn,yn) với xk = (xk1,xk2, … , xkm) là vector đặc trưng và yk {-1, 1} là nhãn của mẫu (1 ứng vớiobject, -1 ứng với background)

 Khởi tạo trọng số ban đầu cho tất cả các mẫu: với m là số mẫu đúng (ứng vớiobject và y = 1) và l là số mẫu sai (ứng với background và y = -1)

 Xây dựng T weak classifiers:

Lặp t = 1, …, T

Với mỗi đặc trưng trong vector đặc trưng, xây dựng một weak classifier hj

với ngưỡng θk: ngưỡngj và lỗi εj.j

Chọn ra hj với εj.j nhỏ nhất, ta được ht:

Cập nhật lại trọng số:

Trong đó:

Zt: Hệ số dùng để đưa Wt+1 về đoạn [0,1] (normalization factor)

 Strong classifier được xây dựng:

2.2.2.4 Các đặc trưng Haar-Like

Trang 24

Viola và Jones dùng 4 đặc trưng cơ bản [20] để xác định khuôn mặtngười Mỗi đặc trưng Haar–like là sự kết hợp của hai hay ba hình chữ nhật

"trắng" hay "đen" như trong hình sau:

Để áp dụng các đặt trưng này vào việc bài toán xác định mặt người, 4 đặt trưngHaar-like cơ bản được mở rộng ra, và được chia làm 3 tập đặc trưng như sau:

1 Đặc trưng cạnh (edge features):

2 Đặc trưng đường (line features):

3 Đặc trưng xung quanh tâm (center-surround features):

Lợi ích của các đặc trưng Haar-like là nó diễn đạt được tri thức về các đốitượng trong ảnh (bởi vì nó biểu diễn mối liên hệ giữa các bộ phận của đốitượng), điều mà bản thân từng điểm ảnh không diễn đạt được Để tính giá trịcác đặc trưng haar-like, ta tính sự chênh lệch giữa tổng của các pixel của cácvùng đen và các vùng trắng như trong công thức sau:

f(x) = Tổngvùng đen(pixel) - Tổngvùng trắng(pixel)

Hình 7 Đặt trưng Haar-like cơ bản

Trang 25

Như vậy ta có thể thấy rằng, để tính các giá trị của đặc trưng Haar-like, taphải tính tổng của các vùng pixel trên ảnh Nhưng để tính toán các giá trị của cácđặc trưng Haar-like cho tất cả các vị trí trên ảnh đòi hỏi chi phí tính toán khá lớn,không đáp ứng được cho các ứng dụng đòi hỏi tính run-time Do đó Viola vàJones đưa ra một khái niệm gọi là Integral Image để tính toán nhanh cho các đặctrưng cơ bản Sau này, Lienhart kế thừa Integral Image (SAT) và đưa thêm kháiniệm Rotated Summed Area Table (RSAT) dùng để tính toán nhanh cho các đặctrưng xoay 1 góc 45o Integral Image là một mảng 2 chiều với kích thước bằngvới kích của ảnh cần tính các đặc trưng Haar-like, với mỗi phần tử của mảng nàyđược tính bằng cách tính tổng của điểm ảnh phía trên (dòng-1) và bên trái (cột-1) của nó Bắt đầu từ vị trí trên, bên trái đến vị trí dưới, phải của ảnh, việc tính

toán này đơn thuần chỉ đựa trên phép cộng số nguyên đơn giản, do đó tốc độthực hiện rất nhanh

2.2.2.5 Cascade of Classifiers

Ta thấy quá trình huấn luyện, bộ phân loại phải duyệt qua tất cả các đặctrưng của các mẫu trong tập training Việc này tốn rất nhiều thời gian Tuynhiên, trong các mẫu đưa vào, không phải mẫu nào cũng thuộc loại khó nhậndạng, có những mẫu background rất dễ nhận ra (ta gọi đây là những mẫubackground đơn giản) Đối với những mẫu này, ta chỉ cần xét một hay vài đặctrưng đơn giản là có thể nhận diện được chứ không cần xét tất cả các đặc trưng.Nhưng đối với các bộ phân loại thông thường thì cho dù mẫu cần nhận dạng là

dễ hay khó thì nó vẫn sẽxét tất cả các đặc trưng mà nó rút ra được trong quátrình học Do đó, chúng tốn thời gian xử lý một cách không cần thiết

Cascade of Classifiers được xây dựng chính là nhằm rút ngắn thời gian xử

lý, giảm thiểu false alarm cho bộ phân loại Cascade tree gồm nhiều stage (haycòn gọi là layer), mỗi stage của cây sẽ là một stage classifier Một mẫu để đượcphân loại là đối tượng thì nó cần phải đi qua hết tất cả các stages của cây Cácstage classifiers ở stage sau được huấn luyện bằng những mẫu negative màstage classifier trước nó nhận dạng sai, tức là nó sẽ tập trung học từ các mẫubackground khó hơn, do đó sự kết hợp các stage classifiers này lại sẽ giúp bộphân loại có false alarm thấp Với cấu trúc này, những mẫu background dễ nhậndiện sẽ bị loại ngay từ những stages đầu tiên, giúp đáp ứng tốt nhất đối với độ

Hình 8 Cách tính Integral Image của ảnh

Trang 26

Thuật toán Cascade training:

1 Gọi:

F: là giá trị false alarm và d là độ chính xác của weak classifier ở mỗi stage Ftarget: Giá trị max false alarm.

P, N: là số lượng mẫu positive và negative.

Pi, Ni: là tập positive và negative cho bộ phân lớp ở tầng thứ i.

Fi, Di: Giá trị false alarm và độ chính xác của cascade trước khi đến tầng

N = {số mẫu sai ở stage hiện tại phân loại sai}

P = {số mẫu positive mà stage hiện tại phân loại đúng}

2.2.2.6 Cascade of boosting classifiers:

Hình 9 Cascade of classifiers

Trang 27

Cascade of boosting classifiers là mô hình cascade of classifiers với mỗi classifierđược xây dựng bằng Adaboost sử dụng haar-like.

Viola và Jones đã sử dụng rất thành công cascade of boosting classifierscho bài toán nhận dạng mặt người Với tập huấn luyện gồm 4196 hình mặtngười được đưa về ảnh grayscale kích thước 24x24 và 9500 hình background,hai ôngđã xây dựng cấu trúc cascade tree gồm 38 stage với tổng cộng 6060 đặctrưng haar-like Thực nghiệm đã cho thấy classifier ở stage đầu tiên sử dụng 2đặc trưng và loại được khoảng 50% mẫu background (không phải mặt người) và

có độ chính xác là d = 100% Classifier ở stage thứ 2 sử dụng 10 đặc trưng loạiđược 80%0020mẫu background với độ chính xác vẫn là 100% Hệ thống nàyđược so sánh với hệ thống của Rowley-Baluja-Kanade (sử dụng mạng neural),Schneiderman-Kanade (sử dụng phương pháp thống kê), và cho thấy tỉ lệ nhậndạng là ngang nhau, trong khi hệ thống của Viola và Jones chạy nhanh hơn đến

15 lần so với hệ thống của Rowley-Baluja-Kanade và nhanh hơn 600 lần hệ thốngcủa Schneiderman-Kanade

Lý do mà cấu trúc cascade đạt tốc độ nhận dạng nhanh chính là nhờ nósớm loại bỏ được các mẫu background đơn giản (thường có số lượng lớn hơnnhiều so với các mẫu chứa object – các mẫu chưa khuôn mặt cần tiến hành nhậndạng) Bên cạnh đó, hệ thống của Viola và Jones cũng đạt được độ chính xác khácao nhờ vào thuật toán cascade training, các bộ nhận dạng được huấn luyệnbằng AdaBoost với đặc trưng Haar-like mô tả tốt thông tin đối tượng, cùng vớicách Integral Image tính nhanh các đặc trưng, không làm giảm tốc độ nhận dạngcủa hệ thống Như vậy, mô hình Cascade of Boosted Classifiers thật sự là mộtcách tiếp cận tốt cả về tốc độ lẫn khả năng nhận dạng, rất phù hợp với bài nhậndạng mặt người

2.3 Kỹ thuật huấn luyện ảnh

2.3.1 Deep Learning

Hình 10 Cascade of boosting classifiers

Trang 28

Trong lĩnh vực nhận dạng và phân loại ảnh, các kết quả thành công nhấtkhi sử dụng mạng nơron nhân tạo Các mạng này tạo tiền đề cho hầu hết các môhình học sâu Học sâu là một lớp các thuật toán máy học sử dụng nhiều lớp chứacác đơn vị xử lý phi tuyến Mỗi cấp độ học cách chuyển đổi dữ liệu đầu vào của

nó thành một biểu diễn tổng hợp và trừu tượng hơn Các mạng thần kinh sâu đãquản lý để vượt trội hơn các thuật toán học máy khác Thu được các kết quả

tuyệt vời trong lĩnh vực nhận dạng hình ảnh

Hình 11: Mô hình CNN - Deep Learning

Trang 29

2.3.2 Convolutional neural networks (CNN)

Mạng nơron tích chập là một phần của mô hình học sâu, một mạngnơron có thể bao gồm các lớp convolutional layers, pooling layers, ReLU layers,fully connected layers và loss layers Trong một kiến trúc CNN điển hình, mỗiconvolutional layers được theo sau bởi một lướp đơn vị tuyến tính đã chỉnhlưu(ReLU), sau đó là Poolong layer rồi một hoặc nhiều convolutional layer vàcuối cùng là một hoặc nhiều fully connected layer

Kiến trúc của nơron tích chập tương tự như mô hình kết nối của các nơrontrong bộ não con người và được lấy cảm hứng từ hệ thống vỏ thị giác trong bộnão (Visual cortex) Các nơron riêng lẻ chỉ phản ứng với các kích thích trong mộtkhu vực hạn chế của trường thị giác được ọi là trường tiếp nhận (ReceptiveField) Một tập hợp các trường như vậy chồng lên nhau để bao hủ toàn bộ khuvực thị giác

2.3.3 Convolutional layers

Các lớp chuyển đổi được đặt tên theo phép toán tích chập Trong toánhọc, phép tích chập là một phép toán trên hai hàm tạo ra hàm thứ ba là phiênbản sửa đổi (tích chập) của một trong các hàm ban đầu hàm kết quả cho tíchphân của phép nhân theo chiều kim đồng hồ của hai hàm dưới dạng một hàmcủa lượng mà ột trong các hàm ban đầu được dịch Lớp chập bao gồm các nhóm

tế bào thân kinh tạo nên các nhân Các nhân có kích thước nhỏ nhưng chúngluôn có cùng độ sâu với đầu vào Các nơron từ nhận được kết nối với một vùngnhỏ của đầu vào, được gọi là trường tiếp nhận, bởi vì việc liên kết tất cả các

Hình 12 Lớp convolutional neural networks

Trang 30

nơron với tất cả các đầu ra trước đó rất kém hiệu quả trong trường hợp đầu vào

có kích thước cao như hình ảnh

Hình 13: Lớp Convolutional layers

Trang 31

Thay vì mỗi nơron có trọng số cho kích thước đầy đủ của đầu vào, môt nơron giữ trọng số cho kích thước của đầu vào hạt nhân Các hạt nhân trượt qua chiều rộng và chiều cao của đầu vào, trích xuất các tính năng cấp cao và tạo ra bản đồ kích hoạt 2 chiều Bước tiến mà tại đó hạt nhân trượt được đưa ra một tham số.Đầu ra của một lớp phức hợp được thực hiện bằng cách xếp chồng các bản đồ kích hoạt kết quả, đến lượt được sử dụng để xác định đầu vào của lớp tiếp theo.Việc áp dụng một lớp chập trên một hình ảnh có kích thước 32 x 32 dẫn đến mộtbản đồ kích hoạt có kích thước 28 x 28 Nếu được áp dụng nhiều lớp phực hợp hơn, kích thước sẽ giảm hơn nữa, và kết quả là kích thước hình ảnh sẽ giảm đáng kể gây mất thông tin và gradient biến mất, vì thế nên sử dụng padding Padding làm tăng kích thước của dữ liệu đầu vào bằng cách điền vào các hằng sốxung quanh dữ liệu đầu vào Trong hầu hết các trường hợp, hằng số này bằng 0 nên phép toán được đặt tên là Zero padding Same padding có nghĩa là bản đồ đối tượng đầu ra có cùng kích thước không gian và bảng đồ đối tượng đầu vào Thao tác này cố gắng chèn đều bên tría và bên phải, nhưng nếu số cột được thêm vào là số lẻ, nó sẽ thêm một cột thừa bên phải các bước này khiến hạt nhân bỏ qua các pixel trong hình ảnh và không đưa chúng vào đầu ra Các bước xác định các hoạt động của phép toán tích chập với hạt nhân khi một hình ảnh lớn hơn và hạt nhân phức tạp hơn được sử dụng Khi môt hạt nhân đang trượt đầu vào, nó sử dụng tham số bước để xác định có bao nhiêu vị trí cần bỏ qua ReLU layer hoặc Rectified linear chỉnh lưu Áp chức chức năng kích hoạt max (0, x) Nó không làm giảm kích thước của mạng, nhưng nó làm tăng tính chất phi tuyến tính.

2.3.4 Pooling layers

Tương tự như lớp tích chập (Convolutional Layer), lớp gộp (Pooling) chịu trách nhiệm làm giảm chiều kết quả tích chập (Convoled Feature) Điều này nhằm mục đích để giảm chi phí tính toán cần phải có để xử lý dữ liệu thông qua việc giảm kích thước tính năng đầu vào Hơn nữa, nó rất hữu ích để trích xuất các đặc trưng cốt lõi, cái thường bất biến trước các phép xoay và phép trượt, do đó làm cho quá trình huấn luyện mô hình hiệu quả hơn.

Lớp tích chập (Convolutional Layer) và lớp gộp (Pooling layer), kết hợp với nhau tạo thành lớp thứ ii của mạng nơron tích chập Tùy thuộc vào độ phức tạp của ảnh, số lượng các lớp như vậy có thể được tăng lên

để có thể bắt được các đặc trưng ở mức độ chi tiết hơn nữa, nhưng chi phí cho sức mạnh tính toán cũng sẽ nhiều hơn.

Sau khi đi qua quá trình trên, chúng ta đã thiết lập thành công mô hình nơron tích chập để học các đặc trưng Tiếp theo, chúng ta sẽ làm phẳng (flattening) đầu ra cuối và đưa nó vào mạng nơron thông thường cho mục đích phân loại.

24

Trang 32

2.3.5 Fully connected layers

Fully connected layers lấy các hình ảnh đã lọc ở cấp cao và chuyển chúngthành các phiếu bầu (vote) Giống như các layer khác, có thể được xếp chồng lên

vì đầu ra của chúng giống với đầu vào Trong thực tế, một vài fully connectedlayer thường được xếp chống lên với nhau với mỗi layer trung gian bỏ phiếu chocác loại ẩn Mỗi layer bổ sung sẽ cho phép mạng học các tổ hợp tinh vi hơn cácfeature và sẽ giúp nó đưa ra quyết định tốt hơn Mỗi nơron từ fully connectedlayer được liên kết với mỗi đầu ra của lớp trước đó Các hoạt động đằng sau một

Hình 15: Lớp fully connected layers

Ngày đăng: 14/06/2023, 00:01

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[10] Bargoti, S., and Underwood, J. Deep fruit detection in orchards. In 2017 IEEE International Conference on Robotics and Automation (ICRA) (May 2017), pp. 3626–3633 Sách, tạp chí
Tiêu đề: 2017 IEEE International Conference on Robotics and Automation (ICRA)
[11] Barth, R., IJsselmuiden, J., Hemming, J., and Henten, E. V. Data synthesis methods for semantic segmentation in agriculture: A capsicum annuum dataset. Computers and Electronics in Agriculture 144 (2018), 284 – 296 Sách, tạp chí
Tiêu đề: Computers and Electronics in Agriculture 144
Tác giả: Barth, R., IJsselmuiden, J., Hemming, J., and Henten, E. V. Data synthesis methods for semantic segmentation in agriculture: A capsicum annuum dataset. Computers and Electronics in Agriculture 144
Năm: 2018
[12] Sa, I., Ge, Z., Dayoub, F., Upcroft, B., Perez, T., and McCool, C.Deepfruits: A fruit detection system using deep neural networks. Sensors 16, 8 (2016) Sách, tạp chí
Tiêu đề: Sensors16
[3] OpenCV 3.2.0 documentation - Cascade Classifier Training. [Online].http://docs.opencv.org/3.2.0/dc/d88/tutorial_traincascade.html Link
[5] OpenCV 2.4.13.0 documentation - Miscellaneous Image Transformations.[Online].http://docs.opencv.org/2.4/modules/imgproc/doc/miscellaneous_transformations.html#cvtcolor Link
[1] Paul Viola and Michael Jones (2001). Rapid Object Detection using a Boosted Cascade of Simple Features. Computer Vision and pattern Recognition Khác
[2] Shengcai Liao, Xiangxin Zhu, Zhen Lei, Lun Zhang, and Stan Z Li (2007).Learning multi-scale block local binary patterns for face recognition. In Advances in Biometrics, Springer, pages 828– 837 Khác
[4] Abhijeet Tayde, A. S. Deshpande. Face Recognition with Local Binary Patterns, Spatial Pyramid Histograms and Naive Bayes Nearest Neighbor classification Khác
[6] Yann Rodriguez and S´ebastien Marcel, Face Authentication Using Adapted Local Binary Pattern Histograms Khác
[7] Trần Như Ý, Nguyễn Văn Tùng, Ngô Dương Hà, PHƯƠNG PHÁP PHÁT HIỆN NGƯỜI DỰA TRÊN VÙNG CHUYỂN ĐỘNG Khác
[8] T. Ojala, M Pietikọinen, and D Harwood (1996). A Comparative Study of Texture Measures with Classification Based on Feature Distributions.Pattern Recognition 29(1) Khác
[9] Daniel Maturana, Domingo Mery, and Alvaro Soto (2009). Face Recognition with Local Binary Patterns, Spatial Pyramid Histograms and Naive Bayes Nearest Neighbor classification. Departamento de Ciencias de la Computacion, Pontificia Universidad Catolica, Santiago, Chile Khác

HÌNH ẢNH LIÊN QUAN

Hình 1: Các bước xử lý chính trong bài toán nhận dạng - Đồ Án Cơ Sở 4 - Đề Tài -  Phần Mềm Nhận Dạng Trái Cây Dựa Trên Nền Tảng Deep Learning
Hình 1 Các bước xử lý chính trong bài toán nhận dạng (Trang 11)
Hình 3: Thư viện OpenCV - Đồ Án Cơ Sở 4 - Đề Tài -  Phần Mềm Nhận Dạng Trái Cây Dựa Trên Nền Tảng Deep Learning
Hình 3 Thư viện OpenCV (Trang 15)
Hình 5: Môi trường lập trình Visual Studio Code - Đồ Án Cơ Sở 4 - Đề Tài -  Phần Mềm Nhận Dạng Trái Cây Dựa Trên Nền Tảng Deep Learning
Hình 5 Môi trường lập trình Visual Studio Code (Trang 18)
Hình 6: Phát hiện vật thể - Đồ Án Cơ Sở 4 - Đề Tài -  Phần Mềm Nhận Dạng Trái Cây Dựa Trên Nền Tảng Deep Learning
Hình 6 Phát hiện vật thể (Trang 19)
Hình 10 Cascade of boosting classifiers - Đồ Án Cơ Sở 4 - Đề Tài -  Phần Mềm Nhận Dạng Trái Cây Dựa Trên Nền Tảng Deep Learning
Hình 10 Cascade of boosting classifiers (Trang 27)
Hình 11: Mô hình CNN - Deep Learning - Đồ Án Cơ Sở 4 - Đề Tài -  Phần Mềm Nhận Dạng Trái Cây Dựa Trên Nền Tảng Deep Learning
Hình 11 Mô hình CNN - Deep Learning (Trang 28)
Hình 12 Lớp convolutional neural networks - Đồ Án Cơ Sở 4 - Đề Tài -  Phần Mềm Nhận Dạng Trái Cây Dựa Trên Nền Tảng Deep Learning
Hình 12 Lớp convolutional neural networks (Trang 29)
Hình 13: Lớp Convolutional layers - Đồ Án Cơ Sở 4 - Đề Tài -  Phần Mềm Nhận Dạng Trái Cây Dựa Trên Nền Tảng Deep Learning
Hình 13 Lớp Convolutional layers (Trang 30)
Hình 15: Lớp fully connected layers - Đồ Án Cơ Sở 4 - Đề Tài -  Phần Mềm Nhận Dạng Trái Cây Dựa Trên Nền Tảng Deep Learning
Hình 15 Lớp fully connected layers (Trang 32)
Hình 16 Lớp loss layers - Đồ Án Cơ Sở 4 - Đề Tài -  Phần Mềm Nhận Dạng Trái Cây Dựa Trên Nền Tảng Deep Learning
Hình 16 Lớp loss layers (Trang 33)
Hình 17 Lớp recurrent netral network - Đồ Án Cơ Sở 4 - Đề Tài -  Phần Mềm Nhận Dạng Trái Cây Dựa Trên Nền Tảng Deep Learning
Hình 17 Lớp recurrent netral network (Trang 34)
Hình 18: Lớp Deep belief network - Đồ Án Cơ Sở 4 - Đề Tài -  Phần Mềm Nhận Dạng Trái Cây Dựa Trên Nền Tảng Deep Learning
Hình 18 Lớp Deep belief network (Trang 35)
Hình 19 Mô hình CNN khi sử dụng thư viện Tensorflow - Đồ Án Cơ Sở 4 - Đề Tài -  Phần Mềm Nhận Dạng Trái Cây Dựa Trên Nền Tảng Deep Learning
Hình 19 Mô hình CNN khi sử dụng thư viện Tensorflow (Trang 37)
Bảng 1 Bảng trái cây và số lượng hình ảnh của mỗi dữ liệu - Đồ Án Cơ Sở 4 - Đề Tài -  Phần Mềm Nhận Dạng Trái Cây Dựa Trên Nền Tảng Deep Learning
Bảng 1 Bảng trái cây và số lượng hình ảnh của mỗi dữ liệu (Trang 39)
Hình 21 Sơ đồ ngữ cảnh hệ thống - Đồ Án Cơ Sở 4 - Đề Tài -  Phần Mềm Nhận Dạng Trái Cây Dựa Trên Nền Tảng Deep Learning
Hình 21 Sơ đồ ngữ cảnh hệ thống (Trang 42)

TỪ KHÓA LIÊN QUAN

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