FLIR Lepton 어댑터¶
FLIR Lepton 어댑터 모듈은 FLIR Lepton 열화상 코어(별도 판매)를 OpenMV Cam에 연결하며, 사람/물체의 온도 측정을 위한 AGC 모드와 직접 열화상(direct-thermal) 모드를 모두 제공합니다.
전체 데이터시트, 사진, 주문 정보는 FLIR Lepton 어댑터 제품 페이지 를 참조하십시오.
주요 특징¶
FLIR Lepton 1.x / 2.x / 3.x 코어와 호환(별도 판매)
온도 매핑을 지원하는 AGC 모드와 직접 열화상 모드 모두 제공
완전한 어둠 속에서도 볼 수 있음
모든 모듈형 OpenMV Cam 베이스 보드와 호환
사용법¶
cid= csi.LEPTON 과 함께 csi.CSI 를 통해 Lepton을 구동합니다. 드라이버는 Lepton의 네이티브 프레임(1.x/2.x는 80x60, 3.x는 160x120)을 설정한 framesize로 내부적으로 업스케일합니다:
import csi
import time
csi0 = csi.CSI(cid=csi.LEPTON)
csi0.reset()
csi0.pixformat(csi.GRAYSCALE)
csi0.framesize(csi.QVGA)
clock = time.clock()
while True:
clock.tick()
img = csi0.snapshot()
print(clock.fps())
센서에서 직접 색상이 입혀진 프레임을 얻으려면 pixformat을 csi.RGB565 로 전환하고 csi.CSI.color_palette 를 image.PALETTE_IRONBOW 로 설정하십시오. 드라이버가 팔레트가 적용된 RGB565 프레임을 출력하므로 snapshot() 이 ironbow 색상의 프레임을 곧바로 반환합니다:
csi0.pixformat(csi.RGB565)
csi0.color_palette(image.PALETTE_IRONBOW)
온도 측정¶
방사 측정(radiometric) Lepton(Lepton 2.5 / 3.5)은 픽셀별로 보정된 온도 데이터를 보고합니다. csi.IOCTL_LEPTON_SET_MODE 와 함께 csi.CSI.ioctl 을 통해 측정 모드를 활성화한 다음, csi.IOCTL_LEPTON_SET_RANGE (min_celsius, max_celsius) 로 온도 범위를 제한하십시오. Lepton 드라이버는 그레이스케일 픽셀 값 0을 min_celsius 에, 255를 max_celsius 에 선형으로 매핑하므로, 각 픽셀이 설정된 범위 내에서 온도 조회 값이 됩니다. min_celsius 보다 차가운 픽셀은 0으로, max_celsius 보다 뜨거운 픽셀은 255로 포화됩니다.
csi.IOCTL_LEPTON_SET_MODE 는 두 개의 플래그를 받습니다. 첫 번째는 측정을 켜고, 두 번째는 센서의 온도 범위를 선택합니다:
저범위(Low range) —
(True, False)— 센서 범위-10 °C에서+140 °C(실내 규모 장면). 관심 영역에 맞게 범위를 제한하십시오. 예를 들어 체온 추적의 경우(20.0, 40.0)csi0.ioctl(csi.IOCTL_LEPTON_SET_MODE, True, False) csi0.ioctl(csi.IOCTL_LEPTON_SET_RANGE, 20.0, 40.0)
고범위(High range) —
(True, True)— 뜨거운 물체용으로 센서 범위는 일반적으로-10 °C에서~+450 °C(실온에서는~+400 °C). 예를 들어 용광로나 가열 소자 추적의 경우(0.0, 400.0)으로 제한하십시오:csi0.ioctl(csi.IOCTL_LEPTON_SET_MODE, True, True) csi0.ioctl(csi.IOCTL_LEPTON_SET_RANGE, 0.0, 400.0)
그레이스케일 픽셀을 다시 섭씨로 변환하려면:
def p_to_temp(p, min_t, max_t):
return (p * (max_t - min_t)) / 255.0 + min_t
이 방법은 개별 픽셀에서뿐만 아니라, Image.find_blobs 로 뜨겁거나 차가운 영역을 찾을 때 ROI 내부의 집계된 통계(예: Image.get_statistics 의 stats.mean())에도 적용됩니다.
참고
온도 측정에는 색상 팔레트가 설정되지 않은 그레이스케일 모드의 Lepton이 필요합니다. 선형 픽셀-온도 매핑은 원시 그레이스케일 출력에서만 유효하기 때문입니다. 디스플레이용으로 색상을 입히려면, Image.draw_image 와 color_palette= image.PALETTE_IRONBOW 를 사용하여 그레이스케일 프레임을 RGB 출력 버퍼에 그리는 방식으로 별도로 처리하십시오:
out = image.Image(csi0.width(), csi0.height(), image.RGB565)
out.draw_image(img, 0, 0, color_palette=image.PALETTE_IRONBOW)