今天给大家介绍一个适合在移动端和服务器端运行的实例代码,首先,移动物体的边缘检测是经常需要用到的,比如现在需要检测一个图片中目标物体的四条边,可能大家首先想到的是使用opencv的边缘检测。这种方法不是不行,但如果图片背景比较复杂,有杂物干扰的情况下,这时候opencv就明显不在合适。今天介绍一个GitHub上基于深度学习模型的方法。GitHub地址https://github.com/RRanddom/tf_doc_localisation,该方法首先使用轻量级的mobilenet网络提取网络特征,图片经过cnn网络后得到25x19x4大小的特征图,25x19是输出特征图的大小,4代表热度图,作者使用四个热度图分别预测目标物体的四个顶点,每个顶点专门负责预测一个特点物体顶点坐标位置,cnn网络输出特征值后,经过后处理在特征图上进行归一化和其他后处理操作即可完成输出目标物体的四个顶点坐标位置。
如下为作者给出的部分结果
这个思想类似于上节内容提到的姿态估计,姿态估计中就是使用了这种思想,用18个特征图分别预测人体不同位置骨骼点。作者采用姿态估计的同样思路,得到目标物体四个点坐标,该图对应的结果如下。
作者使用了800x600大小的输入大小作为训练数据输入尺度。同时,作者提供了可供仿真使用的代码。从代码可以看出,作者使用了标准的mobilenet网络,cnn网络用mobilenetv2提取特征,似的cnn网络的参数量极大的下降,降低了模型大小和尺寸,为手机运行提供了资源保障
笔者修改仿真数据代码,生成了10多万的500x600大小的各种不同问题的图片,然后训练了大概几个小时,便能似的模型很快收敛,收敛后的模型转成pb文件并预测,预测效果确实不错,测试集上可以达到100%的准确率,可以将该模型转移到手机端,这样就能实时预测,运行作者提供的tflite文件,可以直接在苹果手机运行,实时性较高。可以说对移动端部署比较好,感兴趣的朋友可以尝试运行一下demo文件。或者可以尝试将主干网络结果又mobilenetv2替换成shufflenet等,尝试对比起性能结果,也可以和残差网络对比。
感兴趣的朋友可以点击关注哦