# Third-party notices

## Project source licence

Copyright (C) 2026 Yu-Chen (Leon) Lai.
IVAD-authored source code, including the CNN and YOLO exploratory scripts and website implementation,
is licensed under GNU AGPL-3.0-only. See LICENSE. Complete corresponding project source and build
instructions are available at https://github.com/leonlaiyc/industrial-visual-anomaly-detection.
Third-party libraries and model weights retain their own licences. VisA images and derivative figures
retain CC BY 4.0; the project source licence does not replace their attribution requirements.
No pretrained or trained model weights, raw dataset or executable inference service are distributed.


## VisA dataset (CC BY 4.0)

This project uses the **VisA (Visual Anomaly) dataset**, `pcb1`, `pcb2` and `pcb3` subsets (and `pcb4` for the
separate exploratory study in `exploratory/yolo_pcb4/`), released by
Amazon Science under the Creative Commons Attribution 4.0 International license
(<https://creativecommons.org/licenses/by/4.0/>; dataset licence file:
<https://github.com/amazon-science/spot-diff/blob/main/LICENSE-DATASET>).

> Zou, Y., Jeong, J., Pemula, L., Zhang, D., Dabeer, O. *SPot-the-Difference Self-Supervised
> Pre-training for Anomaly Detection and Segmentation.* ECCV 2022. arXiv:2207.14315.
> Source: <https://github.com/amazon-science/spot-diff>

- **The dataset itself is not redistributed.** `ivad prepare` downloads the official archive from the
  official URL.
- **Derivative images are redistributed in small numbers:**
  - figures under `reports/` (downscaled VisA images, crops, contact sheets, mean images and heat-map /
    outline overlays);
  - website images under `site/static/img/`, including `pcb1_alignment.jpg` (JPEG compression of the
    original PCB1 registration contact sheet) and `pcb4_annotations.jpg` (copy of the PCB4 label audit);
  - the current project sheet `reports/executive-summary-one-page.pdf`, which embeds three genuine figures;
    retired one/two-page briefs in `docs/history/` are historical evidence, not public downloads;
  - `exploratory/yolo_pcb4/results/fig_failures.jpg` (downscaled PCB4 images of missed defects with
    ground-truth outlines) and `exploratory/yolo_pcb4/audit/fig_annotation_check.jpg` (downscaled PCB4 defect
    images with the YOLO training boxes and ground-truth outlines);
  - `exploratory/yolo_pcb4/audit/fig_false_alarms_supplement.jpg` (six downscaled PCB4 normal images
    falsely flagged at the original frozen thresholds, with recorded-score captions and no predicted boxes;
    supplementary visualization produced after the original evaluation);
  - when a built website (`site/dist/`) or visual-QA screenshots of it are included in a review snapshot,
    they show the same derivative images.
- **Changes made:** board registration (rotation/translation), cropping, resizing, averaging (mean images),
  and overlaid anomaly heat maps, scoring-region outlines, board-mask tints, ground-truth defect outlines and
  bounding boxes derived from the ground-truth masks.
  Scores and labels shown next to images are this project's outputs, not part of the dataset.
- `manifests/visa_1cls_pcb{1,2,3}.csv` contain the corresponding rows of the official split file
  `split_csv/1cls.csv` from the spot-diff repository (Apache-2.0 code repository; upstream SHA-256 recorded
  in `manifests/visa_1cls_*.provenance.json`). `manifests/split_pcb{1,2,3}.csv` add this project's
  fit/calib/holdout roles and per-image SHA-256.
- **No endorsement** of this project by the dataset authors or by Amazon is implied.
- The CC BY 4.0 licence covers the VisA images and their derivatives. It does not apply to this project's
  own source code or documentation (see README → *Data, weights and licensing*).

## Ultralytics (exploratory study only)

- The exploratory study in `exploratory/yolo_pcb4/` trained YOLOv8s and YOLO11s with the `ultralytics`
  package (AGPL-3.0) and its COCO-pretrained weights, installed in a separate local environment. Neither the
  package nor any weights are part of this project's dependencies or redistributed here; only this
  project's own scripts and recorded per-image scores are included.

## torchvision and pretrained weights

- torchvision (BSD-3-Clause) is used as a library.
- `Wide_ResNet50_2_Weights.IMAGENET1K_V1` is downloaded at run time from download.pytorch.org and is
  not redistributed. torchvision documents that pretrained models may carry their own terms derived
  from their training data. ImageNet's terms of access limit use to non-commercial research and
  educational purposes. See `docs/handoff.md` → *Pretrained weights*.
