Skip to main content

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-cp313-cp313-win_amd64.whl (681.4 kB view details)

Uploaded CPython 3.13Windows x86-64

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

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

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

Uploaded CPython 3.12Windows x86-64

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

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

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

Uploaded CPython 3.11Windows x86-64

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

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

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

Uploaded CPython 3.10Windows x86-64

anofit-0.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (715.5 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-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: anofit-0.1.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 681.4 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-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 d6693997416d6d95f35f1be846aece8bdfd4312a89196fc4a3cb9fb36909b37e
MD5 ef8c77b24d1e30cf133e47f7b70d48b2
BLAKE2b-256 a3363fedd71bccc9775d54ee9d282969f1e460e61514f656fe10e012e0b99eb2

See more details on using hashes here.

Provenance

The following attestation bundles were made for anofit-0.1.0-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-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-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 eb494d86dd67d444dbcfa542470e2c3270ced3e3eb8c4f905c706bf661dba448
MD5 c44d03493e92a771f3f2645a0357183e
BLAKE2b-256 67a8af096b7e4793f95fbf868482f1c7f030b13be8e3c7f5d07ff254cd255f21

See more details on using hashes here.

Provenance

The following attestation bundles were made for anofit-0.1.0-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-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: anofit-0.1.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 682.6 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-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 34316786734020c4e2ccfe3ab2e55c1049f5cb6871793f6ac64e73df2b2bcea0
MD5 59873c15f9c9013048bed2630921f903
BLAKE2b-256 4577b1792d255492fb50442ec055c2c3a7e3214d0640396b9b4def407ca14e33

See more details on using hashes here.

Provenance

The following attestation bundles were made for anofit-0.1.0-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-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-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c531ba4bb7cef03dd40ec2a62625cb12a576678b7c15b84096b7d411a564953c
MD5 c7d16f741f64e9f17b00823b5dc758aa
BLAKE2b-256 102ca06dad7693064458969867f70ef088918580d71c52572b57d69fdcfc87ae

See more details on using hashes here.

Provenance

The following attestation bundles were made for anofit-0.1.0-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-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: anofit-0.1.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 692.2 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-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 bc2ee95d4241ed3d1a43924056a50a0b0487a73b92fb2f43d791268614da8f45
MD5 90eb3438a83b7adb781ed83492e9e15f
BLAKE2b-256 bcc96abc4f72e9ab8b9a1b7a2ac23c4fb5f0000da9eb819ce56897e466b4acb9

See more details on using hashes here.

Provenance

The following attestation bundles were made for anofit-0.1.0-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-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-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 af96a0a100f6d5a066a075e1455a7f22c02603e14fcafe7ef5aacf6270a7f4eb
MD5 e3f7ee9f62b1057997c6c03357fab1e0
BLAKE2b-256 24711744bf680021bae4f18b3d93bdff05af70218cffe0d2652736c3bd4bf5af

See more details on using hashes here.

Provenance

The following attestation bundles were made for anofit-0.1.0-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-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: anofit-0.1.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 691.9 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-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1ec6dfeef3518a65a18ef68e0db41d7630dd039f49dec13dc163f7dfdebf3c30
MD5 3966d8be0000c7cb0e4b7338fb81515d
BLAKE2b-256 85906dad3c2837db93e041305fb68729627d0d3e974609a2d5e5dc608ba5326c

See more details on using hashes here.

Provenance

The following attestation bundles were made for anofit-0.1.0-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-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-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 add13224242f266ab1aa22f117a67da7fb288b2a0915e71f9d7b98fba0a6c6b8
MD5 4d653cac1ddb07b38e6f8a7851210a98
BLAKE2b-256 07d1ffa8e67e07fc88a4442f4667fedf8daa8c1856d10249f517712b2a913c93

See more details on using hashes here.

Provenance

The following attestation bundles were made for anofit-0.1.0-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

This release

0.1.0 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