CHƢƠNG 2 CƠ SỞ NGHIÊN CỨU
2.1.3 Ảnh nhị nhân
Ảnh đƣợc biểu diễn bởi một ma trận hai chiều thuộc kiểu logical. Mỗi điểm ảnh chỉ có thể nhận một trong hai giá trị là 0 (đen) hoặc 1 (trắng).
Hình 2.7: Ảnh nhị phân biểu diễn dƣới dạng số 2.2 Nhị phân hóa 2.2 Nhị phân hóa
2.2.1 Phân ngƣỡng nhị phân
Khi xem xét ảnh xám của vết nứt nhƣ ở Hình 2.5, ta có thể dễ dàng nhận ra rằng phần vết nứt sẽ có màu tối hơn thành phần bê tơng khơng có vết nứt. Khi đó ta có thể phân đoạn vết nứt trên ảnh I(x,y) bằng cách lựa chọn một ngƣỡng k thích hợp. Theo đó
Hình 2.8 minh họa việc chọn ngƣỡng k dựa trên histogram của một ảnh I(x,y). Về căn bản, Histogram là đồ thị thể hiện tần số phân bố của các giá trị trên ảnh (trong trƣờng hợp này chính là các giá trị cƣờng độ của ảnh xám I(x,y)). Giá trị phân ngƣỡng K nên đƣợc chọn để có thể phân tách đƣợc hai vùng có histogram lớn nhất. Và theo nhƣ nhận xét ở trên, thì vùng có vết nứt sẽ “tối” hơn vùng bình thƣờng do đó phần vết nứt sẽ là vùng Class 0 trên đồ thị.
( ) { ( )
Hình 2.8: Hình ảnh phân ngƣỡng
2.2.2 Thuật toán phân ngƣỡng Otsu
Thuật toán phân ngƣỡng Otsu đƣợc tác giả Nobuyuki Otsu giới thiệu năm 1979 [22]. Phƣơng pháp phân ngƣỡng Otsu dựa trên biểu đồ histogram. Trƣớc tiên, tác giả xét biểu đồ histogram chuẩn hóa dựa trên hàm mật độ (PDF – Probability density function) theo công thức:
q 0,1,2,...,L-1 n n r pr q q , (2.3) Trong đó: - n - tổng số pixel trên ảnh; - nq - tổng số pixel có mức độ xám rq; - L - tổng số ngƣỡng độ xám trên ảnh;
Giả sử có ngƣỡng k đƣợc chọn sao cho C0 là tập hợp các pixel có ngƣỡng từ [0,1,…,k-1] và C1 là tập hợp các pixel có ngƣỡng từ [k,k+1,…,L-1]. Phƣơng pháp Otsu lựa chọn ngƣỡng k sao cho độ lệch chuẩn 2B giữa các lớp là lớn nhất. Độ lệch chuẩn 2B đƣợc xác định theo công thức:
2 T 1 1 2 T 0 0 2 B (2.4) Trong đó: 1 1 1 0 0 ; L k q q q k q q q r p r p k 1 0 q q 0 q 0 qp r / L 1 0 q q q T 1 1 L k q q q 1 qp r / ; qp r
2.2.3 Phƣơng pháp khử nhiễu dựa trên k-Nearest Neighbors
kNN là phƣơng pháp để phân lớp các đối tƣợng dựa vào khoảng cách gần nhất giữa đối tƣợng cần phân lớp và tất cả các đối tƣợng trong dữ liệu huấn luyện. Một đối tƣợng đƣợc phân lớp dựa vào k láng giềng của nó. K là số nguyên dƣơng lẻ đƣợc xác định trƣớc khi thực hiện thuật toán [23]. Ngƣời ta thƣờng dùng khoảng cách Euclidean để tính khoảng cách giữa các đối tƣợng.
Giả sử ta có n điểm dữ liệu đã đƣợc phân loại:
* + (2.5)
* + (2.6)
Tập L là tập các nhãn tƣơng ứng của các điểm điểm dữ liệu trong tập D. Dữ liệu cần đƣợc phân loại vào hai lớp I và II.
Thuật toán: k-Nearest Neighbours
Đầu vào: Tập dữ liệu D, số láng giềng cần xét và điểm dữ liệu cần phân loại . Đầu ra: Nhãn của điểm dữ liệu .
Bƣớc 1: Tính khoảng cách của tới tất cả các điểm dữ liệu. Ta có * + ̅̅̅̅. Bƣớc 2: Sắp xếp dãy * + ̅̅̅̅ theo thứ tự tăng dần ta đƣợc dãy * + ̅̅̅̅.
* ̅̅̅̅̅+
Bƣớc 4: Tính tần số xuất hiện của các nhãn I và II trong tập nhãn
(2.7)
Bƣớc 5: {
Hình 2.9: Thuật tốn k-nearest neighbours
Dựa trên ý tƣởng của k-nearest neighbours ta có thể xây dựng một bộ lọc nhiễu để khử các nhiễu trong q trình nhị phân hóa ảnh vết nứt. Hình 2.10 cho ta cái nhìn tổng qt về các nhiễu có thể xuất hiện trong q trình nhị phân hóa ảnh vết nứt bằng thuật toán Otsu.
Các nhiễu này có thể đƣợc giải quyết bằng cách tái phân lớp các điểm ảnh dựa trên các giá trị lân cận nó. Để thực hiện điều này, ta sẽ đặt một cửa sổ có kích thƣớc WxW (với W = 3,5,7…) với tâm là điểm ảnh đang xét. Khi đó giá trị của điểm ảnh đang xét sẽ là 1 nếu các điểm ảnh xung quanh có nhiều giá trị 1 hơn và ngƣợc lại. Hình 2.11 cho ta một ví dụ về việc khử nhiễu áp dụng ý tƣởng của thuật tốn KNN, và Hình 2.12 là kết quả vết nứt sau khi đƣợc khử nhiễu.
Hình 2.11: Khử nhiễu
Hình 2.12: Hình ảnh vết nứt sau khi đƣợc khử nhiễu 2.3 Nhận dạng vết nứt 2.3 Nhận dạng vết nứt
2.3.1 Trình bày tóm tắt về phân lớp dữ liệu
Phân lớp dữ liệu là một kỹ thuật trong khai phá dữ liệu đƣợc sử dụng rộng rãi nhất và đƣợc nghiên cứu mở rộng hiện nay. Mục đích của nó là để dự đốn những nhãn phân lớp cho các bộ dữ liệu hoặc điểm dữ liệu mới.
Đầu ra: Bộ phân lớp sau khi huấn luyện trên tập huấn luyện và những nhãn phân lớp của các điểm dữ liệu mới.
Phân lớp dữ liệu dựa trên tập huấn luyện và các giá trị trong một thuộc tính phân lớp và dùng nó để xác định lớp cho dữ liệu mới. Kỹ thuật phân lớp dữ liệu đƣợc tiến hành bao gồm 2 bƣớc:
Bƣớc 1: Xây dựng mơ hình từ tập huấn luyện (Training).
Mỗi bộ/mẫu dữ liệu đƣợc phân vào một lớp đƣợc xác định trƣớc.
Lớp của một bộ/mẫu dữ liệu đƣợc xác định bởi thuộc tính gán nhãn lớp.
Tập các bộ/mẫu dữ liệu huấn luyện - tập huấn luyện - đƣợc dùng để xây dựng mơ hình.
Mơ hình đƣợc biểu diễn bởi các luật phân lớp, các cây quyết định hoặc các cơng thức tốn học.
Hình 2.13: Ví dụ xây dựng mơ hình [24]
Bƣớc 2: Kiểm tra tính đúng đắn của mơ hình (Testing) và dùng nó để phân lớp dữ liệu mới.
Phân lớp cho những đối tƣợng mới hoặc chƣa đƣợc phân lớp.
Đánh giá độ chính xác của mơ hình.
Lớp biết trƣớc của một mẫu/bộ dữ liệu đem kiểm tra đƣợc so sánh với kết quả thu đƣợc từ mơ hình.
Tỉ lệ chính xác bằng phần trăm các mẫu/bộ dữ liệu đƣợc phân lớp đúng bởi mơ hình trong số.
Hình 2.14: Sử dụng mơ hình [24] 2.3.2 Tổng quan mạng neural nhân tạo
Mạng neural nhân tạo (Artificial Neural Networks: ANN) ra đời xuất phát từ ý tƣởng mô phỏng hoạt động của bộ não con ngƣời. Mạng neural nhân tạo là sự tái tạo bằng kỹ thuật những chức năng của hệ thần kinh con ngƣời với vô số các neural đƣợc liên kết truyền thông với nhau qua mạng. Giống nhƣ con ngƣời, ANN đƣợc học bởi kinh nghiệm, lƣu những kinh nghiệm đó và sử dụng trong những tình huống phù hợp.
Mạng neural trong một vài năm trở lại đây đã đƣợc nhiều ngƣời quan tâm và đã áp dụng thành công trong nhiều lĩnh vực khác nhau, nhƣ tài chính, y tế, địa chất và vật lý. Thật vậy, bất cứ ở đâu có vấn đề về dự báo, phân loại và điều khiển, mạng neural đều có thể ứng dụng đƣợc. Ví dụ nhƣ khả năng nhận dạng mặt ngƣời trong các hệ thống quản lý thông tin liên quan đến con ngƣời (quản lý nhân sự ở các công sở, doanh nghiệp; quản lý học sinh, sinh viên trong các trƣờng trung học, đại học và cao đẳng;…); các ngành khoa học hình sự, tội phạm; khoa học tƣớng số, tử vi,…
Kết hợp chặt chẽ với logic mờ, mạng neural nhân tạo đã tạo nên cuộc cách mạng thực sự trong việc thơng minh hóa và vạn năng hóa các bộ điều khiển kỹ thuật
cao cho cả hiện nay và trong tƣơng lai. Đơn cử nhƣ các ứng dụng tự động điều khiển hệ thống lái tàu, hệ thống dự báo sự cố…
Trong phần này tơi sẽ trình bày lại những vấn đề cơ bản liên quan đến mạng neural nhân tạo. Các thơng tin này hữu ích cho q trình nhận dạng kí tự số ở phần sau.
2.3.2.1 Khái niệm mạng neural a. Neural sinh học
Hình 2.15: Neural sinh học [25]
Trong đó:
Soma: là thân của neural, đây là trung tâm của q trình xử lý tín hiệu.
Dendrites: là các đƣờng truyền dữ liệu (dƣới dạng xung điện thế) đến cho các soma xử lý.
Axon: cũng nhƣ các dendrites, Axon cũng đƣợc kết nối trực tiếp với Soma. Tuy nhiên nhiệm vụ của nó là tạo ra các xung điện thế để dẫn tín hiệu đến các neural khác
Synapse: là các mối nối đặc biệt để nối giữa Axon và Dendrites.
Một cách đơn giản có thể tóm tắt hoạt động của một neural nhƣ sau: Soma sẽ lấy tổng các điện thế mà nó nhận đƣợc từ các ngõ vào (Dendrites) và phát ra một xung điện thế (Axon) trong trƣờng hợp tổng này lớn hơn một giá trị ngƣỡng nào đó.
Các neural đƣợc nối với nhau bởi các Synapses. Một Synapse đƣợc gọi là mạnh khi nó cho phép tín hiệu dễ dàng truyền qua và ngƣợc lại một synapse yếu sẽ khiến tín hiện truyền qua rất khó khăn. Q trình học tập của con ngƣời có thể xem nhƣ là việc điều chỉnh hoạt động của các synapse.
b. Mạng neural nhân tạo
Một neural sinh học có thể đƣợc mơ hình hóa nhƣ bên dƣới:
Hình 2.16: Mơ hình tốn học của một neural [25]
Tƣơng tự nhƣ neural sinh học, một neural nhân tạo cũng có N inputs ngõ vào. Mỗi input này đƣợc nhân với một trong số W tƣơng tƣ nhƣ cấu trúc Synapse của neural sinh học. Các ngõ vào sẽ đƣợc cộng dồn và so sánh với một giá trị ngƣỡng. Giá trị ngõ ra sẽ đƣợc đƣa vào một hàm đáp ứng để tạo ra ngõ ra tƣơng ứng. Bằng cách thay đổi các giá trị trọng số Wi, neural nhân tạo có thể thực hiện hoạt động học tập giống nhƣ neural sinh học.
2.3.2.2 Cấu trúc mạng neural nhân tạo a. Mạng 1 lớp
bây giờ sẽ có S hàng. Một tầng bao gồm ma trận trọng số, các bộ cộng, vector ngƣỡng b, hàm chuyển và vector đầu ra a. Mỗi phần tử của vector đầu vào p đƣợc nối với từng neural thông qua ma trận trọng số Wi. Mỗi neural có một ngƣỡng bi, một bộ cộng, một hàm chuyển f và một đầu ra ai. Cùng với nhau, các đầu ra tạo thành một vector đầu ra a. Thơng thƣờng thì số lƣợng đầu vào của tầng khác với số lƣợng neural. Ma trận trọng số cho các phần tử trong vector đầu vào W:
W= 1,1 1,2 1,R 2,1 2,2 2,R S,1 S,2 S,R w w ...w w w ...w ...................... w w ...w (2.8)
Mơ hình mạng neural 1 lớp đƣợc trình bày nhƣ hình bên dƣới
∑ n1 f ∑ n2 f ∑ nS f b1 b2 bs n1 n2 ns W1,1 WS,R P1 P2 Pn . . . . . . Hình 2.17: Mơ hình mạng neural 1 lớp. [25]
Bằng cách thay đổi hàm f ta sẽ có đƣợc những neural khác nhau. Các hàm truyền phổ biến là: logsig, tansig và purelin.
Hình 2.18: Kiến trúc mạng neural nhiều lớp [25]
Một mạng neural nhiều lớp sẽ bao gồm: 1 lớp ngõ vào, 1 hoặc nhiều lớp neural ẩn và 1 lớp neural ngõ ra. Mơ hình mạng neural 1 lớp đƣợc trình bày ở Hình 2.18.
Dữ liệu từ tất cả các nút trong lớp nhập đƣợc tích hợp - ta gọi là tổng trọng số – và chuyển kết quả cho các nút trong lớp ẩn. Gọi là “ẩn” vì các nút trong lớp này chỉ liên lạc với các nút trong lớp ngõ vào và lớp ngõ ra, và chỉ có ngƣời thiết kế mạng mới biết lớp này (ngƣời sử dụng không biết lớp này). Các nút trong lớp ngõ ra nhận các tín hiệu xử lý từ các nút trong lớp ẩn. Mỗi nút trong lớp ngõ ra tƣơng ứng với một biến phụ thuộc.
2.3.2.3 Huấn luyện mạng
Quá trình huấn luyện mạng neural thực chất là quá trình điều chỉnh các trọng số dựa trên các kết quả ngõ ra và ngõ vào để tạo đƣợc các đáp ứng ngõ ra phù hợp
với kết quả mong muốn. Có ba phƣơng pháp học chính: học có giám sát, học khơng giám sát và học tăng cƣờng. Trong đó:
a. Học có giám sát:
Điều kiện cần và đủ cho phƣơng pháp này đó là một tập mẫu ngõ vào và ngõ ra tƣơng ứng. Trong quá trình học, ta sẽ điều chỉnh trọng số trong mỗi trƣờng hợp mạng ra quyết định sai. Quá trình học sẽ dừng lại khi mạng ra quyết định đúng cho tất cả các input của tập mẫu học
b. Học không giám sát:
Trong học khơng có giám sát, ta đƣợc cho trƣớc một số dữ liệu x, và hàm chi phí cần đƣợc cực tiểu hóa có thể là một hàm bất kỳ của dữ liệu x và đầu ra của mạng, f. Hàm chi phí đƣợc quyết định bởi phát biểu của bài toán. Phần lớn ứng dụng nằm trong vùng các bài tốn ƣớc lƣợng nhƣ mơ hình hóa thống kê, nén, lọc (filtering), blind source seperation và phân mảnh (clustering).
c. Học tăng cƣờng:
Trong học tăng cƣờng, dữ liệu x thƣờng không đƣợc cho trƣớc mà đƣợc tạo ra trong q trình một agent tƣơng tác với mơi trƣờng. Tại mỗi thời điểm t, agent thực hiện hành động y_t và môi trƣờng tạo một quan sát x_t và một chi phí tức thời c_t, theo một quy trình động nào đó (thƣờng là khơng đƣợc biết). Mục tiêu là tìm một sách lƣợc lựa chọn hành động để cực tiểu hóa một chi phí dài hạn nào đó, nghĩa là chi phí tích lũy mong đợi. Quy trình động của mơi trƣờng và chi phí dài hạn cho mỗi sách lƣợc thƣờng khơng đƣợc biết, nhƣng có thể ƣớc lƣợng đƣợc. Mạng neural nhân tạo thƣờng đƣợc dùng trong học tăng cƣờng nhƣ là một phần của thuật toán tồn cục. Các bài tốn thƣờng đƣợc giải quyết bằng học tăng cƣờng là các bài toán điều khiển, trò chơi, và các nhiệm vụ quyết định tuần tự (sequential decision making) khác.
CHƢƠNG 3. XỮ LÝ ẢNH NỨT TRÊN BỀ MẶT BÊ TÔNG TÔNG
Sơ đồ giải thuật xử lý ảnh nứt trên bề mặt bê tơng
Nhị phân hóa Ảnh chứa vết nứt Khử nhiễu Phân Loại vết nứt Có nứt? Đo đạc vết nứt Kết thúc Đúng Sai Calibration
Bƣớc đầu tiên trong quá trình đo đạc vết nứt là xác định hệ số quy đổi từ đơn vị là Pixel đến đơn vị đo chiều dài (cm). Việc xác định hệ số này đƣợc thực hiện ở bƣớc Calibration. Sau đó ảnh chứa vết nứt sẽ đƣợc chuyển thành ảnh nhị phân với các pixel biểu thị vết nứt sẽ có giá trị là 1. Tiếp theo đó một q trình lọc nhiễu sẽ đƣợc áp dụng nhằm mục đích loại bỏ các vùng nhiễu để chỉ giữ lại vùng vết nứt. Do q trình tính tốn thực thi tƣơng tự nhau đối với ảnh nứt đơn và nứt có rẽ nhánh, cho nên việc quá trình phân loại vết nứt sẽ chỉ đƣa ra hai lựa chọn: có vết nứt, hoặc khơng vết nứt. Để quyết định có tiếp tục thực hiện bƣớc đo đạc vết nứt hay khơng. Tuy nhiên thuật tốn phân loại vết nứt cũng đƣợc xây dựng để phân biệt dạng vết nứt bào gồm: không nứt, nứt đơn, và nứt rẽ nhánh. Cuối cùng, nếu phát hiện ảnh có nứt, việc tính tốn vết nứt sẽ đƣợc thực hiện và trả về đồng thời hai thông số chiều rộng và chiều dài của vết nứt
3.1 Calibration
Để có thể xác định đƣợc tỉ lệ quy đổi giữa đơn vị Pixel sang đơn vị đo chiều dài (cm), ta cần ảnh chụp một vật mẫu có kích thƣớc xác định trƣớc với cùng điều kiện nhƣ khi chụp ảnh nứt (tiêu cự, khoảng cách từ ống kích đến đối tƣợng, thiết lâp Zoom của máy ảnh …). Để thực hiện việc này ta chỉ cần thêm vào một vật chuẩn gần vết nứt và chụp luôn vật chuẩn đó nhƣ ví dụ ở Hình 3.2 bên dƣới.
Ở Hình 3.2, học viên sử dụng một hình trịn màu đỏ có kích thƣớc là 6mm để làm vật chuẩn. Theo đó ta có thể tính ra tỉ lệ quy đổi giữa Pixel và đơn vi đo mm nhƣ sau: