• 11.1-11.10


    图像识别。
    一、搭建环境
    基于python的TensorFlow实现
    1.anaconda的安装
    参考:https://jingyan.baidu.com/article/f0062228503d2afbd3f0c8fe.html
    2.可视化工具:jupyter notebook文学编程 有利于数据分析
    参考:https://www.jianshu.com/p/97fa4ed3edbc
    打开方式:安装完anacoda之后在cmd中输入
    jupyter notebook
    在浏览器弹出的界面中点击new即可开始编写代码。
    关闭方式:在notebook中点击shutdown即可。关闭整个服务:在原来的终端按Control+c两次
    代码单元:这里是你编写代码的地方,通过按 Shift + Enter 运行代码,其结果显示在本单元下方。
    代码单元左边有 In [1]: 这样的序列标记,方便人们查看代码的执行次序。


    Markdown 单元:在这里对文本进行编辑,采用 markdown 的语法规范,可以设置文本格式、插入链接、图片甚至数学公式。
    同样使用 Shift + Enter 运行 markdown 单元来显示格式化的文本。

    类似于 Linux 的 Vim 编辑器,在 notebook 中也有两种模式:

    编辑模式:编辑文本和代码。选中单元并按 Enter 键进入编辑模式,此时单元左侧显示绿色竖线。

    命令模式:用于执行键盘输入的快捷命令。通过 Esc 键进入命令模式,此时单元左侧显示蓝色竖线。

    如果要使用快捷键,首先按 Esc 键进入命令模式,然后按相应的键实现对文档的操作。
    比如切换成代码单元(Y)或 markdown 单元(M),或者在本单元的下方增加一单元(B)。查看所有快捷命令可以按H。

    二、使用keras进行图像识别
    官方文档:https://keras.io/zh/
    https://keras-cn.readthedocs.io/en/latest/other/optimizers/
    1.python3.7退回到3.6

    打开anaconda prompt-->输入conda install python=3.6-->y

    2.安装tensorFlow2.0:

    ①下载安装好对应版本anaconda后,通过命令安装tensorflow2.0(等正式版本上线后需要替换):

    pip install tensorflow==2.0.0-beta1

    ②python虚拟环境

    创建一个新的虚拟环境:

    conda create -n tensorflow python=3.6

    查看已有的虚拟环境:

    conda env list

    切换虚拟环境(tensorflow为你自己创建时的名,在此为tensorflow):

    activate tensorflow

    在此打开jupyter notebook

    在此打开jupyter notebook
    ③新建一个python3文件

    import tensorflow as tf
    print(tf.__path__)    
    print(tf.__version__) //注意是两条杠

    ④检测tensorflow是否安装成功

    pip show tensorflow
    
    #ttributeError: module 'tensorflow' has no attribute '_version_'

    解决方法没有?
    #2.0.0-beta1
    ⑤安装opencv和keras的环境

    pip install keras
    pip install opencv-python

    基于keras的图像分类CNN模型的搭建以及可视化(附详细代码)

    https://blog.csdn.net/u011268787/article/details/79891284

    三、keras框架学习开发
    人工智能小例子(一)https://blog.csdn.net/xvshu/article/details/79026234
    基于keras+openCV的人脸识别(二)https://blog.csdn.net/xvshu/article/details/78863430
    人脸检测时候注意修改好data/haarcascade_frontalface_alt2.xml的路径
    学习资料:python 深度学习【美】弗朗索瓦·肖莱 著 张亮 译

    1.kaggle比赛(数据分析,数学建模)https://blog.csdn.net/lezaimemecha/article/details/78906337

    2.基础线性代数子程序(BLAS,basic linear algebra subprograms)

    四、

    1.使用小工具激活windows
    https://pan.baidu.com/s/1JJ39b6kk34J3wyATvPr7ZA

    2.安装华文行楷字体(可以直接去华军软件搜也可以在我百度网盘里找)https://pan.baidu.com/s/1WW930cM6CeODdPRKEhVIDA
    将.ttf文件拷贝到

    五、模式识别

    1.机器学习通用模板:
    ①定义问题,收集数据集
    ②选择衡量成功的指标
    ③确定评估方法
    ④准备数据
    ⑤开发比基准更好的模型
    ⑥扩大模型规模:开发过拟合的模型
    ⑦模型正则化与调节超参数

    2.阿里云免费接口
    ①多媒体AI - 阿里云人工智能产品-多媒体AI(公测)发布
    https://www.aliyun.com/product/news/detail?&msctype=email&mscareaid=cn&mscsiteid=cn&mscmsgid=2260119110502326459&id=14341&source_type=out_edm_feature_20191105
    ②图片不良场景识别
    https://ai.aliyun.com/lvwang/imglive?spm=5176.12418109.h2v3icoap.229.4ecd29b3e40hpL
    ③openpose框架实现人体骨骼检测
    https://github.com/tensorlayer/openpose-plus

    、人工智能小例子(一)keras模拟一元方程

    https://blog.csdn.net/xvshu/article/details/79026234

    from keras.models import Sequential
    from keras.layers import Dense
    import matplotlib.pyplot as plt
    import numpy as np
    
    #生成-1到1的200均匀分佈的數字
    x= np.linspace(-1,1,200)
    np.random.shuffle(x)
    
    #利用x生成y,并随机加入0.05之内的扰动
    y = 0.5*x + 2 + np.random.normal(0,0.05,(200,))
    
    plt.scatter(x,y)
    plt.show()
    
    #截取160个数据作为训练数据
    #截取40个数据作为测试数据
    x_train = x[:160]
    x_test = x[160:]
    y_train = y[:160]
    y_test = y[160:]
    
    #新建一个流式网络
    model = Sequential()
    
    #增加一个全连接层,输入一个参数,输出一个参数
    model.add(Dense(output_dim=1,input_dim=1))
    
    #编译网络,损失函数mse,优化函数 sgd
    model.compile(loss='mse',optimizer='sgd')
    #训练301次
    for step in range(500):
    cost = model.train_on_batch(x_train,y_train)
    #每100次打印一次损失
    if step%100==0:
    print("cost:",cost)
    
    #使用测试数据,测试损失
    cost = model.evaluate(x_test,y_test,batch_size=40)
    print("test cost:",cost)
    
    #获取第一层网络的权重
    W,b = model.layers[0].get_weights()
    print("w:",W," b:",b)
    
    #画图展示训练结果
    y_pred = model.predict(x_test)
    plt.scatter(x_test,y_test)
    plt.plot(x_test,y_pred)
    
    plt.show()

    二、人工智能小例子(二)-基于keras+openCV的人脸识别

    https://blog.csdn.net/xvshu/article/details/78863430
    1.识别人脸(OpenCV3)

    import cv2
    def CatchUsbVideo(window_name, camera_idx):
    cv2.namedWindow(window_name)
    #视频来源,可以来自一段已存好的视频,也可以直接来自USB摄像头
    cap = cv2.VideoCapture(camera_idx)
    #告诉OpenCV使用人脸识别分类器
    classfier = cv2.CascadeClassifier("D:/opencv/opencv/sources/data/haarcascades/haarcascade_frontalface_alt2.xml")
    #识别出人脸后要画的边框的颜色,RGB格式
    color = (0, 255, 0)
    while cap.isOpened():
    ok, frame = cap.read() #读取一帧数据
    if not ok:
    break
    #将当前帧转换成灰度图像
    grey = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    #人脸检测,1.2和2分别为图片缩放比例和需要检测的有效点数
    faceRects = classfier.detectMultiScale(grey, scaleFactor = 1.2, minNeighbors = 3, minSize = (32, 32))
    if len(faceRects) > 0: #大于0则检测到人脸
    for faceRect in faceRects: #单独框出每一张人脸
    x, y, w, h = faceRect
    cv2.rectangle(frame, (x - 10, y - 10), (x + w + 10, y + h + 10), color, 2)
    
    #显示图像
    cv2.imshow(window_name, frame)
    c = cv2.waitKey(10)
    if c & 0xFF == ord('q'):
    break
    
    #释放摄像头并销毁所有窗口
    cap.release()
    cv2.destroyAllWindows()
    
    if __name__ == '__main__':
    CatchUsbVideo("find face", 0)
  • 相关阅读:
    第04组 Alpha冲刺 总结
    第04组 Alpha冲刺 (6/6)
    软工实践个人总结
    第09组 每周小结 (3/3)
    第09组 每周小结 (2/3)
    第09组 每周小结 (1/3)
    第09组 Beta冲刺 总结
    第09组 Beta冲刺 (5/5)
    第09组 Beta冲刺 (4/5)
    第09组 Beta冲刺 (3/5)
  • 原文地址:https://www.cnblogs.com/StarZhai/p/11832774.html
Copyright © 2020-2023  润新知