網頁

2020年12月14日 星期一

Record CSI-Camera to h264 video


gst-launch-1.0 nvarguscamerasrc ! 'video/x-raw(memory:NVMM), width=1920, height=1080,format=NV12, framerate=30/1' ! nvvidconv ! 'video/x-raw(memory:NVMM), format=(string)I420' ! nvv4l2h264enc preset-level=4 MeasureEncoderLatency=1 ! 'video/x-h264, stream-format=(string)byte-stream, alignment=(string)au' ! filesink location=file.h264 -e 


gst-launch-1.0 filesrc location=file.h264 ! h264parse ! nvv4l2decoder ! nvvidconv ! nveglglessink -e


2020年12月9日 星期三

TLT+DeepStream on ICDAR-2013

到 ICDAR-2013 的網站下載圖片和標註
ICDAR-2013 在 Robust Reading Competition 網站
要下載前要註冊
選 Challenges/Focused Scene Text
2013 的文字比較正,標註只有兩點
2015 的文字有各種角度,標註有四點

產生 kitti 資料時,直接使用訓練效果不好
轉換圖形時採用不同策略,一圖拆成多圖
截圖時不要破壞文字

TLT 有測試過 detectnet_v2 (resnet18, resnet50, darknet19), object_detection yolov3 (darknet19)
detectnet_v2 之 resnet18 precision: 14.6133 %
雖然 precision 不高,但是 tlt-infer 可以正確抓到文字
detectnet_v2 之 darknet19 precision: 18.7146 %
但 detectnet_v2 之 darknet19 失敗,tlt-infer 可以無法正確抓到文字
yolov3 之 darknet19 AP: 0.769
效果比 detectnet_v2 好

最看重 TLT 的功能是 tlt-prune, 神經網路被裁剪後
節省記憶體,加快速度
unprune Mem:2.5G   PREF:8.33
0.5        Mem:2.1G    PREF:28.83
0.7        Mem:2.1G    PREF:30.00

DeepStream 之 nvinfer 的 config-file-path 設定檔
tlt-encoded-model=yolo_darknet19_pruned_70.etlt
model-engine-file=yolo_darknet19_pruned_70.engine
第一次啟動會很慢,因為在產生 yolo_darknet19_pruned_70.etlt_b1_gpu0_fp16.engine 檔
$ mv yolo_darknet19_pruned_70.etlt_b1_gpu0_fp16.engine yolo_darknet19_pruned_70.engine
之後會直接使用 yolo_darknet19_pruned_70.engine

以下是測試歷程記錄

2020年12月4日 星期五

Build TensorRT OSS on Jetson


更新 CMake
$ wget http://www.cmake.org/files/v3.13/cmake-3.13.0.tar.gz
$ tar xpvf cmake-3.13.0.tar.gz cmake-3.13.0
$ cd cmake-3.13.0
$ ./bootstrap --system-curl
$ make -j4
$ sudo ln -s /home/nano/Data/cmake-3.13.0/cmake /usr/local/bin/cmake

$ git clone -b release/7.1 https://github.com/nvidia/TensorRT
$ cd TensorRT/
$ git submodule update --init --recursive
$ export TRT_SOURCE=`pwd`
$ cd $TRT_SOURCE
$ mkdir -p build && cd build

$ /usr/local/bin/cmake .. -DGPU_ARCHS=53 \
-DTRT_LIB_DIR=/usr/lib/aarch64-linux-gnu/ \
-DCMAKE_C_COMPILER=/usr/bin/gcc \
-DCMAKE_CUDA_COMPIILER=/usr/local/cuda-10.2/bin/nvcc \
-DTRT_BIN_DIR=`pwd`/out

$ make nvinfer_plugin -j$(nproc)$ mkdir backup
$ sudo mv /usr/lib/aarch64-linux-gnu/libnvinfer_plugin.so.7.1.3 backup
$ sudo cp libnvinfer_plugin.so.7.1.3 /usr/lib/aarch64-linux-gnu/libnvinfer_plugin.so.7.1.3
$ sudo ldconfig

由此下載 tlt-converter
$ mkdir tlt-converter
$ mv tlt_7.1.zip tlt-converter
$ cd tlt-converter
$ unzip tlt_7.1.zip
$ vi ~/.bashrc 加入
export TRT_LIB_PATH=”/usr/lib/aarch64-linux-gnu”
export TRT_INC_PATH=”/usr/include/aarch64-linux-gnu”

2020年11月27日 星期五

jetson nano install tensorflow

$ sudo apt-get update
$ sudo apt-get install libhdf5-serial-dev hdf5-tools libhdf5-dev zlib1g-dev zip libjpeg8-dev liblapack-dev libblas-dev gfortran
$ sudo apt-get install python3-pip
$ sudo pip3 install -U pip testresources setuptools==49.6.0
$ sudo apt-get install virtualenv
$ make envs
$ cd envs
$ sudo pip3 install -U numpy==1.16.1 future==0.18.2 mock==3.0.5 h5py==2.10.0 keras_preprocessing==1.1.1 keras_applications==1.0.8 gast==0.2.2 futures protobuf pybind11

$ python3 -m virtualenv -p python3 tensorflow-2.3.1
$ source tensorflow-2.3.1/bin/activate
$ pip3 install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 tensorflow==2.3.1+nv20.11

$ python3 -m virtualenv -p python3 tensorflow-1.15.4
$ source tensorflow-1.15.4/bin/activate
$ pip3 install --extra-index-url https://developer.download.nvidia.com/compute/redist/jp/v44 tensorflow==1.15.4+nv20.11

xpra 常用命令

啟動 xterm, select to copy, shift+insert or middle-click to paste
開啟選項 ctrl+middle-click
設定 buffer size -sl
顯示 scrollbar -sb
黑筆白字 -fg white -bg black
>Xpra.exe start ssh://user@ip/session --exit-with-children=yes --start-child="xterm -fa Monospace -fs 16 -xrm 'XTerm*selectToClipboard: true' -sl 1000 -sb -fg white -bg black"

>Xpra.exe start ssh://user@ip/session --exit-with-children=yes --start-child=/opt/google/chrome/chrome
>Xpra.exe start ssh://user@ip/session --exit-with-children=yes --start-child=/usr/bin//chromium-browser
>Xpra.exe stop ssh://user@ip/session
>Xpra.exe attach ssh://user@ip/session
>Xpra.exe detach ssh://user@ip/session

連上目前的桌面,如 vnc
>Xpra.exe shadow ssh://user@ip/1
>Xpra.exe shadow ssh://user@ip

$ xpra list
$ xpra start :session
$ DISPLAY=:session gedit

2020年11月26日 星期四

xpra in jsetson nano


以下部分步驟,直接跳過避不開的錯誤
$ sudo apt-get install libx11-dev libxtst-dev libxcomposite-dev libxdamage-dev \
    libxkbfile-dev python-all-dev
$ sudo apt-get install libgtk-3-dev python3-dev python3-cairo-dev python-gi-dev cython3
$ sudo apt-get install xauth x11-xkb-utils
$ sudo apt-get install libx264-dev libvpx-dev yasm
$ sudo apt-get install libavformat-dev libavcodec-dev libswscale-dev
$ sudo apt-get install libturbojpeg-dev
$ sudo apt-get install libwebp-dev
$ sudo apt-get install uglifyjs brotli libjs-jquery libjs-jquery-ui gnome-backgrounds
$ sudo apt-get install python3-opengl python3-numpy python3-pil
$ sudo apt-get install python3-rencode python3-lz4 python3-dbus python3-cryptography \
    python3-netifaces python3-yaml
$ sudo apt-get install python3-setproctitle python3-xdg python3-pyinotify python3-opencv
$ sudo apt-get install libpam-dev quilt xserver-xorg-dev xutils-dev \
    xserver-xorg-video-dummy xvfb keyboard-configuration
$ sudo apt-get install python-kerberos python-gssapi
$ sudo apt-get install python-avahi
$ sudo apt-get install gstreamer1.0-pulseaudio gstreamer1.0-alsa \
    gstreamer1.0-plugins-base gstreamer1.0-plugins-good \
    gstreamer1.0-plugins-ugly python-gst-1.0
$ sudo apt-get install cups-filters cups-common cups-pdf python3-cups
$ sudo apt-get install openssh-client sshpass python3-paramiko
$ sudo apt-get install dh-systemd
$ wget https://www.xpra.org/src/xpra-4.0.4.tar.xz
$ tar -xf xpra-4.0.4.tar.xz
$ cd xpra-4.0.4
$ sudo ./setup.py install
$ vi setup.py
將第一行改成 python3
$ sudo ./setup.py install
$ sudo mkdir /usr/local/share/xpra/www/js/lib
$ sudo ./setup.py install

2020年11月25日 星期三

LXDE 桌面 lightdm, VNC Server, 中文輸入

$ sudo dpkg-reconfigure lightdm
$ sudo apt update
為避免 lightdm 黑畫面,無法登入,需要鎖住 systemd 不要升級
$ sudo apt-mark hold systemd
若有一天問題解決,解開封鎖
$ sudo apt-mark unhold systemd
$ sudo apt upgrade
$ sudo apt install x11vnc
$ sudo x11vnc -storepasswd
$ sudo vi /etc/systemd/system/x11vnc.service
# Description: Custom Service Unit file
# File: /etc/systemd/system/x11vnc.service
[Unit]
Description="x11vnc"
Requires=display-manager.service
After=display-manager.service

[Service]
ExecStart=/usr/bin/x11vnc -loop -nopw -xkb -repeat -noxrecord -noxfixes -noxdamage -forever -rfbport 5900 -display :0 -auth guess -rfbauth /home/nano/.vnc/passwd
ExecStop=/usr/bin/killall x11vnc
Restart=on-failure
RestartSec=2

[Install]
WantedBy=multi-user.target


$ sudo systemctl enable x11vnc.service
$ sudo systemctl start x11vnc.service

$ xrandr -q
$ sudo vi /etc/X11/xorg.conf
Section "Monitor"
    Identifier "DSI-0"
    Option "Ignore"
EndSection

Section "Screen"
    Identifier "Default Screen"
    Monitor "Configured Monitor"
    Device "Default Device"
    SubSection "Display"
        Depth 24
        Virtual 1280 800
    EndSubSection
EndSection

$ sudo apt-get install fcitx fcitx-chewing
Start up/Preferences/Language Support
Keyboard input method system: fcitx
Reboot
Start up/Preferences/Fcitx Configuration
按 + 並取消打勾 Only Show Current Language
加入 Chewing