210 likes | 452 Views
ỨNG DỤNG VISION TRÊN ROBOT NAO SỬ DỤNG ROBOT FRAMEWORK. Department: FTI-FHO-FPT Presenter: Tran Viet Tien. OUTLINE. Giới thiệu. 1. 2. Line Detection. FlashCard Detection. Face Detection. 3. 4. Introduction. Robot Vision. Support ROBOT motion Support ROBOT communication.
E N D
ỨNG DỤNG VISION TRÊN ROBOT NAO SỬ DỤNG ROBOT FRAMEWORK Department: FTI-FHO-FPT Presenter: Tran Viet Tien
OUTLINE Giớithiệu 1 2 • Line Detection • FlashCard Detection • Face Detection 3 4
Introduction Robot Vision • Support ROBOT motion • Support ROBOT communication
LineDetection • Chứcnăng • Module nhậndạngđườngthẳng (line) sángmàutrênnềntối • Xácđịnhvịtrígiữa robot và line -> hỗtrợ robot di chuyểntrongmêcung • (kếthợpvớicáccảmbiếnkhác: VD: siêuâm – sonar sensor) • Thôngsố • Input: Ảnhchụptừ camera • Output: Thamsốvịtrí robot so với line – Góclệch • – Khoảngcách • – Cờbáotrạngthái • Yêucầu: • – Line vànềnphảichênhlệchđộtươngphản (màutrắng – đen) • – Trướckhi start module phải setup trạngthái robot đứngthẳng, đầucúixuốngmộtgóc 0.25 radian
LineDetection • Function name • Start module: RobotLineDetection.startDetection(robot); • robot: Robot đangđượckếtnối • Start module: RobotLineDetection.stopDetection(robot); • robot: Robot đangđượckếtnối • Check active: RobotLineDetection.isActive(robot); • robot: Robot đangđượckếtnối • Getstatus: RobotLineDetection.getCurrentStatus (robot); • robot: Robot đangđượckếtnối • return: Status object - Thamsốvịthítrạngtháihiệntạicủa robot: • status.getShape(): Lấythamsốtrạngthái - flagstatus • status.getAngle(): Lấygiátrịgócnghiêng so với line - Angle • status.getDistance(): Lấygiátrịkhoảngcáchvới line - Distance
LineDetection • Thamsốtrạngthái • Flagstatus: trảvềcácgiátrị : • -1: UNKNOWN • 0: STRAIGHT_LINE • 1: T_JUNCTION • 2: T_JUNCTION_LEFT • 3: T_JUNCTION_RIGHT • 4: INTERSECTION • 5: L_SHAPE_LEFT • 6: L_SHAPE_RIGHT • 7: NO_LINE • STRAIGHT_LINE • T_JUNCTION • T_JUNCTION_RIGHT • T_JUNCTION_LEFT
LineDetection • INTERSECTION • L_SHAPE_LEFT • L_SHAPE_RIGHT • NO_LINE
LineDetection • Thamsốtrạngthái • Angle: Gócnghiêngnhỏnhấtgiữa robot vàphươngcủa line. • Giátrịâmnghĩalà robot cần quay ngượcchiềukimđồnghồmộtgócbằng Angle đểhướngnhìncủanó song songvớiphươngcủa line • Giátrịdươngnghĩalà robot cần quay cùngchiềukimđồnghồmộtgócbằng Angle đểhướngnhìncủanó song songvớiphươngcủa line. • Distance: Khoảngcáchgiữa robot và line. • Giátrịâmnghĩalà robot đang ở bêntrái so với line • Giátrịdươngnghĩalà robot đang ở bênphải so với line
LineDetection • Thamsốtrạngthái
LineDetection • Ápdụng Start Module Init Timer, PID v.v… Do action: Walk forward, turn left, right … Get parameters Stop action Stop Module
FlashcardRecognition • Chứcnăng • Module nhậndiệnnhữngảnhđãđược training trong database • Tạoracáctròchơinhỏđểgiảitrí hay họctậpv.v… • Module gồm 2 phần: - Training • - Recognition • Quátrình training • Input: Ảnhchụptừcamera của Robot hoặcảnhlưutrong mobile • Output: ID củaảnh. • Yêucầu: • – Ảnh training phảirõnétđộtươngphảntốtvàchỉchứachủyếulà Object cầnnhậndiện, background khôngnhiều, hoặckhôngcó • – Ảnhcókíchthướckhôngquálớn(làmchậmquátrìnhnhậndạng) • Vàcũngkhôngquánhỏ (làmgiảmđộchínhxácnhậndạng)
FlashcardRecognition • Các function quantrọng • Get Database path: getCurrentDatabaseDirectory(Robot robot) • robot: Robot đangđượckếtnối • Set Database path: setDatabaseDirectory(Robot robot, String robotPath) • robot: Robot đangđượckếtnối • robotPath: Đườngdẫncầnlưu database • Training image: learnFlashcardLocal(Robot robot, • String robotPathToFlashcard, String tag) • robot: Robot đangđượckếtnối • robotPathToFlashcard: Đườngdẫntớithưmụcchứaảnhcần training • tag: Nội dung củaảnh - VD: têngọicủaảnhhoặcđặctínhcủaảnh… • Hàmtrảvề ID củaảnh – đâylàthông tin đểnhậndiệnảnhsaunày • Cáchàmxóaảnhtrong database: forgetFlashcard, clearDatabase, forgetFlashcardsByTag…
FlashcardRecognition • Quátrìnhnhậndạng - recognition • Input: Ảnhchụptừcamera của Robot hoặcảnhlưutrong mobile • Output: ID củaảnh, tag củaảnh • Yêucầu: • – Ảnhnhậndiệnphảirõnétđộtươngphảntốtvàchỉchứachủyếulà Object cầnnhậndiện, background khôngnhiều, hoặckhôngcó • Các function quantrọng • Start recognition: startRecognition(Robot robot) • robot: Robot đangđượckếtnối • Stop recognition: stopRecognition(Robot robot) • robot: Robot đangđượckếtnối • Event: FlashcardRecognized - trảlại tag củaảnhchụpbởi camera
FlashcardRecognition • Ápdụng Image from NAO or Mobile Training Data IMAGE ID
FlashcardRecognition • Ápdụng Start Module Init other module Time out Wait Event – get data Capture Image from camera Recognition Processing Stop action Stop Module
FaceDetection • Chứcnăng • Module nhậndiệnkhuônmặtđãđược training trướcđó • Tăngkhảnănggiaotiếpcủa robot • Module gồm 2 phần: - Training • - Recognition • Quátrình training • Input: Ảnh(hoặcnhómảnh) khuônmặtcủamộtcánhân • Output: Thông tin ảnh – quátrìnhnàydiễnratrênmáychủcungcấpdịchvụ • Yêucầu: • – Ảnh training phảirõnétđộtươngphảntốtvàchỉchứachủyếulàkhuônmặtcầnnhậndiện, background khôngnhiều, hoặckhôngcó
FaceDetection • Các function quantrọng • Training database: • trainImage(String path, String name, TrainListenerlistener) • path: Đườngdẫntớiảnhcủangườicần training • name: Nội dung muốn add vàoảnh – VD: tênngười • listener: Callback của process – trảvề tag ID củaảnhnếuviệc training thànhcông • trainImage(String[] path, String name, TrainListenerlistener) • path: List cácảnhcủangườicần training • Khigọihàmnàytoànbộảnhtrongthưmụcsẽđượcgửilênmáychủcủanhàcungcấpdịchvụnhậndiệnkhuônmặt
FaceDetection • Các function quantrọng • Recognition face: • Detect (String path, DetectListenerlistener) • path: Đườngdẫntớiảnhcủangườicần training • listener: Callback của process – trảvề tag ID củakhuônmặttrùngkhớpvớikhuônmặttrước camera vàgiớitính • Khigọihàmnày NAO sẽ detect khuônmặtcủangườiđứngtrước camera (giúpgiảm dung lượngảnhvàtăngđộchínhxácnhậndiện)vàgửilên server đểthựchiệnquátrìnhnhậndạng.
FaceDetection • Ápdụng Image from NAO or Mobile Training Data on server IMAGE TAG
FaceDetection • Ápdụng Start Module Init other module No match Callback – get data Capture Image from camera Recognition Processing Stop action Stop Module
Questions and Comments Thank for Your Attention