工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

追跡を使用した監視

コンポーネントと消耗品

Arduino処理
× 1
Arduino UNO
× 1
カメラ(汎用)
× 1
サーボ(Tower Pro MG996R)
× 1

アプリとオンラインサービス

>
Arduino IDE

このプロジェクトについて

オブジェクトトラッキングは、コンピュータビジョンの分野における重要なタスクです。高性能コンピュータの急増、高品質で安価なビデオカメラの利用可能性、自動ビデオ分析の必要性の高まりにより、オブジェクト追跡アルゴリズムに大きな関心が寄せられています。ビデオ分析には、3つの重要なステップがあります。興味深い移動オブジェクトの検出、フレームからフレームへのそのようなオブジェクトの追跡、およびオブジェクトトラックの分析によるそれらの動作の認識です。したがって、オブジェクトトラッキングの使用は、次のタスクに関連しています。

1.モーションベースの認識、つまり、歩行、自動オブジェクトに基づく人間の識別

検出など;

2.自動監視、つまり、不審な活動を検出するためにシーンを監視する、または

ありそうもないイベント;

3.ビデオのインデックス作成、つまりマルチメディアでのビデオの自動注釈と取得

データベース;

4.ヒューマンコンピュータインタラクション、つまり、ジェスチャ認識、データの視線追跡

コンピュータなどへの入力;

5.トラフィックの監視、つまり、トラフィック統計をリアルタイムで収集してトラフィックフローを誘導します。

6.車両ナビゲーション、つまり、ビデオベースの経路計画と障害物回避機能。最も単純な形式では、トラッキングは、オブジェクトがシーン内を移動するときに、イメージ平面内のオブジェクトの軌道を推定する問題として定義できます。つまり、トラッカーは、動画のさまざまなフレームで追跡対象のオブジェクトに一貫したラベルを割り当てます。さらに、トラッキングドメインによっては、トラッカーはオブジェクトの向き、面積、形状など、オブジェクト中心の情報を提供することもできます。

このプロジェクトは、CCTVカメラを使用して、監視室からカメラの視野範囲内のターゲットを識別および追跡する、リアルタイムのオブジェクト検出および追跡方法に関するものです。ソフトウェア追跡に加えて、システムはレーザー搭載ロボットアームを使用してシーン内のオブジェクトも追跡します。ロボットアームは、パンチルト動作によってビデオフレーム内のすべての座標をカバーするように動作します。

CADファイルのリンク-

コード

  • mouse_drag_fina_larduino_workinh_code.ino
  • facetracking_procesing_final_code.pde
  • mouse_drag_fina_larduino_workinh_code.ino
mouse_drag_fina_larduino_workinh_code.ino Arduino
これは、マウス座標をarduinoに転送し、マウスポインタの位置に応じてサーボを調整する処理コードです
 /////////////////////処理コード/ //////////////////////////////// importprocessing.serial。*; importprocessing.video。*; import java.awt 。*; importgab.opencv。*; Capture video; OpenCV opencv; Serial Com7; float fpan、ftilt; int pan、tilt、x、y; int [] inBytes =new int [3]; void setup(){size(500,500); String portName =Serial.list()[0]; Com7 =new Serial(this、portName、9600);ビデオ=新しいキャプチャ(this、640 / 2、480 / 2); opencv =new OpenCV(this、640 / 2、480 / 2); opencv.loadCascade(OpenCV.CASCADE_FRONTALFACE); video.start(); // Com7 =new Serial(this、Serial.list()[1]、9600); background(0,0,0); ellipse(width / 2、width / 2,10,10);} void draw(){scale(2); opencv.loadImage(video); noFill();ストローク(0、255、0); strokeWeight(3); image(video、0、0); Rectangle []面=opencv.detect(); println(faces.length); for(int i =0; i  0){inBytes [0] =inBytes [1]; inBytes [1] =inBytes [2]; inBytes [2] =Com7.read(); if(inBytes [2] ==255){println(inBytes [0] + "、" + inBytes [1]); // background(0,0,0); // ellipse(width --inBytes [0] * width / 180、inBytes [1] * width / 180,10,10);}}} void CaptureEvent(Capture c){c.read();} 
facetracking_procesing_final_code.pde Arduino
このコードは、視聴範囲内の人の顔を追跡します
 /////////////////////処理コード////////////// /////////////////// importprocessing.serial。*; importprocessing.video。*; importjava.awt。*; importgab.opencv。*; Capture video; OpenCV opencv; Serial Com7; float fpan、ftilt; int pan、tilt、x、y; int [] inBytes =new int [3]; void setup(){size(500,500); String portName =Serial.list()[0]; Com7 =new Serial(this、portName、9600);ビデオ=新しいキャプチャ(this、640 / 2、480 / 2); opencv =new OpenCV(this、640 / 2、480 / 2); opencv.loadCascade(OpenCV.CASCADE_FRONTALFACE); video.start(); // Com7 =new Serial(this、Serial.list()[1]、9600); background(0,0,0); ellipse(width / 2、width / 2,10,10);} void draw(){scale(2); opencv.loadImage(video); noFill();ストローク(0、255、0); strokeWeight(3); image(video、0、0); Rectangle []面=opencv.detect(); println(faces.length); for(int i =0; i  0){inBytes [0] =inBytes [1]; inBytes [1] =inBytes [2]; inBytes [2] =Com7.read(); if(inBytes [2] ==255){println(inBytes [0] + "、" + inBytes [1]); // background(0,0,0); // ellipse(width --inBytes [0] * width / 180、inBytes [1] * width / 180,10,10);}}} void CaptureEvent(Capture c){c.read();} 
mouse_drag_fina_larduino_workinh_code.ino Arduino
これはサーボ移動用のarduinoコードです
 #include  byte inBytes [3]; Servo panservo; Servo tileservo; int panangle =90; int tileangle =90; void setup(){Serial.begin(9600); panservo.attach(9); tilltservo.attach(11);} void loop(){if(Serial.available()> 0){inBytes [0] =inBytes [1]; inBytes [1] =inBytes [2 ]; inBytes [2] =Serial.read(); if(inBytes [2] ==255){Serial.write(inBytes、3); panangle =inBytes [0]; tileangle =inBytes [1]; panservo.write(panangle); tileservo.write(tiltangle);}}} 
処理用にCVライブラリを開く
このコードを機能させるには、このライブラリをインストールしてくださいhttps://github.com/atduskgreg/opencv-processing

カスタムパーツとエンクロージャー


製造プロセス

  1. C# を使用して
  2. LabVIEWを使用したRaspberryPiの温度プロファイル
  3. RaspberryPiを使用した天気のリモートモニタリング
  4. Node-REDを使用してBlynkへのSensorTag
  5. ラズベリーパイボール追跡
  6. RaspberryPiを使用したモーションセンサー
  7. 自動ビジョンオブジェクト追跡
  8. ラズベリーパイとブリッジシールドを使用したロボット
  9. RaspberryPiを使用したWifi制御ロボット
  10. C# - 文字列
  11. 動的オブジェクト追跡精度の決定