Bản vẽ với vị trí hai nhãn mỗi cạnh bởi thuật tốn Flow-based

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu kỹ thuật dán nhãn đối tượng 2d (Trang 42 - 62)

Hầu hết các bƣớc tốn thời gian của thuật tốn trên là việc phát hiện sự chồng chéo giữa các vị trí nhãn và phù hợp tạo bằng cách chạy một thuật tốn chi phí thấp nhất luồng cực đại trên đồ thị dịng chảy. Rõ ràng thời gian cần

các vị trí nhãn. Vì vậy, việc thực hiện các thuật tốn ở trên cĩ liên quan chặt chẽ đến kích thƣớc của tập ban đầu của các vị trí nhãn.

Một điểm quan trọng cần nhấn mạnh là khung vừa miêu tả cĩ thể tính chi phí của một nhiệm vụ liên quan đến nhãn uu tiên, gần với tiêu chuẩn thẩm mỹ. Từ khi gán nhãn cuối cùng khơng chồng chéo, ta cĩ thể giả định rằng khơng cĩ chi phí gắn liền với vị trí tƣơng đối của bất kỳ cặp nhãn đƣợc gán.

Mỗi cạnh trong đồ thị song phƣơng Gm kết nối một đối tƣợng đồ họa cho một vị trí nhãn của đối tƣợng mà thuộc về một số nhĩm. Chi phí cho vị trí nhãn l của đối tƣợng đồ họa f đƣợc bao gồm nhƣ trọng số của cạnh (f, l)

trong đồ thị phù hợp. Sau đĩ, bằng cách gán cho các cạnh của nút nguồn và nút mục tiêu cân bằng khơng, ngƣời ta cĩ thể tìm thấy một phân nhãn cardinality chi phí thấp nhất lƣợng tối đa cho sự giảm vấn đề MLP bằng cách giải quyết vấn đề chi phí thấp nhất luồng cực đại cho đồ thị luồng Gflow.

Hình 2.15. Một bản vẽ vịng trịn với ba nhãn cho mỗi cạnh và nút được định vị bằng thuật tốn Flow-based trên. Các ơ màu trắng

là các nhãn cạnh và các hộp đen là nút nhãn

2.5. Kỹ thuật dán nhãn dựa vào hiệu chỉnh đối tƣợng

Tự động ghi nhãn là một vấn đề rất khĩ khăn, vì vậy dựa trên chẩn đốn để giải quyết nĩ, cĩ những trƣờng hợp các phƣơng pháp tốt nhất hiện cĩ khơng phải luơn luơn tạo ra một giải pháp chấp nhận đƣợc hoặc đọc đƣợc ngay cả nếu cĩ. Hơn nữa, cĩ những trƣờng hợp khơng cĩ giải pháp khả thi tồn tại. Cho một bản vẽ và nhãn cĩ kích thƣớc cố định cụ thể, sau đĩ nĩ cĩ thể là khơng thể gán nhãn mà khơng vi phạm bất kỳ quy tắc cơ bản của gán nhãn tốt (ví dụ, dán nhãn chồng lên nhau, mức độ dễ đọc, phân rõ ràng). Những trƣờng hợp này xuất hiện thƣờng xuyên trong các ứng dụng thực tế khi bản vẽ là dày đặc, nhãn là quá khổ, hoặc sự phân nhãn phải đáp ứng yêu cầu tối thiểu của ngƣời sử dụng (ví dụ nhƣ cỡ chữ hoặc tùy chọn của việc đặt nhãn). Để giải quyết vấn đề ghi nhãn mà giải pháp tốt nhất chúng ta cĩ thể cĩ hoặc là khơng đầy đủ hoặc khơng chấp nhận đƣợc ngƣời ta phải chỉnh sửa các bản vẽ.

Phƣơng pháp này khơng thể đƣợc áp dụng vào bản vẽ đại diện cho bản đồ địa lý hoặc kỹ thuật mà các hình học cơ bản là cố định theo định nghĩa. Tuy nhiên, cách bố trí của một đồ thị vẽ đƣợc cĩ thể đƣợc thay đổi kể từ khi nĩ là kết quả của các thuật tốn đƣợc sử dụng để vẽ đồ thị.

Nĩi chung, cĩ thể cĩ hai cách tiếp cận thuật tốn trong việc sửa đổi cách bố trí của một bản vẽ đồ thị: Sửa đổi cách bố trí hiện cĩ của một bản vẽ đồ thị để nhƣờng chỗ cho các vị trí nhãn. Tạo một cách bố trí mới của một bản vẽ đồ thị cĩ tích hợp bố trí và quá trình ghi nhãn.

Các thuật tốn chỉnh sửa một cách bố trí hiện cĩ của một đồ thị vẽ để làm cho vị trí đặt nhãn đƣợc hiển thị. Các thuật tốn thay đổi một bản vẽ trực giao hiện cĩ bằng cách chèn thêm khơng gian để thích ứng với vị trí của các nhãn cạnh đĩ sao cho khơng chồng chéo. Đầu tiên, một phân nhãn cạnh đƣợc tính tốn, nơi sự chồng chéo đƣợc cho phép, bằng cách sử dụng kỹ thuật hiện

gian đa thức dựa trên kỹ thuật lƣu lƣợng tối thiểu để tìm thêm khơng gian cần thiết để loại bỏ sự chồng chéo nhãn, trong khi vẫn giữ sự biểu diễn trực giao của các bản vẽ. Nhãn chồng chéo đƣợc giải quyết bằng cách áp dụng một thuật tốn dựa trên các kỹ thuật đƣợc sử dụng để tạo ra các bản vẽ bố trí lực lƣợng hƣớng. Nĩ lặp đi lặp lại di chuyển nhãn để loại bỏ chồng chéo, trong khi vẫn giữ các vị trí tƣơng đối giữa chúng càng gần những ngƣời trong bố trí ban đầu càng tốt, và cạnh càng thẳng càng tốt.

2.6. Thuật tốn dán nhãn đƣờng biên

2.6.1. Giới thiệu chung

Chúng ta xem xét các vấn đề của văn bản định vị hoặc biểu tƣợng nhãn kết hợp với các tính năng đồ họa 2D. Trong nhiều ứng dụng thực tế mỗi tính năng đồ họa cĩ thể cĩ nhiều hơn một nhãn.

Thuật tốn đầu tiên đƣợc đƣa ra bởi Rosenfeld và Pfaltz [8], thực hiện quét ảnh nhị phân hai lần. Mỗi điểm đƣợc quét tới một lần trong lƣợt quét đầu tiên. Với mỗi điểm ảnh đen P, tiến hành kiểm tra bốn điểm lân cận (lân cận trái, trên trái, trên, trên phải). Nếu bốn điểm lân cận này khơng cĩ nhãn thì P

đƣợc đánh nhãn mới. Nếu khơng, các nhãn ở các điểm lân cận này đƣợc gọi là tƣơng đồng, gán cho P nhãn tƣơng đồng nhỏ nhất. Để thực hiện bƣớc này, thuật tốn dùng hai bảng, một bảng chứa tất cả các nhãn hiện tại, bảng cịn lại chứa nhãn tƣơng đồng nhỏ nhất của nhãn hiện tại. Ở lƣợt quét thứ 2 sẽ tiến hành đặt lại nhãn.

Haralick [4] xây dựng thuật tốn khơng cần sử dụng thêm vùng nhớ cho hai bảng trên. Khởi tạo mỗi điểm ảnh đen một giá trị nhãn khác nhau. Xử lí ảnh đã đƣợc đánh nhãn khởi tạo theo hai chiều. Lần quét đầu quét ảnh từ trên xuống dƣới. Gán lại cho mỗi điểm đen nhãn nhỏ nhất trong số các nhãn của bốn điểm lân cận của nĩ. Lƣợt quét thứ hai tƣơng tự lƣợt quét đầu, quét từ dƣới lên. Lặp đi lặp lại quá trình quét tới khi khơng cịn xảy ra thay đổi giá trị

nhãn. Phƣơng pháp này sử dụng khơng gian nhớ nhỏ nhƣng thời gian xử lí thay đổi phụ thuộc vào tính chất phức tạp của ảnh đang đƣợc xử lí.

Ngƣời ta cũng đã đã phƣơng pháp kết hợp của hai thuật tốn trên. Trong lƣợt quét đầu từ trên xuống, các điểm đen đƣợc đánh nhãn nhƣ trong phƣơng pháp đầu. Khi kết thúc mỗi dịng quét, các nhãn trên dịng này đƣợc đánh lại bằng nhãn nhỏ nhất trong số các nhãn tƣơng đồng của nĩ. Lƣợt quét thứ hai từ dƣới lên làm tƣơng tự. Cĩ thể chứng minh đƣợc sau hai lƣợt quét này, mỗi đối tƣợng sẽ cĩ một nhãn riêng biệt.

Nĩi cách khác một thuật tốn thời gian tuyến tính mà đồng thời nhãn thành phần kết nối và đƣờng nét của chúng trong ảnh nhị phân. Các bƣớc chính của thuật tốn này là sử dụng một kỹ thuật lần theo đƣờng biên để phát hiện các đƣờng biên bên ngồi và đƣờng biên bên trong cĩ thể cĩ của mỗi thành phần. Dán nhãn đƣợc thực hiện trong một lần lên ảnh, trong khi các điểm đƣờng biên đƣợc xem xét lại nhiều hơn một lần, nhƣng khơng nhiều hơn một hằng số lần. Hơn nữa, khơng cĩ việc ghi nhãn lại là cần thiết trong suốt tồn bộ quá trình, vì nĩ đƣợc yêu cầu của các thuật tốn khác.

Ngƣời ta áp dụng một phiên bản đặc biệt của thuật tốn tìm hợp, thuật tốn này cĩ thời gian tuyến tính với bài tốn dán nhãn. Phƣơng pháp này cũng gồm hai lần quét. Lần quét đầu, mỗi tập nhãn tƣơng đồng đƣợc biểu diễn bởi một cây. Lƣợt quét thứ hai tiến hành đánh lại nhãn. Quá trình xử lí áp dụng thuật tốn tìm hợp để kết hợp hai cây thành một khi một đỉnh trong cây này cĩ “liên kết 8” tới một đỉnh của cây kia.

Một số phƣơng pháp đặc biệt thích hợp cho nén ảnh, thuật tốn địi hỏi một bƣớc tiền xử lí để biến đổi các thành phần của ảnh thành các dải. Thuật tốn thực hiện nhiều lần hai bƣớc, một bƣớc tìm kiếm và một bƣớc lan truyền. Trong bƣớc tìm kiếm, ảnh đƣợc xử lí cho tới khi gặp một dải chƣa đƣợc đánh

nhãn; đánh một nhãn mới cho dải này. Ở bƣớc lan truyền, nhãn của mỗi dải này đƣợc “lan” qua các dải tiếp giáp với nĩ ở dịng quét trên hoặc dƣới.

2.6.2. Thuật tốn

Phần này trình bày một thuật tốn đánh nhãn cho các đối tƣợng và đƣờng biên của nĩ trong ảnh nhị phân, thuật tốn chạy với thời gian định tuyến. Bƣớc chính của thuật tốn này sử dụng kĩ thuật lần theo đƣờng biên của các đối tƣợng để phát hiện đƣờng biên ngồi và các đƣờng biên trong (nếu cĩ) của nĩ, đồng thời để xác định và đánh nhãn cho mỗi đối tƣợng. Quá trình đánh nhãn đƣợc thực hiện với chỉ một lần quét qua ảnh, các điểm trên đƣờng biên cĩ thể đƣợc quét tới nhiều hơn một lần nhƣng khơng quá một số lần nhất định. Hơn nữa thuật tốn này khơng cần một bƣớc xác định lại vị trí nhãn nhƣ nhiều các thuật tốn khác. Kết quả chạy thực nghiệm trên nhiều loại ảnh (ảnh chụp, tờ báo,...) cho thấy thuật tốn này vƣợt trội hơn so với một số thuật tốn khác cĩ sử dụng kĩ thuật tƣơng tự. Thuật tốn này khơng chỉ dán nhãn các đối tƣợng mà cịn lọc ra các đƣờng biên và thứ tự của chúng để sử dụng cho nhiều ứng dụng khác.

Ảnh nhị phân đƣợc quét trên xuống, trái sang phải, quét từng dịng một. Trên khái niệm, quá trình xử lí cĩ thể đƣợc chia làm bốn bƣớc, minh họa theo hình 2.16A – 2.16D.

-Bước 1 (2.16A): Lần đầu quét tới điểm A là đƣờng biên ngồi của một đối tƣợng, ta “lần” theo đƣờng biên đĩ cho tới khi trở về điểm A, đánh dấu nhãn cho A và tất cả các điểm thuộc vào đƣờng biên.

-Bước 2 (2.16B): Khi gặp điểm đƣờng biên ngồi A’ đã đƣợc đánh dấu, tiếp tục quét nốt đƣờng hiện tại để tìm hết dãy các điểm đen (nếu tồn tại), đánh nhãn chúng cùng giá trị với nhãn của A’.

-Bước 3 (2.16C): Lần đầu quét tới điểm thuộc đƣờng biên trong B, đánh nhãn cho B cùng giá trị với nhãn của điểm trên đƣờng biên ngồi thuộc cùng đối tƣợng. Lần hết đƣờng biên trong cĩ chứa B, đánh nhãn các điểm thuộc đƣờng biên trong cùng giá trị với nhãn của B.

-Bước 4 (2.16C): Khi quét đến một điểm thuộc đƣờng biên trong B’ đã đƣợc đánh nhãn, tiếp tục quét nốt dịng để tìm hết dãy các điểm đen (nếu tồn tại), đánh dấu nhãn cùng giá trị nhãn của B’.

Hình 2.16. Bốn bước chính trong kĩ thuật lần, đánh nhãn thành phần

Theo thủ tục này, ta chỉ quét qua ảnh đúng một lần, đánh cho mỗi điểm một nhãn mới hoặc trùng với nhãn của điểm trƣớc nĩ trên đƣờng quét. Chi tiết giải thuật nhƣ sau:

Để đơn giản, ta coi mọi điểm ở dịng trên cùng là trắng (nếu khơng, chèn thêm một dịng trắng). Với một bức ảnh nhị phân I cho trƣớc, ta gắn với nĩ một ảnh L, L sẽ lƣu dữ thơng tin nhãn. Khởi tạo, tất cả các điểm của L đặt bằng 0 (chƣa đƣợc đánh nhãn). Bắt đầu quét I để tìm một điểm đen. Gọi C là chỉ số nhãn cho các đối tƣợng, khởi tạo C = 1. Bốn bƣớc trên cĩ thể đƣợc giảm cịn ba bƣớc logic: Bƣớc đầu xử lí một điểm thuộc đƣờng biên ngồi mới gặp, tìm mọi điểm thuộc đƣờng biên đĩ. Bƣớc hai xử lí một điểm thuộc đƣờng biên trong mới gặp, tìm mọi điểm thuộc đƣờng biên trong. Bƣớc ba xử lí mọi điểm chƣa gặp trong hai bƣớc trên.

Gọi P là điểm hiện tại thuật tốn đang xử lí.

-Bước 1: Nếu P chƣa đƣợc đánh nhãn và điểm thẳng trên P là điểm trắng (Hình 2.17), P phải là một điểm thuộc đƣờng biên ngồi của một thành phần mới gặp. Đánh nhãn C cho P, chạy thủ tục contour tracing (thủ tục lần đƣờng biên, đƣợc giải thích sau) để tìm đƣờng biên ngồi và đánh nhãn C cho các điểm đĩ. Sau đĩ tăng C lên 1.

Hình 2.17. P là điểm đầu của đường biên ngồi,1 là điểm đen chưa được đánh nhãn

-Bước 2: Nếu điểm thẳng dƣới P là điểm trắng và chưa đánh dấu (việc đánh dấu điểm trắng đƣợc làm trong thủ tục lần biên), P phải là điểm thuộc đƣờng biên trong mới gặp. Cĩ hai khả năng: Nếu P đã đƣợc đánh nhãn (Hình 2.18A) thì P phải đồng thời là điểm thuộc đƣờng biên ngồi. Nếu P chƣa đƣợc đánh nhãn (Hình 2.18B), trƣờng hợp này điểm N trƣớc P trên đƣờng quét (điểm lân cận trái của P) phải là đã đƣợc đánh nhãn, ta đánh nhãn cho P

trùng với nhãn của N. Ở cả hai trƣờng hợp, thực thi thủ tục contour tracing

tìm đƣờng biên trong cĩ chứa P, đánh nhãn cho các điểm cùng nhãn với P.

Hình 2.18.(A) P là điểm khởi đầu của đường biên trong, cũng nằm trên đường biên ngồi. (B) P là điểm khởi đầu của đường biên trong nhưng khơng nằm trên đường biên ngồi. 1: điểm đen chưa được đánh nhãn,

Hình 2.19. P là điểm chưa được đánh nhãn, điểm lân cận trái N đã được đánh nhãn

-Bước 3: Nếu P là điểm khơng phải trong bƣớc 1, 2 (VD P khơng phải là điểm thuộc đƣờng biên) thì điểm lân cận trái N của P đã đƣợc đánh nhãn (Hình 2.19). Đánh nhãn cho P cùng giá trị với nhãn của N

Nhƣ mơ tả trong hình 2.20, để tránh thực hiện thủ tục Contour tracing

ở điểm Q, ta đánh dấu những điểm trắng bao quanh đối tƣợng bởi một số âm.

Vì vậy, trên đƣờng quét tới Q, điểm dƣới Q khơng cịn là điểm trắng chƣa đƣợc đánh dấu, trong khi điểm trắng dƣới P vẫn chƣa đƣợc đánh dấu do đƣờng biên trong bắt đầu từ P chƣa đƣợc lần.

Bằng cách đánh dấu những điểm trắng bao quanh, ta cĩ thể chắc chắn mỗi đƣờng biên trong đƣợc lần đúng một lần. Trong Hình 2.21, khi đƣờng biên trong đã đƣợc lần, điểm trắng dƣới R đƣợc đánh dấu, vì vậy khi quét tới

R ta khơng cần lần đƣờng biên nữa (chỉ thực hiện lần đƣờng biên trong khi điểm lân cận dƣới là điểm trắng chƣa đánh dấu).

Hình 2.20. Các điểm trắng bao quanh đối tượng được đánh dấu bởi số âm

Việc đánh dấu các điểm trắng bao quanh đƣợc làm trong thủ tục Tracer, đƣợc gọi tới trong thủ tục lần biên Contour tracing. Hai thủ tục này đƣợc miêu tả dƣới đây.

Contour tracing: Mục tiêu của thủ tục này là để tìm một đƣờng biên ngồi hay trong từ một điểm S. Từ điểm S ta gọi thủ tục Tracer. Nếu Tracer xác định S là một điểm cơ lập tức là đã tới cuối thủ tục Contour tracing.

Hình 2.21. Các điểm trắng quanh đối tượng được đánh dấu âm khi đường biên đã được lần

Nếu khơng, Tracer trả về một điểm T thuộc đƣờng biên, nối tiếp S. Ta tiếp tục thực thi thủ tục Tracer để tìm điểm biên tiếp theo của P. Lặp lại cho

tới khi gặp cả hai điều kiện sau: (1) Tracer trả về S; (2) điểm biên tiếp theo lần đƣợc từ S trùng về T. Minh họa trong hình 2.22, S là điểm bắt đầu, T là điểm biên tiếp theo,đƣờng lần đƣợc bởi Tracer là STUTSVWVS

Hình 2.22. Lần đường biên của một đối tượng

Tracer: Với một điểm biên P, mục tiêu của Tracer là tìm ra điểm biên tiếp theo P trong số 8 điểm lân cận của P. Vị trí mỗi điểm lân cận của P đƣợc đánh số nhƣ trong hình 2.23A. Bắt đầu tìm kiếm theo chiều kim đồng hồ, từ “điểm khởi tạo” đƣợc xác định theo cách sau:

Hình 2.23. (A) đánh số thứ tự các điểm lân cận của P từ 0 tới 7;

(B) Nếu điểm biên trước P nằm ở 3 thì bắt đầu tìm kiếm từ 5

Nếu P là điểm khởi đầu của đƣờng biên ngồi, bắt đầu tìm từ điểm vị trí số 7 (do do ta đã biết điểm trên P là điểm trắng, điểm tiếp theo theo chiều kim đồng hồ là số 7). Nếu P là điểm khởi đầu của đƣờng biên trong thì điểm bắt đầu tìm từ điểm số 3. Nếu tồn tại điểm biên trƣớc P, ví dụ ở vị trí 3, điểm khởi tạo tìm kiếm sẽ bắt đầu từ 5 do điểm 4 đã đƣợc quét qua (Hình 2.23B).

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu kỹ thuật dán nhãn đối tượng 2d (Trang 42 - 62)

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

(62 trang)