2.4.1. Khái niệm về toạ độ Barycentric
Với mỗi điểm M(xm,ym) nằm trong tam giác ABC đều có thể biểu diễn toạ độ của nó theo toạ độ các đỉnh của tam giác nhƣ sau:
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Giải hệ phƣơng trình này ta đƣợc một nghiệm duy nhất:
(ya-yc) (xa-xm)-(xa-xc) (ya-ym) v =
(ya-yc) (xa-xb)-(xa-xc) (ya-yb)
(ya-ym) (xa-xb)-(xa-xm) (ya-yb) w =
(ya-yc) (xa-xb)-(xa-xc) (ya-yb) u = 1-v-w
Vậy nói rằng điểm M có toạ độ là (u, v, w) đối với tam giác ABC.
2.4.2. Định vị dựa vào toạ độ Barycentric
Đối với mỗi điểm toạ độ của nó là duy nhất.
Toạ độ của một điểm phụ thuộc vào tỉ lệ các khoảng cách từ nó đến các đỉnh của tam giác chứ không phải là khoảng cách tuyệt đối giữa chúng.
Nếu khoảng cách tƣơng đối của điểm cần biểu diễn đến điểm cơ sở nhỏ thì hệ số tƣơng ứng với nó sẽ lớn.
Hình 2.5. Minh hoạ cho khái niệm hệ toạ độ Barycentric.
Đến đây thuật toán đã hoàn toàn rõ ràng. Vậy các bƣớc phải thực hiện đối với thuật toán này là:
xm = u xa + v xb + w xc ym = u ya + v yb + w yc u+v+ w = 1 u,v, w 0 M (0,1,0) (1,0,0) (0,0,1) Hình 2.5. Hệ toạ độ Barycentric
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Xây dựng lƣới tam giác cho ảnh gốc và ảnh đích
Đối với mỗi cặp tam giác tƣơng ứng với ảnh gốc và ảnh đích ta nội suy tam giác ở ảnh gốc thành tam giác ở ảnh đích.
Một vấn đề nảy sinh là làm sao có thể tìm đƣợc tất cả các điểm thuộc tam giác ABC một cách hiệu quả?
Có nhiều phƣơng án để giải quyết vấn đề này, phần sau đây sẽ giới thiệu một phƣơng pháp khá hiệu quả.
2.4.2.1. Phƣơng pháp xác định tất cả các điểm thuộc một tam giác
Phƣơng pháp này gồm có các bƣớc nhƣ sau:
Tìm các giá trị xmax, xmin, ymax, ymin đối với các đỉnh của tam giác. For a = ymin to ymax do
- Tìm giao điểm của đƣờng thẳng y = a với 3 cạnh của tam giác.
- Chỉ xét các giao điểm có hoành độ thuộc [xmin,xmax] và sắp xếp các giao điểm theo chiều tăng dần của hoành độ.
- Các điểm nằm trên đƣờng thẳng y = a và có hoành độ thuộc đoạn [x_min,x_max] là thuộc tam giác (với x_ thể hiện hoành độ giao điểm).
đó thì điểm nào gần M nhất thì ảnh hƣởng của nó tới M sẽ là lớn nhất.
2.4.3. Xây dựng thuật toán
y = ymin
y = ymax
x = xm
ax
x = xmin
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
2.4.3.1. Lý do lựa chọn ba điểm để biểu diễn sự phụ thuộc
Nhƣ đã trình bầy ở trên việc lựa chọn thích hợp là tìm sự phụ thuộc của một điểm trong theo 3 điểm đến 4 điểm biên. Có bốn lý do để chọn 3 điểm thay vì chọn 4 điểm biên:
Các điểm dùng để biểu diễn sự phụ thuộc phải tạo thành một miền lồi nếu muốn đạt chất lƣợng tốt. Trong trƣờng hợp 3 điểm thì điều này là hiển nhiên còn trong trƣờng hợp 4 điểm thì cần phải kiểm tra mà việc này làm tăng thời gian chạy lên nhiều.
Việc kiểm tra xem một điểm có phải là điểm trong của một miền lồi tạo bởi 3 điểm dễ dàng hơn rất nhiều so với việc kiểm tra đối với một miền lồi tạo bởi 4 điểm.
Việc biểu diễn sự phụ thuộc của một điểm trong theo 3 điểm của một tam giác là dễ dàng hơn rất nhiều so với việc tính toán đối với một tứ giác lồi.
Chất lƣợng của hai cách biểu diễn là khác nhau không dáng kể.
2.4.3.2. Tiêu chí lựa chọn 3 điểm thích hợp
Nhƣ đã trình bày ở trên ba điểm thích hợp sẽ đƣợc chọn từ 3 trong số các điểm biên chứa điểm ảnh cần biểu diễn. Tuy nhiên trong trƣờng hợp xây dựng ứng dụng, không nên và không thể đòi hỏi đầu vào đã phải xác định rõ ràng các vùng. Vì vậy thuật toán phải tự động chọn 3 điểm thích hợp nhất trong tập điểm đặc trƣng đã cho.
Tiêu chí chọn ba điểm này nhƣ sau:
Điểm cần nội suy phải thuộc vào tam giác tạo bởi ba điểm này. Tổng khoảng cách từ điểm cần nội suy đến 3 điểm này là nhỏ nhất.
Tiêu chí thứ nhất đƣa ra nhằm đạt đƣợc chất lƣợng nắn chỉnh hình tốt. Việc hoàn toàn tuân thủ tiêu chí thứ nhất là điều cần thiết. Còn tiêu chí thứ hai đƣa ra để chọn đúng 3 điểm biên của vùng chứa điểm ảnh theo tính chất của biên ảnh đã đƣợc trình bầy ở phần trên. Hơn nữa tiêu chí hai còn đƣa ra đƣợc 3 điểm sẽ có ảnh hƣởng lớn nhất tới điểm cần nội suy.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
2.4.3.3. Giảm nhẹ tập các điểm cần duyệt
Với tiêu chí nhƣ trên thì việc duyệt toàn bộ các điểm đặc trƣng là điều không cần thiết. Luận văn có thể hạn chế tập các điểm cần duyệt nhƣ cách sau mà vẫn đảm bảo tập này chứa ba điểm mà luận văn cần tìm kiếm.
Sắp xếp tập các đặc trƣng theo chiều tăng dần của hoành độ.
Với một điểm bất kỳ M cần nội suy thì sẽ tìm vị trí của nó trong dãy trên. Xuất phát từ M, sẽ tiến hành tìm về hai phía của dãy cho đến khi tìm đƣợc 4 điểm thuộc 4 góc nhƣ hình vẽ bên dƣới.
Tập các điểm cần duyệt chứa các điểm có khoảng cách từ nó tới M nhỏ hơn khoảng cách lớn nhất từ 4 điểm trên tới M.
Do tính chất phân vùng của ảnh việc giảm nhẹ theo phƣơng pháp đạt hiệu quả rất đáng kể.
1.5.4.4. Việc xây dựng hàm mục tiêu và phƣơng pháp duyệt
Nếu tiến hành duyệt toàn bộ thì số lƣợng tính toán là khá lớn. Giả sử có 100 điểm đặc trƣng thì đối với mỗi điểm ảnh cần nội suy, luận văn phải tính một khối lƣợng tính toán nhƣ:
Cần duyệt C1003 =161.700 cặp 3 trong số 100 điểm.
Với mỗi cặp 3 điểm cần phải kiểm tra xem điểm cần nội suy có thuộc tam giác tạo bởi 3 điểm này không, nếu có tính tổng khoảng cách.
Chọn ra 3 điểm thích hợp nhất.
Với số lƣợng tính toán nhƣ trên thì việc duyệt toàn bộ là không thể chấp nhận đƣợc. Để giảm nhẹ việc tính toán, luận văn sẽ mềm dẻo trong việc tuân thủ tiêu chí thứ hai, thay vì tìm ra 3 điểm có tổng khoảng cách đến điểm cần biểu diễn là
M
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
nhỏ nhất, luận văn sẽ tìm ra 3 điểm trong số một số điểm có khoảng cách nhỏ nhất thoả mãn tiêu chí thứ nhất. Điều này là có thể chập nhận đƣợc theo những lý do sau:
Việc tìm ra đƣợc ba điểm theo tiêu chí thứ hai thì có thể đảm bảo là ba điểm biên. Nhƣng nếu luận văn cũng tìm đƣợc ba điểm theo cách trên thì xác suất tìm đúng rất lớn.
Khi xác định sự phụ thuộc của một điểm đối với ba điểm bất kỳ tạo thành tam giác chứa nó thì điểm nào càng gần sẽ có ảnh hƣởng càng lớn, còn các điểm ở xa có ảnh hƣởng không đáng kể. Việc tìm theo cách trên cũng dễ tìm đƣợc những điểm gần nhất.
Trong khi nội suy thì một điểm của ảnh gốc sẽ đƣợc ánh xạ sang một điểm tƣơng ứng với nó bên ảnh đích nên ba điểm đƣợc chọn thoã mãn điều kiện là biên của điểm cần biểu diễn là đƣợc.
Do tính chất “không rõ” của hàm mục tiêu nên luận văn không áp dụng cách xây dựng hàm mục tiêu và thủ tục duyệt riêng biệt cũng nhƣ không thể áp dụng các cách duyệt truyền thống đƣợc. Ở đây, luận văn sẽ áp dụng việc xây dựng hàm mục tiêu và thủ tục duyệt thành một nhƣ sau:
1. Tính toán khoảng cách từ điểm nội suy đến các điểm đặc trƣng. 2. Sắp xếp theo chiều tăng dần của khoảng cách.
3. chọn ra một số điểm có khoảng cách đến điểm cần biểu diễn là nhỏ nhất, tập các điểm này tạm gọi là tập các ứng cử viên. Lực lƣợng các điểm ứng cử viên có thể tuỳ chọn.
4. Tìm trong tập ứng cử viên ba điểm thoả mãn tiêu chi 1. Nếu tìm thấy thì kết thúc. Nếu không thì bổ xung thên vào tập ứng cử viên một điểm nữa và điểm này tạm coi là đã đƣợc chấp nhận và tìm hai điểm trong số các điểm còn lại.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
5. Lặp lại 4 cho đến khi tìm đƣợc 3 điểm thoả mãn.
Để ý rằng, nếu luận văn nội suy đƣợc điểm ảnh M thì đối với các điểm lân cận cũng có thể tìm đƣợc trong tập các ứng viên của M với ba điểm thoả mãn xác suất rất cao. Vì vậy, luận văn cũng sẽ tìm trong tập các ứng cử viên của M trƣớc, nếu không tìm thấy sẽ tiến hành tìm lại nhƣ trên.
2.4.4. Xây dựng công thức biến đổi
Sau khi các điểm đặc trƣng đã đƣợc xác định, các mặt (đa giác) đã đƣợc xác định. Ta tiến hành nội suy các cặp đa giác tƣơng ứng. Nghĩa là ta tiến hành thực hiện biến đổi qua các bƣớc:
Ứng với mỗi đa giác A1A2...Am đã xác định, thực hiện các công việc sau: 1. Tìm tất cả các điểm đặc trƣng thuộc vào đa giác đang xét A1A2...Am. Tập
các điểm đặc trƣng tìm đƣợc gọi là S0 = {D1, D2 ,...,Dn}. Dĩ nhiên, { A1,A2,...,Am } S0.
2. Ứng với mỗi điểm M thuộc đa giác A1A2...Am, thực hiện các bƣớc sau: Tìm 3 điểm thuộc S0 theo thuật toán tập các điểm đặc trƣng đã đƣợc trình bầy ở phần trên. Tức là tìm 3 điểm thuộc S0 thoả mãn hai điều kiện:
+Tổng khoảng cách từ 3 điểm này tới M là nhỏ nhất. + M thuộc tam giác tạo bởi 3 điểm này.
Gọi 3 điểm đặc trƣng vừa tìm đƣợc là Di ,Dj ,Df và các điểm này tƣơng ứng với các điểm D’i , D’j , D’f ở ảnh đích.
Tìm M’ thuộc tam giác D’i D’j D’f tƣơng ứng với điểm M dựa vào thuật toán nội suy tam giác Di Dj Df thành tam giác D’i D’j D’f.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Chƣơng 3: CHƢƠNG TRÌNH THỬ NGHIỆM 3.1. Bài toán
Tra cứu, nhận dạng và định vị tàu chiến trên biển đã đƣợc nhiều nƣớc phát triển và ứng dụng trong quân sự. Việc phát hiện đƣợc hình dạng con tàu trong tấm ảnh là vấn đề tối quan quan trọng và cần thiết cho hệ thống. Trong phạm vi của đề tài, luận văn sẽ tiến hành tìm kiếm hình ảnh đặc trƣng cơ bản của con tàu, tính toán đƣợc tọa độ thực của nó. Từ những đặc điểm cơ bản nhất này sẽ làm tiền đề để phát triển trong thời gian tiếp theo.
Đầu vào: Ảnh mặt biển vào ban ngày có chứa một con tàu, có thông tin tọa độ thực của tấm ảnh đi kèm.
Đầu ra: Tìm ra đƣợc tàu và chỉ ra tọa độ của nó trên thực tế.
3.2. Phân tích bài toán
Quá trình nhận diện đƣợc con tàu trong tấm ảnh và phân biệt đƣợc đó là tàu loại gì, tàu chiến hay tàu dân sự là một bài toán lớn. Để làm đƣợc việc này, đầu tiên là phải xây dựng đƣợc một cơ sở dữ liệu với những đặc trƣng cơ bản về: các chủng loại tàu, các loại boong tàu, mũi tàu, đuôi tàu, các loại thiết bị trên boong. Quá trình này đòi hỏi cần nhiều thời gian, công sức, nó là vấn đề cốt lõi nhằm giúp tra cứu đƣợc tàu đó thuộc chủng loại gì, là tàu chiến hay tàu dân sự. Sau khi đã có đƣợc một cơ sở dữ liệu là những hình ảnh về các chủng loại tàu với đầy đủ các đặc trƣng nhận dạng, bƣớc tiếp theo cần phải xây dựng chƣơng trình có chức năng phát hiện đƣợc hình dạng con tàu trên tấm ảnh, sau đó từ tọa độ chung của cả vùng ảnh tính toán ra đƣợc tọa độ thực của con tàu nằm ở tọa độ nào.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Bƣớc 1: Xây dựng cơ sở dữ liệu về các chủng loại tàu, các loại boong tàu, mũi tàu, đuôi tàu, các loại thiết bị trên boong. Xây dựng chƣơng trình phát hiện ra đƣợc con tàu trên tấm ảnh.
Bƣớc 2: Tìm đƣợc tọa độ của con tàu trên ảnh, từ thông tin tọa độ đi kèm tấm ảnh, tính toán ra đƣợc tọa độ thực của con tàu.
3.3. Chƣơng trình tra cứu và định vị tàu chiến. 3.3.1 Lựa chọn công cụ 3.3.1 Lựa chọn công cụ
Có một số ngôn ngữ có thể phát triển lập trình đố hoạ nhƣ Open GL trên nền C++ hay java 3D để phát triển các ứng dụng đồ hoạ 3 chiều, nhƣng luận văn lựa chọn Microsoft Visual C++ (còn đƣợc gọi là MSVC) để phát triển ứng dụng. Đây là một sản phẩm Môi trƣờng phát triển tích hợp (IDE) cho các ngôn ngữ lập trình C, C++, và C++/CLI của Microsoft. Nó có các công cụ cho phát triển và gỡ lỗi mã nguồn C++, đặc biệt là các mã nguồn viết cho Microsoft Windows API, DirectX API, và Microsoft .NET Framework
3.3.2 Phát hiện tàu trên tấm ảnh bằng kỹ thuật phân đoạn ảnh.
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 3.1 Sơ đồ xử lý chọn vùng và phân đoạn
Bắt đầu Đọc ảnh Gán màu gần nhất cho mỗi pixel Xác định Histogram Sắp xếp bảng tần xuất (Histogram) theo thứ tự giảm No_RGN = 0
Lặp lại cho mỗi giá trị màu trong
bảng tần xuất
Tìm màu xuất hiện đầu tiên
iseed = img_array i jseed = img_array j
Gọi hàm
Mark_Region(img_array, col, iseed, jseed, region)
Gọi hàm
Fix_Boundary(img_array, col, region)
Tính diện tích (vùng hình chữ nhật)
Diện tích = ((reg x1 - reg x2) * (reg y1 - reg y2)) /Image_size
Nếu Dtích > T No_RGN ++ No_RGN<3 &^EOT Lƣu region trong mảng Region Dừng A A Yes No Yes No
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Khi chạy chƣơng trình cửa sổ ban đầu xuất hiện với giao diện sau:
Ảnh chứa tàu đầu vào Ảnh tàu tìm đƣợc ở đầu ra
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
3.3.3. Xác định tọa độ tàu bằng kỹ thuật phân hình tứ giác
Nếu lƣới xây dựng trên ảnh nguồn và đích tƣơng ứng là lƣới tứ giác, cần nội suy các tứ giác cho nhau. Để thực hiện điều này luận văn dùng phép nội suy Bilinear. Phép nội suy Bilinear xác định một hàm biến đổi từ một hình vuông kích thƣớc 0,1 x 0,1 tới một tứ giác trong không gian (tứ giác này không nhất thiết phải đồng phẳng). Phép biến đổi đƣợc thực hiện tƣơng đƣơng với hai việc: Thứ nhất là nội suy trên các cạnh AD và BC thu đƣợc điểm P và Q.
P = (1-v)A +vD Q = (1-v)B +vC
Việc tiếp theo là nội suy trên đoạn PQ sử dụng thông số u: B(u,v) = (1-u) P + uQ
Một vài kết quả từ chƣơng trình:
Tọa độ thực của tấm
ảnh ( Đầu vào ) Tọa độ tàu trên ảnh
Tọa độ thực của tàu ( Đầu ra ) Kinh độ Vĩ độ X Y Kinh độ Vĩ độ 512838 512845 172030 172030 260.3562 206.4940 512841.5 172032.0
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Tọa độ thực của tấm
ảnh ( Đầu vào ) Tọa độ tàu trên ảnh
Tọa độ thực của tàu ( Đầu ra ) Kinh độ Vĩ độ X Y Kinh độ Vĩ độ 512838 512845 172034 172034 1373040 1373045 1373040 1373045 172030 172030 172035 172035 256.1239 168.5864 1373042.5 172032
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
3.4 Đánh giá kết quả thực nghiệm và kết luận. 3.4.1 Đánh giá và kết quả thực nghiệm 3.4.1 Đánh giá và kết quả thực nghiệm
a. Phần phát hiện tàu trên tấm ảnh
Chƣơng trình đã phát hiện đƣợc hình dạng tàu trên tấm ảnh.
Thời gian xử lý nhanh, đáp ứng đƣợc yêu cầu của bài toán thực tế. Độ chính xác chƣa thực sự cao.
b. Phần định vị tàu theo tọa độ thực
Đã tính toán đƣợc tọa độ thực của tàu dựa trên tham số tọa độ thực của