利用python3指令測試硬體控制程式碼。
使用pip3安裝相關執行套件:pip3 install opencv-python
測試執行下列程式後,介紹運作過程,及系統監控結果,擷圖 PtrSc。
使用人工智慧介紹程式
結果說明文件:輸入資料,程式編輯,程式介紹,測試執行,系統監控,同時多個執行,結果說明,心得。
# Import the necessary modules and libraries
import cv2
#影片輸入控制器
cap = cv2.VideoCapture("twofaces.mp4")
while True:
ret, img = cap.read()
if ret == False: break
cv2.imshow('img', img)
cal = cv2.mean(img)
print(cal)
key = cv2.waitKey(1)
if key==27: break
cap.release()
cv2.destroyAllWindows()
利用Haar-like特徵所訓練出的模型偵測人臉。偵測模型:haarcascades
相關套件:
pip3 install opencv-python
修改人臉偵測後的處理結果。
結果說明文件:輸入資料,程式編輯,介紹程式FOR迴圈,終端機執行,執行結果說明,人工智慧修改程式,程式碼差異說明,測試結果說明,心得。
程式碼:
# Import the necessary modules and libraries
import cv2
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades +'haarcascade_frontalface_default.xml')
#讀取辨識用影片檔
cap = cv2.VideoCapture("twofaces.mp4")
while True:
ret, img = cap.read()
if ret == False: break
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.1, 5, 4 )
for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 1)
cv2.imshow('img', img)
key = cv2.waitKey(1)
if key==27: break
cap.release()
cv2.destroyAllWindows()
利用k-means分類人臉照片。
相關套件:
pip3 install opencv-python
pip3 install matplotlib
pip3 install scikit-learn
調整k值n_clusters,實作分群影片中的人臉圖片,說明不同k值的分群結果。
結果說明文件:輸入資料,程式編輯,人工智慧介紹程式,終端機執行,統計圖說明,分群結果說明,測試K值統計圖,測試K值分群結果,最適k值統計圖,最適分群結果,心得。
程式碼:
# Import the necessary modules and libraries
import cv2
import numpy as np
import matplotlib.pyplot as plt
import os
import shutil
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades +'haarcascade_frontalface_default.xml')
#讀取辨識用影片檔
cap = cv2.VideoCapture("twofaces.mp4")
if os.path.isdir("data"):
shutil.rmtree("data")
os.mkdir("data")
else: os.mkdir("data")
#Data collection
num = 0
data = list()
while True:
ret, img = cap.read()
if ret == False: break;
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, 1.1, 5, 4 )
for (x, y, w, h) in faces:
image = img[y: y+h, x: x+w]
cv2.imwrite('data/%d.png'%num, image)
#計算圖片特徵值
data.append([np.std(image), np.mean(image)])
num = num+1
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 1)
cv2.imshow('img', img)
k = cv2.waitKey(1)
if k == 27: break
cap.release()
cv2.destroyAllWindows()
#Data scaling
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler().fit(data)
data = scaler.transform(data)
#使用k-means技術分群
from sklearn.cluster import KMeans
X = np.array(data)
y_p = KMeans(n_clusters=2).fit_predict(X)
plt.scatter(X[:, 0], X[:, 1], c=y_p)
plt.savefig('kmeans.png')
#修改檔案名稱標示分群結果
for i in range(num):
os.rename('data/%d.png'%i, 'data/'+str(y_p[i])+('_%d.png'%i))
資料收集:輸入影片産生人臉偵測照片序列檔案,存放在兩個目錄,一個為辨識目標,一個為驗證資料。
建立模型:利用類神經網路訓練程式,訓練人臉辨識模型,産生訓練結果模型檔。
成果應用:執行臉部辨識程式,標示影像中的人臉。程式碼
結果說明文件:輸入資料,人臉偵測程式碼,執行結果說明,收集資料,訓練模型程式碼,訓練結果說明,測試程式碼,測試結果說明,心得。
python3相關套件:
pip3 install opencv-python
pip3 install scikit-learn
6. 參考資料:類神經網路,偵測模型:haarcascades
實作物件辨識程式,檢視目前的物件辨識技術及可能的應用
下載YOLOv7程式原始碼,安裝所需套件並執行測試
切換目錄:cd yolov7-main
安裝套件:pip3 install -r requirements.txt
影片測試:python3 detect.py --view-img --weights yolov7.pt --source yourvideo.mp4
寫報告說明工作流程及結果:程式功能說明,偵測物件介紹(10),執行結果(10),新增功能介紹,新增功能測試,心得
議題融入:性別平等教育,環境教育,海洋教育
學習表現:能使用程式設計實現運算思維的問題解決方法。能應用運算思維評估問題解決方法的優劣。能選用適當的資訊科技與他人合作完成專題製作。