以 ImageNet 預訓練的 InceptionV3(PyTorch)產生類別活化圖(Class Activation Map,CAM)的命令列(主控台)範例,可在 Windows 11 與 Ubuntu Linux 24.04 執行。程式會對影像進行分類,印出機率最高的前 k 個 ImageNet 類別,並輸出一張圖:最上方是原始影像,下方則是每個類別各一張 CAM 熱力圖疊加結果,用來呈現網路判斷時關注的區域。內附範例影像與權重,可以直接執行。
[資料夾結構]
- CLAUDE.md / AGENT.md:程式規格文件,兩個檔案內容完全相同。
- CHANGELOG.md:版本變更紀錄。
- copyright.txt:版權聲明。
- data/cam/:cat_dog.png(範例影像)與 imagenet_class_index.json(1000 個類別的對照表)。
- model/cam/:inception_v3_google-1a9a5a14.pth(ImageNet 權重);產生的 CAM 圖檔({name}_cam.png)也會存在這裡。
- src/pretrainedmodels/:內含的 Cadene pretrainedmodels 套件。
- tool/tools.py:共用工具函式。
- src/:原始程式碼、啟動腳本與本說明文件。
- venv/:Python 虛擬環境,由步驟 01 建立。
[操作步驟及說明]
1. 01_venv_create.bat / 01_venv_create.sh
刪除舊的 venv/,建立全新的虛擬環境,並安裝 src/requirements.txt 中的相依套件。若 pip 安裝失敗,會直接中止並顯示錯誤訊息。
2. 02_venv_activate.bat / 02_venv_activate.sh
啟用虛擬環境。Linux 請以 source 方式執行:source src/02_venv_activate.sh。
3. 03_cam.bat / 03_cam.sh
對影像進行分類,並把 CAM 圖檔存到 model/cam/。
4. 99_venv_clear.bat / 99_venv_clear.sh
刪除 venv/ 虛擬環境資料夾。
[Python 程式進入點]
src/cam.py
- --source data/cam/cat_dog.png:輸入的影像路徑
- --top 3:要顯示的類別數量
- --weights model/cam/inception_v3_google-1a9a5a14.pth:使用的權重檔
- --labels data/cam/imagenet_class_index.json:類別名稱對照表
- --output model/cam/{name}_cam.png:輸出的圖檔路徑
- --show:另開視窗顯示結果(選用,需要有桌面環境)
程式會印出機率最高的前 k 個類別名稱與機率值;輸出的圖檔由原始影像,加上每個類別各一張以 jet 色彩對應的熱力圖疊加而成。
[快速開始]
Windows 11
src\01_venv_create.bat
src\03_cam.bat
Ubuntu 24.04
bash src/01_venv_create.sh
bash src/03_cam.sh
只要把 --source 指向自己的影像,就能分析其他圖片,例如:src\03_cam.bat --source path\to\photo.jpg --top 5。
[參考資料]
- CAM 介紹文章(Medium,打開黑盒子 Open black boxes):medium.com/jarvis-toward-intelligence
- pretrainedmodels(內含的原始專案):github.com/Cadene/pretrained-models.pytorch
- Rethinking the Inception Architecture(InceptionV3 論文):arxiv.org/abs/1512.00567
- PyTorch 安裝說明:pytorch.org/get-started/locally
這個 SDK 內建於 MYAI Studio 人工智慧開發工具。
單獨購買價格:3,000元,永久授權,單一 SDK 授權,單機授權,一次下載,一年電子郵件範例諮詢服務。如果是軟體客製化問題,請購買我們的客製化顧問服務點數。