此解決方案可應用在工廠瑕疵檢測、醫療影像分析、生物影像分析、工安影像分析、口罩影像分析等。
[操作步驟及說明]
1_annotation_pascal_voc_xml.ipynb
開啟標記軟體。準備 png 或 jpg 影像進行標記,影像建議長寬比例一樣。
2_prepare_config_file.ipynb
設定參數。classes= 4 : 偵測類別數。
開啟 data/csresnext50-panet-spp-original-optimal.cfg,搜尋 "classes =",在 anchors = 下面,共有 3 個地方需要設定類別數。
接著搜尋 #filters =(classes + 5)x3 #255,修改此字串下方的 filters=,例如 : 4 類別,則 filters=27,共有 3 個地方需要設定。
設定類別名稱,請在 data/label.names 設定類別名稱,類別名稱需與標註時所用的類別名稱一模一樣。
3_convert_yolo_format.ipynb
將標記好的 voc xml 轉換成 yolo 格式。
4_prepare_train_txt.ipynb
準備訓練影像清單。
- image_path = "data/train/images" : 訓練影像路徑。
- txt = "data/train.txt" : 輸出的訓練影像清單。
5_prepare_val_txt.ipynb
準備驗證影像清單。
- image_path = "data/val/images" : 驗證影像路徑。
- txt = "data/val.txt" : 輸出的驗證影像清單。
99_calculate_anchors.ipynb
訓練之前請記得執行此 ipynb。-width 608 -height 608 為要訓練影像的大小 (可修改),如果實際影像非尺寸會進行縮放,建議影像的長寬要等比例。
執行後,請複製視窗上面的
anchors = 62, 99, 79,223, 160,192, 73,469, 424,111, 331,225, 254,369, 151,640, 315,603
將此組數字貼在 data/csresnext50-panet-spp-original-optimal.cfg 裡面的所有 anchors,共有三個地方需修改。接著,修改cfg 裡面的 width=608、height=608,需要與此 ipynb 設定的值一樣。
6_train_CPU.ipynb
6_train_GPU.ipynb
訓練,如果裝置支援 GPU 加速運算請選擇 6_train_GPU,反之請選擇 6_train_CPU。
model/csresnext50-panet-spp-original-optimal_best.weights :以此模型接續訓練。如果不接續請刪除此參數。
os.system("start src/darknet/build/darknet/x64/darknet_no_gpu.exe detector train data/voc.data data/csresnext50-panet-spp-original-optimal.cfg model/csresnext50-panet-spp-original-optimal_best.weights -map -clear")
7_inference_CPU.ipynb
7_inference_GPU.ipynb
推論單張影像。
- model/csresnext50-panet-spp-original-optimal_best.weights : 推論的模型。
- data/test/images/inclusion-2.jpg : 推論的影像。
- -thresh 0.75 : 推論的閾值。
8_inference_webcam_CPU.ipynb
8_inference_webcam_GPU.ipynb
使用 webcam 推論。-c 0 為 webcam 裝置 id。
9_inference_folder_1_CPU.ipynb
9_inference_folder_1_GPU.ipynb
推論資料夾內的所有影像。
- image_path = "data/test/images" : 推論資料夾 (jpg、png)。
- model_path = "model/csresnext50-panet-spp-original-optimal_best.weights" : 推論的模型。
10_inference_api_CPU.ipynb
10_inference_api_GPU.ipynb
11_inference_api_browser.ipynb
推論的 API,運行 10_inference_api_CPU.ipynb 開啟 server,接著運行 11_inference_api_browser.ipynb,跳出瀏覽器,可以選擇圖片進行推論。
- --port 8801 : 開啟的 port。
- --model_file model/csresnext50-panet-spp-original-optimal_best.weights : 推論的模型。
- --threshold 0.7 : 推論閾值,數值越高,要求的相似程度越嚴格。
99_auto_labeling_GPU.ipynb
使用訓練好的模型進行推論,自動標註 voc xml 格式。
- image_path = "data/auto_labeling/image" : 要標記的影像資料夾。
- model_path = "model/csresnext50-panet-spp-original-optimal_best.weights": 要推論的模型。
- output_folder = 'data/auto_labeling/annotation': 輸出的標註路徑。
這個 SDK 內建於 AppForAI 人工智慧開發工具。
單獨購買價格:5,000元,永久授權,單一 SDK 授權,單機授權,一次下載,無更新服務,一年電子郵件範例諮詢服務。如果是軟體客製化問題,請購買我們的客製化顧問服務點數。