phương pháp nhận dạng, một ứng dụng có nhiều phương pháp nhận dạng, mỗi phương pháp nhận dạng có nhiều phương pháp trích chọn đặc trưng. Trong đề tài này, tác giả sử dụng phương pháp trích đặc trưng ảnh bằng hình dạng của đối tượng trong ảnh. Hình dạng của đối tượng trong ảnh có thể được mơ tả bằng đường bao của nó hay là vùng diện tích mà nó chiếm chỗ.
Trong đề tài này, khâu trích đặc trưng ảnh trải qua các bước như hình sau:
Hình 2.3. Các bước của khâu trích đặc trưng ảnh - Nhận dạng: - Nhận dạng:
Nhận dạng ảnh là quá trình xác định ảnh. Quá trình này thường thu được bằng cách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước. Trong đề tài này, tác giả sử dụng phương pháp mạng nơ-ron để nhận dạng ảnh đối tượng cá.
Trích đặc trưng ảnh
Tìm trọng tâm của đối tượng
Tìm đường biên của đối tượng
Phân đoạn đường biên của đối tượng thành 200 đoạn nhỏ.
Tính 200 bán kính từ trọng tâm đến các đoạn đường biên trên.
2.3. Nội dung lý thuyết xử lý ảnh dùng trong đề tài 2.3.1. Chuyển ảnh màu RGB sang ảnh mức xám Gray 2.3.1. Chuyển ảnh màu RGB sang ảnh mức xám Gray
Ảnh màu: Trong hệ màu RGB, mỗi điểm ảnh được cấu thành từ ba thành phần màu khác nhau: Red, Green, Blue và mỗi thành phần màu được biểu diễn bởi 1 Byte (8 bit). Nếu sử dụng 8 bit để biểu diễn giá trị màu sắc cho ảnh thì giá trị màu của mỗi điểm ảnh biến thiên trong đoạn [0, 28-1]. Như vậy mỗi điểm ảnh của ảnh màu sẽ có giá trị RGB là (0...255, 0...255, 0…255), ảnh Red RGB (0…255, 0, 0), ảnh Green RGB (0, 0…255, 0) và ảnh Blue RGB (0, 0, 0…255).
Ảnh đen trắng (ảnh xám): là ảnh có hai màu đen, trắng với mức xám các điểm ảnh có thể khác nhau. Với ảnh đen trắng nếu dùng 8 bit để biểu diễn mức xám thì số mức xám có thể biểu diễn được là 256 mức. Mỗi mức xám được biểu diễn dưới dạng là một số nguyên nằm trong khoảng từ 0 đến 225, mức 0 biểu diễn cho mức cường độ đen nhất và 255 biểu diễn cho mức cường độ sáng nhất.
Chuyển ảnh màu RGB sang ảnh mức xám được thực hiện theo công thức (2.1)
O(x, y) = 0,2989 ∗ IR(x, y) + 0,5870 ∗ IG(x, y) + 0,1140 ∗ IB(x, y) (2.1)
Trong đó: x,y là tọa độ của điểm ảnh
IR là thành phần màu đỏ tại màu I(x,y) IG là thành phần màu xanh lá tại màu I(x,y) IB là thành phần màu xanh dương tại màu I(x,y) O(x,y) là màu đầu ra; I(x,y) là màu đầu vào
2.3.2. Lọc nhiễu cho ảnh
Ảnh thu nhận sau khi được số hóa có thể gây nhiễu. Trên thực tế, tồn tại nhiều loại nhiễu, tuy nhiên người ta thường xem xét 3 loại nhiễu chính: nhiễu cộng, nhiễu nhân và nhiễu xung:
Nhiễu cộng
Nhiễu cộng thường phân bố khắp ảnh. Nếu gọi ảnh quan sát (ảnh thu được) là Xqs , ảnh gốc là Xgoc , nhiễu là 𝜂 , ảnh thu được có thể biểu diễn bởi:
Xqs = xgoc + 𝜂 (2.2) Nhiễu nhân
Nhiễu nhân thường phân bố khắp ảnh và ảnh thu được sẽ biểu diễn với công thức:
Xqs = Xgoc. 𝜂 (2.3)
Nhiễu xung
Nhiễu xung thường gây đột biến tại một số điểm ảnh.
Cơ sở để xử lý điểm ảnh bị nhiễu là dùng thông tin của các điểm ảnh lân cận. Thay thế giá trị điểm ảnh cần xử lý bằng tổ hợp giá trị các điểm ảnh lân cận. Việc thay thế dựa trên giả định là các điểm ảnh lân cận có giá trị gần giống với điểm ảnh cần xét.
Trong kỹ thuật lọc nhiễu, người ta sử dụng một mặt nạ di chuyển khắp ảnh gốc, từ trái qua phải và từ trên xuống dưới. Ở mỗi vị trí của ảnh, tính tốn theo các điểm trong mặt nạ và thay vào giá trị cho điểm ở tâm mặt nạ. Tùy theo các loại mặt nạ khác nhau mà có các cách tính khác nhau tổ hợp giá trị các điểm lân cận điểm được xét.
Thông thường, với loại nhiễu cộng, nhiễu nhân ta dùng các bộ lọc trung bình, lọc thơng thấp và lọc đồng hình (homomorphic filtering). Cịn đối với nhiễu xung, thường dùng bộ lọc trung vị (median filter), lọc giả trung vị (pseudo median filter) và lọc ngồi.
Lọc khơng gian trung bình (Mean filtering)
Trong lọc trung bình, mỗi điểm ảnh trong một ảnh được thay thế bằng trung bình trọng số của các điểm ảnh lân cận, trong đó có điểm ảnh đó. Lọc trung bình được định nghĩa như sau:
𝑣(𝑚, 𝑛) = ∑ ∑ 𝑎(𝑘, 𝑙). 𝑦(𝑚 − 𝑘, 𝑛 − 𝑙)
(𝑘,𝑙)𝜖 𝑊
Nếu trong kỹ thuật lọc trên, ta dùng các trọng số như nhau, phương trình trên sẽ trở thành: 𝑣(𝑚, 𝑛) = 1 𝑁∑ ∑ 𝑦(𝑚 − 𝑘, 𝑛 − 𝑙) (𝑘,𝑙)𝜖 𝑊 (2.5) Với: y(m,n): ảnh đầu vào
V(m,n) : ảnh đầu ra a(k,l) : cửa sổ lọc
𝑎𝑘,𝑙 = 1
𝑁𝑤 và Nw là số điểm ảnh trong cửa sổ lọc W.
Lọc trung bình có trọng số chính là thực hiện chập ảnh đầu vào với nhân chập H (mặt nạ bộ lọc, cửa sổ lọc). Các dạng nhân chập H thường dùng trong bộ lọc khơng gian trung bình có dạng:
H1 = 19[1 1 11 1 1 1 1 1
]; H2 = 18[0 1 01 4 1 0 1 0]
Với mặt nạ bộ lọc H1 gọi là bộ lọc khơng gian trung bình đều, khơng trọng số, khơng ưu tiên theo hướng nào cả. H1 có trọng số trung bình là 1/9, năng lượng nhiễu sẽ giảm đi 9 lần.
Với mặt nạ bộ lọc H2 gọi là bộ lọc trung bình lân cận 4 điểm ưu tiên cho 2 hướng x,y. H1 có trọng số trung bình là 1/8, năng lượng nhiễu sẽ giảm đi 8 lần.
Trong lọc trung bình, thường người ta ưu tiên cho các hướng để bảo vệ biên của ảnh khỏi bị mờ khi làm trơn ảnh. Các kiểu mặt nạ được sử dụng tùy theo các trường hợp khác nhau. Các bộ lọc trên là bộ lọc tuyến tính theo nghĩa là điểm ảnh ở tâm cửa sổ sẽ được thay bởi tổ hợp các điểm lân cận chập với mặt nạ.
Lọc khơng gian trung bình là một bộ lọc tuyến tính đơn giản với tác dụng làm mịn ảnh, khử nhiễu,…
Lọc thông thấp
Lọc thông thấp thường được sử dụng để làm trơn nhiễu. Trong kỹ thuật này, người ta hay dùng bộ lọc với các hệ số đối xứng nhau qua tâm của bộ lọc, các hệ số
ở vị trí có khoảng cách gần tâm có giá trị lớn hơn hoặc bằng các hệ số ở vị trí có khoảng cách xa tâm.
Một số nhân chập của bộ lọc thơng thấp có dạng sau:
Ht1 =1 8[ 0 1 0 1 2 1 0 1 0 ] Hb = 1 (b + 2)2[1b bb2 1b 1 b 1 ]
Ta dễ dàng nhận thấy khi b = 1, Hb chính là nhân chập H1 của bộ lọc trung bình. Lọc khơng gian trung bình là 1 trường hợp riêng của lọc thơng thấp.
Lọc đồng hình (Homomorphic filtering)
Kỹ thuật lọc này hiệu quả với ảnh có nhiễu nhân. Thực tế, ảnh quan sát được gồm ảnh gốc nhân với một hệ số nhiễu. Gọi X̅(m,n) là ảnh thu được, X(m, n) là ảnh gốc và η(m, n) là nhiễu, như vậy mơ hình nhiễu nhân đối với ảnh gốc X(m, n) như sau:
𝑋(𝑚, 𝑛) = 𝑋̅(𝑚, 𝑛). 𝜂(𝑚, 𝑛) (2.6)
Khi sử dụng bộ lọc đồng hình, trước tiên thực hiện lấy logarit của ảnh quan sát, khi đó nhiễu nhân sẽ trở thành nhiễu cộng. Do vậy ta có kết quả sau:
𝑙𝑜𝑔(𝑋(𝑚, 𝑛)) = 𝑙𝑜𝑔(𝑋̅(𝑚, 𝑛)) + 𝑙𝑜𝑔(𝜂(𝑚, 𝑛)) (2.7)
Rõ ràng, nhiễu nhân có trong ảnh sẽ bị giảm. Tiếp đó dùng bộ lọc tuyến tính để khử nhiễu cộng. Cuối cùng sử dụng phép biến đổi hàm e mũ để chuyển về dạng ảnh thông thường. Kết quả ảnh thu được qua lọc đồng hình sẽ tốt hơn ảnh gốc.
Đây là bộ lọc thường được sử dụng trong xử lý ảnh. Lọc trung vị khắc phục những hạn chế của bộ lọc trung bình. Các bộ lọc trung vị là cấp trên bộ lọc trung bình ở chỗ nó giữ độ nét tần số cao trong khi vẫn loại bỏ nhiễu.
Trung vị được viết với công thức:
𝑣[𝑚, 𝑛] = 𝑇𝑟𝑢𝑛𝑔𝑣𝑖(𝑦[𝑚 − 𝑘, 𝑛 − 𝑙])
𝑣ớ𝑖 𝑦[𝑘, 𝑙] ∈ 𝑊 (𝑊 𝑙à 𝑚ặ𝑡 𝑛ạ 𝑙ọ𝑐 )
(2.8)
Trong kỹ thuật lọc trung vị, kích thước cửa sổ thường được chọn sao cho số điểm ảnh trong cửa số là lẻ. Các cửa sổ hay dùng là cửa sổ có kích thước 3x3, 5x5 hay 7x7. Các cửa sổ này sẽ di chuyển khắp mặt ảnh. Điểm trung tâm của cửa sổ sẽ ứng với điểm ảnh được lọc. Giá trị của điểm ảnh này sẽ được thay thế bằng trung vị của chuỗi số là tập các giá trị điểm ảnh thuộc cửa sổ.
Trung vị của một chuỗi số có (2n+1) số là số nằm giữa (phần tử trung tâm) các số khác, nếu chuỗi số đó được sắp xếp theo thứ tự tăng dần hoặc giảm dần. Trong trường hợp có 2n số thì trung vị là trung bình cộng phần tử trung tâm.
Thuật tốn tính cho bộ lọc trung vị gồm 2 bước:
- Sắp xếp các phần tử ảnh thuộc cửa sổ theo thứ tự tăng dần hoặc giảm dần. Cần dùng thuật toán sắp xếp hiệu quả nhất.
- Chọn ra phần tử trung vị (có chỉ số bằng 𝑛2
2 + 1) rồi thay thế giá trị điểm ảnh
trung tâm cửa sổ bằng giá trị trung vị đó. Riêng với các điểm trên biên thì giữa nguyên giá trị.
Tính chất của lọc trung vị:
Lọc trung vị là loại lọc phi tuyến. Điều này dễ nhận thấy:
Trungvi(x(m) + y(m)) ≠ Trungvi(x(m)) + Trungvi(y(m)) (2.9) Có lợi cho việc loại bỏ các điểm ảnh hay các hàng mà vẫn bảo toàn độ phân giải.
Hiệu quả lọc sẽ giảm khi số điểm nhiễu trong cửa sổ lớn hay bằng một nửa số điểm trong cửa sổ.
Lọc giả trung vị
Lọc trung vị địi hỏi số lượng phép tính lớn nên tốc độ của bộ lọc chậm. Người ta khắc phục nhược điểm này bằng bộ lọc giả trung vị. Với lọc trung vị, điểm ảnh đầu vào sẽ được thay thế bởi trung vị các điểm ảnh, còn lọc giả trung vị sẽ dùng trung bình cộng của 2 giá trị "trung vị" (trung bình cộng của max và min).
Lọc ngoài
Giá trị điểm ảnh ở tâm cửa sổ sẽ được so sánh với trung bình cộng của 8 điểm lân cận. Nếu mức độ sai lệch lớn hơn một mức ngưỡng cho trước 𝜀 thì coi như điểm ảnh đó là nhiễu và được thay thế bằng chính giá trị trung bình của 8 điểm lân cận.
p1 p2 p3 p4 p5 p6 p7 p8 p9 Hình 2.4. Cửa sổ lọc ngoài 𝑡𝑏𝑐 = (𝑝1+ 𝑝2+ 𝑝3+ 𝑝4+ 𝑝5+ 𝑝6+ 𝑝7+ 𝑝8+ 𝑝9) 8 (2.10) 𝑝5 = { 𝑝𝑡𝑏𝑐 𝑛ế𝑢 𝑝5− 𝑡𝑏𝑐 > 𝜀 5 𝑛ế𝑢 𝑝5− 𝑡𝑏𝑐 ≤ 𝜀 (2.11)
Các cửa sổ lọc ngoài thường chọn là 3x3. Tuy nhiên, cửa sổ có thể mở rộng đến 5x5 hay 7x7 để đảm bảo tính tương quan giữa các điểm ảnh. Vấn đề quan trọng là xác định ngưỡng 𝜀 để loại nhiễu mà vẫn không làm mất thông tin của ảnh.
2.3.3. Tăng độ tương phản của ảnh
Ảnh số là tập hợp các điểm, mỗi điểm có giá trị độ sáng khác nhau mà mắt người dễ cảm nhận được ảnh song độ sáng này khơng phải mang tính quyết định. Khi hai đối tượng có cùng độ sáng nhưng đặt trên hai nền khác nhau sẽ cho cảm
nhận sáng khác nhau. Như vậy, người ta đưa ra khái niệm độ tương phản để biểu diễn sự thay đổi độ sáng của đối tượng so với nền. Nói một cách khác, độ tương phản là độ nổi của điểm ảnh hay vùng ảnh so với vùng nền.
Ảnh với độ tương phản thấp có thể do điều kiện sáng không đủ hay không đều hoặc do tính khơng tuyến tính hay biến động nhỏ của bộ cảm nhận ảnh. Để điều chỉnh lại độ tương phản của ảnh, cần điều chỉnh lại biên độ trên toàn dải hay trên dải có giới hạn bằng cách biến đổi tuyến tính biên độ đầu vào (dùng hàm biến đổi tuyến tính) hay phi tuyến (hàm mũ hay hàm lơgarit).
Khi dùng hàm tuyến tính: gọi T là tốn tử điểm ảnh tác động vào mức xám u của từng điểm ảnh và biến đổi sang mức xám v theo hàm tuyến tính f:
𝑣 = 𝑇(𝑢) → 𝑓(𝑢) = {
𝛼𝑢 𝛼 ≤ 𝑢 < 𝑎 𝛽(𝑢 − 𝑎) + 𝑣𝑎 𝑎 ≤ 𝑢 < 𝑏
𝛾(𝑢 − 𝑏) + 𝑣𝑏 𝑏 ≤ 𝑢 < 𝐿 (2.12)
Trong đó:
L là số lượng mức xám, thường bằng 256 và (L-1) là giá trị mức xám lớn nhất.
Các hệ số góc 𝛼, 𝛽, 𝛾 xác định độ tương phản tương đối. Các hệ số này phải chọn lớn hơn một miền cần thay đổi.
Các cận a, b có thể chọn khi xem xét lược đồ xám của ảnh.
Nếu thay đổi độ tương phản bằng hàm tuyến tính, ta có một số trường hợp như sau:
𝛼 = 𝛽 = 𝛾 giữ nguyên độ tương phản ảnh gốc 𝛼, 𝛽, 𝛾 > 1 dãn (tăng) độ tương phản
𝛼, 𝛽, 𝛾 < 1 co (giảm) độ tương phản
Hàm mũ thường được dùng để dãn độ tương phản. Hàm có dạng:
𝑓(𝑢) = (𝑋[𝑚, 𝑛])𝑝 (2.13)
2.3.4. Phân đoạn ảnh (phân vùng ảnh)
Để phân tích các đối tượng trong ảnh, chúng ta cần phân biệt được đối tượng cần khảo sát với phần còn lại của ảnh (nền), tức là ta phải tách đối tượng ra khỏi nền. Đây là bước phức tạp, khó khăn nhất trong xử lý ảnh và cũng dễ gây lỗi, làm mất độ chính xác của ảnh nhưng bước này rất quan trọng để chuẩn bị cho việc trích chọn đặc trưng và nhận dạng các đối tượng. Kết quả nhận dạng ảnh phụ thuộc rất nhiều vào công đoạn này.
Sự phân đoạn là một bài toán phân loại theo mặt bằng điểm ảnh, trong đó ảnh được tách ra thành các điểm ảnh thuộc về đối tượng cần khảo sát và những điểm ảnh không phải của đối tượng cần khảo sát (thuộc về nền).
Một phương pháp phân đoạn ảnh đơn giản và hiệu quả là sử dụng một ngưỡng giá trị xám để phân tách ảnh ra thành đối tượng và nền. Các điểm ảnh ở bên dưới ngưỡng giá trị xám thuộc về nền, còn những điểm ảnh ở bên trên ngưỡng giá trị xám thuộc về đối tượng.
Các kỹ thuật phân đoạn vùng có thể được chia thành 3 loại:
- Các kỹ thuật cục bộ: dựa trên các đặc tính cục bộ của các điểm ảnh và các
lân cận của nó.
- Các kỹ thuật tổng thể: phân đoạn một ảnh dựa trên cơ sở của thông tin lấy
từ tổng thể như sử dụng biểu đồ mức xám histogram.
- Các kỹ thuật chia, nối và phát triển: dựa trên các khái niệm tương đồng về hình dạng và tính đồng nhất của một miền ảnh. Hai vùng có thể được nối với nhau nếu tương tự nhau và liền kề bên nhau. Các vùng khơng đồng nhất có thể được chia thành các vùng nhỏ hơn. Một vùng có thể được phát triển bằng cách nối các điểm ảnh sao cho nó đồng nhất với nhau.
Phân đoạn bằng một ngưỡng: Bài toán phân đoạn ảnh đơn giản nhất xảy ra
khi một ảnh chứa một đối tượng có độ sáng đồng nhất và nền có một độ sáng khác. Giả sử rằng ta đang quan tâm tới các đối tượng sáng (object) trên nền tối (background)
𝑔(𝑥, 𝑦) = {1 𝑛ế𝑢 𝑓(𝑥, 𝑦) > 𝑇0 𝑛ế𝑢 𝑛𝑔ượ𝑐 𝑙ạ𝑖 (2.14)
Ngược lại, nếu với đối tượng tối trên nền sáng thì lúc này việc phân đoạn ảnh thành 2 vùng được thực hiện như sau:
𝑔(𝑥, 𝑦) = {1 𝑛ế𝑢 𝑓(𝑥, 𝑦) < 𝑇 0 𝑛ế𝑢 𝑛𝑔ượ𝑐 𝑙ạ𝑖
(2.15)
Tham số T gọi là ngưỡng độ sáng. Có rất nhiều thuật tốn chọn ngưỡng T như: ngưỡng cố định, dựa trên lược đồ xám, chọn ngưỡng thông qua sự không ổn định của lớp và tính thuần nhất của vùng,….Việc lựa chọn ngưỡng T dựa trên biểu đồ mức xám của ảnh [14].
Nếu nền và đối tượng trong ảnh có độ sáng tương phản thì biểu đồ mức xám có 2 đỉnh cực đại. Khi đó, ngưỡng được chọn chính là điểm cực tiểu nằm giữa 2 đỉnh cực đại trong biểu đồ mức xám. Khi ảnh có nhiễu sẽ gây khó khăn trong việc tính tốn điểm cực tiểu. Vì vậy, cần phải dùng bộ lọc thơng thấp một chiều để lọc nhiễu.
Nếu ảnh có độ sáng của nền và của đối tượng chêch lệch nhau khơng nhiều thì biểu đồ mức xám của ảnh khơng có 2 đỉnh cực đại phân biệt. Khi đó, ảnh sẽ được chia thành nhiều vùng ảnh nhỏ để tính tốn biểu đồ mức xám cho từng vùng. Nếu biểu đồ mức xám của mỗi vùng ảnh nhỏ vẫn khơng có 2 đỉnh cực đại phân biệt thì ngưỡng sẽ được nội suy từ các biểu đồ mức xám của các vùng ảnh lân cận.
Khi đã phân đoạn được ảnh g(x,y) thì đường bao có thể tìm được bằng cách tìm sự chuyển đổi từ một vùng ảnh này đến một vùng ảnh khác [14].
𝑏(𝑥, 𝑦) = {
1 𝑛ế𝑢 (𝑔(𝑥, 𝑦) ∈ 𝑅𝑖 𝑣à 𝑔(𝑥, 𝑦 − 1) ∈ 𝑅𝑗, 𝑖 ≠ 𝑗) ℎ𝑜ặ𝑐 (𝑔(𝑥, 𝑦) ∈ 𝑅𝑖 𝑣à 𝑔(𝑥 − 1, 𝑦) ∈ 𝑅𝑗, 𝑖 ≠ 𝑗) 0
Có thể dùng nhiều mức ngưỡng khác nhau để phân đoạn ảnh thành N đối tượng, mỗi đối tượng Ri sẽ có 2 ngưỡng Ti-1 và Ti.
Các ngưỡng có thể tạo thành dưới dạng:
𝑔(𝑥, 𝑦) = 𝑅𝑖 𝑛ế𝑢 𝑇𝑖−1 ≤ 𝑓(𝑥, 𝑦)𝑇𝑖, 𝑖 = 1, … , 𝑁 (2.17)
Các ngưỡng được rút ra từ biểu đồ mức xám của ảnh bằng cách tìm N-1 điểm cực đại giữa N đỉnh liên tiếp nhau trong biểu đồ mức xám.