質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
canvas

HTML5の<canvas>要素用のタグです。CanvasはHTML5から導入された、二次元の図形描写が可能な要素です。

YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

Q&A

0回答

1245閲覧

javascriptでのリアルタイム物体検出 自前の学習モデルに変更

kouchasan

総合スコア0

canvas

HTML5の<canvas>要素用のタグです。CanvasはHTML5から導入された、二次元の図形描写が可能な要素です。

YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

機械学習

機械学習は、データからパターンを自動的に発見し、そこから知能的な判断を下すためのコンピューターアルゴリズムを指します。人工知能における課題のひとつです。

0グッド

0クリップ

投稿2020/07/04 16:10

編集2020/07/06 04:11

前提・実現したいこと

スマートフォンから物体を認識できるwebアプリをjavascriptで作成しているのですが参考にしたサイトでは学習済データを使用しているのでその学習データを自前で学習したyolov3データセットに変更したいと考えています。

発生している問題

自前のyolov3データセットに変換する方法がわからない。

該当のソースコード

html

1<!DOCTYPE html> 2<html lang="en"> 3 4<head> 5 <meta charset="UTF-8"> 6 7 <title>YOLOとp5.jsによるリアルタイム物体検出</title> 8 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 9 <meta http-equiv="X-UA-Compatible" content="ie=edge"> 10 <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.0/p5.min.js"></script> 11 <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.0/addons/p5.dom.min.js"></script> 12 <script src="https://unpkg.com/ml5@0.1.2/dist/ml5.min.js" type="text/javascript"></script> 13 14</head> 15 16<body> 17 <h1>ISHINDENSHIN</h1> 18 <p id="status">モデルの読み込み中...</p> 19 <script src="sketch.js"></script> 20</body> 21 22</html>

js

1let video; 2let yolo; 3let status; 4let objects = []; 5 6function setup() { 7 // ドキュメント内にcanvas要素を作成し、サイズをピクセル単位で設定する。 8 // https://p5js.org/reference/#/p5/createCanvas 9 createCanvas(320, 240); 10 // Webカメラからのオーディオ/ビデオを含む新しいHTML5 video要素を作成する 11 // https://p5js.org/reference/#/p5/createCapture 12 video = createCapture(VIDEO); 13 // ビデオのサイズはキャンバスと同じ 14 video.size(320, 240); 15 16 // YOLOオブジェクトを作成する 17 yolo = ml5.YOLO(video, startDetecting); 18 19 // 元のビデオは隠す 20 video.hide(); 21 status = select('#status'); 22} 23 24// 毎フレーム、p5.jsによって呼び出される。 25function draw() { 26 // イメージをp5.jsのcanvasに描画する。 27 // image(img, x, y, [width], [height]) 28 // https://p5js.org/reference/#/p5/image 29 30 // width: 描画するキャンバスの幅を保持するシステム変数。heightも同様 31 image(video, 0, 0, width, height); 32 33 for (let i = 0; i < objects.length; i++) { 34 noStroke(); 35 fill(0, 255, 0); 36 // クラス名を境界ボックス左上に描く 37 // 画面にテキストを描画する。最初のパラメータで指定された情報を、以降の追加パラメータで指定された位置の画面に表示する。 38 // text(str, x, y, [x2], [y2]) 39 // https://p5js.org/reference/#/p5/text 40 text(objects[i].className, objects[i].x * width, objects[i].y * height - 5); 41 noFill(); 42 strokeWeight(4); 43 stroke(0, 255, 0); 44 // 境界ボックスを描く 45 // 矩形を画面に描画する。 46 // rect(x, y, w, h, [tl], [tr], [br], [bl]) 47 // https://p5js.org/reference/#/p5/rect 48 rect(objects[i].x * width, objects[i].y * height, objects[i].w * width, objects[i].h * height); 49 } 50} 51 52function startDetecting() { 53 status.html('モデルを読み込んだ'); 54 detect(); 55} 56 57// ビデオからのイメージを物体検出する 58function detect() { 59 yolo.detect(function(err, results) { 60 // 結果を配列objectsに割り当てる 61 objects = results; 62 // 連続して検出 63 detect(); 64 }); 65}

試したこと

もともと他人が作った学習済モデルを使って動作させることは可能なのですが自作のyolov3で学習済のモデルをプログラムの中に組み込む方法がわかりません..
参考にさせていただいたサイトでは以下のようにgithubに学習データを置いてそれを実行時にロードしていると言った手法になると思うのですがそれを自前の学習済データに置き換える方法を模索しています。

<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.0/p5.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.0/addons/p5.dom.min.js"></script> <script src="https://unpkg.com/ml5@0.1.2/dist/ml5.min.js" type="text/javascript"></script>

参考サイト

参考サイトへのリンク

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

aokikenichi

2020/07/05 03:23

エラーメッセージを示してください JavaScriptのコードについてもHTML同様にMarkdownのコード表示にしていただくと可読性が高まります
kouchasan

2020/07/05 05:43

ご指摘ありがとうございます。Markdownのコード表示に変更させていただきました。 今回何かエラーが出でいると言った訳ではなく、既存のyolov3データセットを自前のyolov3データセットに変更する方法を募っております。
aokikenichi

2020/07/05 07:43

学習モデルでしょうか データセットでしょうか どちらでしょうか yolov3の学習モデルのtensorflow.js対応であれば https://github.com/shaqian/tfjs-yolo にありますが。
kouchasan

2020/07/05 08:44

回答ありがとうございます。 学習モデルです。もともと他人が作った学習済モデルを使って動作させることは可能なのですが自作のyolov3で学習済のモデルをプログラムの中に組み込む方法がわかりません.. 参考にさせていただいたサイトでは以下のようにgithubに学習データを置いてそれを実行時にロードしていると言った手法になると思うのですがそれを自前のデータセットに変換する方法を模索しています。 <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.0/p5.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/0.6.0/addons/p5.dom.min.js"></script> <script src="https://unpkg.com/ml5@0.1.2/dist/ml5.min.js" type="text/javascript"></script>
aokikenichi

2020/07/05 08:51

すみません。回答者がいないようでしたので少しでも参考になればと思いコメント差し上げたのですが、私にはまだご質問内容が理解できておりません。 お役に立てずお時間を取らせてしまい大変申し訳ありません。
kouchasan

2020/07/05 11:57

回答ありがとうございます。 うまく説明できず申し訳ないです。送っていただいたリンク先の記事も参考にさせていただいきます。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問