2010-06-06 2 views
0

나는 포인트 그레이 카메라 (http://www.ptgrey.com/)에 의해 실시간으로 캡처 된 이미지를 처리하는 응용 프로그램을 개발 중입니다. Point Gray SDK는 .net 래퍼이며 32 비트 또는 64 비트가 될 수 있습니다. 32 비트 대신 64 비트 버전의 openCV + Emgu를 사용하면 성능상의 이점이 있습니까?

는 그런 나뿐만 아니라 모두 32 비트 또는 64 비트 맛을 제공 Emgu CV ( http://www.emgu.com/)라는 OpenCV의 래퍼를 사용하고, 촬영 된 이미지를 처리합니다.

Vista64에서 필자는 성능을 극대화하기 위해 64 비트 버전의 FlyCapture (Point Grey SDK)와 Emgu CV (설치시 openCV 포함)를 사용했습니다.

최근 불행히도 32 비트에서만 존재하는 XNA에서 FlyCapture + Emgu DLL 코드를 호출하고 싶었습니다. 32 비트에서 모든 구성 요소를 다시 설치해야 할 수도 있다는 것을 알고 있습니다. IPC, 원격 처리 등을 수행하십시오.

32 비트 고유의 메모리 공간에 대한 명백한 제한 외에도 예상되는 성능 손실이 있습니까? 그것이 얼마나 극적일까요? 왜 그런 것입니까?

미리 조언 해 주셔서 감사합니다.

답변

1

시도해보십시오!

내가 왜 그런 방향으로 갈 수 있는지 이유를 생각해 볼 수 있습니다 (사용하는 소프트웨어에 익숙하지 않은 경우).

포인터는 32 비트 프로세스에서 절반 크기이므로 메모리 부족을 줄일 수 있습니다. 32 비트 소프트웨어는 오랫동안 사용되어 왔으며 더 최적화되었을 수도 있습니다. 그러나 반면에 이미지 처리는 64 비트 프로세스가 제공하는 더 큰 레지스터 크기에 잘 응답하는 경향이 있습니다.

퍼포먼스가 동일한 공 파크에 있다고 생각 하겠지만 플러스 또는 마이너스 20 %입니다. 그러나 결코 확신 할 수는 없습니다. 만약 당신이 진도 유형의 차이를 얻는다면 나는 그때 걱정할 것입니다. 많은 테스트 후

6

는 그것이 나오는 것을 86 OpenCV의 + emgu 콤보 평활화 14 가지 일반적인 OpenCV의 방법 (화상 복사, 이미지 포맷 변환의 순서를 사용하여 시험에 64보다 1.408 배 느린 수행 등등)

+0

나는 당신이 말한 것에 동의합니다 ... Opencv는 x64에서 매우 빠르게 실행됩니다. –

1

우리는 simmair 상황 (PT 그레이 카메라의 & 우리의 C# 응용 프로그램에 대한 emgu openCV 래퍼) 있습니다.

emgu는 x64 (XP x86 승패에 비해 7 위)에서 훨씬 더 빠릅니다. 처음에는 x64가 응용 프로그램의 나머지 부분에서 느린 것 같았지만 디버그 모드였습니다. 릴리스 모드에서는 성능이 비슷합니다. VS2010 (x64)에서 디버그 버전이 VS2008 버전 (x86)보다 느린 것 같습니다.