# Quick Start of Recognition This tutorial contains 3 parts: Environment Preparation, Image Recognition Experience, and Unknown Category Image Recognition Experience. If the image category already exists in the image index database, then you can take a reference to chapter [Image Recognition Experience](#image_recognition_experience),to complete the progress of image recognition;If you wish to recognize unknow category image, which is not included in the index database,you can take a reference to chapter [Unknown Category Image Recognition Experience](#unkonw_category_image_recognition_experience),to complete the process of creating an index to recognize it。 ## Catalogue * [1. Enviroment Preparation](#enviroment_preperation ) * [2. Image Recognition Experience](#image_recognition_experience) * [2.1 Download and Unzip the Inference Model and Demo Data](#download_and_unzip_the_inference_model_and_demo_data) * [2.2 Product Recognition and Retrieval](#Product_recognition_and_retrival) * [2.2.1 Single Image Recognition](#recognition_of_single_image) * [2.2.2 Folder-based Batch Recognition](#folder_based_batch_recognition) * [3. Unknown Category Image Recognition Experience](#unkonw_category_image_recognition_experience) * [3.1 Prepare for the new images and labels](#3.1) * [3.2 Build a new Index Library](#build_a_new_index_library) * [3.3 Recognize the Unknown Category Images](#Image_differentiation_based_on_the_new_index_library) ## 1. Enviroment Preparation * Installation:Please take a reference to [Quick Installation ](./install_en.md)to configure the PaddleClas environment. * Using the following command to enter Folder `deploy`. All content and commands in this section need to be run in folder `deploy`. ``` cd deploy ``` ## 2. Image Recognition Experience The detection model with the recognition inference model for the 4 directions (Logo, Cartoon Face, Vehicle, Product), the address for downloading the test data and the address of the corresponding configuration file are as follows. | Models Introduction | Recommended Scenarios | inference Model | Predict Config File | Config File to Build Index Database | | ------------ | ------------- | -------- | ------- | -------- | | Generic mainbody detection model | General Scenarios |[Model Download Link](https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/inference/ppyolov2_r50vd_dcn_mainbody_v1.0_infer.tar) | - | - | | Logo Recognition Model | Logo Scenario | [Model Download Link](https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/inference/logo_rec_ResNet50_Logo3K_v1.0_infer.tar) | [inference_logo.yaml](../../../deploy/configs/inference_logo.yaml) | [build_logo.yaml](../../../deploy/configs/build_logo.yaml) | | Cartoon Face Recognition Model| Cartoon Face Scenario | [Model Download Link](https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/inference/cartoon_rec_ResNet50_iCartoon_v1.0_infer.tar) | [inference_cartoon.yaml](../../../deploy/configs/inference_cartoon.yaml) | [build_cartoon.yaml](../../../deploy/configs/build_cartoon.yaml) | | Vehicle Subclassification Model | Vehicle Scenario | [Model Download Link](https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/inference/vehicle_cls_ResNet50_CompCars_v1.0_infer.tar) | [inference_vehicle.yaml](../../../deploy/configs/inference_vehicle.yaml) | [build_vehicle.yaml](../../../deploy/configs/build_vehicle.yaml) | | Product Recignition Model | Product Scenario | [Model Download Link](https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/inference/product_ResNet50_vd_Inshop_v1.0_infer.tar) | [inference_product.yaml](../../../deploy/configs/inference_product.yaml) | [build_product.yaml](../../../deploy/configs/build_product.yaml) | Demo data in this tutorial can be downloaded here: [download link](https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/data/recognition_demo_data_v1.0.tar). **Attention** 1. If you do not have wget installed on Windows, you can download the model by copying the link into your browser and unzipping it in the appropriate folder; for Linux or macOS users, you can right-click and copy the download link to download it via the `wget` command. 2. If you want to install `wget` on macOS, you can run the following command. ```shell # install homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"; # install wget brew install wget ``` 3. If you want to isntall `wget` on Windows, you can refer to [link](https://www.cnblogs.com/jeshy/p/10518062.html). If you want to install `tar` on Windows, you can refer to [link](https://www.cnblogs.com/chooperman/p/14190107.html). * You can download and unzip the data and models by following the command below ```shell mkdir models cd models # Download and unzip the inference model wget {Models download link} && tar -xf {Name of the tar archive} cd .. # Download the demo data and unzip wget {Data download link} && tar -xf {Name of the tar archive} ``` ### 2.1 Download and Unzip the Inference Model and Demo Data Take the product recognition as an example, download the detection model, recognition model and product recognition demo data with the following commands. ```shell mkdir models cd models # Download the generic detection inference model and unzip it wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/inference/ppyolov2_r50vd_dcn_mainbody_v1.0_infer.tar && tar -xf ppyolov2_r50vd_dcn_mainbody_v1.0_infer.tar # Download and unpack the inference model wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/models/inference/product_ResNet50_vd_aliproduct_v1.0_infer.tar && tar -xf product_ResNet50_vd_aliproduct_v1.0_infer.tar cd .. # Download the demo data and unzip it wget https://paddle-imagenet-models-name.bj.bcebos.com/dygraph/rec/data/recognition_demo_data_v1.0.tar && tar -xf recognition_demo_data_v1.0.tar ``` Once unpacked, the `recognition_demo_data_v1.0` folder should have the following file structure. ``` ├── recognition_demo_data_v1.0 │ ├── gallery_cartoon │ ├── gallery_logo │ ├── gallery_product │ ├── gallery_vehicle │ ├── test_cartoon │ ├── test_logo │ ├── test_product │ └── test_vehicle ├── ... ``` here, original images to build index are in folder `gallery_xxx`, test images are in folder `test_xxx`. You can also access specific folder for more details. The `models` folder should have the following file structure. ``` ├── product_ResNet50_vd_aliproduct_v1.0_infer │ ├── inference.pdiparams │ ├── inference.pdiparams.info │ └── inference.pdmodel ├── ppyolov2_r50vd_dcn_mainbody_v1.0_infer │ ├── inference.pdiparams │ ├── inference.pdiparams.info │ └── inference.pdmodel ``` ### 2.2 Product Recognition and Retrieval Take the product recognition demo as an example to show the recognition and retrieval process (if you wish to try other scenarios of recognition and retrieval, replace the corresponding configuration file after downloading and unzipping the corresponding demo data and model to complete the prediction)。 #### 2.2.1 Single Image Recognition Run the following command to identify and retrieve the image `./recognition_demo_data_v1.0/test_product/daoxiangcunjinzhubing_6.jpg` for recognition and retrieval ```shell # use the following command to predict using GPU. python3.7 python/predict_system.py -c configs/inference_product.yaml # use the following command to predict using CPU python3.7 python/predict_system.py -c configs/inference_product.yaml ``` **Note:** Program lib used to build index is compliled on our machine, if error occured because of the environment, you can refer to [vector search tutorial](../../../deploy/vector_search/README.md) to rebuild the lib. The image to be retrieved is shown below.