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

Luận văn thạc sĩ Kỹ thuật điện tử: Nhận dạng vật thể sử dụng giải thuật Sift và bộ từ điển trực quan

102 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Cấu trúc

  • CHƯƠNG 1. GIỚI THIỆU (14)
    • 1.1 Giới thiệu đề tài (15)
    • 1.2 Mục tiêu nghiên cứu (16)
    • 1.3 Nội dung nghiên cứu (16)
    • 1.4 Phạm vi nghiên cứu (16)
    • 1.5 Cấu trúc luận văn (17)
  • CHƯƠNG 2: TÌNH HÌNH NGHIÊN CỨU VÀ PHÂN TÍCH TỔNG QUAN LÝ THUYẾT (18)
    • 2.1 Tình hình nghiên cứu trong và ngoài nước (19)
      • 2.1.1 Nghiên cứu ngoài nước (19)
      • 2.1.2 Nghiên cứu trong nước (23)
    • 2.2 Phân tích tổng quan lý thuyết (23)
      • 2.2.1 Giải thuật SIFT (25)
      • 2.2.2 Giải thuật SURF (32)
      • 2.2.3 Giải thuật phân cụm K-Means (35)
      • 2.2.4 Máy học SVM (40)
      • 2.2.5 Giới thiệu thư viện OpenCV (44)
  • CHƯƠNG 3: NHẬN DẠNG VẬT THỂ (46)
    • 3.1 Giới thiệu phương pháp Bag-of-Words (47)
      • 3.1.1 Trích xuất đặc trưng các ảnh trong cơ sở dữ liệu (48)
      • 3.1.2 Xây dựng bộ từ điển (49)
      • 3.1.3 Lập histogram cho ảnh và tiên đoán vật thể trong ảnh (50)
    • 3.2 Mô hình tổng quát của hệ thống (51)
    • 3.3 Tạo cơ sở dữ liệu (53)
    • 3.4 Xây dựng bộ từ điển (54)
    • 3.5 Huấn luyện máy học SVM (56)
    • 3.6 Nhận dạng (59)
    • 3.7 Thực hiện BoW bằng thư viện OpenCV trên hệ điều hành Ubuntu (Linux) (60)
      • 3.7.1 Tạo cơ sở dữ liệu (60)
      • 3.7.2 Xây dựng bộ từ điển (61)
      • 3.7.3 Huấn luyện máy học SVM và điều chỉnh lại cơ sở dữ liệu (62)
  • CHƯƠNG 4: KIỂM CHỨNG VÀ ĐÁNH GIÁ ĐỀ TÀI (82)
    • 4.1 Phương pháp kiểm chứng (83)
      • 4.1.1 Kết quả nhận dạng đối với ảnh (83)
      • 4.1.2 Kết quả nhận dạng đối với camera hoặc video (88)
    • 4.2 Đánh giá (91)
      • 4.2.1 Đánh giá độ chính xác của hệ thống (91)
      • 4.2.2 Đánh giá thời gian nhận dạng của hệ thống (92)
      • 4.2.3 Đánh giá thời gian huấn luyện và xây dựng hệ thống (93)
  • CHƯƠNG 5: KẾT LUẬN VÀ KIẾN NGHỊ (94)
    • 5.1 Kết quả đạt được (95)
    • 5.2 Ưu điểm, nhược điểm (95)
      • 5.2.1 Ưu điểm (95)
      • 5.2.2 Nhược điểm (95)
    • 5.3 Đóng góp luận văn (96)
      • 5.3.1 Đóng góp khoa học (96)
      • 5.3.2 Đóng góp thực tiễn (96)
    • 5.4 Hướng mở rộng và kiến nghị (97)
      • 5.4.1 Hướng mở rộng (97)
      • 5.4.2 Kiến nghị (97)
  • TÀI LIỆU THAM KHẢO (98)

Nội dung

Với phương pháp trích xuất đặc trưng SIFT, hệ thống tạo ra sẽ có khả năng nhận dạng với nhiều bức ảnh có tỉ lệ của vật thể khác nhau và góc chụp khác nhau.. Điều này được thể hiện thông

GIỚI THIỆU

Giới thiệu đề tài

Nhận dạng vật thể ngày nay không còn là nghiên cứu xa lạ đối với chúng ta, những thành tựu trong lĩnh vực này ngày càng to lớn hơn Những minh chứng là hiệu quả của giải thuật nhận dạng ban đầu và những giải thuật hiện đại ngày nay Nghiên cứu và ứng dụng các thuật toán nhận dạng vật thể đã dẫn đến những tiến bộ về mặt tự động trong công nghiệp, văn phòng, giao thông Điều này được thể hiện thông qua việc con người đã tạo ra các hệ thống nhận dạng ký tự quang học, biển báo, hệ thống kiểm tra lỗi trong dây chuyền lắp ráp, cũng như các hệ thống nhận dạng lỗi sản phẩm… Ngoài ra, nó còn góp phần lớn vào các ứng dụng khác như trong y tế, quốc phòng, sinh trắc học…

Nhận dạng vật thể là một lĩnh vực liên kết từ nhiều lĩnh vực khác lại với nhau

Ví dụ, để đáp ứng cho lĩnh vực nhận dạng này, con người phải đạt được những thành công nhất định về mặt công nghệ và người nghiên cứu trong lĩnh vực này cũng phải nắm được những kiến thức bổ trợ cần thiết cho việc nghiên cứu Chẳng hạn, về mặt công nghệ thì lĩnh vực này phải phụ thuộc vào chất lượng của camera, mức độ phần cứng thực hiện giải thuật… hay về mặt con người nghiên cứu thì phải hiểu rõ về các kiến thức cơ bản trong xử lý ảnh, ngôn ngữ lập trình, máy học nhân tạo Chính vì vậy, đây là một lĩnh vực rộng lớn và phải phụ thuộc vào nhiều yếu tố khác nhau mới có thể đạt được một hiệu quả mong muốn

Bất kỳ giải thuật nhận dạng nào cũng có những ưu điểm và khuyết điểm riêng của giải thuật đó Trong quá khứ đã có nhiều công trình nghiên cứu về các giải thuật này Các kết quả công bố cũng thể hiện ưu điểm và nhược điểm của từng giải thuật

Tuy nhiên, các giải thuật đó được nâng cao chất lượng thực hiện theo thời gian Các giải thuật được phát triển càng gần với hiện tại cho ra kết quả càng tối ưu hơn Chính vì vậy, để nghiên cứu về lĩnh vực nhận dạng vật thể này ta phải trải qua một quá trình dài để tìm hiểu các giải thuật này và rút ra kết luận để tìm một phương pháp phù hợp với hiện tại để nghiên cứu

Với mong muốn tìm hiểu sâu vào lĩnh vực nhận dạng vật nói chung và ứng dụng tạo ra một phần mềm nhận dạng vật thể nói riêng, tôi xin quyết định chọn đề tài “Nhận dạng vật thể sử dụng giải thuật SIFT (Scale-Invariant Feature Transform) và bộ từ điển trực quan” để thực hiện đề tài luận văn của mình.

Mục tiêu nghiên cứu

Trong luận văn này tác giả tập trung nghiên cứu để tạo ra một hệ thống có thể nhận dạng được một số vật thể cơ bản thông qua một camera hoặc một bức ảnh Một số vật thể có thể nhận dạng được như sau: con cọp, hộp sữa, PCB (printing circuit board) và tiền.

Nội dung nghiên cứu

Để đạt được mục tiêu đã đặt ra, tác giả đã:

- Xây dựng giải thuật nhận dạng theo phương pháp Bags of Words - Thực hiện giải thuật này bằng ngôn ngữ C++ dựa trên thư viện OpenCV - Xác định ưu điểm và nhược điểm của nghiên cứu

- Đề xuất giải pháp dựa trên kết quả nghiên cứu và đưa ra các khuyến nghị cải thiện chất lượng nhận dạng vật thể theo phương pháp Bags of Words.

Phạm vi nghiên cứu

Phạm vi của luận văn là tập trung nghiên cứu và thực hiện các bước nhận dạng theo phương pháp Bags of Feature Thông qua các lý thuyết đã nghiên cứu được tác giả xây dựng một phần mềm để mô phổng cho kết quả nghiên cứu được Kết quả đạt được có thể ứng dụng nhận dạng được cho các vật thể như sau: con cọp, hộp sữa, tiền và PCB.

Cấu trúc luận văn

Luận văn được chia thành 6 chương như sau:

Chương 1: Giới thiệu – Nêu lên ý định, mục tiêu và mục tiêu nghiên cứu của tác giả Đồng thời xác định nội dung nghiên cứu và phạm vi nghiên cứu của luận văn

Chương 2: Tình hình nghiên cứu và phân tích tổng quan lý thuyết – Trong chương này, tác giả trình bày tổng quan về tình hình nghiên cứu trong và ngoài nước, những lý thuyết liên quan đến luận văn này

Chương 3: Nhận dạng vật thể – Tác giả sẽ trình bày sơ lược về phương pháp sẽ được sử dụng trong luận văn và cách thức thực hiện luận văn Nội dung của các công việc được làm sẽ trình bày ở chương này

Chương 4: Kiểm chứng và đánh giá đề tài – Trong chương này, tác giả trình bày phương pháp kiểm chứng cho hệ thống tạo ra và kết quả của quá trình kiểm chứng, từ đó đưa ra đánh giá về hệ thống đã tạo ra

Chương 5: Kết luận và kiến nghị - Trong chương này, tác giả tóm tắt lại kết quả đạt được, ưu điểm, nhược điểm của hệ thống và đóng góp của luận văn (gồm có đóng góp khoa học và đóng góp thực tiễn) Ngoài ra, tác giả còn nêu lên hướng mở rộng và kiến nghị cho phương pháp BoW.

TÌNH HÌNH NGHIÊN CỨU VÀ PHÂN TÍCH TỔNG QUAN LÝ THUYẾT

Tình hình nghiên cứu trong và ngoài nước

1- Phương pháp dựa trên hình học (Geometry-Based): 1960 – 198x Đây là phương pháp được sử dụng ở thời kì ban đầu của lĩnh vực nhận dạng (vào khoảng những năm 1960 đến trước 1990) Phương pháp này nhận dạng chủ yếu dựa vào đặc điểm hình học của vật thể Hình dạng của vật thể được trích xuất thành các hình học dưới dạng 3D và được đưa đi nhận dạng Một vài công trình nghiên cứu có thể kể đến như sau:

Năm 1962, Ming-Kuei Hu [1] đưa ra một phương pháp nghiên cứu sơ khai cho nhận dạng bằng đặc điểm hình học của vật thể Đây được xem là một công trình khởi xướng cho lĩnh vực nhận dạng dựa trên hình học của vật thể

Năm 1965, Lawrence Roberts [2] đã giới thiệu một máy học mà có thể chuyển đổi một vật thể khối thành một vật thể được mô tả dưới dạng hình học 3D Sau đó, một giải thuật nhận dạng được giới thiệu năm 1965 của cùng tác giả [3], giải thuật này là tạo ra một thư viện các hình học cơ bản mà có thể lắp ghép với nhau để tạo thành hình học của một vật thể Giải thuật này trở thành tâm điểm chính cho lĩnh vực nhận dạng suốt bốn thập kỉ sau đó

Một trong những phương pháp dựa trên hình học của vật thể này nữa là nhận diện bằng những thành phần - Recognition-by-Components, 1987 [4] Dựa vào năm đặc tính dễ dàng nhận biết của các đường (hay cạnh) trong bức ảnh hai chiều của Lowe, 1984 [5]: độ cong, độ thẳng, đặc tính đối xứng, đặc tính song song và đặc tính liền kề

Tóm lại, phương pháp nhận dạng này có những khuyết điểm sau như: chất lượng nhận dạng phụ thuộc vào quá trình trích xuất các cạnh hình học (đường thẳng, đường cong…) của vật thể, vật thể nhận dạng không được phức tạp quá (về mặt hình học) và tạo cơ sở dữ liệu cho vật thể được làm một cách thủ công [6]

2- Phương pháp dựa trên sự xuất hiện (Appearance Based): 199x

Phương pháp này được thực hiện bằng cách cách ghi nhớ các lần xuất hiện của một vật thể đã xảy ra Các nghiên cứu chính cho phương pháp này như:

Matthew Turk và Alex Pentland, 1991 [7] đã thực hiện phương pháp này để phát hiện phần đầu của một vật thể và sau đó nhận diện xem đó có phải là khuôn mặt hay không Tác giả đã sử dụng biện pháp ghi nhớ lại hàng nghìn khuôn mặt xuất hiện trong cuộc sống bình thường của tác giả, và sử dụng nó cho việc nhận dạng khuôn mặt dựa vào những dữ liệu đã được thu thập được

Hay nhận dạng bằng cách đánh dấu hình ảnh của Hiroshi Murase và Shree K.Nayar, 1995 [8] Cách thực hiện này là ta thu thập một số lượng lớn các bức ảnh với các góc chụp và kích thước khác nhau Sau đó các bức ảnh này được nén lại theo một cách thức riêng và cho vào một cơ sở dữ liệu Trong quá trình nhận dạng thì ảnh đầu vào được trích ra một phần để so sánh với ảnh trong cơ sở dữ liệu, xem phần đó có thuộc về vật thể có trong cơ sở dữ liệu hay không và nó thuộc về góc chụp nào

Phương pháp nhận dạng dựa trên sự xuất hiện có một ưu thế là ta không cần trích xuất đặc trưng của một bức ảnh Nhưng chúng lại yêu cầu các ảnh huấn luyện phải được tách khỏi cảnh nền Ngoài ra, chúng cũng yêu cầu số lượng lớn của hình ảnh mẫu cho quá trình học và các hình ảnh ngõ vào không bị che khuất hay nền hỗn loạn quá nhiều

3- Phương pháp Bags of Words: 2003-2012

Năm 1999, Lowe cho ra đời giải thuật tìm và mô tả điểm ảnh đặc trưng cục bộ trên bức ảnh mà bất biến với ánh sáng, kích thước và góc chụp của bức ảnh – SIFT

(Scale-Invariant Feature Transform) [9] Đây là giải thuật mà được ứng dụng rất rộng rãi trong các lĩnh vực xử lý ảnh Kể từ khi giải thuật này ra đời đã tạo ra 2 hướng cho phương pháp nhận dạng dựa vào đặc trưng cục bộ Đó là tìm điểm tương thích (Matching) và Bags of Feature (BoF)

Trong cùng thời điểm giải thuật SIFT ra đời, Lowe đã ứng dụng cho giải thuật nhận dạng mới Giải thuật này sử dụng phương pháp tìm điểm tương thích Tìm những điểm đặc trưng giống nhau của bức ảnh đầu vào trong cơ sở dữ liệu

Một hướng khác nữa là BoF, phương pháp này khác với phương pháp tìm điểm tương thích là ta phải tạo ra bộ từ điển trực quan và sử dụng nó để mô tả số lượng điểm đặc trưng trong bức ảnh Trong quá trình nhận dạng ta chỉ cần xét số lượng điểm đặc trưng là có thể kết luận vật thể có trong bức ảnh hay không Một kết quả nghiên cứu theo phương pháp BoF là:

Gabriella Csurka [10] và các tác giả đã thực hiện giải thuật nhận dạng theo phương pháp BoF năm 2004 Các điểm đặc trưng của ảnh huấn luyện được trích xuất từ giải thuật SIFT và đem đi huấn luyện để tạo bộ từ điển trực quan Trong quá trình nhận dạng các tác giả lại trích xuất điểm đặc trưng lần nữa cho ảnh đầu vào và lượng tử các điểm đặc trưng thành các từ ngữ Các từ ngữ này được đưa vào một máy học khác để đưa ra quyết định trong ảnh có chứa vật thể hay không Ưu điểm của phương pháp BoF là đặc trưng của bức ảnh và bộ từ điển trực quan được tính hoàn toàn tự động Phương pháp BoF còn có ưu điểm nữa là các đối tượng bị che khuất và nền của bức ảnh hỗn loạn vẫn có thể nhận dạng được Do ta chỉ xét sự xuất hiện của vật thể trong bức ảnh dựa vào số lượng điểm đặc trưng chứ không bị phụ thuộc vào hình dáng của vật thể

Trong nhiều công trình nghiên cứu, không chỉ có trích xuất đặc trưng theo giải thuật SIFT mà còn có các giải thuật khác như: SURF, RIFT Mặc dù khác nhau về cách thức sử dụng giải thuật trích xuất đặc trưng nhưng những công trình này vẫn mang tính chất của phương pháp BoF

4- Phương pháp máy học sâu (deep learning hoặc DNN)

Năm 2006, máy học sâu có tổ chức (deep learning) xuất hiện một cách phổ biến

Phân tích tổng quan lý thuyết

Đã có nhiều công trình nghiên cứu và nhiều giải thuật đề xuất về lĩnh vực nhận dạng này Mỗi một giải thuật có một phương pháp làm khác nhau, tuy nhiên nhìn sơ bộ thì các giải thuật này có các bước thực hiện là giống nhau Thông qua những giải thuật trước đó, có thể rút ra các hệ thống nhận dạng có một mô hình tổng quát sau đây:

Hình 2.2.1: Mô hình tổng quát của một hệ thống nhận dạng

Một vài giải thuật nhỏ sẽ được kết hợp với nhau để tạo nên một mô hình tổng quát ở trên Một vài giải thuật con có thể kể đến như sau:

- Giải thuật SIFT - Giải thuật SURF

Kết quả Trích xuất đặc trưng

- Giải thuật phân cụm K-Means - Máy học SVM

- Sử dụng kết quả của các giải thuật học

2.2.1 Giải thuật SIFT Đây là giải thuật tìm những điểm đặc trưng bất biến trong bức ảnh Các điểm đặc trưng tìm được sẽ là những điểm bất biến khi các bức ảnh chụp được khác nhau về độ lớn (scale), độ sáng hay góc chụp

Giải thuật này được Lowe giới thiệu năm 1999 thông qua công trình nghiên cứu của ông ấy [9] Các bước thực hiện bao gồm như sau:

- Tìm điểm cực trị - Định vị điểm đặc trưng - Gán định hướng của điểm đặc trưng - Mô tả điểm đặc trưng

1- Tìm điểm cực trị Đầu tiên ta tạo ra nhiều scale-image khác nhau cho một bức ảnh bằng bộ lọc

Gaussian với các sigma khác nhau Mục đích của bước tạo ra scale-image này là ta tìm những điểm đặc trưng trên nhiều kích thước ảnh khác nhau Bức ảnh đầu vào I(x, y) sẽ được tích chập với hàm Gaussian G(x, y, kσ) có các σ khác nhau để tạo ra các bức ảnh L(x, y , σ) khác nhau

Ta cần tạo ra các scale-image cho một bức ảnh với các thông số được đề nghị bởi Lowe Ban đầu σ được chọn là √ /2, các scale-image tiếp theo ta gấp đôi σ lên 2 lần Sau đó, nhóm các scale-image này lại thành một octave Các hình trong octave này sẽ được giảm kích thước lại 2 lần để tạo ra một octave mới Số lượng octave ta cần tạo ra là 4 và số lượng scale-image trên một octave là 5

Sau đây là bảng thể hiện giá trị của σ trong các octave:

Bảng 2.2.1.1: Giá trị của σ cho từng octave

Sau khi ta có được các octave, tương ứng với mỗi octave ta trừ các ảnh gần kề với nhau Các ảnh được tạo ra sẽ là các ảnh DoG (difference-of-Gaussian)

(2.2.1.2) Các octave và các DoG sau khi đã được tạo:

Hình 2.2.1.2: Các octave và các DoG [18] Đối với mỗi octave, ta tìm những pixel mà có giá trị lớn hơn (hoặc nhỏ hơn) 8 pixel xung quanh nó và 18 pixel của DoG nằm trên và nằm dưới nó (hình 2.2.1.3) Nếu một điểm mà có giá trị lớn hơn (hoặc nhỏ hơn) 26 pixel xung quanh nó thì điểm đó chính là điểm cực trị

Các điểm cực trị có khả năng là các điểm đặc trưng Nhưng cũng có khả năng các điểm đặc trưng là các điểm nằm xung quanh quanh điểm đặc trưng này Để xác định được chính xác vị trí của điểm đặc trưng ta cần làm thêm bước sau, định vị điểm đặc trưng

2- Định vị điểm đặc trưng

Trong bước này, các điểm đặc trưng sẽ được xác định vị trí một các chính xác từ các cực trị được tìm ở bước trước Các điểm đặc trưng mà có độ tương phản thấp hay dọc theo các cạnh cũng được loại bỏ Để xác định vị trí chính xác của các điểm đặc trưng, ta xác định vị trí của điểm phụ (sub-pixel) bằng cách khai triển chuỗi Talor bậc 2 Vị trí chính xác của điểm đặc trưng được xác định bởi phương trình sau:

- D(x , y,σ) là hàm của bức ảnh DoG, đạo hàm của D được tính tại điểm cực trị

- z là vị trí chính xác của điểm đặc trưng (kết quả của phương trình trên là một vector – vector z)

Tiếp theo, ta loại bỏ những điểm đặc trưng mà có độ tương phản thấp Giá trị của điểm đặc trưng trong DoG được tính như sau:

Nếu giá trị của điểm đặc trưng này dưới một mức ngưỡng mà ta quy định thì ta sẽ loại bỏ điểm đặc trưng này

Cuối cùng ta loại bỏ những điểm nằm trên các cạnh bằng cách sử dụng ma trận Hessian

Ta sử dụng giá trị r của Lowe là 10 (r = 10) Nếu những điểm đặc trưng nào có không đáp ứng được yêu cầu của (2.2.1.8) thì sẽ được loại bỏ Đây là những điểm ảnh nằm trên các cạnh nên sẽ bị loại bỏ

3- Xác định hướng của điểm đặc trưng

Trong bước này ta sẽ gán định hướng cho một điểm đặc trưng đã được tìm thấy

Mục đích của bước này là để xác định hướng của một điểm đặc trưng và sử dụng nó để mô tả đặc trưng mà được thực hiện trong bước sau Điều này sẽ tạo ra một mô tả đặc trưng cho một điểm mà bất biến với các góc xoay Độ dốc m(x, y) và hướng θ(x, y) cho các điểm xung quanh (điểm lân cận) điểm đặc trưng trên ảnh L(x,y,σ) được xác định bởi công thức sau:

⁄ ] (2.2.1.10) Để xác định được hướng của một điểm đặc trưng, ta tạo một histogram gồm có 36 cột thể hiện cho các hướng (36 cột tương ứng 360 - mỗi cột là 10 ) Lấy một vùng xung quanh điểm đặc trưng có độ rộng tuỳ vào scale của điểm đặc trưng, với mỗi một điểm trong vùng này được gán trọng số bằng tích của độ dốc m(x, y) và hàm Gaussian với σ bằng 1,5 lần σ của điểm đặc trưng Vậy, với một điểm lân cận sẽ có một trọng số và một giá trị hướng θ(x, y) Các điểm lân cận đó sẽ được cộng trọng số vào cột có θ(x, y) tương ứng của điểm đó Ví dụ, một điểm có θ(x, y) = 18,5 sẽ được cộng trọng số vào cột 10-19

Hình 2.2.1.4: Tạo histogram từ cửa sổ Gaussian, các trọng số và hướng

Trong histogram vừa mới tạo xong, ta tìm cột nào có giá trị lớn nhất thì đó chính là hướng của điểm đặc trưng Thí dụ trong hình 2.2.1.5, hướng của điểm đặc trưng sẽ là trong khoảng 20-29 Ngoài ra, cột nào mà có giá trị bằng 80% của cột lớn nhất thì sẽ được lấy làm một điểm đặc trưng mới có hướng là cột tương ứng Trong hình 2.2.1.6, cột 300-309 là một điểm đặc trưng mới với hướng là 300-309

Hình 2.2.1.7: Xác định điểm đặc trưng mới từ histogram [19]

4- Mô tả điểm đặc trưng

Bước cuối cùng trong giải thuật SIFT là ta tạo ra mô tả cho điểm đặc trưng bằng một vector có độ dài là 128 phần tử Mỗi điểm đặc trưng sẽ có một mô tả dựa trên độ scale, hướng và vị trí của điểm đặc trưng đó Mô tả này sẽ giúp ta có thể tìm kiếm các đặc trưng giống nhau trong hai bức ảnh khác nhau về góc chụp, độ lớn (scale)…

Hình 2.2.1.8: Cửa sổ 16x16 xung quanh điểm đặc trưng và các cửa sổ phụ của nó [20]

Một histogram cần được tạo ra cho cửa sổ 16x16 mà có điểm đặc trưng nằm ở giữa, cửa sổ này tiếp tục được chia thành các cửa sổ phụ 4x4 Mỗi cửa sổ phụ ta sẽ tạo ra một histogram con gồm có 8 cột thể hiện cho 8 hướng (45 cho một cột) Vậy, sau khi thực hiện xong, ta tạo được một histogram có độ dài là 128 cột, histogram này chính là mô tả cho điểm đặc trưng Hình 2.2.1.6 là minh hoạ cho bước làm này

NHẬN DẠNG VẬT THỂ

Giới thiệu phương pháp Bag-of-Words

Bag-of-Words (hay BoW) là một phương pháp nhận dạng ảnh dựa trên ý tưởng phân tích từ của một văn bản Ý tưởng là thực hiện là lượng tử các điểm đặc trưng chứa trong một bức ảnh thành các từ ngữ tương ứng, những từ này sẽ là những từ key-word cho bức ảnh Dựa vào số lượng từ chứa trong một bức ảnh ta có thể biết được bức ảnh đó thuộc về vật thể nào Tương tự như cách làm mà ta thực hiện cho một văn bản, dựa vào những key-word trong văn bản đó mà ta có thể biết được văn bản thuộc về thể loại nào

Phương pháp BoW được thực hiện bằng cách xây dựng bộ từ điển dựa trên tập hợp các điểm đặc trưng từ một cơ sở dữ liệu ảnh Khi truy vấn một bức ảnh, người ta lập một histogram mà chứa tần số xuất hiện của các từ trong bộ từ điển trên một bức ảnh để dự đoán vật thể trong bức ảnh

Hình 3.1.2: Biểu diễn các vật thể dưới dạng các từ ngữ [26] Để thực hiện BoW, các bước cần được thực hiện như sau:

- Trích xuất đặc trưng các ảnh trong cơ sở dữ liệu - Xây dựng bộ từ điển

- Lập histogram cho ảnh và tiên đoán vật thể trong ảnh

3.1.1 Trích xuất đặc trưng các ảnh trong cơ sở dữ liệu

Một cơ sở dữ liệu chứa các ảnh được thu thập từ các vật thể cần mà cần được nhận dạng Các ảnh trong cơ sở dữ liệu được coi là tất cả các trường hợp mà vật thể có khả năng xuất hiện Các ảnh bao gồm các góc chụp khác nhau, điều kiện ánh sáng khác nhau và nền khác nhau của vật thể

Tất cả các ảnh trong cơ sở dữ liệu này sẽ được trích xuất đặc trưng bởi một giải thuật trích xuất đặc trưng cụ thể Các giải thuật được sử dụng nhiều có thể kể đến là SIFT, SURF, RIFT…

Các đặc trưng sẽ được mô tả dưới dạng vector, độ dài của vector thì tuỳ thuộc vào giải thuật trích xuất đặc trưng mà ta sử dụng Sau khi trích xuất đặc trưng cho tất cả các ảnh có trong cơ sở dữ liệu, các đặc trưng trích xuất được sẽ thu thập lại và thực hiện bước lượng tử các đặc trưng này thành các từ ngữ Các từ ngữ này sẽ cấu thành một bộ từ điển

3.1.2 Xây dựng bộ từ điển

Từ một tập hợp các đặc trưng trích xuất được, ta lượng tử thành các từ ngữ cụ thể để tạo ra một bộ từ điển Số lượng các từ trong bộ từ điển là do ta quy ước Đối với từ điển có số lượng từ càng lớn thì các đặc trưng được lượng tử gần đúng hơn và quá trình nhận dạng sẽ chính xác hơn

Một phương pháp mà thích hợp để lượng tử các đặc trưng là phương pháp chia cụm K-Means Với số lượng cụm được xác định bằng số lượng từ cần được tạo ra (mỗi cụm tương ứng với một từ)

Hình 3.1.2.1: Lượng tử các đặc trưng thành các từ ngữ [27]

3.1.3 Lập histogram cho ảnh và tiên đoán vật thể trong ảnh

Khi một bức ảnh cần được truy vấn, ta thực hiện các bước như sau cho quá trình nhận dạng:

Trích xuất đặc trưng: bước làm này giống với bước trích xuất đặc trưng cho cơ sở dữ liệu, ảnh cần truy vấn cũng sẽ được trích xuất các đặc trưng Giải thuật trích xuất đặc trưng được sử dụng ở bước này phải giống với giải thuật được sử dụng ở bước trích xuất cho cơ sở dữ liệu

Lập histogram: sau khi các đặc trưng có được từ bước trích xuất đặc trưng của ảnh tuy vấn, ta sẽ tạo một histogram mà histogram này thể hiện tần số xuất hiện của các từ trong bức ảnh Số lượng cột của histogram là bằng với số lượng các từ trong bộ từ điển Như vậy mỗi cột của histogram này thể hiện cho tần số xuất hiện của một từ trong ảnh cần truy vấn Phương pháp để tìm cụm (hay còn gọi là từ) của một đặc trưng trong bộ từ điển là tính khoảng cách Euclide từ đặc trưng đó đến các cụm, nếu khoảng cách nào là ngắn nhất thì sẽ được xếp vào từ đó

Hình 3.1.3.1: Biểu diễn số lượng từ trong một bức ảnh dưới dạng histogram [26]

Dự đoán vật thể trong ảnh: dựa vào histogram của bức ảnh để đưa ra quyết định ảnh đó thuộc về loại vật thể nào Thông thường bước dự đoán này sẽ được thực hiện từ quyết định của một máy học Một máy học sẽ được huấn luyện để ra quyết định –với histogram có được thì bức ảnh thuộc về vật thể nào Nếu như có sử dụng máy học để ra quyết định thì sau bước tạo bộ từ điển ta sẽ có thêm một bước huấn luyện cho máy học Máy học mà được dùng nhiều nhất là SVM.

Mô hình tổng quát của hệ thống

Mô hình mà tác giả thực hiện sẽ dựa trên phương pháp BoW như hình sau đây:

Hình 3.2.1: Mô hình tổng quát của hệ thống

Tí nh so lừợ ng từ

Mà y rà quye t đi nh Trí ch xuà t đà c trừng

Trí ch xuà t đà c trừng

Tí nh so lừợ ng từ Bo từ đie n

Mà y rà quye t đi nh Trí ch xuà t đà c trừng

Toàn bộ những bước thực hiện hệ thống sẽ được làm trên hệ điều hành Ubuntu (Linux), và trình biên dịch Eclipse Ngoài ra, luận văn còn sử dụng công cụ hỗ trợ để xử lý các bước như trích xuất đặc trưng hay máy học… bằng thư viện OpenCV 2.4

Hệ thống được huấn luyện để có khả năng nhận dạng cho các vật thể sau: con cọp, hộp sữa, PCB và tiền

Phần cứng thực hiện hệ thống nhận dạng gồm có một máy tính và một camera

Hệ thống được kết nối với một camera và nhận ảnh từ camera này đưa về để làm ảnh cần truy vấn Hệ thống sẽ thông báo kết quả nhận dạng từ ảnh này thông qua màn hình của máy tính Ngoài ra, hệ thống cũng có thể nhận dạng từ ảnh hoặc video.

Tạo cơ sở dữ liệu

Một tập hợp các ảnh được thu thập trên internet và do tác giả tự chụp cho các vật thể: tiền, hộp sữa, PCB (board mạch), con cọp, vật thể giả (vật thể không xuất hiện) Các ảnh thu được sẽ cho vào cơ sở dữ liệu để làm ảnh mẫu huấn luyện cho hệ thống nhận dạng Những ảnh chụp được bao gồm các góc chụp khác nhau, điều kiện ánh sáng khác nhau, và cảnh nền khác nhau của nhiều vật thể

Các ảnh trong cơ sở dữ liệu được phân loại theo các vật thể Mục đích để lúc huấn luyện cho máy học có thể xác định được ảnh đem đi huấn luyện là của vật thể nào

Số lượng ảnh trong cơ sở dữ liệu có ảnh hưởng tới quá trình học của hệ thống

Với số lượng mẫu cho một vật thể càng lớn thì ta có thể huấn luyện hệ thống nhận dạng vật thể đó chính xác hơn trong nhiều điều chụp khác nhau Ngược lại thì hệ thống sẽ nhận dạng vật thể thiếu chính xác hơn và điều kiện chụp thì ít hơn Tuy nhiên, số lượng ảnh quá lớn thì sẽ ảnh hưởng tới thời gian học của hệ thống và số lượng từ trong bộ từ điển (được đề cập ở phần sau) cần phải được tăng theo Nếu tăng số lượng ảnh mẫu mà không tăng kích thước bộ từ điển sẽ dẫn đến tình trạng thừa phí ảnh mẫu Vì vậy, tuỳ vào độ phức tạp của hình dáng vật thể mà ta chọn ảnh mẫu cho vật thể một cách phù hợp Trong giới hạn luận văn thì tập hợp các ảnh cho các vật thể cụ thể như sau:

- Tiền: 300 ảnh - Hộp sữa: 200 ảnh - PCB (board mạch): 200 ảnh - Con cọp: 300 ảnh

- Trường hợp không có vật thể 1: 400 ảnh - Trường hợp không có vật thể 2: 400 ảnh - Trường hợp không có vật thể 3: 400 ảnh.

Xây dựng bộ từ điển

Bộ từ điển được tạo ra là công cụ để ta thực hiện các việc lượng tử các đặc trưng trong các bước huấn luyện máy học SVM và bước nhận dạng

Hình 3.4.1: Quá trình tạo bộ từ điển [28]

Từ một cơ sở dữ liệu ảnh đã được tạo ra, ta trích xuất tất cả các đặc trưng có được trong từng bức ảnh bằng bộ trích xuất đặc trưng SIFT Mỗi một đặc trưng được tính từ SIFT sẽ được mô tả dưới dạng một vector 128 chiều Thu thập tất cả các vector này lại thành một tập hợp các vector để đem đi phân cụm thành các từ ngữ Để phân cụm cho tập hợp vector vừa tạo ra, tác giả sử dụng giải thuật chia cụm

K-Means để thực hiện công đoạn này Kết quả sau khi chia cụm là ta có được tâm của các cụm Các tâm này chính là các từ mà sẽ được lưu lại thành bộ từ điển

Thông số cần thiết trong bước xây dựng bộ từ điển là ta chọn số lượng từ (số cụm) cho bộ từ điển Số lượng từ trong bộ từ điển là rất quan trọng trong việc tối ưu hiệu quả của quá trình nhận dạng Nó quyết định độ chính xác của phân loại đặc trưng trong bước tạo histogram từ cho bức ảnh Nếu ta chọn số lượng từ là quá ít thì các đặc trưng trong cùng một cụm có sự khác biệt khá lớn về tính chất của các đặc trưng Số lượng từ trong bộ từ điển càng lớn thì các đặc trưng trong cùng một cụm càng giống nhau và quá trình nhận dạng là càng chính xác Tuy nhiên, số lượng từ càng lớn sẽ ảnh hưởng càng lớn đến thời gian phân cụm và thời gian để nhận dạng Theo [29], số lượng từ mà hiệu quả nhất là nằm trong khoảng vài ngàn đến vài chục ngàn tuỳ vào số lượng ảnh trong cơ sở dữ liệu Trong luận văn này tác giả sử dụng 2,500 từ cho bộ từ điển

Với số lượng 2,200 ảnh trong cơ sở dữ liệu, sau khi trích xuất đặc trưng ta thu được khoảng 2,800,000 vector đặc trưng Do số lượng vector và số lượng cụm là tương đối lớn nên thời gian thực hiện phân cụm rất lâu Trung bình một lần huấn luyện 2500 cụm với vector sẽ mất 10 giờ Quá trình trích xuất đặc trưng và tính toán chia cụm được thực hiện bằng thư viện OpenCV Các class (lớp trong ngôn ngữ C++) và các hàm được sử dụng để thực hiện bước này như sau:

- SiftDescriptorExtractor: đây là class hỗ trợ phát hiện và mô tả điểm đặc trưng bằng giải thuật SIFT Hai phương thức tương ứng với phát hiện và mô tả điểm đặc trưng là SiftDescriptorExtractor:: detect , SiftDescriptorExtractor:: compute

- BOWKMeansTrainer: class này hỗ trợ giải thuật phân cụm K-Means, thông số khởi tạo cho lớp này là giá trị K (số cụm) Phương thức được sử dụng để phân cụm là BOWKMeansTrainer:: cluster Kết quả trả về của phương thức này là bộ từ điển.

Huấn luyện máy học SVM

Ở bước này, các ảnh trong cơ sở dữ liệu tiếp tục được trích xuất đặc trưng như trong bước xây dựng bộ từ điển Nhưng các ảnh cùng một vật thể được phân loại riêng và gán một nhãn (hay lớp) để phân biệt với các vật thể khác

Hình 3.5.1: Quá trình huấn luyện máy học SVM [30]

Một vector đặc trưng trong một ảnh sẽ được lượng tử thành một từ cụ thể Một histogram cần tạo ra để biểu diễn thông tin số lượng từ chứa trong một bức ảnh Với kích thước bộ từ điển là 2500 từ ta sẽ phải tạo ra một histogram gồm có 2500 cột Mỗi cột của histogram thể hiện tần số xuất hiện của từ đó trong bức ảnh Hình 3.5.2 minh hoạ cho bước làm này

Hình 3.5.3: Tạo histogram biểu diễn số lượng từ cho một bức ảnh [31]

Vậy, sau khi trích xuất đặc trưng và lượng tử xong, một bức ảnh gồm có hai thông số là nhãn và histogram chứa tần số xuất hiện của các từ Các ảnh trong cơ sở dữ liệu sẽ được thu thập hai thông số này lại và cho vào hai ma trận tương ứng với ma trận nhãn và ma trận các histogram Như vậy, khi xét một histogram bất kì trong ma trận histogram ta tìm số hàng của histogram này tương ứng trong ma trận nhãn ta sẽ biết được đó là histogram của vật thể nào Bước tạo ra hai ma trận này là cần thiết cho quá trình huấn luyện SVM Để thực hiện huấn luyện SVM cho cơ sở dữ liệu đã tạo ra sử dụng thư viện OpenCV thì thời gian để thực hiện huấn luyện là khoảng 20 phút

Với cách huấn luyện của thư viện OpenCV, thư viện này dựa trên một thư viện khác để huấn luyện máy học SVM Thư viện này là LibSVM Do SVM mà thư viện này sử dụng để huấn luyện là SVM nhị phân Tức là chỉ có thể phân loại được cho hai lớp vật thể Để có thể phân loại cho nhiều vật thể thì thư viện này sử dụng cơ chế one- vs-one Nghĩa là mỗi lớp (vật thể) ta đem huấn luyện với một lớp khác trong các lớp còn lại Nếu có N lớp thì ta sẽ có số lần huấn luyện N(N-1)/2 lần Khi nhận dạng thì máy ra quyết định sẽ làm ngược lại, từng lớp sẽ được đem phân loại với các lớp còn lại và đánh số lần thuộc về lớp đó Nếu lớp nào có số lần đánh dấu là nhiều nhất thì vật thể tương ứng với lớp đó sẽ là vật thể chứa trong ảnh cần truy vấn

Các class hỗ trợ huấn luyện máy học SVM được tác giả sử dụng cho bước huấn luyện như sau:

- BOWImgDescriptorExtractor: class này hỗ trợ tạo histogram tần số xuất hiện của các từ trong một bức ảnh Hai phương thức được sử dụng như sau:

 BOWImgDescriptorExtractor::setVocabulary: Phương thức này dùng để nhập bộ từ điển vào Đối số truyền vào cho phương thức này là bộ từ điển được tạo ra ở bước trước

 BOWImgDescriptorExtractor:: compute: đối số truyền vào cho phương thức này là một bức ảnh và vị trí của các điểm đặc trưng của bức ảnh đó

Kết quả trả về của phương thức này là histogram mà ta cần tìm

- CvSVM: class này hỗ trợ huấn luyện máy học SNM Phương thức được dùng để huấn luyện trong luận văn này là CvSVM ::train_auto Các thông số truyền vào cho phương thức này như sau:

 trainData: thông số này là ma trận histogram mà ta đã tạo ra

 sampleIdx: đây là ma trận nhãn cần được truyền vào cho máy học

 params: đây là thông số chứa các cài đặt cho máy học SVM

 params.term_crit: cvTermCriteria(CV_TERMCRIT_ITER+CV_TERMCRIT_EPS,500,0.0000000001

Nhận dạng

Đây là bước nhận dạng và kiểm chứng cho hệ thống nhận dạng Ở bước này, ta không còn tác động đến quá trình học và cơ sở dữ liệu nữa Công việc chính của bước này là trích xuất đặc trưng cho ảnh cần truy vấn và sử dụng các dữ liệu có được từ các bước huấn luyện để nhận dạng vật thể trong bức ảnh

Hình 3.6.1: Quá trình nhận dạng [32] Đầu tiên ta nhận một ảnh cần truy vấn vào và trích xuất đặc trưng cho ảnh này bằng giải thuật SIFT Tiếp theo ta cần lập một histogram chứa tần số xuất hiện của các từ trong bức ảnh này, bước làm này hoàn toàn giống bước tạo histogram từ cho ảnh trong lúc huấn luyện

Sau khi có được histogram, ta sử dụng kết quả của máy học SVM để dự đoán vật thể chứa trong bức ảnh

Phương thức dùng để dự đoán vật thể được sử dụng trong bước nhận dạng này:

Thực hiện BoW bằng thư viện OpenCV trên hệ điều hành Ubuntu (Linux)

3.7.1 Tạo cơ sở dữ liệu

Chọn ngẫu nhiên các vật thể mong muốn nhận dạng Sau đó thu thập các ảnh mẫu cho các vật thể này trên internet với một vật thể là 400 ảnh Các ảnh mẫu này được phân loại ra theo từng vật thể và đặt vào một thư mục có tên của vật thể đó Mục đích là để hệ thống biết được vật thể đó là lớp nào trong lúc huấn luyện máy học SVM và lúc nhận dạng Hệ thống được lập trình với khả năng lấy được thông tin vật thể của ảnh mẫu thông qua tên của thư mục ảnh huấn luyện

Hình 3.7.1.1: Hệ thống tự lấy thông tin của vật thể thông qua tên thư mục của ảnh

Các ảnh mẫu này mang tính chất sơ khai cho quá trình thử nghiệm Các bước tiếp theo sẽ có sự thay đổi cơ sở dữ liệu để tìm ra các ảnh tối ưu hơn

Các vật thể được chọn sơ khai ban đầu như sau:

- Con chó - Con cọp - Con vịt

- Con bướm - Xe hơi - Chai nước - Hộp sữa - Hoa

3.7.2 Xây dựng bộ từ điển

Hệ thống tự động tìm dữ liệu bộ từ điển đã tạo ra từ trước hay chưa Nếu chưa hệ thống bắt đầu đầu xây dựng bộ từ điển

Hệ thống sẽ tự động trích xuất hết tất cả các đặc trưng cho các ảnh trong cơ sở dữ liệu và in ra màn hình số lượng đặc trưng trích xuất được Dựa vào số lượng đặc trưng trích xuất được và ý kiến của [29], tác giả chọn số lượng từ cho bộ từ điển là 2500 từ

Hình 3.7.2.1: Số lượng đặc trưng trích xuất được là 2548036

Do số lượng đặc trưng và kích thước của bộ từ điển là lớn nên thời gian huấn luyện rất lâu Trung bình thời gian huấn luyện cho một bộ từ điển là khoảng 10 giờ

Sau khi huấn luyện xong, hệ thống sẽ lưu lại dữ liệu của bộ từ điển vào một file Mục đích để các lần chạy hệ thống tiếp theo không cần phải xây dựng lại bộ từ điển

3.7.3 Huấn luyện máy học SVM và điều chỉnh lại cơ sở dữ liệu

Hệ thống sẽ tự động trích xuất đặc trưng cho từng thư mục mà được phân loại trong bước tạo cơ sở dữ liệu Với mỗi ảnh trong một thư mục, hệ thống sẽ dựa vào bộ từ điển mà đã tạo ra ở bước trước và số lượng đặc trưng trích xuất được để tạo một histogram số lượng từ của bức ảnh đó Histogram này sẽ được cho vào một ma trận mà được đem đi huấn luyện Để hệ thống biết được histogram trong ma trận huấn luyện là của vật thể nào, ta tạo ra thêm một ma trận khác gọi là ma trận nhãn, ma trận nhãn này có số hàng tương ứng với số hàng trong ma trận huấn luyện Để xác định nhãn của một hàng (hay histogram) trong ma trận huấn luyện, ta tìm hàng đó trong trận nhãn Mỗi hàng trong ma trận nhãn là mã số nhận dạng cho một vật thể, số nhãn được đánh là 0,1,2 tương ứng với từng thư mục của vật thể Ta tạo ra một file dữ liệu mà lưu trữ nhãn của vật thể là gì trong lúc huấn luyện và để sử dụng nó cho bước nhận dạng

Hình 3.7.3.1: Các nhãn tương ứng với các thư mục vật thể

Tương tự với bước tạo từ điển, sau khi huấn luyện máy học SVM xong, ta cũng lưu dữ liệu đã học được vào một file Các lần sử dụng sau ta không cần huấn luyện lại nữa mà chỉ cần lấy kết quả trong file đã lưu

1- Kết quả huấn luyện máy học SVM với cơ sở dữ liệu ban đầu

Với cơ sở dữ liệu ban đầu, mục tiêu là thu thập nhiều ảnh từ nhiều nguồn khác nhau để có thể nhận dạng được cho một vật thể có nhiều hình dạng khác nhau Từ kết quả huấn luyện được, thực hiện thử nghiệm nhận dạng với nhiều ảnh, video và camera khác nhau Một vài kết quả minh họa như sau:

Nhận dạng với vật thể “con chó”:

Hình 3.7.3.2: Nhận dạng với vật thể “Con Chó”

A, ảnh tương tự ảnh huấn luyện B, ảnh chọn ngẫu nhiên trên internet C, ảnh từ thực tế.

Nhận dạng với vật thể “con cọp”:

Hình 3.7.3.3: Nhận dạng với vật thể “Con Cọp”

A, ảnh tương tự ảnh huấn luyện B, ảnh chọn ngẫu nhiên trên internet

Nhận dạng với vật thể “con bướm”:

Hình 3.7.3.4: Nhận dạng với vật thể “Con Bướm”

A, ảnh tương tự ảnh huấn luyện B, ảnh chọn ngẫu nhiên trên internet.

Nhận dạng với vật thể “con vịt”:

Hình 3.7.3.5: Nhận dạng với vật thể “Con Vịt”

A, ảnh tương tự ảnh huấn luyện B, ảnh chọn ngẫu nhiên trên internet

Nhận dạng với vật thể “chai nước”:

Hình 3.7.3.6: Nhận dạng với vật thể “Chai Nước”

A, ảnh tương tự ảnh huấn luyện B, ảnh chọn ngẫu nhiên trên internet C, ảnh từ thực tế

Nhận dạng với vật thể “xe hơi”:

Hình 3.7.3.7: Nhận dạng với vật thể “Xe Hơi”

A, ảnh tương tự ảnh huấn luyện B, ảnh chọn ngẫu nhiên trên internet C, ảnh từ thực tế.

Nhận dạng với vật thể “hộp sữa”:

Hình 3.7.3.8: Nhận dạng với vật thể “Hộp sữa”

A, ảnh tương tự ảnh huấn luyện B, ảnh chọn ngẫu nhiên trên internet C, ảnh từ thực tế

Vậy, thông qua cơ sở dữ liệu được thu thập trên internet, ta nhận thấy kết quả nhận dạng không tốt (thông qua các lần thử) Kết quả nhận dạng còn sai rất nhiều

Nhưng thông qua những ảnh rất giống với các ảnh trong cơ sở dữ liệu mà ta nhận dạng thì kết quả là chính xác rất cao Như vậy, với các ảnh thu thập rất đa dạng về hình dáng thì không mang lại hiệu quả cao khi ta muốn nhận dạng cụ thể nào đó mà ta mong muốn

Hình 3.7.3.9: Nhận dạng với vật thể gần giống với ảnh huấn luyện

A, ảnh huấn luyện B, ảnh tương tự

Như vậy, việc các ảnh huấn từ nhiều nguồn khác nhau, thì hệ thống khó có thể nhận dạng các vật thể đa dạng về hình dạng như ban đầu đề ra Vì vậy, ta sẽ phải tạo ra một cơ sở dữ liệu bằng những bức ảnh tự chụp cho các vật thể mà ta mong muốn nhận dạng Bước thử nghiệm tiếp theo ta sẽ thực hiện nhận dạng với cơ sở dữ liệu tự tạo

2- Kết quả huấn luyện máy học SVM với cơ sở dữ liệu tự tạo Đối với cơ sở dữ liệu tự tạo, các vật thể được chụp cho các vật thể mà ta mong muốn nhận dạng Ngoài ra, các ảnh trên internet cũng được thu thập với điều kiện các ảnh này có chứa vật thể mà ta muốn nhận dạng Đối với trường hợp vật thể là con cọp thì ảnh được thu thập hoàn toàn trên internet Bởi vì trên thực tế giữa những con cọp không có nhiều sự khác nhau về hình dáng và màu sắc, nên vật thể con cọp là hoàn toàn có thể lấy từ interner Trong mô hình tự tạo, các vật thể gồm có như sau:

- Con chó - Con cọp (ảnh từ internet) - Hộp sữa

Mục tiêu của lần này là nâng cao khả năng nhận dạng cho một vài vật thể nhất định bằng cách chọn ảnh đem đi huấn luyện chính là vật thể mà ta muốn nhận dạng

Thực hiện lại tất cả các bước huấn luyện như cách làm với cơ sở dữ liệu ban đầu và thử nhận dạng với những vật thể như sau:

Nhận dạng với vật thể “con chó”:

Hình 3.7.3.10: Nhận dạng với vật thể “Con Chó”

Nhận dạng với vật thể “con cọp”:

Hình 3.7.3.11: Nhận dạng với vật thể “Con Cọp”

Nhận dạng với vật thể “hộp sữa”:

Hình 3.7.3.12: Nhận dạng với vật thể “Hộp Sữa”

Nhận dạng với vật thể “xe hơi”:

Hình 3.7.3.13: Nhận dạng với vật thể “Xe Hơi”

Nhận dạng với vật thể “PCB”:

Hình 3.7.3.14: Nhận dạng với vật thể “PCB”

Nhận dạng với vật thể không có trong cơ sở dữ liệu:

Hình 3.7.3.15: Nhận dạng với vật thể không có trong cơ sở dữ liệu

Sau khi thực hiện xong bước nhận dạng cho từng vật thể xong, ta thấy kết quả nhận dạng được cải thiện hơn Nhờ vào tạo cơ sở dữ liệu ảnh huấn luyện từ ảnh tự chụp của vật thể mà ta muốn nhận dạng, các vật thể được nhận dạng chính xác hơn so với cách làm từ cơ sở dữ liệu với đa dạng các hình dạng của vật thể Tuy nhiên, khi thử nhận dạng với vài vật thể mà không có trong cơ sở dữ liệu, ta phát hiện vật thể đó được xếp vào một trong các vật thể mà ta đem huấn luyện Hình 3.7.3.16 minh họa cho trường hợp này Các vật thể có số lượng điểm đặc trưng lớn sẽ có đa dạng histogram từ, vì vậy các vật thể không có trong cơ sở dữ liệu thường sẽ được xếp vào lớp các vật thể này

Như vậy, với cơ sở dữ liệu tự tạo, ta có được kết quả nhận dạng tốt hơn Tuy vẫn còn vấn đề nhận dạng vật thể không có trong cơ sở dữ liệu, nhưng vấn đề này sẽ được giải quyết bởi bước thử nghiệm kế tiếp Bước thử nghiệm này là quan trọng để cải thiện chất lượng nhận dạng

3- Kết quả huấn luyện máy học SVM với cơ sở dữ liệu tự tạo có các trường hợp vật thể không xuất hiện

KIỂM CHỨNG VÀ ĐÁNH GIÁ ĐỀ TÀI

Phương pháp kiểm chứng

Đầu tiên tác giả thu thập các ảnh để thực hiện quá trình kiểm chứng như sau:

- Thu thập 160 ảnh 640x480 cho một vật thể, tổng cộng ta có 800 ảnh cho 5 vật thể (bao gồm trường hợp vật thể không xuất hiện)

- Nhận dạng trực tiếp bằng camera kết nối với máy tính hoặc video quay bằng máy quay phim cho tất cả các vật thể với tổng thời gian 6.5 giờ

Trong tổng số 800 ảnh và 6.5 giờ video, tác giả chia ra các trường hợp thu thập khác nhau để đánh giá khả năng nhận dạng của hệ thống Các trường hợp bao gồm như sau:

- Ảnh chụp với cảnh nền phức tạp: vật thể bị che khuất, không bị che khuất - Ảnh chụp với cảnh nền đơn giản: vật thể bị che khuất, không bị che khuất - Nhận dạng trực tiếp từ camera kết nối với máy tính hoặc video tự quay: nhận dạng nơi có cảnh nền phức tạp và nơi cảnh nền đơn giản, vật thể bị che khuất và không bị che khuất Với vật thể nhận dạng bằng camera sẽ được thay đổi góc độ thường xuyên và thời gian quay chỉ tập trung chính vào các vật thể

4.1.1 Kết quả nhận dạng đối với ảnh

Nhận dạng ảnh với cảnh nền phức tạp

Hình 4.1.1.1: Nhận dạng với cảnh nền phức tạp

A Vật thể không bị che; B Vật thể bị che

Kết quả nhận dạng với cảnh nền phức tạp như bảng sau:

Vật thể bị che Vật thể không bị che

Tổng Phát hiện % Tổng Phát hiện %

Bảng 4.1.1.1: Kết quả nhận dạng ảnh với cảnh nền phức tạp

Với trường hợp thử nghiệm ảnh có cảnh nền phức tạp, bức ảnh sẽ chứa hỗn loạn nhiều đặc trưng Cụ thể là bức ảnh ngoài chứa những đặc trưng của vật thể còn chứa những đặc trưng của các vật thể khác hoặc các đặc trưng không mong muốn Trong khi đó, đặc điểm của máy học SVM là nhận dạng với độ chính xác cao cho các histogram của các đặc trưng giống hoặc tương tự mà đã được huấn luyện Khi có các đặc trưng hỗn tạp pha vào sẽ gây ra nhiều trường hợp nhận dạng sai vật thể thành các vật thể khác hoặc không nhận dạng được vật thể Chính vì vậy, trong trường hợp nhận dạng với ảnh có cảnh nền phức tạp cho kết quả nhận dạng bị sai rất nhiều

Nhận dạng ảnh với cảnh nền đơn giản

Hình 4.1.1.2: Nhận dạng với cảnh nền đơn giản

A Vật thể không bị che; B Vật thể bị che

Kết quả nhận dạng với cảnh nền đơn giản như bảng sau:

Vật thể bị che Vật thể không bị che

Tổng Phát hiện % Tổng Phát hiện %

Bảng 4.1.1.2: Kết quả nhận dạng ảnh với cảnh nền đơn giản

Trong trường hợp thử nghiệm với cảnh nền đơn giản, các đặc trưng của vật thể xuất hiện nhiều hơn (do diện tích xuất hiện của vật thể trong bức ảnh chiếm phần lớn)

Hơn nữa các đặc trưng hỗn tạp không xuất hiện nhiều (do cảnh nền đơn giản) nên các histogram đặc trưng sau khi tạo ra sẽ tương tự hoặc giống với histogram đã tạo ra trong lúc huấn luyện Chính vì vậy khả năng nhận dạng vật thể trong trường hợp này là rất cao

4.1.2 Kết quả nhận dạng đối với camera hoặc video

Nhận dạng ảnh với cảnh nền phức tạp

Hình 4.1.1.3: Nhận dạng bằng video với cảnh nền phức tạp

A Vật thể không bị che; B Vật thể bị che

Kết quả nhận dạng nơi có cảnh nền phức tạp như bảng sau:

Vật thể bị che Vật thể không bị che

Tổng thời gian xuất hiện

Tổng thời gian phát hiện

Tổng thời gian xuất hiện

Tổng thời gian phát hiện

Bảng 4.1.1.3: Kết quả nhận dạng bằng camera với cảnh nền phức tạp

Tương tự với trường hợp nhận dạng bằng ảnh với cảnh nền phức tạp, bức ảnh cần truy vấn chứa nhiều đặc trưng hỗn tạp nên gây ra hiện tượng nhận dạng sai rất nhiều Trong trường hợp nhận dạng bằng camera thì các frame được lấy từ camera cũng giống như một bức ảnh thông thường Nên khi nhận dạng bằng camera cũng cho kết quả không khác biệt nhiều so với nhận dạng bằng ảnh

Nhận dạng ảnh với cảnh nền đơn giản

Hình 4.1.1.4: Nhận dạng bằng camera với cảnh nền đơn giản

A Vật thể không bị che; B Vật thể bị che

Kết quả nhận dạng nơi có cảnh nền đơn giản như bảng sau:

Vật thể bị che Vật thể không bị che

Tổng thời gian xuất hiện

Tổng thời gian phát hiện

Tổng thời gian xuất hiện

Tổng thời gian phát hiện

Bảng 4.1.1.4: Kết quả nhận dạng bằng camera với cảnh nền đơn giản

Cũng giống như trường hợp nhận dạng với cảnh nền phức tạp bằng camera, các frame nhận được từ camera cũng giống như những bức ảnh thông thường Vì vậy, trong trường hợp nhận dạng này, các frame nhận được sẽ chứa có các histogram mà tương tự các histogram đem đi huấn luyện Nên khả năng nhận dạng trong trường hợp này là rất cao.

Đánh giá

4.2.1 Đánh giá độ chính xác của hệ thống Đựa trên kết quả thử nghiệm ở các bảng trên cho thấy hệ thống nhận dạng vật thể tốt trong trường hợp cảnh vật không quá phức tạp Kết quả nhận dạng trong trường hợp này có thể đạt được ở mức độ trên 90% Nếu trường hợp cảnh vật không quá phức tạp mà vật bị che khuất thì kết quả nhận dạng vẫn có thể đạt được ở mức 80% Như vậy, có thể thấy hệ thống nhận dạng tốt với trường hợp cảnh nền không quá phức tạp Đối với trường hợp vật thể xuất hiện ở những nơi có cảnh vật phức tạp, khả năng nhận dạng của hệ thống có phần suy giảm Tuy nhiên, vật thể bị nhận dạng sai trong trường hợp này là rất ít Khả năng nhận dạng của hệ thống trong cả hai trường hợp vật thể bị che và không bị che là khoảng 30% Như vậy, hệ thống nhận dạng trong trường hợp này là không tốt Cần có nhiều cải thiện hơn nữa ở trường hợp này

Hệ thống được giảm thiểu khả năng nhận dạng sai đối với những trường hợp vật thể lạ hoặc vật thể không xuất hiện Hầu như những trường hợp vật thể bị nhận dạng sai gần như là dưới 1%

Vật thể mặc dù là bị che khuất hay được chụp dưới nhiều góc chụp khác nhau thì cũng ảnh hưởng không nhiều lắm tới khả năng nhận dạng của hệ thống Đối với trường hợp mà vật thể bị thu hẹp diện tích nhìn thấy như tờ tiền đặt song song với mặt đất và nhìn vào từ hướng song song mặt đất, hay nhìn từ trên xuống hoặc từ dưới lên của hộp sữa, hệ thống khó có thể nhận dạng được trong trường hợp này Trong trường hợp này khả năng nhận dạng được của hệ thống là rất ít

Hệ thống cũng nhạy cảm với điều kiện ánh sáng Khi nhận dạng trong điều kiện ánh sáng quá tối, hệ thống không thể nhận dạng được Tuy nhiên, đối với ánh sáng không quá tối mà mắt thường có thể nhìn rõ vật thể thì hệ thống có khả năng nhận dạng được

4.2.2 Đánh giá thời gian nhận dạng của hệ thống Đối với nhận dạng bằng ảnh thì hệ thống nhận dạng tương đối nhanh Với một ảnh full-HD, hệ thống nhận dạng dưới một phút Còn đối với các ảnh cỡ nhỏ khác thì hệ thống nhận dạng rất nhanh, thời gian diễn ra là chỉ vài giây

Khi nhận dạng bằng camera được kết nối với máy tính, hệ thống nhận dạng tương đối chậm Mặc dù là độ phân giải của video là nhỏ khoảng 300x400, các khung hình quét trên màn hình không đủ nhanh để mắt thường không phân biệt được

Tương tự với nhận dạng bằng video, hệ thống tính toán cho các khung hình rất chậm nên các khung hình không thể quét nhanh được Đây là một vấn đề cần được giải quyết để cải thiện hơn nữa

4.2.3 Đánh giá thời gian huấn luyện và xây dựng hệ thống

Hệ thống có một vài công đoạn tốn nhiều thời gian để thực hiện Hai bước mà tốn nhiều thời gian để thực hiện đó là tạo cơ sở dữ liệu và chia cụm K-Means Đối với công đoạn tạo cơ sở dữ liệu, các ảnh của vật thể được thu thập bằng thủ công Hầu hết các bức ảnh trong cơ sở dữ liệu là chọn lọc cho một vật thể nhất định nào đó hoặc tự chụp cho vật thể đó trong nhiều trường hợp khác nhau Vì thế, công đoạn tạo cơ sở dữ liệu là rất tốn thời gian Trung bình thời gian để tạo một cơ sở dữ liệu được thực hiện bởi tác giả là khoảng một tuần

Trong quá trình tạo bộ từ điển, do có nhiều đặc trưng mà số lượng từ ở mức 2500 từ nên hệ thống phải qua rất nhiều phép toán mới tính được tâm của cụm Vì vậy, hệ thống cũng phải mất nhiều thời gian cho công đoạn tạo bộ từ điển này Trung bình thời gian để tạo bộ từ điển là khoảng 10 giờ

Như vậy, có thể thấy các công để tạo hệ thống theo phương pháp này là tương đối mất thời gian Đây cũng là một bất lợi đối với phương pháp này và nó cần được cải thiện hơn nữa ở điểm này.

Ngày đăng: 09/09/2024, 05:30

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

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

TÀI LIỆU LIÊN QUAN

w