Google AIY Vision Kit安装及国内配置

Posted lida2003

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Google AIY Vision Kit安装及国内配置相关的知识,希望对你有一定的参考价值。

Google AIY Vision Kit安装及国内配置

鉴于中国特色,我们出色的Great Wall要求我们IT从业人员具备高超的应变和适应能力。

当然如果自认为没有这种基本能力,玩这种老外的东东,基本上很难上手,不是智商不够,而是现实太残酷。

想当年,研发大多采用Google查资料,那真的叫一个准。虽然现在国内已经无法直接上Google了,只能默默的百度各种翻页,甚至翻上10页都找不到合适的(吐槽下)。

从业以来,多年的绕弯弯经验让我这次装Google AIY Vision Kit如鱼得水。通过整理,将一些非技术环节的门槛给大家提炼出来,希望大家能更多的将精力从事在技术上面。

1. AIY Vision Kit组装环节

这个环节其实只要有一些简单的小学折纸动手能力,都能很好的应对。不过前提是要有一个安装指南,大概率情况下,这就死翘翘节奏,因为安装指南的网页无法打开。

好吧,这里给大家整理下

Step 1:收集其他附件

选择1:使用AIY项目应用程序

  • android智能手机
  • Windows、Mac或Linux计算机
  • Wi-Fi连接(路由器)

选择2:使用显示器、鼠标和键盘

  • Windows、Mac或Linux计算机
  • 鼠标
  • 键盘
  • 带有HDMI输入的显示器或电视(任何尺寸均可)
  • 普通尺寸HDMI电缆和迷你HDMI适配器
  • 将鼠标和键盘连接到套件的适配器

适配器选项A:USB随身(OTG)适配器电缆,用于将Raspberry Pi USB微型端口转换为普通大小的USB端口。然后,您可以使用只需要一个USB端口的键盘/鼠标组合。

适配器选项B:Micro-USB集线器,提供多个USB端口以连接到任何传统键盘和鼠标。

Step 2:检查硬件清单

  1. Vision Bonnet x 1
  2. Raspberry Pi Zero WH x 1
  3. Raspberry Pi Camera v2 x 1
  4. 长柔性电缆 x 1
  5. 按钮 x 1
  6. 按钮线束 x 1
  7. Micro USB电缆 x 1
  8. 压电蜂鸣器 x 1
  9. 发光二极管 x 1
  10. 短柔性电缆 x 1
  11. 按钮螺母 x 1
  12. 三脚架螺母 x 1
  13. 发光二极管镶圈 x 1
  14. 支座 x 2
  15. microSD卡 x 1
  16. 相机盒纸板 x 1
  17. 内部框架纸板 x 1

Step 3:构建AIY Vision Kit

Step 3.1:获取最新AIY Vision Kit系统映像

  1. GitHub上的发布页面下载最新的.img.xz文件。
  2. 使用适配器将microSD卡连接到计算机。
  3. 下载、安装并启动树莓派镜像烧录工具
  4. 单击选择操作系统,滚动到底部,选择使用自定义,然后找到上面下载的.img.xz文件。
  5. 单击选择存储以选择microSD卡,然后单击写入以开始将镜像文件烧录到SD卡。

Step 3.2:折叠内部框架

  1. 凑齐折叠内部框架所需的部件
  2. 打开连接器插销

  1. 将长柔性电缆插入插销


4. 关闭连接器闩锁

5. 确定纸板的方向

6. 拆下粘合衬

7. 折叠如图所示A指向的纸板,并且按平粘住

8. 如图翻转过来

9. 插入压电蜂鸣器

10. 安装摄像头

11. 翻转到另一侧

12. 向下折叠顶部纸板


13. 折叠左右两侧的纸板

14. 折叠底部纸板

15. 穿上蜂鸣器电线

16. 将长柔性电缆向上折叠

17. 向左折叠长柔性电缆

18. 穿上长柔性电缆

19. 继续穿线

20. 再穿线

Step 3.3:连接电路板

  1. 清点所需部件
  • Raspberry Pi x 1
  • Vision Bonnet x 1
  • 支座 x 2
  • 短柔性电缆 x 1
  • 按钮线束 x 1
  1. 确定树莓派的方向


23. 打开顶部电缆接头

24. 插入短柔性接头

25. 关闭电缆连接器闩锁

26. 定位您的 Vision Bonnet板子方向

27. 打开电缆连接器闩锁

28. 插入短柔性接头

29. 关闭电缆连接器闩锁

  1. 插入支座
  2. 对齐电路板
  3. 向内推软柔性电缆线
  4. 连接电路板并检查连接

Step 3.4:将电路板添加到框架

  1. 调整板的方向
  2. 连接板和框架
  3. 将电路板滑入框架
  4. 检查框架和电缆
  5. 插入按钮线束

Step 3.5:构建Vision Kit盒子

  1. 确定纸板盒的方向
  2. 折叠A
  3. 折叠B
  4. 折叠C
  5. 剥离粘合剂
  6. 折叠D
  7. 插入三脚架螺母
  8. 折叠E
  9. 折叠F
  10. 去除E上的粘合剂
  11. 折叠G
  12. 折叠并固定另一侧
  13. 折叠底部纸板

Step 3.6:把它们放在一起

  1. 滑入内部框架
  2. 检查电路板和电线

Step 3.7:安装发光二极管

  1. 清点发光二极管等部件
  • 发光二极管
  • 发光二极管镶圈

  1. 安装发光二极管镶圈
  2. 安装发光二极管
  3. 检查另一侧

Step 3.8:安装按钮硬件

  1. 清点按钮等部件
  • 按钮
  • 按钮螺母
  1. 将电线穿过螺母
  2. 将电缆穿过接线盒
  3. 将电线插入按钮
  4. 插入按钮
  5. 固定按钮螺母
  6. 检查您完成的AIY Vision Kit盒子
  7. 合上盒子
  8. 插入SD卡
  9. 恭喜,您刚刚组装了Vision Kit硬件!

2. AIY Vision Kit使用环节

2.1 开机

  1. 将视觉套件插入电源

通过设备上标有“电源”的端口将Vision Kit插入墙上的电源(5V,2A)。

69. 让它启动

要确认已连接到电源,请查看标有SD卡的纸板上的孔。你会看到Raspberry Pi板上的绿色LED灯闪烁。

启动时要有耐心;第一次启动需要几分钟。当你听到一个短音时,你就会知道它被启动了。软件需要这段时间来安装和配置设置。在未来,它将开始得更快。

2.2 使用Joy Detector

  1. 试用Joy Detector

将视觉套件指向某人的脸(或你自己的脸),以尝试Joy Detector演示。当摄像头检测到人脸时,按钮亮起。

  • 让他们微笑
  • 然后让他们大小
  • 然后让他们皱着眉头微笑

Joy Detector检测器使用机器学习来检测一个人是否在微笑或皱眉,以及他们在做什么。微笑会使按钮变黄,皱眉会使按钮变成蓝色。

如果表情真的很大,就会发出声音。如果相机看到不止一张脸,它会评估每个人的脸,并计算每个脸的快乐得分。

71. 拍照
在Joy Detector运行的任何时候,您都可以按下按钮拍摄照片。

如果你在相机检测到人脸时拍照(按钮亮起),它会保存照片的第二个版本,并用喜悦分数进行注释。

这些照片保存在SD卡的~/Pictures/目录中。在下一步中,您将学习如何在连接到工具包后访问这些照片。

2.3 连接到套件:方法一

  1. 下载AIY项目手机应用程序

官方给出的链接地址:google.android.apps.aiy,可能国内的朋友不一定能打开,这里已经给大家下好了AIY Projects app

  1. 遵循应用程序提示操作

打开应用程序,按照屏幕上的说明与视觉套件通过蓝牙进行配对。并在App上输入RaspberryPi接入的WiFi(SSID, Password)。应用程序会显示RaspberyPi的IP地址,您将在后续使用到该IP地址。
注:如果忘记了,请重新打开App扫描树莓派即可显示该IP,请注意将手机和树莓派保持在同一个WiFi路由器下。

  1. 连接HDMI显示器

运行这些演示不需要监视器,但如果您有可用的监视器,它会很有用,这样您就可以看到Vision Kit所看到的内容。

  1. 将电脑连接至该无线WiFi

确保您的计算机与Vision Kit位于同一个Wi-Fi网络上。这将允许您通过SSH连接到套件。

  1. 准备好SSH终端

  1. 打开Secure Shell Extension

  2. 连接到树莓派

  3. 授予扩展权限

  4. 继续连接

  5. 输入树莓派的密码

    注:默认pi, raspberry。

  6. 确认您已连接

2.4 连接到套件:方法二

  1. 外围设备清点
  2. 拔下电源


85. 连接设备

86. 插入电源上电

87. 确认警告

您将看到一个背景为AIY的桌面。弹出窗口将告诉您Raspberry Pi用户的密码设置为默认值。如果您计划在其他项目中使用此工具包或将其公开到internet,这一点很重要,但目前,单击“确定”是安全的。


88. 打开终端

单击屏幕顶部任务栏上的黑色矩形图标打开终端。

现在,您可以向树莓派发出命令。

89. 确认您已连接

现在您应该看到提示

pi@raspberrypi: ~ $.

恭喜!你已经准备好向树莓派发出命令了。

2.5 查看照片

  1. 查看您的照片

如果您将显示器连接到视觉套件,现在就可以查看拍摄的照片。(不幸的是,如果您的视觉套件没有直接插入显示器,则无法查看照片。)

要查看Joy Detector拍摄的照片,您需要首先使用cd将终端导航到~/Pictures目录。因此,在终端中键入以下内容并按enter键:

cd ~/Pictures

现在输入ls并按enter键查看目录中的内容。(提示:这是柠檬中的“l”,而不是#1。)您应该看到一个以.jpeg结尾的文件名列表。所以让我们看看其中一个。

在终端中键入以下命令并按enter键,将替换为要打开的文件名(例如2018-05-03_19.52.00.jpeg):

DISPLAY=:0 gpicview <filename>

这张照片将在插入Vision Kit的显示器上的新窗口中打开。

Tip: If you connected to your Vision Kit with monitor, mouse, and keyboard, you can enter the command without DISPLAY=:0

要从终端关闭照片窗口,请按Ctrl-C。

2.6 停止Joy Detector

  1. 停止Joy Detector

Joy Detector默认运行,因此您需要在运行另一个演示之前停止它。要执行此操作,请键入以下命令并按enter键:

sudo systemctl stop joy_detection_demo

然而,下次重新启动套件时,Joy Detector演示将再次开始运行。因此,如果要完全禁用它,使其在默认情况下不会启动,请在提示符中键入以下命令,然后按enter键:

sudo systemctl disable joy_detection_demo

您可以稍后通过以下方式重新启用:

sudo systemctl enable joy_detection_demo

2.7 查看哪些演示可用

  1. 移至示例目录

要尝试其他几个Vision Kit演示,请转到它们所在的目录。在提示中键入以下命令,然后按enter键:

cd ~/AIY-projects-python/src/examples/vision


93. 看下有哪些应用

现在您已经更改了目录,键入ls并按enter键查看当前目录中的内容。

2.8 在实时摄像机中尝试图像分类

  1. 开始图像分类相机演示

图像分类相机演示使用物体检测模型来识别视觉套件中的物体。

要启动它,请键入以下命令并按enter键:

./image_classification_camera.py

可能需要一段时间才能激发起来。

如果工作正常,监视器上会弹出一个摄像头窗口(如果已连接),模型的输出开始打印到终端。

  1. 把相机对准物体

将您的视觉套件指向一些物体,例如一些办公用品或水果。检查您的终端屏幕,看看模型在猜测什么。每个猜测旁边的数字是其置信度得分。

您可能会对模型擅长猜测的对象种类感到惊讶。它的缺点是什么?尝试同一物体的不同角度,看看置信度分数是如何变化的。

  1. 停止图像分类相机演示

图像分类相机演示将无限期运行,直到您中断它。

完成图像分类器演示后,按Ctrl-C结束演示。这将使您返回提示。

2.9 尝试在实时摄像头中进行人脸检测

  1. 启动人脸检测摄像头演示

此演示使您的视觉套件能够识别人脸。它打印出它在终端中看到的人脸数量,如果你连接了监视器,它会在它识别的每个人脸周围画一个方框。

要启动人脸检测演示,请键入以下命令并按enter键:

./face_detection_camera.py

如果它正常工作,你会看到监视器上弹出一个摄像头窗口(如果连接了),模型的输出将开始打印到你的终端。

  1. 将相机指向面部

将相机指向某些人脸,观看演示输出。迭代告诉您模型运行的次数。num_faces是模型对相机视野中有多少人脸的最佳猜测。

尝试快速或更远地移动相机。猜脸的数量会更难吗?

  1. 停止面部检测摄像头演示

当你完成了人脸检测演示的实验后,按Ctrl-C结束它。这将使你回到提示。

2.10 检测到人脸时拍照

  1. 运行面部摄像头触发演示

通过此演示,当您的视觉套件检测到人脸时,它会自动拍摄照片。要启动它,请键入以下命令并按enter键:

./face_camera_trigger.py

如果你连接了监视器,你会看到一个闪烁的光标,并弹出一个相机窗口。它将保持这种状态,直到相机看到一张脸并拍摄到一张照片。

  1. 将相机指向面部

将相机对准自己或朋友。试着做一堆人脸,并用机器认为的人脸做实验。

当它看到一张脸时,它会拍照并在当前目录中创建一个名为faces.jpg的图像,然后关闭相机窗口并返回提示。

  1. 验证照片是否已创建

要验证照片是否已创建,请在提示下键入ls,然后按enter键。

您应该看到当前目录中列出了一个名为faces.jpg的文件。

2.11 使用raspistill拍照

  1. 拍张照片

下面的演示向您展示了如何使用现有图像文件作为输入(而不是使用实时摄像机馈送)。因此,您需要先用相机拍摄照片(或将文件保存到同一目录中)。

要捕获名为image.jpg的新照片,请键入以下命令并按enter键:

raspistill -w 1640 -h 922 -o image.jpg

相机将等待5秒,然后拍照。

  1. 验证您的照片是否已创建

要验证照片是否已创建,请在提示下键入ls,然后按enter键。您应该看到在上述步骤中使用的文件名。

2.12 尝试对图像进行人脸检测

  1. 运行人脸检测演示

现在,让我们使用上面拍摄的照片和面部检测模型。如果您跳过了这一步,请返回并拍照,或者确保您的SD卡上有一张带脸的照片。

要运行演示,请在终端中键入以下命令,然后按enter键:

./face_detection.py --input image.jpg

如果将图像文件命名为其他文件,请将image.jpg替换为要使用的文件的名称。

  1. 检查结果

完成后,你应该得到这样的结果:

Face #0: face_score=0.989258, joy_score=0.969556, bbox=(632.0, -15.0, 782.0, 782.0)

facescore是指模型是否确定找到了一张脸,joyscore是指这个人看起来有多开心(两个分数都是1分)。bbox告诉你脸在图像中的位置。

2.13 在图像上尝试对象检测

  1. 运行对象检测演示

物体检测演示会拍摄一张图像,并检查它是猫、狗还是人。

首先,您需要准备好图像:使用相机拍摄照片或将照片保存在SD卡上。

然后键入以下命令并按enter键,将image.jpg替换为要使用的文件:

./object_detection.py --input image.jpg

  1. 检查结果

完成后,你应该得到这样的结果:

Object #0: kind=PERSON(1), score=0.959231, bbox=(359, 108, 896, 808)


kind是检测到的对象类型,分数是模型对其给出的结果的信心程度。bbox是该对象在图像中的位置。

2.14 在图像上尝试菜肴分类

  1. 运行菜式分类器演示

菜肴分类器模型可以从图像中识别食物。

首先,您需要准备好图像:使用相机拍摄照片或将照片保存在SD卡上。

然后键入以下命令并按enter键,将image.jpg替换为要使用的文件:

./dish_classification.py --input image.jpg

  1. 检查结果

处理完成后(可能需要一分钟),你会得到一个结果列表,以及确定的食物类型和概率分数,表明模型对其答案有多自信(满分1)。

2.15 尝试对图像进行图像分类

  1. 运行图像分类演示

这是来自上面的相同图像分类器,但现在针对捕获的图像运行。

首先,您需要准备好图像:使用相机拍摄照片或将照片保存在SD卡上。

然后键入以下命令并按enter键,将image.jpg替换为要使用的文件:

./image_classification.py --input image.jpg

  1. 检查结果

像相机图像分类器一样,您将得到一个结果列表,其中包括对象的类型和模型的置信度。

2.16 关闭AIY Vision Kit

当您完成了一天的视觉套件后,在拔下之前正确关闭它非常重要,以确保您不会损坏SD卡。

如果您已将套件连接到显示器、鼠标和键盘,则可以通过打开应用程序菜单(桌面左上角的树莓派图标),然后单击关机来关闭它。

否则,如果您使用SSH终端连接到套件,请键入以下命令并按enter键:

sudo poweroff

几分钟后,Raspberry Pi上的绿色LED将关闭(通过标有SD卡的孔查看),表明该套件已关闭。

然后,您可以安全地从套件中拔下电源。

3. AIY Vision Kit配置环节

在国外的网络环境,其实到这里已经基本完成所有入门环节,但是(但是,但是),我们国内的用户做这个可是一个非常头大的事情。当然对于有经验的高手就不说了,反正也得花点时间,但是能搞定。

pi@PiCam:~ $ lsb_release -a
No LSB modules are available.
Distributor ID: Raspbian
Description:    Raspbian GNU/Linux 10 (buster)
Release:        10
Codename:       buster
pi@PiCam:~ $ uname -a
Linux PiCam 5.10.103+ #1529 Tue Mar 8 12:19:18 GMT 2022 armv6l GNU/Linux

这里我们就给各位小白整理下:

3.1 apt国内本地源配置修改

$ sudo nano /etc/apt/sources.list
$ sudo nano /etc/apt/sources.list.d/raspi.list

$ cat /etc/apt/sources.list
#deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi

deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi
# deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ buster main non-free contrib rpi

$ cat /etc/apt/sources.list.d/raspi.list
deb https://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ buster main

#deb http://archive.raspberrypi.org/debian/ buster main
# Uncomment line below then 'apt-get update' to enable 'apt-get source'
#deb-src http://archive.raspberrypi.org/debian/ buster main

3.2 屏蔽aiyprojects更新源(烦心!!!)

注:这里是真没有办法,毕竟这关系搞僵了,也许若干年后吧,大家都懂的。

$ sudo nano /etc/apt/sources.list.d/aiyprojects.list

$ cat /etc/apt/sources.list.d/aiyprojects.list
#deb https://packages.cloud.google.com/apt aiyprojects-stable main

有好的办法一定要告诉我啊!!!

3.3 pip国内本地源配置修改

$ mkdir ~/.pip
$ nano ~/.pip/pip.conf

$ cat ~/.pip/pip.conf
[global]
timeout=1000
index-url=https://pypi.tuna.tsinghua.edu.cn/simple/
extra-index-url= http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=
        pypi.tuna.tsinghua.edu.cn
        mirrors.aliyun.com

3.4 vim重装(兼容模式)

树莓派系统预装的是vim-tiny版本,就是简易版,且默认是兼容模式。在使用vi编辑文件时,发现退格删除键(Backspace键),无法删除,方向键变成了ABCD(对应上下右左)还自动换行。

$ sudo apt-get remove vim-common
$ sudo apt-get install vim

3.5 配置VNC远程支持

$ sudo raspi-config

这样就可以再Windows上使用远程VNC软件登录了。

3.6 安装并配置samba服务

安装

$ sudo apt-get install samba

配置

$ sudo nano /etc/samba/smb.conf
$ sudo smbpasswd -a pi   //添加远程samba登录密码,建议使用与ssh一致。

修改如图所示内容即可

4. 参考资料

【1】The AIY Vision Kit from Google – Guide

以上是关于Google AIY Vision Kit安装及国内配置的主要内容,如果未能解决你的问题,请参考以下文章

自己动手做AI:Google AIY开发工具包解析

无法使用 Firebase ML Kit Vision 文本检测器编译 iOS React Native 应用程序

通过 Firebase ML Kit 人脸检测检测多张人脸的轮廓

全新 AIY Edge TPU 开发板惊艳亮相

google vision - 在 c# 中从 google.cloud.vision.v1.entity 注释转换为 json

如何使用 python 发送 REST API(Google Vision 的 API)请求?