前言:本文简单总结了自己在计算机视觉算法开发过程中的几个设计方法。
目录
1.针对图像的线性操作
2.逻辑复杂并不代表处理效率低
3.好的算法一定有细节考量
4. 异常检测算法设计必须要有异常数据
5. 传统算法也要制作数据集
1.针对图像的线性操作
在计算机视觉算法设计中,传统图像处理方法很多都是属于线性操作,这些线性操作的顺序可以改变,其结果是一样的,改变顺序对精度没有影响,但是不同顺序的线性操作算法的运行效率是不一样的,甚至会相差很大,因此算法设计者需要在完成算法精度要求后仔细考虑其顺序是否合理,能否在运行效率上在提升一些;
2.逻辑复杂并不代表处理效率低
在图像异常检测中,复杂的逻辑不代表算法的处理效率低,相反有时候复杂的逻辑带来更高的算法运行速度,因为判断语句是不占用处理时间的,单一的逻辑往往会带来更多的冗余操作。因此算法设计者需要对每一个操作考量其必要性,或者这些操作有没有合并的可能。
3.好的算法一定有细节考量
在算法设计思路的大方向确定后,需要精细打磨算法,才能设计出高召回率,低误报率的算法,这需要算法开发者仔细考量,决不能在异常判断时一刀切,粗暴的设计往往很难达到较高的准确率,甚至会把已经确定的正确的方向带偏。
4. 异常检测算法设计必须要有异常数据
在异常检测算法设计中,优秀的算法都是以大量的异常数据为基础,只有具备了大量的异常数据,才能提取出异常数据的共有特征,从而设计出具有较好鲁棒性的算法,在缺少异常数据的情况下,往往很难设计出好的算法,数据量少的情况下不具备提取共有的异常特征。
在异常检测算法设计过程中,最好是在收集完异常数据后再进行算法开发工作,以免所设计的算法策略方向不对,导致事倍功半。算法的开发流程很重要,先后顺序千万不要搞错。
5. 传统算法也要制作数据集
很多人觉得只要机器学习,深度学习算法才需要制作数据集,其实传统算法也是需要数据集的,一个好的数据集能帮你快速找到合适的参数阈值,提高算法开发效率,所以不要觉得花时间去制作传统算法的数据集是浪费时间。