Chương 1: Tổng quan của đề tài nghiên cứu Chương 2: Cơ sở lý thuyết Chương 3: Ứng dụng các thuật toán trong thực nghiệm Chương 4: Kết quả thực nghiệm và đánh giá Chương 5: Kết luận và hướng phát triển 8 CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2. Giới thiệu Trong chương 2 này chúng ta sẽ đi nghiên cứu và tìm hiểu về các thuật toán và công nghệ được sử dụng trong luận văn gồm công nghệ MediaPipe Pose, YOLO và thuật toán LSTM. Một số khái niệm cơ bản [21] 2. Trí tuệ nhân tạo Hình 2.1: Mối quan hệ của trí tuệ nhân tạo với máy học và học sâu [21].
Trí tuệ nhân tạo (Artificial Intelligent) là một ngành thuộc lĩnh vực khoa học máy tính. Trí tuệ nhân tạo là trí tuệ do con người lập trình tạo ra với mục đích giúp máy tính có thể tự động hóa các hành vi thông minh như con người. 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 máy học để 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 được các ngôn ngữ, tiếng nói, biết học và tự thích nghi.
Sau đây là một vài ứng dụng kỹ thuật hiện hành đang phát triển nhanh chóng của trí tuệ nhân tạo: ▪ Nhận dạng, phân loại, gắn thẻ hình ảnh tĩnh. ▪ Cải thiện hiệu suất chiến lược thương mại theo thuật toán. ▪ Quy trình xử lý dữ liệu bệnh nhân hiệu quả và có khả năng nhân rộng. ▪ Dự tính thời điểm bảo trì.
9 ▪ Phát hiện và phân loại vật thể. ▪ Phân bố nội dung trên các phương tiện truyền thông xã hội. ▪ Bảo vệ khỏi những mối đe dọa an ninh mạng. Học máy hoặc máy học (Machine Learning) Hình 2.2: Ngôi nhà với máy nhà là máy học [21] Học máy hoặc máy học (Machine Learning) nổi lên như một bằng chứng của cuộc cách mạng công nghiệp lần thứ 4 (với các cuộc cách mạng lần lượt như thứ 1 - động cơ hơi nước, thứ 2 - năng lượng điện, thứ 3 - công nghệ thông tin).
Trí Tuệ Nhân Tạo đang len lỏi vào mọi lĩnh vực trong đời sống hằng ngày. Xe tự hành của Google và Tesla, hệ thống tự tag khuôn mặt trong ảnh của Facebook, trợ lý ảo Siri của Apple, hệ thống gợi ý sản phẩm của Amazon, hệ thống gợi ý phim của Netflix, máy chơi cờ vây AlphaGo của Google DeepMind, v.v…, chỉ là một vài trong vô vàn những ứng dụng của trí tuệ nhân tạo/học máy. Học máy là một tập con của trí tuệ nhân tạo và có nhiều loại: học có giám sát (Supervised Learning), học không giám sát (Unsupervised Learning), học bán giám sát (Semi-Supervised Learning), học củng cố (Reinforcement Learning). Học có giám sát (Supervised Learning) là thuật toán dự đoán đầu ra (outcome) của một dữ liệu mới (new input) dựa trên các cặp (input, outcome) đã biết từ trước.
Cặp dữ liệu này còn được gọi là dữ liệu (data) và nhãn (label). Học có giám sát là nhóm phổ biến nhất trong các thuật toán học máy. Học sâu (Deep Learning) 10 Hình 2.3: Lịch sử phát triển của mạng học sâu [21] Những năm gần đây, khi mà khả năng tính toán của các máy tính được nâng lên một tầm cao mới và lượng dữ liệu khổng lồ được thu thập bởi các hãng công nghệ lớn, học máy đã tiến thêm một bước dài và một lĩnh vực mới được ra đời gọi là học sâu (Deep Learning). Học sâu đã giúp máy tính thực thi những việc tưởng chừng như không thể vào 10 năm trước: phân loại cả ngàn vật thể khác nhau trong các bức ảnh, tự tạo chú thích cho ảnh, bắt chước giọng nói và chữ viết của con người, giao tiếp với con người, hay thậm chí cả sáng tác văn hay âm nhạc và nhiều điều không thể tưởng khác.4 Thị giác máy tính (Computer Vision) Thị giác máy tính là một lĩnh vực gồm nhiều phương pháp như thu nhận ảnh, xử lý ảnh kỹ thuật số, phân tích và nhận dạng các hình ảnh.
Nói chung thị giác máy tính là nhận vào dữ liệu đa chiều từ thế giới thực sau đó xử lý để cho ra các thông tin số hoặc các biểu tượng. Việc phát triển lĩnh vực này bắt nguồn từ việc sao chép các khả năng thị giác con người về sự nhận dạng và hiểu biết một hình ảnh mang tính điện tử. Việc nhận dạng hình ảnh có thể xem như việc giải quyết vấn đề của các biểu tượng hay thông tin từ dữ liệu hình ảnh qua cách dùng các mô hình được xây dựng với sự giúp đỡ của các ngành lý thuyết học, thống kê học, vật lý học và hình học. Thị giác máy tính còn được mô tả là sự tổng thể của một dải các quá trình tự động và tích hợp các phương thức thể hiện cho các nhận thức của thị giác.
Thị giác máy tính là một môn học khoa học liên quan đến lý thuyết với các hậu duệ là các hệ thống nhân tạo có trích xuất các thông tin từ những hình ảnh. Dữ liệu hình ảnh có thể nhiều dạng như: ảnh chụp (ảnh 2 chiều), chuỗi video, các cảnh từ nhiều camera, hay dữ liệu đa chiều từ máy quét y học (ảnh 3 chiều), v.v… Các lĩnh vực con của thị giác máy tính gồm: tái cấu trúc cảnh, dò tìm sự kiện, theo dõi video, nhận dạng bố cục đối tượng, học, chỉ mục, đánh giá chuyển động, phục hồi ảnh, v. Cơ sở và thuật toán cơ bản của bài toán xử lý ảnh[22] 2. Giới thiệu về xử lý ảnh 2.
Hệ màu RGB RGB viết tắt của Red (đỏ), Green (xanh lục), Blue (xanh lam), là ba màu chính của ánh sáng khi tách ra từ lăng kính. Khi trộn ba màu trên theo tỉ lệ nhất định có thể tạo thành các màu khác nhau.4: Thêm đỏ vào xanh lá cây tạo ra vàng; thêm vàng vào xanh lam tạo ra trắng [22] Ví dụ khi bạn chọn màu ở đây[23]. Khi bạn chọn một màu thì sẽ ra một bộ ba số tương ứng (r,g,b) Với mỗi bộ 3 số r, g, b nguyên trong khoảng [0, 255] sẽ cho ra một màu khác nhau. Do có 256 cách chọn r, 256 cách chọn màu g, 256 cách chọn b => tổng số màu có thể tạo ra bằng hệ màu RGB là: 256 * 256 * 256 = 16777216 màu !!! Hình 2.5: màu được chọn là rgb(102, 255, 153), nghĩa là r=102, g=255, b=153 [22] 12 2.
Ảnh màu Hình 2.6: Mathematical bridge, Cambridge[22] Hình 2.7: Mathematical bridge, Cambridge properties[22] Theo wiki, pixel (hay điểm ảnh) là một khối màu rất nhỏ và là đơn vị cơ bản nhất để tạo nên một bức ảnh kỹ thuật số. Vậy bức ảnh trên kích thước 800 pixel * 600 pixel, có thể biểu diễn dưới dạng một ma trận kích thước 600 * 800 (vì định nghĩa ma trận là số hàng nhân số cột). 𝑤1,1 ⋯ 𝑤1,800 [ ⋮ ⋱ ⋮ ] 𝑤600,1 ⋯ 𝑤600,800 Trong đó mỗi phần tử wi j là một pixel. Như vậy có thể hiểu là mỗi pixel thì biểu diễn một màu và bức ảnh trên là sự kết hợp rất nhiều pixel.
Hiểu đơn giản thì in bức ảnh ra, kẻ ô vuông như chơi cờ ca rô với 800 đường 13 thẳng ở chiều dài, 600 đường ở chiều rộng, thì mỗi ô vuông là một pixel, biểu diễn một chấm màu. Tuy nhiên để biểu diễn 1 màu ta cần 3 thông số (r,g,b) nên gọi wi j = (ri j;gi j;bi j) để biểu diễn dưới dạng ma trận thì sẽ như sau: Hình 2.8: Ảnh màu kích thước 3*3 biểu diễn dạng ma trận, mỗi pixel biểu diễn giá trị (r,g,b)[22] Để tiện lưu trữ và xử lý không thể lưu trong 1 ma trận như thế kia mà sẽ tách mỗi giá trị màu trong mỗi pixel ra một ma trận riêng.9: Tách ma trận trên thành 3 ma trận cùng kích thước: mỗi ma trận lưu giá trị từng màu khác nhau red, green, blue[22] Tổng quát: Hình 2.10: Tách ma trận biểu diễn màu ra 3 ma trận, mỗi ma trận lưu giá trị 1 màu[22] Mỗi ma trận được tách ra được gọi là 1 channel nên ảnh màu được gọi là 3 channel: channel red, channel green, channel blue. Tóm tắt: Ảnh màu là một ma trận các pixel mà mỗi pixel biểu diễn một điểm màu. Mỗi điểm màu được biểu diễn bằng bộ 3 số (r,g,b).
Để tiện cho việc xử lý ảnh thì sẽ tách ma trận pixel ra 3 channel red, green, blue. Tensor Khi dữ liệu biểu diễn dạng 1 chiều, người ta gọi là vector, mặc định khi viết vector sẽ viết dưới dạng cột. Khi dữ liệu dạng 2 chiều, người ta gọi là ma trận, kích thước là số hàng * số cột. Khi dữ liệu nhiều hơn 2 nhiều thì sẽ được gọi là tensor, ví dụ như dữ liệu có 3 chiều.11: Vector v kích thước n, ma trận W kích thước m*n[22] Để ý thì thấy là ma trận là sự kết hợp của các vector cùng kích thước.
Xếp n vector kích thước m cạnh nhau thì sẽ được ma trận m*n. Thì tensor 3 chiều cũng là sự kết hợp của các ma trận cùng kích thước, xếp k ma trận kích thước m*n lên nhau sẽ được tensor kích thước m*n*k.12: Hình hộp chữ nhật kích thước a*b*h Tưởng tượng mặt đáy là một ma trận kích thước a * b, được tạo bởi b vector kích thước a. Cả hình hộp là tensor 3 chiều kích thước a*b*h, được tạo bởi xếp h ma trận kích thước a*b lên nhau. Do đó biểu diễn ảnh màu trên máy tính ở phần trên sẽ được biểu diễn dưới dạng tensor 3 chiều kích thước 600*800*3 do có 3 ma trận (channel) màu red, green, blue kích thước 600*800 chồng lên nhau.
Ví dụ biểu diễn ảnh màu kích thước 28*28, biểu diễn dưới dạng tensor 28*28*3 15 Hình 2.13: Ảnh màu biểu diễn dưới dạng tensor [22] 2.13: Ảnh xám của mathematical bridge[22] Tương tự ảnh màu, ảnh xám cũng có kích thước 800 pixel * 600 pixel, có thể biểu diễn dưới dạng một ma trận kích thước 600 * 800 (vì định nghĩa ma trận là số hàng nhân số cột). Tuy nhiên mỗi pixel trong ảnh xám chỉ cần biểu diễn bằng một giá trị nguyên trong khoảng từ [0,255] thay vì (r,g,b) như trong ảnh màu. Do đó khi biểu diễn ảnh xám trong máy tính chỉ cần một ma trận là đủ. Giá trị 0 là màu đen, 255 là màu trắng và giá trị pixel càng gần 0 thì càng tối và càng gần 255 thì càng sáng.
Chuyển hệ màu ảnh Mỗi pixel trong ảnh màu được biểu diễn bằng 3 giá trị (r,g,b) còn trong ảnh xám chỉ cần 1 giá trị x để biểu diễn.