日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Tencent/tencent-ml-images Readme说明

發布時間:2023/12/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Tencent/tencent-ml-images Readme说明 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Tencent/tencent-ml-images說明

  • 包括
  • 更新
  • 依賴
  • 數據
    • 下載
    • 圖片來源
    • 分類的語義層次
    • 標注
    • 統計
  • 訓練
    • 下載圖片URL
    • 怎么樣處理下載中的無效URL?
    • 對于來自OpenImages的URL
    • 準備TFRecord文件
    • ML_Images預訓練
    • 在ImageNet的調優
    • 檢查點
    • 單標簽圖像分類
    • 特征抽取
    • 結果
    • 試用

git地址: https://github.com/Tencent/tencent-ml-images/tree/297ee9fb1e4b4b3f72e97e183e4589bd0ee024c1

包括

  • ML-Images:最大的開源多標簽圖像數據集,包括17,609,752 訓練和88,739 個驗證URL,覆蓋了11,166類別
  • ResNet-101模型:在ML-Images上訓練得到,通過遷移學習在ImageNet上的top1準確率達到了 80.73%

更新

  • 提供了清晰的通過URL下載原始圖片的說明
  • 單標簽圖像分類的demo:可以用提供的checkpoint來預測任何類型的圖

依賴

  • Linux
  • Python2.7
  • Tensorflow >= 1.6.0

數據

下載

  • train_urls.txt https://pan.baidu.com/s/1cx6n6CYNqegKVq1O2YVCJg
  • val_urls.txt https://pan.baidu.com/s/1BfipStD2PY7MAMRoZa9ecg
    train_url.txt格式如下:
https://c4.staticflickr.com/8/7239/6997334729_e5fb3938b1_o.jpg 3:1 5193:0.9 5851:0.9 9413:1 9416:1 https://c2.staticflickr.com/4/3035/3033882900_a9a4263c55_o.jpg 1053:0.8 1193:0.8 1379:0.8

URL 分類號:置信度
分類號從0開始,具體信息:https://github.com/Tencent/tencent-ml-images/blob/master/data/dictionary_and_semantic_hierarchy.txt

圖片來源

圖片URL來自ImageNet和Open Images

  • Part1:來自整個ImageNet數據庫, 10,706,941訓練, 50,000驗證,覆蓋 10,032 個分類
  • Part2:來自Open Images 6,902,811訓練, 38,739驗證,覆蓋 1,134個唯一分類(一些其他的分類已經和ImagNet的分類進行了合并)
    最終,ML_Images包括 17,609,752訓練, 88,739驗證,覆蓋 11,166分類

分類的語義層次

根據WordNet建立了 11,166 個分了ide語義層次。整個語義機構包括4個獨立的樹,根節點分別為thing, matter, object ,physical object and atmospheric phenomenon.從根節點到葉子節點最長語義路徑為16, 平均長度為7.47.

標注

由于ML_Image的URL來自Image net 和Open Images, ML-Images 的標記基于以上兩個庫。Open Image的原始標記由谷歌授權 under CC BY-4.0.
所以,使用一下步驟構建新的 ML-Images.標注

  • 來自OpenImages的 6,902,811訓練URL,清除了保留的 1,134 分類之外的標簽
  • 根據構建的 11,166 分類的語義樹,根據祖先類增加 ML-Images中所有圖片的標注:如果一個URL被標注為i類,那么所有i類的祖先分類也被標注于這個URL
  • 使用來自OpenImages的 6,902,811 個訓練URL和1134個輸出訓練了一個ResNet-101模型。使用這個模型,對來自ImageNet的 10,756,941個但標注圖片進行預測打標。所以,使用來自ImageNet的 10,032 categories分類和來自OpenImages的 1,134個分類得到了一個歸一化共生矩陣。我們可以確定強共現類對。例如,類別i和類別j是強共生的,那么如果如果一張圖片被標注為i類,那么也將被標注為j類。

ML_Images中所有URL的標注結果存入了train_urls.txt和val_urls.txt

統計


Trainable class為超過100張訓練圖片的類

每個類的圖片數和訓練集中標注數量的額柱狀圖如下表:

訓練

下載圖片URL

完整的 train_urls.txt 非常大, 使用小文件 train_urls_tiny.txt 顯示下下載流程

cd data ./download_urls_multithreading.sh

生成子文件夾 data/images 來存放下載的jpeg圖片, rain_im_list_tiny.txt保存了圖片列表和對應的標注

怎么樣處理下載中的無效URL?

對于ImageNet的URL
train_urls.txt文件的前 10,706,941行和 val_urls.txt文件的前 50,000 行是來自ImageNet的圖片。這些URL很大一部分已經過期。但ImageNet網站提供了原始圖片(參考 http://image-net.org/download)也就是每張圖片ID和原始URL的對應關系。因此,我們提供了兩個新文件,用來告知我們數據庫中每個URL的image ID,包括 train_urls_and_index_from_imagenet.txt和 val_urls_and_index_from_imagenet.txt。

  • train_urls_and_index_from_imagenet.txt https://pan.baidu.com/s/145sGwH8Tv3RVwXZ95DuN4w
  • val_urls_and_index_from_imagenet.txt https://pan.baidu.com/s/1p5sQrMUbfxiG94OjHj9-mQ
    格式如下:
n03874293_7679 http://image24.webshots.com/24/5/62/52/2807562520031003846EfpYGc_fs.jpg 2964:1 2944:1 2913:1 2896:1 2577:1 1833:1 1054:1 1041:1 865:1 2:1 n03580845_3376 http://i02.c.aliimg.com/img/offer/22/85/63/27/9/228563279 3618:1 3604:1 1835:1 1054:1 1041:1 865:1 2:1

每一行,第一列是ImageNet中的image ID,,其他列是對應的URL和標注。然后,獲得在 ML-Images中使用的圖片,選按照如下兩步:

  • 從 http://image-net.org/download) 下載整個ImageNet數據庫的原始圖片,和關聯URL文件 List of all image URLs of Fall 2011 Release (參考 http://image-net.org/download-imageurls))
  • 利用 train_urls_and_index_from_imagenet.txt和val_urls_and_index_from_imagenet.txt 挑出用在 ML-Images中的圖片

對于來自OpenImages的URL

train_urls.txt的后 6,902,811 行和val——urls.txt的后 38,739 行是來自OpenImage的,這些URL多數是有效的,可以直接使用提供的 download_urls_multithreading.sh腳本進行下載。

準備TFRecord文件

用多線程模塊來生成tfrecords。首先切分 train_im_list_tiny.txt成多個小文件,然后保存他們到子文件夾 data/image_lists/

cd data ../tfrecord.sh

多個tfrecords(命名為 x.tfrecords)會保存到 data/tfrecords/

ML_Images預訓練

訓練前,需要把訓練和驗證的 tfrecords分別移到 data/ml-images/train和 data/ml-images/val。然后,

./example/train.sh

注意:我們這里只提供了單節點單GPU框架的訓練代碼,但我們真實的ML-Image是基于一個內部的分布式框架(未發布)。你可以按照 distributed tensorFlow.修改訓練代碼偽分布式框架

在ImageNet的調優

首先要下載ImageNet( ILSVRC2012)數據庫,并按照 tfrecord.sh.轉為tfrecord文件。然后,你可以使用在ML-Images上預訓練的checkpoint來調優在Imagenet的模型ResNet-101

./example/finetune.sh

檢查點

  • ckpt-resnet101-mlimages(https://pan.baidu.com/s/1166673BNWuIeWxD7lf6RNA):在 ML-Images上預訓練的
  • ckpt-resnet101-mlimages-imagenet(https://pan.baidu.com/s/1UE7gavcVznYVA5NZ-GFAvg):在 ML-Images上預訓練,且在 ImageNet (ILSVRC2012)上調優過的

下載上面的兩個checkpoint并把他們放在 checkpoints/目錄下,可以用他們來抽取特征。

單標簽圖像分類

這里我們提供了一個單標簽圖像分類的demo,使用的是 ckpt-resnet101-mlimages-imagenet 檢查點的

./example/image_classification.sh

預測結果保存到了 label_pred.txt。如果想識別其他圖片,可以修改 data/im_list_for_classification.txt 文件來包含這些圖片的路徑。

特征抽取

./example/extract_feature.sh

結果

不同checkpoint的 ResNet-101在 ImageNet (ILSVRC2012)驗證集上的結果總結如下表:

注意:

  • 非特殊情況,訓練或調優的圖片大小為224*224
  • 在ImageNet上的調優從224到299的意思是前期調優迭代中的圖片大小是224224, 后期迭代為299299
  • Top-1 acc on Val 224 表示在224*224驗證圖片上的top1準確率

試用

已下載模型:
/home/tencent-ml
ckpt-resnet101-mlimages-imagenet.zip和ckpt-resnet101-mlimages.zip

解壓到:/home/tencent-ml/tencent-ml-images-master/checkpoints下

  • 單標簽圖像分類
    這里我們提供了一個單標簽圖像分類的demo,使用的是 ckpt-resnet101-mlimages-imagenet 檢查點的
./example/image_classification.sh 內容如下,修改相應的模型路徑,并刪除image_classification.py文件開頭的注釋,否則會報錯: python2.7 image_classification.py \--images=data/im_list_for_classification.txt \--top_k_pred=5 \ --model_dir=checkpoints/ckpt-resnet101-mlimages-imagenet/resnet.ckpt \--dictionary=data/imagenet2012_dictionary.txt

預測結果保存到了 label_pred.txt。內容如下:

如果想識別其他圖片,可以修改 data/im_list_for_classification.txt 文件來包含這些圖片的路徑。

  • 特征抽取
./example/extract_feature.sh # 修改相關參數 # 刪除extract_feature.py文件開頭的注釋部分,否則會報錯 #!/usr/bin/bash set -xPYTHON=python RESNET=101 DATA_FORMAT='NCHW' GPUID=0 CKPT="./checkpoints/ckpt-resnet101-mlimages-imagenet/resnet.ckpt"$PYTHON extract_feature.py \--resnet_size=$RESNET \--data_format=$DATA_FORMAT \--visiable_gpu=${GPUID} \--pretrain_ckpt=$CKPT \--result=test.txt \--images=data/im_list_for_classification.txt

此外還需修改extract_feature.py文件中94行:
ffeat.write(sp[0] + “\t” + sp[1] + “\t” + " ".join([str(x) for x in list(feats)]) + ‘\n’)為
ffeat.write(sp[0] + “\t” + " ".join([str(x) for x in list(feats)]) + ‘\n’)
否則會報數組越界錯誤
運行后,生成結果文件test.txt

每行一張圖片,一組該圖片對應的特征。

總結

以上是生活随笔為你收集整理的Tencent/tencent-ml-images Readme说明的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。