TX2部署總結

寫這一篇文章主要是做一個簡單的筆記,筆記任然有待完善,先做一個簡單的記錄。

Python2.7-OpenCV+Tensorflow+Keras環境安裝部署

1. tx2板子中自帶python2.7以及python3.5的環境,但是需要安裝pip

Install pip and virtualenv for Ubuntu 16.04LTS Maverick and newer,輸入下面命令:

sudo apt-get install python-pip python-dev build-essential 
sudo pip install --upgrade pip 
sudo pip install --upgrade virtualenv 

也可以通過以下方式安裝:

For Python 3 :pip3
sudo apt-get install python3-pip

For Python 2 :pip
sudo apt-get install python-pip

2. pip安裝完成之後可以修改pip源

臨時使用:

可以在使用pip的時候加參數 -i https://pypi.tuna.tsinghua.edu.cn/simple

例如:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple gevent,這樣就會從清華這邊的鏡像去安裝 gevent 庫。

阿里源地址爲:
https://mirrors.aliyun.com/pypi/simple

永久使用:

linux下,修改 ~/.pip/pip.conf (沒有就創建一個), 修改 index-url至tuna(沒有就添加),內容如下:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

3. 使用pip安裝有關的依賴包
可以使用以下幾種方式來安裝:xxx爲包名,如 keras;

sudo pip install xxx
sudo pip install --extra-index-url=https://developer.download.nvidia.com/compute/redist/jp33 xxx
sudo apt-get install python-xxx

注意以下幾個包的安裝(我目前碰到的比較頭疼的):

  1. 安裝pillow
首先安裝支持包:
sudo apt-get install libjpeg-dev libfreetype6-dev zlib1g-dev libpng12-dev
之後:
sudo pip install pillow
  1. 安裝tensorflow
sudo pip install --extra-index-url=https://developer.download.nvidia.com/compute/redist/jp33 tensorflow-gpu

tensorflow-nvJetson

  1. 安裝keras

Jetson tx2的tensorflow keras環境搭建

之後跑tensorflow的代碼可能會出現一些版本不兼容的問題,需要修改tensorflow的模型等。這個就隨機應變了。兵來將擋 …

網絡攝像頭rtsp視頻流配置以及讀取

1. 修改本地IP地址,以及配置DNS(需要將本地IP修改成和)

sudo vim /etc/network/interfaces

加入以下內容:

auto eth0    # 設置自動啓動eth0接口
iface eth0 inet static    # 設置爲靜態ip
address 192.168.10.58    # ip地址
netmask 255.255.255.0    # 子網掩碼
gateway 192.168.10.1    # 默認網關

dns-nameservers 8.8.8.8 114.114.114.114    # 配置多個DNS

其他:

sudo vim /etc/resolv.conf  # DNS有關配置,開機重啓之後就會清空

如果網絡無法啓動或不穩定,可嘗試如下操作:

sudo gedit /etc/NetworkManager/NetworkManager.conf

將 managed=false 設置成 managed=true

2. python讀取rtsp視頻流demo

import cv2

capture = cv2.VideoCapture("rtsp://admin:[email protected]/cam/realmonitor?channel=1&subtype=0")  # 換成你的攝像頭的IP地址

while True:
    ret, frame = capture.read()
    cv2.imshow("frame", frame)
    if 0xff & cv2.waitKey(1):
        break
cv2.destroyAllWindows()

3. C++讀取rtsp視頻流demo

#include "opencv2/opencv.hpp"
#include <string>

int main()
{
	std::string str = "rtsp://admin:[email protected]/cam/realmonitor?channel=1&subtype=0";
//	cv::VideoCapture cap("rtsp://admin:[email protected]:554/h264/ch1/main/av_stream");
	cv::VideoCapture cap(str);
	cv::Mat img;
	cv::namedWindow("test", CV_WINDOW_NORMAL);
	cv::setWindowProperty("test", CV_WND_PROP_FULLSCREEN, CV_WINDOW_FULLSCREEN);

	while(1)
	{
		cap >> img;
		cv::imshow("test", img);
		if(27 == cv::waitKey(1))
			break;
	}
	return 0;
}

USB攝像頭配置以及讀取

1. python讀取usb攝像頭demo

import cv2

capture = cv2.VideoCapture(0)  # 0 爲默認攝像頭,可以根據自己接的攝像頭接口進行修改

while True:
    ret, frame = capture.read()
    cv2.imshow("frame", frame)
    if 0xff & cv2.waitKey(1):
        break
        
cv2.destroyAllWindows()

2. C++讀取usb攝像頭demo

#include <opencv2/opencv.hpp>
#include<ctime>
using namespace cv;  
using namespace std;
 
int main( )  
{  
	//【1】從攝像頭讀入視頻
	VideoCapture capture(0);
 
	//【2】循環顯示每一幀
	int j=0;
 
	capture.set(CV_CAP_PROP_FRAME_WIDTH, 1080);  
        capture.set(CV_CAP_PROP_FRAME_HEIGHT,720); 
	while(1&&(j<100)) 
	{   clock_t start,finish;
        start=clock();
		j++;
		Mat frame;  //定義一個Mat變量,用於存儲每一幀的圖像
		capture>>frame;  //讀取當前幀
		// imshow("讀取視頻",frame);  //顯示當前幀
		cout<<frame.size()<<endl;
		finish=clock();
  
       cout << finish-start   << "/" << CLOCKS_PER_SEC  << " (s) "<< endl;
		waitKey(1);  //延時30ms
	}  
	return 0;     
}  

C++ 代碼編譯方法:

build.sh
sudo g++ -o capture -I/usr/include -O3 -Wall testmain.cpp -L /usr/lib -lopencv_core -lopencv_imgproc -lopencv_flann -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_objdetect -lopencv_stitching -lopencv_videoio

build2.sh
sudo g++ -o capture2 -I ../opencv3.4/include -O3 -Wall testmain.cpp -L ../opencv3.4/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_video -lopencv_videoio -lopencv_imgcodecs
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章