65.9K
CodeProject 正在变化。 阅读更多。
Home

准备用于 AI 交通速度检测的硬件

starIconstarIconstarIconstarIconstarIcon

5.00/5 (3投票s)

2021 年 1 月 15 日

CPOL

6分钟阅读

viewsIcon

8104

在本文中,我们将介绍在 Pi 上安装操作系统、进行安全设置以及配置通过 WiFi 进行远程访问。

引言

交通速度检测是一个大生意。世界各地的市政当局利用它来阻止超速行驶并通过超速罚单创收。但传统的测速仪,通常基于 RADAR 或 LIDAR,价格昂贵。

本系列文章将向您展示如何仅使用深度学习构建一个相当准确的交通速度检测器,并在像树莓派这样的边缘设备上运行它。

欢迎您从 TrafficCV Git 仓库 下载本系列文章的代码。我们假设您熟悉 Python,并具备 AI 和神经网络的基础知识。

上一篇文章中,我们讨论了边缘计算项目的硬件组件:树莓派 4、ArduCam 5MP 摄像头和 Coral USB AI 加速器。本文将介绍在 Pi 上安装操作系统、进行安全设置以及通过 SSH 和 RDP 从 Windows 10 机器通过 WiFi 进行远程访问的配置。

树莓派操作系统

我们将使用最新 32 位版本的树莓派操作系统 (Raspberry Pi OS)(以前称为 Raspbian),它基于armhf Debian ARM 移植。64 位版本的树莓派操作系统可用,但 Pi 的 64 位支持仍处于 Beta 阶段。尽管 64 位代码在 OpenCV 等应用程序中应能显著提高性能,但在原型设计阶段,我们更关心基本组件的稳定性。下载后,我们将使用官方的树莓派 Imager 或第三方映像工具(如Balena Etcher)将操作系统映像写入我们 LABISTS 套件中的 32GB microSD 卡。

首次启动 Pi 时,我们需要连接 USB 键盘、鼠标和 HDMI 可连接显示器,因为默认情况下远程访问是禁用的。然后,我们可以将 SD 卡插入外壳插槽(该插槽暴露了 Pi 的 microSD 插槽)并打开电源。Pi 有两个状态 LED:红色表示电源,绿色表示 microSD 访问。因此,如果一切正常,您应该会看到一个稳定的红色 LED 和一个闪烁的绿色 LED,表明 Pi 正在从其 microSD 卡启动。有许多教程可用于首次启动树莓派、使用启动向导以及故障排除启动问题。

安全注意事项

报道,2020 年有 266.6 亿台物联网设备处于活跃状态。其中许多设备都未得到充分保护,容易遭受黑客攻击和劫持。我们的系统将由市政当局和地方政府实施,并在公共场所部署,并可能访问敏感数据和系统。因此,至关重要的是,我们要将安全性作为整体设计的重要组成部分。物联网原型项目往往不关心设备的安全性,直到“以后”。在许多情况下,“以后”永远不会到来,物联网设备会在没有基本安全防护措施的情况下被公开部署,成为黑客的诱人目标。树莓派的基本安全信息在“保护您的树莓派”文章中已有详细记载,建议我们至少实施九个步骤。

  1. 为默认的 pi 用户设置强密码。这应该在 Pi 设备首次启动时完成。
  2. 禁用自动登录。默认情况下,Pi 会自动登录到 Pi 的LXDE 桌面(使用 pi 用户),但我们应始终要求在登录时输入密码。
  3. 禁用蓝牙。我们目前不需要 Pi 4 的蓝牙功能,因此应禁用它。
  4. 安全的 WiFi 连接。理想情况下,Pi 应连接到具有基本安全功能(如使用 WPA2-PSK 身份验证、不广播其 SSID 以及使用 MAC 过滤器限制访问仅限已知网络设备)的 WiFi 路由器。Pi WiFi 配置存储在 /etc/wpa_supplicant/wpa_supplicant.conf 文件中,并且最好从命令行编辑此文件,而不是依赖 raspi-config 工具。
  5. 使用最新的软件包和安全修复程序更新您的 Debian 安装。
  6. 在 Pi 上安装防火墙。仅应允许在私有子网内远程访问服务。

相对于 iptables 防火墙,ufw 工具非常易于使用。您可以轻松地为基本网络服务(如 SSH)添加规则。不要假设您的设备将始终部署在路由器后面。

  1. 将 SSH 端口更改为非标准端口。
  2. 创建一个新用户,并在所有开发工作中都使用该用户,而不是默认的 pi 用户。禁用 pi 用户的 SSH 访问。
  3. 仅使用密钥认证,禁用 SSH 密码认证。

物联网设备安全的一个经验法则是:

始终假定您的设备已公开暴露在互联网上!

我们现在为设备安全所花费的短暂时间,可以为我们节省大量的尴尬和未来的经济成本。

从 Windows 10 访问

可以通过 raspi-config 启用对 Pi 的 SSH 访问,然后如上所述,通过编辑 /etc/ssh/sshd_config 文件进行保护。Windows 10 具有不错的 Microsoft 提供的 OpenSSH 客户端实现,我们可以使用它来安全地连接到 Pi 设备。

在我们的 Windows 10 开发机上,我们使用 ssh-keygen -t ed25519生成新的私钥-公钥对以连接到 Pi。然后,我们必须将公钥添加到 .ssh 文件夹中的 authorized_keys 文件,并编辑配置文件以告知 SSH 客户端我们希望使用该密钥对登录到我们的 Pi 主机。

如果您在 Windows 10 机器上安装了 WSL,有一个名为 ssh-copy-id 的不错的 Linux 命令,它可以为您复制 SSH 密钥,同时还可以测试您是否可以使用密钥对登录到远程机器。不幸的是,Windows 10 OpenSSH 似乎尚未实现此功能。因此,没有 WSL,您将必须手动追加公钥行:echo ‘ssh-ed25519 ZZZ...mykey allisterb@myhost’ >> authorized_keys

最后一步是在我们的 Pi 上安装 xrdp,以便从 Windows 机器进行远程桌面访问。虽然也可以使用 VNC,但 xrdp 提供了许多有用的功能,例如共享剪贴板和对远程机器上的本地驱动器的访问。在 Pi 上安装它是一个相对简单的过程,有很多教程,例如这个

我们的 Pi 现在已配置为通过 SSH、RDP 和基本的安全防护措施从我们的开发机进行远程访问。我们系统配置的最后一步是在开发机上安装 X 服务器。这将使我们能够从 Pi 运行图形应用程序(如 OpenCV 用户界面),并在 Windows 10 机器上将其显示为本地窗口。我们使用了开源的VcXsrv 项目,它与 Pi 上的 X 客户端具有良好的兼容性。完成此操作后,我们就可以在 Pi 设备上开发我们的计算机视觉和机器学习项目了。

Windows 10 通过 SSH、RDP 和 X 连接到 Pi

下一步

下一篇文章中,我们将在 Windows 10 上设置一个开发环境,用于在我们的 Pi 设备上运行跨平台计算机视觉和机器学习项目。敬请期待!

© . All rights reserved.