今回は機械学習(ディープラーニング)の画像分類の学習用によく利用されている「ImageNet(ILSVRC2012)データセット 」の分類名を日本語変換するためのPythonクラスを用意してみます。
はじめに
tf.keras.applications.VGG16等で提供されている画像分類の事前学習済ウェイト付属モデルは、学習データにImageNetのILSVRC2012データセットという1000個の物体名(クラス名)を抜き出したものを使っているみたいです。
ILSVRC2012データセット?と思ってこちらの記事を見ると。
引用すると・・。
mageNetのデータセットを題材とした画像認識のコンペティションILSVRC(ImageNet Large Scale Visual Recognition Challenge)が毎年開催されており2012年のコンペで使われたのがILSVRC2012データセットです。
クラス分類(classification)用のデータセットとして有名で「ImageNetデータで学習済み」と謳っている事前学習済モデルのほとんどはこのILSVRC2012データセットで学習したモデルだと思います。
なるほど・・です。
英語物体名(クラス名)の日本語化辞書(JSON形式)
学習済モデルで1000もの物体名の識別ができるのは、うれしいのですが、やはり英語しか表示されないと、若干デモのうけが悪いです。
ということで。
日本語に変換するクラスをつくってみました。
to_japanese_ilsvrc2012.py
import re class Ilsvrc2012Japanese(): def __init__(self): self.jdic = { "bassoon": "ファゴット", "oboe": "オーボエ", "flute": "フルート", "bow": "弓", "ski": "スキー", "sax": "サックス", "crane": "クレーン", "hairslide": "髪留め", "letteropener": "ペーパーナイフ", "chainsaw": "チェーンソウ", "quill": "羽ペン", "hook": "フック", "stretcher": "ストレッチャー", "corkscrew": "コルク抜き", "fountainpen": "万年筆", "rifle": "ライフル", "electricguitar": "エレキギター", "paintbrush": "刷毛", "whistle": "ホイッスル", "pole": "ポール", "ballpoint": "ボールペン", "syringe": "注射器", "panpipe": "パンパイプ", "hatchet": "手斧", "chain": "鎖", "scabbard": "鞘", "cleaver": "包丁", "rubbereraser": "消しゴム", "missile": "ミサイル", "balancebeam": "平均台", "screwdriver": "ドライバー", "necklace": "ネックレス", "reel": "リール", "racket": "ラケット", "rule": "ルール", "projectile": "発射体", "banjo": "バンジョー", "swing": "スイング", "flagpole": "旗竿", "lipstick": "口紅", "sunglass": "サングラス", "drumstick": "ドラムスティック", "assaultrifle": "アサルトライフル", "binder": "バインダー", "broom": "ほうき", "envelope": "封筒/エンベロープ", "plunger": "ラバーカップ(トイレで使うスッポン)", "totempole": "トーテムポール", "warplane": "軍用機", "nail": "爪", "cassette": "カセット", "mountaintent": "登山用テント", "drum": "ドラム", "pick": "ピック", "acousticguitar": "アコースティックギター", "harmonica": "ハーモニカ", "microphone": "マイクロフォン", "sunglasses": "サングラス", "umbrella": "傘", "lighter": "ライター", "screw": "スクリュー", "plow": "すき", "notebook": "ノート", "redwine": "赤ワイン", "trombone": "トロンボーン", "wreck": "残骸・難破船など", "parachute": "パラシュート", "powerdrill": "パワードリル", "radio": "無線", "hammer": "ハンマー", "mortarboard": "モルタルボード", "crutch": "松葉杖", "horizontalbar": "鉄棒", "foldingchair": "折り畳み椅子", "harddisc": "ハードディスク", "trimaran": "3つの船体をつないだボート(三脚艇)", "shovel": "シャベル", "schooner": "スクーナー", "muzzle": "銃口", "wing": "翼", "gondola": "ゴンドラ", "harp": "ハープ", "violin": "バイオリン", "ladle": "おたま(調理道具)", "stupa": "仏舎利塔", "buckle": "バックル", "canopener": "缶切り", "loupe": "ルーペ", "walkingstick": "歩行用杖", "drillingplatform": "ボーリング基地", "accordion": "アコーディオン", "analogclock": "アナログ時計", "spatula": "へら", "swab": "綿棒", "stage": "ステージ", "cliff": "崖", "carpenterskit": "大工道具", "pirate": "海賊", "wallet": "財布", "gar": "ガー(魚)", "bolotie": "ボータイ(ネクタイ)", "submarine": "潜水艦", "bowtie": "蝶ネクタイ", "pencilbox": "筆箱", "centipede": "ムカデ", "vacuum": "真空", "dragonfly": "トンボ", "puck": "パック", "airship": "飛行船", "torch": "トーチ", "digitalwatch": "デジタル腕時計", "abaya": "アバヤ(頭からつま先まで覆うゆったりしたローブ)", "tobaccoshop": "煙草屋", "knot": "結び目", "remotecontrol": "リモコン", "website": "ウエブサイト", "matchstick": "マッチ棒", "ocarina": "オカリナ", "bearskin": "熊皮", "pencilsharpener": "鉛筆削り", "guillotine": "ギロチン", "digitalclock": "デジタル時計", "bobsled": "ボブスレー", "dogsled": "犬ぞり", "paddle": "パドル", "harvester": "収穫機", "aircraftcarrier": "空母", "snorkel": "スノーケル", "beeeater": "蜂食鳥", "sleepingbag": "寝袋", "cornet": "コルネット", "cellulartelephone": "携帯電話", "safetypin": "安全ピン", "sandal": "サンダル", "facepowder": "フェースパウダー", "parallelbars": "平行棒", "dock": "ドック(船着き場)", "cinema": "映画", "whitestork": "鳥(シュバシコウ/コウノトリ)", "theatercurtain": "緞帳(映画館のカーテン)", "tileroof": "瓦屋根", "doormat": "ドアマット", "chainmail": "鎖帷子", "canoe": "カヌー", "containership": "コンテナ船", "blackstork": "鳥(ナベコウ/コウノトリ)", "jean": "ジーンズ", "militaryuniform": "軍服", "maillot": "マイヨ", "maraca": "マラカス", "prayerrug": "礼拝用マット", "fireboat": "消防艇", "kite": "凧", "tennisball": "テニスボール", "punchingbag": "パンチングバッグ", "spinylobster": "イセエビ", "purse": "財布", "marimba": "マリンバ", "packet": "パケット", "modem": "モデム", "mailbag": "郵袋", "gong": "ゴング", "wig": "かつら", "thresher": "脱穀機", "tractor": "トラクター", "mousetrap": "ネズミ捕り", "ibex": "アイベックス(ヤギ)", "trafficlight": "信号機", "lawnmower": "芝刈り機", "woodenspoon": "木製スプーン", "hamper": "妨げる", "spaceshuttle": "スペースシャトル", "chime": "チャイム", "hay": "干し草", "spindle": "スピンドル", "damselfly": "わがままに", "tank": "タンク", "laptop": "ノートパソコン", "switch": "スイッチ", "winebottle": "ワインボトル", "trailertruck": "トレーラートラック", "revolver": "リボルバー", "crayfish": "ザリガニ", "featherboa": "羽根の襟巻", "wallclock": "壁時計", "bulbul": "電球", "toucan": "オオハシ", "airliner": "旅客機", "lakeside": "湖畔", "scorpion": "サソリ", "academicgown": "アカデミックガウン", "cello": "チェロ", "strainer": "ストレーナー", "birdhouse": "巣箱", "cowboyhat": "カウボーイハット", "frenchhorn": "フレンチホルン", "nematode": "線虫", "towtruck": "レッカー車", "breakwater": "防波堤", "rockingchair": "ロッキングチェア", "schipperke": "スキッパーキ(犬)", "loudspeaker": "拡声器", "streetsign": "交通標識", "plane": "飛行機", "fireengine": "消防車", "go-kart": "ゴーカート", "padlock": "南京錠", "cassetteplayer": "カセット・プレーヤー", "cannon": "大砲", "snowmobile": "スノーモービル", "stethoscope": "聴診器", "clumber": "クランバー", "barbell": "バーベル", "sussexspaniel": "サセックス・スパニエル(犬)", "carton": "カートン", "coucal": "クーカル", "pretzel": "プレッツェル", "lifeboat": "救命ボート", "maypole": "メイポール(スェーデンの祭りで使うポール)", "catamaran": "船(双胴船/カタマラン)", "bikini": "ビキニ", "balloon": "バルーン", "hairspray": "ヘアスプレー", "buckeye": "バックアイ", "croquetball": "クロケットのボール", "housefinch": "メキシコマシコ(鳥)", "tripod": "三脚", "cloak": "マント", "beerbottle": "ビール瓶", "hand-heldcomputer": "携帯情報端末", "bandaid": "バンドエイド", "scoreboard": "スコアボード", "weasel": "イタチ", "sealyhamterrier": "シーリハムテリア(犬)", "tick": "ダニ", "barrow": "手押し車", "jinrikisha": "人力車", "alp": "アルプ", "commonnewt": "スベイモリ(イモリ)", "norwichterrier": "ノーリッチテリア(犬)", "cradle": "ゆりかご", "ambulance": "救急車", "brittanyspaniel": "ブリタニースパニエル(犬)", "solardish": "ソーラーディッシュ(パラボラ)", "alligatorlizard": "ゲルホノタス(アシナシトカゲ)", "suspensionbridge": "吊り橋", "magneticcompass": "方位磁針", "studiocouch": "3人掛けソファ", "spottedsalamander": "ギボシサンショウウオ", "kingsnake": "キングスネーク", "scotchterrier": "スコティッシュ・テリア(犬)", "velvet": "ベルベット", "brassiere": "ブラジャー", "stole": "ストール", "combinationlock": "組み合わせロック", "iron": "鉄", "wool": "ウール", "sombrero": "ソンブレロ", "fryingpan": "フライパン", "long-hornedbeetle": "カミキリムシ", "seashore": "海岸", "boathouse": "ボートハウス", "mountainbike": "マウンテンバイク", "yawl": "ヨール(小型帆船)", "baldeagle": "白頭ワシ", "thimble": "指ぬき", "thatch": "かやぶき", "americanlobster": "アメリカ人", "bandedgecko": "コレオニー(トカゲモドキ)", "lumbermill": "製材所", "bookjacket": "ブックカバー", "kingcrab": "タラバガニ", "albatross": "アルバトロス", "oystercatcher": "オイスターキャッチャー", "bathingcap": "スイムキャップ", "beacon": "ビーコン", "tapeplayer": "カセットプレイヤー", "cockroach": "ゴキブリ", "chocolatesauce": "チョコレートソース", "abacus": "そろばん", "ibizanhound": "イビザンハウンド(犬)", "spoonbill": "スプーンビル", "handblower": "ハンドブロワー", "pooltable": "ビリヤード台", "bellcote": "鐘楼", "germanshepherd": "ジャーマンシェパード(犬)", "labradorretriever": "ラブラドール・レトリバー(犬)", "cuirass": "キュイラス(紅土)", "bottlecap": "瓶のキャップ", "halftrack": "半トラック", "mouse": "マウス", "clog": "下駄", "goldenretriever": "ゴールデンレトリバー(犬)", "shield": "シールド", "borzoi": "ボルゾイ(犬)", "unicycle": "一輪車", "grasshopper": "バッタ", "tablelamp": "電気スタンド", "perfume": "香水", "eft": "eft", "ant": "蟻", "speedboat": "スピードボート", "tricycle": "三輪車", "racer": "レーサー", "pier": "桟橋", "jigsawpuzzle": "ジグソーパズル", "welshspringerspaniel": "ウェルシュ・スプリンガー・スパニエル(犬)", "mask": "マスク", "chest": "胸", "barn": "納屋", "jersey": "ジャージー", "vulture": "ハゲタカ", "australianterrier": "オーストラリアン・テリア(犬)", "throne": "王位/王座/王様が座るような豪華な椅子", "baseball": "野球", "monastery": "修道院", "swimmingtrunks": "海パン", "cowboyboot": "カウボーイブーツ", "quilt": "キルト", "dumbbell": "ダンベル", "holster": "ホルスター", "liner": "ライナー", "snowplow": "除雪車", "grandpiano": "グランドピアノ", "forklift": "フォークリフト", "appenzeller": "アッペンツェル", "steeldrum": "スチールドラム", "breastplate": "胸当て", "gown": "ガウン", "papillon": "パピヨン", "shoeshop": "靴屋", "windsortie": "ウィンザー・タイ(ネクタイ)", "gordonsetter": "ゴードンセッター", "agama": "トカゲ(アガマ)", "toaster": "トースター", "barnspider": "オニグモ", "eskimodog": "エスキモードッグ(犬)", "menu": "メニュー", "runningshoe": "ランニングシューズ", "hognosesnake": "ヘビ(ホングノーズスネーク)", "promontory": "岬", "irishwolfhound": "アイリッシュウルフハウンド(犬)", "cdplayer": "cdプレーヤー", "kuvasz": "クーバース(犬)", "tray": "トレイ", "firescreen": "ファイアースクリーン", "scale": "定規", "viaduct": "高架橋", "bernesemountaindog": "バーニーズ・マウンテン・ドッグ(犬)", "shoppingcart": "ショッピングカート", "admiral": "提督", "dalmatian": "ダルメシアン", "passengercar": "乗用車", "binoculars": "双眼鏡", "spacebar": "スペースキー", "four-poster": "四柱", "irishsetter": "犬(アイリッシュセッター)", "waterbottle": "ウォーターボトル", "ptarmigan": "雷鳥", "pickelhaube": "衛兵の兜", "sock": "靴下", "skimask": "目出し帽", "sweatshirt": "トレーナー", "golfball": "ゴルフボール", "cardigan": "カーディガン", "hip": "お尻", "file": "ファイル", "rugbyball": "ラグビーボール", "steelarchbridge": "鉄製アーチ橋", "corn": "コーン", "wire-hairedfoxterrier": "ワイアー・フォックス・テリア(犬)", "cab": "タクシー", "wok": "中華鍋", "typewriterkeyboard": "タイプライターキーボード", "bakery": "ベーカリー", "printer": "プリンター", "bannister": "階段などの手すり/バニスター", "wardrobe": "ワードローブ", "macaw": "鳥(コンゴウインコ)", "waffleiron": "ワッフル焼き型", "goldfinch": "鳥(ゴールドフィンチ)", "recreationalvehicle": "rv車", "barracouta": "魚(バラコータ/バラクーダ)", "handkerchief": "ハンカチ", "valley": "谷", "bordercollie": "犬(ボーダーコリー)", "englishsetter": "イングリッシュ・セター(犬)", "greaterswissmountaindog": "大きいスイスの水玉", "norfolkterrier": "ノーフォーク・テリア(犬)", "hotdog": "ホットドッグ", "restaurant": "レストラン", "nightsnake": "ヘビ(ナイトスネーク)", "oxcart": "牛車", "otterhound": "カワウソ", "groom": "新郎", "monitor": "モニター", "kneepad": "膝パッド", "germanshort-hairedpointer": "ジャーマン・ショートヘアー・シェパード(犬)", "showercurtain": "シャワーカーテン", "rockcrab": "ヨーロッパ・イチョウ・カニ", "electricray": "電車", "popbottle": "ポップなボトル", "junco": "鳥(ユキヒメドリ)", "coil": "コイル", "honeycomb": "ハニカム", "groundbeetle": "オサムシ(昆虫)", "neckbrace": "ネックブレス(ギプス)", "refrigerator": "冷蔵庫", "mailbox": "メールボックス", "palace": "宮殿", "englishspringer": "イングリッシュ・スプリンガー・スパニエル(犬)", "groenendael": "ベルジアン・シェパード・ドッグ・グローネンダール(犬)", "rhinocerosbeetle": "カブトムシ", "mink": "ミンク", "irishterrier": "アイリッシュ・テリア(犬)", "hometheater": "ホームシアター", "mosque": "モスク", "joystick": "ジョイスティック", "christmasstocking": "クリスマスの靴下", "suit": "スーツ", "pillow": "枕", "toyshop": "玩具屋", "black-footedferret": "クロアシイタチ", "dishwasher": "食器洗い機", "pot": "ポット", "ballplayer": "野球選手", "chickadee": "鳥(チカディー)", "airedale": "犬(エアデール)", "oscilloscope": "オシロスコープ", "cricket": "クリケット", "hourglass": "砂時計", "brambling": "アトリ(鳥)", "crosswordpuzzle": "クロスワードパズル", "beaker": "ビーカー", "volcano": "火山", "europeanfiresalamander": "ファイアサラマンダー", "magpie": "カササギ(鳥)", "doberman": "ドーベルマン(犬)", "castle": "城", "blackandgoldgardenspider": "キマダラコガネグモ", "movingvan": "引っ越しトラック", "apron": "エプロン", "vizsla": "ショートヘアード・ハンガリアン・ビズラ(犬)", "yorkshireterrier": "ヨークシャーテリア(犬)", "convertible": "自動車(コンバーチブル/オープンカー)", "boaconstrictor": "ボアコンストリクター(ヘビ)", "hummingbird": "ハチドリ(鳥)", "lakelandterrier": "レークランド・テリア(犬)", "computerkeyboard": "キーボード", "carousel": "メリーゴーラウンド", "sunscreen": "日焼け止め", "malinois": "ベルジアン・シェパード・ドッグ・マリノア(犬)", "westhighlandwhiteterrier": "ウエスト・ハイランド・ホワイト・テリア(犬)", "mobilehome": "移動住宅", "mantis": "カマキリ", "banana": "バナナ", "loafer": "ローファー", "rotisserie": "ロティサリー(肉をあぶる器具)", "diskbrake": "ディスクブレーキ", "shoppingbasket": "買い物カゴ", "basset": "バセット・ハウンド(犬)", "maze": "迷路", "rottweiler": "ロットワイラー(犬)", "ipod": "ipod", "newfoundland": "ニューファンドランド島", "mitten": "ミトン", "siberianhusky": "シベリアンハスキー(犬)", "steamlocomotive": "蒸気機関車", "collie": "コリー(犬)", "ladybug": "てんとう虫", "sliderule": "計算尺", "coho": "ギンザケ", "ear": "耳", "library": "図書館", "comicbook": "コミックブック", "television": "テレビ", "barrel": "バレル", "icelolly": "アイスキャンディー", "icecream": "アイスクリーム", "sturgeon": "チョウザメ", "africangrey": "ヨウム(鳥)", "grocerystore": "食料品店", "sarong": "サロン", "barometer": "バロメーター", "miniskirt": "ミニスカート", "curly-coatedretriever": "カーリーコーテッド・レトリーバー(犬)", "limousine": "リムジン", "hen-of-the-woods": "キノコ(マイタケ)", "soccerball": "サッカーボール", "sandbar": "砂州", "macaque": "マカク猿", "kelpie": "ケルピー(牧羊犬)", "vestment": "ベスト(祭服)", "freightcar": "貨車", "redshank": "アカアシシギ(鳥)", "thundersnake": "ヘビ(雷蛇)", "streetcar": "路面電車", "bonnet": "ボンネット", "caldron": "大釜", "chainlinkfence": "ダイヤ網の金網", "seasnake": "ウミヘビ", "arabiancamel": "ヒトコブラクダ", "pinwheel": "風車", "desk": "机", "confectionery": "お菓子", "lorikeet": "ヒインコ(鳥)", "bathtub": "バスタブ", "paddlewheel": "パドルホイール(外輪)", "chihuahua": "チワワ(犬)", "lampshade": "ランプシェード", "seaurchin": "うに", "blackwidow": "クロゴケグモ", "jay": "カケス(鳥)", "flatworm": "フラットワーム(扁形動物)", "cocktailshaker": "シェイカー", "crib": "ベビーベッド", "weimaraner": "ワイマラナー(犬)", "bostonbull": "ボストンテリア(犬)", "bulletproofvest": "防弾チョッキ", "basketball": "バスケットボール", "whiptail": "ホイップテイル(トカゲ)", "platerack": "プレート用ラック", "meatloaf": "ミートローフ", "bucket": "バケツ", "screen": "画面", "labcoat": "白衣", "kimono": "着物", "giantschnauzer": "ジャイアントシュナウザー(犬)", "stonewall": "石垣", "orangutan": "オランウータン", "motorscooter": "スクーター", "safe": "安全", "furcoat": "毛皮のコート", "pembroke": "ペンブローク城", "stopwatch": "ストップウォッチ", "hoopskirt": "フープスカート", "chesapeakebayretriever": "チェサピークベイリトリバー(犬)", "isopod": "等脚(ワラジムシ)", "crate": "クレート(木箱)", "hamster": "ハムスター", "ruddyturnstone": "キョウジョシギ(鳥)", "entlebucher": "エントレブッハー・キャトル・ドッグ(犬)", "flat-coatedretriever": "フラットコートリトリーバー(犬)", "cockerspaniel": "イングリッシュ・コッカー・スパニエル(犬)", "polecat": "ヨーロッパケナガイタチ", "photocopier": "コピー機", "italiangreyhound": "グレイハウンド(犬)", "arcticfox": "ホッキョクギツネ", "candle": "キャンドル", "rockpython": "ヘビ(ニシキヘビ)", "spaceheater": "スペースヒーター(暖房器具)", "shoji": "障子", "gardenspider": "キマダラコガネグモ", "scottishdeerhound": "スコティッシュディアハウンド(犬)", "malamute": "アラスカン・マラミュート(犬)", "piggybank": "貯金箱", "ashcan": "ゴミ捨て缶", "gaspump": "ガスポンプ", "sewingmachine": "ミシン", "upright": "アップライト", "blenheimspaniel": "ブレナム・スパニエル(犬)", "irishwaterspaniel": "アイルランドの水辺", "coralfungus": "サンゴのような菌類(シロソウメンタケ科)", "washer": "座金", "conch": "巻き貝", "polaroidcamera": "ポラロイドカメラ", "americanegret": "鳥(ダイサギ)", "japanesespaniel": "狆(チン=犬)", "poncho": "ポンチョ", "vendingmachine": "自動販売機", "gilamonster": "アメリカドクトカゲ", "guineapig": "モルモット", "walkerhound": "ツリーイング・ウォーカー・クーンハウンド(犬)", "beaver": "ビーバー", "pajama": "パジャマ", "church": "教会", "backpack": "バックパック", "capuchin": "猿(オマキザル)", "africanchameleon": "アフリカンカメレオン", "measuringcup": "計量カップ", "ruffedgrouse": "エリマキライチョウ(鳥)", "bookshop": "書店", "slug": "ナメクジ", "dingo": "ディンゴ(タイリクオオカミ)", "cucumber": "きゅうり", "pizza": "ピザ", "dam": "ダム", "englishfoxhound": "イングリッシュ・フォックスハウンド(犬)", "frilledlizard": "エリマキトカゲ", "llama": "ラマ", "indigobunting": "ルリノジコ(鳥)", "soft-coatedwheatenterrier": "ソフトコーテッド・ウィートン・テリア(犬)", "ox": "牛", "gazelle": "ガゼル", "coffeemug": "コーヒーマグカップ", "bib": "よだれかけ", "samoyed": "サモエド(犬)", "vase": "花瓶", "grannysmith": "リンゴ(グラニースミス)", "staffordshirebullterrier": "スタッフォードシャー・ブル・テリア(犬)", "bubble": "バブル", "minibus": "ミニバス", "greatdane": "グレートデーン(犬)", "ping-pongball": "ピンポンボール", "seatbelt": "シートベルト", "saintbernard": "セントバーナード(犬)", "garbagetruck": "ごみ収集車", "cheetah": "チーター", "diningtable": "ダイニングテーブル", "slot": "スロット", "parkbench": "公園のベンチ", "pillbottle": "錠剤瓶", "strawberry": "イチゴ", "borderterrier": "ボーダーテリア(犬)", "minivan": "ミニバン", "indiancobra": "ヘビ(インディアンコブラ)", "pickup": "ピックアップトラック", "schoolbus": "スクールバス", "volleyball": "バレーボール", "showercap": "シャワーキャップ", "butchershop": "精肉店", "wormfence": "ワームフェンス(柵)", "tarantula": "タランチュラ", "dialtelephone": "ダイアル電話", "cup": "カップ", "headcabbage": "キャベツ", "broccoli": "ブロッコリ", "seacucumber": "ナマコ", "hare": "野ウサギ", "bloodhound": "犬(ブラッドハウンド)", "crashhelmet": "バイク用衝撃吸収ヘルメット", "americanalligator": "ワニ(アメリカンアリゲーター)", "pelican": "ペリカン", "beachwagon": "ビーチワゴン", "whitewolf": "白いオオカミ", "toiletseat": "便座", "pomegranate": "ザクロ", "dome": "ドーム", "wolfspider": "オオカミ", "papertowel": "ペーパータオル", "burrito": "ブリトー(食べ物)", "saluki": "サルキ(犬)", "diamondback": "ダイヤモンドバック(バイク)", "whippet": "ウィペット(犬)", "maltesedog": "マルチーズ(犬)", "plate": "プレート", "eel": "うなぎ", "black-and-tancoonhound": "ブラック・アンド・タン・クーンハウンド(犬)", "bicycle-built-for-two": "二人用自転車", "trolleybus": "トロリーバス", "triceratops": "トリケラトプス", "pomeranian": "ポメラニアン(犬)", "meerkat": "ミーアキャット", "oilfilter": "オイルフィルター", "trifle": "トライフル(デザート)", "monarch": "蝶(オオカバマダラ)", "dandiedinmont": "ダンディ・ディンモント・テリア()犬)", "greatpyrenees": "ピレネー山脈", "pedestal": "胸像などの台", "gasmask": "ガスマスク", "tub": "浴槽", "overskirt": "オーバースカート", "rapeseed": "菜種", "lenscap": "レンズキャップ", "oldenglishsheepdog": "オールド・イングリッシュ・シープドッグ(犬)", "pug": "パグ(犬)", "picketfence": "杭柵", "quail": "ウズラ(鳥)", "radiator": "ラジエーター", "toyterrier": "イングリッシュ・トイ・テリア(犬)", "coralreef": "サンゴ礁", "bedlingtonterrier": "ベドリントン・テリア(犬)", "bullettrain": "新幹線", "projector": "プロジェクター", "hen": "鳥(めんどり)", "keeshond": "キースホンド(犬)", "moped": "原付", "spiderweb": "クモの網", "carwheel": "自動車のホイール", "miniatureschnauzer": "ミニチュア・シュナウザー(犬)", "beagle": "ビーグル(犬)", "impala": "インパラ", "microwave": "電子レンジ", "shetlandsheepdog": "シェットランドシープドッグ(犬)", "lacewing": "クサカゲロウ", "spotlight": "スポットライト", "brass": "真鍮", "afghanhound": "アフガンハウンド(犬)", "lotion": "ローション", "barbershop": "理髪店", "leafhopper": "ヨコバイ(バッタ)", "prairiechicken": "ソウゲンライチョウ", "barberchair": "床屋の椅子", "ringnecksnake": "リングネックスネーク(ヘビ)", "redfox": "アカギツネ", "waterjug": "水差し", "timberwolf": "タイリクオオカミ", "prison": "刑務所", "blackswan": "ブラックスワン(鳥)", "redbone": "レッドボーン", "cliffdwelling": "マニトウ遺跡", "desktopcomputer": "デスクトップコンピューター", "odometer": "スピードメーター", "electriclocomotive": "電気自動車", "bittern": "サンカノゴイ(ペリカン科の鳥)", "starfish": "ヒトデ", "gartersnake": "ガーターヘビ", "apiary": "養蜂場", "dishrag": "布巾(お皿拭き)", "horsecart": "馬車", "egyptiancat": "エジプト猫", "sportscar": "スポーツカー", "americanchameleon": "アメリカンカメレオン", "oxygenmask": "酸素マスク", "littleblueheron": "サギ科の鳥(ヒメアカクロサギ)", "rhodesianridgeback": "ローデシアン・リッジバック(犬)", "medicinechest": "薬箱", "watersnake": "蛇", "porcupine": "ヤマアラシ", "siamesecat": "シャム猫", "greywhale": "クジラ(コククジラ)", "stinkhorn": "キノコ(スッポンタケ目)", "stove": "レンジ", "hammerhead": "ハンマーヘッド", "armadillo": "アルマジロ", "carmirror": "カーミラー", "hog": "豚", "eggnog": "エッグノッグ", "badger": "狸", "bassinet": "バシネット", "blackgrouse": "ライチョウ科の鳥(クロライチョウ)", "greatgreyowl": "フクロウ(カラフトフクロウ)", "hornedviper": "ヘビ(サハラツノクサリヘビ)", "basenji": "犬(バセンジー)", "brabancongriffon": "犬(プチ・ブラバンソン)", "brownbear": "ヒグマ", "commoniguana": "イグアナ", "komondor": "犬(コモンドル)", "sidewinder": "ヘビ(ガラガラヘビ)", "dutchoven": "ダッチオーブン", "jacamar": "キツツキ目の鳥(キリハシ)", "yurt": "モンゴル風の小屋(ユルト)", "watertower": "給水塔", "foxsquirrel": "リス(キツネリス)", "marmot": "マーモット(ネズミ目の動物)", "flamingo": "フラミンゴ", "electricfan": "扇風機", "weevil": "ゾウムシ", "trenchcoat": "トレンチコート", "robin": "鳥(ロビン/コマツグミ)", "persiancat": "ペルシャ猫", "lionfish": "ミノカサゴ", "tabby": "猫(トラ猫/ぶち猫)", "partridge": "鳥(ウズラ/ヤマウズラ)", "hartebeest": "ハーテビースト/シカレイヨウ", "three-toedsloth": "ナマケモノ(ミツユビナマケモノ)", "kingpenguin": "ペンギン(皇帝ペンギン)", "reflexcamera": "カメラ(レフレックス型・一眼レフ)", "langur": "猿(ラングール)", "seaslug": "ウミウシ", "briard": "犬(ブリアード)", "mongoose": "マングース", "skunk": "スカンク", "amphibian": "両生類", "sundial": "日時計", "scubadiver": "スキューバダイバー", "chiffonier": "西洋タンス", "tigerbeetle": "昆虫(ハンミョウ/オサムシ)", "nipple": "乳首", "cardigan": "カーディガン", "harvestman": "収穫者", "affenpinscher": "犬(アーフェンピンシャー)", "pineapple": "パイナップル", "snail": "かたつむり", "lycaenid": "蝶(シジミチョウ/アゲハ蝶)", "cock": "コック", "mortar": "モルタル", "coyote": "コヨーテ", "potpie": "ポットパイ(料理)", "footballhelmet": "footballhelmet", "custardapple": "果物(カスタードアップル/バンレイシ)", "toilettissue": "トイレットペーパー", "triumphalarch": "凱旋門", "mashedpotato": "マッシュポテト", "americanstaffordshireterrier": "犬(アメリカン・スタッフォードシャー・テリア)", "echidna": "動物(ハリモグラ/ハリネズミ)", "squirrelmonkey": "猿(リスザル)", "siamang": "猿(フクロテナガザル/テナガザル)", "bathtowel": "バスタオル", "waterouzel": "鳥(カワガラス)", "dungenesscrab": "カニ(ダンジネスクラブ)", "vinesnake": "ヘビ(ムチヘビ)", "bagel": "ベーグル", "silkyterrier": "犬(シルキー・テリア)", "vault": "大型金庫", "europeangallinule": "鳥(セイケイ)", "mexicanhairless": "犬(メキシカンヘアレス)", "miniaturepoodle": "犬(ミニチュア・プードル)", "cairn": "石積み", "sulphur-crestedcockatoo": "鳥(オウム目/キバタン)", "limpkin": "鳥(ツル目/ツルモドキ)", "wildboar": "イノシシ", "golfcart": "ゴルフカート", "toypoodle": "犬(トイプードル)", "bookcase": "書棚", "espresso": "エスプレッソ", "patas": "猿(パタスモンキー)", "howlermonkey": "猿(ホエザル)", "greenhouse": "温室", "goblet": "ゴブレット", "carbonara": "カルボナーラ", "potterswheel": "ろくろ", "goose": "ガチョウ", "orange": "オレンジ", "greenlizard": "トカゲ(ミドリカナヘビ)", "obelisk": "オベリスク(エジプトの記念碑)", "megalith": "巨石", "chimpanzee": "チンパンジー", "hornbill": "鳥(サイチョウ)", "espressomaker": "エスプレッソメーカー", "beerglass": "ビアグラス", "titi": "猿(ティティ)", "radiotelescope": "電波望遠鏡", "standardschnauzer": "犬(スタンダード・シュナウザー)r", "acorn": "どんぐり", "agaric": "寒天", "altar": "祭壇", "leafbeetle": "昆虫(ハムシ)", "norwegianelkhound": "犬(ノルウェジアン・エルクハウンド)", "guacamole": "料理(グアカモーレ/サルサ)", "kerryblueterrier": "犬(ケリー・ブルー・テリア)", "waterbuffalo": "水牛", "bluetick": "犬(ブルーティック・クーンハウンド)", "bouvierdesflandres": "犬(ブービエ・デ・フランダース)", "sulphurbutterfly": "蝶(ワタリオオキチョウ)", "patio": "パティオ(中庭・裏庭)", "miniaturepinscher": "犬(ミニチュア・ピンシャー)", "parkingmeter": "パーキングメーター", "red-breastedmerganser": "鳥(カモ目カモ科/ウミアイサ)", "manholecover": "マンホールのふた", "leonberg": "犬(レオンベルぐ)", "tibetanterrier": "犬(チベタン・テリア)", "angora": "猫(アンゴラ)/アンゴラウサギ", "tigershark": "イタチザメ", "teddy": "テディ(テディベア)", "leopard": "ヒョウ", "soapdispenser": "液体石鹸容器/ソープディスペンサー", "goldfish": "金魚", "red-backedsandpiper": "鳥(シギ)", "pekinese": "犬(ペキニーズ)", "rockbeauty": "魚(ロックビューティ/熱帯魚)", "jeep": "ジープ", "trilobite": "三葉虫", "greenmamba": "ヘビ(マンバ/グリーンマンバ)", "tibetanmastiff": "犬(チベタン・マスティフ)", "teapot": "ティーポット", "slidingdoor": "引き戸", "organ": "オルガン", "boxer": "犬(ボクサー)", "cashmachine": "atm/キャッシュマシン", "coffeepot": "コーヒーポット", "plasticbag": "ビニール袋", "frenchloaf": "フレンチローフ/フランスパン", "mushroom": "キノコ(マッシュルーム)", "tailedfrog": "カエル(テイルドフロッグ)", "sealion": "アシカ", "artichoke": "アーティチョーク", "proboscismonkey": "猿(テングザル)", "greyfox": "キツネ(灰色狐)", "entertainmentcenter": "劇場・娯楽施設・音響付テレビ台(家具)", "marmoset": "猿(マーモセット)", "tigercat": "猫(ジャガー猫/トラ猫)", "gibbon": "猿(テナガザル)", "wallaby": "ワラビー", "lesserpanda": "レッサーパンダ", "platypus": "カモノハシ", "earthstar": "キノコ(アーススター)", "madagascarcat": "マダガスカルキャット", "pitcher": "ピッチャー", "windowscreen": "ウインドウスクリーン", "guenon": "猿(グエノン)", "ostrich": "ダチョウ", "diaper": "おむつ", "cauliflower": "カリフラワー", "indri": "猿(インドリ)", "hermitcrab": "ヤドカリ", "standardpoodle": "犬(プードル)", "spidermonkey": "猿(クモザル)", "americanblackbear": "クマ(アメリカグマ)", "ram": "ram(メモリ)", "frenchbulldog": "犬(フレンチ・ブルドッグ)", "mixingbowl": "ミキシングボウル", "sorrel": "植物(ソレル)", "saltshaker": "ソルトシェイカー", "soupbowl": "スープボール", "snowleopard": "ユキヒョウ", "gyromitra": "キノコ(ジャイロミトラ/アミガサタケ)", "washbasin": "洗面台", "kitfox": "キツネ(キットギツネ)", "modelt": "t型自動車/クラッシックカー", "bee": "蜂", "chinacabinet": "家具(チャイナキャビネット)", "chamberednautilus": "オウム貝", "dough": "生地", "milkcan": "ミルク缶", "bellpepper": "ピーマン/パプリカ", "zucchini": "ズッキーニ", "tusker": "タスカー/ビール", "otter": "カワウソ", "africancrocodile": "アフリカのワニ", "fly": "昆虫(ハエ)", "cougar": "動物(クーガー)", "greatwhiteshark": "サメ(グレート・ホワイト・シャーク)", "geyser": "間欠泉", "icebear": "クマ(シロクマ/北極グマ)", "planetarium": "プラネタリウム", "bullmastiff": "犬(ブルマスティフ)", "lynx": "動物(リンクス/オオヤマネコ)", "fiddlercrab": "カニ(シオマネキ)", "lemon": "レモン", "turnstile": "回転木戸", "ringlet": "リングレット/長い巻毛", "peacock": "孔雀", "chiton": "生物(キトン/ヒザラガイ)", "terrapin": "カメ(テラピン)", "grille": "グリル", "colobus": "猿(コロブス)", "baboon": "ヒヒ", "fig": "イチジク", "tench": "魚(テンチ)", "mosquitonet": "蚊帳", "shih-tzu": "犬(シーズー)", "cardoon": "植物(カルドーン)", "woodrabbit": "木彫りのウサギ", "braincoral": "脳みたいな形のサンゴ", "indianelephant": "インド象", "axolotl": "サンショウウオ(メキシコオオサンショウウオ)", "giantpanda": "パンダ", "fountain": "噴水", "windowshade": "日よけ", "dhole": "犬(ドール)", "lhasa": "ラサ市/チベット", "chow": "犬(チャウ)", "policevan": "自動車(バン・警察用バン)", "africanhuntingdog": "犬(アフリカンハウンティングドッグ)", "spaghettisquash": "野菜(キンシウリ)", "killerwhale": "シャチ", "bighorn": "動物(ビッグホーン/ウシ科)", "whiskeyjug": "ウィスキー瓶(瀬戸物)", "tiger": "虎", "redwolf": "レッドウルフ", "dowitcher": "鳥(シギ科オオハシシギ)", "jack-o-lantern": "ハロウインのお化け(鬼火)", "rainbarrel": "雨水をためる樽", "butternutsquash": "野菜(バターナット・スクウォッシュカボチャ)", "treefrog": "アマガエル", "greensnake": "ヘビ(グリーンスネーク)", "hyena": "ハイエナ", "wombat": "ウォンバット", "crockpot": "電気なべ", "pay-phone": "公衆電話", "bison": "バイソン", "stingray": "アカエイ", "daisy": "花(デイジー)", "gorilla": "ゴリラ", "jackfruit": "果物(ジャックフルーツ)", "consomme": "コンソメスープ", "anemonefish": "魚(クマノミ)", "jaguar": "ジャガー", "leatherbackturtle": "カメ(ウミガメ)", "drake": "鳥(ドレイク/カモ属)", "slothbear": "ナマケモノ", "jellyfish": "クラゲ", "bustard": "鳥(ノガン/バスタード)", "lion": "ライオン", "hotpot": "火鍋", "komododragon": "コモドドラゴン", "bolete": "キノコ(ボレテ)", "petridish": "シャーレ(ペトリ皿)", "mudturtle": "カメ(泥カメ)", "cheeseburger": "チーズバーガー", "warthog": "イボイノシシ", "cicada": "蝉", "yellowladysslipper": "植物(イエローレディスリッパ)", "acornsquash": "どんぐり", "puffer": "フグ", "zebra": "シマウマ", "boxturtle": "カメ(ハコガメ)", "bullfrog": "ウシガエル", "loggerhead": "カメ(アカウミガメ)", "seaanemone": "イソギンチャク", "dungbeetle": "糞虫", "cabbagebutterfly": "蝶(モンシロチョウ)", "americancoot": "鳥(アメリカオオバン)", "dugong": "ジュゴン", "africanelephant": "アフリカ象", "koala": "コアラ", "hippopotamus": "カバ", "background": "背景" } def convert(self, english_name): replaced_str = re.sub(r'[\'_\s]', '', english_name.lower(), count=0) if(replaced_str in self.jdic): return(self.jdic[replaced_str]) else: return('一致するキーがありません')
あと、補足です。
英語名には「jack-o’-lantern」みたいに「シングルコーテーション」を名称にもっているものがあって、これをそのままにしてるとエラーがでるリスクが残ります。
さらに・・。
例えば、tf.keras.applications.VGG16で返される「物体名(クラス)」と、tensorflow hubのそれとは一致しないなんてこともあります。
同じ、ImageNetのILSVRC2012データセットを使っているのですが、自分がみつけた違いの例をあげると。
- tensorflow hubの方が1つ増えて物体名が「1001」になっている。
- 単語間を「_」でつないでいるものと、半角空白でつないでいるものがある
- Americanとamericanのように微妙に大文字・小文字が異なっている
などがあります。
ちなみに増えているのは「 "background": "背景"」でした。
なので。
今回のクラス化にあたっては、その相違を吸収するように工夫してます。
なので。
英単語の「シングルコーテーション」や「_」をとった形で、例えば「jack-o-lantern」のようにし、さらに、すべて小文字にして辞書を作ってます。
なので、辞書にあてる前に以下のように余計な「シングルコーテーション」「_」などを消したり、小文字変換をしたりしているわけです。
replaced_str = re.sub(r'[\'_\s]', '', english_name.lower(), count=0)
いまのところ、自分が使う範囲では、これで大丈夫そうなんですけどね。
日本語化辞書の使い方(python)
上記をファイルに保存し、適当な場所におきます。
例えば、to_japanese_ilsvrc2012.pyに保存した場合は以下のようにインポートします。
from . import to_japanese_ilsvrc2012 as toj
それで。
使いたい場所で以下のようにクラスオブジェクトを作って使います。
translator = toj.Ilsvrc2012Japanese()
jptext = translator.convert(result))
resultに分類結果の英語カテゴリ名がはいっている想定です。
今回はこんなところで。
ではでは。
※この記事は2019/1/23の記事をリライトしたものです。