Markdownで表示

Florence-2

Florence-2はMicrosoftの視覚基盤モデルであり、固定された検出ヘッドを通す代わりにタスクトークンで指示します。LibreYOLOはこれをオープンボキャブラリ物体検出器としてラップします。推論時にクラス一覧を指定してください。

タスク
detection
サイズ
base, large at 768 px
インストール
pip install libreyolo
サポートティア
姉妹ティア、v以降。独自のファクトリと契約を持つ、独立した製品インターフェースです。
アップストリーム
MicrosoftのFlorence-2、MIT。論文ソース
ライセンス
コード:MIT、重み:MIT。商用利用

インストール

Florence-2はLibreYOLOの検出器として使うVLM階層に属します。これは独自のファクトリーを持ち、チェックポイントベースのファミリーとは別の製品面です。vlm 追加パッケージが必要です。

bash
pip install "libreyolo[vlm]"

推論

重みは初回使用時にHugging Faceからダウンロードされ、ローカルにキャッシュされます。LibreYOLOは元の microsoft/Florence-2-* リポジトリではなく、florence-communityが再アップロードしたチェックポイントをダウンロードします。その理由は「ライセンス」を参照してください。

Python
from libreyolo import LibreVLM, SAMPLE_IMAGE model = LibreVLM("florence-2-base")model.set_classes(["car", "person", "traffic light"])result = model.predict(SAMPLE_IMAGE, save=True) for box in result.boxes:    print(box.cls, box.conf, box.xyxy)
動画
from libreyolo import LibreVLM model = LibreVLM("florence-2-base")model.set_classes(["car", "person", "traffic light"]) # ライブラリが受け付ける任意のソース ファイル フォルダー URL Webカメラ番号# RTSPストリームまたは.streams一覧for result in model.predict("clip.mp4", stream=True, save=True):    print(len(result.boxes))

このファミリーは LibreYOLO() ではなく、LibreVLM() ファクトリーから読み込みます。VLMファミリーはチェックポイントローダーを宣言しないため、他のモデルページで説明しているファイル接尾辞による振り分けはここでは適用されません。set_classes() はFlorence-2に画像内で探させるボキャブラリを設定します。この設定は維持されるため、再設定するまで、その後のすべての predict() または track() 呼び出しに適用されます。返される Results は他のファミリーと同じ形状の boxes を持ちますが、すべての検出結果に同じ仮信頼度が設定されます。そのため、conf によるフィルタリングは順位付けではなく、すべてを残すかすべてを除外するかのどちらかです。また、iou は効果がありません。Florence-2のラッパーは解析済みタスクトークンの出力から、重複除去を行わずに検出一覧を直接構築するためです。Florence-2はチャットテンプレートではなく <OPEN_VOCABULARY_DETECTION> タスクトークンで動作するため、ここで chat()NotImplementedError を発生させます。LibreYOLOのCLIはこの階層に対応しておらず、libreyolo predict model=... 形式はありません。ソース、ストリーミング、結果の処理については、推論を参照してください。

バリアント

サイズはFlorence-2-baseとFlorence-2-largeの2つで、どちらも768 pxです。LibreVLM("florence-2-base") または LibreVLM("florence-2-large") で読み込みます。LibreYOLOは両者の精度を比較するベンチマークを公開していません。

LibreYOLOはFlorence-2の学習、検証、エクスポートを行いません。この階層のすべてのファミリーで、train()val()export()NotImplementedError を発生させます(上のサポート階層を参照)。組み込みのカスタムボキャブラリが必要な場合は、アップストリームでFlorence-2をファインチューニングし、得られた重みを読み込んでください。すべての検出結果が同じ仮信頼度を持つため、COCO形式の検証を行う代わりに、predict() の出力を目視で確認してください。

ライセンス

ダウンロードする特定の重みについて、Hugging Faceリポジトリのライセンスを確認してください。LibreYOLO orgの各チェックポイントにはライセンスが付与されており、同じファミリー内でも常に同一とは限りません。そのリポジトリが正式な情報源です。以下の概要は、このページを最後に検証した時点で適用されていた内容を示します。

これは関連するライセンスの説明であり、法的助言ではありません。商用上重要な場合は、自分でライセンスを読み、専門家の助言を受けてください。

原著作物
Florence-2, Microsoft
アップストリームのライセンス
MIT
アップストリームのソース
huggingface.co/microsoft/Florence-2-large
LibreYOLOのコード
MIT
重み
MIT、著者が配布。LibreYOLOではホストもミラーもしていません。
解釈
MIT is a permissive license, so these weights can be used in commercial and closed-source products, provided the copyright notice and license text travel with any copy you redistribute. LibreYOLO downloads the florence-community re-upload of the checkpoint (florence-community/Florence-2-base and florence-community/Florence-2-large) rather than the original microsoft/Florence-2-* repositories, because those ship with custom remote code that no longer loads on current transformers releases. florence-community republishes the same weights through the native Florence2ForConditionalGeneration class, also under MIT, so nothing about the license changes.

引用

@article{xiao2023florence,
  title={Florence-2: Advancing a unified representation for a variety of vision tasks},
  author={Xiao, Bin and Wu, Haiping and Xu, Weijian and Dai, Xiyang and Hu, Houdong and Lu, Yumao and Zeng, Michael and Liu, Ce and Yuan, Lu},
  journal={arXiv preprint arXiv:2311.06242},
  year={2023}
}

著者によるhuggingface.co/microsoft/Florence-2-large#bibtexの引用ブロックからコピーしています。

LibreYOLO v1.5.0で検証済みです。このページのサポート表、チェックポイント、ベンチマーク値は手作業で記述したものではなく、リリース済みライブラリと公開済みの重みから生成されています。