[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"tool-satojkovic--DeepLogo":3,"similar-satojkovic--DeepLogo":93},{"id":4,"github_repo":5,"name":6,"description_en":7,"description_zh":8,"ai_summary_zh":8,"readme_en":9,"readme_zh":10,"quickstart_zh":11,"use_case_zh":12,"hero_image_url":13,"owner_login":14,"owner_name":14,"owner_avatar_url":15,"owner_bio":16,"owner_company":16,"owner_location":17,"owner_email":18,"owner_twitter":14,"owner_website":19,"owner_url":20,"languages":21,"stars":26,"forks":27,"last_commit_at":28,"license":29,"difficulty_score":30,"env_os":31,"env_gpu":32,"env_ram":33,"env_deps":34,"category_tags":45,"github_topics":49,"view_count":57,"oss_zip_url":16,"oss_zip_packed_at":16,"status":58,"created_at":59,"updated_at":60,"faqs":61,"releases":92},8532,"satojkovic\u002FDeepLogo","DeepLogo","A brand logo detection system using tensorflow object detection API.","DeepLogo 是一个基于 TensorFlow 对象检测 API 构建的品牌标志识别系统，旨在帮助开发者快速打造高精度的 Logo 检测模型。它主要解决了在复杂图像中自动定位并识别特定品牌标志的技术难题，适用于广告监测、品牌保护及多媒体内容分析等场景。\n\n该项目特别适合具备一定深度学习基础的开发者与研究人员使用。DeepLogo 的核心优势在于其便捷的定制化流程：用户无需从零开始训练，只需利用自己在 COCO、KITTI 或 OpenImages 等数据集上预训练的模型（如 SSD 架构），配合自有数据集进行微调，即可轻松获得满足需求的检测能力。项目官方提供了完整的训练与评估环境示例，包括对 Flickr Logos 27 数据集的预处理脚本和 TFRecord 生成工具，大幅降低了复现门槛。此外，作者已推出升级版本 DeepLogo2，引入了更先进的 DETR 架构，为追求更高性能的用户提供了新选择。无论是希望验证算法效果的研究者，还是需要集成 Logo 识别功能的应用开发者，DeepLogo 都是一个值得参考的开源起点。","# [Update]\n\n## [DeepLogo2](https:\u002F\u002Fgithub.com\u002Fsatojkovic\u002FDeepLogo2) with [DETR](https:\u002F\u002Fgithub.com\u002Ffacebookresearch\u002Fdetr) is available\n\n# DeepLogo\n\nA brand logo detection system using Tensorflow Object Detection API.\n\n## Description\n\nTensorflow Object Detection API is the easy to use framework for creating a custom deep learning model that solves object detection problems.\n\nIf you already have your own dataset, you can simply create a custom model with sufficient accuracy using a collection of detection models pre-trained on COCO, KITTI, and OpenImages dataset.\n\nDeepLogo provides training and evaluation environments of Tensorflow Object Detection API for creating a brand logo detection model.\n\n## Detection Results\n\nThese are some detection results by DeepLogo.\n\n|||\n|---|---|\n|![example1](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsatojkovic_DeepLogo_readme_7105297c4850.png)|![example2](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsatojkovic_DeepLogo_readme_edefb89c05a6.png)|\n|![example3](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsatojkovic_DeepLogo_readme_3fcec93af364.png)|![example4](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsatojkovic_DeepLogo_readme_1d99b28e57b0.png)|\n|![example5](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsatojkovic_DeepLogo_readme_fc87ece7d963.png)|![example6](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsatojkovic_DeepLogo_readme_f62c8e669a00.png)|\n\n## Training DeepLogo\n\nDeepLogo uses SSD as a backbone network and fine-tunes pre-trained SSD released in the tensorflow\u002Fmodels repository.\n\nIn order to use that pre-trained model, setting up the tensorflow\u002Fmodels repository first.\n\n1. Clone the tensorflow\u002Fmodels repository and download the pre-trained model from model zoo.\n   ```shell\n   $ git clone https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Fmodels.git\n   $ cd models\u002Fresearch\u002Fobject_detection\n   $ wget http:\u002F\u002Fdownload.tensorflow.org\u002Fmodels\u002Fobject_detection\u002Fssd_inception_v2_coco_2018_01_28.tar.gz\n   $ tar zxvf ssd_inception_v2_coco_2018_01_28.tar.gz\n   ```\n   Tensorflow Object Detection API depends on many other libraries.\n   For detailed steps to setup, please follow the [official installation instruction](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Fmodels\u002Fblob\u002Fmaster\u002Fresearch\u002Fobject_detection\u002Fg3doc\u002Ftf1.md).\n3. Clone the DeepLogo repository.\n   ```shell\n   $ git clone https:\u002F\u002Fgithub.com\u002Fsatojkovic\u002FDeepLogo.git\n   ```\n4. Download the flickr logos 27 dataset from [here](http:\u002F\u002Fimage.ntua.gr\u002Fiva\u002Fdatasets\u002Fflickr_logos\u002F).\n\n   The flickr logos 27 dataset contains 27 classes of brand logo images downloaded from Flickr. The brands included in the dataset are: Adidas, Apple, BMW, Citroen, Coca Cola, DHL, Fedex, Ferrari, Ford, Google, Heineken, HP, McDonalds, Mini, Nbc, Nike, Pepsi, Porsche, Puma, Red Bull, Sprite, Starbucks, Intel, Texaco, Unisef, Vodafone and Yahoo.\n   ```shell\n   $ cd DeepLogo\n   $ wget http:\u002F\u002Fimage.ntua.gr\u002Fiva\u002Fdatasets\u002Fflickr_logos\u002Fflickr_logos_27_dataset.tar.gz\n   $ tar zxvf flickr_logos_27_dataset.tar.gz\n   $ cd flickr_logos_27_dataset\n   $ tar zxvf flickr_logos_27_dataset_images.tar.gz\n   $ cd ..\u002F\n   ```\n5. Preprocess\n\n   The flickr logos 27 dataset contains an annotation file for training. This file includes not valid annotations such as an empty size bounding box. Therefore these annotations are removed in this preprocess step, then class names are converted into class numbers and generate two preprocessed files. These two files are used to generate tfrecord files.\n   ```shell\n   $ cd DeepLogo\n   $ python preproc_annot.py\n   ```\n6. Generate tfrecord files.\n\n   The Tensorflow Object Detection API expects data to be in the TFRecord format. Run the following command to convert from preprocessed files into TFRecords.\n   ```shell\n   $ python gen_tfrecord.py --train_or_test train --csv_input flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_training_set_annotation_cropped.txt --img_dir flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_images --output_path train.tfrecord\n   $ python gen_tfrecord.py --train_or_test test --csv_input flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_test_set_annotation_cropped.txt --img_dir flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_images --output_path test.tfrecord\n   ```\n7. Training\n\n   The Tensorflow Object Detection API has a python script for training called train.py. This script needs two arguments `--pipeline_config_path` and `--train_dir`. (see below)\n\n   DeepLogo assumes that the current directory is under the DeepLogo directory and also the path of pre-trained SSD and tfrecord is the relative path from DeepLogo (these paths are written in ssd_inception_v2.config). Therefore create a symbolic link to the directory of tensorflow\u002Fmodels\u002Fresearch\u002Fobject_detection\u002Fssd_inception_v2_coco_2018_01_28 first, then run the training script.\n\n   ```shell\n   $ OBJECT_DETECTION_API_DIR={path to tensorflow\u002Fmodels\u002Fresearch\u002Fobject_detection}\n   $ ln -s ${OBJECT_DETECTION_API_DIR}\u002Fssd_inception_v2_coco_2018_01_28 ssd_inception_v2_coco_2018_01_28\n   $ python ${OBJECT_DETECTION_API_DIR}\u002Flegacy\u002Ftrain.py --logtostderr --pipeline_config_path=ssd_inception_v2_coco.config --train_dir=training\n   ```\n\n   Note: DeepLogo doesn't work in Tensorflow 2.0. When you try to train DeepLogo, checkout `5ba3c3f5` of tensorflow\u002Fmodels.\n\n## Testing\n\n1. Exporting a trained model for inference\n\n   For testing a model, you should export it to a Tensorflow graph proto first.\n\n   ```shell\n   $ STEPS={the number of steps when the model is saved}\n   $ python ${OBJECT_DETECTION_API_DIR}\u002Fexport_inference_graph.py --input_type=image_tensor --pipeline_config_path=ssd_inception_v2_coco.config --trained_checkpoint_prefix=model.ckpt-${STEPS} --output_directory=logos_inference_graph\n   ```\n\n   Alternatively, you can download a trained model from [GoogleDrive](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1lFTUFe69t6SPMv3Thv6ExuNyJHtDxLXM)!\n\n2. Inference\n\n   Run the following command. The results of logo detection are saved in `--output_dir`.\n\n   ```shell\n   $ python logo_detection.py --model_name logos_inference_graph\u002F --label_map flickr_logos_27_label_map.pbtxt --test_annot_text flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_test_set_annotation_cropped.txt --test_image_dir flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_images --output_dir detect_results\n   ```\n\n## Evaluation\n\nBefore evaluating the trained model saved in training directory, edit the `num_examples` field in training\u002Fpipeline.config file.\n\nThe `num_examples` field represents the number of test images which is equal to number of lines present in a flickr_logos_27_dataset_test_set_annotation_cropped.txt file.\n\n```shell\n$ wc -l flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_test_set_annotation_cropped.txt\n     438 flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_test_set_annotation_cropped.txt\n```\n\n```protobuf\neval_config: {\n  num_examples: 438\n  # Note: The below line limits the evaluation process to 10 evaluations.\n  # Remove the below line to evaluate indefinitely.\n  max_evals: 10\n}\n```\n\nThen start evaluation process by using eval.py provided within tensorflow\u002Fmodels repository.\n\n```shell\n$ python ${OBJECT_DETECTION_API_DIR}\u002Flegacy\u002Feval.py --logtostderr --checkpoint_dir=training --eval_dir=eval --pipeline_config_path=training\u002Fpipeline.config\n```\n\nAfter a while you will get evaluation results. If you want to check the results visually, open tensorboard in your browser.\n\n```shell\n$ tensorboard --logdir=eval\u002F\n```\n\n## License\n\nMIT\n","# [更新]\n\n## 基于DETR的[DeepLogo2](https:\u002F\u002Fgithub.com\u002Fsatojkovic\u002FDeepLogo2)现已发布\n\n# DeepLogo\n\n一个使用TensorFlow目标检测API的品牌logo检测系统。\n\n## 描述\n\nTensorFlow目标检测API是一个易于使用的框架，用于构建解决目标检测问题的自定义深度学习模型。如果您已经拥有自己的数据集，只需利用在COCO、KITTI和OpenImages数据集上预训练的一系列检测模型，即可轻松创建出具有足够精度的自定义模型。\n\nDeepLogo提供了TensorFlow目标检测API的训练与评估环境，以帮助用户构建品牌logo检测模型。\n\n## 检测结果\n\n以下是DeepLogo的一些检测结果。\n\n|||\n|---|---|\n|![example1](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsatojkovic_DeepLogo_readme_7105297c4850.png)|![example2](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsatojkovic_DeepLogo_readme_edefb89c05a6.png)|\n|![example3](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsatojkovic_DeepLogo_readme_3fcec93af364.png)|![example4](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsatojkovic_DeepLogo_readme_1d99b28e57b0.png)|\n|![example5](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsatojkovic_DeepLogo_readme_fc87ece7d963.png)|![example6](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsatojkovic_DeepLogo_readme_f62c8e669a00.png)|\n\n## 训练DeepLogo\n\nDeepLogo以SSD作为骨干网络，并对tensorflow\u002Fmodels仓库中发布的预训练SSD模型进行微调。为了使用该预训练模型，首先需要设置tensorflow\u002Fmodels仓库。\n\n1. 克隆tensorflow\u002Fmodels仓库并从模型库下载预训练模型。\n   ```shell\n   $ git clone https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Fmodels.git\n   $ cd models\u002Fresearch\u002Fobject_detection\n   $ wget http:\u002F\u002Fdownload.tensorflow.org\u002Fmodels\u002Fobject_detection\u002Fssd_inception_v2_coco_2018_01_28.tar.gz\n   $ tar zxvf ssd_inception_v2_coco_2018_01_28.tar.gz\n   ```\n   TensorFlow目标检测API依赖于许多其他库。有关详细的安装步骤，请参阅[官方安装说明](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Fmodels\u002Fblob\u002Fmaster\u002Fresearch\u002Fobject_detection\u002Fg3doc\u002Ftf1.md)。\n3. 克隆DeepLogo仓库。\n   ```shell\n   $ git clone https:\u002F\u002Fgithub.com\u002Fsatojkovic\u002FDeepLogo.git\n   ```\n4. 从[这里](http:\u002F\u002Fimage.ntua.gr\u002Fiva\u002Fdatasets\u002Fflickr_logos\u002F)下载Flickr Logos 27数据集。\n\n   Flickr Logos 27数据集包含从Flickr下载的27类品牌logo图像。数据集中包含的品牌有：Adidas、Apple、BMW、Citroen、Coca Cola、DHL、Fedex、Ferrari、Ford、Google、Heineken、HP、McDonalds、Mini、Nbc、Nike、Pepsi、Porsche、Puma、Red Bull、Sprite、Starbucks、Intel、Texaco、Unisef、Vodafone和Yahoo。\n   ```shell\n   $ cd DeepLogo\n   $ wget http:\u002F\u002Fimage.ntua.gr\u002Fiva\u002Fdatasets\u002Fflickr_logos\u002Fflickr_logos_27_dataset.tar.gz\n   $ tar zxvf flickr_logos_27_dataset.tar.gz\n   $ cd flickr_logos_27_dataset\n   $ tar zxvf flickr_logos_27_dataset_images.tar.gz\n   $ cd ..\u002F\n   ```\n5. 预处理\n\n   Flickr Logos 27数据集包含一份用于训练的标注文件。该文件中存在无效的标注，例如空尺寸的边界框。因此，在此预处理步骤中会移除这些无效标注，并将类别名称转换为类别编号，生成两个预处理后的文件。这两个文件将用于生成TFRecord文件。\n   ```shell\n   $ cd DeepLogo\n   $ python preproc_annot.py\n   ```\n6. 生成TFRecord文件。\n\n   TensorFlow目标检测API期望数据以TFRecord格式提供。运行以下命令，将预处理后的文件转换为TFRecords。\n   ```shell\n   $ python gen_tfrecord.py --train_or_test train --csv_input flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_training_set_annotation_cropped.txt --img_dir flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_images --output_path train.tfrecord\n   $ python gen_tfrecord.py --train_or_test test --csv_input flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_test_set_annotation_cropped.txt --img_dir flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_images --output_path test.tfrecord\n   ```\n7. 训练\n\n   TensorFlow目标检测API提供了一个名为train.py的Python脚本用于训练。该脚本需要两个参数`--pipeline_config_path`和`--train_dir`。（见下文）\n\n   DeepLogo假设当前目录位于DeepLogo目录下，并且预训练SSD和TFRecord文件的路径是相对于DeepLogo的相对路径（这些路径已在ssd_inception_v2.config中写明）。因此，首先创建指向tensorflow\u002Fmodels\u002Fresearch\u002Fobject_detection\u002Fssd_inception_v2_coco_2018_01_28目录的符号链接，然后运行训练脚本。\n   ```shell\n   $ OBJECT_DETECTION_API_DIR={tensorflow\u002Fmodels\u002Fresearch\u002Fobject_detection的路径}\n   $ ln -s ${OBJECT_DETECTION_API_DIR}\u002Fssd_inception_v2_coco_2018_01_28 ssd_inception_v2_coco_2018_01_28\n   $ python ${OBJECT_DETECTION_API_DIR}\u002Flegacy\u002Ftrain.py --logtostderr --pipeline_config_path=ssd_inception_v2_coco.config --train_dir=training\n   ```\n\n   注意：DeepLogo无法在TensorFlow 2.0中运行。尝试训练DeepLogo时，请切换到tensorflow\u002Fmodels的`5ba3c3f5`版本。\n\n## 测试\n\n1. 导出已训练模型用于推理\n\n   要测试模型，首先需要将其导出为TensorFlow图协议缓冲区。\n\n   ```shell\n   $ STEPS={保存模型时的步数}\n   $ python ${OBJECT_DETECTION_API_DIR}\u002Fexport_inference_graph.py --input_type=image_tensor --pipeline_config_path=ssd_inception_v2_coco.config --trained_checkpoint_prefix=model.ckpt-${STEPS} --output_directory=logos_inference_graph\n   ```\n\n   或者，您也可以从[GoogleDrive](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1lFTUFe69t6SPMv3Thv6ExuNyJHtDxLXM)下载已训练好的模型！\n\n2. 推理\n\n   运行以下命令。logo检测的结果将保存在`--output_dir`中。\n   ```shell\n   $ python logo_detection.py --model_name logos_inference_graph\u002F --label_map flickr_logos_27_label_map.pbtxt --test_annot_text flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_test_set_annotation_cropped.txt --test_image_dir flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_images --output_dir detect_results\n   ```\n\n## 评估\n\n在评估保存在训练目录中的已训练模型之前，请编辑 `training\u002Fpipeline.config` 文件中的 `num_examples` 字段。\n\n`num_examples` 字段表示测试图像的数量，其值应等于 `flickr_logos_27_dataset_test_set_annotation_cropped.txt` 文件中的行数。\n\n```shell\n$ wc -l flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_test_set_annotation_cropped.txt\n     438 flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_test_set_annotation_cropped.txt\n```\n\n```protobuf\neval_config: {\n  num_examples: 438\n  # 注意：以下行将评估过程限制为10次。 \n  # 如果要去掉此限制以进行无限次评估，请删除该行。\n  max_evals: 10\n}\n```\n\n然后，使用 tensorflow\u002Fmodels 仓库中提供的 `eval.py` 脚本启动评估过程。\n\n```shell\n$ python ${OBJECT_DETECTION_API_DIR}\u002Flegacy\u002Feval.py --logtostderr --checkpoint_dir=training --eval_dir=eval --pipeline_config_path=training\u002Fpipeline.config\n```\n\n片刻之后，您将获得评估结果。如果您想以可视化方式查看结果，请在浏览器中打开 TensorBoard。\n\n```shell\n$ tensorboard --logdir=eval\u002F\n```\n\n## 许可证\n\nMIT","# DeepLogo 快速上手指南\n\nDeepLogo 是一个基于 TensorFlow Object Detection API 的品牌 Logo 检测系统。它利用在 COCO、KITTI 和 OpenImages 数据集上预训练的 SSD 模型进行微调，能够快速构建高精度的品牌 Logo 识别模型。\n\n## 1. 环境准备\n\n在开始之前，请确保您的开发环境满足以下要求：\n\n*   **操作系统**: Linux (推荐 Ubuntu) 或 macOS\n*   **Python 版本**: Python 3.x\n*   **TensorFlow 版本**: **必须使用 TensorFlow 1.x** (DeepLogo 不支持 TensorFlow 2.0)\n*   **依赖库**:\n    *   `tensorflow\u002Fmodels` 仓库 (Object Detection API)\n    *   `protobuf`, `lxml`, `Pillow`, `matplotlib` 等常规深度学习依赖\n\n> **注意**：由于该项目依赖较旧的 TensorFlow Object Detection API，建议创建独立的虚拟环境以避免版本冲突。\n\n## 2. 安装步骤\n\n### 第一步：配置 TensorFlow Object Detection API\n\n克隆官方仓库并下载预训练的 SSD 模型（此处以 `ssd_inception_v2` 为例）：\n\n```shell\n$ git clone https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Fmodels.git\n$ cd models\u002Fresearch\u002Fobject_detection\n$ wget http:\u002F\u002Fdownload.tensorflow.org\u002Fmodels\u002Fobject_detection\u002Fssd_inception_v2_coco_2018_01_28.tar.gz\n$ tar zxvf ssd_inception_v2_coco_2018_01_28.tar.gz\n```\n\n*注：请参照 [TensorFlow Object Detection API 官方安装文档](https:\u002F\u002Fgithub.com\u002Ftensorflow\u002Fmodels\u002Fblob\u002Fmaster\u002Fresearch\u002Fobject_detection\u002Fg3doc\u002Ftf1.md) 完成其余依赖库的安装和环境变量配置。*\n\n### 第二步：获取 DeepLogo 源码\n\n```shell\n$ cd \u002Fyour\u002Fworkspace\u002Fpath\n$ git clone https:\u002F\u002Fgithub.com\u002Fsatojkovic\u002FDeepLogo.git\n$ cd DeepLogo\n```\n\n### 第三步：下载数据集\n\n本项目默认使用 **Flickr Logos 27** 数据集（包含 Adidas, Apple, BMW 等 27 个品牌）：\n\n```shell\n$ wget http:\u002F\u002Fimage.ntua.gr\u002Fiva\u002Fdatasets\u002Fflickr_logos\u002Fflickr_logos_27_dataset.tar.gz\n$ tar zxvf flickr_logos_27_dataset.tar.gz\n$ cd flickr_logos_27_dataset\n$ tar zxvf flickr_logos_27_dataset_images.tar.gz\n$ cd ..\u002F\n```\n*(国内用户若下载缓慢，可尝试寻找国内镜像源或使用代理加速)*\n\n### 第四步：数据预处理\n\n运行脚本清理无效标注（如空边界框），并将类别名称转换为数字 ID：\n\n```shell\n$ python preproc_annot.py\n```\n\n### 第五步：生成 TFRecord 文件\n\n将预处理后的数据转换为 TensorFlow 所需的 TFRecord 格式：\n\n```shell\n$ python gen_tfrecord.py --train_or_test train --csv_input flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_training_set_annotation_cropped.txt --img_dir flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_images --output_path train.tfrecord\n$ python gen_tfrecord.py --train_or_test test --csv_input flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_test_set_annotation_cropped.txt --img_dir flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_images --output_path test.tfrecord\n```\n\n### 第六步：建立软链接并启动训练\n\n为了让配置文件找到预训练模型，需要建立软链接。**重要提示**：使用前请确保 `tensorflow\u002Fmodels` 仓库检出到兼容版本 `5ba3c3f5`。\n\n```shell\n$ OBJECT_DETECTION_API_DIR={path to tensorflow\u002Fmodels\u002Fresearch\u002Fobject_detection}\n# 将预训练模型目录链接到 DeepLogo 根目录\n$ ln -s ${OBJECT_DETECTION_API_DIR}\u002Fssd_inception_v2_coco_2018_01_28 ssd_inception_v2_coco_2018_01_28\n\n# 开始训练\n$ python ${OBJECT_DETECTION_API_DIR}\u002Flegacy\u002Ftrain.py --logtostderr --pipeline_config_path=ssd_inception_v2_coco.config --train_dir=training\n```\n\n## 3. 基本使用\n\n训练完成后，您可以导出模型并对新图片进行 Logo 检测。\n\n### 方法 A：使用自己训练的模型\n\n1.  **导出推理图 (Inference Graph)**\n    假设模型在第 `{STEPS}` 步保存（例如 `model.ckpt-50000`）：\n\n    ```shell\n    $ STEPS=50000\n    $ python ${OBJECT_DETECTION_API_DIR}\u002Fexport_inference_graph.py --input_type=image_tensor --pipeline_config_path=ssd_inception_v2_coco.config --trained_checkpoint_prefix=model.ckpt-${STEPS} --output_directory=logos_inference_graph\n    ```\n\n2.  **执行检测**\n    运行检测脚本，结果将保存在 `detect_results` 目录中：\n\n    ```shell\n    $ python logo_detection.py --model_name logos_inference_graph\u002F --label_map flickr_logos_27_label_map.pbtxt --test_annot_text flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_test_set_annotation_cropped.txt --test_image_dir flickr_logos_27_dataset\u002Fflickr_logos_27_dataset_images --output_dir detect_results\n    ```\n\n### 方法 B：直接使用预训练模型（快速体验）\n\n如果您不想重新训练，可以直接从 [Google Drive](https:\u002F\u002Fdrive.google.com\u002Fopen?id=1lFTUFe69t6SPMv3Thv6ExuNyJHtDxLXM) 下载作者训练好的模型，解压后放入项目目录，然后直接执行上述 **第 2 步 (执行检测)** 命令即可看到效果。\n\n### 模型评估（可选）\n\n如需量化评估模型性能，请先修改 `training\u002Fpipeline.config` 中的 `num_examples` 为测试集图片数量（Flickr Logos 27 测试集通常为 438 张），然后运行：\n\n```shell\n$ python ${OBJECT_DETECTION_API_DIR}\u002Flegacy\u002Feval.py --logtostderr --checkpoint_dir=training --eval_dir=eval --pipeline_config_path=training\u002Fpipeline.config\n```\n\n使用 TensorBoard 可视化评估结果：\n\n```shell\n$ tensorboard --logdir=eval\u002F\n```","某大型零售连锁企业的市场合规团队，每天需要审核数千张门店上传的促销海报，以确保品牌标识使用规范且无未授权的竞品露出。\n\n### 没有 DeepLogo 时\n- **人工效率低下**：审核员需肉眼逐张检查图片，处理海量数据时耗时极长，严重拖慢营销活动的上线节奏。\n- **漏检率高**：在背景复杂或 Logo 尺寸较小的情况下，人眼极易疲劳导致遗漏，无法保证 100% 的识别准确率。\n- **标准难以统一**：不同审核员对“是否违规”的判断尺度不一，缺乏客观的技术标准，容易引发内部争议。\n- **无法实时反馈**：门店上传物料后需等待数小时甚至隔天才能收到反馈，错失最佳营销调整窗口。\n\n### 使用 DeepLogo 后\n- **自动化批量处理**：利用基于 TensorFlow 的目标检测能力，DeepLogo 可瞬间完成成千上万张图片的扫描，将审核周期从数天缩短至分钟级。\n- **精准定位多品牌**：模型经过预训练微调，能精准识别包括 Adidas、Apple、Coca Cola 等 27 类常见品牌 Logo，即使在遮挡或小目标场景下也能稳定输出边界框。\n- **量化合规报告**：系统自动输出包含品牌类别和置信度的结构化数据，为合规判断提供统一、可追溯的技术依据。\n- **实时拦截违规**：集成至上传流程后，DeepLogo 能即时标记含竞品 Logo 的海报并退回修改，实现“上传即审核”的闭环管理。\n\nDeepLogo 将原本依赖人力的模糊定性工作，转化为高效、精准且可量化的自动化智能检测流程。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fsatojkovic_DeepLogo_7105297c.png","satojkovic","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fsatojkovic_866ae767.jpg",null,"Tokyo","satojkovic@gmail.com","https:\u002F\u002Fstackoverflow.com\u002Fusers\u002F2220465","https:\u002F\u002Fgithub.com\u002Fsatojkovic",[22],{"name":23,"color":24,"percentage":25},"Python","#3572A5",100,527,155,"2026-04-16T03:08:08","MIT",4,"Linux, macOS, Windows","未说明（基于 TensorFlow Object Detection API，通常建议使用 NVIDIA GPU 加速训练，但 README 未指定具体型号或显存要求）","未说明",{"notes":35,"python":36,"dependencies":37},"该项目明确不支持 TensorFlow 2.0，必须使用 TensorFlow 1.x 版本。安装时需克隆 tensorflow\u002Fmodels 仓库并检出特定提交哈希值（5ba3c3f5）。需要手动下载 Flickr Logos 27 数据集和预训练的 SSD Inception V2 COCO 模型。运行前需执行预处理脚本清理标注文件并生成 TFRecord 格式数据。","未说明（需兼容 TensorFlow 1.x 环境，因明确指出不支持 TensorFlow 2.0）",[38,39,40,41,42,43,44],"tensorflow (1.x 版本，具体需对应 tensorflow\u002Fmodels 仓库的 5ba3c3f5 提交)","tensorflow\u002Fmodels (Object Detection API)","protobuf","Pillow","lxml","jupyter","matplotlib",[46,47,48],"图像","插件","开发框架",[50,51,52,53,54,55,56],"brand-logo-detection","tensorflow","convolutional-neural-networks","object-detection-api","cnn","object-detection","deep-learning",2,"ready","2026-03-27T02:49:30.150509","2026-04-18T00:45:43.152218",[62,67,72,77,82,87],{"id":63,"question_zh":64,"answer_zh":65,"source_url":66},38209,"你们会发布训练好的模型吗？","是的，作者已经发布了训练好的模型。请查看项目 README.md 文件中的“测试（testing）”部分以获取下载和使用说明。","https:\u002F\u002Fgithub.com\u002Fsatojkovic\u002FDeepLogo\u002Fissues\u002F37",{"id":68,"question_zh":69,"answer_zh":70,"source_url":71},38210,"如何获取模型的准确率结果？","根据作者提供的数据，模型在训练过程中的表现如下：\n- 第 3000 步的最小批次损失（Minibatch loss）：58.923489\n- 最小批次准确率（Minibatch accuracy）：96.9%\n- 验证集准确率（Validation accuracy）：87.8%\n- 测试集准确率（Test accuracy）：88.1%","https:\u002F\u002Fgithub.com\u002Fsatojkovic\u002FDeepLogo\u002Fissues\u002F1",{"id":73,"question_zh":74,"answer_zh":75,"source_url":76},38211,"运行训练脚本时提示找不到 'ssd_inception_v2.config' 文件怎么办？","这是一个配置文件名称错误的问题。在调用训练函数时，应将配置文件参数从 `ssd_inception_v2.config` 修改为 `ssd_inception_v2_coco.config`（缺少了 'coco' 后缀）。\n正确的命令示例：\n`python ${OBJECT_DETECTION_API_DIR}\u002Flegacy\u002Ftrain.py --logtostderr --pipeline_config_path=ssd_inception_v2_coco.config --train_dir=training`","https:\u002F\u002Fgithub.com\u002Fsatojkovic\u002FDeepLogo\u002Fissues\u002F35",{"id":78,"question_zh":79,"answer_zh":80,"source_url":81},38212,"导入 common 模块时报错 'AttributeError: module 'common' has no attribute 'CLASS_NAME'' 如何解决？","该错误通常是因为本地文件缺失或路径配置错误导致的。请检查仓库中是否包含 `common` 相关文件，确保文件已正确下载到本地目录中。有用户反馈这是自己的失误，文件实际上存在于仓库中，重新检查文件完整性即可解决。","https:\u002F\u002Fgithub.com\u002Fsatojkovic\u002FDeepLogo\u002Fissues\u002F9",{"id":83,"question_zh":84,"answer_zh":85,"source_url":86},38213,"DeepLogo 能否在没有标注文件的情况下自动检测并绘制 Logo 的边界框？","虽然该项目主要用于评估模型性能时需要 `--test_annot_text` 参数提供标注文件，但用户询问是否可以在没有边界框标注的情况下仅使用 `logo_detection.py` 进行推理。目前 Issue 中主要提出了该疑问，指出在推理步骤中通常需要标注文件来评估性能，若需用于纯自动化定位任务，可能需要修改代码以移除对标注文件的强制依赖，具体命令格式需参考源码逻辑调整。","https:\u002F\u002Fgithub.com\u002Fsatojkovic\u002FDeepLogo\u002Fissues\u002F39",{"id":88,"question_zh":89,"answer_zh":90,"source_url":91},38214,"链接指向 TensorFlow Object Detection API 时出现 404 错误怎么办？","这是由于外部链接失效导致的。作者已确认该问题并感谢用户的反馈。建议直接访问 TensorFlow Object Detection API 的官方 GitHub 仓库或最新文档页面获取资源，不再依赖项目中可能过期的旧链接。","https:\u002F\u002Fgithub.com\u002Fsatojkovic\u002FDeepLogo\u002Fissues\u002F40",[],[94,105,113,122,131,139],{"id":95,"name":96,"github_repo":97,"description_zh":98,"stars":99,"difficulty_score":100,"last_commit_at":101,"category_tags":102,"status":58},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[103,48,46,104],"Agent","数据工具",{"id":106,"name":107,"github_repo":108,"description_zh":109,"stars":110,"difficulty_score":100,"last_commit_at":111,"category_tags":112,"status":58},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[48,46,103],{"id":114,"name":115,"github_repo":116,"description_zh":117,"stars":118,"difficulty_score":57,"last_commit_at":119,"category_tags":120,"status":58},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",159267,"2026-04-17T11:29:14",[48,103,121],"语言模型",{"id":123,"name":124,"github_repo":125,"description_zh":126,"stars":127,"difficulty_score":128,"last_commit_at":129,"category_tags":130,"status":58},8272,"opencode","anomalyco\u002Fopencode","OpenCode 是一款开源的 AI 编程助手（Coding Agent），旨在像一位智能搭档一样融入您的开发流程。它不仅仅是一个代码补全插件，而是一个能够理解项目上下文、自主规划任务并执行复杂编码操作的智能体。无论是生成全新功能、重构现有代码，还是排查难以定位的 Bug，OpenCode 都能通过自然语言交互高效完成，显著减少开发者在重复性劳动和上下文切换上的时间消耗。\n\n这款工具专为软件开发者、工程师及技术研究人员设计，特别适合希望利用大模型能力来提升编码效率、加速原型开发或处理遗留代码维护的专业人群。其核心亮点在于完全开源的架构，这意味着用户可以审查代码逻辑、自定义行为策略，甚至私有化部署以保障数据安全，彻底打破了传统闭源 AI 助手的“黑盒”限制。\n\n在技术体验上，OpenCode 提供了灵活的终端界面（Terminal UI）和正在测试中的桌面应用程序，支持 macOS、Windows 及 Linux 全平台。它兼容多种包管理工具，安装便捷，并能无缝集成到现有的开发环境中。无论您是追求极致控制权的资深极客，还是渴望提升产出的独立开发者，OpenCode 都提供了一个透明、可信",144296,1,"2026-04-16T14:50:03",[103,47],{"id":132,"name":133,"github_repo":134,"description_zh":135,"stars":136,"difficulty_score":57,"last_commit_at":137,"category_tags":138,"status":58},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[48,46,103],{"id":140,"name":141,"github_repo":142,"description_zh":143,"stars":144,"difficulty_score":57,"last_commit_at":145,"category_tags":146,"status":58},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[47,103,46,48]]