2012-04-25 3 views
1

카메라가 1000fps를 얻는 시스템의 알고리즘을 구현하려고하는데 모든 이미지에서 각 픽셀의 값을 가져와 픽셀의 진화에 대한 다른 계산을해야합니다 [i ] [j]를 N 개의 이미지 수로 나눈다. 나는 GPU로 전송하고 알고리즘을 구현하기를 원하는 (unsigned char * ptr)을 가지고있다. 그러나 실시간 처리를위한 최상의 옵션이 무엇인지 확신 할 수 없다. 내 시스템 : CPU 인텔 제온 x5660의 2.8GHz의 (2 개 프로세서) GPU 엔비디아 쿼드로 5000실시간 쿠다 이미지 처리 조언

내가 가지고 다음 질문 : 나는 CUDA에 대한 이미지 처리 라이브러리 추가를 추가해야 할

  1. ? 그렇다면 무엇을 제안합니까?

  2. 이미지 크기의 각 픽셀에 대해 이미지 [1 : n] 값을 포함하는 픽셀 [i, j]에 대한 행렬을 만들 수 있습니까? 예를 들어 200x200 크기의 1000 개 이미지의 경우 하나의 픽셀에 대해 각각 개의 1000 값을 포함하는 40000 개의 매트릭스가 끝날 것입니다. CUDA는 OpenCV와 같은 몇 가지 옵션을 제공하여 매트릭스를 제공합니까? 또는 벡터?

+0

은 지속적으로 1000 프레임의 가장 오래된을 제거하고 추가 곳 "지향 스트리밍"될 것 작동인가 최신? 또는 1000 프레임을 처리 한 다음 던져서 1000 개의 새 프레임을 처리하는 일괄 작업입니까? –

+0

"스트리밍 지향적"이어야한다고 생각합니다. – user261002

+1

OpenCV에 대해 언급 한 적이 있기 때문에 질문에 태그로 추가 할 수 있습니다. – karlphillip

답변

2

각 계산이 하나의 (시간적) 픽셀 내에서만 작동하는 40000 개의 독립적 인 계산이있는 것처럼 들립니다. 그렇다면 GPU에 좋은 작업이되어야합니다. 352 코어 Fermi GPU는 12 개의 하이퍼 스레딩 된 Xeon 코어를 능가 할 수 있어야합니다.

일반적인 작업을 실행할 알고리즘이 있습니까? 그럴 것 같지 않은 것처럼 들리 겠지만,이 경우에는 자신 만의 커널을 작성해야 할 것입니다.

예, CUDA에서 모든 유형의 요소 배열을 가질 수 있습니다.

"스트리밍 지향"접근 방식은 PCIe 버스를 통한 전송과 비교하여 계산 횟수를 최대화한다는 점에서 GPU 구현에 적합합니다. 또한 특정 픽셀에 대해 1000 개의 값을 특정 순서 (예 : 가장 오래된 것부터 가장 최신의 것)로 처리하려는 경우 메모리에서 모든 프레임을 연속적으로 이동하지 않는 것이 좋을 것입니다. 최신 프레임을위한 공간). 픽셀 값을 주소 지정하는 작업이 약간 복잡해 지지만 프레임을 이동하지 않으려면 프레임을 새로 추가 할 때마다 가장 오래된 프레임을 최신 프레임으로 덮어 쓰는 것이 가장 좋습니다. 그렇게하면 꽤 잘 정렬 된 프레임 스택이 생기지 만 오래된 프레임과 새 프레임 사이의 불연속성이 그 안에 있습니다.

4

1 - CUDA에 이미지 처리 라이브러리를 추가해야합니까?

사과와 오렌지. 각각은 다른 목적을 가지고 있습니다. OpenCV와 같은 이미지 처리 라이브러리는 단순한 가속 매트릭스 계산 이상의 기능을 제공합니다. 어쩌면 OpenCV가 CUDA를 직접 사용하는 것처럼 보이기 때문에이 프로젝트에서 처리를 수행하지 않아도됩니다. 하지만 OpenCV를 사용하면 디스크에서 다른 이미지 형식을 쉽게로드하고 쓸 수 있습니다.

2 - CUDA는 OpenCV와 같은 몇 가지 옵션을 제공합니까?

물론입니다. 얼마 전에 OpenCV를 사용하여 디스크에서 이미지를로드하고 CUDA를 사용하여 회색 음영 버전으로 변환하는 간단한 (교육용) 응용 프로그램을 작성했습니다. 이 프로젝트의 이름은 cuda-grayscale입니다. CUDA 4로 테스트하지 않았습니다.x 코드는 OpenCV와 CUDA를 결합 할 때 기본 작업을 수행하는 방법을 보여줍니다.

+2

또한 openCV를 사용하면 이미지로드/저장 /보기가 매우 쉽습니다. 테스트에 유용합니다! –

1

나는 CUDA에 이미지 프로세싱 라이브러리를 추가해야합니까 ??? 만약 그렇다면 무엇을 제안합니까?

공개 : 그것은 또한 범용 기능을 제공 가속 이미징 라이브러리를 GPU에 관해서 우리 회사는 & 시장 CUVILib

매우 몇 가지 옵션이 있습니다을 개발한다.

  • 당신은 당신의 자신의 GPU 기능을 작성하고 사용할 수 있습니다 CuviImage 2 차원 매트릭스로 이미지 데이터와 이미지를 보유하고

    1. CuviImage 개체 : CUVILib은 사용자의 특정 요구에 매우 적합 다음을 제공하는 옵션들 중 하나입니다 2D GPU 매트릭스로.
    2. CUVILib는 이미 색상 작업, 이미지 통계, 기능 감지, 동작 추정, FFT, 이미지 변환 등과 같은 다양한 이미징 기능을 제공하므로 원하는 기능을 찾을 수 있습니다.

    GPU가 응용 프로그램에 적합한 지 여부에 대한 질문은 다음과 같습니다. 예! 이미징은 병렬 계산에 이상적인 도메인 중 하나입니다.

    링크 :

  • 관련 문제