Rumah  >  Artikel  >  Peranti teknologi  >  Berdasarkan PyTorch, mudah digunakan, perpustakaan alat pembelajaran mendalam pengecaman imej halus Hawkeye ialah sumber terbuka

Berdasarkan PyTorch, mudah digunakan, perpustakaan alat pembelajaran mendalam pengecaman imej halus Hawkeye ialah sumber terbuka

WBOY
WBOYke hadapan
2023-04-12 20:43:031613semak imbas

Pengecaman imej berbutir halus [1] ialah topik penyelidikan penting dalam pembelajaran persepsi visual Ia mempunyai nilai aplikasi yang hebat dalam ekonomi baharu yang pintar dan Internet industri, dan telah digunakan secara meluas dalam banyak senario dunia sebenar... Dalam. melihat kekurangan maklumat dalam bidang semasa Sebagai perpustakaan alat sumber terbuka untuk pembelajaran mendalam dalam bidang ini, pasukan Profesor Wei Xiushen dari Universiti Sains dan Teknologi Nanjing menghabiskan hampir setahun membangun, menggilap dan menyiapkan Hawkeye - sumber terbuka perpustakaan alat untuk pengecaman imej halus pembelajaran mendalam untuk rujukan oleh penyelidik dan jurutera dalam bidang yang berkaitan. Artikel ini adalah pengenalan terperinci kepada Hawkeye.

1. Apakah perpustakaan Hawkeye

Hawkeye ialah perpustakaan alat pembelajaran mendalam pengecaman imej yang terperinci berdasarkan PyTorch, direka khas untuk penyelidik dan jurutera dalam bidang berkaitan. Pada masa ini, Hawkeye menyertakan kaedah pengecaman terperinci daripada pelbagai paradigma perwakilan, termasuk "berdasarkan penapis kedalaman", "berdasarkan mekanisme perhatian", "berdasarkan interaksi ciri tertib tinggi", "berdasarkan fungsi kehilangan khas", " berdasarkan data rangkaian" dan kaedah lain.

Gaya kod projek Hawkeye bagus, strukturnya jelas dan mudah dibaca, serta kebolehskalaan yang kukuh. Bagi mereka yang baru dalam bidang pengecaman imej berbutir halus, Hawkeye lebih mudah untuk bermula, menjadikannya lebih mudah bagi mereka untuk memahami proses utama dan kaedah perwakilan pengecaman imej berbutir halus, dan juga memudahkan mereka untuk cepat melaksanakan algoritma mereka sendiri pada perpustakaan alat ini. Selain itu, kami juga menyediakan kod contoh latihan untuk setiap model di perpustakaan Kaedah yang dibangunkan sendiri juga boleh disesuaikan dengan cepat dan ditambah kepada Hawkeye mengikut contoh.

Pautan perpustakaan sumber terbuka Hawkeye: https://github.com/Hawkeye-FineGrained/Hawkeye

2 Model dan kaedah yang disokong oleh Hawkeye

Hawkeye kini menyokong baik- imej berbutir Terdapat sejumlah 16 model dan kaedah paradigma pembelajaran utama dalam pengiktirafan, seperti berikut:

Berdasarkan penapis dalam

  • S3N (ICCV 2019)
  • Interp-Parts (CVPR 2020)
  • ProtoTree (CVPR 2021)

Berdasarkan mekanisme perhatian

    OSME+ MAMC (ECCV 2018)
  • MGE-CNN (ICCV 2019)
  • APCNN (IEEE TIP 2021)

Berdasarkan tinggi -pesanan interaksi ciri

    BCNN (ICCV 2015)
  • CBCNN (CVPR 2016)
  • MPN-COV pantas (CVPR 2018)

Berdasarkan fungsi kehilangan khas

    Kekeliruan Berpasangan (ECCV 2018)
  • API-Net (AAAI 2020)
  • CIN (AAAI 2020)

Berdasarkan data rangkaian

Peer-Learning (ICCV 2021)

Kaedah lain

NTS-Net (ECCV 2018)

CrossX (ICCV 2019)

DCL (CVPR 2019)

3. Pasang Hawkeye

Gunakan conda atau pip untuk memasang dependencies yang berkaitan:

    Python 3.8
  • PyTorch 1.11.0 atau lebih tinggi
  • torchvison 0. .0 atau lebih tinggi
  • numpy
  • yacs
  • tqdm
Klon repositori:

git klon https:// github.com/Hawkeye-FineGrained/Hawkeye.gitcd Hawkeye

Sediakan set data

Kami menyediakan 8 set data pengecaman butiran halus yang biasa digunakan dan pautan muat turun terkini:

    CUB200 : https://data.caltech.edu/records/65de6-vp158/files/CUB_200_2011.tgz
  • Stanford Dog: http://vision.stanford.edu /aditya86/ImageNetDogs/images.tar
  • Kereta Stanford: http://ai.stanford.edu/~jkrause/car196/car_ims.tgz
  • Pesawat FGVC: 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- kereta: https://web-fgvc-496-5089-sh.oss-cn-shanghai.aliyuncs.com/web-car.tar.gz
  • WebFG -pesawat: https://web-fgvc -496-5089-sh.oss-cn-shanghai.aliyuncs.com/web-aircraft.tar.gz
Mula-mula, muat turun set data ( mengambil CUB200 sebagai contoh):

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/
Kami menyediakan fail meta-data untuk 8 set data di atas, yang boleh memadankan FGDataset dalam perpustakaan untuk memuatkan set latihan dan set ujian dengan mudah dan set ujian adalah bahagian rasmi yang disediakan oleh setiap set data. Apabila menggunakan set data yang berbeza, anda hanya perlu mengubah suai konfigurasi set data dalam fail konfigurasi percubaan untuk memudahkan penukaran.

Ubah suai konfigurasi set data dalam fail konfigurasi percubaan Contoh adalah seperti berikut:

dataset:
name: cub
root_dir: data/bird/CUB_200_2011/images
meta_dir: metadata/cub
4 Gunakan Hawkeye untuk melatih model

Untuk setiap kaedah yang disokong oleh Hawkeye, kami Mengasingkan templat latihan dan fail konfigurasi disediakan. Sebagai contoh, latihan APINet hanya memerlukan satu arahan:

python Examples/APINet.py --config configs/APINet.yaml
Parameter percubaan semuanya dalam fail yaml yang sepadan, yang sangat mudah dibaca dan mudah diubah suai, seperti:

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​​
Parameter utama percubaan Jurulatih APINetTrainer dalam program Examples/APINet.py diwarisi daripada Trainer Anda tidak perlu menulis proses latihan yang rumit, logger, penjimatan model, pemuatan konfigurasi dan kod lain ubah suai beberapa modul mengikut keperluan. Kami juga menyediakan berbilang cangkuk dalam fasa latihan, yang boleh memenuhi pelaksanaan khas beberapa kaedah.

Fail log, fail berat model, kod latihan yang digunakan untuk latihan dan fail konfigurasi pada masa itu akan disimpan dalam log_dir direktori output percubaan Menyandarkan konfigurasi dan kod latihan memudahkan perbandingan percubaan yang berbeza pada masa hadapan .

Untuk contoh yang lebih terperinci, sila rujuk maklumat khusus dalam pautan projek: https://github.com/Hawkeye-FineGrained/Hawkeye

Atas ialah kandungan terperinci Berdasarkan PyTorch, mudah digunakan, perpustakaan alat pembelajaran mendalam pengecaman imej halus Hawkeye ialah sumber terbuka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:51cto.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam