工业设备相机,进行产线物体的识别分析,之前由 杨贵 负责,进行了前期的调研和分析。
我这边负责工作为:树莓派开发板的使用、工业相机(潍坊邮寄给 杨贵)使用、与南京 粟华的交流及合作。
相关硬件设备为:一台工业相机、树莓派开发板、树莓派相机模块、神经元计算单元(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
重写分区,可识别实际容量大小 -
树莓派相机模块
树莓派可支持两种相机模块,一种为官方提供的 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 源码进行编译,编译工具为 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
南京 粟华 提供了算法相关代码,通过 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
根据运行结果,显示运行时间
英特尔 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