Chương 1 trình bày tổng quan về đo lường trong y tế nói chung và ghi đo chuyển động nói riêng. Tiếp theo, nội dung liên quan tới các phương pháp ghi đo chuyển động được trình bày và làm rõ các vấn đề còn tồn tại. Đây là cơ sở để học viên xác định đối tượng và phạm vi nghiên cứu. • Chương 2 trình bày các lý thuyết cơ bản về phương pháp ghi đo chuyển động sử dụng thị giác máy tính bao gồm kỹ thuật xử lý ảnh và hệ thống phần cứng đi kèm.
Đây là cơ sở lý thuyết quan trọng để học viên khảo sát và đề xuất giải pháp chi tiết trong chương tiếp theo. • Chương 3 trình bày các khảo sát của học viên về kỹ thuật xử lý ảnh, giao thức truyền dữ liệu, và một số hệ camera nhúng. Các nghiên cứu liên quan tới đề 13 tài đã được phân tích và làm rõ các vấn đề còn tồn tại, từ đó làm cơ sở đề xuất giải pháp chi tiết. • Chương 4 trình bày các bước cấu hình hệ thống và xây dựng thuật toán dựa trên giải pháp chi tiết đã được đề xuất.
• Chương 5 trình bày chi tiết về các thiết bị phần được cứng sử dụng, hướng dẫn cài đặt phần mềm trong các thí nghiệm, các kết quả ghi đo đã đạt được, tính toán sai số, bàn luận và đưa ra hướng cải thiện và phát triển hệ thống. LÝ THUYẾT CĂN BẢN VỀ GHI ĐO CHUYỂN ĐỘNG SỬ DỤNG THỊ GIÁC MÁY TÍNH 2.1 Kỹ thuật xử lý ảnh số 2.1 Khái niệm thị giác máy tính và xử lý ảnh số Thị giác máy tính là một lĩnh vực bao gồm các phương pháp thu nhận, xử lý ảnh kỹ thuật số, ghi đo và nhận dạng các hình ảnh. Một trong những vấn đề được quan tâm nhất trong thị giác máy tính là các kỹ thuật xử lý ảnh số. Xử lý ảnh số là một lĩnh vực mang tính khoa học và công nghệ.
Đây là một ngành khoa học mới hơn so với nhiều ngành khoa học khác nhưng có tốc độ phát triển rất nhanh. Đây cũng là lĩnh vực thu hút nhiều sự quan tâm của các nhà nghiên cứu khoa học để phát triển các ứng dụng trong thực tế. Ả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ủa 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(c1, c2,. Do đó, ảnh trong xử lý ảnh có thể xem như ảnh n chiều.
Quá trình xử lý ảnh là quá trình thao tác ảnh đầu vào nhằm cho ra kết quả mong muốn. Xử lý ảnh nhằm hai mục đích chính là: biến đổi và làm tăng chất lượng ảnh; nhận dạng các đối tượng trong ảnh. Một số các thao tác xử lý ảnh thường được sử dụng hiện nay như tăng cường chất lượng ảnh, phân đoạn hình ảnh dựa trên ngưỡng, phân đoạn hình ảnh bằng phương pháp dò cạnh, phân đoạn hình ảnh bằng thuật toán K-mean. Tăng cường chất lượng ảnh là sử dụng các toán tử điểm, các toán tử cục bộ - lọc số trong miền không gian, hoặc các thao tác xử lý trên miền tần số để thực hiện các mục đích như thay đổi mức xám của ảnh, thay đổi độ tương phản, giảm nhiễu, làm trơn ảnh.
Phân đoạn ảnh là việc phân tách ảnh ban đầu thành các nhóm đối tượng để thuận lợi trong việc ghi đo ảnh, nhận dạng các đối tượng. Phân đoạn hình ảnh dựa trên ngưỡng là việc sử dụng một mức ngưỡng cụ thể để biến đổi ảnh đa mức thành ảnh nhị phân. Phân đoạn ảnh bằng phương pháp dò cạnh là việc sử dụng các toán tử, các thuật toán dò cạnh để tìm ra đường viền của các đối tượng trong ảnh. Phân đoạn ảnh bằng thuật toán K-mean là việc áp dụng thuật toán này để tìm ra các nhóm điểm ảnh có cùng một đặc điểm chung, ví dụ như nhóm các điểm ảnh có cùng khoảng cách Euclide tới tâm.2 Thư viện xử lý ảnh số Thư viện OpenCV (OpenSource Computer Vision) là thư viện mã nguồn mở được phát triển bởi Intel bắt đầu từ năm 2000.
OpenCV là một trong những công cụ hoàn hảo để phát triển thị giác máy tính (computer vision) và học máy (machine learning), đặc biệt là các ứng dụng liên quan tới thời gian thực. Thư viện này được viết bằng ngôn ngữ lập trình C/C++, có thể thực hiện trên các hệ điều hành Windows, Linux, MacOS, Android, iOS. Thư viện OpenCV có khoảng hơn 500 chức năng, được chia thành các mô đun tương ứng với từng chức năng. Một số mô đun chính trong thư viện OpenCV bao gồm: • core: chứa các cấu trúc, các lớp cơ bản mà OpenCV sử dụng để lưu trữ và xử lý ảnh như: Mat, Scale, Point, Vec, v.v; và các phương thức cơ bản để sử dụng cho các mô đun khác.
• imgproc: là mô đun xử lý ảnh của OpenCV, bao gồm các bộ lọc tuyến tính và không tuyến tính, các phép biến đổi hình học, chuyển đổi không gian màu, và các thuật toán liên quan đến biểu đồ (histogram) của ảnh. • highgui: cho phép tương tác với người sử dụng trên user interface (UI) như hiển thị hình ảnh, hiển thị video. • feature2d: có chức năng tìm kiếm các đặc trưng trong ảnh, thực thi các thuật toán trích chọn đặc trưng của ảnh như PCA. • video: được sử dụng để ghi đo dữ liệu video, bao gồm ước lượng chuyển động, trừ nền, và các thuật toán theo dõi đối tượng.
• objdetect: được sử dụng để phát hiện các đối tượng như khuôn mặt, đôi mắt, con người, ô tô trong hình ảnh. Các thuật toán được sử dụng trong module này là Haar‐like Features. • ml: chứa các thuật toán về học máy, phục vụ cho các bài toán phân lớp và các bài toán phân cụm. Một số thuật toán được sử dụng trong module này là SVM (Support Vector Machine), ANN.
Thư viện OpenCV đã và đang được sử dụng để xây dựng các ứng dụng trong nhiều lĩnh vực khác nhau. Trong chế tạo người máy, thư viện OpenCV được sử dụng để điều hướng, tránh chướng ngại vật, và tương tác giữa người và 16 máy. Trong y học, thư viện OpenCV được sử dụng để phân loại và phát hiện các tế bào ung thư, phân đoạn 2D, 3D, tái tạo hình ảnh 3D của các cơ quan. Trong lĩnh vực tự động hóa công nghiệp, thư viện OpenCV được sử dụng để xây dựng các ứng dụng nhận dạng sản phẩm lỗi, kiểm tra mã vạch, sắp xếp sản phẩm.
Trong lĩnh vực bảo mật và an toàn thông tin, thư viện OpenCV được sử dụng rộng rãi trong các lĩnh vực giám sát bằng máy ảnh, xử lý hình ảnh sinh trắc học. Trong ghi đo dáng đi, thư viện được sử dụng phổ biến là OpenPose. OpenPose là hệ thống theo thời gian thực đầu tiên có thể cùng phát hiện các điểm chính trên cơ thể người, bàn tay, khuôn mặt và bàn chân (trong tổng số 135 điểm chính) trên một hình ảnh. Nó được đề xuất bởi các nhà nghiên cứu tại Đại học Carnegie Mellon.
Thư viện này được phát hành dưới dạng mã Python, triển khai C ++ và Plugin Unity. Một số tính năng nổi bật của thư viện này bao gồm: • Phát hiện các điểm chính của nhiều cơ thể trong hệ tọa độ hai chiều • Phát hiện các điểm chính của một cơ thể trong hệ tọa độ ba chiều • Hiệu chỉnh máy ảnh 2.3 Một số phương pháp lọc nhiễu trong xử lý ảnh 2. Sử dụng bộ lọc Gaussian Hàm Gauss là một hàm phổ biến được ứng dụng trong nhiều lĩnh vực như thống kê, xử lý tín hiệu, xử lý ảnh. Trong không gian một chiều, hàm Gauss được viết dưới dạng: (𝑎𝑎−𝑏𝑏)2 𝑔𝑔(𝑥𝑥) = 𝑎𝑎𝑎𝑎 2𝑐𝑐 2 PT 2.1 Trong đó, a, b, và c là các hằng số thực không âm; e là hằng số Euler.
Đồ thị của hàm Gauss là một đường cong đối xứng đặc trưng có dạng hình chuông. Hàm Gauss thường được sử dụng để đại diện cho hàm mật độ xác suất của một phân bố biến ngẫu nhiên với giá trị kỳ vọng µ = 𝑏𝑏, phương sai 𝜎𝜎 = 𝑐𝑐. Trong xử lý ảnh, hàm Gauss trong không gian hai chiều trong PT 2.11 được ứng dụng để thiết kế bộ lọc Gaussian Blur. Bộ lọc này là công cụ tiền xử lý cơ bản có tác dụng làm giảm nhiễu và các chi tiết không mong muốn trong hình ảnh.2 2𝜋𝜋𝜋𝜋 2 Trong đó, x và y lần lượt là tọa độ trên hai trục Ox và Oy, σ là phương sai của phân phối chuẩn Gauss hay còn được gọi là giá trị quyết định độ lệch giữa các điểm trên bề mặt Gauss.
Một cách trực quan, đây được xem là một phương pháp làm mờ mịn giống như hiệu ứng hình ảnh được đặt dưới một lớp màn trong suốt bị mờ đi. Điều này khác với trường hợp hình ảnh bị mờ do kết quả của việc ống kính bị mất tiêu điểm (out focus) hay do bóng của vật bên dưới ánh sáng thông thường. Trên phương diện toán học, áp dụng bộ lọc Gaussian cho hình ảnh là lấy hình ảnh gốc nhân chập với một ma trận có kích thước cố định, gọi là ma trận hạt nhân Gaussian. Ma trận này được xây dựng bằng cách sử dụng các giá trị từ hệ thống phân tán được biểu diễn bằng công thức (2.
Giá trị của mỗi điểm ảnh sau khi tính tích chập với ma trận hạt nhân Gaussian có thể coi là trùng bình lượng giá của các điểm ảnh xung quanh nó. Trong lý thuyết hàm, hàm Gaussian tại mỗi điểm trên hình ảnh là khác 0. Điều này có nghĩa là ma trận hạt nhân Gausian nên có kích thước bằng với hình ảnh cần xử lý và giá trị tại mỗi phần tử luôn khác không. Tuy nhiên, trong thực tế, do quá trình tính toán dựa trên xấp xỉ rời rạc nên các giá trị của phần tử trên bề mặt Gaussian hai chiều ở khoảng cách 3σ so với trung tâm đều có giá trị gần như bằng không.
Do vậy, các điểm nằm ngoài khoảng 3σ sẽ bị bỏ qua. Vì vậy, ma trận hạt nhân Gaussian thường có kích thước giới hạn, phụ thuộc vào giá trị phương sai được chọn. Một số ma trận hạt nhân Gaussian phổ biến được trình bày trong Bảng 2. Kích thước của ma trận hạt nhân Gaussian có ảnh hưởng lớn tới kết quả sau khi áp dụng bộ lọc.
Ma trận hạt nhân Gaussian có kích thước càng lớn thì ảnh sau xử lý càng mờ và hiệu ứng cạnh khung càng giảm. Do đó, cần cân nhắc lựa chọn kích thước ma trận hạt nhân Gausian phù hợp để đảm bảo hiệu quả lọc nhiễu tốt nhất và duy trì được hiệu ứng cạnh phù hợp với mục đích xử lý ảnh.