这是一个基于传统图像处理方法的AI视觉滴定控制程序。
操作步骤
- 安装依赖
pip install -r requirements.txt
- 校准光线
- 运行
vid_chk.py
,按任意键直到显示为目标摄像头,按下q
- 按
w
和s
直到左上角参数在0.01\sim 0.03
- 按
q
后将控制台输出参数输入main.py
- 运行
- 运行主程序
技术说明
变色预测
-
前期分析 透明的溶液,饱和度较低。粉色饱和度较高。故取HSV中的S分析,筛选$S_{\rm{fil}}S>\rm{sensity}$,再根据$\frac{S_{\rm{fil}}}{S}$判断变色区域大小,并避免背景干扰
-
终点检测 透明的溶液色相和变色后不同,即HSV中的H不同。但是任何单点包括平均值不足以反应溶液是否完全变色,故对图像H通道作直方图分析。刚到突变点时,直方图的最高峰位置右移,且位置和透明显著不同。随着继续滴加,峰值继续右移,并且从尖峰变为宽峰。
滴定控制
- 前期 滴入后溶液完全没有变色,可以采用高速滴加。当发现溶液有小区域变色时,稍微降低速度,避免气泡、搅匀等因素干扰。
- 中期 滴入后,溶液发生变色,且在数秒内褪色。这时候距离终点约$1\sim 2,\rm{mL}$,采用较慢的滴定速度($0.05,\rm{mL/s}$),且每次滴入后等待$1\sim 2,\rm{s}$。
- 末期 滴入后,溶液大范围变色,且在数秒至十秒左右褪色。这时继续减慢滴入速率($0.02,\rm{mL/s}$),并每次滴入后终点检测,如认为变色则等待数秒后重新判断。持续4次后,认为到达滴定终点,汇报数据。
意外处理
中期检测可能存在误判。检测符合中期条件后,立即进入中期模式。如果在bounce_time
内判定为中期的样本过少,则退出。bounce_time
使用滑动窗口处理。
特别地,为了避免在末期意外退出,连续2次判定终点成功后,禁用该退出。
类似地,末期也有退出处理,连续判定终点3次以上,禁用退出。
Description
Languages
Python
100%