OpenCV 4

[OpenCV] 3. 객체 탐지를 위한 이미지 전처리 프로세싱 (Image Processing)

서론상자를 분류하기 위해서는 가장 먼저 해당 상자의 길이를 측정할 수 있어야 한다. 상자의 길이를 측정해야 특정 값을 기준으로 상자를 분류할 수 있기 때문이다. 그래서 이번 글에서는 상자의 길이를 측정하기 전에 이미지 프로세싱을 통해서 이미지를 가공하는 방법에 대해서 알아볼 것이다.객체 길이 측정 방법객체의 길이를 측정하기 위한 알고리즘을 한 번 생각해 보자. 가장 간단한 방법은 이미 알고 있는 물체의 길이를 사용해서 비례적으로 타겟 객체의 길이를 계산하는 방법이다. 하지만 이렇게 간단한 방법을 하기 위해서 우리가 해야 할 작업이 몇 가지가 있다. 객체 탐지 알고리즘이미 우리가 길이를 알고 있는 객체가 있다고 하더라도, 우리는 그 객체를 탐지하고 인식해야 그 길이 정보를 사용할 수 있다. 또한, 우리가 ..

Robotics 2024.12.03

[OpenCV] 2. 아루코마커 인식하기 (ArUco marker)

서론오늘은 OpenCV로 아루코마커 (ArUco marker)를 인식하는 것을 해보려고 한다. 아루코마커란 로봇 비전 혹은 컴퓨터 비전에서 많이 사용하는 마커이다. 마치 QR 코드처럼 우리가 카메라로 아루코마커를 인식하면 그 아루코마커가 가지고 있는 ID를 반환받아서 읽을 수 있다. 우리가 아루코마커를 사용하는 이유는 간편하기 때문이다. 간단히 아루코마커를 출력해서 붙여두면, 특정 위치에서 아루코마커를 인식할 수 있다. 물론, 우리가 객체인식 모델을 가지고 있다면, 굳이 아루코마커를 사용하지 않더라도 원하는 것을 인식하고 활용할 수 있다. 하지만 그렇게 딥러닝 모델을 만드는 것보다는 간단히 아루코마커를 출력해서 사용하는 편이 좋다.아루코마커 (ArUco marker)아루코마커를 간단히 만들 수 있는 사이..

Robotics 2024.11.14

[OpenCV] 1. 카메라 캘리브레이션 (Camera Calibration)

서론OpenCV를 사용하여 로봇 비전을 하기 전에 가장 먼저 해야 하는 작업이 있다. 바로 카메라 캘리브레이션 (Camera Calibration)이다. 이것은 말 그대로 카메라를 교정하는 것이다.우리가 카메라를 보면 보통 이미지가 왜곡되어 있다. 이것은 카메라의 원리가 핀홀 효과를 사용하기 때문에 주변부가 둥글게 왜곡되기 때문이다. 그리고 우리는 이것을 보정하여 오른쪽 이미지처럼 직선이 되도록 펼쳐줄 것이다. 그리고 이것을 위해 카메라의 내부 파라미터와 외부 파라미터를 보정할 것이다.카메라 파라미터카메라의 파라미터에는 크게 두 가지가 있다.카메라 렌즈 시스템의 내부 파라미터(Internal parameters): 초점 거리 (focal length), 광학 중심 (optical center), 렌즈의 ..

Robotics 2024.11.13

[OpenCV] 0. 로봇 비전을 활용한 상자 분류 프로젝트

서론로봇과 기계의 차이는 무엇일까? 로봇과 기계의 가장 큰 차이는 로봇이 스스로 센서로 무언가를 인지하고, 그것에 대한 피드백의 유무이다. 즉, 로봇에게는 센서가 있어야 한다. 그리고 그 센서의 종류에는 촉각 센서, 초음파 센서, 온도 센서 등 다양한 센서들이 있지만, 나는 그중에서 카메라를 센서로 사용하려고 한다. 카메라를 센서로 사용하는 이유에는 여러가지가 있다. 카메라는 로봇, 감시, 우주 탐사, 자동화 등 여러 산업과 여러 영역에서 이미 많이 사용하고 있다. 또한, 인간이 가장 중요시하는 감각 기관인 시각을 사용함으로써 직관적이고 확실하다. 이러한 이유로 로봇 비전 혹은 컴퓨터 비전과 관련한 개발이 많이 진행되었다. 가장 대표적으로는 이미지와 동영상을 가공하고 분석하는 OpenCV가 있다. 이것 ..

Robotics 2024.11.12