Cải tiến thuật toán RANSAC để phân biệt các chữ số trong hình ảnh nhiễu sử dụng Python

13/04/2024

TN&MTTóm tắt: Trong bài báo này, nhóm tác giả đề xuất cải tiến thuật toán RANSAC để phân biệt các chữ số trong hình ảnh bị nhiễu sử dụng ngôn ngữ lập trình Python. Thuật toán cải tiến này cho phép đáp ứng một cách linh hoạt và mềm dẻo hơn so với các thuật toán trước đây. 

Ưu điểm của thuật toán RANSAC là độ bền vững, nói cách khác là RANSAC có thể tìm ra mô hình thích hợp với độ chính xác rất cao trong bộ dữ liệu thu thập được mặc dù bộ dữ liệu đó chứa nhiều điểm ngoài. Nhược điểm của RANSAC là ở chỗ không có giới hạn về thời gian tính toán các thông số mô hình. Khi số lần lặp lại bị giới hạn, giải thuật có thể không đưa ra được mô hình tối ưu. Do đó, khi thực hiện RANSAC, phải cân bằng giữa thời gian tính toán và chất lượng mô hình ước lượng được. Với số lần lặp lại càng tăng, xác suất để RANSAC đưa ra các mô hình tốt hơn cũng tăng. Một nhược điểm khác của RANSAC là giải thuật chỉ có thể ước lượng được một mô hình với mỗi bộ dữ liệu đầu vào.

Giới thiệu

Thuật toán RANSAC là thuật toán lặp với mục đích ước lượng các thông số của một mô hình toán học từ một bộ dữ liệu thu thập được bao gồm cả các điểm trong và ngoài. Các điểm trong là những điểm trong bộ dữ liệu phù hợp (hay nằm trong) mô hình toán học đó, còn điểm ngoài là những điểm không nằm trong mô hình.

Thuật toán RANSAC được công bố lần đầu bởi Fischler và Bolles, với nguyên tắc ước lượng các thông số bằng cách chọn ngẫu nhiên các mẫu trong dữ liệu thu thập được. Với tập dữ liệu đầu vào bao gồm cả các điểm trong và ngoài mô hình, thuật toán RANSAC sử dụng nhiều lần thử để tìm ra mô hình có kết quả tốt nhất.

Quá trình thực hiện của RANSAC như sau: Chọn một bộ nhỏ nhất các điểm mẫu bất kì từ dữ liệu đầu vào, giả thiết các điểm này đều là điểm trong; tính toán các thông số của mô hình chứa các điểm đó; kiểm tra tất cả các điểm còn lại trong dữ liệu đầu vào xem chúng nằm trong hay nằm ngoài mô hình dựa vào mô hình vừa tính được và sai số cho phép; mô hình vừa xấp xỉ là tốt nếu số điểm trong thỏa mãn yêu cầu; quá trình này được lặp lại để phát hiện các mô hình tốt hơn; các tham số tin cậy quan trọng trong việc thực hiện thuật toán RANSAC là ngưỡng sai số cho phép và số lần lặp lại N. Ngưỡng sai số cho phép là giá trị khoảng cách lớn nhất từ một điểm đến mô hình để điểm đó còn được coi là điểm trong. Việc xác định với từng trường hợp cụ thể thường dựa trên kinh nghiệm và ước lượng thực tế; số lần lặp lại N cũng có thể được ước lượng hợp lý để cân bằng giữa kết quả và thời gian tính toán. Số lần lặp N có thể được tính bằng phương pháp thống kê.

Giả sử p là xác suất thành công của thuật toán (thông thường p = 0.99). Gọi u là xác suất để một điểm trong tập dữ liệu thu được là điểm trong, v là xác suất để điểm đó là điểm ngoài.

Gọi m là số điểm trong để mô hình thu được là tốt, khi đó xác suất để thu được một mô hình tốt.

Trong mỗi lần thử, thuật toán thất bại khi không tìm được mô hình nào đủ tốt, tức là không có mô hình nào có đủ m điểm trong.

Xác suất để điều này xảy ra là 1-u^m

Sau N lần lặp lại, xác suất thất bại là: (1-u^m)^n=1-p

Qua đó, ta có thể tính được số lần lặp lại tối ưu với xác suất thành công:

Cải tiến thuật toán RANSAC để phân biệt các chữ số trong hình ảnh nhiễu sử dụng Python

Phần còn lại của bài báo được trình bày như sau. Trong phần II chúng tôi trình bày cơ sở toán học và thuật toán cải tiến; Phần III: Thực nghiệm. Phần VI Kết luận. 

Cơ sở toán học

RANSAC sử dụng phương pháp chọn tập con ngẫu nhiên lặp lại. Giả sử dữ liệu của chúng ta bao gồm các điểm dữ liệu trong không gian (bao gồm các điểm trong và điểm ngoại lai - outliers chưa được xác định) và tập hợp xác điểm trong có thể xấp xỉ thành một mô hình toán học (vd trong trường hợp này là 1 đường thẳng trong không gian 2 chiều), và những điểm ngoại lai là những điểm không phù hợp với mô hình này. RANSAC giả định rằng luôn có 1 tập hợp nhỏ các điểm trong, sao cho tồn tại một mô hình toán học thỏa mãn được tập hợp điểm dữ liệu đó với 1 sai số cho phép. 

Đầu vào của thuật toán RANSAC là một tập hợp các điểm dữ liệu, một cách để điều chỉnh một số loại mô hình với các quan sát và một số tham số tin cậy. RANSAC đạt được mục tiêu của mình bằng cách lặp lại các bước sau: Chọn một tập hợp con ngẫu nhiên của dữ liệu gốc. Gọi tập hợp con này là tập hợp con giả định; một mô hình được xây dựng từ tập hợp giả định; mô hình này sẽ kiểm tra tất cả các điểm dữ liệu khác. Những điểm phù hợp tốt với mô hình với một sai số nhất định, được coi là một phần của tập hợp đồng thuận; một mô hình là tốt nếu có đủ nhiều điểm được xếp vào tập hợp đồng thuận. Sau đó, mô hình có thể được cải thiện bằng cách sử dụng tất cả các điểm dữ liệu trong tập hợp đồng thuận.

Quy trình này được lặp đi lặp lại một số lần nhất định, mỗi lần tạo ra một mô hình, mô hình này sẽ có 2 trường hợp: Bị từ chối vì có quá ít điểm đồng thuận hoặc có nhiều điểm đồng thuận hơn so với các mô hình trước đó.

Để đạt được xác suất thành công là p thì chúng ta sẽ cần số vòng lặp là:

Cải tiến thuật toán RANSAC để phân biệt các chữ số trong hình ảnh nhiễu sử dụng Python

Trong đó: s là kích thước tập con và epsilon là tỉ lệ nhiễu trong dữ liệu.

Ý tưởng cải tiến thuật toán RANSAC như sau: Từ tập dữ liệu ban đầu, ta sẽ có hai loại dữ liệu nhiễu và không nhiễu (outlier và inlier), vì thế ta phải đi tính toán để tìm ra mô hình tốt nhất cho tập dữ liệu. Việc tính toán và chọn ra mô hình tốt nhất sẽ được lặp đi lặp lại k lần, với giá trị k được chọn sao cho đủ lớn để đảm báo xác suất p (thường rơi vào giá trị 0.99) của tập dữ liệu mẫu ngẫu nhiên không chứa dữ liệu nhiễu.

Với ma trận Homography được tính từ bốn cặp điểm ngẫu nhiên, ta có d là khoảng cách đo mức độ gần nhau của các cắp điểm đã được so sánh đối chiếu. Với cặp điểm nổi bật tương đồng và 
là khoảng cách của hai vector, ta có công thức khoảng cách như sau:

Cải tiến thuật toán RANSAC để phân biệt các chữ số trong hình ảnh nhiễu sử dụng Python

Thuật toán chi tiết:

Khởi tạo số vòng lặp k, ngưỡng distance, maxinlier và p = 0.

For (i = 1: k), thực hiện các bước sau:

Bước 1: Chọn 4 cặp điểm tương đồng ngẫu nhiên.

Bước 2: Kiểm tra xem các điểm có nằm trên cùng một đường thẳng hay không.

Bước 3: Tính ma trận Homography H từ 4 điểm sử dụng phương pháp DLT chuẩn hóa.

Bước 4: Tính khoảng cách d của các cặp điểm nổi bật tương đồng.

Bước 5: Tính số lượng m các cặp điểm không ngẫu nhiên (inlier) thỏa điều kiện: di < distance.

Bước 6: Nếu m > maxinlier thì maxinlier = m, ma trận Homography

H = Hcurr

Tiếp tục tính lại ma trận H cho tất cả các cặp điểm tương đồng được coi là không nhiễu (inlier) bằng phương pháp DLT.

Trong toán học, Homography là sự dịch chuyển sử dụng phép chiếu hình học, hay nói cách khác nó là sự kết hợp của cặp điểm trong phép chiếu phối cảnh. Ảnh thực trong không gian ba chiều có thể biến đổi về không gian ảnh bằng phép chiếu thông qua ma trận biến đổi Homography hay còn gọi là ma trận H. Các phép chiếu biến đổi thông qua ma trận Homography không đảm bảo về kích thước và góc của vật được chiếu nhưng lại đảm bảo về tỷ lệ.

Trong lĩnh vực thị giác máy, Homography là một ánh xạ từ mặt phẳng đối tượng đến mặt phẳng ảnh. Ma trận homography thường có liên quan đến các công việc xử lý giữa hai ảnh bất ký và có ứng dụng rất sộng rãi trong các công tác sửa ảnh, ghép ảnh, tính toán sự chuyển động, xoay hay dịch chuyển giữa hai ảnh.

Ta có công thức sau: HX = sX’

Trong đó:

s: là hằng số tỉ lệ của phép chiếu và khác 0.

X’: là kết quả của phép ánh xạ.

X: là đối tượng ảnh được ánh xạ.

H: là ma trận Homography, là một ma trận khả nghịch.

Vì H là một ma trận khả nghịch, cho nên, trong trường hợp muốn tái tạo ảnh X từ X’, ta chỉ cần xác định được ma trận Homography.

Để tính ma trận Homography từ các cặp điểm tương ứng, người ta dùng phương pháp DLT (Direct Linear Transform), gồm có 2 bước: Đầu tiên, từ các cặp điểm tương ứng, ta chuyển về dạng ma trận Aih = 0. Sau đó, áp dụng phân rã SVD để tính ma trận H.

Phương pháp DLT với các điểm nổi bật được tìm thấy từ thuật toán Harris:

Trong tọa độ không đồng nhất, ta có công thức:

Cải tiến thuật toán RANSAC để phân biệt các chữ số trong hình ảnh nhiễu sử dụng Python

Lần lượt chia dòng thứ nhất của công thức trên cho dòng thứ ba và dòng thứ hai cho dòng thứ ba, ta có: 

Cải tiến thuật toán RANSAC để phân biệt các chữ số trong hình ảnh nhiễu sử dụng Python

Viết dưới dạng ma trận ta có:

Cải tiến thuật toán RANSAC để phân biệt các chữ số trong hình ảnh nhiễu sử dụng Python

Với mỗi cặp điểm tương ứng, ta có hai biểu thức. Mặt khác, do ma trận là ma trận có bậc tự do (D.O.F) là 8 nên chỉ cần 4 cặp điểm tương ứng là ta có thể xác định được nó.

Áp dụng công thức phân rã SVD cho ma trận [A] ta có: Cải tiến thuật toán RANSAC để phân biệt các chữ số trong hình ảnh nhiễu sử dụng Python

Với si là các giá trị đơn và được sắp xếp nhỏ dần, nên s9 là giá trị nhỏ nhất. Khi đó, giá trị của hi bằng giá trị cuối cùng của cột vi.

Theo lý thuyết, với 4 cặp điểm tương ứng sẽ tìm được một ma trận H với D.O.F bằng 8. Tuy nhiên, trong thực tế các ảnh đầu vào có thể có gốc tọa độ ở góc trái của ảnh, cũng có thể gốc tọa độ nằm ở tâm ảnh. Nếu để tình trạng như vậy sẽ ảnh hưởng đến các kết quả biến đổi về sau như khi nhân ảnh với một hệ số hay các biến đổi tương tự, affin. Do vậy, Hartley và Zisserman đã đưa ra bước chuẩn hóa để đảm bảo rằng kết quả của thuật toán sẽ cho ra kết quả chính xác. Các ảnh cần phải chuẩn hóa bằng phép biến đổi quay và dịch chuyển.

Thực nghiệm

Dữ liệu đầu vào

Nhóm tác giả đã dưa ba hình ảnh có cấu trúc giống nhau. Ảnh thứ 1 và ảnh thứ 3 là ảnh thể hiện đầy đủ và rõ các con số trong CMTND, còn ảnh thứ 2 là thể hiện sự nhiễu các con số.

Ảnh 1

Cải tiến thuật toán RANSAC để phân biệt các chữ số trong hình ảnh nhiễu sử dụng Python

Ảnh 2

Cải tiến thuật toán RANSAC để phân biệt các chữ số trong hình ảnh nhiễu sử dụng Python

Ảnh 3

Cải tiến thuật toán RANSAC để phân biệt các chữ số trong hình ảnh nhiễu sử dụng Python

Code Python mô tả thuật toán RANSAC cải tiến

import pytesseract

from PIL import Image

import tkinter as tk

from tkinter import filedialog

pytesseract.pytesseract.tesseract_cmd = r’C:\Program Files\Tesseract-OCR\tesseract.exe’

# Hàm để trích xuất ID card từ ảnh và cập nhật giao diện

def trich_xuat():

 duong_dan = filedialog.askopenfilename()

 if duong_dan:

 image = Image.open(duong_dan)

 text = pytesseract.image_to_string(image)

 id_card_number = Tim_IdCard(text)

 if id_card_number:

 nhan_id.config(text=”Số căn cước công dân: “ + id_card_number)

 else:

 nhan_id.config(text=”Không tìm thấy số nào trên thẻ căn cước công dân.”)

# Hàm để tìm chuỗi số liên tiếp dài nhất trong văn bản

def Tim_IdCard(text):

 current_ID = “”

 longest_ID = “”

 for char in text:

 if char.isdigit():

 current_ID += char

 else:

 if len(current_ID) > len(longest_ID):

 longest_ID = current_ID

 current_ID = “”

Kết quả thực nghiệm

Kết quả thực nghiệm dựa trên Python với dữ liệu đầu vào và thu lại kết quả sau:

Kết quả ảnh số 1:

Cải tiến thuật toán RANSAC để phân biệt các chữ số trong hình ảnh nhiễu sử dụng Python

Kết quả ảnh số 2:

Cải tiến thuật toán RANSAC để phân biệt các chữ số trong hình ảnh nhiễu sử dụng Python

Kết quả ảnh số 3:

Cải tiến thuật toán RANSAC để phân biệt các chữ số trong hình ảnh nhiễu sử dụng Python

Kết luận

Trong bài báo này, nhóm tác giả đề xuất cải tiến thuật toán RANSAC, đồng thời, cũng chứng minh được tính đúng đắn và kết quả thực nghiệm của thuật toán. Hướng nghiên cứu tiếp theo sẽ là áp dụng thuật toán này cho các kiểu nhận dạng khác nhau như nhận dạng hình khuôn mặt dựa trên bài toán logarith rời rạc, đường cong elliptic, đồng thời, chúng tôi sẽ triển khai thực nghiệm trên nhiều hình ảnh khác nhau cùng 1 lúc. Bằng việc cho phép các dữ liệu và các thành phần có thể thay đổi tùy ý và không phụ thuộc nhau, thuật toán này có khả năng ứng dụng cao, đáp ứng các nhu cầu phong phú trong thực tiễn. 

Tài liệu tham khảo

1. Nguyễn Đức Toàn, Đặng Minh Tuấn “Về một lược đồ chữ ký số tập thể ủy nhiệm dựa trên hệ mật ID- Based”, Hội thảo Khoa học và công nghệ CEST, tr193- 198, NXB Thông tin và Truyền thông, ISBN 978- 604- 80- 2642- 4, 2017;

2. Đặng Minh Tuấn, “Lược đồ chữ ký số tập thể đa thành phần dựa trên cặp song tuyến tính”, Tạp chí nghiên cứu khoa học và công nghệ quân sự, Đặc san 5- 2012, pp. 10- 5. 2012;

3. Adrian Rosebrock, “Image Difference with OpenCV and Python”, June 19, 2017;

4. Deepanshu Tyagi, “Introduction to ORB (Oriented FAST and Rotated BRIEF)”, Jan 1, 2019.

LÊ PHÚ HƯNG, NGUYỄN VĂN SUYÊN

Khoa Công nghệ thông tin, Trường Đại học TN&MT Hà Nội

Nguồn: Tạp chí Tài nguyên và Môi trường số 3 năm 2024

Where you can buy Louis Vuitton Replica :

hermes pas cher louis vuitton neverfull replica louis vuitton scarf replica gucci backpack replica louis vuitton outlet nederland dior tasche replica replica chanel wallet louis vuitton duffle bag replica Replica chanel replica chanel wallet louis vuitton messenger bag replica dior tasche replica fake Louis Vuitton shoes replica gucci shoes van cleef replica chanel imitazioni replica celine Louis Vuitton Taschen replica hermes pas cher louis vuitton messenger bag replica LOUIS VUITTON sunglasses replica replica cartier love bracelet replica louis vuitton m40780 louis vuitton imitate kaufen fake louis vuitton tas kopen fake louis vuitton wallet louis vuitton scarf replica chanel imitazioni perfette replica louboutin replica celine replica Louis Vuitton shoes goyard replica cartier love imitazione fake Louis Vuitton shoes gucci scarf replica borse louis vuitton replica replica Louis Vuitton supreme Backpack Louis Vuitton replica replique Sac Louis Vuitton chanel replica louis vuitton keepall replica zaino louis vuitton falso replica Jordan 1 cartier love ring replica dior replica chanel replica fake louis vuitton shoes louis vuitton shoes replica replica louis vuitton wallet imitazioni louis vuitton

Tin tức

Toàn văn báo cáo kinh tế xã hội và ngân sách nhà nước của Chính phủ tại Kỳ họp thứ 7, Quốc hội khóa XV

Cử tri, Nhân dân trong và ngoài nước đánh giá cao ngành Tài nguyên và Môi trường trong triển khai công tác bảo vệ môi trường, phòng chống thiên tai

Khai mạc trọng thể Kỳ họp thứ 7, Quốc hội khóa XV

Thủ tướng phát lệnh khởi công mở rộng nhà ga T2 sân bay Nội Bài

Tài nguyên

Thách thức trong hoạt động đầu tư vào lĩnh vực khai khoáng

Ứng dụng khoa học và công nghệ đảm bảo an ninh nguồn nước

Một số quy định mới của Luật Đất đai năm 2024 về cấp “sổ đỏ” có lợi cho người dân   

Ban hành Thông tư Quy định chi tiết thi hành một số điều của Luật Tài nguyên nước

Môi trường

Kỷ niệm Ngày quốc tế Đa dạng sinh học năm 2024

Hành động nhỏ, giá trị lớn để bảo tồn đa dạng sinh học của Trái Đất trước khi quá muộn?

Hưởng ứng Ngày Quốc tế đa dạng sinh học (22/5): Nỗ lực bảo tồn đa dạng sinh học

Thanh Hóa: Chủ động ứng phó thiên tai, biến đổi khí hậu

Video

Kỷ niệm 20 năm Tạp chí Tài nguyên và Môi trường và ra mắt kỷ ra mắt chuyên trang tiếng Anh

Tình yêu Môi trường

Thế giới lo sợ vì biến đổi khí hậu đã “Ngoài tầm kiểm soát” và kêu gọi hành động toàn cầu

Dự án Luật địa chất và khoáng sản sửa đổi khắc phục hạn chế để phát huy nguồn lực khoáng sản

Khoa học

Cần có nhiều chính sách ưu tiên cho các nhà khoa học nữ

Hệ thống mạng dự phòng đăng ký đất đai Đà Nẵng bị tấn công

Chuẩn bị diễn ra Triển lãm Quốc tế Điện tử & Thiết bị Thông minh Việt Nam (IEAE)

Thủ tướng Phạm Minh Chính dự Lễ chào mừng Ngày khoa học và công nghệ Việt Nam

Chính sách

Thành phố Thái Nguyên nói gì về tình trạng ô nhiễm quanh Khu xử lý chất thải rắn Đá Mài?

Hà Nội: Xử lý dứt điểm khai thác cát trái phép tại khu vực giáp ranh

Thanh Hóa: Xử lý nghiêm vi phạm tại các điểm thu mua gỗ rừng tự phát

Thái Bình: Tăng cường công tác quản lý Nhà nước đối với hoạt động khai thác tài nguyên, khoáng sản trên địa bàn

Phát triển

Quảng Trị: Đầu tư dự án Khu liên hợp xử lý chất thải 131 tỷ đồng

Di sản văn hóa thế giới Thành Nhà Hồ công trình kiến trúc kiệt tác của nhân loại

Khai mạc Đại hội Hội chiếu sáng Việt Nam lần thứ V, nhiệm kỳ 2024-2029

Chuyển đổi số: Chìa khóa phát triển nông nghiệp xanh, bền vững

Diễn dàn

Bắc Kạn: Đất đá sạt lở vào nhà dân, 3 người bị vùi lấp

Khẩn trương khắc phục sạt lở hầm đường sắt tại thị trấn Chí Thạnh, Phú Yên

Thời tiết ngày 22/5: Hà Nội ngày nắng, từ Thanh Hóa vào Nam Bộ mưa to, có nơi mưa rất to

Thúc đẩy tài chính bền vững ở Việt Nam thông qua trái phiếu xanh