因此,在寻求基于图像识别的一些软件自动化方面,我开始学习一些使用opencv模板匹配和pyautogui库的python。我知道诸如autohotkey或autoit之类的工具可能会使工作更轻松,但是我想使用python,因为我对一般机器学习也很感兴趣。
在使用python之前,我已经研究了Sikuli,Autohotkey和Autoit,但过一会儿他们认为它们太麻烦了,无法使用。我见过用那些框架实现的软件,这些框架可以实现我想完成的任务。
我想要做的是:将一组图像匹配到当前屏幕,然后在找到它们时单击它们。该过程是无状态的,因此每次都应匹配所有模板。
要求:
我在python中对此的第一个实现有效,但是每个图像花费了大约1秒的时间。因此,当我遍历它们(20张图像)时,大约花费了20秒。我通过使用joblib库来使用多线程来减少这种情况。这将时间减少了75%(取决于可用的内核),但仍然太慢。同样,它似乎仍然不是一种可扩展的方法。
所以我的问题是:
一个同事给我一个想法,将CNN(卷积神经网络)作为顶层,并且仅在分类器找到任何模板时才运行循环。这样真的可以解决问题吗?它仍然需要在某个时刻遍历所有图像。
希望我能明确我的问题。如有必要,我也可以提供代码示例。