質問編集履歴
2
加筆
test
CHANGED
File without changes
|
test
CHANGED
@@ -298,3 +298,76 @@
|
|
298
298
|
素人質問なのかもしれませんが何か解決方法があれば教えていただきたいです。
|
299
299
|
|
300
300
|
|
301
|
+
|
302
|
+
送信側pythonコード
|
303
|
+
```python
|
304
|
+
from deepface import DeepFace
|
305
|
+
import cv2
|
306
|
+
import datetime
|
307
|
+
import schedule
|
308
|
+
import time
|
309
|
+
import os
|
310
|
+
from threading import Thread
|
311
|
+
import argparse
|
312
|
+
from pythonosc import osc_message_builder
|
313
|
+
from pythonosc import udp_client
|
314
|
+
from pythonosc import osc_message
|
315
|
+
|
316
|
+
|
317
|
+
#カメラ起動
|
318
|
+
deviceid = 0
|
319
|
+
capture = cv2.VideoCapture(deviceid)
|
320
|
+
#感情推定の結果をリストに格納
|
321
|
+
dominant_emotion = []
|
322
|
+
max_v = []
|
323
|
+
def job():
|
324
|
+
#OSC通信処理
|
325
|
+
parser = argparse.ArgumentParser()
|
326
|
+
parser.add_argument("--ip", default="192.11.1.1",
|
327
|
+
help="The ip of the OSC server")
|
328
|
+
parser.add_argument("--port", type=int, default=8000,
|
329
|
+
help="The port the OSC server is listening on")
|
330
|
+
args = parser.parse_args()
|
331
|
+
client = udp_client.SimpleUDPClient(args.ip, args.port)
|
332
|
+
#カメラ起動して画像を保存
|
333
|
+
ret,frame = capture.read()
|
334
|
+
strdate = datetime.datetime.now().strftime('%Y%m%dT%H%M%S')
|
335
|
+
fname = f'C:/Users/shota/anaconda3/envs/shota1/images/' + strdate + ".jpg"
|
336
|
+
cv2.imwrite(fname,frame)
|
337
|
+
# 表情推定処理 and 例外処理
|
338
|
+
try:
|
339
|
+
face_analysis = DeepFace.analyze(img_path=fname)
|
340
|
+
dominant_emotion.append(face_analysis['dominant_emotion'])
|
341
|
+
max_v.append(max(face_analysis['emotion'].values()))
|
342
|
+
#OSC通信でfloat型の値を送信
|
343
|
+
msg = osc_message_builder.OscMessageBuilder(address="/Emotion")
|
344
|
+
#順に左側にデータが入っていくため、一番左の値を送信
|
345
|
+
msg.add_arg(dominant_emotion[-1])
|
346
|
+
msg.add_arg(max_v[-1])
|
347
|
+
msg = msg.build()
|
348
|
+
client.send(msg)
|
349
|
+
except ValueError:
|
350
|
+
print('ValueError')
|
351
|
+
pass
|
352
|
+
|
353
|
+
# do job every 10 seconds
|
354
|
+
schedule.every(1/12).minutes.do(job)
|
355
|
+
cond = True
|
356
|
+
|
357
|
+
def f():
|
358
|
+
global cond
|
359
|
+
time.sleep(600)
|
360
|
+
cond = False
|
361
|
+
|
362
|
+
thread = Thread(target=f)
|
363
|
+
thread.start()
|
364
|
+
|
365
|
+
while cond:
|
366
|
+
schedule.run_pending()
|
367
|
+
time.sleep(1)
|
368
|
+
|
369
|
+
|
370
|
+
```
|
371
|
+
|
372
|
+
↑
|
373
|
+
良い終了方法がわからなかったので600秒で強制終了するようにしています
|
1
加筆
test
CHANGED
File without changes
|
test
CHANGED
@@ -294,6 +294,7 @@
|
|
294
294
|
|
295
295
|
|
296
296
|
```
|
297
|
-
|
297
|
+
void keyPressedの処理で文章が変わってからも更新が続けられてるため、スペースキーを押しても文章が表示されないのではないかと考えて調べてみたのですが、中々解決せず投稿させていただきました。
|
298
|
-
|
298
|
+
素人質問なのかもしれませんが何か解決方法があれば教えていただきたいです。
|
299
|
-
|
299
|
+
|
300
|
+
|