控制PC用眼

阿什维尼·库马尔·辛哈

4484

科技的不断发展使数码产品成为我们生活中重要的一部分。虽然身体健全的人可以有效地操作,但那些身体残疾的人经常面临这样做的问题。值得注意的是,全球有数百万人患有神经共轭障碍或其他形式的瘫痪,使他们无法移动除头部和眼睛以外的任何身体部位。

为了克服这一挑战,我们会做一个聪明的PC,它使一个残障人控制与面部运动帮助的计算系统。这是我们的,我们将用在控制系统中更多的改进的下一个版本即将更新原型的第一个版本。

坐标在PC运动=(1080,720)至(0,0)
x= 1080 y= 720
mapx的=(x)中,mapy =(y)的

该解决方案适用于三个不同的功能:

  1. 右眼闪烁检测系统运行
  2. 利用图像处理检测眼球运动
  3. 翻译眼球运动和眨眼来控制PC的GUI

挑战

上述功能伴随着几个不同的挑战,我们已经通过不同的步骤解决了这些挑战,使设备完美运行。它们是:

  • 自然和故意眨眼之间的区别

我们的眼睛在固定的时间间隔闪烁不由自主地让他们远离灰尘和湿气。为了执行左或右鼠标点击,这里的眼睛将不得不有意闪烁。然而,必须有某种形式,使得正确地进行设备的功能和不自主故意眨眼之间进行区分的功能。

要做到这一点,集成两个传感器,这样当两个传感器同时检测到眼睛眨眼时,就被认为是自然眨眼。如果眨眼只发生在一只眼睛(左眼或右眼),那么它将被检测为故意眨眼,导致鼠标左眼或右眼点击。

虽然这种技术是非常有效的,有一个问题 - 它增加了材料清单到几百卢比。此外,有一只眼睛问题的人不能使用此解决方案。

因此,该解决方案已被修改与夹杂物的代码,其中,如果眼睛的第二内闪烁,那么它被检测为自然。如果以眼闪烁超过几秒钟,然后将其检测为故意的。

  • 检测使用图像处理的眼球运动

要使鼠标光标移动,人眼需要引用至少一个对象,并使鼠标相对于该对象移动。通过眼球运动,残疾人可以轻松地操作电脑。但是眼动的图像处理并不能给出准确的结果,在弱光或完全黑暗的条件下工作,整个过程相当困难。

因此,安装在传感器轨道眼球运动光每当人移动他/她的头。

.翻译眼球运动和眨眼来控制PC的GUI

我们开发了一种检测人眼眨眼的解决方案,并将光的运动安装在眼镜上。但如果不把它们放在PC GUI上以获得准确的鼠标光标移动,它们的价值就毫无用处。虽然它需要覆盖整个电脑显示器的长度和宽度,但人的头部只能在一定程度上移动。为了解决这个问题,一个小的头部移动应该转换成大像素的鼠标光标移动。

先决条件

我们已经讨论了目标和项目的挑战。现在,我们需要发展的基础。

首先,准备了最新的Raspbian OS的SD卡,并检查其是否有预先安装Python的IDLE。接下来,安装项目的下列Python库和模块:

  • OpenCV的
  • pynput
  • numpy
  • gpiozero

要做到这一点,打开终端,并使用下面的命令:

安装python-opencv
Sudo pip3安装numpy
须藤PIP3安装gpiozero
Sudo pip3安装pynput

Sudo pip3安装nmap

安装所有的库之后,包括树莓派内OpenCV的官方GitHub的仓库使用下面的命令。

git的克隆https://github.com/opencv/opencv

现在,我们已经准备好代码。

编码

在这里,你将需要修改OpenCV的库文件夹和保险丝代码在它准备好设备发现的示例代码。为此,打开文件夹的OpenCV平台→文件夹→Python和选择mouse.py代码。复制并粘贴到名为headcontrolGUI.py一个新的文本文件,然后保存。

您需要从传感器获得鼠标点击时的眨眼序列。要获得它,可以访问gpio管脚,并将gpiozero模块导入代码中来读取blink传感器数据。

另外,导入pynput模块,为树莓派操作系统的GUI创建一个虚拟鼠标输入。

接下来,创建一个如果检查眼部状态。如果眼睛状态=眨眼,则设置4秒以确定这是故意眨眼还是自然眨眼。如果是故意的,将pynput命令传递给虚拟鼠标左键或右击。

建设

将眨眼传感器安装在玻璃上,并将其连接到树莓派针上。将相机连接到RPi板上,并将其放置在双眼中间超过15厘米的距离,这样整个脸就能完美地贴合在相机框架内。

测试

戴上眼镜,运行代码。确保用鼠标在眼睛中标记红色的光(如视频框中所示)来跟踪。如果成功,可以通过眼球运动来操作电脑。要移动鼠标,请向左、向右、向上和向下移动一只眼睛。要点击鼠标,眨眼最多4秒。

下载源代码


分享您的思想和评论

请输入您的评论!
请在这里输入您的姓名