s1101327 Homework #4
1122 Digital Image Processing Assignment #4 報告
學號:1101327 姓名:柯翔崴
主題:膚色偵測 Skin Color Detection
專案目標:
撰寫一個程式運用在皮膚顏色區域擷取,並利用在影像處理概論所學習到的顏色知識與技術來實現此任務。Input Data為附件中的6張照片,Output Data為皮膚顏色標記區域,同時搭配附件中的六張膚色標準答案(Ground Truth)做測試,並在終端畫面呈現所設計膚色偵測方法執行結果的IOU(Intersection Over Union)數值、Average IOU(六張IOU的平均)。此專案Average IOU為0.77。
開發平台:Microsoft Windows 10, Visual Studio Code, OpenCV 4.9.0, numpy 1.16.4, matplotlib
3.8.4, Python 3.9.18
程式架構與功能說明:
需先具備附件Image資料夾,內含有Phote、GroundTruth和res資料夾; 安裝好相對應的package;。
1. 在終端機輸入” python skin-detection.py”執行圖像的膚色區域標註
2. 讀取指定編號的原始圖像和對應的Ground Truth圖像
3. 對原始圖像進行高斯模糊處理(kernel: 3*3)
4. 將模糊後的圖像轉換為HSV和YCrCb的color space
5. 定義膚色的範圍,分別在HSV和YCrCb色彩空間中設置upper bound和lower bound,並根據膚色範圍將指定範圍內的像素值標記為白色,範圍外的值標記為黑色,其標記後的結果為皮膚遮罩。
6. Method0: 運用形態學開運算來進一步處理遮罩,以消除小的斑點和不連續的區域,接著定義最小輪廓面積,並篩選掉小於該面積的輪廓;將形態學處理後的遮罩與填充後的面積輪廓進行像素上的and運算並回傳。
7. Method1: 尋找皮膚遮罩中的所有輪廓,接著定義最小輪廓面積,並篩選掉小於該面積的輪廓,達到去噪和去除細小的區域的效果,並回傳輪廓填充
8. Method0、Method1個別計算兩個皮膚遮罩與Ground Truth之間的IOU(交集/聯集)。
9. 選擇IOU較大的遮罩作為最終的皮膚遮罩,接著顯示原始圖像、最終的皮膚遮罩和Ground Truth,並顯示IOU值。
成果展示與討論:
範例一:
範例二:
範例三:
範例四:
範例五:
範例六:
IOU:
留言
張貼留言