【共享学习】关于存图那些事儿
存图是机器视觉领域绕不过去的环节,逢年过节,机器视觉从业者见面寒暄第一句多半都是:“今天你家设备丢图了吗?”针对机器视觉存图原理及常见问题点,结合个人多年经验做出解答。

要想获得解决方案,首先需要了解原理。为向大家更直观地描述存图的完整过程,画了一张精简的图如下:


结合个人经验,总结如下:

  1.  非图像处理模块都是获取内存图像地址(称为浅拷贝),因此耗时短,内存占用低;图像处理模块、深度学习模块在获取内存图像地址后,还需要将图像数据拷贝复制(格式不同情况下还需要转换)到指定图像对象(称为深拷贝),因此耗时长、内存占用高。
  2.  由上图可知,图像越大,则复制图像数据、压缩图像、写入磁盘IO整个过程的耗时就越长
  3.  内容丰富的图像可压缩信息量小,因此压缩率分别选择90%和30%,图像大小差异不大;内容单一的图像可压缩信息量大,因此压缩率分别选择90%和30%,图像大小差异较大。因此,对于内容丰富的图像,压缩率选择90%可能比压缩率选择30%耗时更短,因为图像压缩也需要CPU参与计算(采用PCA等压缩算法),会增加耗时
  4.  高速存图时,耗时瓶颈在读写磁盘IO。因为只有读写磁盘IO不是在内存(RAM)中进行的,而内存的带宽通常是硬盘的几十倍。因此,想要提高存图速度,除了提升CPU外,更重要的是提升硬盘的读写速度,如将机械硬盘更换为高速的固态硬盘(SSD)
  5.  高速存图时,耗时波动瓶颈在CPU。Windows系统是多任务操作系统,可以同时处理多个进程,背后实现机制是复杂的中断策略(分时调度策略)。假设有两个进程A和B,则CPU会执行A一段时间,然后中断,跳转执行B一段时间,再跳转到A执行,如此往复,直到两个进程都执行结束。因此,当CPU利用率较高时(例如大于70%),CPU中断的时间就会变长,进而导致存图耗时变长。因此,除了提升CPU、关闭非必要进程外,还可以通过在任务管理器中提升指定进程的优先级,使得该进程得到更多的CPU。任务管理器提升进程优先级的操作方法如下图所示。


版权声明:本文为V社区用户原创内容,转载时必须标注文章的来源(V社区),文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:v-club@hikrobotics.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
上一篇

2D相机也能做3D偏移抓取?VM轻松搞定!

下一篇

【共享学习】关于深度学习显卡推理那些事儿

评论请先登录 登录
全部评论 3

学习到了

2023-10-12 08:46:07 广东省
回复

学到了,非常有用,感谢分享,666666

2023-09-13 20:54:42 陕西省
回复

学到了学到了~~~

2023-09-11 13:39:50 浙江省
回复
  • 1
Lv.0
2
关注
48
粉丝
13
创作
87
获赞
相关阅读
  • 探寻机器视觉新星|第二届“启智杯”机器视觉设计大赛获奖名单公布
    2024-04-08 浏览 0
  • 每日分享|3D视觉成像之双目立体视觉原理
    2024-03-21 浏览 0
  • WCS对接-OPCUA及MC协议对接
    2024-03-30 浏览 0
  • 海康AMR应用场景中蜂鸣器的使用
    2024-04-03 浏览 0

请升级浏览器版本

您正在使用的浏览器版本过低,请升级最新版本以获得更好的体验。

推荐使用以下浏览器