SAM3の入門

はじめに

sam3を試す。 https://github.com/facebookresearch/sam3

問題、課題

特になし。

解決

request to use model

このモデルは使用するためにリクエストと承認が必要なので実施する。

https://huggingface.co/facebook/sam3

install

# create virtual enviroment
venv_name=work_venv  # Pick a name for your environment
uv venv $venv_name --python 3.12  # This will create a folder named $venv_name in your working dir
source $venv_name/bin/activate

# refer to https://github.com/self-improving/shared-environment, install and setup
##2 Install PyTorch with CUDA support:
uv pip install torch==2.7.0 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126

##3Clone the repository and install the package:
pip install -U pip setuptools wheel
git clone https://github.com/facebookresearch/sam3.git
cd sam3
pip install -e .

test envrioment

# refer to https://github.com/facebookresearch/sam3/blob/main/examples/sam3_image_predictor_example.ipynb
$ cat test.py
import os
import sys
import matplotlib.pyplot as plt
from PIL import Image

# Use GPU 1 by default (zero-based index). Override by setting CUDA_VISIBLE_DEVICES.
os.environ.setdefault("CUDA_VISIBLE_DEVICES", "1")

# Allow running against the local sam3 repo without installing the package.
REPO_ROOT = os.path.dirname(__file__)
SAM3_REPO = os.path.join(REPO_ROOT, "sam3")
sys.path.insert(0, SAM3_REPO)

import sam3
from sam3.model_builder import build_sam3_image_model
from sam3.model.sam3_image_processor import Sam3Processor
from sam3.visualization_utils import plot_results
# Load the model
sam3_root = os.path.join(os.path.dirname(sam3.__file__), "..")
bpe_path = os.path.join(sam3_root, "sam3", "assets", "bpe_simple_vocab_16e6.txt.gz")
model = build_sam3_image_model(bpe_path=bpe_path)
processor = Sam3Processor(model, confidence_threshold=0.5)

if len(sys.argv) < 2:
    raise SystemExit("Usage: python3 test.py /path/to/image")

image_path = sys.argv[1]
image = Image.open(image_path)
inference_state = processor.set_image(image)

processor.reset_all_prompts(inference_state)
inference_state = processor.set_text_prompt(state=inference_state, prompt="shoe")

img0 = Image.open(image_path)
plot_results(img0, inference_state)
output_path = os.path.join(os.path.dirname(__file__), "plot_results.png")
plt.savefig(output_path, bbox_inches="tight")
print(f"saved: {output_path}")

実行する

$ python3 test.py assets/images/test_image.jpg 
found 12 object(s)
saved: /home/inoue_reo/research/sam3/plot_results.png

出力結果を確認し、 https://github.com/facebookresearch/sam3/blob/main/examples/sam3_image_predictor_example.ipynb と同様の画像を得ることが出来た

参考

ClickUpとRooCodeのMCP連携

はじめに

ClickUpとRooCodeを連携する

問題、課題

  • MCP Client:RooCode
  • MCP Server:ClickUp

解決

以下を参考にMCP Server の設定を行う。

developer.clickup.com

MCPで連携を確認する前に認証を行う。 一度、以下のコマンドで起動し、指定されたURL:http://127.0.0.1:30432/wait-for-auth にアクセスして認証を完了する。

$ npx -y mcp-remote https://mcp.clickup.com/mcp
...
[33615] Querying: http://127.0.0.1:30432/wait-for-auth
...

Roo CodeでMCPの設定を行う。

設定と認証後、MCPのCapability(Tools・Resources・Prompts)が認識されていることを確認する。

RooCodeのクライアントから呼び出せることを確認する。

参考

developer.clickup.com

Rork, ExpoでAndroidアプリのバイブコーディング

はじめに

Androidのアプリをバイブコーディングで作成する。

環境

問題、課題

Androidのアプリをバイブコーディングで作成する。

説明

Rorkについて

Rorkはクロスプラットフォームモバイルアプリ開発フレームワークです。JavaScriptを使用してAndroidアプリを開発することができる。

Expoと組み合わせて使用されることが多い。

expoについて

Expoはリアクトネイティブの開発プラットフォームで、AndroidiOSでモバイルアプリを構築できる。

解決

Rorkでバイブコーディングする。

AndroidでExpoをインストール後、ExpoでQRコードを読み取り、アプリの挙動を確認する。

参考

rork.com

expo.dev

Hydra ハンズオン

はじめに

hydra.cc

Hydra(Facebook/Meta が開発した Python 用設定管理フレームワーク)をハンズオンしてみる。

環境

問題、課題

Hydraの感覚を掴む。

解決

1. Hydra のインストール

まずはインストールします。

$ pip install hydra-core

2. ファイル作成

$ mkdir hydra-min && cd hydra-min

config.yaml を作成する。

$ cat << 'EOF' > config.yaml
name: world
EOF

app.py を作成する。

$ cat << 'EOF' > app.py
import hydra
from omegaconf import DictConfig

@hydra.main(config_path=".", config_name="config", version_base=None)
def main(cfg: DictConfig):
    print(f"Hello, {cfg.name}!")

if __name__ == "__main__":
    main()
EOF

3. 実行する

#verify
$ python3 app.py
Hello, world!

$ python3 app.py name=Japan
Hello, Japan!

参考

hydra.cc

hydra.cc

RooCodeを用いたMCPサーバの動作確認

はじめに

RooCodeを用いたMCPサーバの動作確認

環境

問題、課題

初めてなのでよくわからないのでメモする。

解決

uvを使って、仮装環境作成する。

# 仮装環境作成
uv venv
source .venv/bin/activate

# MCPサーバーのPython SDKをインストール
uv add "mcp[cli]"

MCPサーバは以下である。

/home/azureuser/mcp-server/hellomcp/main.py

from mcp.server.fastmcp import FastMCP


mcp = FastMCP("HelloMCP")


@mcp.tool()
def add(a: int, b: int) -> int:
    """Add two numbers"""
    return a + b


@mcp.resource("greeting://{name}")
def get_greeting(name: str) -> str:
    """Get a personalized greeting"""
    return f"Hello, {name}!"


@mcp.prompt()
def translation_ja(txt: str) -> str:
    """Translating to Japanese"""
    return f"Please translate this sentence into Japanese:\n\n{txt}"

Roo Codeで使用する、mcp_settings.jsonの設定は以下である

{
  "mcpServers": {
    "HelloMCP": {
      "command": "/home/azureuser/mcp-server/hellomcp/.venv/bin/python",
      "args": [
        "/home/azureuser/mcp-server/hellomcp/main.py"
      ],
      "env": {},
      "alwaysAllow": [],
      "disabled": false
    }
  }
}

Roo CodeでMCPサーバの設定をする。 以下の小節を参考に実施した。

qiita.com

RooCodeで試してみる。 resourceの入力例

greeting://Taro