1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Ứng dụng xử lý ảnh trong việc nhận dạng và trích xuất thông tin, dữ liệu trong các tờ hóa đơn bán hàng

97 11 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 đề Ứng Dụng Xử Lý Ảnh Trong Việc Nhận Dạng Và Trích Xuất Thông Tin, Dữ Liệu Trong Các Tờ Hóa Đơn Bán Hàng
Tác giả Thân Đức Trường
Người hướng dẫn TS. Nguyễn Văn Thái
Trường học Trường Đại Học Sư Phạm Kỹ Thuật Thành Phố Hồ Chí Minh
Chuyên ngành Kỹ Thuật Điện Tử
Thể loại luận văn thạc sĩ
Năm xuất bản 2017
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 97
Dung lượng 12 MB

Cấu trúc

  • Chương 1: TỔNG QUAN (21)
    • 1.1 Tính cấp thiết của đề tài, ý nghĩa khoa học và thực tiễn của đề tài (21)
    • 1.2 Tổng quan về hướng nghiên cứu (21)
    • 1.3 Mục đích nghiên cứu và đối tượng nghiên cứu của đề tài (23)
    • 1.4 Nhiệm vụ và giới hạn của đề tài (23)
      • 1.4.1 Nhiệm vụ (23)
      • 1.4.2 Giới hạn đề tài (24)
    • 1.5 Phương pháp nghiên cứu (24)
  • Chương 2: CƠ SỞ LÝ THUYẾT (26)
    • 2.1 Phương pháp xử lý ảnh (26)
      • 2.1.1 Tổng quan (26)
      • 2.1.2 Điểm ảnh (27)
      • 2.1.3 Độ phân giải của ảnh (28)
      • 2.1.4 Nén ảnh (28)
      • 2.1.5 Trích chọn đặc điểm (29)
    • 2.2 Không gian màu (29)
      • 2.2.1 Không gian màu xám (29)
      • 2.2.3 Không gian màu CMYK (30)
      • 2.2.4 Không gian màu HSV (31)
      • 2.2.5 Chuyển đổi giữa các không gian màu (32)
  • Chương 3: CÔNG CỤ (34)
    • 3.1 Mã nguồn mở thị giác máy (OpenCV – Open Source Computer Vision) (34)
      • 3.1.1 Giới thiệu (34)
      • 3.1.2 Một số phép xử lý trong OpenCV (34)
    • 3.2 PHẦN MỀM QT CREATOR (44)
      • 3.2.1 Giới thiệu (44)
      • 3.2.2 Các lớp của QT Creator (44)
      • 3.2.3 GUI trên QT Creator (48)
  • Chương 4: GIẢI THUẬT SVM (SUPPORT VECTOR MACHINES) (0)
    • 4.1 Giới thiệu (53)
    • 4.2 Ứng dụng (54)
    • 4.3 SVM tuyến tính (54)
      • 4.3.1 Biên cứng (55)
      • 4.3.2 Biên mềm (56)
    • 4.4 SVM phi tuyến (56)
    • 4.5 Tính toán bộ phân loại SVM (57)
      • 4.5.1 Bài toán gốc (58)
      • 4.5.2 Bài toán đối ngẫu (58)
      • 4.5.3 Thủ thuật kernel (59)
      • 4.5.4 Các phương pháp hiện đại (59)
    • 4.6 Giảm thiểu sai số thực nghiệm (60)
      • 4.6.1 Giảm thiểu sai số (61)
      • 4.6.2 Chuẩn hóa và ổn định (61)
      • 4.6.3 SVM và sự mất bản lề (61)
      • 4.6.4 Hàm mục tiêu (62)
    • 4.7 Thuộc tính (63)
      • 4.7.1 Lựa chọn thông số (63)
      • 4.7.2 Các hạn chế (63)
  • Chương 5: GIẢI THUẬT (64)
    • 5.1 Lưu đồ giải thuật (64)
      • 5.1.1 Lưu đồ giải thuật tổng quát (64)
      • 5.1.2 Lưu đồ giải thuật chương trình tách ký tự (65)
      • 5.1.3 Lưu đồ giải thuật chương trình huấn luyện (66)
      • 5.1.4 Lưu đồ giải thuật chương trình nhận dạng và lưu trữ (67)
    • 5.2 Xác định dòng và tách ký tự (68)
      • 5.2.1 Các bước xử lý cơ bản (68)
      • 5.2.2 Xóa các đường kẻ (69)
      • 5.2.3 Tách dòng và ký tự (71)
    • 5.3 Huấn luyện (74)
      • 5.3.1 Tạo tập mẫu huấn luyện (74)
      • 5.3.2 Huấn luyện tạo thư viện nhận dạng (76)
    • 5.4 Nhận dạng và lưu trữ (79)
  • Chương 6: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN (84)
    • 6.1 Kết quả (84)
    • 6.2 Hướng phát triển (85)
  • Tài liệu tham khảo (89)

Nội dung

TỔNG QUAN

Tính cấp thiết của đề tài, ý nghĩa khoa học và thực tiễn của đề tài

Nhận dạng ký tự quang học (OCR) bắt nguồn từ công nghệ máy điện báo, với mục tiêu phát triển máy đọc cho người mù Công nghệ này cho phép chuyển đổi văn bản thành âm thanh thông qua việc sử dụng máy quét văn bản phẳng và bộ tổng hợp giọng nói, giúp người mù tiếp cận thông tin dễ dàng hơn.

Công nghệ nhận dạng ký tự quang học (OCR) đã phát triển mạnh mẽ và ứng dụng rộng rãi trong nhiều lĩnh vực Nó không chỉ hỗ trợ nhập dữ liệu cho tài liệu kinh doanh mà còn giúp nhận dạng biển số xe và chuyển đổi tài liệu in thành phiên bản văn bản Bên cạnh đó, OCR còn cải thiện khả năng tìm kiếm thông tin chính xác từ hình ảnh, như tìm kiếm tài liệu dựa trên hình ảnh chứa thông tin liên quan.

Việc nhập dữ liệu từ hóa đơn là cần thiết để doanh nghiệp theo dõi tình hình thu chi, nguyên vật liệu, nguồn vốn và tồn kho sản phẩm Tuy nhiên, quá trình này tốn nhiều thời gian do phải nhập từng thông tin một cách thủ công Giải pháp hiệu quả là sử dụng phần mềm nhận dạng ký tự, giúp nhanh chóng trích xuất thông tin từ hóa đơn và chuyển đổi thành văn bản dữ liệu Nhờ đó, người nhập liệu chỉ cần hiệu chỉnh thông tin, tiết kiệm thời gian và giảm khối lượng công việc.

Tổng quan về hướng nghiên cứu

Nhận dạng ký tự quang học (OCR) là phần mềm máy tính được phát triển từ đầu thế kỷ 20, có khả năng chuyển đổi hình ảnh chữ viết thành văn bản tài liệu OCR thuộc lĩnh vực nghiên cứu nhận dạng mẫu, trí tuệ nhân tạo và thị giác máy, giúp tối ưu hóa quy trình xử lý thông tin.

Hiện nay, có nhiều nghiên cứu về nhận dạng ký tự, trong đó nổi bật là mã nguồn mở Tesseract Được Google tài trợ, Tesseract là một công cụ nhận dạng ký tự quang học mạnh mẽ Mã nguồn mở này hỗ trợ nhận dạng ký tự cho 108 ngôn ngữ khác nhau trên toàn cầu, với độ chính xác vượt quá 90% tùy theo từng ngôn ngữ.

In the article "Text Detection and Character Recognition in Scene Images with Unsupervised Feature Learning," a team of researchers from Stanford University's Computer Science Department, including Adam Coates, Blake Carpenter, Carl Case, Sanjeev Satheesh, Bipin Suresh, Tao Wang, David J Wu, and Andrew Y Ng, discusses a method for identifying and recognizing characters in outdoor images using unsupervised learning techniques, achieving an impressive accuracy of 85.5%.

Trong bài viết "Trích xuất và phân tích thông tin văn bản từ hình ảnh bằng các kỹ thuật xử lý ảnh số", tác giả Partha Sarathi Giri từ Khoa Điện tử và Truyền thông, M.E.M.S, Balasore, Odisha đã giới thiệu hai phương pháp chính để trích xuất văn bản từ hình ảnh Các phương pháp này bao gồm phương pháp dựa trên cạnh và phương pháp liên kết các thành phần cơ sở, nhằm cải thiện hiệu quả trong việc phân tích và nhận diện ký tự từ hình ảnh.

Với bài báo “Automatic Text Recognition From Raster Maps” của tác giả Yao-

Yi Chiang và Craig A Knoblock từ trường Đại học Nam California đã giới thiệu phương pháp nhận dạng ký tự trên bản đồ Raster, áp dụng kỹ thuật xác định nhãn cho các đoạn ký tự với kích cỡ và phương hướng khác nhau Họ xoay các nhãn ký tự theo chiều kim đồng hồ và ngược chiều kim đồng hồ để đạt được hướng chính xác trước khi thực hiện nhận dạng ký tự bằng phần mềm ABBYY FineReader 10 Bài báo “An Arabic Baseline Estimation Method Based on Feature Points Extraction” của Arwa AL-Khatatneh, Sakinah Ali Pitchay và Musab Al-qudah cũng đề xuất một phương pháp tiền xử lý nhận dạng ký tự thông qua phân tích và trích xuất các điểm đặc trưng từ các đoạn ký tự.

Trong bài báo “Text Extraction and Recognition from Mixed Images” của nhóm tác giả L Ramesh và E Dinesh, phương pháp phân vùng các vùng màu tương đương được đề xuất, chia thành ba cụm: cụm chưa thông tin, cụm nền và cụm nhiễu Các cụm này sau đó được ghép nối bằng các kỹ thuật ghép nối phần tử Mặc dù kết quả nhận dạng đạt hiệu quả tốt, nhưng vẫn xuất hiện một số lỗi trong các hình ảnh có nền phức tạp.

Trong bài báo “Nhận Dạng Bìa Sách Tiếng Việt Cho Ứng Dụng Quản Lý Sách”, nhóm tác giả gồm Phan Thị Thanh Nga, Nguyễn Thị Huyền Trang, Nguyễn Văn Phúc, Thái Duy Quý và Võ Phương Bình đã trình bày phương pháp nhận dạng bìa sách tiếng Việt Nhóm đã sử dụng mã nguồn mở Tesseract để thực hiện nhận dạng ký tự, đạt độ chính xác khoảng 80%.

Mục đích nghiên cứu và đối tượng nghiên cứu của đề tài

Với tính cấp thiết của đề tài như trên thì người nghiên cứu đã lựa chọn đề tài

Ứng dụng xử lý ảnh đóng vai trò quan trọng trong việc nhận dạng và trích xuất thông tin từ các tờ hóa đơn bán hàng Đề tài này được chọn làm luận văn tốt nghiệp thạc sĩ chuyên ngành Kỹ thuật Điện Tử, nhằm phát triển các giải pháp tối ưu cho việc tự động hóa quy trình xử lý hóa đơn Thông qua công nghệ nhận diện ký tự quang học (OCR) và các thuật toán xử lý ảnh tiên tiến, nghiên cứu này giúp nâng cao độ chính xác và hiệu quả trong việc quản lý dữ liệu hóa đơn.

Mục tiêu nghiên cứu là phát triển một chương trình nhận dạng và trích xuất thông tin từ hóa đơn bán hàng, nhằm đóng góp vào sự phát triển lĩnh vực thị giác tại Việt Nam trong tương lai Đối tượng nghiên cứu chính là xây dựng chương trình nhận dạng và trích xuất thông tin hiệu quả.

Nhiệm vụ và giới hạn của đề tài

1.4.1 Nhiệm vụ Để nhận dạng và trích xuất được thông tin trong một tờ hóa đơn bán hàng đề tài cần thực hiện những nhiệm vụ: Xác định dòng và tách ký tự, huấn luyện nhận dạng và lưu trữ ký tự Trong đó:

Nhiệm vụ xác định dòng và tách ký tự là quá trình xác định vị trí các dòng chứa ký tự và phân tách chúng thành các ký tự độc lập để nhận dạng Để thực hiện nhiệm vụ này, chúng tôi sử dụng thư viện mã nguồn mở OpenCV kết hợp với một số phân lớp của phần mềm QT Creator trên nền tảng C++.

Nhiệm vụ huấn luyện dữ liệu bao gồm việc tạo ra một tập mẫu ký tự, từ đó tiến hành huấn luyện để xây dựng thư viện ký tự nhận dạng dựa trên thuật toán SVM (Support Vector Machines).

Nhiệm vụ nhận dạng và lưu trữ ký tự là bước cuối cùng sau khi tách từng ký tự và xây dựng thư viện huấn luyện Quá trình này bao gồm việc so sánh các ký tự đã tách với thư viện nhận dạng đã được huấn luyện để xác định chính xác ký tự Sau khi nhận dạng, các ký tự sẽ được lưu trữ theo địa chỉ đã xác định trong nhiệm vụ đầu tiên, và dữ liệu sẽ được lưu dưới dạng file Excel Để thực hiện nhiệm vụ này, chúng ta sử dụng các phân lớp của phần mềm lập trình QT Creator.

Hình 1.1: Sơ đồ khối hệ thống nhận dạng và trích xuất thông tin hóa đơn

- Đề tài thực hiện nhận dạng và trích xuất thông tin từ mẫu hóa đơn được đánh máy bằng chữ in hoa font chữ Arial cỡ chữ từ 12 tới 16

- Các mẫu hóa đơn không có Merge dòng, hình ảnh hóa đơn được chụp có độ rõ nét, không quá mờ, không nghiêng.

Phương pháp nghiên cứu

Trong quá trình nghiên cứu, người nghiên cứu sử dụng các phương pháp sau:

- Phương pháp phân tích và tổng hợp lý thuyết: được sử dụng trong quá trình nghiên cứu lý thuyết được trình bày trong phần cơ sở lý thuyết

- Phương pháp phân loại và hệ thống hóa lý thuyết: được dùng trong quá trình tham khảo các bài báo khoa học trong nước và quốc tế

- Phương pháp mô hình hóa: được dùng trong quá trình xây dựng nên sơ đồ khối của hệ thống đề tài

- Phương pháp quan sát khoa học: được dùng nhiều khi tiến hành thực nghiệm

- Phương pháp thực nghiệm khoa học: được sử dụng trong quá trình tiến hành thực nghiệm đề tài

- Phương pháp phân tích tổng kết kinh nghiệm: được thực hiện trong quá trình kiểm tra và đánh giá dữ liệu thu được từ kết quả thực nghiệm.

CƠ SỞ LÝ THUYẾT

Phương pháp xử lý ảnh

Xử lý ảnh là một lĩnh vực khoa học và công nghệ đang phát triển nhanh chóng, liên quan đến việc thu nhận, số hóa và xử lý hình ảnh từ các nguồn như camera và vệ tinh Quá trình này nhằm tăng cường chất lượng hình ảnh, làm cho chúng trở nên đẹp hơn và rõ ràng hơn Ảnh được hiểu là thông tin về đường nét, hình khối và màu sắc mà con người cảm nhận qua thị giác Đối tượng chính của xử lý ảnh là ảnh chụp tự nhiên, trong đó nội dung hình ảnh được cải thiện thông qua dữ liệu ảnh Ảnh đơn, hay ảnh tĩnh, là dạng dữ liệu chính mà chúng ta quan tâm, được biểu diễn qua hàm độ chói I(x,y), trong đó x và y là các tọa độ thực trong mặt phẳng ảnh.

Trong lĩnh vực xử lý ảnh, giá trị độ chói của ảnh màu được biểu diễn qua ba hàm cơ bản: R (đỏ), G (xanh lá), và B (xanh lam), với các giá trị nằm trong khoảng 0 ≤ I(x,y) ≤ IMAX Ảnh số là một dạng biểu diễn và lưu trữ ảnh tĩnh, được hình thành qua quá trình lấy mẫu và lượng tử hóa, tạo ra một ma trận điểm ảnh I[m,n] Mỗi phần tử trong ma trận này được gọi là pixel, với giá trị phụ thuộc vào loại ảnh: ảnh nhị phân chỉ cần 1 bit cho 2 mức giá trị, ảnh đa mức xám cần 8 bits cho 256 mức giá trị, trong khi ảnh màu yêu cầu 8 bits hoặc hơn tùy thuộc vào chất lượng màu.

Hệ màu RGB yêu cầu 24 bits/pixel, được tính bằng 3*8 Do đó, việc xử lý ảnh trở thành quá trình thao tác với các phần tử trong ma trận điểm ảnh.

Một bức ảnh số được thể hiện qua ma trận điểm ảnh I[m,n], trong đó mỗi điểm ảnh được xác định bởi tọa độ [m,n] và giá trị màu I Các phép xử lý ảnh có thể tác động đến tọa độ của điểm ảnh, dẫn đến sự thay đổi vị trí và hình khối trong ảnh, được gọi là xử lý hình học Ngoài ra, các phép xử lý ảnh cũng ảnh hưởng đến giá trị màu I của điểm ảnh, được gọi là xử lý nội dung Thông thường, xử lý hình học không làm thay đổi nội dung của ảnh và được sử dụng rộng rãi trong hiển thị hình ảnh, trong khi xử lý nội dung làm thay đổi giá trị màu của điểm ảnh, tạo ra những hiệu ứng cảm nhận khác nhau.

Nhiều khi, ảnh chụp không phải lúc nào cũng rõ nét và đẹp, đặc biệt là khi vật thể trong ảnh đã xấu Khi ảnh càng rõ nét, cái xấu càng lộ rõ, vì vậy chúng ta không mong muốn làm cho ảnh rõ hơn mà lại muốn làm cho nó mờ đi để che bớt khuyết điểm Để đạt được điều này, ta sử dụng bộ lọc thông thấp (Lowpass filter) để chỉ giữ lại những sóng có tần số thấp, đồng thời loại bỏ các sóng có tần số cao, vì chúng chỉ tạo ra nhiễu cho ảnh.

2.1.2 Điểm ảnh Ảnh gốc (ả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, ả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 Trong khuôn khổ ảnh hai chiều, mỗi pixel ứng với cặp tọa độ (x, y) Đ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.1.3 Độ phân giải của ảnh Độ 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 cần được lựa chọn sao cho mắt người vẫn nhận thấy sự liên tục của hình ảnh Việc xác định khoảng cách này tạo ra mật độ phân bổ, hay còn gọi là độ phân giải, được phân bố theo trục x và y trong không gian hai chiều.

Để giảm thiểu không gian lưu trữ, nén ảnh thường được thực hiện theo hai phương pháp: nén có bảo toàn thông tin và nén không bảo toàn thông tin Nén không bảo toàn thường đạt được tỷ lệ nén cao hơn nhưng khả năng phục hồi kém hơn Dựa trên hai phương pháp này, có bốn cách tiếp cận cơ bản trong nén ảnh.

Kỹ thuật nén ảnh thống kê dựa trên tần suất xuất hiện của các giá trị điểm ảnh, từ đó phát triển chiến lược mã hóa phù hợp Một ví dụ điển hình cho phương pháp mã hóa này là định dạng *.TIF.

Nén ảnh không gian là một kỹ thuật mã hóa dựa trên vị trí không gian của các điểm ảnh, tận dụng sự tương đồng giữa các điểm ảnh trong các vùng lân cận Một ví dụ điển hình cho kỹ thuật này là mã nén *.PCX.

Kỹ thuật nén ảnh sử dụng phép biến đổi là phương pháp tiếp cận nén không bảo toàn, mang lại hiệu quả cao hơn so với các kỹ thuật khác Định dạng JPG là một ví dụ điển hình cho việc áp dụng kỹ thuật nén này.

Nén ảnh Fractal là một kỹ thuật sử dụng tính chất Fractal của các đối tượng ảnh để thể hiện sự lặp lại của các chi tiết Kỹ thuật này cho phép lưu trữ chỉ phần gốc của ảnh cùng với quy luật sinh ra ảnh, dựa trên nguyên lý Fractal, giúp tiết kiệm dung lượng lưu trữ mà vẫn đảm bảo chất lượng hình ảnh.

Trong quá trình xử lý ảnh, các đặc điểm của đối tượng được chọn lọc dựa trên mục đích nhận dạng Một số đặc điểm quan trọng của ảnh bao gồm màu sắc, hình dạng, kết cấu và kích thước, giúp nâng cao độ chính xác trong việc phân tích và nhận diện đối tượng.

• Đặc điểm không gian: Phân bố mức xám, phân bố xác suất, biên độ, điểm uốn v.v

Các đặc điểm loại này được xác định thông qua quá trình lọc vùng (zonal filtering) Các bộ vùng, hay còn gọi là “mặt nạ đặc 10 điểm” (feature mask), thường có hình dạng đa dạng như hình chữ nhật, hình tam giác, hoặc cung tròn, và thường là các khe hẹp.

Đặc điểm biên và đường biên đóng vai trò quan trọng trong việc nhận dạng đối tượng, giúp trích xuất các thuộc tính bất biến Những đặc điểm này có thể được xác định thông qua các toán tử như gradient, la bàn, Laplace, và toán tử “chéo không” (zero crossing).

Không gian màu

Không gian màu là một mô hình toán học mô tả màu sắc thực tế dưới dạng số học, với nhiều loại không gian màu khác nhau phục vụ cho các mục đích riêng Bài viết này sẽ giới thiệu ba không gian màu cơ bản thường được sử dụng, bao gồm hệ không gian màu RGB, HSV và CMYK.

Không gian màu xám là một không gian màu trong đó mỗi điểm ảnh chỉ mang cường độ thông tin, thường được gọi là ảnh đen trắng Tuy nhiên, thuật ngữ này không hoàn toàn chính xác, vì ảnh đen trắng chỉ có hai mức giá trị: 0 cho màu đen và 1 cho màu trắng Trong khi đó, ảnh xám có dải màu với 255 mức giá trị, với màu đen ở giá trị 0 và màu trắng ở giá trị 255.

RGB là một không gian màu phổ biến trong đồ họa máy tính và các thiết bị kỹ thuật số Không gian màu này dựa trên sự kết hợp của ba màu cơ bản: đỏ (R), xanh lục (G) và xanh lam (B), từ đó tạo ra tất cả các màu sắc khác.

Một ảnh số được mã hóa bằng 24bit, trong đó mỗi kênh màu R, G, B được đại diện bởi 8bit, cho phép mỗi kênh nhận giá trị từ 0 đến 255 Sự kết hợp của các giá trị khác nhau từ ba kênh màu này tạo ra một loạt màu sắc phong phú, tổng cộng lên tới 16.7 triệu màu sắc khác nhau.

Ví dụ: Màu đen là sự kết hợp của các kênh màu (R, G, B) với giá trị tương ứng

Màu sắc trong hệ thống RGB được biểu diễn bằng các giá trị như màu trắng (255, 255, 255), màu vàng (255, 255, 0) và màu tím đậm (64, 0, 128) Khi sử dụng 16 bit để mã hóa một kênh màu, tổng giá trị màu sắc cho cả ba kênh sẽ đạt tới 3*2^16, tạo ra một dải màu vô cùng phong phú và đa dạng.

Hình 2.1: Không gian màu RGB

CMYK là không gian màu phổ biến trong ngành in ấn, sử dụng bốn màu cơ bản để pha trộn mực in Hệ màu này bao gồm ba màu chính: C (Cyan - lục lam), M (Magenta - hồng), Y (Yellow - vàng) và K (Black - đen), giúp tạo ra đa dạng sắc thái cho sản phẩm in.

M = Magenta: hồng xẫm, và Y=Yellow: vàng để biểu diễn các màu sắc khác nhau

Khi kết hợp màu hồng xẫm với vàng, ta sẽ có màu đỏ, và màu xẫm kết hợp với xanh lơ sẽ tạo ra màu xanh lam Sự kết hợp của ba màu này sẽ cho ra màu đen, nhưng màu đen này không phải là đen tuyệt đối và thường có độ tương phản lớn Trong ngành in, để tiết kiệm mực, người ta thường thêm màu đen vào để in các chi tiết thay vì phải kết hợp ba màu sắc trên Do đó, hệ màu CMYK ra đời, trong đó chữ K đại diện cho màu đen (Black), có lẽ vì chữ B đã được sử dụng để biểu diễn màu xanh (Blue).

Nguyên lý hoạt động của hệ màu CMYK dựa trên việc in màu lên nền giấy trắng, trong đó các màu Cyan (C), Magenta (M), Yellow (Y) được in với tỉ lệ khác nhau để loại bỏ dần thành phần màu trắng, tạo ra màu sắc mong muốn Khi cần in màu đen, thay vì trộn ba màu, người ta sử dụng mực đen để tiết kiệm chi phí và thời gian Điều này khác biệt với hệ RGB, nơi các màu được tạo ra bằng cách kết hợp các thành phần màu.

Hình 2.2: Không gian màu CMYK

HSV và HSL là hai không gian màu phổ biến trong chỉnh sửa và phân tích ảnh, cũng như trong lĩnh vực thị giác máy tính Hệ thống này dựa trên ba thông số chính để mô tả màu sắc, trong đó H (Hue) đại diện cho màu sắc.

S = Saturation: độ đậm đặc, sự bão hòa, V = Value: giá trị cường độ sáng

Không gian màu thường được thể hiện dưới dạng hình trụ hoặc hình nón, với vòng tròn màu sắc trải dài từ 0 đến 360 độ Bắt đầu từ màu đỏ (red primary) tại 0 độ, màu sắc tiếp tục chuyển sang màu xanh lục (green primary) ở 120 độ, và từ 120 đến 240 độ là sự chuyển đổi từ xanh lục sang xanh lam (blue primary) Cuối cùng, từ 240 đến 360 độ, màu sắc chuyển từ xanh lam về màu đen và trở lại màu đỏ.

Hình 2.3: Không gian màu HSV

2.2.5 Chuyển đổi giữa các không gian màu

2.2.5.1 Chuyển đổi giữa RGB và CMYK

Thành phần K trong hệ màu CMYK là yếu tố quan trọng để in các điểm màu đen Để chuyển đổi từ không gian màu RGB sang CMYK, trước tiên cần chuyển RGB sang CMY, sau đó xác định thành phần K còn lại để hoàn tất quá trình chuyển đổi từ CMY sang CMYK.

❖ Công thức chuyển từ RGB sang CMY:

Việc xác định giá trị của K là một thách thức, liên quan đến các nhà sản xuất công nghệ in Tuy nhiên, về lý thuyết, có thể chấp nhận rằng

❖ Chuyển từ CMY sang CMYK:

- Nếu K = 100 thì C = M = Y =0 (trường hợp in màu đen)

Và K = K Trong đó C, M, Y, K được làm tròn tới chỉ số nguyên

2.2.5.2 Chuyển đổi giữa RGB và HSV

❖ Giả sử ta có một điểm màu có giá trị trong hệ RGB là (R, G, B) ta chuyển sang không gian HSV như sau: Đặt M = Max(R, G, B), m = Min(R, G, B) và C = M - m

Trong trường hợp V hoặc C bằng 0, S = 0 Để chuyển từ HSV sang RGB ta làm như sau:

Giả sử ta có không gian màu HSV với H = [0, 360], S = [0, 1], V = [0, 1] Khi đó, ta tính:

X = C (1 - |H' mod 2 -1|) Ta biểu diễn hệ (R1, G1, B1) như sau:

Cuối cùng để xác định R, G, B ta cộng cùng một lượng vào từng thành phần với giá trị: m = V – C (2.6)

Nếu H không xác định được Nếu 0 ≤ H' < 1

Nếu 1 ≤ H' < 2 Nếu 2 ≤ H' < 3 Nếu 3 ≤ H' < 4 Nếu 4 ≤ H' < 5 Nếu 0 ≤ H' < 1

CÔNG CỤ

Mã nguồn mở thị giác máy (OpenCV – Open Source Computer Vision)

OpenCV (Open Source Computer Vision) là một thư viện mã nguồn mở nổi bật trong lĩnh vực thị giác máy, cung cấp hơn 500 hàm và 2500 thuật toán tối ưu cho xử lý ảnh Thư viện này được thiết kế để tận dụng tối đa sức mạnh của các chip đa lõi, cho phép thực hiện các phép toán trong thời gian thực, đáp ứng nhanh chóng cho các ứng dụng thông thường OpenCV có khả năng chạy trên nhiều nền tảng khác nhau như Windows, Linux, Mac và iOS Việc sử dụng OpenCV tuân theo quy định của giấy phép mã nguồn mở BSD, cho phép sử dụng miễn phí cho cả mục đích thương mại và phi thương mại.

Dự án OpenCV bắt đầu vào năm 1999 và được giới thiệu tại một hội nghị của IEEE về thị giác máy và nhận dạng vào năm 2000 Tuy nhiên, phiên bản chính thức OpenCV 1.0 chỉ được công bố vào năm 2006, và phiên bản 1.1 (pre-release) ra mắt vào năm 2008 Đến tháng 10 năm 2009, phiên bản thứ hai của OpenCV (phiên bản 2.x) đã được phát hành.

Thư viện OpenCV, ban đầu được Intel hỗ trợ, sau đó nhận sự hỗ trợ từ Willow Garage - một phòng thí nghiệm chuyên nghiên cứu công nghệ robot, hiện vẫn là một thư viện mã nguồn mở OpenCV được phát triển nhờ nguồn quỹ từ các tổ chức phi lợi nhuận.

3.1.2 Một số phép xử lý trong OpenCV

3.1.2.1 Đọc ảnh, hiển thị và lưu ảnh

Để đọc file ảnh thành mảng NumPy, sử dụng cú pháp `image = cv2.imread("tham số")`, trong đó "tham số" là đường dẫn đến hình ảnh Sau khi thực hiện, chúng ta sẽ nhận được một mảng NumPy mang tên image, chứa các thông số về file ảnh như chiều dài, chiều rộng và số kênh Mảng NumPy lưu trữ các thông tin này một cách hiệu quả.

Một bức ảnh có hai chiều X và Y, với gốc tọa độ nằm tại pixel ở góc trên bên trái Chiều X chạy từ trái sang phải, trong khi chiều Y chạy từ trên xuống dưới Trong NumPy, số lượng pixel theo chiều Y được xác định bằng image.shape[0], và số lượng pixel theo chiều X được xác định bằng image.shape[1].

Mỗi pixel trong ảnh có thể được biểu thị dưới dạng xám (grayscale) hoặc màu (color) Thông số image.shape[2] cho biết số kênh của mỗi pixel; ảnh màu sử dụng 3 kênh RGB, trong khi ảnh xám chỉ có 1 kênh duy nhất.

Cú pháp: cv2.imshow("Tên hiển thị", image)

Hàm cv2.imshow() cho phép hiển thị hình ảnh trong một cửa sổ, với tham số đầu vào bao gồm tên cửa sổ được đặt trong dấu " " và tham số image là một mảng Numpy chứa dữ liệu của file ảnh.

Để hiển thị hình ảnh cho người xem, cần có một khoảng thời gian chờ nhất định để ảnh xuất hiện trên màn hình Lệnh cv2.waitKey(time) được sử dụng để khai báo thời gian chờ, trong đó tham số time được tính bằng mili giây Nếu muốn hình ảnh hiển thị mãi mãi, ta đặt tham số thời gian bằng 0, tức là sử dụng cv2.waitKey(0).

Chúng ta có thể sử dụng lệnh print để hiển thị các thông tin quan trọng về hình ảnh, bao gồm chiều dài, chiều rộng, số pixel và giá trị màu tại một điểm ảnh.

Ví dụ: Hiển thị thông tin về kích thước của hình ảnh: print image.shape[0] (Hiển thị chiều dài ảnh) print image.shape[1] (Hiển thị chiều cao ảnh)

Cú pháp: cv2.imwrite("Tên.định dạng", image)

Hàm cv2.imwrite() được sử dụng để lưu trữ hình ảnh sau khi thực hiện các thao tác chỉnh sửa Hàm này yêu cầu hai tham số: tên và định dạng mới của hình ảnh, được đặt trong dấu ngoặc kép, cùng với tham số image, là một mảng Numpy chứa các thông số của file ảnh cần lưu.

3.1.2.2 Chuyển đổi giữa các không gian màu

Để chuyển đổi không gian màu trong OpenCV, chúng ta sử dụng hàm cv2.cvtColor() với cú pháp: gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) Trong đó, image là mảng Numpy chứa ảnh gốc cần chuyển đổi, và cv2.COLOR_BGR2GRAY là tham số xác định không gian màu mục tiêu Cú pháp này cho phép chuyển đổi từ không gian màu RGB sang màu xám, và kết quả được lưu trữ trong mảng Numpy có tên là gray.

Chúng ta có thể chuyển đổi giữa các không gian màu khác nhau bằng cách điều chỉnh các tham số chọn không gian màu Ví dụ, để chuyển đổi từ RGB sang HSV, ta sử dụng tham số cv2.COLOR_BGR2HSV, và để chuyển đổi từ RGB sang CMYK, ta sử dụng tham số cv2.COLOR_BGR2CMYK.

3.1.2.3 Ảnh nhị phân và ngưỡng Ảnh nhị phân là ảnh mà giá trị của các điểm ảnh chỉ được biểu diễn bằng hai giá trị 0 hoặc 255 tương ứng với hai màu đen hoặc trắng Để chuyển đổi một ảnh xám sang ảnh nhị phân ta dựa vào một giá trị ngưỡng T với phương pháp chuyển tất cả các điểm ảnh có giá trị mức xám nhỏ hơn hoặc bằng ngưỡng T thành giá trị 0 ứng với màu đen ( f(x,y) ≤ T  f(x,y) = 0) và ngược lại những điểm ảnh có giá trị mức xám lớn hơn ngưỡng T thì chuyển thành giá trị 255 ứng với màu trắng ( f(x,y) > T  f(x,y) = 255)

Trong OpenCV hỗ trợ hàm cv2.threshold để chuyển ảnh xám sang ảnh nhị phân với cú pháp:

(T, thresh) = cv2.threshold(image, Tin, Tout, cv2.THRESH_BINARY)

Để chuyển đổi ảnh xám thành ảnh nhị phân, ta sử dụng các tham số như image (mảng Numpy chứa thông số của hình ảnh), Tin (ngưỡng nhập vào) và Tout (giá trị mức xám thay đổi cho các điểm ảnh lớn hơn ngưỡng T) Ví dụ, khi đặt Tout = 250, các điểm ảnh có giá trị lớn hơn T sẽ được chuyển thành 250 Tham số cv2.THRESH_BINARY được sử dụng để xác định hình thức so sánh giá trị điểm ảnh với ngưỡng.

- cv2.THRESH_BINARY: Được gọi là nhị phân hóa thuận (f(x,y) ≤ T  f(x,y) = 0 và f(x,y) > T  f(x,y) = Tout)

- cv2.THRESH_BINARY_INV: Được gọi là nhị phân hóa nghịch (f(x,y) ≤ T

Kết quả được lưu trữ với hai thông số: Ngưỡng T, dùng để chuyển đổi ảnh xám thành ảnh nhị phân, với giá trị T = Tin Thông tin của ảnh nhị phân sau khi chuyển đổi được lưu trong một mảng Numpy có tên là thresh.

Ngoài ra, ta còn có một số phương pháp xác định ngưỡng tự động ví dụ như phương pháp Otsu và phương pháp ngưỡng thích nghi (Adaptive Threshold):

❖ Phương pháp Otsu: Đây là phương pháp xác định ngưỡng dựa trên biểu đồ (Histograms) mức xám Với cú pháp:

(T, thresh) = cv2.threshold(image, Tin, Tout, cv2.THRESH_BINARY | cv2.THRESH_OTSU)

PHẦN MỀM QT CREATOR

3.2.1 Giới thiệu Đây là nền tảng xây dựng các ứng dụng chạy được trên nhiều hệ điều hành Phần lớn các ứng dụng xây dựng bằng Qt đều có giao diện đồ họa, do vậy Qt còn được coi như là một bộ công cụ (widget toolkit) Ban đầu Qt ra đời như một sản phẩm thương mại và cũng được dùng để viết môi trường KDE, nhưng về sau được bổ sung giấy phép LGPL, theo đó có thể được sử dụng tự do để phát triển các phần mềm nguồn mở hay đúng hơn là có thể sử dụng trong các phần mềm thương mại nếu muốn Bản quyền thương mại của Qt hiện nay đã được chuyển qua hình thức thu phí hỗ trợ Bạn có thể dùng Qt như một thư viện để viết phần mềm thương mại, nếu có sửa đổi nào trong bộ nguồn chính của Qt thì bạn phải cung cấp mã nguồn đã sửa ra chứ không yêu cầu phải mở toàn bộ mã nguồn hay phải mua giấy phép thương mại như trước kia

Một số ý kiến cho rằng Nokia nên tập trung vào việc xây dựng thương hiệu để phát triển nền tảng di động, thay vì chỉ thu lợi từ phí bản quyền bộ thư viện Qt Mặc dù việc sử dụng Widgets có thể mang lại sự yên tâm hơn khi phát triển phần mềm thương mại, nhưng do dự án này là của một bác sĩ cá nhân và không có lợi nhuận nhiều, nên việc phát triển và hỗ trợ không thể tốt như của Qt.

Phiên bản mới Qt 4.7 sắp ra mắt sẽ tích hợp Qt Quick, một công nghệ giao diện người dùng (UI) hiện đại cho phép phát triển ứng dụng với hiệu ứng chuyển động và tương tác cảm ứng Bên cạnh đó, phiên bản này cũng sẽ có bản cập nhật cho Qt WebKit.

3.2.2 Các lớp của QT Creator

Trong QT Creator có hỗ trợ các lớp giúp ta thực hiện nhiều thao tác khác nhau

Hiện nay, QT hỗ trợ gần 1600 lớp học, trong đó người nghiên cứu đã sử dụng một số lớp cụ thể để thực hiện đề tài của mình.

QList là một lớp lưu trữ quan trọng trong Qt, cho phép người dùng lưu trữ các mục trong một danh sách Lớp này cung cấp khả năng truy cập và thao tác các phần tử thông qua các chỉ số, bao gồm cả việc lưu và xóa các mục dựa trên chỉ số.

Ví dụ: Khởi tạo QList dưới dạng danh sách các thứ trong tuần

Để duyệt qua QList, bạn có thể sử dụng vòng lặp for và hiển thị dữ liệu bằng phương thức at() Phương thức này yêu cầu chỉ số phần tử làm tham số đầu vào, ví dụ: for (int i=0; i < Weekdays.size(); ++i).

Dùng toán tử 0 đôi khi sử dụng γ = 1/2σ 2

- Hàm hyperbolic tangent (Tanh): k ( x i , x j )tanh( k x i x j  c ) với một số (không phải tất cả) giá trị k > 0 và c < 0

Hàm kernel liên quan đến sự biến đổi của ( x i ) theo phương trình

( x i , x j x i x j k    Giá trị w nằm trong không gian chuyển đổi, với

 i i i i i α y x w ( )các kết quả tích vô hướng có w để phân loại lại có thể dược tính bằng thủ thuật kernel Ví dụ: ( x i )   i α i y i k ( x i , x )

Tính toán bộ phân loại SVM

Tính toán bộ phân loại SVM (biên mềm) ta đi tìm giá trị nhỏ nhất của biểu thức:

Trong bài viết này, chúng tôi tập trung vào bộ phân loại biên mềm, vì việc chọn giá trị λ nhỏ cho phân loại biên cứng với dữ liệu đầu vào có khả năng phân loại tuyến tính là rất quan trọng Cách tiếp cận cổ điển liên quan đến việc tìm giá trị nhỏ nhất của biểu thức trên, được coi là một bài toán quy hoạch toàn phương và sẽ được mô tả chi tiết Ngoài ra, chúng tôi cũng sẽ đề cập đến các phương pháp tiếp cận gần đây hơn như suy giảm độ dốc phụ và các tọa độ gốc.

4.5.1 Bài toán gốc Để tìm giá trị nhỏ nhất biểu thức có thể được viết lại như một bài toán tối ưu hóa hạn chế với một hàm mục tiêu khác biệt theo cách sau:

Với mọi i є {1,… ,n} ta có một biến ζ i = max(0,1 - y i (w.x i – b)) Lưu ý rằng ζi là số nhỏ nhất không âm thỏa mãn y i (w.x i – b) ≥ 1 – ζ i

Như vậy chúng ta có thể viết lại bài toán tối ưu như sau:

Tìm giá trị nhỏ nhất của: 

Phụ thuộc y i (w.x i – b) ≥ 1 – ζ i và ζ i ≥ 0 với mọi i

Bằng cách giải đối ngẫu Lagrangian cho bài toán trên, ta có được bài toán đơn giản hơn

Tìm giá trị lớn nhất của:  

Bài toán đối ngẫu là một khái niệm quan trọng trong tối ưu hóa, trong đó bài toán cực đại hóa đối ngẫu được mô tả như một hàm bậc hai phụ thuộc vào các ràng buộc tuyến tính Phương pháp giải quyết hiệu quả cho loại bài toán này là sử dụng các thuật toán quy hoạch toàn phương Các biến c i trong bài toán này được định nghĩa một cách cụ thể để phục vụ cho quá trình tối ưu hóa.

Hơn thế nữa, c i = 0 khi x i nằm ở bên biên đúng, và λ c i n

0  1 khi x i nằm trên ranh giới của biên Sau đó w có thể được viết như một sự kết hợp tuyến tính của các vector hỗ trợ

Việc bù, b , có thể được phục hồi bằng cách tìm kiếm một x i trên ranh giới của biên và giải: i i i i w x b b y w x y (  )  1   - (4.10)

Để tìm một quy tắc phân loại phi tuyến tương ứng với quy tắc phân loại tuyến tính cho các điểm dữ liệu chuyển đổi \(\phi(x_i)\), ta cần một hàm kernel \(k\) thỏa mãn phương trình \(k(x_i, x_j) = \phi(x_i) \cdot \phi(x_j)\).

Như ta biết vector phân loại w trong không gian chuyển đổi thỏa mãn:

(4.11) Với c i thu được bằng cách giải quyết bài toán tối ưu hóa:

Tìm giá trị lớn nhất của:

Hệ số c i có thể được tối ưu hóa thông qua quy hoạch toàn phương, tương tự như trước đây Chúng ta có thể xác định một số giá trị i sao cho λ c i n đạt được hiệu quả tối ưu.

0  1 , để ( x i )nằm trên ranh giới của biên trong không gian chuyển đổi, và sau đó giải: i n

Cuối cùng, các điểm mới có thể được phân loại theo tính toán:

4.5.4 Các phương pháp hiện đại

Các thuật toán mới cho tìm kiếm bộ phân loại SVM, như suy giảm độ dốc phụ và tọa độ gốc, đã cho thấy hiệu quả vượt trội so với phương pháp truyền thống trong việc xử lý các vấn đề lớn Suy giảm độ dốc phụ đặc biệt hiệu quả với lượng mẫu đào tạo lớn, trong khi tọa độ gốc hỗ trợ tối ưu hóa trong không gian đặc trưng cao.

4.5.4.1 Phương pháp suy giảm độ dốc phụ

Các thuật toán suy giảm độ dốc phụ cho SVM làm việc trực tiếp với biểu thức:

Lưu ý rằng hàm f là một hàm lồi của w và b, cho phép áp dụng phương pháp suy giảm độ dốc truyền thống Thay vì thực hiện một bước theo chiều hàm suy giảm, chúng ta thực hiện một bước theo chiều một vector được chọn từ suy giảm phụ của hàm Cách tiếp cận này mang lại lợi thế, vì trong một số trường hợp cụ thể, số lần lặp lại không tỉ lệ thuận với số lượng điểm dữ liệu.

4.5.4.2 Phương pháp tọa độ gốc

Giải thuật tọa độ gốc cho phép SVM hoạt động với bài toán đối ngẫu

Tìm giá trị lớn nhất của:  

Với mọi i є {1,… ,n}, lặp lại, hệ số c i được điều chỉnh theo hướng  f  c i Sau đó, các vector kết quả của hệ số  ' n 

Quá trình dự đoán các hệ số vào vector gần nhất dựa trên các ràng buộc nhất định thường sử dụng khoảng cách Euclide Thuật toán này được lặp lại cho đến khi đạt được vector gần tối ưu cho các hệ số Mặc dù có một số vấn đề về hiệu suất, nhưng thuật toán này vẫn cho kết quả rất nhanh chóng trong thực tế.

Giảm thiểu sai số thực nghiệm

Các SVM biên mềm là ví dụ điển hình của sai số thực nghiệm (Empirical Risk Minimization - ERM) với mất bản lề (hinge loss) Điều này cho thấy SVM thuộc một lớp tự nhiên của các thuật toán suy luận thống kê, và nhiều đặc điểm độc đáo của nó xuất phát từ trạng thái mất bản lề Quan điểm này không chỉ giúp hiểu rõ hơn về cơ chế hoạt động của SVM mà còn cho phép phân tích tốt hơn các thuộc tính thống kê của nó.

Trong huấn luyện có giám sát, ta đưa ra một tập hợp các mẫu huấn luyện

Để dự đoán giá trị y n+1 từ các yếu tố X n+1, ta cần xây dựng một giả thuyết f, sao cho f(X n+1) gần gũi với y n+1 Một giả thuyết tốt thường được xác định thông qua một hàm mất mát l(y,z), trong đó z được coi là dự đoán của y Mục tiêu là lựa chọn giả thuyết nhằm giảm thiểu sai số dự kiến.

Trong nhiều trường hợp, chúng ta không nắm rõ phân phối chung của X n+1 tại y n+1 Do đó, một chiến lược hiệu quả là lựa chọn giả thuyết nhằm giảm thiểu sai số thực nghiệm.

Dưới những giả định nhất định về chuỗi các biến ngẫu nhiên X k và y k, như việc chúng được tạo ra bởi một quá trình Markov hữu hạn, nếu giả thuyết này đủ nhỏ, mức tối thiểu của sai số thực nghiệm sẽ gần tương đương với mức tối thiểu của sai số dự kiến n phát sinh lớn Phương pháp này được gọi là giảm thiểu sai số thực nghiệm (ERM).

4.6.2 Chuẩn hóa và ổn định Để bài toán đi tìm cực tiểu có một lời giải được xác định rõ ràng, ta phải đặt các ràng buộc vào tập hợp các giả thuyết đang được xem xét H Nếu H là một không gian chuẩn (như trường hợp của SVM), một kỹ thuật đặc biệt hiệu quả là chỉ xem xét các giả thuyết f mà || f ||H < k Điều này tương đương với việc áp dụng điểm phạt chuẩn hóa R ( f ) = λ k ||f|| H , và giải quyết bài toán tối ưu hóa mới:

Cách tiếp cận này được gọi là Tikhonov regularization [14]

Nhìn chung, R ( f ) có thể coi là một giả thuyết phức tạp của giả thuyết f, nên các giả thuyết đơn giản được ưa thích hơn

4.6.3 SVM và sự mất bản lề

Nhắc lại bộ phân loại SVM (biên mềm) w  , b : x  sgn  w  x  b  được chọn để làm nhỏ biểu thức sau:

Kỹ thuật SVM có thể được hiểu là một phương pháp nhằm giảm thiểu sai số thực nghiệm thông qua chuẩn hóa Tikhonov Trong bối cảnh này, hàm mất được sử dụng là hàm mất bản lề, được định nghĩa bởi công thức l(y,z) = max(0,1 - yz).

SVM có mối liên hệ chặt chẽ với các thuật toán phân loại cơ bản như Regularized Least-Squares (RLS) và hồi quy logistics Sự khác biệt giữa chúng chủ yếu nằm ở việc lựa chọn hàm mất RLS tối thiểu hóa sai số thực nghiệm bằng cách sử dụng bình phương hàm mất, trong khi hồi quy logistics áp dụng hàm log để tính toán.

Sự khác biệt giữa mất bản lề và các hàm mất khác chủ yếu nằm ở điều kiện của hàm mục tiêu, cụ thể là hàm giảm thiểu sai số dự kiến cho cặp biến ngẫu nhiên X và Y.

Cụ thể, sử dụng y x thể hiện cho y với điều kiện về là X = x Trong thiết lập phân loại, ta có: y x = {1 với xác suất p x -1 với xác suất 1-p x

Ta có phân loại tối ưu:

Trong các trường hợp khác, hàm mục tiêu cho bình phương hàm mất được xác định là hàm mong muốn có điều kiện, cụ thể là f_sq(x) = E[y | x] Đối với hàm mất logistic, hàm mục tiêu là hàm logarit, được biểu diễn dưới dạng f(x) = ln(p(x) / (1 - p(x))).

Cả hai hàm mục tiêu này đảm bảo phân loại chính xác với sgn(f sq) = sgn(f log) = f*, cung cấp thông tin phong phú hơn mức cần thiết Thực tế, chúng cho phép mô tả đầy đủ phân bố của y x.

Có thể kiểm tra tính chính xác của hàm mục tiêu trong việc mất bản lề Trong một không gian giả thuyết đủ lớn, hoặc với một kernel phù hợp, bộ phân loại SVM sẽ hội tụ đến hàm đơn giản nhất về mặt R để phân loại chính xác dữ liệu Điều này giúp mở rộng cách hiểu hình học của phương pháp này.

SVM cho phân loại tuyến tính giảm thiểu sai số thực nghiệm bằng cách sử dụng hàm đơn giản nhất có biên nằm giữa các vector hỗ trợ, tạo ra phân loại biên tối đa.

Thuộc tính

SVM là một phương pháp phân loại tuyến tính tổng quát, được xem như là sự mở rộng của perceptron và là một trường hợp đặc biệt của chuẩn hóa Tikhonov Phương pháp này nổi bật ở chỗ nó vừa giảm thiểu sai số phân loại thực nghiệm vừa tối đa hóa biên dạng hình học, do đó còn được gọi là phân loại biên tối đa.

Hiệu quả của SVM chịu ảnh hưởng lớn từ việc lựa chọn kernel, các tham số của kernel và tham số lề mềm C Một trong những kernel phổ biến là Gaussian kernel, với tham số γ Để tìm ra sự kết hợp tối ưu giữa C và γ, thường sử dụng phương pháp tìm kiếm lưới với các giá trị của C và γ phát triển theo cấp số nhân, ví dụ, C thuộc {2^-5, 2^-3, …}.

Trong quá trình lựa chọn tham số cho mô hình, các giá trị của C và γ thường được kiểm tra thông qua phương pháp kiểm chứng chéo (cross validation) để xác định độ chính xác cao nhất Thay vì sử dụng tìm kiếm lưới tốn thời gian, tối ưu hóa Bayesian có thể được áp dụng để lựa chọn C và γ với số lượng đánh giá tham số ít hơn Cuối cùng, mô hình được huấn luyện trên toàn bộ tập huấn luyện với các tham số đã được chọn, nhằm thử nghiệm và phân loại dữ liệu mới hiệu quả hơn.

Những hạn chế tiềm ẩn của SVM bao gồm các:

- Yêu cầu ghi nhãn đầy đủ dữ liệu đầu vào

- Các lớp xác suất thành viên không được hiệu chuẩn - SVM bắt nguồn từ lý thuyết của Vapnik tránh ước tính xác suất trên dữ liệu hữu hạn

SVM chỉ có thể được sử dụng cho các nhiệm vụ phân loại hai lớp, vì vậy cần áp dụng các thuật toán để chuyển đổi các bài toán đa lớp thành các bài toán nhị phân.

- Khó giải thích được các tham số của một mô hình được giải quyết.

GIẢI THUẬT

KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN

Ngày đăng: 19/09/2022, 14:59

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Adam Coates, Blake Carpenter, Carl Case, Sanjeev Satheesh, Bipin Suresh, Tao Wang, David J. Wu, Andrew Y. Ng. Text Detection and Character Recognition in Scene Images with Unsupervised Feature Learning.ICDAR, 2011 Sách, tạp chí
Tiêu đề: Text Detection and Character Recognition in Scene Images with Unsupervised Feature Learning
[2] Parthasarathi Giri. Text Information Extraction And Analysis From Images Using Digital Image Processing Techniques. Special Issue of International Journal on Advanced Computer Theory and Engineering (IJACTE), ISSN (Print) : 2319 – 2526, Volume-2, Issue-1, 2013, pp. 66-71 Sách, tạp chí
Tiêu đề: Text Information Extraction And Analysis From Images Using Digital Image Processing Techniques
[3] Chiang, Yao-Yi, and Craig A. Knoblock. Automatic Text Recognition from Raster Maps. 2010 Sách, tạp chí
Tiêu đề: Automatic Text Recognition from Raster Maps
[4] Arwa AL-Khatatneh, Sakinah Ali Pitchay and Musab Al-qudah. An Arabic Baseline Estimation Method Based on Feature Points Extraction.In: Proceedings of the World Congress on Engineering. 2017 Sách, tạp chí
Tiêu đề: An Arabic Baseline Estimation Method Based on Feature Points Extraction
[5] L. Ramesh, E. Dinesh. Text Extraction and Recognition from Mixed Images. Journal of Chemical and Pharmaceutical Sciences ISSN, 974:2115 Sách, tạp chí
Tiêu đề: Text Extraction and Recognition from Mixed Images
[6] Phan Thị Thanh Nga, Nguyễn Thị Huyền Trang, Nguyễn Văn Phúc, Thái Duy Quý, Võ Phương Bình . Nhận Dạng Bìa Sách Tiếng Việt Cho Ứng Dụng Quản Lý Sách. Tạp chí Khoa học Đại học Đà Lạt, 2017, 7.2: 142- 152 Sách, tạp chí
Tiêu đề: Nhận Dạng Bìa Sách Tiếng Việt Cho Ứng Dụng Quản Lý Sách
[8] Simon Tong and Daphne Koller. Support vector machine active learning with applications to text classification. Journal of machine learning research 2.Nov (2001): 45-66 Sách, tạp chí
Tiêu đề: Support vector machine active learning with applications to text classification
Tác giả: Simon Tong and Daphne Koller. Support vector machine active learning with applications to text classification. Journal of machine learning research 2.Nov
Năm: 2001
[9] Terrence S. Furey, Nello Cristianini, Nigel Duffy, David W. Bednarski Michèl Schummer, David Haussler. Support vector machine classification and validation of cancer tissue samples using microarray expression data. Bioinformatics 16.10 (2000): 906-914 Sách, tạp chí
Tiêu đề: Support vector machine classification and validation of cancer tissue samples using microarray expression data
Tác giả: Terrence S. Furey, Nello Cristianini, Nigel Duffy, David W. Bednarski Michèl Schummer, David Haussler. Support vector machine classification and validation of cancer tissue samples using microarray expression data. Bioinformatics 16.10
Năm: 2000
[10] Ray Rischpater. Application development with qt creator. Packt Publishing Ltd, 2013 Sách, tạp chí
Tiêu đề: Application development with qt creator

HÌNH ẢNH LIÊN QUAN

Hình 3.2: Kết quả khi sử dụng hàm intersected() và hàm United() - Ứng dụng xử lý ảnh trong việc nhận dạng và trích xuất thông tin, dữ liệu trong các tờ hóa đơn bán hàng
Hình 3.2 Kết quả khi sử dụng hàm intersected() và hàm United() (Trang 46)
Hình 3.3: Kết quả trả về khi sử dụng các hàm tọa độ - Ứng dụng xử lý ảnh trong việc nhận dạng và trích xuất thông tin, dữ liệu trong các tờ hóa đơn bán hàng
Hình 3.3 Kết quả trả về khi sử dụng các hàm tọa độ (Trang 47)
Hình 3.5: Lựa chọn chức năng lập trình với GUI - Ứng dụng xử lý ảnh trong việc nhận dạng và trích xuất thông tin, dữ liệu trong các tờ hóa đơn bán hàng
Hình 3.5 Lựa chọn chức năng lập trình với GUI (Trang 49)
Hình 3.4: Giao diện chương trình Qt Creator - Ứng dụng xử lý ảnh trong việc nhận dạng và trích xuất thông tin, dữ liệu trong các tờ hóa đơn bán hàng
Hình 3.4 Giao diện chương trình Qt Creator (Trang 49)
Hình 3.8: Form thiết kế hoàn chỉnh - Ứng dụng xử lý ảnh trong việc nhận dạng và trích xuất thông tin, dữ liệu trong các tờ hóa đơn bán hàng
Hình 3.8 Form thiết kế hoàn chỉnh (Trang 51)
Hình 3.9: Bảng các sự kiện các đối tượng - Ứng dụng xử lý ảnh trong việc nhận dạng và trích xuất thông tin, dữ liệu trong các tờ hóa đơn bán hàng
Hình 3.9 Bảng các sự kiện các đối tượng (Trang 51)
Hình 3.10: Sơ đồ liên kết Objects, Signals và Slots - Ứng dụng xử lý ảnh trong việc nhận dạng và trích xuất thông tin, dữ liệu trong các tờ hóa đơn bán hàng
Hình 3.10 Sơ đồ liên kết Objects, Signals và Slots (Trang 52)
Hình 4.2: Thủ thuật Kernel - Ứng dụng xử lý ảnh trong việc nhận dạng và trích xuất thông tin, dữ liệu trong các tờ hóa đơn bán hàng
Hình 4.2 Thủ thuật Kernel (Trang 57)
Hình 5.2: Lưu đồ giải thuật chương trình tách ký tự - Ứng dụng xử lý ảnh trong việc nhận dạng và trích xuất thông tin, dữ liệu trong các tờ hóa đơn bán hàng
Hình 5.2 Lưu đồ giải thuật chương trình tách ký tự (Trang 65)
Hình 5.3: Lưu đồ giải thuật chương trình huấn luyện - Ứng dụng xử lý ảnh trong việc nhận dạng và trích xuất thông tin, dữ liệu trong các tờ hóa đơn bán hàng
Hình 5.3 Lưu đồ giải thuật chương trình huấn luyện (Trang 66)
Hình 5.4: Lưu đồ giải thuật chương trình tách ký tự - Ứng dụng xử lý ảnh trong việc nhận dạng và trích xuất thông tin, dữ liệu trong các tờ hóa đơn bán hàng
Hình 5.4 Lưu đồ giải thuật chương trình tách ký tự (Trang 67)
Hình 5.5: Giao diện chương trình lựa chọn hình ảnh - Ứng dụng xử lý ảnh trong việc nhận dạng và trích xuất thông tin, dữ liệu trong các tờ hóa đơn bán hàng
Hình 5.5 Giao diện chương trình lựa chọn hình ảnh (Trang 68)
Hình 5.7: Hình ảnh trước khi xóa đường kẻ - Ứng dụng xử lý ảnh trong việc nhận dạng và trích xuất thông tin, dữ liệu trong các tờ hóa đơn bán hàng
Hình 5.7 Hình ảnh trước khi xóa đường kẻ (Trang 70)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

w