[ROS Robo Prj] Ch2. face tracker

Jeongkyu(Jun)·2022년 11월 24일

ROS

목록 보기
1/1

1. An Overview of the Project

  • 간단한 페이스 트랙킹 모듈 구성. 다이나믹셀과 OpenCV을 이용한 수평축 제어
  • 중앙 중심값을 이용하여 서보모터에 명령을 날림.

2. Hardware and Software prerequisites

  • 웹캠
  • 다이나믹 셀 AX-12A서보
  • USB to 다이나믹셀 어댑터
  • Extra 3-pin cable for AX-12 servo

2.1. Installing dependento ROS Packages

  • usb_cam package in ROS. usb_cam package is ROS driver for Video4Linux(V4L)USB카메라
  • V4L : 실시간 비디오 캡쳐가 가능하도록하는 웹캠 디바이스 드라이버

3. Configuring Dynamixel AX-12 servos


설명을 위해 자세한 그림 예제


4. The connection diagram of the project

  • 자세한 내용은 교재 및 로보티즈 홈페이지 참조

5. Interfacing Dynamixel with ROS

  • 자세한 내용은 교재 및 로보티즈 홈페이지 참조
$ cd ~/ros_project_dependencies_ws/src
$ git clone https://github.com/arebgun/dynamixel_motor

6. Creating ROS packages for a face tracker and controller

6.1 Face Tracker ROS Packages

  • OpenCV

    openCV(Open Source Computer Vision)은 실시간 컴퓨터 비전을 목적으로 한 프로그래밍 라이브러리이다. 원래는 인텔이 개발하였다. 실시간 이미지 프로세싱에 중점을 둔 라이브러리이다. 인텔 CPU에서 사용되는 경우 속도의 향상을 볼 수 있는 IPP(Intel Performance Primitives)를 지원한다. 이 라이브러리는 윈도우, 리눅스 등에서 사용 가능한 크로스 플랫폼이며 오픈소스 BSD 허가서 하에서 무료로 사용할 수 있다. OpenCV는 TensorFlow, Torch / PyTorch 및 Caffe의 딥러닝 프레임워크를 지원한다.

  • vision_opencv 패키지

    • ROS안에 opencv라이브러리를 통합시킨 패키지
  • cv_bridge

    • opencv이미지 데이터 타입(cv:Mat)과 ROS 이미지 메시지(sensor_msgs/Image.msg)사이 변환을 지원해주는 패키지

6.2 Working with Face-Tracking Packages

  • 얼굴의 중심점 (centroid) 토픽과 opencv APIs을 이용하여 face tracking을 시도할것임.
  • 해당 예제의 패키지와 노드명은 face_tracker_node
  • Face Haar classifier
    • Haar Cascade는 머신 러닝기반의 오브젝트 검출 알고리즘임.
    • 2001년 논문 "Rapid Object Detection using a Boosted Cascade of Simple Features"에서 Paul Viola와 Michael Jones가 제안함.
    • feature을 기반으로 비디오 또는 이미지에서 오브젝트를 검출하기 위해 사용됨.
    • 픽셀이 아닌 직사각형 영역으로 구성되는 특징을 사용기 때문에 매우 빠름.
    • Haar Cascade Classifier를 이용한 분류학습.
    • 예제 학습 영상
  • ROI(Region of Interest)를 따라가며 XML 특징값과 매칭여부를 확인함.
  • 해당 예제에서는 opencv에서 제공하는 사람얼굴 특징 정보가 담긴face.xml를 사용함.
  • 미리 학습된 XML 파일 OpenCV 깃허브 사이트에서 다운로드 가능 openCV Git
  • 학습된 XML파일을 사용할때는 반드시 track.yaml의 haar_file_face 경로를 바꿔줘야함.

7. Implementing a face tracker and face tracker controller

7.1 understanding the face tracker code

  • 코드가 어렵지 않음. 읽어보면 쉽게 이해가능함.
profile
안녕하세요

0개의 댓글