Python | OpenCV 資料蒐集
📚 前言
在上一篇 模型訓練與微調 中,我們了解了整個訓練流程的概觀。
訓練的第一步,也是最重要的基礎,就是 資料蒐集 (Data Collection)。
「垃圾進,垃圾出 (Garbage in, garbage out)」是機器學習不變的定律。
資料的數量與品質,直接決定了模型的上限。
❓ 需要多少資料?
資料量並沒有固定標準,但以下是常見的經驗法則:
| 任務類型 | 建議最低資料量(每類別) |
|---|---|
| 圖片分類 | 100 ~ 500 張 |
| 物件偵測 | 200 ~ 1000 張(含標註) |
| 語義分割 | 500 張以上 |
| 遷移學習微調 | 50 ~ 200 張即可有效果 |
💡 資料多樣性比數量更重要:涵蓋不同光線、角度、背景、遮擋情況。
🗂️ 資料蒐集方法
圖:資料蒐集四大常用方法 ─ 公開資料集、批次下載、自行拍攝、從影片截取影格
方法一:公開資料集
最快速且品質穩定的方式,適合快速驗證想法或作為預訓練基礎。
| 資料集 | 說明 | 適用任務 |
|---|---|---|
| ImageNet | 1000+ 類別,百萬級圖片 | 圖片分類 |
| COCO | 80 類別,含偵測與分割標註 | 物件偵測、分割 |
| Open Images | Google 提供,600+ 類別 | 偵測、分類 |
| PASCAL VOC | 20 類別,經典偵測資料集 | 物件偵測 |
| Kaggle Datasets | 社群上傳,涵蓋各領域 | 各類任務 |
| Roboflow Universe | 提供大量已標註的視覺資料集 | 偵測、分割 |
方法二:使用 Python 批次下載圖片
可透過 icrawler 套件從 Bing 批次下載圖片。
⚠️
GoogleImageCrawler因 Google 改版目前已無法使用,請改用BingImageCrawler。
1 | pip install icrawler |
1 | # download_images.py |

圖:使用 BingImageCrawler 批次下載圖片至本地資料夾
⚠️ 注意版權問題,建議使用 Creative Commons 授權圖片,或僅用於研究與學習目的。
方法三:使用 OpenCV 自行拍攝
透過攝影機即時拍攝,按空白鍵存圖、按 q 離開。
1 | # capture_from_camera.py |

圖:按空白鍵從攝影機拍照並儲存至資料集
註:由於本身沒有攝影鏡頭,所以無法示範效果。
方法四:從影片中截取影格
若已有錄製好的影片,可自動截取每隔 N 幀的影像。
🎨 範例影片:
- 來源:Pexels - Highway Video,屬於無版權影片,可自由下載與使用。
- 內容:影片為高速公路的畫面,長度約 3 秒,畫面中有大量交通工具,非常適合用來資料蒐集。
- 下載後將檔名改為
highway.mp4,放到專案的assets/目錄下。
1 | # extract_frames.py |

圖:從影片中每隔 N 幀截取一張影格並儲存
⚠️ 注意事項
- 版權問題:商業用途需確認授權,避免使用有版權限制的圖片。
- 資料隱私:若涉及人臉或個人資訊,需遵守當地法規(如 GDPR)。
- 訓練/驗證集分離:兩者資料絕不能重疊。
- 類別均衡:若某類別資料太少,可透過資料增強補足。
🎯 結語
以上介紹了四種常見的資料蒐集方式,可依場景需求搭配使用。
方法四的基礎截幀腳本雖然簡單,但實際使用時會遇到模糊幀與重複幀的問題。
下一篇進入 影片資料集建立與品質檢查,介紹如何自動過濾這兩類問題,以及如何掃描並清除損壞的圖片。
📖 如在學習過程中遇到疑問,或是想了解更多相關主題,建議回顧一下 Python | OpenCV 系列導讀,掌握完整的章節目錄,方便快速找到你需要的內容。
註:以上參考了
OpenCV 官方文件 — Tutorials
COCO Dataset
Roboflow Universe
icrawler GitHub
