I built an open source sky camera that Claude Code can actually run. Saturday night it caught 17 meteors and had them sorted before I woke up.
Claude Code가 운영하는 오픈소스 하늘 카메라, 밤새 유성 17개를 찾아 분류했습니다
openskycam은 하늘 카메라 영상을 개인 디스크에 저장하고, 탐지 모델과 워크플로로 유성·비행기·야생동물 등을 분류하는 오픈소스 프로젝트입니다. 웹사이트와 API를 MCP 서버로 Claude Code에 연결하며, 작성자는 승인한 탐지 결과로 학습 데이터를 만들고 모델을 재훈련했다고 설명합니다.
- 주제
에디터 노트
이 프로젝트에서 검증 가능한 성과는 카메라 영상 보관부터 탐지 검토와 재훈련까지 이어지는 개인용 파이프라인입니다. 작성자는 학습에 쓰지 않은 밤의 별 오탐이 약 50%에서 7%로 줄고 유성 탐지율은 90%였다고 밝혔지만, 이 수치는 작성자의 데이터와 평가 조건에 한정됩니다. 댓글에서 특히 구체적인 보완은 재훈련 데이터를 사람이 확인한다는 점입니다. 자동화가 라벨 오류까지 되먹임하는 위험을 줄이는 절차지만, 검토와 데이터셋 구성은 여전히 사람의 몫입니다. 드론 탐지 질문에도 작성자는 충분한 학습 데이터가 없고 먼 거리의 물체는 서로 비슷하다고 답했습니다. 따라서 현재 성능을 다른 카메라 환경이나 드론 탐지에 그대로 적용할 근거는 없습니다.
AI 요약
openskycam은 4K 카메라가 촬영한 하늘 영상을 보관하고, 탐지 결과를 검토·분류·학습 데이터로 만드는 오픈소스 프로젝트입니다. 제작자는 Claude Code가 MCP 서버를 이용해 설정부터 워크플로 운영까지 수행하도록 구성했습니다. Reddit 게시글 제목에 따르면 어느 토요일 밤 유성 17개를 찾아 잠에서 깨기 전에 분류했습니다.
영상 저장과 탐지
카메라 스트림은 Linux 호스트의 릴레이를 거쳐 60초 길이 MP4 파일로 나뉩니다. 재인코딩하지 않은 파일은 사용자가 소유한 디스크에 저장되며, Cloudflare Workers는 영상을 보관하지 않습니다. Workers는 Cloudflare Tunnel을 통해 저장소에 접근해 파일 목록과 웹사이트, API를 제공합니다. 영상은 40일 동안 보관하고, 날짜별로 찾아 재생하거나 초 단위로 건너뛰고 원본 파일을 내려받을 수 있습니다.
워크플로는 시간 구간에서 프레임을 추출하고 탐지·분류 모델을 1~4개 실행합니다. 클래스, 점수, 객체 수, 촬영 시간대, 움직임에 따라 결과를 분류해 버킷에 저장하며, 야간 작업처럼 일정에 맞춰 자동 실행할 수 있습니다. 여러 프레임에서 같은 객체를 연결해 트랙을 만들고 움직이는 물체, 고정된 물체, 짧게 나타난 물체로 나눕니다. 이 정보로 이동하는 비행기와 고정된 별빛을 구분하는 워크플로를 구성합니다.
검토와 학습 데이터
사용자는 탐지 결과를 승인하거나 거부하고, 경계 상자를 수정할 수 있습니다. 확정한 데이터셋 버전에는 이미지, 라벨, 트랙, 클래스, 데이터 분할 정보가 기록되며 스크립트로 내려받을 수 있습니다. 제작자는 사람이 승인한 탐지만 모아 모델을 재훈련했다고 설명했습니다. 게시글에 따르면 학습에 쓰지 않은 밤의 별 오탐 비율은 약 50%에서 7%로 낮아졌고, 유성 탐지율은 90%였습니다.
Claude Code 연결과 구성
웹사이트의 기능은 모두 /v1 API로 제공되며 MCP 서버도 같은 작업을 에이전트에 연결합니다. MCP 서버에는 워크플로 생성, 탐지 검색, 변경 검증을 위한 안내와 skills가 포함됩니다. 서버 쪽에서 키 생성 권한을 제한하고, 삭제 전에 미리보기와 확인을 요구하며, 최신 버전을 덮어쓰는 변경은 거부합니다. 설정 명령은 .env를 읽어 설치를 진행하고, 누락된 설정 이름을 알려줍니다. Cloudflare Tunnel, 로그인 앱, API 키는 사람이 직접 준비해야 합니다.
구성 요소는 카메라 근처의 Linux 릴레이, Cloudflare의 Ingest Worker와 웹사이트·API Worker, 대용량 디스크를 가진 macOS 또는 Linux 저장소, 선택적으로 GPU를 쓰는 처리기, Cloudflare D1 카탈로그입니다. 저장소와 처리기는 한 컴퓨터에서 함께 실행할 수 있습니다.
Reddit 반응
- @Terrible_Award_2124 — 탐지 처리는 YOLO 모델이 맡아 토큰을 쓰지 않습니다. Claude는 분석 요청을 받으면 모든 이미지를 하나씩 보는 대신 파이썬 스크립트로 밝기나 탐지 지속 시간을 살펴 큰 버킷의 패턴을 찾습니다.
- @Terrible_Award_2124 — 재훈련 데이터셋은 직접 검토합니다. 오탐을 하나씩 고치는 일이 번거로워 검토 화면을 빠르게 만들었고, 같은 비행기의 여러 탐지는 한데 묶어 수백 장도 몇 분 안에 살펴볼 수 있다고 합니다.
- @Terrible_Award_2124 — 드론 탐지에는 학습 데이터가 더 필요합니다. 멀리 있는 작은 물체는 비슷하게 보여 드론을 야생동물과 구분하기 어렵고, 먼저 물체를 찾은 뒤 별도 분류 모델로 종류를 판별하는 방안을 생각하고 있다고 답했습니다.
- @Strange-Pin-2998 — 여러 카메라의 위치가 알려져 있고 같은 공간을 촬영하면 영상으로 항공기를 탐지해 위치와 방향, 속도를 계산할 수 있다고 설명했습니다.
- @PykcKeksas — 공격용 드론을 탐지하는 데 쓸 수 있는지 물었습니다.
- @Terrible_Award_2124 — 드론을 카메라 앞에서 몇 번 날려본 정도로는 야생동물과 구분하도록 학습하기 어렵다고 답했습니다. 야간에 항법등을 켠 드론은 비행기로 분류될 가능성이 있다고 덧붙였습니다.
- @rushabhsheth — 사람이 승인한 탐지만 재훈련에 쓰는 피드백 절차를 특히 좋게 봤으며, Claude가 승인한 결과도 표본 검사하는지 물었습니다.
- @Terrible_Award_2124 — 자동으로 맡기지 않고 본인이 검토해 새 데이터셋을 만든다고 답했습니다.
- @Inevitable_Ask_6956 — 모델이 긴 세션에서 프롬프트 규칙을 잊는 문제를 겪은 뒤 검증 규칙을 스크립트로 옮겼다고 공유했습니다. 재훈련 전에 데이터셋을 확인하는지 질문했습니다.
- @Terrible_Award_2124 — 재훈련 데이터셋을 직접 확인하고 검토한다고 답했습니다.
- @TRUBNIKOFF — 프롬프트 대신 서버에 안전장치를 둔 점을 좋게 평가하고, Claude가 탐지 결과를 검토할 때 프레임을 보는지 트랙 정보만 보는지 물었습니다.
- @Eilbeck — 정원에서 새를 추적하는 용도로도 쓸 수 있겠다며 관심을 보였습니다.
- @Terrible_Award_2124 — 실제로는 밤의 유성 17개보다 낮 시간의 야생동물 탐지가 훨씬 많다고 답했습니다.
- @Available_Walk9692 — Global Meteor Network로 데이터를 보내는지 물었습니다.
- @Terrible_Award_2124 — 워크플로로 원하는 데이터 레이크에 보낼 수 있어 확장 가능하다고 답했습니다.
- @ID-10T_Error — 같은 하늘을 보는 카메라를 5~10마일 간격으로 두 대 더 설치하면 거리와 속도를 삼각측량할 수 있다고 제안했습니다.
- @Xotta — 보유한 하드웨어로 설치해보고 싶지만 주변 광공해가 문제라고 말했습니다.
원문: Reddit / 번역·요약: Trawling