汉字检测、字母检测、手写数字检测、藏文检测、甲骨文检测在我之前的文章中都有做过了,今天主要是因为实际项目的需要,之前的汉字检测模型较为古老了还使用的yolov3时期的模型,检测精度和推理速度都有不小的滞后了,这里要基于yolov5轻量级的模型来开发构建新版的目标检测模型,首先看下效果图:
![](https://img-blog.csdnimg.cn/img_convert/c020259f6ec9c349ec0c0de2c009e190.gif)
接下来简单看下数据集情况:
![](https://img-blog.csdnimg.cn/img_convert/5aa68bb423a940409342eb51a868d6d1.png)
YOLO格式标注文件截图如下:
![](https://img-blog.csdnimg.cn/img_convert/f20f9245782e4a11bdbc5b336b0ee064.png)
实例标注内容如下所示:
17 0.245192 0.617788 0.038462 0.038462
6 0.102163 0.830529 0.045673 0.045673
16 0.894231 0.096154 0.134615 0.134615
4 0.456731 0.524038 0.134615 0.134615
15 0.367788 0.317308 0.269231 0.269231
VOC格式数据标注文件截图如下:
![](https://img-blog.csdnimg.cn/img_convert/abdb36ebf31f4ea69f3f82040b632c92.png)
实例标注内容如下所示:
<annotation>
<folder>DATASET</folder>
<filename>0ace8eaf-8e86-488b-9229-95255c69158c.jpg</filename>
<source>
<database>The DATASET Database</database>
<annotation>DATASET</annotation>
<image>DATASET</image>
</source>
<owner>
<name>YMGZS</name>
</owner>
<size>
<width>416</width>
<height>416</height>
<depth>3</depth>
</size>
<segmented>0</segmented>
<object>
<name>17</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>214</xmin>
<ymin>302</ymin>
<xmax>230</xmax>
<ymax>318</ymax>
</bndbox>
</object>
<object>
<name>16</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>210</xmin>
<ymin>67</ymin>
<xmax>229</xmax>
<ymax>86</ymax>
</bndbox>
</object>
<object>
<name>18</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>260</xmin>
<ymin>7</ymin>
<xmax>274</xmax>
<ymax>21</ymax>
</bndbox>
</object>
<object>
<name>10</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>121</xmin>
<ymin>103</ymin>
<xmax>143</xmax>
<ymax>125</ymax>
</bndbox>
</object>
<object>
<name>11</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>296</xmin>
<ymin>289</ymin>
<xmax>352</xmax>
<ymax>345</ymax>
</bndbox>
</object>
<object>
<name>0</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>56</xmin>
<ymin>132</ymin>
<xmax>196</xmax>
<ymax>272</ymax>
</bndbox>
</object>
<object>
<name>0</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>213</xmin>
<ymin>142</ymin>
<xmax>353</xmax>
<ymax>282</ymax>
</bndbox>
</object>
</annotation>
因为是主打轻量级网络,这里选择了也是最为轻量级的n系列的模型,最终训练得到的模型文件不足4MB大小,网络结构图如下所示:
![](https://img-blog.csdnimg.cn/img_convert/b1229b3f98834b7a8e1137d8f078b830.png)
默认100次epoch的计算,结果目录如下所示:
【混淆矩阵】
![](https://img-blog.csdnimg.cn/img_convert/50bcd03531ce4788a76ca9a36b05091b.png)
【F1值曲线】
![](https://img-blog.csdnimg.cn/img_convert/b97578a8ba044603ba65e483aa207e7d.png)
【PR曲线】
![](https://img-blog.csdnimg.cn/img_convert/5330bc37e28c4841974bf484f897aff8.png)
【训练日志可视化】
![](https://img-blog.csdnimg.cn/img_convert/7607df4819da4883a289b82933315d31.png)
【batch计算实例】
![](https://img-blog.csdnimg.cn/img_convert/0534dc40a5e147eda83739d40fb8a9f9.png)
可视化界面推理样例如下:
![](https://img-blog.csdnimg.cn/img_convert/ced8bac6c5f94237817f36ead5a6ccfd.png)
![](https://img-blog.csdnimg.cn/img_convert/9e8bfcaabf9045ebb4982ffc777c11ea.png)
![](https://img-blog.csdnimg.cn/img_convert/20adf2777e354c94b2d7a5a48bcf5320.png)
从评估指标结果上面来看检测效果还是很不错的。
![](https://img-blog.csdnimg.cn/img_convert/8e8d7908a4c04c5587e970b43e9ac032.png)