Date post: | 02-Jan-2016 |
Category: |
Documents |
Upload: | may-bartlett |
View: | 59 times |
Download: | 1 times |
ỨNG DỤNG VISION TRÊN ROBOT NAO SỬ DỤNG ROBOT FRAMEWORK
Department: FTI-FHO-FPT
Presenter: Tran Viet Tien
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
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
Á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
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
Start Module
Init other module
Capture Image from
cameraRecognition Processing Stop action
Stop Module
Callback – get data
No match
FaceDetection