ỨNG DỤNG VISION TRÊN ROBOT NAO SỬ DỤNG ROBOT FRAMEWORK

21
ỨNG DỤNG VISION TRÊN ROBOT NAO SỬ DỤNG ROBOT FRAMEWORK Department: FTI-FHO-FPT Presenter: Tran Viet Tien

description

Ứ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. - PowerPoint PPT Presentation

Transcript of ỨNG DỤNG VISION TRÊN ROBOT NAO SỬ DỤNG ROBOT FRAMEWORK

Ứ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ệu1

Line Detection2

FlashCard Detection3

Face Detection4

Introduction

Robot Vision

• Support ROBOT motion• Support ROBOT communication

LineDetection

Chức năng Module nhận dạng đường thẳng (line) sáng màu trên nền tối Xác định vị trí giữa robot và line -> hỗ trợ robot di chuyển trong mê cung (kết hợp với các cảm biến khác: VD: siêu âm – sonar sensor)

Thông số Input: Ảnh chụp từ camera Output: Tham số vị trí robot so với line – Góc lệch

– Khoảng cách – Cờ

báo trạng thái Yêu cầu:

– Line và nền phải chênh lệch độ tương phản (màu trắng – đen)– Trước khi start module phải setup trạng thái robot đứng thẳng, đầu

cúi xuống một góc 0.25 radian

LineDetection

Function name Start module: RobotLineDetection.startDetection(robot);

robot: Robot đang được kết nối

Start module: RobotLineDetection.stopDetection(robot); robot: Robot đang được kết nối

Check active: RobotLineDetection.isActive(robot); robot: Robot đang được kết nối

Getstatus: RobotLineDetection.getCurrentStatus (robot); robot: Robot đang được kết nốireturn: Status object - Tham số vị thí trạng thái hiện tại của robot:

• status.getShape(): Lấy tham số trạng thái - flagstatus• status.getAngle(): Lấy giá trị góc nghiêng so với line - Angle• status.getDistance(): Lấy giá trị khoảng cách với line - Distance

LineDetection

Tham số trạng thái

Flagstatus: trả về các giá 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_LEFT T_JUNCTION_RIGHT

LineDetection

INTERSECTION L_SHAPE_LEFT

NO_LINE L_SHAPE_RIGHT

LineDetection

Tham số trạng thái

Angle: Góc nghiêng nhỏ nhất giữa robot và phương của line. • Giá trị âm nghĩa là robot cần quay ngược chiều kim đồng hồ một

góc bằng Angle để hướng nhìn của nó song song với phương của line

• Giá trị dương nghĩa là robot cần quay cùng chiều kim đồng hồ một góc bằng Angle để hướng nhìn của nó song song với phương của line.

Distance: Khoảng cách giữa robot và line. • Giá trị âm nghĩa là robot đang ở bên trái so với line• Giá trị dương nghĩa là robot đang ở bên phải so với line

LineDetection

Tham số trạng thái

LineDetection

Áp dụng

Start Module

Init

Get parameters

Do action: Walk forward, turn left, right …

Stop action

Stop Module

Timer, PID v.v…

FlashcardRecognition

Chức năng Module nhận diện những ảnh đã được training trong database Tạo ra các trò chơi nhỏ để giải trí hay học tập v.v… Module gồm 2 phần: - Training

- Recognition

Quá trình training Input: Ảnh chụp từ camera của Robot hoặc ảnh lưu trong mobile Output: ID của ảnh. Yêu cầu:

– Ảnh training phải rõ nét độ tương phản tốt và chỉ chứa chủ yếu là Object cần nhận diện, background không nhiều, hoặc không có

– Ảnh có kích thước không quá lớn (làm chậm quá trình nhận dạng)Và cũng không quá nhỏ (làm giảm độ chính xác nhận dạng)

Các function quan trọng Get Database path: getCurrentDatabaseDirectory(Robot robot)

robot: Robot đang được kết nối

Set Database path: setDatabaseDirectory(Robot robot, String robotPath)

robot: Robot đang được kết nốirobotPath: Đường dẫn cần lưu database

Training image: learnFlashcardLocal(Robot robot, String robotPathToFlashcard, String tag)

robot: Robot đang được kết nốirobotPathToFlashcard: Đường dẫn tới thư mục chứa ảnh cần trainingtag: Nội dung của ảnh - VD: tên gọi của ảnh hoặc đặc tính của ảnh…Hàm trả về ID của ảnh – đây là thông tin để nhận diện ảnh sau này

Các hàm xóa ảnh trong database: forgetFlashcard, clearDatabase, forgetFlashcardsByTag…

FlashcardRecognition

FlashcardRecognition

Quá trình nhận dạng - recognition Input: Ảnh chụp từ camera của Robot hoặc ảnh lưu trong mobile Output: ID của ảnh, tag của ảnh Yêu cầu:

– Ảnh nhận diện phải rõ nét độ tương phản tốt và chỉ chứa chủ yếu là Object cần nhận diện, background không nhiều, hoặc không có

Các function quan trọng Start recognition: startRecognition(Robot robot)

robot: Robot đang được kết nối

Stop recognition: stopRecognition(Robot robot) robot: Robot đang được kết nối

Event: FlashcardRecognized - trả lại tag của ảnh chụp bởi camera

Áp dụng

Image from NAO or Mobile

Training Data

IMAGE ID

FlashcardRecognition

Áp dụng

Start Module

Init other module

Capture Image from

cameraRecognition Processing Stop action

Stop Module

Wait Event – get data

Time out

FlashcardRecognition

FaceDetection

Chức năng Module nhận diện khuôn mặt đã được training trước đó Tăng khả năng giao tiếp của robot Module gồm 2 phần: - Training

- Recognition

Quá trình training Input: Ảnh (hoặc nhóm ảnh) khuôn mặt của một cá nhân Output: Thông tin ảnh – quá trình này diễn ra trên máy chủ cung cấp dịch vụ Yêu cầu:

– Ảnh training phải rõ nét độ tương phản tốt và chỉ chứa chủ yếu là khuôn mặt cần nhận diện, background không nhiều, hoặc không có

Các function quan trọng Training database:

• trainImage(String path, String name, TrainListener listener)path: Đường dẫn tới ảnh của người cần trainingname: Nội dung muốn add vào ảnh – VD: tên ngườilistener: Callback của process – trả về tag ID của ảnh nếu việc training thành công

• trainImage(String[] path, String name, TrainListener listener)path: List các ảnh của người cần training

Khi gọi hàm này toàn bộ ảnh trong thư mục sẽ được gửi lên máy chủ của nhà cung cấp dịch vụ nhận diện khuôn mặt

FaceDetection

Các function quan trọng Recognition face:

• Detect (String path, DetectListener listener)path: Đường dẫn tới ảnh của người cần traininglistener: Callback của process – trả về tag ID của khuôn mặt trùng khớp với khuôn mặt trước camera và giới tính

Khi gọi hàm này NAO sẽ detect khuôn mặt của người đứng trước camera (giúp giảm dung lượng ảnh và tăng độ chính xác nhận diện) và gửi lên server để thực hiện quá trình nhận dạng.

FaceDetection

Áp dụng

Image from NAO or Mobile

Training Data on server

IMAGE TAG

FaceDetection

Áp dụng

Start Module

Init other module

Capture Image from

cameraRecognition Processing Stop action

Stop Module

Callback – get data

No match

FaceDetection

Questions and Comments

Thank for Your Attention