CUDA のバージョンに応じて適切なバージョンdにsインストールしてください。ここでは説明しない。多くの記事はこの世の中に存在している。
installation instructions. パケージのインストール
pip install 'git+https://github.com/apple/ml-aim.git#subdirectory=aim-v1'
pip install 'git+https://github.com/apple/ml-aim.git#subdirectory=aim-v2'
MLXに対応も可能だそうです
MLXとはMLX is an array framework for machine learning on Apple silicon, brought to you by Apple machine learning research.
MLX backend support for research and experimentation on Apple silicon. To enable MLX support, simply run:
pip install mlx
transformers のインストール
pip install transformers
cuda version check
nvidia-smi
or
nvcc --version
install tqdm tqdm in prepare_feature.py to visualize the progress of your code.
pip install tqdm
dowonload val2017
wget -c http://images.cocodataset.org/zips/val2017.zip
unzip
cocodataset のimageをモデル化
python3 aimv2-large-patch14-224/prepare_features.py
aimv2-large-patch14-224/image_search.py の起動のやり方のサンプルコマンド
python3 aimv2-large-patch14-224/image_search.py /media/syun/ssd02/python_learning/apple/qiita_project_AIMv2/test_search_image/gtr.jpg --features /media/syun/ssd02/python_learning/apple/qiita_project_AIMv2/model/coco_features.pt
python3 aimv2-large-patch14-224/image_search.py 類似度入力に使うcocodataset内に存在していない画像 --features /path/model/coco_features.pt
類似度入力に使うcocodataset内に存在していない画像 と /path/model/coco_features.pt はpathに置き換え
AppleのAIMv2でマルチモーダル機能を活用編1「画像領域特徴量の抽出とテキストで画像領域の可視化」の起動コマンド
python3 aimv2-large-patch14-224-lit/image_search_from_text_and_show.py
AppleのAIMv2でマルチモーダル機能を活用編2:「YOLOとの連携で特定物体をテキストで検索」 検索したい画像は適切なフォルダーに置くこと yolo用ライブラリのインストール
pip install ultralytics
python3 aimv2-large-patch14-224-lit/main.py
Qiita Day6 AppleのAIMv2でマルチモーダル機能を活用編3:YOLOとweb camera でリアルタイムでテキストで特定物体を検索
python3 aimv2-large-patch14-224-lit/main_camera.py
Qiita Day7 AppleのAIMv2でマルチモーダル機能を活用編4:YOLOとAIMv2を量子化して効率化を目指す
python3 aimv2-large-patch14-224-lit/main_quantization.py
AppleのAIMv2でマルチモーダル機能を活用編5:YOLOとAIMv2をGPUで高速化しリアルタイム処理へ
python3 aimv2-large-patch14-224-lit/main_try_speedUP_day8.py
Day9 AppleのAIMv2でマルチモーダル機能を活用編6:リアルタイムWebカメラ推論の挑戦
python3 aimv2-large-patch14-224-lit/main_try_speedUP.py
Apple/aimv2 for-qiita-article
以下に、モデルのサイズが小さい順に並べたリストを示します。名前の中にある情報(large → huge → 1B → 3B など)や入力解像度(224 → 336 → 448)を基準にしています。
apple/aimv2-large-patch14-224
Update at 2024/11/26 aimv2-large-patch14-224の場所→apple/aimv2-large-patch14-224-distilledapple/aimv2-large-patch14-224-lit
Update at 2024/11/29 aimv2-large-patch14-224-litの場所→apple/aimv2-large-patch14-nativeapple/aimv2-large-patch14-336apple/aimv2-large-patch14-336-distilledapple/aimv2-large-patch14-448apple/aimv2-huge-patch14-224apple/aimv2-huge-patch14-336apple/aimv2-huge-patch14-448apple/aimv2-1B-patch14-224apple/aimv2-1B-patch14-336apple/aimv2-1B-patch14-448apple/aimv2-3B-patch14-224apple/aimv2-3B-patch14-336apple/aimv2-3B-patch14-448
- 解像度 (
224 < 336 < 448) が小さいものを優先。 - モデルサイズ (
large < huge < 1B < 3B) を優先。