CHƯƠNG I: TỔNG QUAN VỀ TÀI LIỆU 1.1 Tổng quan về xử lý ảnh Xử lý ảnh (XLA) là đối tượng nghiên cứu của lĩnh vực thị giác máy, là quá trình biến đổi từ một ảnh ban đầu sang một ảnh mới với các đặc tính và tuân theo ý muốn của người sử dụng. Xử lý ảnh có thể gồm quá trình phân tích, phân lớp các đối tượng, làm tăng chất lượng, phân đoạn và tách cạnh, gán nhãn cho vùng hay quá trình biên dịch các thông tin hình ảnh của ảnh. Cũng như xử lý dữ liệu bằng đồ hoạ, xử lý ảnh số là một lĩnh vực của tin học ứng dụng. Xử lý dữ liệu bằng đồ họa đề cập đến những ảnh nhân tạo, các ảnh này được xem xét như là một cấu trúc dữ liệu và được tạo bởi các chương trình.
Xử lý ảnh số bao gồm các phương pháp và kỹ thuật biến đổi, để truyền tải hoặc mã hoá các ảnh tự nhiên. Mục đích của xử lý ảnh gồm: Biến đổi ảnh làm tăng chất lượng ảnh. Tự động nhận dạng ảnh, đoán nhận ảnh, đánh giá các nội dung của ảnh. Nhận biết và đánh giá các nội dung của ảnh là sự phân tích một hình ảnh thành những phần có ý nghĩa để phân biệt đối tượng này với đối tượng khác, dựa vào đó ta có thể mô tả cấu trúc của hình ảnh ban đầu.
Có thể liệt kê một số phương pháp nhận dạng cơ bản như nhận dạng ảnh của các đối tượng trên ảnh, tách cạnh, phân đoạn hình ảnh,. Kỹ thuật này được dùng nhiều trong y học (xử lý tế bào, nhiễm sắc thể), nhận dạng chữ trong văn bản Hình 1. Quá trình xử lý ảnh Ảnh có thể xem là tập hợp các điểm ảnh và mỗi điểm ảnh được xem như là đặc trưng cường độ sáng hay một dấu hiệu nào đó tại một vị trí nào đó của đối tượng trong không gian và nó có thể xem như một hàm n biến P(c,c1,c2,. Do đó, ảnh trong xử lý ảnh có thể xem như ảnh n chiều.
Các bước cơ bản trong một hệ thống xử lý ảnh 1.2 Những vấn đề trong xử lý ảnh a. Điểm ảnh (Picture Element) Là đơn vị cơ bản nhất để tạo nên một bước ảnh kỹ thuật số. Địa chỉ của điểm ảnh được xem như là một tọa độ (x,y) nào đó. Một bức ảnh kỹ thuật số, có thể được tạo ra bằng cách chụp hoặc bằng một phương pháp đồ họa nào khác, được tạo nên từ hàng ngàn hoặc hàng triệu pixel riêng lẻ.
Bức ảnh càng chứa nhiều pixel thì càng chi tiết. Một triệu pixel thì tương đương với 1 megapixel b. Phân loại ảnh Mức xám của điểm ảnh là cường độ sáng, gán bằng một giá trị tại điểm đó. Các mức ảnh xám thông thường: 16, 32, 64, 128, 256.
Mức được sử dụng thông dụng nhất là 265, tức là dùng 1byte để biểu diễn mức xám. Trong đó: Ảnh nhị phân: Là ảnh có 2 mức trắng và đen, chỉ có 2 giá trị 0 và 1 và chỉ sử dụng 1 bit dữ liệu trên 1 điểm ảnh Ảnh đen trắng: Là ảnh có hai màu đen, trắng (không chứa màu khác) với mức xám ở các điểm ảnh có thể khác nhau. Ảnh màu: Là ảnh kết hợp của 3 màu cơ bản lại với nhau để tạo ra một thế giới màu sinh động. Người ta thường dùng 3byte để mô tả mức màu, tức là có khoảng 16,7 triệu mức màu.
Giải thuật Background Subtraction- Trừ nền Giải thuật Background Subtraction (tạm dịch: trừ nền) là giải thuật mà ta sẽ cần có 2 ảnh, một ảnh nền và một ảnh có đối tượng, ta lấy 2 ảnh đó để trừ nhau. Mục đích là bằng cách loại bỏ nền ta sẽ giữ lại được đối tượng có trên ảnh. Giải thuật này phù hợp cho các trường hợp xử lý ảnh khi đã biết trước, hoặc tính toán được ảnh nền (background) từ camera. Chi phí chạy giải thuật nhỏ nên thường được áp dụng trên các bo nhúng (trong bài này là Raspberry Pi4).
Cách làm thực ra chỉ cần một bước duy nhất là lấy 2 ảnh trừ nhau, từ đó chuẩn hóa để tạo mặt nạ cho foreground. Nhưng e có thực hiện bổ sung thêm một vài bước để có thể trích xuất đối tượng được kết quả tốt hơn. Cách làm như sau: Làm mờ ảnh background lẫn foreground bằng bộ lọc làm mờ Gaussian. Bước tiếp theo chính là linh hồn tinh túy của Background Subtraction, đó là lấy ảnh 1 trừ ảnh 2.
Do ta vừa lấy 2 ảnh trừ nhau mà mỗi ảnh các pixel có giá trị nằm trong đoạn 0->255. Vậy khi ta trừ nhau ảnh kết quả các pixel sẽ không còn nằm trong đoạn 0->255 nữa, nó sẽ nằm trong đoạn -255->255. Sẽ có nhiều cách để chuẩn hóa nhằm đưa mặt nạ này về giá trị chuẩn là 0->1 hoặc 0->255. Ở đây em dùng giá trị tuyệt đối.
Do ảnh foreground và background đưa vào đều là ảnh màu, chúng có đến 3 kênh màu. Vì vậy muốn còn 1 kênh ta lấy trung bình các giá trị của 3 kênh màu này để còn giữ duy nhất một kênh cho mặt nạ của mình. Miền giá trị các pixel trên mặt nạ là 0->255 (cho dễ visualize in thành ảnh). Bước tiếp theo không kém phần quan trọng đó là nhị phân hóa cái mặt nạ ta vừa có được.
Bản chất của mỗi pixel trên mặt nạ thể hiện độ khác biệt trên từng pixel tương giữa ảnh background và ảnh foreground! Nếu chúng khác biệt càng lớn thì có khả năng pixel tại đấy có đối tượng hoặc biến đổi về mức sáng. Do đó ta cần phải tự nhặt cho mình một siêu tham số để nhị phân hóa ảnh. Gía trị của siêu tham số này có ảnh hưởng đến chất lượng kết quả ảnh đầu ra cuối cùng. Ảnh sau khi đã được xóa nền 1.3 Tổng quan về trí tuệ nhân tạo 1.1 Giới thiệu về trí tuệ nhân tạo Trong khoa học máy tính, trí tuệ nhân tạo hay AI ( Artificial Intelligence), đôi khi được gọi là trí thông minh nhân tạo, là trí thông minh được thể hiện bằng máy móc, trái ngược với trí thông minh tự nhiên được con người thể hiện.
Thông thường, thuật ngữ "trí tuệ nhân tạo" thường được sử dụng để mô tả các máy móc (hoặc máy tính) bắt chước các chức năng "nhận thức" mà con người liên kết với tâm trí con người, như "học tập" và "giải quyết vấn đề". Alan Turing là một nhà toán học, logic học và mật mã học người Anh, người được cho là cha đẻ của ngành khoa học máy tính và trí tuệ nhân tạo. Ông được biết đến rộng rãi với vai trò là người giải được mật mã Enigma, thứ mật mã được quân Phát Xít Đức dùng để liên lạc trong Chiến tranh Thế giới thứ, tác giả của Máy Turing và Phép thử Turing, những cống hiến quan trọng trong ngành Trí tuệ nhân tạo. Vào năm 1955, John McCarthy, một nhà khoa học máy tính và khoa học nhận thức của Mỹ đã lần đầu tiên đưa ra khái niệm Trí tuệ nhân tạo, mà theo đó có nghĩa là bộ môn khoa học và kĩ thuật chế tạo máy thông minh.
Một năm sau đó, ông đứng ra tổ chức Hội nghị Dartmouth, hội nghị đầu tiên về chủ đề này. 7 Các chuyên gia đến từ nhiều trường đại học và công ty khác nhau như Carnegie Mellon University, Massachusetts Institute of Technology và IBM đã tham gia hội nghị. Từ đó, khái niệm “Trí tuệ nhân tạo” được sử dụng rộng rãi. AI có thể nói là gần như bộ não của con người, con người làm được gì, hiểu gì thì khi ứng dụng AI vào các thiết bị hay bộ máy nào đó họ cũng làm được như con người chúng ta.
Trí tuệ nhân tạo khác với việc lập trình logic trong các ngôn ngữ lập trình là ở việc ứng dụng các hệ thống học máy (machine learning) để mô phỏng trí tuệ của con người trong các xử lý mà con người làm tốt hơn máy tính. Cụ thể, trí tuệ nhân tạo giúp máy tính có được những trí tuệ của con người như: biết suy nghĩ và lập luận để giải quyết vấn đề, biết giao tiếp do hiểu ngôn ngữ, tiếng nói, biết học và tự thích nghi,… Tuy rằng trí thông minh nhân tạo có nghĩa rộng như là trí thông minh trong các tác phẩm khoa học viễn tưởng, nó là một trong những ngành trọng yếu của tin học. Trí thông minh nhân tạo liên quan đến cách cư xử, sự học hỏi và khả năng thích ứng thông minh của máy móc. Công nghệ AI được chia làm 4 loại chính: Loại 1: Công nghệ AI phản ứng.
Công nghệ AI phản ứng có khả năng phân tích những động thái khả thi nhất của chính mình và của đối thủ, từ đó, đưa ra được giải pháp tối ưu nhất. Một ví dụ điển hình của công nghệ AI phản ứng là Deep Blue. Đây là một chương trình chơi cờ vua tự động, được tạo ra bởi IBM, với khả năng xác định các nước cờ đồng thời dự đoán những bước đi tiếp theo của đối thủ. Thông qua đó, Deep Blue đưa ra những nước đi thích hợp nhất.
Loại 2: Công nghệ AI với bộ nhớ hạn chế Đặc điểm của công nghệ AI với bộ nhớ hạn chế là khả năng sử dụng những kinh nghiệm trong quá khứ để đưa ra những quyết định trong tương lai. 8 Công nghệ AI này thường kết hợp với cảm biến môi trường xung quanh nhằm mục đích dự đoán những trường hợp có thể xảy ra và đưa ra quyết định tốt nhất cho thiết bị. Loại 3: Lý thuyết trí tuệ nhân tạo Công nghệ AI này có thể học hỏi cũng như tự suy nghĩ, sau đó áp dụng những gì học được để thực hiện một việc cụ thể. Hiện nay, công nghệ AI này vẫn chưa trở thành một phương án khả thi.
Loại 4: Tự nhận thức Công nghệ AI này có khả năng tự nhận thức về bản thân, có ý thức và hành xử như con người. Thậm chí, chúng còn có thể bộc lộ cảm xúc cũng như hiểu được những cảm xúc của con người. Đây được xem là bước phát triển cao nhất của công nghệ AI và đến thời điểm hiện tại, công nghệ này vẫn chưa khả thi.2 Tìm hiểu về Máy học ( Machine Learning ) Hình 1.4 Machine Learning Machine Learning là một lĩnh vực con của AI. Nguyên tắc cốt lõi của Machine Learning là các máy tiếp nhận dữ liệu và tự học.
Machine learning là một phương pháp phân tích dữ liệu mà sẽ tự động hóa việc xây dựng mô hình phân tích. Sử dụng các thuật toán lặp để học từ dữ liệu, machine learning cho 9 phép máy tính tìm thấy những thông tin giá trị ẩn sâu mà không được lập trình một cách rõ ràng nơi để tìm.