배경 및 목적
현 make 스터디(2410)의 'jeseop'님께서 'CCTV 기반 실내 이미지 분석으로 조명 자동화 하기'를 진행 중이십니다. 이 과정에서 NAS에 저장된 파일을 가져오는 부분에 흥미가 생겨 make의 FTP모듈(Watch files, get a file)의 이용법에 대해서 스터디 해봤습니다
참고 자료
CCTV 기반 실내 이미지 분석으로 조명 자동화 하기(https://www.gpters.org/nocode/post/automating-lighting-cctvbased-indoor-SRttAwTs5lQHPXn)
활용 툴
make.com
(iptime)NAS
실행 과정
NAS 혹은 File Server를 사용하다 보면 가장 친숙하게 이용하는 서비스 중 하나가 FTP(File Transfer Protocol)입니다. 마침 make.com에서도 FTP 모듈을 지원하고 있어 어떻게 동작하는지 공부해봤습니다.
아래에서는 NAS의 '멍멍사진'폴더에 파일이 추가될 때, 이를 주기적으로 감지하여 변경된 파일을 다운로드 하고, GPT를 통해 이미지를 분석하는 시나리오 입니다.
FTP 모듈 설정
가. Add 선택
나. FTP 설정 정보 입력
HOST : 서버 주소(IP 혹은 도메인 네임)를 입력합니다.
Port : FTP 서버로 지정된 포트 번호를 입력합니다.(기본 21)
User name / Password : NAS에 접속하기 위한 ID/PW를 입력합니다.
Make 시나리오 작성 : 폴더의 파일이 추가되면 파일을 다운로드 하고 이미지를 분석(이미지가 무엇을 표현하는지, 전체적인 밝기는 어느정도 인지)하도록 했습니다.
가. watch files(FTP) : 위의 가, 나 인증정보가 일치한다면 NAS 내부의 폴더와 싱크되어, 해당 폴더의 파일 변동 내역을 감지 할 수 있게 됩니다.
Folder : 현재 NAS에 존재하는 폴더 중 감시하고 싶은 폴더 선택(실제로는 '멍멍사진'폴더 선택)
Maximum number of returned files : 변화가 감지된 파일 정보를 몇개(파일수) 가져올 것인지 설정
나. get a file(FTP) : 파일을 다운로드 합니다.
file path : watch files에서 획득한 파일경로를 통해 파일을 다운로드 합니다.(FTP모듈에 사용자 정보가 포함되어 있기 때문에 다운로드 권한이 있음)
다. Analyze images(Vision) : 다운로드 받은 이미지를 분석합니다. 이미지 내용 및 조도(직접적인 조도 계산이 어려운 것 같아서 전체적인 밝기를 표기하도록 하고 json 형태로 결과를 받았습니다.
Prompt : 이미지를 분석하고 조도를 계산하는 지침, 그리고 분석내용과 조도(?)를 json형태로 출력하도록 했습니다.
images : get a file을 통해 'data'를 획득한 상태이기 때문에 'image file', 'file'은 'FTP-get a file'혹은 'map'을 선택하여 설정합니다.
Model : 저렴하고 쓸만한 4o-mini
결과 및 인사이트
테스트에 사용된 2개의 이미지는 아래와 같으며 적절한 답변을 얻었다고 생각합니다.
실제로 적정 lux를 얻지 는 못한 것 같지만, 이는 적절하게 가중치를 두어 변형하여 활용하면 여러 용도로 활용 가능하다고 생각되었습니다.
테스트에 쓰인 이미지 2개('신규 전설펫 [미쳤습니까 휴먼]', '쌍따봉 초딩'
Analyze images 결과
※ complete 모듈과 달리 analyze images는 json 분할을 지원하지 않아 추가 파싱 작업 필요