teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

大幅変更

2020/07/03 02:00

投稿

atusibba1014
atusibba1014

スコア17

title CHANGED
@@ -1,1 +1,1 @@
1
- スマホアプリで実現できるリアルタイムカメラはある
1
+ ReactNativeにてスマホカメラからの映像取得
body CHANGED
@@ -1,69 +1,19 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- スマホアプリでリアルタイムカメラを実現したい
3
+ ReactNativeにてスマホカメラからの映像取得
4
4
 
5
- ### 発生している問題・エラーメッセージ
5
+ ### 調べたこと
6
6
 
7
- https://cmusatyalab.github.io/openface/demo-1-web/
7
+ https://qiita.com/ltzz/items/e0076d5555cac4c9c89d
8
+ こちらはPCのWebカメラ→Videoタグ→Canvas→ImageData
8
- 上記あるうな、顔認証システムのロント部分スマホアプリで実現たいと考えています。
9
+ これによって何秒かごとにレーム取って来てImageDataにしていることが見受けられます。
10
+ これをReactNativeで実装する方法はありますか?
9
11
 
10
- 現状実現できているものは、
12
+ ### 現状
11
- フロント:ReactNative-Cameraにより、写真を撮影
13
+ ・ReactNativeCameraで写真をとりImageDataとしているため、リアルタイムではない。。
12
- サーバー側:写真画像を入力することで、この顔は誰あるかを判断。その結果をフロント側に出力
14
+ ・RNVideoがそれに当たかもということで、現在調べ中
13
15
 
14
- これですと顔認証システム自体はできていますが、顔認証をする際毎回写真を取らなければなりません。
15
- 目標は定点カメラのようなものを実装して、リアルタイムで顔認証をしてくれるものです。
16
16
 
17
- ### 試したこと
18
- 上記のURLではフロント部分をJavascriptで実装しており、リアルタイムに近いものを実装していることが伺えます。
19
- 流れとして(流れとなりますので正式なコードではありません)
20
-
21
- ```javascript
22
- 『HTMLにVideoタグを埋め込む』
23
- <video id="videoel" width="400" height="300"
24
- muted autoplay preload="auto" loop></video>
25
-
26
- 『上記のIDを取得』
27
- var vid = document.getElementById('videoel'),
28
- vidReady = false;
29
-
30
- 『250msごとにvideoタグに写った画像を取得』
31
- function umSuccess(stream) {
32
- vid.srcObject = stream;
33
- vid.play();
34
- vidReady = true;
35
- sendFrameLoop();
36
- }
37
- function sendFrameLoop() {
38
- if (socket == null || socket.readyState != socket.OPEN ||
39
- !vidReady || numNulls != defaultNumNulls) {
40
- return;
41
- }
42
-
43
- if (tok > 0) {
44
- var canvas = document.createElement('canvas');
45
- canvas.width = vid.width;
46
- canvas.height = vid.height;
47
- var cc = canvas.getContext('2d');
48
- cc.drawImage(vid, 0, 0, vid.width, vid.height);
49
- var apx = cc.getImageData(0, 0, vid.width, vid.height);
50
-
51
- var dataURL = canvas.toDataURL('image/jpeg', 0.6)
52
-
53
- var msg = {
54
- 'type': 'FRAME',
55
- 'dataURL': dataURL,
56
- 'identity': defaultPerson
57
- };
58
- socket.send(JSON.stringify(msg));
59
- tok--;
60
- }
61
- setTimeout(function() {requestAnimFrame(sendFrameLoop)}, 250);
62
- }
63
- ```
64
- これと同じものをReactNativeで実装すればできると考えていたのですが、『Videoタグに写っているものをjavascriptで取り込む』ものと同じことをReactNaiveで実装する方法がが分かりません。
65
- ご教授いただけますと幸いです。
66
-
67
17
  ### 補足情報(FW/ツールのバージョンなど)
68
18
 
69
19
  ReactNative 0.62

1

内容の追記

2020/07/03 02:00

投稿

atusibba1014
atusibba1014

スコア17

title CHANGED
File without changes
body CHANGED
@@ -15,10 +15,10 @@
15
15
  目標は定点カメラのようなものを実装して、リアルタイムで顔認証をしてくれるものです。
16
16
 
17
17
  ### 試したこと
18
- 上記のURLではフロント部分をJavascriptで実装しています。
18
+ 上記のURLではフロント部分をJavascriptで実装しており、リアルタイムに近ものを実装していることが伺えます。
19
19
  流れとして(流れとなりますので正式なコードではありません)
20
20
 
21
- ```ここに言語を入力
21
+ ```javascript
22
22
  『HTMLにVideoタグを埋め込む』
23
23
  <video id="videoel" width="400" height="300"
24
24
  muted autoplay preload="auto" loop></video>
@@ -61,7 +61,8 @@
61
61
  setTimeout(function() {requestAnimFrame(sendFrameLoop)}, 250);
62
62
  }
63
63
  ```
64
- これと同じものをReactNativeで実装すればできると考えていたのですが、『画像に写っものを取り込む』方法が分かりません。
64
+ これと同じものをReactNativeで実装すればできると考えていたのですが、『Videoタグに写っているものをjavascriptで取り込む』ものと同じことをReactNaiveで実装する方法が分かりません。
65
+ ご教授いただけますと幸いです。
65
66
 
66
67
  ### 補足情報(FW/ツールのバージョンなど)
67
68