🧪 새 튜토리얼이 계속 업데이트 중 — 로봇 팔부터 센서까지
본문으로 건너뛰기

고급 기능 및 트래킹 ​

스토어에서 구매

이 섹션에서는 색상 추적, 얼굴 추적, QR 코드 추적을 포함한 시스템의 자동 추적 기능과 대상 잠금 메커니즘, 파라미터 튜닝을 자세히 소개합니다.


자동 추적 모드 개요 ​

시스템은 세 가지 자동 추적 모드를 지원합니다:

  1. 색상 추적: 지정한 색상의 물체를 추적합니다
  2. 얼굴 추적: 얼굴을 추적합니다
  3. QR 코드 추적: QR 코드를 추적합니다

색상 추적 ​

색상 선택 ​

시스템은 다양한 색상의 추적을 지원합니다:

  • 빨간색
  • 초록색
  • 파란색 프로그램에서 키를 눌러 색상을 전환할 수 있습니다:
  • X: 빨간색 선택
  • Y: 초록색 선택
  • Z: 파란색 선택

색상 추적 사용 절차 ​

  1. C를 눌러 짐벌을 연결합니다
  2. 2를 눌러 색상 추적 모드로 들어갑니다
  3. 대상 색상의 물체를 화면 중앙에 놓습니다
  4. T를 눌러 대상을 잠급니다
  5. 대상을 움직이며 짐벌이 따라오는 효과를 관찰합니다

간단한 색상 추적 예제 ​

간단한 색상 추적 예제 프로그램을 사용할 수도 있습니다:

python
python examples/04_color_track_simple.py --camera 0 --port COM3 --color red

이 프로그램은 가장 기본적인 색상 추적 기능을 제공하므로 학습에 적합합니다.


얼굴 추적 ​

얼굴 추적 원리 ​

시스템은 OpenCV의 Haar 캐스케이드 분류기를 사용하여 얼굴을 검출합니다. 얼굴이 검출되면 시스템이 대상 위치를 자동으로 계산하고 짐벌을 제어하여 따라갑니다.

얼굴 추적 사용 절차 ​

  1. C를 눌러 짐벌을 연결합니다
  2. 1을 눌러 얼굴 추적 모드로 들어갑니다
  3. 얼굴을 화면 중앙에 놓습니다
  4. T를 눌러 대상을 잠급니다
  5. 얼굴을 움직이면 짐벌이 자동으로 따라갑니다

얼굴 검출 성공률을 높이는 권장 사항 ​

  • 조명을 충분히 유지하고 역광을 피합니다
  • 얼굴을 카메라 정면으로 향하게 합니다
  • 적절한 거리를 유지합니다(1-3m 권장)
  • 여러 얼굴이 동시에 나오는 상황을 피하거나, 잠금 메커니즘으로 추적 대상을 고정합니다

QR 코드 추적 ​

QR 코드 추적 모드는 OpenCV의 QRCodeDetector를 사용하여 QR 코드를 인식하고 위치를 찾습니다. 사용 방법은 앞의 두 추적 모드와 유사합니다:

  1. 짐벌을 연결하고 QR 코드 추적 모드로 들어갑니다
  2. QR 코드를 화면 중앙에 놓고 T를 눌러 잠급니다
  3. QR 코드를 움직이며 짐벌이 따라오는 효과를 관찰합니다

대상 잠금 메커니즘 ​

잠금의 역할 ​

대상 잠금 메커니즘은 시스템의 핵심 기능으로, 다음과 같은 역할을 합니다:

  • 잠금 시 대상의 중심 위치와 크기를 기록합니다
  • 여러 대상이 나타나면 잠금 지점에서 가장 가까운 대상을 우선 선택합니다
  • 대상이 자주 튀는 것을 방지하여 추적의 안정성을 유지합니다

잠금 절차 ​

  1. 대상 물체를 화면 중앙에 놓습니다
  2. T를 눌러 잠급니다
  3. 잠금에 성공하면 시스템이 잠금 시와 가장 유사한 대상을 우선 추적합니다
  4. S를 누르면 잠금을 해제하고 추적을 중지할 수 있습니다

잠금 시 선택 로직 ​

시스템은 잠금 후 대상 선택 시 두 가지 요소를 종합적으로 고려합니다:

  • 거리: 대상 중심과 잠금 지점의 거리(가중치 70%)
  • 크기: 대상 크기가 잠금 시와 유사한 정도(가중치 30%)
  • 시스템은 종합 점수가 가장 높은 대상을 선택하여 추적합니다

추적 제어 파라미터 튜닝 ​

src/trackers/tracking_controller.py에는 다음과 같이 조정할 수 있는 파라미터가 있습니다:

파라미터 이름기본값설명
kp_pan0.08좌우 추적의 비례 게인
kp_tilt0.12상하 추적의 비례 게인
dead_zone30데드존 범위(픽셀), 이 범위 내에서는 짐벌을 이동하지 않음
min_move_interval0.15최소 이동 간격(초), 짐벌 운동 주기를 제한

파라미터 조정 방법 ​

  • 추적이 너무 느림: kp_pan과 kp_tilt를 증가시킵니다
  • 추적이 너무 민감하여 떨림 발생: kp_pan과 kp_tilt를 감소시키거나, min_move_interval을 증가시키거나, dead_zone을 증가시킵니다
  • 잦은 미세 조정으로 떨림 발생: dead_zone을 증가시킵니다
  • 방향이 반대: calculate_move 메서드에서 delta_pan 또는 delta_tilt의 부호를 수정합니다

추적 사용 전체 예제 ​

다음은 전체 사용 절차 예제입니다:

  1. 프로그램을 시작합니다:
python
python examples/auto_tracking_demo.py --camera 0 --port COM3 --color red
  1. C를 눌러 짐벌을 연결합니다
  2. 2를 눌러 색상 추적 모드를 선택합니다
  3. 빨간색 물체를 화면 중앙에 놓습니다
  4. T를 눌러 대상을 잠급니다
  5. 물체를 움직이며 짐벌이 따라오는 효과를 관찰합니다
  6. 초록색으로 바꾸려면 Y를 누른 후 다시 T를 눌러 잠급니다
  7. S를 눌러 추적을 중지하고, R을 눌러 중앙으로 복귀시킵니다
  8. Q를 눌러 종료합니다

심화 개발 팁 ​

기능을 사용자 정의하거나 2차 개발을 진행하려면 다음을 참고할 수 있습니다:

  • src/sc_servo.py: 서보 통신 저수준
  • src/gimbal.py: 짐벌 제어
  • src/trackers/tracking_controller.py: 추적 컨트롤러
  • src/detectors/: 다양한 대상 검출기