From 29dc428932054f8a45f7fafd62c13a49fc9316c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9C=8D=E6=BA=90=E6=B5=A9?= <501912318@qq.com> Date: Mon, 21 Oct 2024 01:05:37 +1100 Subject: [PATCH] ai: Add mindspore-lite support 1. Write the mindspore-lite recipe file. 2. Update manifest.yaml and openeuler-image.bb. 3. Write the demo recipe file, main.cc. Signed-off-by: huoyuanhao2024 <501912318@qq.com> --- ...demo_1.0.bb => demo-classification_1.0.bb} | 20 +- .../{demo-src => demo-class}/CMakeLists.txt | 7 +- .../mindspore-lite/files/demo-class/main.cc | 204 ++++ .../mindspore-lite/files/demo-src/main.cc | 133 --- .../mindspore-lite/files/pictures/candle.webp | Bin 0 -> 34570 bytes .../mindspore-lite/files/pictures/hen.webp | Bin 0 -> 27194 bytes .../mindspore-lite/files/pictures/labels.txt | 1000 +++++++++++++++++ .../mindspore-lite/files/pictures/tench.webp | Bin 0 -> 24888 bytes 8 files changed, 1223 insertions(+), 141 deletions(-) rename meta-openeuler/recipes-ai/mindspore-lite/{ms-demo_1.0.bb => demo-classification_1.0.bb} (52%) rename meta-openeuler/recipes-ai/mindspore-lite/files/{demo-src => demo-class}/CMakeLists.txt (67%) create mode 100644 meta-openeuler/recipes-ai/mindspore-lite/files/demo-class/main.cc delete mode 100644 meta-openeuler/recipes-ai/mindspore-lite/files/demo-src/main.cc create mode 100644 meta-openeuler/recipes-ai/mindspore-lite/files/pictures/candle.webp create mode 100644 meta-openeuler/recipes-ai/mindspore-lite/files/pictures/hen.webp create mode 100644 meta-openeuler/recipes-ai/mindspore-lite/files/pictures/labels.txt create mode 100644 meta-openeuler/recipes-ai/mindspore-lite/files/pictures/tench.webp diff --git a/meta-openeuler/recipes-ai/mindspore-lite/ms-demo_1.0.bb b/meta-openeuler/recipes-ai/mindspore-lite/demo-classification_1.0.bb similarity index 52% rename from meta-openeuler/recipes-ai/mindspore-lite/ms-demo_1.0.bb rename to meta-openeuler/recipes-ai/mindspore-lite/demo-classification_1.0.bb index 9bdb1bb13dc..5d47312f66c 100644 --- a/meta-openeuler/recipes-ai/mindspore-lite/ms-demo_1.0.bb +++ b/meta-openeuler/recipes-ai/mindspore-lite/demo-classification_1.0.bb @@ -3,33 +3,41 @@ AUTHOR = "Huawei Technologies Co., Ltd" LICENSE = "CLOSED" SRC_URI = " \ -file://demo-src \ +file://demo-class \ +file://pictures/ \ https://download-mindspore.osinfra.cn/model_zoo/official/lite/quick_start/mobilenetv2.ms;name=model \ " SRC_URI[model.sha256sum] = "5a7ccd53bf92d8b294a703a1302d4230a311b2d19a8d212eedd65ff6838cfa84" # Source directory -S = "${WORKDIR}/ms-demo" +S = "${WORKDIR}/demo-classification" -DEPENDS = "mindspore-lite" +DEPENDS = "mindspore-lite opencv" # Inherit pkg inherit cmake +EXTRA_OECMAKE += "-DCMAKE_CXX_FLAGS=-I${STAGING_INCDIR}/opencv4" +EXTRA_OECMAKE += "-DCMAKE_EXE_LINKER_FLAGS=-L${STAGING_LIBDIR}" + do_configure:prepend(){ - cp -rf ${WORKDIR}/demo-src/* ${S} + cp -rf ${WORKDIR}/demo-class/* ${S} cp ${WORKDIR}/mobilenetv2.ms ${S}/model } +do_configure[depends] += "opencv:do_populate_sysroot mindspore-lite:do_populate_sysroot" + # Install the demo binary do_install() { install -d ${D}${bindir} - install -m 0755 ${B}/ms-lite-demo ${D}${bindir}/ + install -m 0755 ${B}/ms-demo-class ${D}${bindir}/ install -d ${D}/usr/model install -m 0755 ${WORKDIR}/mobilenetv2.ms ${D}/usr/model + install -d ${D}/usr/pictures + cp -r ${WORKDIR}/pictures/* ${D}/usr/pictures/ } # Specify files to package -FILES:${PN} = "${bindir}/ms-lite-demo /usr/model" +FILES:${PN} = "${bindir}/ms-demo-class /usr/model /usr/pictures" diff --git a/meta-openeuler/recipes-ai/mindspore-lite/files/demo-src/CMakeLists.txt b/meta-openeuler/recipes-ai/mindspore-lite/files/demo-class/CMakeLists.txt similarity index 67% rename from meta-openeuler/recipes-ai/mindspore-lite/files/demo-src/CMakeLists.txt rename to meta-openeuler/recipes-ai/mindspore-lite/files/demo-class/CMakeLists.txt index 16ec1ad56b6..9e36b238f61 100644 --- a/meta-openeuler/recipes-ai/mindspore-lite/files/demo-src/CMakeLists.txt +++ b/meta-openeuler/recipes-ai/mindspore-lite/files/demo-class/CMakeLists.txt @@ -4,10 +4,13 @@ project(Demo) include_directories($ENV{PKG_CONFIG_SYSROOT_DIR}/usr/) link_directories($ENV{PKG_CONFIG_SYSROOT_DIR}/usr/lib64) -add_executable(ms-lite-demo main.cc) +find_package(OpenCV REQUIRED) + +add_executable(ms-demo-class main.cc) target_link_libraries( - ms-lite-demo + ms-demo-class + ${OpenCV_LIBS} mindspore-lite pthread dl diff --git a/meta-openeuler/recipes-ai/mindspore-lite/files/demo-class/main.cc b/meta-openeuler/recipes-ai/mindspore-lite/files/demo-class/main.cc new file mode 100644 index 00000000000..604def0ac98 --- /dev/null +++ b/meta-openeuler/recipes-ai/mindspore-lite/files/demo-class/main.cc @@ -0,0 +1,204 @@ +#include +#include +#include +#include +#include +#include "include/api/model.h" +#include "include/api/context.h" +#include "include/api/status.h" +#include "include/api/types.h" +#include +#include +#include +#include +#include + +using mindspore::MSTensor; + +// Function to read model file +char *ReadFile(const char *file, size_t *size) { + if (file == nullptr) { + std::cerr << "file is nullptr." << std::endl; + return nullptr; + } + + std::ifstream ifs(file, std::ifstream::in | std::ifstream::binary); + if (!ifs.good()) { + std::cerr << "file: " << file << " is not exist." << std::endl; + return nullptr; + } + + if (!ifs.is_open()) { + std::cerr << "file: " << file << " open failed." << std::endl; + return nullptr; + } + + ifs.seekg(0, std::ios::end); + *size = ifs.tellg(); + std::unique_ptr buf(new (std::nothrow) char[*size]); + if (buf == nullptr) { + std::cerr << "malloc buf failed, file: " << file << std::endl; + ifs.close(); + return nullptr; + } + + ifs.seekg(0, std::ios::beg); + ifs.read(buf.get(), *size); + ifs.close(); + + return buf.release(); +} + +// Function to load labels from the provided dictionary-style labels.txt +std::map LoadLabels(const std::string &label_file) { + std::map labels; + std::ifstream file(label_file); + std::string content((std::istreambuf_iterator(file)), std::istreambuf_iterator()); + + // Regular expression to match {index: 'label'} + std::regex pattern(R"(\s*(\d+)\s*:\s*'([^']*)')"); + std::smatch match; + + auto labels_begin = std::sregex_iterator(content.begin(), content.end(), pattern); + auto labels_end = std::sregex_iterator(); + + for (std::sregex_iterator i = labels_begin; i != labels_end; ++i) { + std::smatch match = *i; + int index = std::stoi(match[1].str()); // Extract the index + std::string label = match[2].str(); // Extract the label + labels[index] = label; + } + + return labels; +} + +// Function to preprocess image, resize it to model's input size and normalize +std::vector PreprocessImage(std::string image_path, int target_height, int target_width) { + // Read the image + cv::Mat image = cv::imread(image_path, cv::IMREAD_COLOR); + if (image.empty()) { + std::cerr << "Failed to read image: " << image_path << std::endl; + return {}; + } + + // Resize the image to the target size + cv::resize(image, image, cv::Size(target_width, target_height)); + + // Convert the image to float32 and normalize to [0, 1] + image.convertTo(image, CV_32F, 1.0 / 255.0); + + // Flatten the image data into a vector + std::vector input_data; + input_data.assign(image.begin(), image.end()); + + return input_data; +} + +int main(int argc, const char **argv) { + // Check input arguments for model path, image path, and labels path + if (argc < 4) { + std::cerr << "Usage: " << argv[0] << " " << std::endl; + return -1; + } + + std::string model_path = argv[1]; + std::string image_path = argv[2]; + std::string label_path = argv[3]; + + // Load labels + std::map labels = LoadLabels(label_path); + if (labels.empty()) { + std::cerr << "Failed to load labels from: " << label_path << std::endl; + return -1; + } + + // Read model file + size_t size = 0; + char *model_buf = ReadFile(model_path.c_str(), &size); + if (model_buf == nullptr) { + std::cerr << "Read model file failed." << std::endl; + return -1; + } + + // Create and init context, add CPU device info + auto context = std::make_shared(); + if (context == nullptr) { + delete[](model_buf); + std::cerr << "New context failed." << std::endl; + return -1; + } + auto &device_list = context->MutableDeviceInfo(); + auto device_info = std::make_shared(); + if (device_info == nullptr) { + delete[](model_buf); + std::cerr << "New CPUDeviceInfo failed." << std::endl; + return -1; + } + device_list.push_back(device_info); + + // Create model + auto model = new (std::nothrow) mindspore::Model(); + if (model == nullptr) { + delete[](model_buf); + std::cerr << "New Model failed." << std::endl; + return -1; + } + + // Build model + auto build_ret = model->Build(model_buf, size, mindspore::kMindIR, context); + delete[](model_buf); + if (build_ret != mindspore::kSuccess) { + delete model; + std::cerr << "Build model error " << std::endl; + return -1; + } + + // Preprocess the input image + int input_height = 224; // MobileNetV2 input size + int input_width = 224; + std::vector input_data = PreprocessImage(image_path, input_height, input_width); + if (input_data.empty()) { + delete model; + return -1; + } + + // Get Input + auto inputs = model->GetInputs(); + for (auto &tensor : inputs) { + auto input_data_ptr = reinterpret_cast(tensor.MutableData()); + if (input_data_ptr == nullptr) { + std::cerr << "MallocData for inTensor failed." << std::endl; + delete model; + return -1; + } + memcpy(input_data_ptr, input_data.data(), input_data.size() * sizeof(float)); + } + + // Predict + std::vector outputs; + auto status = model->Predict(inputs, &outputs); + if (status != mindspore::kSuccess) { + std::cerr << "Inference error." << std::endl; + delete model; + return -1; + } + + // Post-process: Get the class with highest probability and print corresponding label + std::cout << "\n------- print outputs ----------" << std::endl; + for (auto tensor : outputs) { + auto out_data = reinterpret_cast(tensor.MutableData()); + int class_idx = std::max_element(out_data, out_data + tensor.ElementNum()) - out_data; + std::cout << "Predicted class index: " << class_idx << std::endl; + if (labels.find(class_idx) != labels.end()) { + std::cout << "Predicted label: " << labels[class_idx] << std::endl; + } else { + std::cerr << "Invalid class index" << std::endl; + } + } + std::cout << "------- print end ----------\n" << std::endl; + + // Delete model + delete model; + return mindspore::kSuccess; +} + diff --git a/meta-openeuler/recipes-ai/mindspore-lite/files/demo-src/main.cc b/meta-openeuler/recipes-ai/mindspore-lite/files/demo-src/main.cc deleted file mode 100644 index ce2939e9165..00000000000 --- a/meta-openeuler/recipes-ai/mindspore-lite/files/demo-src/main.cc +++ /dev/null @@ -1,133 +0,0 @@ -#include -#include -#include -#include "include/api/model.h" -#include "include/api/context.h" -#include "include/api/status.h" -#include "include/api/types.h" -using mindspore::MSTensor; - -char *ReadFile(const char *file, size_t *size) { - if (file == nullptr) { - std::cerr << "file is nullptr." << std::endl; - return nullptr; - } - - std::ifstream ifs(file, std::ifstream::in | std::ifstream::binary); - if (!ifs.good()) { - std::cerr << "file: " << file << " is not exist." << std::endl; - return nullptr; - } - - if (!ifs.is_open()) { - std::cerr << "file: " << file << " open failed." << std::endl; - return nullptr; - } - - ifs.seekg(0, std::ios::end); - *size = ifs.tellg(); - std::unique_ptr buf(new (std::nothrow) char[*size]); - if (buf == nullptr) { - std::cerr << "malloc buf failed, file: " << file << std::endl; - ifs.close(); - return nullptr; - } - - ifs.seekg(0, std::ios::beg); - ifs.read(buf.get(), *size); - ifs.close(); - - return buf.release(); -} - -template -void GenerateRandomData(int size, void *data, Distribution distribution) { - std::mt19937 random_engine; - int elements_num = size / sizeof(T); - (void)std::generate_n(static_cast(data), elements_num, - [&distribution, &random_engine]() { return static_cast(distribution(random_engine)); }); -} - -int main(int argc, const char **argv) { - // Read model file. - std::string model_path = "/usr/model/mobilenetv2.ms"; - size_t size = 0; - char *model_buf = ReadFile(model_path.c_str(), &size); - if (model_buf == nullptr) { - std::cerr << "Read model file failed." << std::endl; - return -1; - } - - // Create and init context, add CPU device info - auto context = std::make_shared(); - if (context == nullptr) { - delete[](model_buf); - std::cerr << "New context failed." << std::endl; - return -1; - } - auto &device_list = context->MutableDeviceInfo(); - auto device_info = std::make_shared(); - if (device_info == nullptr) { - delete[](model_buf); - std::cerr << "New CPUDeviceInfo failed." << std::endl; - return -1; - } - device_list.push_back(device_info); - - // Create model - auto model = new (std::nothrow) mindspore::Model(); - if (model == nullptr) { - delete[](model_buf); - std::cerr << "New Model failed." << std::endl; - return -1; - } - - // Build model - auto build_ret = model->Build(model_buf, size, mindspore::kMindIR, context); - delete[](model_buf); - if (build_ret != mindspore::kSuccess) { - delete model; - std::cerr << "Build model error " << std::endl; - return -1; - } - - // Get Input - auto inputs = model->GetInputs(); - for (auto tensor : inputs) { - auto input_data = reinterpret_cast(tensor.MutableData()); - if (input_data == nullptr) { - std::cerr << "MallocData for inTensor failed." << std::endl; - delete model; - return -1; - } - GenerateRandomData(tensor.DataSize(), input_data, std::uniform_real_distribution(0.1f, 1.0f)); - } - - // Predict - std::vector outputs; - auto status = model->Predict(inputs, &outputs); - if (status != mindspore::kSuccess) { - std::cerr << "Inference error." << std::endl; - delete model; - return -1; - } - - // Get Output Tensor Data. - std::cout << "\n------- print outputs ----------" << std::endl; - for (auto tensor : outputs) { - std::cout << "out tensor name is:" << tensor.Name() << "\nout tensor size is:" << tensor.DataSize() - << "\nout tensor elements num is:" << tensor.ElementNum() << std::endl; - auto out_data = reinterpret_cast(tensor.MutableData()); - std::cout << "output data is:"; - for (int i = 0; i < tensor.ElementNum(); i++) { - std::cout << out_data[i] << " "; - } - std::cout << std::endl; - } - std::cout << "------- print end ----------\n" << std::endl; - - // Delete model. - delete model; - return mindspore::kSuccess; -} - diff --git a/meta-openeuler/recipes-ai/mindspore-lite/files/pictures/candle.webp b/meta-openeuler/recipes-ai/mindspore-lite/files/pictures/candle.webp new file mode 100644 index 0000000000000000000000000000000000000000..2fa755edcb24b16b19f5919685b4a7b4f9edd61a GIT binary patch literal 34570 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 literal 0 HcmV?d00001 diff --git a/meta-openeuler/recipes-ai/mindspore-lite/files/pictures/hen.webp b/meta-openeuler/recipes-ai/mindspore-lite/files/pictures/hen.webp new file mode 100644 index 0000000000000000000000000000000000000000..c81dc95ec46176007a250f7f1ac682a09b68c2dc GIT binary patch literal 27194 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 N?O)RnaXJaW006VZ)o=g+ literal 0 HcmV?d00001 diff --git a/meta-openeuler/recipes-ai/mindspore-lite/files/pictures/labels.txt b/meta-openeuler/recipes-ai/mindspore-lite/files/pictures/labels.txt new file mode 100644 index 00000000000..2e3ae32a215 --- /dev/null +++ b/meta-openeuler/recipes-ai/mindspore-lite/files/pictures/labels.txt @@ -0,0 +1,1000 @@ +{0: 'tench, Tinca tinca', + 1: 'goldfish, Carassius auratus', + 2: 'great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias', + 3: 'tiger shark, Galeocerdo cuvieri', + 4: 'hammerhead, hammerhead shark', + 5: 'electric ray, crampfish, numbfish, torpedo', + 6: 'stingray', + 7: 'cock', + 8: 'hen', + 9: 'ostrich, Struthio camelus', + 10: 'brambling, Fringilla montifringilla', + 11: 'goldfinch, Carduelis carduelis', + 12: 'house finch, linnet, Carpodacus mexicanus', + 13: 'junco, snowbird', + 14: 'indigo bunting, indigo finch, indigo bird, Passerina cyanea', + 15: 'robin, American robin, Turdus migratorius', + 16: 'bulbul', + 17: 'jay', + 18: 'magpie', + 19: 'chickadee', + 20: 'water ouzel, dipper', + 21: 'kite', + 22: 'bald eagle, American eagle, Haliaeetus leucocephalus', + 23: 'vulture', + 24: 'great grey owl, great gray owl, Strix nebulosa', + 25: 'European fire salamander, Salamandra salamandra', + 26: 'common newt, Triturus vulgaris', + 27: 'eft', + 28: 'spotted salamander, Ambystoma maculatum', + 29: 'axolotl, mud puppy, Ambystoma mexicanum', + 30: 'bullfrog, Rana catesbeiana', + 31: 'tree frog, tree-frog', + 32: 'tailed frog, bell toad, ribbed toad, tailed toad, Ascaphus trui', + 33: 'loggerhead, loggerhead turtle, Caretta caretta', + 34: 'leatherback turtle, leatherback, leathery turtle, Dermochelys coriacea', + 35: 'mud turtle', + 36: 'terrapin', + 37: 'box turtle, box tortoise', + 38: 'banded gecko', + 39: 'common iguana, iguana, Iguana iguana', + 40: 'American chameleon, anole, Anolis carolinensis', + 41: 'whiptail, whiptail lizard', + 42: 'agama', + 43: 'frilled lizard, Chlamydosaurus kingi', + 44: 'alligator lizard', + 45: 'Gila monster, Heloderma suspectum', + 46: 'green lizard, Lacerta viridis', + 47: 'African chameleon, Chamaeleo chamaeleon', + 48: 'Komodo dragon, Komodo lizard, dragon lizard, giant lizard, Varanus komodoensis', + 49: 'African crocodile, Nile crocodile, Crocodylus niloticus', + 50: 'American alligator, Alligator mississipiensis', + 51: 'triceratops', + 52: 'thunder snake, worm snake, Carphophis amoenus', + 53: 'ringneck snake, ring-necked snake, ring snake', + 54: 'hognose snake, puff adder, sand viper', + 55: 'green snake, grass snake', + 56: 'king snake, kingsnake', + 57: 'garter snake, grass snake', + 58: 'water snake', + 59: 'vine snake', + 60: 'night snake, Hypsiglena torquata', + 61: 'boa constrictor, Constrictor constrictor', + 62: 'rock python, rock snake, Python sebae', + 63: 'Indian cobra, Naja naja', + 64: 'green mamba', + 65: 'sea snake', + 66: 'horned viper, cerastes, sand viper, horned asp, Cerastes cornutus', + 67: 'diamondback, diamondback rattlesnake, Crotalus adamanteus', + 68: 'sidewinder, horned rattlesnake, Crotalus cerastes', + 69: 'trilobite', + 70: 'harvestman, daddy longlegs, Phalangium opilio', + 71: 'scorpion', + 72: 'black and gold garden spider, Argiope aurantia', + 73: 'barn spider, Araneus cavaticus', + 74: 'garden spider, Aranea diademata', + 75: 'black widow, Latrodectus mactans', + 76: 'tarantula', + 77: 'wolf spider, hunting spider', + 78: 'tick', + 79: 'centipede', + 80: 'black grouse', + 81: 'ptarmigan', + 82: 'ruffed grouse, partridge, Bonasa umbellus', + 83: 'prairie chicken, prairie grouse, prairie fowl', + 84: 'peacock', + 85: 'quail', + 86: 'partridge', + 87: 'African grey, African gray, Psittacus erithacus', + 88: 'macaw', + 89: 'sulphur-crested cockatoo, Kakatoe galerita, Cacatua galerita', + 90: 'lorikeet', + 91: 'coucal', + 92: 'bee eater', + 93: 'hornbill', + 94: 'hummingbird', + 95: 'jacamar', + 96: 'toucan', + 97: 'drake', + 98: 'red-breasted merganser, Mergus serrator', + 99: 'goose', + 100: 'black swan, Cygnus atratus', + 101: 'tusker', + 102: 'echidna, spiny anteater, anteater', + 103: 'platypus, duckbill, duckbilled platypus, duck-billed platypus, Ornithorhynchus anatinus', + 104: 'wallaby, brush kangaroo', + 105: 'koala, koala bear, kangaroo bear, native bear, Phascolarctos cinereus', + 106: 'wombat', + 107: 'jellyfish', + 108: 'sea anemone, anemone', + 109: 'brain coral', + 110: 'flatworm, platyhelminth', + 111: 'nematode, nematode worm, roundworm', + 112: 'conch', + 113: 'snail', + 114: 'slug', + 115: 'sea slug, nudibranch', + 116: 'chiton, coat-of-mail shell, sea cradle, polyplacophore', + 117: 'chambered nautilus, pearly nautilus, nautilus', + 118: 'Dungeness crab, Cancer magister', + 119: 'rock crab, Cancer irroratus', + 120: 'fiddler crab', + 121: 'king crab, Alaska crab, Alaskan king crab, Alaska king crab, Paralithodes camtschatica', + 122: 'American lobster, Northern lobster, Maine lobster, Homarus americanus', + 123: 'spiny lobster, langouste, rock lobster, crawfish, crayfish, sea crawfish', + 124: 'crayfish, crawfish, crawdad, crawdaddy', + 125: 'hermit crab', + 126: 'isopod', + 127: 'white stork, Ciconia ciconia', + 128: 'black stork, Ciconia nigra', + 129: 'spoonbill', + 130: 'flamingo', + 131: 'little blue heron, Egretta caerulea', + 132: 'American egret, great white heron, Egretta albus', + 133: 'bittern', + 134: 'crane', + 135: 'limpkin, Aramus pictus', + 136: 'European gallinule, Porphyrio porphyrio', + 137: 'American coot, marsh hen, mud hen, water hen, Fulica americana', + 138: 'bustard', + 139: 'ruddy turnstone, Arenaria interpres', + 140: 'red-backed sandpiper, dunlin, Erolia alpina', + 141: 'redshank, Tringa totanus', + 142: 'dowitcher', + 143: 'oystercatcher, oyster catcher', + 144: 'pelican', + 145: 'king penguin, Aptenodytes patagonica', + 146: 'albatross, mollymawk', + 147: 'grey whale, gray whale, devilfish, Eschrichtius gibbosus, Eschrichtius robustus', + 148: 'killer whale, killer, orca, grampus, sea wolf, Orcinus orca', + 149: 'dugong, Dugong dugon', + 150: 'sea lion', + 151: 'Chihuahua', + 152: 'Japanese spaniel', + 153: 'Maltese dog, Maltese terrier, Maltese', + 154: 'Pekinese, Pekingese, Peke', + 155: 'Shih-Tzu', + 156: 'Blenheim spaniel', + 157: 'papillon', + 158: 'toy terrier', + 159: 'Rhodesian ridgeback', + 160: 'Afghan hound, Afghan', + 161: 'basset, basset hound', + 162: 'beagle', + 163: 'bloodhound, sleuthhound', + 164: 'bluetick', + 165: 'black-and-tan coonhound', + 166: 'Walker hound, Walker foxhound', + 167: 'English foxhound', + 168: 'redbone', + 169: 'borzoi, Russian wolfhound', + 170: 'Irish wolfhound', + 171: 'Italian greyhound', + 172: 'whippet', + 173: 'Ibizan hound, Ibizan Podenco', + 174: 'Norwegian elkhound, elkhound', + 175: 'otterhound, otter hound', + 176: 'Saluki, gazelle hound', + 177: 'Scottish deerhound, deerhound', + 178: 'Weimaraner', + 179: 'Staffordshire bullterrier, Staffordshire bull terrier', + 180: 'American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier', + 181: 'Bedlington terrier', + 182: 'Border terrier', + 183: 'Kerry blue terrier', + 184: 'Irish terrier', + 185: 'Norfolk terrier', + 186: 'Norwich terrier', + 187: 'Yorkshire terrier', + 188: 'wire-haired fox terrier', + 189: 'Lakeland terrier', + 190: 'Sealyham terrier, Sealyham', + 191: 'Airedale, Airedale terrier', + 192: 'cairn, cairn terrier', + 193: 'Australian terrier', + 194: 'Dandie Dinmont, Dandie Dinmont terrier', + 195: 'Boston bull, Boston terrier', + 196: 'miniature schnauzer', + 197: 'giant schnauzer', + 198: 'standard schnauzer', + 199: 'Scotch terrier, Scottish terrier, Scottie', + 200: 'Tibetan terrier, chrysanthemum dog', + 201: 'silky terrier, Sydney silky', + 202: 'soft-coated wheaten terrier', + 203: 'West Highland white terrier', + 204: 'Lhasa, Lhasa apso', + 205: 'flat-coated retriever', + 206: 'curly-coated retriever', + 207: 'golden retriever', + 208: 'Labrador retriever', + 209: 'Chesapeake Bay retriever', + 210: 'German short-haired pointer', + 211: 'vizsla, Hungarian pointer', + 212: 'English setter', + 213: 'Irish setter, red setter', + 214: 'Gordon setter', + 215: 'Brittany spaniel', + 216: 'clumber, clumber spaniel', + 217: 'English springer, English springer spaniel', + 218: 'Welsh springer spaniel', + 219: 'cocker spaniel, English cocker spaniel, cocker', + 220: 'Sussex spaniel', + 221: 'Irish water spaniel', + 222: 'kuvasz', + 223: 'schipperke', + 224: 'groenendael', + 225: 'malinois', + 226: 'briard', + 227: 'kelpie', + 228: 'komondor', + 229: 'Old English sheepdog, bobtail', + 230: 'Shetland sheepdog, Shetland sheep dog, Shetland', + 231: 'collie', + 232: 'Border collie', + 233: 'Bouvier des Flandres, Bouviers des Flandres', + 234: 'Rottweiler', + 235: 'German shepherd, German shepherd dog, German police dog, alsatian', + 236: 'Doberman, Doberman pinscher', + 237: 'miniature pinscher', + 238: 'Greater Swiss Mountain dog', + 239: 'Bernese mountain dog', + 240: 'Appenzeller', + 241: 'EntleBucher', + 242: 'boxer', + 243: 'bull mastiff', + 244: 'Tibetan mastiff', + 245: 'French bulldog', + 246: 'Great Dane', + 247: 'Saint Bernard, St Bernard', + 248: 'Eskimo dog, husky', + 249: 'malamute, malemute, Alaskan malamute', + 250: 'Siberian husky', + 251: 'dalmatian, coach dog, carriage dog', + 252: 'affenpinscher, monkey pinscher, monkey dog', + 253: 'basenji', + 254: 'pug, pug-dog', + 255: 'Leonberg', + 256: 'Newfoundland, Newfoundland dog', + 257: 'Great Pyrenees', + 258: 'Samoyed, Samoyede', + 259: 'Pomeranian', + 260: 'chow, chow chow', + 261: 'keeshond', + 262: 'Brabancon griffon', + 263: 'Pembroke, Pembroke Welsh corgi', + 264: 'Cardigan, Cardigan Welsh corgi', + 265: 'toy poodle', + 266: 'miniature poodle', + 267: 'standard poodle', + 268: 'Mexican hairless', + 269: 'timber wolf, grey wolf, gray wolf, Canis lupus', + 270: 'white wolf, Arctic wolf, Canis lupus tundrarum', + 271: 'red wolf, maned wolf, Canis rufus, Canis niger', + 272: 'coyote, prairie wolf, brush wolf, Canis latrans', + 273: 'dingo, warrigal, warragal, Canis dingo', + 274: 'dhole, Cuon alpinus', + 275: 'African hunting dog, hyena dog, Cape hunting dog, Lycaon pictus', + 276: 'hyena, hyaena', + 277: 'red fox, Vulpes vulpes', + 278: 'kit fox, Vulpes macrotis', + 279: 'Arctic fox, white fox, Alopex lagopus', + 280: 'grey fox, gray fox, Urocyon cinereoargenteus', + 281: 'tabby, tabby cat', + 282: 'tiger cat', + 283: 'Persian cat', + 284: 'Siamese cat, Siamese', + 285: 'Egyptian cat', + 286: 'cougar, puma, catamount, mountain lion, painter, panther, Felis concolor', + 287: 'lynx, catamount', + 288: 'leopard, Panthera pardus', + 289: 'snow leopard, ounce, Panthera uncia', + 290: 'jaguar, panther, Panthera onca, Felis onca', + 291: 'lion, king of beasts, Panthera leo', + 292: 'tiger, Panthera tigris', + 293: 'cheetah, chetah, Acinonyx jubatus', + 294: 'brown bear, bruin, Ursus arctos', + 295: 'American black bear, black bear, Ursus americanus, Euarctos americanus', + 296: 'ice bear, polar bear, Ursus Maritimus, Thalarctos maritimus', + 297: 'sloth bear, Melursus ursinus, Ursus ursinus', + 298: 'mongoose', + 299: 'meerkat, mierkat', + 300: 'tiger beetle', + 301: 'ladybug, ladybeetle, lady beetle, ladybird, ladybird beetle', + 302: 'ground beetle, carabid beetle', + 303: 'long-horned beetle, longicorn, longicorn beetle', + 304: 'leaf beetle, chrysomelid', + 305: 'dung beetle', + 306: 'rhinoceros beetle', + 307: 'weevil', + 308: 'fly', + 309: 'bee', + 310: 'ant, emmet, pismire', + 311: 'grasshopper, hopper', + 312: 'cricket', + 313: 'walking stick, walkingstick, stick insect', + 314: 'cockroach, roach', + 315: 'mantis, mantid', + 316: 'cicada, cicala', + 317: 'leafhopper', + 318: 'lacewing, lacewing fly', + 319: "dragonfly, darning needle, devil's darning needle, sewing needle, snake feeder, snake doctor, mosquito hawk, skeeter hawk", + 320: 'damselfly', + 321: 'admiral', + 322: 'ringlet, ringlet butterfly', + 323: 'monarch, monarch butterfly, milkweed butterfly, Danaus plexippus', + 324: 'cabbage butterfly', + 325: 'sulphur butterfly, sulfur butterfly', + 326: 'lycaenid, lycaenid butterfly', + 327: 'starfish, sea star', + 328: 'sea urchin', + 329: 'sea cucumber, holothurian', + 330: 'wood rabbit, cottontail, cottontail rabbit', + 331: 'hare', + 332: 'Angora, Angora rabbit', + 333: 'hamster', + 334: 'porcupine, hedgehog', + 335: 'fox squirrel, eastern fox squirrel, Sciurus niger', + 336: 'marmot', + 337: 'beaver', + 338: 'guinea pig, Cavia cobaya', + 339: 'sorrel', + 340: 'zebra', + 341: 'hog, pig, grunter, squealer, Sus scrofa', + 342: 'wild boar, boar, Sus scrofa', + 343: 'warthog', + 344: 'hippopotamus, hippo, river horse, Hippopotamus amphibius', + 345: 'ox', + 346: 'water buffalo, water ox, Asiatic buffalo, Bubalus bubalis', + 347: 'bison', + 348: 'ram, tup', + 349: 'bighorn, bighorn sheep, cimarron, Rocky Mountain bighorn, Rocky Mountain sheep, Ovis canadensis', + 350: 'ibex, Capra ibex', + 351: 'hartebeest', + 352: 'impala, Aepyceros melampus', + 353: 'gazelle', + 354: 'Arabian camel, dromedary, Camelus dromedarius', + 355: 'llama', + 356: 'weasel', + 357: 'mink', + 358: 'polecat, fitch, foulmart, foumart, Mustela putorius', + 359: 'black-footed ferret, ferret, Mustela nigripes', + 360: 'otter', + 361: 'skunk, polecat, wood pussy', + 362: 'badger', + 363: 'armadillo', + 364: 'three-toed sloth, ai, Bradypus tridactylus', + 365: 'orangutan, orang, orangutang, Pongo pygmaeus', + 366: 'gorilla, Gorilla gorilla', + 367: 'chimpanzee, chimp, Pan troglodytes', + 368: 'gibbon, Hylobates lar', + 369: 'siamang, Hylobates syndactylus, Symphalangus syndactylus', + 370: 'guenon, guenon monkey', + 371: 'patas, hussar monkey, Erythrocebus patas', + 372: 'baboon', + 373: 'macaque', + 374: 'langur', + 375: 'colobus, colobus monkey', + 376: 'proboscis monkey, Nasalis larvatus', + 377: 'marmoset', + 378: 'capuchin, ringtail, Cebus capucinus', + 379: 'howler monkey, howler', + 380: 'titi, titi monkey', + 381: 'spider monkey, Ateles geoffroyi', + 382: 'squirrel monkey, Saimiri sciureus', + 383: 'Madagascar cat, ring-tailed lemur, Lemur catta', + 384: 'indri, indris, Indri indri, Indri brevicaudatus', + 385: 'Indian elephant, Elephas maximus', + 386: 'African elephant, Loxodonta africana', + 387: 'lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens', + 388: 'giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca', + 389: 'barracouta, snoek', + 390: 'eel', + 391: 'coho, cohoe, coho salmon, blue jack, silver salmon, Oncorhynchus kisutch', + 392: 'rock beauty, Holocanthus tricolor', + 393: 'anemone fish', + 394: 'sturgeon', + 395: 'gar, garfish, garpike, billfish, Lepisosteus osseus', + 396: 'lionfish', + 397: 'puffer, pufferfish, blowfish, globefish', + 398: 'abacus', + 399: 'abaya', + 400: "academic gown, academic robe, judge's robe", + 401: 'accordion, piano accordion, squeeze box', + 402: 'acoustic guitar', + 403: 'aircraft carrier, carrier, flattop, attack aircraft carrier', + 404: 'airliner', + 405: 'airship, dirigible', + 406: 'altar', + 407: 'ambulance', + 408: 'amphibian, amphibious vehicle', + 409: 'analog clock', + 410: 'apiary, bee house', + 411: 'apron', + 412: 'ashcan, trash can, garbage can, wastebin, ash bin, ash-bin, ashbin, dustbin, trash barrel, trash bin', + 413: 'assault rifle, assault gun', + 414: 'backpack, back pack, knapsack, packsack, rucksack, haversack', + 415: 'bakery, bakeshop, bakehouse', + 416: 'balance beam, beam', + 417: 'balloon', + 418: 'ballpoint, ballpoint pen, ballpen, Biro', + 419: 'Band Aid', + 420: 'banjo', + 421: 'bannister, banister, balustrade, balusters, handrail', + 422: 'barbell', + 423: 'barber chair', + 424: 'barbershop', + 425: 'barn', + 426: 'barometer', + 427: 'barrel, cask', + 428: 'barrow, garden cart, lawn cart, wheelbarrow', + 429: 'baseball', + 430: 'basketball', + 431: 'bassinet', + 432: 'bassoon', + 433: 'bathing cap, swimming cap', + 434: 'bath towel', + 435: 'bathtub, bathing tub, bath, tub', + 436: 'beach wagon, station wagon, wagon, estate car, beach waggon, station waggon, waggon', + 437: 'beacon, lighthouse, beacon light, pharos', + 438: 'beaker', + 439: 'bearskin, busby, shako', + 440: 'beer bottle', + 441: 'beer glass', + 442: 'bell cote, bell cot', + 443: 'bib', + 444: 'bicycle-built-for-two, tandem bicycle, tandem', + 445: 'bikini, two-piece', + 446: 'binder, ring-binder', + 447: 'binoculars, field glasses, opera glasses', + 448: 'birdhouse', + 449: 'boathouse', + 450: 'bobsled, bobsleigh, bob', + 451: 'bolo tie, bolo, bola tie, bola', + 452: 'bonnet, poke bonnet', + 453: 'bookcase', + 454: 'bookshop, bookstore, bookstall', + 455: 'bottlecap', + 456: 'bow', + 457: 'bow tie, bow-tie, bowtie', + 458: 'brass, memorial tablet, plaque', + 459: 'brassiere, bra, bandeau', + 460: 'breakwater, groin, groyne, mole, bulwark, seawall, jetty', + 461: 'breastplate, aegis, egis', + 462: 'broom', + 463: 'bucket, pail', + 464: 'buckle', + 465: 'bulletproof vest', + 466: 'bullet train, bullet', + 467: 'butcher shop, meat market', + 468: 'cab, hack, taxi, taxicab', + 469: 'caldron, cauldron', + 470: 'candle, taper, wax light', + 471: 'cannon', + 472: 'canoe', + 473: 'can opener, tin opener', + 474: 'cardigan', + 475: 'car mirror', + 476: 'carousel, carrousel, merry-go-round, roundabout, whirligig', + 477: "carpenter's kit, tool kit", + 478: 'carton', + 479: 'car wheel', + 480: 'cash machine, cash dispenser, automated teller machine, automatic teller machine, automated teller, automatic teller, ATM', + 481: 'cassette', + 482: 'cassette player', + 483: 'castle', + 484: 'catamaran', + 485: 'CD player', + 486: 'cello, violoncello', + 487: 'cellular telephone, cellular phone, cellphone, cell, mobile phone', + 488: 'chain', + 489: 'chainlink fence', + 490: 'chain mail, ring mail, mail, chain armor, chain armour, ring armor, ring armour', + 491: 'chain saw, chainsaw', + 492: 'chest', + 493: 'chiffonier, commode', + 494: 'chime, bell, gong', + 495: 'china cabinet, china closet', + 496: 'Christmas stocking', + 497: 'church, church building', + 498: 'cinema, movie theater, movie theatre, movie house, picture palace', + 499: 'cleaver, meat cleaver, chopper', + 500: 'cliff dwelling', + 501: 'cloak', + 502: 'clog, geta, patten, sabot', + 503: 'cocktail shaker', + 504: 'coffee mug', + 505: 'coffeepot', + 506: 'coil, spiral, volute, whorl, helix', + 507: 'combination lock', + 508: 'computer keyboard, keypad', + 509: 'confectionery, confectionary, candy store', + 510: 'container ship, containership, container vessel', + 511: 'convertible', + 512: 'corkscrew, bottle screw', + 513: 'cornet, horn, trumpet, trump', + 514: 'cowboy boot', + 515: 'cowboy hat, ten-gallon hat', + 516: 'cradle', + 517: 'crane', + 518: 'crash helmet', + 519: 'crate', + 520: 'crib, cot', + 521: 'Crock Pot', + 522: 'croquet ball', + 523: 'crutch', + 524: 'cuirass', + 525: 'dam, dike, dyke', + 526: 'desk', + 527: 'desktop computer', + 528: 'dial telephone, dial phone', + 529: 'diaper, nappy, napkin', + 530: 'digital clock', + 531: 'digital watch', + 532: 'dining table, board', + 533: 'dishrag, dishcloth', + 534: 'dishwasher, dish washer, dishwashing machine', + 535: 'disk brake, disc brake', + 536: 'dock, dockage, docking facility', + 537: 'dogsled, dog sled, dog sleigh', + 538: 'dome', + 539: 'doormat, welcome mat', + 540: 'drilling platform, offshore rig', + 541: 'drum, membranophone, tympan', + 542: 'drumstick', + 543: 'dumbbell', + 544: 'Dutch oven', + 545: 'electric fan, blower', + 546: 'electric guitar', + 547: 'electric locomotive', + 548: 'entertainment center', + 549: 'envelope', + 550: 'espresso maker', + 551: 'face powder', + 552: 'feather boa, boa', + 553: 'file, file cabinet, filing cabinet', + 554: 'fireboat', + 555: 'fire engine, fire truck', + 556: 'fire screen, fireguard', + 557: 'flagpole, flagstaff', + 558: 'flute, transverse flute', + 559: 'folding chair', + 560: 'football helmet', + 561: 'forklift', + 562: 'fountain', + 563: 'fountain pen', + 564: 'four-poster', + 565: 'freight car', + 566: 'French horn, horn', + 567: 'frying pan, frypan, skillet', + 568: 'fur coat', + 569: 'garbage truck, dustcart', + 570: 'gasmask, respirator, gas helmet', + 571: 'gas pump, gasoline pump, petrol pump, island dispenser', + 572: 'goblet', + 573: 'go-kart', + 574: 'golf ball', + 575: 'golfcart, golf cart', + 576: 'gondola', + 577: 'gong, tam-tam', + 578: 'gown', + 579: 'grand piano, grand', + 580: 'greenhouse, nursery, glasshouse', + 581: 'grille, radiator grille', + 582: 'grocery store, grocery, food market, market', + 583: 'guillotine', + 584: 'hair slide', + 585: 'hair spray', + 586: 'half track', + 587: 'hammer', + 588: 'hamper', + 589: 'hand blower, blow dryer, blow drier, hair dryer, hair drier', + 590: 'hand-held computer, hand-held microcomputer', + 591: 'handkerchief, hankie, hanky, hankey', + 592: 'hard disc, hard disk, fixed disk', + 593: 'harmonica, mouth organ, harp, mouth harp', + 594: 'harp', + 595: 'harvester, reaper', + 596: 'hatchet', + 597: 'holster', + 598: 'home theater, home theatre', + 599: 'honeycomb', + 600: 'hook, claw', + 601: 'hoopskirt, crinoline', + 602: 'horizontal bar, high bar', + 603: 'horse cart, horse-cart', + 604: 'hourglass', + 605: 'iPod', + 606: 'iron, smoothing iron', + 607: "jack-o'-lantern", + 608: 'jean, blue jean, denim', + 609: 'jeep, landrover', + 610: 'jersey, T-shirt, tee shirt', + 611: 'jigsaw puzzle', + 612: 'jinrikisha, ricksha, rickshaw', + 613: 'joystick', + 614: 'kimono', + 615: 'knee pad', + 616: 'knot', + 617: 'lab coat, laboratory coat', + 618: 'ladle', + 619: 'lampshade, lamp shade', + 620: 'laptop, laptop computer', + 621: 'lawn mower, mower', + 622: 'lens cap, lens cover', + 623: 'letter opener, paper knife, paperknife', + 624: 'library', + 625: 'lifeboat', + 626: 'lighter, light, igniter, ignitor', + 627: 'limousine, limo', + 628: 'liner, ocean liner', + 629: 'lipstick, lip rouge', + 630: 'Loafer', + 631: 'lotion', + 632: 'loudspeaker, speaker, speaker unit, loudspeaker system, speaker system', + 633: "loupe, jeweler's loupe", + 634: 'lumbermill, sawmill', + 635: 'magnetic compass', + 636: 'mailbag, postbag', + 637: 'mailbox, letter box', + 638: 'maillot', + 639: 'maillot, tank suit', + 640: 'manhole cover', + 641: 'maraca', + 642: 'marimba, xylophone', + 643: 'mask', + 644: 'matchstick', + 645: 'maypole', + 646: 'maze, labyrinth', + 647: 'measuring cup', + 648: 'medicine chest, medicine cabinet', + 649: 'megalith, megalithic structure', + 650: 'microphone, mike', + 651: 'microwave, microwave oven', + 652: 'military uniform', + 653: 'milk can', + 654: 'minibus', + 655: 'miniskirt, mini', + 656: 'minivan', + 657: 'missile', + 658: 'mitten', + 659: 'mixing bowl', + 660: 'mobile home, manufactured home', + 661: 'Model T', + 662: 'modem', + 663: 'monastery', + 664: 'monitor', + 665: 'moped', + 666: 'mortar', + 667: 'mortarboard', + 668: 'mosque', + 669: 'mosquito net', + 670: 'motor scooter, scooter', + 671: 'mountain bike, all-terrain bike, off-roader', + 672: 'mountain tent', + 673: 'mouse, computer mouse', + 674: 'mousetrap', + 675: 'moving van', + 676: 'muzzle', + 677: 'nail', + 678: 'neck brace', + 679: 'necklace', + 680: 'nipple', + 681: 'notebook, notebook computer', + 682: 'obelisk', + 683: 'oboe, hautboy, hautbois', + 684: 'ocarina, sweet potato', + 685: 'odometer, hodometer, mileometer, milometer', + 686: 'oil filter', + 687: 'organ, pipe organ', + 688: 'oscilloscope, scope, cathode-ray oscilloscope, CRO', + 689: 'overskirt', + 690: 'oxcart', + 691: 'oxygen mask', + 692: 'packet', + 693: 'paddle, boat paddle', + 694: 'paddlewheel, paddle wheel', + 695: 'padlock', + 696: 'paintbrush', + 697: "pajama, pyjama, pj's, jammies", + 698: 'palace', + 699: 'panpipe, pandean pipe, syrinx', + 700: 'paper towel', + 701: 'parachute, chute', + 702: 'parallel bars, bars', + 703: 'park bench', + 704: 'parking meter', + 705: 'passenger car, coach, carriage', + 706: 'patio, terrace', + 707: 'pay-phone, pay-station', + 708: 'pedestal, plinth, footstall', + 709: 'pencil box, pencil case', + 710: 'pencil sharpener', + 711: 'perfume, essence', + 712: 'Petri dish', + 713: 'photocopier', + 714: 'pick, plectrum, plectron', + 715: 'pickelhaube', + 716: 'picket fence, paling', + 717: 'pickup, pickup truck', + 718: 'pier', + 719: 'piggy bank, penny bank', + 720: 'pill bottle', + 721: 'pillow', + 722: 'ping-pong ball', + 723: 'pinwheel', + 724: 'pirate, pirate ship', + 725: 'pitcher, ewer', + 726: "plane, carpenter's plane, woodworking plane", + 727: 'planetarium', + 728: 'plastic bag', + 729: 'plate rack', + 730: 'plow, plough', + 731: "plunger, plumber's helper", + 732: 'Polaroid camera, Polaroid Land camera', + 733: 'pole', + 734: 'police van, police wagon, paddy wagon, patrol wagon, wagon, black Maria', + 735: 'poncho', + 736: 'pool table, billiard table, snooker table', + 737: 'pop bottle, soda bottle', + 738: 'pot, flowerpot', + 739: "potter's wheel", + 740: 'power drill', + 741: 'prayer rug, prayer mat', + 742: 'printer', + 743: 'prison, prison house', + 744: 'projectile, missile', + 745: 'projector', + 746: 'puck, hockey puck', + 747: 'punching bag, punch bag, punching ball, punchball', + 748: 'purse', + 749: 'quill, quill pen', + 750: 'quilt, comforter, comfort, puff', + 751: 'racer, race car, racing car', + 752: 'racket, racquet', + 753: 'radiator', + 754: 'radio, wireless', + 755: 'radio telescope, radio reflector', + 756: 'rain barrel', + 757: 'recreational vehicle, RV, R.V.', + 758: 'reel', + 759: 'reflex camera', + 760: 'refrigerator, icebox', + 761: 'remote control, remote', + 762: 'restaurant, eating house, eating place, eatery', + 763: 'revolver, six-gun, six-shooter', + 764: 'rifle', + 765: 'rocking chair, rocker', + 766: 'rotisserie', + 767: 'rubber eraser, rubber, pencil eraser', + 768: 'rugby ball', + 769: 'rule, ruler', + 770: 'running shoe', + 771: 'safe', + 772: 'safety pin', + 773: 'saltshaker, salt shaker', + 774: 'sandal', + 775: 'sarong', + 776: 'sax, saxophone', + 777: 'scabbard', + 778: 'scale, weighing machine', + 779: 'school bus', + 780: 'schooner', + 781: 'scoreboard', + 782: 'screen, CRT screen', + 783: 'screw', + 784: 'screwdriver', + 785: 'seat belt, seatbelt', + 786: 'sewing machine', + 787: 'shield, buckler', + 788: 'shoe shop, shoe-shop, shoe store', + 789: 'shoji', + 790: 'shopping basket', + 791: 'shopping cart', + 792: 'shovel', + 793: 'shower cap', + 794: 'shower curtain', + 795: 'ski', + 796: 'ski mask', + 797: 'sleeping bag', + 798: 'slide rule, slipstick', + 799: 'sliding door', + 800: 'slot, one-armed bandit', + 801: 'snorkel', + 802: 'snowmobile', + 803: 'snowplow, snowplough', + 804: 'soap dispenser', + 805: 'soccer ball', + 806: 'sock', + 807: 'solar dish, solar collector, solar furnace', + 808: 'sombrero', + 809: 'soup bowl', + 810: 'space bar', + 811: 'space heater', + 812: 'space shuttle', + 813: 'spatula', + 814: 'speedboat', + 815: "spider web, spider's web", + 816: 'spindle', + 817: 'sports car, sport car', + 818: 'spotlight, spot', + 819: 'stage', + 820: 'steam locomotive', + 821: 'steel arch bridge', + 822: 'steel drum', + 823: 'stethoscope', + 824: 'stole', + 825: 'stone wall', + 826: 'stopwatch, stop watch', + 827: 'stove', + 828: 'strainer', + 829: 'streetcar, tram, tramcar, trolley, trolley car', + 830: 'stretcher', + 831: 'studio couch, day bed', + 832: 'stupa, tope', + 833: 'submarine, pigboat, sub, U-boat', + 834: 'suit, suit of clothes', + 835: 'sundial', + 836: 'sunglass', + 837: 'sunglasses, dark glasses, shades', + 838: 'sunscreen, sunblock, sun blocker', + 839: 'suspension bridge', + 840: 'swab, swob, mop', + 841: 'sweatshirt', + 842: 'swimming trunks, bathing trunks', + 843: 'swing', + 844: 'switch, electric switch, electrical switch', + 845: 'syringe', + 846: 'table lamp', + 847: 'tank, army tank, armored combat vehicle, armoured combat vehicle', + 848: 'tape player', + 849: 'teapot', + 850: 'teddy, teddy bear', + 851: 'television, television system', + 852: 'tennis ball', + 853: 'thatch, thatched roof', + 854: 'theater curtain, theatre curtain', + 855: 'thimble', + 856: 'thresher, thrasher, threshing machine', + 857: 'throne', + 858: 'tile roof', + 859: 'toaster', + 860: 'tobacco shop, tobacconist shop, tobacconist', + 861: 'toilet seat', + 862: 'torch', + 863: 'totem pole', + 864: 'tow truck, tow car, wrecker', + 865: 'toyshop', + 866: 'tractor', + 867: 'trailer truck, tractor trailer, trucking rig, rig, articulated lorry, semi', + 868: 'tray', + 869: 'trench coat', + 870: 'tricycle, trike, velocipede', + 871: 'trimaran', + 872: 'tripod', + 873: 'triumphal arch', + 874: 'trolleybus, trolley coach, trackless trolley', + 875: 'trombone', + 876: 'tub, vat', + 877: 'turnstile', + 878: 'typewriter keyboard', + 879: 'umbrella', + 880: 'unicycle, monocycle', + 881: 'upright, upright piano', + 882: 'vacuum, vacuum cleaner', + 883: 'vase', + 884: 'vault', + 885: 'velvet', + 886: 'vending machine', + 887: 'vestment', + 888: 'viaduct', + 889: 'violin, fiddle', + 890: 'volleyball', + 891: 'waffle iron', + 892: 'wall clock', + 893: 'wallet, billfold, notecase, pocketbook', + 894: 'wardrobe, closet, press', + 895: 'warplane, military plane', + 896: 'washbasin, handbasin, washbowl, lavabo, wash-hand basin', + 897: 'washer, automatic washer, washing machine', + 898: 'water bottle', + 899: 'water jug', + 900: 'water tower', + 901: 'whiskey jug', + 902: 'whistle', + 903: 'wig', + 904: 'window screen', + 905: 'window shade', + 906: 'Windsor tie', + 907: 'wine bottle', + 908: 'wing', + 909: 'wok', + 910: 'wooden spoon', + 911: 'wool, woolen, woollen', + 912: 'worm fence, snake fence, snake-rail fence, Virginia fence', + 913: 'wreck', + 914: 'yawl', + 915: 'yurt', + 916: 'web site, website, internet site, site', + 917: 'comic book', + 918: 'crossword puzzle, crossword', + 919: 'street sign', + 920: 'traffic light, traffic signal, stoplight', + 921: 'book jacket, dust cover, dust jacket, dust wrapper', + 922: 'menu', + 923: 'plate', + 924: 'guacamole', + 925: 'consomme', + 926: 'hot pot, hotpot', + 927: 'trifle', + 928: 'ice cream, icecream', + 929: 'ice lolly, lolly, lollipop, popsicle', + 930: 'French loaf', + 931: 'bagel, beigel', + 932: 'pretzel', + 933: 'cheeseburger', + 934: 'hotdog, hot dog, red hot', + 935: 'mashed potato', + 936: 'head cabbage', + 937: 'broccoli', + 938: 'cauliflower', + 939: 'zucchini, courgette', + 940: 'spaghetti squash', + 941: 'acorn squash', + 942: 'butternut squash', + 943: 'cucumber, cuke', + 944: 'artichoke, globe artichoke', + 945: 'bell pepper', + 946: 'cardoon', + 947: 'mushroom', + 948: 'Granny Smith', + 949: 'strawberry', + 950: 'orange', + 951: 'lemon', + 952: 'fig', + 953: 'pineapple, ananas', + 954: 'banana', + 955: 'jackfruit, jak, jack', + 956: 'custard apple', + 957: 'pomegranate', + 958: 'hay', + 959: 'carbonara', + 960: 'chocolate sauce, chocolate syrup', + 961: 'dough', + 962: 'meat loaf, meatloaf', + 963: 'pizza, pizza pie', + 964: 'potpie', + 965: 'burrito', + 966: 'red wine', + 967: 'espresso', + 968: 'cup', + 969: 'eggnog', + 970: 'alp', + 971: 'bubble', + 972: 'cliff, drop, drop-off', + 973: 'coral reef', + 974: 'geyser', + 975: 'lakeside, lakeshore', + 976: 'promontory, headland, head, foreland', + 977: 'sandbar, sand bar', + 978: 'seashore, coast, seacoast, sea-coast', + 979: 'valley, vale', + 980: 'volcano', + 981: 'ballplayer, baseball player', + 982: 'groom, bridegroom', + 983: 'scuba diver', + 984: 'rapeseed', + 985: 'daisy', + 986: "yellow lady's slipper, yellow lady-slipper, Cypripedium calceolus, Cypripedium parviflorum", + 987: 'corn', + 988: 'acorn', + 989: 'hip, rose hip, rosehip', + 990: 'buckeye, horse chestnut, conker', + 991: 'coral fungus', + 992: 'agaric', + 993: 'gyromitra', + 994: 'stinkhorn, carrion fungus', + 995: 'earthstar', + 996: 'hen-of-the-woods, hen of the woods, Polyporus frondosus, Grifola frondosa', + 997: 'bolete', + 998: 'ear, spike, capitulum', + 999: 'toilet tissue, toilet paper, bathroom tissue'} \ No newline at end of file diff --git a/meta-openeuler/recipes-ai/mindspore-lite/files/pictures/tench.webp b/meta-openeuler/recipes-ai/mindspore-lite/files/pictures/tench.webp new file mode 100644 index 0000000000000000000000000000000000000000..26cd91cec8df2e796895e80a8a84f3e9469bf2af GIT binary patch literal 24888 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 literal 0 HcmV?d00001 -- Gitee