Arkadaşlar merhaba,
Elimde internet üzerinden SSD Mobilenet yöntemi kullanılarak yazılmış bir görüntü işleme programı var. Kodu şöyle paylaşayım.
from cv2 import cv2
thres = 0.45
classNames= []
classFile = 'coco.names'
with open(classFile,'rt') as f:
classNames = f.read().rstrip('\n').split('\n')
configPath = 'ssd_mobilenet_v3_large_coco_2020_01_14.pbtxt'
weightsPath = 'frozen_inference_graph.pb'
net = cv2.dnn_DetectionModel(weightsPath,configPath)
net.setInputSize(320,320)
net.setInputScale(1.0/ 127.5)
net.setInputMean((127.5, 127.5, 127.5))
net.setInputSwapRB(True)
def getObjects(img, thresh, nms, draw = True,objects = []):
classIds, confs, bbox = net.detect(img,confThreshold=thres,nmsThreshold=nms)
#print(classIds,bbox)
if len(objects) == 0: objects = classNames
objectInfo = []
if len(classIds) != 0:
for classId, confidence,box in zip(classIds.flatten(),confs.flatten(),bbox):
className = classNames[classId-1]
if className in objects:
objectInfo.append([className])
if (draw):
cv2.rectangle(img,box,color=(0,255,0),thickness=2)
cv2.putText(img,className.upper(),(box[0]+10,box[1]+30),
cv2.FONT_HERSHEY_COMPLEX,1,(0,255,0),2)
cv2.putText(img,str(round(confidence*100,2)),(box[0]+200,box[1]+30),
cv2.FONT_HERSHEY_COMPLEX,1,(0,255,0),2)
return img, objectInfo
if __name__ == "__main__":
cap = cv2.VideoCapture(0)
cap.set(3,640)
cap.set(4,480)
#cap.set(10,70)
while True:
success,img = cap.read()
result, objectInfo = getObjects(img, 0.45, 0.2, objects = ['insan', 'telefon'])
print(objectInfo)
cv2.imshow("Output",img)
if cv2.waitKey(50) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
Sorum şu; objectInfo
içerisinde tanımlanmış nesnelerin bilgisi bulunuyor. Ben bu görüntü ile alınan bilgilerden sesli olarak çıkış almak istiyorum. PyAudio gTTS ve SpeechRecognition kütüphanelerini kurdum cihazıma. (Raspberry Pi 4)
Kısacası amacım basit bir sesli asistan yapıp kameradan fotoğrafı çekilen nesnenin bilgisini sesli olarak almak. Şimdiden teşekkür ederim ilginize.