文章目录
前言
这是最近的一次作业,试试本科竞赛内容应该没啥大问题吧正好水一篇博客.
首先下载数据集,提取码 wwsj
查看数据集给出的是json格式,训练集和测试集有标注(共110张),其余还有无标注的需要自己手工标注。但是既然只是作业又不是去参加比赛,那就直接当小数据量样本训练.
构思
目前数据量较小,而且很明显是一个目标检测任务,并且涉及到算法落地的问题,所以开始之前一定要理清思路,想清楚每一步应该怎么做.
- 找到一个合适的目标检测模型,基于这个小样本数据集进行训练,得到一个效果较好的模型
- 将python训练得到的模型进行转换,转为onnx以及tensorRT等形式,方便后续算法落地
- 有了转换后的模型,进行c++改写模型加载以及检测部分代码
既然是快速实现一次作业,那必然要“站在巨人的肩膀上”,所以使用的大部分都是网上的开源代码.
开始动手
1.数据集准备
从网盘下载数据,因为数据量很小,所以train和test全部拿来训练,一共110张图片.然后把数据集转为voc格式
#将所给的数据转为voc数据集格式
import os
import numpy as np
import codecs
import json
from glob import glob
import cv2
import shutil
from sklearn.model_selection import train_test_split
# 1.标签路径
labelme_path = "./2022 年(第 15 届)中国大学生计算机设计大赛人工智能挑战赛-智慧零售赛项数据集/TrainingDataset/" # 使用labelme打的标签(包含每一张照片和对应json格式的标签)
saved_path = "./VOCdevkit/VOC2007/" # 保存路径
# 2.voc