[1.2 单个神经元的分类作用以sigmoid函数作为神经元的激励函数为例,这个大家可能稍微熟悉一点,毕竟我们逻辑回归部分重点提到了这个非线性的函数,把输入值压缩成0-1之间

在4399上玩了一个寻找不一样的色彩小游戏,如下图所示:

目的就是找到颜色不同的方块,点一次升一次级,限定时间25秒,点的快时间可以不变。最开始2x2,3x3,4x4,5x5等等逐渐增多,最后9x9不变。我的思路首先是截一张图,这里我用的是pyscreenshot模块,让用户用鼠标点击游戏总方块的左上顶角和右下顶角,这样确定了目标区域。以9x9的时候为例,代码如下:

import cv2

import numpy as np

import os

import pyscreenshot as ss

import time

def onMouse(event, x, y, flags, param):

global flag, pLeftTop, pRightBottom

if event == cv2.EVENT_LBUTTONDOWN:

if flag:

pLeftTop = (x,y)

else:

pRightBottom = (x,y)

flag = False

flag = True

pLeftTop = None

pRightBottom = None

cv2.namedWindow('frame')

cv2.setMouseCallback('frame', onMouse)

img = ss.grab(bbox=(0,0,1300,768))

img = np.array(img)

cv2.imshow('frame', img)

if cv2.waitKey(0) & 0xff == ord(' '):

cv2.destroyWindow('frame')

flag, pLeftTop, pRightBottom是全局变量,onMouse是获取鼠标的回调函数。

while True:

img = ss.grab(bbox=(0,0,1300,768))

img = np.array(img)

target = img[pLeftTop[1]:pRightBottom[1],pLeftTop[0]:pRightBottom[0]]

gray = cv2.cvtColor(target, cv2.COLOR_BGR2GRAY)

ret, thresh = cv2.threshold(gray, 220, 255, cv2.THRESH_BINARY_INV)

接下来二值化处理,我这里设的阈值是220,取反处理,结果如下:

[win7 下,安装的VS2010,然后搭配opencv2.4.3运行,报错为:fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突 。通过网上查询,给错的答案大同小

im, contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

centers = []

centersGray = []

#d = 0

for c in contours:

(x,y), radius = cv2.minEnclosingCircle(c)

x, y = int(x), int(y)

centers.append((x,y))

centersGray.append(gray[y,x])

#d+=1

#cv2.circle(target, (x,y), 2, (0,255,0), 2)

#cv2.putText(target, str(d), (x,y), cv2.FONT_HERSHEY_SIMPLEX,0.5,(0,0,0))

接下来通过边界找到所有的颜色方块,取消上面代码的注释可以看到如下:

sets = set(centersGray)

index = None

for s in sets:

if centersGray.count(s) == 1:

index = centersGray.index(s)

break接下来就是找到不同的那个颜色块,可以通过list的自带count函数快速找到,在图上显示就是:

realX = centers[index][0] + pLeftTop[0]

realY = centers[index][1] + pLeftTop[1]

os.system('xdotool mousemove '+str(realX)+' '+str(realY))

os.system('xdotool click 1')

最后获取屏幕上真实的像素位置,用xdotool模拟鼠标移动和点击即可。

[1. 引言上一节我们讲完了各种激励函数的优缺点和选择,以及网络的大小以及正则化对神经网络的影响。这一节我们讲一讲输入数据预处理、正则化以及损失函数设定的一些事情。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐