팁과 요령#
데모 모드#
데모 모드를 사용하면 마스터 프로세서 없이 CMUcam4를 시연할 수 있습니다. 데모 모드에서 CMUcam4는 “TW”(Track Window) 명령을 실행한 다음 트래킹되는 물체를 향해 두 개의 표준 취미용 서보를 구동하는 동시에 트래킹된 물체를 표준 TV에 표시합니다. CMUcam4가 데모 모드에 진입하면 리셋될 때까지 데모 모드를 종료하지 않습니다. 데모 모드에 진입하려면 아래 단계를 따르십시오:
CMUcam4의 reset button을 길게 누르십시오
CMUcam4의 user button을 길게 누르십시오
reset button을 놓으십시오(user button은 놓지 마십시오)
빨간색 보조 LED가 켜질 때까지 기다리십시오(2초)
빨간색 보조 LED가 10 Hz로 깜박이기 시작할 때까지 기다린 다음 user button을 놓으십시오
CMUcam4가 TV에 연결되어 있으면 TV가 켜져야 합니다(TV에 스플래시 화면이 표시되는 것이 보여야 합니다)
CMUcam4가 이제 다음 5초 동안 조명 조건에 적응합니다
다음 5초 동안 트래킹하려는 물체를 CMUcam4 앞에 두지 마십시오
빨간색 보조 LED가 10 Hz로 깜박이는 것을 멈출 때까지 기다리십시오
CMUcam4가 이제 조명 조건 조정을 완료했습니다
팬 및 틸트 서보 핀은 50 Hz에서 1500 μs 펄스를 출력해야 합니다
트래킹하려는 물체를 CMUcam4 앞에 놓고 user button을 누르십시오
빨간색 보조 LED가 10 Hz로 깜박이기 시작하면 OV9665 카메라 모듈 연결을 검사하십시오
OV9665 카메라 모듈이 손상되었을 수 있으며 교체해야 할 가능성이 높습니다
CMUcam4가 TV에 연결되어 있으면 이제 트래킹된 물체(또는 유사한 것)가 TV에 표시되는 것을 볼 수 있습니다
팬 및 틸트 서보가 연결되어 있으면, 트래킹된 물체를 향해 카메라를 구동하려고도 합니다
무엇이 가장 잘 작동하는지 보려면 다양한 환경에서 다양한 물체로 이 절차를 시도해 보십시오
CMUcam4가 이제 데모 모드에서 실행 중입니다
데모 모드를 종료하려면 reset button을 누르십시오.
팬 서보의 비반전 동작의 경우, 1500 µs보다 짧은 펄스 길이는 카메라 모듈의 X 위치를 (카메라 모듈의 관점에서) 오른쪽으로 이동시켜야 하고, 1500 µs보다 긴 펄스 길이는 카메라 모듈의 X 위치를 (카메라 모듈의 관점에서) 왼쪽으로 이동시켜야 합니다.
틸트 서보의 비반전 동작의 경우, 1500 µs보다 짧은 펄스 길이는 카메라 모듈의 Y 위치를 (카메라 모듈의 관점에서) 아래로 이동시켜야 하고, 1500 µs보다 긴 펄스 길이는 카메라 모듈의 Y 위치를 (카메라 모듈의 관점에서) 위로 이동시켜야 합니다.
정지(Halt) 모드#
정지 모드를 사용하면 Arduino에 연결된 상태에서 CMUcam4를 정지시킬 수 있습니다. 정지 모드에서 CMUcam4는 매우 적은 전력을 소비하며 Arduino의 시리얼 포트를 차단하여 Arduino가 프로그래밍되는 것을 방해하지 않습니다. 정지 모드는 CMUcam4가 Arduino 프로그래밍 과정을 방해하는 경우에만 필요합니다. 그렇지 않다면 정지 모드는 불필요하며 - 보통은 그러합니다. CMUcam4가 정지 모드에 진입하면 리셋될 때까지 정지 모드를 종료하지 않습니다. 정지 모드에 진입하려면 아래 단계를 따르십시오:
CMUcam4의 reset button을 길게 누르십시오
CMUcam4의 user button을 길게 누르십시오
reset button을 놓으십시오(user button은 놓지 마십시오)
빨간색 보조 LED가 켜질 때까지 기다리십시오(2초)
user button을 놓으십시오
CMUcam4가 이제 무기한 정지되었습니다
정지 모드를 종료하려면 reset button을 누르십시오.
더 나은 트래킹에 대한 참고 사항#
자동 게인 및 화이트 밸런스를 통한 향상된 트래킹#
자동 게인은 환경에 가장 적합하도록 이미지의 밝기 수준을 조정하는 내부 제어입니다. 이미지의 밝은 부분과 어두운 부분을 정규화하여 수동으로 조정한 이미지의 전체적인 밝기에 근접하도록 시도합니다. 이 과정은 카메라가 밝기 수준을 자동으로 조정하면서 여러 프레임에 걸쳐 반복됩니다. 예를 들어 조명이 켜지고 환경이 밝아지면, 카메라는 전체 이미지를 어둡게 하도록 밝기를 조정하려고 합니다.
반면에 화이트 밸런스는 카메라의 색상 게인을 보정하려고 시도합니다. 이미지의 주변광이 순수한 흰색이 아닐 수 있습니다. 이 경우, 카메라는 색상을 다르게 봅니다. 카메라는 각 색상 채널에 얼마의 게인을 줄지에 대한 초기 추측으로 시작합니다. 활성화되면, 화이트 밸런스는 이미지의 평균 색상이 회색에 가까워지도록 프레임 단위로 이러한 게인을 조정합니다. 경험적으로, 이 “그레이 월드” 방법은 비교적 잘 작동하는 것으로 밝혀졌습니다. 그레이 월드 화이트 밸런스의 문제는 단일 색상이 카메라의 시야를 채우면, 화이트 밸런스가 그 색상이 실제 색상이 아니라 회색으로 보이도록 게인을 서서히 설정한다는 것입니다. 그런 다음 단일 색상이 제거되면, 회색 평균을 다시 확립할 때까지 이미지에 바람직하지 않은 색상 게인이 생깁니다.
데모 모드에서처럼 색상을 트래킹할 때, 자동 게인과 화이트 밸런스가 짧은 기간 동안 실행되도록 허용한 다음 끄고 싶을 수 있습니다. 약 5초 동안 켜져 있는 동안, 카메라는 밝기 게인과 색상 게인을 적합하다고 보는 값으로 설정할 수 있습니다. 그런 다음 끄면 렌즈에 가까이 있는 물체, 그림자 등으로 인해 카메라가 불필요하게 설정을 변경하는 것을 막습니다. 자동 게인과 화이트 밸런스가 비활성화되지 않았고 카메라가 RGB 또는 YCbCr 값에 대한 설정을 변경했다면, 새로 측정된 값이 원래 선택한 컬러 트래킹 임계값을 벗어날 수 있습니다.
카메라 모듈은 화이트 밸런스를 활용하려면 자동 게인이 활성화되어야 합니다.
YUV (YCbCr) 색 공간#
YCbCr은 더 일반적으로 알려진 RGB 공간과는 다른 색 공간 정의입니다. YCbCr에서는 조명 데이터가 별도의 채널에 저장됩니다. 이 속성 때문에, YCbCr 모드에서 카메라는 조명 변화에 더 저항적일 수 있습니다. 다른 색 공간이기 때문에, YCbCr의 이미지는 프레임 덤프 프로그램으로 직접 매핑될 때 표준 RGB 이미지처럼 보이지 않습니다. RGB 채널은 CrYCb로 매핑됩니다. 따라서 YCbCr 모드에서, red 매개변수로 반환되는 값은 실제로 Cr이고, green 매개변수는 Y이며, blue 매개변수는 Cb입니다. 따라서 빨간 물체를 트래킹하려면, 그 물체의 색상이 YCbCr에서 무엇으로 매핑되는지 보기 위해 덤프된 프레임을 봐야 합니다. 그러면 조명이 그다지 중요하지 않다는 것을 보여주는 매우 완화된 Y 경계를 제공하면서 Cb와 Cr 경계를 찾을 수 있어야 합니다. YCbCr을 사용할 때, 모든 CMUcam4 I/O 측면에서 Red가 Cr, Green이 Y, Blue가 Cb로 매핑된다는 것을 고려해야 합니다.
RGB 채널이 YCbCr가 아니라 CrYCb를 제공하도록 매핑된다는 점에 유의하십시오.
카메라 모듈 정보#
전원을 켠 후, 카메라가 빛에 자동으로 적응하는 데 최대 5초가 걸릴 수 있습니다. 조명을 켜고 끄는 것과 같은 환경의 급격한 변화는 유사한 재적응 시간을 유발할 수 있습니다. 야외에서 카메라를 사용할 때는, 비교적 흐린 날에도 태양의 강력한 IR 방출로 인해 주변 광량을 줄이기 위해 IR 필터나 중성 밀도(ND) 카메라 필터를 사용해야 할 것입니다.
카메라 보드가 제공하는 함수들은 사용자에게 컬러 비전 함수의 도구 상자를 제공하기 위한 것입니다. 실제 애플리케이션은 크게 다를 수 있으며 사용자의 상상에 맡겨집니다. 보이는 윈도우를 변경하고, 색상 및 빛 통계를 수집하고, 색상을 트래킹하는 기능은 호스트 프로세서에 의해 서로 엮여 더 높은 수준의 기능을 만들 수 있습니다.