㈠ OCR文字識別用的是什麼演算法
文字識別近兩年沒有太大進展,有兩種方法,一種是CNN+RNN+CTC,白翔老師團隊的CRNN寫的比較清楚,還有一種是CNN+RNN基於Attention的方法。
最近比較火的方向是文字檢測和識別放到一個網路里joint train,沈春華老師團隊2017 ICCV的Towards End-to-end Text Spotting with Convolutional Recurrent Neural Networks這篇文章已經在水平文字上把檢測識別end to end做的比較work,感覺這可能是未來一兩年的一個熱點。
㈡ yolo演算法是什麼
Yolo演算法採用一個單獨的CNN模型實現end-to-end的目標檢測。
首先將輸入圖片resize到448x448,然後送入CNN網路,最後處理網路預測結果得到檢測的目標。相比R-CNN演算法,其是一個統一的框架,其速度更快,而且Yolo的訓練過程也是end-to-end的。
相關信息:
Yolo採用卷積網路來提取特徵,然後使用全連接層來得到預測值。網路結構參考GooLeNet模型,包含24個卷積層和2個全連接層,如圖8所示。對於卷積層,主要使用1x1卷積來做channle rection,然後緊跟3x3卷積。
㈢ 加密通信——什麼是端到端語音加密
您好,手機A向手機B發起的通話信號與內容的加密。端到端的加密是通過通話內容的密文傳輸與通話信道全程加密來實現的。
加密通信業務是中國電信基於廣覆蓋、大容量的CDMA移動通信網路和安全管理平台,通過特別定製的、內置國家密碼管理局指配加密演算法的專用手機終端,利用商用密碼技術和信息安全技術,向客戶提供商密級的端到端手機通話加密,和基於終端的個人信息保護以及手機丟失安全保護等安全服務。
㈣ 鏈路加密與端到端加密各有何特點各用在什麼場合
在採用鏈路加密的網路中,每條通信鏈路上的加密是獨立實現的。通常對每條鏈路使用不同的加密密鑰。當某條鏈路受到破壞就不會導致其他鏈路上傳送的信息被析出。加密演算法常採用序列密碼。
鏈路加密的最大缺點是在中間結點都暴露了信息的內容。在網路互連的情況下,僅採用鏈路加密是不能實現通信安全的。
端到端加密是在源結點和目的結點中對傳送的PDU進行加密和解密,其報文的安全性不會因中間結點的不可靠而受到影響。
端到端加密的層次選擇有一定的靈活性。端到端加密更容易適合不同用戶的要求。端到端加密不僅適用於互連網環境,而且同樣也適用於廣播網。
㈤ yolo演算法是什麼意思
Yolo是一種目標檢測演算法。
YOLO將對象檢測重新定義為一個回歸問題。它將單個卷積神經網路(CNN)應用於整個圖像,將圖像分成網格,並預測每個網格的類概率和邊界框。例如,以一個100x100的圖像為例。我們把它分成網格,比如7x7。
然後,對於每個網格,網路都會預測一個邊界框和與每個類別(汽車,行人,交通信號燈等)相對應的概率。
重要性:
YOLO非常快。由於檢測問題是一個回歸問題,所以不需要復雜的管道。它比「R-CNN」快1000倍,比「Fast R-CNN」快100倍。
它能夠處理實時視頻流,延遲小於25毫秒。它的精度是以前實時系統的兩倍多。同樣重要的是,YOLO遵循的是「端到端深度學習」的實踐。
㈥ Google 實時流擁塞控制演算法GCC
1、簡介
參考:https://tools.ietf.org/html/draft-ietf-rmcat-gcc-02#section-4.4
gcc是google實時流擁塞控制演算法的簡稱,已經在webrtc中實現,應用於chrome,後面將應用到Hangouts(視頻聊天產品)中,主要用於視頻流的擁塞控制。
網路瓶頸主要發生在中間的傳輸設備上,比如路由器,所以如果有中間設備的幫助(ECN),網路瓶頸應該會更早並且更准確的被檢測到,gcc屬於端到端的擁塞控制演算法,端到端的演算法將中間路徑想像成一個黑盒子,它不藉助中間設備的幫助,這就增加了網路擁塞預測的難度。端到端的實時流擁塞演算法主要有以下難點:
(1)網路擁塞一般與鏈路容量,當前鏈路中的流量以及即將發送的流量有關,由於路由的不確定性以及鏈路是由多個流共享並且瞬息萬變等原因,對於一個流而言這三個因素都是隨機變數。
(2)擁塞控制演算法要求同一種流(都使用gcc)能夠公平分享帶寬,同時能夠與TCP流公平相處,不會被TCP流搶占帶寬,也盡量不要搶佔TCP流的帶寬。
(3)視頻解碼器對丟包敏感,但實時性又不能使用重傳機制,因為需要盡量減少丟包,另一方面解碼器並不能快速的調整碼率,因而估計出的帶寬盡量平滑,減少毛刺。
2、實現
gcc由基於延遲的控制器和基於丟包的控制器組成,信令基於RTP擴展頭和RTCP傳輸。
(1)反饋和擴展
gcc可以有兩種實現,第一種是兩種控制器都在發送端實現,接收端周期性的反饋到達的每一個包的序列號和到達時間,發送端記錄每一個包的發送時間和到達時間,同時計算出丟包率。第二種是延遲控制器在接收端實現,接收端計算出組間延遲,根據組間延遲計算出發送比特率通過REMB消息反饋給發送端,接收端通過RTCP消息將丟包率反饋給發送端,丟包控制器在發送端實現,發送端通過接收端反饋的信息計算出最終的發送比特率。
(2)發送引擎
定速器用於實現發送固定比特率的視頻包,編碼器產生的數據先會放到定時隊列中,定時器會在每個burst_time發送一組包,burst_time建議為5ms,這一組包的大小是由發送比特率和burst_time計算出來的。
(3)延遲控制器
(3.1)到達時間模型
d(i) = t(i) - t(i-1) - (T(i) - T(i-1))
d(i)表示第i組包的延遲和第i-1組包的延遲之差,t(i)表示第i組包的到達時間,取最後一個包的到達時間,T(i)表示第i組包的發送時間,取最後一個包的發送時間,忽略亂序的包。
d(i) > 0說明組間的延遲增大了,d(i) < 0說明組間的延遲減少了,d(i) = 0說明組間的延遲沒變化。
我們將組間延遲建模成 d(i) = w(i),w(i)是一個隨機過程W的采樣,這個隨機過程是鏈路容量,當前鏈路的流量以及當前發送的比特率的函數。將W建模成白高斯過程。如果我們過度使用鏈路則我們期望w(i)增大,如果鏈路中的隊列正在排空,則意味著w(i)將會減小,其它情況w(i)將是0。
d(i) = w(i) = m(i) + v(i)
m(i)是從w(i)中提取出來的使w(i)的均值為0的部分。v(i)是雜訊項代表網路抖動以及其它模型捕捉不到的影響延遲的因素,v(i)是均值為0的高斯白雜訊,方差var_v = E{v(i)^2}。
(3.2)濾波之前
鏈路中斷會使延遲瞬間變化很大,影響模型的准確計算,所以濾波之前會把一些包合並成一組,如果滿足下面的條件將會合並,(1)一些包的發送時間在一個burst_time內(2)一個包的組間到達時間小於burst_time並且組間延遲d(i)小於0。
(3.3)到達時間濾波
我們將要估計m(i)然後用這個估計值檢測鏈路過載。gcc使用kalman濾波器來估計m(i)。
m(i+1) = m(i) + u(i)
上面的是m(i)的狀態轉移方程。u(i)是狀態雜訊,將它建模成均值為0,方差為q(i)的符合高斯統計的穩態過程,其中q(i) = E{u(i)^2},q(i)建議值為10^-3。
kalman濾波器遞歸地更新m(i)的估計值m_hat(i)
z(i) = d(i) - m_hat(i-1)
m_hat(i) = m_hat(i-1) + z(i) * k(i)
k(i) = (e(i-1) + q(i)) / var_v_hat(i) + (e(i-1) + q(i))
e(i) = (1 - k(i)) * (e(i-1) + q(i))
其中;
var_v_hat(i) = max(alpha * var_v_hat(i-1) + (1-alpha) * z(i)^2, 1)
alpha = (1-chi)^(30/(1000 * f_max))
f_max = max {1/(T(j) - T(j-1))} for j in i-K+1,...,i 代表最近K組包的最大發送頻率。
(3.4)過載探測
用到達時間濾波模塊估計出的組間延遲m(i)與閾值del_var_th(i)進行比較,如果m(i) > del_var_th(i)則意味著過載,這一個條件還不能給速率控制系統發送過載信號,檢測的過載時間最少維持overuse_time_th毫秒,並且不能出現m(i) < m(i-1)的情況。相反的情況,如果m(i) < -del_var_th(i)則意味著網路使用不足,最後一種情況是正常狀態。
del_var_th對演算法的整體模擬和性能有很大的影響,另外如果del_var_th取一個固定的值,將會被當前的TCP流佔用帶寬導致飢餓的產生。這個飢餓可以通過將del_var_th設置成足夠大的值而避免。因而有必要動態調整del_var_th去獲取更好的性能,例如與基於丟包的流的競爭中。
del_var_th(i) = del_var_th(i-1) + (t(i)-t(i-1)) * K(i) * (|m(i)|-del_var_th(i-1))
另外,如果|m(i)| - del_var_th(i) > 15時不更新del_var_th(i),並且del_var_th(i) 在[6, 600]區間內。
(3.5)速率控制器
當檢測到過載,延遲控制器估計的有效帶寬將會減少,通過這種方式獲得一個遞歸的自適應的有效帶寬估計。
速率控制子系統有3個狀態,Increase, Decrease 和Hold狀態。當沒有檢測出擁塞時是Increase狀態,檢測出擁塞時是Decrease狀態,Hold狀態表示等待隊列清空的過程。
增大當前有效帶寬將使用乘法或加法,取決於當前的狀態,如果當前估計的帶寬離擁塞較遠,則使用乘法,如果接近擁塞,則使用加法。如果當前的比特率R_hat(i)接近之前Decrease狀態的平均比特率則認為接近擁塞。
R_hat(i)是延遲控制器在T秒鍾的窗口中計算出來的接收比特率:
R_hat(i) = 1/T * sum(L(j)) for j from 1 to N(i)
其中N(i)是T秒鍾接收的包數,L(j)是第j個包的負載長度。窗口建議設置成0.5秒到1秒之間。
eta = 1.08^min(time_since_last_update_ms / 1000, 1.0)
A_hat(i) = eta * A_hat(i-1)
在加法增長階段,估計值在response_time最多增長半個包的長度。
response_time_ms = 100 + rtt_ms
alpha = 0.5 * min(time_since_last_update_ms / response_time_ms, 1.0)
A_hat(i) = A_hat(i-1) + max(1000, alpha * expected_packet_size_bits)
expected_packet_size_bits用於在低碼率時獲得一個緩慢的增長。它可以根據當前的碼率估算出來。
bits_per_frame = A_hat(i-1) / 30
packets_per_frame = ceil(bits_per_frame / (1200 * 8))
avg_packet_size_bits = bits_per_frame / packets_per_frame
之前的討論都是假設鏈路會出現擁塞,如果發送端產生不了足夠的比特流,估計的有效帶寬需要保持在一個給定的范圍內。
A_hat(i) < 1.5 * R_hat(i)
如果檢測到過載,則進入Decrease狀態,延遲控制器估計的有效帶寬會減少。
A_hat(i) = beta * R_hat(i)
beta一般選擇屬於[0.8, 0.95],一般建議是0.85。
(4)丟包控制器
定義丟包控制器估計有效帶寬為As_hat。
延遲控制器估計的有效帶寬只在隊列足夠大時有效,如果隊列較小,就需要使用丟包率檢測過載。
As_hat(i) = As_hat(i - 1) (2 < p < 10%)
As_hat(i) = As_hat(i-1)(1-0.5p) (p > 10%)
As_hat(i) = 1.05(As_hat(i-1)) (p < 2%)
真實的發送速率設置成丟包控制器估計值和延遲控制器估計值的較小的。
我們觀察到由於過載出現少量的丟包,如果不調整發送的比特率,丟包率會快速增長到達10%門限值然後調整發送比特率。然而,如果丟包率不增加,擁塞很可能不是自己造成的,因而不需要進行調整。
(5)互操作
如果發送端實現了這個演算法,但是接收端沒有實現RTCP消息和RTP頭擴展,建議發送端檢測RTCP的接收端報告,然後使用丟包率和rtt做為丟包控制器的輸入,關閉延遲控制器。
註:服務中的自適應流控也可以參考GCC,後面這個是BRPC的流控: BRPC自適應流控