Loading…
Loading…
ヒカマニ系画像板 hikabooru のコアタグを判定する5クラス分類器です。 画像を渡すと各クラスの確率を返します。コミュニティの既存タグを教師に、SigLIP2 を LoRA で微調整した小型モデル(約2.9Mパラメータ追加)で、GPU 1枚で動きます。
v2(現行) でスコープをヒカマニ文化圏のコアに絞り直しました(初版はタグの投稿数トップで機械的に選んでいたため、無関係な作品・キャラが混在していました)。
| クラス | 対応タグ | 学習枚数 |
|---|---|---|
hikamani |
ヒカマニ | 5,702 |
hikakin |
ヒカキン | 4,540 |
masuo |
ゲイマスオ | 2,610 |
seikin |
セイキン | 821 |
hikaniichi |
ヒカニチ | 218 |
git clone https://huggingface.co/juujika/hikabooru-person-tagger
cd hikabooru-person-tagger
pip install -r tools/requirements.txt
python tools/classify.py photo.jpg --top 5
出力例(実測):
$ python tools/classify.py photo.jpg --top 3
photo.jpg
hikakin 0.9946
seikin 0.0096
hikamani 0.0023
$ python tools/classify.py hikamani_post.jpg --top 2
hikamani_post.jpg
hikamani 0.9634
hikaniichi 0.0365
python tools/classify.py a.jpg b.pngpython tools/classify.py a.jpg --jsonfrom tools.classify import load_model, classify_images
proc, vision, head, classes, dev = load_model()
results = classify_images(["photo.jpg"], proc, vision, head, classes, dev)
print(results[0]["hikakin"]) # 0.9946
| クラス | AUC | 備考 |
|---|---|---|
| masuo | 0.986 | |
| hikamani | 0.951 | |
| hikakin | 0.924 | |
| seikin | 0.892 | |
| hikaniichi | 0.865 | 学習218枚と少なく参考値 |
自動タグ付けに使う場合は、クラスごとに較正した高しきい値で運用してください。
実運用で使ったP95水準の閾値例: hikakin 0.957 / hikamani 0.960 / masuo 0.344 / seikin 0.903
— クラスごとにスコアの尺度が大きく違うので、生の0.9固定では使えません。
tools/train_from_manifest.py を使います。データは再配布していません。
# manifest.jsonl: 1行 = {"path": "img.jpg", "labels": ["hikamani"]}
python tools/train_from_manifest.py --manifest manifest.jsonl --out out/ --batch 6 --epochs 2
google/siglip2-base-patch16-384