Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

anofit

양품 사진만으로 학습하는 기계 시각 이상 탐지. 긁힘·깨짐 같은 구조적 불량과, 부품이 빠졌거나 자리가 바뀐 논리적 불량을 함께 잡는다. 학습부터 임계값 결정, 검사 시험까지 대시보드 하나로 한다.

Anomaly detection for machine vision, trained from good images only — structural and logical defects, with a dashboard. Documentation is in Korean; the CLI prints Korean.


무엇을 하나

모드 잡는 것 바탕
struct 긁힘 · 깨짐 · 오염 · 변형 SALAD (ICCV 2025) — 교사/학생 + 오토인코더
logic 부품 누락 · 개수 오류 · 위치 바뀜 CSAD (BMVC 2024) — 부품 분할 + 히스토그램
both 둘 다 (기본) 두 점수를 z-score 로 합침

MVTec LOCO 5품종 실측 (AUROC, 양품 = test/good, 이상 = logical + structural, 2026-09-09):

품종 struct logic both
juice_bottle 99.90 73.27 99.72
breakfast_box 86.52 70.30 84.97
pushpins 92.66 53.23 91.57
screw_bag 82.17 49.96 72.94
splicing_connectors 95.26 62.07 94.34

이 숫자는 라벨 없이, 양품만 보고 학습한 값이다. 논문 값은 라벨된 테스트 셋으로 가장 좋은 에폭을 고른 것이라 직접 비교가 안 된다. 자세한 것은 저장소의 BENCH_REPORT.md.

설치

# 1) CUDA 에 맞는 torch 를 먼저 (pip 은 CPU 판을 고른다)
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121

# 2) anofit — 학습까지 하려면 [train]
pip install "anofit[train]"

# 검사만 하는 기계(이미 학습한 번들로 점수만)면 이것으로 충분하다
pip install anofit
  • Python 3.10 – 3.13, Windows / Linux
  • 학습은 GPU 가 필요하다 (실측 요구 VRAM 은 anofit doctor 가 말해 준다). 검사는 CPU 로도 된다.
  • 산출물·캐시·가중치를 어느 디스크에 둘지는 anofit.yaml 로 정한다 — 본보기 anofit.example.yaml. 없으면 사용자 캐시 폴더에 쌓인다.

5분 시작

anofit doctor --mode both      # 이 기계로 되는가: GPU · 디스크 · 의존성 · 가중치
anofit fetch  --mode both      # 파운데이션 가중치 10.4 GB (원 배포처에서, sha256 대조, 이어받기)
anofit serve                   # 대시보드 → http://127.0.0.1:8732

대시보드에서: 준비 탭에 양품 폴더(서버 경로 또는 업로드) → 학습 탭에서 품종 이름을 정하고 시작 → 끝나면 임계값 탭에서 운용점을 고르고 검사 탭에 사진을 넣어 본다.

명령줄로 같은 일:

anofit train --category my_part --good ./good --mode both       # 번들 생성
anofit threshold <번들>                                          # 임계값이 뜻하는 것
anofit score <번들> photo.png --models-dir <번들>                 # 한 장 판정
anofit export <번들> -o my_part.afz                               # 현장으로 옮길 파일 하나

가중치는 동봉하지 않는다

anofit fetch 가 원 배포처에서 받는다. 각 가중치는 배포처의 라이선스를 따른다 (THIRD_PARTY_NOTICES.md §6, 매니페스트 anofit/fetch_manifest.json).

크기 출처
GroundingDINO Swin-T 0.69 GB IDEA-Research
RAM++ Swin-L 3.01 GB recognize-anything
SAM-HQ ViT-H 2.57 GB SysCV
SAM ViT-H 2.56 GB Meta
EfficientAD teacher 0.03 GB SALAD 저장소
Imagenette v2 1.56 GB fast.ai

--mode struct 만이면 6.7 GB, logic 만이면 6.3 GB. 첫 학습 때 라이브러리가 스스로 받는 것이 1 GB 쯤 더 있다 (bert-base-uncased, timm wide_resnet50_2, dino_vitbase8).

라이선스 · 체험

평가용 라이선스다 (LICENSE). 처음 실행한 날부터 90일은 그대로 쓴다. 그 뒤에는 학습·대시보드·fetch 가 멈추고, 이미 학습한 번들로 검사하는 것은 계속 된다 — 돌고 있는 라인이 서지 않는다.

anofit license                       # 남은 날짜
anofit license --install "<key>"     # 받은 키 설치 (또는 환경 변수 ANOFIT_LICENSE)

키는 pashidl.lab@gmail.com 으로 요청한다. 학습한 모델과 사진은 전부 사용자의 것이다.

포함된 오픈소스(GroundingDINO · SAM · RAM++ · CSAD · SALAD)는 각자의 라이선스를 그대로 가지며, 무엇을 고쳤는지는 THIRD_PARTY_NOTICES.md 에 파일 단위로 적었다.

안 되는 것 · 알아 둘 것

  • 안전이 걸린 곳에는 쓰지 않는다 (LICENSE §7).
  • 정확도는 사진·조명·부품에 달렸다. 위 표는 MVTec LOCO 에서의 측정이지 약속이 아니다.
  • 학습 시간: 품종당 최대 2시간 (RTX 4090, both, 양품 300장 기준). 캐시 1~3 GB, 번들 0.1 GB.
  • Windows 에서 폴더 가져오기는 심볼릭 링크를 쓰고, 안 되면 복사한다.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

anofit-0.1.0.dev0-cp313-cp313-win_amd64.whl (681.5 kB view details)

Uploaded CPython 3.13Windows x86-64

anofit-0.1.0.dev0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (715.2 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

anofit-0.1.0.dev0-cp312-cp312-win_amd64.whl (682.7 kB view details)

Uploaded CPython 3.12Windows x86-64

anofit-0.1.0.dev0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (713.9 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

anofit-0.1.0.dev0-cp311-cp311-win_amd64.whl (692.3 kB view details)

Uploaded CPython 3.11Windows x86-64

anofit-0.1.0.dev0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (716.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

anofit-0.1.0.dev0-cp310-cp310-win_amd64.whl (692.0 kB view details)

Uploaded CPython 3.10Windows x86-64

anofit-0.1.0.dev0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (715.6 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file anofit-0.1.0.dev0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: anofit-0.1.0.dev0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 681.5 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for anofit-0.1.0.dev0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1042b0c29720620bc369b84fcc55b0a1afc9304f7f62f00a51d809db5c0038eb
MD5 8e5b4778fa1acecdf99caf401a3021e8
BLAKE2b-256 99b4d8411b50cd3a817683d2f453f01e630212ea2a848c09185a385b05d26758

See more details on using hashes here.

Provenance

The following attestation bundles were made for anofit-0.1.0.dev0-cp313-cp313-win_amd64.whl:

Publisher: wheels.yml on pashidl-lab/anofit-src

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file anofit-0.1.0.dev0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for anofit-0.1.0.dev0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8c1253f6f01c65e4a0cca769f7588a10e15e17dde49baca214edcb688740976d
MD5 227125d73b369f54ff1dca29411c95b1
BLAKE2b-256 0a536dc33013dd199d4cc229178e282bf58cf138a2f39d22ecef90a98a2fce0f

See more details on using hashes here.

Provenance

The following attestation bundles were made for anofit-0.1.0.dev0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on pashidl-lab/anofit-src

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file anofit-0.1.0.dev0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: anofit-0.1.0.dev0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 682.7 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for anofit-0.1.0.dev0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 60ea0471fd0ec5292b89798bce7879ac8d795aa22952647a10d8342985887745
MD5 97ac458e253f8899d00476b59c476e6f
BLAKE2b-256 f1063aa044f4e8a928f9f84cb9d25ce415acfbf0015bb750db539bb81872ab13

See more details on using hashes here.

Provenance

The following attestation bundles were made for anofit-0.1.0.dev0-cp312-cp312-win_amd64.whl:

Publisher: wheels.yml on pashidl-lab/anofit-src

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file anofit-0.1.0.dev0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for anofit-0.1.0.dev0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4fe4ec7d30f30ddac1dd0db06e33403521453e862a169702555cd797c600f2fc
MD5 c3d00aaba569e1fb10760d0c00c315ec
BLAKE2b-256 dd6c1f65b656623207707b45e1385e1e4eff4ef1d392599034224339289e8a0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for anofit-0.1.0.dev0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on pashidl-lab/anofit-src

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file anofit-0.1.0.dev0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: anofit-0.1.0.dev0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 692.3 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for anofit-0.1.0.dev0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 98276ee4f0bed0107662bea989dd95ae375fcacc8fea10ce395fc42d0b33fcdc
MD5 028512a35aa24ace26f8a92b2e315477
BLAKE2b-256 da5650a41fbf9de72f35a8c43dad5872b66bd99d668efb3a79240e0da530ae56

See more details on using hashes here.

Provenance

The following attestation bundles were made for anofit-0.1.0.dev0-cp311-cp311-win_amd64.whl:

Publisher: wheels.yml on pashidl-lab/anofit-src

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file anofit-0.1.0.dev0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for anofit-0.1.0.dev0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2cdc18dc8e156092980e1a17ed86d90ce5856bd3bc9cf8e653bf254f20b5b7ef
MD5 66bda751a428a8883b7052598f237aa5
BLAKE2b-256 b4f99b0b203d455725651a86aca621f733d0840aaad80f74ba6113d75f8282cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for anofit-0.1.0.dev0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on pashidl-lab/anofit-src

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file anofit-0.1.0.dev0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: anofit-0.1.0.dev0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 692.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for anofit-0.1.0.dev0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e53ed72fc7db31c008995b95e29bcc76b1da04d34f847fe378d3b3ad944ee041
MD5 0ee505e9b713f3ad9a58c9d830735846
BLAKE2b-256 4dfe7d7b3d7d7a3ef3174bf8a29b235fb69b7d5c7e69983ae07b9ffdbafa5991

See more details on using hashes here.

Provenance

The following attestation bundles were made for anofit-0.1.0.dev0-cp310-cp310-win_amd64.whl:

Publisher: wheels.yml on pashidl-lab/anofit-src

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file anofit-0.1.0.dev0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for anofit-0.1.0.dev0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a085fcacfcc3c12aad3bf66abd695a60d5c72a12d2819fb43c4a3b9f8447e263
MD5 7d44b5467d4cc2acfcd61d6a83b02d60
BLAKE2b-256 318f7bb22f10fc5eda1d86383bae9273160cd6456d4b97a3e3d69296ef45b8e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for anofit-0.1.0.dev0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl:

Publisher: wheels.yml on pashidl-lab/anofit-src

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.0

8 files

This release

0.1.0.dev0 This release

8 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page