서로 최대 거리를 갖도록 큐브에 오브젝트를 분배하십시오.


11

우주에서 여러 물체를 추적하기 위해 컬러 카메라를 사용하려고합니다. 각 객체의 색상이 다르며 각 객체를 잘 구별하기 위해 객체에 할당 된 각 색상이 다른 객체의 색상과 가능한 한 다른지 확인하려고합니다.

RGB 공간에서, 우리는이 큐브에서 세 가지면, 0에서 255 사이의 값을 가진 모든이 , I는 배포하고자하는 자신과 사이에 많은 거리로이되도록 색상을 가능한 다른 사람. 추가 제한 사항은 및 (또는 가능한 한 가깝게)를 색상에 포함해야한다는 것 입니다. 내 배경은 아마도이 색 중 하나 일 것이기 때문에 개체는 두 색 중 하나를 사용합니다.n ( 0 , 0 , 0 ) ( 255 , 255 , 255 ) n ( n - 2 )(0,0,0)/(255,255,255)n(0,0,0)(255,255,255)n(n2)

아마도 (흑백 포함)은 약 14를 넘지 않습니다.n

이 색상을 얻는 방법에 대한 조언에 미리 감사드립니다.


2
카메라는 같은 색상이지만 강도가 다른 물체를 구별 할 수 없기 때문에 2 차원 공간 만 고려해야한다고 생각합니다. 문제는 흥미 롭습니다.
Stéphane Gimenez

3 차원은 빨강, 녹색 및 파랑의 세 가지 색상 평면에서 나옵니다. 여기서 각각 독립적으로 0-255의 값을 취할 수 있습니다. RGB 공간에서는 강도가 없다고 생각합니다. 비록 그것에 대해 잘 모르지만 2D 일 수 있기 때문에 이것에 더 적합한 다른 색 공간이 있습니다.
Matt

물체에 투사되는 빛의 양을 정확하게 제어 할 수 있다면 OK입니다. RGB 공간 (100, 100, 100) 및 (200, 200, 200)에서 다른 강도의 동일한 색상 (회색)이라고합니다.
Stéphane Gimenez

@Matt, Stephane은 RGB 큐브 대신 HSL 또는 HSV 큐브를 사용하도록 제안하는 것 같습니다. 색상이 다소 매핑되지만 2D지도의 S 구성 요소는 무시할 수 있습니다. 선택한 SV 또는 SL에서 H의 1D 스케일을 제안하여 색상을 비슷한 미적 "톤"으로 유지합니다. 1D에 대한 등분 포 알고리즘도 더 간단합니다!
Jason Kleban

1
예, 최대 쌍별 거리입니다. @ uosɐſ HSV는 실제로 RGB보다 더 나은 결과를 반환하는 것 같습니다. 세 개의 HSV 평면을 모두 사용하더라도 각 이상적인 색상까지의 거리에 따라 개별 색상을 더 잘 선택할 수 있습니다.
Matt

답변:


4

내가 실수하지 않는 한 모든 색상은 RGB 큐브 표면에 표시됩니다. 왜냐하면 모든 전하가 전기 도체 표면에 나타나는 것과 같은 이유입니다. 색상을 결정하는 다음 방법을 제안합니다.

  • RGB 색 공간을 XYZ 직교 공간으로 해석합니다.
  • 후보 색을 하전 입자, 예를 들어 전자로 해석하고;
  • 예를 들어 시뮬레이트 된 어닐링을 통해 시스템의 저에너지 상태를 찾으십시오.

대한 15 , 매우 정확한 시뮬레이션은 매우 신속해야한다; Runge Kutta 기술을 사용하거나 시간 단계가 짧은 Euler의 방법으로도 수행 할 수 있습니다 (구현하기가 훨씬 쉽습니다). 수치 통합 / 구적법에 대한 "수치 레시피"시리즈를 제안 할 수 있습니다.

입자가 수렴되면 점을 색으로 해석하여 색을 배열 할 수 있습니다. 처음에는 입자를 약간의 간격으로 큐브 표면에 무작위로 배열 할 수 있습니다 (수렴 및 안정성 문제 해결에 도움). 큐브의면에 작은 그룹을 배치하면 효과가 있습니다.

전역이 아닌 로컬 최소값에 갇히는 것을 피하기 위해 수렴 후 작은 임의의 전기장을 "펄스"로 만들어 시스템이 동일한 구성으로 돌아가는지 또는 다른 구성으로 돌아가는지 확인할 수 있습니다. 무작위로 배치 된 입자가이 시나리오에서 그렇게 할 가능성은 다소 없지만 가능합니다.

편집하다:

의견에서 지적했듯이 최적의 솔루션이 표면에만 있어야한다는 가정은 아마도 별개의 경우 모든 기하학에 적용되지는 않습니다.

다행히도 이것은 위에서 설명한 나머지 기술과 거의 관련이 없습니다. 입자는 처음에 어디에나 배치 할 수 있습니다. 안정성과 은폐를 위해 입자 쌍 사이에 약간의 공간을 남겨두고 시스템을 수렴하도록 반복 한 다음 몇 번 펄스 (아마도 증가하는 강도)로 시스템이 다른 (아마도 더 나은) 구성으로 수렴 할 수 있는지 확인하십시오 .

또한이 방법은 "입자 쌍 사이의 (고조파?) 평균 거리"와 같은 것을 최대화 할 것이라고 생각합니다. 입자 쌍 사이의 최소 거리 또는 입자 쌍 사이의 다른 평균 (형상?)을 최대화하려는 경우 최상의 솔루션을 제공하지 못할 수 있습니다.

어쨌든이 기법을 사용하면 최적의 최적 색상 세트를 쉽게 찾을 수있을 것입니다. 실제 "최적의"솔루션을 얻는 것은 사용 사례에 필요하지 않을 것입니다. 당연히 정확하고 입증 가능한 최적의 솔루션이 필요한 경우 수치 시뮬레이션이 최선의 방법은 아닙니다.


3
=9

@SaeedAmiri 흥미로운 관찰 ...이 문제는 일반적인 전하 밀도에 대한 물리적 논의와 비교할 때이 문제의 불연속적인 특성과 관련이있을 수 있습니다. 그러나 물리적 어닐링을 사용한 수치 시뮬레이션이 여전히 설명하는 솔루션을 찾지 못할 이유가 없다는 점은 주목할 가치가 있습니다. 귀하의 의견과이 통찰력을 반영하기 위해 편집 답변.
Patrick87

matlab에서 (simulannealbnd 사용)이 작업을 수행하는 방법을 알아낼 수 있는지 알아 보겠습니다. 내가 상상하기 어려운 것은 문제를 matlab이 최소화하려고 시도하는 수학 함수로 변환하는 것입니다.
Matt

추신 : 내 생각은 솔루션이 아마도 표면에있을 것이라고 생각했기 때문에 다면체 (정면 체)의 정점을 사용하는 것이 었습니다. 그러나 그것이 사실인지 확실하지 않았습니다.
Matt

matlab에서 (x, y, z) 점 세트를 제공하는 함수를 작성했으며 세트의 각 점 쌍 사이의 쌍별 유클리드 거리의 합을 계산합니다. 그런 다음 결과로 하나씩 나누고 matlab 은이 기능의 최소값을 찾아야합니다. 그러나 matlab은 예를 들어 4 3D 포인트에 대해 다음과 같은 x1, x2, x3, x4; y1, y2 .... 포인트 (0-1 범위)를 반환합니다 : 0.0001, 0.0031, 0.9993, 0.9920 ; 0.9970 0.0004 0.9919 0.0030; 0.0030 0.0003 0.9973 0.5756. 그럼에도 불구하고, 나는 그것이 matlab 문제라고 생각하므로 이것을 받아 들일 것입니다.
Matt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.