細粒度影像辨識[1] 是視覺感知學習的重要研究主題,在智慧新經濟和工業互聯網等方面具有巨大應用價值,且在諸多現實場景已有廣泛應用… 鑑於當前領域內尚缺乏該方面的深度學習開源工具庫,南京理工大學魏秀參教授團隊用時近一年時間,開發、打磨、完成了Hawkeye——細粒度圖像識別深度學習開源工具庫,供相關領域研究人員和工程師參考使用。本文是對 Hawkeye 的詳細介紹。
1.什麼是 Hawkeye 庫
Hawkeye 是一個基於 PyTorch 的細粒度圖像識別深度學習工具庫,專為相關領域研究人員和工程師設計。目前,Hawkeye 包含多種代表性範式的細粒度識別方法,包括“基於深度濾波器”、“基於注意力機制”、“基於高階特徵交互”、“基於特殊損失函數”、“基於網路數據”以及其他方法。
Hawkeye 專案程式碼風格良好,結構清晰易讀,可拓展性較強。對於剛接觸細粒度影像辨識領域的相關人員而言,Hawkeye 較易上手,便於其理解細粒度影像辨識的主要流程和代表性方法,同時也方便在本工具庫上快速實現自己的演算法。此外,我們也提供了庫中各模型的訓練範例程式碼,自研方法也可依範例快速適配並新增至 Hawkeye 中。
Hawkeye 開源程式庫連結:https://github.com/Hawkeye-FineGrained/Hawkeye
2.Hawkeye 支援的模型及方法
Hawkeye 目前支援細粒度圖像辨識中主要學習範式的共16 個模型與方法,如下:
基於深度濾波器
- S3N (ICCV 2019)
- Interp-Parts (CVPR 2020)
- ProtoTree (CVPR 2021)
基於注意力機制
- #OSME MAMC (ECCV 2018)
- MGE-CNN (ICCV 2019)
- APCNN (IEEE TIP 2021)
#基於高階特徵交互作用
- BCNN (ICCV 2015)
- CBCNN (CVPR 2016)
- Fast MPN-COV (CVPR 2018)
基於特殊損失函數
- Pairwise Confusion (ECCV 2018)
- API-Net (AAAI 2020)
- CIN (AAAI 2020)
基於網路資料
Peer-Learning (ICCV 2021)
其他方法
NTS-Net (ECCV 2018)
CrossX (ICCV 2019)
DCL (CVPR 2019)
3.安裝Hawkeye
##安裝依賴
使用conda 或pip 安裝相關依賴:- Python 3.8
- PyTorch 1.11.0 或 higher
- torchvison 0.12.0 or higher
- numpy
- yacs
- tqdm
準備資料集
我們提供了8 個常用的細粒度辨識資料集及最新的下載連結:- CUB200: https://data.caltech.edu/records/65de6-vp158/files/CUB_200_2011.tgz
- Stanford Dog: http://vision.stanford.edu/aditya86/ImageNetDogs/images.tar
- Stanford Car: http://ai.stanford.edu/~jkrause/car196/car_ims.tgz
- FGVC Aircraft: https://www.robots.ox.ac.uk/~vgg/ data/fgvc-aircraft/archives/fgvc-aircraft-2013b.tar.gz
- iNat2018: https://ml-inat-competition-datasets.s3.amazonaws.com/2018/train_val2018.tar.gz
- WebFG-bird: https://web-fgvc-496-5089-sh.oss-cn-shanghai.aliyuncs.com/web-bird.tar.gz
- #WebFG-car : https://web-fgvc-496-5089-sh.oss-cn-shanghai.aliyuncs.com/web-car.tar.gz
- WebFG-aircraft: https://web-fgvc- 496-5089-sh.oss-cn-shanghai.aliyuncs.com/web-aircraft.tar.gz
cd Hawkeye/data wget https://data.caltech.edu/records/65de6-vp158/files/CUB_200_2011.tgz mkdir bird && tar -xvf CUB_200_2011.tgz -C bird/我們提供了上述8 個資料集的meta-data 文件,能夠匹配庫中的FGDataset 方便地加載訓練集和測試集,訓練集和測試集為各個資料集官方提供的劃分。使用不同資料集時,只需在實驗的 config 檔案中修改 dataset 配置即可,方便切換。 在實驗的config 檔案中修改dataset 配置,範例如下:
dataset: name: cub root_dir: data/bird/CUB_200_2011/images meta_dir: metadata/cub4.使用Hawkeye 訓練模型對於Hawkeye 支援的每個方法,我們都提供了單獨的訓練模板和配置。例如訓練APINet 只需一指令:
python Examples/APINet.py --config configs/APINet.yaml實驗的參數都在對應的yaml 檔案中,可讀性高、便於修改,如:
experiment: name: API_res101 2# 实验名称 log_dir: results/APINet # 实验日志、结果等的输出目录 seed: 42# 可以选择固定的随机数种子 resume: results/APINet/API_res101 2/checkpoint_epoch_19.pth# 可以从训练中断的 checkpoint 中恢复训练 dataset: name: cub# 使用 CUB200 数据集 root_dir: data/bird/CUB_200_2011/images # 数据集中图像放置的路径 meta_dir: metadata/cub# CUB200 的 metadata 路径 n_classes: 10 # 类别数,APINet 需要的数据集 n_samples: 4# 每个类别的样本数 batch_size: 24# 测试时的批样本数 num_workers: 4# Dataloader 加载数据集的线程数 transformer:# 数据增强的参数配置 image_size: 224# 图像输入模型的尺寸 224x224 resize_size: 256# 图像增强前缩放的尺寸 256x256 model: name: APINet# 使用 APINet 模型,见 model/methods/APINet.py num_classes: 200# 类别数目 load: results/APINet/API_res101 1/best_model.pth # 可以加载训练过的模型参数 train: cuda: [4]# 使用的 GPU 设备 ID 列表,[] 时使用 CPU epoch: 100# 训练的 epoch 数量 save_frequence: 10# 自动保存模型的频率 val_first: False# 可选是否在训练前进行一次模型精度的测试 optimizer: name: Adam# 使用 Adam 优化器 lr: 0.0001# 学习率为 0.0001 weight_decay: 0.00000002 scheduler: # 本例使用自定义组合的 scheduler,由 warmup 和余弦退火学习率组合而成,见 Examples/APINet.py name: '' T_max: 100# scheduler 的总迭代次数 warmup_epochs: 8# warmup 的 epoch 数 lr_warmup_decay: 0.01# warmup 衰减的比例 criterion: name: APINetLoss# APINet 使用的损失函数,见 model/loss/APINet_loss.py實驗的主程式Examples/APINet .py 中的訓練器APINetTrainer 繼承自Trainer,不需要再寫複雜的訓練流程、logger、模型保存、設定載入等程式碼,只用按需修改部分模組即可。我們也提供了訓練階段的多個 hook 鉤子,可以滿足一些方法特別的實現方式。 日誌檔案、模型權重檔案、訓練使用的訓練程式碼以及當時的設定檔都會保存在實驗輸出目錄 log_dir 中,備份配置和訓練程式碼便於日後對不同實驗進行比較。
更多詳細範例可參考專案連結中的具體資訊:https://github.com/Hawkeye-FineGrained/Hawkeye
以上是基於PyTorch、易上手,細粒度影像辨識深度學習工具庫Hawkeye開源的詳細內容。更多資訊請關注PHP中文網其他相關文章!

AI增強食物準備 在新生的使用中,AI系統越來越多地用於食品製備中。 AI驅動的機器人在廚房中用於自動化食物準備任務,例如翻轉漢堡,製作披薩或組裝SA

介紹 了解Python函數中變量的名稱空間,範圍和行為對於有效編寫和避免運行時錯誤或異常至關重要。在本文中,我們將研究各種ASP

介紹 想像一下,穿過美術館,周圍是生動的繪畫和雕塑。現在,如果您可以向每一部分提出一個問題並獲得有意義的答案,該怎麼辦?您可能會問:“您在講什麼故事?

繼續使用產品節奏,本月,Mediatek發表了一系列公告,包括新的Kompanio Ultra和Dimenty 9400。這些產品填補了Mediatek業務中更傳統的部分,其中包括智能手機的芯片

#1 Google推出了Agent2Agent 故事:現在是星期一早上。作為AI驅動的招聘人員,您更聰明,而不是更努力。您在手機上登錄公司的儀表板。它告訴您三個關鍵角色已被採購,審查和計劃的FO

我猜你一定是。 我們似乎都知道,心理障礙由各種chat不休,這些chat不休,這些chat不休,混合了各種心理術語,並且常常是難以理解的或完全荒謬的。您需要做的一切才能噴出fo

根據本週發表的一項新研究,只有在2022年製造的塑料中,只有9.5%的塑料是由回收材料製成的。同時,塑料在垃圾填埋場和生態系統中繼續堆積。 但是有幫助。一支恩金團隊

我最近與領先的企業分析平台Alteryx首席執行官安迪·麥克米倫(Andy Macmillan)的對話強調了這一在AI革命中的關鍵但不足的作用。正如Macmillan所解釋的那樣,原始業務數據與AI-Ready Informat之間的差距


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Atom編輯器mac版下載
最受歡迎的的開源編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

WebStorm Mac版
好用的JavaScript開發工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。