肥罗-阿勇 发表于 2022-10-26 12:27:20

图形化玩转人工智能机器学习


       在学习人工智能机器学习的过程中,一般的流程是获取图片(拍照或者爬虫)、处理图片、标注图片、训练模型、编写代码。在这个过程中对图片的处理和标注是最累人的,而且容易出错,对于学生而言过程极其痛苦,最近发现一种特别简单的图形化方式实现人工智能机器学习,只需要点点鼠标即可完成。
      今年参加了第二届”少年硅谷——全国青少年人工智能教育成果展示大赛“其中的一个项目——火星环境探测挑战赛,在这个比赛中使用到英荔公司的创作平台、硬件编程平台,发现他们的训练平台非常好用,简单快捷。
      无意之间发现这个训练平台可以不用登录也可以使用,而且还可以下载模型,那岂不是可以借助这个平台来实现训练模型?
      打开网址:https://train.aimaker.space/train/https://makelogimg.dfrobot.com.cn/makelog/5cbb291ed0aab573a1dc92a1/4205712fa1a241ef621dc05d2c570c9f.png      可以看到这个平台可以训练图像项目、音频项目和姿势项目,今天先来试试图像项目,点击图像项目进入。https://makelogimg.dfrobot.com.cn/makelog/5cbb291ed0aab573a1dc92a1/9baf0ef3263bf40c986f72446f8ab3c1.png      界面非常简洁,已经有两个类别Class1和Class2,点击类目名后面的笔图案可以改类目的名称,注意尽量不要使用中文。https://makelogimg.dfrobot.com.cn/makelog/5cbb291ed0aab573a1dc92a1/d682b17dfeaaebc3fdc993fc916e5e12.png      我以识别石头、剪刀、布为例,类目名我就懒得改了,分别为:      Class1——布      Class2——石头      Class3——剪刀      Class4——背景      先来训练”布“      点击Class1下面的摄像头https://makelogimg.dfrobot.com.cn/makelog/5cbb291ed0aab573a1dc92a1/75a40df53118e8560ce708a85830bc19.png      可以看到平台打开了摄像头,下面有个按钮”按住以录制“,根据提示我们将”布“的手势放入摄像头,然后按住这个按钮不松开https://makelogimg.dfrobot.com.cn/makelog/5cbb291ed0aab573a1dc92a1/87ba271ba37f54fdf7d6b4e145ca2a07.png      右边就会出现很多”布“手势的图片,尽量将各种可能出现的布手势都做出来,数量的话建议尽量多一点,不要少于30张。       紧接着录制其他手势的照片。https://makelogimg.dfrobot.com.cn/makelog/5cbb291ed0aab573a1dc92a1/e5e357956520bb398d1af7e854057bd5.pnghttps://makelogimg.dfrobot.com.cn/makelog/5cbb291ed0aab573a1dc92a1/5be90828717ff776d7875b48fd21352e.pnghttps://makelogimg.dfrobot.com.cn/makelog/5cbb291ed0aab573a1dc92a1/a0cbf393a82df25a862050ef8d0b2dbc.png      图片准备完毕,点击中间的训练模型https://makelogimg.dfrobot.com.cn/makelog/5cbb291ed0aab573a1dc92a1/8a7b89c88bc24fc4e1d8c5ed36a76c1b.png      然后平台就会开始训练https://makelogimg.dfrobot.com.cn/makelog/5cbb291ed0aab573a1dc92a1/753f1b7ca8581a230f8d6f98700f7712.png      训练过程是非常快的,基本上1-2分钟就可以训练完毕。      训练完毕后,右边就会自动进行测试,我们在摄像头前摆出各种手势,右边就会根据模型判断出是哪种手势。https://makelogimg.dfrobot.com.cn/makelog/5cbb291ed0aab573a1dc92a1/428f4d14cea8d1201439772a639f0e10.pnghttps://makelogimg.dfrobot.com.cn/makelog/5cbb291ed0aab573a1dc92a1/2760489ffef5b0cfde954ad19464ecfe.pnghttps://makelogimg.dfrobot.com.cn/makelog/5cbb291ed0aab573a1dc92a1/a09c8f9977499cd7b48288ea4ece0cbb.gif       因为手势比较简单,准确率还是非常高的。如果发现准确率比较低,那就多拍点图片,再次训练模型,将准确率提高。
       接下来我们就可以下载模型了,点击导出模型https://makelogimg.dfrobot.com.cn/makelog/5cbb291ed0aab573a1dc92a1/78123af488bc64f97445ce46736fb6ab.png      选择 Tensorflow,然后点击下载我的模型,就会下载到两个文件。https://makelogimg.dfrobot.com.cn/makelog/5cbb291ed0aab573a1dc92a1/a42452115ebea090f2154a45e4daaded.png      其中keras_model.h5就是模型文件,而labels.txt就是类别名称文件,将这两个文件放入一个文件夹。
      接下来就是利用这两个文件进行编写程序。      打开Mind+,切换到Python模式,点击左下角扩展,加入两个官方库。https://makelogimg.dfrobot.com.cn/makelog/5cbb291ed0aab573a1dc92a1/5aa179ed49bbee456071ee233e2d226c.png      代码如下:https://makelogimg.dfrobot.com.cn/makelog/5cbb291ed0aab573a1dc92a1/06fe5715da250b716d8a594a436f3c9e.png      注意先保存,然后再运行,文件保存的路径要和模型文件保存的路径一致。
      点击运行,效果如下https://makelogimg.dfrobot.com.cn/makelog/5cbb291ed0aab573a1dc92a1/6b09c66d3bb80199f66bcadbb83aac0c.gif


      可以看到效果还是很不错的,这是人工智能图像识别中的物体分类功能,对于中小学生入门人工智能机器学习还是很有帮助的,简单的动动鼠标就可以体验整个学习过程。
       后续还可以通过加入pinpong库,对开源硬件进行操作,比如加入一个RGB灯,剪刀就亮红色,石头就亮绿色,布就亮蓝色……       只需要在https://makelogimg.dfrobot.com.cn/makelog/5cbb291ed0aab573a1dc92a1/0ab7b246f1ab7a6edb326102ea55b1fe.png      的前后加入判断即可。https://makelogimg.dfrobot.com.cn/makelog/5cbb291ed0aab573a1dc92a1/34e424a011e0939440211b274332d95d.png       期待大家玩出更多创意。
       也可以将自动生存的代码保存为py文件,和模型文件,类别标签文件一并部署到树莓派、冲锋舟、拿铁熊猫、行空板等上面实现物体分类功能。

代码


#-*- coding: UTF-8 -*-



# MindPlus

# Python

from keras.preprocessing import image

import tensorflow.keras

import tensorflow as tf

from time import sleep

import numpy as np





import cv2

cap = cv2.VideoCapture()

cap.open(0)

model = tensorflow.keras.models.load_model('keras_model.h5')

labels = ['Class 1','Class 2','Class 3','Class 4']

font = cv2.FONT_HERSHEY_SIMPLEX

success = True

image = 0

while not (False):

    success, image = cap.read()

    if (success == False):

      break

    image = cv2.flip(image,1)

    img = cv2.resize(image,(224,224))

    img = np.array(img,dtype=np.float32)

    img = np.expand_dims(img,axis=0)

    img = (img / 255)

    prediction = model.predict(img)

    predicted_class = labels

    print(predicted_class)

    cv2.putText(image, predicted_class, (123,456), font, 2, (0,255,0), 3)

    cv2.imshow("Frame", image)

    if cv2.waitKey(1) & 0xff== 113:

      break

cap.release()

cv2.destroyAllWindows()



附件
[*]model_test.rar



rzegkly 发表于 2022-10-26 13:51:11

学习制作数据集的新方法{:5_116:}

木子呢 发表于 2022-10-27 17:06:38

赞赞赞

达州泸州 发表于 2023-3-23 10:09:53

很多库都没有呀,提示

杨义涵同学 发表于 2023-5-29 22:03:48

代码程序运行一定要用摄像头吗?

路人甲糕 发表于 2023-6-10 21:50:00

运行代码出现错误No module named 'keras'

DFHyuizT_cT 发表于 2024-3-29 22:19:25

达州泸州 发表于 2023-3-23 10:09
很多库都没有呀,提示

请问库的问题你解决了吗?

抄手 发表于 2024-7-29 20:15:44

为啥我上传到行空板上运行异常卡顿?
大家有遇到类似情况吗?

zDiofkn4KgYe 发表于 2024-9-1 16:44:17

抄手 发表于 2024-7-29 20:15
为啥我上传到行空板上运行异常卡顿?
大家有遇到类似情况吗?

我也是在行空板上面,视频非常卡顿,请问您后来解决这个问题了吗?是怎么解决的啊

刘凯 发表于 2024-11-18 17:41:36

ImportError: cannot import name 'descriptor' from 'google.protobuf' (unknown location),请问出现这个错误怎么处理?
页: [1]
查看完整版本: 图形化玩转人工智能机器学习