Thuật toán k-nearest neighbours

Một phần của tài liệu (LUẬN văn THẠC sĩ) 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 38)

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:

(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à q 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

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 giá trị từ 0-1 theo công thức

( ) ( ) (3.2)

Trong đó:

 I(x,y) là giá trị của từng pixel trong ảnh (có giá trị trong khoảng từ 0-255)

 I’(x,y) là giá trị của pixel đã đƣợc chuẩn hóa (có giá trị từ 0-1)

Ảnh sau khi đƣợc chuẩn hóa sẽ đƣợc chuyển đổi thành ảnh xám theo công thức:

GRAY = 0.2989 * R + 0.5870 * G + 0.1140 * B (3.3) Trong đó:

 GRAY: Ảnh xám ngõ ra

 R : Thành phần màu đỏ (red) của ảnh vào

 G: Thành phần màu xanh lá (Green) của ảnh vào

 B: Thành phần màu xanh dƣơng (Blue) của ảnh vào

Sau khi có đƣợc ảnh đa mức xám, ta áp dụng thuật toán Otsu để xác định ngƣỡng nhị phân phù hợp và thực hiện quá trình chuyển đổi từ ảnh màu sang ảnh nhị phân. Kết quả của quá trình này đƣợc trình bày ở Hình 3.4

Ảnh màu(RGB) Ảnh Xám Ảnh nhị phân

3.3 Khử nhiễu

Từ kết quả ở Hình 3.4 ta có thể thấy rằng, có rất nhiều thành phần nhiễu tồn tại trên ảnh nhị phân. Do đó trƣớc khi thực hiện các bƣớc xử lý tiếp theo ta cần tiến hành quá trình lọc bớt các thành phần nhiễu. Theo đó một chuỗi các thao tác lọc nhiễu sẽ đƣợc áp dụng trên ảnh nhị phân để khử nhiễu.

Knn-Filter Ảnh nhị phân Area-based filter Clean hole Ảnh đã khử nhiễu Hình 3.5: Quá trình khử nhiễu

Quá trình khử nhiễu đƣợc bắt đầu bằng việc áp dụng bộ lọc kNN - filter đã đƣợc trình bày ở phần trƣớc. Mặc dù kNN - filter thực chất chỉ có thể lọc đƣợc các thành phần nhiễu có kích thƣớc 1-2 pixel trong ảnh. Tuy nhiên, nó cho phép phân tách các vùng liên thông ở trong ảnh.

Ảnh nhiễu Knn-filter

Hình 3.6: Ảnh nhị phân trƣớc và sau khi áp dụng kNN - filter

Nhƣ ở Hình 3.6, ta có thể thấy rằng kNN - filter đã phân tách vùng nhiễu và vùng vết nứt ra thành các vùng liên thông tách biệt nhau. Điều này là tăng độ chính xác của Area - based filter. “Area - based filter”, thực chất là quá trình phân tách các vùng liên thơng trong ảnh (Vùng liên thông là khái niệm dùng để chỉ một vùng liên tục khơng bị ngắt đoạn) Trong ví dụ ở Hình 3.7 ta có hai vùng liên thơng, vùng lớn chính là vết nứt, còn vùng nhỏ là thành phần nhiễu. Bộ lọc dựa trên diện tích thực hiện theo ngun tắc tính tốn diện tích của từng vùng liên thơng, nếu diện tích của vùng liên thơng nhỏ hơn một giá trị ngƣỡng (ví dụ từ 200 pixel) thì ta xem đó là nhiễu.

Hình 3.7: Ví dụ về vùng liên thơng

Hai vùng liên thơng

Ảnh gốc Area-based filter

Hình 3.8: Kết quả khử nhiễu dựa trên diện tích (giá trị ngƣỡng 200 pixel) 3.4 Phân loại vết nứt

Ảnh sau khi đƣợc khử nhiễu sẽ đƣợc resize lại ở kích thƣớc là “192x256” pixels, và đƣa vào một mạng neural có kiến trúc nhƣ Hình 3.9 bên dƣới. Mạng neural này bao gồm 192x256 input, 2 lớp ẩn và 1 lớp ngõ ra để tạo ra ba giá trị output (đầu ra) tƣơng ứng với ba trƣờng hợp phân loại: Không nứt, nứt đơn và nứt

Một phần của tài liệu (LUẬN văn THẠC sĩ) 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 38)

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

(95 trang)