發表文章

目前顯示的是 2026的文章

Tensorflow1.x跟2.x版本透過anaconda去跑各自不同執行環境

圖片
  TensorFlow 是為了能輕鬆實現深度學習與機器學習演算法而開發的函式庫。因此,在任何可以使用機器學習、深度學習的領域,都可以使用 TensorFlow。深度學習演算法的優點在於其通用性,能廣泛應用於多種不同領域。 雖然僅使用 TensorFlow 函式庫也能編寫深度學習程式碼,但為了能更輕鬆地實現深度學習演算法,存在許多將 TensorFlow 函式庫進階抽象化 Abstraction 的多樣化高階 High-Level 函式庫。利用這些函式庫,可以比直接使用 TensorFlow 以更簡潔的程式碼實現深度學習演算法。 Keras 這是由 François Chollet 建立的深度學習抽象化函式庫。除了 TensorFlow 之外,還支援 CNTK、Theano、MXNet 等其他深度學習函式庫。 Keras 是深度學習抽象化函式庫中擁有最多使用者群體的。憑藉這種人氣,Google 將 Keras 的創始人 François Chollet 招募進公司,並將 Keras 合併到 TensorFlow 的主程式碼庫中。因此,可以混合使用 TensorFlow 函式庫與 Keras 函式庫來編寫程式碼。 Tensorflow1.x conda create -n tf1 python=3.7 -y conda activate tf1 pip install --upgrade pip pip install tensorflow==1.15.5 pip install "protobuf<3.20" python -m pip install notebook ipykernel python -m ipykernel install --user --name tf1 --display-name "Python (tf1)" jupyter notebook --notebook-dir="E:\PyProjects\TF1_Project" pip install tensorflow-gpu==1.15 如果想要安裝 GPU 版本,早期教學影片、文件會跟你說必須先安裝 CUDA 和 cuDNN*,然後可以使用以下指令安裝 TensorFlow GPU 版本: pip install ...

從影像辨識進展到影像理解_PART2.使用卷積運算的特徵提取

圖片
  從使用微分的邊緣特徵量(edge-based feature)提取開始。 邊緣特徵量是表示影像中亮度變化較大部分的特徵量,常用於物體的輪廓提取。 座標(x, y)的亮度變化量可以透過對(x, y)的像素值進行微分來表示。 由於影像座標系統是2維的會有兩個x,y變數,這邊底下會改用偏微分的符號 $\partial$ 就代表 partial,來取代單變數微分的萊布尼茲符號 $\frac{d}{dx}$。 若對 x 軸方向進行微分,可得到水平方向的邊緣特徵量 若對 y 軸方向進行微分,則可得到垂直方向的邊緣特徵量。 座標 $(x, y)$ 的垂直方向邊緣特徵量 $E_x(x, y)$ 與水平方向邊緣特徵量 $E_y(x, y)$ 分別取微分的絕對值。 其公式如 [1.1] 與 [1.2] 所示: $$E_x(x, y) = \left| \frac{\partial}{\partial x} I(x, y) \right| \simeq | I(x+1, y) - I(x, y) | \quad [1.1]$$ $$E_y(x, y) = \left| \frac{\partial}{\partial y} I(x, y) \right| \simeq | I(x, y+1) - I(x, y) | \quad [1.2]$$ 其中 $I(\cdot, \cdot)$ 代表指定座標處的像素值。 由於像素值在相鄰像素之間是離散變化的,因此無法精確計算微分,因為連續函數才能做微分,因此只能用差分來做取代,我們使用離散近似。透過這個方法我們可以為每個像素產生一階導數。邊緣位於一階導數取極值的位置。 連續世界的導數公式定義如下 $$ \frac{\partial I}{\partial x}(x, y) = \lim_{h \to 0} \frac{I(x+h, y) - I(x, y)}{h} $$ ​ https://medium.com/@sarcas0705/computer-vision-derivative-over-image-e1020354ddb5 但像素一格一個走,沒有  h → 0。 所以用最常見的 前向差分(在函數的某點,使用該點及下一點的函數值來計算變化率)。 以x為變數對整個I影像函數來做偏維,視y為常數。 $$ \frac{\p...

從影像辨識進展到影像理解_PART1.概況筆記

圖片
  https://www.ibm.com/think/topics/computer-vision 近年來,影像辨識技術正以各種形式支援著人類的生活。 例如:智慧型手機透過臉部辨識進行解鎖;在視訊會議中,為了模糊背景,會使用影像辨識技術將人物與背景分離。 「影像辨識」 是指「利用電腦對影像中的 物體或人物動作、文字等進行分類與識別 」。 近年來影像辨識已進化到能對輸入影像進行物體或行為分類後,進而 生成描述該影像的文字 。這種高階技術有時會與影像辨識區分開來,稱為 「影像理解」 (Image Understanding) 。 雖然影像辨識技術多樣,但並不代表每種技術都完全不同。隨著近年深度學習 (Deep Learning) 的發展,機器學習模型的通用化程度提高,不同的問題往往能用幾乎相同的技術解決。 人類透過感覺器官感知的資訊會轉換為電氣訊號進行處理,並應用於識別。 然而,視覺資訊並非一開始就是以電氣訊號的形式從現實世界傳來,而是光信號。因此,人類要處理視覺資訊,首先需要一個能將光信號轉換為電氣訊號的「感測器」。 http://ftp.healthhonk.com/doctor/lee04.htm 在人體中負責感測器角色的是眼睛。從現實世界進入眼睛的光信號會透過「水晶體」進行對焦,並投影到「視網膜」上。視網膜將投影的光信號轉換為電氣訊號,並輸出至視神經。 https://benevo.pixnet.net/blog/posts/5067409784 電腦內部的訊息交換也是透過電氣訊號進行。因此,電腦要活用視覺資訊,同樣需要感測器,而扮演這個角色的就是相機。 https://www.geeksforgeeks.org/computer-vision/computer-vision/ 在相機中,來自現實的光信號會透過「鏡頭」進行對焦,投影到「感光元件」上。感光元件將投影的光信號轉換為電氣訊號,寫入相機記憶體中或傳輸至外部裝置。 而現今智慧型手機標榜的「1200 萬畫素」這類數值,代表的就是建構成感光元件的受光元件數量。投影到感光元件的光信號會由各個受光元件轉換為電氣訊號,因此元件數量越多,越能將影像轉換為細膩的電氣訊號。 影像辨識的處理流程( 在深度學習出現之前 ) 輸入影像 => 特徵提取(Feature Extraction) =>...