진드기 실시간 검사 Real-time Tick Scan
카메라 화면을 실시간 색반전해 어두운 털을 밝게 바꾸고, TFLite 모델이 진드기 의심 부위를 원형으로 표시합니다. Live color-invert preview makes dark fur bright, and an on-device TFLite model marks suspected ticks.
강아지 털 속에 숨은 진드기를 카메라 색반전과 온디바이스 AI로 빠르게 찾아주는 앱. 피부·치아 베타 검사와 갤러리 기록까지 한 번에. Spot ticks hidden in a dog's fur using a color-invert camera and on-device AI. Includes beta skin/dental checks and a gallery for vet visits.
카메라 화면을 실시간 색반전해 어두운 털을 밝게 바꾸고, TFLite 모델이 진드기 의심 부위를 원형으로 표시합니다. Live color-invert preview makes dark fur bright, and an on-device TFLite model marks suspected ticks.
촬영 후 미리보기에서 피부 이상은 빨강, 치석은 주황 폴리곤으로 표시. 드래그·핀치로 직접 편집 가능. After capture, skin abnormalities are marked red and tartar orange; drag/pinch to edit before saving.
촬영 시점의 AI 분석 결과와 메모가 함께 저장돼, 동물병원에서 수의사에게 정확히 보여줄 수 있습니다. AI results and notes save with each photo — show your vet exactly what you saw.
두꺼운 털도 플래시로 밝게, 최대 8배까지 당겨서 깊은 부위까지 세밀하게 확인. Light up thick fur and zoom up to 8× to inspect hard-to-reach spots.
위아래 스와이프로 전·후면 전환. 강아지를 두 손으로 잡아야 할 때는 한 번에 전체화면으로. Swipe to switch front/rear cameras; hide bars when you need both hands.
시스템 테마·라이트·다크 3종 전환. 한국어·영어 동등 지원으로 글로벌 사용자도 그대로 사용. System/light/dark themes, with first-class Korean and English support.
┌──────────────── Android App (Java) ─────────────────────────┐
│ │
│ CameraX ──▶ Image Analysis ──▶ OpenCV (RGB invert) │
│ │ │ │
│ │ ▼ │
│ │ Live Preview │
│ ▼ (shutter) │
│ PNG cache ──▶ TFLite Models ──▶ Polygon Overlay │
│ • TickDetector (editable: drag, │
│ • Skin Seg pinch, tap-delete) │
│ • Dental Seg │ │
│ ▼ │
│ [Save] / [Retake] │
│ │ │
│ ▼ │
│ MediaStore + Room │
│ (photo + note + polyJSON) │
│ │ │
│ (only if user opted in) ──────┘ │
│ ▼ │
│ OkHttp + WorkManager ── retry · idempotency │
└────────────────────────────┼────────────────────────────────┘
▼
┌────────── Synology NAS (FastAPI) ────────┐
│ POST /upload (X-API-Key) │
│ → file: /volume1/tickscanner/<Y>/<M>/ │
│ → DB: MariaDB (users + photos) │
│ Reverse proxy + HTTPS (Let's Encrypt) │
└──────────────────────────────────────────┘
앱은 단일 Activity + Fragment hide/show 패턴(ViewPager 미사용)으로 탭 전환 시 카메라 세션을 유지합니다. 진드기·피부·치아 모델은 모두 TFLite로 동일한 추론 파이프라인을 공유하며, 결과 폴리곤은 공용 EditableOverlayView에서 편집됩니다.
A single Activity with Fragment hide/show (no ViewPager) keeps the camera session alive across tabs. The tick / skin / dental models share one TFLite inference pipeline, and detection polygons feed into a shared EditableOverlayView for in-place editing.
OpenCV RGBA Mat을 통째로 bitwise_not 하면 알파 채널까지 반전돼 카메라 프리뷰가 전체 투명으로 보이는 버그.
Running bitwise_not on a full RGBA Mat inverts the alpha channel too, making the live preview render fully transparent.
채널을 R·G·B·A로 분리해 R/G/B에만 Core.bitwise_not()을 적용한 뒤 다시 merge. 한 줄 분기로 색반전 토글도 가능.
Split into R/G/B/A channels, invert only R/G/B, then merge back. The split also makes toggling invert a one-line branch.
색반전이 의도대로 보이고 알파는 보존됨. 프리뷰 프레임 처리 비용도 유지. Inversion looks right and alpha stays intact, with no extra cost in the per-frame path.
Google Play의 16KB 페이지 정렬 정책. OpenCV AAR이 구버전 libc++_shared.so를 번들링해 그대로 쓰면 출시 차단.
Google Play's 16KB page alignment policy. The OpenCV AAR bundles an older libc++_shared.so, which blocks release builds.
NDK r28 + OpenCV 4.11.0(첫 16KB-aligned 버전)로 통일. NDK의 libc++_shared.so를 jniLibs/arm64-v8a/로 직접 복사해 정렬 우선 적용.
Pin NDK r28 + OpenCV 4.11.0 (first 16KB-aligned release), and copy the NDK's libc++_shared.so straight into jniLibs/arm64-v8a/ so the aligned copy wins.
Play 정책 통과. 의존성 업그레이드 정책에 "OpenCV 4.11+ 유지, 16KB 정렬 재확인"을 명시해 회귀 방지. Cleared Play policy. The upgrade policy now pins "OpenCV ≥ 4.11 and re-verify 16KB alignment" to prevent regressions.
학습 데이터를 어떻게 모을지. 웹 스크래핑은 품질·라이선스 불확실하고 사용자 사진은 민감. How to source training data. Web scraping was license-murky and low quality; user photos are sensitive.
웹 스크래핑을 전면 폐기하고 Kaggle/Roboflow 공개 검증 데이터셋만 사용. dataset_finder.py로 검색·triage·다운로드를 자동화하고, SAM으로 bbox→폴리곤 변환 + background 이미지 ~15% 섞어 오탐 억제.
Dropped scraping entirely and only use vetted Kaggle/Roboflow datasets. dataset_finder.py automates discovery, triage, and download; SAM converts bbox→polygon, and ~15% background images get mixed in to reduce false positives.
라이선스 깔끔, 재학습 파이프라인 재현 가능. 동의자 한정 사용자 사진은 NAS의 별도 영역에 모아 다음 모델 학습에 활용. Clean licensing and a reproducible re-training pipeline. Opt-in user photos pool to a separate NAS area for the next model cycle.
LIVE Google Play 출시 · v1.0.1 · 한국어/영어 동시 운영 Live on Google Play · v1.0.1 · Korean & English
다음: 피부·치아 모델 정확도 v2 학습, 갤러리 캘린더 뷰, 코치마크 리워크. Next: Skin/dental model v2 retrain, calendar view in gallery, coachmark rework.