macOS 为 Google Coral Dev Board 刷入系统镜像指南

本指南旨在帮助 macOS 开发者为 Google Coral Dev Board (Google Edege TPU) 通过 OTG 刷入 Mendel Linux 系统。 第一步:连接到开发板串行控制台安装 USB 转 UART Bridge VCP 驱动程序官方下载地址:https://www.silabs.com/developers/usb-to-uart-bridge-vcp-drivers?tab=downloads 下载完成后,双击运行并安装即可。 安装辅助程序通过 Homebrew 安装: sudo brew install screen fastboot 连接开发板先不给开发板供电,使用 micro-B USB 线将 Mac 连接到开发板。连接成功后会开发板会亮起绿色🟩和橙色🟧指示灯。 随后使用命令查看串口连接是否正常工作: ls /dev/cu* 连接正常应该会列出/dev/cu.SLAB_USBtoUART,如下图所示。 然后使用screen命令连接开发板串行命令行: screen /dev/cu.SLAB_USBtoUART 115200 此时命令行应为空白,因为开发板未供电开机。 给开发板供电如图所示,将开发板电源插入,电源接口为右边的 USB-C 接口。 连接后开发板会亮起电源指示灯并转动风扇。串行命令行则会打印开发板的开机信息: 接着在串行命令行输入命令使开发板进入 fastboot 模式: fastboot 0 第二步:刷入 Mendel Linux 系统下载 Mendel Linux 系统镜像回到 Mac,下载 Mendel Linux 系统镜像,官方下载地址:https://coral.ai/software/#mendel-dev-board ...

2024年06月16日 · 1 min · Cassius0924

SSH 远程连接后解决 No protocol specified 指南

参考链接:https://unix.stackexchange.com/questions/209746/how-to-resolve-no-protocol-specified-for-su-user

2024年06月16日 · 1 min · Cassius0924

Ubuntu Neovim 安装和配置指南

安装不建议使用apt安装,因为apt安装的版本总是不是最新版。一些neovim插件依赖于高版本的neovim,因此使用apt安装可能会导致一些插件无法正常使用。 下面介绍安装最新版neovim的方法。 下载安装压缩包: wget https://github.com/neovim/neovim/releases/latest/download/nvim-linux64.tar.gz 安装: tar xzvf nvim-linux64.tar.gz cp ./nvim-linux64/bin/nvim /usr/bin/ 测试: nvim -v nvim配置核心配置配置 nvim 需要先创建配置文件的文件夹。 cd ~ mkdir -r .config/nvim cd .config/nvim nvim 使用 lua 语言作为配置文件语言,新建 init.lua,该文件是 nvim 的配置的入口。 touch init.lua 模块化配置nvim 支持模块化配置,所以可以在 nvim 文件夹下创建多个配置模块: mkdir -r lua/core cd lua/core core 文件夹存放 nvim 的核心配置,例如 nvim 基础配置(options.lua)和快捷键配置(keymaps): touch options.lua keymaps.lua 此时,neovim 的配置文件结构如下所示: ~ `--.config `-- nvim |-- init.lua |-- lua | |-- core | | |-- keymaps.lua | | `-- options.lua | `-- plugins | `-- plugins-setup.lua `-- plugin `-- packer_compiled.lua 回到 init.lua 文件,在 init.lua 中调用刚刚新建的两个模块: ...

2024年06月16日 · 1 min · Cassius0924

Ubuntu 配置开机自动挂载三星 T7 固态硬盘指南

连接硬盘先将硬盘与主机相连接,然后运行fdisk命令查看系统的硬盘分区。 sudo fdisk -l 找到自己连接的硬盘,一般为/dev/sda1。 查看硬盘UUID运行命令 sudo blkid 找到自己硬盘的 UUID 和 TYPE,记录下它们。三星 T7 硬盘默认为兼容性较好的 exfat 格式。 配置开机自动挂载接着修改系统/etc/fstab文件。 vim /etc/fstab 在文件最后添加一行: UUID=C65A-E9E1 ~/disk exfat defaults,nofail,utf8,dmask=022,fmask=133 0 0 内容格式为: UUID=<UUID> <挂载目录> <硬盘格式> <挂载参数> <是否自动备份> <开机是否自检> 挂载参数中可以设置: defauls:默认挂载参数; dmask=:目录的默认权限; fmask=:文件的默认权限; uid=:挂载硬盘的用户id; gid=:挂载硬盘的组id; utf8:字符编码; nofail:错误忽略,如果硬盘不存在依然正常开机。 设置完毕后保存并退出文件。 重启 Ubuntusudo reboot 重启后将自动挂载硬盘到指定目录。

2024年06月16日 · 1 min · Cassius0924

VS Code Clang 语法格式化配置

待优化! 基于 Visual Studio { IndentWidth: 4, IndentCaseLabels: true, ColumnLimit: 120, NamespaceIndentation: All, IndentAccessModifiers: false, AccessModifierOffset: -4, AlignTrailingComments: true, AlwaysBreakTemplateDeclarations: true } IndentWidth: 缩进4格

2024年06月16日 · 1 min · Cassius0924

VS Code 设置网络代理指南

当你使用 VS Code 时,有时你可能需要配置网络代理来访问特定的网络资源(魔法)。 例如在局域网远程开发时使用 GitHub Copilot Chat 插件并且远程主机无魔法时就可以进行配置网络代理。 配置教程打开设置,搜索 proxy 找到 Http: Proxy,填入代理地址即可。 注意在远程开发时只能设置远程主机的Http代理,无法设置 VS Code 本机的网络代理。

2024年06月16日 · 1 min · Cassius0924

YOLO 目标检测算法学习笔记(二)

可以说,YOLO各代升级的改进点都是提升检测效果mAP和速度FPS。 Precision精度与Recall召回率要计算精度与召回率(查全率),我们需要先了解四个值: TP(True Positives) FP(False Positives) FN(False Negatives) TN(True Negatives) 相关(Relevant),正类 无关(NonRelevant),负类 被检索到(Retrieved) TP,正类判定为正类。 FP,负类判定为正类 未被检索到(Not Retrieved) FN,正类判定为负类 TN,负类判断为负类 记忆方法我们只需要记住这里面的四个单词的中文意思方可推断出四个值的含义。True 正确的、False 错误的、Positives 正类以及 Negatives 负类。 True Positives(➕➕)——正确的判断为正类,即将正类判定为正类。 False Positives(➖➕)——错误的判定为正类,即将负类判定为正类。 False Negatives(➕➖)——错误的判定为负类,即将正类判定为正类。 True Negatives(➖➖)——正确的判定为负类,即将负类判定为负类。 计算公式$$ Precision = \frac{TP}{TP+FP} $$ $$ Recall = \frac{TP}{TP + FN} $$ 为了方便理解,我画了一个草图,以格子为单位。其中蓝色框代表实际值,橙色框代表预测值。 真正的正类(蓝色框内)共20个格子,真正的负类(蓝色框外)共10个格子。判定的正类(橙色框内),判定的负类(橙色框外) TP值(正确的判断为正类),真正的正类与判定的正类的交集,即涂黄色的格子,共9个格子。 FP值(错误的判定为正类),真正的负类与判定的正类的交集,即涂绿色的格子,共6个格子。 FN值(错误的判定为负类),真正的正类与判定的负类的交集,即涂蓝色的格子,共11个格子。 TN值(正确的判定为负类),真正的负类与判定的负类的交集,即涂红色的格子,共4个格子。 例子已知条件:班级总人数100人,其中男生80人,女生20人。 目标:找出所有的女生。 结果:从班级中选择了50人,其中20人是女生,还错误的把30名男生挑选出来了。 TP = 20; FP = 30; FN = 0; TN = 50 mAP指标目标检测不可单看精度(Precision)或召回率(Recall),因为两者为此消彼长的关系。所以需要一个新的指标用于综合的衡量目标检测的效果。 mAP(mean Average Precision)指标,又名全类平均精度,用于综合衡量目标检测的效果。 ...

2024年06月16日 · 1 min · Cassius0924

YOLO 目标检测算法学习笔记(三)

YOLO-V1YOLO,全称 You Only Look Once。名字已经说明了一切! YOLO 这是一个经典的 one-stage 方法,把检测问题转换为回归问题,一个CNN就可以搞定。 YOLO 相比于 Faster R-CNN 虽然在 mAP 值上略逊一筹,但其 FPS 值是远远高于 Faster R-CNN 的,因此2016年的时,YOLO爆火。 核心思想 将输入图像分割成 SxS 个网格(如7x7),每个网格负责检测本身区域是否含有物体。 每个网格会预测 B 个边界框(在YOLO-V1中,B值等于2),边界框由四个变量表示 x、y、w、h,以及每个边界框的置信度,置信度用 c 表示。置信度表示边界框包含物体的概率。 过滤掉置信度低的边界框。 由于整个检测只需要一个前向传播,没有区域提议生成候选框的过程,所以速度非常快。 网络架构 将输入图像(在YOLO-V1中限制了输入图像的大小)进行通过卷积神经网络进行特征提取,获得 7x7x1024 的特征图,再进入全连接层,得到 1470 个特征,随后 Reshape 成 7x7x30 的特征图。 下面解释一下 7x7x30 的含义。 7x7 表示输入图像最后分割的网格大小。 30 分为 5+5+20,其中前两个5代表两个边界框的 x、y、w、h和c;最后的20表示当前格子属于数据集中的各个类别的概率。 注意,这里三个值都不是固定不变的,会由于YOLO版本的更新和训练数据集的变化而改变。 总结一下 ,如上图所示,输入图像最后会被分割成许多个网格,每个网格都包含了若干值。 S:网格边长;B:预测边界框数量;C:数据集中的类别个数。 $$ (S * S) * (B * 5 + C) $$ ...

2024年06月16日 · 1 min · Cassius0924

YOLO 目标检测算法学习笔记(四)

YOLO-V2下图为YOLO-V2相较于YOLO-V1的改进点,以及改进后 mAP 值的变化。 Batch NormalizationV2 版本舍弃了 Dropout,不再有全连接层(Fully connected layers,FC)。每次卷积后都加入 Batch Normalization,对网络的每一层的输入都进行归一化,使收敛更容易。 经过 Batch Normalization 处理后的网络会提升2%的mAP值。 从现在的角度来看,Batch Normatlization 已经称为卷积神经网络处理必备处理了。 High Resolution ClassifierHigh Resolution Classifier,即高分辨率分类器,高分辨率分类器。 在 V1 版本,训练时用的是224*224分辨率的图片,测试时又使用448*448分辨率的图片,这会导致模型“水土不服”。 针对这一问题,V2 版本在模型训练时额外进行了10次448*448的微调。经过微调后,V2 版本的 mAP 值提升了约4%。 Convolutional

2024年06月16日 · 1 min · Cassius0924

YOLO 目标检测算法学习笔记(一)

深度学习经典检测方法 one-stage(单阶段):YOLO系列 two-stage(双阶段):Faster-Rcnn、Mask-Rcnn系列 Faster-Rcnn:物体检测开山之作。 one-stage 单阶段检测优势:速度快,适合做实时检测任务。 缺点:效果不佳。 目标检测的两个主要指标:mAP和FPS。 mAP:检测效果的综合指标。(mAP值越大效果越好) two-stage 双阶段检测优势:效果较好。 缺点:速度较慢、不适合用于视频流的实时检测。 Mask-Rcnn是一个非常实用的通用框架(建议了解)。

2024年06月16日 · 1 min · Cassius0924