1. 深度學習模型-MLP、CNN與 RNN
      發表時間: 2022-12-24 上午 5:42上午 5:42
      常見的深度學習模型 三種深度學習模型,包含: • MIP:多層感知器( Multilayer Perceptron) • CNN :卷積神經網路(Convolutional Neural Network ) • RNN:循環神經網路(Recurrent Neural Netw ork) MLP、CNN與RNN的差異 多層感知器(簡稱 MLP)就是一個全連接網路。在某些文獻裡,它被稱為深度前饋(fe
    2. 使用GrabCut抓取前景
      發表時間: 2022-12-23 上午 10:41上午 10:41
      理論 GrabCut 算法由英國劍橋微軟研究院的 Carsten Rother、Vladimir Kolmogorov 和 Andrew Blake 設計。在他們的論文“GrabCut”:使用迭代圖切割的交互式前景提取中。需要一種算法來以最少的用戶交互進行前景提取,結果就是 GrabCut。 從用戶的角度來看它是如何工作的?最初用戶在前景區域周圍繪製一個矩形(前景區域應該完全在矩形內)。然後算法迭
    3. 訓練模型-model.fit()的參數設定
      發表時間: 2022-12-22 下午 1:45下午 1:45
      model.fit的參數 請見官網介紹: https://www.tensorflow.org/api_docs/python/tf/keras/Model#fit [crayon-63e3a72ae871e116448357/] 通常label單類別最後使用softmax當作activation,多類別用sigmoid。在使用model.fit之前可用下列指令來查看模型的資訊: [crayon-
    4. 卷積神經網路CNN介紹
      發表時間: 2022-12-22 上午 11:49上午 11:49
      卷積神經網路CNN 卷積神經網路(Convolutional Neural Network,簡稱 CNN)是一種專門用於圖像處理的神經網路。它包含許多卷積層和池化層,可以捕捉圖像中的空間關係和細節。 卷積層: Conv2D (tf.keras.layers.Conv2D),使用一個卷積核來提取圖片特徵 池化層: MaxPooling2D (tf.keras.layers.MaxPooling2D)
    5. 卷積層(Conv2D)參數設定
      發表時間: 2022-12-22 上午 11:43上午 11:43
      卷積層(Conv2D)介紹 以下為官方介紹連結: https://keras.io/api/layers/convolution_layers/convolution2d/ 參數介紹 參數 常用參數 filters:指定層中濾波器(也稱為卷積核)的數量。通常,增加濾波器的數量可以提高模型的表現,但也會增加計算複雜度。 kernel_size:指定濾波器的大小。濾波器的大小越大,模型可以捕捉到的特徵
    6. 如何提高機器學習的準確率
      發表時間: 2022-12-22 上午 11:28上午 11:28
      提高準確率的方向 可以考慮用以下幾個方式來提高準確率: 增加訓練數據:模型訓練的資料越多,模型就有更多的資訊來學習,因此準確率往往會提高。 調整超參數:你可以調整超參數(例如學習率、損失函數、正則化項等)來提高模型的準確率。 改變模型結構:你可以增加或刪減模型中的層數、增加每層的神經元數量,或者使用不同的激活函數來改變模型的結構。 訓練更長時間:模型訓練的時間越長,模型就有更多的時間來學習,因此準
    7. 準備數據集資料的方針
      發表時間: 2022-12-22 上午 11:15上午 11:15
      如何準備數據集 使用質量高的資料,如:​ 清晰的圖像: 圖像清晰且無模糊或雜訊。​ 正確的標記: 圖像被正確地標記為相應的類別。​ 代表性的數據: 數據集中的數據能夠代表所有可能的輸入圖像,例如不同的角度、光線、尺寸等。​ 避免以下狀況:​ 模糊或不清晰的圖像: 圖像中有大量的模糊或雜訊。​ 錯誤的標記: 圖像被錯誤地標記為其他類別。​ 不代表性的數據: 數據集中的數據只代表一小部分可能的輸入圖像
    8. 如何判讀訓練結果
      發表時間: 2022-12-22 上午 10:39上午 10:39
      訓練過程 下面為一個epochs為10的訓練過程的log 機器學習結果判讀 如上圖,當我們下了model.fit開始跑機器學習後,會可以看到跑出下面這些資訊,這時候要如何解讀這些資訊呢? loss: 0.0337, accuracy: 0.9910, val_loss: 0.1509, val_accuracy: 0.9762​ loss:指的是模型在訓練數據集上的損失。損失越低,代表模型的表現越
    9. Keras介紹
      發表時間: 2022-12-21 下午 2:05下午 2:05
      甚麼是Keras Keras是一個用Python編寫的開源神經網路庫,旨在快速實現深度神經網路,專注於使用者友好、模組化和可延伸性,除標準神經網路外,Keras還支援卷積神經網路和迴圈神經網路。包含許多常用神經網路構建塊的實現,例如層、目標、啟用功能、最佳化器和一系列工具,可以更輕鬆地處理圖像和文字資料。 Keras由純Python編寫而成並基於Tensorflow、Theano以及CNTK後端。
    10. 用opencv作圖片旋轉
      發表時間: 2022-12-21 下午 1:01下午 1:01
      可以使用 OpenCV 的 cv2.getRotationMatrix2D() 函數來生成旋轉矩陣,然後使用 cv2.warpAffine() 函數將圖像旋轉。 [crayon-63e3a72ae8e51428400821/] 請注意,旋轉角度是以逆時針方向為正的。例如,如果要將圖像逆時針旋轉 90 度,則角度值應設為 90。 此外,如果你想要在旋轉圖像時保留圖像的邊界,你可以使用 cv2.war
    11. 調整圖片的亮度
      發表時間: 2022-12-21 下午 12:52下午 12:52
      可以使用 OpenCV 的 cv2.convertScaleAbs() 函數來增亮圖像。這個函數會將圖像的每個像素值乘上一個指定的比例因子並加上一個常數,以此來調整圖像的亮度。 請注意,這個函數可能會導致圖像中的一些像素值超出 0 到 255 的範圍,因此你可能需要在函數末尾使用new_image = np.where(new_image > 255, 255, new_image)來將這些像素值
    12. 用opencv做圖像融合
      發表時間: 2022-12-21 下午 12:41下午 12:41
      OpenCV 的 cv2.addWeighted() 函數可用來實現圖像增量。 這個函數有三個輸入參數: src1: 第一個輸入圖像,應該是第一幅圖像的數組。 alpha: 一個浮點數,用於決定第一幅圖像在輸出圖像中的權重。 src2: 第二個輸入圖像,應該是第二幅圖像的數組。 此函數返回值為加權的結果,其中第一幅圖像的權重為 alpha,第二幅圖像的權重為 1-alpha。 例如,假設你想要將第
    13. 為每個python專案建立獨立的虛擬環境
      發表時間: 2022-12-21 上午 10:54上午 10:54
      甚麼是虛擬環境 虛擬環境 (virtual environment) 是一個隔離的 Python 環境,可以讓您在同一台電腦上安裝不同版本的 Python 套件,或是不同專案之間使用不同的套件版本。 使用虛擬環境可以幫助您避免不同專案之間因為套件版本不同而造成的衝突。例如,如果您有兩個專案,一個專案需要使用舊版本的套件,而另一個專案需要使用新版本的套件,您可以在兩個專案中分別建立兩個虛擬環境,並在
    14. 圖像處理之圖像金字塔
      發表時間: 2022-12-19 下午 7:46下午 7:46
      理論 通常,我們使用尺寸固定的圖像。但在某些情況下,我們需要使用不同分辨率的(相同)圖像。例如,當我們在圖像中搜索物體時,比如人臉,我們並不確定物體出現在圖像中的大小。在這種情況下,我們需要創建一組具有不同分辨率的圖像,並在所有圖像中搜索對象。這些不同分辨率的圖像被稱為圖像金字塔(如果將它們放在一起,最高分辨率的圖像在底部,最低分辨率的圖像在頂部,它看起來像一個金字塔)。 圖像金字塔有兩種:高斯金
    15. 使用模板匹配查找圖像中的對象
      發表時間: 2022-12-19 下午 4:12下午 4:12
      模板匹配 參考此篇教學: https://docs.opencv.org/4.x/d4/dc6/tutorial_py_template_matching.html 使用範例如下: [crayon-63e3a72ae98ea406838636/] 使用cv.matchTemplate(), cv.minMaxLoc()與方式,當模板在圖片中被縮放或旋轉後,匹配成效不佳。 但實際應用中,物件在3D範
    16. 使用opencv尋找邊緣
      發表時間: 2022-12-17 下午 12:49下午 12:49
      使用Canny算子 Canny 邊緣檢測是一種從不同的視覺對像中提取有用的結構信息並顯著減少要處理的數據量的技術。它已廣泛應用於各種計算機視覺系統。Canny發現,邊緣檢測在不同視覺系統上的應用需求是比較相似的。因此,可以在各種情況下實施滿足這些要求的邊緣檢測解決方案。邊緣檢測的一般標準包括: 錯誤率低的邊緣檢測,這意味著檢測應該盡可能準確地捕獲圖像中顯示的邊緣 算子檢測到的邊緣點應該準確地定位在
    17. 圖片降維處理(從彩色變灰階再變黑白)
      發表時間: 2022-12-16 下午 6:54下午 6:54
      從彩色變灰階 使用 cv.cvtColor()函數可作色彩的空間轉換,例如要偵測顏色時,要轉成HSV [crayon-63e3a72ae9e4e084362564/] 而降為灰階則為 [crayon-63e3a72ae9e53983205206/] 從灰階到黑白 要把圖片從灰階變成黑白很簡單。對於每個像素,應用相同的閾值。如果像素值小於閾值,則設置為0,否則設置為最大值。函數cv.threshol
    18. 對圖像做幾何變換
      發表時間: 2022-12-16 下午 5:50下午 5:50
      目標 學習對圖像應用不同的幾何變換,如平移、旋轉、仿射變換等。 你會看到這些功能:cv.getPerspectiveTransform 縮放 只是調整圖像的大小。interpolation參數有下面幾種 使用範例 [crayon-63e3a72aea0f9764117058/] 平移 平移影像,下面程式會將圖,x 軸平移 100,y 軸平移 50 [crayon-63e3a72aea0fe2994
    19. opencv圖像運算
      發表時間: 2022-12-16 下午 5:29下午 5:29
      理論 形態變換是一些基於圖像形狀的簡單操作。它通常在二進製圖像上執行。它需要兩個輸入,一個是我們的原始圖像,第二個稱為結構元素或內核,它決定了操作的性質。兩個基本的形態學算子是侵蝕和膨脹。然後它的變體形式如開、閉、梯度等也開始發揮作用。我們將在下圖的幫助下一一看到它們: 侵蝕cv.erode 侵蝕的基本思想就像土壤侵蝕一樣,它侵蝕掉前景物體的邊界(總是盡量讓前景保持白色)。那它有什麼作用呢?內核在
    20. 使用opencv做圖片後製處理(如ps)
      發表時間: 2022-12-16 下午 5:13下午 5:13
      這個部落格有一個系列文: 12th 鐵人賽 – 【錢不夠買ps的我,只好用OpenCV來修圖了!】 分享了非常多好用的圖片後製方法 這邊分享幾個我覺得不錯的 黑強化 強化有顏色區域的深度 [crayon-63e3a72aea617222720535/] 白平衡 圖像光照校正處理 [crayon-63e3a72aea61c942239608/] 雙邊濾波 雙邊濾波(Bilateral filter)
    21. 使用opencv來找出紅色區塊
      發表時間: 2022-12-16 下午 5:05下午 5:05
      使用HSV色碼轉換器 一個好用的線上工具 色碼轉換器: https://www.peko-step.com/zhtw/tool/hsvrgb.html 若要將轉換過的顏色套用到python的色碼,記得將S,V的範圍改為0-255 然後從網站上看到的H的值(如這邊為26)要除以2,也就是13 以上圖來說,上面顯示的色碼為HSV:(26,90,223),然後填進python裡面要使用HSV:(13,9
    22. python的socket-io-client 4.5.1不會自動重連問題
      發表時間: 2022-12-16 下午 4:37下午 4:37
      問題版本 python-socketio 4.5.1 相關討論串: https://github.com/miguelgrinberg/python-socketio/issues/485 can not reconnect after 503 error 解決方法 自己寫重連的程式碼 [crayon-63e3a72aeab53101775993/]
    23. LBP 區域二值模式
      發表時間: 2022-10-04 下午 11:30下午 11:30
      其實會發這一篇文,主要是看到這個博客的文章真的感動到快哭了... 這幾天因為想增加OCR辨識正確率開始與LBP打交道 https://zh.wikipedia.org/wiki/%E5%B1%80%E9%83%A8%E4%BA%8C%E5%80%BC%E6%A8%A1%E5%BC%8F 我找到了一個看起來很強大很棒的函式庫 https://scikit-image.org/docs/stable/