본문으로 건너뛰기

Redrob Verify

받는 곳 GitHubHugging Face

오픈 OCR 모델과
채점하는 하네스.

문서 OCR, 위조, 얼굴 비교를 내 GPU에서 돌리는 오픈웨이트 모델. 채점하는 하네스가 함께 옵니다.

문서 OCR

신원 문서에서 필드를 읽고, 덩어리가 아니라 필드 단위로 채점합니다. 기본은 PaddleOCR classic, VL은 설정 한 줄로 바꿉니다.

  • 지표는 필드 단위 문자 오류율
  • MIDV-2020은 스크립트로 받고, git에는 넣지 않음
  • 스텁 백엔드는 조용히 0을 주지 않고 이유를 알려 줌
문서 OCR

위조 탐지

문서를 진본과 위조로 점수화하고, 유리한 운영점 하나만 공개하는 대신 임계값을 훑습니다. ForgeryNet 가중치는 Hugging Face에 있습니다.

  • 임계값 스윕에 따른 TPR과 F1, 공개 임계값도 함께 표기
  • 문서 단위 분할이라 평가 ID는 학습 위조에 등장하지 않음
  • 선택 백엔드 TruFor는 연구용이라 가중치는 공개하지 않음
위조 탐지

얼굴 비교

문서 사진과 셀피를 비교합니다. 검출과 임베딩을 따로 볼 수 있게 나눴고, 얼굴은 YuNet이 찾고 비교는 SFace가 합니다.

  • 임계값 스윕에 따른 민감도와 정확도
  • ONNX 가중치는 redrob-labs/redrob-verify-face에서
  • 쌍은 ingest에서 만들어져 다음 실행에도 같은 쌍
얼굴 비교

신원 집계

공개 프로필에서 개발자 신원을 모으고, 가장 느린 업스트림까지 포함해 호출한 쪽이 실제로 기다리는 시간을 잽니다.

  • 호출 단위 마이크로벤치가 아니라 종단 지연
  • 지연 테스트의 부하는 JMeter가 생성
  • 서비스 네 개가 /v1/meta 계약 하나를 공유
신원 집계
문서 OCR

그 밖에도 많습니다

모듈 전체와 우리가 스스로 지키는 규칙을 한자리에 뒀습니다.

공통 프리플라이트

실행을 인정하기 전에 모든 서비스가 /v1/meta에 답함

분리된 이미지

Paddle·Torch·OpenCV를 컨테이너로 분리

출처 매니페스트

출처와 freeze 검사가 결과가 주장할 범위를 제한

설정에 든 시드

목표와 시드는 셸 히스토리가 아니라 config.yaml에

한 번에 부트스트랩

run.sh bootstrap-gpu가 의존성·모델·데이터·compose·스모크까지

HTML 리포트

eval-all이 JSON과 넘겨줄 수 있는 리포트를 함께 씀

문서는 로컬에

가중치와 원본 이미지는 내려받을 뿐 커밋하지 않음

라이선스 목록

서드파티 조건을 모델별로 LICENSES.md에 정리

무엇을 측정했나

공개한 위조 탐지 가중치는 시드 7·13·42 전체에서 TPR 0.88 이상, F1 0.798 이상을 유지합니다. 문서 단위 400/100 분할이라 평가 ID는 학습 위조에 등장하지 않습니다. 공개 임계값은 시드 7 기준 0.87이고, 이 분할이 담지 못하는 범위는 모델 카드에 있습니다.

모델 카드 읽기

시작하기

공개 레포를 받아서 로컬에서 돌려 보면 방법이 그대로 보입니다.

01

받고 부트스트랩

GPU 머신에서 한 번에 의존성, 모델, 데이터, compose up, OCR 스모크까지.

02

프리플라이트 확인

각 서비스가 실제로 쓰는 백엔드를 보고합니다. 스텁이 진짜인 척할 수 없습니다.

03

지표 돌리기

eval-all이 결과와 report.html을 씁니다. 하나씩은 eval-cer, eval-forgery, eval-face.

git clone https://github.com/redrob-labs/redrob-verify.git && cd redrob-verify && ./run.sh bootstrap-gpu

자주 묻는 질문

라이선스, 한계, 그리고 실제로 어떻게 돌아가는지. 모든 주장에는 방법과 유의 사항을 같이 답니다.