c++ 中调用 opencv
本篇介绍如何在 Linux 系统(以 Ubuntu 18.04 为例)上安装 opencv,并在 c++ 代码中使用。
安装 opencv安装 opencv 的方式有两种,一种是通过 Ubuntu 的包管理器 apt 或 aptitude,另一种是通过从源码编译安装。一般包管理器安装的 opencv 版本比较低,通过编译安装可以灵活的选择不同的版本,特别是最新的版本。
包管理器安装123sudo apt update && sudo apt install libopencv-dev# orsudo aptitude update && sudo aptitude install libopencv-dev
编译安装主要参考 opencv 官网编译安装教程,大体步骤如下:
123456789101112131415sudo apt install -y g++ cmake git wget unzip build-essential pkg-config libgtk2.0-dev # 如果安装中遇到依赖问题,可以尝试 aptitude 来安装wg ...
ubuntu 包管理工具 aptitude
Ubuntu 的包管理工具除了 apt-get, apt 外,还有更强大的 aptitude,它能够更好的处理依赖包安装的问题。本篇简单介绍。
安装12sudo apt install updatesudo apt install aptitude
使用
命令
说明
aptitude update
更新可用的包列表
aptitude upgrade
升级可用的包
aptitude dist-upgrade
将系统升级到新的发行版
aptitude install pkgname
安装包
aptitude remove pkgname
删除包
aptitude purge pkgname
删除包及其配置文件
aptitude search string
搜索包
aptitude show pkgname
显示包的详细信息
aptitude clean
删除下载的包文件
aptitude autoclean
仅删除过期的包文件
参考文献
ubuntu更强大的包管理工具:aptitude
【解决方案】ubuntu安装libgtk2.0- ...
transport endpoint is not connected
linux 中使用 sshfs 挂载其他服务器硬盘或目录到本地服务器,当长时间不操作后,再次访问本地挂载点会出现 Transport endpoint is not connected,如何解决该问题?
假设本地挂载点为 /mnt/datafs,那么可以使用如下命令卸载掉当前挂载:
1fusermount -u /mnt/datafs
参考文献
Transport endpoint is not connected [closed]
Transport endpoint is not connected in SSHFS
python 编译或打包 py 文件
python 是一种解释性语言,其执行时先将代码编译到内存中的 PyCodeObject 中,当程序运行结束后,将 PyCodeObject 写入到硬盘的 .pyc 文件中。当下次运行时,首先检查是否有 .pyc 文件,如果找到,那么就直接载入 .pyc 文件;否则直接编译 .py 到内存中形成 PyCodeObject。.pyc 可以理解为 PyCodeObject 的持久化保存。
编译py为pyc命令行编译
12345678# compile 单个文件python -m py_compile hello.py# 编译文件夹下的所有文件,和 .py 同文件夹python -O -m compileall -b -f hello_dir# 编译后放到 __pycache__python -O -m compileall -f hello_dir
代码中编译
1234567# 单个文件import py_compilepy_compile.compile(r'hello.py')# 多个文件import compileallcompileall.compile_ ...
python 连接 mysql 数据库
python 连接 mysql 数据库,可以把生产的数据存入到 mysql 数据库,从 mysql 数据库中读取数据。本篇基于 linux 简单介绍。
安装 mysql12345678910111213sudo apt updatesudo apt install mysql-server# 启动 mysqlsudo service mysql# 访问数据库mysql --defaults-file=/etc/mysql/debian.cnf# 或者查看用户名密码,然后使用用户名和密码登录cat /etc/mysql/debian.cnfmysql -u debian-sys-maint -p
创建数据库和表、支持中文12345678910111213141516171819mysql --defaults-file=/etc/mysql/debian.cnf# 查看可用数据库mysql> show databases;# 创建新数据库mysql> create database dro;# 创建新表mysql> use dro;Database changedm ...
libstdc++.so.6 版本问题
在运行深度学习模型时,有时候会遇到 libstdc++.so.6 过低,导致 GLIBCXX_xxx.x.xx 无法找到,可以尝试使用如下方法解决。
查看当前 GLIBC 版本1strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBC
通过上面命令可以查看当前系统默认安装的各个 GLIBC版本。
查找 MINICONDA 安装的版本在 miniconda 的 lib 中安装的 libstdc++.so.6 版本一般会比系统版本高,但是,系统默认的版本没有链接到该版本。可以先查找 miniconda 安装的 libstdc++.so.6 版本
1234567find / -name "libstdc++.so.6" -type f# 输出结果大概如下/usr/lib/x86_64-linux-gnu/libstdc++.so.6/opt/conda/pkgs/libstdcxx-ng-11.2.0-h1234567_1/lib/libstdc++.so.6/opt/conda/envs/py38/ ...
深度学习中的归纳偏置
在阅读人工智能,特别是深度学习相关的文章时,总会遇到 inductive bias 一词,翻译为归纳偏置。本篇介绍该词的含义。
归纳归纳法或归纳推理(Inductive reasoning),有时叫归纳逻辑。它基于对特殊的代表的有限观察,把性质或关系归结到类型。或者基于对反复再现的现象的模式的有限观察,公式表达规律。如:
冰是冷的
所有观察到的乌鸦是黑的
他总是把画像挂在钉子上
推断出普遍的命题
所有的冰都是冷的
所有乌鸦都是黑的
所有画像都是挂在钉子上
过度普遍化,在某些情况下是错的。
多数人学习的形式逻辑是演绎(演绎推理 Deductive reasoning,又叫正向推理。结论可从叫做‘前提’的已知事实‘必然地’得出推理。如果前提是真的,那么结论必然为真。如:大前提是“任何三角形只可能是锐角三角形、直角三角形和钝角三角形”,小前提是“这个三角形既不是锐角三角形,也不是钝角三角形”,结论是“这个三角形是直角三角形”)的,而归纳推理则时属于非形式逻辑。归纳论证从来就不是有约束力的,但它们可以是有说服力的。归纳推理在演绎上是无效的。
归纳偏置归纳偏置(Inductive b ...
FLOPS 还是 FLOPs
在基于深度学习的人工智能研究中,经常会出现 FLOPS 和 FLOPs,大模型时代时出现 GFLOPS、TFLOPS 等等。本篇简要介绍下。
FLOPsFLOPs 是 FLoating-point of OPerations 的缩写,表示浮点运算次数,常用来衡量算法或模型复杂度。
具体计算包括模型运行时有多少次乘法和加法。常用工具有 torchstat, thop 等。
FLOPSFLOPS 是 FLoating-point Operations Per Second 的缩写,表示每秒浮点运算次数,常用来衡量硬件的性能。
除此之外,还有 GFLOPS(Giga Floating-point Operations Per Second)、TFLOPS(Tera Floating-point Operations Per Second),它们之间的换行如下:
123456789101112# 一个MFLOPS(megaFLOPS)等于每秒一百万(=10^6)次的浮点运算1MFLOPS = 1000,000FLOPS# 一个GFLOPS(gigaFLOPS)等于每秒十亿(=10^9)次的 ...
mac 挂载硬盘
Mac 上挂载 ntfs 硬盘默认无法写入,本篇介绍如何在 Mac 上挂载 ntfs 硬盘,并支持磁盘读写。
Mac 上挂载 ntfs 硬盘需要 ntfs-3g 支持,首先我们安装它。
安装1234567# 添加源brew tap gromgit/homebrew-fuse# 安装brew install gromgit/fuse/ntfs-3g-mac# 或者brew install ntfs-3g-mac
安装完成后,就可以使用了
挂载硬盘首先我们通过 USB 连接硬盘到 Mac 上,查看硬盘设备号
1diskutil list
我这里是 /dev/disk2s1 挂载到 /Volumes/My Passport。
然后卸载 mac 自动挂载(自动挂载方式无法写入)
1sudo umount /Volumes/My\ Passport
最后再使用 ntfs-3g 进行挂载
123456# 创建挂载点cdmkdir passport# 进行挂载sudo /usr/local/bin/ntfs-3g /dev/disk2s1 /Users/jinzhongxu/passpor ...
jetson 安装 librealsense 和 realsense-ros
jetson 连接 d435i(Intel(R) RealSense(TM) Cameras) 后,如何在 ros2 中使用?需要安装 librealsense 和 realsense-ros,本篇介绍如何安装它们。
安装 librealsense首先请先查看 librealsense 的 github 网站,里面有关于 jetson 上配置的详细教程:https://github.com/IntelRealSense/librealsense/blob/master/doc/installation_jetson.md,主要命令如下:
1234567sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDE || sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key F6E65AC044F831AC80A06380C8B3A55A6F3EFCDEsudo ...
jetson orin NX 开启最大性能
06e2ac5bc284b9422305031efac35cbfd06cba0f87cae9d279990608ee5dee8501ddf9c695364603cf482e60f055c4271f30c6d4a4e9fd1502454d6cb3ce1cb54481d3ba808031fd30ca082b0f549a211dd682e29e50341dee54fea954b663ede103da6084eec99bb05123be7cee7ba718775e412e71b81b20b08597db0e59160a5db8e1c05f4fcb191b0af235f94eb215655961efead12e63ceacb0badf538c8def52b33e0e2617972522ae6fc283962d68a0126073a8ee3cccfc049d90c9172ecfeaecb874ddea9adafe58d4fbe5e6765c6db4e3c12fe93ec66a7445536e6e189f8e0aa92cb4e3126031212c8cc2c5aa3de963319aecdd9 ...