- Sep 03 Tue 2024 09:33
若何在CentOS 8 安裝Anaconda3 及PyCharm
- Sep 03 Tue 2024 07:04
openvino 如何run demo application & pretrained model 介紹
OpenVino概念
圖改自https://www.learnopencv.com/using-openvino-with-opencv/#openvino-opencv
將已練習好的深度學習model經由Model Optimizer優化後
(何謂優化請見下面Model Optimizer條目)
經由Inference Engine 跟 硬體(CPU/ GPU /VPU)
到達加快Inference 的目的
★ Model Optimizer
●摘錄自:【AI_Column】應用 Intel OpenVINO 土炮自駕車視覺系統
協助去除已練習好的模子中的冗餘參數,並可將 32bits 浮點數的參數降階,
以犧牲數個百分點准確率來換取推論速度提升數十倍到百倍。
●把深度進修框架Train出來的model, 轉換成 Inference Engine 可以用的IR file
目前支援的深度學習框架有 Caffe*, TensorFlow*, MXNet*, and ONNX*.
●之前以為所有由Caffe*, TensorFlow*, MXNet*, and ONNX* 練習出的model
都可以由Model Optimizer轉換成IR file ,但看了 的Supported Models章節
如同不是這麼一回事,需找一個底下沒提到的model來嘗試看看
有結果我再更新
Supported Models
For the list of supported models refer to the framework or format specific page:
• Supported Caffe* models
• Supported TensorFlow* models
• Supported MXNet* models
• Supported ONNX* models
• Supported Kaldi* models
●有script可以 configure Model Optimizer 以導入
所有OpenVino supported的深度進修框架或單一深度進修框架
若要手動configure Model Optimizer也有文件可以參考 -> Model Optimizer Developer Guide.
★ IR file
包括train model的topology 跟weight,利用者只要知道如何將
練習好的model change to IR file,就能夠利用OpenVino加快Inference
★ Inference Engine
用來run 最佳化後的深度進修model
C:\Program Files (x86)\Intel\openvino_2021.4.689\
deployment_tools\inference_engine\samples底下有放一些IE的samples
各Samples申明
延伸浏覽 → 若何run Inference Engine Samples
★ VPU plugin
這份文件彷佛在講如何的model能被vpu 支援
■OpenVino不供應Model Training
OpenVino的model來源以我的理解就以下這幾種
1.本身用OpenVino supported的深度進修框架去train model
或去Model Zoo下載所需model
1. Caffe [ Model Zoo ]
2. Tensorflow [ Model Zoo ]
3. MxNet [ Model zoo ] 連結失效
4. Open Neural Network Exchange (ONNX) [ Model zoo ]
2.OpenVino裡面附的pre-trained model
不過不一定有符合你需求的
3.OpenCV DNN sample model
■相幹名詞
★ OpenVino用的是CNN( Convolutional Neural Networks )模子 ;
還包括了Deep Learning Deployment Toolkit (Intel® DLDT).
Convolution:影像->filter->擷取出特徵,好比邊沿。
此種進程叫做Convolution
★ OpenCV和OpenVX有什么联系和区别?
★ 機械進修
機械學習理論主要是設計和闡明一些讓電腦可以主動進修的演算法。
機械進修演算法是一類從資料中自動剖析取得規律,並利用紀律對未知資料進行預測的演算法。
★ 深度進修
是機械進修的分支。 深度學習框架對照
■若何安裝OpenVino
照著 安裝步調做即可 (英文看不懂請自行戰勝)
-------------------------------------------------------------------------------------------------------------------------------
上述的器械都領會以後,接下來入手下手DEMO OpenVino附的兩個script
■Run the Image Classification Verification Script
★在C:\Program Files (x86)\IntelSWTools\openvino\deployment_tools\demo下
可以找到demo_squeezenet_download_convert_run.bat。
這個demo使用squeezenet model 判定照片中的Object屬於什麼類別
可判定的類別有一千種,有哪一千種可以看底下這個檔案
C:\Program Files (x86)\Intel\openvino_2021.4.689\
deployment_tools\demo\squeezenet1.1.labels
*路徑中的openvino_2019.1.148的2019.1.148這數字代表版本, 因此若安裝的OpenVino版本跟我分歧,那數字也會分歧
*若安裝不只一個版本的OpenVino,分歧版本的OpenVino會有屬於自己的資料夾
而openvino誰人捷徑會指向最後安裝的那個版本
★這個batch的內容以下
Step1 : 下載SqueezeNet model (利用downloader.py)
Step2: 用 Model Optimizer 把SqueezeNet轉成IR file。
(利用mo.py)
Step3: Build Inference Engine samples
batch檔執行過程當中, 會看到cmd 畫面卡在
Build Inference Engine samples using MS Visual Studio (MSBuild.exe)一段時候
請耐煩等待 。此步會產生 classification_sample.exe
Step4: 把car.png & IR file當作iInference Engine的input 來闡明car.png
↓This is car.png
↓針對比片中的Object,分類前十名的成效依序從Prob.高到低排列
分類成績最高分數是sport car
★重跑demo_squeezenet_download_convert_run.bat
跑過一次batch之後,若再履行一次batch,
因為某些檔案跑過一次batch以後就已存在了
batch裡的寫法偵測到某些檔案存在以後就會忽略掉某些Step
若想要完全地再跑一次,需刪除以下檔案
●刪除model
C:\Users\$(username)\Documents\Intel\OpenVINO\openvino_models
\models\FP32\classification
底下整個squeezenet 資料夾刪掉
注意:FP32是針對CPU device的,若是VPU devide ,對應到的folder name是FP16
●刪除 IR
C:\Users\$(username)\Documents\Intel\OpenVINO\openvino_models\ir\FP32
\classification\squeezenet\1.1\ 底下全部caffe 資料夾刪掉
注意:FP32是針對CPU device的,若是VPU devide ,對應到的folder name是FP16
------------------------------------------------------------------------------------------------
■Run the Inference Pipeline Verification Script
★demo_security_barrier_camera.bat 這個batch的內容以下
Step1 : 下載 three pre-trained models IRs
Step2:build Security Barrier Camera Demo Inference Engine來闡發car1.bmp
Step3: 圖片裡的object會被第一個model判斷成是車輛,
這個判定結果被當作input 導入到下一個model,
這個model可以指出車輛的一些屬性 ex:車牌
最後 車牌被當作input導入到第三個model,這個model可以把車牌的字元辨認出
會被稱做Pipeline 我想應當是辨認後果從第一個model傳到第三個model
像水流在管線裡活動一樣吧...
★重跑全部bat
跑過一次batch之後,有些step會被疏忽掉,因為某些檔案已存在了
若要乾乾淨淨的再跑一次,需要刪除以下檔案
●刪除 IR
C:\Users\$(username)\Documents\Intel\OpenVINO\openvino_models\
ir\FP32\classification\squeezenet\1.1\
底下全部caffe 資料夾刪掉
----------------------------------------------------------------------------------------------------------
以上規範是利用openvino在 CPU
若用其他intel 硬體, 比如movidius gpu vpu FPGA or MYRIAD
請參考安裝文件中 Optional Steps這部分
-----------------------------------------------------------------------------------------------------------
■OpenVino PreTrained Model
★OpenVINO供應好幾個pre-trained models
可以用Model Downloader 或到
https://download.01.org/opencv/2019/open_model_zoo/ 去下載
下載的model是被優化過的model,稱作IR file( xml 檔+ bin 檔)
★可在這邊 https://docs.openvinotoolkit.org/latest/_demos_README.html
Demos that Support Pre-Trained Models章節
看各個pre-trained model support哪些Device
Object Detection Models
裡面包括好幾個model可以用來偵測object
包括:人臉,人,車輛
Object Recognition Models
用來分類或特徵辨識,使用在其他detector以後。好比先做人臉偵測,再做年齡/性別辨識
Semantic Segmentation Models
原文網址:https://kknews.cc/zh-tw/tech/mgqvl9.html
語義朋分(Semantic Segmentation)的目標是給定一張圖片,對於圖片中的每一個像素做分類。
例如圖1(a)中給出的原始輸入圖片,語義分割算法對圖片中的每一個像素分類,
得到如圖1(b)的成績。在圖1(b)中,分歧色彩代表不同類別:
如紅色代表行人,藍色代表汽車,綠色代表樹,灰色代表建築物等。
語義朋分問題在許多應用場景中都有著十分重要的感化(例如圖片理解,主動駕駛等)
Instance Segmentation Models
INSTANCE SEGMENTATION可以知道同類object的數量(分歧色彩透露表現)
https://arxiv.org/pdf/1405.0312.pdf
Human Pose Estimation Models
Image Processing
提高影象品質
Text Detection
Action Recognition Models
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
■Trouble Shooting
● 安裝時碰到CMake*/ Python* version xxx or higher is not detected.
->Fixed by 安裝如提示的CMake & Python版本後
再重安裝一次OpenVino
● 電腦已經有安裝Python3.6.5了
照舊會呈現Python* version xxx or higher is not detected.
->Fixed by 再安裝一次Python >選Modify >勾選Add Python.....
->再安裝一次OpenVino就能夠了
● 履行demo_squeezenet_download_convert_run.bat前
若沒有安裝cmake 會出現以下Error
'cmake' is not recognized as an internal or external command,
operable program or batch file.
->Fixed by 安裝cmake
請參考 Install CMake* 3.4 or higher章節
● 履行demo_squeezenet_download_convert_run.bat發生以下Err
target_precision = FP32
Python 3.6.6
ECHO is off.
PYTHONPATH=C:\Program Files (x86)\IntelSWTools\openvino\python\python3.6;
[setupvars.bat] OpenVINO environment initialized
INTEL_OPENVINO_DIR is set to C:\Program Files (x86)\IntelSWTools\openvino
Python 3.6.6
ECHO is off.
Collecting pyyaml
Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required ( Forefront TMG requires authorization to fulfill the request. Access to the Web Proxy filter is denied. )',))': /simple/pyyaml/
...
Could not find a version that satisfies the requirement pyyaml (from versions: )
No matching distribution found for pyyaml
->Fixed by 更改proxy設定
按照Cannot connect to proxy這個訊息判定應當是proxy問題
原本我是使用公司內網run script
後來將proxy調劑成以下設定&連手機熱門就可以履行了
● 呈現以下Error
###############|| Generate VS solution for Inference Engine samples using cmake ||###############
Waiting for 2 seconds, press a key to continue ...
Creating Visual Studio 15 2017 x64 files in
C:\Users\$(userName)\Documents\Intel\OpenVINO\inference_engine_samples_build...
CMake Error at CMakeLists.txt:7 (project):
Generator
Visual Studio 15 2017
could not find any instance of Visual Studio.
-- Configuring incomplete, errors occurred!
->fixed by reboot
因為在安裝openvino之前我有開visual studio installer去 modify設定
設定完後沒有按照指示重開機
是以出現以上issue
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
●其它參考貫穿連接
- OPENvINO with openCV
- 既跨平台又開源 英特爾開啟智慧視覺立異
跨越20個預先練習的模型,和針對OpenCV和OpenVx的最好化電腦視覺庫。
OpenVINO東西套件可透過CPU、GPU、FPGA、Movidius VPU(AI晶片 )等硬體進行擺設,
增強視覺系統功能和機能
- SqueezeNet
SqueezeNet 是圖片分類模型,最合適參數較少及較小的模型利用,相較於現代圖片分類模型 (AlexNet),
不會犧牲品質。
- C:\Program Files (x86)\Intel\openvino_2021.4.689\documentation
- Sep 02 Mon 2024 19:23
網頁設計 Arduino初始設定ESP32呈現package_esp32_index.json毛病
比來電腦重灌WIN10
arduino從新安裝及設定
發現輸入開發管理員網址時會泛起毛病
- Sep 02 Mon 2024 15:22
Python 若何用Pytesseract OCR 辨識影象的字元
1. 到 Github 下載 tesseract-ocr-w64-setup-5.3.3.20231005.exe 來安裝Tesseract。
2. 記錄Tesseract安裝的路徑,預設路徑平常為 C:\Program Files\Tesseract-OCR。
3. 將Tesseract.exe路徑新增到環境變數中
- Sep 02 Mon 2024 14:12
CENTSOS 8-9 PPPoE 在 iptables 中 TCPMSS 網路封包設定問題
比來因為CENTOS 7 辦事會莫名的封閉,查了發現是KENERL問題,所以決議升到CENTOS 8-9,
我的INTEL雙網網卡 來當做家裡的firewall, 於是安裝了CENTOS 8 - 9, 並用pppoe 來毗連中華電信的Router, 而且寫了一些iptables 的rules 來看成firewall 及NAT router.
然則覺得有問題, 有時連不出去. 現象是如許的:
可是在NAT 後面的電腦,GOOGLE PTT網站 連線都很ok, , 只要碰上yahoo跟遊戲 的連線, 就連不上, ftp 也ok.
這問題擺了良久都沒去理睬. 今天終於有空好好的來追問題的源頭. 發現如同是跟pppoe 有關.
問了小洲大大才發現
MTU
MTU (Maximum Transmission Unit) 是指網路介面卡上最大傳輸單位, 其單元為bytes. 在大大都的Ehternet 上, 這個值平常是1500. 因為如斯, 在PPPoE 中, 因為還有header問題, 所以這個值就得設的比較小, 凡是為1492 (= 1500 – 2(PPP)- 6(PPPoE))
MSS
MSS (Maximum segment size) 是TCP protocol 中的一個參數, 是指TCP 每次資料傳輸分段的最大值. 當TCP 在handshake 時, 雙方host 會查看MSS 這個欄位, 來決議兩邊資料傳輸分段的巨細. 在Ethernet 中MSS 值最大為1460 bytes.
緣由是在Ethernet 中 MTU = IP Header + TCP Header + MSS + FCS.
(FCS 是指Frame check sequence, 平常採用CRC演算法, 在Ethernet 中, 它佔4 bytes.)
然則在PPPoE 中MTU 為1492, 所以其MSS 只能設為1452.
問題地點
當CENTOS 8 在開機後, 啟動了ppp0, 其內定將MTU 設為1492, 而且會主動設定一條iptable rule,
因為在NAT 後面的電腦, 其實不知道前真個router 是用什麼介面連到internet, 所以它和遠真個電腦設立建設TCP 連線時, 有可能會將MSS 設為1460. 但是由於firewall 或router 端使用PPPoE連線, 若MSS 大於1452會造成資料爆掉, 所以上述的iptable rule 強迫偷改其MSS值(在IPV4下 = PMTU – 40, 在IPV6下 = PMTU – 60). 是以MSS 就會被改成1452, 如許子就不會爆掉了.
然則我自己寫的iptable rule script 中, 一開始就用了以下設定, 清除了本來的所有設定
- Sep 01 Sun 2024 17:16
網頁設計 CKeditor 4.11.1 網頁編輯器與CKfinder 2.6.2.1 圖片上傳PHP5.4應用
在搜索引擎不斷改版網頁不能不進入https
所以後台編纂器圖片上傳也變得不能用了
不得已又請教了谷哥大神
多方測驗考試後,找到
CKeditor 4.11.1 網頁編纂器與CKfinder 2.6.2.1 圖片上傳可以用
檔案下載了以後,籠蓋之前檔案
找到 ckeditor/config.js
- Sep 01 Sun 2024 16:08
網頁設計 Arduino的 RGB led燈(共陽極)的行使
- Sep 01 Sun 2024 09:23
專家也是這麼做的網站SEO優化6步伐 網頁設計
- Sep 01 Sun 2024 06:36
網頁設計 JAVA 若安在LINUX COPY files時出現PROCESS圖標
有利用過進度條的朋友必然會感覺很不方便
因為要從0~100讀取 華侈時候
因檔案大小也不知道這時間讀寫的完嗎?
如這篇
Java Swing 若何利用進度
於是經由批改
改成此方法
可使用DIALOG準確的抓到讀寫完成的時候
- Sep 01 Sun 2024 00:24
網頁設計 CentOS 8-9 用雙網卡 PPPOE 撥號並做 NAT-完全
用nmcli可以成功設立建設pppoe連線
: (鄙人列例子中,我將pppoe連線定名為ppp0,決心設定為需要時才手動進行撥接,
: 網卡的裝配名稱為對外enp1s0f0, 對內enp1s0f1)1. 安裝模組 NetworkManager-ppp ppp
enp1s0f0設定IP:192.168.0.254
enp1s0f0設定IP:192.168.1.254
1.安裝模組