THÔNG TIN CỜ HIỆU PHẤT TAY VÀ LÝ THUYẾT MÁY HỌC
Thông tin cờ hiệu phất tay
Thông tin cờ hiệu phất tay là một hình thức thông tin cơ bản được sử dụng nhiều trong lĩnh vực thông tin hàng hải, thông tin hải quân Trong những trường hợp không thể sử dụng thông tin vô tuyến để truyền thông tin giữa hai đối tượng với nhau, thông tin cờ tay được coi là phương pháp kết nối Thông tin cờ tay thường được sử dụng để trao đổi thông tin giữa các tàu chờ hàng với nhau, giữa tàu và cảng biển, và được sử dụng trong hải quân Trong chương này sẽ trình bày về phương pháp cách thức truyền thông tin, bao gồm các quy định trong truyền thông tin cờ hiệu phất tay
Trong thông tin cờ tay khi phát tin tức người phát sẽ phát từng ký tự trong bảng 26 ký tự gồm: A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V,
W, X, Y, Z, và các chữ số từ 0 đến 9 [17]
Quy định về tư thế phát tin tức của người phát tin:
- Người luôn đứng thẳng, mỗi tay luôn cầm một cờ
- Trong quá trình phát tin, cờ luôn ở phía trước người phát, không được che khuất hay đưa ra phía sau
- Khi phát xong một từ luôn chuyển về tư thế nghỉ để chuẩn bị phát từ tiếp theo
Hình 2.1 Cờ tay được sử dụng khi truyền thông tin
Tư thế người phát tin
Cánh tay người phát và cán cờ luôn tạo thành một đường thẳng, vị trí cờ và cánh tay sẽ hợp với thân người một góc có giá trị tương ứng với giá trị ký tự muốn truyền đi, lúc này người phát sẽ có tư thế tương ứng với giá trị
Hình 2.2 Vị trí tay người phát tin có thể được sử dụng
Trên Hình 2.2 Chúng ta thấy tay phải của người phát tin chỉ về hướng 45 0 , còn tay trái chỉ về hướng 270 0 , tư thế này của người phát tương ứng với một ký tự
Bảng 2.1 Tư thế phát tương ứng ký tự alphabet
Ký tự Giá trị Tư thế Ý nghĩa
1 A(Số 1) Tay phải ở vị trí 135 0
Tay trái ở vị trí 180 0 Phát ký tự 1
2 B(Số 2) Tay phải ở vị trí 0 0
Tay trái ở vị trí 180 0 Phát ký tự 2
3 C(Số 3) Tay phải ở vị trí 45 0
Tay trái ở vị trí 180 0 Phát ký tự 3
4 D(Số 4) Tay phải ở vị trí 90 0
Tay trái ở vị trí 180 0 Phát ký tự 4
5 E(Số 5) Tay phải ở vị trí 180 0
Tay trái ở vị trí 315 0 Phát ký tự 5
6 F(Số 6) Tay phải ở vị trí 180 0
Tay trái ở vị trí 270 0 Phát ký tự 6
7 G(Số 7) Tay phải ở vị trí 45 0
Tay trái ở vị trí 135 0 Phát ký tự 7
8 H(Số 8) Tay phải ở vị trí 90 0
Tay trái ở vị trí 135 0 Phát ký tự 8
9 I(Số 9) Tay phải ở vị trí 180 0
Tay trái ở vị trí 225 0 Phát ký tự 9
10 J(Số 0) Tay phải ở vị trí 00 0
Tay trái ở vị trí 270 0 Phát ký tự 10
Tay trái ở vị trí 315 0 Phát ký tự 11
Tay trái ở vị trí 0 0 Phát ký tự 12
Tay trái ở vị trí 315 0 Phát ký tự 13
Tay trái ở vị trí 270 0 Phát ký tự 14
Tay trái ở vị trí 225 0 Phát ký tự 15
Tay trái ở vị trí 90 0 Phát ký tự 16
Tay trái ở vị trí 0 0 Phát ký tự 17
Tay trái ở vị trí 270 0 Phát ký tự 18
Tay trái ở vị trí 225 0 Phát ký tự 19
Tay trái ở vị trí 315 0 Phát ký tự 20
Tay trái ở vị trí 270 0 Phát ký tự 21
Tay trái ở vị trí 315 0 Phát ký tự 22
Tay trái ở vị trí 225 0 Phát ký tự 23
Tay trái ở vị trí 315 0 Phát ký tự 24
Tay trái ở vị trí 315 0 Phát ký tự 25
Tay trái ở vị trí 270 0 Phát ký tự 26
27 Nghỉ Tay phải ở vị trí 180 0
Trạng thái nghỉ chuẩn bị cho ký tự tiếp theo Cũng là trạng thái kết thúc phát một ký tự
Bắt đầu phát số hoặc kết thúc quá trình phát số
2.1.2 Phương pháp truyền tin tức
Sau khi hai bên nhận được sự sẵn sàng truyền tin tức, bên phát tín hiệu sẽ thực hiện phát tin từng ký tự trong bảng điện Mỗi bảng điện sẽ bao gồm nhiều từ trong đó, mỗi từ sẽ có một hoặc nhiều chữ (ký tự) khi phát người phát sẽ phát từng từ bao gồm nhiều ký tự Để phát một từ người phát sẽ từ tư thế nghỉ bắt đầu chuyển về các tư thế theo thứ tự trong từ, khi kết thúc từ muốn phát người phát sẽ chuyển về tư thế nghỉ, quan sát người thu đã thu được từ mình muốn phát hay chưa Trong trường hợp
W người thu đã thu được tin tức sẽ phát trở lại ký tự 3 giá trị “C” mang ý nghĩa đã thu được tin tức Trong trường hợp người thu tin tức đứng yên, người phát cần quan sát thêm một thời gian nếu vẫn không thấy người thu tin tức phát ký tự 3 giá trị “C” thì phải thực hiện phát lại từ vừa rồi Người thu tin quan sát tư thế của người phát tin, nếu nhận được tin tức từ người phát tin thì phát lại ký tự 3 giá trị “C”, để người phát tin tức biết người thu đã nhận được tin tức, nếu không thể nhận diện được ký tự người phát tin muốn truyền cho mình thì người thu tin sẽ đứng yên đợi người phát tin tức phát lại từ đã phát
Xét một ví dụ sau: Bảng điện cần truyền “HOA”, các tư thế người phát và người thu lần lượt như sau:
Người phát từ tư thế nghỉ chuyển sang tư thế mang giá trị “H”, sau đó chuyển sang tư thế mang giá trị “O”, tiếp theo người phát chuyển sang tư thế mang giá trị
“A” và cuối cùng là chuyển về tư thế nghỉ Trong Hình 2.3 chúng ta thấy được 4 động tác của người phát tương ứng các hành động trên Đối với người thu tin trong quá trình người phát thay đổi tư thế, người thu quan sát tới khi người phát chuyển về tư thế nghỉ và không thực hiện chuyển đổi tư thế nữa thì ghép các ký tự đã thu được Nếu các ký tự thu được rõ và có ý nghĩa thì phát lại ký tự “C” bằng 2 động tác Từ tư thế nghỉ người thu chuyển sang tư thế mang giá trị “H”, sau đó chuyển về tư thế nghỉ
Hình 2.3 Thứ tự động tác khi phát tín hiệu chữ “HOA”
Trong trường hợp phát bảng điện có dấu thì chuyển đổi các dấu tương ứng thành các ký tự, các dấu trong một chữ được phát sau cùng của chữ đó:
Các thành phần phụ âm được phát tương ứng như sau:
Bảng 2.2 Các ký tự phiên âm tiếng việt
Ký tự phát OO EE AA OW UW AW DD
Ví dụ bảng điện muốn phát là “HÒA” thì người phát phải phát chuỗi ký tự tương ứng là “HOAF” Trong trường hợp khi phát có 2 ký tự liên tiếp giống nhau thì người phát sẽ thực hiện chèn thêm tư thế nghỉ ở giữa những ký tự giống nhau này
Ví dụ khi phát bảng điện có “EE”, người phát sau khi phát xong ký tự “E” đầu tiên thì chuyển về tư thế nghỉ sau đó chuyển về tư thế mang giá trị ký tự “E” thứ 2, và tiếp tục cho hết từ muốn phát Để kết thúc phiên liên lạc 2 bên phát ký tự “R” 3 lần.
Lý thuyết về xử lý ảnh
Để xử lý được những hình ảnh mang thông tin truyền đi được trình bày trong Phần 2.1 trình bày, chúng ta cần có những hiểu biết cơ bản về lý thuyết xử lý hình ảnh như hình ảnh là gì, cấu trúc bên trong hình ảnh, các khái niệm như ảnh màu, pixel Nhũng nội dung này sẽ được luận văn trình bày cụ thể trong phần này
Xử lý ảnh đang được ứng dụng trong nhiều lĩnh vực khác nhau và ngày càng được nghiên cứu và phát triển mạnh mẽ Điều này do việc sử dụng nhiều hình ảnh kỹ thuật trong các lĩnh vực Viễn thám, Y học, xử lý video, kính hiển vi…
Hình ảnh kỹ thuật số là sự biểu diễn của hình ảnh hai chiều dưới dạng một tập hợp hữu hạn các phần tử hình ảnh kỹ thuật số được gọi là điểm ảnh (pixel) Các giá trị pixel này đại diện cho các thông số khác nhau như mức xám, chiều cao, màu sắc, độ trong suốt.v.v… của hình ảnh ở dạng chữ số, các chữ số này có thể biểu diễn dưới dạng phương trình toán học [18]
Kích thước hình ảnh kỹ thuật số có thể được xác định bằng ma trận được sử dụng để lưu trữ các điểm ảnh dựa trên kích thước của chúng Để truy cập một điểm ảnh cụ thể trong hình ảnh kỹ thuật số, các tọa độ liên quan tại trục x và y được xác định Mỗi pixel có cường độ và độ sáng riêng biệt Các điểm ảnh trong một hình ảnh sẽ có các giá trị khác nhau theo một hình ảnh hoặc nếu không các hình ảnh có thể không xuất hiện khác nhau Các hỗn hợp màu sắc khác nhau sẽ tạo ra một hình ảnh màu Kích thước pixel là số đo chiều ngang và chiều dọc của hình ảnh Mỗi pixel được xác định bằng cách sử dụng độ sâu bit được xác định bởi số lượng bit Độ phân giải là tỷ lệ không gian của hình ảnh kỹ thuật số, là chỉ số của tần số không gian mà hình ảnh đã được lấy mẫu Điểm ảnh (Pixel) là một phần tử của ảnh số tại toạ độ (i, j) với độ xám hoặc màu nhất định Tập hợp số các điểm ảnh này lại với nhau sẽ tạo ra kích thước ảnh 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 [19] Độ phân giải ảnh biểu thị số điểm ảnh trên một đơn vị diện tích, hay mật độ điểm ảnh trên một ảnh được hiển thị Mật độ điểm ảnh sẽ phản ảnh độ mịn của ảnh, tức là khoảng cách giữa các điểm ảnh sẽ làm cho mắt người phân biệt được sự liên tục hoặc rời rạc của các điểm ảnh Đối với mỗi ảnh, khoảng cách của mỗi điểm ảnh phải bảo đảm một giá trị tối đa nhất định để mắt người có cảm giác các điểm cảnh không có khoảng cách, hay liên tục với nhau
Ví dụ Một ảnh có kích thước chiều x là 300 điểm ảnh và chiều y là 450 điểm ảnh, vậy kích thước của ảnh sẽ là 300*450 Khi biểu diễn ảnh này trên 2 màn hình có kích thước khác nhau, mọt màn hình 12 inch và một màn hình 24 inch thì tại màn hình 12 inch sẽ có mật độ điểm ảnh lớn hơn so với màn hình 24 inch
Mức xám: Mỗi điểm ảnh được xác định vị trí theo chiều x và chiều y, tạo thành tọa độ điểm ảnh(x, y) Ngoài vị trí mỗi điểm ảnh còn thể hiện giá trị mức xám tại mỗi vị trí đó Mức xám là một giá trị số thể hiện cường độ sáng của điểm ảnh đó
Mức xám có nhiều loại, phụ thuộc vào từng loại ảnh khác nhau Một số mức xám thông dụng như: 16, 32, 64, 128, 256… Ảnh nhị phân là một hình ảnh trong đó các điểm ảnh chỉ có thể được biểu diễn bằng hai giá trị là 0 hoặc 1 được hiển thị dưới dạng đen hoặc trắng Ảnh nhị phân còn được gọi là ảnh đơn sắc Các điểm ảnh của ảnh nhị phân có giá trị 0 hoặc 1 do đó mỗi điểm ảnh của ảnh nhị phân được tính là một bit dữ liệu
Hình 2.4 Ví dụ về một ảnh nhị phân đơn giản Ảnh đen trắng là ảnh chỉ có 2 màu duy nhất là đen và trắng Mỗi điểm ảnh trong ảnh đen trắng này sẽ có những mức xám khác nhau, hay mức đen trắng khác nhau Mức xám trong ảnh đen trắng được biểu diễn trong dải từ 0 đến 255 Tức mỗi điểm ảnh có giá trị 8 bit Màu trắng được thể hiện ở mức xám 255 Đối với ảnh đen trắng mức xám còn có thể được biểu diễn dưới các mức xám 4 bit hoặc 6 bit… Tuy nhiên ngày nay ảnh đen trắng thường được sử dụng là loại có mức xmas 8 bit tương được giải giá trị mức xám là 0 đến 255
Hình 2.5 Ví dụ về một ảnh đen trắng Ảnh màu là ảnh được tổ hợp từ 3 màu cơ bản gồm màu đỏ(R - Red), màu xanh lá cây(G - Green), màu xanh nước biển(B – Blue) Với ảnh màu mỗi ảnh màu sẽ được tổ hợp từ mỗi màu cơ bản trên Mỗi màu ảnh sẽ được biểu diễn giống như ảnh đen trắng Mỗi ảnh sẽ bao gồm một ma trận điểm ảnh Tại mỗi điểm ảnh sẽ có mức xám khác nhau thể hiện cường độ sáng của điểm ảnh đó Mức xám sẽ được biểu diễn có giá trị từ 0 đến 255 Như vậy mỗi điểm ảnh của ảnh màu sẽ có 3 điểm ảnh màu được tổ hợp lại, mỗi điểm ảnh màu có kích thước là 8 bit vậy tổng bộ nhớ cần để lưu mỗi điểm ảnh trong ảnh màu là 3*8 = 24 bit Vậy bộ nhớ để lưu ảnh màu lớn gấp 3 lần ảnh đen trắng
Ví dụ: một ảnh đen trắng có kích thước 1360x768 = 1044480 điểm ảnh(pixel) thì ảnh màu có cùng kích thước sẽ là 1360x768x3= 3133440 điểm ảnh(pixel)
Các định dạng tệp phổ biến dùng để lưu trữ ảnh màu 24 bit như BMP, GIF, PNG… Nếu một ảnh màu 24 chuyển đổi thành ảnh màu 8 bit hoặc nhỏ hơn, chất lượng ảnh sẽ bị giảm Một số ảnh màu được sử dụng phổ biến hiện nay Ảnh màu 8 bit: Ảnh màu loại này cũng được cấu trúc từ 3 ảnh mày cơ bản là
Red- Green- Blue cách phân bổ 8 bit dữ liệu cho các màu cơ bản như sau Màu đỏ có
3 bit lưu trữ mức xám, màu xanh lá cây (G) được phân bổ 3 bit dữ liệu để lưu trữ mức xám, và màu cuối cùng xanh nước biển(B) được phân bổ 2 bit còn lại Đối với ảnh màu 8 bit mỗi ảnh màu sẽ được lưu trữ các mức xám khác nhau, tuy nhiên mức xám của thiết bị máy tính có sự khác biệt với mức xám của ảnh màu 8 bit Do đó đối với các ảnh màu 8 bit để đảm bảo hiển thị hình ảnh không bị kém chất lượng, các ứng dụng mở hình ảnh thường được viết đi kèm với loại ảnh này Ảnh màu 16 bit: Đây là loại ảnh màu tương tự như ảnh màu 24 bit nêu trên, chỉ khác về sự phân bổ số bit cho mỗi màu RGB là khác nhau Đối với ảnh màu 16 gồm 3 ma trận ảnh màu tương ứng RGB được phân bổ số bit như sau Màu đỏ (R) sẽ có 5 bit biểu diễn mức xám, màu xanh lá cây (G) sẽ có 6 bit biểu diễn mức xám, màu xanh nước biển (B) sẽ có 5 bit còn lại biểu diễn mức xám Nhìn vào sự phân bổ số bit ta thấy màu xanh lá cây có số bit được phân bổ nhiều nhất, với lý do màu xanh lá cây tạo cảm giác dễ chịu cho mắt hơn những màu còn lại Ảnh màu 24 bit: Là loại ảnh màu được sử dụng rộng rãi và phổ biến nhất hiện nay, trong nhiều lĩnh vực khác nhau như Viễn thám, Y tế, khoa học tự nhiên, Quân sự… Ảnh màu này được cũng được lưu trữ trên 3 ảnh màu cơ bản và phân bổ 24 bit đều cho 3 kênh màu(RGB), mỗi kênh màu có 8 bit thể hiện mức xám, tương đương mức xám có giá trị từ 0 đến 255
Hình 2.6 Ví dụ về một ảnh màu
Trên Hình 2.6 là một hình ảnh được trích xuất từ tập dữ liệu sẽ được sử dụng để huấn luyện cho model trong luận văn Trong tập dữ liệu này sẽ sử dụng ảnh màu với 3 kênh màu RGB và mỗi kênh màu sẽ là có giá trị 8 bit mức xám.
Lý thuyết máy học
Để nhận dạng được những hình ảnh trong thông tin cờ hiệu phất tay, sau khi thực hiện xử lý những hình ảnh thu nhận được dựa trên lý thuyết đã được trình bày trong Phần 2.2 Luận văn cần xây dựng một model máy học để nhận dạng được ý nghĩa của hình ảnh Phần này sẽ trình bày những cơ sở lý thuyết làm nền tảng cho việc xây dựng model máy học được sử dụng trong luận văn
Những nội dung trong phần này được tham khảo từ các nguồn tài liệu [2] [20] [21] [22]
- Vô hướng (Scalar) là một số bất kỳ thuộc một tập số nào đó, với mỗi số bất kỳ khi ta sử dụng thì số đó phải được xác định là thuộc một tập nhất định Ví dụ khi ta sử dụng một số tự nhiên ta phải xác định nó thuộc tập N( , x x N ), đối với ngôn ngữ lập trình một số tập số như int, float
- Véc-tơ (Vector) là tập hợp các Vô hướng tạo thành một mảng, tương tự như mảng trong ngôn ngữ lập trình Với mỗi giá trị trong véc-tơ có thể được truy xuất bằng các chỉ số của đã được gắn vào khi tạo véc-tơ Trong toán học các véc-tơ có thể được biểu diễn dưới dạng hang và cột Ví dụ véc-tơ x gồm n phần tử được đánh số từ
- Ma trận (Matrix) là một mảng 2 chiều gồm các phần tử là các Vô hướng, cũng giống như ma trận 2 chiều trong ngôn ngữ lập trình Các phần tử của ma trận khi khai báo sẽ được đánh chỉ số như véc-tơ, từ các chỉ số này ta có thể truy xuất giá trị của từng phần tử trong ma trận Có thể hình dung một cách khá đơn giản là một ma trận bao gồm nhiều véc-tơ xếp chồng lên nhau Xét một ma trận A gồm m hàng và n cột như sau:
Ma trận A T là một ma trận chuyển vị của ma trận A nếu các phần tử của ma trận A ji T A ij hay ma trận chuyển vị là ma trận nhận được từ ma trận gốc khi đổi vị trí ij của ma trận gốc, ví dụ ma trận sau [2]:
Phép nhân 2 ma trận A = XY được thực hiện thông qua công thức sau: ij 1
Trong đó: X R m n ; Y R n p ; A R m p ; a ij A x ; ik X y ; kj Y
Tính chất cơ bản phép nhân:
Phép nhân không có tính chất giao hoán như phép nhân scalar X Y Y X. Phép nhân cho ma trận chuyển vị công thức (2.5)
- Norm là một khái niệm thường được sử dụng để tính khoảng cách 2 điểm trong không gian nhiều chiều, khi p = 2 norm được hiểu là độ dài Euclid của 2 véc- tơ, ví dụ 2 véc-tơ x, y:
Công thức (2.6) thể hiện cách tính norm trong không gian n chiều
- Tensors: Véc-tơ có số chiều là 1, ma trận có số chiều là 2 chiều (i,j), trong một số bài toán máy học, tập dữ liệu có số chiều lớn hơn 2, những dữ liệu này được gọi là Tensors được lưu dưới dạng A i j k , ,
* Một số khái niệm trong Machine learning
Xét một bài toán trong machine learning phân loại email rác (spam) hay không, mỗi email sẽ được gọi là một điểm dữ liệu (data point) Mỗi điểm dữ liệu này sẽ có những đặc trưng (feature) khác nhau, các giá trị feature này được biểu diễn dưới dạng là một số vô hướng (Scalar) Tập hợp những đặc trưng này của một điểm dữ liệu chúng ta có thể biểu diễn nó dưới dạng một véc-tơ có n phần tử, mỗi phần tử có giá trị của đặc trưng Nhiệm vụ trong machine learning được hiểu là cách mà hệ thống machine learning xử lý một điểm dữ liệu, trong bài toán phân loại email trên, nhiệm vụ là cách hệ thống xác định xem 1 email bất kỳ có phải là email spam hay không
Véc-tơ đặc trưng (feature vector)
Véc-tơ chứa những đặc trưng của một điểm dữ liệu Trong một nhiệm vụ của machine learning thì các feature vector đầu vào thường sẽ có cùng một kích thước, điều này nhằm đảm bảo các phép tính trong mô hình có thể được thực hiện, hay trong chương trình lập trình tính toán không bị lỗi Việc thu thập dữ liệu trong thực tế để đảm bảo được các dữ liệu này có cùng kích thước là rất khó khăn trong việc thực hiện, do đó thông thường người thu thập dữ liệu sẽ không yêu cầu các điểm dữ liệu phải có cùng kích thước, loại dữ liệu này được gọi là dữ liệu thô Dữ liệu này cần phải được thực hiện xử lý sau đó mới đưa vào mô hình thực hiện tính toán
Sau khi một mô hình machine learning được huấn luyện sẽ cần thực hiện đánh giá mức độ chính xác của mô hình, đây chính là phép đánh giá Khi xây dựng một mô hình thông thường sẽ chia tập dữ liệu ban đầu thành 2 tập con gồm một tập dữ liệu dùng để huấn luyện (tranning set) và một tập dữ liệu kiểm thử (test set) Giá trị của phép đánh giá sẽ được thực hiện trên tập dữ liệu kiểm thử và tập dữ liệu huấn luyện Trong quá trình huấn luyện mô hình sẽ chỉ sử dụng tập dữ liệu huấn luyện để tìm ra các tham số của mô hình, trong quá trình này việc đánh giá vẫn phải được thực hiện qua từng lần huấn luyện Một mô hình có giá trị đánh giá trên tập kiểm thử tốt thì phải có giá trị đánh giá trên tập huấn luyện tốt trước
Quá trình huấn luyện cho một mô hình, có nghĩa là chúng ta đang cho mô hình đang xây dựng được thu thập kinh nghiệm từ nhiều lần lặp lại trên một tập dữ liệu huấn luyện (Training set) Vậy nếu thay đổi tập dữ liệu sẽ dẫn đến các kinh nghiệm khác nhau sẽ được thu thập cho mô hình, do đó tập dữ liệu có chất lượng tốt sẽ quyết định rất nhiều đến hiệu suất của mô hình
Căn cứ vào tính chất của tập dữ liệu dùng để huấn luyện người ta có thể chia các thuật toán trong machine learning thành 2 loại gồm học có giám sát (supervised learning) và học không giám sát (unsupervised learning)
Học có giám sát (supervised learning) là những thuật toán sử dụng những tập dữ liệu trong đó có các cặp điểm dữ liệu đầu vào và đầu ra đã được xác định Với một điểm dữ liệu đầu vào chúng ta luôn có một giá trị đầu ra y i f x ( ), i i N trong đó y là tập dữ liệu đầu ra, x là tập dữ liệu đầu vào Trên thực tế các thuật toán trong máy học thường thuộc loại học có giám sát, một số bài toán như dự đoán giá nhà của một ngôi nhà, phân loại các email… [20]
Học không giám sát (unsupervised learning) là những thuật toán sử dụng tập dữ liệu chỉ có những véc-tơ chứa các đặc trưng của dữ liệu đầu vào Từ những đặc trưng của dữ liệu đầu vào, mô hình máy học sẽ thực hiện những nhiệm vụ khác nhau Những nhiệm vụ này thường cố gắng thực hiện các phép toán để tìm ra được những điểm chung của những tập dữ liệu đầu vào, từ đó có thể phân loại hoặc tính xác suất dự đoán các giá trị xuất hiện có những đặc trưng gần giống với những đặc trưng của tập dữ liệu đầu vào [20]
Overfitting là một khái niệm dùng để chỉ một mô hình trong machine learning có giá trị của phép đánh giá rất cao trong tập dữ liệu huấn luyện (tranning), nhưng có giá trị của phép đánh giá rất thấp trong tập dữ liệu kiểm tra (test) Đối với những mô hình này là không tốt Hiện tượng overfitting thường xuất hiện ở những mô hình sử dụng tập dữ liệu huấn luyện rất nhỏ, làm cho quá trình huấn luyện mô hình chú trọng nhiều vào những điểm dữ liệu này, nên khi đưa tập dữ liệu test vào thì mô hình không thể dự đoán chính xác
2.3.2 Một số thuật toán cơ bản
Thuật toán linear regression (Hồi quy tuyến tính)
NHẬN DẠNG KÝ TỰ ALPHABET TRONG THÔNG TIN CỜ HIỆU PHẤT TAY
Khảo sát mô hình CNN
CNN là một mô hình trong học sâu được cải tiến nhiều ngày nay nhằm giải quyết nhiều bài toán phức tạp trong phân loại ảnh và phát hiện đối tượng trong ảnh Nhiều mô hình được phát triển từ CNN có cấu trúc cơ bản nhưng giải quyết được nhiều bài toán phổ biến Một số mô hình được công bố như VGG16, VGG19 mobilenet (các phiên bản khác nhau), resnet, resnet_50 Luận văn sẽ khảo sát một số mô hình để đánh giá tính hiệu quả nhận dạng các ký tự alphabet trong thông tin cờ hiệu phất tay
Luận văn thực hiện khảo sát một số mô hình với tập dữ liệu được thực hiện thu thập tại những khoảng cách khác nhau giữa người phát tin và camera Đồng thời với mỗi khoảng cách sẽ có sự thay đổi về trang phục của người phát bảng chữ cái alphabet, nhằm mục tiêu đánh giá sự thay đổi của hình ảnh tới quá trình nhận dạng bảng chữ cái alphabet khi truyền tin tức bằng cờ hiệu phất tay Mục tiêu khảo sát có thể được tóm tắt qua các ý chính:
Thực hiện khảo sát với người phát tin tức ở khoảng cách 40m, 100m đạt chất lượng hình rõ nét
Khảo sát một số mô hình CNN với các tham số và lựa chọn khác nhau để đánh giá được độ chính xác nhận dạng bảng chữ cái alphabet
Kết luận được những mô hình có thể sử dụng cho nhận dạng bảng chữ cái alphabet và những hạn chế của mỗi mô hình
3.1.2 Tập dữ liệu sử dụng
Bảng chữ cái tiếng anh (English Alphabet) là một bảng chữ cái gồm 26 ký tự Latinh được trình bày dưới 2 dạng ký tự hoa và chữ thường, tuy nhiên trong thông tin cờ hiệu phất tay, chỉ sử dụng ký tự dạng viết hoa qua bảng sau:
Dạng ký tự viết hoa
Qua khảo sát thực tế và tham khảo tài liệu, luận văn thực hiện ghi hình ảnh bảng chữ cái alphabet khi được phát dưới dạng thông tin cờ hiệu phất tay Tập dữ liệu được ghi lại ở khoảng cách 40m và 100m, với 2 trang phục được thay đổi khác nhau, cụ thể tập dữ liệu có thông tin như sau:
- Thiết bị phần cứng máy ghi hình có thông số :
+ Máy ghi hình Fujifilm X-T3, cùng chân tripod 3366
Hình 3.1 Máy ghi hình Fujifilm X-T3 cùng chân tripod 3366
- 7920 Hình ảnh được ghi lại ở khoảng cách 40m bao gồm 2 loại trang phục
- 15778 Hình ảnh được ghi lại ở khoảng cách 100m bao gồm 2 loại trang phục
- Các ký tự trong bảng alphabet được thể hiện tương ứng với 26 lớp từ 1 đến
26 tương ứng các ký tự từ A đến Z trong tập dữ liệu được gán nhãn Để đưa vào hệ thống nhận dạng của các mô hình học sâu chúng ta thực hiện chia tập dữ liệu thành 3 phần gồm training và testing và validation, tỷ lệ của 3 tập dữ liệu con gồm tập huấn luyện(train) 70%, tập kiểm thử (test) 15% và tập xác thực(validation) 15% còn lại [29]:
Hình 3.2 Tỷ lệ các thành phần trong tập dữ liệu
Trong quá trình huấn luyện sẽ có một số tham số được cài đặt sẵn epoch và batchsize sẽ được chọn thông qua thực nghiệm, dữ liệu được training, quá trình traning sẽ có các giá trị accuracy và loss tương ứng với mỗi epoch
Resnet là một mạng học sâu được công bố vào năm 2015, mô hình học sâu, với trọng số ImageNet được kiểm nghiệm đạt kết quả cao trong tập dữ liệu CIFAR-
10 với 100 và 100 layer Trong kỳ thi ILSVRC 2015 mạng Restnet đạt được vị trí số
1 với tỷ lệ lỗi 3.57% [30] Ngày nay Resnet có nhiều cải tiến và nhiều phiên bản khi chỉnh sửa số lớp layer nhưng không làm thay đổi độ phức tạp
Hình 3.1 Một kết nối cơ bản trong mạng Resnet
Trên Hình 3.1 cho thấy việc kết nối giữa đầu vào thứ n và đầu vào thứ n+x của mô hình này được kết nối với nhau, phương pháp kết nối này được gọi là phương pháp kết nối tắt Cụ thể chúng ta có thể xét một mô hình có 152 layer được chỉnh sửa từ cấu trúc resnet ban đầu:
Hình 3.2 Kiến trúc của mô hình Resnet152
Hình 3.2 là một kiến trúc của mô hình resnet với cấu trúc có 152 layer bên trong, trong mỗi layer này sử dụng kernel 3x3 để thực hiện các phép toán tích chập
Quan sát cấu trúc của mô hình resnet152 chúng ta thấy, dữ liệu ngõ vào của các lớp hiện có được thêm thành phần là ngõ ra của các lớp trước đó Ngoài mô hình
152 layer thì còn có mô hình resnet50 với 50 layer, mô hình này được trình bày trong hình ảnh được tham khảo tại [31]
Với bài toán nhận dạng ký tự trong bảng chữ cái khi áp dụng mô hình Resnet, luận văn lựa chọn mô hình resnet50
Tập dữ liệu thu thập được gồm gồm có 24168 hình: mỗi hình có số kênh màu
3; chiều cao 3840px; chiều rộng 2160px
+ Khoảng cách 40m: 3968 hình người phát tin mặc trang phục áo trắng, 4422 hình người phát tin mặc trang phục áo xanh
+ Khoảng cách 100m: 10118 hình người phát tin mặc trang phục áo trắng,
5660 hình người phát tin mặc trang phục áo xanh
Tập dữ liệu sẽ được chia thành 3 tập con là train (70%), val (15%), test (15%) Tập dữ liệu train và val sẽ được sử dụng trong quá trình huấn luyện, để đánh giá độ chính xác của model trong mỗi lần cập nhật trọng số
Thông tin tổng hợp của model:
Hình 3.3 Tổng hợp thông tin cấu trúc, số params mô hình resnet50 sử dụng
Kết quả huấn luyện module như sau:
Với epochs = 10, learning_rate = 0.0001, batchsize = 50
Hình 3.4 Độ chính xác và sai lệch của mô hình Resnet50 với epochs = 10 Độ chính xác trong tập kiểm thử: 0.01394583098590374, 0.9992796778678894
Bảng 3.1 Bảng Confusion của mô hình Resnet50 với epochs = 10
Nhận xét: Trong bộ dữ liệu hình ảnh được đưa vào quá trình huấn luyện gồm tập train, val, test chúng ta thấy độ chính xác của model resnet là rất cao đạt hơn 99% Các ký tự được dự đoán chính xác, với những khoảng cách khác nhau
Mobilenet là một mạng học sâu được phát triển từ cấu trúc CNN, được công bố bởi nhóm phát triển của công ty Google vào năm 2017 [32]
Hình 3.5 Độ phức tạp của các phép tính trong Convolution (a) và DSC (b,c)
Mô hình này được đội ngũ phát triển nhắm tới mục tiêu, giữ độ chính xác cao mà không làm tăng độ phức tạp và cấu trúc của mô hình, ứng dụng được trong các thiết bị di động, nơi có tài nguyên phần cứng hạn chế hơn so với các máy tính có khả năng tính toán mạnh Để giải quyết yêu cầu này mô hình Mobilenet sử dụng phương pháp Depthwise Separable Convolution (DSC) thay cho mạng tích chập
(Convolution) thông thường Đối với một mạng tích chập thông thường có độ phức tạp phụ thuộc vào kích thước, số lượng kernel và kích thước tập dữ liệu đầu vào
Hình 3.5 (a) là một phép tính tích chập tổng quát với M là số kernel sử dụng trong phép tích chập và độ phức tạp cho phép tính này có thể được tính
𝐷x𝐷x𝐾x𝐾x𝑁x𝑀 Trong đó D là số feature theo chiều dài và rộng của ảnh đầu vào
(h,w) DSC với độ phức tạp đầu vào vẫn là DxD, sử dụng phương pháp chia việc tính toán tích chập thành 2 phần khác nhau gồm Depthwise convolution và Pointwise
Mô hình Neural Network và SVM
Qua khảo sát một số mô hình học sâu xây dựng dựa trên cấu trúc CNN, có những điểm hạn chế về độ chính xác khi trích xuất đặc trưng các ảnh trong tập dữ liệu bảng chữ cái Luận văn xây dựng một hệ thống nhận dạng dựa vào sự thay đổi tọa độ các điểm trên khung xương người khi con người hoạt động, làm đặc trưng cho các động tác tương ứng ký tự trong truyền thông tin cờ hiệu phất tay, những giá trị này sẽ được đưa vào model máy học neural network hoặc SVM nhận dạng
3.2.1 Mô hình hệ thống
Hệ thống nhận dạng bảng chữ cái alphabet bằng những hình ảnh trong thông tin cờ hiệu phất tay, sẽ có đầu vào là những hình ảnh có người ở tư thế, động tác mang tin tức là những chữ cái trong bảng alphabet Đầu ra của hệ thống là một lớp dữ liệu được nhận định, chính là ký tự tương ứng với động tác
Phát biểu bài toán dưới dạng một yêu cầu như sau: Cho một hình ảnh thể hiện một tư thế của một người đang truyền thông tin cờ hiệu phất tay, nhận dạng tư thế của người trong ảnh tương ứng với ký tự nào trong bảng chữ cái alphabet
Hình 3.7 Cấu trúc hệ thống nhận dạng ký tự
Quan sát Hình 3.7 chúng ta thấy được dữ liệu đầu vào của hệ thống là một hình ảnh, dữ liệu đầu ra của hệ thống là một ký tự, bộ nhận dạng bao gồm 2 thành phần là phát hiện tọa độ và model học sâu Với mỗi một tư thế nhất định trong thông tin cờ hiệu phất tay, sẽ mang ý nghĩa của một ký tự, các tư thế này là khác nhau Ở mỗi tư thế dựa vào lý thuyết tọa độ các điểm chính trên khung xương người sẽ có sự khác nhau
Do đó tọa độ các điểm trên khung người sẽ là những đặc trưng, phần phát hiện tọa độ sẽ phát hiện tất cả những điểm trên khung xương người, chọn ra những điểm có đặc trưng thông tin để đưa vào model học sâu Khi nhận được những đặc trưng từ bộ phát hiện tọa độ, model học sau sẽ thực hiện dự đoán ký tự có tỷ lệ chính xác là cao nhất, model học sâu có thể được sử dụng là một mô hình neural network hoặc một mô hình SVM
3.2.2 Xác định tọa độ các điểm mang thông tin
Là khối đầu tiên của hệ thống nhận dạng hình ảnh bảng chữ cái trong thông tin cờ hiệu phất tay, phần dữ liệu đầu vào của khối này sẽ là hình ảnh cần được nhận dạng Trong việc xây dựng tập dữ liệu để huấn luyện cho model học sâu, dữ liệu đầu vào của khối này là tập dữ liệu gồm rất nhiều ảnh xếp thành tensor
Phát hiện vị trí hình học, sự chuyển động của các điểm trên khung xương người được ứng dụng nhiều trong các lĩnh vực hiện nay Trong ứng dụng sử dụng ngôn ngữ ký hiệu đa phương thức bằng việc thực hiện kỹ thuật Skeleton Aware Multi-modal SLR framework (SAMSLR), Sign Language Graph Convolution Network (SL-GCN) kết hợp với một Separable Spatial Temporal Convolution Network (SSTCN), làm cho việc mô hình hóa vị trí hình học, động lực học của các vị trí khung xương, từ đó xây dựng một mô hình nhận dạng ngôn ngữ ký hiệu [34] Kết hợp mạng CNN và LSTM cũng được sử dụng để phát hiện sự thay đổi trong tọa độ của các điểm trong khung xương người, nhằm mục đích phát hiện ra những hành động của con người như hành động bị ngã, ngủ, đứng, ngồi chạy… [35]
Một phương pháp xác định vị trí hình học của khung xương được công bố vào năm 2020, do đội ngũ của công ty google phát triển đó là BlazePose
Là một mô hình học sâu trong đó sử dụng cấu trúc CNN với số lượng trọng số ít, sử dụng để ước tính và theo dõi các vị trí của khớp xương với tốc độ xử lý hơn 30 fps BlazePose có thể được thực hiện trên các thiết bị di động, mô hình này sẽ thực hiện theo dõi từ những khung hình(frame) trước để ước tính vị trí khung xương của những frame sau, những điểm trên khung xương sẽ được ước tính vị trí, kết quả mô hình đưa ra là 33 điểm trên khung xương [36]
Hình 3.8 Cấu trúc kết nối mạng trong BlazePose với một input có kích thước
(256x256x3) và output có kích thước (33x3) [36]
Qua Hình 3.8 cho ta thấy được cấu trúc của các mạng tích chập bên trong của một Blazepose, với số kênh màu của ảnh là 3 kênh màu, cấu trúc này được phát triển từ CNN, do đó cũng có các lớp và các thành phần giống như CNN Ở dữ liệu đầu ra là tọa độ hình học của điểm chính trên khung xương người, gồm 33 điểm dữ liệu, mỗi điểm sẽ chứa 3 tọa độ (x,y,z)
Hình 3.9 Vị trí 33 điểm được phát hiện trên khung xương người bằng
Trên Hình 3.9(a) thể hiện một hình ảnh thực tế khi sử dụng BlazePose phát hiện các điểm chính trên khung xương, Hình 3.9(b) giải thích ý nghĩa các vị trí và id của những vị trí đó Quan sát Hình 3.9(a) chúng ta thấy những vị trí có id từ 0 đến 10 có vị trí hình học tương đối gần nhau, một số vị trí khác ở bàn tay cũng tương tự như vậy, những điểm còn lại có vị trí tương đối cách xa nha, khi ta dùng mắt thường để phân biệt Mô hình blazepose là có trong số ít, tức có cấu trúc khá nhẹ, ngày nay được đóng gói API vào thư viện Mediapipe
Trong luận văn, tác giả có nghiên cứu thư viện mediapipe hỗ trợ để phát hiện những điểm ảnh của khung xương người [37] Mediapipe là một thư viện hỗ trợ trong việc phát hiện các đối tượng và phân loại các đối tượng trong xử lý ảnh rất hiệu quả
Hỗ trợ nhận diện khuôn mặt
MediaPipe Face Detection là thư viện hỗ trợ nhận diện khuôn mặt với tốc độ xử lý hình ảnh cực nhanh, phát hiện với 6 điểm khóa và hỗ trợ đa khuôn mặt Nó dựa trên BlazeFace, một công cụ dò tìm khuôn mặt với cấu trúc nhẹ và hoạt động tốt được thiết kế riêng cho việc dự đoán của hệ thống sử dụng GPU cho các phép tính Hiệu suất siêu thời gian thực của máy dò cho phép nó được áp dụng cho bất kỳ trải nghiệm trực tiếp nào yêu cầu vùng khuôn mặt quan tâm chính xác làm đầu vào cho các mô hình cụ thể khác, ước tính được các điểm chính trên khuôn mặt 3D (ví dụ: MediaPipe Face Mesh), các đặc điểm trên khuôn mặt hoặc phân loại biểu hiện và phân đoạn vùng khuôn mặt BlazeFace sử dụng một mạng trích xuất tính năng nhẹ được lấy cảm hứng từ những mô hình MobileNetV1 / V2, một sơ đồ cấu trúc thân thiện với GPU được sửa đổi từ Single Shot MultiBox Detector (SSD) và chiến lược phân giải liên kết cải tiến thay thế cho việc triệt tiêu không tối đa [37]
Một công cụ hỗ trợ phát hiện các điểm chính trong tư thế của con người là MediaPipe Pose Công cụ này hỗ trợ phát hiện các tư thế cơ bản của con người bằng lý thuyết khung xương người Dự đoán tư thế con người từ những khung hình trong video đóng vai trò quan trọng và được ứng dụng trong các hoạt động thực tiễn của con người rất nhiều, hỗ trợ cho các bài toán xử lý ảnh, nhận dạng ngôn ngữ ký hiệu, định lượng các bài tập thể chất, cử chỉ toàn thân Ví dụ trong các ứng dụng xác định các động tác tập yoga, thể dục, hoặc các động tác của con người nhằm điều khiển các thiết bị máy tính….MediaPipe Pose là một giải pháp để theo dõi các tư thế cơ thể có độ chính xác và tốc độ xử lý rất cao MediaPipe Pose ước tính được vị trí của 33 điểm chính 3D, các điểm chính này nằm trên các kết cấu của khung xương người Các khung hình trong video RGB sử dụng BlazePose trong thư viện được cung cấp thông qua API ML Kit Pose Detection API xác định được những điểm chính (keypoint), khi kết nối những điểm này với nhau chúng ta sẽ có một tư thế của khung xương xác định MediaPipe Pose là một thư viện được cung cấp trên nhiều nền tảng với những phép tính nhanh chóng Những thư viện xử lý hình ảnh xác định vị trí các điểm chính trên đối khung xương thường được thực hiện trên hệ thống phần cứng mạnh mẽ GPU hay CPU lớn và thời gian xử lý không nhanh chóng Tuy nhiên MediaPipe Pose cung cấp một thư viện thông qua API với kích thước gói thư viện nhẹ, dễ cài đặt trong nhiều môi trường phát triển khác nhau như trên các thiết bị di động, máy tính để bàn, máy tính xácc tay, hỗ trợ các ngôn ngữ như python, C++ và các nền tảng Web
Person/pose Detection Model Để dự đoán được vị trí của người trong thư viện này, người ta sử dụng một model được xây dựng sẵn nhằm phát hiện khuôn mặt người (MediaPipe Face Detection) Ngoài ra dựa vào các trọng số trong BlazeFace model, người ta sẽ dự đoán 2 điểm chính của tâm người và góc quay của người Từ những điểm chính này người ta sẽ vẽ được một đường tròn bao quanh đối tượng đang được xử lý Xét một ví dụ cụ thể như hình sau:
Chúng ta thấy rõ với một người khuôn mặt sẽ được phát hiện và đóng khung Ngoài ta vị trí tại điểm hông của người đang được xác định và một vị trí trên đầu nhằm xác định được góc quay và sự chuyển động của đối tượng đang được dự đoán Khi đối tượng này được xác định thì một vòng tròn bao quanh đối tượng cũng được xác định dựa vào đó
Hình 3.10 Mô phỏng dự đoán vị trí khuôn mặt và 2 điểm chính [37]
HỆ THỐNG NHẬN DẠNG ĐOẠN VĂN BẢN TRONG THÔNG TIN CỜ HIỆU PHẤT TAY
Cấu trúc hệ thống
Chúng ta có thể tóm tắt một số điểm quan trọng trong quá trình truyền thông tin cờ hiệu phất tay như sau:
- Tư thế người phát tin tức cờ hiệu luôn trong tư thế thẳng đứng, mặt quay về phía người nhận tin tức, và quan sát tín hiệu từ người nhận tin tức
- Cánh tay người phát tin sẽ luôn luôn được đưa ra phía trước, không được phép để cánh tay và cờ tay ra phía sau lưng người phát
- Quy trình phát một bảng điện(gồm nhiều từ) là người phát sẽ phát từng từ trong bảng điện, khi phát hết một từ sẽ trở về tư thế nghỉ, quan sát tín hiệu từ người thu, nếu ng thu đã nhận được từ mới phát thì tiếp tục phát từ tiếp theo Trong trường hợp người thu không nhận được hoặc không hiểu được từ của người phát, thì thực hiện phát lại từ đó cho người thu
- Khi muốn phát một ký tự là chữ số, người phát phải chuyển về tư thế bắt đầu phát số trước khi phát tín hiệu, sau khi kết thúc chuỗi số, người phát phát phát ký tự kết thúc số Để kết thúc phiên liên lạc 2 bên phát ký tự “R” 3 lần
- Với những từ phát âm tiếng việt phát trực tiếp cùng với từ muốn phát âm ví dụ ‘Â’ thì phát liên tục AA, bảng chuyển đổi này đã được trình bày ở Chương 2
- Với ký tự phát liên tục giống nhau thì người phát sẽ phải chuyển về tư thế nghỉ ở giữa 2 ký tự ví dụ AA-> người phát ‘A’ ‘Nghỉ’ ‘A’
Dựa trên những điểm chính được đề cập ở trên chúng ta có thể xây dựng được lưu đồ hệ thống cho quá trình xử lý tin tức như sau:
Hình 4.1 Lưu đồ hệ thống nhận dạng bảng điện trong thông tin cờ hiệu phất tay
Từ Hình 4.1 chúng ta thấy được dữ liệu đầu vào là video ghi nhận hình ảnh của người phát tin tức Trước khi phát bất kỳ từ nào thì người phát sẽ ở tư thế nghỉ
- Camera: Có chức năng thu nhận hình ảnh của người phát tin tức, quá trình thực nghiệm có sử dụng các loại camera khác nhau để thu nhận hình ảnh, dữ liệu đầu ra của khối này là video chứa hình ảnh người phát tin
- Capture: Có chức năng phân tích video thu nhận được từ khối camera thành các frame hình ảnh Hiện tại mỗi giây sẽ có 30 frame được tạo thành Dữ liệu đầu ra của khối này là list danh sách các hình ảnh được capture từ video đầu vào
- Detect keypoint: Sau khi nhận được các frame hình ảnh từ khối Capture, với mỗi hình ảnh sẽ chứa thông tin các hành động Khối này có chức năng sẽ thực hiện phát hiện các điểm chính trên cơ thể con người, làm dữ liệu đầu vào cho các khối tiếp theo Dữ liệu đầu ra của khối này là tọa độ các điểm trên cơ thể
- Module: Đây là một module máy học được huấn luyện dựa trên các tập dữ liệu thực nghiệm, trong đề tài này module được xây dựng dựa trên 2 thuật toán chính đó là Neural Network và Support Vector Machine, đây là 2 giải thuật máy học theo dạng học có giám sát (supper version) Có chức năng xác định xem frame đang xử lý là frame tương ứng với ký tự nào, sau khi frame đã được đi qua khối Detect Keypoint Cụ thể khối module này sẽ dựa vào list các tọa độ của các keypoint được chọn từ khối Detect Keypoint đưa vào, dự đoán dữ liệu đó là thuộc lớp dữ liệu(class) nào
- Process: Đây là khối lập trình xử lý các trường hợp đặc biệt, như khi thu nhận được frame mang thông tin là ký tự chuyển số thì sẽ bắt đầu quá trình ghi nhận số, sau khi kết thúc quá trình nhận số thì phải chuyển qua quá trình nhận ký tự Trong trường hợp khi nhận được ký tự giống nhau và có ký tự nghỉ ở giữa thì thực hiện hay thế phiên âm tiếng việt
- Word là kết quả cuối cùng của hệ thống, hiển thị chữ cái bên phát muốn phát cho bên thu nhận được.
Phần mềm xử lý dữ liệu
Khi truyền dữ liệu một đoạn văn bản(bảng điện), hệ thống nhận dạng sẽ chia video nhận được thành các frame, mỗi frame này sẽ mang một tư thế của người phát tin tức Như vậy trong một các frame liên tiếp nhau sẽ trùng lặp các ký tự giống nhau, điều này làm cho hệ thống xử lý bị chậm và dễ tạo sai sót khi phát hiện ký tự Do đó cần có sự loại bỏ những frame có tư thế giống nhau,
Phương pháp để xử lý yêu cầu này là dựa vào cách tính khoảng cách giữa
2 điểm Trong truyền thông tin cờ tay, để truyền đạt một ký tự, người phát cần dừng lại ở tư thế mang ý nghĩa ký tự cần truyền một khoảng thời gian Từ căn cứ này chúng ta sẽ tính được khoảng cách Euclid của các điểm mang thông tin giữa 2 frame (norm2) gần nhau sẽ nhỏ hơn một mức ngưỡng t thực nghiệm cho thấy giá trị t nằm trong khoảng
Hình 4.2 Lưu đồ xử lý hệ thống nhận dạng đoạn văn bản
Trong trường hợp những frame này có khoảng cách nhỏ mức ngưỡng, sẽ được đưa vào hệ thống nhận dạng ký tự trong bảng chữ cái, mô hình này được trình bày trong chương 3 của luận văn Giá trị nhận được sau khi nhận dạng là một ký tự, ký tự này sẽ được kiểm tra xem có bị trùng với ký tự trước hay không Thực hiện bước kiểm tra theo quy định của truyền thông tin cờ tay được tóm tắt ở phần đầu Chương này, nếu 2 ký tự giống nhau liên tiếp, người phát phải thực hiện trở về tư thế nghỉ trước khi phát ký tự giống nhau thứ 2 Trong bảng chữ cái tư thế nghỉ tương đương với một ký tự trong bảng chữ cái, do đó nếu 2 ký tự giống nhau, sẽ chỉ lấy một giá trị trước đó, còn những trường hợp sau sẽ được bỏ qua Những ký tự không giống nhau sẽ được đưa vào một kết quả tạm trong hàng đợi bộ nhớ, sau đó kiểm tra tiếp nếu video đã hết frame, mô hình sẽ thực hiện chuẩn hóa những ký tự trong hàng đợi, thành đoạn văn bản theo quy tắc thông tin cờ hiệu phất tay Xét một ví dụ như sau: Đoạn văn bản cần truyền đi:
“ ĐẠI HỌC BÁCH KHOA ” Sau quá trình nhận dạng chuỗi ký tự nhận được:
Chuẩn hóa dữ liệu thay thế những ký tự “ng” bằng khoảng trắng, những ký tự phiên âm tiếng việt được thay thế theo quy tắc phiên âm tiếng việt, những ký tự là phiên âm sẽ được thực hiện thay thành dấu tương ứng
4.2.2 Một số thư viện hỗ trợ lập trình
Thư viện lập trình giao diện
Python là một ngôn ngữ lập trình hướng đối tượng, bậc cao, cấu trúc rõ ràng, dễ đọc cho những người mới Đặc biệt python được đánh giá là một ngôn ngữ hỗ trợ mạnh trong lĩnh vực khoa học máy tính và trí tuệ nhân tạo Trong thời gian đầu ngôn ngữ python được thiết kế để sử dụng trên hệ điều hành Unix, sau đó được mở rộng ra các hệ điều hành khác như OS, Window…tác giả chính của ngôn ngữ này hiện nay là Guido Van Rossu, ngoài tác giả này python được phát triển nhờ sự đóng góp của cộng đồng nhiều người khác [28]
Lập trình giao diện (GUI) sử dụng ngôn ngữ python có nhiều thư viện hỗ trợ như Tkinter, wxPython, JPython… Trong đề tài này tác giả sử dụng thư viện Tkinter lập trình GUI cho phần mềm Các công cụ trong Tkinter cung cấp theo hướng đối tượng, hỗ trợ các bảng điều khiển khác nhau như, nút nhấn, Label, textbox… những bảng điều khiển này được gọi là widget Bố cục của giao diện được Tkinter cung cấp gồm có pack(), grid(), place() [39]
Một gói giao thức hỗ trợ tính toán nhanh chóng, Trong đó đối tượng của numpy là các mảng nhiều chiều, trong đó có matrix được sử dụng nhiều trong các phép tính cộng, nhân ma trận… Numpy hỗ trợ mạnh và thực hiện các phép tính một cách nhanh chóng cho những phép tính trên mảng, bài toán logic, sắp xếp, thống kê, mô phỏng ngẫu nhiên, truy xuất, xóa, thêm dữ liệu trong mảng nhiều chiều [40] Trong luận văn sử dụng numpy để lưu dữ liệu huấn luyện, và các tập con, thực hiện các phép tính norm2 của các điểm được lưu dưới dạng mảng
Tensorflow là một framework được phát triển bởi đội ngũ của công ty google, hỗ trợ mạnh mẽ và rất nhiều công cụ trong mạng nơ ron học sâu, có thể được sử dụng để lập trình cho nhiều ngôn ngữ khác nhau, trong đó có python Lần đầu tiên giới thiệu là cuối năm 2015, hoạt động ổn định ở năm 2017, dưới dạng mã nguồn mở Trong Tensorflow mỗi một model máy học được xây dựng theo 3 phần chính, tiền xử lý dữ liệu, xây dựng model, huấn luyện và ước tính Framework này hỗ trợ nhiều công cụ cho tiền xử lý dữ liệu như, mô phỏng tập dữ liệu Graph, phác thảo biểu đồ, hiển thị kết quả cho tập dữ liệu, tính toán số lượng params của model… Một số thuật toán được sử dụng rộng rãi và framework này hỗ trợ xây dựng model như Linear regression, Deep learning classification, Classification, Deep learning wipe and deep, Booster tree regression… [41] [42] [43] [44]
Luận văn sử dụng một số thư viện hỗ trợ việc lập trình phần mềm nhận dạng như mediapipe thư viện này đã được trình bày trong Chương 3 của luận văn Thư viện os dùng để tạo các đường dẫn URL, linalg dùng để tính norm2 Thư viện opencv gồm các hàm giúp cho việc capture video thành các frame, hiển thị, lưu, thay đổi kích thước của hình ảnh Thư viện threading sử dụng cho việc tạo các luồng xử lý phụ, time…
Hình 4.3 Giao diện phần mềm nhận dạng đoạn văn bản thông tin cờ hiện phất tay
Giao diện phần mềm được thể hiện trên Hình 4.3, trong phần mềm này có
4 phân vùng chính, phân vùng 1 bao gồm các giá trị nhập vào, textbox (Choose File Model) đầu tiên chứa đường dẫn đến file model đã được xây dựng trong chương 3, nếu không chọn file model, phần mềm sẽ tự động lấy file model mặc định trong thư mục chứa phần mềm Tiếp đến là textbox (Choose File Video) chứa đường dẫn đến file chứa video ghi lại hình ảnh, của người phát thông tin cờ hiệu phất tay, trong trường hợp sử dụng để nhận dạng trực tiếp bằng các thiết bị ghi hình có kết nối tới máy tính, textbox này có thể được bỏ trống, không sử dụng Phân vùng thứ 2 gồm các tùy chọn Rotation: quay hình ảnh 180 độ để dễ quan sát, nếu hình ảnh bị lật ngược, Using Webcam dùng trong trường hợp lấy dữ liệu hình ảnh trực tiếp từ thiết bị ghi hình có kết nối, Show image and predict là tùy chọn hiển thị hình ảnh và kết quả nhận dạng hình ảnh đó, với chức năng này khi hình ảnh được hiện lên sẽ giữ chậm 1 giây, do đó hệ thống sẽ bị chậm hơn so với không sử dụng tùy chọn này Phân vùng thứ 3 thể hiện kết quả nhận dạng trong đó textbox Predict sẽ hiển thị dữ liệu nhận dạng chưa được xử lý các ký tự như dấu, hay phiên âm, Result là kết quả cuối dùng sau khi đã xử lý đoạn văn bản về tiếng việt Phần còn lại là những nút nhấn Start bắt đầu nhận dạng, Stop: dừng quá trình đọc dữ liệu và nhận dạng, CheckImage: kiểm tra một số khung hình đầu tiên của video đã được đọc vào hệ thống hay chưa.