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部落格_表情驅動