当前位置: 首页 > 网络应用技术

大学生人工智能挑战 - 智能零售检测到算法到实施算法的算法

时间:2023-03-07 14:20:25 网络应用技术

  这是最近的任务。尝试本科竞赛的内容。应该没有大问题。只是一个博客。

  首先下载数据集,提取代码wwsj

  查看数据集是JSON格式。训练集和测试集被标记(总计110)。其余的应由自己手动标记。但是,由于它只是作业,并且不参加比赛,因此它直接被培训为小型数据数量样本。

  目前,数据量很小,显然是目标检测任务,它涉及算法实现的问题,因此您必须在开始之前澄清自己的思想,并考虑每一步该做什么。

  由于这是对家庭作业的快速实现,因此有必要“站在巨人的肩膀上”,因此大多数都在Internet开源代码上使用。

  从网络磁盘下载数据,因为数据量很小,因此训练和测试都用于培训,总共有110张图片。然后将数据集转到VOC格式

  数据集如下

  准备好数据集,然后找到一个良好的培训模型。为了方便部署,我在这里选择了Yolox。当以后转向ONNX格式或其他问题无法转换时,大多数其他型号将是不兼容的。为简单起见,请直接选择Yolox,并使用您自己的代码代码打开ONNX和TRT。

  Yolox克隆后,更改相应的类别数量,类别的名称,将您刚刚准备好的数据复制到数据集。下载YOLOX_S的预训练模型,然后默认要更改300epochif,启动火车(用于保存,直接半精度训练),您可以转到yolox_base.py更改max_epoch。训练需要很短的时间,很快就可以在训练场上获得表现良好的模型。

  然后验证模型效果

  使用模型预测图片

  OPENCV不支持中文显示。通常,需要其他字符库或重写putText。当然,您还可以尝试使用PIL的ImageDraw绘制图片,这等同于重写绘图功能。

  我们目前得到的是Pytorch生成的PTH。我们的目标是ONNX和TRT。我们可以使用export_onnx.py获取ONNX文件。由于具有ONNXSIM,因此优化了转换模型,并且大小将比PTH小得多。

  trt.py可以获取trt的.ngine文件,但是如果您想要trt文件。此时

  可以将此部分引用到Yolox中的演示/张力下的CPP以进行模仿,也可以根据Tensorrt附带的一个示例来重写,并且也可以参考一些在线开源代码。如果您想快速实现,可以参考此https://gitee.com/xiaoyuercv/tensorrt-yolox/tree/master

  内部的cmakelists根据自己的路径介绍库和链接,然后其代码中有一个很小的位置,需要自行添加。这应该是最近已经更新了Tensorrt。

  基本上无需移动其他地方,只需更改您自己的类别和一些参数即可。然后根据您的需求添加一些功能。例如,我想在每张图片,信心和总价中获取产品的名称

  目前,输入图片路径进行检测。在后期,您可以将其重写以用捕获捕获相机来检测它。当然,您还可以使用Python构建一个简单的API来直接调用预测模型。我必须说,确实是牛皮,YoLox培训对效果很好,而其他模型也不是理想的选择。之前的数据。

  配置一系列环境,例如Tensorrt,Torch2trt,Apex,OpenCV ...应该平滑。如果有问题,您可以与评论区域进行讨论。如果还有更多问题,我将拥有一个配置环境的博客。

  原始:https://juejin.cn/post/7097091846806962213