ILSVRC12 數據集包含 1000 個種類, 共約140GB. 剛開始實驗時, 選10種就好, 之後再依照硬體能力增加. 進行 AI 辨識前, 先將其轉成 tensor-flow 的資料格式, 實作步驟如下:
(1) 下載資料集
(2) 將 Trainning Set 全部解開, 放在 All 目錄
(3) 將要使用的類別複製到 Train 目錄下
(4) 將 Train 目錄的圖檔轉成 TFRecord 格式
(5) 將 TFRecord 格式恢復為圖型, 檢查是否有誤
(6) 辨識前將圖型縮放至適當大小
2018年11月19日 星期一
2018年9月1日 星期六
[OpenCV] 連接 ONVIF 之 IPCam
ONVIF(Open Network Video Interface Forum,開放式網路視訊介面論壇)是目前監控產業的重要國際標準,採用統一開放的標準作為網路攝影機、影像伺服器、門禁設備及中央管理系統之溝通協定。 OpenCV 的 VideoCapture 可支援 rtsp 協定的讀取, url 格式為:
rtsp://username:password@ip:port/profile
程式 main.cpp 將讀取的影像放入 Mat, 可另做影像處理, 程式碼如下:
2018年8月31日 星期五
[CUDA+OpenCV] GpuMat 結合 kernel 運算
OpenCV 的 GpuMat 類別, 可以在 device 的 global memory 建立 Mat 物件, 可以被 kernel 函數直接存取, 以下以 sobel 運算子為例, 將 srcMat (位於host memory) 載入影像後, 轉換至 srcGMat (位於device memory), 經處理後放至 destGMat (位於device memory), 然後下載回 destMat (位於host memory)再顯示出來.
程式中使用 OpenCV 定義於 cuda_types.hpp 的 PtrStep 的樣板結構, 代入定義於 WIndows.h 的 byte, 這樣比較方便. 如果要用 cuda 編譯器 nvcc 內建的 uchar1 , 查看 vector_types.h, 它是一個結構 (向量):
程式中使用 OpenCV 定義於 cuda_types.hpp 的 PtrStep 的樣板結構, 代入定義於 WIndows.h 的 byte, 這樣比較方便. 如果要用 cuda 編譯器 nvcc 內建的 uchar1 , 查看 vector_types.h, 它是一個結構 (向量):
2018年8月30日 星期四
[CUDA] 與 OpenCV 共舞
取得 CUDA 版的 OpenCV 後, 使用 OpenCV 前, 先建立環境變數 OPENCV_DIR, 使其指向 opencv 目錄 ( C:\opencv\build\ ):
[CUDA] OpenCV CUDA 程式庫
2018年8月29日 星期三
[CUDA] 更新Visual Studio後無法編譯的問題
由於 CUDA 對 Visual Stidio 的 Integration 會檢查版本, 如果安裝 CUDA 之後更新升級 Visual Stdio, 可能導致因版本錯誤而出現以下訊息:
#error -- unsupported Microsoft Visual Studio version! Only the versions 2012, 2013, 2015 and 2017 are supported!
#error -- unsupported Microsoft Visual Studio version! Only the versions 2012, 2013, 2015 and 2017 are supported!
訂閱:
文章 (Atom)