집내의 지켜봐 카메라를 업데이트했다:③구성을 변경하자편:라즈파이 카메라 모듈의 매뉴얼 촬영을 다한다…!

소개



본 기사는 여기의 파트③에 해당합니다.
만약 내용에 흥미를 가질 수 있으면, 다른 파트도 보실 수 있으면 다행입니다. (순차 집필중…)

시스템 구성 변경



하드웨어는 설치되어 소프트웨어만 구성을 변경합니다.

성능 개선: 이미지 획득 방법 변경



카메라 모듈을 사용해 단순히 정지화면을 취득하고 싶을 뿐이므로, 표준 커멘드를 자작 프로그램중에서 호출해 사용하도록(듯이) 합니다.


Before
After


Opencv-python
라즈파이 표준 명령 raspistill


획득 이미지의 밝기 조정: 이미지 획득 설정 고정 및 보정 모드 도입



이미지 캡처 설정을 고정하려면 raspistill 옵션을 사용하여 다양한 자동 조정을 해제하면서 필요한 모든 매개 변수를 지정해야합니다.
여기서 말하는 자동 조정은 자동 화이트 밸런스(awb)와 자동 게인 컨트롤(agc)입니다.
off로 설정하면 다음 항목을 지정해야 합니다. 공식 문서를 봐도 단적으로 정리되지 않았기 때문에, 어떤 옵션을 주면 좋을지를 명확하게 하기까지가 힘들었습니다…


옵션
내용


-ss
셔터 개방 시간

-br
이미지 밝기

-awbg
화이트 밸런스

-ag
아날로그 게인

-dg
디지털 게인


이 모든 것을 트라이 앤 에러하는 것은 어렵습니다.
그래서 raspistill 옵션으로 실현할 수있는 자동 조정 결과의 표준 출력 -set 옵션을 사용합니다.
-set 옵션을 사용하면 다음과 같은 카메라 설정값이 표준 출력됩니다. 여러 줄이 출력되지만 기본적으로 가장 마지막 행은 조정 완료 결과입니다.
거기에서 다음의 대응을 해 각 옵션에 값을 주면 OK입니다.

입력
raspistill -set

output
Camera control callback  cmd=0x48435045mmal: Exposure now 499982, analog gain 1075/256, digital gain 256/256
mmal: AWB R=314/256, B=708/256
Camera control callback  cmd=0x48435045mmal: Exposure now 499982, analog gain 1075/256, digital gain 258/256
mmal: AWB R=317/256, B=698/256
Camera control callback  cmd=0x48435045mmal: Exposure now 499982, analog gain 1130/256, digital gain 256/256
mmal: AWB R=309/256, B=729/256




옵션
표준 출력 결과와의 대응


-ss
Exposure now 값을 그대로 제공

-awbg
AWB R, B를 각각 소수점으로 수정합니다. 예: -awbg 1.3, 1.7
-ag
analog gain을 소수로 고쳐줍니다.

-dg
digital gain을 소수로 고쳐주고


이렇게 하면 자동 조정을 한 번 수행한 후 카메라 설정을 사용하여 연속적으로 정지 영상을 촬영할 수 있습니다.
awb, agc를 할 필요가 없기 때문에, 촬영의 인터벌을 좁힐 수도 있게 됩니다!

최종 촬영 명령은 다음과 같습니다. xxx는 적절하게 설정하는 값입니다.
raspistill -n -awb off -ex off -ss xxx -md xxx -o xxx.jpg -br 50 -awbg xxx,xxx -ag xxx -dg xxx -t xxx  

또한 자동 조정시 실행 명령도 마찬가지로 표시합니다.
raspistill -set -br 0 -ex xxx

여기서 -ex는 노출 설정입니다. auto 이나 night 등, 씬마다의 설정이 준비되어 있기 때문에, 여기는 사용하는 시간대등에 따라서 변경할 수 있도록 하는 편이 좋을 것 같습니다.

시스템 구성도 낙서



이상을 근거로 한 시스템 구성도의 낙서를 나타냅니다.
전회 기사에서 명언한 것처럼 Go 언어 결정 치기! 그러므로 UI를 전달하는 HTTP 서버와 병행하여 움직이는 촬영용 goroutine을 준비하고 사용자 조작에 의해 촬영 설정의 자동 조정(calibration)이 지시되었을 때만 촬영 설정을 덮어쓰도록 구성합니다. .
이 근처의 구조는 방금 학습하고 있던 Go 언어를 사용한 api 구축을 응용해 보았습니다.



결론


raspistill 의 매뉴얼 촬영 설정 방법을 조사하는 것이 가장 힘들었습니다.
어떻게든 시스템 구성이 결정되었으므로, 드디어 구현 → 가동입니다 ...! !

좋은 웹페이지 즐겨찾기