Th ut Toán Meanshift

Một phần của tài liệu Quy hoạch quỹ đạo cho robot di động dựa trên thị giác máy tính (Trang 64)

LI CAM ĐOAN

2. 2S phát tri nc ủa th giác máy tính

4.3.2 Th ut Toán Meanshift

ThụtătoánăMeanshiftă[18] đ ợcăsửădụngăchoăviệcăxácăđịnhătơmăvùngămƠu,ă nhăđầuă vƠoăcủaăthụtătoánăsẽălƠă nhădữăliệuămứcăxámăvớiănhữngăđiểmăsángălƠăđiểmădữăliệuă thểăhiệnăđiểmămƠuănh ăhìnhă4.8b.ăĐểăxácăđịnhăđ ợcătơmăvùngămƠuăhayătơmăvùngădữă liệuăđiểmă nhăthìădựaăvƠoăviệcătìmăcựcătrịăhƠmăphơnăbốăṃtăđộăcủaăvùngăđiểmădữă liệuăđóănh ăminhăhọa trong hình 4.9.

53 Hàm phân bố ṃtăđộ dữ liệu là hàm biểu diễn sốl ợng hay ṃtăđộđiểm dữ liệu ṭp trung xung quanh mộtăđiểmănƠoăđóătrongăṭp dữ liệuăđ ợc cho b i công thức:

� =1 =1 − (4.5)

TrongăđóănălƠăsố phần tử điểm dữ liệu. − lƠăhƠmă ớcăl ợng ṃtăđộ nhân (kernelădensityăestimation),ăhƠmănƠyădùngăđể ớcăl ợng giá trị hàm ṃtăđộ của một biến ngẫu nhiên có công thức:

� − � = �−� 2 (4.6)

Vớiă lƠăkíchăth ớcăcửaăsổăvùng,ăcửaăsốăvùngănƠyăgiớiăh năvùngătrongăđóăchứaănă phầnătửăđ ợcăxemăxét.ăcălƠăhằngăsốăthực.

CựcătrịăhƠmăphơnăbốăṃtăđộălƠăđiểmămƠăt iăđóăcóăsốăl ợngălớnănhấtăhayăṃtăđộădƠyă đặcănhấtănhữngăđiểmădữăliệuăṭpătrungăxungquanhăđiểm này so với nhữngăđiểm lân c̣n.ăĐể xácăđịnhăđ ợc cực trị của hàm phân bố ṃtăđộ cần tìm Gradient của hàm phân bố ṃtăđộ bẳng công thức:

∇� = 1 ∇ − =1 (4.7)

ThụtătoánăMeanShiftăđ ợcăthựcăhiệnătheoăcácăb ớcătrongăhình 4.10 sau:

Lựaăchọnăcửaăsổătìmă kiếm Diăchuyểnăcửaăsổ TơmăcủaăcửaăsổălƠătơmă vùngăđiểmă nh End Start Đúng Sai Hình 4.10.ThụtătoánăMeanshift

54 B ớcăđầuătiênălƠăchọnălựaăcửaăsổătìmăkiếmăbaoăgồmăviệcăchọnăvịătríăcửaăsổ,ăkiểuăcửaă sốă(đaăthức,ăhƠmă mũ,ă Gausse),ăhìnhădángă(đốiăxứngăhoặcăbấtăđốiăxứng,ăchữănḥtă hoặcătròn),ăcửaăsổăsẽăcóăvịătríăbấtăkìătrongăvùngădữăliệu.ăTiếpătheoălƠătínhătoánăvịătríă cóăṃtăđộăđiểmădữăliệuălớnănḥtătrongăcửaăsố,ăvịătríănƠyăđ ợcăgọiătơmăvùngăđiểmă nh.ăSauăđóădiăchuyểnăcửaăsổăsaoăchoătơmăcửaăsổătrùngăvớiătơmăvùngăđiểmă nhăvửaă tìmăđ ợc,ăh ớngăvƠăkho ngăcáchădiăchuyểnăphụăthuộcăvƠoăvectoăMeanshift,ăvectoă nƠyălƠăđ ợcătínhăraătừăvịătríăcủaătơmăvùngăđiểmă nhăchứaătrongăcửaăsổăvƠăvịătríătơmă cửaă sổ.ă Việcă diă chuyểnă tơmă vùngă cửaă sổă tớiă tơmă vùngă điểmă nhă đ ợcă dựaă vƠoă gradientăhƠmăphơnăbốăṃtăđộăđ ợcătínhătheoăcông thức: ∇� = ∇=1 = ∇ =1 − 2 ∇xi − 2 =1 ∇ − 2 =1 − (4.8)

Côngăthứcă4.8ăđ ợcămôăt ăd ớiăd ngăhìnhăhọcănh ăminhăhọaătrong hình 4.11. Sau khiă diă chuyểnă cửaă sổă tớiă vịă tríă mớiă thìă sẽă tínhă l iă tơmă vùngă nhă mớiă vƠă vectoă Meanshift.ă Việcă diă chuyểnă ngừngă l iă khiă vectoă cóă giáă trịă bằngă không,ă nếuă vectoă ch aăbằngăkhôngăthìălặpăl iăb ớcăthứăhai.ăCácăb ớcădiăchuyểnăcủaăcửaăsổăđ ợcătrình bày trong hình 4.12.

55

Hình 4.12Cơ chế ho t động của thuật toán MeanShift

4.3.3 Đ nh v trí bằng đi m m c

Vịă tríă tơmă củaă haiă điểmă mốcă trênă nhă sauă khiă đ ợcă xácă địnhă bằngă thụtă toánă MeanShiftăthìădựaăvƠoăthôngătinăđộ sâu cung cấp b i c m biến có thểxácăđịnhăđ ợc kho ng cách từ robotăđếnăhaiăđiểm mốcănh ăhìnhă4.13.ăGi sử kho ngăcáchăđóălần l ợt là và , kho ng cách giữaăhaiăđiểm mốc là ,ăkho ngăcáchănƠyăđ ợcătínhătừă tọaăđộăcủaăhaiăđiểmămốcătrênăb năđồ.

56

Hình 4.13Xác định vị trí robot sử dụng điểm mốc

Vị trí củaăhaiăđiểm mốc là 0; 0 và 1; 1 . Từ đơyăcóăthể tínhăđ ợc vị trí hiện t i của robot theo công thức:

= 0 − 2+ 2− 2

2 (4.9)

= 0 − 2 − 2+22− 2 2 (4.10)

4.4 Phát hi n c a

PhátăhiệnăcửaălƠămộtătrongănhữngăbƠiătoánăth ngăgặpătrongănhữngăứngădụngătrongă nhƠ.ăRobotăsẽăph iănḥnăbiếtăvƠăđiăquaăcửaătrongăkhiădiăchuyểnătrongăhƠnhălanghoặcă diăchuyểnăquaăcácăphòng.ăPh ngăphápăđểăxácăđịnhăđ ợcăcửaătrongă nhădựaătrênă thụtătoánăphátăhiệnăbiênăCannyăvƠăbiếnăđổiăHough.

4.4.1 Đặc đi m c a

Đối với một cửa ra vào thì có rất nhiều hình d ngăkhácănhauăsongăđặcăđiểm chung và dễ nḥn biết nhất một cánh củaăđóălƠăkhungăcửa. Hình dáng khung cửaăth ng là hình chữ nḥt. Thực tế hình d ng khung cửa mà robot có thểxácăđịnhăđ ợc là là chữUăng ợc hoặc 2 c nhăbênăsongăsongănh ăhìnhă4.14.ă

(x0,y0) (x1,y1)

a b

57

Hình 4.14ảình dáng đặc trưng của khung cửa (a) d ng U ngược (b) d ng hai c nh bên song song

Một khung cửaăcóă4ăđặcăđiểmăc ăb n:ăh ớng khung cửaălƠăh ớngăđứng, chiều cao kho ng 2,5m so với mặt sàn, d ng hình chữ nḥtăvƠăkíchăth ớc chiều rộng có thể quaăđ ợc. Robot dễ bị nhầmăđặcăđiểmăh ớng trụcăđứng với các thành phần khác trongămôiătr ngănh ăc nhăt ng hoặcăđồ ṿtăcóăkhungăđứng. chiều cao thì robot khó có thểđoăđ ợc. Nên chỉ cóă2ăđặcăđiểmăhìnhădángăvƠăkíchăth ớc chiều rộng là dễ nḥn biết và tính toán. Khung cửa có 2 thành phần là c nh trên và 2 c nhăbên,ăđể xácă định các thành phần này cần sử dụng thụt toán Canny và biếnă đổi Hough. ThụtătoánăCannyădùngăđể phát hiện c nh và biếnăđổiăHoughăđể tìmăđ ng thẳng trong nh.

4.4.2 Thu t toán phát hi n c a

Thụt toán phát hiện cửa bao gồmăsáuăb ớcăchínhăđ ợc trình bày trong hình 4.15. Trong thụt toán phát hiện cửa, nhăđ ợc xửlýăquaăhaiăb ớc phát hiện c nh Canny và biếnăđổiăhoughăđể tìmăraăcácăđ ng thẳng. Khung cửaăcóăđặcătínhăph ngăđứng đối với hai c nhăbênăvƠăph ngăngangăđối với c nhătrênănênăcácăđ ng thẳng không ph iăph ngăngangăvƠăph ngăđứng sẽđ ợc lo i bỏ.ăTrongăb ớc tiếp theo, các c nh trên là nhữngăđ ng thẳngăcóăph ngăngangăsẽ đ ợc tìm, nếu phát hiện c nh trên thìăđ aăraăgi thiết cửa có ba c nh,ăsauăđóătìmăhaiăc nh bên có vị tríăngayăbênăd ới c nh trên. Nếu không tìm thấy c nh trên thì tiếp tụcăb ớc kế là tìm hai c nh bên, nếu tìm thấy thì gi thiết cửa có hai c nh bên và nếu không quay l iăb ớcăđầu tiên.

58 Phátăhiệnăc nhă Canny Tìmăhaiăc nhăbên Tìmăc nhătrên BiếnăđổiăHough Gi ăthiếtăcửaăcóă3 c nh Gi ăthiếtăcửaăcóă2 c nhăbên Kiểmăchứngăgi ă thiết Xácăđịnhăvịătríă cửa T iă nh Start End Đúng Sai Sai Đúng Đúng Sai Hình 4.15.Thuật toán phát hiện cửa

Các gi thiếtăđ aăraăcóăthể khôngăđúngăvìăthế cần kiểm chứng gi thiết, việc kiểm chứng dựa trên việcăđoăchiều dài c nhătrênăvƠăđộ rộng của hai c nhăbên.ăĐối với gi thiết cửa có ba c nh thì ph i so sánh giữa chiều dài c nhătrênăvƠăđộ rộng hai c nh bên, còn gi thiết cửa có hai c nh thì chỉ kiểm tra độ rộng của hai c nh bên. Khi các gi thiếtăđ ợc kiểmăđịnh, nếu gi thiếtăđúngăthìăb ớc cuối cùng là tìm vị trí của cửa nếu không thì quay l iăb ớcăbanăđầu.

4.5 Tìm v t th đích

Tìm ṿt thểđíchăsử dụng thụt toán nḥn d ng là mộtă uăđiểm củaărobotădiăđộng sử dụng thị giác máy tính so với nhữngăh ớng nghiên cứu khác. Robot có thể tự dò tìm ṿt thểđíchătrongămôiătr ng mà ṿtăđíchăđ ợcăđặt bất kì vị trí nào trongăđó.ăNh ă đƣăgiới thiệuătrongăch ngăba,ămột sốph ngăphápănḥn d ng tiêu biểuăđƣăđ ợcăđề c̣p. TrongăđềtƠiănƠyăph ngăphápăđ ợc chúng tôi chọnăđể áp dụngălƠăph ngăphápă nḥn d ng dựaătrênăđặcăđiểm cục bộ do nhữngă uăđiểmăv ợt trộiăh năsoăvới những ph ngăphápăcònăl i.

59

4.5.1 Thu t toán nh n d ng v t th đích

Trong quá trình nḥn d ng ṿt thểđíchăđể đ tăđ ợc kết qu nḥn d ng tốt thì robot ph i gần ṿt thể,ă doă đóă để dễ dàng cho việc dò tìm ṿt thể trongă môiă tr ng có không gian rộng cần thiết kết hợpăthêmăb ớc nḥn d ng ṿt thể bằng màu sắc. Các b ớc thực hiện thụt toán nḥn d ng trình bày trong hình 4.16.

Trongăb ớcăđầu tiên robot sẽ tìm kiếm ṿt thểđíchătrongămôiătr ng thông qua màu sắcăđịnhătr ớc của ṿt thể đích,ăsauăđóăxácăđịnh vị trí của ṿt thể.ăHaiăb ớc này giống vớiăcácăb ớcătrongăph ngăphápătìmăđiểm mốcăđƣăđề c̣p trên. Robot sẽ dựa vào thông tin vị trí về ṿt thể để di chuyểnăđến.ăKhiăđƣătiếp c̣n với ṿt thể b ớc cuối cùng là nḥn d ngă để xem xét ṿt thể tiếp c̣n có ph i là ṿt thể đíchă hayă không.

4.5.2 Ph ng pháp nh n d ng SURF

Ph ngă phápă nḥn d ngă đ ợc sử dụngă trongă đề tƠiă lƠă ph ngă phápă nḥn d ng SURF (Speeded Up Robust Features) [19].ăPh ngăphápănƠyăcũngăgiốngănh ăcácă ph ngăphápănḥn d ng dựaătrênăđặcăđiểm cục bộ nênăph ngăphápăbaoăgồm ba b ớcăc ăb năđ ợc trình bày trong hình 4.17.

TìmăṿtăthểăcóămƠuă địnhăsẵn Xácăđịnhăvịătríăṿtăthể Diăchuyểnăđếnăgầnăṿt Nḥnăd ng Start End Hình 4.16. Thuật toán nhận d ng vật thểđích

60 Phátăhiệnăđiểmănổiăḅt Xơyădựngăbộămôăt ă đặcăđiểm Soăkhớpăcácăbộămôăt Start End

Hình 4.17.Thuật toán nhận d ng SURF i) Phát hiện điểm nổi bật

Cácăđiểm nổi ḅt trong nhăth ng là nhữngăđiểm mà t iăđóăc ngăđộ sáng bị gián đo nănh ăgóc,ăblob,ăgiaoăđiểm chữ T…Để xácăđịnhăđ ợc nhữngăđiểm nổi ḅt này thì cách thứcăđ ợc sử dụngălƠăđ o hàm kết hợp.ăTrongăph ngăphápăSURF,ămaătṛn đ oăhƠmăHessianăđ ợc sử dụng cho việc phát hiệnăcácăđiểm nổi ḅt, b i vì thụt toán có hiệuănĕngăcaoăvề th iăgianătínhătoánăvƠăđộ chính xác. Xét t i mộtăđiểm A có tọaăđộ , trên một nh I, Ma tṛnăđ o hàm Hessian ℋ ,� t iăđiểm A với tỷ lệ thayăđổiăkíchăth ớc � đ ợc cho b i công thức:

ℋ ,� = ,� ,�

,� ,� (4.11)

Trongăđóă ,� , ,� , ,� lầnăl ợt là tích cḥp củaăđ o hàm ḅc hai hàm Gausse � 2 � 2 � , � 2 � � � , � 2 � 2 � với nh I t iăđiểm A.

61 Sauăkhiăcácăđặcăđiểmăhayăcácăđiểm nổi ḅtăđƣăđ ợc phát hiện thì quá trình tiếp theo là xây dựng bộ mô t đặcăđiểm hay còn gọiălƠăvectoăđặcăđiểm. Bộ mô t thể hiện mối quan hệ về mặt không gian giữaăđiểm nổi ḅtăvƠăcácăđiểm lân c̣n xung quanh nhằmăxácăđịnh vị trí củaăcácăđiểm nổi ḅt trong nh. Việc xây dựng bộ mô t bao gồmăhaiăb ớcălƠăxácăđịnhăh ớng lặp l i dựa trên thông tin từ vùng vòng tròn xung quanhă điểm nổi ḅt,ă b ớc tiếp theo là dựng cửa số hìnhă vuôngă đồngă h ớng với h ớngăđ ợcăxácăđịnh từ quá trình trên và t o bộ mô t SURF từ vùng hình vuông này.

Trongăb ớcăđầu tiên sau khi phát hiệnăđ ợcăcácăđiểm nổi ḅt thì quá trình tiếp theo lƠăxemăxétăvùngăcácăđiểm lân c̣năxungăquanhăđiểm nổi ḅt,ăvùngăđiểm lân c̣n là vùngătrònăcóătơmălƠăđiểm nổi ḅt và bán kính là 6s, với s là tỷ lệthayăđổiăkíchăth ớc nh ătrongăhình 4.18. Việc mô t bắtăđầu bằng việcăxácăđịnhăh ớng củaăvùngăđiểm lân c̣n hay còn gọiălƠăh ớngăvectoăđặcăđiểm, quá trình này sử dụng thụtătoánăđápă ứngăHaarăWaveletăđểxácăđịnhăh ớng.ăH ớngăđ ợcăxácăđịnh bằng tổngăcácăđápăứng theoăhaiăh ớng trụcătrungăđộ và trụcăhoƠnhăđộ,ăcácăđápăứngăđ ợc tính bên trong của một cửa sổ tr ợtăkíchăth ớc 4s giới h n trong góc �

3 củaăvùngăđiểm lân c̣n. Tổng cácăđápăứng sẽ cho ra một vecto cho mỗi góc �

3, và vecto nào lớn nhất sẽ là vecto củaăđiểm nổi ḅt.

Hình 4.18. Vùng điểm lân cận xung quanh điểm nổi bật (a) Vùng điểm lân cận tròn có bán kính 6s. (b) Cửa sồtrượt.

62 B ớc tiếp theo là trích xuất các bộ mô t ,ăđể thực hiệnăđiềuănƠyăđầu tiên dựng một vùngăhìnhăvuôngăxungăquanhăđiểm nổi ḅt,ăcóăh ớng trùng vớiăh ớng củaăvectoăđặc điểmăđƣăđ ợc tìm trên.ăKíchăth ớc cửa sổ là 20s, vùng này sẽđ ợc chia thành 4x4 vùng con. Trong mỗi vùng con sẽ tiếp tục áp dụng thụtătoánăđápăứng Haar Wavelet để tính toán vecto mô t , cửa sổtr ợtăcóăkíchăth ớc 2s nên một vùng con sẽ có bốn vecto mô t nh ătrongăhìnhă4.19.ăVectoămôăt tổng của một vùng con �đ ợc xây dựng từ 4 phần tử là , , , với là tổngăđápăứng theo trục ngang, tổngăđápăứng theo trụcăđứng, tổng giá trị tuyệtăđối củaăđápăứng theo trục ngang và tổng giá trị tuyệtăđối củaăđápăứng theo trụcăđứngănh ăhìnhă 4.20. Trụcăđứngăcóăh ớng trùng vớiăh ớngăvectoăđặcăđiểm. Giá trị của vecto tổng �

cho biết thông tin về sữthayăđổi củaăc ngăđộsángăvƠăđộ phân cực trong một vùng con.

Hinh 4.19. Vùng điểm lân cận vuông xung quanh điểm nổi bật.

iii) So khớp các bộ mô t

B ớc cuốiăcùngătrongăph ngăphápănḥn d ng SURF là so khớp các bộ mô t giữa trong nh với các bộ mô t trong ṭp dữ liệuăđể nḥn d ng ṿt thể.ăB ớc so khớp này dựa vào kho ng cách giữa các vecto trong bộ mô t , ví dụ nh ăkho ng cách Mahalanobisăhoacă clit.ăăă

63

64

Ch ng 5

Mô Hình Robot Di Đ ng K t

Qu Th c Nghi m

Phầnăđầu củaăch ngănĕmăđề c̣p tớiămôăhìnhărobotădiăđộngăđ ợc xây dựngăchoăđề tài này. Phần cuốiăch ngăsẽ là các kết qu thực nghiệm khi áp dụng thụt toán quy ho ch qũđ o cho robot sử dụng thị giácămáyătínhătrênămôăhìnhărobotădiăđộng.

5.1 Mô hình robot di đ ng 5.1.1 Mô hình h th ng

Một phần của tài liệu Quy hoạch quỹ đạo cho robot di động dựa trên thị giác máy tính (Trang 64)

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

(99 trang)