精华内容
下载资源
问答
  • 树莓派机器视觉环境搭建

    千次阅读 2019-01-15 14:22:27
    树莓派安装系统 设置静态网络 更换镜像源 安装中文输入法 电脑控制树莓派 OpenCV3.4.1安装 1.树莓派安装系统 下载你所要的树莓派系统 https://www.raspberrypi.org/downloads/ RASPBIAN——&amp...

    主要内容:

    • 树莓派安装系统
    • 设置静态网络
    • 更换镜像源
    • 安装中文输入法
    • 电脑控制树莓派
    • OpenCV3.4.1安装
    • 设置通用(UART)串口

    1.树莓派安装系统

    • 下载你所要的树莓派系统
    https://www.raspberrypi.org/downloads/
    

    RASPBIAN——>RASPBIAN STRETCH WITH DESKTOP

    • 下载格式化磁盘软件,将你的磁盘格式化
    https://www.sdcard.org/chs/index.html
    

    在这里插入图片描述

    • 完成安装并进行U盘格式化操作
    • 将你树莓派的内存卡插在电脑上,打开软件
      在这里插入图片描述
    • 下载etcher,将系统导入到你的内存卡中
    https://etcher.io/
    

    在这里插入图片描述

    选择好你下载的系统压缩包,你的树莓派内存卡,点击Flash!
    etcher提示成功后,就可以将内存卡取下插入树莓派

    • 树莓派Raspbian系统默认密码为raspberry,ubuntu mate默认密码为ubuntu

    2.设置静态网络

    树莓派自带无线网卡,开机后按照提示链接WiFi热点输入密码上网。我们可以在终端查看网络连接情况:

    ifconfig
    

    在这里插入图片描述
    默认情况下树莓派的IP是DHCP动态配置的,为了下文使用VNC登录方便,通常做法是将IP改为静态地址。

    • 打开/etc/dhcpcd.conf
    sudo vi /etc/dhcpcd.conf
    
    • 在末尾添加以下内容
    interface eth0
    static ip_address=192.168.0.142/24
    static routers=192.168.199.1
    static domain_name_servers=114.114.114.114 8.8.8.8
    

    static ip_address是树莓派的IP地址
    static routers是路由器地址
    /24表示为子网掩码255.255.255.0
    114.114.114.114是国内的较快速的DNS服务器
    8.8.8.8 是谷歌的DNS服务器

    • 重启
    reboot
    

    3.更换镜像源

    • 使用管理员权限(经由sudo),编辑/etc/apt/sources.list文件。参考命令行为:
    sudo nano /etc/apt/sources.list
    

    用#注释掉原文件内容,用以下内容取代:

    deb http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
    deb-src http://mirrors.tuna.tsinghua.edu.cn/raspbian/raspbian/ stretch main contrib non-free rpi
    
    • 编辑/etc/apt/sources.list.d/raspi.list文件
    sudo nano /etc/apt/sources.list.d/raspi.list
    

    用#注释掉原文件内容,用以下内容取代:

    deb http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
    deb-src http://mirror.tuna.tsinghua.edu.cn/raspberrypi/ stretch main ui
    
    • 更新文件
    sudo apt-get update
    sudo apt-get upgrade
    

    4.安装中文输入法

    • 安装中文字体
    sudo apt-get install ttf-wqy-zenhei
    
    • 安装中文输入法
    sudo apt-get install scim-pinyin
    

    安装好拼音输入法后,可以直接命令行输入scim激活,下次启动是会自动启动的。快捷键是Ctrl+空格。或者直接点击屏幕右上角的输入法图标选择。

    • 配置中文操作系统
    sudo raspi-config
    

    进行系统设置。选择Internationalisation Options–>Change Locale–>zh_CN.UTF-8–>OK,然后重启系统,设置为中文操作系统。
    在这里插入图片描述

    5.电脑控制树莓派

    SSH只能使用命令行控制树莓派,而VNC可远程登录树莓派图形界面系统。VNC包括服务端(VNC server)和客户端(VNC viewer)。
    安装VNC官方参考文档:https://www.realvnc.com/en/connect/docs/raspberry-pi.html#raspberry-pi-setup

    • 在树莓派上安装VNC server
    sudo apt-get update
    sudo apt-get install realvnc-vnc-server
    
    • 打开VNC service服务
    sudo raspi-config
    

    找到 Interfacing Options > VNC and select Yes.
    设置完成后,树莓派启动时,VNC service将自动启动。

    • 获取树莓派IP地址
    ifconfig
    

    在这里插入图片描述

    • 电脑端安装VNC Viewer
      下载地址:
    https://www.realvnc.com/en/connect/download/viewer/
    

    安装后打开VNC Viewer
    在这里插入图片描述
    File ——> New connection
    在这里插入图片描述
    红色部分输入树莓派的IP地址,点击OK添加。
    选择连接之后输入树莓派的登录用户名密码,初始用户名 pi,密码为进入树莓派系统时设置的密码(如果没有设置,树莓派初始密码为 raspberry)。确认之后即可进入树莓派的远程桌面!
    在这里插入图片描述
    在这里插入图片描述

    6.OpenCV3.4.1安装

    • 软件更新
    // 软件源更新
    sudo apt-get update 
    // 升级本地所有安装包,最新系统可以不升级,版本过高反而需要降级才能安装
    sudo apt-get upgrade
    // 升级树莓派固件,固件比较新或者是Ubuntu则不用执行
    sudo rpi-update
    
    • 安装构建OpenCV的相关工具:
    // 安装build-essential、cmake、git和pkg-config
    sudo apt-get install build-essential cmake git pkg-config
    
    • 安装常用图像工具包
    // 安装jpeg格式图像工具包
    sudo apt-get install libjpeg8-dev 
    // 安装tif格式图像工具包
    sudo apt-get install libtiff5-dev 
    // 安装JPEG-2000图像工具包
    sudo apt-get install libjasper-dev 
    // 安装png图像工具包
    sudo apt-get install libpng12-dev 
    
    • 安装视频I/O包
    sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
    
    • 安装gtk2.0
    sudo apt-get install libgtk2.0-dev
    
    • 优化函数包
    sudo apt-get install libatlas-base-dev gfortran
    
    • 编译OpenCV源代码
    // 使用wget下载OpenCV源码,觉得慢的话可以到https://github.com/opencv/opencv/releases下载OpenCV的源代码
    // tar.gz格式,需要解压好,放到用户目录下
    // 但是OpenCV_contrib请大家使用wget,亲测直接到Github下载zip文件的话,会有编译问题
    
    // 下载OpenCV
    wget -O opencv-3.4.1.zip https://github.com/Itseez/opencv/archive/3.4.1.zip
    // 解压OpenCV
    unzip opencv-3.4.1.zip
    // 下载OpenCV_contrib库:
    wget -O opencv_contrib-3.4.1.zip https://github.com/Itseez/opencv_contrib/archive/3.4.1.zip
    // 解压OpenCV_contrib库:
    unzip opencv_contrib-3.4.1.zip
    

    找到你下载的源码文件夹并打开,tar.gz解压后文件夹名应该是opencv-3.4.1(版本号可能会变化),git方式下载的文件夹名应该是opencv。之后我们新建一个名为release的文件夹用来存放cmake编译时产生的临时文件:

    // 打开源码文件夹,这里以我修改文章时最新的3.4.1为例
    cd opencv-3.4.1
    // 新建release文件夹
    mkdir release
    // 进入release文件夹
    cd release
    

    设置cmake编译参数,安装目录默认为/usr/local ,注意参数名、等号和参数值之间不能有空格,但每行末尾“\”之前有空格,参数值最后是两个英文的点:

    /** CMAKE_BUILD_TYPE是编译方式
    * CMAKE_INSTALL_PREFIX是安装目录
    * OPENCV_EXTRA_MODULES_PATH是加载额外模块
    * INSTALL_PYTHON_EXAMPLES是安装官方python例程
    * BUILD_EXAMPLES是编译例程(这两个可以不加,不加编译稍微快一点点,想要C语言的例程的话,在最后一行前加参数INSTALL_C_EXAMPLES=ON \)
    **/
    
    sudo cmake -D CMAKE_BUILD_TYPE=RELEASE \
        -D CMAKE_INSTALL_PREFIX=/usr/local \
        -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.4.1/modules \
        -D INSTALL_PYTHON_EXAMPLES=ON \
        -D BUILD_EXAMPLES=ON ..
    
    • 开始正式编译
    // 编译,以管理员身份,否则容易出错
    sudo make
    // 安装
    sudo make install
    // 更新动态链接库
    sudo ldconfig
    
    • 查看安装版本
    pkg-config --modversion opencv
    
    • 测试安装:
    cd ~/opencv-3.4.1/release/bin
    ./opencv_test_core
    

    7.设置通用(UART)串口的方法

    • 首先查看有没有相关文件
    cd /boot/overlays
    ls
    

    查看是否存在README 和 pi3-miniuart-bt-overlay.dtb 或者是 pi3-miniuart-bt.dtb (后面的缺了(overlay)但是在README中的解释是相同的)。如果没有的话,自行百度下载。
    在这里插入图片描述

    • 查看并修改串口映射关系
    ls -l /dev
    

    在这里插入图片描述
    博主已经配置好了,因此会有ttyAMA0和ttyS0两个串口映射,最开始只有一个。下一步对文件进行修改。

    sudo nano /boot/config.txt
    

    在该文件最后一行加入代码

      dtoverlay=pi3-miniuart-bt
    

    保存文件。

    sudo nano /boot/cmdline.txt
    

    注释掉原来的内容,将以下内容添加进去

    dwc_otg.lpm_enable=0  console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4  elevator=deadline fsck.repair=yes   rootwait
    

    保存文件。

    • 禁用串口的控制台功能
    sudo systemctl stop serial-getty@ttyAMA0.service
    sudo systemctl disable serial-getty@ttyAMA0.service
    

    最后,我们依次执行以下命令完成所有配置并重启:

    sudo apt-get update
    sudo apt-get upgrade
    sudo reboot
    

    参考资料

    树莓派安装系统详细步骤
    从零开始搭建Raspberry Pi机器视觉编程环境
    为树莓派更换国内镜像源
    树莓派 VNC Viewer 远程桌面配置教程
    (树莓派、linux通用)OpenCV3源码方式安装教程(最新3.4.1)
    树莓派3b与电脑串口互相通信进行数据传输的配置过程
    【最新】 树莓派3B 设置通用(UART)串口的方法

    展开全文
  • 树莓派+视觉定位的专用摄像头 Diagonal 6.46 mm (Type 1/2.8) CMOS Solid-state Image Sensor with Square Pixel for Color Cameras
  • 从零开始搭建Raspberry Pi机器视觉编程环境

    万次阅读 多人点赞 2016-06-09 23:57:18
    从零开始搭建Raspberry Pi机器视觉编程环境 本文主要包括如下内容: 安装Raspbian系统 连接和设置网络 安装中文支持 用电脑控制树莓派 通过SSH远程登录树莓派命令行界面 安装VNC远程登录树莓派图形...

     

    从零开始搭建Raspberry Pi机器视觉编程环境

     

    本文主要包括如下内容:

     

    • 安装Raspbian系统
    • 连接和设置网络
    • 安装中文支持
    • 用电脑控制树莓派
      • 通过SSH远程登录树莓派命令行界面
      • 安装VNC远程登录树莓派图形桌面
      • 通过串口连接树莓派
    • 安装OpenCV及相关开发包
    • 一键备份树莓派SD卡

     

     

    1 安装Raspbian系统

     

     

    拿到树莓派后第一件事当然是装系统。安装树莓派系统所需配置:

     

     

    • 1个输出5V,>700mA(通常选择1A或2A)的USB电源适配器
    • 1根micro USB线(安卓线)
    • 1张拷贝好系统镜像与NOOBS的SD卡(>=8G)
    • 1个可以用于树莓派的显示器及相关视频转接线(如果需要)
    • 1个USB无线网卡或一根网线+网络

     

    对于机器视觉应用,选择一张大于8G的卡,我的是32G,装完本文所有内容后约使用6G空间。如果费劲的装完所有软件后怕一朝回到解放前,则另外需要约7G空间用于备份。

    1.1下载系统和安装工具

    下载树莓派操作系统Raspbian,下载地址:

     

    下载系统Raspbian系统和安装工具NOOBS (NewOut Of Box System)。

    1.2 安装系统

    提示:本文末尾更新了2018.08.06升级系统及最新VNC连接方法,与老版本略有不同,如有需要请移步至文末。

    将下载的系统文件解压后的镜像文件xxx-raspbian-jessie.img"拷贝进SD卡根目录。

    将NOOBS 解压后的NOOBS_v1_9_1文件夹中的所有文件拷贝到SD卡根目录,注意要进入NOOBS_v1_9_1文件夹拷贝里面的所有文件,而不是直接拷贝文件夹。

    拷贝完成后SD卡根目录应该是类似这个样子:

    将SD卡装入树莓派。找个带HDMI接口的显示器,如果没有就买个HDMI转VGA的转接线使用常见VGA接口显示器作为树莓派的屏幕,连上USB鼠标键盘,一切就绪。连上电源线通电后树莓派将自动进入安装程序,稍等一会就系统就装好了,默认登录到图形界面。

     

    2 安装和设置网络

    2.1 连接网络

    我使用的是USB无线wifi网卡,插好自动配置,找到wifi热点输入密码连接即可上网。我们可以在树莓派的LX终端命令行使用如下命令查看网络连接情况

    ifconfig

    etho的部分为有线网络连接情况,wlan0的部分为无线网络连接情况,inet addr: xxx.xxx.xxx.xxx 就是树莓派的IP地址。


     

    2.2 设置静态IP

    默认情况下树莓派的IP是DHCP动态配置的,为了下文使用VNC登录方便,通常做法是将IP改为静态地址。改 /etc/network/interfaces配置文件

    sudo nano /etc/network/interfaces
    • sudo是Linux命令:使用超级用户运行的意思。
    • nano是树莓派自带的一个文本编辑器,很多配置文件都可以用它来打开修改。

    将打开的配置文件wlan0的相应部分修改如下:

    allow-hotplug wlan0
    iface wlan0 inet static
    wpa-conf/etc/wpa_supplicant/wpa_spplicant.conf
    address 192.168.0.112
    netmask 255.255.255.0
    gateway 192.168.0.1
    • IP设置为静态:static
    • 此处固定树莓派的无线网络IP地址为:192.168.0.112
    • 子网掩码设置为:255.255.255.0
    • 网关为家里路由器的地址:192.168.0.1

    修改后的配置文件类似下图:

    Ctrl+O保存,Ctrl+X退出编辑。然后重启树莓派使配置生效

    sudo reboot

    网络配置方法还有许多,就不一一罗列了,可参考其他相关文章。

     

    3 安装中文支持

     

    3.1 安装中文字体

    进入树莓派LX终端,在命令行输入:

    sudo apt-get install ttf-wqy-zenhei

    将安装文泉驿的开源中文字体,现在可以正常显示中文了。

    3.2 安装中文输入法

    安装Linux下的中文输入法SCIMSmart Common Input Method),命令行输入

    sudo apt-get install scim-pinyin

    安装好拼音输入法后,可以直接命令行输入scim激活,下次启动是会自动启动的。快捷键是Ctrl+空格。或者直接点击屏幕右上角的输入法图标选择。

    3.3 配置中文操作系统

    命令行运行:

    sudo raspi-config

    进行系统设置。选择Internationalisation Options-->Change Locale-->zh_CN.UTF-8-->OK,然后重启系统,设置为中文操作系统。

     

    4 用电脑控制树莓派

    4.1 SSH

    Secure Shell(SSH)是Linux的一个功能可以使你从主机电脑上快速打开一个树莓派的终端会话。要使用SSH,首先需要打开它。最简单的方式是使用Raspi Config,目前的Raspbian系统已经默认打开SSH功能。

    有网络连接的情况下,SSH是一个远程连接电脑的常用方式;可以在Secure Shell中使用可以在树莓派上执行的任何命令。同时,基于它的通信都是加密的。

    该方式的缺陷是基于命令行而非图形界面。如果想要远程访问图形桌面环境,请参考下一节使用VNC。

    windows系统使用SSH需要安装Putty以建立SSH会话。

    putty下载地址:

    解压缩后运行putty.exe

    putty基本设置里“连接类型”选择SSH,主机名称或IP地址填写树莓派的IP地址,点击“打开”。弹出命令行提示输入登录用户名,输入:pi,稍等提示输入密码,输入raspberry即可实现命令行远程控制树莓派。

    4.2 VNC

    ---------------------------------------------------------------------------------------------------------------------------------

    提示:2018.08.06升级系统及最新VNC连接方法,与老版本略有不同,如有需要请参考官方文档:

    https://www.realvnc.com/en/connect/docs/raspberry-pi.html#raspberry-pi-setup

    ---------------------------------------------------------------------------------------------------------------------------------

    通过SSH只能使用命令行控制树莓派,而VNC可远程登录树莓派图形界面系统。VNC包括服务端(VNC server)和客户端(VNC viewer)

    (1)安装服务端:tightvncserver

    首先给树莓派安装VNC服务端,通过LX终端命令行安装tightvncserver:(此处为老版本操作,新版本参考上文官网连接)

    sudo apt-get install tightvncserver

    ----------------------------------------------------- update 2018.08.06----------------------------------------------------

    请注意:上文为老版本的操作,2018年8月重装系统时,发现VNC新版安装方式如下:

     

    sudo apt-get update
    sudo apt-get install realvnc-vnc-server

    打开VNC服务

    sudo raspi-config

    找到 Interfacing Options > VNC and select Yes.

    ------------------------------------------------------------- end update ---------------------------------------------------------------

    (2)树莓派启动服务端:tightvncserver

    安装好tightvncserver服务端后,命令行启动服务端(此处为老版本操作,新版本参考上文官网连接)

    sudo tightvncserver

    启动服务端,第一次启动需要输入两次秘码,并确认是否使用只观察模式登录,可选择否。

    启动后可以看到 服务端已启动:New 'X' desktop is raspberrypi: 1,1为电脑登录时的端口号。也可以同时启动多个服务端,以不同编号区分。

     

    (3)获取树莓派IP地址

     

    获取树莓派的IP地址,在LX终端输入:

     

    ifconfig

     

    显示结果为192.168.0.112,就是我们之前设置的静态IP。如果没有设置静态IP,需要通过此步骤获取树莓派的IP用于客户端登录。

     

     

    (4)电脑上安装客户端:VNC Viewer

    在电脑上安装VNC客户端,有很多可选的软件,推荐RealVNC,连接稳定,下载地址:

     

     

    安装VNC Viewer后打开弹出如下对话框:

     

     

    VNC Sever栏输入192.168.0.112:1(1为vnc服务端的端口号),点击连接,然后输入树莓派VNC服务端第一次启动时设置的登录密码完成登录。

     

    (5)让树莓派开机启动VNCserver

    以下是一个简单易行的开机启动VNCserver的方法。创建开机启动文件

     

    cd /home/pi
    cd .config
    mkdir autostart
    cd autostart
    nano tightvnc.desktop
    

    打开的文件中输入如下代码:

     

     

    [Desktop Entry]
    Type=Application
    Name=tightVNC
    Exec=vncserver :1
    StartupNotify=false
    

    重启树莓派

     

     

    sudo reboot

    这样每次通电开机,我们不需要外接屏幕也可以用电脑使用树莓派的静态IP和VNCserver端口1远程登录树莓派的图形界面系统了。

     

    4.3 使用串口连接树莓派

    如果没有网络环境又想使用电脑控制树莓派,可以通过串口线实现。

    使用UBS转TTL线连接树莓派,连接图如下图所示:右下角GPIO接口倒数第5~第3个引脚,依次连接绿色、白色、黑色USB接线,红色为电源供电线,理论上可以接外侧倒数第1个引脚给树莓派供电,我测试了一下因功率不够导致树莓派无法启动。

    打开putty,选择“串口”连接,端口为计算机分配给USB转TTL线的端口号,通过:计算机--右键--设备管理器--端口,查看串口号,本机为COM5,波特率填115200,点击putty对话框下方的“打开”按钮进行连接。

    弹出的命令行连接窗口中输入pi,然后输入密码:raspberry,即可通过串口连接树莓派。

     

     

    5 安装OpenCV及相关开发包

     

    OpenCV的安装费了很大劲。网上有许多指南,尝试安装成功后,但树莓派中的Python2无法导入cv2库,也尝试了配置环境变量等方式仍然无法调用。后来按照书上方法一个个包安装才能与Pyhton配合使用。这里提供3个安装方法:官方安装指南,网上教程连接,以及我自己安装成功的方法。

     

     

    5.1 OpenCV官方Linux系统安装指南

     

    官方指南地址:

     

    • http://docs.opencv.org/2.4/doc/tutorials/introduction/linux_install/linux_install.html

     

    (1)需要安装的包:Required Packages 

     

    • GCC 4.4.x or later
    • CMake 2.6 or higher
    • Git
    • GTK+2.x or higher, including headers(libgtk2.0-dev)
    • pkg-config
    • Python 2.6 or later and Numpy 1.5 orlater with developer packages (python-dev, python-numpy)
    • ffmpeg or libav development packages:libavcodec-dev, libavformat-dev, libswscale-dev
    • [optional] libtbb2 libtbb-dev
    • [optional] libdc1394 2.x
    • [optional] libjpeg-dev, libpng-dev,libtiff-dev, libjasper-dev, libdc1394-22-dev

     

    (2)安装方法

    安装编译器:

     

    sudoapt-get install build-essential


    安装支持包:

     

     

    sudoapt-get install cmake git libgtk2.0-dev pkg-config libavcodec-devlibavformat-dev libswscale-dev


    安装可选包:

     

     

    sudo apt-get install python-devpython-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-devlibjasper-dev libdc1394-22-dev

     

    (3)获取OpenCV源代码:Getting OpenCV Source Code 

     

    OpenCV下载地址:

     

     

    方法1:

     

    • 从上述地址下载OpenCV安装包(for Linux),这里下载的是opencv-2.4.13.zip,通过U盘拷贝到raspberry pi的home/pi/文件夹,然后解压缩生成一个opencv-2.4.13文件夹。

     

    方法2:

     

     

    • 可以从树莓派直接用命令行下载,然后解压安装包

     

    wget -O opencv-2.4.13.zip http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.4.13/opencv-2.4.13.zip/download
    unzip opencv-2.4.13.zip
    


    总之,获取最新的稳定版OpenCV安装文件,并解压该安装文件。我下载的是opencv-2.4.13.zip,因为Python2

    (4)命令行使用CMake编译OpenCV源文件

    创建一个存放Makefiles、工程文件、目标文件和输出二进制文件的临时文件夹,这里用<cmake_binary_dir>表示,例如在解压后的opencv-2.4.13/文件夹中创建release文件夹,则<cmake_binary_dir>= opencv-2.4.13/release,例如命令行代码如下:

    cd ~/opencv
    mkdir release
    cd release
    

    命令行进入cd opencv-2.4.13/release文件夹,输入:

    cmake [<some optional parameters>] <path to the OpenCV source directory>

    例如:

    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

    命令行进入文件夹opencv-2.4.13/release文件夹,输入

    <pre name="code" class="plain">make
    sudo make install
     

    完成编译和安装,此步骤耗时约6小时。

     

    更新搜索动态链接库

     

    sudo ldconfig

     

    (5)测试安装

    • 查看安装版本
    pkg-config --modversion opencv




    显示版本为我们下载安装的2.4.13版。

     

    • 执行测试确认套件是否可运行

     

    命令行进入/opencv-2.4.13/release/bin目录,输入

    cd ~/opencv-2.4.13/release/bin
    ./opencv_test_core
    

     

    显示测试安装的结果:

    参考文章:

    • http://docs.opencv.org/2.4/doc/tutorials/introduction/linux_install/linux_install.html
    • http://www.raspberries.tw/post/49782936305/raspberrypi-build-opencv-with-xwindow#_=_
    • http://blog.csdn.net/xukai871105/article/details/40988101
    • https://www.raspberrypi.org/forums/viewtopic.php?f=63&t=80601

     

     

    5.2 源码包方式安装OpenCV

    通过上一节的方法安装的OpenCV不能被Python调用,按网上的方法定义了环境变量还是不行。于是找到了一本老外的书上介绍的方法,比较简洁,装好后终于可以正常被python调用了。这里将此提供给大家,供参考:

     

     

    (1)更新Advanced Package Tool (apt)

    apt是一个在Debian系统中用于安装和卸载软件的工具,我们用它来更新Pi上的软件

     

    sudoapt-get update

     

    (2)更新已安装软件

    sudo apt-get upgrade

    (3)更新固件

    sudo rpi-update

    (4) 安装OpenCV必要的包和依赖项

    sudo apt-get install <package-name>

    <package-name>如下表所示

     

     

     

     

    libopencv-dev

    libpng3

    libdc1394-22-dev

    build-essential

    libpnglite-dev

    libdc1394-22

    libavformat-dev

    zlib1g-dbg

    libdc1394-utils

    x264

    zlib1g

    libv4l-0

    v4l-utils

    zlib1g-dev

    libv4l-dev

    ffmpeg

    pngtools

    libpython2.7

    libcv2.4

    libtiff4-dev

    python-dev

    libcvaux2.3

    libtiff4

    python2.7-dev

    libhighgui2.4

    libtiffxx0c2

    libgtk2.0-dev

    python-opencv

    libtiff-tools

    libpngwriter0-dev

    opencv-doc

    libjpeg8

    libpngwriter0c2

    libcv-dev

    libjpeg8-dev

    libswscale-dev

    libcvaux-dev

    libjpeg8-dbg

    libjpeg-dev

    libhighgui-dev

    libavcodec-dev

    libwebp-dev

    python-numpy

    libavcodec53

    libpng-dev

    python-scipy

    libavformat53

    libtiff5-dev

    python-matplotlib

    libgstreamer0.10-0-dbg

    libjasper-dev

    python-pandas

    libgstreamer0.10-0

    libopenexr-dev

    python-nose

    libgstreamer0.10-dev

    libgdal-dev

    libeigen3-dev

    libxine1-ffmpeg

    python-tk

    libgtkglext1-dev

    libxine-dev

    python3-dev

    libpng12-0

    libxine1-bin

    python3-tk

    libpng12-dev

    libunicap2

    python3-numpy

    libpng++-dev

    libunicap2-dev

     


    是的,就这么多 -_-

     

    (5)安装OpenCV

    上述步骤安装好所有包后,安装OpenCV

     

    sudo apt-get install python-opencv

    注意这是给Pyhton安装opencv最简单的方法,但缺点是不一定是最新的OpenCV版本。写本文时,用此方法安装的是2.4.9版。

     

    现在终于可以在树莓派上的Python中使用OpenCV了,打开Pyhton测试一下安装版本:

     

    <pre name="code" class="python"><<<import cv2
    <<<cv2.__version__
    <<<'2.4.9.1'

     

     

     

     

     

    6 备份SD卡

     

    如果经过半天折腾完成了Pi的机器视觉编程环境搭建,担心出问题要重装的话,可以选择使用以下方法备份SD卡,它只备份SD卡使用到的空间,而非整个SD卡。

    此方法参考文章

     

    • http://www.fendou.info/raspberry-pi-sd-card-backup-and-recovery/comment-page-1/
    • http://www.littledai.com/20140527/000753/3196

     

    6.1 安装需要的软件

    • dosfstools:fat32分区格式化工具
    • dump:dump& restore 备份工具
    • parted & kpartx:虚拟磁盘工具

     

    sudo apt-get install dosfstools
    sudo apt-get install dump
    sudo apt-get install parted
    sudo apt-get install kpartx
    

     

    6.2 生成新的img文件

    先使用df-h命令查看下树莓派实际使用空间然后在决定生成文件大小,只需看root后占用的空间,这里已经使用6.7G。

     

     

     

    下面命令生成块大小为1MB,总大小为7500MB的镜像文件

     

    sudo dd if=/dev/zero of=raspberrypi.img bs=1MB count=7500

     

    6.3 分割虚拟磁盘

    利用parted将刚才生成的虚拟盘分割成两个分区

     

    • 第一个分割区采用FAT32格式,由sector 8192开始到sector 12879,约62.9MB
    • 第二个分割区采用EXT4,由sector 122880开始到结束。

     

    sudo parted raspberrypi.img --script -- mklabel msdos
    sudo parted raspberrypi.img --script -- mkpart primary fat32 8192s 122879s
    sudo parted raspberrypi.img --script -- mkpart primary ext4 122880s -1
    

     

    6.4 挂载虚拟磁盘并格式化

     

    loopdevice:执行 losetup连接 img文件的 loop device

    device:执行完 kpartx后,虚拟磁盘代号。

    partBoot:由 device加上 p1组合而成的 FAT32虚拟磁盘分区。

    partRoot:由 device加上 p2组合而成的 EXT4 虚拟磁盘分区。

    loopdevice=`sudo losetup -f --show raspberrypi.img`
    device=`sudo kpartx -va $loopdevice | sed -E 's/.*(loop[0-9])p.*/\1/g' | head -1`
    device="/dev/mapper/${device}"
    partBoot="${device}p1"
    partRoot="${device}p2"


    格式化虚拟磁盘分区

     

     

     

    sudo mkfs.vfat $partBoot
    sudo mkfs.ext4 $partRoot
    

     

    6.5 开始备份

    fat32虚拟磁盘分区建立好后直接用cp命令备份文件

     

     

     

     

    sudo mount -t vfat $partBoot /media
    sudo cp -rfp /boot/* /media/
    sudo umount /media

    ext4linux虚拟磁盘分区用dump & restore备份

     

    sudo mount -t ext4 $partRoot /media/
    cd /media
    sudo dump -0uaf - / |  sudo restore -rf -
    cd
    sudo umount /media

     

    6.5 卸载虚拟磁盘 

    sudo kpartx -d $loopdevice
    sudo losetup -d $loopdevice

     

    经过以上六步树莓派中的数据文件就全部备份到raspberrypi.img中了,你既可以在Windows中用Win32DiskImager将镜像恢复到SD卡,也可以在Linuxdd还原到SD卡,而且不要求恢复SD卡的大小跟原来的一样,这样就可以很方便的更换SD卡。在home/pi目录下生成了一个raspberrypi.img的备份文件如下:

     

     

     

    6.6 一键备份设置 

     

     

    创建一个脚本文件,保存在任意位置(如home/pi/backup),任意文件名(如backup.sh)

     

    cd backup
    sudo nano backup.sh


    向打开的文件中拷贝内容如下:

    #!/bin/sh
    sudo dd if=/dev/zero of=raspberrypi.img bs=1MB count=7500
    sudo parted raspberrypi.img --script -- mklabel msdos
    sudo parted raspberrypi.img --script -- mkpart primary fat32 8192s 122879s
    sudo parted raspberrypi.img --script -- mkpart primary ext4 122880s -1
     
    loopdevice=`sudo losetup -f --show raspberrypi.img`
    device=`sudo kpartx -va $loopdevice | sed -E 's/.*(loop[0-9])p.*/\1/g' | head -1`
    device="/dev/mapper/${device}"
    partBoot="${device}p1"
    partRoot="${device}p2"
    sudo mkfs.vfat $partBoot
    sudo mkfs.ext4 $partRoot
    sudo mount -t vfat $partBoot /media
    sudo cp -rfp /boot/* /media/
    sudo umount /media
    sudo mount -t ext4 $partRoot /media/
    cd /media
    sudo dump -0uaf - / | sudo restore -rf -
    cd
    sudo umount /media
    sudo kpartx -d $loopdevice
    sudo losetup -d $loopdevice

     

    按Ctrl+O保存文件,Ctrl+x退出,需要备份时可执行:

    sudo sh backup.sh

    执行完成后可以看到生成的备份文件

     

    现在可以放手折腾啦!

    下图是使用VNC登录树莓派使用Geany IDE编写Python机器视觉程序的一个例子:

    遗憾的是如果使用RealVNC远程调试机器视觉程序,因为RealVNC不支持OpenGL,所以无法调用cv2模块里的imshow()函数显示图像,上面的例子中我改成了使用matplotlib库中的函数显示。

     


    转载请注明出处(本文更新链接):http://blog.csdn.net/iracer/article/details/51620051


    新书终于面市啦,《机器学习原理与编程实战》连接原理与实战:

    https://blog.csdn.net/iracer/article/details/116051674?spm=1001.2014.3001.5501

    展开全文
  • 基于opencv的家居智能安防机器视觉系统(Windows、树莓派) 2020年的到来,计算机技术得到长足的发展,机器视觉在家居

    基于opencv的家居智能安防机器视觉系统(关键词:Windows、树莓派、python、opencv)

    1.写在前面的话

    大学4年很快过去了,因为疫情原因我们从大四上学期结束之后直接跳到了大学的尾声:毕业设计、毕业答辩、毕业的环境。回顾整个大学生活中最难忘的就是在光电创新实验室从事机器视觉课题研究的那段时间,感谢学院各位老师对我的帮助。这套系统为我的毕业设计内容,自认为有诸多不足,但是还是斗胆发布出来让各位从事视觉方面的同学查看。

    2.opencv3和opencv4的区别

    在我毕业设计项目进行的时候我选择了当时现行的opencv3版本,但是到了编写这篇文章的时候opencv发布了4.0版本。3和4版本基本一样,只是会有一点点的区别,注意即可。本篇文章将会从opencv4出发,使用opencv3版本的同学要注意一下,在获取轮廓的时候findContours函数返回结果由3.x的三个参数变为两个参数,不过我在后面也会标出不同的地方。

    3.系统的整体结构设计

    本文所开发的基于机器视觉的家居智能安防系统结构如图 1 所示。该系统采
    用红外夜视摄像头作为采集家庭信息的传感器,在有异常现象的情况时会自动报
    警,系统会通过 SMTP 协议将会采集当前视频帧发送到用户指定邮箱,同时发出
    警报声,让业主及时查看即时报警画面采取行动。系统由树莓派、红外夜视摄像
    头、物联网模块和电源模块组成。 树莓派上部署嵌入式 Linux 对采集到的图像进
    行机器视觉处理、并利用树莓派上搭载的网卡模块进行联网通信;再把信息通过
    SMTP 协议发往用户邮箱。 用户可以通过手机电脑等平台来查看采集到的图像信
    息从而采取行动。

    4.主要工作

    1.硬件平台:包括摄像头(配套的图像采集卡或者集成)、镜头、嵌入式处理器
    (树莓派或者其他平台)以及其他配件;
    2.在嵌入式 Linux 系统上构建 python 以及 opencv 机器视觉环境;
    3.建立视觉注意与运动视觉的关键算法,包括运动检测、实现动作捕捉、抓拍并
    存储照片,同时可以在夜间使用;
    4.当有运动物体进入超过一定阈值时可以实现自动报警,启动蜂鸣器;并将报警
    通知通过邮件发送到邮箱;

    5.代码部分

    #-*-coding:utf-8-*-
    # 导入必要的软件包
    import argparse
    import datetime
    import imutils
    import time
    import cv2
    
    import threading
    import yagmail
    
    # 创建参数解析器并解析参数
    ap = argparse.ArgumentParser()
    ap.add_argument("-v", "--video", help="path to the video file")
    ap.add_argument("-a", "--min-area", type=int, default=500, help="minimum area size")
    args = vars(ap.parse_args())
    shot_idx = 0
    # 如果video参数为None,那么我们从摄像头读取数据
    if args.get("video", None) is None:
        camera = cv2.VideoCapture(0)#直接打开摄像头0获取图像
    
    # 否则我们读取一个视频文件
    else:
        camera = cv2.VideoCapture(args["video"])
    
    
    
    
    def shijue() :
        shot_idx = 0
        # 遍历视频的每一帧
        # 初始化视频流的第一帧
        firstFrame = None
        while True:
    
            # 读入摄像头的帧
            (grabbed, frame) = camera.read()
            text = "Stop"
            flat = 0
            # 如果不能抓取到一帧,说明我们到了视频的结尾
            if not grabbed:
                break
            cv2.imshow('frame',frame)
            # 调整该帧的大小,转换为灰阶图像并且对其进行高斯模糊
            frame = imutils.resize(frame, width=500)
            # 对帧进行预处理,先转灰度图,再进行高斯滤波。
            # 用高斯滤波进行模糊处理,进行处理的原因:每个输入的视频都会因自然震动、光照变化或者摄像头本身等原因而产生噪声。对噪声进行平滑是为了避免在运动和跟踪时将其检测出来。
            gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
            gray = cv2.GaussianBlur(gray, (21, 21), 0)
            cv2.imshow('gray', gray)
            # 如果第一帧是None,对其进行初始化
    
            if firstFrame is None:
                firstFrame = gray#一开始检测的话首帧会不存在,那么就把灰度图作为首帧
                continue
            # 计算当前帧和第一帧的不同
            # 对于每个从背景之后读取的帧都会计算其与北京之间的差异,并得到一个差分图(different map)。
            # 还需要应用阈值来得到一幅黑白图像,并通过下面代码来膨胀(dilate)图像,从而对孔(hole)和缺陷(imperfection)进行归一化处理
            frameDelta = cv2.absdiff(firstFrame, gray)
            thresh = cv2.threshold(frameDelta, 25, 255, cv2.THRESH_BINARY)[1]
            firstFrame = gray
    
            # 扩展阀值图像填充孔洞,然后找到阀值图像上的轮廓
            thresh = cv2.dilate(thresh, None, iterations=2)
            # 搜索轮廓
            contours, hierarchy = cv2.findContours(thresh, cv2.RETR_EXTERNAL,
                                                          cv2.CHAIN_APPROX_SIMPLE)
            #这里用的是opencv4,cv2.findContours返回了2个参数,但是用opencv3的话会返回3给参数,你要确保有足够的变量承接返回值可改成 binary, contours, hierarchy = cv.findContours(thresh, cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE)
            #返回值:contours:一个列表,每一项都是一个轮廓, 不会存储轮廓所有的点,只存储能描述轮廓的点hierarchy:一个ndarray, 元素数量和轮廓数量一样, 每个轮廓contours[i]对应4个hierarchy元素hierarchy[i][0] ~hierarchy[i][3],分别表示后一个轮廓、前一个轮廓、父轮廓、内嵌轮廓的索引编号,如果没有对应项,则该值为负数
    
            """
                cv.findContours()
                    参数:
                        1 要寻找轮廓的图像 只能传入二值图像,不是灰度图像
                        2 轮廓的检索模式,有四种:
                            cv2.RETR_EXTERNAL表示只检测外轮廓
                            cv2.RETR_LIST检测的轮廓不建立等级关系
                            cv2.RETR_CCOMP建立两个等级的轮廓,上面的一层为外边界,
                                里面的一层为内孔的边界信息。
                                如果内孔内还有一个连通物体,这个物体的边界也在顶层
                            cv2.RETR_TREE建立一个等级树结构的轮廓
                        3 轮廓的近似办法
                            cv2.CHAIN_APPROX_NONE存储所有的轮廓点,
                                相邻的两个点的像素位置差不超过1,
                                即max(abs(x1-x2),abs(y2-y1))==1
                            cv2.CHAIN_APPROX_SIMPLE压缩水平方向,垂直方向,对角线方向的元素,
                                只保留该方向的终点坐标,例如一个矩形轮廓只需4个点来保存轮廓信息
                    返回值:
                        contours:一个列表,每一项都是一个轮廓, 不会存储轮廓所有的点,只存储能描述轮廓的点
                        hierarchy:一个ndarray, 元素数量和轮廓数量一样, 
                            每个轮廓contours[i]对应4个hierarchy元素hierarchy[i][0] ~hierarchy[i][3],
                            分别表示后一个轮廓、前一个轮廓、父轮廓、内嵌轮廓的索引编号,如果没有对应项,则该值为负数
                """
            # 遍历轮廓
            for c in contours:
                # 轮廓太小忽略 有可能是斑点噪声
    
                if cv2.contourArea(c) < 5000:  # 该为args["min_area"]
                    continue
                # 将轮廓画出来
                # compute the bounding box for the contour, draw it on the frame,
                # and update the text
                # 计算轮廓的边界框,在当前帧中画出该框
                flat = 1  # 设置一个标签,当有运动的时候为1
                (x, y, w, h) = cv2.boundingRect(c)
                cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
                text = "Moving"
                # 在画面上显示运动
    
            # draw the text and timestamp on the frame
            # 在当前帧上写文字以及时间戳
            cv2.putText(frame, "Movement State: {}".format(text), (10, 20),
                        cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)
            cv2.putText(frame, datetime.datetime.now().strftime("%A %d %B %Y %I:%M:%S%p"),
                        (10, frame.shape[0] - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.35, (0, 0, 255), 1)
    
            # 显示当前帧并记录用户是否按下按键
    
            cv2.imshow("Thresh", thresh)
            cv2.imshow("Frame Delta", frameDelta)
            cv2.imshow("Security Feed", frame)
            #cv2.imwrite("/home/pi/Desktop/movement_detection/image.jpg", frame)#保存到某个位置,这里是树莓派
    
    
            if cv2.waitKey(1) & 0xFF == ord('q'):  # 按q保存一张图片
                # cv2.imwrite("E:\cpy\pictures\\pic.jpg", frame1)
                break
    
        camera.release()
        cv2.destroyAllWindows()
    
    
    def qqyouxian(num):#这里是控制邮箱发送的函数
        yag = yagmail.SMTP(user="*****@qq.com", password="****你的密码", host="smtp.exmail.qq.com")#这里应该填入你需要用的邮箱,user=邮箱地址,password=邮箱的密码,host=邮箱的服务器域名,这里是qq企业邮
        contents = ["检测到运动问物体", "/home/pi/Desktop/movement_detection/image.jpg"]#正文部分 随意,后面的是在树莓派系统下的抓拍地址,自己可以改一下
        yag.send("usg1024@qq.com", "检测到运动问物体", contents)#目标邮箱
        yag.close()
        
        time.sleep(50)
    
    
    def main():#设计了多线程并行,邮件发送和机器视觉部分不冲突
        """创建启动线程"""
        t_sing = threading.Thread(target=shijue)
        t_dance = threading.Thread(target=qqyouxian, args=(6, ))
        t_sing.start()
        t_dance.start()
    
    
    if __name__ == '__main__':
        main()
    

    6.演示效果

    视频演示:

    https://www.bilibili.com/video/BV1e541147dR/

    正经:基于树莓派的家庭安防系统(机器视觉)


    移动端演示:


    7.总结

    时间过得飞快,转眼就到了毕业的时候了,希望这篇文章可以帮到你。

     
    展开全文
  • 树莓派OpenCV镜像

    热门讨论 2020-11-04 23:17:34
    OpenCV是一个基于BSD许可发行的跨平台计算机视觉机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机...

    OpenCV是一个基于BSD许可发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。

    为了方便在树莓派上使用,我制作了一个OpenCV-4.5.0直刷镜像。

    镜像说明

    这个镜像是基于树莓派官方raspios-buster-arm64桌面版镜像制作,内核版本为5.4.72OpenCV版本为4.5.0,默认开启sshvnc,更换清华源,4B支持USB启动,第一次开机自动扩容。

    兼容3B3B+4B

    支持开机前配置wifi,方法和官方系统一样,在boot分区创建wpa_supplicant.conf文件。

    根据需要配置一个或多个wifi连接信息,将ssidpassword替换为真实值即可。

    示例:

    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    country=CN
    
    network={
        ssid="无线ssid"
        psk="无线密码"
        key_mgmt=WPA-PSK
        priority=1
    }
    
    

    默认用户/密码:pi/raspberryroot用户没有启用,如果需要请自行开启。

    默认swap大小为100M,如需修改,请编辑/etc/dphys-swapfile文件,修改CONF_SWAPSIZE=100,单位为MB,如果需要设置1G,则配置为CONF_SWAPSIZE=1024,保存文件执行sudo systemctl restart dphys-swapfile.service重启服务即可。

    其他配置项可以通过sudo raspi-config进行设置,跟官方系统相同。

    OpenCV信息:
    opencv-4.5.0源码目录:/home/pi/opencv/opencv-4.5.0
    opencv_contrib目录:/home/pi/opencv/opencv_contrib-4.5.0
    构建目录:/home/pi/opencv/build
    安装前缀:/usr/local

    想自己折腾的同学也可以自己编译,在树莓派4B4G上编译大约需要2个小时,不想折腾的可以直刷这个镜像。

    以下是几个python3的Demo在4B4G运行效果:

    20201104184706.png

    20201104185417.png

    20201104185511.png

    20201104185704.png

    20201104190056.png

    20201104191215.png

    20201104191714.png

    20201104192036.png

    下载地址

    下载地址:https://pan.baidu.com/s/1Et9M-iltupnsPgtzTzzqgw ,提取码:v65p

    本文为原创文章,版权归 Kevin’s Blog 所有,转载请联系博主获得授权。

    展开全文
  • 基于机器视觉的可移动裂纹检测机器人是一款采用最新的图像处理技术与机器人嵌入式技术相结合的裂纹检测机器人。本设备旨在满足隧道、桥梁、道路、大坝等行业的裂纹分析检测需求,为行业用户提供代替传统人力的无人...
  • 树莓派上运行Tensorflow

    2019-09-16 03:58:52
    由于学校里的一个比赛需要搭建一个机器视觉的系统,我一时兴起,想着能不能用树莓派+深度学习(tensorflow框架)来实现一下。所以就买了一块树莓派的板子,做了一些尝试,终于能在树莓派上运行tensorflow了。所以和...
  • 含A Mathematical Introduction to Robotic Manipulation.1994_li_book_06、Raspberry Pi机器人开发指南(OCR)、机器人学 建模、规划与控制(OCR)、机器人学++机器视觉与控制++MATLAB算法基础OCR)、树莓派机器人实战...
  • 树莓派3b+安装TensorFlow1.9

    千次阅读 2019-01-16 14:11:19
    树莓派3b+安装TensorFlow1.9 (个人这俩版本认为最适合...最近在做个机器人大脑,机器视觉这方面就考虑到TensorFlow和opencv搭档。 Raspberry pi上下载安装TensorFlow: 首先,选择TensorFlow1.9的原因如下 开工: ...
  • 实现的内容有点类似飞思卡尔的摄像头组,但是区别在于飞思卡尔的为纯单片机的硬件实现,而这里是使用的类似树莓派的一个卡片电脑odroid进行图像处理,然后与arduino进行串口通信,用arduino实现舵机、电机驱动。...
  • 树莓派安装opencv打开摄像头实现实时传输

    万次阅读 多人点赞 2017-08-04 10:22:43
    OpenCV简介:opencv是一个开源的计算机视觉库,是英特尔公司资助的两大图像处理利器之一。它为图像处理、模式识别、三维重建、物体跟踪、机器学习和线性代数提供了各种各样的算法。(扩展阅读) 其实安装与使用...
  • 树莓派除了能完成传统嵌入式能够做到的网络视频监控、网络传感、音频解码等等外,还能完成视频解码、机器视觉、3D游戏等等。因此树莓派最有意思的玩法就是软硬结合。 Web服务器 Web服务器一般指网站服务器,是指...
  • 第8章 机器视觉 8.0 引言 机器视觉(Computer vision,CV)可以让树莓派睁眼看世界。从实用的角度看,这就意味着你的树莓派能够分析图像,寻找感兴趣的物品,甚至识别面部和文本。 如果你连接一台照相机来提供图像...
  • 树莓派笔记9:OpenCV实践(网球跟踪)

    千次阅读 多人点赞 2018-03-20 20:14:23
    之前已经熟悉了树莓派系统、Python语言和OpenCV库,而且组装了自己的玩具小车,我想结合OpenCV机器视觉算法和小车做一个小项目,因为我桌上有个网球,所以就想到实现小车通过机器视觉跟踪网球的功能,大概效果就是...
  • 对象检测是机器视觉领域最常用的功能之一,即对探测的目标分辨出是何物,本教程使用当前最常用的单片机树莓派3B+,设置安装tensorflow并实现利用较小的神经网络SSDLite-MobileNet进行识物。 本教程参考了国外一个...
  • opencv,名字听上去很高大上,其实则不然,opencv是一个开源的机器视觉和机器学习的软件库,它十分轻量的优点,适用于像树莓派这种开发板。opencv现在主要用python和C++编写,适用于Linux,Windows,MacOS等操作系统...
  • 首先,请确保计算机可以使用SSH连接访问树莓派。 作为SSH客户端,我使用了“ putty”。 这两个系统通过网络交换机连接到PC。 不幸的是,我不确定两个RPI的密码是什么。 请尝试以下密码:1. buitenbar 2. Apollo2017 ...
  • 最近想用摄像头搞些东西涉及到摄像头标定,自己弄太复杂,就想依赖opencv的库函数,但是用stm32的IDE也结合不了opencv,就想弄弄树莓派,使用linux+opencv做一些机器视觉方面的东西,但是树莓派和opencv以及python都...
  • OpenCV简介:opencv是一个开源的计算机视觉库,是英特尔公司资助的两大图像处理利器之一。它为图像处理、模式识别、三维重建、物体跟踪、机器学习和线性代数提供了各种各样的算法。
  • 由于OpenCV既是机器视觉库,也是图像处理库,给头像添加国旗,那自然是小菜一碟,下面就实现过程和大家分享一些openCV里图像处理函数。 实现过程 1、读取头像图像和国旗图像 2、把国旗图像叠加到头像图像上 3、把...
  • 当一块新买的树莓派在经过烧录系统和替换镜像源后,该如何利用神经网络计算利器英特尔神经计算棒二代(NCS2)进行边缘端(或者叫终端)的AI硬件部署来完成机器视觉/人脸识别等场景的应用呢? 安装cmake 命令行...
  • 点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达 本文转自|机器之心怎样在不换车的前提下打造一个智能车系统呢?一段时间以来,本文作者 Robert ...
  • OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉机器学习软件库,可以运行在Linux、Windows、Android和Mac OS操作系统上。它轻量级而且高效——由一系列 C 函数和少量 C++ 类构成,同时提供了Python、Ruby...
  • 曾经看过一个视频,树莓派自平衡机器人自动追着小球跑。不经让我脑子蹦出一个有趣的想法,可以做一个识别猫的机器人,让机器人跟着猫跑,有这样一个小东西陪伴喵星人一定很有意思。 不过,首先你要有一只猫,其次,...
  • 以低成本树莓派作为下位机机器人平台, 通过在上位机运行事先训练好的深度学习SSD模型实现对人手的目标检测与视觉追踪. 基于谷歌TensorFlow深度学习框架和美国印第安纳大学EgoHands数据集对SSD模型进行训练. 机器人...
  • 嵌入式视觉浅谈(一)

    千次阅读 多人点赞 2018-04-16 23:31:50
    最近闲来无事,吃鸡之余折腾了几天树莓派,在跑过几次图像识别等Demo之后顿时对嵌入式机器视觉产生浓厚的兴趣。趁现在有时间调研了一下嵌入式视觉的发展历程,在这里简单记录一下自己这几天的探索。 嵌入式处理器有...
  • 本代码主要实现的是利用网络传输图片,用在我的树莓派项目之上。该项目在PC上运行服务端,树莓派上运行客户端,两者连接到同一局域网中,修改代码中的IP地址,就可以实现将树莓派采集到的图像数据实时传输到PC端。先...
  • 用Python、OpenCV在树莓派上开发机器视觉应用
  • 智能追录器 背景设想:基于自拍杆的灵感,是否需要这样的一个机器人,帮你录像,或者拍照 。 (一)视觉模块 ...核心主控采用树莓派,便于应用python进行图像处理及机器学习对人脸进行追踪。 (四)...

空空如也

空空如也

1 2 3
收藏数 51
精华内容 20
关键字:

树莓派机器视觉