【香橙派-OpenCV-Torch-dlib】TF损坏变成RAW格式解决方案及python环境配置

前言

本文将介绍在香橙派(Orange Pi)开发板上进行软件配置和环境搭建的详细步骤,以便运行Python应用程序。这涵盖了以下主要内容:

  1. 获取所需软件:提供了香橙派操作系统和balenaEtcher工具的下载链接,以确保正确的操作系统安装。

  2. TF卡清空与分区重建:在Windows操作系统下,通过命令行工具(Command Prompt)清空和可选择性地分区与格式化TF卡的详细步骤,使其适用于不同需求,如重新烧录镜像或定制存储设备。

  3. 常用磁盘管理与修复方法:介绍了使用Diskpart和chkdsk工具来管理磁盘分区、格式化和修复文件系统的常见操作,以保持磁盘的健康状态。

  4. Python环境配置:包括在香橙派上安装Python 3.8、更新pip、更换pip源以及安装常用的Python库,以准备开发环境。

文章目录

  • 前言
    • 香橙派相关软件下载连接
    • TF 卡清空与分区重建
      • 步骤 1:插入 TF 卡和读卡器
      • 步骤 2:打开命令行工具并进入 diskpart
      • 步骤 3:列出可用的驱动器
      • 步骤 4:选择 TF 卡驱动器并清空内容
      • 步骤 5:创建分区并格式化 TF 卡(可选)
      • 步骤 6:修复并格式化TF卡文件系统类型为NTFS(可选)
        • 方法一
        • 方法二
      • 步骤 7:使用chkdsk修复磁盘
      • 步骤 8:使用Etcher再次烧录
    • Diskpart常用方法
    • chkdsk常用方法
    • python环境配置
      • 系统版本
      • 开始配置
      • 运行包配置
      • torch
        • 解决过程
      • dlib
        • 方法一
        • 方法二
      • 运行你的代码
      • 完整过程
  • 总结

香橙派相关软件下载连接

香橙派
balenaEtcher

TF 卡清空与分区重建

本部分将介绍如何在 Windows 操作系统下,使用命令行工具(Command Prompt)通过插入 TF 卡并执行一系列命令来清空其内容,并可选择性地进行分区和格式化,以使其像普通存储设备一样工作。这个过程非常有用,无论是为了重新烧录镜像还是为了定制存储设备。

步骤 1:插入 TF 卡和读卡器

首先,确保将 TF 卡插入到读卡器中,然后将读卡器连接到计算机上。TF 卡是一种常见的存储介质,通常用于嵌入式设备、相机、智能手机等。

步骤 2:打开命令行工具并进入 diskpart

打开 Windows 命令行工具,你可以在开始菜单中搜索 “cmd” 或按下 Windows + R 键,然后输入 “cmd” 并按 Enter 打开。命令行工具是一个强大的工具,用于执行各种系统级任务。

在命令行中输入以下命令,以进入 diskpart 工具:

diskpart.exe

Diskpart 是一个 Windows 命令行实用程序,可用于管理磁盘分区、格式化等磁盘操作。

步骤 3:列出可用的驱动器

在 diskpart 中,使用以下命令列出计算机上的所有磁盘驱动器及其编号:

list disk

每个磁盘驱动器都会有一个唯一的编号,通常以数字表示。在这一步,你需要找到与 TF 卡相关的磁盘驱动器编号(通常是可识别出其容量大小的那一个)。

步骤 4:选择 TF 卡驱动器并清空内容

使用以下命令选择 TF 卡所在的磁盘驱动器(将 x1 替换为 TF 卡所在驱动器的编号):

select disk x1

选中了 TF 卡驱动器后,使用以下命令来擦除任何现有文件系统,以彻底清空 TF 卡内容:

clean

此时,TF 卡已经彻底清空,可以重新烧录镜像或进行分区和格式化,具体取决于你的需求。

步骤 5:创建分区并格式化 TF 卡(可选)

如果你希望将 TF 卡分区并格式化,使其像普通存储设备一样工作,可以按照以下顺序输入命令:

create partition primary
select partition 1
format quick

这将创建一个主分区并快速格式化它,使 TF 卡准备好存储数据。

【香橙派-OpenCV-Torch-dlib】TF损坏变成RAW格式解决方案及python环境配置_第1张图片

以上就是在 Windows 操作系统下使用命令行工具清空 TF 卡并进行分区和格式化的步骤。这个过程在嵌入式系统开发、数据备份和存储设备维护中非常常见。

注意: 在执行任何磁盘操作之前,请务必小心谨慎,确保你选择了正确的磁盘驱动器,以免意外删除重要数据。根据你的需求,你可以选择仅清空 TF 卡或同时创建分区和格式化 TF 卡。

步骤 6:修复并格式化TF卡文件系统类型为NTFS(可选)

上述步骤操作后,你应该可能可以正常访问TF卡了,但是你可能还是无法正常烧录系统

PhysicalDrive2: Checksum does not match for range[0,72351743]: "13908ca859e2ff5c" != "240694foa08e4cb8"

【香橙派-OpenCV-Torch-dlib】TF损坏变成RAW格式解决方案及python环境配置_第2张图片

  • 如果你成功了,就可以跳过这里,后面我还记录了Diskpart和chkdsk常用方法
  • 否则你需要再次重复步骤1-5,然后格式化TF卡文件系统类型为NTFS

【香橙派-OpenCV-Torch-dlib】TF损坏变成RAW格式解决方案及python环境配置_第3张图片

  • 你可能无法转换,我也碰到了这个问题,可能我买到的卡是扩容卡导致的
  • 后续步骤是我重新买的新卡烧录系统时遇到问题的解决方案
  • 你也可以尝试使用以下两种格式转换TF卡文件系统
方法一

步骤 1. 同时按住「Windows+R」进入 Diskpart 程序

diskpart.exe

步骤 2. 输入下方指令:

list volume

select volume X ("X" 为 RAW 磁盘区代号)

format fs=ntfs quick

exit

你也可以

format fs=fat32 quick
方法二

(“x” 为 RAW 磁盘区代号)

convert x: /fs:ntfs

步骤 7:使用chkdsk修复磁盘

同时按下“Win+R”键,打开运行窗口。然后,在其中输入

chkdsk H:/F

H是指TF卡在本机中的盘符、F是修复参数,并按下“Enter”键确认,等待修复即可。

步骤 8:使用Etcher再次烧录

【香橙派-OpenCV-Torch-dlib】TF损坏变成RAW格式解决方案及python环境配置_第4张图片

Diskpart常用方法

当使用 Diskpart 进行磁盘管理时,可以执行各种操作以管理计算机上的磁盘和分区。以下是一些详细的示例和说明:

  1. 列出磁盘和分区信息:

    • 列出所有磁盘信息:

      list disk
      
    • 列出所有分区和卷信息:

      list volume
      
  2. 选择磁盘或分区:

    • 选择磁盘(假设磁盘编号为 N):

      select disk N
      
    • 选择分区(假设分区编号为 N):

      select volume N
      
  3. 清除磁盘或分区:

    • 清除磁盘上的所有分区和卷,擦除数据:

      clean
      
    • 清除特定分区或卷上的数据:

      clean all
      
  4. 创建分区:

    • 创建主分区:

      create partition primary
      
    • 创建逻辑分区:

      create partition logical
      
  5. 格式化分区:

    • 快速格式化分区:

      format quick
      
    • 完全格式化分区:

      format fs=ntfs  # 或者其他文件系统类型
      
  6. 扩展分区:

    • 扩展一个已存在的分区以利用未分配的空间:

      extend
      
  7. 设备签名:

    • 设置磁盘的设备签名,以便更容易区分不同磁盘:

      uniqueid disk ID=NewID
      
  8. 离线和在线磁盘:

    • 将磁盘设置为离线状态:

      offline disk
      
    • 将磁盘设置为在线状态:

      online disk
      
  9. 查看磁盘和分区属性:

    • 查看分区或卷的属性:

      attributes volume
      
  10. 脚本操作:

    • 创建一个包含 Diskpart 命令的文本文件,例如 commands.txt,然后执行脚本:

      Diskpart /s commands.txt
      

这些示例演示了如何使用 Diskpart 进行磁盘管理操作。请谨慎操作,确保你了解每个命令的影响,特别是在删除或格式化分区时。磁盘操作可能会导致数据丢失,因此在进行任何重要操作之前,请备份重要数据。

chkdsk常用方法

chkdsk(磁盘检查)是Windows操作系统中的一个命令行工具,用于检查和修复硬盘驱动器上的文件系统错误和硬盘问题。以下是一些常用的chkdsk方法介绍:

  1. 运行基本的chkdsk

    chkdsk [驱动器名称]: 
    

    这将启动chkdsk来扫描指定驱动器上的文件系统,并报告任何发现的错误。通常,你需要以管理员权限运行此命令。

  2. 修复文件系统错误

    chkdsk [驱动器名称]: /f
    

    使用/f参数运行chkdsk可以修复检测到的文件系统错误。它会在扫描过程中尝试修复发现的问题。

  3. 扫描并修复坏扇区

    chkdsk [驱动器名称]: /r
    

    添加/r参数会扫描并尝试修复任何硬盘上的坏扇区。这个过程可能需要一些时间,特别是对于大容量硬盘。

  4. 强制卸载驱动器

    chkdsk [驱动器名称]: /x
    

    使用/x参数可以强制卸载指定驱动器,然后运行chkdsk。这通常用于系统驱动器,需要重新启动计算机以完成扫描和修复过程。

  5. 显示扫描进度

    chkdsk [驱动器名称]: /i
    

    添加/i参数可以显示chkdsk的扫描进度。这对于了解扫描的进展情况很有帮助。

  6. 将扫描结果保存到文件

    chkdsk [驱动器名称] > 文件路径.txt
    

    你可以将chkdsk的结果保存到一个文本文件中,以便稍后查看扫描报告。

  7. 检查系统驱动器

    chkdsk C: /f /r
    

    如果你要检查系统驱动器(通常是C:驱动器),可以使用/f/r参数一起运行chkdsk来修复文件系统错误和坏扇区。

请注意,运行chkdsk可能需要一些时间,特别是在大容量硬盘上或者在修复大量错误时。确保在运行chkdsk之前备份重要数据,以防意外数据丢失。同时,建议在执行磁盘维护操作之前关闭所有正在运行的应用程序。

python环境配置

系统版本

本次环境配置使用的香橙派系统为

Orangepi3-lts_3.0.8_ubuntu_jammy_desktop_xfce_linux5.16.17.7z

香橙派提供的ubantu系统常常分为两个版本desktop_xfce版本是带桌面版本,带桌面版本可以关闭桌面,得到和server版本大致相同的Linux命令行服务器版本

sudo orangepi-config

在这里插入图片描述

开始配置

这是一组关于在Linux系统上安装Python 3.8以及更改pip源的步骤。以下是每个步骤的解释:

1) 安装编译 Python 需要的依赖包
首先,您需要更新系统软件包列表,并安装编译Python所需的依赖包。这些包包括构建工具和Python的各种库,用于支持Python的不同功能和模块。

sudo apt-get update
sudo apt install -y build-essential zlib1g-dev \
libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev \
libreadline-dev libffi-dev curl libbz2-dev

以上是文档中的配置方法,我在配置Torch库时出现了

ModuleNotFoundError: No module named '_lzma'

我们需要在sudo apt-get update后先安装lzma依赖再编译python

apt-get install liblzma-dev -y
# centos系统执行
yum install xz-devel -y
yum install python-backports-lzma -y

# ubuntu系统执行
apt-get install liblzma-dev -y

2) 下载最新版本的Python 3.8源码并解压
使用wget下载Python 3.8的源代码压缩文件,并使用tar命令解压缩它。

wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
tar xvf Python-3.8.0.tgz

3) 运行配置命令
进入解压后的Python源代码目录并运行configure命令,以准备编译Python。–enable-optimizations标志用于启用编译时的优化。

cd Python-3.8.0
./configure --enable-optimizations

4) 编译安装Python 3.8
使用make命令编译Python。这可能需要一段时间,大约半个小时左右,具体时间取决于您的系统性能。

make -j4  # 使用-j标志以并行编译,数字4表示同时使用4个CPU核心
sudo make altinstall  # 使用altinstall以防止覆盖系统默认的Python版本

5) 检查Python版本
安装完成后,您可以使用以下命令来验证Python版本:

python3.8 --version

6) 更新pip
使用新安装的Python 3.8的pip来更新pip本身:

/usr/local/bin/python3.8 -m pip install --upgrade pip

7) 更换pip源的方法
在中国大陆等地区,访问Python官方源可能会较慢,因此更换pip源以提高下载速度是一个好主意。

永久更换pip源的方法:
a. 创建~/.pip目录并在其中创建pip.conf配置文件,并将源设置为清华源。

mkdir -p ~/.pip
cat <<EOF > ~/.pip/pip.conf
[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
EOF

b. 现在,使用pip3安装Python库时,将从清华源下载,速度会更快。

临时更换pip源的方法:
如果您只想为特定包更改pip源,可以使用以下命令,将替换为您要安装的包名。

pip3 install <packagename> -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn

这将在临时情况下使用清华源来安装特定包。

运行包配置

打包方式基于
半自动化使用.bat手动打包迁移python项目

  • Python 3.8
  • OpenCV
  • Pytorch
  • dlib
  • gradio

这里我们同样通过创建虚拟环境实现一个干净的新环境进行测试

python3.8 -m venv venv 
source venv/bin/activate
python3.8 -m pip install -i https://mirrors.aliyun.com/pypi/simple/ --upgrade pip setuptools
pip install -i https://mirrors.aliyun.com/pypi/simple/ scipy==1.7.1
pip install -i https://mirrors.aliyun.com/pypi/simple/ numpy==1.24.4
pip install -i https://mirrors.aliyun.com/pypi/simple/ matplotlib==3.4.3
pip install -i https://mirrors.aliyun.com/pypi/simple/ tqdm==4.62.2
pip install -i https://mirrors.aliyun.com/pypi/simple/ Pillow==10.0.2
pip install -i https://mirrors.aliyun.com/pypi/simple/ h5py==3.9.0
pip install -i https://mirrors.aliyun.com/pypi/simple/ gradio
pip install -i https://mirrors.aliyun.com/pypi/simple/ opencv-python==4.5.3.56
pip install -i https://mirrors.aliyun.com/pypi/simple/ scikit-learn

torch

pip install torch==2.1.0 torchvision==0.16.0 torchaudio==0.9.0  -f https://download.pytorch.org/whl/torch_stable.html
解决过程

香橙派里存在可下载的torch1.7.1,但是我没找到适配的torch1.7.1+cu110
同时也下载不到torchvision0.8.2+cu110和 torchaudio0.7.2

pip install torch==1.7.1+cu110 torchvision==0.8.2+cu110 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html

我尝试提升torch版本为torch==1.9.0,然后逐个适配torchvision和torchaudio此时版本匹配,但是运行是提示:

pip install torch==1.9.0 torchvision==0.10.0 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
Illegal instruction

原因: CPU 架构不匹配:程序被编译为针对一个不匹配的 CPU 架构而运行。
编译器问题:程序被使用了不兼容的编译器编译,或编译器安装有问题。 使用了不支持的指令:程序正在尝试执行一条不支持的 CPU 指令。
解决办法: 检查 CPU 架构:在运行程序之前,可以通过执行uname -a命令来查看 CPU 架构信息。如果程序是针对一个不兼容的 CPU
架构而编译的,应该使用与该架构兼容的目标平台重新编译程序。

这是常规官方解释,但我不懂CPU 架构版本匹配规则,即使使用:

uname -a

我也大概率无法解决问题

所以此时我让pip更新torch,它自动找到了适配版本

python3.8 -m pip install --upgrade torch

最终torch版本如下

pip install torch==2.1.0 torchvision==0.16.0 torchaudio==0.9.0 

dlib

方法一

安装 face_recognition 前首先需要安装下 dlib 这个库,由于 dlib 这个库在开发板上编译安装比较慢,我们使用在 gitee 上编译好的 dlib whl 文件,下载后直接安装就可以了。dlib whl 文件下载地址如下所示:
python_whl
你可以直接clone到桌面

git clone --depth=1 https://gitee.com/leeboby/python_whl

在 python_whl 文件夹中可以看到有多个版本的 dlib 安装包,dlib 不同版本
对应的 Linux 系统如下所示:
Ubuntu18.04 dlib-19.24.0-cp36-cp36m-linux_aarch64.whl
Ubuntu20.04 dlib-19.24.0-cp38-cp38-linux_aarch64.whl
Ubuntu22.04 dlib-19.24.0-cp310-cp310-linux_aarch64.whl
Debian10 dlib-19.24.0-cp37-cp37m-linux_aarch64.whl
Debian11 dlib-19.24.0-cp39-cp39-linux_aarch64.whl

我们使用

pip install dlib-19.24.0-cp38-cp38-linux_aarch64.whl
方法二

理论上你可以选择在
dlib官网源
直接下载得到例如dlib-19.19.0.tar.gz或其他版本的dlib然后

pip install dlib-19.19.0.tar.gz

你也可以

pip download dlib==19.19.0
pip install dlib-19.19.0.tar.gz

更新

python3.8 -m pip install --upgrade dlib

即可安装成功,但是板子性能不足,确实需要编译很久,建议使用方法一
该方法基于
全面横扫:dlib Python API在Linux和Windows的配置方案

运行你的代码

GUI.py可替换为任何你需要编译运行的.py文件

python3.8 GUI.py

你可以将完整文件传到Windows,然后这样打包你的代码
半自动化使用.bat手动打包迁移python项目

以上环境配置是我回忆的过程,若出现报红,请安装提示中的版本,过段时间我会格式化再配置一次。
当你无法解决问题时,
我建议优先使用最简单pip install自动匹配版本,
其次使用
python3.8 -m pip install --upgrade
来更新包到最新版,
最后使用pip安装可安装到的最旧的版本,配合pip uninstallpython3.8 -m pip install --upgrade
自动匹配版本逐个版本进行升级进行尝试

完整过程

sudo apt-get update
sudo apt-get install liblzma-dev -y
sudo apt install -y build-essential zlib1g-dev \
libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev \
libreadline-dev libffi-dev curl libbz2-dev
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
tar xvf Python-3.8.0.tgz
cd Python-3.8.0
./configure --enable-optimizations
make -j4  # 使用-j标志以并行编译,数字4表示同时使用4个CPU核心
sudo make altinstall  # 使用altinstall以防止覆盖系统默认的Python版本
python3.8 --version
/usr/local/bin/python3.8 -m pip install --upgrade pip
mkdir -p ~/.pip
cat <<EOF > ~/.pip/pip.conf
[global]
timeout = 6000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
trusted-host = pypi.tuna.tsinghua.edu.cn
EOF
python3.8 -m venv venv 
source venv/bin/activate
python3.8 -m pip install -i https://mirrors.aliyun.com/pypi/simple/ --upgrade pip setuptools
pip install -i https://mirrors.aliyun.com/pypi/simple/ scipy==1.7.1
pip install -i https://mirrors.aliyun.com/pypi/simple/ numpy==1.24.4
pip install -i https://mirrors.aliyun.com/pypi/simple/ matplotlib==3.4.3
pip install -i https://mirrors.aliyun.com/pypi/simple/ tqdm==4.62.2
pip install -i https://mirrors.aliyun.com/pypi/simple/ Pillow==10.0.2
pip install -i https://mirrors.aliyun.com/pypi/simple/ h5py==3.9.0
pip install -i https://mirrors.aliyun.com/pypi/simple/ gradio
pip install -i https://mirrors.aliyun.com/pypi/simple/ opencv-python==4.5.3.56
pip install -i https://mirrors.aliyun.com/pypi/simple/ scikit-learn
pip install -i https://mirrors.aliyun.com/pypi/simple/ imutils
pip install torch==2.1.0 torchvision==0.16.0 torchaudio==0.9.0 -f https://download.pytorch.org/whl/torch_stable.html
git clone --depth=1 https://gitee.com/leeboby/python_whl
pip install python_whl/dlib-19.24.0-cp38-cp38-linux_aarch64.whl
python3.8 GUI.py

总结

在香橙派上进行软件配置和环境搭建是为了使其能够运行Python应用程序。首先,我们介绍了下载相关软件的连接,包括操作系统和烧录工具。然后,我们详细说明了清空和分区重建TF卡的步骤,以便为开发板创建一个干净的存储设备。

此外,我们还提供了磁盘管理和修复文件系统问题的常用方法,使用了Diskpart和chkdsk工具。最后,我们介绍了Python环境配置的步骤,包括安装Python 3.8、更新pip、更换pip源以及安装各种Python库,以便在香橙派上运行Python应用程序。这些步骤将帮助用户准备好一个功能强大的开发环境,以便进行软件开发和项目实施。

你可能感兴趣的:(python,gradio,github,opencv,python,人工智能,pytorch)