1. 程式人生 > 其它 >conda、jupyter、docker與ocr演算法配置

conda、jupyter、docker與ocr演算法配置

如何切換conda環境滿足不同的演算法依賴

找到不同環境下對用的直譯器即可,如alphapose對應的python直譯器為/mnt/dell/anaconda3/envs/alphapose/bin/python

多使用者conda、pip使用

其他使用者使用conda:

在etc/sudoers中新增使用者以及命令

sudo /mnt/dell/anaconda3/bin/conda install opencv-python

其他使用者使用pip:

檔案會下載到當前使用者家目錄中。

解決遠端ssh連線中斷服務中止的問題

1.使用 nohup 執行,此法無法與命令列互動,無列印。

在命令頭尾分別加上 nohup 和 &

2.使用 screen 執行

  • CentOS 系列系統: yum install screen

  • Ubuntu 系列系統: sudo apt-get install screen

  • screen -S name
    # name可以設定為ssh、ftp,用於標註該 screen 視窗用途
    

    screen -ls ##列出 screen 程序列表

    退出儲存:前述 ftp 操作示例開始傳輸後,在視窗中鍵入Ctrl+a+d 鍵,就可以退出 SSH 登入,但不會影響 screen 程式的執行。

    需要繼續工作時,再次 SSH 登入伺服器,然後直接執行 screen -r -d name恢復會話即可。

jupyter遠端訪問:

檢視隱藏資料夾


dell:

c.NotebookApp.notebook_dir = '/mnt/dell'

c.NotebookApp.open_browser = False

c.NotebookApp.password = u'argon2:\(argon2id\)v=19\(m=10240,t=10,p=8\)v6MrsT68ttCNWoH3jeemBA$6nQoApBxl64eYglEf/YP+g'

c.NotebookApp.port = 7500

c.NotebookApp.allow_remote_access = True

c.NotebookApp.ip = '*'

開啟防火牆,全域性可訪問

不開啟防火牆:借用jupyter設定隧道

注意:預設使用127.0.0.1,若設定其他地址如127.0.0.2會還是會訪問127.0.0.1。

遠端伺服器轉發埠要與遠端開啟的埠一致。

根目錄/ 滿了

使用df -h 檢視佔用與掛載

使用du -sh 檢視資料夾佔用空間

使用du -h --max-depth=1檢視下一級目錄佔用空間

定位到/usr/local中tomcat日誌佔用20G,cuda11.2佔用20G

定位到/var中docker映象佔用太多空間。docker images檢視映象

刪除bitxiong/tsn --11.5G 刪除映象docker rmi 29e6526323ee

liuwenhua/mmskeleton --11.8G

ioir123ju/mmskeleton --8G

tensorflow/tensorflow --6G

meta-release --11G

不同使用者使用pip在家目錄產生的快取cacha

所在位置:~/.cacha/pip

可以刪除

其他使用者conda install無法使用

許可權不夠,由於大多conda環境由root建立,因此普通使用者無法修改、新增檔案。

可以考慮修改環境所有者。所有者、所屬組誰許可權高?

利用U盤安裝ubuntu:

格式化U盤

下載iso映象

利用工具製作系統盤:如rufus-3.15

若安裝雙系統,需要在D盤壓縮出部分空間,如50G

插入U盤,啟動bios,選擇U盤啟動。

後續選擇空閒記憶體掛載到/

1.OCR

首先安裝對應的pytorch依賴版本:pip3 install torch torchvision torchaudio

再安裝easyocr,這樣比較快:pip3 install easyocr

依賴環境:base

檔案位置:/mnt/dell/kangbowei/java_API/demo.py

執行方式:python /mnt/dell/kangbowei/java_API/demo.py --name 003.jpg #新增檔名稱

檔案輸入目錄:/disk2/deploy/upload/deepLearning/open_ocr/input/

檔案輸入目錄:/disk2/deploy/upload/deepLearning/open_ocr/output/

ocr

import easyocr

reader = easyocr.Reader(['ch_sim','en'])

result = reader.readtext(os.path.join(path,'input',img_name))

python mqtt部署

安裝pip install paho-mqtt

from paho.mqtt import client as mqtt_client

client = mqtt_client.Client('kang_py')
client.connect("121.40.244.52")
client.subscribe("ocr")

定義響應事件函式

void on_message():

...

client.on_message = on_message#繫結響應函式

2.alphpose

依賴環境:alphapose

檔案位置:/mnt/dell/kangbowei/Action_Recognation/AlphaPose/demo.py

執行方式:/mnt/dell/anaconda3/envs/alphapose/bin/python /mnt/dell/kangbowei/Action_Recognation/AlphaPose/demo.py

檔案輸入輸出目錄修改方式:/mnt/dell/kangbowei/Action_Recognation/AlphaPose/opt.py中修改

檔案輸入目錄:/mnt/dell/kangbowei/data/AVA/-5KQ66BBWC4

檔案輸出目錄:/mnt/dell/kangbowei/data/AVA_pose/-5KQ66BBWC4

使用docker

docker hub官網 檢視映象liuwenhua/mmskeleton Tags | Docker Hub

下載映象docker pull liuwenhua/mmskeleton:v1

檢視下載的映象 docker images

刪除映象docker rmi hello-world

例項化映象docker run -it liuwenhua/mmskeleton:v1 /bin/bash,在大部分的場景下,我們希望 docker 的服務是在後臺執行的,我們可以過 -d 指定容器的執行模式。加了 -d 引數預設不會進入容器,想要進入容器需要使用指令 docker exec

$ docker run -itd --name ubuntu-test ubuntu /bin/bash

檢視容器docker ps -a

停止容器docker stop <容器 ID>

啟動停止的容器docker start b750bbbcfd88 (容器id)

上述方式exit會停止容器,使用一下命令退出後容器不會中止docker exec -it 243c32535da7 /bin/bash

刪除容器docker rm -f 1e560fca3906

nivdia-docker 使用:

啟動

systemctl start nvidia-docker

systemctl enable nvidia-docker

systemctl status nvidia-docker

加上 --gpus all

docker run -itd liuwenhua/mmskeleton:v1 --gpus all /bin/bash

pose3D

遠端顯示可選:失敗。。。

Vxfb安裝

yum install Vxfb

xvfb-run

使用流程

環境:kang

核心環境配置流程:更新torch為1.6.0

目錄:/mnt/dell/kangbowei/Action_Recognation/frankmocap-main/

在demo/demo_bodymocap.py第155行新增程式碼:

args.no_display=True
args.use_smplx=True
args.renderer_type='pytorch3d'

執行指令:

python -m demo.demo_bodymocap --input_path ./sample_data/han_short.mp4 --out_dir ./mocap_output

unity-pose3D

環境:pytorch1.2

無SPPE,新增如下程式碼:

import sys
sys.path.append("/mnt/dell/kangbowei/Action_Recognation/unity_pose3D-master/python/data/")
sys.path.append("./Alphapose")
sys.path.append("./pose_trackers")

多程序報錯: Argument 'alpha' can not be treated as a double

解決:pip install opencv-python==4.1.0.25

處理太慢用:args.viz_fast = True

ffmpeg Unknown encoder h264

流程

視訊demo.mp4 放入/mnt/dell/kangbowei/Action_Recognation/unity_pose3D-master/python/outputs/

cd /mnt/dell/kangbowei/Action_Recognation/unity_pose3D-master/python/

python videopose.py

ffmpeg報錯但是得到3Dnpz檔案。

python np2json.py

得到byte檔案,放入unity的Asset/dataset中

unity端

改變model並make effect後執行對應的動作。

python與unity的結合方式

以上方式太麻煩,且無法實時端到端實現。

考慮使用http或mqtt的方式傳遞資料。

前後端http通訊方式(19條訊息) 基於python和unity互動的卡通角色肢體和表情驅動(深度學習)_風翼冰舟的部落格-CSDN部落格_表情驅動