Hình ảnh phân ngƣỡng

Một phần của tài liệu Nghiên cứu đánh giá kích thước hình học vết nứt trên cấu kiện bê tông cốt thép bằng phương pháp xử lý ảnh (Trang 36)

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:

21    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 * + ̅̅̅̅.

22

* ̅̅̅̅̅+

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.

23

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 vào: Một tập các mẫu dữ liệu huấn luyện, với một nhãn phân lớp cho mỗi mẫu dữ liệu

24

 Đầ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.

25

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

26

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 đó.

27

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. Quá 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

Mạng một tầng với S neural đƣợc minh họa trong Hình 2.17. Chú ý rằng với mỗi một đầu vào trong số R đầu vào sẽ đƣợc nối với từng neural và ma trận trọng số

28

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.

29

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

30

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 tố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.

31

CHƢƠNG 3. XỮ LÝ ẢNH NỨT TRÊN BỀ MẶT BÊ

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

32

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 q 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 ln vật chuẩn đó nhƣ ví dụ ở Hình 3.2 bên dƣới.

Vật chuẩn

33

Ở 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:

(3.1)

Trong đó:

 Scale_factor: hệ số quy đổi giữa pixel và mm.

 numPixels: số pixel đo đƣợc trên ảnh của hình trịn màu đỏ.

3.2 Nhị phân hóa ảnh nứt

Q trình nhị phân hóa ảnh nứt, chính là quá trình chuyển đổi ảnh nứt từ dạng ảnh màu (RGB) sang ảnh xám, và áp dụng một giá trị ngƣỡng để xác định vùng vết nứt. Q trình nhị phân hóa ảnh nứt đƣợc thực hiện nhƣ lƣu đồ ở Hình 3.3.

Gray to Binary RGB to Gray Normalization Ảnh chứa vết nứt Ảnh nhị phân Hình 3.3: Nhị phân hóa vết nứt

Trƣớc khi tiến hành các bƣớc xử lý, ảnh đầu vào phải đƣợc chuẩn hóa (Normalization). Trong phạm vi luận văn này, học viên sử dụng ảnh số có số bit

34

lƣợng tử là 8 bit, cho nên các giá trị pixel sẽ đƣợc chuẩn hóa về dạng số thực có tầm

Một phần của tài liệu Nghiên cứu đánh giá kích thước hình học vết nứt trên cấu kiện bê tông cốt thép bằng phương pháp xử lý ảnh (Trang 36)