NanoPI-T3上搭建人工智能环境
相关资源汇总:
一、摄像头数据读取
直接采用OPENCV读取摄像头数据,参考NanoPI T3官方文档,由于这里我是先装的TensorFlowLite,其中需要升级numpy,这里遇到了一点问题,提前说明下:
该板子python中的包通过pip进行安装或卸载后,需要手动卸载掉当前的包才能升级或卸载:
1 | #升级到最新 |
- 有时候可能需要利用
sudo
,或者是sudo -H
- pip的,默认源是官方源,可以使用
-i https://pypi.tuna.tsinghua.edu.cn/simple some-package
命令来临时采用清华源(由于NanoPi T3中ubuntu16.04所使用的python最新版本较低,所以这里不推荐升级pip)
这里给出一个调用摄像头的demo:
1 | import numpy as np |
-
注意:调用
set
函数时,如果摄像头不支持此类参数会报类似于以下的错误:1
2
3
4
5
6[ WARN:0] global /root/opencv/modules/videoio/src/cap_gstreamer.cpp (933) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1
[ WARN:0] global /root/opencv/modules/videoio/src/cap_gstreamer.cpp (1757) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src0 reported: Internal data flow error.
[ WARN:0] global /root/opencv/modules/videoio/src/cap_gstreamer.cpp (515) startPipeline OpenCV | GStreamer warning: unable to start pipeline
[ WARN:0] global /root/opencv/modules/videoio/src/cap_gstreamer.cpp (1055) setProperty OpenCV | GStreamer warning: no pipeline
Can't receive frame (stream end?). Exiting ...
[ WARN:0] global /root/opencv/modules/videoio/src/cap_gstreamer.cpp (480) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
二、TensorFlowLite安装
参考官方,这里采用python来操作,官方给出了python入门,这里可以直接参考:
如果需要C/C++操作,可以参考在ARM64上构建TensorFlowLite,需要自己通过交叉编译工具链进行编译
通过下面的命令确定python版本和机器位数:
1 | #python版本 |
对于NanoPi T3来说是ARM64,python3.5,故采用以下命令直接安装:
1 | sudo pip3 install https://dl.google.com/coral/python/tflite_runtime-2.1.0.post1-cp35-cp35m-linux_aarch64.whl |
- 期间可以能需要numpy版本更新,详见上文
- 安装的是
tflite_runtime
,仅用于解释TensorFlow中的网络 - 可以通过转化器将其他TensorFlow模型转换为TensorFlow Lite模型
- 关于
Interpreter
的更多API可以参考在Python中加载并运行模型
安装好后可以通过官方针对树莓派的demo来进行:
但是树莓派上采用picamera
调用摄像头,需要将上述代码中的picamera
换为opencv部分,下述代码为修改后可行的图像分类demo:
1 | from __future__ import absolute_import |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 spaceman!