You are on page 1of 4

Trong phn ny ta s bit lm th no s dng OpenCV nhn dng hnh nh, ta s bit cc thut ton nhn dng nh lm vic

nh th no v bn cng s c mt s li khuyn tip thu n tt nht. 1/M u OpenCV nhn dng mt bng lp Haar Cascade.Hnh 1 cho ta thy mt v d v nhn dng mt ca OpenCV. Vi mt nh-c th ly t mt file hoc t file video trc tip- th nhn dng nh nghin cu mi nh v phn loi chng thnh Mt v khng mt. S phn loi ny cho rng c mt t l c sn cho mt, chn im nh 50x50.Mt mt trong nh c th ln hn hoc nh hn gi tr ny. S phn loi hng v nh trong mt khong thi gian, v tm kim mt ct vt qua gii hn chia. iu ny tng chng nh rt to ln , nhng may thay nh mt s b quyt gii thut m s phn lp l rt nhanh, ngay khi n c dng mt vi h chia.

D liu s dng c lu trong mt file XML v n quyt nh n s phn loi ca mi vng nh. Bn ci t OpenCV bao gm 4 loi d liu XML cho qu trnh x l mt trc (frontal face detection), v mt trong s chng dng cho bng ca nh (profile image). N cng bao gm 3 file XML khng nhn dng mt : mt cho nhn dng y c th, mt cho phn c th pha trn v mt cho phn c th pha di.
Figure 1:D tm mt vi OpenCV, s dng cc thng s chun.nh nhp vo l lena.jpg nm th mc samples/c

Bn s cn khai bo a ch ni m bn cn tm file d liu m bn s s dng n. Cch duy nht ti s dng l gi


haarcascade_frontalface_default.xml. Trong bn OpenCV phin bn 1.0 , nm ti :

[OPENCV_ROOT]/data/haarcascades/haarcascade_frontalface_default.xml [OPENCV_ROOT] l ni bn ci t chng trnh OpenCV. V d nu bn dng WindowXP v la chn tt c l mc nh a ch l: [OPENCV_ROOT] = C:/Program Files/OpenCV (Nu bn lm vic vi mt phin bn window c hn, chng hn windows 16 bit , bn s s dng \ chia tch th mc thay v /) N l mt kin rt hay v th mc bn cha file XML m bn s s dng , chc chn ng dn ca bn s ng trc khi bn yn tm vit chng trnh nhn dng mt ca mnh. Bn cng cn mt bc nh phc v qu trnh x l. Bc nh lena.jpg l bc nh rt tt ch cng vic kim tra. N nm trong th mc samples/c ca OpenCV. Nu bn cop n n mt th mc chng trnh ang lm vic ca bn , th tht d dng so snh u ra chng trnh ca bn vi u ra t m ngun c trn hnh 2.

2/Tng bc thc hin nhn dng mt Hnh 2 trnh by m ngun chy mt nh t mt file, d tm mt trn n, v trnh din nh vi mt d tm c v phc mu xanh l cy. Hnh 1 trnh by mt sn phm ca chng trnh ny khi n chy t dng lnh, ta s dng : DetectFaces lena.jpg 2.1/Khi to b d tm Bin CvHaarClassifierCascade * pCascade nm dng 2 nm gi d liu t file XML nm trong th mc mt cch d dng. Gn d liu XML vo pCascade , bn c th s dng cvLoad() dng 11 n 13.Hm cvLoad() l mt dng chy d liu t mt file. N mang 3 thng s. Trong v d ny, bn s ch cn ti thng s u tin. y l ng dn ti file XML cha mt Haar Cascade c sn. y, ti khi to gi tr mc nh ca php d tm mt trc. Nu bn vit chng trnh trong C, hy cho nhng thng s cn li bng 0. Nu bn vit trong C++ bn c th b qua nhng thng s khng s dng mt cch d dng. Trc khi d tm mt trong nh, bn s cn khai bo c th i tng CvMemStorage (pStorage, c cng khai dng 3).y l mt b nh m ci m s t ng m rng nu cn. B d tm mt s t danh sch nhng mt c tm thy vo b m ny. V n lm cho b m ln ln, bn khng cn lo lng v vic trn b nh. Tt c vic bn cn lm l khi to n ( dng 10), sau gii phng n khi m dng xong ( dng 54). Bn s thng xuyn cn chy d liu t file vi OpenCV. iu rt d gy ra li ng dn. Mt kin hay l to mt b kim tra nhanh chc chn rng mi th c chy v khi to u ng. Dng t 16-24 l mt on kim tra li n gin, in ra mt thng bo chun on, v thot khi chng trnh khi gp li. 2.2/Chy b d tm Dng 27-32 gi ti cvHaarDetectObjects() v chy b d tm mt. Hm ny c 7 thng s. Ba thng s u l con tr nh, d liu XML v b nh m. Bn thng s cn li khi to gi tr mc nh trong C++ ca hm. Bn thng s ny c miu t di y, trong phn Thng s v iu chnh 2.3/Xem kt qu. Cch d nht kim tra xem chng trnh c lm vic khng l xem kt qu trong ca s mi trng OpenCV. Bn c th to mt ca s trnh din vi lnh cvNamedWindow() nm dng 35. Thng s u tin l mt k t, dng nh tn ca s. Thng s cn li CV_WINDOW_AUTOSIZE l mt c ni cho bn bit ca s s t ng a tr li kch thc sao cho va vi nh bn a vo. xem nh gi lnh cvShowImage()vi tn bn t trc trong ca s, v nh bn mun xem. Hm cvWaitKey() gi dng 48 s tm dng chng trnh n khi bn ng khung ca s. Nu khung ca s c li khi ng bng FIGURE2:: M ngun d tm mt ca mt nh

cch kch vo biu tng, ta kch vo khu vc trnh din nh, sau nhn phm bt k trn bn phm. V vy, chc chn chng trnh ca bn cn gi hm cvDestroyWindow() dng 49 ng khung ca s. B d tm c lu tr nh mt danh sch ca con tr cu trc CvRect .Dng 38-44 s truy nhp n mi hnh ch nht d tm v thm phn v phc ca n vo bin pInpImg ci m s nm trong b nh hnh nh c chy t file. 2.4/Gii phng m ngun. Dng 52-54 gii phng m ngun s dng nhp hnh nh, d liu XML, v b m lu tr. Nu bn ang d tm nh trong mt nh mu, bn khng cn gii phng d liu XML hoc b m cho ti lc hon thnh qu trnh d tm mt. 3.Thng s v iu chnh C mt vi thng s bn c th quyt nh vic iu chnh d tm mt trong ng dng ca bn. 3.1/Thng s d tm ti thiu Thng s th 7 trong khi gi ti cvHaarDetectObjects() l kch c mt nh nht c tm thy. Trong C, bn c th la chn gi tr mc nh bng cch chnh sa gi tr n 0x0, nh trong hnh 2, dng 32. ( trong C++, ta c th b qua mt cch d dng thng s ny, n t cho v gi tr mc nh). Nhng gi tr chun y l gi? Bn c th tm n bng cch m file XML m bn ang s dng.Tm <size> . Trong b d tm mt trc, n l :
<size> 24 24 </size>.

V vy, ci thng s mc nh nh nht y l 24x24. Ty thuc vo cch gii quyt m bn s dng, kch c chun ny c th l phn chia rt nh ca mt nh tng th. Mt nh mt nh ny c th khng c ngha hoc hu ch, v nhn dng n mang n mt chu k x l ( CPU cycles) bn c th s dng n cho mc ch khc. Vi l do ny v cng l s nh nht ca b d tm mt m bn cn trong qu trnh x l ca mnh n l tt nht to b d tm vi t l ti thiu nh nh bn cn. To mt t l ti thiu cao hn gi tr mc nh ,khi to thng s ny thay i kch c bn mun. Mt nguyn tc hay l s dng mt vi phn nh ca chiu di hoc chiu rng ca nh nhp vo lm t l ti thiu. V d, ca chiu rng nh. Nu ch r t l ti thiu khng khc gi tr mc nh , th chc chn t l di rng l ging nh mc nh. Trong thc t, ci t l ny l 1:1. 3.2/Ngng gn ti thiu Mt trong s nhng th xy ra ti hu trng khi bn gi b d tm th v tr khu vc thc t pht ra rt nhiu t d tm Haar. Hnh 3 trnh by danh sch hnh ch nht bn trong ca OpenCV t v d lena.jpg. Khu vc nh pht ra mt cm hnh ch nht, chng cho ln nhau trn qui m ln. Thm vo c mt ci d tm nh nm bn tri( theo hng ca ngi nhn) v c hai d tm ln hn khng ng k nm pha trn v bn tri ca cm mt chnh. Thng thng, nhng d tm n l nhng d tm sai.N b qua nhng d tm ny. N cng lm cho ta cm gic khng bit lm sao kt hp d tm phc tp cho mi khu vc mt vo d tm n. OpenCV cng c c hai loi ny trc kh tr v danh sch mt nhn dng.u tin kt hp nhm cc hnh ch nht cha mt s lng ln cc chng cho, sau tm hnh ch nht trung bnh ca nhm ny.Thay tt c hnh ch nht ca nhm bng hnh ch nht trung bnh. Gia hnh ch nht n v nhm ln hn l mt nhm nh hn ci m c th l mt hoc d tm sai. Ngng gn ti thiu to ra mt mc ct t cho vic loi b hoc gi nhm hnh ch nht trn c s c bao nhiu cch d tm th trn nhm.Trong C++ c thng s mc inh l

3, ngha l s kt hp nhm ca ba hoc nhiu hn v loi b nhng nhm c s hnh ch nht t hn. Nu bn thy rng b d tm mt ca bn b qua qu nhiu mt, bn c th c gim ci ngng ny xung cn 2 hoc 1. Nu bn cho ngng l 0, OpenCV s tr v y danh sch ca d tm th t b phn lp Haar. Trong khi bn ang iu khin b d tm mt, n c th gip ch trong vic xem xt ci g ang thay i bn trong OpenCV. Xem xt b d tm th s gip ci thin trc gic ca bn khi kim tra nhng thng s khc nhau ang thay i.iu gip bn iu khin c chng. 3.3/ Tng t l Thng s th t ca cvHaarDetectObjects() ch r lm th no OpenCV c th tng t l ca d tm mt mt cch nhanh trong vi mi ln thnh cng n li mt nh. Thay i thng s ny cao hn lm b d tm nhanh hn, nhng nu qu cao bn c th nhy qu nhanh v gy ra mt mt. Mc nh ca OpenCV l 1,1 , trong mt ti liu khc , t l tng l 1,1 cho mi ln. 3.4/C Canny Prunning Thng s th 6 ca cvHaarDetectObjects() l mt bin c c sn. C 2 la chn l : 0 v CV_HAAR_DO_CANNY_PRUNING. .Nu la chn Canny Prunning Figure 3:Hnh ch nht d tm nm trong c chn, b d tm s b qua nhng khu vc nh khng ca OpenCV.Nhn n, ta s dng cha mt, gim bt tnh ton phc tp v c th loi b mt min_neighbor = 0 vi d tm sai. Vng b qua c nhn ra bng cch cho chy b d bin ( b d bin Canny) trn ton nh trc khi chy b d mt. Mt ln na, S chn la d khi to hay khng c ny th cng cn cn bng gia tc v vic d tm nhiu mt. Chnh sa c ny x l tc , nhng c th n l nguyn nhn lm mt mt vi nh. Ni chung, bn c th lm tt n nu c khi to, nhng nu bn gp kh khn trong tm mt, hy xa n i, iu ny c th cho php bn tm c chnh xc v nhiu hn. Chnh sa ngng gn ti thiu n 0, nh th bn c th xem b d tm th, v cng gip bn o c cc tc ng ca vic s dng Canny Prunning. 3.5/Haar Cascade C mt vi khung cnh d tm mt trc trong OpenCV. S la chn tt nht cho bn s ph thuc vo cch ci t ca bn. N tht d chuyn i gia chng ch thay i tn file, ti sao khng th lm iu ? N cng c th t to ra, file XML t to s dng ng dng HaarTraining, nm trong thu mc apps ca OpenCV. S dng nhng ng dng vt ra ngoi tm phm vi ca bi ny. Tuy nhin bn c th tham kho trong th mc apps/haartraining/docs ca OpenCV. 4.B d tm mt lm vic th no

You might also like