Views
No views yet
YOLO 26클래스 점수 ──► z_rgb (2) ──┐
├─► concat(4) ─► MLP ─► softmax ─► 유리 / 투명 플라스틱
NIR 18ch ─► SpectralEncoder ─► z_n ┘ × gate1from predict import FusionPredictor
2
3p = FusionPredictor()
4r = p.predict(nir=[...18개...], yolo_class="페트병", yolo_conf=0.926)
5print(r["label"]) # '유리' 또는 '투명 플라스틱'r = p.predict(nir=[...], yolo_scores=[0, 0, ..., 0.96, 0])python selftest.pyyolo_scores | 26차원 클래스별 confidence. 또는 yolo_class(id/한글이름) + yolo_conf |
nir | AS7265x 18채널. 파장 오름차순이 기본. CSV 컬럼 순서면 nir_order="csv" |
A410 B435 C460 D485 E510 F535 G560 H585 R610 I645 S680 J705 T730 U760 V810 W860 K900 L9401{"label": "투명 플라스틱", "confidence": 0.802,
2 "prob": {"유리": 0.198, "투명 플라스틱": 0.802},
3 "z_rgb": {...}, "z_n": [...], "gate": 0.0551,
4 "yolo_class": "페트병", "yolo_in_scope": True}yolo_in_scope=False 는 YOLO 가 유리/PET 어느 쪽으로도 확정하지 못한 경우로,
NIR 만으로 판정한 것이다.| 구간 | 정확도 |
|---|---|
| YOLO 가 유리/PET 로 확정한 46건 | 0.957 |
| YOLO 무검출 등 6건 | 0.667 |
| 전체 52건 | 0.923 |
yolo_in_scope=False 로 걸러진다.
분광 표준화 통계는 수집 환경에 의존하므로, 다른 리그에서는 해당 환경의 통계를 다시 구해야 한다.predict.py 추론 API
model.py 신경망 정의
fusion_model.pt 가중치 + 표준화 통계 + 클래스 매핑
selftest.py 자체 점검
testdata/ 샘플 2개 (유리 1, 투명 플라스틱 1) + 기대 출력
_retrain/ 재학습 코드 (원본 데이터 별도 필요)
_docs/ 구축 경과 기록