之前有个项目用了OV,最近有个项目像节省成本不配显卡测试下cpu or intel-gpu推理效果,于是
迅速改动了之前项目代码,测试,然后奇怪的事情发生了,总是处理效果非常差,效果该有的地方没有,不该有的地方都有(你懂的),然后茫然,找朋友测试下,正常,然后就疑惑了,到底有啥区别,看了下他的代码,除了新版本的外,基本和我的思路一样,然后我想肯定我的代码有问题,然后猛然发现了一句:
net.input_info[input_blob].precision = "U8"
holy shit,
之前项目,是输入的是原图,然后再转模型的时候做了--mean_value [127.5,127.5,127.5] --scale 127.5。 而本项目我是外侧做的预处理,然后内部输入是归一化后的图像,所以根本不是U8,所以精度查了很多,不过惊奇的发现虽然该网络效果不好,U8后竟然对边界的寻找找的位置还可以,所以提供了个思路,如果单纯用最小的网络可以实现找边算法,标注根本不需要标注边,普通标注缺陷竟然可以u8后找到边沿,一个不错的课题。
所以一定注意,
不同的网络,有的输入是U8,有的是外部预处理,不需要这步,瞬间检测出缺陷来了。
附录检测图: