Skip to content

Latest commit

 

History

History
142 lines (101 loc) · 5 KB

视觉引导.md

File metadata and controls

142 lines (101 loc) · 5 KB

视觉引导 移交

工业设备相机,进行产线物体的识别分析,之前由 杨贵 负责,进行了前期的调研和分析。

我这边负责工作为:树莓派开发板的使用、工业相机(潍坊邮寄给 杨贵)使用、与南京 粟华的交流及合作。

相关硬件设备为:一台工业相机、树莓派开发板、树莓派相机模块、神经元计算单元(Intel)

树莓派开发板

树莓派为 ARM 平台的开发板,包括 CPU 及 GPU,接口有 HDMI、以太网及蓝牙、WIFI等,以 SD 卡启动并作为系统存储,官方推荐系统为 Linux,相关参考信息:

官方网站:https://www.raspberrypi.org 树莓派3 教程:https://www.ncnynl.com/category/Raspberry-Pi-tutorial/

本地 PC 和 树莓派之间可通过 SSH 进行远程访问,以及使用 SFTP 进行文件共享,可使用 Filezilla 进行访问,仅需 要在主机中输入 sftp:\\xx.xx.xx.xx ,默认用户名为: pi ,默认密码是: raspberry

  • 树莓派系统安装

    参考:https://www.raspberrypi.org/downloads/

    官方系统以 Debian 为基础的 Linux 系统,另外还支持其他 Linux、Windows 10 IOT、Android 等

    1.下载系统镜像,以及 Etcher 工具
    2.格式化 SD 卡,使用 Etcher 写入镜像
    3.将 SD 卡插入开发板卡槽,树莓派开发板插入 USB 电源可开机
    4.可接入 HDMI 进行图形显示,以及插入 USB 鼠标、键盘
  • SD 卡空间

    默认 Linux 仅支持 4G 容量 SD 卡,官方系统加入了识别,可支持更大容量 SD卡,如安装其他 Linux 系统,则只能识别为 4G,可通过 fdisk 重写分区,可识别实际容量大小

    操作方法:https://blog.csdn.net/xmm1981/article/details/79472095

  • 树莓派相机模块

    树莓派可支持两种相机模块,一种为官方提供的 CSI 接口相机模块,一种为 USB 接口模块,官方支持的模块,可即插即用,进行拍照、录像及视频流传输,还可直接获取 raw 数据

    参考使用教程:http://www.cnblogs.com/uestc-mm/p/7587783.html

    树莓派官方推荐使用 Python 编程,参考:https://blog.csdn.net/talkxin/article/details/50504601

    当前已购置一块 CSI 接口官方相机模块,使用例程为:

    1.连接摄像头模块与开发板,并启动树莓派
    2.升级最新固件
    sudo apt-get update
    sudo apt-get upgrade
    3.激活摄像头模块
    sudo raspi-config
    选择 Enable Camera 并重启
    4.拍照 (在 2000ms 后拍摄图片,保存为 keychain.jpg)
    raspistill -o keychain.jpg -t 2000
    5.录像 (默认配置,长度 5s,分辨率 1920 x 1080,比特率 17Mbps,不含声音)
    raspivid -o keychain.h264
    6.播放录制视频(使用 gpac 包中所带的 MP4Box)
    sudo apt-get install -y gpac
    MP4Box -fps 30 -add keychain.h264 keychain.mp4

OpenCV

需要下载 OpenCV 源码进行编译,编译工具为 CMake。

  • 下载并编译 CMake

    下载:https://cmake.org/download/ ,可选择 3.12.0 (Linux)

    编译:

    tar xf cmake-3.12.0.tar.gz
    cd cmake-3.12.0
    ./config
    make
  • 下载并编译 OpenCV

    下载:https://github.com/opencv/opencv/releases?after=2.4.13.1,选择 2.4.13

    编译:

    安装依赖包
    sudo apt-get install build-essential
    sudo apt-get install libgtk2.0-dev pkg-config libswscale-dev
    sudo apt-get install libjpeg-dev libpng-dev libtiff-dev
    编译
    unzip OpenCV-2.4.13.zip
    mkdir build
    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON  -D ENABLE_PRECOMPILED_HEADERS=OFF ..
    sudo make
    sudo make install

NJ 代码

南京 粟华 提供了算法相关代码,通过 FTP 拷入树莓派开发板,在树莓派上进行编译运行

根据编译过程,会有编译错误,进行如下修改

1.将相关头文件中,加入完整路径
2. GetTickCount 为 Windows 平台 API,在 main.cpp 中定义此函数
ddouble GetTickCount(void)
{
    struct timespec now;
    if (clock_gettime(CLOCK_MONOTONIC, &now))
        return 0;
    return now.tv_sec * 1000.0 + now.tv_nsec / 1000000.0;
}
3. 在 CMakeLists.txt 最后添加
target_link_libraries(testLocate ${OpenCV_LIBS})
编译
mkdir build
cd build
cmake -D ENABLE_PRECOMPILED_HEADERS=OFF ..
sudo make
找到最终编译产物路径
./testLocate ../../../data/templ.bmp 1496 695 429 425 ../../../data/2.bmp 1595 625 823 645
根据运行结果,显示运行时间

Intel Movidius Neural Compute Stick

英特尔 Movidius NCS 低功耗的视觉处理单元,以 USB 棒形式,可灵活扩展在其他低功耗的嵌入式系统

Raspberry Pi Support:https://ncsforum.movidius.com/discussion/118/movidius-nc-sdk-1-07-07-with-raspberry-pi-support

在 Raspberry 上运行,有两种方式: 完整 SDK 模式 https://developer.movidius.com/start

仅 API 模式,安装速度快,但无法对图形文件进行分析、验证和神经计算

示例 demo 工程:https://github.com/ihere1/movidius-face