發表文章

隨機訊號的古典表示法_機率分布函數、機率密度函數、一階統計特性

圖片
  Deterministic Signal(確定性訊號) 有確定的函數映射關係,能準確預測未來,比方正弦訊號。 y=f(x) Stochastic(Random) Signal(隨機訊號) 無法準確預測未來,例如從0到1的常態(均勻)分佈。 雖然無法預測,但可以說下一個時刻的值如果是0.5,可能對應機率會是多少。 我們可以對某點時刻的值大小的機率分布。 機率分布函數 一維機率分布函數 對於一個隨機變量,用於表示它的機率分布函數。 如果取值是離散的(比方拋硬幣的正反面情境),則可用機率密度函數去表示。 底下就是硬幣正反面的一個拋擲硬幣機率分布函數(上)跟機率密度函數(下)各自的圖形 Digital Signal Processing (1975) Alan V. Oppenheim/ Ronald W. Schafer Chapter 8 — Discrete Random Signals ,p.381,Eq. (8.4),Fig. 8.3 二維機率分布函數 是探討兩個隨機變量之間的關係 對於第一個樣本、第一個時間點(或其他時間點)、第二個樣本、第二個時間點(或其他時間點),其二維聯合機率分布函數的二階偏微分對應著相應的二維聯合機率密度函數。 也可理解為對於隨機過程中兩個隨機變數 \(x_n\) 和 \(x_m\) 之間的相依關係, 可由聯合機率分布函數,用如下式子表示: 對於量化後的隨機變數,聯合機率質量函數(Joint PMF,Probability Mass Function)則可定義如下: 當隨機變量統計彼此相互獨立時,則可拆成兩個機率密度函數的乘積。 統計特徵( 一階統計特性共有均值、均方值、方差 期望值(均值) 由於隨機訊號是能量無窮的功率訊號,因此隨機過程的平均值(Average)或均值(Mean)可用以下來表示,其中,\(E\) 表示數學期望值 其中: \(x_n\) :隨機過程在第 \(n\) 個時間點的隨機變數。 \(x\) :隨機變數可能出現的數值。 \(p_{x_n}(x,n)\) :在第 \(n\) 個時間點的機率密度函數。 \(E[x_n]\) :隨機變數 \(x_n\) 的期望值。 當我們要改去計算連續型隨機變數經某g函數轉換後的平均值,則可將 \(x\) 隨意換成 \(g(x)\) 代表對隨機變數進行某種數學運算。...

Oracle 21c卸除方式

圖片
  Step1.執行setup.exe視窗做原生產品視窗精靈的卸除 到指定安裝目錄 C:\app\你的User名\product\21c\ C:\app\你的User名\product\21c\dbhomeXE\oui\bin 去用系統管理員身分運行以下目錄的執行檔 C:\app\chous\product\21c\dbhomeXE\oui\bin\setup.exe 點選【解除安裝產品的按鈕】之後收合展開勾選完再去按【移除】 按【是】 就會開始進行Oracle 21c卸除 這樣子只是第一輪清理更上一層目錄要再來勾選作移除 勾選【顯示空的本位目錄】再去勾起上面OraDB21Home1隨後按【移除】 跳出確認視窗就按【是】 Step2.清除regedit的路徑 再到登錄編輯程式視窗 到以下regedit的路徑 電腦\HKEY_LOCAL_MACHINE\SOFTWARE\Oracle 把Oracle給刪除 點【是】 再到以下regedit的路徑 電腦\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ 依序把以下清單刪除 電腦\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleJobSchedulerXE 電腦\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraDB21Home1MTSRecoveryService 電腦\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraDB21Home1TNSListener 電腦\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleServiceXE 電腦\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleVssWriterXE Step3.到本機使用者和群組將ORA相關群組給刪除乾淨 接續開啟 開始搜尋欄輸入 lusrmgr  針對本機使用者和群組中的Groups去把有ORA開頭的都給右鍵刪除 Step4.先關閉...

Chrominance-Based rPPG只取前額部分ROI的程式複現

圖片
  Photoplethysmography (PPG) 光體積變化描記法是一種用於監測多種生命徵象的光學技術,例如脈搏率、呼吸率及血氧飽和度,由於其非侵入性的特點而被廣受採用。 於早期研究中可得知,這些變化也可透過遠距方式測量,進而形成遠程光體積變化描記法(rPPG)的方法。於學術研究中,僅需低成本的RGB攝影機就能夠做實驗。而rPPG技術受限受測者不能有劇烈運動。當受測者只要出現顯著動作,現有演算法便會失效。 在2013年時候Gerard de Haan釋出一篇論文是探討「基於色度的 rPPG 強健脈搏率」, 提出新的 rPPG 技術比過去盲源分離方法(BSS-based methods)來得更穩健,其在訊雜比(SNR)與抗動作干擾能力方面,均優於所有先前的方法。他們不是單純從 RGB 中找週期,而是從「皮膚反射光的物理模型」推導出色度方法。論文的實驗包含 117 位受試者,並另外用腳踏車與踏步器測試動作干擾。 CHROM 到底想解決什麼問題? 假設你對一張臉拍攝影片,每一幀都取臉部皮膚 ROI 的平均顏色,就會得到三條隨時間變動的訊號: \[ R(t),\quad G(t),\quad B(t) \] 心臟跳動時,皮膚中的血液量會微微改變,因此吸收、反射的光也會跟著改變。攝影機雖然看不到明顯的「臉變色」,但 RGB 數值其實會有非常微小的週期變化。 論文一開始將某個顏色通道 \(C\) 寫成: \[ C_i=I_i^C(\rho_{dc}^{C}+\rho_i^C) \] 其中 \(C\) 可以是 R、G、B。 可以理解成 :  攝影機看到的顏色=照到臉上的光x皮膚反射回來的顏色。 而皮膚反射又可以想成: 皮膚原本的顏色+心跳造成的微小變化 也就是說,我們真正要找到的是那個 非常小的心跳變化 。 但攝影機同時還會看到燈光亮暗、臉部移動、反光等大得多的變化。 第一步:先把 R、G、B 各自正規化 如果今天整張臉突然變亮,R、G、B 都可能一起變大。 因此作者先把每個顏色通道除以該時間區間的平均值: \[ R_n=\frac{R}{\mu(R)} \] \[ G_n=\frac{G}{\mu(G)} \] \[ B_n=\frac{B}{\mu(B)} \] 這樣就可以降低不同膚色、不同曝光亮度造成的絕對數值差異。 例如某一段影片: \[ \...

(幾何)相機標定_投影轉換_針孔成像_相機內外部參數_齊次座標(homogeneous)

圖片
  (幾何) 相機標定(校正)/( Geometric ) Camera calibration 是用來求初將三維世界投影成二維影像所需要的各種參數,這些參數也就是攝影機參數。 也可理解為從世界座標系換到二維影像座標系的過程,也就是求出最終投影矩陣的過程,用於估計成像過程的數學參數。 摘自 Medium-Camera Calibration 相機校正 小(針)孔成像(Pinhole) 在進入到相機標定前,需要先掌握針孔成像的基本原理。 以下是一張圖,從右側去看是一個世界坐標系中的一棟房子,左側是一個成像的螢幕。 如何在成像螢幕上去呈現出清晰完整的房子影像呢? 摘自youtube影片截圖- Pinhole and Perspective Projection | Image Formation 最簡單方法是透過針孔,開一個小孔的薄板。 摘自 https://kknews.cc/zh-mo/other/mlkmga2.html 以前國中時候學過的自然科學實驗,會拿蠟燭發光的光線通過針孔後,投影在後方紙屏上,蠟燭燭光在照射到後面紙屏之前,在中間額外再放一個隔板一個小孔,可觀察到上下顛倒左右相反的實像。 如果目標成像紙屏往後移動遠離中間隔板,則會發現針孔成像會放大,影像相對變比較暗。 如果目標成像紙屏往前移動靠近中間隔板,則會發現針孔成像會縮小,影像相對變比較亮。 此外還滿足以下比例關係 \[ \frac{\text{物長}}{\text{像長}} = \frac{\text{物距}}{\text{像距}} \] 回過頭去看Perspective Imaging with Pinhole 的圖繼續去探討,中間虛線是光軸也就是垂直於影像平面的軸,在空間座標戲中建構三維xyz軸座標。而針孔到影像平面的距離就是有效焦距 f。 真實的三維空間以房子頂部的一個點 \(P_o\),它在「相機座標系」中的三維座標寫成: \[ \mathbf r_o=(x_o,y_o,z_o) \] 其中 \(x_o\) 是左右位置、\(y_o\) 是上下位置、\(z_o\) 是物體離相機沿光軸方向的深度。 光線從物體點 \(P_o\) 出發,經過 Pinhole,最後與左邊的成像平面相交,得到影像點 \(P_i\)。 因此: \[ P_o \rightarrow \text{Pinhole} \...

Head Pose estimation_PnP(Perspective-n-Point)多點透視問題_ 2D and 3D feature-based alignment

圖片
頭部姿態的三個自由度 A survey of head pose estimation methods 在2020年一篇IEEE論文是有關於「頭部姿態估計方法綜述」的回顧中,可得知頭部姿態通常以三個自由度來表示。分別是俯仰角(pitch)、偏航角(yaw)與翻滾角(roll),頭部姿態也蘊藏豐富的資訊,比方點頭可能代表答應、理解等,搖頭則表示否定。 延伸應用時常用於視線估計、臉部表情分析,於駕駛監控系統中也十分重要,能去評估駕駛精神狀況。也有應用是分析學生上課專心程度。 傳統頭部姿態估測方法可先偵測人臉特徵點,再藉由頭部模型建立二維影像特徵點與三維模型點之間的對應關係,以估測三維頭部姿態。  一些先備知識可以再去這篇溫故 (幾何)相機標定_投影轉換_針孔成像_相機內外部參數_齊次座標 特徵式對齊 feature-based alignment (特徵式對齊)是估計兩組或多組已匹配的 2D 或 3D points之間運動關係的問題。 在feature-based alignment中,有一種相當常見的特定情況,就是根據一組 2D 點的投影位置,估計物體的 3D 姿態。關於姿態估計問題也被稱為是所謂的外部參數校正。與其相對的是相機內部的參數校正,比方焦距參數。 從三個對應點中恢復姿態,需要的信息是最少的,稱為「透視三點問題」(perspective-3-point-problem, P3P)。當擴展到更多點的問題,合起來稱為「PnP」。 直接線性變換 (direct linear transform, DLT) 摘自 Computer Vision Algorithms and Applications, Richard Szeliski, 2010 - Chapter 6 Feature-based alignment-6.2 Pose estimation 已知p(u,v)、p(X,Y,Z),求出K、R、t。 我們需要知道一組2D-3D對應,並知道對應點的2D與3D座標。 將上面式子中的K[R|t]展開,變成三列四行的矩陣,K內參矩陣由於固定可省略不影響推導。 兩側相乘可得到如下三個方程 其中最底下的z 會等於右側的最底下的式子 我們可把小z帶入上面式子的zu 、 zv去 化簡變底下式子 我們的未知就是L 11到 L 34這些參...