“ 本故事纯属虚构,如有雷同纯属巧合。”
0 手游与端游
在继续研究相关技术之前,石胖子想到,现在手游很火,不论是电脑的网游,还有手机上的网游,本质上没啥区别,只不过运行的硬件载体不同。
既然是要赚快钱嘛,当然是哪个成本低,收益高,做哪个呀。石胖子研究了下二者单账号的硬件成本。
电脑游戏
2500的电脑主机,大概同时可以开启5-8个游戏客户端
单账号成本 = 2500/5-8 ≈ 500 ~ 300 元 / 账号
手机游戏
2500的电脑主机,大概同时可以开启15-20个手游模拟器
单账号成本 = 2500/15-20 ≈ 170 ~ 125元 / 账号
01 方案
最合算的方案是用物理机(俗称台式机)做硬件支持,使用模拟器来模拟手机。这个方案呢,和现在大部分的手游外挂工作室模式类似。
真用手机就太不合算了,基本不考虑
但是石胖子作为专业人士,肯定会有所突破啊。他打算做出自己的特点。决定用多线程脚本进行多个模拟器控制。再写个后台管理端,来管理多个物理机 之间的数据交互。这样可以做到下面两点。
同一台电脑上的多个账号能相互通信,便于资源的整合
多台电脑上的外挂要能相互通信,便于整体资源的整合
不要看这是两个是互联网行业里,系统的最基本功能,但是在外挂这片天地,却很少.......具体的用处之后某篇文章再来介绍。
02 截图分析
回到于原来的话题,石胖子想自己研究下图片识别。为此,有好几个周末都不能陪孩子去放风筝,逛公园。但收获也是不少的。
首先从游戏的角度而言。需要识别的内容,位置其实基本固定。
其次国内各种快餐手游,号称各种画面精美,次时代。但...
各种自动寻路的按钮
任务基本都可以一键自动完成
各种菜单按钮位置基本固定
大家最近玩手游,有多久没自己跑过地图了.....
这些游戏画面的内容识别,并没有想象中难。各种图形矩阵、向量的计算量大大下降。
03 模拟器
了解完情况,石胖子开始先搭建环境。现在蓬勃的手机模拟器行业,有各种现成的方案可以使用。
石胖子,随便找了一圈,就找到了,好几种现成的手机模拟器。
这些手游的模拟器,都有几个共同点
机型是安卓的
源文件里,都有adb的工具包
分辨率、FPS都可以自定义
毕竟因为安卓作为开源系统,对于模拟器的支持开发而言,更友好,很多智能机也是使用安卓系统。开源不一定最好,但是受众更容易多。
挑挑捡捡的,石胖子选了一款模拟器来做实验。
04 深度学习
很简单的下载好模拟器,并且下载了游戏。首先使用模拟器自带的截图工具,手动获取了图片。然后开始了图片识别的编码工作。
本来石胖子,是想做那种高大全的智能识别系统,不过这就存在2个问题。
样本量不足
通用性不强
深度学习,不论用什么框架,你是谷歌的TensorFlow也好,Facebook的PyTorch也罢,或者其他框架。进行相关工作都有个前提,你需要大量的样本!
比如这次疫情中阿里ai提供的病情诊断。首先碰到的第一个难题肯定不是选什么框架,如何调整算法,而是,大量的学习样本,从何而来。
石胖子不可能花大量时间进行游戏的截图,然后对每一张截图进行数据标注。
自己一张一张做,来获取学习样本。这很不现实。
就算石胖子,努力的做了这件事情。等换个游戏,很可能之前做的事情就白费了。
这该如何是好......
< 未完待续 >
往下拖下面还有“图片识别”的小科普哦
码农在中年
微信扫描二维码,关注我的公众号
-1 Opencv
知名度可以算是 计算机视觉领域的http了。没听过,或者没用过它的人,都不太好意思说,自己了解,或者做过相关工作。
非商用的话,它是免费的,而且跨平台,跨语言。轻量级还高效。简直就是“小而美”+“大而全”的经典集合。
-2 灰度图
好处是降低了色彩干扰,一般做法是根据一定的算法,将颜色的rgb红黄蓝三原色的数值混合起来,变成灰度值Grey
一般标准算法是Grey = 0.299*R + 0.587*G + 0.114*B
简单来说,就是保留了画面的主要特性的情况下,降低了画面的复杂度。
-3 二值化
灰度完之后,根据对灰度值的要求,选定一定区间,颜色在区间内,则显示黑色。不在,则显示白色。
可以让有限的计算机性能,可以集中在需要关注的地方。因为把图变成了非黑即白的点。也能用0,1还表示图片的信息了。这点是计算机最会处理的事情了。
使用得当,技术才无罪,爬虫的前车之鉴,谨记。
< 科普时间END>