Một chống một (OVO: One-vs-One)

Một phần của tài liệu Thiết kế hệ thống nhúng nhận dạng chữ viết tay tiếng việt (Trang 32)

ụăt ngăc aăchi năl cănƠyălƠăv iăm iăm tăc păl p (i,ăj),ăm tămáyăphơnăl pănh ă phơnăđ căxơyăd ngăch ăd aătrênănh ngăm uăconăc aă2ăl pănƠyă(iălƠăl pă-1 và j là l pă+1).ăNh ăv yătaăph iăxơyăd ngăt tăc ăk k 1 / 2 máyăphơnăl pnh ăphơnăSVM.

Đ căđi măc aăchi năl cănƠyălƠăn uăm tăm uăth ăcóăk tăqu ăơmăthìătaăkhôngăk tă lu nănóăthu căl păiămƠăch ăk tălu nănóăkhôngăthu căl păjăvƠăng căl i. V iăm tăm uă th ăxătaăc năth căhi năph ngăphápălo iătr ăchoăđ năkhiănƠoăch ăcònăm tăl păcu iă cùngăthìăxăthu căl păđó. Hình 2.9 minhăh aăchoăquáătrìnhăxemăxétăm tăm uăxăthu că vƠoăm tătrongă4ăphơnăl păchoătr c.

Hình 2.9: Minhăh aăph ngăphápălo iătr ăc aăchi năl căOVO [28] 1 vs 2 2 vs 3 1 vs 3 2 vs 4 3 vs 4 1 vs 4 1 2 3 4 2 3 4 2 4 1 3 4 3 4 1 4 Not 1 Not 2

Not 3 Not 2 Not 1 Not 3

HVTH: Lê Hồng Phúc Trang 26

Cóăth ăth yăr ngăvi căphơnăl păm tăm uăkhôngăc năph iătr iăqu ăh tăk k 1 / 2

máyăphơnăl păSVMămƠăch ăc nătr iăquaăk1 máyăphơnăl păSVM.

2.3 X ălýă nh

2.3.1 Vaiătròăc aăx ălýă nhtrongănh năd ng

NgƠyănayăh uăh tăcácălƿnhăv c khoaăh c k ăthu tăđ uăápăd ngăcôngăngh x ălỦă nh.ăX ălỦă nhăđ că ngăd ngăkháănhi uătrongăcácălƿnhăv căkhoaăh cănh ăyăkhoa,ă thiênăvĕnăh c,ărobot côngănghi p,ăquơnăs v.v. Trongăđ iăs ngăhƠngăngƠyăx ălỦă nhă cǜngăcóănh ngă ngăd ngăđ ăh ătr ăchoăconăng iătrongăvi cănh năd ngăđ iăt ngăt ă đ ngăgiúpăchoăvi căqu nălỦăcácăcôngăvi căm tăcáchăchínhăxácăvƠănhanh chóng.

Đ iăv iăbƠiătoánănh năd ngăch ăvi tătay,ăchúngătaăc nătáchăch ăthƠnhănh ngăkỦăt ă riêngăbi tăđ ănh năd ng, đi uănƠyălƠăkhóăth căhi năb iăh uăh tăm iăng iăđ uăcóă thóiăquenăvi tăch ăliênăt c,ăch ănh tăbútăkhiăvi tăxongăm tăt .ăNh ăv yăđ ănơngăcaoă đ ăchínhăxácăc aăh ăth ngăchúngătaăc năph iăcóăm tăs ăgi iăh nătrongăcáchăvi tănh ă ch ă vi tă c nă ph iă r iă r c,ă cóă th ă phơnă bi tă đ c,ă khôngă quáă nghiêng,ă kíchă th că khôngăquáăl năho căquáănh .ăTuyănhiênăv năcònăm tăs ătháchăth căl năkhiămƠă nhă đ uăvƠoăkémăch tăl ngălƠăchoăkỦăt ăb ăđ t,ăm tănét,ăch aăđ ngănhi uănhi uăn n,ă v.v. Đ căbi tăđ iăv iăti ngăvi t,ăm tăch ăcáiăcóăth ăg măt iăđaăbaăthƠnhăph năliênă thôngăk tăh păv iănhauănênăvi căxácăđ nhăm tăch ăcáiăti ngăvi t cóăb ăđ tăho căm tă nétăhayăkhôngăth ngăph t t păh nănhi uăsoăv iăch ăti ngăAnhăvƠăcácăngônăng ă khác.

Nh ăv yăvaiătròăc aăx ălỦă nhăc nălƠmăt tănh ngăv năđ ăsau:

+ LƠmăchoă nhăđ uăvƠoăt tăh n,ănh ngăthƠnhăph năkhôngăc năthi tăc năđ că lo iăb .

+ T ăđ ngănh năd ngă nhăhayăđoánănh nă nhăvƠăđánhăgiáăcácăn iădungăc aă nh. Trongăth căt ăng iătaăđƣăápăd ngăk ăthu tăx ălỦă nh kháăthƠnhăcôngăv iănhi uă đ iăt ngăkhácănhauănh :ăPhơnălo iăs năph m,ănh năd ngăvơnătay,ănh năd ngăch ă hayăch ăvi tătay,ăv.v. M tăs ăth ăvi n thôngăd ngăcóăkh ănĕngăh ătr ăh uăh tăcác côngăc ătrongăv năđ ăx ălỦă nhănh ăImageăprocessingăvà Computer Vision Toolbox trong Matlab hayăth ăvi n mƣăngu năm ăOpenCV.

HVTH: Lê Hồng Phúc Trang 27

2.3.2 X ălýă nhv iăOpenCVă[10] [29-30]

2.3.2.1 Giới thiệuvề OpenCV

OpenCVăvi tăt tăc aăOpenăSourceăComputerăVisionăLibrary,ăch aăh nă500ăhƠm vƠăh nă2500ăcácăthu tătoánăđƣăđ căt iă uăv ăx ălỦă nh vƠăcácăv năđ ăv th giác máy.ăK ăt ăkhiăđ căgi iăthi uăvƠoăthángă1ănĕmă1999,ăđƣăcóăl năl tănhi uăphiênă b năOpenCVăraăđ i,ătuyănhiênăcóăth ăchiaăth ăvi nănƠyăthƠnhăhaiăb năchínhăd aătrên nh ngăđ căđi măkhácăbi tăl nănh tăc aăchúng:ăphiênăb năđ uălƠăOpenCV 1.x có giao di năCăvƠăsauăđóăđ căphátătri năthƠnhphiênăb năOpenCVă2.xăcóăgiaoădi năC++ăv iă nhi uătínhănĕngă uăvi tăh n.ă

OpenCVă đ că thi tă k ă đ ă ch yă trênă nhi uă h ă đi uă hƠnhă khácă nhau (cross- patform),ănóăcóăth ăch yătrênăWindows,ăLinux,ăMac,ăiOS. Vi căs ăd ngăOpenCV khá đ năgi n,ăgiúpăm iăng iănhanhăchóngăxơyăd ngăcácă ngăd ngătrongăth ăgiácă máy,ăk ăc ăcácăh ăth ngăki mătraătrongănhƠămáy,ăhìnhă nhătrongălƿnhăv căyăh c,ăb oă m t,ărobot h căv.v. Nóăch aăcácăhƠmăl pătrìnhăx ălỦă nhăr tăđ năgi n,ăk ăc ăth căthiă cácăhƠmăb căcaoănh ădòătìmăkhuônăm t,ătheoădõiăkhuônăm t,ănh năd ngăkhuônăm t,ă l căKalman.

Th ăvi năOpenCVăbanăđ uăđ căs ăh ătr ăt ăIntel,ăsauăđóăđ căh ătr ăb ăWillowă Garageăm tphòngăthíănghi măchuyênănghiênăc uăv ăcôngăngh ărobot.ăChoăđ nănay,ă OpenCVăv nălƠăth ăvi năm ,ăđ căphátătri năb iăngu năqu ăkhôngăl iănhu nă(noneă - profit foundation) vƠăđ cs ăh ngă ngăr tăl năt ăc ngăđ ng.

2.3.2.2 Các hàm cơ bản

Th ăvi năhƠmăc aăOpenCV kháăđ ăs ăvƠăđ căchiaălƠmănhi uămoduleăkhácănhau nh ăCxCore, Imgproc, Video, HeightGUI, Objdetect v.v. N iădungăc aăđ ătƠiăch ăđ ă c păđ năm tăs ăhƠmăđ căs ăd ngătrongăquáătrìnhăkh iăt oă ngăd ngănh ăsau:

Chuy năđ iăcấuătrúcă nhăMatăvƠăIplimage

Iplimage là c uătrúcă nh g cđ căs ăd ng choăvi căl uătr ă nh đ căs ăd ngăt ă phiênăb năcǜăc aăOpenCV 1.x, ki uđ nhăd ngănƠyăch ăcóăth ăs ăd ngătrongăc ăCăvƠă C++, trongăkhiăđóăMat lƠăm tăchu năm iăh n,ăđ căxơyăd ngăcho các phiênăb nă m iăh năOpenCV 2.xăvƠăch ăđ căs ăd ngătrongăC++.

HVTH: Lê Hồng Phúc Trang 28

Khiăth căhi năvi căl aătr ă nhăv iăki uăIplimagechúngătaăph iăluônăđ ăỦăt iăvi că ph iăgi iăphóng hoàn toàn b ănh ăc aănóăkhiăkhôngăcònăs ăd ngăn a.ăcv::Matătrongă OpenCV 2.x giúp choăvi căqu nălỦăb ănh ătr ănênăd ădƠngăh nănh ăcácăhƠmăh yă cácăl păđ iăt ngătrongăOpenCVă2.xăđƣăth căhi năđi uănƠyăkhiăm tăđ iăt ngăkhôngă cònăđ căs ăd ngăn a.

Chuy năđ iăkhôngăgianămƠu

RGBă24bitălƠă nhăchu năthôngăd ngăđ căs ăd ngătrongăđ ăh aămáyătínhăhi nă nay.ăụăt ngăchínhăc aăkhôngăgianămƠuănƠyălƠăs ăk tăh păc aă3ămƠuăs căc b nălƠă mƠuăđ ă(Red),ăxanhăl că(Blue)ăvƠăxanhăl ă(Green).ăĐ ăđ năgi năhóaăchoăcácăquáă trìnhăx ălỦă nh,ă nhăRGBăthôngăth ngăđ căchuy năđ iăsangă nhăxámă(Grayscale)ă đ năkênhăv iă8bits/kênh.

- cvCvtColor:chuy năđ iăkhôngăgianămƠuăc aăm tăb că nh.ăCúăpháp:ă

Trongăđó,ăsrc,ădstălƠă nhăg că vƠă nhăthuăđ căsauă khiăchuy nă đ iăkhôngăgiană mƠu.ă Codeă mƠă mƣă chuy nă đ iă khôngă giană mƠu.ă OpenCVă đ nhă nghƿaă kháă nhi uă chuy năđ iăgi aăcácăkhôngăgianămƠuăch ngăh nănh ăcode =ăCV_BGR2GRAYăs ă chuy nă nhă ă khôngă giană mƠuă RGBă sangă nhă xám,ă codeă =ă CV_HSV2BGRă s ă chuy nă nhă ăkhôngăgianămƠuăHSVăsangăkhôngăgianămƠuăRGB v.v.

Đ căvƠăvi t file nhăvƠăvideo

- cvLoadImage:Loadăm tăfileă nhătheoăki uăIplImage.ăCúăpháp:

Iscolorăs ăquyăđ nhălo iăc aă nhăđ căloadăvƠo.ăN uăIscoloră>ă0ă nhăloadăđ că chuy năt iă nhă3ăkênh.ăN uăIscoloră=ă0,ă nhălúcănƠyăs ăđ căchuy năt iă nhăxámăvƠă n uăIscoloră<ă0 nhăs ăđ căgi ănh ăđ nhăd ngăc aănó.

IplImage* cvLoadImage( const char* filename,

int iscolor=CV LOAD IMAGE COLOR); #define CV_LOAD_IMAGE_COLOR 1

#define CV_LOAD_IMAGE_GRAYSCALE 0 #define CV_LOAD_IMAGE_UNCHANGED -1

HVTH: Lê Hồng Phúc Trang 29

Cácălo iă nhăh ătr ăhi năt iălƠ:

- Windows bitmaps - BMP, DIB; - JPEG files - JPEG, JPG, JPE; - Portable Network Graphics - PNG;

- Portable image format - PBM, PGM, PPM; - Sun rasters - SR, RAS;

- TIFF files - TIFF, TIF.

- cvSaveImage: Save m tăfileă nhătheoăki uăIplImage.ăCúăpháp:

Đ nhăd ngă nhăđ căl aăch năd aătrênăph năm ăr năc aăfileăname.ăCh ă nhăđ nă kênh 8-bităho că nhă3ăkênhăBGRăđ căs ăd ngăchoăki uăl uătr ănƠy.ăN uăđ nhăd ng

nh,ăđ ăsơuăvƠăth ăt ăkênhălƠăkhácănhau,ăchúngătaăcóăth ăs ăd ngăcvCvtScaleăvƠă cvCvtScaleăđ ăchuy năđ iătr căkhiăl u.

- cvCaptureFromCAM:kh iăt oăvi căghiăvideoăt ăcamera.ăCúăpháp:

- cvGetCaptureFromProperty:l yăthôngăs ăvideoăt ăcamera.ăCúăpháp:

- cvQueryFrame:l yăvƠătr ăv ăm tăkhungă nhăt ăcameraăho căfileăvideo.ăHƠmă nƠyăth ngăđ căđiăsauăhƠmăcvCaptureFromCAM.ăCúăphápăc aăhƠm:ă

Phơnătíchăcấuătrúc

- cvMinAreaRect2: Xácăđ nhăm tăhìnhăch ănh tăngo iăti păm tăvùngă nhăđƣăđ tă tr c.ă

CvBox2D cvMinAreaRect2(const CvArr* points, CvMemStorage* storage=NULL );

IplImage* cvQueryFrame( CvCapture* capture);

double cvGetCaptureProperty( CvCapture* capture, int property id ); CvCapture* cvCaptureFromCAM(int index;

HVTH: Lê Hồng Phúc Trang 30

- cvFindContour:tìmăhìnhăbaoătrongă nhănh ăphơn.ăCúăpháp:ă

Nh ăphơnă nhăv iăng ng

nhănh ăphơnălƠă nhămƠăgiáătr ăc aăcácăđi mă nhăch ăđ căbi uădi năb ngăhaiăgiáă tr ă0ăho că255t ngă ngăv iăhaiămƠuăđenăho cătr ng.ăNh ăphơnăhóaălƠăquáătrìnhăbi nă đ iăm tă nhăxámăthƠnhă nhănh ăphơn.ăG iăf(x,y)ălƠăgiáătr ăc ngăđ ăsángăc aăm tă đi mă nhă ăv ătríă(x,y),ăTălƠăng ngănh ăphơn.ăKhiăđó,ă nhăxámăfăs ăđ căchuy nă thƠnhă nhănh ăphơnăd aăvƠoăcôngăth c:

 , maxvalue   , , 0 f x y T f x y f x y T       (2.22)

MaxvalueălƠăgiáătr ăl nănh tătrongă nhăxám,ăthôngăth ngălƠă255.

- cvThreshold: xác đ nh giáătr ăng ngăT cho m t nh, hàm đ cădùngăđ ănh ă phơnăhóaă nhăxám.ăCúăpháp:

Trongăđó:

+ăsrcălƠă nhăxámăc nănh ăphơnă(đ năkênh,ă8-bităho că32-bit). +ădstălƠă nhăk tăqu ăthuăđ c,ăcùngălo iăv iăsrcăho că8-bit. +ăthresholdTypeălƠăgiáătr ăng ng.

+ thresholdType:

double cvThreshold (const CvArr* src, CvArr* dst, double threshold, double maxValue,

int thresholdType); int cvFindContours (CvArr* image, CvMemStorage* storage, CvSeq** first contour,

int header size=sizeof(CvContour), int mode=CV RETR LIST,

int method=CV CHAIN APPROX SIMPLE, CvPoint offset=cvPoint(0,0));

HVTH: Lê Hồng Phúc Trang 31 CV THRESH BINARY   maxvalue   , s , , 0 f x y T d t x y f x y T       (2.23)

CV THRESH BINARY INV

  0   , s , , maxvalue f x y T d t x y f x y T       (2.24) CV THRESH TRUNC       , s , r , , T f x y T d t x y s c x y f x y T       (2.25) CV THRESH TOZERO   r  ,   , s , , 0 f x y T s c x y d t x y f x y T       (2.26)

CV THRESH TOZERO INV    0   , s , r , , f x y T d t x y s c x y f x y T       (2.27)

- cvAdaptiveThreshold: xácă đ nhă ng ngăthích nghi cho m t nh, hàm đ că dùngăđ ănh ăphơnăhóaă nhăxám. Đ iăv iăphân hàm nƠy,ăng iădùngăkhôngăc năquáă quanătơmăđ năng ngăT,ăhàm s ăt ăđ ngătínhătoánăsaoăchoăv iăm iăng ngăxámă khácănhauătaăluônăthuăđ căm tă nhănh ăphơnăt t.ăCú pháp:

Trongăđó:

+ maxValue là giá tr ăl nănh tătrongă nhăxám.

+ adaptiveMethodălƠăcáchăth cănh ăphơnăv iăng ngăđ ng,ănóăchínhălƠăcáchătính giáătr ăng ngănh ăphơnătrongăt ngăvùngăc nănh ăphơn.

void cvAdaptiveThreshold (const CvArr* src, CvArr* dst, double maxValue,

int adaptive method=CV ADAPTIVE THRESH MEAN C, int thresholdType=CV THRESH BINARY,

HVTH: Lê Hồng Phúc Trang 32

+ blockSizeălƠăkíchăth căc aăs ăápăd ngăchoăvi cătínhătoánăng ngăđ ng cóăth ă vƠă3,ă5,ă7ầ

+ C là m tăthôngăs ăđ ăbùătr ătrongătr ngăh pă nhăcóăđ ăt ngăph năquáăl n.

Cácăphépătoánăh̀nhătháiăh cătrongă nh

- cvDilate: lƠmăgiƣnăm tăđ iăt ngă nhăs ăd ngăm tăph năt ăc uătrúcăc ăth .ăCúă pháp:

- cvErode:lƠmăcoăm tăđ iăt ngă nhăs ăd ngăm tăph năt ăc uătrúcăc ăth .ăCúă pháp:

- cvMorphologyEx:th căhi năcácăphépăbi năđ iăhìnhătháiănơngăcao.ăCúăphápă c aăhƠm:ă

Ch cănĕngăv

- cvRectangle:V ăhìnhăch ănh tăv iăcácăthôngăs ăđ căxácăđ nhătrongăhƠm. void cvRectangle (CvArr* img, CvPoint pt1, CvPoint pt2,

CvScalar color, int thickness=1,

int lineType=8, int shift=0); void cvMorphologyEx (const CvArr* src, CvArr* dst,CvArr* temp, IplConvKernel* element, int operation, int iterations=1); void cvErode (const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1);

void cvDilate (const CvArr* src, CvArr* dst, IplConvKernel* element=NULL, int iterations=1);

HVTH: Lê Hồng Phúc Trang 33

- cvDrawContours:V ăhìnhăbaoăbênătrongăho căbênăngoƠiăc aăđ iăt ngă nh.ă Cú pháp:

Thaoătácătrênăm ng

- cvSetImageROI:thi tăl păm tă nhtheoăvùngăđ căđ tătr că(vùngăhìnhăch ă nh t).ăCúăpháp:

- cvGetReal?D:l yăgiáătr ăđi mă nhăc aăm tă nh.ăCúăpháp:ă

- cvCloneImage:t oăm tăb năcopyăđ yăđ ăc aăm tăb că nh.ăCúăpháp:ă

- cvCreateImage:T oăm tăb că nhăv iăcácăthôngăs ăchoătr c.ăCúăpháp:ă

Bi năđ iăh̀nhătháiă nh

- cvResize:thayăđ iăkíchăth că nh.ăCúăpháp: void cvResize(const CvArr* src, CvArr* dst, int interpolation=CV INTER LINEAR);

IplImage* cvCreateImage(CvSize size, int depth, int channels); IplImage* cvCloneImage(const IplImage* image);

double cvGetReal1D(const CvArr* arr, int idx0);

double cvGetReal2D(const CvArr* arr, int idx0, int idx1);

double cvGetReal3D(const CvArr* arr, int idx0, int idx1, int idx2); double cvGetRealND(const CvArr* arr, int* idx);

void cvSetImageROI (IplImage* image, CvRect rect); void cvDrawContours (CvArr *img,CvSeq* contour, CvScalar external color,

CvScalar hole color, int max level,

int thickness=1, int lineType=8);

HVTH: Lê Hồng Phúc Trang 34

- cvWarpAffine:Ễpăd ngăm tăphépăbi năđ iăaffineăđ iăv iăm tăb că nh.ăĐ că dùngătrongăphépăxoayă nh.ăCú pháp:

2.4 H ăth ngănhúng

Xu tăhi năt ănh ngănĕmăđ uăth păniênă1960,ăh ăth ng nhúng đang d nătr ăthƠnhă m tăngƠnhăphátătri năm nhăm ătrongălƿnhăv căcôngăngh ăthôngătină(CNTT).ă ngă d ngăc aăh ăth ngănhúngăd ngănh ăcóăm tă ăt tăc ăm iăn iănh : yăt ,ăcôngănghi pă ô-tô,ăt ăđ ngăhóa,ăđi năt ăgiaăd ng,ăvi năthông,ăqu căphòng, v.v. Ki nătrúcăc aăm tă h ăth ngănhúngăbaoăg mnh ngăthƠnhăph năc ăb nănh ăsau:

 Ph năc ng:ăviăx ălỦ,ăcácăm chătíchăh p,ăc ngăk tăn iầăĐơyălƠăph năb tăbu că ph iăcóăchoăt tăc ăh ăth ng.

 Ph năm măh ăth ng:ăcóăth ătùyăch năbaoăg m driverăph năc ng,ăh ăđi uăhƠnhă nhúngầ

 Ph năm mă ngăd ng:ăcóăth ătùyăch n bao g măcácă ngăd ngăquy tăđ nhăhƠnhă viăc aăm tăh ăth ngăvƠăkhóăcóăth ăx ăd ngătrênăcácăh ăth ngăkhác.

M căđ ăđápă ngăc aăm tăh ăth ngăcóăth ălƠănhanhăhayăch măph ăthu căvƠoăc uă hìnhăph năc ngăvƠătính t ngătácăgi aăph năc ngăvƠăph năm m. T tăc ăcác thành ph nănƠyăđ uăph iăth aămƣnăyêuăc uăho tăđ ngătheoăth iăgianăth că(real-time).

2.4.1ăH ăđi uăhƠnhănhúng

2.4.1.1 Hệ điều hành Angstrom (Ångström) [31]

H ăđi uăhƠnhăAngstromălƠăm tăphiênăb năLinuxăchoăcácthi tăb ănhúng.ăAngstromă đ căphátătri năb iăm tănhóm lƠmăvi căv i d ăánăOpenEmbedded, OpenZaurus và OpenSimpad đ ă t oă raă m tă phiênă b nă nă đ nhă vƠă thơnă thi nă đ iă v iă cácă thi tă b ă nhúngănh ăcácăthi tăb ăc mătay,ăh păgi iămƣă(set-topăbox),ăcácăthi tăb ăl uătr ăg nă

void cvWarpAffine(const CvArr* src, CvArr* dst,

const CvMat* mapMatrix,

int flags=CV INTER LINEAR+CV WARP FILL OUTLIERS, CvScalar fillval=cvScalarAll(0));

HVTH: Lê Hồng Phúc Trang 35

v iăm ng,ăv.v. Nhân, lõiăth ăvi năvƠăcácăcôngăc ăc aănóălƠăth ngăxuyênăđ căc pă nh tă vƠă phátă tri nă songă songă v iă m tă s ă h ă đi uă hƠnhă khácă nh ă Android,ă Poky,ă Geekbox, Maemo, v.v.

Vi căs ăd ngăLinuxătrênăthi tăb ănhúngăđangăđ căquanătơm.ăNg iăs ăd ngăcácă thi tăb ănƠyăth ngăkhôngăhƠiălòngăvìăch tăl ngăc aăh ăđi uăhƠnhăcǜngănh ăcácă ph n m măkèmătheo.ăHo căth ngădoăắNg iăhơmăm ẰăLinuxăkhôngăthíchăkhiăs ă d ngăh ăth ngăd aătrênăUNIX.ăThu năl iă c aăh ăth ngăd aătrênăUNIXălà s ăn iă ti ng.ă V iă nh ngă lỦă doă đóă mƠă cácă phiênă b nă Linuxă đ că dùngă choă cácă thi tă b ă nhúng.

Cǜngănh ăcácăphiênăb năhi năđ i,ăAngstromăđ căd aătrênăcácăgóiăđ yăđ ă(fullyă package).ăTuyănhiênăs ăt ngătácăv iăthi tăb ătrongăkhiăkh iăđ ngăgiaiăđo năcƠiăđ tă thìăkhóăkhĕn.ăAngstromăđ căkh iăđ ngă(bootstrap)ăs ăd ngăm tăắimageẰ,ăđi uănƠyă c năthi tăđ ăthi tăl păcácăgóiăđƣăliênăk tăv iăfilesystemăimage.ăImageănƠyăđ căcƠiă đ tăb ngăcáchăs ăd ngăcácăthi tăb ăc ăth ăvƠăcungăc păcácăch cănĕngăAngstromăc ă b n.ă

Doăm cătiêuăth căhi nătínhălinhăđ ngăchoăh ăđi uăhƠnhăcǜngănh ăt oăđi uăki năt tă nh tăchoăvi căqu nălỦăh ăth ngăLinux,ăimageăc aăAngstromăch ăcungăc păcácăgóiăc tă lõi.ăĐi uănƠyăchoăphépăng iădùngătùyăbi năh ăth ngătheoănhuăc u.ăVi căthayăđ iă đ căth căhi năd ădƠngăb ngăcáchăcƠiăthêmăcácăph năm m,ăcácăgóiăb tăkǶăt ăngu nă cungăc păc aăAngstrom.ăTuyănhiênăđ ăthu năti năchoăng iădùngăAngstromăcungă c pănhi uătùyăbi năimage,ăvíăd ăcácăimageăv iăcácămôiătr ngăGUIăkhácănhauăđ că cƠiăđ tătr c.

2.4.1.2 Các lệnh cơ bản trên hệ điều hành Angstrom

 KhiăBBxMăđ căk tn iăInternet.ă

Đ ăc pănh tădanhăsáchăcácăgóiătrênăh ăth ng,ădùngăl nh:

opkg update

Đ ăt ăđ ngăc pănh tăcácăgóiăc năc pănh tătrênăh ăth ng,ădùngăl nh:ă

HVTH: Lê Hồng Phúc Trang 36

Đ ătìmăgóiătaăs ăd ngăl nhă:

opkg search ten_goi

Đ ătìmăcácăgóiăđƣăcóătrênăh ăth ngădùngăl nh:

opkg list

Khiăđƣăbi tătênăgóiăc năcƠiăđ tăvƠoăh ăth ng,ădùngăl nh:

opkg install ten_goi

 N uăgóiăđƣăcóăs nătrongăb ănh ăl nhăđ cădùng:ă

opkg install duong_dan/ten_goi.ipk (duong_dan: đ ngăd n đ năv ătr ăch aă góiăcƠiăđ t)

KhiăcƠiăđ tăcácăgóiăc năquanătơmăđ nătínhăph ăthu căc aăcácăgói.ă Đ ăg ă(remove)ăm tăgóiăraăkh iăh ăth ng,ădùngăl nh:ă

opkg remove ten_goi

N uămu năg ăluônăcácăgóiăph ăthu căc aăgóiăc năg ătaădùngăl nh:

opkg remove --recursive ten_goi

Cácăthôngătină đ yăđ ă v ăh ăđi uăhƠnhăAngstromăcóă th ăđ căthamăkh oă trongă [18].

2.4.2ăH ăth ngăphầnăc ng

2.4.2.1 Giới thiệu về board nhúng BBxM [32]

BeagleBoard-xM (BBxM)ăđ căgi iăthi uăl năđ uătiênăvào nĕmă2008ăb iăhƣng Texas Instruments,ăchoăđ nănayđƣăcóăr tănhi uăphiênăb năđƣăđ c c iăti n.ăBBxM phiênăb năhi nă t iălà BeagleBoard-xM RevC có kíchăth căkháă nh ăg n,ăch ăv iă 3.25ẰăỪă3.25Ằ nh ngăl iăcóăs căm nh nh ăm tămáyătínhăthôngăd ng, h ătr ăđ yăđ ă cácăchu năk tăn i.

BBxMăđ căthi tăk ădƠnhăchoăc ngăđ ngămƣăngu năm ,ăcóăth ch yăm tălo tăcácă h ăđi uăhƠnhănh ăAndroid,ăLinux,ăWindowsăCEăvƠăđ căbi tănóăđ căcƠiăđ tăs n h ă đi uăhƠnhăAngstromăngayăkhiăxu tăx ng.ăM căđíchăthi tăk ăc aăBBxMălƠăđ ăng iă dùngătr iănghi măm tălo tăcácătínhănĕngăt iăthi uăc aăb ăviăx ălỦ DM3730 và không cóăỦăđ nhăphátătri năđ yăđ ăn năt ngăcácăđ cătínhăvƠăgiaoădi năđ căcungăc păb iăb ă viăx ălỦăkhôngăđ cătruyănh păt ăBBxM.

HVTH: Lê Hồng Phúc Trang 37

Hình 2.10: nhăth căt ăc aăBeagleBoard-xM RevC [32]

2.4.2.2 Cấu trúc hệ thống của BBxM [33].

Tráiă timă c aăBBxM chínhă lƠă b ă viă x ă lỦă ARM TI OMAP DM3730 c aă hƣngă Texas Instrument [34]. ĐơyălƠ b ăviăx ălỦ đ căthi tăk ătrênăn năt ngă45-nm có th ho t đ ng t i đa xungănh p 1Ghzăcùngăv i 512MB b ănh ăDDRAMăcôngăsu tă th p. DM3730 còn đ cătíchăh păb ăviăx ălỦăC64x+ăDSPăt căđ ă800Mhz. uăđi mă c aăDM3730 là choăhi uănĕngăt tăv ăx ălỦăvideo,ăơmăthanh và đ ăh aăv iăđi nănĕngă tiêuăth ăth p.

HVTH: Lê Hồng Phúc Trang 38

DM3730 h ăcácăk tăn iăngo iăvi trên BBxMănh ăsau:

 DVI-D (HDMI connector)  S-Video

 USB OTG (mini AB)  4 USB ports

 Ethernet Port

 MicroSD/MMC card slot  Stereo in and out jacks  RS232 port

 JTAG connector

 Power socket (5 V barrel connector type)  Camera Port

 Expansion port

2.4.2.3 Một sốứng dụng của BBxM

S ăcơnăb ngăgi a hi uăsu tăvƠăs c m nhăchoăphépăng iădùngăth căhi nănhi uă ngăd ng trên BBxM. M tă ngăd ngđ căh ătr ăb i BBxM:

 Cácăd chăv ăWeb (Web services)  Gi iătríăt iăgia (Home media centers)  Côngăngh ăRobot (Robotics)

 D năđ ngăvƠăđ nhăv ă(Navigation)

 Thi tăb ăthuăth păd ăli uă(Portable Data Terminals)  Thi tăb ăch iăgameă(Gaming)

 H ăth ngăgi iătríătrongăxeăh iă(Auto Infotainment)

 Thi tăb ăki măsoátătrongăcôngănghi pă(Industrial Control)  Thi tăb ăki măđ nhăvƠăđoăl ngă(Test and Measurement)  VƠănhi uă ngăd ngăkhácăầ

HVTH: Lê Hồng Phúc Trang 39

Ch ngă3

NH NăD NGăCH ăVI TăTAYTI NGăVI Tă

3.1 B ăkýăt ănh năd ng [14] [35]

B ngăkỦăt (ch ă cái) ti ng vi t lƠă m tăh ăth ngăkỦăt ăvi tăhi năđangăđ că s ă d ngăchoăngônăng ăVi t.ăNóăd aătrênăb ngăch ăcáiăla tinh v iăm tăvƠiăch ăghépăvƠă s ăb ăsungăc aăcácănguyênăơmăk tăh p cácăơmăs c.ăB ngămƣăti ngăvi thi năt iăbaoă g mă40 kỦăt nh ăsau:

+ă26ăkỦăt ăti ngăAnhăngo iătr ăF,ăJ,ăWăvƠăZ.

+ă7ăkỦăt ăđƣăđ căthayăđ iăb ngăcáchăs ăd ngăd uăph ăĐ,ăĔ,ăỂ,ăÊ, Ọ,ă ,ă . +ă11ăPh ăơmăghép:ăCH, GI, GH, KH, NH, NG, NGH, PH, QU, TH, TR.

Ngoài ra ti ngăvi t lƠăm tăngônăng ăơmăv iă6ăthanhăđi u (Tone marks).ăNh ngă thanhăđi u này có th ăđiătheoăcácăkỦăt A,ăĔ,ăỂ,ăE,ăể,ăI,ăO,ăỌ,ă ,ăU,ă ,ăYănh ăsau:

 D uăngangă(không):ăA,ăĔ,ăỂ,ăE,ăể,ăI,ăO,ăỌ,ă ,ăU,ă ,Y

 D uăs c:ăỄ,ă ,ă ,ăÉ,ă ,ăệ,ăị,ă ,ă ,ăỎ,ă ,ăụ

 D uăhuy n:ăẨ,ă ,ă ,ăỆ,ă ,ăỊ,ăọ,ă ,ă ,ăỐ,ă ,ăǵ

 D uăh i:ă ,ă ,ă ,ă ,ă ,ă ,ă ,ă ,ă ,ă ,ă ,ă

 D uăngƣ:ăẩ,ă ,ă ,ă ,ă ,ăƾ,ăẪ,ă ,ă ,ăǛ,ă ,ă

 D uăn ng:ă ,ă ,ă ,ă ,ă ,ă ,ă ,ă ,ă ,ă ,ă ,ă

Nh ăv yăn uăkhôngăk ăđ n 11ăph ăơmăghépăvƠ cácăkỦăhi uănh ăd uăph y,ăd u ch m câu, v.v, thìăt ngăs ăkỦăt ăr iăr căc aăti ngăvi tlƠă93ăkỦăt ăk ăc ăF, J, W và Z.

Một phần của tài liệu Thiết kế hệ thống nhúng nhận dạng chữ viết tay tiếng việt (Trang 32)

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

(99 trang)