2017-06-19 88 views
-2

我正在写一个android应用程序,它可以找到给定Set游戏的解决方案。我想处理图像并将其转换为卡片阵列,这是我已经写过的一个类。但是,我之前没有做过任何图像处理,但是我的计划是使用Neuroph这样的东西来创建一个神经网络来识别每张卡片,但是有81张不同的卡片,这样看起来很耗时。我的另一个想法是识别与颜色无关的卡片,以将可能的卡片数量减少到27个,但我仍然不知道如何做到这一点。例如,如果我用这个图像: 识别设置图像中的卡片

我希望能够以提取第一个是没有填充一个单一紫色椭圆形,第二个是3个绿色钻石被填充,第三个是2红带条纹的波浪形。

+0

目前还不清楚你问什么,你问问最好的方法是检测不同的卡?如果是这样,你需要编辑你的问题,包括一个明确的问题:) –

回答

0

目标1:找出独特的卡

这是相当简单的,通过使用像InceptionV3训练图像识别神经网络的特征向量。使用InceptionV3识别您的具体内容有instructions online。哎呀,你只需要为每个独特的卡片获取瓶颈功能,作为你的训练集的一部分。当您获得一张新卡时,请获取其瓶颈功能并将其与使用独特卡瓶颈功能(使用cosine distance)进行比较。具有最小余弦距离的那个是可能的匹配。这只是每张独特卡片的1个训练示例。

目标2:给卡名称

存储与每张卡的例子,瓶颈特征向量的名称。

加成

如果你有时间给每个类型的卡超过1举例来说,做到这一点。您的数据结构将如何[卡类型,瓶颈特征向量]和[卡类型,卡名称]中的另一个。这对于数千个训练样例来说不会很好地扩展,但每张卡类型只有少数几个例子会很好。