Cơng cụ nhận dạng giọng nói của googl e Google Speech API

Một phần của tài liệu Nghiên cứu phương thức giao tiếp giữa người và máy dựa trên công nghệ điện toán đám mây, sử dụng trong robot dịch vụ (Trang 31)

Trong trường hợp này, việc nhận dạng, xử lý ngơn ngữ (chính là TTS hoặc NLP đã đề cập ở trên) sẽ diễn ra trên máy chủ của các công ty cung cấp dịch vụ. Phương pháp đám mây giúp việc nhận dạng được chính xác hơn. Tuy ứng dụng có dung lượng nhỏ, nhưng bù lại thì thiết bị ở phía người dùng phải ln kết nối với Internet. Độ trễ trong q trình gửi giọng nói từ máy lên server, rồi trả kết quả từ server về lại máy cũng là những vấn đề đáng cân nhắc. Siri, Google Voice, Cortana hiện đang sử dụng phương thức này.

Google Speech API cho phép người lập trình chuyển âm thanh sang văn bản bằng cách ứng dụng thuật toán mạng thần kinh nhận tạo vào API để dễ dàng sử dụng. Với API có thể nhận dạng hơn 110 ngôn ngữ và biến thể, làm cơ sở hỗ trợ tốt hơn cho người dùng tồn cầu. Chúng ta có thể sao chép văn bản của người dùng bằng micro của ứng dụng, bật và ra lệnh điều khiển thông qua âm thanh, hoặc chuyển đổi file âm thanh, ngồi ra cịn nhiều ứng dụng khác.

25

Google Speech API được ứng dụng thuật toán mạng nơ-ron tiên tiến nhất để nhận dạng giọng nói của người dùng một cách chính xác nhất. Độ chính xác của Speech API được cải thiện theo thời gian khi Google dựa trên dữ liệu của người dùng sử dụng sản phẩm của mình.

Google Speech API có thể nhận dạng hơn 110 ngôn ngữ và các biến thể để hỗ trợ người dùng trên tồn thế giới, và bạn có thể lọc nội dung khơng phù hợp trong kết quả văn bản.

Hình 2-11: Sợ đồ nhận dạng giọng nói của google speech api

Speech API có thể đáp ứng thời gian thực khi xử lý và trả kết quả. Kết quả xuất hiện ngay tức thì trong khi người dùng đang nói và dĩ nhiên Google Speech API có thể trả kết quả đối với các đoạn âm thanh được lưu trữ trong tập tin.

Chất lượng xử lý của Speech API rất tốt, có độ chính xác cao trong môi trường tiếng ồn, người dùng khơng cần xử lý tín hiệu hoặc lọc nhiễu trước khi gửi âm thanh cho Speech API. Hệ thống có thể hồn tồn khống chế được nhiễu âm thanh từ nhiều môi trường khác nhau.

26 2.6 Xử lý ảnh số

2.6.1 Giới thiệu về ảnh số:

Một ảnh số có thể được biểu diễn bởi một hàm 2 chiều, ( , ), với , là hệ tọa độ không gian và độ lớn của tại mỗi điểm tọa độ ( , ) được gọi là cường độ hoặc là mức xám của ảnh tại vị trí đó. Khi , và giá trị độ lớn của là những đại lượng rời rạc hữu hạn, chúng ta gọi ảnh đó là ảnh số.

Mỗi điểm ảnh tại tọa độ ( , ) trong một ảnh số với độ xám hoặc độ màu nhất định được gọi là một pixel. Đặc tính của hàm ( , ) cho mỗi pixel phụ thuộc vào loại ảnh (ảnh nhị phân, ảnh xám, ảnh màu…). Một ảnh số gồm các pixel được sắp xếp trong một mảng hình

chữ nhật (hoặc gọi là bitmap). Mức xám của ảnh L = 2n.

Bit trên mỗi pixel: Giá trị các màu sắc được đại diện bởi số lượng bit trên mỗi pixel (bpp). Mỗi 1 bpp ảnh sử dụng 1 bit cho mỗi pixel, vì vậy mỗi pixel có thể được bật và tắt (ảnh nhị phân). Mỗi một bit được bổ sung thêm sẽ làm tăng gấp đơi số lượng màu, ví dụ ảnh 2bpp có thể có 4 màu, ảnh 3bpp có thể có 8 màu…

1bpp = 21= 2 màu (đen hoặc trắng). 2bpp = 22= 4 màu.

8bpp = 28 = 256 màu.

16bpp = 216 = 65.536 màu (Highcolor). 24bpp = 224 = 16,8 triệu màu (Truecolor).

x y ) 0 , 0 ( f ) , ( yx f

27 2.6.2 Một số kiểu ảnh số thường gặp:

Ảnh nhị phân (binary image): Ảnh nhị phân là một kiểu ảnh số mà tại mỗi pixel chỉ có thể nhận một trong hai giá trị là 0 hoặc 1 đặc trưng cho màu trắng (mức 1) hoặc đen (mức 0). Ảnh nhị phân có ưu điểm là đơn giản, kích thước nhỏ gọn, thuận tiện cho việc lưu trữ, xử lý, phân tích ảnh.

Hình 2-13: Mơ tả ảnh nhị phân.

Ảnh xám (grayscaledigital image): Ảnh xám là kiểu ảnh 8bit (256 màu), giá trị mỗi pixel được lưu trữ trong 1 byte. Ảnh xám là một dạng của ảnh đen trắng với giá trị độ lớn tại mỗi pixel thay đổi từ 0 đến 255 (với ảnh 8bit) tương ứng với mức thay đổi từ màu đen đến màu trắng.

Hình 2-14: Thang màu mức xám ảnh 8 bit.

28

Ảnh màu (color image): Để thể hiện hình ảnh một cách trực quan, mỗi pixel phải thể hiện được 3 kênh màu trong không gian màu. Các không gian màu thường được sử dụng là RGB (Red, Green and Blue), YCbCr, HSV (Hue, Saturation and Value). Ảnh màu có thể là ảnh 4bit, 8bit, 32bit…Trong đó, khơng gian màu RGB được sử dụng phổ biến trong xử lý ảnh. Không gian RGB là sự kết hợp của 3 màu cơ bản là màu đỏ, xanh lá và xanh dương (Red – Green - Blue).

Mỗi pixel ảnh màu được biểu diễn như sau: = . Khi phối hợp 3 màu cơ bản này, ta có được nhiều màu mong muốn. Ví dụ với ảnh màu 8 bit: màu đỏ (256,0,0), xanh lá (0,256,0), xanh dương (0,0,256), vàng (256, 256,0), tím (256,0,256), xanh lơ (0, 256, 256), trắng (256, 256, 256).

2.6.3 Giới thiệu về xử lý ảnh số

Xử lý ảnh số thường được biết đến với tên viết tắt là DIP (Digital Image Proccessing). DIP sử dụng các thuật tốn máy tính để phân tích ảnh kỹ thuật số. Dưới đây là sơ đồ cơ bản của quá trình xử lý ảnh:

Hình 2-16: Sơ đồ xử lý ảnh số [16].

Các thiết bị thu nhận ảnh phổ biến là máy ảnh kỹ thuật số, máy quay phim, thiết bị scan, webcam… Nhìn chung các hệ thống thu nhận ảnh thực hiện 2 quá trình là biến đổi năng lượng quang học thành năng lượng điện (cảm biến) và tổng hợp năng lượng điện thành ảnh.

29

Có 2 loại cảm biến hình ảnh sử dụng phổ biến là loại CCD và CMOS. Loại cảm biến CCD có đặc điểm là độ nhạy sáng cao, cho độ phân giải lớn và thể hiện được các dải màu liên tục. Loại CMOS thì có độ nhạy sáng thấp hơn nên loại CCD được sử dụng phổ biến cho các loại máy ảnh kỹ thuật số và camera. Tuy nhiên, với sự phát triển của khoa học kỹ thuật hiện đại, loại CMOS đang dần chiếm lại ưu thế bởi khả năng tích hợp cao (ADC, cân bằng sáng…) của loại cảm biến này.

2.6.4 Xử lý ảnh:  Gradient của ảnh:  Gradient của ảnh:

Gradient là một véctơ có các thành phần biểu thị tốc độ thay đổi giá trị của điểm ảnh.

∇ = , (2.12)

Trong đó: = ∆ = ( , ) ( , ) , (2.13)

= ∆ = , ( , ) (2.14)

Với , : khoảng dịch chỉnh theo x và y; trong ảnh số = = 1

∆ = ( + 1, ) − ( , ) , ∆ = ( , + 1) − ( , ) (2.15) Gradient của 1 điểm ảnh với hướng thay đổi về cường độ sáng:

Hướng của gradient được xác định bằng công thức:

= ∆

∆ (2.16)

Độ lớn của gradient điểm ảnh có thể được xác định bằng cơng thức: ∇ =[∆ ,0]

∇ =[0,∆ ]

30

‖∇ ‖ = + = (∆ ) + ∆ (2.17)

Gradient được tính thơng qua việc trượt ma trận mặt nạ (nxn) lên ảnh được phân tích. Mặt nạ này được gọi là mặt nạ cuộn hay kernel.

Tính gradient trong ảnh thật sự hữu ích cho việc tách biên dạng vật, từ đó có thể khoanh vùng và phân đoạn ảnh phục vụ cho việc xử lý, phân tích.

 Làm mượt ảnh và lọc nhiễu.  Mặt nạ cuộn trong ảnh:

Xét ảnh = ( , )có kích thước ( )và mặt nạ có kích thước ( ) Giá trị ( , ) được xác định bằng cách trượt mặt nạ qua từng pixel của ảnh tại vị trí ( , ), có cơng thức tổng qt:

( , ) = ⨂ = ∑ ∑ ( , ) ∗ ( + , + ) (2.18)

VD: với mặt nạ cuộn có kích thước 3x3

( , ) = 0 ∗ 21 + 1 ∗ 22 + 0 ∗ 23 + 1 ∗ 31 + 0 ∗ 32 + 1 ∗ 33 + 0 ∗ 41 +

1 ∗ 42 + 0 ∗ 43 = 128 (2.19)

 Lọc ảnh: có nhiều phương pháp lọc ảnh khác nhau như lọc trung vị (median), lọc tuyến tính (linear), lọc Gaussian… Trong đó, bộ lọc Gaussian được sử dụng phổ biến.Hàm gaussian cơ bản:

31

Với là trị trung bình hoặc vị trí đỉnh, là phương sai. Hàm gaussian tiêu chuẩn thì = 0 và = 1.

Hình 2-17: Biểu đồ Gauss.

Lọc gaussian sử dụng mặt nạ cuộn với kích thước 3x3, 5x5, 7x7…

( , ) = ( , ) ( + , + ) = ( ) ( + , + )

= ∑ ∑ ( + , + ) (2.20)

Thông thường lọc gaussian cho ảnh I với mặt nạ cuộn kích thước nxn sẽ được tiến hành theo 3 bước:

1- Tạo mặt nạ cuộn gaussian 1 chiều có kích thước n. 2- Trượt mặt nạ này qua từng cột của I được IN.

32

Hình 2-18: Mặt nạ cuộn gaussian 1 chiều.  Chuyển ảnh màu sang ảnh xám, nhị phân.

 Chuyển sang ảnh xám: có 3 cách sau có thể áp dụng để chuyển từ ảnh màu sang ảnh xám:

Lightness: Lấy trung bình giá trị màu cao nhất và màu thấp nhất

( , ) = [max( , , ) + min ( , , )]/2 (2.21)

Average: Lấy giá trị màu trung bình

( , ) = ( , , )/3 (2.22)

Luminosity: Nhân theo hệ số

( , ) = ( , ) ∗ 30% + ( , ) ∗ 59% + ( , ) ∗ 11%hoặc ( , ) = ( , ) ∗ 21% + ( , ) ∗ 71% + ( , ) ∗ 7% (2.23)

33

Trung bình RGB Nhân hệ số

Hình 2-19: Chuyển từ ảnh màu sang ảnh xám [14].

 Chuyển sang ảnh nhị phân: Chuyển sang ảnh nhị phân được thực hiện thông qua việc đặt ngưỡng (Thresholding T). Ví dụ với ảnh xám 8 bit:

( , ) = 0 , ( , ) ≤

1 , ( , ) > (2.24)

Với là ảnh gốc, là ảnh nhị phân sau khi chuyển đổi.

Ảnh gốc Ảnh nhị phân

Hình 2-20: Chuyển từ ảnh xám 8 bit sang ảnh nhị phân.  Histogram.

Histogram là một biểu đồ thể hiện số lượng và cường độ màu của các pixel trong toàn bộ ảnh.

34

Hình 2-21: Giản đồ histogram ảnh xám.  Thay đổi độ sáng, độ tương phản.

Độ sáng và độ tương phản của ảnh có thể được thay đổi bằng cách thay đổi giá trị và tại mỗi pixel của ảnh gốc.

( , ) = ( , ) + (2.25)

Với > 0 là hệ số thay đổi độ tương phản, hệ số thay đổi độ sáng của ảnh.

Trong đó, là ảnh ban đầu, là ảnh sau khi hiệu chỉnh.

Độ sáng cao Histogram

Hình 2-22: Tăng độ sáng và giản đồ histogram.

Cường độ S ố lư ợ ng

35

Độ sáng thấp Histogram

Hình 2-23: Giảm độ sáng và giản đồ histogram.

Độ tương phản cao Histogram

Hình 2-24: Tăng độ tương phản và giản đồ histogram.

Độ tương phản thấp Histogram

36

Dựa vào biểu đồ histogram, ta có thể nhận thấy khi thay đổi độ sáng giá trị biểu đồ histogram sẽ dịch sang trái hoặc sang phải, khi thay đổi độ tương phản giá trị biểu đồ sẽ giản ra 2 biên hoặc co về giữa.

 Phát hiện biên: Biên trong ảnh là một đường biên giới hay một đường bao (contour) mà ở đó xuất hiện sự thay đổi đáng kể một vài tính chất vật lý của ảnh.Thay đổi tính chất vật lý biểu hiện bằng nhiều cách, bao gồm thay đổi cường độ, màu sắc, kết cấu bề mặt. Phát hiện biên rất có ít trong việc nhận dạng, phân vùng ảnh…

Có một số phương pháp phát hiện biên cơ bản như phương pháp Gradient, Roberts, Sobel, Canny… Trong đó, phương pháp sobel và canny được sử dụng phổ biến.

Ảnh gốc Sobel Canny

Hình 2-26: Tách biên bằng phương pháp Sobel và Canny. Phương pháp Canny được thực hiện qua 5 bước:

1- Tìm gradient: Làm mờ ảnh để loại nhiễu. Sử dụng bộ lọc Gaussian để loại bỏ nhiễu tần số cao cùng mặt nạ cuộn 5x5.

= ⎣ ⎢ ⎢ ⎢ ⎡24 49 125 49 24 5 12 15 12 5 4 9 12 9 4 2 4 5 4 2⎦ ⎥ ⎥ ⎥ ⎤ (2.26) = ∗ ( , ) = ∗ (2.27)

37

= ∗ ( , )= ∗ (2.28)

Với = − ( , ) , = − ( , ) (2.29)

Trong đó, là ảnh đang xét, ( , ) là hàm gaussian với mặt nạ cuộn .

2- Tính độ lớn gradient: Biên được phát hiện thông qua sự thay đổi lớn gradient.

∇ = , = , , ‖∇ ‖ = ( ) + (2.30)

3- Xác định hướng của các điểm biên:

= (2.31)

4- Phát hiện các điểm cực đại địa phương. 5- Liên kết các điểm biên.

2.6.5 Các ứng dụng cơ bản của công nghệ xử lý ảnh số

 Trong y học: Sử dụng phổ biến trong chụp cộng hưởng từ MRI, quét biên dạng, làm rõ nét biên dạng, ảnh X quang…

 Nhận dạng: Công nghệ xử lý ảnh được sử dụng rộng rải trong việc nhận dạng dấu vân tay, nhận dạng chữ viết, nhận dạng khuôn mặt…

 Trong công nghiệp sản xuất: Phân loại sản phẩm, theo dõi sản phẩm, hệ thống…với độ tin cậy cao.

 Robot: Công nghệ xử lý được ứng dụng cho robot nhằm tạo ra hệ thống có khả năng tương tác với mơi trừng xung quanh một cách linh hoạt hơn, nó đảm nhận nhiệm vụ như thị giác con người.

2.6.6 Camera calibration Mơ hình pinhole Mơ hình pinhole

Về mặt hình học, mơ hình này bao gồm một mặt phẳng ảnh và một tâm điểm C nằm trên mặt phẳng tiêu cự .

38

Hình 2-27: Mơ hình Pinhole

Một đặc điểm rất cơ bản của mơ hình này là tất cả những điểm ảnh trên mặt phẳng ảnh được tạo thành bởi điểm qua sẽ là thẳng hàng với và , có nghĩa , , nằm trên một đường thẳng. Điểm còn được gọi là tâm quang, đường thẳng vng góc với và được gọi là trục quang, được gọi là điểm chính.

Lý thuyết camera calibration sử dụng mơ hình pinhole

Gọi ( , , , ) là hệ tọa độ camera, ( , , , ) là hệ tọa độ của các điểm ảnh. Ta có

= = (2.32)

Thay mặt phẳng bằng một mặt phẳng khác nằm phía bên kia mặt phẳng , tính chất hình học sẽ không đổi. Trong hệ tọa độ mới này, mỗi điểm ( , ) giờ đây sẽ có tọa độ 3D là ( , , ).

39

Trong phép chiếu hình học, tất cả những điểm nằm trên một đường thẳng vng góc với mặt phẳng chiếu thì khi chiếu xuống mặt phẳng đó chỉ thu được một điểm duy nhất, do đó với bất kỳ một điểm( , , ) nào đó thì tỷ lệ ( , , ) (với bất kỳ)

khi chiếu qua điểm ta cũng chỉ thu được một điểm ( , ) duy nhất. Từ lập luận

trên và (3.1) ta có:

= = ; = = (2.33)

Phương trình (3.2) có thể được viết lại như sau:

1 = 0 0 0 0 0 0 0 0 1 0 1 (2.34) Ma trận: = 0 0 0 0 0 0 0 0 1 0 (2.35)

gọi là ma trận chiếu phối cảnh.

Như vậy với mỗi một điểm ( , , )và một điểm ảnh tương ứng ( , )ta có

thể viết lại :

, = , (2.36)

trong đó , ( , , 1) và ,( , , , 1).

Trong thực tế thì một đối tượng thật có thể biểu diễn bởi một hệ tọa độ 3D bất kỳ mà không phải là tọa độ camera như ta giả sử. Để tính tốn được trên các hệ tọa độ này, cách đơn giản nhất là ta chuyển nó về hệ tọa độ camera. Giả sử rằng là một điểm bất kỳ trong hệ tọa độ bất kỳ, là một điểm trong hệ tọa độ camera. Khi đó, có thể chuyển về bằng một phép quay và một phép tịnh tiến

40

Hay tổng quát hơn,

, = , (2.38) trong đó: = 1 ớ = 0 0 0 (2.39)

Ma trận và vector mơ tả hướng, vị trí tương đối giữa hệ tọa độ camera và hệ tọa độ thực tế. Ma trận chứa 3 phép quay (theo , , ) và vector chứa 3 phép tịnh tiến. Những thông số chứa trong và được gọi là những thông số ngoại của camera.

Hình 2-29: Phép quay vectơ

Từ (2.36) và (2.37) ta có: , = , = , (2.40)

Trong thực tế, tâm của ảnh khơng phải lúc nào cũng là điểm chính CI. và tỷ lệ theo các trục u, v không phải lúc nào cũng như nhau. Người ta sử dụng một ma trận K để diễn tả những sai lệch đó và cuối cùng mối quan hệ giữa một điểm trong thực tế MW và một điểm ảnh MI có thể được diễn tả từ công thức sau:

, = , (2.41) hay cụ thể hơn : 1 ~ 0 0 0 0 0 0 0 0 1 0 1 (2.42)

41

Với:

= 0

0 0 1

(2.43)

Trong đó , là tỷ lệ dọc theo hai trục của ảnh. , là điểm chính của hệ tọa độ ảnh (gốc tọa độ, thay cho ở trên). Góc thể hiện độ méo giữa hai trục , . nếu trong ảnh lý tưởng ( , ) vng góc với nhau thì góc này bằng 0.

Hình 2-30: Tương quan của ảnh lý tưởng và thực tế

Có được mối quan hệ giữa các điểm ảnh và điểm ở ngoài thực tế đồng nghĩa với việc ta có thể tái tạo lại những điểm thực tế 3D dựa trên các ảnh thu được, tuy nhiên việc đầu tiên và quan trọng là ta phải tìm ra được các thơng số của camera. Có 5 thơng

số nội và 6 thông số ngoại cần phải tìm. Việc đi tìm các thơng số này được gọi là q

trình calibrate camera. Vì mỗi camera có ống kính, khác nhau, vị trí khác nhau… nên khơng có một thơng số chung cho tất cả các loại camera, ta phải làm cho mỗi camera

Một phần của tài liệu Nghiên cứu phương thức giao tiếp giữa người và máy dựa trên công nghệ điện toán đám mây, sử dụng trong robot dịch vụ (Trang 31)

Tải bản đầy đủ (PDF)

(75 trang)