3. 응용 - 마커를 이용한 영상 증강

2025. 5. 13. 17:38·📚 STUDY/👀 컴퓨터비전

💡 마커

컴퓨터 비전에서 객체 인식이나 위치 추정을 위해 사용하는 특정한 시각적 패턴이나 기호

- 흑백의 고대비 정사각형 패턴, 각 마커는 고유한 ID를 가짐, 마커의 모양과 위치를 인식함으로써 3D 공간에서의 포즈(pose) 추정 가능

 

💡 일반적인 마커 검출 과정

- 이미지 이진화 (흰색 ➡ 흰색, 검은색 ➡ 검은색이 됨)

- 윤곽 검출 (마커의 윤곽을 따줌)

- 크기 평가 및 볼록 다각형 여부 판단 (마커는 볼록 다각형이 아님)

- 사각형 변환 (찌그러져 있는 것을 반듯하게 펼치는 것)

- 마커의 규칙 판단 (검 흰 흰 이런식으로 색으로 비교)

 

💡 QRCode (Quick Response Code)

- 우리가 원래 알던 네모난 바코드는 1차원 (EAN Code, 흰/검 무조건 교차하고 그 사이의 간격으로 알아냄)

- QRCode는 2차원

 

✔ 특징

-  사각형의 검/흰 픽셀로 구성

- 작은 공간 차지

- 고속 스캔 가능

- 데이터에 따라 다양한 크기 존재

- 대용량의 데이터 표현 가능

 

✔ 검출 과정

1. 이미지 이진화

2. 3개의 코너 패턴 검출 (가장자리 3개 네모, 우하단은 패턴이 없음. QRCode의 방향을 알기 위함임)

3. 3개의 코너에 line을 fitting하여 4번째 코너 검출

4. 4개의 코너 포인트 이용, 변형 제거

 

💡 QRCodeDetector

std::string cv::QRCodeDetector::detectAndDecode(InputArray img, OutputArray points, OutputArray straight_qrcode)

입력 : QRCode를 포함하는 image ➡ 출력 : QRCode가 인코딩하고 있는 data (string 형태)

- OutputArray points=noArray() : QRCode 꼭짓점 4개

- OutputArray straight_qrcode=noArray()

 

💡 VideoCapture()

- 카메라 입력

cv::VideoCapture::VideoCapture (int index, int apiPreference=CAP_ANY)

- idx : 0 (카메라가 1대일 때. 2대 이상은 다른 번호 작성)

- apiPreference : 카메라를 넘겨줄 건지, 영상을 넘겨줄 건지

 

❓ if QRCode를 통해 재생한 비디오 프레임을 QRCode 위에 위치시키려면?

✅ 비디오 프레임의 네 꼭짓점의 좌표와 이에 대응되는 카메라 프레임 속의 네 꼭짓점 좌표를 이용해, 비디오 프레임의 임의의 점 (x, y)가 카메라 프레임의 점(x', y')로 변환되는 규칙을 구한다.

 

 

📌 2D 변환 

 

좌상단 (0,0)

가정 : 비디오의 좌 상단, 우 상단과 QRCode의 좌 상단, 우 상단을 알고있다.

 

💡 Euclidean Transformation

- 유지 : 형태, 크기

- 변환 : 위치, 방향

- 자유도 : 3

- 최소 매칭 쌍 : 2

- 불변 속성 : 두 점의 거리, 두 선 사이의 각도

 

💡 Similarity Transformation

- 유지 : 형태

- 변환 : 크기, 위치, 방향

- 자유도 : 4

- 최소 매칭 쌍 : 2

- 불변 속성 : 두 선의 길이 비율, 내각의 비율

 

💡 Affine Transformation

- 자유도 : 6

- 최소 매칭 쌍 : 3

- 불변 속성 : 평행성, 평행한 두 선의 비율

 

💡 Projective Transformation (Homography)

- 평면 물체의 2D 이미지 변환 관계를 설명할 수 있는 가장 일반적인 모델

❗ 일반적인 유클리드 변환이나 Affine 변환으로는 카메라 시점에 의한 왜곡을 설명할 수 없는데, Homography는 이러한 원근(perspective) 왜곡까지 보정 가능.

 

- 자유도 : 8

- 최소 매칭 쌍 : 4

- 불변 속성 : 선의 길이 교차 비율

 

💡 findHomography

- homography를 구해주는 함수

- 반환형 호모그라피 Matrix (3x3)

 

💡 warpPerspective

- 구한 호모그라피에 의해 찌그러진 그림을 생성하는 함수

- 1번째 매개변수 : InputArray src(왜곡시키고자 하는 이미지)

- 2번째 매개변수 : 결과 이미지

- 3번째 매개변수 : InputArray m (앞에서 구한 호모그라피 Matrix가 들어감)

저작자표시 (새창열림)

'📚 STUDY > 👀 컴퓨터비전' 카테고리의 다른 글

5. 응용 - 지역 특징을 이용한 특정 물체 인식  (0) 2025.05.13
4. 응용 - 특정 물체 인식을 위한 지역 특징 추출  (0) 2025.05.13
2. 기초  (0) 2025.05.13
1. 개요  (0) 2025.05.13
'📚 STUDY/👀 컴퓨터비전' 카테고리의 다른 글
  • 5. 응용 - 지역 특징을 이용한 특정 물체 인식
  • 4. 응용 - 특정 물체 인식을 위한 지역 특징 추출
  • 2. 기초
  • 1. 개요
엄지잉
엄지잉
공부하는거 올림
  • 엄지잉
    엄지잉의 이것저것
    엄지잉
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • 🏫 학교 (2)
        • 👩‍🏫 교직 (1)
        • 🏢 USG (1)
      • 🌱 탐구 (17)
        • 📷 SLAM (7)
        • 💡 연구 (8)
        • 🌐 BOJ (2)
      • 📚 STUDY (47)
        • 🔥 C (32)
        • 📈 알고리즘 (9)
        • 👀 컴퓨터비전 (5)
        • 🔆 UNITY (1)
      • 🏆 자격증 (23)
        • ⚡ 정처기 (17)
        • 🔠 TOEIC (6)
      • 🎈 활동 (4)
        • 🎁 CJ 리모트 인턴십 (2)
        • 😶 기타 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    SW 설계
    정보시스템 구축관리
    RC
    mocopi
    C언어
    필기
    2022년
    정보처리기사
    C++
    DB 구축
    식별자
    Azure Kinect
    SW 개발
    모션캡처
    c기초
    프언 활용
    2021년
    Remote Internship
    Slam
    실기
    컴퓨터비전
    opencv
    알고리즘
    azurekinect
    BOJ
    정처기
    C
    Unity
    토익
    Body Tracking
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
엄지잉
3. 응용 - 마커를 이용한 영상 증강
상단으로

티스토리툴바