2017-08-22 4 views
0

En travaillant avec ImageNet Resnet-50 dans Caffe, la prédiction donne un vecteur en 1000 dimensions. Existe-t-il un moyen facile de traduire les indices de ce vecteur en identifiants de synset Wordnet 3.0? Par exemple, que le 415: «boulangerie, bakeshop, boulangerie» est «n02776631»?Index ImageNet pour les syntets Wordnet 3.0

Je note qu'une question similaire, Get ImageNet label for a specific index in the 1000-dimensional output tensor in torch, a été interrogé sur une étiquette lisible par l'homme associé à l'index et une réponse pointée un mappage index à étiquette disponible dans cette URL: https://gist.github.com/maraoz/388eddec39d60c6d52d4

De la label lisible par un humain Je suppose qu'il est possible de trouver l'identifiant de synset Wordnet via le mappage label-to-synset sur cette page: http://image-net.org/challenges/LSVRC/2015/browse-synsets mais je me demande si c'est déjà fait?

Répondre

0

La cartographie semble être simple avec les données de https://gist.github.com/maraoz/388eddec39d60c6d52d4 et http://image-net.org/challenges/LSVRC/2015/browse-synsets:

{0: {'id': '01440764-n', 
    'label': 'tench, Tinca tinca', 
    'uri': 'http://wordnet-rdf.princeton.edu/wn30/01440764-n'}, 
1: {'id': '01443537-n', 
    'label': 'goldfish, Carassius auratus', 
    'uri': 'http://wordnet-rdf.princeton.edu/wn30/01443537-n'}, 
2: {'id': '01484850-n', 
    'label': 'great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias', 
    'uri': 'http://wordnet-rdf.princeton.edu/wn30/01484850-n'}, 
... 

Voir https://gist.github.com/fnielsen/4a5c94eaa6dcdf29b7a62d886f540372 pour le fichier complet.

Je n'ai pas vérifié complètement si ce mappage est réellement correct.

Cette cartographie a été construit avec:

import ast 
from lxml import html 
import requests 
from pprint import pprint 

url_index = ('https://gist.githubusercontent.com/maraoz/' 
      '388eddec39d60c6d52d4/raw/' 
      '791d5b370e4e31a4e9058d49005be4888ca98472/gistfile1.txt') 
url_synsets = "http://image-net.org/challenges/LSVRC/2014/browse-synsets" 

index_to_label = ast.literal_eval(requests.get(url_index).content) 
elements = html.fromstring(requests.get(url_synsets).content).xpath('//a') 

label_to_synset = {} 
for element in elements: 
    href = element.attrib['href'] 
    if href.startswith('http://imagenet.stanford.edu/synset?wnid='): 
     label_to_synset[element.text] = href[42:] 

index_to_synset = { 
    k: { 
     'id': label_to_synset[v] + '-n', 
     'label': v, 
     'uri': "http://wordnet-rdf.princeton.edu/wn30/{}-n".format(
      label_to_synset[v]) 
    } 
    for k, v in index_to_label.items()} 


pprint(index_to_synset)