面向所有人的图像识别服务-findit

MIT
python3
williamfzc · 2019年05月21日 · 2029 次阅读 · 0 条评论

Find target icon on your picture, and get its position.

一个简单的例子

例如你有两张图片,分别是微信图标:

与包含微信图标的手机截图:

那么,你只需要短短几行代码:

import pprint
from findit import FindIt

fi = FindIt()
fi.load_template('wechat_logo', pic_path='pics/wechat_logo.png')

result = fi.find(
    target_pic_name='screen',
    target_pic_path='pics/screen.png',
)

pprint.pprint(result)

就可以得到:

{'data': { 'wechat_logo': {'FeatureEngine': (524.6688232421875, 364.54248046875),
                           'TemplateEngine': (505.5, 374.5)}},
 'target_name': 'screen',
 'target_path': 'pics/screen.png'}

通过上述数据可以知道,微信图标最可能出现的点位:

  • Feature Matching 的计算结果是 (524, 364)
  • Template Matching 的计算结果是 (505, 374)

这一切 findit 都将替你完成。你只需要在你的框架里调用它。

远程部署能力

为了后续更好的应用,findit 的理论形态应该是配置在服务器上。主要有两个问题:

  • 图像识别效果更精确势必需要更高的算力。服务化之后,计算部分可以使用局域网内更高配置的机器来执行。
  • 顺带解决大量模板图片的管理问题。

通过配置,findit-client 能够连接到本地或者远程的 findit-server,以适应不同的需求。换言之,你可以在其他设备上使用 client 直接调用远程的 findit,而本地无需 opencv 环境。这种做法使得你能够在更低配置的客户机(例如树莓派等)上使用 findit 服务。由于 client 的设计只依赖于 http 请求,你甚至可以使用你喜欢的任何语言来编写 client!

同样的,findit 提供了完善的 docker 与 docker-compose 支持,使得整套部署流程非常非常简单!

项目描述:https://testerhome.com/topics/19218

项目主页:https://github.com/williamfzc/findit

项目文档:https://williamfzc.github.io/findit/

评论列表
暂无评论.